@gravitee/ui-particles-angular 7.17.1 → 7.17.2-fix-ps-baa6a59
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.
- package/esm2020/lib/gio-form-json-schema/gio-form-json-schema.component.mjs +24 -19
- package/fesm2015/gravitee-ui-particles-angular.mjs +26 -21
- package/fesm2015/gravitee-ui-particles-angular.mjs.map +1 -1
- package/fesm2020/gravitee-ui-particles-angular.mjs +22 -17
- package/fesm2020/gravitee-ui-particles-angular.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
import { Component, Host, HostBinding, Input, Optional, } from '@angular/core';
|
|
17
17
|
import { FormGroup } from '@angular/forms';
|
|
18
18
|
import { cloneDeep, isEmpty, isObject } from 'lodash';
|
|
19
|
-
import { debounceTime, distinctUntilChanged, filter, map, take, takeUntil } from 'rxjs/operators';
|
|
19
|
+
import { debounceTime, distinctUntilChanged, filter, map, 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';
|
|
22
22
|
import * as i0 from "@angular/core";
|
|
@@ -71,11 +71,6 @@ export class GioFormJsonSchemaComponent {
|
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
ngOnInit() {
|
|
74
|
-
// Invalid by default.
|
|
75
|
-
this.ngControl?.control?.addAsyncValidators(() => {
|
|
76
|
-
return this.isValid$.pipe(takeUntil(this.unsubscribe$), take(1), map(isValid => (isValid ? null : { invalid: true })));
|
|
77
|
-
});
|
|
78
|
-
this.ngControl?.control?.updateValueAndValidity({ emitEvent: false });
|
|
79
74
|
// When the parent form is touched, mark all the sub formGroup as touched if not already touched
|
|
80
75
|
const parentControl = this.ngControl?.control?.parent;
|
|
81
76
|
parentControl?.statusChanges
|
|
@@ -87,27 +82,22 @@ export class GioFormJsonSchemaComponent {
|
|
|
87
82
|
this.formGroup.markAllAsTouched();
|
|
88
83
|
this.stateChanges$.next();
|
|
89
84
|
});
|
|
90
|
-
//
|
|
91
|
-
|
|
92
|
-
.pipe(takeUntil(this.unsubscribe$),
|
|
93
|
-
.subscribe(() => {
|
|
94
|
-
this.stateChanges$.next();
|
|
85
|
+
// Add async validator to the parent
|
|
86
|
+
this.ngControl?.control?.addAsyncValidators(() => {
|
|
87
|
+
return this.isValid$.pipe(takeUntil(this.unsubscribe$), take(1), map(isValid => (isValid ? null : { invalid: true })));
|
|
95
88
|
});
|
|
96
|
-
}
|
|
97
|
-
ngAfterViewInit() {
|
|
98
89
|
// Subscribe to state changes to manage touches, status and value
|
|
99
|
-
this.stateChanges
|
|
90
|
+
this.stateChanges$
|
|
91
|
+
.pipe(tap(() => {
|
|
100
92
|
const { status, value, touched } = this.formGroup;
|
|
101
93
|
if (this.isDisabled) {
|
|
102
94
|
return;
|
|
103
95
|
}
|
|
104
96
|
if (status === 'VALID') {
|
|
105
97
|
this.isValid$.next(true);
|
|
106
|
-
this.ngControl?.control?.setErrors(null);
|
|
107
98
|
}
|
|
108
99
|
if (status === 'INVALID') {
|
|
109
100
|
this.isValid$.next(false);
|
|
110
|
-
this.ngControl?.control?.setErrors({ invalid: true });
|
|
111
101
|
}
|
|
112
102
|
if (touched && !this.touched) {
|
|
113
103
|
this._onTouched();
|
|
@@ -116,8 +106,23 @@ export class GioFormJsonSchemaComponent {
|
|
|
116
106
|
if (this.touched) {
|
|
117
107
|
this._onChange(value);
|
|
118
108
|
}
|
|
119
|
-
|
|
120
|
-
|
|
109
|
+
}),
|
|
110
|
+
// Keep at the end
|
|
111
|
+
takeUntil(this.unsubscribe$))
|
|
112
|
+
.subscribe(() => {
|
|
113
|
+
setTimeout(() => {
|
|
114
|
+
this.changeDetectorRef.markForCheck();
|
|
115
|
+
this.changeDetectorRef.detectChanges();
|
|
116
|
+
this.ngControl?.control?.updateValueAndValidity();
|
|
117
|
+
}, 0);
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
ngAfterViewInit() {
|
|
121
|
+
// Group all valueChanges events emit by formly in a single one
|
|
122
|
+
merge(this.formGroup.statusChanges, this.formGroup.valueChanges)
|
|
123
|
+
.pipe(takeUntil(this.unsubscribe$), debounceTime(100))
|
|
124
|
+
.subscribe(() => {
|
|
125
|
+
this.stateChanges$.next();
|
|
121
126
|
});
|
|
122
127
|
this.stateChanges$.next();
|
|
123
128
|
}
|
|
@@ -172,4 +177,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
172
177
|
}], options: [{
|
|
173
178
|
type: Input
|
|
174
179
|
}] } });
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWZvcm0tanNvbi1zY2hlbWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcGFydGljbGVzLWFuZ3VsYXIvc3JjL2xpYi9naW8tZm9ybS1qc29uLXNjaGVtYS9naW8tZm9ybS1qc29uLXNjaGVtYS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBR0wsU0FBUyxFQUVULElBQUksRUFDSixXQUFXLEVBQ1gsS0FBSyxFQUdMLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFNBQVMsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBRTVFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdyRCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQzs7Ozs7OztBQVV2SSxNQUFNLE9BQU8sMEJBQTBCO0lBeUNyQyxZQUNtQixtQkFBK0MsRUFDL0MsS0FBaUIsRUFDakIsRUFBZ0IsRUFDaEIsaUJBQW9DLEVBQ2pCLFNBQXFCO1FBSnhDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBNEI7UUFDL0MsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNqQixPQUFFLEdBQUYsRUFBRSxDQUFjO1FBQ2hCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDakIsY0FBUyxHQUFULFNBQVMsQ0FBWTtRQXhDbkQsaUJBQVksR0FBa0IsSUFBSSxPQUFPLEVBQVEs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QUNyQixnQkFBZ0IsQ0FBQyxFQUFtQztRQUN6RCxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsNEJBQTRCO0lBQ3JCLGlCQUFpQixDQUFDLEVBQWM7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELDRCQUE0QjtJQUNyQixnQkFBZ0IsQ0FBRSxVQUFtQjtRQUMxQyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFO1lBQ2xDLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBRTdCLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixHQUFHLElBQUksQ0FBQyxPQUFPO1lBQ2YsU0FBUyxFQUFFO2dCQUNULEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTO2dCQUN6QixRQUFRLEVBQUUsVUFBVTthQUNyQjtTQUNGLENBQUM7UUFFRixVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFaEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDOzt3SEEvS1UsMEJBQTBCOzRHQUExQiwwQkFBMEIsb05BSDNCLHdIQUF3SDs0RkFHdkgsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHNCQUFzQixZQUN0Qix3SEFBd0g7OzBCQWlEL0gsSUFBSTs7MEJBQUksUUFBUTs0Q0FyQ1gseUJBQXlCO3NCQURoQyxXQUFXO3VCQUFDLFFBQVEsc0NBQXNDLEVBQUU7Z0JBSWxELFVBQVU7c0JBRHBCLEtBQUs7Z0JBVUMsT0FBTztzQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAyMyBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3QsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtR3JvdXAsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnLCBGb3JtbHlGb3JtT3B0aW9ucyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBpc0VtcHR5LCBpc09iamVjdCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgbWVyZ2UsIFJlcGxheVN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcblxuaW1wb3J0IHsgR0lPX0ZPUk1fRk9DVVNfSU5WQUxJRF9JR05PUkVfU0VMRUNUT1IgfSBmcm9tICcuLi9naW8tZm9ybS1mb2N1cy1maXJzdC1pbnZhbGlkL2dpby1mb3JtLWZvY3VzLWZpcnN0LWludmFsaWQtaWdub3JlLmRpcmVjdGl2ZSc7XG5cbmltcG9ydCB7IEdpb0pzb25TY2hlbWEgfSBmcm9tICcuL21vZGVsL0dpb0pzb25TY2hlbWEnO1xuaW1wb3J0IHsgR2lvRm9ybWx5SnNvblNjaGVtYVNlcnZpY2UgfSBmcm9tICcuL2dpby1mb3JtbHktanNvbi1zY2hlbWEuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dpby1mb3JtLWpzb24tc2NoZW1hJyxcbiAgdGVtcGxhdGU6IGA8Zm9ybWx5LWZvcm0gKm5nSWY9XCJmb3JtR3JvdXBcIiBbZmllbGRzXT1cImZpZWxkc1wiIFtvcHRpb25zXT1cIm9wdGlvbnNcIiBbZm9ybV09XCJmb3JtR3JvdXBcIiBbbW9kZWxdPVwibW9kZWxcIj48L2Zvcm1seS1mb3JtPmAsXG4gIHN0eWxlVXJsczogWycuL2dpby1mb3JtLWpzb24tc2NoZW1hLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdpb0Zvcm1Kc29uU2NoZW1hQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIHN0YXRpYyBpc0Rpc3BsYXlhYmxlKGpzb25TY2hlbWE6IEdpb0pzb25TY2hlbWEpOiBib29sZWFuIHtcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gWydwcm9wZXJ0aWVzJywgJ29uZU9mJywgJ2FueU9mJywgJ2FsbE9mJywgJyRyZWYnLCAnaXRlbXMnXSBhcyBjb25zdDtcblxuICAgIHJldHVybiBpc09iamVjdChqc29uU2NoZW1hKSAmJiBwcm9wZXJ0aWVzLnNvbWUocHJvcGVydHkgPT4gIWlzRW1wdHkoanNvblNjaGVtYVtwcm9wZXJ0eV0pKTtcbiAgfVxuICBwcml2YXRlIHVuc3Vic2NyaWJlJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgQEhvc3RCaW5kaW5nKGBhdHRyLiR7R0lPX0ZPUk1fRk9DVVNfSU5WQUxJRF9JR05PUkVfU0VMRUNUT1J9YClcbiAgcHJpdmF0ZSBnaW9Gb3JtRm9jdXNJbnZhbGlkSWdub3JlID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGpzb25TY2hlbWEoanNvblNjaGVtYTogR2lvSnNvblNjaGVtYSkge1xuICAgIGlmIChpc09iamVjdChqc29uU2NoZW1hKSkge1xuICAgICAgdGhpcy5maWVsZHMgPSBbdGhpcy5naW9Gb3JtbHlKc29uU2NoZW1hLnRvRm9ybWx5RmllbGRDb25maWcoanNvblNjaGVtYSldO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvcHRpb25zOiBGb3JtbHlGb3JtT3B0aW9ucyA9IHt9O1xuXG4gIHB1YmxpYyBtb2RlbDogdW5rbm93biA9IHt9O1xuXG4gIHB1YmxpYyBmaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXTtcblxuICBwdWJsaWMgbG9hZGluZyA9IHRydWU7XG5cbiAgcHVibGljIGlzRGlzYWJsZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgX29uQ2hhbmdlOiAodmFsdWU6IHVua25vd24gfCBudWxsKSA9PiB2b2lkID0gKCkgPT4gKHt9KTtcblxuICBwdWJsaWMgX29uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+ICh7fSk7XG5cbiAgcHJpdmF0ZSB0b3VjaGVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBpc1ZhbGlkJCA9IG5ldyBSZXBsYXlTdWJqZWN0KDEpOyAvLyBXYWl0IEpzb25TY2hlbWEgdG8gYmUgbG9hZGVkIHRvIGNoZWNrIGlmIGl0J3MgdmFsaWRcblxuICBwcml2YXRlIHN0YXRlQ2hhbmdlcyQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZ2lvRm9ybWx5SnNvblNjaGVtYTogR2lvRm9ybWx5SnNvblNjaGVtYVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZtOiBGb2N1c01vbml0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQEhvc3QoKSBAT3B0aW9uYWwoKSBwdWJsaWMgcmVhZG9ubHkgbmdDb250cm9sPzogTmdDb250cm9sLFxuICApIHtcbiAgICBpZiAobmdDb250cm9sKSB7XG4gICAgICAvLyBTZXR0aW5nIHRoZSB2YWx1ZSBhY2Nlc3NvciBkaXJlY3RseSAoaW5zdGVhZCBvZiB1c2luZ1xuICAgICAgLy8gdGhlIHByb3ZpZGVycyBgTkdfVkFMVUVfQUNDRVNTT1JgKSB0byBhdm9pZCBydW5uaW5nIGludG8gYSBjaXJjdWxhciBpbXBvcnQuXG4gICAgICBuZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuXG4gICAgLy8gV2hlbiB0aGUgdXNlciBpbnRlcmFjdCB3aXRoIHRoZSBmb3JtLCBtYXJrIGl0IGFzIHRvdWNoZWRcbiAgICBmbS5tb25pdG9yKGVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRydWUpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmlzRGlzYWJsZWQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gICAgICAgIHRoaXMudG91Y2hlZCA9IHRydWU7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBJbnZhbGlkIGJ5IGRlZmF1bHQuXG4gICAgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LmFkZEFzeW5jVmFsaWRhdG9ycygoKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkJC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBtYXAoaXNWYWxpZCA9PiAoaXNWYWxpZCA/IG51bGwgOiB7IGludmFsaWQ6IHRydWUgfSkpLFxuICAgICAgKTtcbiAgICB9KTtcbiAgICB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG5cbiAgICAvLyBXaGVuIHRoZSBwYXJlbnQgZm9ybSBpcyB0b3VjaGVkLCBtYXJrIGFsbCB0aGUgc3ViIGZvcm1Hcm91cCBhcyB0b3VjaGVkIGlmIG5vdCBhbHJlYWR5IHRvdWNoZWRcbiAgICBjb25zdCBwYXJlbnRDb250cm9sID0gdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnBhcmVudDtcbiAgICBwYXJlbnRDb250cm9sPy5zdGF0dXNDaGFuZ2VzXG4gICAgICA/LnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCksXG4gICAgICAgIG1hcCgoKSA9PiBwYXJlbnRDb250cm9sPy50b3VjaGVkKSxcbiAgICAgICAgZmlsdGVyKHRvdWNoZWQgPT4gdG91Y2hlZCA9PT0gdHJ1ZSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNEaXNhYmxlZCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZvcm1Hcm91cC5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzJC5uZXh0KCk7XG4gICAgICB9KTtcblxuICAgIC8vIEdyb3VwIGFsbCB2YWx1ZUNoYW5nZXMgZXZlbnRzIGVtaXQgYnkgZm9ybWx5IGluIGEgc2luZ2xlIG9uZVxuICAgIG1lcmdlKHRoaXMuZm9ybUdyb3VwLnN0YXR1c0NoYW5nZXMsIHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCksIGRlYm91bmNlVGltZSgxMDApKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzJC5uZXh0KCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy8gU3Vic2NyaWJlIHRvIHN0YXRlIGNoYW5nZXMgdG8gbWFuYWdlIHRvdWNoZXMsIHN0YXR1cyBhbmQgdmFsdWVcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcyQucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgeyBzdGF0dXMsIHZhbHVlLCB0b3VjaGVkIH0gPSB0aGlzLmZvcm1Hcm91cDtcbiAgICAgIGlmICh0aGlzLmlzRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RhdHVzID09PSAnVkFMSUQnKSB7XG4gICAgICAgIHRoaXMuaXNWYWxpZCQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnNldEVycm9ycyhudWxsKTtcbiAgICAgIH1cbiAgICAgIGlmIChzdGF0dXMgPT09ICdJTlZBTElEJykge1xuICAgICAgICB0aGlzLmlzVmFsaWQkLm5leHQoZmFsc2UpO1xuICAgICAgICB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8uc2V0RXJyb3JzKHsgaW52YWxpZDogdHJ1ZSB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRvdWNoZWQgJiYgIXRoaXMudG91Y2hlZCkge1xuICAgICAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy50b3VjaGVkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMudG91Y2hlZCkge1xuICAgICAgICB0aGlzLl9vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubmdDb250cm9sPy5jb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMkLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgdGhpcy51bnN1YnNjcmliZSQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmZtLnN0b3BNb25pdG9yaW5nKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiB1bmtub3duKTogdm9pZCB7XG4gICAgdGhpcy5tb2RlbCA9IGNsb25lRGVlcCh2YWx1ZSkgPz8ge307XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHVua25vd24gfCBudWxsKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZCA9PT0gaXNEaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG5cbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICBmb3JtU3RhdGU6IHtcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLmZvcm1TdGF0ZSxcbiAgICAgICAgZGlzYWJsZWQ6IGlzRGlzYWJsZWQsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBpc0Rpc2FibGVkID8gdGhpcy5mb3JtR3JvdXAuZGlzYWJsZSgpIDogdGhpcy5mb3JtR3JvdXAuZW5hYmxlKCk7XG5cbiAgICB0aGlzLnN0YXRlQ2hhbmdlcyQubmV4dCgpO1xuICB9XG59XG4iXX0=
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWZvcm0tanNvbi1zY2hlbWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcGFydGljbGVzLWFuZ3VsYXIvc3JjL2xpYi9naW8tZm9ybS1qc29uLXNjaGVtYS9naW8tZm9ybS1qc29uLXNjaGVtYS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBR0wsU0FBUyxFQUVULElBQUksRUFDSixXQUFXLEVBQ1gsS0FBSyxFQUdMLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFNBQVMsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBRTVFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RyxPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHckQsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sK0VBQStFLENBQUM7Ozs7Ozs7QUFVdkksTUFBTSxPQUFPLDBCQUEwQjtJQXlDckMsWUFDbUIsbUJBQStDLEVBQy9DLEtBQWlCLEVBQ2pCLEVBQWdCLEVBQ2hCLGlCQUFvQyxFQUNqQixTQUFxQjtRQUp4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQTRCO1FBQy9DLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsT0FBRSxHQUFGLEVBQUUsQ0FBYztRQUNoQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ2pCLGNBQVMsR0FBVCxTQUFTLENBQVk7UUF4Q25ELGlCQUFZLEdBQWtCLElBQUks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QixDQUFDLEVBQWM7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELDRCQUE0QjtJQUNyQixnQkFBZ0IsQ0FBRSxVQUFtQjtRQUMxQyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFO1lBQ2xDLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBRTdCLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixHQUFHLElBQUksQ0FBQyxPQUFPO1lBQ2YsU0FBUyxFQUFFO2dCQUNULEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTO2dCQUN6QixRQUFRLEVBQUUsVUFBVTthQUNyQjtTQUNGLENBQUM7UUFFRixVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFaEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDOzt3SEFwTFUsMEJBQTBCOzRHQUExQiwwQkFBMEIsb05BSDNCLHdIQUF3SDs0RkFHdkgsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHNCQUFzQixZQUN0Qix3SEFBd0g7OzBCQWlEL0gsSUFBSTs7MEJBQUksUUFBUTs0Q0FyQ1gseUJBQXlCO3NCQURoQyxXQUFXO3VCQUFDLFFBQVEsc0NBQXNDLEVBQUU7Z0JBSWxELFVBQVU7c0JBRHBCLEtBQUs7Z0JBVUMsT0FBTztzQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAyMyBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3QsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtR3JvdXAsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnLCBGb3JtbHlGb3JtT3B0aW9ucyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBpc0VtcHR5LCBpc09iamVjdCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgdGFrZSwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBtZXJnZSwgUmVwbGF5U3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuXG5pbXBvcnQgeyBHSU9fRk9STV9GT0NVU19JTlZBTElEX0lHTk9SRV9TRUxFQ1RPUiB9IGZyb20gJy4uL2dpby1mb3JtLWZvY3VzLWZpcnN0LWludmFsaWQvZ2lvLWZvcm0tZm9jdXMtZmlyc3QtaW52YWxpZC1pZ25vcmUuZGlyZWN0aXZlJztcblxuaW1wb3J0IHsgR2lvSnNvblNjaGVtYSB9IGZyb20gJy4vbW9kZWwvR2lvSnNvblNjaGVtYSc7XG5pbXBvcnQgeyBHaW9Gb3JtbHlKc29uU2NoZW1hU2VydmljZSB9IGZyb20gJy4vZ2lvLWZvcm1seS1qc29uLXNjaGVtYS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2lvLWZvcm0tanNvbi1zY2hlbWEnLFxuICB0ZW1wbGF0ZTogYDxmb3JtbHktZm9ybSAqbmdJZj1cImZvcm1Hcm91cFwiIFtmaWVsZHNdPVwiZmllbGRzXCIgW29wdGlvbnNdPVwib3B0aW9uc1wiIFtmb3JtXT1cImZvcm1Hcm91cFwiIFttb2RlbF09XCJtb2RlbFwiPjwvZm9ybWx5LWZvcm0+YCxcbiAgc3R5bGVVcmxzOiBbJy4vZ2lvLWZvcm0tanNvbi1zY2hlbWEuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgR2lvRm9ybUpzb25TY2hlbWFDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgc3RhdGljIGlzRGlzcGxheWFibGUoanNvblNjaGVtYTogR2lvSnNvblNjaGVtYSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHByb3BlcnRpZXMgPSBbJ3Byb3BlcnRpZXMnLCAnb25lT2YnLCAnYW55T2YnLCAnYWxsT2YnLCAnJHJlZicsICdpdGVtcyddIGFzIGNvbnN0O1xuXG4gICAgcmV0dXJuIGlzT2JqZWN0KGpzb25TY2hlbWEpICYmIHByb3BlcnRpZXMuc29tZShwcm9wZXJ0eSA9PiAhaXNFbXB0eShqc29uU2NoZW1hW3Byb3BlcnR5XSkpO1xuICB9XG4gIHByaXZhdGUgdW5zdWJzY3JpYmUkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBASG9zdEJpbmRpbmcoYGF0dHIuJHtHSU9fRk9STV9GT0NVU19JTlZBTElEX0lHTk9SRV9TRUxFQ1RPUn1gKVxuICBwcml2YXRlIGdpb0Zvcm1Gb2N1c0ludmFsaWRJZ25vcmUgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQganNvblNjaGVtYShqc29uU2NoZW1hOiBHaW9Kc29uU2NoZW1hKSB7XG4gICAgaWYgKGlzT2JqZWN0KGpzb25TY2hlbWEpKSB7XG4gICAgICB0aGlzLmZpZWxkcyA9IFt0aGlzLmdpb0Zvcm1seUpzb25TY2hlbWEudG9Gb3JtbHlGaWVsZENvbmZpZyhqc29uU2NoZW1hKV07XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG9wdGlvbnM6IEZvcm1seUZvcm1PcHRpb25zID0ge307XG5cbiAgcHVibGljIG1vZGVsOiB1bmtub3duID0ge307XG5cbiAgcHVibGljIGZpZWxkczogRm9ybWx5RmllbGRDb25maWdbXSA9IFtdO1xuXG4gIHB1YmxpYyBsb2FkaW5nID0gdHJ1ZTtcblxuICBwdWJsaWMgaXNEaXNhYmxlZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBfb25DaGFuZ2U6ICh2YWx1ZTogdW5rbm93biB8IG51bGwpID0+IHZvaWQgPSAoKSA9PiAoe30pO1xuXG4gIHB1YmxpYyBfb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4gKHt9KTtcblxuICBwcml2YXRlIHRvdWNoZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIGlzVmFsaWQkID0gbmV3IFJlcGxheVN1YmplY3QoMSk7IC8vIFdhaXQgSnNvblNjaGVtYSB0byBiZSBsb2FkZWQgdG8gY2hlY2sgaWYgaXQncyB2YWxpZFxuXG4gIHByaXZhdGUgc3RhdGVDaGFuZ2VzJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBnaW9Gb3JtbHlKc29uU2NoZW1hOiBHaW9Gb3JtbHlKc29uU2NoZW1hU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm06IEZvY3VzTW9uaXRvcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBASG9zdCgpIEBPcHRpb25hbCgpIHB1YmxpYyByZWFkb25seSBuZ0NvbnRyb2w/OiBOZ0NvbnRyb2wsXG4gICkge1xuICAgIGlmIChuZ0NvbnRyb2wpIHtcbiAgICAgIC8vIFNldHRpbmcgdGhlIHZhbHVlIGFjY2Vzc29yIGRpcmVjdGx5IChpbnN0ZWFkIG9mIHVzaW5nXG4gICAgICAvLyB0aGUgcHJvdmlkZXJzIGBOR19WQUxVRV9BQ0NFU1NPUmApIHRvIGF2b2lkIHJ1bm5pbmcgaW50byBhIGNpcmN1bGFyIGltcG9ydC5cbiAgICAgIG5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG5cbiAgICAvLyBXaGVuIHRoZSB1c2VyIGludGVyYWN0IHdpdGggdGhlIGZvcm0sIG1hcmsgaXQgYXMgdG91Y2hlZFxuICAgIGZtLm1vbml0b3IoZWxSZWYubmF0aXZlRWxlbWVudCwgdHJ1ZSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNEaXNhYmxlZCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy50b3VjaGVkID0gdHJ1ZTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIFdoZW4gdGhlIHBhcmVudCBmb3JtIGlzIHRvdWNoZWQsIG1hcmsgYWxsIHRoZSBzdWIgZm9ybUdyb3VwIGFzIHRvdWNoZWQgaWYgbm90IGFscmVhZHkgdG91Y2hlZFxuICAgIGNvbnN0IHBhcmVudENvbnRyb2wgPSB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8ucGFyZW50O1xuICAgIHBhcmVudENvbnRyb2w/LnN0YXR1c0NoYW5nZXNcbiAgICAgID8ucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSxcbiAgICAgICAgbWFwKCgpID0+IHBhcmVudENvbnRyb2w/LnRvdWNoZWQpLFxuICAgICAgICBmaWx0ZXIodG91Y2hlZCA9PiB0b3VjaGVkID09PSB0cnVlKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5pc0Rpc2FibGVkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMkLm5leHQoKTtcbiAgICAgIH0pO1xuXG4gICAgLy8gQWRkIGFzeW5jIHZhbGlkYXRvciB0byB0aGUgcGFyZW50XG4gICAgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LmFkZEFzeW5jVmFsaWRhdG9ycygoKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkJC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBtYXAoaXNWYWxpZCA9PiAoaXNWYWxpZCA/IG51bGwgOiB7IGludmFsaWQ6IHRydWUgfSkpLFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIC8vIFN1YnNjcmliZSB0byBzdGF0ZSBjaGFuZ2VzIHRvIG1hbmFnZSB0b3VjaGVzLCBzdGF0dXMgYW5kIHZhbHVlXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICBjb25zdCB7IHN0YXR1cywgdmFsdWUsIHRvdWNoZWQgfSA9IHRoaXMuZm9ybUdyb3VwO1xuICAgICAgICAgIGlmICh0aGlzLmlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoc3RhdHVzID09PSAnVkFMSUQnKSB7XG4gICAgICAgICAgICB0aGlzLmlzVmFsaWQkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzdGF0dXMgPT09ICdJTlZBTElEJykge1xuICAgICAgICAgICAgdGhpcy5pc1ZhbGlkJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodG91Y2hlZCAmJiAhdGhpcy50b3VjaGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICAgICAgICAgIHRoaXMudG91Y2hlZCA9IHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRoaXMudG91Y2hlZCkge1xuICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UodmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIC8vIEtlZXAgYXQgdGhlIGVuZFxuICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgfSwgMCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy8gR3JvdXAgYWxsIHZhbHVlQ2hhbmdlcyBldmVudHMgZW1pdCBieSBmb3JtbHkgaW4gYSBzaW5nbGUgb25lXG4gICAgbWVyZ2UodGhpcy5mb3JtR3JvdXAuc3RhdHVzQ2hhbmdlcywgdGhpcy5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSwgZGVib3VuY2VUaW1lKDEwMCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMkLm5leHQoKTtcbiAgICAgIH0pO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzJC5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5mbS5zdG9wTW9uaXRvcmluZyh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvclxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogdW5rbm93bik6IHZvaWQge1xuICAgIHRoaXMubW9kZWwgPSBjbG9uZURlZXAodmFsdWUpID8/IHt9O1xuICB9XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvclxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiB1bmtub3duIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvclxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGlzYWJsZWQgPT09IGlzRGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuXG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgZm9ybVN0YXRlOiB7XG4gICAgICAgIC4uLnRoaXMub3B0aW9ucy5mb3JtU3RhdGUsXG4gICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgaXNEaXNhYmxlZCA/IHRoaXMuZm9ybUdyb3VwLmRpc2FibGUoKSA6IHRoaXMuZm9ybUdyb3VwLmVuYWJsZSgpO1xuXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMkLm5leHQoKTtcbiAgfVxufVxuIl19
|
|
@@ -2931,43 +2931,32 @@ class GioFormJsonSchemaComponent {
|
|
|
2931
2931
|
}
|
|
2932
2932
|
}
|
|
2933
2933
|
ngOnInit() {
|
|
2934
|
-
var _a, _b, _c, _d, _e
|
|
2935
|
-
// Invalid by default.
|
|
2936
|
-
(_b = (_a = this.ngControl) === null || _a === void 0 ? void 0 : _a.control) === null || _b === void 0 ? void 0 : _b.addAsyncValidators(() => {
|
|
2937
|
-
return this.isValid$.pipe(takeUntil(this.unsubscribe$), take(1), map(isValid => (isValid ? null : { invalid: true })));
|
|
2938
|
-
});
|
|
2939
|
-
(_d = (_c = this.ngControl) === null || _c === void 0 ? void 0 : _c.control) === null || _d === void 0 ? void 0 : _d.updateValueAndValidity({ emitEvent: false });
|
|
2934
|
+
var _a, _b, _c, _d, _e;
|
|
2940
2935
|
// When the parent form is touched, mark all the sub formGroup as touched if not already touched
|
|
2941
|
-
const parentControl = (
|
|
2942
|
-
(
|
|
2936
|
+
const parentControl = (_b = (_a = this.ngControl) === null || _a === void 0 ? void 0 : _a.control) === null || _b === void 0 ? void 0 : _b.parent;
|
|
2937
|
+
(_c = parentControl === null || parentControl === void 0 ? void 0 : parentControl.statusChanges) === null || _c === void 0 ? void 0 : _c.pipe(takeUntil(this.unsubscribe$), map(() => parentControl === null || parentControl === void 0 ? void 0 : parentControl.touched), filter(touched => touched === true), distinctUntilChanged()).subscribe(() => {
|
|
2943
2938
|
if (this.isDisabled) {
|
|
2944
2939
|
return;
|
|
2945
2940
|
}
|
|
2946
2941
|
this.formGroup.markAllAsTouched();
|
|
2947
2942
|
this.stateChanges$.next();
|
|
2948
2943
|
});
|
|
2949
|
-
//
|
|
2950
|
-
|
|
2951
|
-
.pipe(takeUntil(this.unsubscribe$),
|
|
2952
|
-
.subscribe(() => {
|
|
2953
|
-
this.stateChanges$.next();
|
|
2944
|
+
// Add async validator to the parent
|
|
2945
|
+
(_e = (_d = this.ngControl) === null || _d === void 0 ? void 0 : _d.control) === null || _e === void 0 ? void 0 : _e.addAsyncValidators(() => {
|
|
2946
|
+
return this.isValid$.pipe(takeUntil(this.unsubscribe$), take(1), map(isValid => (isValid ? null : { invalid: true })));
|
|
2954
2947
|
});
|
|
2955
|
-
}
|
|
2956
|
-
ngAfterViewInit() {
|
|
2957
2948
|
// Subscribe to state changes to manage touches, status and value
|
|
2958
|
-
this.stateChanges
|
|
2959
|
-
|
|
2949
|
+
this.stateChanges$
|
|
2950
|
+
.pipe(tap(() => {
|
|
2960
2951
|
const { status, value, touched } = this.formGroup;
|
|
2961
2952
|
if (this.isDisabled) {
|
|
2962
2953
|
return;
|
|
2963
2954
|
}
|
|
2964
2955
|
if (status === 'VALID') {
|
|
2965
2956
|
this.isValid$.next(true);
|
|
2966
|
-
(_b = (_a = this.ngControl) === null || _a === void 0 ? void 0 : _a.control) === null || _b === void 0 ? void 0 : _b.setErrors(null);
|
|
2967
2957
|
}
|
|
2968
2958
|
if (status === 'INVALID') {
|
|
2969
2959
|
this.isValid$.next(false);
|
|
2970
|
-
(_d = (_c = this.ngControl) === null || _c === void 0 ? void 0 : _c.control) === null || _d === void 0 ? void 0 : _d.setErrors({ invalid: true });
|
|
2971
2960
|
}
|
|
2972
2961
|
if (touched && !this.touched) {
|
|
2973
2962
|
this._onTouched();
|
|
@@ -2976,8 +2965,24 @@ class GioFormJsonSchemaComponent {
|
|
|
2976
2965
|
if (this.touched) {
|
|
2977
2966
|
this._onChange(value);
|
|
2978
2967
|
}
|
|
2979
|
-
|
|
2980
|
-
|
|
2968
|
+
}),
|
|
2969
|
+
// Keep at the end
|
|
2970
|
+
takeUntil(this.unsubscribe$))
|
|
2971
|
+
.subscribe(() => {
|
|
2972
|
+
setTimeout(() => {
|
|
2973
|
+
var _a, _b;
|
|
2974
|
+
this.changeDetectorRef.markForCheck();
|
|
2975
|
+
this.changeDetectorRef.detectChanges();
|
|
2976
|
+
(_b = (_a = this.ngControl) === null || _a === void 0 ? void 0 : _a.control) === null || _b === void 0 ? void 0 : _b.updateValueAndValidity();
|
|
2977
|
+
}, 0);
|
|
2978
|
+
});
|
|
2979
|
+
}
|
|
2980
|
+
ngAfterViewInit() {
|
|
2981
|
+
// Group all valueChanges events emit by formly in a single one
|
|
2982
|
+
merge(this.formGroup.statusChanges, this.formGroup.valueChanges)
|
|
2983
|
+
.pipe(takeUntil(this.unsubscribe$), debounceTime(100))
|
|
2984
|
+
.subscribe(() => {
|
|
2985
|
+
this.stateChanges$.next();
|
|
2981
2986
|
});
|
|
2982
2987
|
this.stateChanges$.next();
|
|
2983
2988
|
}
|