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.
Files changed (60) hide show
  1. package/README.md +116 -0
  2. package/esm2022/lib/Models/Control.mjs +2 -0
  3. package/esm2022/lib/Models/IsoForm.mjs +8 -0
  4. package/esm2022/lib/Models/Schema.mjs +2 -0
  5. package/esm2022/lib/components/controls/iso-base-control.component.mjs +25 -0
  6. package/esm2022/lib/components/controls/iso-mat-checkbox.component.mjs +17 -0
  7. package/esm2022/lib/components/controls/iso-mat-currency.component.mjs +18 -0
  8. package/esm2022/lib/components/controls/iso-mat-date.component.mjs +19 -0
  9. package/esm2022/lib/components/controls/iso-mat-datetime.component.mjs +19 -0
  10. package/esm2022/lib/components/controls/iso-mat-input.component.mjs +18 -0
  11. package/esm2022/lib/components/controls/iso-mat-select.component.mjs +19 -0
  12. package/esm2022/lib/components/controls/iso-mat-textarea.component.mjs +18 -0
  13. package/esm2022/lib/components/index.mjs +10 -0
  14. package/esm2022/lib/components/iso-control/iso-control.component.mjs +72 -0
  15. package/esm2022/lib/ngx-iso-form.component.mjs +173 -0
  16. package/esm2022/lib/ngx-iso-form.module.mjs +115 -0
  17. package/esm2022/lib/ngx-iso-form.service.mjs +228 -0
  18. package/esm2022/lib/shared/components/dynamic/ngx-dynamic.component.mjs +33 -0
  19. package/esm2022/lib/shared/directives/component-content.directive.mjs +16 -0
  20. package/esm2022/lib/shared/models/component.model.mjs +7 -0
  21. package/esm2022/lib/shared/pipe/error.pipe.mjs +33 -0
  22. package/esm2022/lib/shared/pipe/general.pipe.mjs +33 -0
  23. package/esm2022/lib/shared/pipe/translate.pipe.mjs +33 -0
  24. package/esm2022/lib/shared/services/component.service.mjs +15 -0
  25. package/esm2022/lib/shared/services/control.service.mjs +35 -0
  26. package/esm2022/lib/shared/services/index.mjs +3 -0
  27. package/esm2022/ngx-iso-form.mjs +5 -0
  28. package/esm2022/public-api.mjs +9 -0
  29. package/fesm2022/ngx-iso-form.mjs +859 -0
  30. package/fesm2022/ngx-iso-form.mjs.map +1 -0
  31. package/index.d.ts +5 -0
  32. package/lib/Models/Control.d.ts +20 -0
  33. package/lib/Models/IsoForm.d.ts +5 -0
  34. package/lib/Models/Schema.d.ts +28 -0
  35. package/lib/components/controls/iso-base-control.component.d.ts +10 -0
  36. package/lib/components/controls/iso-mat-checkbox.component.d.ts +6 -0
  37. package/lib/components/controls/iso-mat-currency.component.d.ts +6 -0
  38. package/lib/components/controls/iso-mat-date.component.d.ts +6 -0
  39. package/lib/components/controls/iso-mat-datetime.component.d.ts +6 -0
  40. package/lib/components/controls/iso-mat-input.component.d.ts +6 -0
  41. package/lib/components/controls/iso-mat-select.component.d.ts +6 -0
  42. package/lib/components/controls/iso-mat-textarea.component.d.ts +6 -0
  43. package/lib/components/index.d.ts +9 -0
  44. package/lib/components/iso-control/iso-control.component.d.ts +21 -0
  45. package/lib/ngx-iso-form.component.d.ts +34 -0
  46. package/lib/ngx-iso-form.module.d.ts +33 -0
  47. package/lib/ngx-iso-form.service.d.ts +17 -0
  48. package/lib/shared/components/dynamic/ngx-dynamic.component.d.ts +13 -0
  49. package/lib/shared/directives/component-content.directive.d.ts +8 -0
  50. package/lib/shared/models/component.model.d.ts +6 -0
  51. package/lib/shared/pipe/error.pipe.d.ts +10 -0
  52. package/lib/shared/pipe/general.pipe.d.ts +10 -0
  53. package/lib/shared/pipe/translate.pipe.d.ts +10 -0
  54. package/lib/shared/services/component.service.d.ts +5 -0
  55. package/lib/shared/services/control.service.d.ts +6 -0
  56. package/lib/shared/services/index.d.ts +2 -0
  57. package/lib/styles/index.scss +33 -0
  58. package/lib/styles/ngx-iso-form.component.scss +10 -0
  59. package/package.json +47 -0
  60. 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
+ [![Npm version](https://badge.fury.io/js/%40ngx-iso-form.svg)](https://npmjs.org/package/ngx-iso-form.svg)
10
+ [![Downloads](https://img.shields.io/npm/dm/ngx-iso-form.svg)](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