@firestitch/form 12.4.7 → 12.4.9
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 +23 -23
- package/app/consts/error-messages.const.d.ts +19 -19
- package/app/directives/button.directive.d.ts +34 -34
- package/app/directives/form/form.directive.d.ts +122 -122
- package/app/directives/form-dialog-close.directive.d.ts +12 -12
- package/app/directives/index.d.ts +2 -2
- package/app/directives/submit-button.directive.d.ts +6 -6
- 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 +15 -15
- 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 +15 -15
- package/app/enums/confirm-result.d.ts +7 -7
- package/app/enums/form-status.d.ts +10 -10
- package/app/fs-form.module.d.ts +37 -37
- package/app/guards/form-deactivate.guard.d.ts +14 -14
- package/app/helpers/confirm-result-continue.d.ts +1 -1
- package/app/helpers/confirm-unsaved.d.ts +5 -5
- package/app/helpers/get-active-route.d.ts +2 -2
- 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/index.d.ts +4 -4
- package/app/interfaces/submit-event.d.ts +6 -6
- package/app/interfaces/submitted-event.d.ts +7 -7
- 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 +16 -16
- package/app/validators/validators.d.ts +12 -12
- package/bundles/firestitch-form.umd.js +2836 -2834
- package/bundles/firestitch-form.umd.js.map +1 -1
- package/esm2015/app/components/form-dialog-actions/form-dialog-actions.component.js +91 -91
- package/esm2015/app/consts/error-messages.const.js +19 -19
- package/esm2015/app/directives/button.directive.js +149 -149
- package/esm2015/app/directives/form/form.directive.js +696 -694
- package/esm2015/app/directives/form-dialog-close.directive.js +30 -30
- package/esm2015/app/directives/index.js +2 -2
- package/esm2015/app/directives/submit-button.directive.js +13 -13
- package/esm2015/app/directives/validators/compare.directive.js +48 -48
- package/esm2015/app/directives/validators/control.directive.js +264 -264
- 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 +40 -40
- 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 +42 -42
- package/esm2015/app/enums/confirm-result.js +8 -8
- package/esm2015/app/enums/form-status.js +11 -11
- package/esm2015/app/fs-form.module.js +180 -180
- package/esm2015/app/guards/form-deactivate.guard.js +44 -44
- package/esm2015/app/helpers/confirm-result-continue.js +4 -4
- package/esm2015/app/helpers/confirm-unsaved.js +71 -71
- package/esm2015/app/helpers/get-active-route.js +6 -6
- 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/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 +39 -39
- package/esm2015/app/validators/validators.js +96 -96
- package/esm2015/firestitch-form.js +4 -4
- package/esm2015/public_api.js +36 -36
- package/fesm2015/firestitch-form.js +2273 -2271
- 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 +34 -34
|
@@ -1,181 +1,181 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { FormsModule } from '@angular/forms';
|
|
4
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
-
import { MatDialogModule } from '@angular/material/dialog';
|
|
6
|
-
import { ErrorStateMatcher, ShowOnDirtyErrorStateMatcher } from '@angular/material/core';
|
|
7
|
-
import { FsFormDirective } from './directives/form/form.directive';
|
|
8
|
-
import { FsControlDirective } from './directives/validators/control.directive';
|
|
9
|
-
import { FsFormRequiredDirective } from './directives/validators/required.directive';
|
|
10
|
-
import { FsFormMinDirective } from './directives/validators/min.directive';
|
|
11
|
-
import { FsFormMaxDirective } from './directives/validators/max.directive';
|
|
12
|
-
import { FsFormMinLengthDirective } from './directives/validators/minlength.directive';
|
|
13
|
-
import { FsFormMaxLengthDirective } from './directives/validators/maxlength.directive';
|
|
14
|
-
import { FsFormEmailDirective } from './directives/validators/email.directive';
|
|
15
|
-
import { FsFormEmailsDirective } from './directives/validators/emails.directive';
|
|
16
|
-
import { FsFormPhoneDirective } from './directives/validators/phone.directive';
|
|
17
|
-
import { FsFormCompareDirective } from './directives/validators/compare.directive';
|
|
18
|
-
import { FsFormIntegerDirective } from './directives/validators/integer.directive';
|
|
19
|
-
import { FsFormNumericDirective } from './directives/validators/numeric.directive';
|
|
20
|
-
import { FsFormPatternDirective } from './directives/validators/pattern.directive';
|
|
21
|
-
import { FsFormFunctionDirective } from './directives/validators/function.directive';
|
|
22
|
-
import { FsFormGreaterDirective } from './directives/validators/greater.directive';
|
|
23
|
-
import { FsFormDateRangeDirective } from './directives/validators/daterange.directive';
|
|
24
|
-
import { FsFormLesserDirective } from './directives/validators/lesser.directive';
|
|
25
|
-
import { FsFormUrlDirective } from './directives/validators/url.directive';
|
|
26
|
-
import { FsFormDialogCloseDirective } from './directives/form-dialog-close.directive';
|
|
27
|
-
import { FsButtonDirective } from './directives/button.directive';
|
|
28
|
-
import { FsFormValidateDirective } from './directives/validators/validate.directive';
|
|
29
|
-
import { FsFormDialogActionsComponent } from './components/form-dialog-actions/form-dialog-actions.component';
|
|
30
|
-
import { FsFormNoFsValidatorsDirective } from './directives/validators/no-fs-validators.directive';
|
|
31
|
-
import { FsSubmitButtonDirective } from './directives';
|
|
32
|
-
import * as i0 from "@angular/core";
|
|
33
|
-
export class FsFormModule {
|
|
34
|
-
static forRoot() {
|
|
35
|
-
/**
|
|
36
|
-
* Hack: https://github.com/angular/components/issues/20097
|
|
37
|
-
*/
|
|
38
|
-
ErrorStateMatcher.prototype.isErrorState = (control, form) => {
|
|
39
|
-
return (control === null || control === void 0 ? void 0 : control.invalid) && (control === null || control === void 0 ? void 0 : control.touched) && (control === null || control === void 0 ? void 0 : control.dirty);
|
|
40
|
-
};
|
|
41
|
-
return {
|
|
42
|
-
ngModule: FsFormModule,
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
FsFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
47
|
-
FsFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsFormModule, declarations: [FsFormDirective,
|
|
48
|
-
FsControlDirective,
|
|
49
|
-
FsFormRequiredDirective,
|
|
50
|
-
FsFormMinDirective,
|
|
51
|
-
FsFormMaxDirective,
|
|
52
|
-
FsFormMinLengthDirective,
|
|
53
|
-
FsFormMaxLengthDirective,
|
|
54
|
-
FsFormEmailDirective,
|
|
55
|
-
FsFormEmailsDirective,
|
|
56
|
-
FsFormPhoneDirective,
|
|
57
|
-
FsFormCompareDirective,
|
|
58
|
-
FsFormIntegerDirective,
|
|
59
|
-
FsFormNumericDirective,
|
|
60
|
-
FsFormPatternDirective,
|
|
61
|
-
FsFormFunctionDirective,
|
|
62
|
-
FsFormDateRangeDirective,
|
|
63
|
-
FsFormGreaterDirective,
|
|
64
|
-
FsFormLesserDirective,
|
|
65
|
-
FsFormUrlDirective,
|
|
66
|
-
FsFormDialogCloseDirective,
|
|
67
|
-
FsFormValidateDirective,
|
|
68
|
-
FsFormDialogActionsComponent,
|
|
69
|
-
FsFormNoFsValidatorsDirective,
|
|
70
|
-
FsButtonDirective,
|
|
71
|
-
FsSubmitButtonDirective], imports: [CommonModule,
|
|
72
|
-
FormsModule,
|
|
73
|
-
MatButtonModule,
|
|
74
|
-
MatDialogModule], exports: [FsFormDirective,
|
|
75
|
-
FsControlDirective,
|
|
76
|
-
FsFormRequiredDirective,
|
|
77
|
-
FsFormMinDirective,
|
|
78
|
-
FsFormMaxDirective,
|
|
79
|
-
FsFormMinLengthDirective,
|
|
80
|
-
FsFormMaxLengthDirective,
|
|
81
|
-
FsFormEmailDirective,
|
|
82
|
-
FsFormEmailsDirective,
|
|
83
|
-
FsFormPhoneDirective,
|
|
84
|
-
FsFormCompareDirective,
|
|
85
|
-
FsFormIntegerDirective,
|
|
86
|
-
FsFormNumericDirective,
|
|
87
|
-
FsFormPatternDirective,
|
|
88
|
-
FsFormFunctionDirective,
|
|
89
|
-
FsFormDateRangeDirective,
|
|
90
|
-
FsFormGreaterDirective,
|
|
91
|
-
FsFormLesserDirective,
|
|
92
|
-
FsFormUrlDirective,
|
|
93
|
-
FsFormDialogCloseDirective,
|
|
94
|
-
FsFormValidateDirective,
|
|
95
|
-
FsFormDialogActionsComponent,
|
|
96
|
-
FsFormNoFsValidatorsDirective,
|
|
97
|
-
FsButtonDirective,
|
|
98
|
-
FsSubmitButtonDirective] });
|
|
99
|
-
FsFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsFormModule, providers: [
|
|
100
|
-
{
|
|
101
|
-
provide: ErrorStateMatcher,
|
|
102
|
-
useClass: ShowOnDirtyErrorStateMatcher,
|
|
103
|
-
},
|
|
104
|
-
], imports: [[
|
|
105
|
-
CommonModule,
|
|
106
|
-
FormsModule,
|
|
107
|
-
MatButtonModule,
|
|
108
|
-
MatDialogModule,
|
|
109
|
-
]] });
|
|
110
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsFormModule, decorators: [{
|
|
111
|
-
type: NgModule,
|
|
112
|
-
args: [{
|
|
113
|
-
imports: [
|
|
114
|
-
CommonModule,
|
|
115
|
-
FormsModule,
|
|
116
|
-
MatButtonModule,
|
|
117
|
-
MatDialogModule,
|
|
118
|
-
],
|
|
119
|
-
declarations: [
|
|
120
|
-
FsFormDirective,
|
|
121
|
-
FsControlDirective,
|
|
122
|
-
FsFormRequiredDirective,
|
|
123
|
-
FsFormMinDirective,
|
|
124
|
-
FsFormMaxDirective,
|
|
125
|
-
FsFormMinLengthDirective,
|
|
126
|
-
FsFormMaxLengthDirective,
|
|
127
|
-
FsFormEmailDirective,
|
|
128
|
-
FsFormEmailsDirective,
|
|
129
|
-
FsFormPhoneDirective,
|
|
130
|
-
FsFormCompareDirective,
|
|
131
|
-
FsFormIntegerDirective,
|
|
132
|
-
FsFormNumericDirective,
|
|
133
|
-
FsFormPatternDirective,
|
|
134
|
-
FsFormFunctionDirective,
|
|
135
|
-
FsFormDateRangeDirective,
|
|
136
|
-
FsFormGreaterDirective,
|
|
137
|
-
FsFormLesserDirective,
|
|
138
|
-
FsFormUrlDirective,
|
|
139
|
-
FsFormDialogCloseDirective,
|
|
140
|
-
FsFormValidateDirective,
|
|
141
|
-
FsFormDialogActionsComponent,
|
|
142
|
-
FsFormNoFsValidatorsDirective,
|
|
143
|
-
FsButtonDirective,
|
|
144
|
-
FsSubmitButtonDirective,
|
|
145
|
-
],
|
|
146
|
-
exports: [
|
|
147
|
-
FsFormDirective,
|
|
148
|
-
FsControlDirective,
|
|
149
|
-
FsFormRequiredDirective,
|
|
150
|
-
FsFormMinDirective,
|
|
151
|
-
FsFormMaxDirective,
|
|
152
|
-
FsFormMinLengthDirective,
|
|
153
|
-
FsFormMaxLengthDirective,
|
|
154
|
-
FsFormEmailDirective,
|
|
155
|
-
FsFormEmailsDirective,
|
|
156
|
-
FsFormPhoneDirective,
|
|
157
|
-
FsFormCompareDirective,
|
|
158
|
-
FsFormIntegerDirective,
|
|
159
|
-
FsFormNumericDirective,
|
|
160
|
-
FsFormPatternDirective,
|
|
161
|
-
FsFormFunctionDirective,
|
|
162
|
-
FsFormDateRangeDirective,
|
|
163
|
-
FsFormGreaterDirective,
|
|
164
|
-
FsFormLesserDirective,
|
|
165
|
-
FsFormUrlDirective,
|
|
166
|
-
FsFormDialogCloseDirective,
|
|
167
|
-
FsFormValidateDirective,
|
|
168
|
-
FsFormDialogActionsComponent,
|
|
169
|
-
FsFormNoFsValidatorsDirective,
|
|
170
|
-
FsButtonDirective,
|
|
171
|
-
FsSubmitButtonDirective,
|
|
172
|
-
],
|
|
173
|
-
providers: [
|
|
174
|
-
{
|
|
175
|
-
provide: ErrorStateMatcher,
|
|
176
|
-
useClass: ShowOnDirtyErrorStateMatcher,
|
|
177
|
-
},
|
|
178
|
-
],
|
|
179
|
-
}]
|
|
180
|
-
}] });
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
4
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
+
import { MatDialogModule } from '@angular/material/dialog';
|
|
6
|
+
import { ErrorStateMatcher, ShowOnDirtyErrorStateMatcher } from '@angular/material/core';
|
|
7
|
+
import { FsFormDirective } from './directives/form/form.directive';
|
|
8
|
+
import { FsControlDirective } from './directives/validators/control.directive';
|
|
9
|
+
import { FsFormRequiredDirective } from './directives/validators/required.directive';
|
|
10
|
+
import { FsFormMinDirective } from './directives/validators/min.directive';
|
|
11
|
+
import { FsFormMaxDirective } from './directives/validators/max.directive';
|
|
12
|
+
import { FsFormMinLengthDirective } from './directives/validators/minlength.directive';
|
|
13
|
+
import { FsFormMaxLengthDirective } from './directives/validators/maxlength.directive';
|
|
14
|
+
import { FsFormEmailDirective } from './directives/validators/email.directive';
|
|
15
|
+
import { FsFormEmailsDirective } from './directives/validators/emails.directive';
|
|
16
|
+
import { FsFormPhoneDirective } from './directives/validators/phone.directive';
|
|
17
|
+
import { FsFormCompareDirective } from './directives/validators/compare.directive';
|
|
18
|
+
import { FsFormIntegerDirective } from './directives/validators/integer.directive';
|
|
19
|
+
import { FsFormNumericDirective } from './directives/validators/numeric.directive';
|
|
20
|
+
import { FsFormPatternDirective } from './directives/validators/pattern.directive';
|
|
21
|
+
import { FsFormFunctionDirective } from './directives/validators/function.directive';
|
|
22
|
+
import { FsFormGreaterDirective } from './directives/validators/greater.directive';
|
|
23
|
+
import { FsFormDateRangeDirective } from './directives/validators/daterange.directive';
|
|
24
|
+
import { FsFormLesserDirective } from './directives/validators/lesser.directive';
|
|
25
|
+
import { FsFormUrlDirective } from './directives/validators/url.directive';
|
|
26
|
+
import { FsFormDialogCloseDirective } from './directives/form-dialog-close.directive';
|
|
27
|
+
import { FsButtonDirective } from './directives/button.directive';
|
|
28
|
+
import { FsFormValidateDirective } from './directives/validators/validate.directive';
|
|
29
|
+
import { FsFormDialogActionsComponent } from './components/form-dialog-actions/form-dialog-actions.component';
|
|
30
|
+
import { FsFormNoFsValidatorsDirective } from './directives/validators/no-fs-validators.directive';
|
|
31
|
+
import { FsSubmitButtonDirective } from './directives';
|
|
32
|
+
import * as i0 from "@angular/core";
|
|
33
|
+
export class FsFormModule {
|
|
34
|
+
static forRoot() {
|
|
35
|
+
/**
|
|
36
|
+
* Hack: https://github.com/angular/components/issues/20097
|
|
37
|
+
*/
|
|
38
|
+
ErrorStateMatcher.prototype.isErrorState = (control, form) => {
|
|
39
|
+
return (control === null || control === void 0 ? void 0 : control.invalid) && (control === null || control === void 0 ? void 0 : control.touched) && (control === null || control === void 0 ? void 0 : control.dirty);
|
|
40
|
+
};
|
|
41
|
+
return {
|
|
42
|
+
ngModule: FsFormModule,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
FsFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
47
|
+
FsFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsFormModule, declarations: [FsFormDirective,
|
|
48
|
+
FsControlDirective,
|
|
49
|
+
FsFormRequiredDirective,
|
|
50
|
+
FsFormMinDirective,
|
|
51
|
+
FsFormMaxDirective,
|
|
52
|
+
FsFormMinLengthDirective,
|
|
53
|
+
FsFormMaxLengthDirective,
|
|
54
|
+
FsFormEmailDirective,
|
|
55
|
+
FsFormEmailsDirective,
|
|
56
|
+
FsFormPhoneDirective,
|
|
57
|
+
FsFormCompareDirective,
|
|
58
|
+
FsFormIntegerDirective,
|
|
59
|
+
FsFormNumericDirective,
|
|
60
|
+
FsFormPatternDirective,
|
|
61
|
+
FsFormFunctionDirective,
|
|
62
|
+
FsFormDateRangeDirective,
|
|
63
|
+
FsFormGreaterDirective,
|
|
64
|
+
FsFormLesserDirective,
|
|
65
|
+
FsFormUrlDirective,
|
|
66
|
+
FsFormDialogCloseDirective,
|
|
67
|
+
FsFormValidateDirective,
|
|
68
|
+
FsFormDialogActionsComponent,
|
|
69
|
+
FsFormNoFsValidatorsDirective,
|
|
70
|
+
FsButtonDirective,
|
|
71
|
+
FsSubmitButtonDirective], imports: [CommonModule,
|
|
72
|
+
FormsModule,
|
|
73
|
+
MatButtonModule,
|
|
74
|
+
MatDialogModule], exports: [FsFormDirective,
|
|
75
|
+
FsControlDirective,
|
|
76
|
+
FsFormRequiredDirective,
|
|
77
|
+
FsFormMinDirective,
|
|
78
|
+
FsFormMaxDirective,
|
|
79
|
+
FsFormMinLengthDirective,
|
|
80
|
+
FsFormMaxLengthDirective,
|
|
81
|
+
FsFormEmailDirective,
|
|
82
|
+
FsFormEmailsDirective,
|
|
83
|
+
FsFormPhoneDirective,
|
|
84
|
+
FsFormCompareDirective,
|
|
85
|
+
FsFormIntegerDirective,
|
|
86
|
+
FsFormNumericDirective,
|
|
87
|
+
FsFormPatternDirective,
|
|
88
|
+
FsFormFunctionDirective,
|
|
89
|
+
FsFormDateRangeDirective,
|
|
90
|
+
FsFormGreaterDirective,
|
|
91
|
+
FsFormLesserDirective,
|
|
92
|
+
FsFormUrlDirective,
|
|
93
|
+
FsFormDialogCloseDirective,
|
|
94
|
+
FsFormValidateDirective,
|
|
95
|
+
FsFormDialogActionsComponent,
|
|
96
|
+
FsFormNoFsValidatorsDirective,
|
|
97
|
+
FsButtonDirective,
|
|
98
|
+
FsSubmitButtonDirective] });
|
|
99
|
+
FsFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsFormModule, providers: [
|
|
100
|
+
{
|
|
101
|
+
provide: ErrorStateMatcher,
|
|
102
|
+
useClass: ShowOnDirtyErrorStateMatcher,
|
|
103
|
+
},
|
|
104
|
+
], imports: [[
|
|
105
|
+
CommonModule,
|
|
106
|
+
FormsModule,
|
|
107
|
+
MatButtonModule,
|
|
108
|
+
MatDialogModule,
|
|
109
|
+
]] });
|
|
110
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsFormModule, decorators: [{
|
|
111
|
+
type: NgModule,
|
|
112
|
+
args: [{
|
|
113
|
+
imports: [
|
|
114
|
+
CommonModule,
|
|
115
|
+
FormsModule,
|
|
116
|
+
MatButtonModule,
|
|
117
|
+
MatDialogModule,
|
|
118
|
+
],
|
|
119
|
+
declarations: [
|
|
120
|
+
FsFormDirective,
|
|
121
|
+
FsControlDirective,
|
|
122
|
+
FsFormRequiredDirective,
|
|
123
|
+
FsFormMinDirective,
|
|
124
|
+
FsFormMaxDirective,
|
|
125
|
+
FsFormMinLengthDirective,
|
|
126
|
+
FsFormMaxLengthDirective,
|
|
127
|
+
FsFormEmailDirective,
|
|
128
|
+
FsFormEmailsDirective,
|
|
129
|
+
FsFormPhoneDirective,
|
|
130
|
+
FsFormCompareDirective,
|
|
131
|
+
FsFormIntegerDirective,
|
|
132
|
+
FsFormNumericDirective,
|
|
133
|
+
FsFormPatternDirective,
|
|
134
|
+
FsFormFunctionDirective,
|
|
135
|
+
FsFormDateRangeDirective,
|
|
136
|
+
FsFormGreaterDirective,
|
|
137
|
+
FsFormLesserDirective,
|
|
138
|
+
FsFormUrlDirective,
|
|
139
|
+
FsFormDialogCloseDirective,
|
|
140
|
+
FsFormValidateDirective,
|
|
141
|
+
FsFormDialogActionsComponent,
|
|
142
|
+
FsFormNoFsValidatorsDirective,
|
|
143
|
+
FsButtonDirective,
|
|
144
|
+
FsSubmitButtonDirective,
|
|
145
|
+
],
|
|
146
|
+
exports: [
|
|
147
|
+
FsFormDirective,
|
|
148
|
+
FsControlDirective,
|
|
149
|
+
FsFormRequiredDirective,
|
|
150
|
+
FsFormMinDirective,
|
|
151
|
+
FsFormMaxDirective,
|
|
152
|
+
FsFormMinLengthDirective,
|
|
153
|
+
FsFormMaxLengthDirective,
|
|
154
|
+
FsFormEmailDirective,
|
|
155
|
+
FsFormEmailsDirective,
|
|
156
|
+
FsFormPhoneDirective,
|
|
157
|
+
FsFormCompareDirective,
|
|
158
|
+
FsFormIntegerDirective,
|
|
159
|
+
FsFormNumericDirective,
|
|
160
|
+
FsFormPatternDirective,
|
|
161
|
+
FsFormFunctionDirective,
|
|
162
|
+
FsFormDateRangeDirective,
|
|
163
|
+
FsFormGreaterDirective,
|
|
164
|
+
FsFormLesserDirective,
|
|
165
|
+
FsFormUrlDirective,
|
|
166
|
+
FsFormDialogCloseDirective,
|
|
167
|
+
FsFormValidateDirective,
|
|
168
|
+
FsFormDialogActionsComponent,
|
|
169
|
+
FsFormNoFsValidatorsDirective,
|
|
170
|
+
FsButtonDirective,
|
|
171
|
+
FsSubmitButtonDirective,
|
|
172
|
+
],
|
|
173
|
+
providers: [
|
|
174
|
+
{
|
|
175
|
+
provide: ErrorStateMatcher,
|
|
176
|
+
useClass: ShowOnDirtyErrorStateMatcher,
|
|
177
|
+
},
|
|
178
|
+
],
|
|
179
|
+
}]
|
|
180
|
+
}] });
|
|
181
181
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtZm9ybS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2ZzLWZvcm0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQW1DLFdBQVcsRUFBVSxNQUFNLGdCQUFnQixDQUFDO0FBRXRGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLDRCQUE0QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFekYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25GLE9B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QUE0Qjt5QkFDdkM7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXBEaXJlY3RpdmUsIEZvcm1zTW9kdWxlLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgRXJyb3JTdGF0ZU1hdGNoZXIsIFNob3dPbkRpcnR5RXJyb3JTdGF0ZU1hdGNoZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcblxuaW1wb3J0IHsgRnNGb3JtRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Zvcm0vZm9ybS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNDb250cm9sRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvY29udHJvbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNGb3JtUmVxdWlyZWREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy9yZXF1aXJlZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNGb3JtTWluRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvbWluLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1NYXhEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy9tYXguZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzRm9ybU1pbkxlbmd0aERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy92YWxpZGF0b3JzL21pbmxlbmd0aC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNGb3JtTWF4TGVuZ3RoRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvbWF4bGVuZ3RoLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1FbWFpbERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy92YWxpZGF0b3JzL2VtYWlsLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1FbWFpbHNEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy9lbWFpbHMuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzRm9ybVBob25lRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvcGhvbmUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzRm9ybUNvbXBhcmVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy9jb21wYXJlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1JbnRlZ2VyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvaW50ZWdlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNGb3JtTnVtZXJpY0RpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy92YWxpZGF0b3JzL251bWVyaWMuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzRm9ybVBhdHRlcm5EaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy9wYXR0ZXJuLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1GdW5jdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy92YWxpZGF0b3JzL2Z1bmN0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1HcmVhdGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvZ3JlYXRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNGb3JtRGF0ZVJhbmdlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvZGF0ZXJhbmdlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGc0Zvcm1MZXNzZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy9sZXNzZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzRm9ybVVybERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy92YWxpZGF0b3JzL3VybC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNGb3JtRGlhbG9nQ2xvc2VEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZm9ybS1kaWFsb2ctY2xvc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2J1dHRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNGb3JtVmFsaWRhdGVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmFsaWRhdG9ycy92YWxpZGF0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNGb3JtRGlhbG9nQWN0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mb3JtLWRpYWxvZy1hY3Rpb25zL2Zvcm0tZGlhbG9nLWFjdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IEZzRm9ybU5vRnNWYWxpZGF0b3JzRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhbGlkYXRvcnMvbm8tZnMtdmFsaWRhdG9ycy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNTdWJtaXRCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG5cbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBGc0Zvcm1EaXJlY3RpdmUsXG4gICAgRnNDb250cm9sRGlyZWN0aXZlLFxuICAgIEZzRm9ybVJlcXVpcmVkRGlyZWN0aXZlLFxuICAgIEZzRm9ybU1pbkRpcmVjdGl2ZSxcbiAgICBGc0Zvcm1NYXhEaXJlY3RpdmUsXG4gICAgRnNGb3JtTWluTGVuZ3RoRGlyZWN0aXZlLFxuICAgIEZzRm9ybU1heExlbmd0aERpcmVjdGl2ZSxcbiAgICBGc0Zvcm1FbWFpbERpcmVjdGl2ZSxcbiAgICBGc0Zvcm1FbWFpbHNEaXJlY3RpdmUsXG4gICAgRnNGb3JtUGhvbmVEaXJlY3RpdmUsXG4gICAgRnNGb3JtQ29tcGFyZURpcmVjdGl2ZSxcbiAgICBGc0Zvcm1JbnRlZ2VyRGlyZWN0aXZlLFxuICAgIEZzRm9ybU51bWVyaWNEaXJlY3RpdmUsXG4gICAgRnNGb3JtUGF0dGVybkRpcmVjdGl2ZSxcbiAgICBGc0Zvcm1GdW5jdGlvbkRpcmVjdGl2ZSxcbiAgICBGc0Zvcm1EYXRlUmFuZ2VEaXJlY3RpdmUsXG4gICAgRnNGb3JtR3JlYXRlckRpcmVjdGl2ZSxcbiAgICBGc0Zvcm1MZXNzZXJEaXJlY3RpdmUsXG4gICAgRnNGb3JtVXJsRGlyZWN0aXZlLFxuICAgIEZzRm9ybURpYWxvZ0Nsb3NlRGlyZWN0aXZlLFxuICAgIEZzRm9ybVZhbGlkYXRlRGlyZWN0aXZlLFxuICAgIEZzRm9ybURpYWxvZ0FjdGlvbnNDb21wb25lbnQsXG4gICAgRnNGb3JtTm9Gc1ZhbGlkYXRvcnNEaXJlY3RpdmUsXG4gICAgRnNCdXR0b25EaXJlY3RpdmUsXG4gICAgRnNTdWJtaXRCdXR0b25EaXJlY3RpdmUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBGc0Zvcm1EaXJlY3RpdmUsXG4gICAgRnNDb250cm9sRGlyZWN0aXZlLFxuICAgIEZzRm9ybVJlcXVpcmVkRGlyZWN0aXZlLFxuICAgIEZzRm9ybU1pbkRpcmVjdGl2ZSxcbiAgICBGc0Zvcm1NYXhEaXJlY3RpdmUsXG4gICAgRnNGb3JtTWluTGVuZ3RoRGlyZWN0aXZlLFxuICAgIEZzRm9ybU1heExlbmd0aERpcmVjdGl2ZSxcbiAgICBGc0Zvcm1FbWFpbERpcmVjdGl2ZSxcbiAgICBGc0Zvcm1FbWFpbHNEaXJlY3RpdmUsXG4gICAgRnNGb3JtUGhvbmVEaXJlY3RpdmUsXG4gICAgRnNGb3JtQ29tcGFyZURpcmVjdGl2ZSxcbiAgICBGc0Zvcm1JbnRlZ2VyRGlyZWN0aXZlLFxuICAgIEZzRm9ybU51bWVyaWNEaXJlY3RpdmUsXG4gICAgRnNGb3JtUGF0dGVybkRpcmVjdGl2ZSxcbiAgICBGc0Zvcm1GdW5jdGlvbkRpcmVjdGl2ZSxcbiAgICBGc0Zvcm1EYXRlUmFuZ2VEaXJlY3RpdmUsXG4gICAgRnNGb3JtR3JlYXRlckRpcmVjdGl2ZSxcbiAgICBGc0Zvcm1MZXNzZXJEaXJlY3RpdmUsXG4gICAgRnNGb3JtVXJsRGlyZWN0aXZlLFxuICAgIEZzRm9ybURpYWxvZ0Nsb3NlRGlyZWN0aXZlLFxuICAgIEZzRm9ybVZhbGlkYXRlRGlyZWN0aXZlLFxuICAgIEZzRm9ybURpYWxvZ0FjdGlvbnNDb21wb25lbnQsXG4gICAgRnNGb3JtTm9Gc1ZhbGlkYXRvcnNEaXJlY3RpdmUsXG4gICAgRnNCdXR0b25EaXJlY3RpdmUsXG4gICAgRnNTdWJtaXRCdXR0b25EaXJlY3RpdmUsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVycm9yU3RhdGVNYXRjaGVyLFxuICAgICAgdXNlQ2xhc3M6IFNob3dPbkRpcnR5RXJyb3JTdGF0ZU1hdGNoZXIsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRnNGb3JtTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxGc0Zvcm1Nb2R1bGU+IHtcblxuICAgIC8qKlxuICAgICAqIEhhY2s6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvaXNzdWVzLzIwMDk3XG4gICAgICovXG4gICAgRXJyb3JTdGF0ZU1hdGNoZXIucHJvdG90eXBlLmlzRXJyb3JTdGF0ZSA9IChjb250cm9sOiBGb3JtQ29udHJvbCB8IG51bGwsIGZvcm06IEZvcm1Hcm91cERpcmVjdGl2ZSB8IE5nRm9ybSB8IG51bGwpOiBib29sZWFuID0+IHtcbiAgICAgIHJldHVybiBjb250cm9sPy5pbnZhbGlkICYmIGNvbnRyb2w/LnRvdWNoZWQgJiYgY29udHJvbD8uZGlydHk7XG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogRnNGb3JtTW9kdWxlLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { ActivatedRoute } from '@angular/router';
|
|
3
|
-
import { FsPrompt } from '@firestitch/prompt';
|
|
4
|
-
import { of } from 'rxjs';
|
|
5
|
-
import { map } from 'rxjs/operators';
|
|
6
|
-
import { confirmUnsaved } from '../helpers/confirm-unsaved';
|
|
7
|
-
import { confirmResultContinue } from '../helpers';
|
|
8
|
-
import { FsForm } from '../services/fsform.service';
|
|
9
|
-
import { getActiveRoute } from '../helpers/get-active-route';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@firestitch/prompt";
|
|
12
|
-
import * as i2 from "../services/fsform.service";
|
|
13
|
-
import * as i3 from "@angular/router";
|
|
14
|
-
export class FormDeactivateGuard {
|
|
15
|
-
constructor(_prompt, _fsForm, _route) {
|
|
16
|
-
this._prompt = _prompt;
|
|
17
|
-
this._fsForm = _fsForm;
|
|
18
|
-
this._route = _route;
|
|
19
|
-
}
|
|
20
|
-
canDeactivate() {
|
|
21
|
-
const route = getActiveRoute(this._route);
|
|
22
|
-
if (!route) {
|
|
23
|
-
console.error(`Can not find route for FormDeactivateGuard checks`);
|
|
24
|
-
return of(true);
|
|
25
|
-
}
|
|
26
|
-
const directives = this._fsForm.getFormDirectives(route.routeConfig.component);
|
|
27
|
-
if (!Array.isArray(directives) || directives.length === 0) {
|
|
28
|
-
console.error(`Can not find a valid FsFormDirective`);
|
|
29
|
-
return of(true);
|
|
30
|
-
}
|
|
31
|
-
return confirmUnsaved(directives, this._prompt)
|
|
32
|
-
.pipe(map((result) => {
|
|
33
|
-
return confirmResultContinue(result);
|
|
34
|
-
}));
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
FormDeactivateGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FormDeactivateGuard, deps: [{ token: i1.FsPrompt }, { token: i2.FsForm }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
38
|
-
FormDeactivateGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FormDeactivateGuard, providedIn: 'root' });
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FormDeactivateGuard, decorators: [{
|
|
40
|
-
type: Injectable,
|
|
41
|
-
args: [{
|
|
42
|
-
providedIn: 'root',
|
|
43
|
-
}]
|
|
44
|
-
}], ctorParameters: function () { return [{ type: i1.FsPrompt }, { type: i2.FsForm }, { type: i3.ActivatedRoute }]; } });
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { ActivatedRoute } from '@angular/router';
|
|
3
|
+
import { FsPrompt } from '@firestitch/prompt';
|
|
4
|
+
import { of } from 'rxjs';
|
|
5
|
+
import { map } from 'rxjs/operators';
|
|
6
|
+
import { confirmUnsaved } from '../helpers/confirm-unsaved';
|
|
7
|
+
import { confirmResultContinue } from '../helpers';
|
|
8
|
+
import { FsForm } from '../services/fsform.service';
|
|
9
|
+
import { getActiveRoute } from '../helpers/get-active-route';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@firestitch/prompt";
|
|
12
|
+
import * as i2 from "../services/fsform.service";
|
|
13
|
+
import * as i3 from "@angular/router";
|
|
14
|
+
export class FormDeactivateGuard {
|
|
15
|
+
constructor(_prompt, _fsForm, _route) {
|
|
16
|
+
this._prompt = _prompt;
|
|
17
|
+
this._fsForm = _fsForm;
|
|
18
|
+
this._route = _route;
|
|
19
|
+
}
|
|
20
|
+
canDeactivate() {
|
|
21
|
+
const route = getActiveRoute(this._route);
|
|
22
|
+
if (!route) {
|
|
23
|
+
console.error(`Can not find route for FormDeactivateGuard checks`);
|
|
24
|
+
return of(true);
|
|
25
|
+
}
|
|
26
|
+
const directives = this._fsForm.getFormDirectives(route.routeConfig.component);
|
|
27
|
+
if (!Array.isArray(directives) || directives.length === 0) {
|
|
28
|
+
console.error(`Can not find a valid FsFormDirective`);
|
|
29
|
+
return of(true);
|
|
30
|
+
}
|
|
31
|
+
return confirmUnsaved(directives, this._prompt)
|
|
32
|
+
.pipe(map((result) => {
|
|
33
|
+
return confirmResultContinue(result);
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
FormDeactivateGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FormDeactivateGuard, deps: [{ token: i1.FsPrompt }, { token: i2.FsForm }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
38
|
+
FormDeactivateGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FormDeactivateGuard, providedIn: 'root' });
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FormDeactivateGuard, decorators: [{
|
|
40
|
+
type: Injectable,
|
|
41
|
+
args: [{
|
|
42
|
+
providedIn: 'root',
|
|
43
|
+
}]
|
|
44
|
+
}], ctorParameters: function () { return [{ type: i1.FsPrompt }, { type: i2.FsForm }, { type: i3.ActivatedRoute }]; } });
|
|
45
45
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kZWFjdGl2YXRlLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9ndWFyZHMvZm9ybS1kZWFjdGl2YXRlLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFOUMsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7OztBQU03RCxNQUFNLE9BQU8sbUJBQW1CO0lBRTlCLFlBQ1UsT0FBaUIsRUFDakIsT0FBZSxFQUNmLE1BQXNCO1FBRnRCLFlBQU8sR0FBUCxPQUFPLENBQVU7UUFDakIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLFdBQU0sR0FBTixNQUFNLENBQWdCO0lBQzdCLENBQUM7SUFFSixhQUFhO1FBQ1gsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUxQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO1lBRW5FLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pCO1FBRUQsTUFBTSxVQUFVLEdBQXNCLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVsRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN6RCxPQUFPLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7WUFFdEQsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDakI7UUFFRCxPQUFPLGNBQWMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQzthQUM1QyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDYixPQUFPLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDOztpSEEvQlUsbUJBQW1CO3FIQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIENhbkRlYWN0aXZhdGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBGc1Byb21wdCB9IGZyb20gJ0BmaXJlc3RpdGNoL3Byb21wdCc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZzRm9ybURpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvZm9ybS9mb3JtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBjb25maXJtVW5zYXZlZCB9IGZyb20gJy4uL2hlbHBlcnMvY29uZmlybS11bnNhdmVkJztcbmltcG9ydCB7IGNvbmZpcm1SZXN1bHRDb250aW51ZSB9IGZyb20gJy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgRnNGb3JtIH0gZnJvbSAnLi4vc2VydmljZXMvZnNmb3JtLnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0QWN0aXZlUm91dGUgfSBmcm9tICcuLi9oZWxwZXJzL2dldC1hY3RpdmUtcm91dGUnO1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRGVhY3RpdmF0ZUd1YXJkIGltcGxlbWVudHMgQ2FuRGVhY3RpdmF0ZTxhbnk+IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9wcm9tcHQ6IEZzUHJvbXB0LFxuICAgIHByaXZhdGUgX2ZzRm9ybTogRnNGb3JtLFxuICAgIHByaXZhdGUgX3JvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgKSB7fVxuXG4gIGNhbkRlYWN0aXZhdGUoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgY29uc3Qgcm91dGUgPSBnZXRBY3RpdmVSb3V0ZSh0aGlzLl9yb3V0ZSk7XG5cbiAgICBpZiAoIXJvdXRlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBDYW4gbm90IGZpbmQgcm91dGUgZm9yIEZvcm1EZWFjdGl2YXRlR3VhcmQgY2hlY2tzYCk7XG5cbiAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICB9XG5cbiAgICBjb25zdCBkaXJlY3RpdmVzOiBGc0Zvcm1EaXJlY3RpdmVbXSA9IHRoaXMuX2ZzRm9ybS5nZXRGb3JtRGlyZWN0aXZlcyhyb3V0ZS5yb3V0ZUNvbmZpZy5jb21wb25lbnQpO1xuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGRpcmVjdGl2ZXMpIHx8IGRpcmVjdGl2ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBDYW4gbm90IGZpbmQgYSB2YWxpZCBGc0Zvcm1EaXJlY3RpdmVgKTtcblxuICAgICAgcmV0dXJuIG9mKHRydWUpO1xuICAgIH1cblxuICAgIHJldHVybiBjb25maXJtVW5zYXZlZChkaXJlY3RpdmVzLCB0aGlzLl9wcm9tcHQpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXN1bHQpID0+IHtcbiAgICAgICAgICByZXR1cm4gY29uZmlybVJlc3VsdENvbnRpbnVlKHJlc3VsdCk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ConfirmResult } from '../enums/confirm-result';
|
|
2
|
-
export function confirmResultContinue(result) {
|
|
3
|
-
return result === ConfirmResult.Discard || result === ConfirmResult.Save || result === ConfirmResult.Pristine;
|
|
4
|
-
}
|
|
1
|
+
import { ConfirmResult } from '../enums/confirm-result';
|
|
2
|
+
export function confirmResultContinue(result) {
|
|
3
|
+
return result === ConfirmResult.Discard || result === ConfirmResult.Save || result === ConfirmResult.Pristine;
|
|
4
|
+
}
|
|
5
5
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1yZXN1bHQtY29udGludWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2hlbHBlcnMvY29uZmlybS1yZXN1bHQtY29udGludWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxNQUFNO0lBQzFDLE9BQU8sTUFBTSxLQUFLLGFBQWEsQ0FBQyxPQUFPLElBQUksTUFBTSxLQUFLLGFBQWEsQ0FBQyxJQUFJLElBQUksTUFBTSxLQUFLLGFBQWEsQ0FBQyxRQUFRLENBQUM7QUFDaEgsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpcm1SZXN1bHQgfSBmcm9tICcuLi9lbnVtcy9jb25maXJtLXJlc3VsdCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25maXJtUmVzdWx0Q29udGludWUocmVzdWx0KSB7XG4gIHJldHVybiByZXN1bHQgPT09IENvbmZpcm1SZXN1bHQuRGlzY2FyZCB8fCByZXN1bHQgPT09IENvbmZpcm1SZXN1bHQuU2F2ZSB8fCByZXN1bHQgPT09IENvbmZpcm1SZXN1bHQuUHJpc3RpbmU7XG59XG4iXX0=
|