@gravitee/ui-particles-angular 7.58.0 → 7.59.0-apim-5436-pattern-error-message-580f329

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.
@@ -13,9 +13,9 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { Component, EventEmitter, Host, HostBinding, Input, Optional, Output, } from '@angular/core';
16
+ import { ChangeDetectionStrategy, Component, EventEmitter, Host, HostBinding, Input, Optional, Output, } from '@angular/core';
17
17
  import { FormGroup } from '@angular/forms';
18
- import { cloneDeep, isEmpty, isObject } from 'lodash';
18
+ import { cloneDeep, isEmpty, isEqual, isObject } from 'lodash';
19
19
  import { debounceTime, delay, distinctUntilChanged, filter, map, startWith, take, takeUntil, tap } from 'rxjs/operators';
20
20
  import { merge, ReplaySubject, Subject } from 'rxjs';
21
21
  import { GIO_FORM_FOCUS_INVALID_IGNORE_SELECTOR } from '../gio-form-focus-first-invalid/gio-form-focus-first-invalid-ignore.directive';
@@ -95,12 +95,14 @@ export class GioFormJsonSchemaComponent {
95
95
  this.ngControl?.control?.addAsyncValidators(() => {
96
96
  return this.isValid$.pipe(take(1), map(isValid => (isValid ? null : { invalid: true })), takeUntil(this.unsubscribe$));
97
97
  });
98
- // Init control value with default value without emit event
99
- this.formGroup.valueChanges.pipe(take(1), takeUntil(this.unsubscribe$)).subscribe(value => {
98
+ // Sync control value with default value (without emit event) as long as the component is not ready
99
+ // When formly is initialised, it emits several values as it builds up step by step.
100
+ this.formGroup.valueChanges
101
+ .pipe(distinctUntilChanged(isEqual), tap(value => {
100
102
  this.ngControl?.control?.reset(value, { emitEvent: false });
101
- this.changeDetectorRef.markForCheck();
102
- this.changeDetectorRef.detectChanges();
103
- });
103
+ }), takeUntil(this.ready), takeUntil(this.unsubscribe$))
104
+ .subscribe();
105
+ // Avoid ExpressionChangedAfterItHasBeenCheckedError on project
104
106
  this.changeDetectorRef.markForCheck();
105
107
  this.changeDetectorRef.detectChanges();
106
108
  // Subscribe to state changes to manage touches, status and value
@@ -182,10 +184,10 @@ export class GioFormJsonSchemaComponent {
182
184
  }
183
185
  }
184
186
  GioFormJsonSchemaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormJsonSchemaComponent, deps: [{ token: i1.GioFormlyJsonSchemaService }, { token: i0.ElementRef }, { token: i2.FocusMonitor }, { token: i0.ChangeDetectorRef }, { token: i3.NgControl, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
185
- GioFormJsonSchemaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFormJsonSchemaComponent, selector: "gio-form-json-schema", inputs: { jsonSchema: "jsonSchema", options: "options" }, outputs: { ready: "ready" }, host: { properties: { "attr.gioFormFocusInvalidIgnore": "this.gioFormFocusInvalidIgnore" } }, usesOnChanges: true, ngImport: i0, template: `<formly-form *ngIf="formGroup" [fields]="fields" [options]="options" [form]="formGroup" [model]="model"></formly-form>`, isInline: true, styles: ["::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-outline:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)){padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-outline:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)) .mat-form-field-wrapper{padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-fill:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)){padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-fill:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)) .mat-form-field-wrapper{margin-bottom:-1.34375em}\n"], components: [{ type: i4.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
187
+ GioFormJsonSchemaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFormJsonSchemaComponent, selector: "gio-form-json-schema", inputs: { jsonSchema: "jsonSchema", options: "options" }, outputs: { ready: "ready" }, host: { properties: { "attr.gioFormFocusInvalidIgnore": "this.gioFormFocusInvalidIgnore" } }, usesOnChanges: true, ngImport: i0, template: `<formly-form *ngIf="formGroup" [fields]="fields" [options]="options" [form]="formGroup" [model]="model"></formly-form>`, isInline: true, styles: ["::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-outline:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)){padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-outline:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)) .mat-form-field-wrapper{padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-fill:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)){padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-fill:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)) .mat-form-field-wrapper{margin-bottom:-1.34375em}\n"], components: [{ type: i4.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
186
188
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormJsonSchemaComponent, decorators: [{
187
189
  type: Component,
188
- args: [{ selector: 'gio-form-json-schema', template: `<formly-form *ngIf="formGroup" [fields]="fields" [options]="options" [form]="formGroup" [model]="model"></formly-form>`, styles: ["::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-outline:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)){padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-outline:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)) .mat-form-field-wrapper{padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-fill:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)){padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-fill:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)) .mat-form-field-wrapper{margin-bottom:-1.34375em}\n"] }]
190
+ args: [{ selector: 'gio-form-json-schema', template: `<formly-form *ngIf="formGroup" [fields]="fields" [options]="options" [form]="formGroup" [model]="model"></formly-form>`, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-outline:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)){padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-outline:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)) .mat-form-field-wrapper{padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-fill:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)){padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-fill:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)) .mat-form-field-wrapper{margin-bottom:-1.34375em}\n"] }]
189
191
  }], ctorParameters: function () { return [{ type: i1.GioFormlyJsonSchemaService }, { type: i0.ElementRef }, { type: i2.FocusMonitor }, { type: i0.ChangeDetectorRef }, { type: i3.NgControl, decorators: [{
190
192
  type: Host
191
193
  }, {
@@ -200,4 +202,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
200
202
  }], ready: [{
201
203
  type: Output
202
204
  }] } });
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWZvcm0tanNvbi1zY2hlbWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcGFydGljbGVzLWFuZ3VsYXIvc3JjL2xpYi9naW8tZm9ybS1qc29uLXNjaGVtYS9naW8tZm9ybS1qc29uLXNjaGVtYS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBR0wsU0FBUyxFQUVULFlBQVksRUFDWixJQUFJLEVBQ0osV0FBVyxFQUNYLEtBQUssRUFJTCxRQUFRLEVBQ1IsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsU0FBUyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekgsT0FBTyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3JELE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLCtFQUErRSxDQUFDOzs7Ozs7O0FBVXZJLE1BQU0sT0FBTywwQkFBMEI7SUE4Q3JDLFlBQ21CLG1CQUErQyxFQUMvQyxLQUFpQixFQUNqQixFQUFnQixFQUNoQixpQkFBb0MsRUFDakIsU0FBcUI7UUFKeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUE0QjtRQUMvQyxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLE9BQUUsR0FBRixFQUFFLENBQWM7UUFDaEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNqQixjQUFT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O0lBQ3JCLGdCQUFnQixDQUFFLFVBQW1CO1FBQzFDLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUU7WUFDbEMsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFFN0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN4RyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRU4sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDOzt3SEFoTlUsMEJBQTBCOzRHQUExQiwwQkFBMEIsc1FBSDNCLHdIQUF3SDs0RkFHdkgsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHNCQUFzQixZQUN0Qix3SEFBd0g7OzBCQXNEL0gsSUFBSTs7MEJBQUksUUFBUTs0Q0ExQ1gseUJBQXlCO3NCQURoQyxXQUFXO3VCQUFDLFFBQVEsc0NBQXNDLEVBQUU7Z0JBSWxELFVBQVU7c0JBRHBCLEtBQUs7Z0JBVUMsT0FBTztzQkFEYixLQUFLO2dCQU1DLEtBQUs7c0JBRFgsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjMgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3QsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUdyb3VwLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZywgRm9ybWx5Rm9ybU9wdGlvbnMgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgaXNFbXB0eSwgaXNPYmplY3QgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkZWxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBzdGFydFdpdGgsIHRha2UsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgbWVyZ2UsIFJlcGxheVN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcblxuaW1wb3J0IHsgR0lPX0ZPUk1fRk9DVVNfSU5WQUxJRF9JR05PUkVfU0VMRUNUT1IgfSBmcm9tICcuLi9naW8tZm9ybS1mb2N1cy1maXJzdC1pbnZhbGlkL2dpby1mb3JtLWZvY3VzLWZpcnN0LWludmFsaWQtaWdub3JlLmRpcmVjdGl2ZSc7XG5cbmltcG9ydCB7IEdpb0pzb25TY2hlbWEgfSBmcm9tICcuL21vZGVsL0dpb0pzb25TY2hlbWEnO1xuaW1wb3J0IHsgR2lvRm9ybWx5SnNvblNjaGVtYVNlcnZpY2UgfSBmcm9tICcuL2dpby1mb3JtbHktanNvbi1zY2hlbWEuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dpby1mb3JtLWpzb24tc2NoZW1hJyxcbiAgdGVtcGxhdGU6IGA8Zm9ybWx5LWZvcm0gKm5nSWY9XCJmb3JtR3JvdXBcIiBbZmllbGRzXT1cImZpZWxkc1wiIFtvcHRpb25zXT1cIm9wdGlvbnNcIiBbZm9ybV09XCJmb3JtR3JvdXBcIiBbbW9kZWxdPVwibW9kZWxcIj48L2Zvcm1seS1mb3JtPmAsXG4gIHN0eWxlVXJsczogWycuL2dpby1mb3JtLWpzb24tc2NoZW1hLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdpb0Zvcm1Kc29uU2NoZW1hQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uQ2hhbmdlcywgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgc3RhdGljIGlzRGlzcGxheWFibGUoanNvblNjaGVtYTogR2lvSnNvblNjaGVtYSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHByb3BlcnRpZXMgPSBbJ3Byb3BlcnRpZXMnLCAnb25lT2YnLCAnYW55T2YnLCAnYWxsT2YnLCAnJHJlZicsICdpdGVtcyddIGFzIGNvbnN0O1xuXG4gICAgcmV0dXJuIGlzT2JqZWN0KGpzb25TY2hlbWEpICYmIHByb3BlcnRpZXMuc29tZShwcm9wZXJ0eSA9PiAhaXNFbXB0eShqc29uU2NoZW1hW3Byb3BlcnR5XSkpO1xuICB9XG4gIHByaXZhdGUgdW5zdWJzY3JpYmUkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBASG9zdEJpbmRpbmcoYGF0dHIuJHtHSU9fRk9STV9GT0NVU19JTlZBTElEX0lHTk9SRV9TRUxFQ1RPUn1gKVxuICBwcml2YXRlIGdpb0Zvcm1Gb2N1c0ludmFsaWRJZ25vcmUgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQganNvblNjaGVtYShqc29uU2NoZW1hOiBHaW9Kc29uU2NoZW1hKSB7XG4gICAgaWYgKGlzT2JqZWN0KGpzb25TY2hlbWEpKSB7XG4gICAgICB0aGlzLmZpZWxkcyA9IFt0aGlzLmdpb0Zvcm1seUpzb25TY2hlbWEudG9Gb3JtbHlGaWVsZENvbmZpZyhqc29uU2NoZW1hKV07XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG9wdGlvbnM6IEZvcm1seUZvcm1PcHRpb25zID0ge307XG5cbiAgLy8gV2hlbiB0cnVlIHRoZSBmb3JtIGlzIHJlYWR5IGFuZCBjb250cm9sIHN0YXR1cyBhcmUgdXAtdG8tZGF0ZVxuICAvLyBVc2VmdWwgdG8ga25vdyB3aGVuIGluaXRpYWwgY29udHJvbCBzdGF0dXMgY2FuIGJlIHVzZWRcbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBwcml2YXRlIGlzUmVhZHkgPSBmYWxzZTtcblxuICBwdWJsaWMgbW9kZWw6IHVua25vd24gPSB7fTtcblxuICBwdWJsaWMgZmllbGRzOiBGb3JtbHlGaWVsZENvbmZpZ1tdID0gW107XG5cbiAgcHVibGljIGlzRGlzYWJsZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgX29uQ2hhbmdlOiAodmFsdWU6IHVua25vd24gfCBudWxsKSA9PiB2b2lkID0gKCkgPT4gKHt9KTtcblxuICBwdWJsaWMgX29uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+ICh7fSk7XG5cbiAgcHJpdmF0ZSB0b3VjaGVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBpc1ZhbGlkJCA9IG5ldyBSZXBsYXlTdWJqZWN0KDEpOyAvLyBXYWl0IEpzb25TY2hlbWEgdG8gYmUgbG9hZGVkIHRvIGNoZWNrIGlmIGl0J3MgdmFsaWRcblxuICBwcml2YXRlIHN0YXRlQ2hhbmdlcyQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZ2lvRm9ybWx5SnNvblNjaGVtYTogR2lvRm9ybWx5SnNvblNjaGVtYVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZtOiBGb2N1c01vbml0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQEhvc3QoKSBAT3B0aW9uYWwoKSBwdWJsaWMgcmVhZG9ubHkgbmdDb250cm9sPzogTmdDb250cm9sLFxuICApIHtcbiAgICBpZiAobmdDb250cm9sKSB7XG4gICAgICAvLyBTZXR0aW5nIHRoZSB2YWx1ZSBhY2Nlc3NvciBkaXJlY3RseSAoaW5zdGVhZCBvZiB1c2luZ1xuICAgICAgLy8gdGhlIHByb3ZpZGVycyBgTkdfVkFMVUVfQUNDRVNTT1JgKSB0byBhdm9pZCBydW5uaW5nIGludG8gYSBjaXJjdWxhciBpbXBvcnQuXG4gICAgICBuZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuXG4gICAgLy8gV2hlbiB0aGUgdXNlciBpbnRlcmFjdCB3aXRoIHRoZSBmb3JtLCBtYXJrIGl0IGFzIHRvdWNoZWRcbiAgICBmbS5tb25pdG9yKGVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRydWUpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmlzRGlzYWJsZWQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gICAgICAgIHRoaXMudG91Y2hlZCA9IHRydWU7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXMuanNvblNjaGVtYSkge1xuICAgICAgdGhpcy5pc1JlYWR5ID0gZmFsc2U7XG4gICAgICB0aGlzLnJlYWR5Lm5leHQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBXaGVuIHRoZSBwYXJlbnQgZm9ybSBpcyB0b3VjaGVkLCBtYXJrIGFsbCB0aGUgc3ViIGZvcm1Hcm91cCBhcyB0b3VjaGVkIGlmIG5vdCBhbHJlYWR5IHRvdWNoZWRcbiAgICBjb25zdCBwYXJlbnRDb250cm9sID0gdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnBhcmVudDtcbiAgICBwYXJlbnRDb250cm9sPy5zdGF0dXNDaGFuZ2VzXG4gICAgICA/LnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiBwYXJlbnRDb250cm9sPy50b3VjaGVkKSxcbiAgICAgICAgZmlsdGVyKHRvdWNoZWQgPT4gdG91Y2hlZCA9PT0gdHJ1ZSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNEaXNhYmxlZCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZvcm1Hcm91cC5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzJC5uZXh0KCk7XG4gICAgICB9KTtcbiAgICAvLyBBZGQgYXN5bmMgdmFsaWRhdG9yIHRvIHRoZSBwYXJlbnRcbiAgICB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8uYWRkQXN5bmNWYWxpZGF0b3JzKCgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQkLnBpcGUoXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIG1hcChpc1ZhbGlkID0+IChpc1ZhbGlkID8gbnVsbCA6IHsgaW52YWxpZDogdHJ1ZSB9KSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCksXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgLy8gSW5pdCBjb250cm9sIHZhbHVlIHdpdGggZGVmYXVsdCB2YWx1ZSB3aXRob3V0IGVtaXQgZXZlbnRcbiAgICB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlKDEpLCB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnJlc2V0KHZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgIC8vIFN1YnNjcmliZSB0byBzdGF0ZSBjaGFuZ2VzIHRvIG1hbmFnZSB0b3VjaGVzLCBzdGF0dXMgYW5kIHZhbHVlXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICBjb25zdCB7IHN0YXR1cywgdmFsdWUsIHRvdWNoZWQgfSA9IHRoaXMuZm9ybUdyb3VwO1xuICAgICAgICAgIGlmICh0aGlzLmlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoc3RhdHVzID09PSAnVkFMSUQnKSB7XG4gICAgICAgICAgICB0aGlzLmlzVmFsaWQkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzdGF0dXMgPT09ICdJTlZBTElEJykge1xuICAgICAgICAgICAgdGhpcy5pc1ZhbGlkJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodG91Y2hlZCAmJiAhdGhpcy50b3VjaGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICAgICAgICAgIHRoaXMudG91Y2hlZCA9IHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRoaXMudG91Y2hlZCkge1xuICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UodmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIGRlbGF5KDApLFxuICAgICAgICAvLyBLZWVwIGF0IHRoZSBlbmRcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe1xuICAgICAgICAgIGVtaXRFdmVudDogZmFsc2UsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEFmdGVyIHRoZSBmaXJzdCBzdGF0ZSBjaGFuZ2UsIHRoZSBmb3JtIGlzIHJlYWR5XG4gICAgICAgIGlmICghdGhpcy5pc1JlYWR5KSB7XG4gICAgICAgICAgdGhpcy5pc1JlYWR5ID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnJlYWR5LmVtaXQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvLyBHcm91cCBhbGwgdmFsdWVDaGFuZ2VzIGV2ZW50cyBlbWl0IGJ5IGZvcm1seSBpbiBhIHNpbmdsZSBvbmVcbiAgICBtZXJnZSh0aGlzLmZvcm1Hcm91cC5zdGF0dXNDaGFuZ2VzLCB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXMpXG4gICAgICAucGlwZShcbiAgICAgICAgLy8gRm9yY2UgZmlzdCBzdGF0ZUNoYW5nZXMkXG4gICAgICAgIHN0YXJ0V2l0aCh7fSksXG4gICAgICAgIGRlYm91bmNlVGltZSgxMDApLFxuICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzJC5uZXh0KCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgdGhpcy51bnN1YnNjcmliZSQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmZtLnN0b3BNb25pdG9yaW5nKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiB1bmtub3duKTogdm9pZCB7XG4gICAgdGhpcy5tb2RlbCA9IGNsb25lRGVlcCh2YWx1ZSkgPz8ge307XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHVua25vd24gfCBudWxsKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZCA9PT0gaXNEaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlzRGlzYWJsZWQgPyB0aGlzLmZvcm1Hcm91cC5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KSA6IHRoaXMuZm9ybUdyb3VwLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcyQubmV4dCgpO1xuICAgIH0sIDApO1xuXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMkLm5leHQoKTtcbiAgfVxufVxuIl19
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWZvcm0tanNvbi1zY2hlbWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcGFydGljbGVzLWFuZ3VsYXIvc3JjL2xpYi9naW8tZm9ybS1qc29uLXNjaGVtYS9naW8tZm9ybS1qc29uLXNjaGVtYS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osSUFBSSxFQUNKLFdBQVcsRUFDWCxLQUFLLEVBSUwsUUFBUSxFQUNSLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFNBQVMsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBRTVFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6SCxPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHckQsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sK0VBQStFLENBQUM7Ozs7Ozs7QUFXdkksTUFBTSxPQUFPLDBCQUEwQjtJQThDckMsWUFDbUIsbUJBQStDLEVBQy9DLEtBQWlCLEVBQ2pCLEVBQWdCLEVBQ2hCLGlCQUFvQyxFQUNqQixTQUFxQjtRQUp4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQTRCO1FBQy9DLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsT0FBRSxHQUFGLEVBQUUsQ0FBYztRQUNoQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ2pCLGNBQVMsR0FBVCxTQUFTLENBQVk7UUE3Q25ELGlCQUFZLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFHbEQsOEJBQXlCLEdBQUcsSUFBSSxDQUFDO1FBU2xDLGNBQVMsR0FBYyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUd6QyxZQUFPLEdBQXNCLEVBQUUsQ0FBQztRQUV2QyxnRUFBZ0U7UUFDaEUseURBQXlEO1FBRWxELFVBQUssR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRW5DLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFakIsVUFBSyxHQUFZLEVBQUUsQ0FBQztRQUVwQixXQUFNLEdBQXdCLEVBQUUsQ0FBQztRQUVqQyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRW5CLGNBQVMsR0FBb0MsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV4RCxlQUFVLEdBQWUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVuQyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCLGFBQVEsR0FBRyxJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHNEQUFzRDtRQUV2RixrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFTMUMsSUFBSSxTQUFTLEVBQUU7WUFDYix3REFBd0Q7WUFDeEQsOEVBQThFO1lBQzlFLFNBQVMsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1NBQ2hDO1FBRUQsMkRBQTJEO1FBQzNELEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUM7YUFDbEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDbEMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDbkIsT0FBTzthQUNSO1lBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQXBFTSxNQUFNLENBQUMsYUFBYSxDQUFDLFVBQXlCO1FBQ25ELE1BQU0sVUFBVSxHQUFHLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQVUsQ0FBQztRQUV2RixPQUFPLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBTUQsSUFDVyxVQUFVLENBQUMsVUFBeUI7UUFDN0MsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1NBQzFFO0lBQ0gsQ0FBQztJQXVETSxXQUFXLENBQUMsT0FBc0I7UUFDdkMsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUVNLFFBQVE7UUFDYixnR0FBZ0c7UUFDaEcsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDO1FBQ3RELGFBQWEsRUFBRSxhQUFhO1lBQzFCLEVBQUUsSUFBSSxDQUNKLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLEVBQ2pDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsRUFDbkMsb0JBQW9CLEVBQUUsRUFDdEIsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FDN0I7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNuQixPQUFPO2FBQ1I7WUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUNMLG9DQUFvQztRQUNwQyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxHQUFHLEVBQUU7WUFDL0MsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDdkIsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFDcEQsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FDN0IsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsbUdBQW1HO1FBQ25HLG9GQUFvRjtRQUNwRixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVk7YUFDeEIsSUFBSSxDQUNILG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUM3QixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDVixJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFDckIsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FDN0I7YUFDQSxTQUFTLEVBQUUsQ0FBQztRQUVmLCtEQUErRDtRQUMvRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXZDLGlFQUFpRTtRQUNqRSxJQUFJLENBQUMsYUFBYTthQUNmLElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNsRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ25CLE9BQU87YUFDUjtZQUVELElBQUksTUFBTSxLQUFLLE9BQU8sRUFBRTtnQkFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUI7WUFDRCxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzNCO1lBRUQsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUM1QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO2FBQ3JCO1lBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3ZCO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNSLGtCQUFrQjtRQUNsQixTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUM3QjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixDQUFDO2dCQUM5QyxTQUFTLEVBQUUsS0FBSzthQUNqQixDQUFDLENBQUM7WUFFSCxrREFBa0Q7WUFDbEQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO2dCQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN2QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLGVBQWU7UUFDcEIsK0RBQStEO1FBQy9ELEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQzthQUM3RCxJQUFJO1FBQ0gsMkJBQTJCO1FBQzNCLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFDYixZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2pCLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQzdCO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsNEJBQTRCO0lBQ3JCLFVBQVUsQ0FBQyxLQUFjO1FBQzlCLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsNEJBQTRCO0lBQ3JCLGdCQUFnQixDQUFDLEVBQW1DO1FBQ3pELElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCw0QkFBNEI7SUFDckIsaUJBQWlCLENBQUMsRUFBYztRQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsNEJBQTRCO0lBQ3JCLGdCQUFnQixDQUFFLFVBQW1CO1FBQzFDLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUU7WUFDbEMsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFFN0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN4RyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRU4sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDOzt3SEF4TlUsMEJBQTBCOzRHQUExQiwwQkFBMEIsc1FBSjNCLHdIQUF3SDs0RkFJdkgsMEJBQTBCO2tCQU50QyxTQUFTOytCQUNFLHNCQUFzQixZQUN0Qix3SEFBd0gsbUJBRWpILHVCQUF1QixDQUFDLE1BQU07OzBCQXFENUMsSUFBSTs7MEJBQUksUUFBUTs0Q0ExQ1gseUJBQXlCO3NCQURoQyxXQUFXO3VCQUFDLFFBQVEsc0NBQXNDLEVBQUU7Z0JBSWxELFVBQVU7c0JBRHBCLEtBQUs7Z0JBVUMsT0FBTztzQkFEYixLQUFLO2dCQU1DLEtBQUs7c0JBRFgsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjMgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0LFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Hcm91cCwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcsIEZvcm1seUZvcm1PcHRpb25zIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGlzRW1wdHksIGlzRXF1YWwsIGlzT2JqZWN0IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGVsYXksIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgc3RhcnRXaXRoLCB0YWtlLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IG1lcmdlLCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5cbmltcG9ydCB7IEdJT19GT1JNX0ZPQ1VTX0lOVkFMSURfSUdOT1JFX1NFTEVDVE9SIH0gZnJvbSAnLi4vZ2lvLWZvcm0tZm9jdXMtZmlyc3QtaW52YWxpZC9naW8tZm9ybS1mb2N1cy1maXJzdC1pbnZhbGlkLWlnbm9yZS5kaXJlY3RpdmUnO1xuXG5pbXBvcnQgeyBHaW9Kc29uU2NoZW1hIH0gZnJvbSAnLi9tb2RlbC9HaW9Kc29uU2NoZW1hJztcbmltcG9ydCB7IEdpb0Zvcm1seUpzb25TY2hlbWFTZXJ2aWNlIH0gZnJvbSAnLi9naW8tZm9ybWx5LWpzb24tc2NoZW1hLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnaW8tZm9ybS1qc29uLXNjaGVtYScsXG4gIHRlbXBsYXRlOiBgPGZvcm1seS1mb3JtICpuZ0lmPVwiZm9ybUdyb3VwXCIgW2ZpZWxkc109XCJmaWVsZHNcIiBbb3B0aW9uc109XCJvcHRpb25zXCIgW2Zvcm1dPVwiZm9ybUdyb3VwXCIgW21vZGVsXT1cIm1vZGVsXCI+PC9mb3JtbHktZm9ybT5gLFxuICBzdHlsZVVybHM6IFsnLi9naW8tZm9ybS1qc29uLXNjaGVtYS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgR2lvRm9ybUpzb25TY2hlbWFDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25DaGFuZ2VzLCBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBzdGF0aWMgaXNEaXNwbGF5YWJsZShqc29uU2NoZW1hOiBHaW9Kc29uU2NoZW1hKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcHJvcGVydGllcyA9IFsncHJvcGVydGllcycsICdvbmVPZicsICdhbnlPZicsICdhbGxPZicsICckcmVmJywgJ2l0ZW1zJ10gYXMgY29uc3Q7XG5cbiAgICByZXR1cm4gaXNPYmplY3QoanNvblNjaGVtYSkgJiYgcHJvcGVydGllcy5zb21lKHByb3BlcnR5ID0+ICFpc0VtcHR5KGpzb25TY2hlbWFbcHJvcGVydHldKSk7XG4gIH1cbiAgcHJpdmF0ZSB1bnN1YnNjcmliZSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIEBIb3N0QmluZGluZyhgYXR0ci4ke0dJT19GT1JNX0ZPQ1VTX0lOVkFMSURfSUdOT1JFX1NFTEVDVE9SfWApXG4gIHByaXZhdGUgZ2lvRm9ybUZvY3VzSW52YWxpZElnbm9yZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBqc29uU2NoZW1hKGpzb25TY2hlbWE6IEdpb0pzb25TY2hlbWEpIHtcbiAgICBpZiAoaXNPYmplY3QoanNvblNjaGVtYSkpIHtcbiAgICAgIHRoaXMuZmllbGRzID0gW3RoaXMuZ2lvRm9ybWx5SnNvblNjaGVtYS50b0Zvcm1seUZpZWxkQ29uZmlnKGpzb25TY2hlbWEpXTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3B0aW9uczogRm9ybWx5Rm9ybU9wdGlvbnMgPSB7fTtcblxuICAvLyBXaGVuIHRydWUgdGhlIGZvcm0gaXMgcmVhZHkgYW5kIGNvbnRyb2wgc3RhdHVzIGFyZSB1cC10by1kYXRlXG4gIC8vIFVzZWZ1bCB0byBrbm93IHdoZW4gaW5pdGlhbCBjb250cm9sIHN0YXR1cyBjYW4gYmUgdXNlZFxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHByaXZhdGUgaXNSZWFkeSA9IGZhbHNlO1xuXG4gIHB1YmxpYyBtb2RlbDogdW5rbm93biA9IHt9O1xuXG4gIHB1YmxpYyBmaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXTtcblxuICBwdWJsaWMgaXNEaXNhYmxlZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBfb25DaGFuZ2U6ICh2YWx1ZTogdW5rbm93biB8IG51bGwpID0+IHZvaWQgPSAoKSA9PiAoe30pO1xuXG4gIHB1YmxpYyBfb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4gKHt9KTtcblxuICBwcml2YXRlIHRvdWNoZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIGlzVmFsaWQkID0gbmV3IFJlcGxheVN1YmplY3QoMSk7IC8vIFdhaXQgSnNvblNjaGVtYSB0byBiZSBsb2FkZWQgdG8gY2hlY2sgaWYgaXQncyB2YWxpZFxuXG4gIHByaXZhdGUgc3RhdGVDaGFuZ2VzJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBnaW9Gb3JtbHlKc29uU2NoZW1hOiBHaW9Gb3JtbHlKc29uU2NoZW1hU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm06IEZvY3VzTW9uaXRvcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBASG9zdCgpIEBPcHRpb25hbCgpIHB1YmxpYyByZWFkb25seSBuZ0NvbnRyb2w/OiBOZ0NvbnRyb2wsXG4gICkge1xuICAgIGlmIChuZ0NvbnRyb2wpIHtcbiAgICAgIC8vIFNldHRpbmcgdGhlIHZhbHVlIGFjY2Vzc29yIGRpcmVjdGx5IChpbnN0ZWFkIG9mIHVzaW5nXG4gICAgICAvLyB0aGUgcHJvdmlkZXJzIGBOR19WQUxVRV9BQ0NFU1NPUmApIHRvIGF2b2lkIHJ1bm5pbmcgaW50byBhIGNpcmN1bGFyIGltcG9ydC5cbiAgICAgIG5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG5cbiAgICAvLyBXaGVuIHRoZSB1c2VyIGludGVyYWN0IHdpdGggdGhlIGZvcm0sIG1hcmsgaXQgYXMgdG91Y2hlZFxuICAgIGZtLm1vbml0b3IoZWxSZWYubmF0aXZlRWxlbWVudCwgdHJ1ZSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNEaXNhYmxlZCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy50b3VjaGVkID0gdHJ1ZTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlcy5qc29uU2NoZW1hKSB7XG4gICAgICB0aGlzLmlzUmVhZHkgPSBmYWxzZTtcbiAgICAgIHRoaXMucmVhZHkubmV4dChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIFdoZW4gdGhlIHBhcmVudCBmb3JtIGlzIHRvdWNoZWQsIG1hcmsgYWxsIHRoZSBzdWIgZm9ybUdyb3VwIGFzIHRvdWNoZWQgaWYgbm90IGFscmVhZHkgdG91Y2hlZFxuICAgIGNvbnN0IHBhcmVudENvbnRyb2wgPSB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8ucGFyZW50O1xuICAgIHBhcmVudENvbnRyb2w/LnN0YXR1c0NoYW5nZXNcbiAgICAgID8ucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHBhcmVudENvbnRyb2w/LnRvdWNoZWQpLFxuICAgICAgICBmaWx0ZXIodG91Y2hlZCA9PiB0b3VjaGVkID09PSB0cnVlKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5pc0Rpc2FibGVkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMkLm5leHQoKTtcbiAgICAgIH0pO1xuICAgIC8vIEFkZCBhc3luYyB2YWxpZGF0b3IgdG8gdGhlIHBhcmVudFxuICAgIHRoaXMubmdDb250cm9sPy5jb250cm9sPy5hZGRBc3luY1ZhbGlkYXRvcnMoKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCQucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgbWFwKGlzVmFsaWQgPT4gKGlzVmFsaWQgPyBudWxsIDogeyBpbnZhbGlkOiB0cnVlIH0pKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSxcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICAvLyBTeW5jIGNvbnRyb2wgdmFsdWUgd2l0aCBkZWZhdWx0IHZhbHVlICh3aXRob3V0IGVtaXQgZXZlbnQpIGFzIGxvbmcgYXMgdGhlIGNvbXBvbmVudCBpcyBub3QgcmVhZHlcbiAgICAvLyBXaGVuIGZvcm1seSBpcyBpbml0aWFsaXNlZCwgaXQgZW1pdHMgc2V2ZXJhbCB2YWx1ZXMgYXMgaXQgYnVpbGRzIHVwIHN0ZXAgYnkgc3RlcC5cbiAgICB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZChpc0VxdWFsKSxcbiAgICAgICAgdGFwKHZhbHVlID0+IHtcbiAgICAgICAgICB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8ucmVzZXQodmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnJlYWR5KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIC8vIEF2b2lkIEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3Igb24gcHJvamVjdFxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAvLyBTdWJzY3JpYmUgdG8gc3RhdGUgY2hhbmdlcyB0byBtYW5hZ2UgdG91Y2hlcywgc3RhdHVzIGFuZCB2YWx1ZVxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBzdGF0dXMsIHZhbHVlLCB0b3VjaGVkIH0gPSB0aGlzLmZvcm1Hcm91cDtcbiAgICAgICAgICBpZiAodGhpcy5pc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHN0YXR1cyA9PT0gJ1ZBTElEJykge1xuICAgICAgICAgICAgdGhpcy5pc1ZhbGlkJC5uZXh0KHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc3RhdHVzID09PSAnSU5WQUxJRCcpIHtcbiAgICAgICAgICAgIHRoaXMuaXNWYWxpZCQubmV4dChmYWxzZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRvdWNoZWQgJiYgIXRoaXMudG91Y2hlZCkge1xuICAgICAgICAgICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gICAgICAgICAgICB0aGlzLnRvdWNoZWQgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0aGlzLnRvdWNoZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX29uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBkZWxheSgwKSxcbiAgICAgICAgLy8gS2VlcCBhdCB0aGUgZW5kXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMubmdDb250cm9sPy5jb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtcbiAgICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBBZnRlciB0aGUgZmlyc3Qgc3RhdGUgY2hhbmdlLCB0aGUgZm9ybSBpcyByZWFkeVxuICAgICAgICBpZiAoIXRoaXMuaXNSZWFkeSkge1xuICAgICAgICAgIHRoaXMuaXNSZWFkeSA9IHRydWU7XG4gICAgICAgICAgdGhpcy5yZWFkeS5lbWl0KHRydWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy8gR3JvdXAgYWxsIHZhbHVlQ2hhbmdlcyBldmVudHMgZW1pdCBieSBmb3JtbHkgaW4gYSBzaW5nbGUgb25lXG4gICAgbWVyZ2UodGhpcy5mb3JtR3JvdXAuc3RhdHVzQ2hhbmdlcywgdGhpcy5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzKVxuICAgICAgLnBpcGUoXG4gICAgICAgIC8vIEZvcmNlIGZpc3Qgc3RhdGVDaGFuZ2VzJFxuICAgICAgICBzdGFydFdpdGgoe30pLFxuICAgICAgICBkZWJvdW5jZVRpbWUoMTAwKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcyQubmV4dCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5mbS5zdG9wTW9uaXRvcmluZyh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvclxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogdW5rbm93bik6IHZvaWQge1xuICAgIHRoaXMubW9kZWwgPSBjbG9uZURlZXAodmFsdWUpID8/IHt9O1xuICB9XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvclxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiB1bmtub3duIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvclxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGlzYWJsZWQgPT09IGlzRGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpc0Rpc2FibGVkID8gdGhpcy5mb3JtR3JvdXAuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSkgOiB0aGlzLmZvcm1Hcm91cC5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMkLm5leHQoKTtcbiAgICB9LCAwKTtcblxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzJC5uZXh0KCk7XG4gIH1cbn1cbiJdfQ==
@@ -29,7 +29,7 @@ import { GioMonacoEditorModule } from '../gio-monaco-editor/gio-monaco-editor.mo
29
29
  import { GioFjsNullTypeComponent } from './type-component/null-type.component';
30
30
  import { GioFjsObjectTypeComponent } from './type-component/object-type.component';
31
31
  import { GioFjsArrayTypeComponent } from './type-component/array-type.component';
32
- import { typeValidationMessage, minLengthValidationMessage, maxLengthValidationMessage, minValidationMessage, maxValidationMessage, multipleOfValidationMessage, exclusiveMinimumValidationMessage, exclusiveMaximumValidationMessage, minItemsValidationMessage, maxItemsValidationMessage, constValidationMessage, } from './util/validation-message.util';
32
+ import { typeValidationMessage, minLengthValidationMessage, maxLengthValidationMessage, minValidationMessage, maxValidationMessage, multipleOfValidationMessage, exclusiveMinimumValidationMessage, exclusiveMaximumValidationMessage, minItemsValidationMessage, maxItemsValidationMessage, constValidationMessage, patternValidationMessage, } from './util/validation-message.util';
33
33
  import { GioFormJsonSchemaComponent } from './gio-form-json-schema.component';
34
34
  import { GioBannerWrapperComponent as GioBannerWrapperComponent } from './wrappers/gio-banner-wrapper.component';
35
35
  import { bannerExtension } from './wrappers/gio-banner-extension';
@@ -82,6 +82,7 @@ GioFormJsonSchemaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
82
82
  { name: 'maxItems', message: maxItemsValidationMessage },
83
83
  { name: 'uniqueItems', message: 'Should NOT have duplicate items' },
84
84
  { name: 'const', message: constValidationMessage },
85
+ { name: 'pattern', message: patternValidationMessage },
85
86
  ],
86
87
  wrappers: [
87
88
  { name: 'gio-with-banner', component: GioBannerWrapperComponent },
@@ -157,6 +158,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
157
158
  { name: 'maxItems', message: maxItemsValidationMessage },
158
159
  { name: 'uniqueItems', message: 'Should NOT have duplicate items' },
159
160
  { name: 'const', message: constValidationMessage },
161
+ { name: 'pattern', message: patternValidationMessage },
160
162
  ],
161
163
  wrappers: [
162
164
  { name: 'gio-with-banner', component: GioBannerWrapperComponent },
@@ -202,4 +204,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
202
204
  providers: [GioFormlyJsonSchemaService],
203
205
  }]
204
206
  }] });
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWZvcm0tanNvbi1zY2hlbWEubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcGFydGljbGVzLWFuZ3VsYXIvc3JjL2xpYi9naW8tZm9ybS1qc29uLXNjaGVtYS9naW8tZm9ybS1qc29uLXNjaGVtYS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRXRGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ25GLE9B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QVMsRUFBRSxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxFQUFFOzZCQUMxRTs0QkFDRCxNQUFNLEVBQUU7Z0NBQ04saUJBQWlCLEVBQUUsc0JBQXNCOzZCQUMxQzt5QkFDRixDQUFDO3dCQUNGLG9CQUFvQjt3QkFFcEIsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLHdCQUF3Qjt3QkFDeEIsb0JBQW9CO3dCQUNwQixxQkFBcUI7d0JBRXJCLG9CQUFvQjt3QkFDcEIsZUFBZTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsMEJBQTBCLEVBQUUsWUFBWSxDQUFDO29CQUNuRCxTQUFTLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztpQkFDeEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybWx5TW9kdWxlIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBGb3JtbHlNYXRlcmlhbE1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L21hdGVyaWFsJztcbmltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5cbmltcG9ydCB7IEdpb0ljb25zTW9kdWxlIH0gZnJvbSAnLi4vZ2lvLWljb25zL2dpby1pY29ucy5tb2R1bGUnO1xuaW1wb3J0IHsgR2lvRm9ybVNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnLi4vZ2lvLWZvcm0tc2xpZGUtdG9nZ2xlL2dpby1mb3JtLXNsaWRlLXRvZ2dsZS5tb2R1bGUnO1xuaW1wb3J0IHsgR2lvRm9ybUhlYWRlcnNNb2R1bGUgfSBmcm9tICcuLi9naW8tZm9ybS1oZWFkZXJzL2dpby1mb3JtLWhlYWRlcnMubW9kdWxlJztcbmltcG9ydCB7IEdpb01vbmFjb0VkaXRvck1vZHVsZSB9IGZyb20gJy4uL2dpby1tb25hY28tZWRpdG9yL2dpby1tb25hY28tZWRpdG9yLm1vZHVsZSc7XG5cbmltcG9ydCB7IEdpb0Zqc051bGxUeXBlQ29tcG9uZW50IH0gZnJvbSAnLi90eXBlLWNvbXBvbmVudC9udWxsLXR5cGUuY29tcG9uZW50JztcbmltcG9ydCB7IEdpb0Zqc09iamVjdFR5cGVDb21wb25lbnQgfSBmcm9tICcuL3R5cGUtY29tcG9uZW50L29iamVjdC10eXBlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHaW9GanNBcnJheVR5cGVDb21wb25lbnQgfSBmcm9tICcuL3R5cGUtY29tcG9uZW50L2FycmF5LXR5cGUuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIHR5cGVWYWxpZGF0aW9uTWVzc2FnZSxcbiAgbWluTGVuZ3RoVmFsaWRhdGlvbk1lc3NhZ2UsXG4gIG1heExlbmd0aFZhbGlkYXRpb25NZXNzYWdlLFxuICBtaW5WYWxpZGF0aW9uTWVzc2FnZSxcbiAgbWF4VmFsaWRhdGlvbk1lc3NhZ2UsXG4gIG11bHRpcGxlT2ZWYWxpZGF0aW9uTWVzc2FnZSxcbiAgZXhjbHVzaXZlTWluaW11bVZhbGlkYXRpb25NZXNzYWdlLFxuICBleGNsdXNpdmVNYXhpbXVtVmFsaWRhdGlvbk1lc3NhZ2UsXG4gIG1pbkl0ZW1zVmFsaWRhdGlvbk1lc3NhZ2UsXG4gIG1heEl0ZW1zVmFsaWRhdGlvbk1lc3NhZ2UsXG4gIGNvbnN0VmFsaWRhdGlvbk1lc3NhZ2UsXG59IGZyb20gJy4vdXRpbC92YWxpZGF0aW9uLW1lc3NhZ2UudXRpbCc7XG5pbXBvcnQgeyBHaW9Gb3JtSnNvblNjaGVtYUNvbXBvbmVudCB9IGZyb20gJy4vZ2lvLWZvcm0tanNvbi1zY2hlbWEuY29tcG9uZW50JztcbmltcG9ydCB7IEdpb0Jhbm5lcldyYXBwZXJDb21wb25lbnQgYXMgR2lvQmFubmVyV3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vd3JhcHBlcnMvZ2lvLWJhbm5lci13cmFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBiYW5uZXJFeHRlbnNpb24gfSBmcm9tICcuL3dyYXBwZXJzL2dpby1iYW5uZXItZXh0ZW5zaW9uJztcbmltcG9ydCB7IEdpb0Zqc011bHRpU2NoZW1hVHlwZUNvbXBvbmVudCB9IGZyb20gJy4vdHlwZS1jb21wb25lbnQvbXVsdGlzY2hlbWEtdHlwZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2lvRm9ybWx5SnNvblNjaGVtYVNlcnZpY2UgfSBmcm9tICcuL2dpby1mb3JtbHktanNvbi1zY2hlbWEuc2VydmljZSc7XG5pbXBvcnQgeyBHaW9GanNUb2dnbGVUeXBlQ29tcG9uZW50IH0gZnJvbSAnLi90eXBlLWNvbXBvbmVudC90b2dnbGUtdHlwZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2lvRmpzSGVhZGVyc1R5cGVDb21wb25lbnQgfSBmcm9tICcuL3R5cGUtY29tcG9uZW50L2hlYWRlcnMtdHlwZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2lvUGFzc3dvcmRFeWVXcmFwcGVyQ29tcG9uZW50LCBwYXNzd29yZEV5ZUV4dGVuc2lvbiB9IGZyb20gJy4vd3JhcHBlcnMvZ2lvLXBhc3N3b3JkLWV5ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2lvRmpzQ29kZUVkaXRvclR5cGVDb21wb25lbnQgfSBmcm9tICcuL3R5cGUtY29tcG9uZW50L2NvZGUtZWRpdG9yLXR5cGUuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgR2lvRm9ybUpzb25TY2hlbWFDb21wb25lbnQsXG4gICAgR2lvRmpzTnVsbFR5cGVDb21wb25lbnQsXG4gICAgR2lvRmpzT2JqZWN0VHlwZUNvbXBvbmVudCxcbiAgICBHaW9GanNNdWx0aVNjaGVtYVR5cGVDb21wb25lbnQsXG4gICAgR2lvRmpzQXJyYXlUeXBlQ29tcG9uZW50LFxuICAgIEdpb0Zqc1RvZ2dsZVR5cGVDb21wb25lbnQsXG4gICAgR2lvRmpzSGVhZGVyc1R5cGVDb21wb25lbnQsXG4gICAgR2lvRmpzQ29kZUVkaXRvclR5cGVDb21wb25lbnQsXG4gICAgR2lvQmFubmVyV3JhcHBlckNvbXBvbmVudCxcbiAgICBHaW9QYXNzd29yZEV5ZVdyYXBwZXJDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQTExeU1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuXG4gICAgRm9ybWx5TW9kdWxlLmZvclJvb3Qoe1xuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VzOiBbXG4gICAgICAgIHsgbmFtZTogJ3JlcXVpcmVkJywgbWVzc2FnZTogJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQnIH0sXG4gICAgICAgIHsgbmFtZTogJ3R5cGUnLCBtZXNzYWdlOiB0eXBlVmFsaWRhdGlvbk1lc3NhZ2UgfSxcbiAgICAgICAgeyBuYW1lOiAnbWluTGVuZ3RoJywgbWVzc2FnZTogbWluTGVuZ3RoVmFsaWRhdGlvbk1lc3NhZ2UgfSxcbiAgICAgICAgeyBuYW1lOiAnbWF4TGVuZ3RoJywgbWVzc2FnZTogbWF4TGVuZ3RoVmFsaWRhdGlvbk1lc3NhZ2UgfSxcbiAgICAgICAgeyBuYW1lOiAnbWluJywgbWVzc2FnZTogbWluVmFsaWRhdGlvbk1lc3NhZ2UgfSxcbiAgICAgICAgeyBuYW1lOiAnbWF4JywgbWVzc2FnZTogbWF4VmFsaWRhdGlvbk1lc3NhZ2UgfSxcbiAgICAgICAgeyBuYW1lOiAnbXVsdGlwbGVPZicsIG1lc3NhZ2U6IG11bHRpcGxlT2ZWYWxpZGF0aW9uTWVzc2FnZSB9LFxuICAgICAgICB7IG5hbWU6ICdleGNsdXNpdmVNaW5pbXVtJywgbWVzc2FnZTogZXhjbHVzaXZlTWluaW11bVZhbGlkYXRpb25NZXNzYWdlIH0sXG4gICAgICAgIHsgbmFtZTogJ2V4Y2x1c2l2ZU1heGltdW0nLCBtZXNzYWdlOiBleGNsdXNpdmVNYXhpbXVtVmFsaWRhdGlvbk1lc3NhZ2UgfSxcbiAgICAgICAgeyBuYW1lOiAnbWluSXRlbXMnLCBtZXNzYWdlOiBtaW5JdGVtc1ZhbGlkYXRpb25NZXNzYWdlIH0sXG4gICAgICAgIHsgbmFtZTogJ21heEl0ZW1zJywgbWVzc2FnZTogbWF4SXRlbXNWYWxpZGF0aW9uTWVzc2FnZSB9LFxuICAgICAgICB7IG5hbWU6ICd1bmlxdWVJdGVtcycsIG1lc3NhZ2U6ICdTaG91bGQgTk9UIGhhdmUgZHVwbGljYXRlIGl0ZW1zJyB9LFxuICAgICAgICB7IG5hbWU6ICdjb25zdCcsIG1lc3NhZ2U6IGNvbnN0VmFsaWRhdGlvbk1lc3NhZ2UgfSxcbiAgICAgIF0sXG4gICAgICB3cmFwcGVyczogW1xuICAgICAgICB7IG5hbWU6ICdnaW8td2l0aC1iYW5uZXInLCBjb21wb25lbnQ6IEdpb0Jhbm5lcldyYXBwZXJDb21wb25lbnQgfSxcbiAgICAgICAgeyBuYW1lOiAnZ2lvLXBhc3N3b3JkLWV5ZScsIGNvbXBvbmVudDogR2lvUGFzc3dvcmRFeWVXcmFwcGVyQ29tcG9uZW50IH0sXG4gICAgICBdLFxuICAgICAgdHlwZXM6IFtcbiAgICAgICAgeyBuYW1lOiAnbnVsbCcsIGNvbXBvbmVudDogR2lvRmpzTnVsbFR5cGVDb21wb25lbnQsIHdyYXBwZXJzOiBbJ2Zvcm0tZmllbGQnXSB9LFxuICAgICAgICB7IG5hbWU6ICdhcnJheScsIGNvbXBvbmVudDogR2lvRmpzQXJyYXlUeXBlQ29tcG9uZW50IH0sXG4gICAgICAgIHsgbmFtZTogJ29iamVjdCcsIGNvbXBvbmVudDogR2lvRmpzT2JqZWN0VHlwZUNvbXBvbmVudCB9LFxuICAgICAgICB7IG5hbWU6ICdtdWx0aXNjaGVtYScsIGNvbXBvbmVudDogR2lvRmpzTXVsdGlTY2hlbWFUeXBlQ29tcG9uZW50IH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAndG9nZ2xlJyxcbiAgICAgICAgICBjb21wb25lbnQ6IEdpb0Zqc1RvZ2dsZVR5cGVDb21wb25lbnQsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnZ2lvLWNvZGUtZWRpdG9yJyxcbiAgICAgICAgICBjb21wb25lbnQ6IEdpb0Zqc0NvZGVFZGl0b3JUeXBlQ29tcG9uZW50LFxuICAgICAgICAgIHdyYXBwZXJzOiBbJ2Zvcm0tZmllbGQnXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdnaW8taGVhZGVycy1hcnJheScsXG4gICAgICAgICAgY29tcG9uZW50OiBHaW9GanNIZWFkZXJzVHlwZUNvbXBvbmVudCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBleHRlbnNpb25zOiBbXG4gICAgICAgIHsgbmFtZTogJ2Jhbm5lcicsIGV4dGVuc2lvbjogeyBvblBvcHVsYXRlOiBiYW5uZXJFeHRlbnNpb24gfSB9LFxuICAgICAgICB7IG5hbWU6ICdwYXNzd29yZC1leWUnLCBleHRlbnNpb246IHsgb25Qb3B1bGF0ZTogcGFzc3dvcmRFeWVFeHRlbnNpb24gfSB9LFxuICAgICAgXSxcbiAgICAgIGV4dHJhczoge1xuICAgICAgICBjaGVja0V4cHJlc3Npb25PbjogJ2NoYW5nZURldGVjdGlvbkNoZWNrJyxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgRm9ybWx5TWF0ZXJpYWxNb2R1bGUsXG5cbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBHaW9JY29uc01vZHVsZSxcbiAgICBHaW9Gb3JtU2xpZGVUb2dnbGVNb2R1bGUsXG4gICAgR2lvRm9ybUhlYWRlcnNNb2R1bGUsXG4gICAgR2lvTW9uYWNvRWRpdG9yTW9kdWxlLFxuXG4gICAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbR2lvRm9ybUpzb25TY2hlbWFDb21wb25lbnQsIEZvcm1seU1vZHVsZV0sXG4gIHByb3ZpZGVyczogW0dpb0Zvcm1seUpzb25TY2hlbWFTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgR2lvRm9ybUpzb25TY2hlbWFNb2R1bGUge31cbiJdfQ==
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWZvcm0tanNvbi1zY2hlbWEubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcGFydGljbGVzLWFuZ3VsYXIvc3JjL2xpYi9naW8tZm9ybS1qc29uLXNjaGVtYS9naW8tZm9ybS1qc29uLXNjaGVtYS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRXRGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ25GLE9B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NEJBQ0QsVUFBVSxFQUFFO2dDQUNWLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLEVBQUU7Z0NBQzlELEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsRUFBRSxVQUFVLEVBQUUsb0JBQW9CLEVBQUUsRUFBRTs2QkFDMUU7NEJBQ0QsTUFBTSxFQUFFO2dDQUNOLGlCQUFpQixFQUFFLHNCQUFzQjs2QkFDMUM7eUJBQ0YsQ0FBQzt3QkFDRixvQkFBb0I7d0JBRXBCLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCx3QkFBd0I7d0JBQ3hCLG9CQUFvQjt3QkFDcEIscUJBQXFCO3dCQUVyQixvQkFBb0I7d0JBQ3BCLGVBQWU7cUJBQ2hCO29CQUNELE9BQU8sRUFBRSxDQUFDLDBCQUEwQixFQUFFLFlBQVksQ0FBQztvQkFDbkQsU0FBUyxFQUFFLENBQUMsMEJBQTBCLENBQUM7aUJBQ3hDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1seU1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgRm9ybWx5TWF0ZXJpYWxNb2R1bGUgfSBmcm9tICdAbmd4LWZvcm1seS9tYXRlcmlhbCc7XG5pbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuXG5pbXBvcnQgeyBHaW9JY29uc01vZHVsZSB9IGZyb20gJy4uL2dpby1pY29ucy9naW8taWNvbnMubW9kdWxlJztcbmltcG9ydCB7IEdpb0Zvcm1TbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJy4uL2dpby1mb3JtLXNsaWRlLXRvZ2dsZS9naW8tZm9ybS1zbGlkZS10b2dnbGUubW9kdWxlJztcbmltcG9ydCB7IEdpb0Zvcm1IZWFkZXJzTW9kdWxlIH0gZnJvbSAnLi4vZ2lvLWZvcm0taGVhZGVycy9naW8tZm9ybS1oZWFkZXJzLm1vZHVsZSc7XG5pbXBvcnQgeyBHaW9Nb25hY29FZGl0b3JNb2R1bGUgfSBmcm9tICcuLi9naW8tbW9uYWNvLWVkaXRvci9naW8tbW9uYWNvLWVkaXRvci5tb2R1bGUnO1xuXG5pbXBvcnQgeyBHaW9GanNOdWxsVHlwZUNvbXBvbmVudCB9IGZyb20gJy4vdHlwZS1jb21wb25lbnQvbnVsbC10eXBlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHaW9GanNPYmplY3RUeXBlQ29tcG9uZW50IH0gZnJvbSAnLi90eXBlLWNvbXBvbmVudC9vYmplY3QtdHlwZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2lvRmpzQXJyYXlUeXBlQ29tcG9uZW50IH0gZnJvbSAnLi90eXBlLWNvbXBvbmVudC9hcnJheS10eXBlLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICB0eXBlVmFsaWRhdGlvbk1lc3NhZ2UsXG4gIG1pbkxlbmd0aFZhbGlkYXRpb25NZXNzYWdlLFxuICBtYXhMZW5ndGhWYWxpZGF0aW9uTWVzc2FnZSxcbiAgbWluVmFsaWRhdGlvbk1lc3NhZ2UsXG4gIG1heFZhbGlkYXRpb25NZXNzYWdlLFxuICBtdWx0aXBsZU9mVmFsaWRhdGlvbk1lc3NhZ2UsXG4gIGV4Y2x1c2l2ZU1pbmltdW1WYWxpZGF0aW9uTWVzc2FnZSxcbiAgZXhjbHVzaXZlTWF4aW11bVZhbGlkYXRpb25NZXNzYWdlLFxuICBtaW5JdGVtc1ZhbGlkYXRpb25NZXNzYWdlLFxuICBtYXhJdGVtc1ZhbGlkYXRpb25NZXNzYWdlLFxuICBjb25zdFZhbGlkYXRpb25NZXNzYWdlLFxuICBwYXR0ZXJuVmFsaWRhdGlvbk1lc3NhZ2UsXG59IGZyb20gJy4vdXRpbC92YWxpZGF0aW9uLW1lc3NhZ2UudXRpbCc7XG5pbXBvcnQgeyBHaW9Gb3JtSnNvblNjaGVtYUNvbXBvbmVudCB9IGZyb20gJy4vZ2lvLWZvcm0tanNvbi1zY2hlbWEuY29tcG9uZW50JztcbmltcG9ydCB7IEdpb0Jhbm5lcldyYXBwZXJDb21wb25lbnQgYXMgR2lvQmFubmVyV3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vd3JhcHBlcnMvZ2lvLWJhbm5lci13cmFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBiYW5uZXJFeHRlbnNpb24gfSBmcm9tICcuL3dyYXBwZXJzL2dpby1iYW5uZXItZXh0ZW5zaW9uJztcbmltcG9ydCB7IEdpb0Zqc011bHRpU2NoZW1hVHlwZUNvbXBvbmVudCB9IGZyb20gJy4vdHlwZS1jb21wb25lbnQvbXVsdGlzY2hlbWEtdHlwZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2lvRm9ybWx5SnNvblNjaGVtYVNlcnZpY2UgfSBmcm9tICcuL2dpby1mb3JtbHktanNvbi1zY2hlbWEuc2VydmljZSc7XG5pbXBvcnQgeyBHaW9GanNUb2dnbGVUeXBlQ29tcG9uZW50IH0gZnJvbSAnLi90eXBlLWNvbXBvbmVudC90b2dnbGUtdHlwZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2lvRmpzSGVhZGVyc1R5cGVDb21wb25lbnQgfSBmcm9tICcuL3R5cGUtY29tcG9uZW50L2hlYWRlcnMtdHlwZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2lvUGFzc3dvcmRFeWVXcmFwcGVyQ29tcG9uZW50LCBwYXNzd29yZEV5ZUV4dGVuc2lvbiB9IGZyb20gJy4vd3JhcHBlcnMvZ2lvLXBhc3N3b3JkLWV5ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2lvRmpzQ29kZUVkaXRvclR5cGVDb21wb25lbnQgfSBmcm9tICcuL3R5cGUtY29tcG9uZW50L2NvZGUtZWRpdG9yLXR5cGUuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgR2lvRm9ybUpzb25TY2hlbWFDb21wb25lbnQsXG4gICAgR2lvRmpzTnVsbFR5cGVDb21wb25lbnQsXG4gICAgR2lvRmpzT2JqZWN0VHlwZUNvbXBvbmVudCxcbiAgICBHaW9GanNNdWx0aVNjaGVtYVR5cGVDb21wb25lbnQsXG4gICAgR2lvRmpzQXJyYXlUeXBlQ29tcG9uZW50LFxuICAgIEdpb0Zqc1RvZ2dsZVR5cGVDb21wb25lbnQsXG4gICAgR2lvRmpzSGVhZGVyc1R5cGVDb21wb25lbnQsXG4gICAgR2lvRmpzQ29kZUVkaXRvclR5cGVDb21wb25lbnQsXG4gICAgR2lvQmFubmVyV3JhcHBlckNvbXBvbmVudCxcbiAgICBHaW9QYXNzd29yZEV5ZVdyYXBwZXJDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQTExeU1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuXG4gICAgRm9ybWx5TW9kdWxlLmZvclJvb3Qoe1xuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VzOiBbXG4gICAgICAgIHsgbmFtZTogJ3JlcXVpcmVkJywgbWVzc2FnZTogJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQnIH0sXG4gICAgICAgIHsgbmFtZTogJ3R5cGUnLCBtZXNzYWdlOiB0eXBlVmFsaWRhdGlvbk1lc3NhZ2UgfSxcbiAgICAgICAgeyBuYW1lOiAnbWluTGVuZ3RoJywgbWVzc2FnZTogbWluTGVuZ3RoVmFsaWRhdGlvbk1lc3NhZ2UgfSxcbiAgICAgICAgeyBuYW1lOiAnbWF4TGVuZ3RoJywgbWVzc2FnZTogbWF4TGVuZ3RoVmFsaWRhdGlvbk1lc3NhZ2UgfSxcbiAgICAgICAgeyBuYW1lOiAnbWluJywgbWVzc2FnZTogbWluVmFsaWRhdGlvbk1lc3NhZ2UgfSxcbiAgICAgICAgeyBuYW1lOiAnbWF4JywgbWVzc2FnZTogbWF4VmFsaWRhdGlvbk1lc3NhZ2UgfSxcbiAgICAgICAgeyBuYW1lOiAnbXVsdGlwbGVPZicsIG1lc3NhZ2U6IG11bHRpcGxlT2ZWYWxpZGF0aW9uTWVzc2FnZSB9LFxuICAgICAgICB7IG5hbWU6ICdleGNsdXNpdmVNaW5pbXVtJywgbWVzc2FnZTogZXhjbHVzaXZlTWluaW11bVZhbGlkYXRpb25NZXNzYWdlIH0sXG4gICAgICAgIHsgbmFtZTogJ2V4Y2x1c2l2ZU1heGltdW0nLCBtZXNzYWdlOiBleGNsdXNpdmVNYXhpbXVtVmFsaWRhdGlvbk1lc3NhZ2UgfSxcbiAgICAgICAgeyBuYW1lOiAnbWluSXRlbXMnLCBtZXNzYWdlOiBtaW5JdGVtc1ZhbGlkYXRpb25NZXNzYWdlIH0sXG4gICAgICAgIHsgbmFtZTogJ21heEl0ZW1zJywgbWVzc2FnZTogbWF4SXRlbXNWYWxpZGF0aW9uTWVzc2FnZSB9LFxuICAgICAgICB7IG5hbWU6ICd1bmlxdWVJdGVtcycsIG1lc3NhZ2U6ICdTaG91bGQgTk9UIGhhdmUgZHVwbGljYXRlIGl0ZW1zJyB9LFxuICAgICAgICB7IG5hbWU6ICdjb25zdCcsIG1lc3NhZ2U6IGNvbnN0VmFsaWRhdGlvbk1lc3NhZ2UgfSxcbiAgICAgICAgeyBuYW1lOiAncGF0dGVybicsIG1lc3NhZ2U6IHBhdHRlcm5WYWxpZGF0aW9uTWVzc2FnZSB9LFxuICAgICAgXSxcbiAgICAgIHdyYXBwZXJzOiBbXG4gICAgICAgIHsgbmFtZTogJ2dpby13aXRoLWJhbm5lcicsIGNvbXBvbmVudDogR2lvQmFubmVyV3JhcHBlckNvbXBvbmVudCB9LFxuICAgICAgICB7IG5hbWU6ICdnaW8tcGFzc3dvcmQtZXllJywgY29tcG9uZW50OiBHaW9QYXNzd29yZEV5ZVdyYXBwZXJDb21wb25lbnQgfSxcbiAgICAgIF0sXG4gICAgICB0eXBlczogW1xuICAgICAgICB7IG5hbWU6ICdudWxsJywgY29tcG9uZW50OiBHaW9GanNOdWxsVHlwZUNvbXBvbmVudCwgd3JhcHBlcnM6IFsnZm9ybS1maWVsZCddIH0sXG4gICAgICAgIHsgbmFtZTogJ2FycmF5JywgY29tcG9uZW50OiBHaW9GanNBcnJheVR5cGVDb21wb25lbnQgfSxcbiAgICAgICAgeyBuYW1lOiAnb2JqZWN0JywgY29tcG9uZW50OiBHaW9GanNPYmplY3RUeXBlQ29tcG9uZW50IH0sXG4gICAgICAgIHsgbmFtZTogJ211bHRpc2NoZW1hJywgY29tcG9uZW50OiBHaW9GanNNdWx0aVNjaGVtYVR5cGVDb21wb25lbnQgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICd0b2dnbGUnLFxuICAgICAgICAgIGNvbXBvbmVudDogR2lvRmpzVG9nZ2xlVHlwZUNvbXBvbmVudCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdnaW8tY29kZS1lZGl0b3InLFxuICAgICAgICAgIGNvbXBvbmVudDogR2lvRmpzQ29kZUVkaXRvclR5cGVDb21wb25lbnQsXG4gICAgICAgICAgd3JhcHBlcnM6IFsnZm9ybS1maWVsZCddLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ2dpby1oZWFkZXJzLWFycmF5JyxcbiAgICAgICAgICBjb21wb25lbnQ6IEdpb0Zqc0hlYWRlcnNUeXBlQ29tcG9uZW50LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGV4dGVuc2lvbnM6IFtcbiAgICAgICAgeyBuYW1lOiAnYmFubmVyJywgZXh0ZW5zaW9uOiB7IG9uUG9wdWxhdGU6IGJhbm5lckV4dGVuc2lvbiB9IH0sXG4gICAgICAgIHsgbmFtZTogJ3Bhc3N3b3JkLWV5ZScsIGV4dGVuc2lvbjogeyBvblBvcHVsYXRlOiBwYXNzd29yZEV5ZUV4dGVuc2lvbiB9IH0sXG4gICAgICBdLFxuICAgICAgZXh0cmFzOiB7XG4gICAgICAgIGNoZWNrRXhwcmVzc2lvbk9uOiAnY2hhbmdlRGV0ZWN0aW9uQ2hlY2snLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICBGb3JtbHlNYXRlcmlhbE1vZHVsZSxcblxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIEdpb0ljb25zTW9kdWxlLFxuICAgIEdpb0Zvcm1TbGlkZVRvZ2dsZU1vZHVsZSxcbiAgICBHaW9Gb3JtSGVhZGVyc01vZHVsZSxcbiAgICBHaW9Nb25hY29FZGl0b3JNb2R1bGUsXG5cbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtHaW9Gb3JtSnNvblNjaGVtYUNvbXBvbmVudCwgRm9ybWx5TW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbR2lvRm9ybWx5SnNvblNjaGVtYVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBHaW9Gb3JtSnNvblNjaGVtYU1vZHVsZSB7fVxuIl19
@@ -31,4 +31,8 @@ export function constValidationMessage(error, field) {
31
31
  export function typeValidationMessage({ schemaType }) {
32
32
  return `Should be "${schemaType[0]}".`;
33
33
  }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1tZXNzYWdlLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9zcmMvbGliL2dpby1mb3JtLWpzb24tc2NoZW1hL3V0aWwvdmFsaWRhdGlvbi1tZXNzYWdlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUJBLE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxLQUFjLEVBQUUsS0FBd0I7SUFDaEYsT0FBTyw4QkFBOEIsS0FBSyxDQUFDLEtBQUssRUFBRSxRQUFRLFFBQVEsQ0FBQztBQUNyRSxDQUFDO0FBRUQsTUFBTSxVQUFVLHlCQUF5QixDQUFDLEtBQWMsRUFBRSxLQUF3QjtJQUNoRixPQUFPLDZCQUE2QixLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsUUFBUSxDQUFDO0FBQ3BFLENBQUM7QUFFRCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsS0FBYyxFQUFFLEtBQXdCO0lBQ2pGLE9BQU8sOEJBQThCLEtBQUssQ0FBQyxLQUFLLEVBQUUsU0FBUyxhQUFhLENBQUM7QUFDM0UsQ0FBQztBQUVELE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxLQUFjLEVBQUUsS0FBd0I7SUFDakYsT0FBTyw2QkFBNkIsS0FBSyxDQUFDLEtBQUssRUFBRSxTQUFTLGFBQWEsQ0FBQztBQUMxRSxDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEtBQWMsRUFBRSxLQUF3QjtJQUMzRSxPQUFPLGdCQUFnQixLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDO0FBQzVDLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsS0FBYyxFQUFFLEtBQXdCO0lBQzNFLE9BQU8sZ0JBQWdCLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFDNUMsQ0FBQztBQUVELE1BQU0sVUFBVSwyQkFBMkIsQ0FBQyxLQUFjLEVBQUUsS0FBd0I7SUFDbEYsT0FBTyx5QkFBeUIsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUN0RCxDQUFDO0FBRUQsTUFBTSxVQUFVLGlDQUFpQyxDQUFDLEtBQWMsRUFBRSxLQUF3QjtJQUN4RixPQUFPLGVBQWUsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUM1QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGlDQUFpQyxDQUFDLEtBQWMsRUFBRSxLQUF3QjtJQUN4RixPQUFPLGVBQWUsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUM1QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLEtBQWMsRUFBRSxLQUF3QjtJQUM3RSxPQUFPLGdDQUFnQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssR0FBRyxDQUFDO0FBQy9ELENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsRUFBRSxVQUFVLEVBQTZCO0lBQzdFLE9BQU8sY0FBYyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUN6QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAyMyBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBtaW5JdGVtc1ZhbGlkYXRpb25NZXNzYWdlKGVycm9yOiB1bmtub3duLCBmaWVsZDogRm9ybWx5RmllbGRDb25maWcpOiBzdHJpbmcge1xuICByZXR1cm4gYFNob3VsZCBOT1QgaGF2ZSBmZXdlciB0aGFuICR7ZmllbGQucHJvcHM/Lm1pbkl0ZW1zfSBpdGVtc2A7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXhJdGVtc1ZhbGlkYXRpb25NZXNzYWdlKGVycm9yOiB1bmtub3duLCBmaWVsZDogRm9ybWx5RmllbGRDb25maWcpOiBzdHJpbmcge1xuICByZXR1cm4gYFNob3VsZCBOT1QgaGF2ZSBtb3JlIHRoYW4gJHtmaWVsZC5wcm9wcz8ubWF4SXRlbXN9IGl0ZW1zYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1pbkxlbmd0aFZhbGlkYXRpb25NZXNzYWdlKGVycm9yOiB1bmtub3duLCBmaWVsZDogRm9ybWx5RmllbGRDb25maWcpOiBzdHJpbmcge1xuICByZXR1cm4gYFNob3VsZCBOT1QgYmUgc2hvcnRlciB0aGFuICR7ZmllbGQucHJvcHM/Lm1pbkxlbmd0aH0gY2hhcmFjdGVyc2A7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXhMZW5ndGhWYWxpZGF0aW9uTWVzc2FnZShlcnJvcjogdW5rbm93biwgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBTaG91bGQgTk9UIGJlIGxvbmdlciB0aGFuICR7ZmllbGQucHJvcHM/Lm1heExlbmd0aH0gY2hhcmFjdGVyc2A7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtaW5WYWxpZGF0aW9uTWVzc2FnZShlcnJvcjogdW5rbm93biwgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBTaG91bGQgYmUgPj0gJHtmaWVsZC5wcm9wcz8ubWlufWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXhWYWxpZGF0aW9uTWVzc2FnZShlcnJvcjogdW5rbm93biwgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBTaG91bGQgYmUgPD0gJHtmaWVsZC5wcm9wcz8ubWF4fWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtdWx0aXBsZU9mVmFsaWRhdGlvbk1lc3NhZ2UoZXJyb3I6IHVua25vd24sIGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZyk6IHN0cmluZyB7XG4gIHJldHVybiBgU2hvdWxkIGJlIG11bHRpcGxlIG9mICR7ZmllbGQucHJvcHM/LnN0ZXB9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4Y2x1c2l2ZU1pbmltdW1WYWxpZGF0aW9uTWVzc2FnZShlcnJvcjogdW5rbm93biwgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBTaG91bGQgYmUgPiAke2ZpZWxkLnByb3BzPy5zdGVwfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleGNsdXNpdmVNYXhpbXVtVmFsaWRhdGlvbk1lc3NhZ2UoZXJyb3I6IHVua25vd24sIGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZyk6IHN0cmluZyB7XG4gIHJldHVybiBgU2hvdWxkIGJlIDwgJHtmaWVsZC5wcm9wcz8uc3RlcH1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29uc3RWYWxpZGF0aW9uTWVzc2FnZShlcnJvcjogdW5rbm93biwgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBTaG91bGQgYmUgZXF1YWwgdG8gY29uc3RhbnQgXCIke2ZpZWxkLnByb3BzPy5jb25zdH1cImA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0eXBlVmFsaWRhdGlvbk1lc3NhZ2UoeyBzY2hlbWFUeXBlIH06IHsgc2NoZW1hVHlwZTogdW5rbm93bltdIH0pOiBzdHJpbmcge1xuICByZXR1cm4gYFNob3VsZCBiZSBcIiR7c2NoZW1hVHlwZVswXX1cIi5gO1xufVxuIl19
34
+ export function patternValidationMessage(error, field) {
35
+ const key = field?.key?.toString() ?? 'Field';
36
+ return `${key.charAt(0).toUpperCase() + key.slice(1)} value does not respect the pattern: ${field?.props?.pattern}`;
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1tZXNzYWdlLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9zcmMvbGliL2dpby1mb3JtLWpzb24tc2NoZW1hL3V0aWwvdmFsaWRhdGlvbi1tZXNzYWdlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUJBLE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxLQUFjLEVBQUUsS0FBd0I7SUFDaEYsT0FBTyw4QkFBOEIsS0FBSyxDQUFDLEtBQUssRUFBRSxRQUFRLFFBQVEsQ0FBQztBQUNyRSxDQUFDO0FBRUQsTUFBTSxVQUFVLHlCQUF5QixDQUFDLEtBQWMsRUFBRSxLQUF3QjtJQUNoRixPQUFPLDZCQUE2QixLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsUUFBUSxDQUFDO0FBQ3BFLENBQUM7QUFFRCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsS0FBYyxFQUFFLEtBQXdCO0lBQ2pGLE9BQU8sOEJBQThCLEtBQUssQ0FBQyxLQUFLLEVBQUUsU0FBUyxhQUFhLENBQUM7QUFDM0UsQ0FBQztBQUVELE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxLQUFjLEVBQUUsS0FBd0I7SUFDakYsT0FBTyw2QkFBNkIsS0FBSyxDQUFDLEtBQUssRUFBRSxTQUFTLGFBQWEsQ0FBQztBQUMxRSxDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEtBQWMsRUFBRSxLQUF3QjtJQUMzRSxPQUFPLGdCQUFnQixLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDO0FBQzVDLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsS0FBYyxFQUFFLEtBQXdCO0lBQzNFLE9BQU8sZ0JBQWdCLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFDNUMsQ0FBQztBQUVELE1BQU0sVUFBVSwyQkFBMkIsQ0FBQyxLQUFjLEVBQUUsS0FBd0I7SUFDbEYsT0FBTyx5QkFBeUIsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUN0RCxDQUFDO0FBRUQsTUFBTSxVQUFVLGlDQUFpQyxDQUFDLEtBQWMsRUFBRSxLQUF3QjtJQUN4RixPQUFPLGVBQWUsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUM1QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGlDQUFpQyxDQUFDLEtBQWMsRUFBRSxLQUF3QjtJQUN4RixPQUFPLGVBQWUsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUM1QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLEtBQWMsRUFBRSxLQUF3QjtJQUM3RSxPQUFPLGdDQUFnQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssR0FBRyxDQUFDO0FBQy9ELENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsRUFBRSxVQUFVLEVBQTZCO0lBQzdFLE9BQU8sY0FBYyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUN6QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLEtBQWMsRUFBRSxLQUF3QjtJQUMvRSxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLE9BQU8sQ0FBQztJQUM5QyxPQUFPLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyx3Q0FBd0MsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQztBQUN0SCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAyMyBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBtaW5JdGVtc1ZhbGlkYXRpb25NZXNzYWdlKGVycm9yOiB1bmtub3duLCBmaWVsZDogRm9ybWx5RmllbGRDb25maWcpOiBzdHJpbmcge1xuICByZXR1cm4gYFNob3VsZCBOT1QgaGF2ZSBmZXdlciB0aGFuICR7ZmllbGQucHJvcHM/Lm1pbkl0ZW1zfSBpdGVtc2A7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXhJdGVtc1ZhbGlkYXRpb25NZXNzYWdlKGVycm9yOiB1bmtub3duLCBmaWVsZDogRm9ybWx5RmllbGRDb25maWcpOiBzdHJpbmcge1xuICByZXR1cm4gYFNob3VsZCBOT1QgaGF2ZSBtb3JlIHRoYW4gJHtmaWVsZC5wcm9wcz8ubWF4SXRlbXN9IGl0ZW1zYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1pbkxlbmd0aFZhbGlkYXRpb25NZXNzYWdlKGVycm9yOiB1bmtub3duLCBmaWVsZDogRm9ybWx5RmllbGRDb25maWcpOiBzdHJpbmcge1xuICByZXR1cm4gYFNob3VsZCBOT1QgYmUgc2hvcnRlciB0aGFuICR7ZmllbGQucHJvcHM/Lm1pbkxlbmd0aH0gY2hhcmFjdGVyc2A7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXhMZW5ndGhWYWxpZGF0aW9uTWVzc2FnZShlcnJvcjogdW5rbm93biwgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBTaG91bGQgTk9UIGJlIGxvbmdlciB0aGFuICR7ZmllbGQucHJvcHM/Lm1heExlbmd0aH0gY2hhcmFjdGVyc2A7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtaW5WYWxpZGF0aW9uTWVzc2FnZShlcnJvcjogdW5rbm93biwgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBTaG91bGQgYmUgPj0gJHtmaWVsZC5wcm9wcz8ubWlufWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXhWYWxpZGF0aW9uTWVzc2FnZShlcnJvcjogdW5rbm93biwgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBTaG91bGQgYmUgPD0gJHtmaWVsZC5wcm9wcz8ubWF4fWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtdWx0aXBsZU9mVmFsaWRhdGlvbk1lc3NhZ2UoZXJyb3I6IHVua25vd24sIGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZyk6IHN0cmluZyB7XG4gIHJldHVybiBgU2hvdWxkIGJlIG11bHRpcGxlIG9mICR7ZmllbGQucHJvcHM/LnN0ZXB9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4Y2x1c2l2ZU1pbmltdW1WYWxpZGF0aW9uTWVzc2FnZShlcnJvcjogdW5rbm93biwgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBTaG91bGQgYmUgPiAke2ZpZWxkLnByb3BzPy5zdGVwfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleGNsdXNpdmVNYXhpbXVtVmFsaWRhdGlvbk1lc3NhZ2UoZXJyb3I6IHVua25vd24sIGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZyk6IHN0cmluZyB7XG4gIHJldHVybiBgU2hvdWxkIGJlIDwgJHtmaWVsZC5wcm9wcz8uc3RlcH1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29uc3RWYWxpZGF0aW9uTWVzc2FnZShlcnJvcjogdW5rbm93biwgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBTaG91bGQgYmUgZXF1YWwgdG8gY29uc3RhbnQgXCIke2ZpZWxkLnByb3BzPy5jb25zdH1cImA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0eXBlVmFsaWRhdGlvbk1lc3NhZ2UoeyBzY2hlbWFUeXBlIH06IHsgc2NoZW1hVHlwZTogdW5rbm93bltdIH0pOiBzdHJpbmcge1xuICByZXR1cm4gYFNob3VsZCBiZSBcIiR7c2NoZW1hVHlwZVswXX1cIi5gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGF0dGVyblZhbGlkYXRpb25NZXNzYWdlKGVycm9yOiB1bmtub3duLCBmaWVsZDogRm9ybWx5RmllbGRDb25maWcpOiBzdHJpbmcge1xuICBjb25zdCBrZXkgPSBmaWVsZD8ua2V5Py50b1N0cmluZygpID8/ICdGaWVsZCc7XG4gIHJldHVybiBgJHtrZXkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBrZXkuc2xpY2UoMSl9IHZhbHVlIGRvZXMgbm90IHJlc3BlY3QgdGhlIHBhdHRlcm46ICR7ZmllbGQ/LnByb3BzPy5wYXR0ZXJufWA7XG59XG4iXX0=
@@ -16,7 +16,7 @@ import { ComponentHarness, HarnessPredicate, parallel, TestKey } from '@angular/
16
16
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
17
17
  import * as i3$3 from '@angular/material/form-field';
18
18
  import { MatFormFieldControl, MatFormFieldModule, MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';
19
- import { isEmpty, isString, isObject, toLower, dropRight, isNil, isArray, remove, cloneDeep, uniqueId, set, range } from 'lodash';
19
+ import { isEmpty, isString, isObject, toLower, dropRight, isNil, isArray, remove, isEqual, cloneDeep, uniqueId, set, range } from 'lodash';
20
20
  import * as i7 from '@angular/forms';
21
21
  import { FormsModule, FormArray, FormGroup, FormControl, Validators, NG_VALUE_ACCESSOR, NG_VALIDATORS, ReactiveFormsModule, NgControl } from '@angular/forms';
22
22
  import * as i1$2 from '@angular/cdk/a11y';
@@ -2694,13 +2694,15 @@ class GioFormJsonSchemaComponent {
2694
2694
  (_e = (_d = this.ngControl) === null || _d === void 0 ? void 0 : _d.control) === null || _e === void 0 ? void 0 : _e.addAsyncValidators(() => {
2695
2695
  return this.isValid$.pipe(take(1), map(isValid => (isValid ? null : { invalid: true })), takeUntil(this.unsubscribe$));
2696
2696
  });
2697
- // Init control value with default value without emit event
2698
- this.formGroup.valueChanges.pipe(take(1), takeUntil(this.unsubscribe$)).subscribe(value => {
2697
+ // Sync control value with default value (without emit event) as long as the component is not ready
2698
+ // When formly is initialised, it emits several values as it builds up step by step.
2699
+ this.formGroup.valueChanges
2700
+ .pipe(distinctUntilChanged(isEqual), tap(value => {
2699
2701
  var _a, _b;
2700
2702
  (_b = (_a = this.ngControl) === null || _a === void 0 ? void 0 : _a.control) === null || _b === void 0 ? void 0 : _b.reset(value, { emitEvent: false });
2701
- this.changeDetectorRef.markForCheck();
2702
- this.changeDetectorRef.detectChanges();
2703
- });
2703
+ }), takeUntil(this.ready), takeUntil(this.unsubscribe$))
2704
+ .subscribe();
2705
+ // Avoid ExpressionChangedAfterItHasBeenCheckedError on project
2704
2706
  this.changeDetectorRef.markForCheck();
2705
2707
  this.changeDetectorRef.detectChanges();
2706
2708
  // Subscribe to state changes to manage touches, status and value
@@ -2784,10 +2786,10 @@ class GioFormJsonSchemaComponent {
2784
2786
  }
2785
2787
  }
2786
2788
  GioFormJsonSchemaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormJsonSchemaComponent, deps: [{ token: GioFormlyJsonSchemaService }, { token: i0.ElementRef }, { token: i1$2.FocusMonitor }, { token: i0.ChangeDetectorRef }, { token: i7.NgControl, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
2787
- GioFormJsonSchemaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFormJsonSchemaComponent, selector: "gio-form-json-schema", inputs: { jsonSchema: "jsonSchema", options: "options" }, outputs: { ready: "ready" }, host: { properties: { "attr.gioFormFocusInvalidIgnore": "this.gioFormFocusInvalidIgnore" } }, usesOnChanges: true, ngImport: i0, template: `<formly-form *ngIf="formGroup" [fields]="fields" [options]="options" [form]="formGroup" [model]="model"></formly-form>`, isInline: true, styles: ["::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-outline:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)){padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-outline:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)) .mat-form-field-wrapper{padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-fill:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)){padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-fill:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)) .mat-form-field-wrapper{margin-bottom:-1.34375em}\n"], components: [{ type: i1$5.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }], directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2789
+ GioFormJsonSchemaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFormJsonSchemaComponent, selector: "gio-form-json-schema", inputs: { jsonSchema: "jsonSchema", options: "options" }, outputs: { ready: "ready" }, host: { properties: { "attr.gioFormFocusInvalidIgnore": "this.gioFormFocusInvalidIgnore" } }, usesOnChanges: true, ngImport: i0, template: `<formly-form *ngIf="formGroup" [fields]="fields" [options]="options" [form]="formGroup" [model]="model"></formly-form>`, isInline: true, styles: ["::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-outline:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)){padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-outline:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)) .mat-form-field-wrapper{padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-fill:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)){padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-fill:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)) .mat-form-field-wrapper{margin-bottom:-1.34375em}\n"], components: [{ type: i1$5.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }], directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2788
2790
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormJsonSchemaComponent, decorators: [{
2789
2791
  type: Component,
2790
- args: [{ selector: 'gio-form-json-schema', template: `<formly-form *ngIf="formGroup" [fields]="fields" [options]="options" [form]="formGroup" [model]="model"></formly-form>`, styles: ["::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-outline:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)){padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-outline:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)) .mat-form-field-wrapper{padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-fill:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)){padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-fill:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)) .mat-form-field-wrapper{margin-bottom:-1.34375em}\n"] }]
2792
+ args: [{ selector: 'gio-form-json-schema', template: `<formly-form *ngIf="formGroup" [fields]="fields" [options]="options" [form]="formGroup" [model]="model"></formly-form>`, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-outline:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)){padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-outline:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)) .mat-form-field-wrapper{padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-fill:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)){padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-fill:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)) .mat-form-field-wrapper{margin-bottom:-1.34375em}\n"] }]
2791
2793
  }], ctorParameters: function () {
2792
2794
  return [{ type: GioFormlyJsonSchemaService }, { type: i0.ElementRef }, { type: i1$2.FocusMonitor }, { type: i0.ChangeDetectorRef }, { type: i7.NgControl, decorators: [{
2793
2795
  type: Host
@@ -3685,6 +3687,11 @@ function constValidationMessage(error, field) {
3685
3687
  function typeValidationMessage({ schemaType }) {
3686
3688
  return `Should be "${schemaType[0]}".`;
3687
3689
  }
3690
+ function patternValidationMessage(error, field) {
3691
+ var _a, _b, _c;
3692
+ const key = (_b = (_a = field === null || field === void 0 ? void 0 : field.key) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : 'Field';
3693
+ return `${key.charAt(0).toUpperCase() + key.slice(1)} value does not respect the pattern: ${(_c = field === null || field === void 0 ? void 0 : field.props) === null || _c === void 0 ? void 0 : _c.pattern}`;
3694
+ }
3688
3695
 
3689
3696
  /*
3690
3697
  * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
@@ -4096,6 +4103,7 @@ GioFormJsonSchemaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
4096
4103
  { name: 'maxItems', message: maxItemsValidationMessage },
4097
4104
  { name: 'uniqueItems', message: 'Should NOT have duplicate items' },
4098
4105
  { name: 'const', message: constValidationMessage },
4106
+ { name: 'pattern', message: patternValidationMessage },
4099
4107
  ],
4100
4108
  wrappers: [
4101
4109
  { name: 'gio-with-banner', component: GioBannerWrapperComponent },
@@ -4171,6 +4179,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4171
4179
  { name: 'maxItems', message: maxItemsValidationMessage },
4172
4180
  { name: 'uniqueItems', message: 'Should NOT have duplicate items' },
4173
4181
  { name: 'const', message: constValidationMessage },
4182
+ { name: 'pattern', message: patternValidationMessage },
4174
4183
  ],
4175
4184
  wrappers: [
4176
4185
  { name: 'gio-with-banner', component: GioBannerWrapperComponent },