special-forms 4.0.4 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +147 -147
- package/esm2020/lib/components/special-checkbox/special-checkbox.component.mjs +3 -3
- package/esm2020/lib/components/special-datepicker/special-datepicker.component.mjs +3 -3
- package/esm2020/lib/components/special-form/error-matcher.mjs +13 -0
- package/esm2020/lib/components/special-form/special-form.component.mjs +3 -3
- package/esm2020/lib/components/special-form/special-form.module.mjs +15 -2
- package/esm2020/lib/components/special-input/special-input.component.mjs +3 -3
- package/esm2020/lib/components/special-label/special-label.component.mjs +3 -3
- package/esm2020/lib/components/special-richtext/special-richtext.component.mjs +3 -3
- package/esm2020/lib/components/special-text-area/special-text-area.component.mjs +3 -3
- package/esm2020/lib/components/special-upload/special-upload.component.mjs +3 -3
- package/esm2020/lib/core/forms/special-forms.mjs +28 -6
- package/esm2020/lib/core/services/special-form-builder/special-form-builder.service.mjs +1 -1
- package/esm2020/public-api.mjs +1 -1
- package/fesm2015/special-forms.mjs +68 -24
- package/fesm2015/special-forms.mjs.map +1 -1
- package/fesm2020/special-forms.mjs +68 -24
- package/fesm2020/special-forms.mjs.map +1 -1
- package/lib/components/special-form/error-matcher.d.ts +8 -0
- package/lib/core/forms/special-forms.d.ts +15 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,147 +1,147 @@
|
|
|
1
|
-
<h1 align="center">Welcome to special-forms 👋</h1>
|
|
2
|
-
<p>
|
|
3
|
-
<a href="https://www.npmjs.com/package/special-forms" target="_blank">
|
|
4
|
-
<img alt="Version" src="https://img.shields.io/npm/v/special-forms.svg">
|
|
5
|
-
</a>
|
|
6
|
-
</p>
|
|
7
|
-
|
|
8
|
-
> Angular library to create complex forms with a simple config object.
|
|
9
|
-
|
|
10
|
-
### 🏠 [Homepage](https://gitlab.com/lopezsantiago/special-forms)
|
|
11
|
-
|
|
12
|
-
## Install
|
|
13
|
-
|
|
14
|
-
```sh
|
|
15
|
-
yarn add special-forms
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
## Author
|
|
19
|
-
|
|
20
|
-
👤 **Santiago López**
|
|
21
|
-
|
|
22
|
-
- Github: [@LopezSantiago](https://github.com/LopezSantiago)
|
|
23
|
-
- LinkedIn: [@https:\/\/www.linkedin.com\/in\/lopezsantiagowebui\/](https://linkedin.com/in/https://www.linkedin.com/in/lopezsantiagowebui/)
|
|
24
|
-
|
|
25
|
-
## Instructions
|
|
26
|
-
|
|
27
|
-
```typeScript
|
|
28
|
-
import { SpecialFormModule } from 'special-forms';
|
|
29
|
-
|
|
30
|
-
@NgModule({
|
|
31
|
-
...
|
|
32
|
-
imports: [
|
|
33
|
-
SpecialFormModule
|
|
34
|
-
],
|
|
35
|
-
...
|
|
36
|
-
})
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
In the component
|
|
40
|
-
|
|
41
|
-
```typeScript
|
|
42
|
-
import { SpecialFormBuilderService } from 'special-forms';
|
|
43
|
-
@Component({
|
|
44
|
-
...
|
|
45
|
-
})
|
|
46
|
-
export class SomeComponent implements OnInit {
|
|
47
|
-
|
|
48
|
-
constructor(private specialBuilder: SpecialFormBuilderService) {}
|
|
49
|
-
|
|
50
|
-
form = this.specialBuilder.group({
|
|
51
|
-
test: {
|
|
52
|
-
type: EControlTypes.input,
|
|
53
|
-
label: 'Esto es una prueba',
|
|
54
|
-
placeholder: 'Un placeholder',
|
|
55
|
-
},
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
To create a new Form only pass the config Object
|
|
62
|
-
|
|
63
|
-
```typeScript
|
|
64
|
-
interface {
|
|
65
|
-
placeholder?: string;
|
|
66
|
-
label?: string;
|
|
67
|
-
tooltip?: string;
|
|
68
|
-
icon?: string;
|
|
69
|
-
elementId?: string;
|
|
70
|
-
styleClasses?: string;
|
|
71
|
-
length?: number;
|
|
72
|
-
required?: boolean;
|
|
73
|
-
hidden?: boolean;
|
|
74
|
-
readOnly?: boolean;
|
|
75
|
-
disabled?:boolean;
|
|
76
|
-
errorMessages?: { [key: string]: string };
|
|
77
|
-
validators?: ValidatorFn | ValidatorFn[] | null;
|
|
78
|
-
asyncValidators?: AsyncValidatorFn | AsyncValidatorFn[] | null;
|
|
79
|
-
defaultValue?: any;
|
|
80
|
-
settings: //depends of the type of control selected;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
enum EControlTypes {
|
|
84
|
-
pkey = 'PRIMARY-KEY',
|
|
85
|
-
input = 'INPUT',
|
|
86
|
-
richText = 'RICH-TEXT',
|
|
87
|
-
textArea = 'TEXT-AREA',
|
|
88
|
-
dropdown = 'DROPDOWN',
|
|
89
|
-
date = 'DATE',
|
|
90
|
-
time = 'TIME',
|
|
91
|
-
checkbox = 'CHECKBOX',
|
|
92
|
-
upload = 'UPLOAD',
|
|
93
|
-
autocomplete = 'AUTOCOMPLETE',
|
|
94
|
-
multiple = 'MULTIPLE-AUTOCOMPLETE',
|
|
95
|
-
array = 'ARRAY',
|
|
96
|
-
form = 'FORM',
|
|
97
|
-
label = 'LABEL',
|
|
98
|
-
default = 'DEFAULT',
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
```
|
|
102
|
-
Example
|
|
103
|
-
|
|
104
|
-
```typeScript
|
|
105
|
-
form = this.specialBuilder.group({
|
|
106
|
-
name: {
|
|
107
|
-
type: EControlTypes.input,
|
|
108
|
-
label: 'Name',
|
|
109
|
-
placeholder: 'Write your first name',
|
|
110
|
-
validators:[Validators.maxLength(20)],
|
|
111
|
-
defaultValue:'Jhon Doe',
|
|
112
|
-
disabled:false,
|
|
113
|
-
elementId:'name-input',
|
|
114
|
-
errorMessages:{
|
|
115
|
-
maxLength:'The maximum length is 20'
|
|
116
|
-
},
|
|
117
|
-
required:true,
|
|
118
|
-
type: EControlTypes.input,
|
|
119
|
-
},
|
|
120
|
-
});
|
|
121
|
-
```
|
|
122
|
-
Finally you can pass the form object to the component.
|
|
123
|
-
|
|
124
|
-
```HTML
|
|
125
|
-
<sp-form [control]="form"></sp-form>
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
To the correct functionality of the library, need to install the next libraries
|
|
129
|
-
|
|
130
|
-
```JSON
|
|
131
|
-
"tailwindcss": "^3.2.7",
|
|
132
|
-
"autoprefixer": "^10.4.13",
|
|
133
|
-
"postcss": "^8.4.21",
|
|
134
|
-
"@ngneat/input-mask": "6.1.0",
|
|
135
|
-
"inputmask": "^5.0.7",
|
|
136
|
-
"ngx-dropzone": "^3.1.0",
|
|
137
|
-
"ngx-editor": "^15.2.0",
|
|
138
|
-
"@angular/material": "15.1.5"
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
## Show your support
|
|
142
|
-
|
|
143
|
-
Give a ⭐️ if this project helped you!
|
|
144
|
-
|
|
145
|
-
---
|
|
146
|
-
|
|
147
|
-
_This README was generated with ❤️ by [readme-md-generator](https://github.com/kefranabg/readme-md-generator)_
|
|
1
|
+
<h1 align="center">Welcome to special-forms 👋</h1>
|
|
2
|
+
<p>
|
|
3
|
+
<a href="https://www.npmjs.com/package/special-forms" target="_blank">
|
|
4
|
+
<img alt="Version" src="https://img.shields.io/npm/v/special-forms.svg">
|
|
5
|
+
</a>
|
|
6
|
+
</p>
|
|
7
|
+
|
|
8
|
+
> Angular library to create complex forms with a simple config object.
|
|
9
|
+
|
|
10
|
+
### 🏠 [Homepage](https://gitlab.com/lopezsantiago/special-forms)
|
|
11
|
+
|
|
12
|
+
## Install
|
|
13
|
+
|
|
14
|
+
```sh
|
|
15
|
+
yarn add special-forms
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Author
|
|
19
|
+
|
|
20
|
+
👤 **Santiago López**
|
|
21
|
+
|
|
22
|
+
- Github: [@LopezSantiago](https://github.com/LopezSantiago)
|
|
23
|
+
- LinkedIn: [@https:\/\/www.linkedin.com\/in\/lopezsantiagowebui\/](https://linkedin.com/in/https://www.linkedin.com/in/lopezsantiagowebui/)
|
|
24
|
+
|
|
25
|
+
## Instructions
|
|
26
|
+
|
|
27
|
+
```typeScript
|
|
28
|
+
import { SpecialFormModule } from 'special-forms';
|
|
29
|
+
|
|
30
|
+
@NgModule({
|
|
31
|
+
...
|
|
32
|
+
imports: [
|
|
33
|
+
SpecialFormModule
|
|
34
|
+
],
|
|
35
|
+
...
|
|
36
|
+
})
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
In the component
|
|
40
|
+
|
|
41
|
+
```typeScript
|
|
42
|
+
import { SpecialFormBuilderService } from 'special-forms';
|
|
43
|
+
@Component({
|
|
44
|
+
...
|
|
45
|
+
})
|
|
46
|
+
export class SomeComponent implements OnInit {
|
|
47
|
+
|
|
48
|
+
constructor(private specialBuilder: SpecialFormBuilderService) {}
|
|
49
|
+
|
|
50
|
+
form = this.specialBuilder.group({
|
|
51
|
+
test: {
|
|
52
|
+
type: EControlTypes.input,
|
|
53
|
+
label: 'Esto es una prueba',
|
|
54
|
+
placeholder: 'Un placeholder',
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
To create a new Form only pass the config Object
|
|
62
|
+
|
|
63
|
+
```typeScript
|
|
64
|
+
interface {
|
|
65
|
+
placeholder?: string;
|
|
66
|
+
label?: string;
|
|
67
|
+
tooltip?: string;
|
|
68
|
+
icon?: string;
|
|
69
|
+
elementId?: string;
|
|
70
|
+
styleClasses?: string;
|
|
71
|
+
length?: number;
|
|
72
|
+
required?: boolean;
|
|
73
|
+
hidden?: boolean;
|
|
74
|
+
readOnly?: boolean;
|
|
75
|
+
disabled?:boolean;
|
|
76
|
+
errorMessages?: { [key: string]: string };
|
|
77
|
+
validators?: ValidatorFn | ValidatorFn[] | null;
|
|
78
|
+
asyncValidators?: AsyncValidatorFn | AsyncValidatorFn[] | null;
|
|
79
|
+
defaultValue?: any;
|
|
80
|
+
settings: //depends of the type of control selected;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
enum EControlTypes {
|
|
84
|
+
pkey = 'PRIMARY-KEY',
|
|
85
|
+
input = 'INPUT',
|
|
86
|
+
richText = 'RICH-TEXT',
|
|
87
|
+
textArea = 'TEXT-AREA',
|
|
88
|
+
dropdown = 'DROPDOWN',
|
|
89
|
+
date = 'DATE',
|
|
90
|
+
time = 'TIME',
|
|
91
|
+
checkbox = 'CHECKBOX',
|
|
92
|
+
upload = 'UPLOAD',
|
|
93
|
+
autocomplete = 'AUTOCOMPLETE',
|
|
94
|
+
multiple = 'MULTIPLE-AUTOCOMPLETE',
|
|
95
|
+
array = 'ARRAY',
|
|
96
|
+
form = 'FORM',
|
|
97
|
+
label = 'LABEL',
|
|
98
|
+
default = 'DEFAULT',
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
Example
|
|
103
|
+
|
|
104
|
+
```typeScript
|
|
105
|
+
form = this.specialBuilder.group({
|
|
106
|
+
name: {
|
|
107
|
+
type: EControlTypes.input,
|
|
108
|
+
label: 'Name',
|
|
109
|
+
placeholder: 'Write your first name',
|
|
110
|
+
validators:[Validators.maxLength(20)],
|
|
111
|
+
defaultValue:'Jhon Doe',
|
|
112
|
+
disabled:false,
|
|
113
|
+
elementId:'name-input',
|
|
114
|
+
errorMessages:{
|
|
115
|
+
maxLength:'The maximum length is 20'
|
|
116
|
+
},
|
|
117
|
+
required:true,
|
|
118
|
+
type: EControlTypes.input,
|
|
119
|
+
},
|
|
120
|
+
});
|
|
121
|
+
```
|
|
122
|
+
Finally you can pass the form object to the component.
|
|
123
|
+
|
|
124
|
+
```HTML
|
|
125
|
+
<sp-form [control]="form"></sp-form>
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
To the correct functionality of the library, need to install the next libraries
|
|
129
|
+
|
|
130
|
+
```JSON
|
|
131
|
+
"tailwindcss": "^3.2.7",
|
|
132
|
+
"autoprefixer": "^10.4.13",
|
|
133
|
+
"postcss": "^8.4.21",
|
|
134
|
+
"@ngneat/input-mask": "6.1.0",
|
|
135
|
+
"inputmask": "^5.0.7",
|
|
136
|
+
"ngx-dropzone": "^3.1.0",
|
|
137
|
+
"ngx-editor": "^15.2.0",
|
|
138
|
+
"@angular/material": "15.1.5"
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## Show your support
|
|
142
|
+
|
|
143
|
+
Give a ⭐️ if this project helped you!
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
_This README was generated with ❤️ by [readme-md-generator](https://github.com/kefranabg/readme-md-generator)_
|
|
@@ -17,7 +17,7 @@ export class SpecialCheckboxComponent {
|
|
|
17
17
|
ngOnInit() { }
|
|
18
18
|
}
|
|
19
19
|
SpecialCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SpecialCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
20
|
-
SpecialCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: SpecialCheckboxComponent, isStandalone: true, selector: "sp-checkbox", inputs: { control: "control" }, ngImport: i0, template: "<div\n *ngIf=\"control && !control.hidden\"\n [id]=\"control.elementId\"\n class=\"special-checkbox w-full mb-3 flex flex-col {{ control.styleClasses }}\"\n>\n <mat-label *ngIf=\"control.label\">{{ control.label }}</mat-label>\n <mat-checkbox\n [required]=\"control.required\"\n [ngModel]=\"control.value\"\n (ngModelChange)=\"control.setValue($event); control.markAsDirty()\"\n [indeterminate]=\"control.settings.indeterminate\"\n [labelPosition]=\"control.settings.labelPosition\"\n [color]=\"control.settings.color\"\n [disabled]=\"control.disabled\"\n >\n <mat-icon *ngIf=\"control.icon\" matSuffix>{{ control.icon }} </mat-icon>\n {{ control.placeholder }}\n </mat-checkbox>\n</div>\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i2.MatCheckboxRequiredValidator, selector: "mat-checkbox[required][formControlName], mat-checkbox[required][formControl], mat-checkbox[required][ngModel]" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatButtonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
20
|
+
SpecialCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: SpecialCheckboxComponent, isStandalone: true, selector: "sp-checkbox", inputs: { control: "control" }, ngImport: i0, template: "<div\r\n *ngIf=\"control && !control.hidden\"\r\n [id]=\"control.elementId\"\r\n class=\"special-checkbox w-full mb-3 flex flex-col {{ control.styleClasses }}\"\r\n>\r\n <mat-label *ngIf=\"control.label\">{{ control.label }}</mat-label>\r\n <mat-checkbox\r\n [required]=\"control.required\"\r\n [ngModel]=\"control.value\"\r\n (ngModelChange)=\"control.setValue($event); control.markAsDirty()\"\r\n [indeterminate]=\"control.settings.indeterminate\"\r\n [labelPosition]=\"control.settings.labelPosition\"\r\n [color]=\"control.settings.color\"\r\n [disabled]=\"control.disabled\"\r\n >\r\n <mat-icon *ngIf=\"control.icon\" matSuffix>{{ control.icon }} </mat-icon>\r\n {{ control.placeholder }}\r\n </mat-checkbox>\r\n</div>\r\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i2.MatCheckboxRequiredValidator, selector: "mat-checkbox[required][formControlName], mat-checkbox[required][formControl], mat-checkbox[required][ngModel]" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatButtonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
21
21
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SpecialCheckboxComponent, decorators: [{
|
|
22
22
|
type: Component,
|
|
23
23
|
args: [{ standalone: true, selector: 'sp-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
@@ -29,8 +29,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
29
29
|
ReactiveFormsModule,
|
|
30
30
|
MatButtonModule,
|
|
31
31
|
ErrorMessagePipe,
|
|
32
|
-
], template: "<div\n *ngIf=\"control && !control.hidden\"\n [id]=\"control.elementId\"\n class=\"special-checkbox w-full mb-3 flex flex-col {{ control.styleClasses }}\"\n>\n <mat-label *ngIf=\"control.label\">{{ control.label }}</mat-label>\n <mat-checkbox\n [required]=\"control.required\"\n [ngModel]=\"control.value\"\n (ngModelChange)=\"control.setValue($event); control.markAsDirty()\"\n [indeterminate]=\"control.settings.indeterminate\"\n [labelPosition]=\"control.settings.labelPosition\"\n [color]=\"control.settings.color\"\n [disabled]=\"control.disabled\"\n >\n <mat-icon *ngIf=\"control.icon\" matSuffix>{{ control.icon }} </mat-icon>\n {{ control.placeholder }}\n </mat-checkbox>\n</div>\n", styles: [":host{display:contents}\n"] }]
|
|
32
|
+
], template: "<div\r\n *ngIf=\"control && !control.hidden\"\r\n [id]=\"control.elementId\"\r\n class=\"special-checkbox w-full mb-3 flex flex-col {{ control.styleClasses }}\"\r\n>\r\n <mat-label *ngIf=\"control.label\">{{ control.label }}</mat-label>\r\n <mat-checkbox\r\n [required]=\"control.required\"\r\n [ngModel]=\"control.value\"\r\n (ngModelChange)=\"control.setValue($event); control.markAsDirty()\"\r\n [indeterminate]=\"control.settings.indeterminate\"\r\n [labelPosition]=\"control.settings.labelPosition\"\r\n [color]=\"control.settings.color\"\r\n [disabled]=\"control.disabled\"\r\n >\r\n <mat-icon *ngIf=\"control.icon\" matSuffix>{{ control.icon }} </mat-icon>\r\n {{ control.placeholder }}\r\n </mat-checkbox>\r\n</div>\r\n", styles: [":host{display:contents}\n"] }]
|
|
33
33
|
}], ctorParameters: function () { return []; }, propDecorators: { control: [{
|
|
34
34
|
type: Input
|
|
35
35
|
}] } });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1jaGVja2JveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVjaWFsLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy9zcGVjaWFsLWNoZWNrYm94L3NwZWNpYWwtY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC1jaGVja2JveC9zcGVjaWFsLWNoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEdBRU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7O0FBb0JwRCxNQUFNLE9BQU8sd0JBQXdCO0lBRW5DLGdCQUFlLENBQUM7SUFDaEIsUUFBUSxLQUFVLENBQUM7O3FIQUhSLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLHVHQ2hDckMsMnZCQW1CQSxrRkRHSSxXQUFXLDJqQkFDWCxpQkFBaUIscVhBQ2pCLFlBQVksa0lBQ1osY0FBYyxnT0FDZCxhQUFhLG1MQUNiLG1CQUFtQiw4QkFDbkIsZUFBZTsyRkFJTix3QkFBd0I7a0JBakJwQyxTQUFTO2lDQUNJLElBQUksWUFDTixhQUFhLG1CQUdOLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsV0FBVzt3QkFDWCxpQkFBaUI7d0JBQ2pCLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxhQUFhO3dCQUNiLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixnQkFBZ0I7cUJBQ2pCOzBFQUdRLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBFcnJvck1lc3NhZ2VQaXBlIH0gZnJvbSAnLi4vLi4vY29yZS9waXBlcyc7XHJcbmltcG9ydCB7IFNwZWNpYWxGb3JtQ29udHJvbCB9IGZyb20gJy4uLy4uL2NvcmUvZm9ybXMvc3BlY2lhbC1mb3Jtcyc7XHJcbmltcG9ydCB7IElDaGVja2JveFNldHRpbmdzIH0gZnJvbSAnLi9zcGVjaWFsLWNoZWNrYm94LmludGVyZmFjZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgc2VsZWN0b3I6ICdzcC1jaGVja2JveCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NwZWNpYWwtY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NwZWNpYWwtY2hlY2tib3guY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIEVycm9yTWVzc2FnZVBpcGUsXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNwZWNpYWxDaGVja2JveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgY29udHJvbCE6IFNwZWNpYWxGb3JtQ29udHJvbDxJQ2hlY2tib3hTZXR0aW5ncz47XHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge31cclxufVxyXG4iLCI8ZGl2XHJcbiAgKm5nSWY9XCJjb250cm9sICYmICFjb250cm9sLmhpZGRlblwiXHJcbiAgW2lkXT1cImNvbnRyb2wuZWxlbWVudElkXCJcclxuICBjbGFzcz1cInNwZWNpYWwtY2hlY2tib3ggdy1mdWxsIG1iLTMgZmxleCBmbGV4LWNvbCB7eyBjb250cm9sLnN0eWxlQ2xhc3NlcyB9fVwiXHJcbj5cclxuICA8bWF0LWxhYmVsICpuZ0lmPVwiY29udHJvbC5sYWJlbFwiPnt7IGNvbnRyb2wubGFiZWwgfX08L21hdC1sYWJlbD5cclxuICA8bWF0LWNoZWNrYm94XHJcbiAgICBbcmVxdWlyZWRdPVwiY29udHJvbC5yZXF1aXJlZFwiXHJcbiAgICBbbmdNb2RlbF09XCJjb250cm9sLnZhbHVlXCJcclxuICAgIChuZ01vZGVsQ2hhbmdlKT1cImNvbnRyb2wuc2V0VmFsdWUoJGV2ZW50KTsgY29udHJvbC5tYXJrQXNEaXJ0eSgpXCJcclxuICAgIFtpbmRldGVybWluYXRlXT1cImNvbnRyb2wuc2V0dGluZ3MuaW5kZXRlcm1pbmF0ZVwiXHJcbiAgICBbbGFiZWxQb3NpdGlvbl09XCJjb250cm9sLnNldHRpbmdzLmxhYmVsUG9zaXRpb25cIlxyXG4gICAgW2NvbG9yXT1cImNvbnRyb2wuc2V0dGluZ3MuY29sb3JcIlxyXG4gICAgW2Rpc2FibGVkXT1cImNvbnRyb2wuZGlzYWJsZWRcIlxyXG4gID5cclxuICAgIDxtYXQtaWNvbiAqbmdJZj1cImNvbnRyb2wuaWNvblwiIG1hdFN1ZmZpeD57eyBjb250cm9sLmljb24gfX0gPC9tYXQtaWNvbj5cclxuICAgIHt7IGNvbnRyb2wucGxhY2Vob2xkZXIgfX1cclxuICA8L21hdC1jaGVja2JveD5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -21,7 +21,7 @@ export class SpecialDatepickerComponent {
|
|
|
21
21
|
ngOnInit() { }
|
|
22
22
|
}
|
|
23
23
|
SpecialDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SpecialDatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
24
|
-
SpecialDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: SpecialDatepickerComponent, isStandalone: true, selector: "sp-datepicker", inputs: { control: "control" }, ngImport: i0, template: "<mat-form-field\n *ngIf=\"control && !control.hidden\"\n [id]=\"control.elementId\"\n class=\"special-datepicker w-full mb-3 {{ control.styleClasses }}\"\n [appearance]=\"control.label ? 'outline' : 'fill'\"\n>\n <mat-label *ngIf=\"control.label\">{{ control.label }}</mat-label>\n <input\n matInput\n autocomplete=\"off\"\n [readonly]=\"control.readOnly\"\n [matDatepicker]=\"picker\"\n [required]=\"control.required\"\n [placeholder]=\"control.placeholder\"\n [formControl]=\"control\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker startView=\"year\" [startAt]=\"startAt\">\n </mat-datepicker>\n <mat-hint>\n {{ control.tooltip }}\n </mat-hint>\n <mat-error>\n {{ control.errors | errorMessage: control.errorMessages }}\n </mat-error>\n</mat-form-field>\n", styles: [":host{display:contents}\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: "directive", type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i3.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i3.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i3.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "pipe", type: ErrorMessagePipe, name: "errorMessage" }, { kind: "ngmodule", type: MatNativeDateModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
24
|
+
SpecialDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: SpecialDatepickerComponent, isStandalone: true, selector: "sp-datepicker", inputs: { control: "control" }, ngImport: i0, template: "<mat-form-field\r\n *ngIf=\"control && !control.hidden\"\r\n [id]=\"control.elementId\"\r\n class=\"special-datepicker w-full mb-3 {{ control.styleClasses }}\"\r\n [appearance]=\"control.label ? 'outline' : 'fill'\"\r\n>\r\n <mat-label *ngIf=\"control.label\">{{ control.label }}</mat-label>\r\n <input\r\n matInput\r\n autocomplete=\"off\"\r\n [readonly]=\"control.readOnly\"\r\n [matDatepicker]=\"picker\"\r\n [required]=\"control.required\"\r\n [placeholder]=\"control.placeholder\"\r\n [formControl]=\"control\"\r\n />\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker startView=\"year\" [startAt]=\"startAt\">\r\n </mat-datepicker>\r\n <mat-hint>\r\n {{ control.tooltip }}\r\n </mat-hint>\r\n <mat-error>\r\n {{ control.errors | errorMessage: control.errorMessages }}\r\n </mat-error>\r\n</mat-form-field>\r\n", styles: [":host{display:contents}\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: "directive", type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i3.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i3.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i3.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "pipe", type: ErrorMessagePipe, name: "errorMessage" }, { kind: "ngmodule", type: MatNativeDateModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
25
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SpecialDatepickerComponent, decorators: [{
|
|
26
26
|
type: Component,
|
|
27
27
|
args: [{ standalone: true, selector: 'sp-datepicker', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
@@ -33,8 +33,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
33
33
|
MatButtonModule,
|
|
34
34
|
ErrorMessagePipe,
|
|
35
35
|
MatNativeDateModule,
|
|
36
|
-
], template: "<mat-form-field\n *ngIf=\"control && !control.hidden\"\n [id]=\"control.elementId\"\n class=\"special-datepicker w-full mb-3 {{ control.styleClasses }}\"\n [appearance]=\"control.label ? 'outline' : 'fill'\"\n>\n <mat-label *ngIf=\"control.label\">{{ control.label }}</mat-label>\n <input\n matInput\n autocomplete=\"off\"\n [readonly]=\"control.readOnly\"\n [matDatepicker]=\"picker\"\n [required]=\"control.required\"\n [placeholder]=\"control.placeholder\"\n [formControl]=\"control\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker startView=\"year\" [startAt]=\"startAt\">\n </mat-datepicker>\n <mat-hint>\n {{ control.tooltip }}\n </mat-hint>\n <mat-error>\n {{ control.errors | errorMessage: control.errorMessages }}\n </mat-error>\n</mat-form-field>\n", styles: [":host{display:contents}\n"] }]
|
|
36
|
+
], template: "<mat-form-field\r\n *ngIf=\"control && !control.hidden\"\r\n [id]=\"control.elementId\"\r\n class=\"special-datepicker w-full mb-3 {{ control.styleClasses }}\"\r\n [appearance]=\"control.label ? 'outline' : 'fill'\"\r\n>\r\n <mat-label *ngIf=\"control.label\">{{ control.label }}</mat-label>\r\n <input\r\n matInput\r\n autocomplete=\"off\"\r\n [readonly]=\"control.readOnly\"\r\n [matDatepicker]=\"picker\"\r\n [required]=\"control.required\"\r\n [placeholder]=\"control.placeholder\"\r\n [formControl]=\"control\"\r\n />\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker startView=\"year\" [startAt]=\"startAt\">\r\n </mat-datepicker>\r\n <mat-hint>\r\n {{ control.tooltip }}\r\n </mat-hint>\r\n <mat-error>\r\n {{ control.errors | errorMessage: control.errorMessages }}\r\n </mat-error>\r\n</mat-form-field>\r\n", styles: [":host{display:contents}\n"] }]
|
|
37
37
|
}], ctorParameters: function () { return []; }, propDecorators: { control: [{
|
|
38
38
|
type: Input
|
|
39
39
|
}] } });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1kYXRlcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWNpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3NwZWNpYWwtZGF0ZXBpY2tlci9zcGVjaWFsLWRhdGVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC1kYXRlcGlja2VyL3NwZWNpYWwtZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7O0FBbUJwRCxNQUFNLE9BQU8sMEJBQTBCO0lBR3JDLGdCQUFlLENBQUM7SUFFaEIsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxPQUFPLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUN0RCxDQUFDO0lBRUQsUUFBUSxLQUFVLENBQUM7O3VIQVRSLDBCQUEwQjsyR0FBMUIsMEJBQTBCLHlHQ2pDdkMsbTVCQTBCQSxrRkRISSxjQUFjLDQ2QkFDZCxtQkFBbUIsaWdCQUNuQixZQUFZLGtJQUNaLGFBQWEsOEJBQ2IsbUJBQW1CLHN5QkFDbkIsZUFBZSwwQkFDZixnQkFBZ0Isb0RBQ2hCLG1CQUFtQjsyRkFHViwwQkFBMEI7a0JBakJ0QyxTQUFTO2lDQUNJLElBQUksWUFDTixlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixtQkFBbUI7cUJBQ3BCOzBFQUdRLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0TmF0aXZlRGF0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IFNwZWNpYWxGb3JtQ29udHJvbCB9IGZyb20gJy4uLy4uL2NvcmUvZm9ybXMvc3BlY2lhbC1mb3Jtcyc7XHJcbmltcG9ydCB7IEVycm9yTWVzc2FnZVBpcGUgfSBmcm9tICcuLi8uLi9jb3JlL3BpcGVzJztcclxuaW1wb3J0IHsgSURhdGVQaWNrZXJTZXR0aW5ncyB9IGZyb20gJy4vc3BlY2lhbC1kYXRlcGlja2VyLmludGVyZmFjZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgc2VsZWN0b3I6ICdzcC1kYXRlcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3BlY2lhbC1kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zcGVjaWFsLWRhdGVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIEVycm9yTWVzc2FnZVBpcGUsXHJcbiAgICBNYXROYXRpdmVEYXRlTW9kdWxlLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcGVjaWFsRGF0ZXBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgY29udHJvbCE6IFNwZWNpYWxGb3JtQ29udHJvbDxJRGF0ZVBpY2tlclNldHRpbmdzPjtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBnZXQgc3RhcnRBdCgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuc2V0dGluZ3M/LnN0YXJ0QXQgfHwgbmV3IERhdGUoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge31cclxufVxyXG4iLCI8bWF0LWZvcm0tZmllbGRcclxuICAqbmdJZj1cImNvbnRyb2wgJiYgIWNvbnRyb2wuaGlkZGVuXCJcclxuICBbaWRdPVwiY29udHJvbC5lbGVtZW50SWRcIlxyXG4gIGNsYXNzPVwic3BlY2lhbC1kYXRlcGlja2VyIHctZnVsbCBtYi0zICB7eyBjb250cm9sLnN0eWxlQ2xhc3NlcyB9fVwiXHJcbiAgW2FwcGVhcmFuY2VdPVwiY29udHJvbC5sYWJlbCA/ICdvdXRsaW5lJyA6ICdmaWxsJ1wiXHJcbj5cclxuICA8bWF0LWxhYmVsICpuZ0lmPVwiY29udHJvbC5sYWJlbFwiPnt7IGNvbnRyb2wubGFiZWwgfX08L21hdC1sYWJlbD5cclxuICA8aW5wdXRcclxuICAgIG1hdElucHV0XHJcbiAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgW3JlYWRvbmx5XT1cImNvbnRyb2wucmVhZE9ubHlcIlxyXG4gICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCJcclxuICAgIFtyZXF1aXJlZF09XCJjb250cm9sLnJlcXVpcmVkXCJcclxuICAgIFtwbGFjZWhvbGRlcl09XCJjb250cm9sLnBsYWNlaG9sZGVyXCJcclxuICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcclxuICAvPlxyXG4gIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwicGlja2VyXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XHJcbiAgPG1hdC1kYXRlcGlja2VyICNwaWNrZXIgc3RhcnRWaWV3PVwieWVhclwiIFtzdGFydEF0XT1cInN0YXJ0QXRcIj5cclxuICA8L21hdC1kYXRlcGlja2VyPlxyXG4gIDxtYXQtaGludD5cclxuICAgIHt7IGNvbnRyb2wudG9vbHRpcCB9fVxyXG4gIDwvbWF0LWhpbnQ+XHJcbiAgPG1hdC1lcnJvcj5cclxuICAgIHt7IGNvbnRyb2wuZXJyb3JzIHwgZXJyb3JNZXNzYWdlOiBjb250cm9sLmVycm9yTWVzc2FnZXMgfX1cclxuICA8L21hdC1lcnJvcj5cclxuPC9tYXQtZm9ybS1maWVsZD5cclxuIl19
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class ErrorStateMatcherService {
|
|
4
|
+
isErrorState(control) {
|
|
5
|
+
return control && control.invalid && control.dirty;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
ErrorStateMatcherService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ErrorStateMatcherService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
9
|
+
ErrorStateMatcherService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ErrorStateMatcherService });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ErrorStateMatcherService, decorators: [{
|
|
11
|
+
type: Injectable
|
|
12
|
+
}] });
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItbWF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWNpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3NwZWNpYWwtZm9ybS9lcnJvci1tYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDLE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsWUFBWSxDQUFDLE9BQW9CO1FBQy9CLE9BQU8sT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQztJQUNyRCxDQUFDOztxSEFIVSx3QkFBd0I7eUhBQXhCLHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cERpcmVjdGl2ZSwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBFcnJvclN0YXRlTWF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBFcnJvclN0YXRlTWF0Y2hlclNlcnZpY2UgaW1wbGVtZW50cyBFcnJvclN0YXRlTWF0Y2hlciB7XHJcbiAgaXNFcnJvclN0YXRlKGNvbnRyb2w6IEZvcm1Db250cm9sKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gY29udHJvbCAmJiBjb250cm9sLmludmFsaWQgJiYgY29udHJvbC5kaXJ0eTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -22,10 +22,10 @@ export class SpecialFormComponent {
|
|
|
22
22
|
ngOnInit() { }
|
|
23
23
|
}
|
|
24
24
|
SpecialFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SpecialFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
25
|
-
SpecialFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: SpecialFormComponent, selector: "sp-form", inputs: { form: ["control", "form"] }, ngImport: i0, template: "<div\n *ngIf=\"form && !form.hidden\"\n [id]=\"form.elementId\"\n class=\"special-form w-full box-border p-2 {{ form.styleClasses }}\"\n>\n <div\n *ngIf=\"form\"\n [class]=\"\n form.label\n ? 'w-full mt-2 p-3 border-slate-200 border border-solid box-border'\n : 'container'\n \"\n >\n <h1 *ngIf=\"!!form.label\" class=\"font-bold py-3\">{{ form.label }}</h1>\n <div class=\"w-full flex flex-wrap\">\n <ng-template\n *ngFor=\"let control of form.controls | controlsList\"\n controlRender\n [control]=\"control\"\n ></ng-template>\n </div>\n </div>\n</div>\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i1.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return FormControlsRenderDirective; }), selector: "[controlRender]", inputs: ["control"] }, { kind: "pipe", type: i0.forwardRef(function () { return i2.FormControlsListPipe; }), name: "controlsList" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
25
|
+
SpecialFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: SpecialFormComponent, selector: "sp-form", inputs: { form: ["control", "form"] }, ngImport: i0, template: "<div\r\n *ngIf=\"form && !form.hidden\"\r\n [id]=\"form.elementId\"\r\n class=\"special-form w-full box-border p-2 {{ form.styleClasses }}\"\r\n>\r\n <div\r\n *ngIf=\"form\"\r\n [class]=\"\r\n form.label\r\n ? 'w-full mt-2 p-3 border-slate-200 border border-solid box-border'\r\n : 'container'\r\n \"\r\n >\r\n <h1 *ngIf=\"!!form.label\" class=\"font-bold py-3\">{{ form.label }}</h1>\r\n <div class=\"w-full flex flex-wrap\">\r\n <ng-template\r\n *ngFor=\"let control of form.controls | controlsList\"\r\n controlRender\r\n [control]=\"control\"\r\n ></ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i1.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return FormControlsRenderDirective; }), selector: "[controlRender]", inputs: ["control"] }, { kind: "pipe", type: i0.forwardRef(function () { return i2.FormControlsListPipe; }), name: "controlsList" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
26
26
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SpecialFormComponent, decorators: [{
|
|
27
27
|
type: Component,
|
|
28
|
-
args: [{ selector: 'sp-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"form && !form.hidden\"\n [id]=\"form.elementId\"\n class=\"special-form w-full box-border p-2 {{ form.styleClasses }}\"\n>\n <div\n *ngIf=\"form\"\n [class]=\"\n form.label\n ? 'w-full mt-2 p-3 border-slate-200 border border-solid box-border'\n : 'container'\n \"\n >\n <h1 *ngIf=\"!!form.label\" class=\"font-bold py-3\">{{ form.label }}</h1>\n <div class=\"w-full flex flex-wrap\">\n <ng-template\n *ngFor=\"let control of form.controls | controlsList\"\n controlRender\n [control]=\"control\"\n ></ng-template>\n </div>\n </div>\n</div>\n", styles: [":host{display:contents}\n"] }]
|
|
28
|
+
args: [{ selector: 'sp-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n *ngIf=\"form && !form.hidden\"\r\n [id]=\"form.elementId\"\r\n class=\"special-form w-full box-border p-2 {{ form.styleClasses }}\"\r\n>\r\n <div\r\n *ngIf=\"form\"\r\n [class]=\"\r\n form.label\r\n ? 'w-full mt-2 p-3 border-slate-200 border border-solid box-border'\r\n : 'container'\r\n \"\r\n >\r\n <h1 *ngIf=\"!!form.label\" class=\"font-bold py-3\">{{ form.label }}</h1>\r\n <div class=\"w-full flex flex-wrap\">\r\n <ng-template\r\n *ngFor=\"let control of form.controls | controlsList\"\r\n controlRender\r\n [control]=\"control\"\r\n ></ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host{display:contents}\n"] }]
|
|
29
29
|
}], propDecorators: { form: [{
|
|
30
30
|
type: Input,
|
|
31
31
|
args: ['control']
|
|
@@ -96,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
96
96
|
type: Input,
|
|
97
97
|
args: ['control']
|
|
98
98
|
}] } });
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWNpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3NwZWNpYWwtZm9ybS9zcGVjaWFsLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC1mb3JtL3NwZWNpYWwtZm9ybS5jb21wb25lbnQuaHRtbCIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWNpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3NwZWNpYWwtZm9ybS9zcGVjaWFsLWZvcm0tYXJyYXkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBS3ZFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDBFQUEwRSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSx3QkFBd0IsRUFB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LG9CQUFvQjtZQUMxQyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSx3QkFBd0I7U0FDbkQsQ0FBQztJQVVvRCxDQUFDOzt3SEF4QjVDLDJCQUEyQjs0R0FBM0IsMkJBQTJCOzJGQUEzQiwyQkFBMkI7a0JBSHZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7dUdBZ0J1QixhQUFhO3NCQUFsQyxLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgRGlyZWN0aXZlLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRUNvbnRyb2xUeXBlcyB9IGZyb20gJy4uLy4uL2NvcmUvYXV4LWRhdGEvY29udHJvbC10eXBlcy5lbnVtJztcbmltcG9ydCB7XG4gIFNwZWNpYWxGb3JtR3JvdXAsXG4gIFNwZWNpYWxGb3JtQ29udHJvbCxcbn0gZnJvbSAnLi4vLi4vY29yZS9mb3Jtcy9zcGVjaWFsLWZvcm1zJztcbmltcG9ydCB7IFNwZWNpYWxBdXRvY29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuLi9zcGVjaWFsLWF1dG9jb21wbGV0ZS9zcGVjaWFsLWF1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3BlY2lhbENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vc3BlY2lhbC1jaGVja2JveC9zcGVjaWFsLWNoZWNrYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTcGVjaWFsRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL3NwZWNpYWwtZGF0ZXBpY2tlci9zcGVjaWFsLWRhdGVwaWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNwZWNpYWxEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4uL3NwZWNpYWwtZHJvcGRvd24vc3BlY2lhbC1kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3BlY2lhbElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vc3BlY2lhbC1pbnB1dC9zcGVjaWFsLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTcGVjaWFsTGFiZWxDb21wb25lbnQgfSBmcm9tICcuLi9zcGVjaWFsLWxhYmVsL3NwZWNpYWwtbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFNwZWNpYWxNdWx0aXBsZUF1dG9jb21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4uL3NwZWNpYWwtbXVsdGlwbGUtYXV0b2NvbXBsZXRlL3NwZWNpYWwtbXVsdGlwbGUtYXV0b2NvbXBsZXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTcGVjaWFsUmljaHRleHRDb21wb25lbnQgfSBmcm9tICcuLi9zcGVjaWFsLXJpY2h0ZXh0L3NwZWNpYWwtcmljaHRleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFNwZWNpYWxUZXh0QXJlYUNvbXBvbmVudCB9IGZyb20gJy4uL3NwZWNpYWwtdGV4dC1hcmVhL3NwZWNpYWwtdGV4dC1hcmVhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTcGVjaWFsVXBsb2FkQ29tcG9uZW50IH0gZnJvbSAnLi4vc3BlY2lhbC11cGxvYWQvc3BlY2lhbC11cGxvYWQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3AtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zcGVjaWFsLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zcGVjaWFsLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNwZWNpYWxGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCdjb250cm9sJykgZm9ybTogU3BlY2lhbEZvcm1Hcm91cDtcbiAgc2V0IGNvbnRyb2woZm9ybTogU3BlY2lhbEZvcm1Hcm91cCkge1xuICAgIHRoaXMuZm9ybSA9IGZvcm07XG4gIH1cbiAgbmdPbkluaXQoKTogdm9pZCB7fVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcC1hcnJheScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zcGVjaWFsLWZvcm0tYXJyYXkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zcGVjaWFsLWZvcm0tYXJyYXkuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNwZWNpYWxBcnJheUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgnY29udHJvbCcpIGZvcm1BcnJheTogYW55O1xuXG4gIHNldCBjb250cm9sKGZvcm1BcnJheTogYW55KSB7XG4gICAgdGhpcy5mb3JtQXJyYXkgPSBmb3JtQXJyYXk7XG4gIH1cblxuICBnZXQgd2l0aEZvcm1IZWFkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUFycmF5LnNldHRpbmdzLndpdGhGb3JtSGVhZGVyO1xuICB9XG5cbiAgZ2V0IHNldHRpbmdzKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm1BcnJheS5zZXR0aW5ncztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpIHt9XG5cbiAgcmVtb3ZlSXRlbShpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5mb3JtQXJyYXkucmVtb3ZlQXQoaW5kZXgpO1xuICB9XG4gIGFkZEl0ZW0oKSB7XG4gICAgdGhpcy5mb3JtQXJyYXkuYWRkSXRlbSgpO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogYFtjb250cm9sUmVuZGVyXWAsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1Db250cm9sc1JlbmRlckRpcmVjdGl2ZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50c0J1ZmZlciA9IHtcbiAgICBbRUNvbnRyb2xUeXBlcy5hdXRvY29tcGxldGVdOiBTcGVjaWFsQXV0b2NvbXBsZXRlQ29tcG9uZW50LFxuICAgIFtFQ29udHJvbFR5cGVzLmNoZWNrYm94XTogU3BlY2lhbENoZWNrYm94Q29tcG9uZW50LFxuICAgIFtFQ29udHJvbFR5cGVzLmRhdGVdOiBTcGVjaWFsRGF0ZXBpY2tlckNvbXBvbmVudCxcbiAgICBbRUNvbnRyb2xUeXBlcy5kcm9wZG93bl06IFNwZWNpYWxEcm9wZG93bkNvbXBvbmVudCxcbiAgICBbRUNvbnRyb2xUeXBlcy5hcnJheV06IFNwZWNpYWxBcnJheUNvbXBvbmVudCxcbiAgICBbRUNvbnRyb2xUeXBlcy5pbnB1dF06IFNwZWNpYWxJbnB1dENvbXBvbmVudCxcbiAgICBbRUNvbnRyb2xUeXBlcy5tdWx0aXBsZV06IFNwZWNpYWxNdWx0aXBsZUF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICBbRUNvbnRyb2xUeXBlcy50ZXh0QXJlYV06IFNwZWNpYWxUZXh0QXJlYUNvbXBvbmVudCxcbiAgICBbRUNvbnRyb2xUeXBlcy5sYWJlbF06IFNwZWNpYWxMYWJlbENvbXBvbmVudCxcbiAgICBbRUNvbnRyb2xUeXBlcy51cGxvYWRdOiBTcGVjaWFsVXBsb2FkQ29tcG9uZW50LFxuICAgIFtFQ29udHJvbFR5cGVzLmZvcm1dOiBTcGVjaWFsRm9ybUNvbXBvbmVudCxcbiAgICBbRUNvbnRyb2xUeXBlcy5yaWNoVGV4dF06IFNwZWNpYWxSaWNodGV4dENvbXBvbmVudCxcbiAgfTtcbiAgQElucHV0KCdjb250cm9sJykgc2V0IGNvbnRyb2xTZXR0ZXIoY29udHJvbDogU3BlY2lhbEZvcm1Db250cm9sPGFueT4pIHtcbiAgICB0aGlzLnZpZXdDb250YWluZXIuY2xlYXIoKTtcbiAgICBjb25zdCBjb21wb25lbnQgPSAodGhpcy5jb21wb25lbnRzQnVmZmVyIGFzIGFueSlbY29udHJvbC50eXBlXTtcbiAgICBpZiAoY29tcG9uZW50KSB7XG4gICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudCk7XG4gICAgICAoY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIGFueSkuY29udHJvbCA9IGNvbnRyb2w7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKSB7fVxufVxuIiwiPGRpdlxuICAqbmdJZj1cImZvcm0gJiYgIWZvcm0uaGlkZGVuXCJcbiAgW2lkXT1cImZvcm0uZWxlbWVudElkXCJcbiAgY2xhc3M9XCJzcGVjaWFsLWZvcm0gdy1mdWxsIGJveC1ib3JkZXIgcC0yIHt7IGZvcm0uc3R5bGVDbGFzc2VzIH19XCJcbj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiZm9ybVwiXG4gICAgW2NsYXNzXT1cIlxuICAgICAgZm9ybS5sYWJlbFxuICAgICAgICA/ICd3LWZ1bGwgbXQtMiBwLTMgYm9yZGVyLXNsYXRlLTIwMCBib3JkZXIgYm9yZGVyLXNvbGlkIGJveC1ib3JkZXInXG4gICAgICAgIDogJ2NvbnRhaW5lcidcbiAgICBcIlxuICA+XG4gICAgPGgxICpuZ0lmPVwiISFmb3JtLmxhYmVsXCIgY2xhc3M9XCJmb250LWJvbGQgcHktM1wiPnt7IGZvcm0ubGFiZWwgfX08L2gxPlxuICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgZmxleCBmbGV4LXdyYXBcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAqbmdGb3I9XCJsZXQgY29udHJvbCBvZiBmb3JtLmNvbnRyb2xzIHwgY29udHJvbHNMaXN0XCJcbiAgICAgICAgY29udHJvbFJlbmRlclxuICAgICAgICBbY29udHJvbF09XCJjb250cm9sXCJcbiAgICAgID48L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIiwiPGRpdlxyXG4gICpuZ0lmPVwiZm9ybUFycmF5ICYmICFmb3JtQXJyYXkuaGlkZGVuXCJcclxuICBbaWRdPVwiZm9ybUFycmF5LmVsZW1lbnRJZFwiXHJcbiAgY2xhc3M9XCJzcGVjaWFsLWZvcm0tYXJyYXkgdy1mdWxsIGJveC1ib3JkZXIgcC0yIHt7IGZvcm1BcnJheS5zdHlsZUNsYXNzZXMgfX1cIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cInctZnVsbCBtdC0yIHAtMyBib3JkZXItc2xhdGUtMjAwIGJvcmRlciBib3JkZXItc29saWQgYm94LWJvcmRlclwiPlxyXG4gICAgPGgxICpuZ0lmPVwiISFmb3JtQXJyYXkubGFiZWxcIiBjbGFzcz1cImZvbnQtYm9sZCBweS0zXCI+XHJcbiAgICAgIHt7IGZvcm1BcnJheS5sYWJlbCB9fVxyXG4gICAgPC9oMT5cclxuICAgIDxkaXYgY2xhc3M9XCJkaXZpZGUteSBkaXZpZGUteC0wIGRpdmlkZS1zb2xpZCBkaXZpZGUtc2xhdGUtMjAwXCI+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICAqbmdJZj1cImZvcm1BcnJheS5mb3JtXCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7ICdtZDpncmlkLWNvbHMtMTUnOiBzZXR0aW5ncy53aXRoQWN0aW9uQnV0dG9ucyB9XCJcclxuICAgICAgICBjbGFzcz1cImdyaWQgZ2FwLTQgZ3JpZC1jb2xzLTEyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhd2l0aEZvcm1IZWFkZXI7IGVsc2UgRk9STUhFQURFUlJFRlwiPlxyXG4gICAgICAgICAgPGgyXHJcbiAgICAgICAgICAgIFtjbGFzc109XCJpdGVtLnN0eWxlQ2xhc3Nlc1wiXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZvcm1BcnJheS5mb3JtLmNvbnRyb2xzIHwgY29udHJvbHNMaXN0XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgaXRlbS5sYWJlbCB9fVxyXG4gICAgICAgICAgPC9oMj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgKm5nSWY9XCJzZXR0aW5ncy53aXRoQWN0aW9uQnV0dG9uc1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiXHJcbiAgICAgICAgICAgICAgY29sLXN0YXJ0LTcgY29sLWVuZC0xM1xyXG4gICAgICAgICAgICAgIG1kOmNvbC1zdGFydC0xMyBtZDpjb2wtZW5kLTE2XHJcbiAgICAgICAgICAgICAgcGItNVxyXG4gICAgICAgICAgICAgIG15LWF1dG9cclxuICAgICAgICAgICAgICBtbC1hdXRvXHJcbiAgICAgICAgICAgICAgbWQ6bS1hdXRvXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNGT1JNSEVBREVSUkVGPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZvcm1BcnJheS5mb3JtLmNvbnRyb2xzIHwgY29udHJvbHNMaXN0XCJcclxuICAgICAgICAgICAgY29udHJvbFJlbmRlclxyXG4gICAgICAgICAgICBbY29udHJvbF09XCJpdGVtXCJcclxuICAgICAgICAgID48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAqbmdJZj1cInNldHRpbmdzLndpdGhBY3Rpb25CdXR0b25zXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJcclxuICAgICAgICAgICAgICBjb2wtc3RhcnQtNyBjb2wtZW5kLTEzXHJcbiAgICAgICAgICAgICAgbWQ6Y29sLXN0YXJ0LTEzIG1kOmNvbC1lbmQtMTZcclxuICAgICAgICAgICAgICBwYi01XHJcbiAgICAgICAgICAgICAgbXktYXV0b1xyXG4gICAgICAgICAgICAgIG1sLWF1dG9cclxuICAgICAgICAgICAgICBtZDptLWF1dG9cclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZvcm1BcnJheS5mb3JtLmludmFsaWRcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJhZGRJdGVtKClcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3tzZXR0aW5ncy5hZGRBY3Rpb25MYWJlbCB8fCAnQWRkJ319XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cInctZnVsbCBwdC01IGdyaWQgZ2FwLTQgZ3JpZC1jb2xzLTEyIG1kOmdyaWQtY29scy0xNVwiXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IGZvcm1Hcm91cCBvZiBmb3JtQXJyYXkuY29udHJvbHM7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmb3JtR3JvdXAuY29udHJvbHMgfCBjb250cm9sc0xpc3RcIlxyXG4gICAgICAgICAgY29udHJvbFJlbmRlclxyXG4gICAgICAgICAgW2NvbnRyb2xdPVwiaXRlbVwiXHJcbiAgICAgICAgPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJcclxuICAgICAgICAgICAgY29sLXN0YXJ0LTcgY29sLWVuZC0xM1xyXG4gICAgICAgICAgICBtZDpjb2wtc3RhcnQtMTMgbWQ6Y29sLWVuZC0xNlxyXG4gICAgICAgICAgICBwYi01XHJcbiAgICAgICAgICAgIG15LWF1dG9cclxuICAgICAgICAgICAgbWwtYXV0b1xyXG4gICAgICAgICAgICBtZDptLWF1dG9cclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJ3YXJuXCIgKGNsaWNrKT1cInJlbW92ZUl0ZW0oaSlcIj5cclxuICAgICAgICAgICAge3sgc2V0dGluZ3MucmVtb3ZlQWN0aW9uTGFiZWwgfHwgXCJSZW1vdmVcIiB9fVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWNpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3NwZWNpYWwtZm9ybS9zcGVjaWFsLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC1mb3JtL3NwZWNpYWwtZm9ybS5jb21wb25lbnQuaHRtbCIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWNpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3NwZWNpYWwtZm9ybS9zcGVjaWFsLWZvcm0tYXJyYXkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBS3ZFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDBFQUEwRSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSx3QkFBd0IsRUFB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LG9CQUFvQjtZQUMxQyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSx3QkFBd0I7U0FDbkQsQ0FBQztJQVVvRCxDQUFDOzt3SEF4QjVDLDJCQUEyQjs0R0FBM0IsMkJBQTJCOzJGQUEzQiwyQkFBMkI7a0JBSHZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7dUdBZ0J1QixhQUFhO3NCQUFsQyxLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIERpcmVjdGl2ZSxcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRUNvbnRyb2xUeXBlcyB9IGZyb20gJy4uLy4uL2NvcmUvYXV4LWRhdGEvY29udHJvbC10eXBlcy5lbnVtJztcclxuaW1wb3J0IHtcclxuICBTcGVjaWFsRm9ybUdyb3VwLFxyXG4gIFNwZWNpYWxGb3JtQ29udHJvbCxcclxufSBmcm9tICcuLi8uLi9jb3JlL2Zvcm1zL3NwZWNpYWwtZm9ybXMnO1xyXG5pbXBvcnQgeyBTcGVjaWFsQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vc3BlY2lhbC1hdXRvY29tcGxldGUvc3BlY2lhbC1hdXRvY29tcGxldGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3BlY2lhbENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vc3BlY2lhbC1jaGVja2JveC9zcGVjaWFsLWNoZWNrYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNwZWNpYWxEYXRlcGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vc3BlY2lhbC1kYXRlcGlja2VyL3NwZWNpYWwtZGF0ZXBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTcGVjaWFsRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi9zcGVjaWFsLWRyb3Bkb3duL3NwZWNpYWwtZHJvcGRvd24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3BlY2lhbElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vc3BlY2lhbC1pbnB1dC9zcGVjaWFsLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNwZWNpYWxMYWJlbENvbXBvbmVudCB9IGZyb20gJy4uL3NwZWNpYWwtbGFiZWwvc3BlY2lhbC1sYWJlbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTcGVjaWFsTXVsdGlwbGVBdXRvY29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuLi9zcGVjaWFsLW11bHRpcGxlLWF1dG9jb21wbGV0ZS9zcGVjaWFsLW11bHRpcGxlLWF1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTcGVjaWFsUmljaHRleHRDb21wb25lbnQgfSBmcm9tICcuLi9zcGVjaWFsLXJpY2h0ZXh0L3NwZWNpYWwtcmljaHRleHQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3BlY2lhbFRleHRBcmVhQ29tcG9uZW50IH0gZnJvbSAnLi4vc3BlY2lhbC10ZXh0LWFyZWEvc3BlY2lhbC10ZXh0LWFyZWEuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3BlY2lhbFVwbG9hZENvbXBvbmVudCB9IGZyb20gJy4uL3NwZWNpYWwtdXBsb2FkL3NwZWNpYWwtdXBsb2FkLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwLWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zcGVjaWFsLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NwZWNpYWwtZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3BlY2lhbEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgnY29udHJvbCcpIGZvcm06IFNwZWNpYWxGb3JtR3JvdXA7XHJcbiAgc2V0IGNvbnRyb2woZm9ybTogU3BlY2lhbEZvcm1Hcm91cCkge1xyXG4gICAgdGhpcy5mb3JtID0gZm9ybTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7fVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwLWFycmF5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3BlY2lhbC1mb3JtLWFycmF5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zcGVjaWFsLWZvcm0tYXJyYXkuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNwZWNpYWxBcnJheUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCdjb250cm9sJykgZm9ybUFycmF5OiBhbnk7XHJcblxyXG4gIHNldCBjb250cm9sKGZvcm1BcnJheTogYW55KSB7XHJcbiAgICB0aGlzLmZvcm1BcnJheSA9IGZvcm1BcnJheTtcclxuICB9XHJcblxyXG4gIGdldCB3aXRoRm9ybUhlYWRlcigpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1BcnJheS5zZXR0aW5ncy53aXRoRm9ybUhlYWRlcjtcclxuICB9XHJcblxyXG4gIGdldCBzZXR0aW5ncygpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1BcnJheS5zZXR0aW5ncztcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7fVxyXG5cclxuICByZW1vdmVJdGVtKGluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMuZm9ybUFycmF5LnJlbW92ZUF0KGluZGV4KTtcclxuICB9XHJcbiAgYWRkSXRlbSgpIHtcclxuICAgIHRoaXMuZm9ybUFycmF5LmFkZEl0ZW0oKTtcclxuICB9XHJcbn1cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiBgW2NvbnRyb2xSZW5kZXJdYCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1Db250cm9sc1JlbmRlckRpcmVjdGl2ZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBjb21wb25lbnRzQnVmZmVyID0ge1xyXG4gICAgW0VDb250cm9sVHlwZXMuYXV0b2NvbXBsZXRlXTogU3BlY2lhbEF1dG9jb21wbGV0ZUNvbXBvbmVudCxcclxuICAgIFtFQ29udHJvbFR5cGVzLmNoZWNrYm94XTogU3BlY2lhbENoZWNrYm94Q29tcG9uZW50LFxyXG4gICAgW0VDb250cm9sVHlwZXMuZGF0ZV06IFNwZWNpYWxEYXRlcGlja2VyQ29tcG9uZW50LFxyXG4gICAgW0VDb250cm9sVHlwZXMuZHJvcGRvd25dOiBTcGVjaWFsRHJvcGRvd25Db21wb25lbnQsXHJcbiAgICBbRUNvbnRyb2xUeXBlcy5hcnJheV06IFNwZWNpYWxBcnJheUNvbXBvbmVudCxcclxuICAgIFtFQ29udHJvbFR5cGVzLmlucHV0XTogU3BlY2lhbElucHV0Q29tcG9uZW50LFxyXG4gICAgW0VDb250cm9sVHlwZXMubXVsdGlwbGVdOiBTcGVjaWFsTXVsdGlwbGVBdXRvY29tcGxldGVDb21wb25lbnQsXHJcbiAgICBbRUNvbnRyb2xUeXBlcy50ZXh0QXJlYV06IFNwZWNpYWxUZXh0QXJlYUNvbXBvbmVudCxcclxuICAgIFtFQ29udHJvbFR5cGVzLmxhYmVsXTogU3BlY2lhbExhYmVsQ29tcG9uZW50LFxyXG4gICAgW0VDb250cm9sVHlwZXMudXBsb2FkXTogU3BlY2lhbFVwbG9hZENvbXBvbmVudCxcclxuICAgIFtFQ29udHJvbFR5cGVzLmZvcm1dOiBTcGVjaWFsRm9ybUNvbXBvbmVudCxcclxuICAgIFtFQ29udHJvbFR5cGVzLnJpY2hUZXh0XTogU3BlY2lhbFJpY2h0ZXh0Q29tcG9uZW50LFxyXG4gIH07XHJcbiAgQElucHV0KCdjb250cm9sJykgc2V0IGNvbnRyb2xTZXR0ZXIoY29udHJvbDogU3BlY2lhbEZvcm1Db250cm9sPGFueT4pIHtcclxuICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgY29uc3QgY29tcG9uZW50ID0gKHRoaXMuY29tcG9uZW50c0J1ZmZlciBhcyBhbnkpW2NvbnRyb2wudHlwZV07XHJcbiAgICBpZiAoY29tcG9uZW50KSB7XHJcbiAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50KTtcclxuICAgICAgKGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBhbnkpLmNvbnRyb2wgPSBjb250cm9sO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKSB7fVxyXG59XHJcbiIsIjxkaXZcclxuICAqbmdJZj1cImZvcm0gJiYgIWZvcm0uaGlkZGVuXCJcclxuICBbaWRdPVwiZm9ybS5lbGVtZW50SWRcIlxyXG4gIGNsYXNzPVwic3BlY2lhbC1mb3JtIHctZnVsbCBib3gtYm9yZGVyIHAtMiB7eyBmb3JtLnN0eWxlQ2xhc3NlcyB9fVwiXHJcbj5cclxuICA8ZGl2XHJcbiAgICAqbmdJZj1cImZvcm1cIlxyXG4gICAgW2NsYXNzXT1cIlxyXG4gICAgICBmb3JtLmxhYmVsXHJcbiAgICAgICAgPyAndy1mdWxsIG10LTIgcC0zIGJvcmRlci1zbGF0ZS0yMDAgYm9yZGVyIGJvcmRlci1zb2xpZCBib3gtYm9yZGVyJ1xyXG4gICAgICAgIDogJ2NvbnRhaW5lcidcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGgxICpuZ0lmPVwiISFmb3JtLmxhYmVsXCIgY2xhc3M9XCJmb250LWJvbGQgcHktM1wiPnt7IGZvcm0ubGFiZWwgfX08L2gxPlxyXG4gICAgPGRpdiBjbGFzcz1cInctZnVsbCBmbGV4IGZsZXgtd3JhcFwiPlxyXG4gICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAqbmdGb3I9XCJsZXQgY29udHJvbCBvZiBmb3JtLmNvbnRyb2xzIHwgY29udHJvbHNMaXN0XCJcclxuICAgICAgICBjb250cm9sUmVuZGVyXHJcbiAgICAgICAgW2NvbnRyb2xdPVwiY29udHJvbFwiXHJcbiAgICAgID48L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iLCI8ZGl2XHJcbiAgKm5nSWY9XCJmb3JtQXJyYXkgJiYgIWZvcm1BcnJheS5oaWRkZW5cIlxyXG4gIFtpZF09XCJmb3JtQXJyYXkuZWxlbWVudElkXCJcclxuICBjbGFzcz1cInNwZWNpYWwtZm9ybS1hcnJheSB3LWZ1bGwgYm94LWJvcmRlciBwLTIge3sgZm9ybUFycmF5LnN0eWxlQ2xhc3NlcyB9fVwiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwidy1mdWxsIG10LTIgcC0zIGJvcmRlci1zbGF0ZS0yMDAgYm9yZGVyIGJvcmRlci1zb2xpZCBib3gtYm9yZGVyXCI+XHJcbiAgICA8aDEgKm5nSWY9XCIhIWZvcm1BcnJheS5sYWJlbFwiIGNsYXNzPVwiZm9udC1ib2xkIHB5LTNcIj5cclxuICAgICAge3sgZm9ybUFycmF5LmxhYmVsIH19XHJcbiAgICA8L2gxPlxyXG4gICAgPGRpdiBjbGFzcz1cImRpdmlkZS15IGRpdmlkZS14LTAgZGl2aWRlLXNvbGlkIGRpdmlkZS1zbGF0ZS0yMDBcIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgICpuZ0lmPVwiZm9ybUFycmF5LmZvcm1cIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ21kOmdyaWQtY29scy0xNSc6IHNldHRpbmdzLndpdGhBY3Rpb25CdXR0b25zIH1cIlxyXG4gICAgICAgIGNsYXNzPVwiZ3JpZCBnYXAtNCBncmlkLWNvbHMtMTJcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF3aXRoRm9ybUhlYWRlcjsgZWxzZSBGT1JNSEVBREVSUkVGXCI+XHJcbiAgICAgICAgICA8aDJcclxuICAgICAgICAgICAgW2NsYXNzXT1cIml0ZW0uc3R5bGVDbGFzc2VzXCJcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZm9ybUFycmF5LmZvcm0uY29udHJvbHMgfCBjb250cm9sc0xpc3RcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAqbmdJZj1cInNldHRpbmdzLndpdGhBY3Rpb25CdXR0b25zXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJcclxuICAgICAgICAgICAgICBjb2wtc3RhcnQtNyBjb2wtZW5kLTEzXHJcbiAgICAgICAgICAgICAgbWQ6Y29sLXN0YXJ0LTEzIG1kOmNvbC1lbmQtMTZcclxuICAgICAgICAgICAgICBwYi01XHJcbiAgICAgICAgICAgICAgbXktYXV0b1xyXG4gICAgICAgICAgICAgIG1sLWF1dG9cclxuICAgICAgICAgICAgICBtZDptLWF1dG9cclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI0ZPUk1IRUFERVJSRUY+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZm9ybUFycmF5LmZvcm0uY29udHJvbHMgfCBjb250cm9sc0xpc3RcIlxyXG4gICAgICAgICAgICBjb250cm9sUmVuZGVyXHJcbiAgICAgICAgICAgIFtjb250cm9sXT1cIml0ZW1cIlxyXG4gICAgICAgICAgPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICpuZ0lmPVwic2V0dGluZ3Mud2l0aEFjdGlvbkJ1dHRvbnNcIlxyXG4gICAgICAgICAgICBjbGFzcz1cIlxyXG4gICAgICAgICAgICAgIGNvbC1zdGFydC03IGNvbC1lbmQtMTNcclxuICAgICAgICAgICAgICBtZDpjb2wtc3RhcnQtMTMgbWQ6Y29sLWVuZC0xNlxyXG4gICAgICAgICAgICAgIHBiLTVcclxuICAgICAgICAgICAgICBteS1hdXRvXHJcbiAgICAgICAgICAgICAgbWwtYXV0b1xyXG4gICAgICAgICAgICAgIG1kOm0tYXV0b1xyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgbWF0LWZsYXQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybUFycmF5LmZvcm0uaW52YWxpZFwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZEl0ZW0oKVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7e3NldHRpbmdzLmFkZEFjdGlvbkxhYmVsIHx8ICdBZGQnfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwidy1mdWxsIHB0LTUgZ3JpZCBnYXAtNCBncmlkLWNvbHMtMTIgbWQ6Z3JpZC1jb2xzLTE1XCJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgZm9ybUdyb3VwIG9mIGZvcm1BcnJheS5jb250cm9sczsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZvcm1Hcm91cC5jb250cm9scyB8IGNvbnRyb2xzTGlzdFwiXHJcbiAgICAgICAgICBjb250cm9sUmVuZGVyXHJcbiAgICAgICAgICBbY29udHJvbF09XCJpdGVtXCJcclxuICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cIlxyXG4gICAgICAgICAgICBjb2wtc3RhcnQtNyBjb2wtZW5kLTEzXHJcbiAgICAgICAgICAgIG1kOmNvbC1zdGFydC0xMyBtZDpjb2wtZW5kLTE2XHJcbiAgICAgICAgICAgIHBiLTVcclxuICAgICAgICAgICAgbXktYXV0b1xyXG4gICAgICAgICAgICBtbC1hdXRvXHJcbiAgICAgICAgICAgIG1kOm0tYXV0b1xyXG4gICAgICAgICAgXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cIndhcm5cIiAoY2xpY2spPVwicmVtb3ZlSXRlbShpKVwiPlxyXG4gICAgICAgICAgICB7eyBzZXR0aW5ncy5yZW1vdmVBY3Rpb25MYWJlbCB8fCBcIlJlbW92ZVwiIH19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -13,6 +13,8 @@ import { SpecialCheckboxComponent } from '../special-checkbox/special-checkbox.c
|
|
|
13
13
|
import { SpecialTextAreaComponent } from '../special-text-area/special-text-area.component';
|
|
14
14
|
import { SpecialUploadComponent } from '../special-upload/special-upload.component';
|
|
15
15
|
import { SpecialRichtextComponent } from '../special-richtext/special-richtext.component';
|
|
16
|
+
import { ErrorStateMatcher } from '@angular/material/core';
|
|
17
|
+
import { ErrorStateMatcherService } from './error-matcher';
|
|
16
18
|
import * as i0 from "@angular/core";
|
|
17
19
|
export class SpecialFormModule {
|
|
18
20
|
}
|
|
@@ -34,7 +36,12 @@ SpecialFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versi
|
|
|
34
36
|
SpecialUploadComponent], exports: [SpecialArrayComponent,
|
|
35
37
|
FormControlsRenderDirective,
|
|
36
38
|
SpecialFormComponent] });
|
|
37
|
-
SpecialFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SpecialFormModule,
|
|
39
|
+
SpecialFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SpecialFormModule, providers: [
|
|
40
|
+
{
|
|
41
|
+
provide: ErrorStateMatcher,
|
|
42
|
+
useClass: ErrorStateMatcherService,
|
|
43
|
+
},
|
|
44
|
+
], imports: [CommonModule,
|
|
38
45
|
MatButtonModule,
|
|
39
46
|
SpecialRichtextComponent,
|
|
40
47
|
SpecialDropdownComponent,
|
|
@@ -74,6 +81,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
74
81
|
FormControlsRenderDirective,
|
|
75
82
|
SpecialFormComponent,
|
|
76
83
|
],
|
|
84
|
+
providers: [
|
|
85
|
+
{
|
|
86
|
+
provide: ErrorStateMatcher,
|
|
87
|
+
useClass: ErrorStateMatcherService,
|
|
88
|
+
},
|
|
89
|
+
],
|
|
77
90
|
}]
|
|
78
91
|
}] });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1mb3JtLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWNpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3NwZWNpYWwtZm9ybS9zcGVjaWFsLWZvcm0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCwyQkFBMkIsRUFDM0Isb0JBQW9CLEVBQ3BCLHFCQUFxQixHQUN0QixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUMxRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUN0RyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNoRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUNoSSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFtQzNELE1BQU0sT0FBTyxpQkFBaUI7OzhHQUFqQixpQkFBaUI7K0dBQWpCLGlCQUFpQixpQkEvQjFCLHFCQUFxQjtRQUNyQiwyQkFBMkI7UUFDM0Isb0JBQW9CLGFBR3BCLFlBQVk7UUFDWixvQkFBb0I7UUFDcEIsZUFBZTtRQUNmLHdCQUF3QjtRQUN4Qix3QkFBd0I7UUFDeEIscUJBQXFCO1FBQ3JCLDRCQUE0QjtRQUM1QiwwQkFBMEI7UUFDMUIscUJBQXFCO1FBQ3JCLG9DQUFvQztRQUNwQyx3QkFBd0I7UUFDeEIsd0JBQXdCO1FBQ3hCLHNCQUFzQixhQUd0QixxQkFBcUI7UUFDckIsMkJBQTJCO1FBQzNCLG9CQUFvQjsrR0FTWCxpQkFBaUIsYUFQakI7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsUUFBUSxFQUFFLHdCQUF3QjtTQUNuQztLQUNGLFlBeEJDLFlBQVk7UUFFWixlQUFlO1FBQ2Ysd0JBQXdCO1FBQ3hCLHdCQUF3QjtRQUN4QixxQkFBcUI7UUFDckIsNEJBQTRCO1FBQzVCLDBCQUEwQjtRQUMxQixxQkFBcUI7UUFDckIsb0NBQW9DO1FBQ3BDLHdCQUF3QjtRQUN4Qix3QkFBd0I7UUFDeEIsc0JBQXNCOzJGQWNiLGlCQUFpQjtrQkFqQzdCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLHFCQUFxQjt3QkFDckIsMkJBQTJCO3dCQUMzQixvQkFBb0I7cUJBQ3JCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZix3QkFBd0I7d0JBQ3hCLHdCQUF3Qjt3QkFDeEIscUJBQXFCO3dCQUNyQiw0QkFBNEI7d0JBQzVCLDBCQUEwQjt3QkFDMUIscUJBQXFCO3dCQUNyQixvQ0FBb0M7d0JBQ3BDLHdCQUF3Qjt3QkFDeEIsd0JBQXdCO3dCQUN4QixzQkFBc0I7cUJBQ3ZCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxxQkFBcUI7d0JBQ3JCLDJCQUEyQjt3QkFDM0Isb0JBQW9CO3FCQUNyQjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsUUFBUSxFQUFFLHdCQUF3Qjt5QkFDbkM7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIEZvcm1Db250cm9sc1JlbmRlckRpcmVjdGl2ZSxcclxuICBTcGVjaWFsRm9ybUNvbXBvbmVudCxcclxuICBTcGVjaWFsQXJyYXlDb21wb25lbnQsXHJcbn0gZnJvbSAnLi9zcGVjaWFsLWZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2xzTGlzdFBpcGUgfSBmcm9tICcuLi8uLi9jb3JlL3BpcGVzJztcclxuaW1wb3J0IHsgU3BlY2lhbERyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi4vc3BlY2lhbC1kcm9wZG93bi9zcGVjaWFsLWRyb3Bkb3duLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNwZWNpYWxJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uL3NwZWNpYWwtaW5wdXQvc3BlY2lhbC1pbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTcGVjaWFsQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vc3BlY2lhbC1hdXRvY29tcGxldGUvc3BlY2lhbC1hdXRvY29tcGxldGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3BlY2lhbERhdGVwaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9zcGVjaWFsLWRhdGVwaWNrZXIvc3BlY2lhbC1kYXRlcGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNwZWNpYWxMYWJlbENvbXBvbmVudCB9IGZyb20gJy4uL3NwZWNpYWwtbGFiZWwvc3BlY2lhbC1sYWJlbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTcGVjaWFsTXVsdGlwbGVBdXRvY29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuLi9zcGVjaWFsLW11bHRpcGxlLWF1dG9jb21wbGV0ZS9zcGVjaWFsLW11bHRpcGxlLWF1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTcGVjaWFsQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuLi9zcGVjaWFsLWNoZWNrYm94L3NwZWNpYWwtY2hlY2tib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3BlY2lhbFRleHRBcmVhQ29tcG9uZW50IH0gZnJvbSAnLi4vc3BlY2lhbC10ZXh0LWFyZWEvc3BlY2lhbC10ZXh0LWFyZWEuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3BlY2lhbFVwbG9hZENvbXBvbmVudCB9IGZyb20gJy4uL3NwZWNpYWwtdXBsb2FkL3NwZWNpYWwtdXBsb2FkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNwZWNpYWxSaWNodGV4dENvbXBvbmVudCB9IGZyb20gJy4uL3NwZWNpYWwtcmljaHRleHQvc3BlY2lhbC1yaWNodGV4dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFcnJvclN0YXRlTWF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBFcnJvclN0YXRlTWF0Y2hlclNlcnZpY2UgfSBmcm9tICcuL2Vycm9yLW1hdGNoZXInO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFNwZWNpYWxBcnJheUNvbXBvbmVudCxcclxuICAgIEZvcm1Db250cm9sc1JlbmRlckRpcmVjdGl2ZSxcclxuICAgIFNwZWNpYWxGb3JtQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybUNvbnRyb2xzTGlzdFBpcGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBTcGVjaWFsUmljaHRleHRDb21wb25lbnQsXHJcbiAgICBTcGVjaWFsRHJvcGRvd25Db21wb25lbnQsXHJcbiAgICBTcGVjaWFsSW5wdXRDb21wb25lbnQsXHJcbiAgICBTcGVjaWFsQXV0b2NvbXBsZXRlQ29tcG9uZW50LFxyXG4gICAgU3BlY2lhbERhdGVwaWNrZXJDb21wb25lbnQsXHJcbiAgICBTcGVjaWFsTGFiZWxDb21wb25lbnQsXHJcbiAgICBTcGVjaWFsTXVsdGlwbGVBdXRvY29tcGxldGVDb21wb25lbnQsXHJcbiAgICBTcGVjaWFsQ2hlY2tib3hDb21wb25lbnQsXHJcbiAgICBTcGVjaWFsVGV4dEFyZWFDb21wb25lbnQsXHJcbiAgICBTcGVjaWFsVXBsb2FkQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgU3BlY2lhbEFycmF5Q29tcG9uZW50LFxyXG4gICAgRm9ybUNvbnRyb2xzUmVuZGVyRGlyZWN0aXZlLFxyXG4gICAgU3BlY2lhbEZvcm1Db21wb25lbnQsXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogRXJyb3JTdGF0ZU1hdGNoZXIsXHJcbiAgICAgIHVzZUNsYXNzOiBFcnJvclN0YXRlTWF0Y2hlclNlcnZpY2UsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcGVjaWFsRm9ybU1vZHVsZSB7fVxyXG4iXX0=
|