@falcon-ng/core 0.0.20
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/esm2022/falcon-ng-core.mjs +5 -0
- package/esm2022/lib/falcon-core/angularmaterial.module.mjs +189 -0
- package/esm2022/lib/falcon-core/component/button/button.component.mjs +47 -0
- package/esm2022/lib/falcon-core/component/card/card.component.mjs +31 -0
- package/esm2022/lib/falcon-core/component/textarea/textarea.component.mjs +28 -0
- package/esm2022/lib/falcon-core/component/textbox/textbox.component.mjs +33 -0
- package/esm2022/lib/falcon-core/component/validation-error/error-message.pipe.mjs +25 -0
- package/esm2022/lib/falcon-core/component/validation-error/error-state-matcher.service.mjs +16 -0
- package/esm2022/lib/falcon-core/component/validation-error/validation-error-message-token.mjs +19 -0
- package/esm2022/lib/falcon-core/component/validation-error/validation-error.component.mjs +42 -0
- package/esm2022/lib/falcon-core/component/validation-error/validation-message-container.directive.mjs +18 -0
- package/esm2022/lib/falcon-core/component/validation-error/validation-message.directive.mjs +53 -0
- package/esm2022/lib/falcon-core/component-resolver.mjs +39 -0
- package/esm2022/lib/falcon-core/control-builder/base-control-builder.mjs +41 -0
- package/esm2022/lib/falcon-core/control-builder/control-builder.component.mjs +31 -0
- package/esm2022/lib/falcon-core/control-builder/control-data-builder.mjs +3 -0
- package/esm2022/lib/falcon-core/control-builder/control-injection.pipe.mjs +29 -0
- package/esm2022/lib/falcon-core/control-type/AutoComplete.mjs +8 -0
- package/esm2022/lib/falcon-core/control-type/Button.mjs +8 -0
- package/esm2022/lib/falcon-core/control-type/ButtonToggle.mjs +8 -0
- package/esm2022/lib/falcon-core/control-type/CheckBox.mjs +8 -0
- package/esm2022/lib/falcon-core/control-type/Chip.mjs +8 -0
- package/esm2022/lib/falcon-core/control-type/DatePicker.mjs +8 -0
- package/esm2022/lib/falcon-core/control-type/Divider.mjs +8 -0
- package/esm2022/lib/falcon-core/control-type/Editor.mjs +8 -0
- package/esm2022/lib/falcon-core/control-type/Radio.mjs +8 -0
- package/esm2022/lib/falcon-core/control-type/RichTextEditor.mjs +8 -0
- package/esm2022/lib/falcon-core/control-type/Select.mjs +8 -0
- package/esm2022/lib/falcon-core/control-type/SlideToggle.mjs +8 -0
- package/esm2022/lib/falcon-core/control-type/Slider.mjs +8 -0
- package/esm2022/lib/falcon-core/control-type/Textarea.mjs +8 -0
- package/esm2022/lib/falcon-core/control-type/Textbox.mjs +8 -0
- package/esm2022/lib/falcon-core/falcon-core.module.mjs +41 -0
- package/esm2022/lib/falcon-core/model/base-control.mjs +50 -0
- package/esm2022/lib/falcon-core/model/enum.mjs +2 -0
- package/esm2022/lib/falcon-core/model/interface.mjs +2 -0
- package/esm2022/lib/falcon-core/model/ivalidator.mjs +2 -0
- package/esm2022/public-api.mjs +28 -0
- package/fesm2022/falcon-ng-core-falcon-ng-core-COOgRH2D.mjs +742 -0
- package/fesm2022/falcon-ng-core-falcon-ng-core-COOgRH2D.mjs.map +1 -0
- package/fesm2022/falcon-ng-core-textarea.component-BBAN4mNj.mjs +73 -0
- package/fesm2022/falcon-ng-core-textarea.component-BBAN4mNj.mjs.map +1 -0
- package/fesm2022/falcon-ng-core-textbox.component-CgwvtUHj.mjs +77 -0
- package/fesm2022/falcon-ng-core-textbox.component-CgwvtUHj.mjs.map +1 -0
- package/fesm2022/falcon-ng-core.mjs +50 -0
- package/fesm2022/falcon-ng-core.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/falcon-core/angularmaterial.module.d.ts +49 -0
- package/lib/falcon-core/component/button/button.component.d.ts +14 -0
- package/lib/falcon-core/component/card/card.component.d.ts +5 -0
- package/lib/falcon-core/component/textarea/textarea.component.d.ts +6 -0
- package/lib/falcon-core/component/textbox/textbox.component.d.ts +6 -0
- package/lib/falcon-core/component/validation-error/error-message.pipe.d.ts +8 -0
- package/lib/falcon-core/component/validation-error/error-state-matcher.service.d.ts +8 -0
- package/lib/falcon-core/component/validation-error/validation-error-message-token.d.ts +7 -0
- package/lib/falcon-core/component/validation-error/validation-error.component.d.ts +9 -0
- package/lib/falcon-core/component/validation-error/validation-message-container.directive.d.ts +7 -0
- package/lib/falcon-core/component/validation-error/validation-message.directive.d.ts +18 -0
- package/lib/falcon-core/component-resolver.d.ts +14 -0
- package/lib/falcon-core/control-builder/base-control-builder.d.ts +18 -0
- package/lib/falcon-core/control-builder/control-builder.component.d.ts +13 -0
- package/lib/falcon-core/control-builder/control-data-builder.d.ts +7 -0
- package/lib/falcon-core/control-builder/control-injection.pipe.d.ts +9 -0
- package/lib/falcon-core/control-type/AutoComplete.d.ts +5 -0
- package/lib/falcon-core/control-type/Button.d.ts +5 -0
- package/lib/falcon-core/control-type/ButtonToggle.d.ts +5 -0
- package/lib/falcon-core/control-type/CheckBox.d.ts +5 -0
- package/lib/falcon-core/control-type/Chip.d.ts +5 -0
- package/lib/falcon-core/control-type/DatePicker.d.ts +5 -0
- package/lib/falcon-core/control-type/Divider.d.ts +5 -0
- package/lib/falcon-core/control-type/Editor.d.ts +5 -0
- package/lib/falcon-core/control-type/Radio.d.ts +5 -0
- package/lib/falcon-core/control-type/RichTextEditor.d.ts +5 -0
- package/lib/falcon-core/control-type/Select.d.ts +5 -0
- package/lib/falcon-core/control-type/SlideToggle.d.ts +5 -0
- package/lib/falcon-core/control-type/Slider.d.ts +5 -0
- package/lib/falcon-core/control-type/Textarea.d.ts +5 -0
- package/lib/falcon-core/control-type/Textbox.d.ts +5 -0
- package/lib/falcon-core/falcon-core.module.d.ts +12 -0
- package/lib/falcon-core/model/base-control.d.ts +83 -0
- package/lib/falcon-core/model/enum.d.ts +144 -0
- package/lib/falcon-core/model/interface.d.ts +299 -0
- package/lib/falcon-core/model/ivalidator.d.ts +19 -0
- package/package.json +25 -0
- package/public-api.d.ts +24 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFsY29uLW5nLWNvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mYWxjb24tbmcvY29yZS9zcmMvZmFsY29uLW5nLWNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { ScrollingModule } from "@angular/cdk/scrolling";
|
|
3
|
+
import { PortalModule } from "@angular/cdk/portal";
|
|
4
|
+
import { OverlayModule } from "@angular/cdk/overlay";
|
|
5
|
+
import { MatTreeModule } from "@angular/material/tree";
|
|
6
|
+
import { MatTooltipModule } from "@angular/material/tooltip";
|
|
7
|
+
import { MatToolbarModule } from "@angular/material/toolbar";
|
|
8
|
+
import { MatTabsModule } from "@angular/material/tabs";
|
|
9
|
+
import { MatTableModule } from "@angular/material/table";
|
|
10
|
+
import { MatSortModule } from "@angular/material/sort";
|
|
11
|
+
import { MatSnackBarModule } from "@angular/material/snack-bar";
|
|
12
|
+
import { MatSlideToggleModule } from "@angular/material/slide-toggle";
|
|
13
|
+
import { MatSliderModule } from "@angular/material/slider";
|
|
14
|
+
import { MatSidenavModule } from "@angular/material/sidenav";
|
|
15
|
+
import { MatSelectModule } from "@angular/material/select";
|
|
16
|
+
import { MatNativeDateModule, MatRippleModule } from "@angular/material/core";
|
|
17
|
+
import { MatRadioModule } from "@angular/material/radio";
|
|
18
|
+
import { MatProgressSpinnerModule } from "@angular/material/progress-spinner";
|
|
19
|
+
import { MatProgressBarModule } from "@angular/material/progress-bar";
|
|
20
|
+
import { MatPaginatorModule } from "@angular/material/paginator";
|
|
21
|
+
import { MatMenuModule } from "@angular/material/menu";
|
|
22
|
+
import { MatListModule } from "@angular/material/list";
|
|
23
|
+
import { MatInputModule } from "@angular/material/input";
|
|
24
|
+
import { MatIconModule } from "@angular/material/icon";
|
|
25
|
+
import { MatGridListModule } from "@angular/material/grid-list";
|
|
26
|
+
import { MatExpansionModule } from "@angular/material/expansion";
|
|
27
|
+
import { MatDividerModule } from "@angular/material/divider";
|
|
28
|
+
import { MatDialogModule } from "@angular/material/dialog";
|
|
29
|
+
import { MatDatepickerModule } from "@angular/material/datepicker";
|
|
30
|
+
import { MatStepperModule } from "@angular/material/stepper";
|
|
31
|
+
import { MatChipsModule } from "@angular/material/chips";
|
|
32
|
+
import { MatCheckboxModule } from "@angular/material/checkbox";
|
|
33
|
+
import { MatCardModule } from "@angular/material/card";
|
|
34
|
+
import { MatButtonToggleModule } from "@angular/material/button-toggle";
|
|
35
|
+
import { MatButtonModule } from "@angular/material/button";
|
|
36
|
+
import { MatBottomSheetModule } from "@angular/material/bottom-sheet";
|
|
37
|
+
import { MatBadgeModule } from "@angular/material/badge";
|
|
38
|
+
import { MatAutocompleteModule } from "@angular/material/autocomplete";
|
|
39
|
+
import { DragDropModule } from "@angular/cdk/drag-drop";
|
|
40
|
+
import { CdkTreeModule } from "@angular/cdk/tree";
|
|
41
|
+
import { CdkTableModule } from "@angular/cdk/table";
|
|
42
|
+
import { CdkStepperModule } from "@angular/cdk/stepper";
|
|
43
|
+
import { ClipboardModule } from "@angular/cdk/clipboard";
|
|
44
|
+
import { A11yModule } from "@angular/cdk/a11y";
|
|
45
|
+
import * as i0 from "@angular/core";
|
|
46
|
+
export class AngularmaterialModule {
|
|
47
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AngularmaterialModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
48
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: AngularmaterialModule, exports: [A11yModule,
|
|
49
|
+
ClipboardModule,
|
|
50
|
+
CdkStepperModule,
|
|
51
|
+
CdkTableModule,
|
|
52
|
+
CdkTreeModule,
|
|
53
|
+
DragDropModule,
|
|
54
|
+
MatAutocompleteModule,
|
|
55
|
+
MatBadgeModule,
|
|
56
|
+
MatBottomSheetModule,
|
|
57
|
+
MatButtonModule,
|
|
58
|
+
MatButtonToggleModule,
|
|
59
|
+
MatCardModule,
|
|
60
|
+
MatCheckboxModule,
|
|
61
|
+
MatChipsModule,
|
|
62
|
+
MatStepperModule,
|
|
63
|
+
MatDatepickerModule,
|
|
64
|
+
MatDialogModule,
|
|
65
|
+
MatDividerModule,
|
|
66
|
+
MatExpansionModule,
|
|
67
|
+
MatGridListModule,
|
|
68
|
+
MatIconModule,
|
|
69
|
+
MatInputModule,
|
|
70
|
+
MatListModule,
|
|
71
|
+
MatMenuModule,
|
|
72
|
+
MatNativeDateModule,
|
|
73
|
+
MatPaginatorModule,
|
|
74
|
+
MatProgressBarModule,
|
|
75
|
+
MatProgressSpinnerModule,
|
|
76
|
+
MatRadioModule,
|
|
77
|
+
MatRippleModule,
|
|
78
|
+
MatSelectModule,
|
|
79
|
+
MatSidenavModule,
|
|
80
|
+
MatSliderModule,
|
|
81
|
+
MatSlideToggleModule,
|
|
82
|
+
MatSnackBarModule,
|
|
83
|
+
MatSortModule,
|
|
84
|
+
MatTableModule,
|
|
85
|
+
MatTabsModule,
|
|
86
|
+
MatToolbarModule,
|
|
87
|
+
MatTooltipModule,
|
|
88
|
+
MatTreeModule,
|
|
89
|
+
OverlayModule,
|
|
90
|
+
PortalModule,
|
|
91
|
+
ScrollingModule] }); }
|
|
92
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AngularmaterialModule, imports: [A11yModule,
|
|
93
|
+
ClipboardModule,
|
|
94
|
+
CdkStepperModule,
|
|
95
|
+
CdkTableModule,
|
|
96
|
+
CdkTreeModule,
|
|
97
|
+
DragDropModule,
|
|
98
|
+
MatAutocompleteModule,
|
|
99
|
+
MatBadgeModule,
|
|
100
|
+
MatBottomSheetModule,
|
|
101
|
+
MatButtonModule,
|
|
102
|
+
MatButtonToggleModule,
|
|
103
|
+
MatCardModule,
|
|
104
|
+
MatCheckboxModule,
|
|
105
|
+
MatChipsModule,
|
|
106
|
+
MatStepperModule,
|
|
107
|
+
MatDatepickerModule,
|
|
108
|
+
MatDialogModule,
|
|
109
|
+
MatDividerModule,
|
|
110
|
+
MatExpansionModule,
|
|
111
|
+
MatGridListModule,
|
|
112
|
+
MatIconModule,
|
|
113
|
+
MatInputModule,
|
|
114
|
+
MatListModule,
|
|
115
|
+
MatMenuModule,
|
|
116
|
+
MatNativeDateModule,
|
|
117
|
+
MatPaginatorModule,
|
|
118
|
+
MatProgressBarModule,
|
|
119
|
+
MatProgressSpinnerModule,
|
|
120
|
+
MatRadioModule,
|
|
121
|
+
MatRippleModule,
|
|
122
|
+
MatSelectModule,
|
|
123
|
+
MatSidenavModule,
|
|
124
|
+
MatSliderModule,
|
|
125
|
+
MatSlideToggleModule,
|
|
126
|
+
MatSnackBarModule,
|
|
127
|
+
MatSortModule,
|
|
128
|
+
MatTableModule,
|
|
129
|
+
MatTabsModule,
|
|
130
|
+
MatToolbarModule,
|
|
131
|
+
MatTooltipModule,
|
|
132
|
+
MatTreeModule,
|
|
133
|
+
OverlayModule,
|
|
134
|
+
PortalModule,
|
|
135
|
+
ScrollingModule] }); }
|
|
136
|
+
}
|
|
137
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AngularmaterialModule, decorators: [{
|
|
138
|
+
type: NgModule,
|
|
139
|
+
args: [{
|
|
140
|
+
declarations: [],
|
|
141
|
+
exports: [
|
|
142
|
+
A11yModule,
|
|
143
|
+
ClipboardModule,
|
|
144
|
+
CdkStepperModule,
|
|
145
|
+
CdkTableModule,
|
|
146
|
+
CdkTreeModule,
|
|
147
|
+
DragDropModule,
|
|
148
|
+
MatAutocompleteModule,
|
|
149
|
+
MatBadgeModule,
|
|
150
|
+
MatBottomSheetModule,
|
|
151
|
+
MatButtonModule,
|
|
152
|
+
MatButtonToggleModule,
|
|
153
|
+
MatCardModule,
|
|
154
|
+
MatCheckboxModule,
|
|
155
|
+
MatChipsModule,
|
|
156
|
+
MatStepperModule,
|
|
157
|
+
MatDatepickerModule,
|
|
158
|
+
MatDialogModule,
|
|
159
|
+
MatDividerModule,
|
|
160
|
+
MatExpansionModule,
|
|
161
|
+
MatGridListModule,
|
|
162
|
+
MatIconModule,
|
|
163
|
+
MatInputModule,
|
|
164
|
+
MatListModule,
|
|
165
|
+
MatMenuModule,
|
|
166
|
+
MatNativeDateModule,
|
|
167
|
+
MatPaginatorModule,
|
|
168
|
+
MatProgressBarModule,
|
|
169
|
+
MatProgressSpinnerModule,
|
|
170
|
+
MatRadioModule,
|
|
171
|
+
MatRippleModule,
|
|
172
|
+
MatSelectModule,
|
|
173
|
+
MatSidenavModule,
|
|
174
|
+
MatSliderModule,
|
|
175
|
+
MatSlideToggleModule,
|
|
176
|
+
MatSnackBarModule,
|
|
177
|
+
MatSortModule,
|
|
178
|
+
MatTableModule,
|
|
179
|
+
MatTabsModule,
|
|
180
|
+
MatToolbarModule,
|
|
181
|
+
MatTooltipModule,
|
|
182
|
+
MatTreeModule,
|
|
183
|
+
OverlayModule,
|
|
184
|
+
PortalModule,
|
|
185
|
+
ScrollingModule
|
|
186
|
+
]
|
|
187
|
+
}]
|
|
188
|
+
}] });
|
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhcm1hdGVyaWFsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1uZy9jb3JlL3NyYy9saWIvZmFsY29uLWNvcmUvYW5ndWxhcm1hdGVyaWFsLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxlQUFlLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUM1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cEIsd0JBQXdCO3dCQUN4QixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQixpQkFBaUI7d0JBQ2pCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixlQUFlO3FCQUNoQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtTY3JvbGxpbmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jZGsvc2Nyb2xsaW5nXCI7XG5pbXBvcnQge1BvcnRhbE1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcbmltcG9ydCB7T3ZlcmxheU1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQge01hdFRyZWVNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90cmVlXCI7XG5pbXBvcnQge01hdFRvb2x0aXBNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwXCI7XG5pbXBvcnQge01hdFRvb2xiYXJNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90b29sYmFyXCI7XG5pbXBvcnQge01hdFRhYnNNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90YWJzXCI7XG5pbXBvcnQge01hdFRhYmxlTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGVcIjtcbmltcG9ydCB7TWF0U29ydE1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NvcnRcIjtcbmltcG9ydCB7TWF0U25hY2tCYXJNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXJcIjtcbmltcG9ydCB7TWF0U2xpZGVUb2dnbGVNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGVcIjtcbmltcG9ydCB7TWF0U2xpZGVyTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGVyXCI7XG5pbXBvcnQge01hdFNpZGVuYXZNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2XCI7XG5pbXBvcnQge01hdFNlbGVjdE1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NlbGVjdFwiO1xuaW1wb3J0IHtNYXROYXRpdmVEYXRlTW9kdWxlLCBNYXRSaXBwbGVNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jb3JlXCI7XG5pbXBvcnQge01hdFJhZGlvTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW9cIjtcbmltcG9ydCB7TWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lclwiO1xuaW1wb3J0IHtNYXRQcm9ncmVzc0Jhck1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhclwiO1xuaW1wb3J0IHtNYXRQYWdpbmF0b3JNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3JcIjtcbmltcG9ydCB7TWF0TWVudU1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL21lbnVcIjtcbmltcG9ydCB7TWF0TGlzdE1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2xpc3RcIjtcbmltcG9ydCB7TWF0SW5wdXRNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pbnB1dFwiO1xuaW1wb3J0IHtNYXRJY29uTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xuaW1wb3J0IHtNYXRHcmlkTGlzdE1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2dyaWQtbGlzdFwiO1xuaW1wb3J0IHtNYXRFeHBhbnNpb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb25cIjtcbmltcG9ydCB7TWF0RGl2aWRlck1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXJcIjtcbmltcG9ydCB7TWF0RGlhbG9nTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5pbXBvcnQge01hdERhdGVwaWNrZXJNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyXCI7XG5pbXBvcnQge01hdFN0ZXBwZXJNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zdGVwcGVyXCI7XG5pbXBvcnQge01hdENoaXBzTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHNcIjtcbmltcG9ydCB7TWF0Q2hlY2tib3hNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveFwiO1xuaW1wb3J0IHtNYXRDYXJkTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZFwiO1xuaW1wb3J0IHtNYXRCdXR0b25Ub2dnbGVNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlXCI7XG5pbXBvcnQge01hdEJ1dHRvbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2J1dHRvblwiO1xuaW1wb3J0IHtNYXRCb3R0b21TaGVldE1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2JvdHRvbS1zaGVldFwiO1xuaW1wb3J0IHtNYXRCYWRnZU1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2JhZGdlXCI7XG5pbXBvcnQge01hdEF1dG9jb21wbGV0ZU1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZVwiO1xuaW1wb3J0IHtEcmFnRHJvcE1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2Nkay9kcmFnLWRyb3BcIjtcbmltcG9ydCB7Q2RrVHJlZU1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2Nkay90cmVlXCI7XG5pbXBvcnQge0Nka1RhYmxlTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3RhYmxlXCI7XG5pbXBvcnQge0Nka1N0ZXBwZXJNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jZGsvc3RlcHBlclwiO1xuaW1wb3J0IHtDbGlwYm9hcmRNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jZGsvY2xpcGJvYXJkXCI7XG5pbXBvcnQge0ExMXlNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jZGsvYTExeVwiO1xuXG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgZXhwb3J0czogW1xuICAgIEExMXlNb2R1bGUsXG4gICAgQ2xpcGJvYXJkTW9kdWxlLFxuICAgIENka1N0ZXBwZXJNb2R1bGUsXG4gICAgQ2RrVGFibGVNb2R1bGUsXG4gICAgQ2RrVHJlZU1vZHVsZSxcbiAgICBEcmFnRHJvcE1vZHVsZSxcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgTWF0QmFkZ2VNb2R1bGUsXG4gICAgTWF0Qm90dG9tU2hlZXRNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSxcbiAgICBNYXRDYXJkTW9kdWxlLFxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxuICAgIE1hdENoaXBzTW9kdWxlLFxuICAgIE1hdFN0ZXBwZXJNb2R1bGUsXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBNYXREaWFsb2dNb2R1bGUsXG4gICAgTWF0RGl2aWRlck1vZHVsZSxcbiAgICBNYXRFeHBhbnNpb25Nb2R1bGUsXG4gICAgTWF0R3JpZExpc3RNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRMaXN0TW9kdWxlLFxuICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgTWF0TmF0aXZlRGF0ZU1vZHVsZSxcbiAgICBNYXRQYWdpbmF0b3JNb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgIE1hdFJhZGlvTW9kdWxlLFxuICAgIE1hdFJpcHBsZU1vZHVsZSxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgTWF0U2lkZW5hdk1vZHVsZSxcbiAgICBNYXRTbGlkZXJNb2R1bGUsXG4gICAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXG4gICAgTWF0U25hY2tCYXJNb2R1bGUsXG4gICAgTWF0U29ydE1vZHVsZSxcbiAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICBNYXRUYWJzTW9kdWxlLFxuICAgIE1hdFRvb2xiYXJNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNYXRUcmVlTW9kdWxlLFxuICAgIE92ZXJsYXlNb2R1bGUsXG4gICAgUG9ydGFsTW9kdWxlLFxuICAgIFNjcm9sbGluZ01vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJtYXRlcmlhbE1vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/material/button";
|
|
4
|
+
export class ButtonComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.type = 'submit';
|
|
7
|
+
this.color = 'primary';
|
|
8
|
+
this.disabled = false;
|
|
9
|
+
this.click = new EventEmitter();
|
|
10
|
+
}
|
|
11
|
+
ngOnDestroy() {
|
|
12
|
+
this.click.complete();
|
|
13
|
+
}
|
|
14
|
+
onClick(event) {
|
|
15
|
+
if (['reset', 'submit'].includes(this.type)) {
|
|
16
|
+
this.click.emit(event);
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: ButtonComponent, selector: "falcon-button", inputs: { label: "label", type: "type", color: "color", disabled: "disabled" }, outputs: { click: "click" }, ngImport: i0, template: `
|
|
23
|
+
<button mat-flat-button [color]="color" [type]="type" (click)="onClick($event)" [disabled]="disabled">{{ label }}</button>
|
|
24
|
+
`, isInline: true, dependencies: [{ kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] }); }
|
|
25
|
+
}
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
27
|
+
type: Component,
|
|
28
|
+
args: [{
|
|
29
|
+
selector: 'falcon-button',
|
|
30
|
+
template: `
|
|
31
|
+
<button mat-flat-button [color]="color" [type]="type" (click)="onClick($event)" [disabled]="disabled">{{ label }}</button>
|
|
32
|
+
`,
|
|
33
|
+
}]
|
|
34
|
+
}], propDecorators: { label: [{
|
|
35
|
+
type: Input,
|
|
36
|
+
args: [{ required: true }]
|
|
37
|
+
}], type: [{
|
|
38
|
+
type: Input,
|
|
39
|
+
args: [{ required: true }]
|
|
40
|
+
}], color: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}], disabled: [{
|
|
43
|
+
type: Input
|
|
44
|
+
}], click: [{
|
|
45
|
+
type: Output
|
|
46
|
+
}] } });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1uZy9jb3JlL3NyYy9saWIvZmFsY29uLWNvcmUvY29tcG9uZW50L2J1dHRvbi9idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBb0IsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFTekYsTUFBTSxPQUFPLGVBQWU7SUFONUI7UUFRNkIsU0FBSSxHQUFrQyxRQUFRLENBQUM7UUFDakUsVUFBSyxHQUFpQixTQUFTLENBQUM7UUFDaEMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUN6QixVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztLQVlsRDtJQVZDLFdBQVc7UUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFDRCxPQUFPLENBQUMsS0FBaUI7UUFDdkIsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzhHQWhCVSxlQUFlO2tHQUFmLGVBQWUsa0tBSmhCOztHQUVUOzsyRkFFVSxlQUFlO2tCQU4zQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixRQUFRLEVBQUU7O0dBRVQ7aUJBQ0Y7OEJBRTRCLEtBQUs7c0JBQS9CLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNFLElBQUk7c0JBQTlCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNoQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIGlucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZhbGNvbi1idXR0b24nLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIFtjb2xvcl09XCJjb2xvclwiIFt0eXBlXT1cInR5cGVcIiAoY2xpY2spPVwib25DbGljaygkZXZlbnQpXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+e3sgbGFiZWwgfX08L2J1dHRvbj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgbGFiZWwhOiBzdHJpbmc7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHR5cGU6ICdzdWJtaXQnIHwgJ3Jlc2V0JyB8ICdidXR0b24nID0gJ3N1Ym1pdCc7XG4gIEBJbnB1dCgpIGNvbG9yOiBUaGVtZVBhbGV0dGUgPSAncHJpbWFyeSc7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBjbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsaWNrLmNvbXBsZXRlKCk7XG4gIH1cbiAgb25DbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmIChbJ3Jlc2V0JywgJ3N1Ym1pdCddLmluY2x1ZGVzKHRoaXMudHlwZSkpIHtcbiAgICAgIHRoaXMuY2xpY2suZW1pdChldmVudCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/material/card";
|
|
4
|
+
export class CardComponent {
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: CardComponent, selector: "falcon-card", host: { properties: { "style.--mdc-elevated-card-container-shape": "\"10px\"", "style.--mdc-elevated-card-container-elevation": "\"0px 0px 0px 0px rgba(0, 0, 0, 0.12), 0px 0px 0px 1px rgba(0, 0, 0, 0.12), 0px 0px 1px 1px rgba(0.12, 0.12, 0.12, 0.12)\"" } }, ngImport: i0, template: `
|
|
7
|
+
<mat-card>
|
|
8
|
+
<mat-card-content>
|
|
9
|
+
<ng-content></ng-content>
|
|
10
|
+
</mat-card-content>
|
|
11
|
+
</mat-card>
|
|
12
|
+
`, isInline: true, dependencies: [{ kind: "component", type: i1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i1.MatCardContent, selector: "mat-card-content" }] }); }
|
|
13
|
+
}
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CardComponent, decorators: [{
|
|
15
|
+
type: Component,
|
|
16
|
+
args: [{
|
|
17
|
+
selector: 'falcon-card',
|
|
18
|
+
host: {
|
|
19
|
+
'[style.--mdc-elevated-card-container-shape]': '"10px"',
|
|
20
|
+
'[style.--mdc-elevated-card-container-elevation]': '"0px 0px 0px 0px rgba(0, 0, 0, 0.12), 0px 0px 0px 1px rgba(0, 0, 0, 0.12), 0px 0px 1px 1px rgba(0.12, 0.12, 0.12, 0.12)"'
|
|
21
|
+
},
|
|
22
|
+
template: `
|
|
23
|
+
<mat-card>
|
|
24
|
+
<mat-card-content>
|
|
25
|
+
<ng-content></ng-content>
|
|
26
|
+
</mat-card-content>
|
|
27
|
+
</mat-card>
|
|
28
|
+
`,
|
|
29
|
+
}]
|
|
30
|
+
}] });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mYWxjb24tbmcvY29yZS9zcmMvbGliL2ZhbGNvbi1jb3JlL2NvbXBvbmVudC9jYXJkL2NhcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQWdCMUMsTUFBTSxPQUFPLGFBQWE7OEdBQWIsYUFBYTtrR0FBYixhQUFhLHFUQVJkOzs7Ozs7R0FNVDs7MkZBRVUsYUFBYTtrQkFkekIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsSUFBSSxFQUFFO3dCQUNKLDZDQUE2QyxFQUFFLFFBQVE7d0JBQ3ZELGlEQUFpRCxFQUFFLDBIQUEwSDtxQkFDOUs7b0JBQ0QsUUFBUSxFQUFFOzs7Ozs7R0FNVDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmYWxjb24tY2FyZCcsXG4gIGhvc3Q6IHtcbiAgICAnW3N0eWxlLi0tbWRjLWVsZXZhdGVkLWNhcmQtY29udGFpbmVyLXNoYXBlXSc6ICdcIjEwcHhcIicsXG4gICAgJ1tzdHlsZS4tLW1kYy1lbGV2YXRlZC1jYXJkLWNvbnRhaW5lci1lbGV2YXRpb25dJzogJ1wiMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMiksIDBweCAwcHggMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwcHggMHB4IDFweCAxcHggcmdiYSgwLjEyLCAwLjEyLCAwLjEyLCAwLjEyKVwiJ1xuICB9LFxuICB0ZW1wbGF0ZTogYFxuICAgIDxtYXQtY2FyZD5cbiAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgPC9tYXQtY2FyZD5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQ2FyZENvbXBvbmVudCB7fVxuIl19
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { MatInputModule } from '@angular/material/input';
|
|
3
|
+
import { BaseControlBuilder, controlProvider, sharedControlDeps } from '../../control-builder/base-control-builder';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/material/input";
|
|
6
|
+
import * as i2 from "@angular/material/form-field";
|
|
7
|
+
import * as i3 from "@angular/common";
|
|
8
|
+
import * as i4 from "@angular/forms";
|
|
9
|
+
import * as i5 from "../validation-error/validation-message.directive";
|
|
10
|
+
export class TextareaComponent extends BaseControlBuilder {
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TextareaComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
12
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: TextareaComponent, isStandalone: true, selector: "falcon-textarea", usesInheritance: true, ngImport: i0, template: `
|
|
13
|
+
<mat-form-field appearance="outline" class="w-full">
|
|
14
|
+
<mat-label>{{control.config.label}}</mat-label>
|
|
15
|
+
<textarea matInput [formControlName]="control.formControlName" [placeholder]="control.config.placeHolder"></textarea>
|
|
16
|
+
</mat-form-field>
|
|
17
|
+
`, isInline: true, styles: [".w-full{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: i3.CommonModule }, { kind: "ngmodule", type: i4.ReactiveFormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.ValidationMessageDirective, selector: "[formControl]:not([withoutValidationErrors]),[formControlName]:not([withoutValidationErrors]),[formGroupName]:not([withoutValidationErrors]))", inputs: ["errorStateMatcher", "container"] }], viewProviders: [controlProvider] }); }
|
|
18
|
+
}
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TextareaComponent, decorators: [{
|
|
20
|
+
type: Component,
|
|
21
|
+
args: [{ selector: 'falcon-textarea', standalone: true, imports: [MatInputModule, ...sharedControlDeps], viewProviders: [controlProvider], template: `
|
|
22
|
+
<mat-form-field appearance="outline" class="w-full">
|
|
23
|
+
<mat-label>{{control.config.label}}</mat-label>
|
|
24
|
+
<textarea matInput [formControlName]="control.formControlName" [placeholder]="control.config.placeHolder"></textarea>
|
|
25
|
+
</mat-form-field>
|
|
26
|
+
`, styles: [".w-full{width:100%}\n"] }]
|
|
27
|
+
}] });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLW5nL2NvcmUvc3JjL2xpYi9mYWxjb24tY29yZS9jb21wb25lbnQvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7OztBQWVwSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsa0JBQWtCOzhHQUE1QyxpQkFBaUI7a0dBQWpCLGlCQUFpQixrR0FSbEI7Ozs7O0dBS1QsOEZBUFMsY0FBYyx3K0NBQ1QsQ0FBQyxlQUFlLENBQUM7OzJGQVNyQixpQkFBaUI7a0JBYjdCLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQLENBQUMsY0FBYyxFQUFFLEdBQUcsaUJBQWlCLENBQUMsaUJBQ2hDLENBQUMsZUFBZSxDQUFDLFlBQ3RCOzs7OztHQUtUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IEJhc2VDb250cm9sQnVpbGRlciwgY29udHJvbFByb3ZpZGVyLCBzaGFyZWRDb250cm9sRGVwcyB9IGZyb20gJy4uLy4uL2NvbnRyb2wtYnVpbGRlci9iYXNlLWNvbnRyb2wtYnVpbGRlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZhbGNvbi10ZXh0YXJlYScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtNYXRJbnB1dE1vZHVsZSwgLi4uc2hhcmVkQ29udHJvbERlcHNdLFxuICB2aWV3UHJvdmlkZXJzOiBbY29udHJvbFByb3ZpZGVyXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInctZnVsbFwiPlxuICAgICAgPG1hdC1sYWJlbD57e2NvbnRyb2wuY29uZmlnLmxhYmVsfX08L21hdC1sYWJlbD5cbiAgICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wuZm9ybUNvbnRyb2xOYW1lXCIgW3BsYWNlaG9sZGVyXT1cImNvbnRyb2wuY29uZmlnLnBsYWNlSG9sZGVyXCI+PC90ZXh0YXJlYT5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICBgLFxuICBzdHlsZXM6IGAudy1mdWxse3dpZHRoOiAxMDAlfWBcbn0pXG5leHBvcnQgY2xhc3MgVGV4dGFyZWFDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29udHJvbEJ1aWxkZXJ7fVxuIl19
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { MatInputModule } from '@angular/material/input';
|
|
3
|
+
import { BaseControlBuilder, controlProvider, sharedControlDeps } from '../../control-builder/base-control-builder';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/material/input";
|
|
6
|
+
import * as i2 from "@angular/material/form-field";
|
|
7
|
+
import * as i3 from "@angular/common";
|
|
8
|
+
import * as i4 from "@angular/forms";
|
|
9
|
+
import * as i5 from "../validation-error/validation-message.directive";
|
|
10
|
+
import * as i6 from "../validation-error/validation-message-container.directive";
|
|
11
|
+
export class TextboxComponent extends BaseControlBuilder {
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TextboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
13
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: TextboxComponent, isStandalone: true, selector: "falcon-textbox", usesInheritance: true, ngImport: i0, template: `
|
|
14
|
+
<mat-form-field appearance="outline" class="w-full">
|
|
15
|
+
<mat-label>{{ control.config.label }}</mat-label>
|
|
16
|
+
<input matInput [formControlName]="control.formControlName" [placeholder]="control.config.placeHolder"
|
|
17
|
+
[container]="containerDir.container">
|
|
18
|
+
<ng-container falconValidationMessageContainer #containerDir="falconValidationMessageContainer" />
|
|
19
|
+
</mat-form-field>
|
|
20
|
+
`, isInline: true, styles: [".w-full{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: i3.CommonModule }, { kind: "ngmodule", type: i4.ReactiveFormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.ValidationMessageDirective, selector: "[formControl]:not([withoutValidationErrors]),[formControlName]:not([withoutValidationErrors]),[formGroupName]:not([withoutValidationErrors]))", inputs: ["errorStateMatcher", "container"] }, { kind: "directive", type: i6.ValidationMessageContainerDirective, selector: "[falconValidationMessageContainer]", exportAs: ["falconValidationMessageContainer"] }], viewProviders: [controlProvider] }); }
|
|
21
|
+
}
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TextboxComponent, decorators: [{
|
|
23
|
+
type: Component,
|
|
24
|
+
args: [{ selector: 'falcon-textbox', standalone: true, imports: [MatInputModule, ...sharedControlDeps], viewProviders: [controlProvider], template: `
|
|
25
|
+
<mat-form-field appearance="outline" class="w-full">
|
|
26
|
+
<mat-label>{{ control.config.label }}</mat-label>
|
|
27
|
+
<input matInput [formControlName]="control.formControlName" [placeholder]="control.config.placeHolder"
|
|
28
|
+
[container]="containerDir.container">
|
|
29
|
+
<ng-container falconValidationMessageContainer #containerDir="falconValidationMessageContainer" />
|
|
30
|
+
</mat-form-field>
|
|
31
|
+
`, styles: [".w-full{width:100%}\n"] }]
|
|
32
|
+
}] });
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mYWxjb24tbmcvY29yZS9zcmMvbGliL2ZhbGNvbi1jb3JlL2NvbXBvbmVudC90ZXh0Ym94L3RleHRib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBMkIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7Ozs7O0FBbUJwSCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsa0JBQWtCOzhHQUEzQyxnQkFBZ0I7a0dBQWhCLGdCQUFnQixpR0FaakI7Ozs7Ozs7R0FPVCw4RkFUUyxjQUFjLDZvREFDVCxDQUFDLGVBQWUsQ0FBQzs7MkZBYXJCLGdCQUFnQjtrQkFqQjVCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsY0FBYyxFQUFFLEdBQUcsaUJBQWlCLENBQUMsaUJBQ2hDLENBQUMsZUFBZSxDQUFDLFlBQ3RCOzs7Ozs7O0dBT1QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IEJhc2VDb250cm9sQnVpbGRlciwgY29udHJvbFByb3ZpZGVyLCBzaGFyZWRDb250cm9sRGVwcyB9IGZyb20gJy4uLy4uL2NvbnRyb2wtYnVpbGRlci9iYXNlLWNvbnRyb2wtYnVpbGRlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZhbGNvbi10ZXh0Ym94JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW01hdElucHV0TW9kdWxlLCAuLi5zaGFyZWRDb250cm9sRGVwc10sXG4gIHZpZXdQcm92aWRlcnM6IFtjb250cm9sUHJvdmlkZXJdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidy1mdWxsXCI+XG4gICAgICA8bWF0LWxhYmVsPnt7IGNvbnRyb2wuY29uZmlnLmxhYmVsIH19PC9tYXQtbGFiZWw+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLmZvcm1Db250cm9sTmFtZVwiIFtwbGFjZWhvbGRlcl09XCJjb250cm9sLmNvbmZpZy5wbGFjZUhvbGRlclwiXG4gICAgICAgICAgICAgW2NvbnRhaW5lcl09XCJjb250YWluZXJEaXIuY29udGFpbmVyXCI+XG4gICAgICA8bmctY29udGFpbmVyIGZhbGNvblZhbGlkYXRpb25NZXNzYWdlQ29udGFpbmVyICNjb250YWluZXJEaXI9XCJmYWxjb25WYWxpZGF0aW9uTWVzc2FnZUNvbnRhaW5lclwiIC8+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgYCxcbiAgc3R5bGVzOiBgLnctZnVsbCB7XG4gICAgd2lkdGg6IDEwMCVcbiAgfWAsXG59KVxuZXhwb3J0IGNsYXNzIFRleHRib3hDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29udHJvbEJ1aWxkZXIge1xufVxuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { inject, Pipe } from '@angular/core';
|
|
2
|
+
import { VALIDATION_ERROR_MESSAGES } from './validation-error-message-token';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ErrorMessagePipe {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.errorMessages = inject(VALIDATION_ERROR_MESSAGES);
|
|
7
|
+
}
|
|
8
|
+
transform(key, errorValue) {
|
|
9
|
+
if (!this.errorMessages[key]) {
|
|
10
|
+
console.warn(`Missing message for ${key} validator...`);
|
|
11
|
+
return '';
|
|
12
|
+
}
|
|
13
|
+
return this.errorMessages[key](errorValue);
|
|
14
|
+
}
|
|
15
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ErrorMessagePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
16
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: ErrorMessagePipe, isStandalone: true, name: "errorMessage" }); }
|
|
17
|
+
}
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ErrorMessagePipe, decorators: [{
|
|
19
|
+
type: Pipe,
|
|
20
|
+
args: [{
|
|
21
|
+
name: 'errorMessage',
|
|
22
|
+
standalone: true
|
|
23
|
+
}]
|
|
24
|
+
}] });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItbWVzc2FnZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLW5nL2NvcmUvc3JjL2xpYi9mYWxjb24tY29yZS9jb21wb25lbnQvdmFsaWRhdGlvbi1lcnJvci9lcnJvci1tZXNzYWdlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQU03RSxNQUFNLE9BQU8sZ0JBQWdCO0lBSjdCO1FBS1Usa0JBQWEsR0FBRyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztLQVEzRDtJQVBDLFNBQVMsQ0FBQyxHQUFXLEVBQUUsVUFBZTtRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBQyxDQUFDO1lBQzVCLE9BQU8sQ0FBQyxJQUFJLENBQUMsdUJBQXdCLEdBQUksZUFBZSxDQUFDLENBQUM7WUFDMUQsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7OEdBUlUsZ0JBQWdCOzRHQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBSjVCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGNBQWM7b0JBQ3BCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVkFMSURBVElPTl9FUlJPUl9NRVNTQUdFUyB9IGZyb20gJy4vdmFsaWRhdGlvbi1lcnJvci1tZXNzYWdlLXRva2VuJztcblxuQFBpcGUoe1xuICBuYW1lOiAnZXJyb3JNZXNzYWdlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBFcnJvck1lc3NhZ2VQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHByaXZhdGUgZXJyb3JNZXNzYWdlcyA9IGluamVjdChWQUxJREFUSU9OX0VSUk9SX01FU1NBR0VTKTtcbiAgdHJhbnNmb3JtKGtleTogc3RyaW5nLCBlcnJvclZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5lcnJvck1lc3NhZ2VzW2tleV0pe1xuICAgICAgY29uc29sZS53YXJuKGBNaXNzaW5nIG1lc3NhZ2UgZm9yICR7IGtleSB9IHZhbGlkYXRvci4uLmApO1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5lcnJvck1lc3NhZ2VzW2tleV0oZXJyb3JWYWx1ZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class ErrorStateMatcherService {
|
|
4
|
+
isErrorState(control, form) {
|
|
5
|
+
return Boolean(control && control.invalid && (form && form.submitted));
|
|
6
|
+
}
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ErrorStateMatcherService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
8
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ErrorStateMatcherService, providedIn: 'root' }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ErrorStateMatcherService, decorators: [{
|
|
11
|
+
type: Injectable,
|
|
12
|
+
args: [{
|
|
13
|
+
providedIn: 'root'
|
|
14
|
+
}]
|
|
15
|
+
}] });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3Itc3RhdGUtbWF0Y2hlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLW5nL2NvcmUvc3JjL2xpYi9mYWxjb24tY29yZS9jb21wb25lbnQvdmFsaWRhdGlvbi1lcnJvci9lcnJvci1zdGF0ZS1tYXRjaGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPM0MsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxZQUFZLENBQUMsT0FBeUMsRUFBRSxJQUF3QztRQUM5RixPQUFPLE9BQU8sQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDOzhHQUhVLHdCQUF3QjtrSEFBeEIsd0JBQXdCLGNBRnZCLE1BQU07OzJGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Hcm91cERpcmVjdGl2ZSwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRXJyb3JTdGF0ZU1hdGNoZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRXJyb3JTdGF0ZU1hdGNoZXJTZXJ2aWNlIGltcGxlbWVudHMgRXJyb3JTdGF0ZU1hdGNoZXJ7XG4gIGlzRXJyb3JTdGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8YW55LCBhbnk+IHwgbnVsbCwgZm9ybTogTmdGb3JtIHwgRm9ybUdyb3VwRGlyZWN0aXZlIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBCb29sZWFuKGNvbnRyb2wgJiYgY29udHJvbC5pbnZhbGlkICYmIChmb3JtICYmIGZvcm0uc3VibWl0dGVkKSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { InjectionToken } from "@angular/core";
|
|
2
|
+
export const ERROR_MESSAGES = {
|
|
3
|
+
required: () => `This field is required`,
|
|
4
|
+
requiredTrue: () => `This field is required`,
|
|
5
|
+
email: () => `It should be a valid email`,
|
|
6
|
+
minlength: ({ requiredLength }) => `The length should be at least ${requiredLength} characters`,
|
|
7
|
+
banWords: ({ bannedWord }) => `The word "${bannedWord}" isn't allowed`,
|
|
8
|
+
appBanWords: ({ bannedWord }) => `The word "${bannedWord}" isn't allowed`,
|
|
9
|
+
appPasswordShouldMatch: () => `Password should match`,
|
|
10
|
+
passwordShouldMatch: () => `Password should match`,
|
|
11
|
+
pattern: () => `Wrong format`,
|
|
12
|
+
appUniqueNickname: () => `Nickname is taken`,
|
|
13
|
+
uniqueName: () => `Nickname is taken`,
|
|
14
|
+
};
|
|
15
|
+
export const VALIDATION_ERROR_MESSAGES = new InjectionToken(`Validation Messages`, {
|
|
16
|
+
providedIn: 'root',
|
|
17
|
+
factory: () => ERROR_MESSAGES
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1lcnJvci1tZXNzYWdlLXRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLW5nL2NvcmUvc3JjL2xpYi9mYWxjb24tY29yZS9jb21wb25lbnQvdmFsaWRhdGlvbi1lcnJvci92YWxpZGF0aW9uLWVycm9yLW1lc3NhZ2UtdG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUU5QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQThDO0lBQ3ZFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyx3QkFBd0I7SUFDeEMsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUFDLHdCQUF3QjtJQUM1QyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsNEJBQTRCO0lBQ3pDLFNBQVMsRUFBRSxDQUFDLEVBQUUsY0FBYyxFQUFFLEVBQUUsRUFBRSxDQUFDLGlDQUFpQyxjQUFjLGFBQWE7SUFDL0YsUUFBUSxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUMsYUFBYSxVQUFVLGlCQUFpQjtJQUN0RSxXQUFXLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxhQUFhLFVBQVUsaUJBQWlCO0lBQ3pFLHNCQUFzQixFQUFFLEdBQUcsRUFBRSxDQUFDLHVCQUF1QjtJQUNyRCxtQkFBbUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyx1QkFBdUI7SUFDbEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLGNBQWM7SUFDN0IsaUJBQWlCLEVBQUUsR0FBRyxFQUFFLENBQUMsbUJBQW1CO0lBQzVDLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxtQkFBbUI7Q0FDdEMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLElBQUksY0FBYyxDQUFDLHFCQUFxQixFQUFFO0lBQ2pGLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxjQUFjO0NBQzlCLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIlxuXG5leHBvcnQgY29uc3QgRVJST1JfTUVTU0FHRVM6IHsgW2tleTogc3RyaW5nXTogKGFyZ3M/OiBhbnkpID0+IHN0cmluZyB9ID0ge1xuICByZXF1aXJlZDogKCkgPT4gYFRoaXMgZmllbGQgaXMgcmVxdWlyZWRgLFxuICByZXF1aXJlZFRydWU6ICgpID0+IGBUaGlzIGZpZWxkIGlzIHJlcXVpcmVkYCxcbiAgZW1haWw6ICgpID0+IGBJdCBzaG91bGQgYmUgYSB2YWxpZCBlbWFpbGAsXG4gIG1pbmxlbmd0aDogKHsgcmVxdWlyZWRMZW5ndGggfSkgPT4gYFRoZSBsZW5ndGggc2hvdWxkIGJlIGF0IGxlYXN0ICR7cmVxdWlyZWRMZW5ndGh9IGNoYXJhY3RlcnNgLFxuICBiYW5Xb3JkczogKHsgYmFubmVkV29yZCB9KSA9PiBgVGhlIHdvcmQgXCIke2Jhbm5lZFdvcmR9XCIgaXNuJ3QgYWxsb3dlZGAsXG4gIGFwcEJhbldvcmRzOiAoeyBiYW5uZWRXb3JkIH0pID0+IGBUaGUgd29yZCBcIiR7YmFubmVkV29yZH1cIiBpc24ndCBhbGxvd2VkYCxcbiAgYXBwUGFzc3dvcmRTaG91bGRNYXRjaDogKCkgPT4gYFBhc3N3b3JkIHNob3VsZCBtYXRjaGAsXG4gIHBhc3N3b3JkU2hvdWxkTWF0Y2g6ICgpID0+IGBQYXNzd29yZCBzaG91bGQgbWF0Y2hgLFxuICBwYXR0ZXJuOiAoKSA9PiBgV3JvbmcgZm9ybWF0YCxcbiAgYXBwVW5pcXVlTmlja25hbWU6ICgpID0+IGBOaWNrbmFtZSBpcyB0YWtlbmAsXG4gIHVuaXF1ZU5hbWU6ICgpID0+IGBOaWNrbmFtZSBpcyB0YWtlbmAsXG59XG5cbmV4cG9ydCBjb25zdCBWQUxJREFUSU9OX0VSUk9SX01FU1NBR0VTID0gbmV3IEluamVjdGlvblRva2VuKGBWYWxpZGF0aW9uIE1lc3NhZ2VzYCwge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IEVSUk9SX01FU1NBR0VTXG59KVxuIl19
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { MatInputModule } from '@angular/material/input';
|
|
4
|
+
import { ErrorMessagePipe } from './error-message.pipe';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
import * as i2 from "@angular/material/form-field";
|
|
8
|
+
export class ValidationErrorComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.errors = null;
|
|
11
|
+
}
|
|
12
|
+
trackByFn(item) {
|
|
13
|
+
return item.key;
|
|
14
|
+
}
|
|
15
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ValidationErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
16
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: ValidationErrorComponent, isStandalone: true, selector: "falcon-error", inputs: { errors: "errors" }, ngImport: i0, template: `
|
|
17
|
+
@if (errors) {
|
|
18
|
+
@for (error of errors | keyvalue; track trackByFn) {
|
|
19
|
+
<mat-error>{{ error.key | errorMessage:error.value }}</mat-error>
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.KeyValuePipe, name: "keyvalue" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "pipe", type: ErrorMessagePipe, name: "errorMessage" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
23
|
+
}
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ValidationErrorComponent, decorators: [{
|
|
25
|
+
type: Component,
|
|
26
|
+
args: [{
|
|
27
|
+
selector: 'falcon-error',
|
|
28
|
+
standalone: true,
|
|
29
|
+
imports: [CommonModule, MatInputModule, ErrorMessagePipe],
|
|
30
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
31
|
+
template: `
|
|
32
|
+
@if (errors) {
|
|
33
|
+
@for (error of errors | keyvalue; track trackByFn) {
|
|
34
|
+
<mat-error>{{ error.key | errorMessage:error.value }}</mat-error>
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
`,
|
|
38
|
+
}]
|
|
39
|
+
}], propDecorators: { errors: [{
|
|
40
|
+
type: Input
|
|
41
|
+
}] } });
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mYWxjb24tbmcvY29yZS9zcmMvbGliL2ZhbGNvbi1jb3JlL2NvbXBvbmVudC92YWxpZGF0aW9uLWVycm9yL3ZhbGlkYXRpb24tZXJyb3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxZQUFZLEVBQVksTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFleEQsTUFBTSxPQUFPLHdCQUF3QjtJQWJyQztRQWNXLFdBQU0sR0FBd0MsSUFBSSxDQUFDO0tBSTdEO0lBSEMsU0FBUyxDQUFDLElBQTJCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDOzhHQUpVLHdCQUF3QjtrR0FBeEIsd0JBQXdCLHNHQVJ6Qjs7Ozs7O0dBTVQsMkRBUlMsWUFBWSx5RkFBRSxjQUFjLHVIQUFFLGdCQUFnQjs7MkZBVTdDLHdCQUF3QjtrQkFicEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLENBQUM7b0JBQ3pELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUU7Ozs7OztHQU1UO2lCQUNGOzhCQUVVLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBLZXlWYWx1ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IEVycm9yTWVzc2FnZVBpcGUgfSBmcm9tICcuL2Vycm9yLW1lc3NhZ2UucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZhbGNvbi1lcnJvcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdElucHV0TW9kdWxlLCBFcnJvck1lc3NhZ2VQaXBlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiBgXG4gICAgQGlmIChlcnJvcnMpIHtcbiAgICAgIEBmb3IgKGVycm9yIG9mIGVycm9ycyB8IGtleXZhbHVlOyB0cmFjayB0cmFja0J5Rm4pIHtcbiAgICAgICAgPG1hdC1lcnJvcj57eyBlcnJvci5rZXkgfCBlcnJvck1lc3NhZ2U6ZXJyb3IudmFsdWUgfX08L21hdC1lcnJvcj5cbiAgICAgIH1cbiAgICB9XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25FcnJvckNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IHVuZGVmaW5lZCB8IG51bGwgPSBudWxsO1xuICB0cmFja0J5Rm4oaXRlbTogS2V5VmFsdWU8c3RyaW5nLCBhbnk+KSB7XG4gICAgcmV0dXJuIGl0ZW0ua2V5O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Directive, inject, ViewContainerRef } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class ValidationMessageContainerDirective {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.container = inject(ViewContainerRef);
|
|
6
|
+
}
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ValidationMessageContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
8
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: ValidationMessageContainerDirective, isStandalone: true, selector: "[falconValidationMessageContainer]", exportAs: ["falconValidationMessageContainer"], ngImport: i0 }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ValidationMessageContainerDirective, decorators: [{
|
|
11
|
+
type: Directive,
|
|
12
|
+
args: [{
|
|
13
|
+
selector: '[falconValidationMessageContainer]',
|
|
14
|
+
standalone: true,
|
|
15
|
+
exportAs: 'falconValidationMessageContainer'
|
|
16
|
+
}]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1tZXNzYWdlLWNvbnRhaW5lci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mYWxjb24tbmcvY29yZS9zcmMvbGliL2ZhbGNvbi1jb3JlL2NvbXBvbmVudC92YWxpZGF0aW9uLWVycm9yL3ZhbGlkYXRpb24tbWVzc2FnZS1jb250YWluZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU9wRSxNQUFNLE9BQU8sbUNBQW1DO0lBTGhEO1FBTUEsY0FBUyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0tBRW5DOzhHQUhZLG1DQUFtQztrR0FBbkMsbUNBQW1DOzsyRkFBbkMsbUNBQW1DO2tCQUwvQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQ0FBb0M7b0JBQzlDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsa0NBQWtDO2lCQUM3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tmYWxjb25WYWxpZGF0aW9uTWVzc2FnZUNvbnRhaW5lcl0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBleHBvcnRBczogJ2ZhbGNvblZhbGlkYXRpb25NZXNzYWdlQ29udGFpbmVyJ1xufSlcbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uTWVzc2FnZUNvbnRhaW5lckRpcmVjdGl2ZSB7XG5jb250YWluZXIgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZilcblxufVxuIl19
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Directive, ElementRef, inject, Input, ViewContainerRef } from '@angular/core';
|
|
2
|
+
import { ControlContainer, NgControl, NgModel } from '@angular/forms';
|
|
3
|
+
import { EMPTY, fromEvent, iif, merge, skip, startWith } from 'rxjs';
|
|
4
|
+
import { ValidationErrorComponent } from './validation-error.component';
|
|
5
|
+
import { ErrorStateMatcherService } from './error-state-matcher.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class ValidationMessageDirective {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.ngControl = inject(NgControl, { self: true, optional: true }) || inject(ControlContainer, { self: true });
|
|
10
|
+
this.elementRef = inject(ElementRef);
|
|
11
|
+
this.errorStateMatcher = inject(ErrorStateMatcherService);
|
|
12
|
+
this.container = inject(ViewContainerRef);
|
|
13
|
+
this.parentContainer = inject(ControlContainer, { optional: true });
|
|
14
|
+
this.componentRef = null;
|
|
15
|
+
}
|
|
16
|
+
get form() {
|
|
17
|
+
return this.parentContainer?.formDirective;
|
|
18
|
+
}
|
|
19
|
+
ngOnInit() {
|
|
20
|
+
if (!this.ngControl.control)
|
|
21
|
+
throw Error(`No control model for ${this.ngControl.name} control...`);
|
|
22
|
+
this.errorMessageTrigger = merge(this.ngControl.control.statusChanges, fromEvent(this.elementRef.nativeElement, 'blur'), iif(() => !!this.form, this.form.ngSubmit, EMPTY)).pipe(startWith(this.ngControl.control.status), skip(this.ngControl instanceof NgModel ? 1 : 0)).subscribe(() => {
|
|
23
|
+
if (this.errorStateMatcher.isErrorState(this.ngControl.control, this.form)) {
|
|
24
|
+
if (!this.componentRef) {
|
|
25
|
+
this.componentRef = this.container.createComponent(ValidationErrorComponent);
|
|
26
|
+
this.componentRef.changeDetectorRef.markForCheck();
|
|
27
|
+
}
|
|
28
|
+
this.componentRef.setInput('errors', this.ngControl.errors);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
this.componentRef?.destroy();
|
|
32
|
+
this.componentRef = null;
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
ngOnDestroy() {
|
|
37
|
+
this.errorMessageTrigger.unsubscribe();
|
|
38
|
+
}
|
|
39
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ValidationMessageDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
40
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: ValidationMessageDirective, isStandalone: true, selector: "[formControl]:not([withoutValidationErrors]),[formControlName]:not([withoutValidationErrors]),[formGroupName]:not([withoutValidationErrors]))", inputs: { errorStateMatcher: "errorStateMatcher", container: "container" }, ngImport: i0 }); }
|
|
41
|
+
}
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ValidationMessageDirective, decorators: [{
|
|
43
|
+
type: Directive,
|
|
44
|
+
args: [{
|
|
45
|
+
standalone: true,
|
|
46
|
+
selector: '[formControl]:not([withoutValidationErrors]),[formControlName]:not([withoutValidationErrors]),[formGroupName]:not([withoutValidationErrors]))',
|
|
47
|
+
}]
|
|
48
|
+
}], propDecorators: { errorStateMatcher: [{
|
|
49
|
+
type: Input
|
|
50
|
+
}], container: [{
|
|
51
|
+
type: Input
|
|
52
|
+
}] } });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1tZXNzYWdlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1uZy9jb3JlL3NyYy9saWIvZmFsY29uLWNvcmUvY29tcG9uZW50L3ZhbGlkYXRpb24tZXJyb3IvdmFsaWRhdGlvbi1tZXNzYWdlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLGdCQUFnQixFQUFzQixTQUFTLEVBQVUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEcsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNuRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFNekUsTUFBTSxPQUFPLDBCQUEwQjtJQUp2QztRQUtFLGNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMxRyxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXZCLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ3JELGNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUV0QyxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRS9ELGlCQUFZLEdBQWtELElBQUksQ0FBQztLQWtDNUU7SUFoQ0MsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLGFBQW1ELENBQUM7SUFDbkYsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPO1lBQ3pCLE1BQU0sS0FBSyxDQUFDLHdCQUF3QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksYUFBYSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUNwQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLEVBQ2hELEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FDbkQsQ0FBQyxJQUFJLENBQ0osU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsWUFBWSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ2hELENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNmLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDM0UsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDdkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO29CQUM3RSxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUNyRCxDQUFDO2dCQUNELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlELENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxDQUFDO2dCQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUMzQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6QyxDQUFDOzhHQXpDVSwwQkFBMEI7a0dBQTFCLDBCQUEwQjs7MkZBQTFCLDBCQUEwQjtrQkFKdEMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLCtJQUErSTtpQkFDMUo7OEJBS1UsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIEZvcm1Hcm91cERpcmVjdGl2ZSwgTmdDb250cm9sLCBOZ0Zvcm0sIE5nTW9kZWwgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFTVBUWSwgZnJvbUV2ZW50LCBpaWYsIG1lcmdlLCBza2lwLCBzdGFydFdpdGgsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi92YWxpZGF0aW9uLWVycm9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFcnJvclN0YXRlTWF0Y2hlclNlcnZpY2UgfSBmcm9tICcuL2Vycm9yLXN0YXRlLW1hdGNoZXIuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tmb3JtQ29udHJvbF06bm90KFt3aXRob3V0VmFsaWRhdGlvbkVycm9yc10pLFtmb3JtQ29udHJvbE5hbWVdOm5vdChbd2l0aG91dFZhbGlkYXRpb25FcnJvcnNdKSxbZm9ybUdyb3VwTmFtZV06bm90KFt3aXRob3V0VmFsaWRhdGlvbkVycm9yc10pKScsXG59KVxuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25NZXNzYWdlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBuZ0NvbnRyb2wgPSBpbmplY3QoTmdDb250cm9sLCB7IHNlbGY6IHRydWUsIG9wdGlvbmFsOiB0cnVlIH0pIHx8IGluamVjdChDb250cm9sQ29udGFpbmVyLCB7IHNlbGY6IHRydWUgfSk7XG4gIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgQElucHV0KCkgZXJyb3JTdGF0ZU1hdGNoZXIgPSBpbmplY3QoRXJyb3JTdGF0ZU1hdGNoZXJTZXJ2aWNlKTtcbiAgQElucHV0KCkgY29udGFpbmVyID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuXG4gIHByaXZhdGUgcGFyZW50Q29udGFpbmVyID0gaW5qZWN0KENvbnRyb2xDb250YWluZXIsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByaXZhdGUgZXJyb3JNZXNzYWdlVHJpZ2dlciE6IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxWYWxpZGF0aW9uRXJyb3JDb21wb25lbnQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgZ2V0IGZvcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50Q29udGFpbmVyPy5mb3JtRGlyZWN0aXZlIGFzIE5nRm9ybSB8IEZvcm1Hcm91cERpcmVjdGl2ZSB8IG51bGw7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMubmdDb250cm9sLmNvbnRyb2wpXG4gICAgICB0aHJvdyBFcnJvcihgTm8gY29udHJvbCBtb2RlbCBmb3IgJHt0aGlzLm5nQ29udHJvbC5uYW1lfSBjb250cm9sLi4uYCk7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VUcmlnZ2VyID0gbWVyZ2UoXG4gICAgICB0aGlzLm5nQ29udHJvbC5jb250cm9sLnN0YXR1c0NoYW5nZXMsXG4gICAgICBmcm9tRXZlbnQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdibHVyJyksXG4gICAgICBpaWYoKCkgPT4gISF0aGlzLmZvcm0sIHRoaXMuZm9ybSEubmdTdWJtaXQsIEVNUFRZKSxcbiAgICApLnBpcGUoXG4gICAgICBzdGFydFdpdGgodGhpcy5uZ0NvbnRyb2wuY29udHJvbC5zdGF0dXMpLFxuICAgICAgc2tpcCh0aGlzLm5nQ29udHJvbCBpbnN0YW5jZW9mIE5nTW9kZWwgPyAxIDogMCksXG4gICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZXJyb3JTdGF0ZU1hdGNoZXIuaXNFcnJvclN0YXRlKHRoaXMubmdDb250cm9sLmNvbnRyb2wsIHRoaXMuZm9ybSkpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50KFZhbGlkYXRpb25FcnJvckNvbXBvbmVudCk7XG4gICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuc2V0SW5wdXQoJ2Vycm9ycycsIHRoaXMubmdDb250cm9sLmVycm9ycyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZj8uZGVzdHJveSgpO1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IG51bGw7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmVycm9yTWVzc2FnZVRyaWdnZXIudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG59XG4iXX0=
|