@firestitch/form 12.2.5 → 12.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/components/form-dialog-actions/form-dialog-actions.component.d.ts +22 -22
- package/app/consts/error-messages.const.d.ts +19 -19
- package/app/directives/button.directive.d.ts +19 -0
- package/app/directives/form/form.directive.d.ts +113 -108
- package/app/directives/form-dialog-close.directive.d.ts +12 -12
- package/app/directives/index.d.ts +1 -0
- package/app/directives/submit-button.directive.d.ts +31 -31
- package/app/directives/validators/compare.directive.d.ts +15 -15
- package/app/directives/validators/control.directive.d.ts +48 -48
- package/app/directives/validators/daterange.directive.d.ts +13 -13
- package/app/directives/validators/email.directive.d.ts +13 -13
- package/app/directives/validators/emails.directive.d.ts +13 -13
- package/app/directives/validators/function.directive.d.ts +14 -14
- package/app/directives/validators/greater.directive.d.ts +13 -13
- package/app/directives/validators/integer.directive.d.ts +13 -13
- package/app/directives/validators/lesser.directive.d.ts +13 -13
- package/app/directives/validators/max.directive.d.ts +13 -13
- package/app/directives/validators/maxlength.directive.d.ts +13 -13
- package/app/directives/validators/min.directive.d.ts +13 -13
- package/app/directives/validators/minlength.directive.d.ts +13 -13
- package/app/directives/validators/no-fs-validators.directive.d.ts +13 -13
- package/app/directives/validators/numeric.directive.d.ts +13 -13
- package/app/directives/validators/pattern.directive.d.ts +13 -13
- package/app/directives/validators/phone.directive.d.ts +13 -13
- package/app/directives/validators/required.directive.d.ts +16 -16
- package/app/directives/validators/url.directive.d.ts +14 -14
- package/app/directives/validators/validate.directive.d.ts +14 -14
- package/app/enums/confirm-result.d.ts +7 -7
- package/app/enums/form-status.d.ts +9 -9
- package/app/fs-form.module.d.ts +37 -36
- package/app/guards/form-deactivate.guard.d.ts +12 -12
- package/app/helpers/confirm-result-continue.d.ts +1 -1
- package/app/helpers/confirm-unsaved.d.ts +5 -5
- package/app/helpers/get-form-errors.d.ts +2 -2
- package/app/helpers/index.d.ts +2 -2
- package/app/helpers/is-enabled.d.ts +1 -1
- package/app/interfaces/async-validator.d.ts +14 -14
- package/app/interfaces/confirm-config.d.ts +7 -7
- package/app/interfaces/confirm-tab-group.d.ts +10 -10
- package/app/interfaces/form-deactivate.d.ts +4 -4
- package/app/interfaces/index.d.ts +4 -4
- package/app/interfaces/submit-event.d.ts +5 -5
- package/app/interfaces/submitted-event.d.ts +6 -6
- package/app/interfaces/validator.d.ts +13 -13
- package/app/providers/validate-messages.provider.d.ts +25 -25
- package/app/services/fsform.service.d.ts +10 -10
- package/app/validators/validators.d.ts +12 -12
- package/bundles/firestitch-form.umd.js +2755 -2676
- package/bundles/firestitch-form.umd.js.map +1 -1
- package/esm2015/app/components/form-dialog-actions/form-dialog-actions.component.js +90 -89
- package/esm2015/app/consts/error-messages.const.js +19 -19
- package/esm2015/app/directives/button.directive.js +60 -0
- package/esm2015/app/directives/form/form.directive.js +643 -622
- package/esm2015/app/directives/form-dialog-close.directive.js +30 -30
- package/esm2015/app/directives/index.js +2 -0
- package/esm2015/app/directives/submit-button.directive.js +131 -131
- package/esm2015/app/directives/validators/compare.directive.js +48 -48
- package/esm2015/app/directives/validators/control.directive.js +256 -256
- package/esm2015/app/directives/validators/daterange.directive.js +40 -40
- package/esm2015/app/directives/validators/email.directive.js +40 -40
- package/esm2015/app/directives/validators/emails.directive.js +40 -40
- package/esm2015/app/directives/validators/function.directive.js +30 -30
- package/esm2015/app/directives/validators/greater.directive.js +39 -39
- package/esm2015/app/directives/validators/integer.directive.js +40 -40
- package/esm2015/app/directives/validators/lesser.directive.js +39 -39
- package/esm2015/app/directives/validators/max.directive.js +35 -35
- package/esm2015/app/directives/validators/maxlength.directive.js +34 -34
- package/esm2015/app/directives/validators/min.directive.js +35 -35
- package/esm2015/app/directives/validators/minlength.directive.js +34 -34
- package/esm2015/app/directives/validators/no-fs-validators.directive.js +46 -46
- package/esm2015/app/directives/validators/numeric.directive.js +40 -40
- package/esm2015/app/directives/validators/pattern.directive.js +34 -34
- package/esm2015/app/directives/validators/phone.directive.js +40 -40
- package/esm2015/app/directives/validators/required.directive.js +70 -70
- package/esm2015/app/directives/validators/url.directive.js +46 -46
- package/esm2015/app/directives/validators/validate.directive.js +32 -32
- package/esm2015/app/enums/confirm-result.js +8 -8
- package/esm2015/app/enums/form-status.js +10 -10
- package/esm2015/app/fs-form.module.js +181 -176
- package/esm2015/app/guards/form-deactivate.guard.js +39 -39
- package/esm2015/app/helpers/confirm-result-continue.js +4 -4
- package/esm2015/app/helpers/confirm-unsaved.js +69 -69
- package/esm2015/app/helpers/get-form-errors.js +24 -24
- package/esm2015/app/helpers/index.js +2 -2
- package/esm2015/app/helpers/is-enabled.js +3 -3
- package/esm2015/app/interfaces/async-validator.js +1 -1
- package/esm2015/app/interfaces/confirm-config.js +1 -1
- package/esm2015/app/interfaces/confirm-tab-group.js +1 -1
- package/esm2015/app/interfaces/form-deactivate.js +1 -1
- package/esm2015/app/interfaces/index.js +4 -4
- package/esm2015/app/interfaces/submit-event.js +1 -1
- package/esm2015/app/interfaces/submitted-event.js +1 -1
- package/esm2015/app/interfaces/validator.js +1 -1
- package/esm2015/app/providers/validate-messages.provider.js +10 -10
- package/esm2015/app/services/fsform.service.js +24 -24
- package/esm2015/app/validators/validators.js +96 -96
- package/esm2015/firestitch-form.js +4 -4
- package/esm2015/public_api.js +37 -36
- package/fesm2015/firestitch-form.js +2198 -2120
- package/fesm2015/firestitch-form.js.map +1 -1
- package/firestitch-form.d.ts +5 -5
- package/package.json +1 -1
- package/public_api.d.ts +35 -34
- package/styles.scss +1 -1
|
@@ -1,89 +1,90 @@
|
|
|
1
|
-
import { Component, ChangeDetectionStrategy, Input, Optional, ChangeDetectorRef } from '@angular/core';
|
|
2
|
-
import { MatDialogRef } from '@angular/material/dialog';
|
|
3
|
-
import { Subject } from 'rxjs';
|
|
4
|
-
import { delay, filter, takeUntil } from 'rxjs/operators';
|
|
5
|
-
import { FsFormDirective } from '../../directives/form/form.directive';
|
|
6
|
-
import { ConfirmResult } from '../../enums/confirm-result';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../../directives/form/form.directive";
|
|
9
|
-
import * as i2 from "@angular/material/dialog";
|
|
10
|
-
import * as i3 from "@angular/material/button";
|
|
11
|
-
import * as i4 from "@angular/common";
|
|
12
|
-
import * as i5 from "../../directives/submit-button.directive";
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
this.
|
|
17
|
-
this.
|
|
18
|
-
this.
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
21
|
-
this.
|
|
22
|
-
this.
|
|
23
|
-
this.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
.
|
|
30
|
-
|
|
31
|
-
this.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
.
|
|
36
|
-
|
|
37
|
-
this.
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
.
|
|
42
|
-
|
|
43
|
-
this.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
.
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
this._destroy$.
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
FsFormDialogActionsComponent.ɵ
|
|
66
|
-
i0.ɵɵ
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
type:
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
1
|
+
import { Component, ChangeDetectionStrategy, Input, Optional, ChangeDetectorRef } from '@angular/core';
|
|
2
|
+
import { MatDialogRef } from '@angular/material/dialog';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import { delay, filter, takeUntil } from 'rxjs/operators';
|
|
5
|
+
import { FsFormDirective } from '../../directives/form/form.directive';
|
|
6
|
+
import { ConfirmResult } from '../../enums/confirm-result';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "../../directives/form/form.directive";
|
|
9
|
+
import * as i2 from "@angular/material/dialog";
|
|
10
|
+
import * as i3 from "@angular/material/button";
|
|
11
|
+
import * as i4 from "@angular/common";
|
|
12
|
+
import * as i5 from "../../directives/submit-button.directive";
|
|
13
|
+
import * as i6 from "../../directives/button.directive";
|
|
14
|
+
export class FsFormDialogActionsComponent {
|
|
15
|
+
constructor(_form, _dialogRef, _cdRef) {
|
|
16
|
+
this._form = _form;
|
|
17
|
+
this._dialogRef = _dialogRef;
|
|
18
|
+
this._cdRef = _cdRef;
|
|
19
|
+
this.save = true;
|
|
20
|
+
this.create = false;
|
|
21
|
+
this.close = false;
|
|
22
|
+
this.closeData = null;
|
|
23
|
+
this.dirty = false;
|
|
24
|
+
this._destroy$ = new Subject();
|
|
25
|
+
}
|
|
26
|
+
ngOnInit() {
|
|
27
|
+
if (this._form) {
|
|
28
|
+
this._form.ngForm.valueChanges
|
|
29
|
+
.pipe(filter(() => (!this.dirty)), takeUntil(this._destroy$))
|
|
30
|
+
.subscribe(() => {
|
|
31
|
+
this.dirty = this._form.ngForm.dirty;
|
|
32
|
+
this._cdRef.markForCheck();
|
|
33
|
+
});
|
|
34
|
+
this._form.submitted
|
|
35
|
+
.pipe(delay(50), takeUntil(this._destroy$))
|
|
36
|
+
.subscribe(() => {
|
|
37
|
+
this.dirty = false;
|
|
38
|
+
this._cdRef.markForCheck();
|
|
39
|
+
});
|
|
40
|
+
this._form.reseted
|
|
41
|
+
.pipe(takeUntil(this._destroy$))
|
|
42
|
+
.subscribe(() => {
|
|
43
|
+
this.dirty = false;
|
|
44
|
+
this._cdRef.markForCheck();
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
closeClick() {
|
|
49
|
+
if (this._form) {
|
|
50
|
+
this._form.triggerConfirm()
|
|
51
|
+
.pipe(filter((confirmResult) => (confirmResult !== ConfirmResult.Review)), takeUntil(this._destroy$))
|
|
52
|
+
.subscribe(() => {
|
|
53
|
+
this._dialogRef.close(this.closeData);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
this._dialogRef.close(this.closeData);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
ngOnDestroy() {
|
|
61
|
+
this._destroy$.next();
|
|
62
|
+
this._destroy$.complete();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
FsFormDialogActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsFormDialogActionsComponent, deps: [{ token: i1.FsFormDirective, optional: true }, { token: i2.MatDialogRef, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
66
|
+
FsFormDialogActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsFormDialogActionsComponent, selector: "fs-form-dialog-actions", inputs: { save: "save", create: "create", close: "close", closeData: "closeData", name: "name" }, ngImport: i0, template: "<div class=\"buttons\" [ngClass]=\"{ 'save-create': save || create }\">\n <ng-container *ngIf=\"save\">\n <button\n mat-button\n type=\"submit\"\n color=\"primary\"\n [name]=\"name\">\n {{create ? 'Create' : 'Save'}}\n </button>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"close && !dirty && !create\"\n [matDialogClose]=\"null\">\n Cancel\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"save || create\">\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </ng-container>\n\n <div class=\"close\" *ngIf=\"close\">\n <button\n mat-button\n type=\"button\"\n [color]=\"dirty ? 'basic' : 'primary'\"\n (click)=\"closeClick()\">\n Close\n </button>\n </div>\n\n <ng-container *ngIf=\"!(save || create)\">\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </ng-container>\n</div>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", styles: [".buttons{display:flex;flex-grow:1;align-items:center}.buttons.save-create .close{display:flex;flex-grow:1;justify-content:flex-end}:host{display:flex;flex-grow:1}@media only screen and (max-width: 599px){.buttons{flex-direction:column}}\n"], components: [{ type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.FsSubmitButtonDirective, selector: "button[type=\"submit\"]", inputs: ["name", "dirtySubmit"] }, { type: i6.FsButtonDirective, selector: "[mat-raised-button][type=\"button\"],[mat-flat-button][type=\"button\"],[mat-stroked-button][type=\"button\"],[mat-button][type=\"button\"]" }, { type: i2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsFormDialogActionsComponent, decorators: [{
|
|
68
|
+
type: Component,
|
|
69
|
+
args: [{
|
|
70
|
+
selector: 'fs-form-dialog-actions',
|
|
71
|
+
templateUrl: './form-dialog-actions.component.html',
|
|
72
|
+
styleUrls: ['./form-dialog-actions.component.scss'],
|
|
73
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
74
|
+
}]
|
|
75
|
+
}], ctorParameters: function () { return [{ type: i1.FsFormDirective, decorators: [{
|
|
76
|
+
type: Optional
|
|
77
|
+
}] }, { type: i2.MatDialogRef, decorators: [{
|
|
78
|
+
type: Optional
|
|
79
|
+
}] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { save: [{
|
|
80
|
+
type: Input
|
|
81
|
+
}], create: [{
|
|
82
|
+
type: Input
|
|
83
|
+
}], close: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}], closeData: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], name: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}] } });
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kaWFsb2ctYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvZm9ybS1kaWFsb2ctYWN0aW9ucy9mb3JtLWRpYWxvZy1hY3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9mb3JtLWRpYWxvZy1hY3Rpb25zL2Zvcm0tZGlhbG9nLWFjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRTFILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7O0FBUzNELE1BQU0sT0FBTyw0QkFBNEI7SUFZdkMsWUFDc0IsS0FBc0IsRUFDdEIsVUFBNkIsRUFDekMsTUFBeUI7UUFGYixVQUFLLEdBQUwsS0FBSyxDQUFpQjtRQUN0QixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUN6QyxXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQWJuQixTQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osV0FBTSxHQUFHLEtBQUssQ0FBQztRQUNmLFVBQUssR0FBRyxLQUFLLENBQUM7UUFDZCxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBRzFCLFVBQUssR0FBRyxLQUFLLENBQUM7UUFFYixjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQU1yQyxDQUFDO0lBRUcsUUFBUTtRQUNiLElBQUcsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNiLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVk7aUJBQzdCLElBQUksQ0FDSCxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUMzQixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQjtpQkFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO2dCQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzdCLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTO2lCQUNuQixJQUFJLENBQ0gsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUNULFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCO2lCQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDN0IsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU87aUJBQ2pCLElBQUksQ0FDSCxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQjtpQkFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO2dCQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzdCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUcsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNiLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFO2lCQUMxQixJQUFJLENBQ0gsTUFBTSxDQUFDLENBQUMsYUFBNEIsRUFBRSxFQUFFLENBQUMsQ0FBQyxhQUFhLEtBQUssYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQ2xGLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCO2lCQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3hDLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN2QztJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDOzswSEFyRVUsNEJBQTRCOzhHQUE1Qiw0QkFBNEIsZ0tDakJ6QyxrZ0NBd0NBOzRGRHZCYSw0QkFBNEI7a0JBTnhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsV0FBVyxFQUFFLHNDQUFzQztvQkFDbkQsU0FBUyxFQUFFLENBQUMsc0NBQXNDLENBQUM7b0JBQ25ELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs7MEJBY0ksUUFBUTs7MEJBQ1IsUUFBUTs0RUFaSyxJQUFJO3NCQUFuQixLQUFLO2dCQUNVLE1BQU07c0JBQXJCLEtBQUs7Z0JBQ1UsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIElucHV0LCBPcHRpb25hbCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuXHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVsYXksIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRnNGb3JtRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9mb3JtL2Zvcm0uZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29uZmlybVJlc3VsdCB9IGZyb20gJy4uLy4uL2VudW1zL2NvbmZpcm0tcmVzdWx0JztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2ZzLWZvcm0tZGlhbG9nLWFjdGlvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWRpYWxvZy1hY3Rpb25zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWRpYWxvZy1hY3Rpb25zLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGc0Zvcm1EaWFsb2dBY3Rpb25zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgc2F2ZSA9IHRydWU7XHJcbiAgQElucHV0KCkgcHVibGljIGNyZWF0ZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjbG9zZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjbG9zZURhdGEgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBuYW1lOiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBkaXJ0eSA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9mb3JtOiBGc0Zvcm1EaXJlY3RpdmUsXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9kaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxhbnk+LFxyXG4gICAgcHJpdmF0ZSBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLCAgIFxyXG4gICkge31cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYodGhpcy5fZm9ybSkge1xyXG4gICAgICB0aGlzLl9mb3JtLm5nRm9ybS52YWx1ZUNoYW5nZXNcclxuICAgICAgLnBpcGUoICBcclxuICAgICAgICBmaWx0ZXIoKCkgPT4gKCF0aGlzLmRpcnR5KSksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmRpcnR5ID0gdGhpcy5fZm9ybS5uZ0Zvcm0uZGlydHk7XHJcbiAgICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5fZm9ybS5zdWJtaXR0ZWRcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZGVsYXkoNTApLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kaXJ0eSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMuX2Zvcm0ucmVzZXRlZFxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZGlydHkgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIHB1YmxpYyBjbG9zZUNsaWNrKCk6IHZvaWQge1xyXG4gICAgaWYodGhpcy5fZm9ybSkge1xyXG4gICAgICB0aGlzLl9mb3JtLnRyaWdnZXJDb25maXJtKClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKChjb25maXJtUmVzdWx0OiBDb25maXJtUmVzdWx0KSA9PiAoY29uZmlybVJlc3VsdCAhPT0gQ29uZmlybVJlc3VsdC5SZXZpZXcpKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSh0aGlzLmNsb3NlRGF0YSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKHRoaXMuY2xvc2VEYXRhKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJidXR0b25zXCIgW25nQ2xhc3NdPVwieyAnc2F2ZS1jcmVhdGUnOiBzYXZlIHx8IGNyZWF0ZSB9XCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzYXZlXCI+XG4gICAgPGJ1dHRvblxuICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICBbbmFtZV09XCJuYW1lXCI+XG4gICAgICB7e2NyZWF0ZSA/ICdDcmVhdGUnIDogJ1NhdmUnfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJjbG9zZSAmJiAhZGlydHkgJiYgIWNyZWF0ZVwiXG4gICAgICAgIFttYXREaWFsb2dDbG9zZV09XCJudWxsXCI+XG4gICAgICBDYW5jZWxcbiAgICA8L2J1dHRvbj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNhdmUgfHwgY3JlYXRlXCI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnRcIj48L25nLXRlbXBsYXRlPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8ZGl2IGNsYXNzPVwiY2xvc2VcIiAqbmdJZj1cImNsb3NlXCI+XG4gICAgPGJ1dHRvblxuICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBbY29sb3JdPVwiZGlydHkgPyAnYmFzaWMnIDogJ3ByaW1hcnknXCJcbiAgICAgICAgKGNsaWNrKT1cImNsb3NlQ2xpY2soKVwiPlxuICAgICAgQ2xvc2VcbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEoc2F2ZSB8fCBjcmVhdGUpXCI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnRcIj48L25nLXRlbXBsYXRlPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
export const ERROR_MESSAGES = {
|
|
2
|
-
required: 'This field is required',
|
|
3
|
-
email: 'This is not a valid email address',
|
|
4
|
-
emails: 'Input valid email addresses, comma separated',
|
|
5
|
-
phone: 'Invalid phone number',
|
|
6
|
-
numeric: 'Value should be numeric',
|
|
7
|
-
integer: 'Value should be an integer',
|
|
8
|
-
min: 'Value should not be less than $(1)',
|
|
9
|
-
max: 'Value should not be greater than $(1)',
|
|
10
|
-
minlength: 'Should not be shorter than $(1) characters',
|
|
11
|
-
maxlength: 'Should not be longer than $(1) characters',
|
|
12
|
-
compare: 'Inputs do not match',
|
|
13
|
-
pattern: 'Value should match pattern $(1)',
|
|
14
|
-
dateRange: 'Invalid date range',
|
|
15
|
-
url: 'This is not a valid url',
|
|
16
|
-
urlProtocol: 'Invalid URL. Proper http protocol is required. eg. https://google.com',
|
|
17
|
-
greater: 'Value must be greater than $(1)',
|
|
18
|
-
lesser: 'Value must be less than $(1)',
|
|
19
|
-
};
|
|
1
|
+
export const ERROR_MESSAGES = {
|
|
2
|
+
required: 'This field is required',
|
|
3
|
+
email: 'This is not a valid email address',
|
|
4
|
+
emails: 'Input valid email addresses, comma separated',
|
|
5
|
+
phone: 'Invalid phone number',
|
|
6
|
+
numeric: 'Value should be numeric',
|
|
7
|
+
integer: 'Value should be an integer',
|
|
8
|
+
min: 'Value should not be less than $(1)',
|
|
9
|
+
max: 'Value should not be greater than $(1)',
|
|
10
|
+
minlength: 'Should not be shorter than $(1) characters',
|
|
11
|
+
maxlength: 'Should not be longer than $(1) characters',
|
|
12
|
+
compare: 'Inputs do not match',
|
|
13
|
+
pattern: 'Value should match pattern $(1)',
|
|
14
|
+
dateRange: 'Invalid date range',
|
|
15
|
+
url: 'This is not a valid url',
|
|
16
|
+
urlProtocol: 'Invalid URL. Proper http protocol is required. eg. https://google.com',
|
|
17
|
+
greater: 'Value must be greater than $(1)',
|
|
18
|
+
lesser: 'Value must be less than $(1)',
|
|
19
|
+
};
|
|
20
20
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItbWVzc2FnZXMuY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2NvbnN0cy9lcnJvci1tZXNzYWdlcy5jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDNUIsUUFBUSxFQUFFLHdCQUF3QjtJQUNsQyxLQUFLLEVBQUUsbUNBQW1DO0lBQzFDLE1BQU0sRUFBRSw4Q0FBOEM7SUFDdEQsS0FBSyxFQUFFLHNCQUFzQjtJQUM3QixPQUFPLEVBQUUseUJBQXlCO0lBQ2xDLE9BQU8sRUFBRSw0QkFBNEI7SUFDckMsR0FBRyxFQUFFLG9DQUFvQztJQUN6QyxHQUFHLEVBQUUsdUNBQXVDO0lBQzVDLFNBQVMsRUFBRSw0Q0FBNEM7SUFDdkQsU0FBUyxFQUFFLDJDQUEyQztJQUN0RCxPQUFPLEVBQUUscUJBQXFCO0lBQzlCLE9BQU8sRUFBRSxpQ0FBaUM7SUFDMUMsU0FBUyxFQUFFLG9CQUFvQjtJQUMvQixHQUFHLEVBQUUseUJBQXlCO0lBQzlCLFdBQVcsRUFBRSx1RUFBdUU7SUFDcEYsT0FBTyxFQUFFLGlDQUFpQztJQUMxQyxNQUFNLEVBQUUsOEJBQThCO0NBQ3ZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgRVJST1JfTUVTU0FHRVMgPSB7XG4gIHJlcXVpcmVkOiAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCcsXG4gIGVtYWlsOiAnVGhpcyBpcyBub3QgYSB2YWxpZCBlbWFpbCBhZGRyZXNzJyxcbiAgZW1haWxzOiAnSW5wdXQgdmFsaWQgZW1haWwgYWRkcmVzc2VzLCBjb21tYSBzZXBhcmF0ZWQnLFxuICBwaG9uZTogJ0ludmFsaWQgcGhvbmUgbnVtYmVyJyxcbiAgbnVtZXJpYzogJ1ZhbHVlIHNob3VsZCBiZSBudW1lcmljJyxcbiAgaW50ZWdlcjogJ1ZhbHVlIHNob3VsZCBiZSBhbiBpbnRlZ2VyJyxcbiAgbWluOiAnVmFsdWUgc2hvdWxkIG5vdCBiZSBsZXNzIHRoYW4gJCgxKScsXG4gIG1heDogJ1ZhbHVlIHNob3VsZCBub3QgYmUgZ3JlYXRlciB0aGFuICQoMSknLFxuICBtaW5sZW5ndGg6ICdTaG91bGQgbm90IGJlIHNob3J0ZXIgdGhhbiAkKDEpIGNoYXJhY3RlcnMnLFxuICBtYXhsZW5ndGg6ICdTaG91bGQgbm90IGJlIGxvbmdlciB0aGFuICQoMSkgY2hhcmFjdGVycycsXG4gIGNvbXBhcmU6ICdJbnB1dHMgZG8gbm90IG1hdGNoJyxcbiAgcGF0dGVybjogJ1ZhbHVlIHNob3VsZCBtYXRjaCBwYXR0ZXJuICQoMSknLFxuICBkYXRlUmFuZ2U6ICdJbnZhbGlkIGRhdGUgcmFuZ2UnLFxuICB1cmw6ICdUaGlzIGlzIG5vdCBhIHZhbGlkIHVybCcsXG4gIHVybFByb3RvY29sOiAnSW52YWxpZCBVUkwuIFByb3BlciBodHRwIHByb3RvY29sIGlzIHJlcXVpcmVkLiBlZy4gaHR0cHM6Ly9nb29nbGUuY29tJyxcbiAgZ3JlYXRlcjogJ1ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICQoMSknLFxuICBsZXNzZXI6ICdWYWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiAkKDEpJyxcbn07XG4iXX0=
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Directive, Host, Optional, ChangeDetectorRef } from '@angular/core';
|
|
2
|
+
import { MatButton } from '@angular/material/button';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import { FsFormDirective } from './form/form.directive';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/material/button";
|
|
7
|
+
import * as i2 from "./form/form.directive";
|
|
8
|
+
export class FsButtonDirective {
|
|
9
|
+
constructor(_matButton, _form, _cdRef) {
|
|
10
|
+
this._matButton = _matButton;
|
|
11
|
+
this._form = _form;
|
|
12
|
+
this._cdRef = _cdRef;
|
|
13
|
+
this.previous = false;
|
|
14
|
+
this._destroy$ = new Subject();
|
|
15
|
+
}
|
|
16
|
+
disable() {
|
|
17
|
+
this.previous = this._matButton.disabled;
|
|
18
|
+
if (this._matButton && !this.previous) {
|
|
19
|
+
this._matButton.disabled = true;
|
|
20
|
+
this._cdRef.markForCheck();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
enable() {
|
|
24
|
+
if (this._matButton) {
|
|
25
|
+
this._matButton.disabled = false;
|
|
26
|
+
this._cdRef.markForCheck();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
reset() {
|
|
30
|
+
if (this._matButton && !this.previous) {
|
|
31
|
+
this.enable();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
ngOnInit() {
|
|
35
|
+
if (this._form) {
|
|
36
|
+
this._form.addButton(this);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
ngOnDestroy() {
|
|
40
|
+
var _a;
|
|
41
|
+
this._destroy$.next();
|
|
42
|
+
this._destroy$.complete();
|
|
43
|
+
(_a = this._form) === null || _a === void 0 ? void 0 : _a.removeButton(this);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
FsButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsButtonDirective, deps: [{ token: i1.MatButton, host: true, optional: true }, { token: i2.FsFormDirective, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
47
|
+
FsButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: FsButtonDirective, selector: "[mat-raised-button][type=\"button\"],[mat-flat-button][type=\"button\"],[mat-stroked-button][type=\"button\"],[mat-button][type=\"button\"]", ngImport: i0 });
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsButtonDirective, decorators: [{
|
|
49
|
+
type: Directive,
|
|
50
|
+
args: [{
|
|
51
|
+
selector: '[mat-raised-button][type="button"],[mat-flat-button][type="button"],[mat-stroked-button][type="button"],[mat-button][type="button"]',
|
|
52
|
+
}]
|
|
53
|
+
}], ctorParameters: function () { return [{ type: i1.MatButton, decorators: [{
|
|
54
|
+
type: Optional
|
|
55
|
+
}, {
|
|
56
|
+
type: Host
|
|
57
|
+
}] }, { type: i2.FsFormDirective, decorators: [{
|
|
58
|
+
type: Optional
|
|
59
|
+
}] }, { type: i0.ChangeDetectorRef }]; } });
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvZGlyZWN0aXZlcy9idXR0b24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFaEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7O0FBTXhELE1BQU0sT0FBTyxpQkFBaUI7SUFNNUIsWUFDOEIsVUFBcUIsRUFDN0IsS0FBc0IsRUFDbEMsTUFBeUI7UUFGTCxlQUFVLEdBQVYsVUFBVSxDQUFXO1FBQzdCLFVBQUssR0FBTCxLQUFLLENBQWlCO1FBQ2xDLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBUDVCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFaEIsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFNL0IsQ0FBQztJQUVHLE9BQU87UUFDWixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQ3pDLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDckMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNyQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDZjtJQUNILENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRU0sV0FBVzs7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFCLE1BQUEsSUFBSSxDQUFDLEtBQUssMENBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7OytHQTNDVSxpQkFBaUI7bUdBQWpCLGlCQUFpQjs0RkFBakIsaUJBQWlCO2tCQUg3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxSUFBcUk7aUJBQ2hKOzswQkFRSSxRQUFROzswQkFBSSxJQUFJOzswQkFDaEIsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdCwgT3B0aW9uYWwsIENoYW5nZURldGVjdG9yUmVmLCBPbkluaXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNYXRCdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRnNGb3JtRGlyZWN0aXZlIH0gZnJvbSAnLi9mb3JtL2Zvcm0uZGlyZWN0aXZlJztcblxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbWF0LXJhaXNlZC1idXR0b25dW3R5cGU9XCJidXR0b25cIl0sW21hdC1mbGF0LWJ1dHRvbl1bdHlwZT1cImJ1dHRvblwiXSxbbWF0LXN0cm9rZWQtYnV0dG9uXVt0eXBlPVwiYnV0dG9uXCJdLFttYXQtYnV0dG9uXVt0eXBlPVwiYnV0dG9uXCJdJyxcbn0pXG5leHBvcnQgY2xhc3MgRnNCdXR0b25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHVibGljIHByZXZpb3VzID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIEBIb3N0KCkgcHJpdmF0ZSBfbWF0QnV0dG9uOiBNYXRCdXR0b24sXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfZm9ybTogRnNGb3JtRGlyZWN0aXZlLFxuICAgIHByaXZhdGUgX2NkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7fVxuXG4gIHB1YmxpYyBkaXNhYmxlKCk6IHZvaWQge1xuICAgIHRoaXMucHJldmlvdXMgPSB0aGlzLl9tYXRCdXR0b24uZGlzYWJsZWQ7XG4gICAgaWYgKHRoaXMuX21hdEJ1dHRvbiAmJiAhdGhpcy5wcmV2aW91cykge1xuICAgICAgdGhpcy5fbWF0QnV0dG9uLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlbmFibGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX21hdEJ1dHRvbikge1xuICAgICAgdGhpcy5fbWF0QnV0dG9uLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX21hdEJ1dHRvbiAmJiAhdGhpcy5wcmV2aW91cykge1xuICAgICAgdGhpcy5lbmFibGUoKTsgICAgICBcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2Zvcm0pIHtcbiAgICAgIHRoaXMuX2Zvcm0uYWRkQnV0dG9uKHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB0aGlzLl9mb3JtPy5yZW1vdmVCdXR0b24odGhpcyk7XG4gIH1cblxufVxuIl19
|