ngx-vest-forms 1.0.2 → 1.0.3
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/README.md +5 -0
- package/esm2022/lib/components/control-wrapper/control-wrapper.component.mjs +15 -11
- package/esm2022/lib/constants.mjs +1 -1
- package/esm2022/lib/directives/form-model-group.directive.mjs +12 -4
- package/esm2022/lib/directives/form-model.directive.mjs +12 -4
- package/esm2022/lib/directives/form.directive.mjs +39 -30
- package/esm2022/lib/directives/validate-root-form.directive.mjs +24 -10
- package/esm2022/lib/exports.mjs +13 -6
- package/esm2022/lib/utils/array-to-object.mjs +1 -1
- package/esm2022/lib/utils/deep-partial.mjs +1 -1
- package/esm2022/lib/utils/deep-required.mjs +1 -1
- package/esm2022/lib/utils/form-utils.mjs +25 -8
- package/esm2022/lib/utils/shape-validation.mjs +4 -2
- package/esm2022/public-api.mjs +3 -3
- package/fesm2022/ngx-vest-forms.mjs +126 -55
- package/fesm2022/ngx-vest-forms.mjs.map +1 -1
- package/lib/components/control-wrapper/control-wrapper.component.d.ts +7 -6
- package/lib/directives/form.directive.d.ts +20 -13
- package/lib/directives/validate-root-form.directive.d.ts +4 -2
- package/lib/utils/form-utils.d.ts +4 -0
- package/package.json +1 -1
- package/public-api.d.ts +2 -2
package/README.md
CHANGED
|
@@ -584,3 +584,8 @@ export class AddressComponent {
|
|
|
584
584
|
```
|
|
585
585
|
|
|
586
586
|
You can check the examples in the github repo [here](https://github.com/simplifiedcourses/ngx-vest-forms/blob/master/projects/examples).
|
|
587
|
+
|
|
588
|
+
## Want to learn more?
|
|
589
|
+
[](https://www.simplified.courses/complex-angular-template-driven-forms)
|
|
590
|
+
|
|
591
|
+
[This course](https://www.simplified.courses/complex-angular-template-driven-forms) teaches you to become a form expert in no time.
|
|
@@ -1,21 +1,17 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild,
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, HostBinding, inject, } from '@angular/core';
|
|
2
2
|
import { NgModel, NgModelGroup } from '@angular/forms';
|
|
3
|
-
import { mergeWith, of, switchMap } from 'rxjs';
|
|
4
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
+
import { mergeWith, of, Subject, switchMap, takeUntil } from 'rxjs';
|
|
5
4
|
import { FormDirective } from '../../directives/form.directive';
|
|
6
5
|
import * as i0 from "@angular/core";
|
|
7
6
|
export class ControlWrapperComponent {
|
|
8
7
|
constructor() {
|
|
9
|
-
this.cdRef = inject(ChangeDetectorRef);
|
|
10
|
-
this.formDirective = inject(FormDirective);
|
|
11
|
-
this.destroyRef = inject(DestroyRef);
|
|
12
8
|
this.ngModelGroup = inject(NgModelGroup, {
|
|
13
9
|
optional: true,
|
|
14
10
|
self: true,
|
|
15
11
|
});
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
this.destroy$$ = new Subject();
|
|
13
|
+
this.cdRef = inject(ChangeDetectorRef);
|
|
14
|
+
this.formDirective = inject(FormDirective);
|
|
19
15
|
}
|
|
20
16
|
get invalid() {
|
|
21
17
|
return this.control?.touched && this.errors;
|
|
@@ -29,13 +25,21 @@ export class ControlWrapperComponent {
|
|
|
29
25
|
}
|
|
30
26
|
return this.control?.errors?.['errors'];
|
|
31
27
|
}
|
|
28
|
+
get control() {
|
|
29
|
+
return this.ngModelGroup
|
|
30
|
+
? this.ngModelGroup.control
|
|
31
|
+
: this.ngModel?.control;
|
|
32
|
+
}
|
|
33
|
+
ngOnDestroy() {
|
|
34
|
+
this.destroy$$.next();
|
|
35
|
+
}
|
|
32
36
|
ngAfterViewInit() {
|
|
33
37
|
// Wait until the form is idle
|
|
34
38
|
// Then, listen to all events of the ngModelGroup or ngModel
|
|
35
39
|
// and mark the component and its ancestors as dirty
|
|
36
40
|
// This allows us to use the OnPush ChangeDetection Strategy
|
|
37
41
|
this.formDirective.idle$
|
|
38
|
-
.pipe(switchMap(() => this.ngModelGroup?.control?.events || of(null)), mergeWith(this.control?.events || of(null)),
|
|
42
|
+
.pipe(switchMap(() => this.ngModelGroup?.control?.events || of(null)), mergeWith(this.control?.events || of(null)), takeUntil(this.destroy$$))
|
|
39
43
|
.subscribe(() => {
|
|
40
44
|
this.cdRef.markForCheck();
|
|
41
45
|
});
|
|
@@ -53,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
|
|
|
53
57
|
type: HostBinding,
|
|
54
58
|
args: ['class.sc-control-wrapper--invalid']
|
|
55
59
|
}] } });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12ZXN0LWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy9jb250cm9sLXdyYXBwZXIvY29udHJvbC13cmFwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12ZXN0LWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy9jb250cm9sLXdyYXBwZXIvY29udHJvbC13cmFwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQW1CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBU2hFLE1BQU0sT0FBTyx1QkFBdUI7SUFQcEM7UUFTa0IsaUJBQVksR0FBd0IsTUFBTSxDQUFDLFlBQVksRUFBRTtZQUN2RSxRQUFRLEVBQUUsSUFBSTtZQUNkLElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQyxDQUFDO1FBQ2MsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDaEMsVUFBSyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2xDLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0tBMkN4RDtJQXZDQyxJQUNXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDMUIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQzVCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQVksT0FBTztRQUNqQixPQUFPLElBQUksQ0FBQyxZQUFZO1lBQ3RCLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU87WUFDM0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDO0lBQzVCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVNLGVBQWU7UUFDcEIsOEJBQThCO1FBQzlCLDREQUE0RDtRQUM1RCxvREFBb0Q7UUFDcEQsNERBQTREO1FBQzVELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSzthQUNyQixJQUFJLENBQ0gsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDL0QsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUMzQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0FsRFUsdUJBQXVCO2tHQUF2Qix1QkFBdUIsb01BQ3BCLE9BQU8sZ0RDdkJ2Qiw2VEFZQTs7MkZEVWEsdUJBQXVCO2tCQVBuQyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLG1CQUdDLHVCQUF1QixDQUFDLE1BQU07OEJBR2pCLE9BQU87c0JBQXBDLFlBQVk7dUJBQUMsT0FBTztnQkFZVixPQUFPO3NCQURqQixXQUFXO3VCQUFDLG1DQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEhvc3RCaW5kaW5nLFxuICBpbmplY3QsXG4gIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgTmdNb2RlbCwgTmdNb2RlbEdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgbWVyZ2VXaXRoLCBvZiwgU3ViamVjdCwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZvcm1EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2Zvcm0uZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnW3NjLWNvbnRyb2wtd3JhcHBlcl0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJy4vY29udHJvbC13cmFwcGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29udHJvbC13cmFwcGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBDb250cm9sV3JhcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBDb250ZW50Q2hpbGQoTmdNb2RlbCkgcHVibGljIG5nTW9kZWw/OiBOZ01vZGVsOyAvLyBPcHRpb25hbCBuZ01vZGVsXG4gIHB1YmxpYyByZWFkb25seSBuZ01vZGVsR3JvdXA6IE5nTW9kZWxHcm91cCB8IG51bGwgPSBpbmplY3QoTmdNb2RlbEdyb3VwLCB7XG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgc2VsZjogdHJ1ZSxcbiAgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjZFJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybURpcmVjdGl2ZSA9IGluamVjdChGb3JtRGlyZWN0aXZlKTtcbiAgLy8gQ2FjaGUgdGhlIHByZXZpb3VzIGVycm9yIHRvIGF2b2lkICdmbGlja2VyaW5nJ1xuICBwcml2YXRlIHByZXZpb3VzRXJyb3I/OiBzdHJpbmdbXTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNjLWNvbnRyb2wtd3JhcHBlci0taW52YWxpZCcpXG4gIHB1YmxpYyBnZXQgaW52YWxpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sPy50b3VjaGVkICYmIHRoaXMuZXJyb3JzO1xuICB9XG5cbiAgcHVibGljIGdldCBlcnJvcnMoKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLmNvbnRyb2w/LnBlbmRpbmcpIHtcbiAgICAgIHJldHVybiB0aGlzLnByZXZpb3VzRXJyb3I7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJldmlvdXNFcnJvciA9IHRoaXMuY29udHJvbD8uZXJyb3JzPy5bJ2Vycm9ycyddO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jb250cm9sPy5lcnJvcnM/LlsnZXJyb3JzJ107XG4gIH1cblxuICBwcml2YXRlIGdldCBjb250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMubmdNb2RlbEdyb3VwXG4gICAgICA/IHRoaXMubmdNb2RlbEdyb3VwLmNvbnRyb2xcbiAgICAgIDogdGhpcy5uZ01vZGVsPy5jb250cm9sO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQkLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy8gV2FpdCB1bnRpbCB0aGUgZm9ybSBpcyBpZGxlXG4gICAgLy8gVGhlbiwgbGlzdGVuIHRvIGFsbCBldmVudHMgb2YgdGhlIG5nTW9kZWxHcm91cCBvciBuZ01vZGVsXG4gICAgLy8gYW5kIG1hcmsgdGhlIGNvbXBvbmVudCBhbmQgaXRzIGFuY2VzdG9ycyBhcyBkaXJ0eVxuICAgIC8vIFRoaXMgYWxsb3dzIHVzIHRvIHVzZSB0aGUgT25QdXNoIENoYW5nZURldGVjdGlvbiBTdHJhdGVneVxuICAgIHRoaXMuZm9ybURpcmVjdGl2ZS5pZGxlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLm5nTW9kZWxHcm91cD8uY29udHJvbD8uZXZlbnRzIHx8IG9mKG51bGwpKSxcbiAgICAgICAgbWVyZ2VXaXRoKHRoaXMuY29udHJvbD8uZXZlbnRzIHx8IG9mKG51bGwpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNjLWNvbnRyb2wtd3JhcHBlclwiPlxuICA8ZGl2IGNsYXNzPVwic2MtY29udHJvbC13cmFwcGVyX19jb250ZW50XCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInNjLWNvbnRyb2wtd3JhcHBlcl9fZXJyb3JzXCI+XG4gICAgPHVsIFtoaWRkZW5dPVwiIWludmFsaWRcIj5cbiAgICAgIEBmb3IgKGVycm9yIG9mIGVycm9yczsgdHJhY2sgZXJyb3IpIHtcbiAgICAgICAgPGxpPnt7IGVycm9yIH19PC9saT5cbiAgICAgIH1cbiAgICA8L3VsPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const ROOT_FORM = 'rootForm';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlc3QtZm9ybXMvc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBST09UX0ZPUk0gPSAncm9vdEZvcm0nO1xuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Directive, inject } from '@angular/core';
|
|
2
|
-
import { NG_ASYNC_VALIDATORS } from '@angular/forms';
|
|
2
|
+
import { NG_ASYNC_VALIDATORS, } from '@angular/forms';
|
|
3
3
|
import { FormDirective } from './form.directive';
|
|
4
4
|
import { getFormGroupField } from '../utils/form-utils';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
@@ -18,7 +18,11 @@ export class FormModelGroupDirective {
|
|
|
18
18
|
}
|
|
19
19
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: FormModelGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
20
20
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: FormModelGroupDirective, isStandalone: true, selector: "[ngModelGroup]", providers: [
|
|
21
|
-
{
|
|
21
|
+
{
|
|
22
|
+
provide: NG_ASYNC_VALIDATORS,
|
|
23
|
+
useExisting: FormModelGroupDirective,
|
|
24
|
+
multi: true,
|
|
25
|
+
},
|
|
22
26
|
], ngImport: i0 }); }
|
|
23
27
|
}
|
|
24
28
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: FormModelGroupDirective, decorators: [{
|
|
@@ -27,8 +31,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
|
|
|
27
31
|
selector: '[ngModelGroup]',
|
|
28
32
|
standalone: true,
|
|
29
33
|
providers: [
|
|
30
|
-
{
|
|
34
|
+
{
|
|
35
|
+
provide: NG_ASYNC_VALIDATORS,
|
|
36
|
+
useExisting: FormModelGroupDirective,
|
|
37
|
+
multi: true,
|
|
38
|
+
},
|
|
31
39
|
],
|
|
32
40
|
}]
|
|
33
41
|
}] });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tb2RlbC1ncm91cC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVzdC1mb3Jtcy9zcmMvbGliL2RpcmVjdGl2ZXMvZm9ybS1tb2RlbC1ncm91cC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUdMLG1CQUFtQixHQUVwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFeEQ7OztHQUdHO0FBWUgsTUFBTSxPQUFPLHVCQUF1QjtJQVhwQztRQVltQixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztLQVd4RDtJQVRRLFFBQVEsQ0FDYixPQUF3QjtRQUV4QixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN0QyxNQUFNLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3pELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FDbkQsT0FBTyxDQUFDLEtBQUssQ0FDeUIsQ0FBQztJQUMzQyxDQUFDOzhHQVhVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLDZEQVJ2QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxtQkFBbUI7Z0JBQzVCLFdBQVcsRUFBRSx1QkFBdUI7Z0JBQ3BDLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRjs7MkZBRVUsdUJBQXVCO2tCQVhuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsV0FBVyx5QkFBeUI7NEJBQ3BDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQXN5bmNWYWxpZGF0b3IsXG4gIE5HX0FTWU5DX1ZBTElEQVRPUlMsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1EaXJlY3RpdmUgfSBmcm9tICcuL2Zvcm0uZGlyZWN0aXZlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGdldEZvcm1Hcm91cEZpZWxkIH0gZnJvbSAnLi4vdXRpbHMvZm9ybS11dGlscyc7XG5cbi8qKlxuICogSG9va3MgaW50byB0aGUgbmdNb2RlbEdyb3VwIHNlbGVjdG9yIGFuZCB0cmlnZ2VycyBhbiBhc3luY2hyb25vdXMgdmFsaWRhdGlvbiBmb3IgYSBmb3JtIGdyb3VwXG4gKiBJdCB3aWxsIHVzZSBhIHZlc3Qgc3VpdGUgYmVoaW5kIHRoZSBzY2VuZXNcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW25nTW9kZWxHcm91cF0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19BU1lOQ19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IEZvcm1Nb2RlbEdyb3VwRGlyZWN0aXZlLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybU1vZGVsR3JvdXBEaXJlY3RpdmUgaW1wbGVtZW50cyBBc3luY1ZhbGlkYXRvciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybURpcmVjdGl2ZSA9IGluamVjdChGb3JtRGlyZWN0aXZlKTtcblxuICBwdWJsaWMgdmFsaWRhdGUoXG4gICAgY29udHJvbDogQWJzdHJhY3RDb250cm9sXG4gICk6IE9ic2VydmFibGU8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+IHtcbiAgICBjb25zdCB7IG5nRm9ybSB9ID0gdGhpcy5mb3JtRGlyZWN0aXZlO1xuICAgIGNvbnN0IGZpZWxkID0gZ2V0Rm9ybUdyb3VwRmllbGQobmdGb3JtLmNvbnRyb2wsIGNvbnRyb2wpO1xuICAgIHJldHVybiB0aGlzLmZvcm1EaXJlY3RpdmUuY3JlYXRlQXN5bmNWYWxpZGF0b3IoZmllbGQpKFxuICAgICAgY29udHJvbC52YWx1ZVxuICAgICkgYXMgT2JzZXJ2YWJsZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD47XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Directive, inject } from '@angular/core';
|
|
2
|
-
import { NG_ASYNC_VALIDATORS } from '@angular/forms';
|
|
2
|
+
import { NG_ASYNC_VALIDATORS, } from '@angular/forms';
|
|
3
3
|
import { FormDirective } from './form.directive';
|
|
4
4
|
import { getFormControlField } from '../utils/form-utils';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
@@ -18,7 +18,11 @@ export class FormModelDirective {
|
|
|
18
18
|
}
|
|
19
19
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: FormModelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
20
20
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: FormModelDirective, isStandalone: true, selector: "[ngModel]", providers: [
|
|
21
|
-
{
|
|
21
|
+
{
|
|
22
|
+
provide: NG_ASYNC_VALIDATORS,
|
|
23
|
+
useExisting: FormModelDirective,
|
|
24
|
+
multi: true,
|
|
25
|
+
},
|
|
22
26
|
], ngImport: i0 }); }
|
|
23
27
|
}
|
|
24
28
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: FormModelDirective, decorators: [{
|
|
@@ -27,8 +31,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
|
|
|
27
31
|
selector: '[ngModel]',
|
|
28
32
|
standalone: true,
|
|
29
33
|
providers: [
|
|
30
|
-
{
|
|
34
|
+
{
|
|
35
|
+
provide: NG_ASYNC_VALIDATORS,
|
|
36
|
+
useExisting: FormModelDirective,
|
|
37
|
+
multi: true,
|
|
38
|
+
},
|
|
31
39
|
],
|
|
32
40
|
}]
|
|
33
41
|
}] });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tb2RlbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVzdC1mb3Jtcy9zcmMvbGliL2RpcmVjdGl2ZXMvZm9ybS1tb2RlbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUdMLG1CQUFtQixHQUVwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFMUQ7OztHQUdHO0FBWUgsTUFBTSxPQUFPLGtCQUFrQjtJQVgvQjtRQVltQixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztLQVV4RDtJQVRRLFFBQVEsQ0FDYixPQUF3QjtRQUV4QixNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3hELE1BQU0sS0FBSyxHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDM0QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUNuRCxPQUFPLENBQUMsV0FBVyxFQUFFLENBQ2lCLENBQUM7SUFDM0MsQ0FBQzs4R0FWVSxrQkFBa0I7a0dBQWxCLGtCQUFrQix3REFSbEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsbUJBQW1CO2dCQUM1QixXQUFXLEVBQUUsa0JBQWtCO2dCQUMvQixLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0Y7OzJGQUVVLGtCQUFrQjtrQkFYOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztvQkFDckIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixXQUFXLG9CQUFvQjs0QkFDL0IsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBBc3luY1ZhbGlkYXRvcixcbiAgTkdfQVNZTkNfVkFMSURBVE9SUyxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybURpcmVjdGl2ZSB9IGZyb20gJy4vZm9ybS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZ2V0Rm9ybUNvbnRyb2xGaWVsZCB9IGZyb20gJy4uL3V0aWxzL2Zvcm0tdXRpbHMnO1xuXG4vKipcbiAqIEhvb2tzIGludG8gdGhlIG5nTW9kZWwgc2VsZWN0b3IgYW5kIHRyaWdnZXJzIGFuIGFzeW5jaHJvbm91cyB2YWxpZGF0aW9uIGZvciBhIGZvcm0gbW9kZWxcbiAqIEl0IHdpbGwgdXNlIGEgdmVzdCBzdWl0ZSBiZWhpbmQgdGhlIHNjZW5lc1xuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbmdNb2RlbF0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19BU1lOQ19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IEZvcm1Nb2RlbERpcmVjdGl2ZSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1Nb2RlbERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFzeW5jVmFsaWRhdG9yIHtcbiAgcHJpdmF0ZSByZWFkb25seSBmb3JtRGlyZWN0aXZlID0gaW5qZWN0KEZvcm1EaXJlY3RpdmUpO1xuICBwdWJsaWMgdmFsaWRhdGUoXG4gICAgY29udHJvbDogQWJzdHJhY3RDb250cm9sXG4gICk6IE9ic2VydmFibGU8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+IHtcbiAgICBjb25zdCB7IG5nRm9ybSwgc3VpdGUsIGZvcm1WYWx1ZSB9ID0gdGhpcy5mb3JtRGlyZWN0aXZlO1xuICAgIGNvbnN0IGZpZWxkID0gZ2V0Rm9ybUNvbnRyb2xGaWVsZChuZ0Zvcm0uY29udHJvbCwgY29udHJvbCk7XG4gICAgcmV0dXJuIHRoaXMuZm9ybURpcmVjdGl2ZS5jcmVhdGVBc3luY1ZhbGlkYXRvcihmaWVsZCkoXG4gICAgICBjb250cm9sLmdldFJhd1ZhbHVlKClcbiAgICApIGFzIE9ic2VydmFibGU8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+O1xuICB9XG59XG4iXX0=
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { NgForm, PristineChangeEvent, StatusChangeEvent, ValueChangeEvent } from '@angular/forms';
|
|
3
|
-
import { debounceTime, distinctUntilChanged, filter, map, Observable, of, ReplaySubject,
|
|
4
|
-
import {
|
|
5
|
-
import { cloneDeep, getAllFormErrors, mergeValuesAndRawValues, set } from '../utils/form-utils';
|
|
1
|
+
import { Directive, inject, input, Output } from '@angular/core';
|
|
2
|
+
import { NgForm, PristineChangeEvent, StatusChangeEvent, ValueChangeEvent, } from '@angular/forms';
|
|
3
|
+
import { debounceTime, distinctUntilChanged, filter, map, Observable, of, ReplaySubject, startWith, Subject, switchMap, take, takeUntil, tap, zip, } from 'rxjs';
|
|
4
|
+
import { toObservable } from '@angular/core/rxjs-interop';
|
|
5
|
+
import { cloneDeep, getAllFormErrors, mergeValuesAndRawValues, set, } from '../utils/form-utils';
|
|
6
6
|
import { validateShape } from '../utils/shape-validation';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export class FormDirective {
|
|
@@ -37,33 +37,37 @@ export class FormDirective {
|
|
|
37
37
|
* @param v
|
|
38
38
|
*/
|
|
39
39
|
this.validationConfig = input(null);
|
|
40
|
-
this.
|
|
41
|
-
this.statusChanges$ = this.ngForm.form.events.pipe(filter(v => v instanceof StatusChangeEvent), map(v => v.status), distinctUntilChanged());
|
|
40
|
+
this.pending$ = this.ngForm.form.events.pipe(filter((v) => v instanceof StatusChangeEvent), map((v) => v.status), filter((v) => v === 'PENDING'), distinctUntilChanged());
|
|
42
41
|
/**
|
|
43
|
-
*
|
|
44
|
-
* that
|
|
42
|
+
* Emits every time the form status changes in a state
|
|
43
|
+
* that is not PENDING
|
|
44
|
+
* We need this to assure that the form is in 'idle' state
|
|
45
45
|
*/
|
|
46
|
-
this.idle$ = this.
|
|
47
|
-
this.valueChanges$ = this.ngForm.form.events.pipe(filter(v => v instanceof ValueChangeEvent), map(v => v.value), map(() => mergeValuesAndRawValues(this.ngForm.form)));
|
|
46
|
+
this.idle$ = this.ngForm.form.events.pipe(filter((v) => v instanceof StatusChangeEvent), map((v) => v.status), filter((v) => v !== 'PENDING'), distinctUntilChanged());
|
|
48
47
|
/**
|
|
49
48
|
* Triggered as soon as the form value changes
|
|
49
|
+
* Also every time Angular creates a new control or group
|
|
50
|
+
* It also contains the disabled values (raw values)
|
|
50
51
|
*/
|
|
51
|
-
this.formValueChange = this.
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
this.formValueChange = this.ngForm.form.events.pipe(filter((v) => v instanceof ValueChangeEvent), map((v) => v.value), map(() => mergeValuesAndRawValues(this.ngForm.form)));
|
|
53
|
+
/**
|
|
54
|
+
* Emits an object with all the errors of the form
|
|
55
|
+
* every time a form control or form groups changes its status to valid or invalid
|
|
56
|
+
*/
|
|
57
|
+
this.errorsChange = this.ngForm.form.events.pipe(filter((v) => v instanceof StatusChangeEvent), map((v) => v.status), filter((v) => v !== 'PENDING'), map(() => getAllFormErrors(this.ngForm.form)));
|
|
54
58
|
/**
|
|
55
59
|
* Triggered as soon as the form becomes dirty
|
|
56
60
|
*/
|
|
57
|
-
this.dirtyChange = this.
|
|
58
|
-
this.
|
|
61
|
+
this.dirtyChange = this.ngForm.form.events.pipe(filter((v) => v instanceof PristineChangeEvent), map((v) => !v.pristine), startWith(this.ngForm.form.dirty), distinctUntilChanged());
|
|
62
|
+
this.destroy$$ = new Subject();
|
|
59
63
|
/**
|
|
60
|
-
*
|
|
64
|
+
* Fired when the status of the root form changes.
|
|
61
65
|
*/
|
|
62
|
-
this.
|
|
66
|
+
this.statusChanges$ = this.ngForm.form.statusChanges.pipe(startWith(this.ngForm.form.status), distinctUntilChanged());
|
|
63
67
|
/**
|
|
64
|
-
*
|
|
68
|
+
* Triggered When the form becomes valid but waits until the form is idle
|
|
65
69
|
*/
|
|
66
|
-
this.
|
|
70
|
+
this.validChange = this.statusChanges$.pipe(filter((e) => e === 'VALID' || e === 'INVALID'), map((v) => v === 'VALID'), distinctUntilChanged());
|
|
67
71
|
/**
|
|
68
72
|
* Used to debounce formValues to make sure vest isn't triggered all the time
|
|
69
73
|
*/
|
|
@@ -78,12 +82,14 @@ export class FormDirective {
|
|
|
78
82
|
}
|
|
79
83
|
const streams = Object.keys(conf).map((key) => {
|
|
80
84
|
return this.ngForm?.form.get(key)?.valueChanges.pipe(
|
|
81
|
-
//
|
|
82
|
-
switchMap(() => this.
|
|
85
|
+
// Wait until something is pending
|
|
86
|
+
switchMap(() => this.pending$),
|
|
87
|
+
// Wait until the form is not pending anymore
|
|
88
|
+
switchMap(() => this.idle$), map(() => this.ngForm?.form.get(key)?.value), takeUntil(this.destroy$$), tap((v) => {
|
|
83
89
|
conf[key]?.forEach((path) => {
|
|
84
90
|
this.ngForm?.form.get(path)?.updateValueAndValidity({
|
|
85
91
|
onlySelf: true,
|
|
86
|
-
emitEvent: true
|
|
92
|
+
emitEvent: true,
|
|
87
93
|
});
|
|
88
94
|
});
|
|
89
95
|
}));
|
|
@@ -95,7 +101,7 @@ export class FormDirective {
|
|
|
95
101
|
* Trigger shape validations if the form gets updated
|
|
96
102
|
* This is how we can throw run-time errors
|
|
97
103
|
*/
|
|
98
|
-
this.
|
|
104
|
+
this.formValueChange.pipe(takeUntil(this.destroy$$)).subscribe((v) => {
|
|
99
105
|
if (this.formShape()) {
|
|
100
106
|
validateShape(v, this.formShape());
|
|
101
107
|
}
|
|
@@ -139,15 +145,18 @@ export class FormDirective {
|
|
|
139
145
|
return new Observable((observer) => {
|
|
140
146
|
this.suite()(mod, field).done((result) => {
|
|
141
147
|
const errors = result.getErrors()[field];
|
|
142
|
-
observer.next(
|
|
148
|
+
observer.next(errors ? { error: errors[0], errors } : null);
|
|
143
149
|
observer.complete();
|
|
144
150
|
});
|
|
145
151
|
});
|
|
146
|
-
}),
|
|
152
|
+
}), takeUntil(this.destroy$$));
|
|
147
153
|
};
|
|
148
154
|
}
|
|
155
|
+
ngOnDestroy() {
|
|
156
|
+
this.destroy$$.next();
|
|
157
|
+
}
|
|
149
158
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: FormDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
150
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.1", type: FormDirective, isStandalone: true, selector: "form[scVestForm]", inputs: { formValue: { classPropertyName: "formValue", publicName: "formValue", isSignal: true, isRequired: false, transformFunction: null }, suite: { classPropertyName: "suite", publicName: "suite", isSignal: true, isRequired: false, transformFunction: null }, formShape: { classPropertyName: "formShape", publicName: "formShape", isSignal: true, isRequired: false, transformFunction: null }, validationConfig: { classPropertyName: "validationConfig", publicName: "validationConfig", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { formValueChange: "formValueChange",
|
|
159
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.1", type: FormDirective, isStandalone: true, selector: "form[scVestForm]", inputs: { formValue: { classPropertyName: "formValue", publicName: "formValue", isSignal: true, isRequired: false, transformFunction: null }, suite: { classPropertyName: "suite", publicName: "suite", isSignal: true, isRequired: false, transformFunction: null }, formShape: { classPropertyName: "formShape", publicName: "formShape", isSignal: true, isRequired: false, transformFunction: null }, validationConfig: { classPropertyName: "validationConfig", publicName: "validationConfig", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { formValueChange: "formValueChange", errorsChange: "errorsChange", dirtyChange: "dirtyChange", validChange: "validChange" }, ngImport: i0 }); }
|
|
151
160
|
}
|
|
152
161
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: FormDirective, decorators: [{
|
|
153
162
|
type: Directive,
|
|
@@ -157,11 +166,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
|
|
|
157
166
|
}]
|
|
158
167
|
}], ctorParameters: () => [], propDecorators: { formValueChange: [{
|
|
159
168
|
type: Output
|
|
169
|
+
}], errorsChange: [{
|
|
170
|
+
type: Output
|
|
160
171
|
}], dirtyChange: [{
|
|
161
172
|
type: Output
|
|
162
173
|
}], validChange: [{
|
|
163
174
|
type: Output
|
|
164
|
-
}], errorsChange: [{
|
|
165
|
-
type: Output
|
|
166
175
|
}] } });
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVzdC1mb3Jtcy9zcmMvbGliL2RpcmVjdGl2ZXMvZm9ybS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUVILE1BQU0sRUFDTixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBRWpCLGdCQUFnQixFQUNuQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDTCxZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixHQUFHLEVBQ0gsVUFBVSxFQUNWLEVBQUUsRUFDRixhQUFhLEVBQUUsV0FBVyxFQUMxQixTQUFTLEVBQ1QsSUFBSSxFQUNKLEdBQUcsRUFDSCxHQUFHLEVBQ0osTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFOUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxHQUFHLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBTTFELE1BQU0sT0FBTyxhQUFhO0lBeUd0QjtRQXhHZ0IsV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBRXpFOztXQUVHO1FBQ2EsY0FBUyxHQUFHLEtBQUssQ0FBVyxJQUFJLENBQUMsQ0FBQztRQUVsRDs7V0FFRztRQUNhLFVBQUssR0FBRyxLQUFLLENBQXdFLElBQUksQ0FBQyxDQUFDO1FBRTNHOzs7OztXQUtH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QUFJLENBQUMsQ0FBQyxDQUFDO3dCQUM5RCxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ3hCLENBQUMsQ0FBQyxDQUFDO2dCQUNQLENBQUMsQ0FBd0MsQ0FBQztZQUM5QyxDQUFDLENBQUMsRUFDRixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQ3RDLENBQUM7UUFDTixDQUFDLENBQUM7SUFDTixDQUFDOzhHQTNNUSxhQUFhO2tHQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBSnpCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7aUJBQ25CO3dEQThENkIsZUFBZTtzQkFBeEMsTUFBTTtnQkFZbUIsV0FBVztzQkFBcEMsTUFBTTtnQkFZbUIsV0FBVztzQkFBcEMsTUFBTTtnQkFLbUIsWUFBWTtzQkFBckMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIERpcmVjdGl2ZSwgaW5qZWN0LCBpbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFzeW5jVmFsaWRhdG9yRm4sXG4gICAgTmdGb3JtLFxuICAgIFByaXN0aW5lQ2hhbmdlRXZlbnQsXG4gICAgU3RhdHVzQ2hhbmdlRXZlbnQsXG4gICAgVmFsaWRhdGlvbkVycm9ycyxcbiAgICBWYWx1ZUNoYW5nZUV2ZW50XG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIGRlYm91bmNlVGltZSxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgbWFwLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgUmVwbGF5U3ViamVjdCwgc2hhcmVSZXBsYXksXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFwLFxuICB6aXBcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTdGF0aWNTdWl0ZSB9IGZyb20gJ3Zlc3QnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkLCB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBEZWVwUmVxdWlyZWQgfSBmcm9tICcuLi91dGlscy9kZWVwLXJlcXVpcmVkJztcbmltcG9ydCB7IGNsb25lRGVlcCwgZ2V0QWxsRm9ybUVycm9ycywgbWVyZ2VWYWx1ZXNBbmRSYXdWYWx1ZXMsIHNldCB9IGZyb20gJy4uL3V0aWxzL2Zvcm0tdXRpbHMnO1xuaW1wb3J0IHsgdmFsaWRhdGVTaGFwZSB9IGZyb20gJy4uL3V0aWxzL3NoYXBlLXZhbGlkYXRpb24nO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2Zvcm1bc2NWZXN0Rm9ybV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1EaXJlY3RpdmU8VCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgbmdGb3JtID0gaW5qZWN0KE5nRm9ybSwgeyBzZWxmOiB0cnVlLCBvcHRpb25hbDogZmFsc2UgfSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdmFsdWUgb2YgdGhlIGZvcm0sIHRoaXMgaXMgbmVlZGVkIGZvciB0aGUgdmFsaWRhdGlvbiBwYXJ0XG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGZvcm1WYWx1ZSA9IGlucHV0PFQgfCBudWxsPihudWxsKTtcblxuICAgIC8qKlxuICAgICAqIFN0YXRpYyB2ZXN0IHN1aXRlIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGZlZWQgb3VyIGFuZ3VsYXIgdmFsaWRhdG9yc1xuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBzdWl0ZSA9IGlucHV0PFN0YXRpY1N1aXRlPHN0cmluZywgc3RyaW5nLCAobW9kZWw6IFQsIGZpZWxkOiBzdHJpbmcpID0+IHZvaWQ+IHwgbnVsbD4obnVsbCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgc2hhcGUgb2Ygb3VyIGZvcm0gbW9kZWwuIFRoaXMgaXMgYSBkZWVwIHJlcXVpcmVkIHZlcnNpb24gb2YgdGhlIGZvcm0gbW9kZWxcbiAgICAgKiBUaGUgZ29hbCBpcyB0byBhZGQgZGVmYXVsdCB2YWx1ZXMgdG8gdGhlIHNoYXBlIHNvIHdoZW4gdGhlIHRlbXBsYXRlLWRyaXZlbiBmb3JtXG4gICAgICogY29udGFpbnMgdmFsdWVzIHRoYXQgc2hvdWxkbid0IGJlIHRoZXJlICh0eXBvJ3MpIHRoYXQgdGhlIGRldmVsb3BlciBnZXRzIHJ1bi10aW1lXG4gICAgICogZXJyb3JzIGluIGRldiBtb2RlXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGZvcm1TaGFwZSA9IGlucHV0PERlZXBSZXF1aXJlZDxUPiB8IG51bGw+KG51bGwpO1xuXG4gICAgLyoqXG4gICAgICogVXBkYXRlcyB0aGUgdmFsaWRhdGlvbiBjb25maWcgd2hpY2ggaXMgYSBkeW5hbWljIG9iamVjdCB0aGF0IHdpbGwgYmUgdXNlZCB0b1xuICAgICAqIHRyaWdnZXIgdmFsaWRhdGlvbnMgb24gdGhlIGRlcGVuZGFudCBmaWVsZHNcbiAgICAgKiBFZzogYGBgdHlwZXNjcmlwdFxuICAgICAqIHZhbGlkYXRpb25Db25maWcgPSB7XG4gICAgICogICAgICdwYXNzd29yZHMucGFzc3dvcmQnOiBbJ3Bhc3N3b3Jkcy5jb25maXJtUGFzc3dvcmQnXVxuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIFRoaXMgd2lsbCB0cmlnZ2VyIHRoZSB1cGRhdGVWYWx1ZUFuZFZhbGlkaXR5IG9uIHBhc3N3b3Jkcy5jb25maXJtUGFzc3dvcmQgZXZlcnkgdGltZSB0aGUgcGFzc3dvcmRzLnBhc3N3b3JkIGdldHMgYSBuZXcgdmFsdWVcbiAgICAgKlxuICAgICAqIEBwYXJhbSB2XG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHZhbGlkYXRpb25Db25maWcgPSBpbnB1dDx7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0gfCBudWxsPihudWxsKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGF0dXNDaGFuZ2VzJCA9IHRoaXMubmdGb3JtLmZvcm0uZXZlbnRzLnBpcGUoXG4gICAgICAgIGZpbHRlcih2ID0+IHYgaW5zdGFuY2VvZiBTdGF0dXNDaGFuZ2VFdmVudCksXG4gICAgICAgIG1hcCh2ID0+ICh2IGFzIFN0YXR1c0NoYW5nZUV2ZW50KS5zdGF0dXMpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIEZpcmVkIHdoZW4gdGhlIGZvcm0gaXMgaWRsZS4gVGhpcyBmaXhlcyB0aGUgUEVORElORyBzdGF0ZSBpc3N1ZXNcbiAgICAgKiB0aGF0IGFyZSBpbnRyb2R1Y2VkIGR1ZSB0byB0aGUgbmF0dXJlIG9mIGFzeW5jaHJvbm91cyB2YWxpZGF0aW9uc1xuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBpZGxlJCA9IHRoaXMuc3RhdHVzQ2hhbmdlcyQucGlwZShcbiAgICAgICAgZmlsdGVyKHYgPT4gdiAhPT0gJ1BFTkRJTkcnKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSB2YWx1ZUNoYW5nZXMkID0gdGhpcy5uZ0Zvcm0uZm9ybS5ldmVudHMucGlwZShcbiAgICAgICAgZmlsdGVyKHYgPT4gdiBpbnN0YW5jZW9mIFZhbHVlQ2hhbmdlRXZlbnQpLFxuICAgICAgICBtYXAodiA9PiAodiBhcyBWYWx1ZUNoYW5nZUV2ZW50PGFueT4pLnZhbHVlKSxcbiAgICAgICAgbWFwKCgpID0+IG1lcmdlVmFsdWVzQW5kUmF3VmFsdWVzPFQ+KHRoaXMubmdGb3JtLmZvcm0pKVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiBUcmlnZ2VyZWQgYXMgc29vbiBhcyB0aGUgZm9ybSB2YWx1ZSBjaGFuZ2VzXG4gICAgICovXG4gICAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBmb3JtVmFsdWVDaGFuZ2UgPSB0aGlzLnZhbHVlQ2hhbmdlcyQucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSgwKS8vIHdhaXQgdW50aWwgYWxsIGZvcm0gZWxlbWVudHMgYXJlIHJlbmRlcmVkXG4gICAgKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpcnR5Q2hhbmdlcyQgPSB0aGlzLm5nRm9ybS5mb3JtLmV2ZW50cy5waXBlKFxuICAgICAgICBmaWx0ZXIodiA9PiB2IGluc3RhbmNlb2YgUHJpc3RpbmVDaGFuZ2VFdmVudCksXG4gICAgICAgIG1hcCh2ID0+ICEodiBhcyBQcmlzdGluZUNoYW5nZUV2ZW50KS5wcmlzdGluZSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICogVHJpZ2dlcmVkIGFzIHNvb24gYXMgdGhlIGZvcm0gYmVjb21lcyBkaXJ0eVxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgZGlydHlDaGFuZ2UgPSB0aGlzLmRpcnR5Q2hhbmdlcyQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSB2YWxpZENoYW5nZXMkID0gdGhpcy5zdGF0dXNDaGFuZ2VzJC5waXBlKFxuICAgICAgICBmaWx0ZXIoZSA9PiBlID09PSAnVkFMSUQnIHx8IGUgPT09ICdJTlZBTElEJyksXG4gICAgICAgIG1hcCh2ID0+IHYgPT09ICdWQUxJRCcpLFxuICAgICAgICBzd2l0Y2hNYXAoKHYpID0+IHRoaXMuaWRsZSQpLFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5uZ0Zvcm0/LmZvcm0udmFsaWQpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiBUcmlnZ2VyZWQgV2hlbiB0aGUgZm9ybSBiZWNvbWVzIHZhbGlkIGJ1dCB3YWl0cyB1bnRpbCB0aGUgZm9ybSBpcyBpZGxlXG4gICAgICovXG4gICAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSB2YWxpZENoYW5nZSA9IHRoaXMudmFsaWRDaGFuZ2VzJDtcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIGFuIG9iamVjdCB3aXRoIGFsbCB0aGUgZXJyb3JzIG9mIHRoZSBmb3JtXG4gICAgICovXG4gICAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBlcnJvcnNDaGFuZ2UgPSB0aGlzLnZhbHVlQ2hhbmdlcyQucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuaWRsZSQpLFxuICAgICAgICBtYXAoKCkgPT4gZ2V0QWxsRm9ybUVycm9ycyh0aGlzLm5nRm9ybS5mb3JtKSlcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICogVXNlZCB0byBkZWJvdW5jZSBmb3JtVmFsdWVzIHRvIG1ha2Ugc3VyZSB2ZXN0IGlzbid0IHRyaWdnZXJlZCBhbGwgdGhlIHRpbWVcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1WYWx1ZUNhY2hlOiB7XG4gICAgICAgIFtmaWVsZDogc3RyaW5nXTogUGFydGlhbDx7XG4gICAgICAgICAgICBzdWIkJDogUmVwbGF5U3ViamVjdDx1bmtub3duPjtcbiAgICAgICAgICAgIGRlYm91bmNlZDogT2JzZXJ2YWJsZTxhbnk+O1xuICAgICAgICB9PjtcbiAgICB9ID0ge307XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIC8vIFdoZW4gdGhlIHZhbGlkYXRpb24gY29uZmlnIGNoYW5nZXNcbiAgICAgICAgLy8gTGlzdGVuIHRvIGNoYW5nZXMgb2YgdGhlIGxlZnQtc2lkZSBvZiB0aGUgY29uZmlnIGFuZCB0cmlnZ2VyIHRoZSB1cGRhdGVWYWx1ZUFuZFZhbGlkaXR5XG4gICAgICAgIC8vIGZ1bmN0aW9uIG9uIHRoZSBkZXBlbmRhbnQgY29udHJvbHMgb3IgZ3JvdXBzIGF0IHRoZSByaWdodC1zaWRlIG9mIHRoZSBjb25maWdcbiAgICAgICAgdG9PYnNlcnZhYmxlKHRoaXMudmFsaWRhdGlvbkNvbmZpZylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigoY29uZikgPT4gISFjb25mKSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKGNvbmYpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25mKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyZWFtcyA9IE9iamVjdC5rZXlzKGNvbmYpLm1hcCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5uZ0Zvcm0/LmZvcm0uZ2V0KGtleSk/LnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdhaXQgdW50aWwgdGhlIGZvcm0gaXMgaWRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmlkbGUkKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5uZ0Zvcm0/LmZvcm0uZ2V0KGtleSk/LnZhbHVlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXAoKHYpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZltrZXldPy5mb3JFYWNoKChwYXRoOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmdGb3JtPy5mb3JtLmdldChwYXRoKT8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25seVNlbGY6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW1pdEV2ZW50OiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHppcChzdHJlYW1zKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogVHJpZ2dlciBzaGFwZSB2YWxpZGF0aW9ucyBpZiB0aGUgZm9ybSBnZXRzIHVwZGF0ZWRcbiAgICAgICAgICogVGhpcyBpcyBob3cgd2UgY2FuIHRocm93IHJ1bi10aW1lIGVycm9yc1xuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZXMkLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKHYpID0+IHRoaXMuaWRsZSQucGlwZShtYXAoKCkgPT4gdikpKSxcbiAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgICAgICkuc3Vic2NyaWJlKHYgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybVNoYXBlKCkpIHtcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZVNoYXBlKHYsIHRoaXMuZm9ybVNoYXBlKCkgYXMgRGVlcFJlcXVpcmVkPFQ+KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIE1hcmsgYWxsIHRoZSBmaWVsZHMgYXMgdG91Y2hlZCB3aGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZFxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5uZ0Zvcm0ubmdTdWJtaXQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubmdGb3JtLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIFRoaXMgd2lsbCBmZWVkIHRoZSBmb3JtVmFsdWVDYWNoZSwgZGVib3VuY2UgaXQgdGlsbCB0aGUgbmV4dCB0aWNrXG4gICAgICogYW5kIGNyZWF0ZSBhbiBhc3luY2hyb25vdXMgdmFsaWRhdG9yIHRoYXQgcnVucyBhIHZlc3Qgc3VpdGVcbiAgICAgKiBAcGFyYW0gZmllbGRcbiAgICAgKiBAcGFyYW0gbW9kZWxcbiAgICAgKiBAcGFyYW0gc3VpdGVcbiAgICAgKiBAcmV0dXJucyBhbiBhc3luY2hyb25vdXMgdmFsaWRhdG9yIGZ1bmN0aW9uXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZUFzeW5jVmFsaWRhdG9yKFxuICAgICAgICBmaWVsZDogc3RyaW5nXG4gICAgKTogQXN5bmNWYWxpZGF0b3JGbiB7XG4gICAgICAgIGlmICghdGhpcy5zdWl0ZSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4gb2YobnVsbCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZm9ybVZhbHVlKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBtb2QgPSBjbG9uZURlZXAodGhpcy5mb3JtVmFsdWUoKSBhcyBUKTtcbiAgICAgICAgICAgIHNldChtb2QgYXMgb2JqZWN0LCBmaWVsZCwgdmFsdWUpOyAvLyBVcGRhdGUgdGhlIHByb3BlcnR5IHdpdGggcGF0aFxuICAgICAgICAgICAgaWYgKCF0aGlzLmZvcm1WYWx1ZUNhY2hlW2ZpZWxkXSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybVZhbHVlQ2FjaGVbZmllbGRdID0ge1xuICAgICAgICAgICAgICAgICAgICBzdWIkJDogbmV3IFJlcGxheVN1YmplY3QoMSksIC8vIEtlZXAgdHJhY2sgb2YgdGhlIGxhc3QgbW9kZWxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybVZhbHVlQ2FjaGVbZmllbGRdLmRlYm91bmNlZCA9IHRoaXMuZm9ybVZhbHVlQ2FjaGVbZmllbGRdLnN1YiQkIS5waXBlKGRlYm91bmNlVGltZSgwKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBOZXh0IHRoZSBsYXRlc3QgbW9kZWwgaW4gdGhlIGNhY2hlIGZvciBhIGNlcnRhaW4gZmllbGRcbiAgICAgICAgICAgIHRoaXMuZm9ybVZhbHVlQ2FjaGVbZmllbGRdLnN1YiQkIS5uZXh0KG1vZCk7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1WYWx1ZUNhY2hlW2ZpZWxkXS5kZWJvdW5jZWQhLnBpcGUoXG4gICAgICAgICAgICAgICAgLy8gV2hlbiBkZWJvdW5jZWQsIHRha2UgdGhlIGxhdGVzdCB2YWx1ZSBhbmQgcGVyZm9ybSB0aGUgYXN5bmNocm9ub3VzIHZlc3QgdmFsaWRhdGlvblxuICAgICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWl0ZSgpIShtb2QsIGZpZWxkKS5kb25lKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvcnMgPSByZXN1bHQuZ2V0RXJyb3JzKClbZmllbGRdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoKGVycm9ycyA/IHsgZXJyb3I6IGVycm9yc1swXSwgZXJyb3JzIH0gOiBudWxsKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9KSBhcyBPYnNlcnZhYmxlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPjtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVzdC1mb3Jtcy9zcmMvbGliL2RpcmVjdGl2ZXMvZm9ybS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBRUwsTUFBTSxFQUNOLG1CQUFtQixFQUNuQixpQkFBaUIsRUFFakIsZ0JBQWdCLEdBQ2pCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLEdBQUcsRUFDSCxVQUFVLEVBQ1YsRUFBRSxFQUNGLGFBQWEsRUFDYixTQUFTLEVBQ1QsT0FBTyxFQUNQLFNBQVMsRUFDVCxJQUFJLEVBQ0osU0FBUyxFQUNULEdBQUcsRUFDSCxHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFMUQsT0FBTyxFQUNMLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLEdBQUcsR0FDSixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFNMUQsTUFBTSxPQUFPLGFBQWE7SUF5SHhCO1FBeEhnQixXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFekU7O1dBRUc7UUFDYSxjQUFTLEdBQUcsS0FBSyxDQUFXLElBQUksQ0FBQyxDQUFDO1FBRWxEOztXQUVHO1FBQ2EsVUFBSyxHQUFHLEtBQUssQ0FJbkIsSUFBSSxDQUFDLENBQUM7UUFFaEI7Ozs7O1dBS0c7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QUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO3dCQUN4QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ3pDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUM1RCxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ3RCLENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUMsQ0FBd0MsQ0FBQztZQUM1QyxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQixDQUFDO1FBQ0osQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDOzhHQTdOVSxhQUFhO2tHQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBSnpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCO3dEQW1FMkIsZUFBZTtzQkFBeEMsTUFBTTtnQkFVbUIsWUFBWTtzQkFBckMsTUFBTTtnQkFVbUIsV0FBVztzQkFBcEMsTUFBTTtnQkFtQm1CLFdBQVc7c0JBQXBDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCwgaW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBc3luY1ZhbGlkYXRvckZuLFxuICBOZ0Zvcm0sXG4gIFByaXN0aW5lQ2hhbmdlRXZlbnQsXG4gIFN0YXR1c0NoYW5nZUV2ZW50LFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWx1ZUNoYW5nZUV2ZW50LFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBkZWJvdW5jZVRpbWUsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIFJlcGxheVN1YmplY3QsXG4gIHN0YXJ0V2l0aCxcbiAgU3ViamVjdCxcbiAgc3dpdGNoTWFwLFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbiAgemlwLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFN0YXRpY1N1aXRlIH0gZnJvbSAndmVzdCc7XG5pbXBvcnQgeyB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBEZWVwUmVxdWlyZWQgfSBmcm9tICcuLi91dGlscy9kZWVwLXJlcXVpcmVkJztcbmltcG9ydCB7XG4gIGNsb25lRGVlcCxcbiAgZ2V0QWxsRm9ybUVycm9ycyxcbiAgbWVyZ2VWYWx1ZXNBbmRSYXdWYWx1ZXMsXG4gIHNldCxcbn0gZnJvbSAnLi4vdXRpbHMvZm9ybS11dGlscyc7XG5pbXBvcnQgeyB2YWxpZGF0ZVNoYXBlIH0gZnJvbSAnLi4vdXRpbHMvc2hhcGUtdmFsaWRhdGlvbic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2Zvcm1bc2NWZXN0Rm9ybV0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRGlyZWN0aXZlPFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+PiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHB1YmxpYyByZWFkb25seSBuZ0Zvcm0gPSBpbmplY3QoTmdGb3JtLCB7IHNlbGY6IHRydWUsIG9wdGlvbmFsOiBmYWxzZSB9KTtcblxuICAvKipcbiAgICogVGhlIHZhbHVlIG9mIHRoZSBmb3JtLCB0aGlzIGlzIG5lZWRlZCBmb3IgdGhlIHZhbGlkYXRpb24gcGFydFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGZvcm1WYWx1ZSA9IGlucHV0PFQgfCBudWxsPihudWxsKTtcblxuICAvKipcbiAgICogU3RhdGljIHZlc3Qgc3VpdGUgdGhhdCB3aWxsIGJlIHVzZWQgdG8gZmVlZCBvdXIgYW5ndWxhciB2YWxpZGF0b3JzXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3VpdGUgPSBpbnB1dDxTdGF0aWNTdWl0ZTxcbiAgICBzdHJpbmcsXG4gICAgc3RyaW5nLFxuICAgIChtb2RlbDogVCwgZmllbGQ6IHN0cmluZykgPT4gdm9pZFxuICA+IHwgbnVsbD4obnVsbCk7XG5cbiAgLyoqXG4gICAqIFRoZSBzaGFwZSBvZiBvdXIgZm9ybSBtb2RlbC4gVGhpcyBpcyBhIGRlZXAgcmVxdWlyZWQgdmVyc2lvbiBvZiB0aGUgZm9ybSBtb2RlbFxuICAgKiBUaGUgZ29hbCBpcyB0byBhZGQgZGVmYXVsdCB2YWx1ZXMgdG8gdGhlIHNoYXBlIHNvIHdoZW4gdGhlIHRlbXBsYXRlLWRyaXZlbiBmb3JtXG4gICAqIGNvbnRhaW5zIHZhbHVlcyB0aGF0IHNob3VsZG4ndCBiZSB0aGVyZSAodHlwbydzKSB0aGF0IHRoZSBkZXZlbG9wZXIgZ2V0cyBydW4tdGltZVxuICAgKiBlcnJvcnMgaW4gZGV2IG1vZGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmb3JtU2hhcGUgPSBpbnB1dDxEZWVwUmVxdWlyZWQ8VD4gfCBudWxsPihudWxsKTtcblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgdmFsaWRhdGlvbiBjb25maWcgd2hpY2ggaXMgYSBkeW5hbWljIG9iamVjdCB0aGF0IHdpbGwgYmUgdXNlZCB0b1xuICAgKiB0cmlnZ2VyIHZhbGlkYXRpb25zIG9uIHRoZSBkZXBlbmRhbnQgZmllbGRzXG4gICAqIEVnOiBgYGB0eXBlc2NyaXB0XG4gICAqIHZhbGlkYXRpb25Db25maWcgPSB7XG4gICAqICAgICAncGFzc3dvcmRzLnBhc3N3b3JkJzogWydwYXNzd29yZHMuY29uZmlybVBhc3N3b3JkJ11cbiAgICogfVxuICAgKiBgYGBcbiAgICpcbiAgICogVGhpcyB3aWxsIHRyaWdnZXIgdGhlIHVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkgb24gcGFzc3dvcmRzLmNvbmZpcm1QYXNzd29yZCBldmVyeSB0aW1lIHRoZSBwYXNzd29yZHMucGFzc3dvcmQgZ2V0cyBhIG5ldyB2YWx1ZVxuICAgKlxuICAgKiBAcGFyYW0gdlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbGlkYXRpb25Db25maWcgPSBpbnB1dDx7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0gfCBudWxsPihcbiAgICBudWxsXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwZW5kaW5nJCA9IHRoaXMubmdGb3JtLmZvcm0uZXZlbnRzLnBpcGUoXG4gICAgZmlsdGVyKCh2KSA9PiB2IGluc3RhbmNlb2YgU3RhdHVzQ2hhbmdlRXZlbnQpLFxuICAgIG1hcCgodikgPT4gKHYgYXMgU3RhdHVzQ2hhbmdlRXZlbnQpLnN0YXR1cyksXG4gICAgZmlsdGVyKCh2KSA9PiB2ID09PSAnUEVORElORycpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgKTtcblxuICAvKipcbiAgICogRW1pdHMgZXZlcnkgdGltZSB0aGUgZm9ybSBzdGF0dXMgY2hhbmdlcyBpbiBhIHN0YXRlXG4gICAqIHRoYXQgaXMgbm90IFBFTkRJTkdcbiAgICogV2UgbmVlZCB0aGlzIHRvIGFzc3VyZSB0aGF0IHRoZSBmb3JtIGlzIGluICdpZGxlJyBzdGF0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGlkbGUkID0gdGhpcy5uZ0Zvcm0uZm9ybS5ldmVudHMucGlwZShcbiAgICBmaWx0ZXIoKHYpID0+IHYgaW5zdGFuY2VvZiBTdGF0dXNDaGFuZ2VFdmVudCksXG4gICAgbWFwKCh2KSA9PiAodiBhcyBTdGF0dXNDaGFuZ2VFdmVudCkuc3RhdHVzKSxcbiAgICBmaWx0ZXIoKHYpID0+IHYgIT09ICdQRU5ESU5HJyksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICApO1xuXG4gIC8qKlxuICAgKiBUcmlnZ2VyZWQgYXMgc29vbiBhcyB0aGUgZm9ybSB2YWx1ZSBjaGFuZ2VzXG4gICAqIEFsc28gZXZlcnkgdGltZSBBbmd1bGFyIGNyZWF0ZXMgYSBuZXcgY29udHJvbCBvciBncm91cFxuICAgKiBJdCBhbHNvIGNvbnRhaW5zIHRoZSBkaXNhYmxlZCB2YWx1ZXMgKHJhdyB2YWx1ZXMpXG4gICAqL1xuICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IGZvcm1WYWx1ZUNoYW5nZSA9IHRoaXMubmdGb3JtLmZvcm0uZXZlbnRzLnBpcGUoXG4gICAgZmlsdGVyKCh2KSA9PiB2IGluc3RhbmNlb2YgVmFsdWVDaGFuZ2VFdmVudCksXG4gICAgbWFwKCh2KSA9PiAodiBhcyBWYWx1ZUNoYW5nZUV2ZW50PGFueT4pLnZhbHVlKSxcbiAgICBtYXAoKCkgPT4gbWVyZ2VWYWx1ZXNBbmRSYXdWYWx1ZXM8VD4odGhpcy5uZ0Zvcm0uZm9ybSkpXG4gICk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGFuIG9iamVjdCB3aXRoIGFsbCB0aGUgZXJyb3JzIG9mIHRoZSBmb3JtXG4gICAqIGV2ZXJ5IHRpbWUgYSBmb3JtIGNvbnRyb2wgb3IgZm9ybSBncm91cHMgY2hhbmdlcyBpdHMgc3RhdHVzIHRvIHZhbGlkIG9yIGludmFsaWRcbiAgICovXG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgZXJyb3JzQ2hhbmdlID0gdGhpcy5uZ0Zvcm0uZm9ybS5ldmVudHMucGlwZShcbiAgICBmaWx0ZXIoKHYpID0+IHYgaW5zdGFuY2VvZiBTdGF0dXNDaGFuZ2VFdmVudCksXG4gICAgbWFwKCh2KSA9PiAodiBhcyBTdGF0dXNDaGFuZ2VFdmVudCkuc3RhdHVzKSxcbiAgICBmaWx0ZXIoKHYpID0+IHYgIT09ICdQRU5ESU5HJyksXG4gICAgbWFwKCgpID0+IGdldEFsbEZvcm1FcnJvcnModGhpcy5uZ0Zvcm0uZm9ybSkpXG4gICk7XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJlZCBhcyBzb29uIGFzIHRoZSBmb3JtIGJlY29tZXMgZGlydHlcbiAgICovXG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgZGlydHlDaGFuZ2UgPSB0aGlzLm5nRm9ybS5mb3JtLmV2ZW50cy5waXBlKFxuICAgIGZpbHRlcigodikgPT4gdiBpbnN0YW5jZW9mIFByaXN0aW5lQ2hhbmdlRXZlbnQpLFxuICAgIG1hcCgodikgPT4gISh2IGFzIFByaXN0aW5lQ2hhbmdlRXZlbnQpLnByaXN0aW5lKSxcbiAgICBzdGFydFdpdGgodGhpcy5uZ0Zvcm0uZm9ybS5kaXJ0eSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICApO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gdGhlIHN0YXR1cyBvZiB0aGUgcm9vdCBmb3JtIGNoYW5nZXMuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHN0YXR1c0NoYW5nZXMkID0gdGhpcy5uZ0Zvcm0uZm9ybS5zdGF0dXNDaGFuZ2VzLnBpcGUoXG4gICAgc3RhcnRXaXRoKHRoaXMubmdGb3JtLmZvcm0uc3RhdHVzKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICk7XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJlZCBXaGVuIHRoZSBmb3JtIGJlY29tZXMgdmFsaWQgYnV0IHdhaXRzIHVudGlsIHRoZSBmb3JtIGlzIGlkbGVcbiAgICovXG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgdmFsaWRDaGFuZ2UgPSB0aGlzLnN0YXR1c0NoYW5nZXMkLnBpcGUoXG4gICAgZmlsdGVyKChlKSA9PiBlID09PSAnVkFMSUQnIHx8IGUgPT09ICdJTlZBTElEJyksXG4gICAgbWFwKCh2KSA9PiB2ID09PSAnVkFMSUQnKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICk7XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gZGVib3VuY2UgZm9ybVZhbHVlcyB0byBtYWtlIHN1cmUgdmVzdCBpc24ndCB0cmlnZ2VyZWQgYWxsIHRoZSB0aW1lXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGZvcm1WYWx1ZUNhY2hlOiB7XG4gICAgW2ZpZWxkOiBzdHJpbmddOiBQYXJ0aWFsPHtcbiAgICAgIHN1YiQkOiBSZXBsYXlTdWJqZWN0PHVua25vd24+O1xuICAgICAgZGVib3VuY2VkOiBPYnNlcnZhYmxlPGFueT47XG4gICAgfT47XG4gIH0gPSB7fTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gV2hlbiB0aGUgdmFsaWRhdGlvbiBjb25maWcgY2hhbmdlc1xuICAgIC8vIExpc3RlbiB0byBjaGFuZ2VzIG9mIHRoZSBsZWZ0LXNpZGUgb2YgdGhlIGNvbmZpZyBhbmQgdHJpZ2dlciB0aGUgdXBkYXRlVmFsdWVBbmRWYWxpZGl0eVxuICAgIC8vIGZ1bmN0aW9uIG9uIHRoZSBkZXBlbmRhbnQgY29udHJvbHMgb3IgZ3JvdXBzIGF0IHRoZSByaWdodC1zaWRlIG9mIHRoZSBjb25maWdcbiAgICB0b09ic2VydmFibGUodGhpcy52YWxpZGF0aW9uQ29uZmlnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoY29uZikgPT4gISFjb25mKSxcbiAgICAgICAgc3dpdGNoTWFwKChjb25mKSA9PiB7XG4gICAgICAgICAgaWYgKCFjb25mKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHN0cmVhbXMgPSBPYmplY3Qua2V5cyhjb25mKS5tYXAoKGtleSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmdGb3JtPy5mb3JtLmdldChrZXkpPy52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgLy8gV2FpdCB1bnRpbCBzb21ldGhpbmcgaXMgcGVuZGluZ1xuICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5wZW5kaW5nJCksXG4gICAgICAgICAgICAgIC8vIFdhaXQgdW50aWwgdGhlIGZvcm0gaXMgbm90IHBlbmRpbmcgYW55bW9yZVxuICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5pZGxlJCksXG4gICAgICAgICAgICAgIG1hcCgoKSA9PiB0aGlzLm5nRm9ybT8uZm9ybS5nZXQoa2V5KT8udmFsdWUpLFxuICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpLFxuICAgICAgICAgICAgICB0YXAoKHYpID0+IHtcbiAgICAgICAgICAgICAgICBjb25mW2tleV0/LmZvckVhY2goKHBhdGg6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgdGhpcy5uZ0Zvcm0/LmZvcm0uZ2V0KHBhdGgpPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtcbiAgICAgICAgICAgICAgICAgICAgb25seVNlbGY6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGVtaXRFdmVudDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gemlwKHN0cmVhbXMpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgLyoqXG4gICAgICogVHJpZ2dlciBzaGFwZSB2YWxpZGF0aW9ucyBpZiB0aGUgZm9ybSBnZXRzIHVwZGF0ZWRcbiAgICAgKiBUaGlzIGlzIGhvdyB3ZSBjYW4gdGhyb3cgcnVuLXRpbWUgZXJyb3JzXG4gICAgICovXG4gICAgdGhpcy5mb3JtVmFsdWVDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpKS5zdWJzY3JpYmUoKHYpID0+IHtcbiAgICAgIGlmICh0aGlzLmZvcm1TaGFwZSgpKSB7XG4gICAgICAgIHZhbGlkYXRlU2hhcGUodiwgdGhpcy5mb3JtU2hhcGUoKSBhcyBEZWVwUmVxdWlyZWQ8VD4pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogTWFyayBhbGwgdGhlIGZpZWxkcyBhcyB0b3VjaGVkIHdoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkXG4gICAgICovXG4gICAgdGhpcy5uZ0Zvcm0ubmdTdWJtaXQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMubmdGb3JtLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgd2lsbCBmZWVkIHRoZSBmb3JtVmFsdWVDYWNoZSwgZGVib3VuY2UgaXQgdGlsbCB0aGUgbmV4dCB0aWNrXG4gICAqIGFuZCBjcmVhdGUgYW4gYXN5bmNocm9ub3VzIHZhbGlkYXRvciB0aGF0IHJ1bnMgYSB2ZXN0IHN1aXRlXG4gICAqIEBwYXJhbSBmaWVsZFxuICAgKiBAcGFyYW0gbW9kZWxcbiAgICogQHBhcmFtIHN1aXRlXG4gICAqIEByZXR1cm5zIGFuIGFzeW5jaHJvbm91cyB2YWxpZGF0b3IgZnVuY3Rpb25cbiAgICovXG4gIHB1YmxpYyBjcmVhdGVBc3luY1ZhbGlkYXRvcihmaWVsZDogc3RyaW5nKTogQXN5bmNWYWxpZGF0b3JGbiB7XG4gICAgaWYgKCF0aGlzLnN1aXRlKCkpIHtcbiAgICAgIHJldHVybiAoKSA9PiBvZihudWxsKTtcbiAgICB9XG4gICAgcmV0dXJuICh2YWx1ZTogYW55KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuZm9ybVZhbHVlKCkpIHtcbiAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgfVxuICAgICAgY29uc3QgbW9kID0gY2xvbmVEZWVwKHRoaXMuZm9ybVZhbHVlKCkgYXMgVCk7XG4gICAgICBzZXQobW9kIGFzIG9iamVjdCwgZmllbGQsIHZhbHVlKTsgLy8gVXBkYXRlIHRoZSBwcm9wZXJ0eSB3aXRoIHBhdGhcbiAgICAgIGlmICghdGhpcy5mb3JtVmFsdWVDYWNoZVtmaWVsZF0pIHtcbiAgICAgICAgdGhpcy5mb3JtVmFsdWVDYWNoZVtmaWVsZF0gPSB7XG4gICAgICAgICAgc3ViJCQ6IG5ldyBSZXBsYXlTdWJqZWN0KDEpLCAvLyBLZWVwIHRyYWNrIG9mIHRoZSBsYXN0IG1vZGVsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuZm9ybVZhbHVlQ2FjaGVbZmllbGRdLmRlYm91bmNlZCA9IHRoaXMuZm9ybVZhbHVlQ2FjaGVbXG4gICAgICAgICAgZmllbGRcbiAgICAgICAgXS5zdWIkJCEucGlwZShkZWJvdW5jZVRpbWUoMCkpO1xuICAgICAgfVxuICAgICAgLy8gTmV4dCB0aGUgbGF0ZXN0IG1vZGVsIGluIHRoZSBjYWNoZSBmb3IgYSBjZXJ0YWluIGZpZWxkXG4gICAgICB0aGlzLmZvcm1WYWx1ZUNhY2hlW2ZpZWxkXS5zdWIkJCEubmV4dChtb2QpO1xuXG4gICAgICByZXR1cm4gdGhpcy5mb3JtVmFsdWVDYWNoZVtmaWVsZF0uZGVib3VuY2VkIS5waXBlKFxuICAgICAgICAvLyBXaGVuIGRlYm91bmNlZCwgdGFrZSB0aGUgbGF0ZXN0IHZhbHVlIGFuZCBwZXJmb3JtIHRoZSBhc3luY2hyb25vdXMgdmVzdCB2YWxpZGF0aW9uXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdWl0ZSgpIShtb2QsIGZpZWxkKS5kb25lKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZXJyb3JzID0gcmVzdWx0LmdldEVycm9ycygpW2ZpZWxkXTtcbiAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChlcnJvcnMgPyB7IGVycm9yOiBlcnJvcnNbMF0sIGVycm9ycyB9IDogbnVsbCk7XG4gICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KSBhcyBPYnNlcnZhYmxlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPjtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkJClcbiAgICAgICk7XG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkJC5uZXh0KCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { NG_ASYNC_VALIDATORS } from '@angular/forms';
|
|
3
|
-
import { debounceTime, Observable, of, ReplaySubject, switchMap, take } from 'rxjs';
|
|
4
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
1
|
+
import { Directive, input } from '@angular/core';
|
|
2
|
+
import { NG_ASYNC_VALIDATORS, } from '@angular/forms';
|
|
3
|
+
import { debounceTime, Observable, of, ReplaySubject, Subject, switchMap, take, takeUntil, } from 'rxjs';
|
|
5
4
|
import { cloneDeep, set } from '../utils/form-utils';
|
|
6
5
|
import * as i0 from "@angular/core";
|
|
7
6
|
export class ValidateRootFormDirective {
|
|
8
7
|
constructor() {
|
|
8
|
+
this.destroy$$ = new Subject();
|
|
9
9
|
this.formValue = input(null);
|
|
10
10
|
this.suite = input(null);
|
|
11
|
-
this.destroyRef = inject(DestroyRef);
|
|
12
11
|
/**
|
|
13
12
|
* Whether the root form should be validated or not
|
|
14
13
|
* This will use the field rootForm
|
|
@@ -49,22 +48,37 @@ export class ValidateRootFormDirective {
|
|
|
49
48
|
return new Observable((observer) => {
|
|
50
49
|
this.suite()(mod, field).done((result) => {
|
|
51
50
|
const errors = result.getErrors()[field];
|
|
52
|
-
observer.next(
|
|
51
|
+
observer.next(errors ? { error: errors[0], errors } : null);
|
|
53
52
|
observer.complete();
|
|
54
53
|
});
|
|
55
54
|
});
|
|
56
|
-
}),
|
|
55
|
+
}), takeUntil(this.destroy$$));
|
|
57
56
|
};
|
|
58
57
|
}
|
|
58
|
+
ngOnDestroy() {
|
|
59
|
+
this.destroy$$.next();
|
|
60
|
+
}
|
|
59
61
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ValidateRootFormDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
60
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.1", type: ValidateRootFormDirective, isStandalone: true, selector: "form[validateRootForm][formValue][suite]", inputs: { formValue: { classPropertyName: "formValue", publicName: "formValue", isSignal: true, isRequired: false, transformFunction: null }, suite: { classPropertyName: "suite", publicName: "suite", isSignal: true, isRequired: false, transformFunction: null }, validateRootForm: { classPropertyName: "validateRootForm", publicName: "validateRootForm", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
62
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.1", type: ValidateRootFormDirective, isStandalone: true, selector: "form[validateRootForm][formValue][suite]", inputs: { formValue: { classPropertyName: "formValue", publicName: "formValue", isSignal: true, isRequired: false, transformFunction: null }, suite: { classPropertyName: "suite", publicName: "suite", isSignal: true, isRequired: false, transformFunction: null }, validateRootForm: { classPropertyName: "validateRootForm", publicName: "validateRootForm", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
63
|
+
{
|
|
64
|
+
provide: NG_ASYNC_VALIDATORS,
|
|
65
|
+
useExisting: ValidateRootFormDirective,
|
|
66
|
+
multi: true,
|
|
67
|
+
},
|
|
68
|
+
], ngImport: i0 }); }
|
|
61
69
|
}
|
|
62
70
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ValidateRootFormDirective, decorators: [{
|
|
63
71
|
type: Directive,
|
|
64
72
|
args: [{
|
|
65
73
|
selector: 'form[validateRootForm][formValue][suite]',
|
|
66
74
|
standalone: true,
|
|
67
|
-
providers: [
|
|
75
|
+
providers: [
|
|
76
|
+
{
|
|
77
|
+
provide: NG_ASYNC_VALIDATORS,
|
|
78
|
+
useExisting: ValidateRootFormDirective,
|
|
79
|
+
multi: true,
|
|
80
|
+
},
|
|
81
|
+
],
|
|
68
82
|
}]
|
|
69
83
|
}] });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtcm9vdC1mb3JtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12ZXN0LWZvcm1zL3NyYy9saWIvZGlyZWN0aXZlcy92YWxpZGF0ZS1yb290LWZvcm0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFJTCxtQkFBbUIsR0FFcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsWUFBWSxFQUNaLFVBQVUsRUFDVixFQUFFLEVBQ0YsYUFBYSxFQUNiLE9BQU8sRUFDUCxTQUFTLEVBQ1QsSUFBSSxFQUNKLFNBQVMsR0FDVixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBYXJELE1BQU0sT0FBTyx5QkFBeUI7SUFYdEM7UUFZbUIsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFakMsY0FBUyxHQUFHLEtBQUssQ0FBVyxJQUFJLENBQUMsQ0FBQztRQUNsQyxVQUFLLEdBQUcsS0FBSyxDQUluQixJQUFJLENBQUMsQ0FBQztRQUVoQjs7O1dBR0c7UUFDYSxxQkFBZ0IsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFaEQ7O1dBRUc7UUFDYyxtQkFBYyxHQUszQixFQUFFLENBQUM7S0FzRFI7SUFwRFEsUUFBUSxDQUNiLE9BQWtDO1FBRWxDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUN2QyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQzFDLE9B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dCB7IERpcmVjdGl2ZSwgaW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBBc3luY1ZhbGlkYXRvcixcbiAgQXN5bmNWYWxpZGF0b3JGbixcbiAgTkdfQVNZTkNfVkFMSURBVE9SUyxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgZGVib3VuY2VUaW1lLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgUmVwbGF5U3ViamVjdCxcbiAgU3ViamVjdCxcbiAgc3dpdGNoTWFwLFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3RhdGljU3VpdGUgfSBmcm9tICd2ZXN0JztcbmltcG9ydCB7IGNsb25lRGVlcCwgc2V0IH0gZnJvbSAnLi4vdXRpbHMvZm9ybS11dGlscyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2Zvcm1bdmFsaWRhdGVSb290Rm9ybV1bZm9ybVZhbHVlXVtzdWl0ZV0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19BU1lOQ19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IFZhbGlkYXRlUm9vdEZvcm1EaXJlY3RpdmUsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBWYWxpZGF0ZVJvb3RGb3JtRGlyZWN0aXZlPFQ+IGltcGxlbWVudHMgQXN5bmNWYWxpZGF0b3IsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZm9ybVZhbHVlID0gaW5wdXQ8VCB8IG51bGw+KG51bGwpO1xuICBwdWJsaWMgcmVhZG9ubHkgc3VpdGUgPSBpbnB1dDxTdGF0aWNTdWl0ZTxcbiAgICBzdHJpbmcsXG4gICAgc3RyaW5nLFxuICAgIChtb2RlbDogVCwgZmllbGQ6IHN0cmluZykgPT4gdm9pZFxuICA+IHwgbnVsbD4obnVsbCk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHJvb3QgZm9ybSBzaG91bGQgYmUgdmFsaWRhdGVkIG9yIG5vdFxuICAgKiBUaGlzIHdpbGwgdXNlIHRoZSBmaWVsZCByb290Rm9ybVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbGlkYXRlUm9vdEZvcm0gPSBpbnB1dChmYWxzZSk7XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gZGVib3VuY2UgZm9ybVZhbHVlcyB0byBtYWtlIHN1cmUgdmVzdCBpc24ndCB0cmlnZ2VyZWQgYWxsIHRoZSB0aW1lXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGZvcm1WYWx1ZUNhY2hlOiB7XG4gICAgW2ZpZWxkOiBzdHJpbmddOiBQYXJ0aWFsPHtcbiAgICAgIHN1YiQkOiBSZXBsYXlTdWJqZWN0PHVua25vd24+O1xuICAgICAgZGVib3VuY2VkOiBPYnNlcnZhYmxlPGFueT47XG4gICAgfT47XG4gIH0gPSB7fTtcblxuICBwdWJsaWMgdmFsaWRhdGUoXG4gICAgY29udHJvbDogQWJzdHJhY3RDb250cm9sPGFueSwgYW55PlxuICApOiBPYnNlcnZhYmxlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiB7XG4gICAgaWYgKCF0aGlzLnN1aXRlKCkgfHwgIXRoaXMuZm9ybVZhbHVlKCkpIHtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQXN5bmNWYWxpZGF0b3IoJ3Jvb3RGb3JtJykoXG4gICAgICBjb250cm9sLmdldFJhd1ZhbHVlKClcbiAgICApIGFzIE9ic2VydmFibGU8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+O1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZUFzeW5jVmFsaWRhdG9yKGZpZWxkOiBzdHJpbmcpOiBBc3luY1ZhbGlkYXRvckZuIHtcbiAgICBpZiAoIXRoaXMuc3VpdGUoKSkge1xuICAgICAgcmV0dXJuICgpID0+IG9mKG51bGwpO1xuICAgIH1cbiAgICByZXR1cm4gKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgIGlmICghdGhpcy5mb3JtVmFsdWUoKSkge1xuICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICB9XG4gICAgICBjb25zdCBtb2QgPSBjbG9uZURlZXAodmFsdWUgYXMgVCk7XG4gICAgICBzZXQobW9kIGFzIG9iamVjdCwgZmllbGQsIHZhbHVlKTsgLy8gVXBkYXRlIHRoZSBwcm9wZXJ0eSB3aXRoIHBhdGhcbiAgICAgIGlmICghdGhpcy5mb3JtVmFsdWVDYWNoZVtmaWVsZF0pIHtcbiAgICAgICAgdGhpcy5mb3JtVmFsdWVDYWNoZVtmaWVsZF0gPSB7XG4gICAgICAgICAgc3ViJCQ6IG5ldyBSZXBsYXlTdWJqZWN0KDEpLCAvLyBLZWVwIHRyYWNrIG9mIHRoZSBsYXN0IG1vZGVsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuZm9ybVZhbHVlQ2FjaGVbZmllbGRdLmRlYm91bmNlZCA9IHRoaXMuZm9ybVZhbHVlQ2FjaGVbXG4gICAgICAgICAgZmllbGRcbiAgICAgICAgXS5zdWIkJCEucGlwZShkZWJvdW5jZVRpbWUoMCkpO1xuICAgICAgfVxuICAgICAgLy8gTmV4dCB0aGUgbGF0ZXN0IG1vZGVsIGluIHRoZSBjYWNoZSBmb3IgYSBjZXJ0YWluIGZpZWxkXG4gICAgICB0aGlzLmZvcm1WYWx1ZUNhY2hlW2ZpZWxkXS5zdWIkJCEubmV4dChtb2QpO1xuXG4gICAgICByZXR1cm4gdGhpcy5mb3JtVmFsdWVDYWNoZVtmaWVsZF0uZGVib3VuY2VkIS5waXBlKFxuICAgICAgICAvLyBXaGVuIGRlYm91bmNlZCwgdGFrZSB0aGUgbGF0ZXN0IHZhbHVlIGFuZCBwZXJmb3JtIHRoZSBhc3luY2hyb25vdXMgdmVzdCB2YWxpZGF0aW9uXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdWl0ZSgpIShtb2QsIGZpZWxkKS5kb25lKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZXJyb3JzID0gcmVzdWx0LmdldEVycm9ycygpW2ZpZWxkXTtcbiAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChlcnJvcnMgPyB7IGVycm9yOiBlcnJvcnNbMF0sIGVycm9ycyB9IDogbnVsbCk7XG4gICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KSBhcyBPYnNlcnZhYmxlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPjtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkJClcbiAgICAgICk7XG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkJC5uZXh0KCk7XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/lib/exports.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Optional } from '@angular/core';
|
|
2
|
-
import { ControlContainer, FormsModule, NgForm, NgModelGroup } from '@angular/forms';
|
|
2
|
+
import { ControlContainer, FormsModule, NgForm, NgModelGroup, } from '@angular/forms';
|
|
3
3
|
import { ValidateRootFormDirective } from './directives/validate-root-form.directive';
|
|
4
4
|
import { ControlWrapperComponent } from './components/control-wrapper/control-wrapper.component';
|
|
5
5
|
import { FormDirective } from './directives/form.directive';
|
|
@@ -43,8 +43,8 @@ const formViewProvider = {
|
|
|
43
43
|
useFactory: _formViewProviderFactory,
|
|
44
44
|
deps: [
|
|
45
45
|
[new Optional(), NgForm],
|
|
46
|
-
[new Optional(), NgModelGroup]
|
|
47
|
-
]
|
|
46
|
+
[new Optional(), NgModelGroup],
|
|
47
|
+
],
|
|
48
48
|
};
|
|
49
49
|
function _formViewProviderFactory(ngForm, ngModelGroup) {
|
|
50
50
|
return ngModelGroup || ngForm || null;
|
|
@@ -54,10 +54,17 @@ function _formViewProviderFactory(ngForm, ngModelGroup) {
|
|
|
54
54
|
*/
|
|
55
55
|
export const vestFormsViewProviders = [
|
|
56
56
|
{ provide: ControlContainer, useExisting: NgForm },
|
|
57
|
-
formViewProvider // very important if we want nested components with ngModelGroup
|
|
57
|
+
formViewProvider, // very important if we want nested components with ngModelGroup
|
|
58
58
|
];
|
|
59
59
|
/**
|
|
60
60
|
* Exports all the stuff we need to use the template driven forms
|
|
61
61
|
*/
|
|
62
|
-
export const vestForms = [
|
|
63
|
-
|
|
62
|
+
export const vestForms = [
|
|
63
|
+
ValidateRootFormDirective,
|
|
64
|
+
ControlWrapperComponent,
|
|
65
|
+
FormDirective,
|
|
66
|
+
FormsModule,
|
|
67
|
+
FormModelDirective,
|
|
68
|
+
FormModelGroupDirective,
|
|
69
|
+
];
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12ZXN0LWZvcm1zL3NyYy9saWIvZXhwb3J0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsV0FBVyxFQUNYLE1BQU0sRUFDTixZQUFZLEdBQ2IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFbEY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0NHO0FBQ0gsTUFBTSxnQkFBZ0IsR0FBYTtJQUNqQyxPQUFPLEVBQUUsZ0JBQWdCO0lBQ3pCLFVBQVUsRUFBRSx3QkFBd0I7SUFDcEMsSUFBSSxFQUFFO1FBQ0osQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLE1BQU0sQ0FBQztRQUN4QixDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsWUFBWSxDQUFDO0tBQy9CO0NBQ0YsQ0FBQztBQUVGLFNBQVMsd0JBQXdCLENBQUMsTUFBYyxFQUFFLFlBQTBCO0lBQzFFLE9BQU8sWUFBWSxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUM7QUFDeEMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUc7SUFDcEMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRTtJQUNsRCxnQkFBZ0IsRUFBRSxnRUFBZ0U7Q0FDbkYsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHO0lBQ3ZCLHlCQUF5QjtJQUN6Qix1QkFBdUI7SUFDdkIsYUFBYTtJQUNiLFdBQVc7SUFDWCxrQkFBa0I7SUFDbEIsdUJBQXVCO0NBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9wdGlvbmFsLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29udHJvbENvbnRhaW5lcixcbiAgRm9ybXNNb2R1bGUsXG4gIE5nRm9ybSxcbiAgTmdNb2RlbEdyb3VwLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBWYWxpZGF0ZVJvb3RGb3JtRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRlLXJvb3QtZm9ybS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29udHJvbFdyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29udHJvbC13cmFwcGVyL2NvbnRyb2wtd3JhcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9mb3JtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGb3JtTW9kZWxEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZm9ybS1tb2RlbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRm9ybU1vZGVsR3JvdXBEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZm9ybS1tb2RlbC1ncm91cC5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIFRoaXMgaXMgYm9ycm93ZWQgZnJvbSAgW2h0dHBzOi8vZ2l0aHViLmNvbS93YXJkYmVsbC9uZ2MtdmFsaWRhdGUvYmxvYi9tYWluL3NyYy9hcHAvY29yZS9mb3JtLWNvbnRhaW5lci12aWV3LXByb3ZpZGVyLnRzXShodHRwczovL2dpdGh1Yi5jb20vd2FyZGJlbGwvbmdjLXZhbGlkYXRlL2Jsb2IvbWFpbi9zcmMvYXBwL2NvcmUvZm9ybS1jb250YWluZXItdmlldy1wcm92aWRlci50cylcbiAqIFRoYW5rIHlvdSBzbyBtdWNoIFdhcmQgQmVsbCBmb3IgeW91ciBlZmZvcnQhOlxuICpcbiAqIFByb3ZpZGUgYSBDb250cm9sQ29udGFpbmVyIHRvIGEgZm9ybSBjb21wb25lbnQgZnJvbSB0aGVcbiAqIG5lYXJlc3QgcGFyZW50IE5nTW9kZWxHcm91cCAocHJlZmVycmVkKSBvciBOZ0Zvcm0uXG4gKlxuICogUmVxdWlyZWQgZm9yIFJlYWN0aXZlIEZvcm1zIGFzIHdlbGwgKHVubGVzcyB5b3Ugd3JpdGUgQ1ZBKVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBcbiAqICAgQENvbXBvbmVudCh7XG4gKiAgICAgLi4uXG4gKiAgICB2aWV3UHJvdmlkZXJzWyBmb3JtVmlld1Byb3ZpZGVyIF1cbiAqICAgfSlcbiAqIGBgYFxuICogQHNlZSBLYXJhJ3MgQW5ndWxhckNvbm5lY3QgMjAxNyB0YWxrOiBodHRwczovL3lvdXR1LmJlL0NEX3QzbTJXTU04P3Q9MTgyNlxuICpcbiAqIFdpdGhvdXQgdGhpcyBwcm92aWRlclxuICogLSBDb250cm9scyBhcmUgbm90IHJlZ2lzdGVyZWQgd2l0aCBwYXJlbnQgTmdGb3JtIG9yIE5nTW9kZWxHcm91cFxuICogLSBGb3JtLWxldmVsIGZsYWdzIHNheSBcInVudG91Y2hlZFwiIGFuZCBcInZhbGlkXCJcbiAqIC0gTm8gZm9ybS1sZXZlbCB2YWxpZGF0aW9uIHJvbGwtdXBcbiAqIC0gQ29udHJvbHMgc3RpbGwgdmFsaWRhdGUsIHVwZGF0ZSBtb2RlbCwgYW5kIHVwZGF0ZSB0aGVpciBzdGF0dXNlc1xuICogLSBJZiB3aXRoaW4gTmdGb3JtLCBubyBjb21waWxlciBlcnJvciBiZWNhdXNlIENvbnRyb2xDb250YWluZXIgaXMgb3B0aW9uYWwgZm9yIG5nTW9kZWxcbiAqXG4gKiBOb3RlOiBpZiB0aGUgU3ViRm9ybSBDb21wb25lbnQgdGhhdCB1c2VzIHRoaXMgUHJvdmlkZXJcbiAqIGlzIG5vdCB3aXRoaW4gYSBGb3JtIG9yIE5nTW9kZWxHcm91cCwgdGhlIHByb3ZpZGVyIHJldHVybnMgYG51bGxgXG4gKiByZXN1bHRpbmcgaW4gYW4gZXJyb3IsIHNvbWV0aGluZyBsaWtlXG4gKiBgYGBcbiAqIHByZXZpZXctZmVmMzYwNDA4Mzk1MGM3MDljNTJiLmpzOjEgRVJST1IgRXJyb3I6XG4gKiAgbmdNb2RlbEdyb3VwIGNhbm5vdCBiZSB1c2VkIHdpdGggYSBwYXJlbnQgZm9ybUdyb3VwIGRpcmVjdGl2ZS5cbiAqYGBgXG4gKi9cbmNvbnN0IGZvcm1WaWV3UHJvdmlkZXI6IFByb3ZpZGVyID0ge1xuICBwcm92aWRlOiBDb250cm9sQ29udGFpbmVyLFxuICB1c2VGYWN0b3J5OiBfZm9ybVZpZXdQcm92aWRlckZhY3RvcnksXG4gIGRlcHM6IFtcbiAgICBbbmV3IE9wdGlvbmFsKCksIE5nRm9ybV0sXG4gICAgW25ldyBPcHRpb25hbCgpLCBOZ01vZGVsR3JvdXBdLFxuICBdLFxufTtcblxuZnVuY3Rpb24gX2Zvcm1WaWV3UHJvdmlkZXJGYWN0b3J5KG5nRm9ybTogTmdGb3JtLCBuZ01vZGVsR3JvdXA6IE5nTW9kZWxHcm91cCkge1xuICByZXR1cm4gbmdNb2RlbEdyb3VwIHx8IG5nRm9ybSB8fCBudWxsO1xufVxuXG4vKipcbiAqIFRoZSBwcm92aWRlcnMgd2UgbmVlZCBpbiBldmVyeSBjaGlsZCBjb21wb25lbnQgdGhhdCBob2xkcyBhbiBuZ01vZGVsR3JvdXBcbiAqL1xuZXhwb3J0IGNvbnN0IHZlc3RGb3Jtc1ZpZXdQcm92aWRlcnMgPSBbXG4gIHsgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IE5nRm9ybSB9LFxuICBmb3JtVmlld1Byb3ZpZGVyLCAvLyB2ZXJ5IGltcG9ydGFudCBpZiB3ZSB3YW50IG5lc3RlZCBjb21wb25lbnRzIHdpdGggbmdNb2RlbEdyb3VwXG5dO1xuXG4vKipcbiAqIEV4cG9ydHMgYWxsIHRoZSBzdHVmZiB3ZSBuZWVkIHRvIHVzZSB0aGUgdGVtcGxhdGUgZHJpdmVuIGZvcm1zXG4gKi9cbmV4cG9ydCBjb25zdCB2ZXN0Rm9ybXMgPSBbXG4gIFZhbGlkYXRlUm9vdEZvcm1EaXJlY3RpdmUsXG4gIENvbnRyb2xXcmFwcGVyQ29tcG9uZW50LFxuICBGb3JtRGlyZWN0aXZlLFxuICBGb3Jtc01vZHVsZSxcbiAgRm9ybU1vZGVsRGlyZWN0aXZlLFxuICBGb3JtTW9kZWxHcm91cERpcmVjdGl2ZSxcbl0gYXMgY29uc3Q7XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export function arrayToObject(arr) {
|
|
2
2
|
return arr.reduce((acc, value, index) => ({ ...acc, [index]: value }), {});
|
|
3
3
|
}
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktdG8tb2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlc3QtZm9ybXMvc3JjL2xpYi91dGlscy9hcnJheS10by1vYmplY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLGFBQWEsQ0FBSSxHQUFRO0lBQ3ZDLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzdFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gYXJyYXlUb09iamVjdDxUPihhcnI6IFRbXSk6IHsgW2tleTogbnVtYmVyXTogVCB9IHtcbiAgcmV0dXJuIGFyci5yZWR1Y2UoKGFjYywgdmFsdWUsIGluZGV4KSA9PiAoeyAuLi5hY2MsIFtpbmRleF06IHZhbHVlIH0pLCB7fSk7XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcC1wYXJ0aWFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlc3QtZm9ybXMvc3JjL2xpYi91dGlscy9kZWVwLXBhcnRpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2ltcGxlIHR5cGUgdGhhdCBtYWtlcyBldmVyeSBwcm9wZXJ0eSBhbmQgY2hpbGQgcHJvcGVydHlcbiAqIHBhcnRpYWwsIHJlY3Vyc2l2ZWx5LiBXaHk/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcC1wYXJ0aWFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlc3QtZm9ybXMvc3JjL2xpYi91dGlscy9kZWVwLXBhcnRpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2ltcGxlIHR5cGUgdGhhdCBtYWtlcyBldmVyeSBwcm9wZXJ0eSBhbmQgY2hpbGQgcHJvcGVydHlcbiAqIHBhcnRpYWwsIHJlY3Vyc2l2ZWx5LiBXaHk/IEJlY2F1c2UgdGVtcGxhdGUtZHJpdmVuIGZvcm1zIGFyZVxuICogZGVlcCBwYXJ0aWFsLCBzaW5jZSB0aGV5IGdldCBjcmVhdGVkIGJ5IHRoZSBET01cbiAqL1xuZXhwb3J0IHR5cGUgRGVlcFBhcnRpYWw8VD4gPSB7XG4gIFtQIGluIGtleW9mIFRdPzogVFtQXSBleHRlbmRzIEFycmF5PGluZmVyIFU+XG4gICAgPyBBcnJheTxEZWVwUGFydGlhbDxVPj5cbiAgICA6IFRbUF0gZXh0ZW5kcyBSZWFkb25seUFycmF5PGluZmVyIFU+XG4gICAgICA/IFJlYWRvbmx5QXJyYXk8RGVlcFBhcnRpYWw8VT4+XG4gICAgICA6IFRbUF0gZXh0ZW5kcyBvYmplY3RcbiAgICAgICAgPyBEZWVwUGFydGlhbDxUW1BdPlxuICAgICAgICA6IFRbUF07XG59O1xuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcC1yZXF1aXJlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12ZXN0LWZvcm1zL3NyYy9saWIvdXRpbHMvZGVlcC1yZXF1aXJlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTb21ldGltZXMgd2Ugd2FudCB0byBtYWtlIGV2ZXJ5IHByb3BlcnR5IG9mIGEgdHlwZVxuICogcmVxdWlyZWQsIGJ1dCBhbHNvIGNoaWxkIHByb3BlcnRpZXMgcmVjdXJzaXZlbHlcbiAqL1xuZXhwb3J0IHR5cGUgRGVlcFJlcXVpcmVkPFQ+ID0ge1xuICBbSyBpbiBrZXlvZiBUXS0/OiBUW0tdIGV4dGVuZHMgb2JqZWN0ID8gRGVlcFJlcXVpcmVkPFRbS10+
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcC1yZXF1aXJlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12ZXN0LWZvcm1zL3NyYy9saWIvdXRpbHMvZGVlcC1yZXF1aXJlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTb21ldGltZXMgd2Ugd2FudCB0byBtYWtlIGV2ZXJ5IHByb3BlcnR5IG9mIGEgdHlwZVxuICogcmVxdWlyZWQsIGJ1dCBhbHNvIGNoaWxkIHByb3BlcnRpZXMgcmVjdXJzaXZlbHlcbiAqL1xuZXhwb3J0IHR5cGUgRGVlcFJlcXVpcmVkPFQ+ID0ge1xuICBbSyBpbiBrZXlvZiBUXS0/OiBUW0tdIGV4dGVuZHMgb2JqZWN0ID8gRGVlcFJlcXVpcmVkPFRbS10+IDogVFtLXTtcbn07XG4iXX0=
|