@quadrel-enterprise-ui/framework 18.31.4-beta.75.1 → 18.31.4-beta.80.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,8 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { FormArray, FormControl, FormGroup } from '@angular/forms';
3
3
  import isEqual from 'lodash/isEqual';
4
- import { combineLatest, of, Subject } from 'rxjs';
5
- import { map, startWith, switchMap } from 'rxjs/operators';
4
+ import { BehaviorSubject, combineLatest, of, queueScheduler } from 'rxjs';
5
+ import { map, observeOn, startWith, switchMap } from 'rxjs/operators';
6
6
  import * as i0 from "@angular/core";
7
7
  /**
8
8
  * The QdFormGroupManagerService provides centralized registration, snapshotting, and value tracking
@@ -69,7 +69,7 @@ import * as i0 from "@angular/core";
69
69
  export class QdFormGroupManagerService {
70
70
  _formGroups = new Map();
71
71
  _formGroupsSnapshot = new Map();
72
- _formGroupsChanged$ = new Subject();
72
+ _formGroupsChanged$ = new BehaviorSubject(undefined);
73
73
  setFormGroup(key, formGroup) {
74
74
  this._formGroups.set(key, formGroup);
75
75
  this._formGroupsChanged$.next();
@@ -96,7 +96,7 @@ export class QdFormGroupManagerService {
96
96
  return !this._formGroups.has(key);
97
97
  }
98
98
  $areFormGroupsValid() {
99
- return this._formGroupsChanged$.pipe(startWith(void 0), switchMap(() => {
99
+ return this._formGroupsChanged$.pipe(observeOn(queueScheduler), switchMap(() => {
100
100
  if (!this.hasFormGroups())
101
101
  return of(false);
102
102
  const obs = Array.from(this._formGroups.values()).map(fg => fg.statusChanges.pipe(startWith(fg.status), map(() => this.areFormGroupsValid(fg))));
@@ -104,7 +104,7 @@ export class QdFormGroupManagerService {
104
104
  }));
105
105
  }
106
106
  $hasValuesChanged() {
107
- return this._formGroupsChanged$.pipe(startWith(void 0), switchMap(() => {
107
+ return this._formGroupsChanged$.pipe(observeOn(queueScheduler), switchMap(() => {
108
108
  if (!this.hasFormGroups())
109
109
  return of(false);
110
110
  const obs = Array.from(this._formGroups.entries()).map(([key, fg]) => fg.valueChanges.pipe(startWith(fg.getRawValue()), map(currentValues => {
@@ -132,6 +132,27 @@ export class QdFormGroupManagerService {
132
132
  }
133
133
  });
134
134
  });
135
+ this.cancelPendingAsyncValidation();
136
+ }
137
+ /**
138
+ * Cancels any in-flight async validators on all registered form groups.
139
+ */
140
+ cancelPendingAsyncValidation() {
141
+ this._formGroups.forEach(fg => this.cancelPendingAsyncValidatorsRecursive(fg));
142
+ }
143
+ cancelPendingAsyncValidatorsRecursive(control) {
144
+ if (control instanceof FormGroup) {
145
+ Object.values(control.controls).forEach(c => this.cancelPendingAsyncValidatorsRecursive(c));
146
+ }
147
+ else if (control instanceof FormArray) {
148
+ control.controls.forEach(c => this.cancelPendingAsyncValidatorsRecursive(c));
149
+ }
150
+ if (control.status === 'PENDING') {
151
+ const asyncValidator = control.asyncValidator;
152
+ control.clearAsyncValidators();
153
+ control.updateValueAndValidity();
154
+ control.setAsyncValidators(asyncValidator);
155
+ }
135
156
  }
136
157
  resetFormArrayToValues(array, newValues) {
137
158
  if (!Array.isArray(newValues))
@@ -184,4 +205,4 @@ export class QdFormGroupManagerService {
184
205
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdFormGroupManagerService, decorators: [{
185
206
  type: Injectable
186
207
  }] });
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3FkLXVpL3NyYy9saWIvcGFnZS9zaGFyZWQvc2VydmljZXMvZm9ybS1ncm91cC1tYW5hZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQW1CLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEYsT0FBTyxPQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlELE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUUzRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZERztBQUVILE1BQU0sT0FBTyx5QkFBeUI7SUFDNUIsV0FBVyxHQUFHLElBQUksR0FBRyxFQUFxQixDQUFDO0lBQzNDLG1CQUFtQixHQUFHLElBQUksR0FBRyxFQUFtQyxDQUFDO0lBQ2pFLG1CQUFtQixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFbEQsWUFBWSxDQUFDLEdBQVcsRUFBRSxTQUFvQjtRQUM1QyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxZQUFZLENBQUMsR0FBVztRQUN0QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7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QU8sQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQy9FLENBQUM7UUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEVBQWE7UUFDdEMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNuSCxDQUFDO3VHQXhKVSx5QkFBeUI7MkdBQXpCLHlCQUF5Qjs7MkZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnbG9kYXNoL2lzRXF1YWwnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogVGhlIFFkRm9ybUdyb3VwTWFuYWdlclNlcnZpY2UgcHJvdmlkZXMgY2VudHJhbGl6ZWQgcmVnaXN0cmF0aW9uLCBzbmFwc2hvdHRpbmcsIGFuZCB2YWx1ZSB0cmFja2luZ1xuICogZm9yIG11bHRpcGxlIEFuZ3VsYXIgYEZvcm1Hcm91cGAgaW5zdGFuY2VzLiBJdCBzdXBwb3J0cyBlZmZpY2llbnQgc3RhdGUgcmVzdG9yYXRpb24sIGluY2x1ZGluZyBkeW5hbWljXG4gKiByZXNpemluZyBvZiBlbWJlZGRlZCBgRm9ybUFycmF5YCBjb250cm9scywgd2hpbGUgYXZvaWRpbmcgYW55IHN0cnVjdHVyYWwgY2xvbmluZyBpbiBzbmFwc2hvdHMuXG4gKlxuICogIyMjIyBQdXJwb3NlOlxuICogVGhpcyBzZXJ2aWNlIGlzIHVzZWZ1bCB3aGVuIG1hbmFnaW5nIG11bHRpcGxlIHJlYWN0aXZlIGZvcm1zIHRoYXQgbXVzdCBiZTpcbiAqIC0gT2JzZXJ2ZWQgZm9yIGNoYW5nZXNcbiAqIC0gQ2hlY2tlZCBmb3IgdmFsaWRpdHlcbiAqIC0gQ29tcGFyZWQgYWdhaW5zdCBhIHByZXZpb3VzIHN0YXRlIChzbmFwc2hvdClcbiAqIC0gUmVzZXQgdG8gYSBwcmV2aW91cyBzdGF0ZSwgaW5jbHVkaW5nIGR5bmFtaWMgZm9ybSBhcnJheXNcbiAqXG4gKiAjIyMjIFZhbHVlIFNuYXBzaG90XG4gKiBTbmFwc2hvdHMgc3RvcmUgb25seSAqKnJhdyB2YWx1ZXMqKiAodmlhIGBnZXRSYXdWYWx1ZSgpYCksIG5vdCBhbnkgY29udHJvbCBpbnN0YW5jZXMuXG4gKiBUaGlzIGFsbG93cyBmb3IgbWluaW1hbCBtZW1vcnkgdXNhZ2UgYW5kIGVhc3kgY29tcGFyaXNvbiB1c2luZyBkZWVwIGVxdWFsaXR5IGNoZWNrcy5cbiAqXG4gKiAjIyMjIFNtYXJ0IEZvcm1BcnJheSBSZXNldFxuICogV2hlbiByZXN0b3JpbmcgYSBgRm9ybUFycmF5YCwgdGhlIHNlcnZpY2UgZW5zdXJlcyB0aGF0IHRoZSBudW1iZXIgYW5kIHN0cnVjdHVyZSBvZiBjb250cm9sc1xuICogbWF0Y2hlcyB0aGUgc25hcHNob3QgdmFsdWVzLiBDb250cm9scyBhcmUgY2xvbmVkIGR5bmFtaWNhbGx5IGZyb20gYW4gZXhpc3RpbmcgcHJvdG90eXBlLlxuICogSWYgYSBgRm9ybUFycmF5YCB3YXMgZW1wdGllZCAoZS5nLiB2aWEgYHJlbW92ZUF0KClgKSwgYSBtaW5pbWFsIGNvbnRyb2wgc3RydWN0dXJlIGlzIGluZmVycmVkXG4gKiBmcm9tIHRoZSBzbmFwc2hvdCBkYXRhLlxuICpcbiAqICMjIyMgRXhhbXBsZSBVc2FnZTpcbiAqXG4gKiAqKlJlZ2lzdGVyIGEgRm9ybUdyb3VwKipcbiAqIGBgYHRzXG4gKiBzZXJ2aWNlLnNldEZvcm1Hcm91cCgndXNlckZvcm0nLCBmb3JtR3JvdXApO1xuICogYGBgXG4gKlxuICogKipUYWtlIGEgU25hcHNob3QqKlxuICogYGBgdHNcbiAqIHNlcnZpY2UudGFrZUZvcm1Hcm91cHNTbmFwc2hvdCgpO1xuICogYGBgXG4gKlxuICogKipEZXRlY3QgQ2hhbmdlcyoqXG4gKiBgYGB0c1xuICogc2VydmljZS4kaGFzVmFsdWVzQ2hhbmdlZCgpLnN1YnNjcmliZShjaGFuZ2VkID0+IHtcbiAqICAgaWYgKGNoYW5nZWQpIHtcbiAqICAgICBjb25zb2xlLmxvZygnRm9ybSBkYXRhIGhhcyBjaGFuZ2VkJyk7XG4gKiAgIH1cbiAqIH0pO1xuICogYGBgXG4gKlxuICogKipSZXN0b3JlIGZyb20gU25hcHNob3QqKlxuICogYGBgdHNcbiAqIHNlcnZpY2UucmVzdG9yZUZvcm1Hcm91cHNGcm9tU25hcHNob3QoKTtcbiAqIGBgYFxuICpcbiAqICoqQ2hlY2sgaWYgQWxsIEZvcm1zIEFyZSBWYWxpZCoqXG4gKiBgYGB0c1xuICogc2VydmljZS4kYXJlRm9ybUdyb3Vwc1ZhbGlkKCkuc3Vic2NyaWJlKHZhbGlkID0+IHtcbiAqICAgaWYgKHZhbGlkKSB7XG4gKiAgICAgY29uc29sZS5sb2coJ0FsbCBmb3JtcyB2YWxpZCEnKTtcbiAqICAgfVxuICogfSk7XG4gKiBgYGBcbiAqXG4gKiAjIyMjIE5vdGVzOlxuICogLSBGb3JtQXJyYXlzIGFyZSBub3QgcmVwbGFjZWQgZHVyaW5nIHJlc3RvcmUuIFRoZWlyIGxlbmd0aCBpcyBhZGp1c3RlZCBhbmQgdGhlaXIgY29udGVudCByZXNldC5cbiAqIC0gQ29udHJvbCBjbG9uaW5nIGlzIHJlY3Vyc2l2ZSBhbmQgc3RydWN0dXJlLXByZXNlcnZpbmcuXG4gKiAtIE5vIHN0cnVjdHVyYWwgaW5mb3JtYXRpb24gaXMgc3RvcmVkIGluIHRoZSBzbmFwc2hvdDsgb25seSBkYXRhLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUWRGb3JtR3JvdXBNYW5hZ2VyU2VydmljZSB7XG4gIHByaXZhdGUgX2Zvcm1Hcm91cHMgPSBuZXcgTWFwPHN0cmluZywgRm9ybUdyb3VwPigpO1xuICBwcml2YXRlIF9mb3JtR3JvdXBzU25hcHNob3QgPSBuZXcgTWFwPHN0cmluZywgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KCk7XG4gIHByaXZhdGUgX2Zvcm1Hcm91cHNDaGFuZ2VkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgc2V0Rm9ybUdyb3VwKGtleTogc3RyaW5nLCBmb3JtR3JvdXA6IEZvcm1Hcm91cCk6IHZvaWQge1xuICAgIHRoaXMuX2Zvcm1Hcm91cHMuc2V0KGtleSwgZm9ybUdyb3VwKTtcbiAgICB0aGlzLl9mb3JtR3JvdXBzQ2hhbmdlZCQubmV4dCgpO1xuICB9XG5cbiAgZ2V0Rm9ybUdyb3VwKGtleTogc3RyaW5nKTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3Vwcy5nZXQoa2V5KTtcbiAgfVxuXG4gIGdldEFsbEZvcm1Hcm91cHMoKTogTWFwPHN0cmluZywgRm9ybUdyb3VwPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cHM7XG4gIH1cblxuICB0cnlSZW1vdmVGb3JtR3JvdXAoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9mb3JtR3JvdXBzLmRlbGV0ZShrZXkpO1xuICAgIHRoaXMuX2Zvcm1Hcm91cHNDaGFuZ2VkJC5uZXh0KCk7XG4gIH1cblxuICBoYXNGb3JtR3JvdXBzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9mb3JtR3JvdXBzLnNpemUgPiAwO1xuICB9XG5cbiAgZ2V0QWxsVmFsdWVzKCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgICBjb25zdCBhbGxWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG5cbiAgICB0aGlzLl9mb3JtR3JvdXBzLmZvckVhY2goKGZvcm1Hcm91cCwga2V5KSA9PiAoYWxsVmFsdWVzW2tleV0gPSBmb3JtR3JvdXAudmFsdWUpKTtcblxuICAgIHJldHVybiBhbGxWYWx1ZXM7XG4gIH1cblxuICBpc0Zvcm1Hcm91cEtleVVuaXF1ZShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5fZm9ybUdyb3Vwcy5oYXMoa2V5KTtcbiAgfVxuXG4gICRhcmVGb3JtR3JvdXBzVmFsaWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cHNDaGFuZ2VkJC5waXBlKFxuICAgICAgc3RhcnRXaXRoKHZvaWQgMCksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuaGFzRm9ybUdyb3VwcygpKSByZXR1cm4gb2YoZmFsc2UpO1xuXG4gICAgICAgIGNvbnN0IG9icyA9IEFycmF5LmZyb20odGhpcy5fZm9ybUdyb3Vwcy52YWx1ZXMoKSkubWFwKGZnID0+XG4gICAgICAgICAgZmcuc3RhdHVzQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKGZnLnN0YXR1cyksXG4gICAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5hcmVGb3JtR3JvdXBzVmFsaWQoZmcpKVxuICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChvYnMpLnBpcGUobWFwKHZhbGlkcyA9PiB2YWxpZHMuZXZlcnkoQm9vbGVhbikpKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gICRoYXNWYWx1ZXNDaGFuZ2VkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9mb3JtR3JvdXBzQ2hhbmdlZCQucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh2b2lkIDApLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmhhc0Zvcm1Hcm91cHMoKSkgcmV0dXJuIG9mKGZhbHNlKTtcblxuICAgICAgICBjb25zdCBvYnMgPSBBcnJheS5mcm9tKHRoaXMuX2Zvcm1Hcm91cHMuZW50cmllcygpKS5tYXAoKFtrZXksIGZnXSkgPT5cbiAgICAgICAgICBmZy52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgIHN0YXJ0V2l0aChmZy5nZXRSYXdWYWx1ZSgpKSxcbiAgICAgICAgICAgIG1hcChjdXJyZW50VmFsdWVzID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgc25hcHNob3QgPSB0aGlzLl9mb3JtR3JvdXBzU25hcHNob3QuZ2V0KGtleSk7XG4gICAgICAgICAgICAgIHJldHVybiBzbmFwc2hvdCA/ICFpc0VxdWFsKGN1cnJlbnRWYWx1ZXMsIHNuYXBzaG90KSA6IHRydWU7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChvYnMpLnBpcGUobWFwKGNoYW5nZXMgPT4gY2hhbmdlcy5zb21lKEJvb2xlYW4pKSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICB0YWtlRm9ybUdyb3Vwc1NuYXBzaG90KCk6IHZvaWQge1xuICAgIHRoaXMuX2Zvcm1Hcm91cHMuZm9yRWFjaCgoZmcsIGtleSkgPT4gdGhpcy5fZm9ybUdyb3Vwc1NuYXBzaG90LnNldChrZXksIGZnLmdldFJhd1ZhbHVlKCkpKTtcbiAgfVxuXG4gIHJlc3RvcmVGb3JtR3JvdXBzRnJvbVNuYXBzaG90KCk6IHZvaWQge1xuICAgIHRoaXMuX2Zvcm1Hcm91cHMuZm9yRWFjaCgoZmcsIGtleSkgPT4ge1xuICAgICAgY29uc3Qgc25hcHNob3QgPSB0aGlzLl9mb3JtR3JvdXBzU25hcHNob3QuZ2V0KGtleSk7XG4gICAgICBpZiAoIXNuYXBzaG90KSByZXR1cm47XG5cbiAgICAgIE9iamVjdC5lbnRyaWVzKGZnLmNvbnRyb2xzKS5mb3JFYWNoKChbY3RybEtleSwgY3RybF0pID0+IHtcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSAoc25hcHNob3QgYXMgYW55KVtjdHJsS2V5XTtcbiAgICAgICAgaWYgKGN0cmwgaW5zdGFuY2VvZiBGb3JtQXJyYXkgJiYgQXJyYXkuaXNBcnJheShuZXdWYWx1ZSkpIHtcbiAgICAgICAgICB0aGlzLnJlc2V0Rm9ybUFycmF5VG9WYWx1ZXMoY3RybCwgbmV3VmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGN0cmwucmVzZXQobmV3VmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRGb3JtQXJyYXlUb1ZhbHVlcyhhcnJheTogRm9ybUFycmF5LCBuZXdWYWx1ZXM6IHVua25vd25bXSk6IHZvaWQge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShuZXdWYWx1ZXMpKSByZXR1cm47XG5cbiAgICBjb25zdCBvbGRMZW4gPSBhcnJheS5sZW5ndGg7XG4gICAgY29uc3QgbmV3TGVuID0gbmV3VmFsdWVzLmxlbmd0aDtcblxuICAgIGlmIChvbGRMZW4gPT09IDAgJiYgbmV3TGVuID09PSAwKSByZXR1cm47XG4gICAgaWYgKG9sZExlbiA9PT0gMCAmJiBuZXdMZW4gPiAwKSByZXR1cm4gdGhpcy5pbml0Rm9ybUFycmF5RnJvbVZhbHVlcyhhcnJheSwgbmV3VmFsdWVzKTtcblxuICAgIHdoaWxlIChhcnJheS5sZW5ndGggPCBuZXdMZW4pIGFycmF5LnB1c2godGhpcy5kZWVwQ2xvbmVDb250cm9sKGFycmF5LmF0KDApKSk7XG4gICAgd2hpbGUgKGFycmF5Lmxlbmd0aCA+IG5ld0xlbikgYXJyYXkucmVtb3ZlQXQoYXJyYXkubGVuZ3RoIC0gMSk7XG5cbiAgICBhcnJheS5yZXNldChuZXdWYWx1ZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0Rm9ybUFycmF5RnJvbVZhbHVlcyhhcnJheTogRm9ybUFycmF5LCB2YWx1ZXM6IHVua25vd25bXSk6IHZvaWQge1xuICAgIGNvbnN0IHByb3RvVmFsdWUgPSB2YWx1ZXNbMF07XG5cbiAgICBpZiAoIXByb3RvVmFsdWUgfHwgdHlwZW9mIHByb3RvVmFsdWUgIT09ICdvYmplY3QnKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1FELVVJIHwgUWRGb3JtR3JvdXBNYW5hZ2VyIC0gQ2Fubm90IHJlc3RvcmUgRm9ybUFycmF5OiBubyBwcm90b3R5cGUgYW5kIHZhbHVlIGlzIG5vdCBvYmplY3QtbGlrZS4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgY29udHJvbHM6IFJlY29yZDxzdHJpbmcsIEFic3RyYWN0Q29udHJvbD4gPSB7fTtcbiAgICAgIE9iamVjdC5rZXlzKHByb3RvVmFsdWUpLmZvckVhY2goa2V5ID0+IChjb250cm9sc1trZXldID0gbmV3IEZvcm1Db250cm9sKCkpKTtcbiAgICAgIGFycmF5LnB1c2gobmV3IEZvcm1Hcm91cCh7IC4uLmNvbnRyb2xzIH0pKTtcbiAgICB9XG5cbiAgICBhcnJheS5yZXNldCh2YWx1ZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWVwQ2xvbmVDb250cm9sKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCkgcmV0dXJuIG5ldyBGb3JtQ29udHJvbCh1bmRlZmluZWQsIGNvbnRyb2wudmFsaWRhdG9yLCBjb250cm9sLmFzeW5jVmFsaWRhdG9yKTtcblxuICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICBjb25zdCBncm91cENvbnRyb2xzOiBSZWNvcmQ8c3RyaW5nLCBBYnN0cmFjdENvbnRyb2w+ID0ge307XG5cbiAgICAgIE9iamVjdC5lbnRyaWVzKGNvbnRyb2wuY29udHJvbHMpLmZvckVhY2goKFtrZXksIGN0cmxdKSA9PiAoZ3JvdXBDb250cm9sc1trZXldID0gdGhpcy5kZWVwQ2xvbmVDb250cm9sKGN0cmwpKSk7XG5cbiAgICAgIHJldHVybiBuZXcgRm9ybUdyb3VwKGdyb3VwQ29udHJvbHMsIGNvbnRyb2wudmFsaWRhdG9yLCBjb250cm9sLmFzeW5jVmFsaWRhdG9yKTtcbiAgICB9XG5cbiAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xuICAgICAgY29uc3QgYXJyQ29udHJvbHMgPSBjb250cm9sLmNvbnRyb2xzLm1hcChjID0+IHRoaXMuZGVlcENsb25lQ29udHJvbChjKSk7XG5cbiAgICAgIHJldHVybiBuZXcgRm9ybUFycmF5KGFyckNvbnRyb2xzLCBjb250cm9sLnZhbGlkYXRvciwgY29udHJvbC5hc3luY1ZhbGlkYXRvcik7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdRRC1VSSB8IFFkRm9ybUdyb3VwTWFuYWdlciAtIFVuc3VwcG9ydGVkIGNvbnRyb2wgdHlwZScpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcmVGb3JtR3JvdXBzVmFsaWQoZmc6IEZvcm1Hcm91cCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKGZnLmNvbnRyb2xzKS5ldmVyeShjID0+IChjLmRpc2FibGVkICYmICFjLnZhbGlkYXRvciAmJiAhYy5hc3luY1ZhbGlkYXRvciA/IHRydWUgOiBjLnZhbGlkKSk7XG4gIH1cbn1cbiJdfQ==
208
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3FkLXVpL3NyYy9saWIvcGFnZS9zaGFyZWQvc2VydmljZXMvZm9ybS1ncm91cC1tYW5hZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQW1CLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEYsT0FBTyxPQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RixPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRXRFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkRHO0FBRUgsTUFBTSxPQUFPLHlCQUF5QjtJQUM1QixXQUFXLEdBQUcsSUFBSSxHQUFHLEVBQXFCLENBQUM7SUFDM0MsbUJBQW1CLEdBQUcsSUFBSSxHQUFHLEVBQW1DLENBQUM7SUFDakUsbUJBQW1CLEdBQUcsSUFBSSxlQUFlLENBQU8sU0FBUyxDQUFDLENBQUM7SUFFbkUsWUFBWSxDQUFDLEdBQVcsRUFBRSxTQUFvQjtRQUM1QyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxZQUFZLENBQUMsR0FBVztRQUN0QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxD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QUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNuSCxDQUFDO3VHQWhMVSx5QkFBeUI7MkdBQXpCLHlCQUF5Qjs7MkZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnbG9kYXNoL2lzRXF1YWwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiwgcXVldWVTY2hlZHVsZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgb2JzZXJ2ZU9uLCBzdGFydFdpdGgsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBUaGUgUWRGb3JtR3JvdXBNYW5hZ2VyU2VydmljZSBwcm92aWRlcyBjZW50cmFsaXplZCByZWdpc3RyYXRpb24sIHNuYXBzaG90dGluZywgYW5kIHZhbHVlIHRyYWNraW5nXG4gKiBmb3IgbXVsdGlwbGUgQW5ndWxhciBgRm9ybUdyb3VwYCBpbnN0YW5jZXMuIEl0IHN1cHBvcnRzIGVmZmljaWVudCBzdGF0ZSByZXN0b3JhdGlvbiwgaW5jbHVkaW5nIGR5bmFtaWNcbiAqIHJlc2l6aW5nIG9mIGVtYmVkZGVkIGBGb3JtQXJyYXlgIGNvbnRyb2xzLCB3aGlsZSBhdm9pZGluZyBhbnkgc3RydWN0dXJhbCBjbG9uaW5nIGluIHNuYXBzaG90cy5cbiAqXG4gKiAjIyMjIFB1cnBvc2U6XG4gKiBUaGlzIHNlcnZpY2UgaXMgdXNlZnVsIHdoZW4gbWFuYWdpbmcgbXVsdGlwbGUgcmVhY3RpdmUgZm9ybXMgdGhhdCBtdXN0IGJlOlxuICogLSBPYnNlcnZlZCBmb3IgY2hhbmdlc1xuICogLSBDaGVja2VkIGZvciB2YWxpZGl0eVxuICogLSBDb21wYXJlZCBhZ2FpbnN0IGEgcHJldmlvdXMgc3RhdGUgKHNuYXBzaG90KVxuICogLSBSZXNldCB0byBhIHByZXZpb3VzIHN0YXRlLCBpbmNsdWRpbmcgZHluYW1pYyBmb3JtIGFycmF5c1xuICpcbiAqICMjIyMgVmFsdWUgU25hcHNob3RcbiAqIFNuYXBzaG90cyBzdG9yZSBvbmx5ICoqcmF3IHZhbHVlcyoqICh2aWEgYGdldFJhd1ZhbHVlKClgKSwgbm90IGFueSBjb250cm9sIGluc3RhbmNlcy5cbiAqIFRoaXMgYWxsb3dzIGZvciBtaW5pbWFsIG1lbW9yeSB1c2FnZSBhbmQgZWFzeSBjb21wYXJpc29uIHVzaW5nIGRlZXAgZXF1YWxpdHkgY2hlY2tzLlxuICpcbiAqICMjIyMgU21hcnQgRm9ybUFycmF5IFJlc2V0XG4gKiBXaGVuIHJlc3RvcmluZyBhIGBGb3JtQXJyYXlgLCB0aGUgc2VydmljZSBlbnN1cmVzIHRoYXQgdGhlIG51bWJlciBhbmQgc3RydWN0dXJlIG9mIGNvbnRyb2xzXG4gKiBtYXRjaGVzIHRoZSBzbmFwc2hvdCB2YWx1ZXMuIENvbnRyb2xzIGFyZSBjbG9uZWQgZHluYW1pY2FsbHkgZnJvbSBhbiBleGlzdGluZyBwcm90b3R5cGUuXG4gKiBJZiBhIGBGb3JtQXJyYXlgIHdhcyBlbXB0aWVkIChlLmcuIHZpYSBgcmVtb3ZlQXQoKWApLCBhIG1pbmltYWwgY29udHJvbCBzdHJ1Y3R1cmUgaXMgaW5mZXJyZWRcbiAqIGZyb20gdGhlIHNuYXBzaG90IGRhdGEuXG4gKlxuICogIyMjIyBFeGFtcGxlIFVzYWdlOlxuICpcbiAqICoqUmVnaXN0ZXIgYSBGb3JtR3JvdXAqKlxuICogYGBgdHNcbiAqIHNlcnZpY2Uuc2V0Rm9ybUdyb3VwKCd1c2VyRm9ybScsIGZvcm1Hcm91cCk7XG4gKiBgYGBcbiAqXG4gKiAqKlRha2UgYSBTbmFwc2hvdCoqXG4gKiBgYGB0c1xuICogc2VydmljZS50YWtlRm9ybUdyb3Vwc1NuYXBzaG90KCk7XG4gKiBgYGBcbiAqXG4gKiAqKkRldGVjdCBDaGFuZ2VzKipcbiAqIGBgYHRzXG4gKiBzZXJ2aWNlLiRoYXNWYWx1ZXNDaGFuZ2VkKCkuc3Vic2NyaWJlKGNoYW5nZWQgPT4ge1xuICogICBpZiAoY2hhbmdlZCkge1xuICogICAgIGNvbnNvbGUubG9nKCdGb3JtIGRhdGEgaGFzIGNoYW5nZWQnKTtcbiAqICAgfVxuICogfSk7XG4gKiBgYGBcbiAqXG4gKiAqKlJlc3RvcmUgZnJvbSBTbmFwc2hvdCoqXG4gKiBgYGB0c1xuICogc2VydmljZS5yZXN0b3JlRm9ybUdyb3Vwc0Zyb21TbmFwc2hvdCgpO1xuICogYGBgXG4gKlxuICogKipDaGVjayBpZiBBbGwgRm9ybXMgQXJlIFZhbGlkKipcbiAqIGBgYHRzXG4gKiBzZXJ2aWNlLiRhcmVGb3JtR3JvdXBzVmFsaWQoKS5zdWJzY3JpYmUodmFsaWQgPT4ge1xuICogICBpZiAodmFsaWQpIHtcbiAqICAgICBjb25zb2xlLmxvZygnQWxsIGZvcm1zIHZhbGlkIScpO1xuICogICB9XG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqICMjIyMgTm90ZXM6XG4gKiAtIEZvcm1BcnJheXMgYXJlIG5vdCByZXBsYWNlZCBkdXJpbmcgcmVzdG9yZS4gVGhlaXIgbGVuZ3RoIGlzIGFkanVzdGVkIGFuZCB0aGVpciBjb250ZW50IHJlc2V0LlxuICogLSBDb250cm9sIGNsb25pbmcgaXMgcmVjdXJzaXZlIGFuZCBzdHJ1Y3R1cmUtcHJlc2VydmluZy5cbiAqIC0gTm8gc3RydWN0dXJhbCBpbmZvcm1hdGlvbiBpcyBzdG9yZWQgaW4gdGhlIHNuYXBzaG90OyBvbmx5IGRhdGEuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBRZEZvcm1Hcm91cE1hbmFnZXJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBfZm9ybUdyb3VwcyA9IG5ldyBNYXA8c3RyaW5nLCBGb3JtR3JvdXA+KCk7XG4gIHByaXZhdGUgX2Zvcm1Hcm91cHNTbmFwc2hvdCA9IG5ldyBNYXA8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oKTtcbiAgcHJpdmF0ZSBfZm9ybUdyb3Vwc0NoYW5nZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDx2b2lkPih1bmRlZmluZWQpO1xuXG4gIHNldEZvcm1Hcm91cChrZXk6IHN0cmluZywgZm9ybUdyb3VwOiBGb3JtR3JvdXApOiB2b2lkIHtcbiAgICB0aGlzLl9mb3JtR3JvdXBzLnNldChrZXksIGZvcm1Hcm91cCk7XG4gICAgdGhpcy5fZm9ybUdyb3Vwc0NoYW5nZWQkLm5leHQoKTtcbiAgfVxuXG4gIGdldEZvcm1Hcm91cChrZXk6IHN0cmluZyk6IEZvcm1Hcm91cCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cHMuZ2V0KGtleSk7XG4gIH1cblxuICBnZXRBbGxGb3JtR3JvdXBzKCk6IE1hcDxzdHJpbmcsIEZvcm1Hcm91cD4ge1xuICAgIHJldHVybiB0aGlzLl9mb3JtR3JvdXBzO1xuICB9XG5cbiAgdHJ5UmVtb3ZlRm9ybUdyb3VwKGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fZm9ybUdyb3Vwcy5kZWxldGUoa2V5KTtcbiAgICB0aGlzLl9mb3JtR3JvdXBzQ2hhbmdlZCQubmV4dCgpO1xuICB9XG5cbiAgaGFzRm9ybUdyb3VwcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3Vwcy5zaXplID4gMDtcbiAgfVxuXG4gIGdldEFsbFZhbHVlcygpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgY29uc3QgYWxsVmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuXG4gICAgdGhpcy5fZm9ybUdyb3Vwcy5mb3JFYWNoKChmb3JtR3JvdXAsIGtleSkgPT4gKGFsbFZhbHVlc1trZXldID0gZm9ybUdyb3VwLnZhbHVlKSk7XG5cbiAgICByZXR1cm4gYWxsVmFsdWVzO1xuICB9XG5cbiAgaXNGb3JtR3JvdXBLZXlVbmlxdWUoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuX2Zvcm1Hcm91cHMuaGFzKGtleSk7XG4gIH1cblxuICAkYXJlRm9ybUdyb3Vwc1ZhbGlkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9mb3JtR3JvdXBzQ2hhbmdlZCQucGlwZShcbiAgICAgIG9ic2VydmVPbihxdWV1ZVNjaGVkdWxlciksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuaGFzRm9ybUdyb3VwcygpKSByZXR1cm4gb2YoZmFsc2UpO1xuXG4gICAgICAgIGNvbnN0IG9icyA9IEFycmF5LmZyb20odGhpcy5fZm9ybUdyb3Vwcy52YWx1ZXMoKSkubWFwKGZnID0+XG4gICAgICAgICAgZmcuc3RhdHVzQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKGZnLnN0YXR1cyksXG4gICAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5hcmVGb3JtR3JvdXBzVmFsaWQoZmcpKVxuICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChvYnMpLnBpcGUobWFwKHZhbGlkcyA9PiB2YWxpZHMuZXZlcnkoQm9vbGVhbikpKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gICRoYXNWYWx1ZXNDaGFuZ2VkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9mb3JtR3JvdXBzQ2hhbmdlZCQucGlwZShcbiAgICAgIG9ic2VydmVPbihxdWV1ZVNjaGVkdWxlciksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuaGFzRm9ybUdyb3VwcygpKSByZXR1cm4gb2YoZmFsc2UpO1xuXG4gICAgICAgIGNvbnN0IG9icyA9IEFycmF5LmZyb20odGhpcy5fZm9ybUdyb3Vwcy5lbnRyaWVzKCkpLm1hcCgoW2tleSwgZmddKSA9PlxuICAgICAgICAgIGZnLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKGZnLmdldFJhd1ZhbHVlKCkpLFxuICAgICAgICAgICAgbWFwKGN1cnJlbnRWYWx1ZXMgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBzbmFwc2hvdCA9IHRoaXMuX2Zvcm1Hcm91cHNTbmFwc2hvdC5nZXQoa2V5KTtcbiAgICAgICAgICAgICAgcmV0dXJuIHNuYXBzaG90ID8gIWlzRXF1YWwoY3VycmVudFZhbHVlcywgc25hcHNob3QpIDogdHJ1ZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KG9icykucGlwZShtYXAoY2hhbmdlcyA9PiBjaGFuZ2VzLnNvbWUoQm9vbGVhbikpKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHRha2VGb3JtR3JvdXBzU25hcHNob3QoKTogdm9pZCB7XG4gICAgdGhpcy5fZm9ybUdyb3Vwcy5mb3JFYWNoKChmZywga2V5KSA9PiB0aGlzLl9mb3JtR3JvdXBzU25hcHNob3Quc2V0KGtleSwgZmcuZ2V0UmF3VmFsdWUoKSkpO1xuICB9XG5cbiAgcmVzdG9yZUZvcm1Hcm91cHNGcm9tU25hcHNob3QoKTogdm9pZCB7XG4gICAgdGhpcy5fZm9ybUdyb3Vwcy5mb3JFYWNoKChmZywga2V5KSA9PiB7XG4gICAgICBjb25zdCBzbmFwc2hvdCA9IHRoaXMuX2Zvcm1Hcm91cHNTbmFwc2hvdC5nZXQoa2V5KTtcbiAgICAgIGlmICghc25hcHNob3QpIHJldHVybjtcblxuICAgICAgT2JqZWN0LmVudHJpZXMoZmcuY29udHJvbHMpLmZvckVhY2goKFtjdHJsS2V5LCBjdHJsXSkgPT4ge1xuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IChzbmFwc2hvdCBhcyBhbnkpW2N0cmxLZXldO1xuICAgICAgICBpZiAoY3RybCBpbnN0YW5jZW9mIEZvcm1BcnJheSAmJiBBcnJheS5pc0FycmF5KG5ld1ZhbHVlKSkge1xuICAgICAgICAgIHRoaXMucmVzZXRGb3JtQXJyYXlUb1ZhbHVlcyhjdHJsLCBuZXdWYWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY3RybC5yZXNldChuZXdWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5jYW5jZWxQZW5kaW5nQXN5bmNWYWxpZGF0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FuY2VscyBhbnkgaW4tZmxpZ2h0IGFzeW5jIHZhbGlkYXRvcnMgb24gYWxsIHJlZ2lzdGVyZWQgZm9ybSBncm91cHMuXG4gICAqL1xuICBjYW5jZWxQZW5kaW5nQXN5bmNWYWxpZGF0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX2Zvcm1Hcm91cHMuZm9yRWFjaChmZyA9PiB0aGlzLmNhbmNlbFBlbmRpbmdBc3luY1ZhbGlkYXRvcnNSZWN1cnNpdmUoZmcpKTtcbiAgfVxuXG4gIHByaXZhdGUgY2FuY2VsUGVuZGluZ0FzeW5jVmFsaWRhdG9yc1JlY3Vyc2l2ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB2b2lkIHtcbiAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgT2JqZWN0LnZhbHVlcyhjb250cm9sLmNvbnRyb2xzKS5mb3JFYWNoKGMgPT4gdGhpcy5jYW5jZWxQZW5kaW5nQXN5bmNWYWxpZGF0b3JzUmVjdXJzaXZlKGMpKTtcbiAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcbiAgICAgIGNvbnRyb2wuY29udHJvbHMuZm9yRWFjaChjID0+IHRoaXMuY2FuY2VsUGVuZGluZ0FzeW5jVmFsaWRhdG9yc1JlY3Vyc2l2ZShjKSk7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRyb2wuc3RhdHVzID09PSAnUEVORElORycpIHtcbiAgICAgIGNvbnN0IGFzeW5jVmFsaWRhdG9yID0gY29udHJvbC5hc3luY1ZhbGlkYXRvcjtcbiAgICAgIGNvbnRyb2wuY2xlYXJBc3luY1ZhbGlkYXRvcnMoKTtcbiAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgY29udHJvbC5zZXRBc3luY1ZhbGlkYXRvcnMoYXN5bmNWYWxpZGF0b3IpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRGb3JtQXJyYXlUb1ZhbHVlcyhhcnJheTogRm9ybUFycmF5LCBuZXdWYWx1ZXM6IHVua25vd25bXSk6IHZvaWQge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShuZXdWYWx1ZXMpKSByZXR1cm47XG5cbiAgICBjb25zdCBvbGRMZW4gPSBhcnJheS5sZW5ndGg7XG4gICAgY29uc3QgbmV3TGVuID0gbmV3VmFsdWVzLmxlbmd0aDtcblxuICAgIGlmIChvbGRMZW4gPT09IDAgJiYgbmV3TGVuID09PSAwKSByZXR1cm47XG4gICAgaWYgKG9sZExlbiA9PT0gMCAmJiBuZXdMZW4gPiAwKSByZXR1cm4gdGhpcy5pbml0Rm9ybUFycmF5RnJvbVZhbHVlcyhhcnJheSwgbmV3VmFsdWVzKTtcblxuICAgIHdoaWxlIChhcnJheS5sZW5ndGggPCBuZXdMZW4pIGFycmF5LnB1c2godGhpcy5kZWVwQ2xvbmVDb250cm9sKGFycmF5LmF0KDApKSk7XG4gICAgd2hpbGUgKGFycmF5Lmxlbmd0aCA+IG5ld0xlbikgYXJyYXkucmVtb3ZlQXQoYXJyYXkubGVuZ3RoIC0gMSk7XG5cbiAgICBhcnJheS5yZXNldChuZXdWYWx1ZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0Rm9ybUFycmF5RnJvbVZhbHVlcyhhcnJheTogRm9ybUFycmF5LCB2YWx1ZXM6IHVua25vd25bXSk6IHZvaWQge1xuICAgIGNvbnN0IHByb3RvVmFsdWUgPSB2YWx1ZXNbMF07XG5cbiAgICBpZiAoIXByb3RvVmFsdWUgfHwgdHlwZW9mIHByb3RvVmFsdWUgIT09ICdvYmplY3QnKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1FELVVJIHwgUWRGb3JtR3JvdXBNYW5hZ2VyIC0gQ2Fubm90IHJlc3RvcmUgRm9ybUFycmF5OiBubyBwcm90b3R5cGUgYW5kIHZhbHVlIGlzIG5vdCBvYmplY3QtbGlrZS4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgY29udHJvbHM6IFJlY29yZDxzdHJpbmcsIEFic3RyYWN0Q29udHJvbD4gPSB7fTtcbiAgICAgIE9iamVjdC5rZXlzKHByb3RvVmFsdWUpLmZvckVhY2goa2V5ID0+IChjb250cm9sc1trZXldID0gbmV3IEZvcm1Db250cm9sKCkpKTtcbiAgICAgIGFycmF5LnB1c2gobmV3IEZvcm1Hcm91cCh7IC4uLmNvbnRyb2xzIH0pKTtcbiAgICB9XG5cbiAgICBhcnJheS5yZXNldCh2YWx1ZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWVwQ2xvbmVDb250cm9sKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCkgcmV0dXJuIG5ldyBGb3JtQ29udHJvbCh1bmRlZmluZWQsIGNvbnRyb2wudmFsaWRhdG9yLCBjb250cm9sLmFzeW5jVmFsaWRhdG9yKTtcblxuICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICBjb25zdCBncm91cENvbnRyb2xzOiBSZWNvcmQ8c3RyaW5nLCBBYnN0cmFjdENvbnRyb2w+ID0ge307XG5cbiAgICAgIE9iamVjdC5lbnRyaWVzKGNvbnRyb2wuY29udHJvbHMpLmZvckVhY2goKFtrZXksIGN0cmxdKSA9PiAoZ3JvdXBDb250cm9sc1trZXldID0gdGhpcy5kZWVwQ2xvbmVDb250cm9sKGN0cmwpKSk7XG5cbiAgICAgIHJldHVybiBuZXcgRm9ybUdyb3VwKGdyb3VwQ29udHJvbHMsIGNvbnRyb2wudmFsaWRhdG9yLCBjb250cm9sLmFzeW5jVmFsaWRhdG9yKTtcbiAgICB9XG5cbiAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xuICAgICAgY29uc3QgYXJyQ29udHJvbHMgPSBjb250cm9sLmNvbnRyb2xzLm1hcChjID0+IHRoaXMuZGVlcENsb25lQ29udHJvbChjKSk7XG5cbiAgICAgIHJldHVybiBuZXcgRm9ybUFycmF5KGFyckNvbnRyb2xzLCBjb250cm9sLnZhbGlkYXRvciwgY29udHJvbC5hc3luY1ZhbGlkYXRvcik7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdRRC1VSSB8IFFkRm9ybUdyb3VwTWFuYWdlciAtIFVuc3VwcG9ydGVkIGNvbnRyb2wgdHlwZScpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcmVGb3JtR3JvdXBzVmFsaWQoZmc6IEZvcm1Hcm91cCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKGZnLmNvbnRyb2xzKS5ldmVyeShjID0+IChjLmRpc2FibGVkICYmICFjLnZhbGlkYXRvciAmJiAhYy5hc3luY1ZhbGlkYXRvciA/IHRydWUgOiBjLnZhbGlkKSk7XG4gIH1cbn1cbiJdfQ==
@@ -14,6 +14,7 @@ export class QdPageSubmitActionService {
14
14
  _submitHandler;
15
15
  _isVisible = true;
16
16
  _destroyed$ = new Subject();
17
+ _cancelTrackFormValidity$ = new Subject();
17
18
  constructor(footerService, formGroupManagerService) {
18
19
  this.footerService = footerService;
19
20
  this.formGroupManagerService = formGroupManagerService;
@@ -41,9 +42,10 @@ export class QdPageSubmitActionService {
41
42
  };
42
43
  }
43
44
  trackFormValidity() {
45
+ this._cancelTrackFormValidity$.next();
44
46
  this.formGroupManagerService
45
47
  .$areFormGroupsValid()
46
- .pipe(takeUntil(this._destroyed$), distinctUntilChanged())
48
+ .pipe(takeUntil(this._cancelTrackFormValidity$), takeUntil(this._destroyed$), distinctUntilChanged())
47
49
  .subscribe(isValid => this.updateSubmitButtonState(isValid));
48
50
  }
49
51
  updateSubmitButtonState(isValid) {
@@ -66,4 +68,4 @@ export class QdPageSubmitActionService {
66
68
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdPageSubmitActionService, decorators: [{
67
69
  type: Injectable
68
70
  }], ctorParameters: () => [{ type: i1.QdPageFooterService }, { type: i2.QdFormGroupManagerService }] });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1zdWJtaXQtYWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3FkLXVpL3NyYy9saWIvcGFnZS9zaGFyZWQvc2VydmljZXMvcGFnZS1zdWJtaXQtYWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQUc1RCxNQUFNLE9BQU8seUJBQXlCO0lBT2pCO0lBQ0E7SUFQWCxVQUFVLEdBQUcsNEJBQTRCLENBQUM7SUFDMUMsY0FBYyxDQUFnQztJQUM5QyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ2xCLFdBQVcsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUVuRCxZQUNtQixhQUFrQyxFQUNsQyx1QkFBa0Q7UUFEbEQsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ2xDLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBMkI7SUFDbEUsQ0FBQztJQUVKLFdBQVc7UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxjQUF1QyxFQUFFLFNBQWtCO1FBQ25GLElBQUksQ0FBQyxjQUFjLEVBQUUsTUFBTTtZQUFFLE9BQU87UUFFcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU8scUJBQXFCLENBQUMsWUFHN0I7UUFDQyxJQUFJLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxJQUFJLDRCQUE0QixDQUFDO1FBQzNFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8sa0JBQWtCLENBQUMsZUFBNkM7UUFDdEUsT0FBTyxDQUFDLEdBQUcsSUFBZSxFQUFRLEVBQUU7WUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLEVBQUU7Z0JBQUUsT0FBTyxlQUFlLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUVuRixPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUN0RSxDQUFDLENBQUM7SUFDSixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyx1QkFBdUI7YUFDekIsbUJBQW1CLEVBQUU7YUFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQzthQUN6RCxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRU8sdUJBQXVCLENBQUMsT0FBZ0I7UUFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7WUFDNUI7Z0JBQ0UsR0FBRyxFQUFFLFFBQVE7Z0JBQ2IsTUFBTSxFQUFFO29CQUNOLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVTtvQkFDMUIsT0FBTyxFQUFFLElBQUksQ0FBQyxjQUFjO29CQUM1QixVQUFVLEVBQUUsQ0FBQyxPQUFPO29CQUNwQixTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVU7b0JBQzFCLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxPQUFPO2lCQUNqQzthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0E1RFUseUJBQXlCOzJHQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFFkUGFnZVR5cGVJbnNwZWN0Q29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWwvcGFnZS1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IFFkRm9vdGVyQWN0aW9uVHlwZSB9IGZyb20gJy4uLy4uL21vZGVsL3BhZ2UtZm9vdGVyLWFjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUWRGb3JtR3JvdXBNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vZm9ybS1ncm91cC1tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUWRQYWdlRm9vdGVyU2VydmljZSB9IGZyb20gJy4vcGFnZS1mb290ZXIuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBRZFBhZ2VTdWJtaXRBY3Rpb25TZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfbGFiZWxJMThuID0gJ2kxOG4ucWQucGFnZS5mb290ZXIuc3VibWl0JztcbiAgcHJpdmF0ZSBfc3VibWl0SGFuZGxlciE6ICguLi5hcmdzOiB1bmtub3duW10pID0+IHZvaWQ7XG4gIHByaXZhdGUgX2lzVmlzaWJsZSA9IHRydWU7XG4gIHByaXZhdGUgX2Rlc3Ryb3llZCQ6IFN1YmplY3Q8bnVsbD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9vdGVyU2VydmljZTogUWRQYWdlRm9vdGVyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1Hcm91cE1hbmFnZXJTZXJ2aWNlOiBRZEZvcm1Hcm91cE1hbmFnZXJTZXJ2aWNlXG4gICkge31cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95ZWQkLm5leHQobnVsbCk7XG4gICAgdGhpcy5fZGVzdHJveWVkJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgc2V0U3VibWl0QWN0aW9uRm9ySW5zcGVjdChwYWdlVHlwZUNvbmZpZzogUWRQYWdlVHlwZUluc3BlY3RDb25maWcsIGlzVmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICghcGFnZVR5cGVDb25maWc/LnN1Ym1pdCkgcmV0dXJuO1xuXG4gICAgdGhpcy5faXNWaXNpYmxlID0gaXNWaXNpYmxlO1xuICAgIHRoaXMuY29uZmlndXJlU3VibWl0QWN0aW9uKHBhZ2VUeXBlQ29uZmlnLnN1Ym1pdCk7XG4gIH1cblxuICBwcml2YXRlIGNvbmZpZ3VyZVN1Ym1pdEFjdGlvbihzdWJtaXRDb25maWc6IHtcbiAgICBsYWJlbD86IHsgaTE4bjogc3RyaW5nIH07XG4gICAgaGFuZGxlcjogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdm9pZDtcbiAgfSk6IHZvaWQge1xuICAgIHRoaXMuX2xhYmVsSTE4biA9IHN1Ym1pdENvbmZpZy5sYWJlbD8uaTE4biB8fCAnaTE4bi5xZC5wYWdlLmZvb3Rlci5zdWJtaXQnO1xuICAgIHRoaXMuX3N1Ym1pdEhhbmRsZXIgPSB0aGlzLmJ1aWxkU3VibWl0SGFuZGxlcihzdWJtaXRDb25maWcuaGFuZGxlcik7XG4gICAgdGhpcy50cmFja0Zvcm1WYWxpZGl0eSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFN1Ym1pdEhhbmRsZXIob3JpZ2luYWxIYW5kbGVyOiAoLi4uYXJnczogdW5rbm93bltdKSA9PiB2b2lkKTogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdm9pZCB7XG4gICAgcmV0dXJuICguLi5hcmdzOiB1bmtub3duW10pOiB2b2lkID0+IHtcbiAgICAgIGlmICghdGhpcy5mb3JtR3JvdXBNYW5hZ2VyU2VydmljZS5oYXNGb3JtR3JvdXBzKCkpIHJldHVybiBvcmlnaW5hbEhhbmRsZXIoLi4uYXJncyk7XG5cbiAgICAgIHJldHVybiBvcmlnaW5hbEhhbmRsZXIodGhpcy5mb3JtR3JvdXBNYW5hZ2VyU2VydmljZS5nZXRBbGxWYWx1ZXMoKSk7XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgdHJhY2tGb3JtVmFsaWRpdHkoKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtR3JvdXBNYW5hZ2VyU2VydmljZVxuICAgICAgLiRhcmVGb3JtR3JvdXBzVmFsaWQoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCQpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxuICAgICAgLnN1YnNjcmliZShpc1ZhbGlkID0+IHRoaXMudXBkYXRlU3VibWl0QnV0dG9uU3RhdGUoaXNWYWxpZCkpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTdWJtaXRCdXR0b25TdGF0ZShpc1ZhbGlkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5mb290ZXJTZXJ2aWNlLnNldEFjdGlvbnMoW1xuICAgICAge1xuICAgICAgICBrZXk6ICdzdWJtaXQnLFxuICAgICAgICBhY3Rpb246IHtcbiAgICAgICAgICB0aXRsZUkxOG46IHRoaXMuX2xhYmVsSTE4bixcbiAgICAgICAgICBoYW5kbGVyOiB0aGlzLl9zdWJtaXRIYW5kbGVyLFxuICAgICAgICAgIGlzRGlzYWJsZWQ6ICFpc1ZhbGlkLFxuICAgICAgICAgIGlzVmlzaWJsZTogdGhpcy5faXNWaXNpYmxlLFxuICAgICAgICAgIHR5cGU6IFFkRm9vdGVyQWN0aW9uVHlwZS5QcmltYXJ5XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdKTtcbiAgfVxufVxuIl19
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1zdWJtaXQtYWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3FkLXVpL3NyYy9saWIvcGFnZS9zaGFyZWQvc2VydmljZXMvcGFnZS1zdWJtaXQtYWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQUc1RCxNQUFNLE9BQU8seUJBQXlCO0lBUWpCO0lBQ0E7SUFSWCxVQUFVLEdBQUcsNEJBQTRCLENBQUM7SUFDMUMsY0FBYyxDQUFnQztJQUM5QyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ2xCLFdBQVcsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMzQyx5QkFBeUIsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRXhELFlBQ21CLGFBQWtDLEVBQ2xDLHVCQUFrRDtRQURsRCxrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFDbEMsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUEyQjtJQUNsRSxDQUFDO0lBRUosV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELHlCQUF5QixDQUFDLGNBQXVDLEVBQUUsU0FBa0I7UUFDbkYsSUFBSSxDQUFDLGNBQWMsRUFBRSxNQUFNO1lBQUUsT0FBTztRQUVwQyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUM1QixJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxZQUc3QjtRQUNDLElBQUksQ0FBQyxVQUFVLEdBQUcsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLElBQUksNEJBQTRCLENBQUM7UUFDM0UsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxlQUE2QztRQUN0RSxPQUFPLENBQUMsR0FBRyxJQUFlLEVBQVEsRUFBRTtZQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGFBQWEsRUFBRTtnQkFBRSxPQUFPLGVBQWUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBRW5GLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksRUFBRSxDQUFDO1FBRXRDLElBQUksQ0FBQyx1QkFBdUI7YUFDekIsbUJBQW1CLEVBQUU7YUFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLENBQUM7YUFDcEcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVPLHVCQUF1QixDQUFDLE9BQWdCO1FBQzlDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDO1lBQzVCO2dCQUNFLEdBQUcsRUFBRSxRQUFRO2dCQUNiLE1BQU0sRUFBRTtvQkFDTixTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVU7b0JBQzFCLE9BQU8sRUFBRSxJQUFJLENBQUMsY0FBYztvQkFDNUIsVUFBVSxFQUFFLENBQUMsT0FBTztvQkFDcEIsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVO29CQUMxQixJQUFJLEVBQUUsa0JBQWtCLENBQUMsT0FBTztpQkFDakM7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBL0RVLHlCQUF5QjsyR0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBRZFBhZ2VUeXBlSW5zcGVjdENvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVsL3BhZ2UtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBRZEZvb3RlckFjdGlvblR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbC9wYWdlLWZvb3Rlci1hY3Rpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFFkRm9ybUdyb3VwTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL2Zvcm0tZ3JvdXAtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IFFkUGFnZUZvb3RlclNlcnZpY2UgfSBmcm9tICcuL3BhZ2UtZm9vdGVyLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUWRQYWdlU3VibWl0QWN0aW9uU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2xhYmVsSTE4biA9ICdpMThuLnFkLnBhZ2UuZm9vdGVyLnN1Ym1pdCc7XG4gIHByaXZhdGUgX3N1Ym1pdEhhbmRsZXIhOiAoLi4uYXJnczogdW5rbm93bltdKSA9PiB2b2lkO1xuICBwcml2YXRlIF9pc1Zpc2libGUgPSB0cnVlO1xuICBwcml2YXRlIF9kZXN0cm95ZWQkOiBTdWJqZWN0PG51bGw+ID0gbmV3IFN1YmplY3QoKTtcbiAgcHJpdmF0ZSBfY2FuY2VsVHJhY2tGb3JtVmFsaWRpdHkkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvb3RlclNlcnZpY2U6IFFkUGFnZUZvb3RlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtR3JvdXBNYW5hZ2VyU2VydmljZTogUWRGb3JtR3JvdXBNYW5hZ2VyU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveWVkJC5uZXh0KG51bGwpO1xuICAgIHRoaXMuX2Rlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHNldFN1Ym1pdEFjdGlvbkZvckluc3BlY3QocGFnZVR5cGVDb25maWc6IFFkUGFnZVR5cGVJbnNwZWN0Q29uZmlnLCBpc1Zpc2libGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoIXBhZ2VUeXBlQ29uZmlnPy5zdWJtaXQpIHJldHVybjtcblxuICAgIHRoaXMuX2lzVmlzaWJsZSA9IGlzVmlzaWJsZTtcbiAgICB0aGlzLmNvbmZpZ3VyZVN1Ym1pdEFjdGlvbihwYWdlVHlwZUNvbmZpZy5zdWJtaXQpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25maWd1cmVTdWJtaXRBY3Rpb24oc3VibWl0Q29uZmlnOiB7XG4gICAgbGFiZWw/OiB7IGkxOG46IHN0cmluZyB9O1xuICAgIGhhbmRsZXI6ICguLi5hcmdzOiB1bmtub3duW10pID0+IHZvaWQ7XG4gIH0pOiB2b2lkIHtcbiAgICB0aGlzLl9sYWJlbEkxOG4gPSBzdWJtaXRDb25maWcubGFiZWw/LmkxOG4gfHwgJ2kxOG4ucWQucGFnZS5mb290ZXIuc3VibWl0JztcbiAgICB0aGlzLl9zdWJtaXRIYW5kbGVyID0gdGhpcy5idWlsZFN1Ym1pdEhhbmRsZXIoc3VibWl0Q29uZmlnLmhhbmRsZXIpO1xuICAgIHRoaXMudHJhY2tGb3JtVmFsaWRpdHkoKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRTdWJtaXRIYW5kbGVyKG9yaWdpbmFsSGFuZGxlcjogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdm9pZCk6ICguLi5hcmdzOiB1bmtub3duW10pID0+IHZvaWQge1xuICAgIHJldHVybiAoLi4uYXJnczogdW5rbm93bltdKTogdm9pZCA9PiB7XG4gICAgICBpZiAoIXRoaXMuZm9ybUdyb3VwTWFuYWdlclNlcnZpY2UuaGFzRm9ybUdyb3VwcygpKSByZXR1cm4gb3JpZ2luYWxIYW5kbGVyKC4uLmFyZ3MpO1xuXG4gICAgICByZXR1cm4gb3JpZ2luYWxIYW5kbGVyKHRoaXMuZm9ybUdyb3VwTWFuYWdlclNlcnZpY2UuZ2V0QWxsVmFsdWVzKCkpO1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHRyYWNrRm9ybVZhbGlkaXR5KCk6IHZvaWQge1xuICAgIHRoaXMuX2NhbmNlbFRyYWNrRm9ybVZhbGlkaXR5JC5uZXh0KCk7XG5cbiAgICB0aGlzLmZvcm1Hcm91cE1hbmFnZXJTZXJ2aWNlXG4gICAgICAuJGFyZUZvcm1Hcm91cHNWYWxpZCgpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fY2FuY2VsVHJhY2tGb3JtVmFsaWRpdHkkKSwgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCQpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxuICAgICAgLnN1YnNjcmliZShpc1ZhbGlkID0+IHRoaXMudXBkYXRlU3VibWl0QnV0dG9uU3RhdGUoaXNWYWxpZCkpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTdWJtaXRCdXR0b25TdGF0ZShpc1ZhbGlkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5mb290ZXJTZXJ2aWNlLnNldEFjdGlvbnMoW1xuICAgICAge1xuICAgICAgICBrZXk6ICdzdWJtaXQnLFxuICAgICAgICBhY3Rpb246IHtcbiAgICAgICAgICB0aXRsZUkxOG46IHRoaXMuX2xhYmVsSTE4bixcbiAgICAgICAgICBoYW5kbGVyOiB0aGlzLl9zdWJtaXRIYW5kbGVyLFxuICAgICAgICAgIGlzRGlzYWJsZWQ6ICFpc1ZhbGlkLFxuICAgICAgICAgIGlzVmlzaWJsZTogdGhpcy5faXNWaXNpYmxlLFxuICAgICAgICAgIHR5cGU6IFFkRm9vdGVyQWN0aW9uVHlwZS5QcmltYXJ5XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdKTtcbiAgfVxufVxuIl19
@@ -28,4 +28,4 @@ const _tableReducer = createReducer(initialState, on(QdTableActions.initTableSta
28
28
  export function tableReducer(state, action) {
29
29
  return _tableReducer(state, action);
30
30
  }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcWQtdWkvc3JjL2xpYi90YWJsZS9zdG9yZS90YWJsZS5yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2hELE9BQU8sRUFDTCxPQUFPLEVBQ1Asb0JBQW9CLEVBQ3BCLE9BQU8sRUFDUCxhQUFhLEVBQ2IsV0FBVyxFQUNYLGVBQWUsRUFDZixPQUFPLEVBQ1AsZUFBZSxFQUNmLFNBQVMsRUFDVCxVQUFVLEVBQ1YsdUJBQXVCLEVBQ3ZCLG9CQUFvQixFQUNwQixxQ0FBcUMsRUFDckMsNEJBQTRCLEVBQzdCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUcvQixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQTBCLEVBQUUsQ0FBQztBQUV0RCxTQUFTLFVBQVUsQ0FBQyxJQUFhO0lBQy9CLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxDQUFDO0FBQ3RFLENBQUM7QUFFRCxNQUFNLGFBQWEsR0FBRyxhQUFhLENBQ2pDLFlBQVksRUFFWixFQUFFLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFO0lBQ3JHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRW5DLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElB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QUFDLGVBQWUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLENBQ3RFLGVBQWUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUM5QyxFQUVELEVBQUUsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFLENBQ2xHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxjQUFjLENBQUMsQ0FDMUUsRUFFRCxFQUFFLENBQUMsY0FBYyxDQUFDLG9CQUFvQixFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxFQUVyRyxFQUFFLENBQUMsY0FBYyxDQUFDLGdCQUFnQixFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FDekYsQ0FBQztBQUVGLE1BQU0sVUFBVSxZQUFZLENBQUMsS0FBVSxFQUFFLE1BQVc7SUFDbEQsT0FBTyxhQUFhLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3RDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZWR1Y2VyLCBvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcblxuaW1wb3J0IHsgUWRUYWJsZVN0b3JlRGF0YSB9IGZyb20gJy4uL21vZGVsL3RhYmxlLXN0b3JlLmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBjb25uZWN0LFxuICByZXNldENvbm5lY3RvclN0YXRlcyxcbiAgc2V0UGFnZSxcbiAgc2V0UGFnZVBhcmFtcyxcbiAgc2V0UGFnZVNpemUsXG4gIHNldFJlcXVlc3RTdGF0ZSxcbiAgc2V0U29ydCxcbiAgc2V0dXBQYWdpbmF0aW9uLFxuICBzZXR1cFNvcnQsXG4gIHVwZGF0ZVNvcnQsXG4gIHVwZGF0ZVN0YXRlV2l0aE5ld1RhYmxlLFxuICB1cGRhdGVUYWJsZVN0YXRlRGF0YSxcbiAgdXBkYXRlVGFibGVTdGF0ZVJlY2VudFNlY29uZGFyeUFjdGlvbixcbiAgdXBkYXRlVGFibGVTdGF0ZVNlbGVjdGVkUm93c1xufSBmcm9tICcuL3RhYmxlLXVwZGF0ZS5oZWxwZXInO1xuaW1wb3J0IHsgUWRUYWJsZUFjdGlvbnMgfSBmcm9tICcuL3RhYmxlLmFjdGlvbnMnO1xuaW1wb3J0IG9taXQgZnJvbSAnbG9kYXNoL29taXQnO1xuaW1wb3J0IHsgUWRUcmVlRGF0YSB9IGZyb20gJ0BxZC11aS9xZC11aSc7XG5cbmV4cG9ydCBjb25zdCBpbml0aWFsU3RhdGU6IFFkVGFibGVTdG9yZURhdGE8YW55PiA9IHt9O1xuXG5mdW5jdGlvbiBpc1RyZWVEYXRhKGRhdGE6IHVua25vd24pOiBkYXRhIGlzIFFkVHJlZURhdGE8c3RyaW5nPiB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KGRhdGEpICYmIGRhdGEuc29tZShpdGVtID0+ICdjaGlsZHJlbicgaW4gaXRlbSk7XG59XG5cbmNvbnN0IF90YWJsZVJlZHVjZXIgPSBjcmVhdGVSZWR1Y2VyKFxuICBpbml0aWFsU3RhdGUsXG5cbiAgb24oUWRUYWJsZUFjdGlvbnMuaW5pdFRhYmxlU3RhdGUsIChzdGF0ZSwgeyB0YWJsZUlkLCBkYXRhLCBoYXNSZXNvbHZlciwgY29ubmVjdG9ycywgaGFzUGFnaW5hdGlvbiB9KSA9PiB7XG4gICAgaWYgKGlzVHJlZURhdGEoZGF0YSkpIHJldHVybiBzdGF0ZTtcblxuICAgIGlmICgoc3RhdGVbdGFibGVJZF0gJiYgSlNPTi5zdHJpbmdpZnkoc3RhdGVbdGFibGVJZF0uZGF0YSkgPT09IEpTT04uc3RyaW5naWZ5KGRhdGEpKSB8fCBzdGF0ZVt0YWJsZUlkXT8uaGFzUmVzb2x2ZXIpXG4gICAgICByZXR1cm4gc3RhdGU7XG5cbiAgICByZXR1cm4gdXBkYXRlU3RhdGVXaXRoTmV3VGFibGUoc3RhdGUsIHRhYmxlSWQsIHtcbiAgICAgIGRhdGEsXG4gICAgICBoYXNSZXNvbHZlcixcbiAgICAgIGNvbm5lY3RvcnMsXG4gICAgICBoYXNQYWdpbmF0aW9uXG4gICAgfSk7XG4gIH0pLFxuXG4gIG9uKFFkVGFibGVBY3Rpb25zLmluaXRUYWJsZVN0YXRlU2VsZWN0ZWRSb3dzLCAoc3RhdGUsIHsgdGFibGVJZCwgc2VsZWN0ZWRSb3dzIH0pID0+IHtcbiAgICBpZiAoc3RhdGVbdGFibGVJZF0uc2VsZWN0ZWRSb3dzKSByZXR1cm4gc3RhdGU7XG5cbiAgICByZXR1cm4gdXBkYXRlVGFibGVTdGF0ZVNlbGVjdGVkUm93cyhzdGF0ZSwgdGFibGVJZCwgc2VsZWN0ZWRSb3dzKTtcbiAgfSksXG5cbiAgb24oUWRUYWJsZUFjdGlvbnMudXBkYXRlVGFibGVTdGF0ZURhdGEsIChzdGF0ZSwgeyB0YWJsZUlkLCBkYXRhIH0pID0+IHVwZGF0ZVRhYmxlU3RhdGVEYXRhKHN0YXRlLCB0YWJsZUlkLCBkYXRhKSksXG5cbiAgb24oUWRUYWJsZUFjdGlvbnMudXBkYXRlVGFibGVTdGF0ZVJvd1RvU2VsZWN0ZWQsIChzdGF0ZSwgeyB0YWJsZUlkLCByb3dJbmRleCB9KSA9PlxuICAgIHVwZGF0ZVRhYmxlU3RhdGVTZWxlY3RlZFJvd3Moc3RhdGUsIHRhYmxlSWQsIFtcbiAgICAgIC4uLihzdGF0ZVt0YWJsZUlkXS5zZWxlY3RlZFJvd3MgPz8gW10pLFxuICAgICAgc3RhdGVbdGFibGVJZF0uZGF0YVtyb3dJbmRleF0udWlkIHx8IHJvd0luZGV4XG4gICAgXSlcbiAgKSxcblxuICBvbihRZFRhYmxlQWN0aW9ucy51cGRhdGVUYWJsZVN0YXRlU2luZ2xlUm93VG9TZWxlY3RlZCwgKHN0YXRlLCB7IHRhYmxlSWQsIHJvd0luZGV4IH0pID0+XG4gICAgdXBkYXRlVGFibGVTdGF0ZVNlbGVjdGVkUm93cyhzdGF0ZSwgdGFibGVJZCwgW3N0YXRlW3RhYmxlSWRdLmRhdGFbcm93SW5kZXhdLnVpZCB8fCByb3dJbmRleF0pXG4gICksXG5cbiAgb24oUWRUYWJsZUFjdGlvbnMudXBkYXRlVGFibGVTdGF0ZVJvd1RvVW5zZWxlY3RlZCwgKHN0YXRlLCB7IHRhYmxlSWQsIHJvd0luZGV4IH0pID0+XG4gICAgdXBkYXRlVGFibGVTdGF0ZVNlbGVjdGVkUm93cyhcbiAgICAgIHN0YXRlLFxuICAgICAgdGFibGVJZCxcbiAgICAgIChzdGF0ZVt0YWJsZUlkXS5zZWxlY3RlZFJvd3MgPz8gW10pLmZpbHRlcihcbiAgICAgICAgcm93SWRlbnRpZmllciA9PiByb3dJZGVudGlmaWVyICE9PSByb3dJbmRleCAmJiByb3dJZGVudGlmaWVyICE9PSBzdGF0ZVt0YWJsZUlkXS5kYXRhW3Jvd0luZGV4XS51aWRcbiAgICAgIClcbiAgICApXG4gICksXG5cbiAgb24oXG4gICAgUWRUYWJsZUFjdGlvbnMudXBkYXRlVGFibGVTdGF0ZVJlY2VudFNlY29uZGFyeUFjdGlvbixcbiAgICAoc3RhdGUsIHsgdGFibGVJZCwgcmVjZW50U2Vjb25kYXJ5QWN0aW9uOiByZWNlbnRTZWNvbmRhcnlBY3Rpb24gfSkgPT5cbiAgICAgIHVwZGF0ZVRhYmxlU3RhdGVSZWNlbnRTZWNvbmRhcnlBY3Rpb24oc3RhdGUsIHRhYmxlSWQsIHJlY2VudFNlY29uZGFyeUFjdGlvbilcbiAgKSxcblxuICBvbihRZFRhYmxlQWN0aW9ucy5zZXR1cFBhZ2luYXRpb24sIChzdGF0ZSwgeyB0YWJsZUlkLCBwYWdlU2l6ZSB9KSA9PiBzZXR1cFBhZ2luYXRpb24oc3RhdGUsIHRhYmxlSWQsIHBhZ2VTaXplKSksXG5cbiAgb24oUWRUYWJsZUFjdGlvbnMuc2V0UGFnZSwgKHN0YXRlLCB7IHRhYmxlSWQsIHBhZ2VJbmRleCwgcGFnZVNpemUsIHRvdGFsQ291bnQsIGRhdGEgfSkgPT5cbiAgICBzZXRQYWdlKHN0YXRlLCB0YWJsZUlkLCBwYWdlSW5kZXgsIHBhZ2VTaXplLCB0b3RhbENvdW50LCBkYXRhKVxuICApLFxuXG4gIG9uKFFkVGFibGVBY3Rpb25zLnNldFBhZ2VTaXplLCAoc3RhdGUsIHsgdGFibGVJZCwgcGFnZVNpemUgfSkgPT4gc2V0UGFnZVNpemUoc3RhdGUsIHRhYmxlSWQsIHBhZ2VTaXplKSksXG5cbiAgb24oUWRUYWJsZUFjdGlvbnMuc2V0UGFnZVBhcmFtcywgKHN0YXRlLCB7IHRhYmxlSWQsIHBhZ2VJbmRleCwgcGFnZVNpemUsIHRvdGFsQ291bnQgfSkgPT5cbiAgICBzZXRQYWdlUGFyYW1zKHN0YXRlLCB0YWJsZUlkLCBwYWdlSW5kZXgsIHBhZ2VTaXplLCB0b3RhbENvdW50KVxuICApLFxuXG4gIG9uKFFkVGFibGVBY3Rpb25zLnNldHVwU29ydCwgKHN0YXRlLCB7IHRhYmxlSWQsIGNvbHVtbnMgfSkgPT4gc2V0dXBTb3J0KHN0YXRlLCB0YWJsZUlkLCBjb2x1bW5zKSksXG5cbiAgb24oUWRUYWJsZUFjdGlvbnMuc2V0U29ydCwgKHN0YXRlLCB7IHRhYmxlSWQsIGNvbHVtbiwgZGlyZWN0aW9uIH0pID0+IHNldFNvcnQoc3RhdGUsIHRhYmxlSWQsIGNvbHVtbiwgZGlyZWN0aW9uKSksXG5cbiAgb24oUWRUYWJsZUFjdGlvbnMudXBkYXRlU29ydCwgKHN0YXRlLCB7IHRhYmxlSWQsIGNvbHVtbiwgZGlyZWN0aW9uIH0pID0+XG4gICAgdXBkYXRlU29ydChzdGF0ZSwgdGFibGVJZCwgY29sdW1uLCBkaXJlY3Rpb24pXG4gICksXG5cbiAgb24oUWRUYWJsZUFjdGlvbnMuc2V0UmVxdWVzdFN0YXRlLCAoc3RhdGUsIHsgdGFibGVJZCwgcmVxdWVzdFN0YXRlIH0pID0+XG4gICAgc2V0UmVxdWVzdFN0YXRlKHN0YXRlLCB0YWJsZUlkLCByZXF1ZXN0U3RhdGUpXG4gICksXG5cbiAgb24oUWRUYWJsZUFjdGlvbnMuY29ubmVjdCwgKHN0YXRlLCB7IHRhYmxlSWQsIGNvbm5lY3Rvck5hbWUsIGNvbm5lY3RvckNyaXRlcmlhLCBjb25uZWN0b3JTdGF0ZSB9KSA9PlxuICAgIGNvbm5lY3Qoc3RhdGUsIHRhYmxlSWQsIGNvbm5lY3RvckNyaXRlcmlhLCBjb25uZWN0b3JOYW1lLCBjb25uZWN0b3JTdGF0ZSlcbiAgKSxcblxuICBvbihRZFRhYmxlQWN0aW9ucy5yZXNldENvbm5lY3RvclN0YXRlcywgKHN0YXRlLCB7IHRhYmxlSWQgfSkgPT4gcmVzZXRDb25uZWN0b3JTdGF0ZXMoc3RhdGUsIHRhYmxlSWQpKSxcblxuICBvbihRZFRhYmxlQWN0aW9ucy5kZWxldGVUYWJsZVN0YXRlLCAoc3RhdGUsIHsgdGFibGVJZCB9KSA9PiBvbWl0KHsgLi4uc3RhdGUgfSwgdGFibGVJZCkpXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gdGFibGVSZWR1Y2VyKHN0YXRlOiBhbnksIGFjdGlvbjogYW55KTogUWRUYWJsZVN0b3JlRGF0YTxhbnk+IHtcbiAgcmV0dXJuIF90YWJsZVJlZHVjZXIoc3RhdGUsIGFjdGlvbik7XG59XG4iXX0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcWQtdWkvc3JjL2xpYi90YWJsZS9zdG9yZS90YWJsZS5yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2hELE9BQU8sRUFDTCxPQUFPLEVBQ1Asb0JBQW9CLEVBQ3BCLE9BQU8sRUFDUCxhQUFhLEVBQ2IsV0FBVyxFQUNYLGVBQWUsRUFDZixPQUFPLEVBQ1AsZUFBZSxFQUNmLFNBQVMsRUFDVCxVQUFVLEVBQ1YsdUJBQXVCLEVBQ3ZCLG9CQUFvQixFQUNwQixxQ0FBcUMsRUFDckMsNEJBQTRCLEVBQzdCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUcvQixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQTBCLEVBQUUsQ0FBQztBQUV0RCxTQUFTLFVBQVUsQ0FBQyxJQUFhO0lBQy9CLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxDQUFDO0FBQ3RFLENBQUM7QUFFRCxNQUFNLGFBQWEsR0FBRyxhQUFhLENBQ2pDLFlBQVksRUFFWixFQUFFLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFO0lBQ3JHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRW5DLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElB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QUFDLGVBQWUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLENBQ3RFLGVBQWUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUM5QyxFQUVELEVBQUUsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFLENBQ2xHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxjQUFjLENBQUMsQ0FDMUUsRUFFRCxFQUFFLENBQUMsY0FBYyxDQUFDLG9CQUFvQixFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxFQUVyRyxFQUFFLENBQUMsY0FBYyxDQUFDLGdCQUFnQixFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FDekYsQ0FBQztBQUVGLE1BQU0sVUFBVSxZQUFZLENBQUMsS0FBVSxFQUFFLE1BQVc7SUFDbEQsT0FBTyxhQUFhLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3RDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZWR1Y2VyLCBvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcblxuaW1wb3J0IHsgUWRUYWJsZVN0b3JlRGF0YSB9IGZyb20gJy4uL21vZGVsL3RhYmxlLXN0b3JlLmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBjb25uZWN0LFxuICByZXNldENvbm5lY3RvclN0YXRlcyxcbiAgc2V0UGFnZSxcbiAgc2V0UGFnZVBhcmFtcyxcbiAgc2V0UGFnZVNpemUsXG4gIHNldFJlcXVlc3RTdGF0ZSxcbiAgc2V0U29ydCxcbiAgc2V0dXBQYWdpbmF0aW9uLFxuICBzZXR1cFNvcnQsXG4gIHVwZGF0ZVNvcnQsXG4gIHVwZGF0ZVN0YXRlV2l0aE5ld1RhYmxlLFxuICB1cGRhdGVUYWJsZVN0YXRlRGF0YSxcbiAgdXBkYXRlVGFibGVTdGF0ZVJlY2VudFNlY29uZGFyeUFjdGlvbixcbiAgdXBkYXRlVGFibGVTdGF0ZVNlbGVjdGVkUm93c1xufSBmcm9tICcuL3RhYmxlLXVwZGF0ZS5oZWxwZXInO1xuaW1wb3J0IHsgUWRUYWJsZUFjdGlvbnMgfSBmcm9tICcuL3RhYmxlLmFjdGlvbnMnO1xuaW1wb3J0IG9taXQgZnJvbSAnbG9kYXNoL29taXQnO1xuaW1wb3J0IHsgUWRUcmVlRGF0YSB9IGZyb20gJy4uLy4uL3RyZWUvbW9kZWwvdHJlZS1kYXRhLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjb25zdCBpbml0aWFsU3RhdGU6IFFkVGFibGVTdG9yZURhdGE8YW55PiA9IHt9O1xuXG5mdW5jdGlvbiBpc1RyZWVEYXRhKGRhdGE6IHVua25vd24pOiBkYXRhIGlzIFFkVHJlZURhdGE8c3RyaW5nPiB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KGRhdGEpICYmIGRhdGEuc29tZShpdGVtID0+ICdjaGlsZHJlbicgaW4gaXRlbSk7XG59XG5cbmNvbnN0IF90YWJsZVJlZHVjZXIgPSBjcmVhdGVSZWR1Y2VyKFxuICBpbml0aWFsU3RhdGUsXG5cbiAgb24oUWRUYWJsZUFjdGlvbnMuaW5pdFRhYmxlU3RhdGUsIChzdGF0ZSwgeyB0YWJsZUlkLCBkYXRhLCBoYXNSZXNvbHZlciwgY29ubmVjdG9ycywgaGFzUGFnaW5hdGlvbiB9KSA9PiB7XG4gICAgaWYgKGlzVHJlZURhdGEoZGF0YSkpIHJldHVybiBzdGF0ZTtcblxuICAgIGlmICgoc3RhdGVbdGFibGVJZF0gJiYgSlNPTi5zdHJpbmdpZnkoc3RhdGVbdGFibGVJZF0uZGF0YSkgPT09IEpTT04uc3RyaW5naWZ5KGRhdGEpKSB8fCBzdGF0ZVt0YWJsZUlkXT8uaGFzUmVzb2x2ZXIpXG4gICAgICByZXR1cm4gc3RhdGU7XG5cbiAgICByZXR1cm4gdXBkYXRlU3RhdGVXaXRoTmV3VGFibGUoc3RhdGUsIHRhYmxlSWQsIHtcbiAgICAgIGRhdGEsXG4gICAgICBoYXNSZXNvbHZlcixcbiAgICAgIGNvbm5lY3RvcnMsXG4gICAgICBoYXNQYWdpbmF0aW9uXG4gICAgfSk7XG4gIH0pLFxuXG4gIG9uKFFkVGFibGVBY3Rpb25zLmluaXRUYWJsZVN0YXRlU2VsZWN0ZWRSb3dzLCAoc3RhdGUsIHsgdGFibGVJZCwgc2VsZWN0ZWRSb3dzIH0pID0+IHtcbiAgICBpZiAoc3RhdGVbdGFibGVJZF0uc2VsZWN0ZWRSb3dzKSByZXR1cm4gc3RhdGU7XG5cbiAgICByZXR1cm4gdXBkYXRlVGFibGVTdGF0ZVNlbGVjdGVkUm93cyhzdGF0ZSwgdGFibGVJZCwgc2VsZWN0ZWRSb3dzKTtcbiAgfSksXG5cbiAgb24oUWRUYWJsZUFjdGlvbnMudXBkYXRlVGFibGVTdGF0ZURhdGEsIChzdGF0ZSwgeyB0YWJsZUlkLCBkYXRhIH0pID0+IHVwZGF0ZVRhYmxlU3RhdGVEYXRhKHN0YXRlLCB0YWJsZUlkLCBkYXRhKSksXG5cbiAgb24oUWRUYWJsZUFjdGlvbnMudXBkYXRlVGFibGVTdGF0ZVJvd1RvU2VsZWN0ZWQsIChzdGF0ZSwgeyB0YWJsZUlkLCByb3dJbmRleCB9KSA9PlxuICAgIHVwZGF0ZVRhYmxlU3RhdGVTZWxlY3RlZFJvd3Moc3RhdGUsIHRhYmxlSWQsIFtcbiAgICAgIC4uLihzdGF0ZVt0YWJsZUlkXS5zZWxlY3RlZFJvd3MgPz8gW10pLFxuICAgICAgc3RhdGVbdGFibGVJZF0uZGF0YVtyb3dJbmRleF0udWlkIHx8IHJvd0luZGV4XG4gICAgXSlcbiAgKSxcblxuICBvbihRZFRhYmxlQWN0aW9ucy51cGRhdGVUYWJsZVN0YXRlU2luZ2xlUm93VG9TZWxlY3RlZCwgKHN0YXRlLCB7IHRhYmxlSWQsIHJvd0luZGV4IH0pID0+XG4gICAgdXBkYXRlVGFibGVTdGF0ZVNlbGVjdGVkUm93cyhzdGF0ZSwgdGFibGVJZCwgW3N0YXRlW3RhYmxlSWRdLmRhdGFbcm93SW5kZXhdLnVpZCB8fCByb3dJbmRleF0pXG4gICksXG5cbiAgb24oUWRUYWJsZUFjdGlvbnMudXBkYXRlVGFibGVTdGF0ZVJvd1RvVW5zZWxlY3RlZCwgKHN0YXRlLCB7IHRhYmxlSWQsIHJvd0luZGV4IH0pID0+XG4gICAgdXBkYXRlVGFibGVTdGF0ZVNlbGVjdGVkUm93cyhcbiAgICAgIHN0YXRlLFxuICAgICAgdGFibGVJZCxcbiAgICAgIChzdGF0ZVt0YWJsZUlkXS5zZWxlY3RlZFJvd3MgPz8gW10pLmZpbHRlcihcbiAgICAgICAgcm93SWRlbnRpZmllciA9PiByb3dJZGVudGlmaWVyICE9PSByb3dJbmRleCAmJiByb3dJZGVudGlmaWVyICE9PSBzdGF0ZVt0YWJsZUlkXS5kYXRhW3Jvd0luZGV4XS51aWRcbiAgICAgIClcbiAgICApXG4gICksXG5cbiAgb24oXG4gICAgUWRUYWJsZUFjdGlvbnMudXBkYXRlVGFibGVTdGF0ZVJlY2VudFNlY29uZGFyeUFjdGlvbixcbiAgICAoc3RhdGUsIHsgdGFibGVJZCwgcmVjZW50U2Vjb25kYXJ5QWN0aW9uOiByZWNlbnRTZWNvbmRhcnlBY3Rpb24gfSkgPT5cbiAgICAgIHVwZGF0ZVRhYmxlU3RhdGVSZWNlbnRTZWNvbmRhcnlBY3Rpb24oc3RhdGUsIHRhYmxlSWQsIHJlY2VudFNlY29uZGFyeUFjdGlvbilcbiAgKSxcblxuICBvbihRZFRhYmxlQWN0aW9ucy5zZXR1cFBhZ2luYXRpb24sIChzdGF0ZSwgeyB0YWJsZUlkLCBwYWdlU2l6ZSB9KSA9PiBzZXR1cFBhZ2luYXRpb24oc3RhdGUsIHRhYmxlSWQsIHBhZ2VTaXplKSksXG5cbiAgb24oUWRUYWJsZUFjdGlvbnMuc2V0UGFnZSwgKHN0YXRlLCB7IHRhYmxlSWQsIHBhZ2VJbmRleCwgcGFnZVNpemUsIHRvdGFsQ291bnQsIGRhdGEgfSkgPT5cbiAgICBzZXRQYWdlKHN0YXRlLCB0YWJsZUlkLCBwYWdlSW5kZXgsIHBhZ2VTaXplLCB0b3RhbENvdW50LCBkYXRhKVxuICApLFxuXG4gIG9uKFFkVGFibGVBY3Rpb25zLnNldFBhZ2VTaXplLCAoc3RhdGUsIHsgdGFibGVJZCwgcGFnZVNpemUgfSkgPT4gc2V0UGFnZVNpemUoc3RhdGUsIHRhYmxlSWQsIHBhZ2VTaXplKSksXG5cbiAgb24oUWRUYWJsZUFjdGlvbnMuc2V0UGFnZVBhcmFtcywgKHN0YXRlLCB7IHRhYmxlSWQsIHBhZ2VJbmRleCwgcGFnZVNpemUsIHRvdGFsQ291bnQgfSkgPT5cbiAgICBzZXRQYWdlUGFyYW1zKHN0YXRlLCB0YWJsZUlkLCBwYWdlSW5kZXgsIHBhZ2VTaXplLCB0b3RhbENvdW50KVxuICApLFxuXG4gIG9uKFFkVGFibGVBY3Rpb25zLnNldHVwU29ydCwgKHN0YXRlLCB7IHRhYmxlSWQsIGNvbHVtbnMgfSkgPT4gc2V0dXBTb3J0KHN0YXRlLCB0YWJsZUlkLCBjb2x1bW5zKSksXG5cbiAgb24oUWRUYWJsZUFjdGlvbnMuc2V0U29ydCwgKHN0YXRlLCB7IHRhYmxlSWQsIGNvbHVtbiwgZGlyZWN0aW9uIH0pID0+IHNldFNvcnQoc3RhdGUsIHRhYmxlSWQsIGNvbHVtbiwgZGlyZWN0aW9uKSksXG5cbiAgb24oUWRUYWJsZUFjdGlvbnMudXBkYXRlU29ydCwgKHN0YXRlLCB7IHRhYmxlSWQsIGNvbHVtbiwgZGlyZWN0aW9uIH0pID0+XG4gICAgdXBkYXRlU29ydChzdGF0ZSwgdGFibGVJZCwgY29sdW1uLCBkaXJlY3Rpb24pXG4gICksXG5cbiAgb24oUWRUYWJsZUFjdGlvbnMuc2V0UmVxdWVzdFN0YXRlLCAoc3RhdGUsIHsgdGFibGVJZCwgcmVxdWVzdFN0YXRlIH0pID0+XG4gICAgc2V0UmVxdWVzdFN0YXRlKHN0YXRlLCB0YWJsZUlkLCByZXF1ZXN0U3RhdGUpXG4gICksXG5cbiAgb24oUWRUYWJsZUFjdGlvbnMuY29ubmVjdCwgKHN0YXRlLCB7IHRhYmxlSWQsIGNvbm5lY3Rvck5hbWUsIGNvbm5lY3RvckNyaXRlcmlhLCBjb25uZWN0b3JTdGF0ZSB9KSA9PlxuICAgIGNvbm5lY3Qoc3RhdGUsIHRhYmxlSWQsIGNvbm5lY3RvckNyaXRlcmlhLCBjb25uZWN0b3JOYW1lLCBjb25uZWN0b3JTdGF0ZSlcbiAgKSxcblxuICBvbihRZFRhYmxlQWN0aW9ucy5yZXNldENvbm5lY3RvclN0YXRlcywgKHN0YXRlLCB7IHRhYmxlSWQgfSkgPT4gcmVzZXRDb25uZWN0b3JTdGF0ZXMoc3RhdGUsIHRhYmxlSWQpKSxcblxuICBvbihRZFRhYmxlQWN0aW9ucy5kZWxldGVUYWJsZVN0YXRlLCAoc3RhdGUsIHsgdGFibGVJZCB9KSA9PiBvbWl0KHsgLi4uc3RhdGUgfSwgdGFibGVJZCkpXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gdGFibGVSZWR1Y2VyKHN0YXRlOiBhbnksIGFjdGlvbjogYW55KTogUWRUYWJsZVN0b3JlRGF0YTxhbnk+IHtcbiAgcmV0dXJuIF90YWJsZVJlZHVjZXIoc3RhdGUsIGFjdGlvbik7XG59XG4iXX0=
@@ -5,7 +5,7 @@ import { DialogModule } from '@angular/cdk/dialog';
5
5
  import * as i1 from '@angular/common';
6
6
  import { CommonModule, NgFor, NgIf, NgClass, NgTemplateOutlet, AsyncPipe } from '@angular/common';
7
7
  import * as i3 from 'rxjs';
8
- import { BehaviorSubject, pairwise, from, switchMap, map as map$1, Subject, throwError, of, ReplaySubject, merge, fromEvent, isObservable, NEVER, Observable, EMPTY, shareReplay, Subscription, distinctUntilChanged as distinctUntilChanged$1, debounce, timer, startWith as startWith$1, debounceTime as debounceTime$1, takeUntil as takeUntil$1, asyncScheduler, firstValueFrom, combineLatest, concat, take as take$1, delay, first, scan, tap as tap$1, iif, delayWhen, combineLatestWith, withLatestFrom, async, filter as filter$1 } from 'rxjs';
8
+ import { BehaviorSubject, pairwise, from, switchMap, map as map$1, Subject, throwError, of, ReplaySubject, merge, fromEvent, isObservable, NEVER, Observable, EMPTY, shareReplay, Subscription, distinctUntilChanged as distinctUntilChanged$1, debounce, timer, startWith as startWith$1, debounceTime as debounceTime$1, takeUntil as takeUntil$1, asyncScheduler, firstValueFrom, combineLatest, concat, take as take$1, delay, first, scan, tap as tap$1, iif, delayWhen, queueScheduler, combineLatestWith, withLatestFrom, async, filter as filter$1 } from 'rxjs';
9
9
  import { map, takeUntil, take, filter, catchError, debounceTime, startWith, distinctUntilChanged, concatMap, tap, observeOn, skip, delay as delay$1, mergeMap, switchMap as switchMap$1, pairwise as pairwise$1 } from 'rxjs/operators';
10
10
  import { v4 } from 'uuid';
11
11
  import * as i1$3 from '@ngx-translate/core';
@@ -33312,7 +33312,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
33312
33312
  class QdFormGroupManagerService {
33313
33313
  _formGroups = new Map();
33314
33314
  _formGroupsSnapshot = new Map();
33315
- _formGroupsChanged$ = new Subject();
33315
+ _formGroupsChanged$ = new BehaviorSubject(undefined);
33316
33316
  setFormGroup(key, formGroup) {
33317
33317
  this._formGroups.set(key, formGroup);
33318
33318
  this._formGroupsChanged$.next();
@@ -33339,7 +33339,7 @@ class QdFormGroupManagerService {
33339
33339
  return !this._formGroups.has(key);
33340
33340
  }
33341
33341
  $areFormGroupsValid() {
33342
- return this._formGroupsChanged$.pipe(startWith(void 0), switchMap$1(() => {
33342
+ return this._formGroupsChanged$.pipe(observeOn(queueScheduler), switchMap$1(() => {
33343
33343
  if (!this.hasFormGroups())
33344
33344
  return of(false);
33345
33345
  const obs = Array.from(this._formGroups.values()).map(fg => fg.statusChanges.pipe(startWith(fg.status), map(() => this.areFormGroupsValid(fg))));
@@ -33347,7 +33347,7 @@ class QdFormGroupManagerService {
33347
33347
  }));
33348
33348
  }
33349
33349
  $hasValuesChanged() {
33350
- return this._formGroupsChanged$.pipe(startWith(void 0), switchMap$1(() => {
33350
+ return this._formGroupsChanged$.pipe(observeOn(queueScheduler), switchMap$1(() => {
33351
33351
  if (!this.hasFormGroups())
33352
33352
  return of(false);
33353
33353
  const obs = Array.from(this._formGroups.entries()).map(([key, fg]) => fg.valueChanges.pipe(startWith(fg.getRawValue()), map(currentValues => {
@@ -33375,6 +33375,27 @@ class QdFormGroupManagerService {
33375
33375
  }
33376
33376
  });
33377
33377
  });
33378
+ this.cancelPendingAsyncValidation();
33379
+ }
33380
+ /**
33381
+ * Cancels any in-flight async validators on all registered form groups.
33382
+ */
33383
+ cancelPendingAsyncValidation() {
33384
+ this._formGroups.forEach(fg => this.cancelPendingAsyncValidatorsRecursive(fg));
33385
+ }
33386
+ cancelPendingAsyncValidatorsRecursive(control) {
33387
+ if (control instanceof FormGroup) {
33388
+ Object.values(control.controls).forEach(c => this.cancelPendingAsyncValidatorsRecursive(c));
33389
+ }
33390
+ else if (control instanceof FormArray) {
33391
+ control.controls.forEach(c => this.cancelPendingAsyncValidatorsRecursive(c));
33392
+ }
33393
+ if (control.status === 'PENDING') {
33394
+ const asyncValidator = control.asyncValidator;
33395
+ control.clearAsyncValidators();
33396
+ control.updateValueAndValidity();
33397
+ control.setAsyncValidators(asyncValidator);
33398
+ }
33378
33399
  }
33379
33400
  resetFormArrayToValues(array, newValues) {
33380
33401
  if (!Array.isArray(newValues))
@@ -33639,10 +33660,13 @@ class QdPageObjectHeaderComponent {
33639
33660
  .$hasValuesChanged()
33640
33661
  .pipe(take(1))
33641
33662
  .subscribe(hasChanged => {
33642
- if (hasChanged)
33663
+ if (hasChanged) {
33643
33664
  this.openCancelDialog();
33644
- else
33665
+ }
33666
+ else {
33667
+ this.formGroupManagerService.cancelPendingAsyncValidation();
33645
33668
  this.pageStoreService.toggleViewonly(true);
33669
+ }
33646
33670
  });
33647
33671
  }
33648
33672
  save() {
@@ -34714,6 +34738,7 @@ class QdPageSubmitActionService {
34714
34738
  _submitHandler;
34715
34739
  _isVisible = true;
34716
34740
  _destroyed$ = new Subject();
34741
+ _cancelTrackFormValidity$ = new Subject();
34717
34742
  constructor(footerService, formGroupManagerService) {
34718
34743
  this.footerService = footerService;
34719
34744
  this.formGroupManagerService = formGroupManagerService;
@@ -34741,9 +34766,10 @@ class QdPageSubmitActionService {
34741
34766
  };
34742
34767
  }
34743
34768
  trackFormValidity() {
34769
+ this._cancelTrackFormValidity$.next();
34744
34770
  this.formGroupManagerService
34745
34771
  .$areFormGroupsValid()
34746
- .pipe(takeUntil(this._destroyed$), distinctUntilChanged())
34772
+ .pipe(takeUntil(this._cancelTrackFormValidity$), takeUntil(this._destroyed$), distinctUntilChanged())
34747
34773
  .subscribe(isValid => this.updateSubmitButtonState(isValid));
34748
34774
  }
34749
34775
  updateSubmitButtonState(isValid) {
@@ -35181,6 +35207,7 @@ class QdPageComponent {
35181
35207
  projectionGuardMessage = 'QD-UI | QdPage - This content is not supported. Please use QdSectionAdapterDirective for custom content projection.';
35182
35208
  _isInitialized = false;
35183
35209
  _destroyed$ = new Subject();
35210
+ _cancelSubmitValidation$ = new Subject();
35184
35211
  get isControlPanelVisible() {
35185
35212
  return this.controlPanel !== undefined && this.controlPanel.config?.isHidden !== true;
35186
35213
  }
@@ -35326,9 +35353,10 @@ class QdPageComponent {
35326
35353
  .subscribe();
35327
35354
  }
35328
35355
  initSubmitValidation() {
35356
+ this._cancelSubmitValidation$.next();
35329
35357
  this.formGroupManagerService
35330
35358
  .$areFormGroupsValid()
35331
- .pipe(takeUntil(this._destroyed$), tap(isValid => {
35359
+ .pipe(takeUntil(this._cancelSubmitValidation$), takeUntil(this._destroyed$), tap(isValid => {
35332
35360
  const submitDisabledInfoText = this.config.pageType === 'inspect' ? this.config.pageTypeConfig?.submit?.disabledInfo : undefined;
35333
35361
  this.footerService.updateActions([
35334
35362
  {