ngx-iso-form 1.0.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 +116 -0
- package/esm2022/lib/Models/Control.mjs +2 -0
- package/esm2022/lib/Models/IsoForm.mjs +8 -0
- package/esm2022/lib/Models/Schema.mjs +2 -0
- package/esm2022/lib/components/controls/iso-base-control.component.mjs +25 -0
- package/esm2022/lib/components/controls/iso-mat-checkbox.component.mjs +17 -0
- package/esm2022/lib/components/controls/iso-mat-currency.component.mjs +18 -0
- package/esm2022/lib/components/controls/iso-mat-date.component.mjs +19 -0
- package/esm2022/lib/components/controls/iso-mat-datetime.component.mjs +19 -0
- package/esm2022/lib/components/controls/iso-mat-input.component.mjs +18 -0
- package/esm2022/lib/components/controls/iso-mat-select.component.mjs +19 -0
- package/esm2022/lib/components/controls/iso-mat-textarea.component.mjs +18 -0
- package/esm2022/lib/components/index.mjs +10 -0
- package/esm2022/lib/components/iso-control/iso-control.component.mjs +72 -0
- package/esm2022/lib/ngx-iso-form.component.mjs +173 -0
- package/esm2022/lib/ngx-iso-form.module.mjs +115 -0
- package/esm2022/lib/ngx-iso-form.service.mjs +228 -0
- package/esm2022/lib/shared/components/dynamic/ngx-dynamic.component.mjs +33 -0
- package/esm2022/lib/shared/directives/component-content.directive.mjs +16 -0
- package/esm2022/lib/shared/models/component.model.mjs +7 -0
- package/esm2022/lib/shared/pipe/error.pipe.mjs +33 -0
- package/esm2022/lib/shared/pipe/general.pipe.mjs +33 -0
- package/esm2022/lib/shared/pipe/translate.pipe.mjs +33 -0
- package/esm2022/lib/shared/services/component.service.mjs +15 -0
- package/esm2022/lib/shared/services/control.service.mjs +35 -0
- package/esm2022/lib/shared/services/index.mjs +3 -0
- package/esm2022/ngx-iso-form.mjs +5 -0
- package/esm2022/public-api.mjs +9 -0
- package/fesm2022/ngx-iso-form.mjs +859 -0
- package/fesm2022/ngx-iso-form.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/Models/Control.d.ts +20 -0
- package/lib/Models/IsoForm.d.ts +5 -0
- package/lib/Models/Schema.d.ts +28 -0
- package/lib/components/controls/iso-base-control.component.d.ts +10 -0
- package/lib/components/controls/iso-mat-checkbox.component.d.ts +6 -0
- package/lib/components/controls/iso-mat-currency.component.d.ts +6 -0
- package/lib/components/controls/iso-mat-date.component.d.ts +6 -0
- package/lib/components/controls/iso-mat-datetime.component.d.ts +6 -0
- package/lib/components/controls/iso-mat-input.component.d.ts +6 -0
- package/lib/components/controls/iso-mat-select.component.d.ts +6 -0
- package/lib/components/controls/iso-mat-textarea.component.d.ts +6 -0
- package/lib/components/index.d.ts +9 -0
- package/lib/components/iso-control/iso-control.component.d.ts +21 -0
- package/lib/ngx-iso-form.component.d.ts +34 -0
- package/lib/ngx-iso-form.module.d.ts +33 -0
- package/lib/ngx-iso-form.service.d.ts +17 -0
- package/lib/shared/components/dynamic/ngx-dynamic.component.d.ts +13 -0
- package/lib/shared/directives/component-content.directive.d.ts +8 -0
- package/lib/shared/models/component.model.d.ts +6 -0
- package/lib/shared/pipe/error.pipe.d.ts +10 -0
- package/lib/shared/pipe/general.pipe.d.ts +10 -0
- package/lib/shared/pipe/translate.pipe.d.ts +10 -0
- package/lib/shared/services/component.service.d.ts +5 -0
- package/lib/shared/services/control.service.d.ts +6 -0
- package/lib/shared/services/index.d.ts +2 -0
- package/lib/styles/index.scss +33 -0
- package/lib/styles/ngx-iso-form.component.scss +10 -0
- package/package.json +47 -0
- package/public-api.d.ts +6 -0
package/README.md
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<a href="https://https://github.com/pixelbyaj/ngx-iso-form">
|
|
3
|
+
<img width="200" src="https://raw.githubusercontent.com/ngx-formly/ngx-formly/v5/logo.svg?sanitize=true" />
|
|
4
|
+
</a>
|
|
5
|
+
<br />
|
|
6
|
+
XSD - JSON powered / Dynamic ISO 20022 forms in Angular
|
|
7
|
+
<br /><br />
|
|
8
|
+
|
|
9
|
+
[](https://npmjs.org/package/ngx-iso-form.svg)
|
|
10
|
+
[](https://npmjs.org/package/ngx-iso-form.svg)
|
|
11
|
+
</div>
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
# NgxIsoForm
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
This form is used to design Angular Reactive Form using any given XSD. The primary use of this UI library is to design ISO 20022 forms dynamically.
|
|
18
|
+
|
|
19
|
+
## Features
|
|
20
|
+
|
|
21
|
+
- 🔥 Automatic forms generation
|
|
22
|
+
- 📝 Easy to extend with custom field types
|
|
23
|
+
- ⚡️ Supports ISO 20022 schemas:
|
|
24
|
+
- XSD - JSON Schema using XSDService nuget
|
|
25
|
+
- Support all validation like required, pattern, minlength, maxlength
|
|
26
|
+
- Support translation labels, errors and date formats.
|
|
27
|
+
- 💪 Built on top of [Angular Reactive Forms](https://angular.io/guide/reactive-forms)
|
|
28
|
+
|
|
29
|
+
## Supported JSON Schema
|
|
30
|
+
```typescript
|
|
31
|
+
export interface SchemaElement {
|
|
32
|
+
id: string;
|
|
33
|
+
name: string;
|
|
34
|
+
dataType: string;
|
|
35
|
+
minOccurs: string;
|
|
36
|
+
maxOccurs: string;
|
|
37
|
+
minLength: string;
|
|
38
|
+
maxLength: string;
|
|
39
|
+
pattern: string;
|
|
40
|
+
fractionDigits: string;
|
|
41
|
+
totalDigits: string;
|
|
42
|
+
minInclusive: string;
|
|
43
|
+
maxInclusive: string;
|
|
44
|
+
values: string[];
|
|
45
|
+
isCurrency: boolean;
|
|
46
|
+
xpath: string;
|
|
47
|
+
elements: SchemaElement[];
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
## [Live Demo](https://angular-ngrxeventbus.stackblitz.io)
|
|
52
|
+
## How to consume
|
|
53
|
+
|
|
54
|
+
1. Install npm package ngx-iso-form.
|
|
55
|
+
|
|
56
|
+
```console
|
|
57
|
+
npm i ngx-iso-form
|
|
58
|
+
```
|
|
59
|
+
2. Import Module
|
|
60
|
+
```typescript
|
|
61
|
+
import { NgxIsoFormModule } from 'ngx-iso-form';
|
|
62
|
+
|
|
63
|
+
@NgModule({
|
|
64
|
+
...
|
|
65
|
+
imports:[NgxIsoFormModule],
|
|
66
|
+
...
|
|
67
|
+
})
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
3. View
|
|
71
|
+
```html
|
|
72
|
+
<ngx-iso-form [schema]="schema" [form]="form"></ngx-iso-form>
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
4. Component
|
|
76
|
+
```typescript
|
|
77
|
+
export class AppComponent implements OnInit {
|
|
78
|
+
form: IsoForm;
|
|
79
|
+
schema: SchemaElement;
|
|
80
|
+
|
|
81
|
+
this.httpClient.get(sample).subscribe((data) => {
|
|
82
|
+
this.schema = data as SchemaElement
|
|
83
|
+
this.form = new IsoForm(null);
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
this.httpClient.get(sampleLoad).subscribe((model) => {
|
|
87
|
+
this.form = new IsoForm(model)
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
//To get the form object please use
|
|
91
|
+
// this.form.getFormModel();
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
3. Translation Support
|
|
95
|
+
It support name and id properties of the SchemaElement
|
|
96
|
+
```json
|
|
97
|
+
{
|
|
98
|
+
"iso": {
|
|
99
|
+
"BkToCstmrStmt": {
|
|
100
|
+
"label": "Bank To Customer Statement"
|
|
101
|
+
},
|
|
102
|
+
"GrpHdr":{
|
|
103
|
+
"label": "Group Header"
|
|
104
|
+
},
|
|
105
|
+
"document_bktocstmrstmt_grphdr_credttm": {
|
|
106
|
+
"label": "Create Datetime",
|
|
107
|
+
"general":{
|
|
108
|
+
"format":"YYYY-MM-DDThh:mm:ss.sss+/-"
|
|
109
|
+
},
|
|
110
|
+
"error": {
|
|
111
|
+
"required":"This field is required"
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
```
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1pc28tZm9ybS9zcmMvbGliL01vZGVscy9Db250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRNb2RlbCB9IGZyb20gXCIuLi9zaGFyZWQvbW9kZWxzL2NvbXBvbmVudC5tb2RlbFwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQ29udHJvbE1vZGVse1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIG5hbWU6IHN0cmluZztcclxuICAgIGRhdGFUeXBlOiBzdHJpbmc7XHJcbiAgICBtaW5PY2N1cnM6IHN0cmluZztcclxuICAgIG1heE9jY3Vyczogc3RyaW5nO1xyXG4gICAgbWluTGVuZ3RoOiBzdHJpbmc7XHJcbiAgICBtYXhMZW5ndGg6IHN0cmluZztcclxuICAgIHBhdHRlcm46IHN0cmluZztcclxuICAgIGZyYWN0aW9uRGlnaXRzOiBzdHJpbmc7XHJcbiAgICB0b3RhbERpZ2l0czogc3RyaW5nO1xyXG4gICAgbWluSW5jbHVzaXZlOiBzdHJpbmc7XHJcbiAgICBtYXhJbmNsdXNpdmU6IHN0cmluZztcclxuICAgIHZhbHVlczogc3RyaW5nW107XHJcbiAgICBpc0N1cnJlbmN5OiBib29sZWFuO1xyXG4gICAgeHBhdGg6IHN0cmluZztcclxuICAgIHZhbHVlOnN0cmluZztcclxuICAgIGNvbXBvbmVudDpDb21wb25lbnRNb2RlbDtcclxufSJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export class IsoForm {
|
|
2
|
+
constructor(model) {
|
|
3
|
+
this.getFormModel = () => {
|
|
4
|
+
};
|
|
5
|
+
this._model = model;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSXNvRm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1pc28tZm9ybS9zcmMvbGliL01vZGVscy9Jc29Gb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxPQUFPO0lBRWhCLFlBQVksS0FBVTtRQUlmLGlCQUFZLEdBQUcsR0FBUSxFQUFFO1FBQ2hDLENBQUMsQ0FBQztRQUpFLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBRXhCLENBQUM7Q0FHSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjaGVtYUVsZW1lbnQgfSBmcm9tIFwiLi9TY2hlbWFcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBJc29Gb3JtIHsgICAgXHJcbiAgICBwdWJsaWMgX21vZGVsOiBhbnk7XHJcbiAgICBjb25zdHJ1Y3Rvcihtb2RlbDogYW55KSB7XHJcbiAgICAgICAgdGhpcy5fbW9kZWwgPSBtb2RlbDtcclxuICAgICAgICBcclxuICAgIH0gICAgXHJcbiAgICBwdWJsaWMgZ2V0Rm9ybU1vZGVsID0gKCk6IGFueSA9PiB7ICAgICAgICBcclxuICAgIH07XHJcbn0iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWlzby1mb3JtL3NyYy9saWIvTW9kZWxzL1NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNjaGVtYUVsZW1lbnQge1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIG5hbWU6IHN0cmluZztcclxuICAgIGRhdGFUeXBlOiBzdHJpbmc7XHJcbiAgICBtaW5PY2N1cnM6IHN0cmluZztcclxuICAgIG1heE9jY3Vyczogc3RyaW5nO1xyXG4gICAgbWluTGVuZ3RoOiBzdHJpbmc7XHJcbiAgICBtYXhMZW5ndGg6IHN0cmluZztcclxuICAgIHBhdHRlcm46IHN0cmluZztcclxuICAgIGZyYWN0aW9uRGlnaXRzOiBzdHJpbmc7XHJcbiAgICB0b3RhbERpZ2l0czogc3RyaW5nO1xyXG4gICAgbWluSW5jbHVzaXZlOiBzdHJpbmc7XHJcbiAgICBtYXhJbmNsdXNpdmU6IHN0cmluZztcclxuICAgIHZhbHVlczogc3RyaW5nW107XHJcbiAgICBpc0N1cnJlbmN5OiBib29sZWFuO1xyXG4gICAgeHBhdGg6IHN0cmluZztcclxuICAgIGVsZW1lbnRzOiBTY2hlbWFFbGVtZW50W107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2NoZW1hTW9kZWwgZXh0ZW5kcyBTY2hlbWFFbGVtZW50e1xyXG4gICAgdW5pcXVlSWQ/OnN0cmluZztcclxuICAgIGhpZGRlbj86IGJvb2xlYW47XHJcbiAgICB2YWx1ZT86c3RyaW5nO1xyXG4gICAgbXVsdGk/OnN0cmluZztcclxuICAgIGlzRm9ybUNvbnRyb2xzPzpib29sZWFuO1xyXG4gICAgY2hpbGRyZW4/OiBTY2hlbWFNb2RlbFtdO1xyXG4gICAgY2hvaWNlRm9ybUNvbnRyb2w/OiBBYnN0cmFjdENvbnRyb2w8YW55LGFueT47XHJcbn0iXX0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class IsoBaseControlComponent {
|
|
4
|
+
getKeys(errors) {
|
|
5
|
+
if (errors) {
|
|
6
|
+
return Object.keys(errors);
|
|
7
|
+
}
|
|
8
|
+
return [];
|
|
9
|
+
}
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: IsoBaseControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: IsoBaseControlComponent, selector: "iso-base", inputs: { control: "control", formControl: "formControl" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12
|
+
}
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: IsoBaseControlComponent, decorators: [{
|
|
14
|
+
type: Component,
|
|
15
|
+
args: [{
|
|
16
|
+
selector: 'iso-base',
|
|
17
|
+
template: '',
|
|
18
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
19
|
+
}]
|
|
20
|
+
}], propDecorators: { control: [{
|
|
21
|
+
type: Input
|
|
22
|
+
}], formControl: [{
|
|
23
|
+
type: Input
|
|
24
|
+
}] } });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvLWJhc2UtY29udHJvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaXNvLWZvcm0vc3JjL2xpYi9jb21wb25lbnRzL2NvbnRyb2xzL2lzby1iYXNlLWNvbnRyb2wuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVMxRSxNQUFNLE9BQU8sdUJBQXVCO0lBS2hDLE9BQU8sQ0FBQyxNQUFXO1FBRWYsSUFBRyxNQUFNLEVBQ1Q7WUFDSSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDOUI7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7OEdBWlEsdUJBQXVCO2tHQUF2Qix1QkFBdUIsNEdBSHZCLEVBQUU7OzJGQUdGLHVCQUF1QjtrQkFMbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsVUFBVTtvQkFDcEIsUUFBUSxFQUFDLEVBQUU7b0JBQ1gsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEOzhCQUdZLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSUNvbnRyb2xNb2RlbCB9IGZyb20gJy4uLy4uL01vZGVscy9Db250cm9sJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnaXNvLWJhc2UnLFxyXG4gICAgdGVtcGxhdGU6JycsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSXNvQmFzZUNvbnRyb2xDb21wb25lbnQge1xyXG5cclxuICAgIEBJbnB1dCgpIGNvbnRyb2w6IElDb250cm9sTW9kZWw7XHJcbiAgICBASW5wdXQoKSBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XHJcblxyXG4gICAgZ2V0S2V5cyhlcnJvcnM6IGFueSlcclxuICAgIHtcclxuICAgICAgICBpZihlcnJvcnMpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZXJyb3JzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { IsoBaseControlComponent } from './iso-base-control.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "@angular/forms";
|
|
6
|
+
import * as i3 from "@angular/material/form-field";
|
|
7
|
+
import * as i4 from "../../shared/pipe/translate.pipe";
|
|
8
|
+
import * as i5 from "../../shared/pipe/error.pipe";
|
|
9
|
+
export class IsoMatCheckbox extends IsoBaseControlComponent {
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: IsoMatCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
11
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: IsoMatCheckbox, selector: "iso-mat-checkbox", usesInheritance: true, ngImport: i0, template: "<mat-form-field class=\"form-control form-control-m\">\r\n <mat-checkbox [formControl]=\"formControl\">{{ control.name | trans: control.id : control.name }}</mat-checkbox>\r\n <ng-container *ngFor=\"let item of getKeys(formControl.errors)\">\r\n <div *ngIf=\"formControl.errors?.[item] && formControl.touched\">\r\n {{ control.name | error: control.id : item : item + \" validation failed\" }}\r\n </div>\r\n </ng-container>\r\n</mat-form-field>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "pipe", type: i4.IsoTranslatePipe, name: "trans" }, { kind: "pipe", type: i5.IsoErrorPipe, name: "error" }] }); }
|
|
12
|
+
}
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: IsoMatCheckbox, decorators: [{
|
|
14
|
+
type: Component,
|
|
15
|
+
args: [{ selector: 'iso-mat-checkbox', template: "<mat-form-field class=\"form-control form-control-m\">\r\n <mat-checkbox [formControl]=\"formControl\">{{ control.name | trans: control.id : control.name }}</mat-checkbox>\r\n <ng-container *ngFor=\"let item of getKeys(formControl.errors)\">\r\n <div *ngIf=\"formControl.errors?.[item] && formControl.touched\">\r\n {{ control.name | error: control.id : item : item + \" validation failed\" }}\r\n </div>\r\n </ng-container>\r\n</mat-form-field>" }]
|
|
16
|
+
}] });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvLW1hdC1jaGVja2JveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaXNvLWZvcm0vc3JjL2xpYi9jb21wb25lbnRzL2NvbnRyb2xzL2lzby1tYXQtY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWlzby1mb3JtL3NyYy9saWIvY29tcG9uZW50cy9jb250cm9scy9pc28tbWF0LWNoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7QUFNdkUsTUFBTSxPQUFPLGNBQWUsU0FBUSx1QkFBdUI7OEdBQTlDLGNBQWM7a0dBQWQsY0FBYywrRUNQM0IsaWVBT2lCOzsyRkRBSixjQUFjO2tCQUoxQixTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJc29CYXNlQ29udHJvbENvbXBvbmVudCB9IGZyb20gJy4vaXNvLWJhc2UtY29udHJvbC5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpc28tbWF0LWNoZWNrYm94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaXNvLW1hdC1jaGVja2JveC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIElzb01hdENoZWNrYm94IGV4dGVuZHMgSXNvQmFzZUNvbnRyb2xDb21wb25lbnQge1xyXG4gICAgXHJcbn0iLCI8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLW1cIj5cclxuICAgIDxtYXQtY2hlY2tib3ggW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCI+e3sgY29udHJvbC5uYW1lIHwgdHJhbnM6IGNvbnRyb2wuaWQgOiBjb250cm9sLm5hbWUgfX08L21hdC1jaGVja2JveD5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ2V0S2V5cyhmb3JtQ29udHJvbC5lcnJvcnMpXCI+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImZvcm1Db250cm9sLmVycm9ycz8uW2l0ZW1dICYmIGZvcm1Db250cm9sLnRvdWNoZWRcIj5cclxuICAgICAgICAgICAge3sgY29udHJvbC5uYW1lIHwgZXJyb3I6IGNvbnRyb2wuaWQgOiBpdGVtIDogaXRlbSArIFwiIHZhbGlkYXRpb24gZmFpbGVkXCIgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L21hdC1mb3JtLWZpZWxkPiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { IsoBaseControlComponent } from './iso-base-control.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "@angular/forms";
|
|
6
|
+
import * as i3 from "@angular/material/form-field";
|
|
7
|
+
import * as i4 from "@angular/material/input";
|
|
8
|
+
import * as i5 from "../../shared/pipe/translate.pipe";
|
|
9
|
+
import * as i6 from "../../shared/pipe/error.pipe";
|
|
10
|
+
export class IsoMatCurrency extends IsoBaseControlComponent {
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: IsoMatCurrency, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
12
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: IsoMatCurrency, selector: "iso-mat-currency", usesInheritance: true, ngImport: i0, template: "<mat-form-field class=\"form-control form-control-s\">\r\n <mat-label>{{ control.name | trans: control.id : control.name }}</mat-label>\r\n <input matInput placeholder=\"{{ control.name }}\" [formControl]=\"formControl\" [attr.maxlength]=\"control.maxLength\">\r\n <ng-container *ngFor=\"let item of getKeys(formControl.errors)\">\r\n <div *ngIf=\"formControl.errors?.[item] && formControl.touched\" class=\"iso-mat-error\">\r\n {{ control.name | error: control.id : item : item }}\r\n </div>\r\n </ng-container>\r\n</mat-form-field>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.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: "pipe", type: i5.IsoTranslatePipe, name: "trans" }, { kind: "pipe", type: i6.IsoErrorPipe, name: "error" }] }); }
|
|
13
|
+
}
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: IsoMatCurrency, decorators: [{
|
|
15
|
+
type: Component,
|
|
16
|
+
args: [{ selector: 'iso-mat-currency', template: "<mat-form-field class=\"form-control form-control-s\">\r\n <mat-label>{{ control.name | trans: control.id : control.name }}</mat-label>\r\n <input matInput placeholder=\"{{ control.name }}\" [formControl]=\"formControl\" [attr.maxlength]=\"control.maxLength\">\r\n <ng-container *ngFor=\"let item of getKeys(formControl.errors)\">\r\n <div *ngIf=\"formControl.errors?.[item] && formControl.touched\" class=\"iso-mat-error\">\r\n {{ control.name | error: control.id : item : item }}\r\n </div>\r\n </ng-container>\r\n</mat-form-field>" }]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvLW1hdC1jdXJyZW5jeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaXNvLWZvcm0vc3JjL2xpYi9jb21wb25lbnRzL2NvbnRyb2xzL2lzby1tYXQtY3VycmVuY3kuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWlzby1mb3JtL3NyYy9saWIvY29tcG9uZW50cy9jb250cm9scy9pc28tbWF0LWN1cnJlbmN5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7O0FBTXZFLE1BQU0sT0FBTyxjQUFlLFNBQVEsdUJBQXVCOzhHQUE5QyxjQUFjO2tHQUFkLGNBQWMsK0VDUDNCLDRqQkFRaUI7OzJGRERKLGNBQWM7a0JBSjFCLFNBQVM7K0JBQ0Usa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElzb0Jhc2VDb250cm9sQ29tcG9uZW50IH0gZnJvbSAnLi9pc28tYmFzZS1jb250cm9sLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lzby1tYXQtY3VycmVuY3knLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pc28tbWF0LWN1cnJlbmN5LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSXNvTWF0Q3VycmVuY3kgZXh0ZW5kcyBJc29CYXNlQ29udHJvbENvbXBvbmVudCB7XHJcbiAgICBcclxufSIsIjxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc1wiPlxyXG4gICAgPG1hdC1sYWJlbD57eyBjb250cm9sLm5hbWUgfCB0cmFuczogY29udHJvbC5pZCA6IGNvbnRyb2wubmFtZSB9fTwvbWF0LWxhYmVsPlxyXG4gICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwie3sgY29udHJvbC5uYW1lIH19XCIgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCIgW2F0dHIubWF4bGVuZ3RoXT1cImNvbnRyb2wubWF4TGVuZ3RoXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdldEtleXMoZm9ybUNvbnRyb2wuZXJyb3JzKVwiPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJmb3JtQ29udHJvbC5lcnJvcnM/LltpdGVtXSAmJiBmb3JtQ29udHJvbC50b3VjaGVkXCIgY2xhc3M9XCJpc28tbWF0LWVycm9yXCI+XHJcbiAgICAgICAgICAgIHt7IGNvbnRyb2wubmFtZSB8IGVycm9yOiBjb250cm9sLmlkIDogaXRlbSA6IGl0ZW0gfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L21hdC1mb3JtLWZpZWxkPiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { IsoBaseControlComponent } from './iso-base-control.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "@angular/forms";
|
|
6
|
+
import * as i3 from "@angular/material/form-field";
|
|
7
|
+
import * as i4 from "@angular/material/input";
|
|
8
|
+
import * as i5 from "@angular/material/datepicker";
|
|
9
|
+
import * as i6 from "../../shared/pipe/translate.pipe";
|
|
10
|
+
import * as i7 from "../../shared/pipe/error.pipe";
|
|
11
|
+
export class IsoMatDate extends IsoBaseControlComponent {
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: IsoMatDate, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
13
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: IsoMatDate, selector: "iso-mat-date", usesInheritance: true, ngImport: i0, template: "<mat-form-field class=\"form-control form-control-m\">\r\n <mat-label>{{ control.name | trans: control.id : control.name }}</mat-label>\r\n <input matInput [matDatepicker]=\"picker\" [formControl]=\"formControl\">\r\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker></mat-datepicker>\r\n <ng-container *ngFor=\"let item of getKeys(formControl.errors)\">\r\n <div *ngIf=\"formControl.errors?.[item] && formControl.touched\" class=\"iso-mat-error\">\r\n {{ control.name | error: control.id : item : item + \" validation failed\" }}\r\n </div>\r\n </ng-container>\r\n</mat-form-field>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i4.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: i5.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i5.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i5.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "pipe", type: i6.IsoTranslatePipe, name: "trans" }, { kind: "pipe", type: i7.IsoErrorPipe, name: "error" }] }); }
|
|
14
|
+
}
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: IsoMatDate, decorators: [{
|
|
16
|
+
type: Component,
|
|
17
|
+
args: [{ selector: 'iso-mat-date', template: "<mat-form-field class=\"form-control form-control-m\">\r\n <mat-label>{{ control.name | trans: control.id : control.name }}</mat-label>\r\n <input matInput [matDatepicker]=\"picker\" [formControl]=\"formControl\">\r\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker></mat-datepicker>\r\n <ng-container *ngFor=\"let item of getKeys(formControl.errors)\">\r\n <div *ngIf=\"formControl.errors?.[item] && formControl.touched\" class=\"iso-mat-error\">\r\n {{ control.name | error: control.id : item : item + \" validation failed\" }}\r\n </div>\r\n </ng-container>\r\n</mat-form-field>" }]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvLW1hdC1kYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1pc28tZm9ybS9zcmMvbGliL2NvbXBvbmVudHMvY29udHJvbHMvaXNvLW1hdC1kYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1pc28tZm9ybS9zcmMvbGliL2NvbXBvbmVudHMvY29udHJvbHMvaXNvLW1hdC1kYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7OztBQU92RSxNQUFNLE9BQU8sVUFBVyxTQUFRLHVCQUF1Qjs4R0FBMUMsVUFBVTtrR0FBVixVQUFVLDJFQ1Z2QixtcEJBVWlCOzsyRkRBSixVQUFVO2tCQUx0QixTQUFTOytCQUNFLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElDb250cm9sTW9kZWwgfSBmcm9tICcuLi8uLi9Nb2RlbHMvQ29udHJvbCc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBJc29CYXNlQ29udHJvbENvbXBvbmVudCB9IGZyb20gJy4vaXNvLWJhc2UtY29udHJvbC5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpc28tbWF0LWRhdGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pc28tbWF0LWRhdGUuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgSXNvTWF0RGF0ZSBleHRlbmRzIElzb0Jhc2VDb250cm9sQ29tcG9uZW50IHtcclxuICAgIFxyXG59IiwiPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1tXCI+XHJcbiAgPG1hdC1sYWJlbD57eyBjb250cm9sLm5hbWUgfCB0cmFuczogY29udHJvbC5pZCA6IGNvbnRyb2wubmFtZSB9fTwvbWF0LWxhYmVsPlxyXG4gIDxpbnB1dCBtYXRJbnB1dCBbbWF0RGF0ZXBpY2tlcl09XCJwaWNrZXJcIiBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIj5cclxuICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdEljb25TdWZmaXggW2Zvcl09XCJwaWNrZXJcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cclxuICA8bWF0LWRhdGVwaWNrZXIgI3BpY2tlcj48L21hdC1kYXRlcGlja2VyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ2V0S2V5cyhmb3JtQ29udHJvbC5lcnJvcnMpXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiZm9ybUNvbnRyb2wuZXJyb3JzPy5baXRlbV0gJiYgZm9ybUNvbnRyb2wudG91Y2hlZFwiIGNsYXNzPVwiaXNvLW1hdC1lcnJvclwiPlxyXG4gICAgICB7eyBjb250cm9sLm5hbWUgfCBlcnJvcjogY29udHJvbC5pZCA6IGl0ZW0gOiBpdGVtICsgXCIgdmFsaWRhdGlvbiBmYWlsZWRcIiB9fVxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbWF0LWZvcm0tZmllbGQ+Il19
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { IsoBaseControlComponent } from './iso-base-control.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "@angular/forms";
|
|
6
|
+
import * as i3 from "@angular/material/form-field";
|
|
7
|
+
import * as i4 from "@angular/material/input";
|
|
8
|
+
import * as i5 from "../../shared/pipe/translate.pipe";
|
|
9
|
+
import * as i6 from "../../shared/pipe/error.pipe";
|
|
10
|
+
import * as i7 from "../../shared/pipe/general.pipe";
|
|
11
|
+
export class IsoMatDateTime extends IsoBaseControlComponent {
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: IsoMatDateTime, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
13
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: IsoMatDateTime, selector: "iso-mat-datetime", usesInheritance: true, ngImport: i0, template: "<mat-form-field class=\"form-control form-control-m\">\r\n <mat-label>{{ control.name | trans: control.id : control.name }}</mat-label>\r\n <input matInput placeholder=\"{{ control.name }}\" [formControl]=\"formControl\" [attr.minlength]=\"control.minLength\" [attr.maxlength]=\"control.maxLength\">\r\n <mat-hint>{{ control.id | general: control.id : \"format\" : \"YYYY-MM-DDThh:mm:ss.sss+/-hh:mm\" }}</mat-hint>\r\n <ng-container *ngFor=\"let item of getKeys(formControl.errors)\">\r\n <div *ngIf=\"formControl.errors?.[item] && formControl.touched\" class=\"iso-mat-error\">\r\n {{ control.name | error: control.id : item : item + \" validation failed\" }}\r\n </div>\r\n </ng-container>\r\n \r\n</mat-form-field>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.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: "pipe", type: i5.IsoTranslatePipe, name: "trans" }, { kind: "pipe", type: i6.IsoErrorPipe, name: "error" }, { kind: "pipe", type: i7.IsoGeneralPipe, name: "general" }] }); }
|
|
14
|
+
}
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: IsoMatDateTime, decorators: [{
|
|
16
|
+
type: Component,
|
|
17
|
+
args: [{ selector: 'iso-mat-datetime', template: "<mat-form-field class=\"form-control form-control-m\">\r\n <mat-label>{{ control.name | trans: control.id : control.name }}</mat-label>\r\n <input matInput placeholder=\"{{ control.name }}\" [formControl]=\"formControl\" [attr.minlength]=\"control.minLength\" [attr.maxlength]=\"control.maxLength\">\r\n <mat-hint>{{ control.id | general: control.id : \"format\" : \"YYYY-MM-DDThh:mm:ss.sss+/-hh:mm\" }}</mat-hint>\r\n <ng-container *ngFor=\"let item of getKeys(formControl.errors)\">\r\n <div *ngIf=\"formControl.errors?.[item] && formControl.touched\" class=\"iso-mat-error\">\r\n {{ control.name | error: control.id : item : item + \" validation failed\" }}\r\n </div>\r\n </ng-container>\r\n \r\n</mat-form-field>" }]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvLW1hdC1kYXRldGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaXNvLWZvcm0vc3JjL2xpYi9jb21wb25lbnRzL2NvbnRyb2xzL2lzby1tYXQtZGF0ZXRpbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWlzby1mb3JtL3NyYy9saWIvY29tcG9uZW50cy9jb250cm9scy9pc28tbWF0LWRhdGV0aW1lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7OztBQU12RSxNQUFNLE9BQU8sY0FBZSxTQUFRLHVCQUF1Qjs4R0FBOUMsY0FBYztrR0FBZCxjQUFjLCtFQ1AzQiw0dkJBVWlCOzsyRkRISixjQUFjO2tCQUoxQixTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJc29CYXNlQ29udHJvbENvbXBvbmVudCB9IGZyb20gJy4vaXNvLWJhc2UtY29udHJvbC5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpc28tbWF0LWRhdGV0aW1lJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaXNvLW1hdC1kYXRldGltZS5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIElzb01hdERhdGVUaW1lIGV4dGVuZHMgSXNvQmFzZUNvbnRyb2xDb21wb25lbnQge1xyXG4gICAgXHJcbn0iLCI8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLW1cIj5cclxuICAgIDxtYXQtbGFiZWw+e3sgY29udHJvbC5uYW1lIHwgdHJhbnM6IGNvbnRyb2wuaWQgOiBjb250cm9sLm5hbWUgfX08L21hdC1sYWJlbD5cclxuICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cInt7IGNvbnRyb2wubmFtZSB9fVwiIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiIFthdHRyLm1pbmxlbmd0aF09XCJjb250cm9sLm1pbkxlbmd0aFwiIFthdHRyLm1heGxlbmd0aF09XCJjb250cm9sLm1heExlbmd0aFwiPlxyXG4gICAgPG1hdC1oaW50Pnt7IGNvbnRyb2wuaWQgfCBnZW5lcmFsOiBjb250cm9sLmlkIDogXCJmb3JtYXRcIiA6IFwiWVlZWS1NTS1ERFRoaDptbTpzcy5zc3MrLy1oaDptbVwiICAgfX08L21hdC1oaW50PlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZXRLZXlzKGZvcm1Db250cm9sLmVycm9ycylcIj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZm9ybUNvbnRyb2wuZXJyb3JzPy5baXRlbV0gJiYgZm9ybUNvbnRyb2wudG91Y2hlZFwiIGNsYXNzPVwiaXNvLW1hdC1lcnJvclwiPlxyXG4gICAgICAgICAgICB7eyBjb250cm9sLm5hbWUgfCBlcnJvcjogY29udHJvbC5pZCA6IGl0ZW0gOiBpdGVtICsgXCIgdmFsaWRhdGlvbiBmYWlsZWRcIiB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICBcclxuPC9tYXQtZm9ybS1maWVsZD4iXX0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { IsoBaseControlComponent } from './iso-base-control.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "@angular/forms";
|
|
6
|
+
import * as i3 from "@angular/material/form-field";
|
|
7
|
+
import * as i4 from "@angular/material/input";
|
|
8
|
+
import * as i5 from "../../shared/pipe/translate.pipe";
|
|
9
|
+
import * as i6 from "../../shared/pipe/error.pipe";
|
|
10
|
+
export class IsoMatInput extends IsoBaseControlComponent {
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: IsoMatInput, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
12
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: IsoMatInput, selector: "iso-mat-input", usesInheritance: true, ngImport: i0, template: "<mat-form-field class=\"form-control form-control-m\">\r\n <mat-label>{{ control.name | trans: control.id : control.name }}</mat-label>\r\n <input matInput placeholder=\"{{ control.name }}\" [formControl]=\"formControl\" [attr.minlength]=\"control.minLength\" [attr.maxlength]=\"control.maxLength\">\r\n <ng-container *ngFor=\"let item of getKeys(formControl.errors)\">\r\n <div *ngIf=\"formControl.errors?.[item] && formControl.touched\" class=\"iso-mat-error\">\r\n {{ control.name | error: control.id : item : item + \" validation failed\" }}\r\n </div>\r\n </ng-container>\r\n \r\n</mat-form-field>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.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: "pipe", type: i5.IsoTranslatePipe, name: "trans" }, { kind: "pipe", type: i6.IsoErrorPipe, name: "error" }] }); }
|
|
13
|
+
}
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: IsoMatInput, decorators: [{
|
|
15
|
+
type: Component,
|
|
16
|
+
args: [{ selector: 'iso-mat-input', template: "<mat-form-field class=\"form-control form-control-m\">\r\n <mat-label>{{ control.name | trans: control.id : control.name }}</mat-label>\r\n <input matInput placeholder=\"{{ control.name }}\" [formControl]=\"formControl\" [attr.minlength]=\"control.minLength\" [attr.maxlength]=\"control.maxLength\">\r\n <ng-container *ngFor=\"let item of getKeys(formControl.errors)\">\r\n <div *ngIf=\"formControl.errors?.[item] && formControl.touched\" class=\"iso-mat-error\">\r\n {{ control.name | error: control.id : item : item + \" validation failed\" }}\r\n </div>\r\n </ng-container>\r\n \r\n</mat-form-field>" }]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvLW1hdC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaXNvLWZvcm0vc3JjL2xpYi9jb21wb25lbnRzL2NvbnRyb2xzL2lzby1tYXQtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWlzby1mb3JtL3NyYy9saWIvY29tcG9uZW50cy9jb250cm9scy9pc28tbWF0LWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7O0FBTXZFLE1BQU0sT0FBTyxXQUFZLFNBQVEsdUJBQXVCOzhHQUEzQyxXQUFXO2tHQUFYLFdBQVcsNEVDUHhCLG9vQkFTaUI7OzJGREZKLFdBQVc7a0JBSnZCLFNBQVM7K0JBQ0UsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJc29CYXNlQ29udHJvbENvbXBvbmVudCB9IGZyb20gJy4vaXNvLWJhc2UtY29udHJvbC5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpc28tbWF0LWlucHV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaXNvLW1hdC1pbnB1dC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIElzb01hdElucHV0IGV4dGVuZHMgSXNvQmFzZUNvbnRyb2xDb21wb25lbnQge1xyXG4gICAgXHJcbn0iLCI8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLW1cIj5cclxuICAgIDxtYXQtbGFiZWw+e3sgY29udHJvbC5uYW1lIHwgdHJhbnM6IGNvbnRyb2wuaWQgOiBjb250cm9sLm5hbWUgfX08L21hdC1sYWJlbD5cclxuICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cInt7IGNvbnRyb2wubmFtZSB9fVwiIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiIFthdHRyLm1pbmxlbmd0aF09XCJjb250cm9sLm1pbkxlbmd0aFwiIFthdHRyLm1heGxlbmd0aF09XCJjb250cm9sLm1heExlbmd0aFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZXRLZXlzKGZvcm1Db250cm9sLmVycm9ycylcIj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZm9ybUNvbnRyb2wuZXJyb3JzPy5baXRlbV0gJiYgZm9ybUNvbnRyb2wudG91Y2hlZFwiIGNsYXNzPVwiaXNvLW1hdC1lcnJvclwiPlxyXG4gICAgICAgICAgICB7eyBjb250cm9sLm5hbWUgfCBlcnJvcjogY29udHJvbC5pZCA6IGl0ZW0gOiBpdGVtICsgXCIgdmFsaWRhdGlvbiBmYWlsZWRcIiB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICBcclxuPC9tYXQtZm9ybS1maWVsZD4iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { IsoBaseControlComponent } from './iso-base-control.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "@angular/forms";
|
|
6
|
+
import * as i3 from "@angular/material/form-field";
|
|
7
|
+
import * as i4 from "@angular/material/select";
|
|
8
|
+
import * as i5 from "@angular/material/core";
|
|
9
|
+
import * as i6 from "../../shared/pipe/translate.pipe";
|
|
10
|
+
import * as i7 from "../../shared/pipe/error.pipe";
|
|
11
|
+
export class IsoMatSelect extends IsoBaseControlComponent {
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: IsoMatSelect, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
13
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: IsoMatSelect, selector: "iso-mat-select", usesInheritance: true, ngImport: i0, template: "<mat-form-field class=\"form-control form-control-m\">\r\n <mat-label>{{ control.name | trans: control.id : control.name }}</mat-label>\r\n <mat-select [formControl]=\"formControl\">\r\n <mat-option *ngFor=\"let item of control.values\" [value]=\"item\">\r\n {{item}}\r\n </mat-option>\r\n </mat-select>\r\n <ng-container *ngFor=\"let item of getKeys(formControl.errors)\">\r\n <div *ngIf=\"formControl.errors?.[item] && formControl.touched\" class=\"iso-mat-error\">\r\n {{ control.name | error: control.id : item : item + \" validation failed\" }}\r\n </div>\r\n </ng-container>\r\n </mat-form-field>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "pipe", type: i6.IsoTranslatePipe, name: "trans" }, { kind: "pipe", type: i7.IsoErrorPipe, name: "error" }] }); }
|
|
14
|
+
}
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: IsoMatSelect, decorators: [{
|
|
16
|
+
type: Component,
|
|
17
|
+
args: [{ selector: 'iso-mat-select', template: "<mat-form-field class=\"form-control form-control-m\">\r\n <mat-label>{{ control.name | trans: control.id : control.name }}</mat-label>\r\n <mat-select [formControl]=\"formControl\">\r\n <mat-option *ngFor=\"let item of control.values\" [value]=\"item\">\r\n {{item}}\r\n </mat-option>\r\n </mat-select>\r\n <ng-container *ngFor=\"let item of getKeys(formControl.errors)\">\r\n <div *ngIf=\"formControl.errors?.[item] && formControl.touched\" class=\"iso-mat-error\">\r\n {{ control.name | error: control.id : item : item + \" validation failed\" }}\r\n </div>\r\n </ng-container>\r\n </mat-form-field>" }]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvLW1hdC1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWlzby1mb3JtL3NyYy9saWIvY29tcG9uZW50cy9jb250cm9scy9pc28tbWF0LXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaXNvLWZvcm0vc3JjL2xpYi9jb21wb25lbnRzL2NvbnRyb2xzL2lzby1tYXQtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7OztBQU92RSxNQUFNLE9BQU8sWUFBYSxTQUFRLHVCQUF1Qjs4R0FBNUMsWUFBWTtrR0FBWixZQUFZLDZFQ1R6Qiw4b0JBWW1COzsyRkRITixZQUFZO2tCQUx4QixTQUFTOytCQUNFLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSXNvQmFzZUNvbnRyb2xDb21wb25lbnQgfSBmcm9tICcuL2lzby1iYXNlLWNvbnRyb2wuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaXNvLW1hdC1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pc28tbWF0LXNlbGVjdC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBJc29NYXRTZWxlY3QgZXh0ZW5kcyBJc29CYXNlQ29udHJvbENvbXBvbmVudCB7XHJcbiAgIFxyXG59IiwiPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1tXCI+XHJcbiAgICA8bWF0LWxhYmVsPnt7IGNvbnRyb2wubmFtZSB8IHRyYW5zOiBjb250cm9sLmlkIDogY29udHJvbC5uYW1lIH19PC9tYXQtbGFiZWw+XHJcbiAgICA8bWF0LXNlbGVjdCBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIj5cclxuICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29udHJvbC52YWx1ZXNcIiBbdmFsdWVdPVwiaXRlbVwiPlxyXG4gICAgICAgIHt7aXRlbX19XHJcbiAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ2V0S2V5cyhmb3JtQ29udHJvbC5lcnJvcnMpXCI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJmb3JtQ29udHJvbC5lcnJvcnM/LltpdGVtXSAmJiBmb3JtQ29udHJvbC50b3VjaGVkXCIgY2xhc3M9XCJpc28tbWF0LWVycm9yXCI+XHJcbiAgICAgICAgICB7eyBjb250cm9sLm5hbWUgfCBlcnJvcjogY29udHJvbC5pZCA6IGl0ZW0gOiBpdGVtICsgXCIgdmFsaWRhdGlvbiBmYWlsZWRcIiB9fVxyXG4gICAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8L21hdC1mb3JtLWZpZWxkPiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { IsoBaseControlComponent } from './iso-base-control.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "@angular/forms";
|
|
6
|
+
import * as i3 from "@angular/material/form-field";
|
|
7
|
+
import * as i4 from "@angular/material/input";
|
|
8
|
+
import * as i5 from "../../shared/pipe/translate.pipe";
|
|
9
|
+
import * as i6 from "../../shared/pipe/error.pipe";
|
|
10
|
+
export class IsoMatTextarea extends IsoBaseControlComponent {
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: IsoMatTextarea, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
12
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: IsoMatTextarea, selector: "iso-mat-textarea", usesInheritance: true, ngImport: i0, template: "<mat-form-field class=\"form-control form-control-full\">\r\n <mat-label>{{ control.name | trans: control.id : control.name }}</mat-label>\r\n <textarea matInput placeholder=\"{{control.name}}\" [formControl]=\"formControl\"></textarea>\r\n <ng-container *ngFor=\"let item of getKeys(formControl.errors)\">\r\n <div *ngIf=\"formControl.errors?.[item] && formControl.touched\" class=\"iso-mat-error\">\r\n {{ control.name | error: control.id : item : item + \" validation failed\" }}\r\n </div>\r\n </ng-container>\r\n</mat-form-field>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.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: "pipe", type: i5.IsoTranslatePipe, name: "trans" }, { kind: "pipe", type: i6.IsoErrorPipe, name: "error" }] }); }
|
|
13
|
+
}
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: IsoMatTextarea, decorators: [{
|
|
15
|
+
type: Component,
|
|
16
|
+
args: [{ selector: 'iso-mat-textarea', template: "<mat-form-field class=\"form-control form-control-full\">\r\n <mat-label>{{ control.name | trans: control.id : control.name }}</mat-label>\r\n <textarea matInput placeholder=\"{{control.name}}\" [formControl]=\"formControl\"></textarea>\r\n <ng-container *ngFor=\"let item of getKeys(formControl.errors)\">\r\n <div *ngIf=\"formControl.errors?.[item] && formControl.touched\" class=\"iso-mat-error\">\r\n {{ control.name | error: control.id : item : item + \" validation failed\" }}\r\n </div>\r\n </ng-container>\r\n</mat-form-field>" }]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvLW1hdC10ZXh0YXJlYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaXNvLWZvcm0vc3JjL2xpYi9jb21wb25lbnRzL2NvbnRyb2xzL2lzby1tYXQtdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWlzby1mb3JtL3NyYy9saWIvY29tcG9uZW50cy9jb250cm9scy9pc28tbWF0LXRleHRhcmVhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7O0FBT3ZFLE1BQU0sT0FBTyxjQUFlLFNBQVEsdUJBQXVCOzhHQUE5QyxjQUFjO2tHQUFkLGNBQWMsK0VDVDNCLDZqQkFRaUI7OzJGRENKLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0Usa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJc29CYXNlQ29udHJvbENvbXBvbmVudCB9IGZyb20gJy4vaXNvLWJhc2UtY29udHJvbC5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpc28tbWF0LXRleHRhcmVhJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaXNvLW1hdC10ZXh0YXJlYS5jb21wb25lbnQuaHRtbCdcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBJc29NYXRUZXh0YXJlYSBleHRlbmRzIElzb0Jhc2VDb250cm9sQ29tcG9uZW50IHtcclxuICAgXHJcbn0iLCI8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLWZ1bGxcIj5cclxuICAgIDxtYXQtbGFiZWw+e3sgY29udHJvbC5uYW1lIHwgdHJhbnM6IGNvbnRyb2wuaWQgOiBjb250cm9sLm5hbWUgfX08L21hdC1sYWJlbD5cclxuICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cInt7Y29udHJvbC5uYW1lfX1cIiBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIj48L3RleHRhcmVhPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZXRLZXlzKGZvcm1Db250cm9sLmVycm9ycylcIj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZm9ybUNvbnRyb2wuZXJyb3JzPy5baXRlbV0gJiYgZm9ybUNvbnRyb2wudG91Y2hlZFwiIGNsYXNzPVwiaXNvLW1hdC1lcnJvclwiPlxyXG4gICAgICAgICAgICB7eyBjb250cm9sLm5hbWUgfCBlcnJvcjogY29udHJvbC5pZCA6IGl0ZW0gOiBpdGVtICsgXCIgdmFsaWRhdGlvbiBmYWlsZWRcIiB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbjwvbWF0LWZvcm0tZmllbGQ+Il19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './controls/iso-base-control.component';
|
|
2
|
+
export * from './controls/iso-mat-date.component';
|
|
3
|
+
export * from './controls/iso-mat-datetime.component';
|
|
4
|
+
export * from './controls/iso-mat-input.component';
|
|
5
|
+
export * from './controls/iso-mat-checkbox.component';
|
|
6
|
+
export * from './controls/iso-mat-textarea.component';
|
|
7
|
+
export * from './controls/iso-mat-select.component';
|
|
8
|
+
export * from './controls/iso-mat-currency.component';
|
|
9
|
+
export * from './iso-control/iso-control.component';
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaXNvLWZvcm0vc3JjL2xpYi9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUV0RCxjQUFjLHFDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy9pc28tYmFzZS1jb250cm9sLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvaXNvLW1hdC1kYXRlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvaXNvLW1hdC1kYXRldGltZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL2lzby1tYXQtaW5wdXQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jb250cm9scy9pc28tbWF0LWNoZWNrYm94LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvaXNvLW1hdC10ZXh0YXJlYS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzL2lzby1tYXQtc2VsZWN0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbHMvaXNvLW1hdC1jdXJyZW5jeS5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9pc28tY29udHJvbC9pc28tY29udHJvbC5jb21wb25lbnQnO1xyXG4iXX0=
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Component, Input, forwardRef } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR, Validators } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../shared/services/control.service";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "../../shared/components/dynamic/ngx-dynamic.component";
|
|
7
|
+
export class NgxIsoControlComponent {
|
|
8
|
+
constructor(controlService) {
|
|
9
|
+
this.controlService = controlService;
|
|
10
|
+
this.addValidator = () => {
|
|
11
|
+
try {
|
|
12
|
+
const minOccurs = parseInt(this.control.minOccurs, 10);
|
|
13
|
+
let minLength = parseInt(this.control.minLength, 10);
|
|
14
|
+
const maxLength = parseInt(this.control.maxLength, 10);
|
|
15
|
+
if (minOccurs) {
|
|
16
|
+
this.formControl.addValidators(Validators.required);
|
|
17
|
+
}
|
|
18
|
+
if (!Number.isNaN(minLength)) {
|
|
19
|
+
this.formControl.addValidators(Validators.minLength(minLength));
|
|
20
|
+
}
|
|
21
|
+
if (!Number.isNaN(maxLength)) {
|
|
22
|
+
this.formControl.addValidators(Validators.maxLength(maxLength));
|
|
23
|
+
}
|
|
24
|
+
if (this.control.pattern) {
|
|
25
|
+
this.formControl.addValidators(Validators.pattern(this.control.pattern));
|
|
26
|
+
}
|
|
27
|
+
if (this.control.fractionDigits) {
|
|
28
|
+
minLength = Number.isNaN(minLength) ? 0 : minLength;
|
|
29
|
+
const pattern = `^[\\d\\.\\d{0,${this.control.fractionDigits}}]{${minLength},${this.control.totalDigits}}$`;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
console.error(e);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
ngOnInit() {
|
|
38
|
+
this.addValidator();
|
|
39
|
+
this.component = this.controlService.getComponentByType(this.control, this.formControl);
|
|
40
|
+
}
|
|
41
|
+
writeValue(obj) {
|
|
42
|
+
}
|
|
43
|
+
registerOnChange(fn) {
|
|
44
|
+
}
|
|
45
|
+
registerOnTouched(fn) {
|
|
46
|
+
}
|
|
47
|
+
setDisabledState(isDisabled) {
|
|
48
|
+
}
|
|
49
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: NgxIsoControlComponent, deps: [{ token: i1.ControlService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
50
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: NgxIsoControlComponent, selector: "ngx-iso-control", inputs: { formControl: "formControl", control: "control" }, providers: [
|
|
51
|
+
{
|
|
52
|
+
provide: NG_VALUE_ACCESSOR,
|
|
53
|
+
useExisting: forwardRef(() => NgxIsoControlComponent),
|
|
54
|
+
multi: true,
|
|
55
|
+
}
|
|
56
|
+
], ngImport: i0, template: "<ngx-dynamic *ngIf=\"component\" [componentModel]=\"component\"></ngx-dynamic>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.NgxDynamicComponent, selector: "ngx-dynamic", inputs: ["componentModel"] }] }); }
|
|
57
|
+
}
|
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: NgxIsoControlComponent, decorators: [{
|
|
59
|
+
type: Component,
|
|
60
|
+
args: [{ selector: 'ngx-iso-control', providers: [
|
|
61
|
+
{
|
|
62
|
+
provide: NG_VALUE_ACCESSOR,
|
|
63
|
+
useExisting: forwardRef(() => NgxIsoControlComponent),
|
|
64
|
+
multi: true,
|
|
65
|
+
}
|
|
66
|
+
], template: "<ngx-dynamic *ngIf=\"component\" [componentModel]=\"component\"></ngx-dynamic>" }]
|
|
67
|
+
}], ctorParameters: function () { return [{ type: i1.ControlService }]; }, propDecorators: { formControl: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], control: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}] } });
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWlzby1mb3JtL3NyYy9saWIvY29tcG9uZW50cy9pc28tY29udHJvbC9pc28tY29udHJvbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaXNvLWZvcm0vc3JjL2xpYi9jb21wb25lbnRzL2lzby1jb250cm9sL2lzby1jb250cm9sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFvQyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0YsT0FBTyxFQUFxQyxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFnQmxHLE1BQU0sT0FBTyxzQkFBc0I7SUFJakMsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBaUIxQyxpQkFBWSxHQUFHLEdBQVMsRUFBRTtZQUNoQyxJQUFJO2dCQUNGLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDdkQsSUFBSSxTQUFTLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNyRCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZELElBQUksU0FBUyxFQUFFO29CQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDckQ7Z0JBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUU7b0JBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztpQkFDakU7Z0JBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUU7b0JBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztpQkFDakU7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtvQkFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7aUJBQzFFO2dCQUNELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUU7b0JBQy9CLFNBQVMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztvQkFDcEQsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxNQUFNLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsSUFBSSxDQUFBO2lCQUM1RzthQUNGO1lBQ0QsT0FBTyxDQUFDLEVBQUU7Z0JBQ1IsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNsQjtRQUNILENBQUMsQ0FBQTtJQXhDRCxDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFRO0lBQ25CLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxFQUFPO0lBQ3hCLENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxFQUFPO0lBQ3pCLENBQUM7SUFDRCxnQkFBZ0IsQ0FBRSxVQUFtQjtJQUNyQyxDQUFDOzhHQW5CVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixzR0FUdEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2dCQUNyRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJDZkgsZ0ZBQTBFOzsyRkRrQjdELHNCQUFzQjtrQkFabEMsU0FBUzsrQkFDRSxpQkFBaUIsYUFFaEI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUM7NEJBQ3JELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO3FHQUlRLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvY29udHJvbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29tcG9uZW50TW9kZWwgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL2NvbXBvbmVudC5tb2RlbCc7XHJcbmltcG9ydCB7IFNjaGVtYUVsZW1lbnQgfSBmcm9tICcuLi8uLi9Nb2RlbHMvU2NoZW1hJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbmd4LWlzby1jb250cm9sJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaXNvLWNvbnRyb2wuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTmd4SXNvQ29udHJvbENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBOZ3hJc29Db250cm9sQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgQElucHV0KCkgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sO1xyXG4gIEBJbnB1dCgpIGNvbnRyb2w6IFNjaGVtYUVsZW1lbnRcclxuICBjb21wb25lbnQ6IENvbXBvbmVudE1vZGVsXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb250cm9sU2VydmljZTogQ29udHJvbFNlcnZpY2UpIHtcclxuXHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5hZGRWYWxpZGF0b3IoKTtcclxuICAgIHRoaXMuY29tcG9uZW50ID0gdGhpcy5jb250cm9sU2VydmljZS5nZXRDb21wb25lbnRCeVR5cGUodGhpcy5jb250cm9sLCB0aGlzLmZvcm1Db250cm9sKTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcclxuICB9XHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICB9XHJcbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRWYWxpZGF0b3IgPSAoKTogdm9pZCA9PiB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBtaW5PY2N1cnMgPSBwYXJzZUludCh0aGlzLmNvbnRyb2wubWluT2NjdXJzLCAxMCk7XHJcbiAgICAgIGxldCBtaW5MZW5ndGggPSBwYXJzZUludCh0aGlzLmNvbnRyb2wubWluTGVuZ3RoLCAxMCk7XHJcbiAgICAgIGNvbnN0IG1heExlbmd0aCA9IHBhcnNlSW50KHRoaXMuY29udHJvbC5tYXhMZW5ndGgsIDEwKTtcclxuICAgICAgaWYgKG1pbk9jY3Vycykge1xyXG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIU51bWJlci5pc05hTihtaW5MZW5ndGgpKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5hZGRWYWxpZGF0b3JzKFZhbGlkYXRvcnMubWluTGVuZ3RoKG1pbkxlbmd0aCkpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghTnVtYmVyLmlzTmFOKG1heExlbmd0aCkpIHtcclxuICAgICAgICB0aGlzLmZvcm1Db250cm9sLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5tYXhMZW5ndGgobWF4TGVuZ3RoKSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuY29udHJvbC5wYXR0ZXJuKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5hZGRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucGF0dGVybih0aGlzLmNvbnRyb2wucGF0dGVybikpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmNvbnRyb2wuZnJhY3Rpb25EaWdpdHMpIHtcclxuICAgICAgICBtaW5MZW5ndGggPSBOdW1iZXIuaXNOYU4obWluTGVuZ3RoKSA/IDAgOiBtaW5MZW5ndGg7XHJcbiAgICAgICAgY29uc3QgcGF0dGVybiA9IGBeW1xcXFxkXFxcXC5cXFxcZHswLCR7dGhpcy5jb250cm9sLmZyYWN0aW9uRGlnaXRzfX1deyR7bWluTGVuZ3RofSwke3RoaXMuY29udHJvbC50b3RhbERpZ2l0c319JGBcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGUpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59IiwiPG5neC1keW5hbWljICpuZ0lmPVwiY29tcG9uZW50XCIgW2NvbXBvbmVudE1vZGVsXT1cImNvbXBvbmVudFwiPjwvbmd4LWR5bmFtaWM+Il19
|