i-tech-shared-components 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/.npmignore +2 -0
- package/README.md +24 -0
- package/esm2022/i-tech-shared-components.mjs +5 -0
- package/esm2022/lib/components/button/button.component.mjs +66 -0
- package/esm2022/lib/components/icon-button/icon-button.component.mjs +49 -0
- package/esm2022/lib/components/text/text-input.component.mjs +75 -0
- package/esm2022/lib/directives/input-mask.directive.mjs +92 -0
- package/esm2022/lib/interfaces/app-input.interface.mjs +2 -0
- package/esm2022/lib/interfaces/button-types.constants.mjs +9 -0
- package/esm2022/lib/pipes/generate-error-messages.pipe.mjs +31 -0
- package/esm2022/lib/services/input.service.mjs +29 -0
- package/esm2022/public-api.mjs +11 -0
- package/fesm2022/i-tech-shared-components.mjs +335 -0
- package/fesm2022/i-tech-shared-components.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/button/button.component.d.ts +21 -0
- package/lib/components/icon-button/icon-button.component.d.ts +14 -0
- package/lib/components/text/text-input.component.d.ts +21 -0
- package/lib/directives/input-mask.directive.d.ts +21 -0
- package/lib/interfaces/app-input.interface.d.ts +31 -0
- package/lib/interfaces/button-types.constants.d.ts +7 -0
- package/lib/pipes/generate-error-messages.pipe.d.ts +10 -0
- package/lib/services/input.service.d.ts +7 -0
- package/package.json +32 -0
- package/public-api.d.ts +7 -0
- package/theme/_buttons.scss +63 -0
- package/theme/_color_themes.scss +136 -0
- package/theme/_date_picker.scss +77 -0
- package/theme/_form_fields.scss +106 -0
- package/theme/_icon-button.scss +123 -0
- package/theme/_label.scss +119 -0
- package/theme/_mat-selects.scss +248 -0
- package/theme/_menu.scss +9 -0
- package/theme/_text_input.scss +28 -0
- package/theme.scss +36 -0
package/.npmignore
ADDED
package/README.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# SharedComponents
|
|
2
|
+
|
|
3
|
+
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 18.2.0.
|
|
4
|
+
|
|
5
|
+
## Code scaffolding
|
|
6
|
+
|
|
7
|
+
Run `ng generate component component-name --project shared-components` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project shared-components`.
|
|
8
|
+
> Note: Don't forget to add `--project shared-components` or else it will be added to the default project in your `angular.json` file.
|
|
9
|
+
|
|
10
|
+
## Build
|
|
11
|
+
|
|
12
|
+
Run `ng build shared-components` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
13
|
+
|
|
14
|
+
## Publishing
|
|
15
|
+
|
|
16
|
+
After building your library with `ng build shared-components`, go to the dist folder `cd dist/shared-components` and run `npm publish`.
|
|
17
|
+
|
|
18
|
+
## Running unit tests
|
|
19
|
+
|
|
20
|
+
Run `ng test shared-components` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
21
|
+
|
|
22
|
+
## Further help
|
|
23
|
+
|
|
24
|
+
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS10ZWNoLXNoYXJlZC1jb21wb25lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2ktdGVjaC1zaGFyZWQtY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { MatButton } from "@angular/material/button";
|
|
3
|
+
import { NgClass, NgIf } from "@angular/common";
|
|
4
|
+
import { MatProgressSpinner } from "@angular/material/progress-spinner";
|
|
5
|
+
import { MatIconModule } from "@angular/material/icon";
|
|
6
|
+
import { TranslateModule } from "@ngx-translate/core";
|
|
7
|
+
import { ButtonType } from '../../interfaces/button-types.constants';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/material/icon";
|
|
10
|
+
import * as i2 from "@ngx-translate/core";
|
|
11
|
+
export class ButtonComponent {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.text = '';
|
|
14
|
+
this.data_cy = '';
|
|
15
|
+
this.fontIcon = '';
|
|
16
|
+
this.svgIcon = '';
|
|
17
|
+
this.type = ButtonType.FILLED;
|
|
18
|
+
this.submit = false;
|
|
19
|
+
this.disabled = false;
|
|
20
|
+
this.activated = false;
|
|
21
|
+
this.color = 'primary';
|
|
22
|
+
this.buttonClick = new EventEmitter();
|
|
23
|
+
this.ButtonType = ButtonType;
|
|
24
|
+
}
|
|
25
|
+
onClick(event) {
|
|
26
|
+
if (!this.disabled && !this.submit) {
|
|
27
|
+
this.buttonClick.emit();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
31
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ButtonComponent, isStandalone: true, selector: "lib-button", inputs: { text: "text", data_cy: "data_cy", fontIcon: "fontIcon", svgIcon: "svgIcon", type: "type", customClass: "customClass", submit: "submit", disabled: "disabled", activated: "activated", color: "color" }, outputs: { buttonClick: "buttonClick" }, ngImport: i0, template: "<button *ngIf=\"[ButtonType.FILLED,ButtonType.WARNING].includes(type)\"\r\n mat-flat-button\r\n [attr.data-cy]=\"data_cy\"\r\n [color]=\"type === ButtonType.WARNING ? 'warn' : color\"\r\n [class.activated]=\"activated\"\r\n [ngClass]=\"(customClass || '')\"\r\n [disabled]=\"disabled || submit\"\r\n (click)=\"onClick($event)\"\r\n>\r\n <span *ngIf=\"submit\" class=\"spinner-overlay\">\r\n <mat-spinner diameter=\"16\"></mat-spinner>\r\n </span>\r\n <mat-icon *ngIf=\"fontIcon && !submit\">{{fontIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIcon && !submit\" [svgIcon]=\"svgIcon\"></mat-icon>\r\n <span>{{text | translate}}</span>\r\n</button>\r\n<button *ngIf=\"[ButtonType.TONAL,ButtonType.TEXT].includes(type)\"\r\n mat-button\r\n [attr.data-cy]=\"data_cy\"\r\n [ngClass]=\"(type === ButtonType.TONAL ? 'tertiary ' : '') + (customClass || '')\"\r\n [class.activated]=\"activated\"\r\n [disabled]=\"disabled || submit\"\r\n (click)=\"onClick($event)\"\r\n>\r\n <span *ngIf=\"submit\" class=\"spinner-overlay\">\r\n <mat-spinner diameter=\"16\"></mat-spinner>\r\n </span>\r\n <mat-icon *ngIf=\"fontIcon && !submit\">{{fontIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIcon && !submit\" [svgIcon]=\"svgIcon\"></mat-icon>\r\n\r\n <span>{{text | translate}}</span>\r\n</button>\r\n<button *ngIf=\"type === ButtonType.OUTLINE\"\r\n [color]=\"color\"\r\n mat-stroked-button\r\n [attr.data-cy]=\"data_cy\"\r\n [ngClass]=\"(customClass || '') \"\r\n [disabled]=\"disabled || submit\"\r\n (click)=\"onClick($event)\"\r\n [class.activated]=\"activated\"\r\n>\r\n <span *ngIf=\"submit\" class=\"spinner-overlay\">\r\n <mat-spinner diameter=\"16\"></mat-spinner>\r\n </span>\r\n <mat-icon *ngIf=\"fontIcon && !submit\" >{{fontIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIcon && !submit\" [svgIcon]=\"svgIcon\"></mat-icon>\r\n <span>{{text | translate}}</span>\r\n</button>\r\n", styles: [""], dependencies: [{ kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
|
|
32
|
+
}
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
34
|
+
type: Component,
|
|
35
|
+
args: [{ selector: 'lib-button', standalone: true, imports: [
|
|
36
|
+
MatButton,
|
|
37
|
+
NgClass,
|
|
38
|
+
MatProgressSpinner,
|
|
39
|
+
NgIf,
|
|
40
|
+
MatIconModule,
|
|
41
|
+
TranslateModule
|
|
42
|
+
], template: "<button *ngIf=\"[ButtonType.FILLED,ButtonType.WARNING].includes(type)\"\r\n mat-flat-button\r\n [attr.data-cy]=\"data_cy\"\r\n [color]=\"type === ButtonType.WARNING ? 'warn' : color\"\r\n [class.activated]=\"activated\"\r\n [ngClass]=\"(customClass || '')\"\r\n [disabled]=\"disabled || submit\"\r\n (click)=\"onClick($event)\"\r\n>\r\n <span *ngIf=\"submit\" class=\"spinner-overlay\">\r\n <mat-spinner diameter=\"16\"></mat-spinner>\r\n </span>\r\n <mat-icon *ngIf=\"fontIcon && !submit\">{{fontIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIcon && !submit\" [svgIcon]=\"svgIcon\"></mat-icon>\r\n <span>{{text | translate}}</span>\r\n</button>\r\n<button *ngIf=\"[ButtonType.TONAL,ButtonType.TEXT].includes(type)\"\r\n mat-button\r\n [attr.data-cy]=\"data_cy\"\r\n [ngClass]=\"(type === ButtonType.TONAL ? 'tertiary ' : '') + (customClass || '')\"\r\n [class.activated]=\"activated\"\r\n [disabled]=\"disabled || submit\"\r\n (click)=\"onClick($event)\"\r\n>\r\n <span *ngIf=\"submit\" class=\"spinner-overlay\">\r\n <mat-spinner diameter=\"16\"></mat-spinner>\r\n </span>\r\n <mat-icon *ngIf=\"fontIcon && !submit\">{{fontIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIcon && !submit\" [svgIcon]=\"svgIcon\"></mat-icon>\r\n\r\n <span>{{text | translate}}</span>\r\n</button>\r\n<button *ngIf=\"type === ButtonType.OUTLINE\"\r\n [color]=\"color\"\r\n mat-stroked-button\r\n [attr.data-cy]=\"data_cy\"\r\n [ngClass]=\"(customClass || '') \"\r\n [disabled]=\"disabled || submit\"\r\n (click)=\"onClick($event)\"\r\n [class.activated]=\"activated\"\r\n>\r\n <span *ngIf=\"submit\" class=\"spinner-overlay\">\r\n <mat-spinner diameter=\"16\"></mat-spinner>\r\n </span>\r\n <mat-icon *ngIf=\"fontIcon && !submit\" >{{fontIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIcon && !submit\" [svgIcon]=\"svgIcon\"></mat-icon>\r\n <span>{{text | translate}}</span>\r\n</button>\r\n" }]
|
|
43
|
+
}], ctorParameters: () => [], propDecorators: { text: [{
|
|
44
|
+
type: Input
|
|
45
|
+
}], data_cy: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}], fontIcon: [{
|
|
48
|
+
type: Input
|
|
49
|
+
}], svgIcon: [{
|
|
50
|
+
type: Input
|
|
51
|
+
}], type: [{
|
|
52
|
+
type: Input
|
|
53
|
+
}], customClass: [{
|
|
54
|
+
type: Input
|
|
55
|
+
}], submit: [{
|
|
56
|
+
type: Input
|
|
57
|
+
}], disabled: [{
|
|
58
|
+
type: Input
|
|
59
|
+
}], activated: [{
|
|
60
|
+
type: Input
|
|
61
|
+
}], color: [{
|
|
62
|
+
type: Input
|
|
63
|
+
}], buttonClick: [{
|
|
64
|
+
type: Output
|
|
65
|
+
}] } });
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDdEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUNBQXlDLENBQUM7Ozs7QUFnQnJFLE1BQU0sT0FBTyxlQUFlO0lBYzFCO1FBYlMsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUNsQixZQUFPLEdBQVcsRUFBRSxDQUFDO1FBQ3JCLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFDdEIsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUNyQixTQUFJLEdBQWUsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUVyQyxXQUFNLEdBQVksS0FBSyxDQUFDO1FBQ3hCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixVQUFLLEdBQXVCLFNBQVMsQ0FBQztRQUNyQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDOUIsZUFBVSxHQUFHLFVBQVUsQ0FBQztJQUU1QixDQUFDO0lBRWhCLE9BQU8sQ0FBQyxLQUFpQjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDOytHQXBCVSxlQUFlO21HQUFmLGVBQWUsaVVDdEI1Qix5aUVBZ0RBLDBERHBDSSxTQUFTLGlMQUNULE9BQU8sb0ZBQ1Asa0JBQWtCLCtLQUNsQixJQUFJLDRGQUNKLGFBQWEsbUxBQ2IsZUFBZTs7NEZBS04sZUFBZTtrQkFkM0IsU0FBUzsrQkFDRSxZQUFZLGNBQ1YsSUFBSSxXQUNQO3dCQUNQLFNBQVM7d0JBQ1QsT0FBTzt3QkFDUCxrQkFBa0I7d0JBQ2xCLElBQUk7d0JBQ0osYUFBYTt3QkFDYixlQUFlO3FCQUNoQjt3REFLUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtNYXRCdXR0b259IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcclxuaW1wb3J0IHtOZ0NsYXNzLCBOZ0lmfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7TWF0UHJvZ3Jlc3NTcGlubmVyfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lclwiO1xyXG5pbXBvcnQge01hdEljb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pY29uXCI7XHJcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQgeyBCdXR0b25UeXBlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9idXR0b24tdHlwZXMuY29uc3RhbnRzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWJ1dHRvbicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXRCdXR0b24sXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyLFxyXG4gICAgTmdJZixcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9idXR0b24uY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEJ1dHRvbkNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgdGV4dDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgZGF0YV9jeTogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgZm9udEljb246IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIHN2Z0ljb246IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIHR5cGU6IEJ1dHRvblR5cGUgPSBCdXR0b25UeXBlLkZJTExFRDtcclxuICBASW5wdXQoKSBjdXN0b21DbGFzcyE6IHN0cmluZztcclxuICBASW5wdXQoKSBzdWJtaXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGFjdGl2YXRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGNvbG9yOiAncHJpbWFyeScgfCAnd2FybicgPSAncHJpbWFyeSc7XHJcbiAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBCdXR0b25UeXBlID0gQnV0dG9uVHlwZTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMuc3VibWl0KSB7XHJcbiAgICAgIHRoaXMuYnV0dG9uQ2xpY2suZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8YnV0dG9uICpuZ0lmPVwiW0J1dHRvblR5cGUuRklMTEVELEJ1dHRvblR5cGUuV0FSTklOR10uaW5jbHVkZXModHlwZSlcIlxyXG4gICAgICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICAgIFthdHRyLmRhdGEtY3ldPVwiZGF0YV9jeVwiXHJcbiAgICAgICAgW2NvbG9yXT1cInR5cGUgPT09IEJ1dHRvblR5cGUuV0FSTklORyA/ICd3YXJuJyA6IGNvbG9yXCJcclxuICAgICAgICBbY2xhc3MuYWN0aXZhdGVkXT1cImFjdGl2YXRlZFwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwiKGN1c3RvbUNsYXNzIHx8ICcnKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHN1Ym1pdFwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiXHJcbj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cInN1Ym1pdFwiIGNsYXNzPVwic3Bpbm5lci1vdmVybGF5XCI+XHJcbiAgICAgICAgICAgIDxtYXQtc3Bpbm5lciBkaWFtZXRlcj1cIjE2XCI+PC9tYXQtc3Bpbm5lcj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgPG1hdC1pY29uICpuZ0lmPVwiZm9udEljb24gJiYgIXN1Ym1pdFwiPnt7Zm9udEljb259fTwvbWF0LWljb24+XHJcbiAgPG1hdC1pY29uICpuZ0lmPVwic3ZnSWNvbiAmJiAhc3VibWl0XCIgW3N2Z0ljb25dPVwic3ZnSWNvblwiPjwvbWF0LWljb24+XHJcbiAgPHNwYW4+e3t0ZXh0IHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbjwvYnV0dG9uPlxyXG48YnV0dG9uICpuZ0lmPVwiW0J1dHRvblR5cGUuVE9OQUwsQnV0dG9uVHlwZS5URVhUXS5pbmNsdWRlcyh0eXBlKVwiXHJcbiAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgIFthdHRyLmRhdGEtY3ldPVwiZGF0YV9jeVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwiKHR5cGUgPT09IEJ1dHRvblR5cGUuVE9OQUwgPyAndGVydGlhcnkgJyA6ICcnKSArIChjdXN0b21DbGFzcyB8fCAnJylcIlxyXG4gICAgICAgIFtjbGFzcy5hY3RpdmF0ZWRdPVwiYWN0aXZhdGVkXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgc3VibWl0XCJcclxuICAgICAgICAoY2xpY2spPVwib25DbGljaygkZXZlbnQpXCJcclxuPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwic3VibWl0XCIgIGNsYXNzPVwic3Bpbm5lci1vdmVybGF5XCI+XHJcbiAgICAgICAgICAgIDxtYXQtc3Bpbm5lciBkaWFtZXRlcj1cIjE2XCI+PC9tYXQtc3Bpbm5lcj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgPG1hdC1pY29uICpuZ0lmPVwiZm9udEljb24gJiYgIXN1Ym1pdFwiPnt7Zm9udEljb259fTwvbWF0LWljb24+XHJcbiAgPG1hdC1pY29uICpuZ0lmPVwic3ZnSWNvbiAmJiAhc3VibWl0XCIgW3N2Z0ljb25dPVwic3ZnSWNvblwiPjwvbWF0LWljb24+XHJcblxyXG4gIDxzcGFuPnt7dGV4dCB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG48L2J1dHRvbj5cclxuPGJ1dHRvbiAqbmdJZj1cInR5cGUgPT09IEJ1dHRvblR5cGUuT1VUTElORVwiXHJcbiAgICAgICAgW2NvbG9yXT1cImNvbG9yXCJcclxuICAgICAgICBtYXQtc3Ryb2tlZC1idXR0b25cclxuICAgICAgICBbYXR0ci5kYXRhLWN5XT1cImRhdGFfY3lcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cIihjdXN0b21DbGFzcyB8fCAnJykgXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgc3VibWl0XCJcclxuICAgICAgICAoY2xpY2spPVwib25DbGljaygkZXZlbnQpXCJcclxuICAgICAgICBbY2xhc3MuYWN0aXZhdGVkXT1cImFjdGl2YXRlZFwiXHJcbj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cInN1Ym1pdFwiICBjbGFzcz1cInNwaW5uZXItb3ZlcmxheVwiPlxyXG4gICAgICAgICAgICA8bWF0LXNwaW5uZXIgZGlhbWV0ZXI9XCIxNlwiPjwvbWF0LXNwaW5uZXI+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gIDxtYXQtaWNvbiAqbmdJZj1cImZvbnRJY29uICYmICFzdWJtaXRcIiA+e3tmb250SWNvbn19PC9tYXQtaWNvbj5cclxuICA8bWF0LWljb24gKm5nSWY9XCJzdmdJY29uICYmICFzdWJtaXRcIiBbc3ZnSWNvbl09XCJzdmdJY29uXCI+PC9tYXQtaWNvbj5cclxuICA8c3Bhbj57e3RleHQgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuPC9idXR0b24+XHJcbiJdfQ==
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { MatFabButton, MatIconButton } from "@angular/material/button";
|
|
3
|
+
import { NgClass, NgIf } from "@angular/common";
|
|
4
|
+
import { MatTooltip } from "@angular/material/tooltip";
|
|
5
|
+
import { TranslateModule } from "@ngx-translate/core";
|
|
6
|
+
import { MatIcon } from "@angular/material/icon";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@ngx-translate/core";
|
|
9
|
+
export class IconButtonComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.size = 'medium';
|
|
12
|
+
this.type = 'tonal';
|
|
13
|
+
this.buttonClick = new EventEmitter();
|
|
14
|
+
}
|
|
15
|
+
onClick(event) {
|
|
16
|
+
if (!this.disabled) {
|
|
17
|
+
this.buttonClick.emit();
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IconButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
21
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: IconButtonComponent, isStandalone: true, selector: "app-icon-button", inputs: { size: "size", type: "type", iconSvg: "iconSvg", iconName: "iconName", tooltip: "tooltip", disabled: "disabled" }, outputs: { buttonClick: "buttonClick" }, ngImport: i0, template: "<button\r\n *ngIf=\"['tonal','standard'].includes(type)\"\r\n mat-icon-button\r\n [ngClass]=\"{small: size === 'small', tonal: type === 'tonal', standard: type === 'standard'}\"\r\n [matTooltip]=\"tooltip | translate\"\r\n [matTooltipDisabled]=\"!tooltip\"\r\n [disabled]=\"disabled || false\"\r\n (click)=\"onClick($event)\"\r\n>\r\n <mat-icon *ngIf=\"iconSvg\" [svgIcon]=\"iconSvg\"></mat-icon>\r\n <mat-icon *ngIf=\"iconName\">{{iconName}}</mat-icon>\r\n</button>\r\n\r\n<button\r\n *ngIf=\"type === 'filled'\"\r\n mat-fab\r\n class=\"filled\"\r\n [ngClass]=\"{small: size === 'small'}\"\r\n [matTooltip]=\"tooltip | translate\"\r\n [matTooltipDisabled]=\"!tooltip\"\r\n [color]=\"'primary'\"\r\n [disabled]=\"disabled || false\"\r\n (click)=\"onClick($event)\"\r\n>\r\n <mat-icon *ngIf=\"iconSvg\" [svgIcon]=\"iconSvg\"></mat-icon>\r\n <mat-icon *ngIf=\"iconName\">{{iconName}}</mat-icon>\r\n</button>\r\n", styles: [""], dependencies: [{ kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatFabButton, selector: "button[mat-fab]", inputs: ["extended"], exportAs: ["matButton"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
22
|
+
}
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IconButtonComponent, decorators: [{
|
|
24
|
+
type: Component,
|
|
25
|
+
args: [{ selector: 'app-icon-button', imports: [
|
|
26
|
+
MatIconButton,
|
|
27
|
+
NgClass,
|
|
28
|
+
MatTooltip,
|
|
29
|
+
TranslateModule,
|
|
30
|
+
MatIcon,
|
|
31
|
+
MatFabButton,
|
|
32
|
+
NgIf
|
|
33
|
+
], standalone: true, template: "<button\r\n *ngIf=\"['tonal','standard'].includes(type)\"\r\n mat-icon-button\r\n [ngClass]=\"{small: size === 'small', tonal: type === 'tonal', standard: type === 'standard'}\"\r\n [matTooltip]=\"tooltip | translate\"\r\n [matTooltipDisabled]=\"!tooltip\"\r\n [disabled]=\"disabled || false\"\r\n (click)=\"onClick($event)\"\r\n>\r\n <mat-icon *ngIf=\"iconSvg\" [svgIcon]=\"iconSvg\"></mat-icon>\r\n <mat-icon *ngIf=\"iconName\">{{iconName}}</mat-icon>\r\n</button>\r\n\r\n<button\r\n *ngIf=\"type === 'filled'\"\r\n mat-fab\r\n class=\"filled\"\r\n [ngClass]=\"{small: size === 'small'}\"\r\n [matTooltip]=\"tooltip | translate\"\r\n [matTooltipDisabled]=\"!tooltip\"\r\n [color]=\"'primary'\"\r\n [disabled]=\"disabled || false\"\r\n (click)=\"onClick($event)\"\r\n>\r\n <mat-icon *ngIf=\"iconSvg\" [svgIcon]=\"iconSvg\"></mat-icon>\r\n <mat-icon *ngIf=\"iconName\">{{iconName}}</mat-icon>\r\n</button>\r\n" }]
|
|
34
|
+
}], propDecorators: { size: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}], type: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}], iconSvg: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}], iconName: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}], tooltip: [{
|
|
43
|
+
type: Input
|
|
44
|
+
}], disabled: [{
|
|
45
|
+
type: Input
|
|
46
|
+
}], buttonClick: [{
|
|
47
|
+
type: Output
|
|
48
|
+
}] } });
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ljb24tYnV0dG9uL2ljb24tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9pY29uLWJ1dHRvbi9pY29uLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxZQUFZLEVBQUUsYUFBYSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDckUsT0FBTyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDckQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBaUIvQyxNQUFNLE9BQU8sbUJBQW1CO0lBZmhDO1FBZ0JXLFNBQUksR0FBdUIsUUFBUSxDQUFDO1FBQ3BDLFNBQUksR0FBb0MsT0FBTyxDQUFDO1FBSy9DLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQU9sRDtJQUxDLE9BQU8sQ0FBQyxLQUFpQjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUM7K0dBYlUsbUJBQW1CO21HQUFuQixtQkFBbUIsZ1BDdEJoQywyZ0NBMkJBLDBERGZJLGFBQWEsNkZBQ2IsT0FBTyxvRkFDUCxVQUFVLGdSQUNWLGVBQWUsNEZBQ2YsT0FBTywySUFDUCxZQUFZLDJHQUNaLElBQUk7OzRGQUlLLG1CQUFtQjtrQkFmL0IsU0FBUzsrQkFDRSxpQkFBaUIsV0FHbEI7d0JBQ1AsYUFBYTt3QkFDYixPQUFPO3dCQUNQLFVBQVU7d0JBQ1YsZUFBZTt3QkFDZixPQUFPO3dCQUNQLFlBQVk7d0JBQ1osSUFBSTtxQkFDTCxjQUNXLElBQUk7OEJBR1AsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7TWF0RmFiQnV0dG9uLCBNYXRJY29uQnV0dG9ufSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uXCI7XHJcbmltcG9ydCB7TmdDbGFzcywgTmdJZn0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge01hdFRvb2x0aXB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwXCI7XHJcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQge01hdEljb259IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pY29uXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1pY29uLWJ1dHRvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ljb24tYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vaWNvbi1idXR0b24uY29tcG9uZW50LnNjc3MnLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdEljb25CdXR0b24sXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgTWF0VG9vbHRpcCxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIE1hdEljb24sXHJcbiAgICBNYXRGYWJCdXR0b24sXHJcbiAgICBOZ0lmXHJcbiAgXSxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJY29uQnV0dG9uQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBzaXplOiAnbWVkaXVtJyB8ICdzbWFsbCcgPSAnbWVkaXVtJztcclxuICBASW5wdXQoKSB0eXBlOiAnc3RhbmRhcmQnIHwgJ2ZpbGxlZCcgfCAndG9uYWwnID0gJ3RvbmFsJztcclxuICBASW5wdXQoKSBpY29uU3ZnITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGljb25OYW1lITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHRvb2x0aXAhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQhOiBib29sZWFuO1xyXG4gIEBPdXRwdXQoKSBidXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgb25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuYnV0dG9uQ2xpY2suZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8YnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCJbJ3RvbmFsJywnc3RhbmRhcmQnXS5pbmNsdWRlcyh0eXBlKVwiXHJcbiAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgW25nQ2xhc3NdPVwie3NtYWxsOiBzaXplID09PSAnc21hbGwnLCB0b25hbDogdHlwZSA9PT0gJ3RvbmFsJywgc3RhbmRhcmQ6IHR5cGUgPT09ICdzdGFuZGFyZCd9XCJcclxuICAgICAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICBbbWF0VG9vbHRpcERpc2FibGVkXT1cIiF0b29sdGlwXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgZmFsc2VcIlxyXG4gICAgICAgIChjbGljayk9XCJvbkNsaWNrKCRldmVudClcIlxyXG4+XHJcbiAgICA8bWF0LWljb24gKm5nSWY9XCJpY29uU3ZnXCIgW3N2Z0ljb25dPVwiaWNvblN2Z1wiPjwvbWF0LWljb24+XHJcbiAgICA8bWF0LWljb24gKm5nSWY9XCJpY29uTmFtZVwiPnt7aWNvbk5hbWV9fTwvbWF0LWljb24+XHJcbjwvYnV0dG9uPlxyXG5cclxuPGJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwidHlwZSA9PT0gJ2ZpbGxlZCdcIlxyXG4gICAgICAgIG1hdC1mYWJcclxuICAgICAgICBjbGFzcz1cImZpbGxlZFwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwie3NtYWxsOiBzaXplID09PSAnc21hbGwnfVwiXHJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcCB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgW21hdFRvb2x0aXBEaXNhYmxlZF09XCIhdG9vbHRpcFwiXHJcbiAgICAgICAgW2NvbG9yXT1cIidwcmltYXJ5J1wiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGZhbHNlXCJcclxuICAgICAgICAoY2xpY2spPVwib25DbGljaygkZXZlbnQpXCJcclxuPlxyXG4gICAgPG1hdC1pY29uICpuZ0lmPVwiaWNvblN2Z1wiIFtzdmdJY29uXT1cImljb25TdmdcIj48L21hdC1pY29uPlxyXG4gICAgPG1hdC1pY29uICpuZ0lmPVwiaWNvbk5hbWVcIj57e2ljb25OYW1lfX08L21hdC1pY29uPlxyXG48L2J1dHRvbj5cclxuIl19
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
3
|
+
import { MatError, MatFormField, MatHint, MatLabel } from "@angular/material/form-field";
|
|
4
|
+
import { TranslateModule } from "@ngx-translate/core";
|
|
5
|
+
import { NgClass, NgIf } from "@angular/common";
|
|
6
|
+
import { MatIcon } from "@angular/material/icon";
|
|
7
|
+
import { MatTooltip } from "@angular/material/tooltip";
|
|
8
|
+
import { MatInput } from "@angular/material/input";
|
|
9
|
+
import { GenerateErrorMessagesPipe } from "../../pipes/generate-error-messages.pipe";
|
|
10
|
+
import { IconButtonComponent } from "../icon-button/icon-button.component";
|
|
11
|
+
import { InputMaskDirective } from "../../directives/input-mask.directive";
|
|
12
|
+
import { NgxMaskDirective } from "ngx-mask";
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "../../services/input.service";
|
|
15
|
+
import * as i2 from "@ngx-translate/core";
|
|
16
|
+
import * as i3 from "@angular/forms";
|
|
17
|
+
export class TextInputComponent {
|
|
18
|
+
set inputData(data) {
|
|
19
|
+
// If submit becomes true, mark the control as touched
|
|
20
|
+
if (data?.submit && this.ngControl.control) {
|
|
21
|
+
this.ngControl.control.markAsTouched();
|
|
22
|
+
}
|
|
23
|
+
this._inputData = data;
|
|
24
|
+
}
|
|
25
|
+
get inputData() {
|
|
26
|
+
return this._inputData;
|
|
27
|
+
}
|
|
28
|
+
constructor(inputService) {
|
|
29
|
+
this.inputService = inputService;
|
|
30
|
+
this.focusOutEmitter = new EventEmitter();
|
|
31
|
+
this.customErrorStateMatcher = {
|
|
32
|
+
isErrorState: (control, form) => {
|
|
33
|
+
return !!(control && control.invalid && this.inputData?.submit);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
this.ngControl = this.inputService.injectNgControl();
|
|
37
|
+
}
|
|
38
|
+
onFocusOut() {
|
|
39
|
+
if (this._inputData.focusOutEmit) {
|
|
40
|
+
this.focusOutEmitter.emit();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
clear() {
|
|
44
|
+
if (this.ngControl) {
|
|
45
|
+
this.ngControl.control.reset();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextInputComponent, deps: [{ token: i1.InputService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
49
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TextInputComponent, isStandalone: true, selector: "app-text-input", inputs: { inputData: "inputData" }, outputs: { focusOutEmitter: "focusOutEmitter" }, ngImport: i0, template: "<div *ngIf=\"inputData && ngControl\">\r\n <div class=\"w-100\">\r\n <mat-label [ngClass]=\"{'readonly-color' : inputData.readOnly || ngControl.control.disabled}\" *ngIf=\"inputData.label\">\r\n {{inputData.label | translate}}\r\n </mat-label>\r\n <span *ngIf=\"inputData.required\" class=\"required-input\" [ngClass]=\"{'readonly-color' : inputData.readOnly || ngControl.control.disabled}\">*</span>\r\n </div>\r\n <mat-form-field appearance=\"outline\" class=\"w-100\"\r\n [class.readonly-field]=\"inputData.readOnly || ngControl.control.disabled\"\r\n >\r\n <!-- Leading Icon -->\r\n <mat-icon *ngIf=\"inputData.iconPrefix\"\r\n matPrefix\r\n [ngClass]=\"{\r\n 'readonly-color' : !inputData.iconPrefixColor && (inputData.readOnly || ngControl.control.disabled),\r\n 'default-form-icon-color' : !inputData.iconPrefixColor && !(inputData.readOnly || ngControl.control.disabled)\r\n }\"\r\n [matTooltip]=\"((inputData.iconPrefixTooltip || '') | translate)\"\r\n [style.color]=\"inputData.iconPrefixColor || null\"\r\n >{{ inputData.iconPrefix }}\r\n </mat-icon>\r\n\r\n <mat-icon *ngIf=\"inputData.iconPrefixSvg\"\r\n matPrefix\r\n [matTooltip]=\"((inputData.iconPrefixTooltip || '') | translate)\"\r\n [svgIcon]=\"inputData.iconPrefixSvg\"\r\n ></mat-icon>\r\n\r\n <!-- Input Field -->\r\n <input matInput\r\n *ngIf=\"!inputData.textarea\"\r\n [type]=\"inputData.type || 'text'\"\r\n [readonly]=\"inputData.readOnly\"\r\n [placeholder]=\"(inputData.placeholder || '') | translate\"\r\n [pattern]=\"inputData.pattern!\"\r\n [formControl]=\"ngControl.control\"\r\n [mask]=\"inputData.mask || ''\"\r\n [ngClass]=\"{'readonly-color readonly-cursor' : inputData.readOnly || ngControl.control.disabled}\"\r\n [inputMask]=\"inputData.inputMask!\"\r\n [errorStateMatcher]=\"customErrorStateMatcher\"\r\n (blur)=\"onFocusOut()\"\r\n >\r\n\r\n <textarea matInput\r\n *ngIf=\"inputData.textarea\"\r\n [type]=\"inputData.type || 'text'\"\r\n [readonly]=\"inputData.readOnly\"\r\n [placeholder]=\"(inputData.placeholder || '') | translate\"\r\n [pattern]=\"inputData.pattern!\"\r\n [formControl]=\"ngControl.control\"\r\n [ngClass]=\"{'readonly-color' : inputData.readOnly || ngControl.control.disabled}\"\r\n [errorStateMatcher]=\"customErrorStateMatcher\"\r\n ></textarea>\r\n\r\n <!-- Clear Icon -->\r\n <app-icon-button\r\n *ngIf=\"inputData.clearable\"\r\n iconName=\"cancel\"\r\n matSuffix\r\n [disabled]=\"inputData.readOnly || ngControl.control.disabled || false\"\r\n [ngClass]=\"inputData.readOnly || ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\r\n (click)=\"clear()\"\r\n >\r\n </app-icon-button>\r\n\r\n <!-- Trailing Icon -->\r\n <app-icon-button\r\n *ngIf=\"inputData.iconSuffix\"\r\n [iconName]=\"inputData.iconSuffix\"\r\n [disabled]=\"inputData.readOnly || ngControl.control.disabled || false\"\r\n [ngClass]=\"inputData.readOnly || ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\r\n matSuffix\r\n >\r\n </app-icon-button>\r\n\r\n <!-- Error Messages -->\r\n <mat-error *ngIf=\"!!(ngControl.control.errors && inputData.submit)\">\r\n {{ ngControl.control | generateErrorMessages : (inputData.label || '') : inputData.defaultPatternKey}}\r\n </mat-error>\r\n\r\n <!-- Helper Text -->\r\n <mat-hint *ngIf=\"!(!!(ngControl.control.errors && inputData.submit)) && inputData.hint\">\r\n {{inputData.hint | translate}}\r\n </mat-hint>\r\n </mat-form-field>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: 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: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: GenerateErrorMessagesPipe, name: "generateErrorMessages" }, { kind: "component", type: IconButtonComponent, selector: "app-icon-button", inputs: ["size", "type", "iconSvg", "iconName", "tooltip", "disabled"], outputs: ["buttonClick"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: InputMaskDirective, selector: "[inputMask]", inputs: ["inputMask", "min", "max", "float"] }, { kind: "directive", type: NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }] }); }
|
|
50
|
+
}
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextInputComponent, decorators: [{
|
|
52
|
+
type: Component,
|
|
53
|
+
args: [{ selector: 'app-text-input', imports: [
|
|
54
|
+
MatLabel,
|
|
55
|
+
TranslateModule,
|
|
56
|
+
NgClass,
|
|
57
|
+
MatFormField,
|
|
58
|
+
MatIcon,
|
|
59
|
+
MatTooltip,
|
|
60
|
+
MatInput,
|
|
61
|
+
ReactiveFormsModule,
|
|
62
|
+
NgIf,
|
|
63
|
+
GenerateErrorMessagesPipe,
|
|
64
|
+
IconButtonComponent,
|
|
65
|
+
MatError,
|
|
66
|
+
MatHint,
|
|
67
|
+
InputMaskDirective,
|
|
68
|
+
NgxMaskDirective
|
|
69
|
+
], standalone: true, template: "<div *ngIf=\"inputData && ngControl\">\r\n <div class=\"w-100\">\r\n <mat-label [ngClass]=\"{'readonly-color' : inputData.readOnly || ngControl.control.disabled}\" *ngIf=\"inputData.label\">\r\n {{inputData.label | translate}}\r\n </mat-label>\r\n <span *ngIf=\"inputData.required\" class=\"required-input\" [ngClass]=\"{'readonly-color' : inputData.readOnly || ngControl.control.disabled}\">*</span>\r\n </div>\r\n <mat-form-field appearance=\"outline\" class=\"w-100\"\r\n [class.readonly-field]=\"inputData.readOnly || ngControl.control.disabled\"\r\n >\r\n <!-- Leading Icon -->\r\n <mat-icon *ngIf=\"inputData.iconPrefix\"\r\n matPrefix\r\n [ngClass]=\"{\r\n 'readonly-color' : !inputData.iconPrefixColor && (inputData.readOnly || ngControl.control.disabled),\r\n 'default-form-icon-color' : !inputData.iconPrefixColor && !(inputData.readOnly || ngControl.control.disabled)\r\n }\"\r\n [matTooltip]=\"((inputData.iconPrefixTooltip || '') | translate)\"\r\n [style.color]=\"inputData.iconPrefixColor || null\"\r\n >{{ inputData.iconPrefix }}\r\n </mat-icon>\r\n\r\n <mat-icon *ngIf=\"inputData.iconPrefixSvg\"\r\n matPrefix\r\n [matTooltip]=\"((inputData.iconPrefixTooltip || '') | translate)\"\r\n [svgIcon]=\"inputData.iconPrefixSvg\"\r\n ></mat-icon>\r\n\r\n <!-- Input Field -->\r\n <input matInput\r\n *ngIf=\"!inputData.textarea\"\r\n [type]=\"inputData.type || 'text'\"\r\n [readonly]=\"inputData.readOnly\"\r\n [placeholder]=\"(inputData.placeholder || '') | translate\"\r\n [pattern]=\"inputData.pattern!\"\r\n [formControl]=\"ngControl.control\"\r\n [mask]=\"inputData.mask || ''\"\r\n [ngClass]=\"{'readonly-color readonly-cursor' : inputData.readOnly || ngControl.control.disabled}\"\r\n [inputMask]=\"inputData.inputMask!\"\r\n [errorStateMatcher]=\"customErrorStateMatcher\"\r\n (blur)=\"onFocusOut()\"\r\n >\r\n\r\n <textarea matInput\r\n *ngIf=\"inputData.textarea\"\r\n [type]=\"inputData.type || 'text'\"\r\n [readonly]=\"inputData.readOnly\"\r\n [placeholder]=\"(inputData.placeholder || '') | translate\"\r\n [pattern]=\"inputData.pattern!\"\r\n [formControl]=\"ngControl.control\"\r\n [ngClass]=\"{'readonly-color' : inputData.readOnly || ngControl.control.disabled}\"\r\n [errorStateMatcher]=\"customErrorStateMatcher\"\r\n ></textarea>\r\n\r\n <!-- Clear Icon -->\r\n <app-icon-button\r\n *ngIf=\"inputData.clearable\"\r\n iconName=\"cancel\"\r\n matSuffix\r\n [disabled]=\"inputData.readOnly || ngControl.control.disabled || false\"\r\n [ngClass]=\"inputData.readOnly || ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\r\n (click)=\"clear()\"\r\n >\r\n </app-icon-button>\r\n\r\n <!-- Trailing Icon -->\r\n <app-icon-button\r\n *ngIf=\"inputData.iconSuffix\"\r\n [iconName]=\"inputData.iconSuffix\"\r\n [disabled]=\"inputData.readOnly || ngControl.control.disabled || false\"\r\n [ngClass]=\"inputData.readOnly || ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\r\n matSuffix\r\n >\r\n </app-icon-button>\r\n\r\n <!-- Error Messages -->\r\n <mat-error *ngIf=\"!!(ngControl.control.errors && inputData.submit)\">\r\n {{ ngControl.control | generateErrorMessages : (inputData.label || '') : inputData.defaultPatternKey}}\r\n </mat-error>\r\n\r\n <!-- Helper Text -->\r\n <mat-hint *ngIf=\"!(!!(ngControl.control.errors && inputData.submit)) && inputData.hint\">\r\n {{inputData.hint | translate}}\r\n </mat-hint>\r\n </mat-form-field>\r\n</div>\r\n" }]
|
|
70
|
+
}], ctorParameters: () => [{ type: i1.InputService }], propDecorators: { inputData: [{
|
|
71
|
+
type: Input
|
|
72
|
+
}], focusOutEmitter: [{
|
|
73
|
+
type: Output
|
|
74
|
+
}] } });
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvdGV4dC90ZXh0LWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy90ZXh0L3RleHQtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQWtCLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHcEUsT0FBTyxFQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDckQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2pELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ25GLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLFVBQVUsQ0FBQzs7Ozs7QUF5QjFDLE1BQU0sT0FBTyxrQkFBa0I7SUFDM0IsSUFBYSxTQUFTLENBQUMsSUFBdUI7UUFDMUMsc0RBQXNEO1FBQ3RELElBQUksSUFBSSxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNDLENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFNRCxZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUxwQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFxQnJELDRCQUF1QixHQUFHO1lBQ3RCLFlBQVksRUFBRSxDQUFDLE9BQVksRUFBRSxJQUFTLEVBQVcsRUFBRTtnQkFDL0MsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3BFLENBQUM7U0FDSixDQUFDO1FBbkJFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6RCxDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2hDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSztRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25DLENBQUM7SUFDTCxDQUFDOytHQTlCUSxrQkFBa0I7bUdBQWxCLGtCQUFrQiwrSkN0Qy9CLCtzSUFzRkEsNENEbEVJLFFBQVEscURBQ1IsZUFBZSw0RkFDZixPQUFPLG9GQUNQLFlBQVksNExBQ1osT0FBTywySUFDUCxVQUFVLGlSQUNWLFFBQVEsZ1VBQ1IsbUJBQW1CLG11QkFDbkIsSUFBSSx3RkFDSix5QkFBeUIsOERBQ3pCLG1CQUFtQiw4SkFDbkIsUUFBUSxrRkFDUixPQUFPLDhFQUNQLGtCQUFrQixzR0FDbEIsZ0JBQWdCOzs0RkFJUCxrQkFBa0I7a0JBdkI5QixTQUFTOytCQUNFLGdCQUFnQixXQUdqQjt3QkFDUCxRQUFRO3dCQUNSLGVBQWU7d0JBQ2YsT0FBTzt3QkFDUCxZQUFZO3dCQUNaLE9BQU87d0JBQ1AsVUFBVTt3QkFDVixRQUFRO3dCQUNSLG1CQUFtQjt3QkFDbkIsSUFBSTt3QkFDSix5QkFBeUI7d0JBQ3pCLG1CQUFtQjt3QkFDbkIsUUFBUTt3QkFDUixPQUFPO3dCQUNQLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3FCQUNqQixjQUNXLElBQUk7aUZBR0QsU0FBUztzQkFBckIsS0FBSztnQkFVSSxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm1Db250cm9sTmFtZSwgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBJbnB1dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pbnB1dC5zZXJ2aWNlJztcclxuaW1wb3J0IHtBcHBJbnB1dEludGVyZmFjZX0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvYXBwLWlucHV0LmludGVyZmFjZVwiO1xyXG5pbXBvcnQge01hdEVycm9yLCBNYXRGb3JtRmllbGQsIE1hdEhpbnQsIE1hdExhYmVsfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xyXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuaW1wb3J0IHtOZ0NsYXNzLCBOZ0lmfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7TWF0SWNvbn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcclxuaW1wb3J0IHtNYXRUb29sdGlwfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcFwiO1xyXG5pbXBvcnQge01hdElucHV0fSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXRcIjtcclxuaW1wb3J0IHtHZW5lcmF0ZUVycm9yTWVzc2FnZXNQaXBlfSBmcm9tIFwiLi4vLi4vcGlwZXMvZ2VuZXJhdGUtZXJyb3ItbWVzc2FnZXMucGlwZVwiO1xyXG5pbXBvcnQge0ljb25CdXR0b25Db21wb25lbnR9IGZyb20gXCIuLi9pY29uLWJ1dHRvbi9pY29uLWJ1dHRvbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtJbnB1dE1hc2tEaXJlY3RpdmV9IGZyb20gXCIuLi8uLi9kaXJlY3RpdmVzL2lucHV0LW1hc2suZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7Tmd4TWFza0RpcmVjdGl2ZX0gZnJvbSBcIm5neC1tYXNrXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC10ZXh0LWlucHV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dC1pbnB1dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXRMYWJlbCxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIE5nQ2xhc3MsXHJcbiAgICBNYXRGb3JtRmllbGQsXHJcbiAgICBNYXRJY29uLFxyXG4gICAgTWF0VG9vbHRpcCxcclxuICAgIE1hdElucHV0LFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE5nSWYsXHJcbiAgICBHZW5lcmF0ZUVycm9yTWVzc2FnZXNQaXBlLFxyXG4gICAgSWNvbkJ1dHRvbkNvbXBvbmVudCxcclxuICAgIE1hdEVycm9yLFxyXG4gICAgTWF0SGludCxcclxuICAgIElucHV0TWFza0RpcmVjdGl2ZSxcclxuICAgIE5neE1hc2tEaXJlY3RpdmVcclxuICBdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRleHRJbnB1dENvbXBvbmVudCB7XHJcbiAgICBASW5wdXQoKSBzZXQgaW5wdXREYXRhKGRhdGE6IEFwcElucHV0SW50ZXJmYWNlKSB7XHJcbiAgICAgICAgLy8gSWYgc3VibWl0IGJlY29tZXMgdHJ1ZSwgbWFyayB0aGUgY29udHJvbCBhcyB0b3VjaGVkXHJcbiAgICAgICAgaWYgKGRhdGE/LnN1Ym1pdCAmJiB0aGlzLm5nQ29udHJvbC5jb250cm9sKSB7XHJcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9pbnB1dERhdGEgPSBkYXRhO1xyXG4gICAgfVxyXG4gICAgZ2V0IGlucHV0RGF0YSgpOiBBcHBJbnB1dEludGVyZmFjZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lucHV0RGF0YTtcclxuICAgIH1cclxuICAgIEBPdXRwdXQoKSBmb2N1c091dEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBfaW5wdXREYXRhITogQXBwSW5wdXRJbnRlcmZhY2U7XHJcbiAgICBuZ0NvbnRyb2w6IEZvcm1Db250cm9sTmFtZTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGlucHV0U2VydmljZTogSW5wdXRTZXJ2aWNlKSB7XHJcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2wgPSB0aGlzLmlucHV0U2VydmljZS5pbmplY3ROZ0NvbnRyb2woKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkZvY3VzT3V0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLl9pbnB1dERhdGEuZm9jdXNPdXRFbWl0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9jdXNPdXRFbWl0dGVyLmVtaXQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2xlYXIoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XHJcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2wucmVzZXQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY3VzdG9tRXJyb3JTdGF0ZU1hdGNoZXIgPSB7XHJcbiAgICAgICAgaXNFcnJvclN0YXRlOiAoY29udHJvbDogYW55LCBmb3JtOiBhbnkpOiBib29sZWFuID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuICEhKGNvbnRyb2wgJiYgY29udHJvbC5pbnZhbGlkICYmIHRoaXMuaW5wdXREYXRhPy5zdWJtaXQpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cImlucHV0RGF0YSAmJiBuZ0NvbnRyb2xcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ3LTEwMFwiPlxyXG4gICAgICAgIDxtYXQtbGFiZWwgW25nQ2xhc3NdPVwieydyZWFkb25seS1jb2xvcicgOiBpbnB1dERhdGEucmVhZE9ubHkgfHwgbmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWR9XCIgKm5nSWY9XCJpbnB1dERhdGEubGFiZWxcIj5cclxuICAgICAgICAgICAge3tpbnB1dERhdGEubGFiZWwgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiaW5wdXREYXRhLnJlcXVpcmVkXCIgY2xhc3M9XCJyZXF1aXJlZC1pbnB1dFwiIFtuZ0NsYXNzXT1cInsncmVhZG9ubHktY29sb3InIDogaW5wdXREYXRhLnJlYWRPbmx5IHx8IG5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkfVwiPio8L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidy0xMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5yZWFkb25seS1maWVsZF09XCJpbnB1dERhdGEucmVhZE9ubHkgfHwgbmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWRcIlxyXG4gICAgPlxyXG4gICAgICAgIDwhLS0gTGVhZGluZyBJY29uIC0tPlxyXG4gICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImlucHV0RGF0YS5pY29uUHJlZml4XCJcclxuICAgICAgICAgICAgICAgICAgbWF0UHJlZml4XHJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAncmVhZG9ubHktY29sb3InIDogIWlucHV0RGF0YS5pY29uUHJlZml4Q29sb3IgJiYgKGlucHV0RGF0YS5yZWFkT25seSB8fCBuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZCksXHJcbiAgICAgICAgICAgICAgICAgICAgJ2RlZmF1bHQtZm9ybS1pY29uLWNvbG9yJyA6ICFpbnB1dERhdGEuaWNvblByZWZpeENvbG9yICYmICEoaW5wdXREYXRhLnJlYWRPbmx5IHx8IG5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkKVxyXG4gICAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCIoKGlucHV0RGF0YS5pY29uUHJlZml4VG9vbHRpcCB8fCAnJykgfCB0cmFuc2xhdGUpXCJcclxuICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImlucHV0RGF0YS5pY29uUHJlZml4Q29sb3IgfHwgbnVsbFwiXHJcbiAgICAgICAgPnt7IGlucHV0RGF0YS5pY29uUHJlZml4IH19XHJcbiAgICAgICAgPC9tYXQtaWNvbj5cclxuXHJcbiAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiaW5wdXREYXRhLmljb25QcmVmaXhTdmdcIlxyXG4gICAgICAgICAgICAgICAgICBtYXRQcmVmaXhcclxuICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiKChpbnB1dERhdGEuaWNvblByZWZpeFRvb2x0aXAgfHwgJycpIHwgdHJhbnNsYXRlKVwiXHJcbiAgICAgICAgICAgICAgICAgIFtzdmdJY29uXT1cImlucHV0RGF0YS5pY29uUHJlZml4U3ZnXCJcclxuICAgICAgICA+PC9tYXQtaWNvbj5cclxuXHJcbiAgICAgICAgPCEtLSBJbnB1dCBGaWVsZCAtLT5cclxuICAgICAgICA8aW5wdXQgbWF0SW5wdXRcclxuICAgICAgICAgICAgICAgKm5nSWY9XCIhaW5wdXREYXRhLnRleHRhcmVhXCJcclxuICAgICAgICAgICAgICAgW3R5cGVdPVwiaW5wdXREYXRhLnR5cGUgfHwgJ3RleHQnXCJcclxuICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImlucHV0RGF0YS5yZWFkT25seVwiXHJcbiAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIoaW5wdXREYXRhLnBsYWNlaG9sZGVyIHx8ICcnKSB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgIFtwYXR0ZXJuXT1cImlucHV0RGF0YS5wYXR0ZXJuIVwiXHJcbiAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJuZ0NvbnRyb2wuY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgIFttYXNrXT1cImlucHV0RGF0YS5tYXNrIHx8ICcnXCJcclxuICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydyZWFkb25seS1jb2xvciByZWFkb25seS1jdXJzb3InIDogaW5wdXREYXRhLnJlYWRPbmx5IHx8IG5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkfVwiXHJcbiAgICAgICAgICAgICAgIFtpbnB1dE1hc2tdPVwiaW5wdXREYXRhLmlucHV0TWFzayFcIlxyXG4gICAgICAgICAgICAgICBbZXJyb3JTdGF0ZU1hdGNoZXJdPVwiY3VzdG9tRXJyb3JTdGF0ZU1hdGNoZXJcIlxyXG4gICAgICAgICAgICAgICAoYmx1cik9XCJvbkZvY3VzT3V0KClcIlxyXG4gICAgICAgID5cclxuXHJcbiAgICAgICAgPHRleHRhcmVhIG1hdElucHV0XHJcbiAgICAgICAgICAgICAgICpuZ0lmPVwiaW5wdXREYXRhLnRleHRhcmVhXCJcclxuICAgICAgICAgICAgICAgW3R5cGVdPVwiaW5wdXREYXRhLnR5cGUgfHwgJ3RleHQnXCJcclxuICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImlucHV0RGF0YS5yZWFkT25seVwiXHJcbiAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIoaW5wdXREYXRhLnBsYWNlaG9sZGVyIHx8ICcnKSB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgIFtwYXR0ZXJuXT1cImlucHV0RGF0YS5wYXR0ZXJuIVwiXHJcbiAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJuZ0NvbnRyb2wuY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsncmVhZG9ubHktY29sb3InIDogaW5wdXREYXRhLnJlYWRPbmx5IHx8IG5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkfVwiXHJcbiAgICAgICAgICAgICAgIFtlcnJvclN0YXRlTWF0Y2hlcl09XCJjdXN0b21FcnJvclN0YXRlTWF0Y2hlclwiXHJcbiAgICAgICAgPjwvdGV4dGFyZWE+XHJcblxyXG4gICAgICAgIDwhLS0gQ2xlYXIgSWNvbiAtLT5cclxuICAgICAgICA8YXBwLWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlucHV0RGF0YS5jbGVhcmFibGVcIlxyXG4gICAgICAgICAgICAgICAgaWNvbk5hbWU9XCJjYW5jZWxcIlxyXG4gICAgICAgICAgICAgICAgbWF0U3VmZml4XHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaW5wdXREYXRhLnJlYWRPbmx5IHx8IG5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkIHx8IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImlucHV0RGF0YS5yZWFkT25seSB8fCBuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZCA/ICdyZWFkb25seS1jb2xvcicgOiAnZGVmYXVsdC1mb3JtLWljb24tY29sb3InXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGVhcigpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9hcHAtaWNvbi1idXR0b24+XHJcblxyXG4gICAgICAgIDwhLS0gVHJhaWxpbmcgSWNvbiAtLT5cclxuICAgICAgICA8YXBwLWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlucHV0RGF0YS5pY29uU3VmZml4XCJcclxuICAgICAgICAgICAgICAgIFtpY29uTmFtZV09XCJpbnB1dERhdGEuaWNvblN1ZmZpeFwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaW5wdXREYXRhLnJlYWRPbmx5IHx8IG5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkICB8fCBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpbnB1dERhdGEucmVhZE9ubHkgfHwgbmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWQgPyAncmVhZG9ubHktY29sb3InIDogJ2RlZmF1bHQtZm9ybS1pY29uLWNvbG9yJ1wiXHJcbiAgICAgICAgICAgICAgICBtYXRTdWZmaXhcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9hcHAtaWNvbi1idXR0b24+XHJcblxyXG4gICAgICAgIDwhLS0gRXJyb3IgTWVzc2FnZXMgLS0+XHJcbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cIiEhKG5nQ29udHJvbC5jb250cm9sLmVycm9ycyAmJiBpbnB1dERhdGEuc3VibWl0KVwiPlxyXG4gICAgICAgICAgICB7eyBuZ0NvbnRyb2wuY29udHJvbCB8IGdlbmVyYXRlRXJyb3JNZXNzYWdlcyA6IChpbnB1dERhdGEubGFiZWwgfHwgJycpIDogaW5wdXREYXRhLmRlZmF1bHRQYXR0ZXJuS2V5fX1cclxuICAgICAgICA8L21hdC1lcnJvcj5cclxuXHJcbiAgICAgICAgPCEtLSBIZWxwZXIgVGV4dCAtLT5cclxuICAgICAgICA8bWF0LWhpbnQgKm5nSWY9XCIhKCEhKG5nQ29udHJvbC5jb250cm9sLmVycm9ycyAmJiBpbnB1dERhdGEuc3VibWl0KSkgJiYgaW5wdXREYXRhLmhpbnRcIj5cclxuICAgICAgICAgICAge3tpbnB1dERhdGEuaGludCB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgPC9tYXQtaGludD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { Directive, HostListener, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class InputMaskDirective {
|
|
4
|
+
set min(value) {
|
|
5
|
+
this.minimumValue = Number(value);
|
|
6
|
+
}
|
|
7
|
+
set max(value) {
|
|
8
|
+
this.maximumValue = Number(value);
|
|
9
|
+
}
|
|
10
|
+
set float(value) {
|
|
11
|
+
this.isFloat = value === 'true';
|
|
12
|
+
}
|
|
13
|
+
onPaste(event) {
|
|
14
|
+
this.makeValidation(event, true);
|
|
15
|
+
}
|
|
16
|
+
constructor(elementRef) {
|
|
17
|
+
this.elementRef = elementRef;
|
|
18
|
+
this.regexFloat = new RegExp(/^([0-9]*[.])?[0-9]+$/);
|
|
19
|
+
this.regexOnlyNumbers = new RegExp(/^-?[0-9]+(?:\.[0-9]+)?$/);
|
|
20
|
+
this.elementRef.nativeElement.addEventListener('keypress', (event) => {
|
|
21
|
+
this.makeValidation(event);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
makeValidation(event, fromPaste = false) {
|
|
25
|
+
let value;
|
|
26
|
+
let newChar;
|
|
27
|
+
if (!fromPaste) {
|
|
28
|
+
newChar = String.fromCharCode(event.keyCode);
|
|
29
|
+
const cursorPos = event.target.selectionStart;
|
|
30
|
+
const inputText = event.target.value;
|
|
31
|
+
value = `${inputText.slice(0, cursorPos)}${newChar}${inputText.slice(cursorPos, inputText.length)}`;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
value = event.clipboardData?.getData('text/plain');
|
|
35
|
+
}
|
|
36
|
+
if (this.inputMask === 'number') {
|
|
37
|
+
return this.checkingForNumbers(value, event, newChar, fromPaste);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
return this.checkingForTexts(value, event);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
checkingForNumbers(value, event, newChar, fromPaste = false) {
|
|
44
|
+
if ((isNaN(this.minimumValue) || this.minimumValue < 0) && value === '-') {
|
|
45
|
+
value = Number('-0');
|
|
46
|
+
}
|
|
47
|
+
if (this.isFloat && (newChar === '.')) {
|
|
48
|
+
value += '0';
|
|
49
|
+
}
|
|
50
|
+
if (!this.isFloat && fromPaste && value.includes('.')) {
|
|
51
|
+
event.preventDefault();
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
const regex = (this.isFloat) ? this.regexFloat : this.regexOnlyNumbers;
|
|
55
|
+
if (!regex.test(value) ||
|
|
56
|
+
(this.minimumValue && value < this.minimumValue) ||
|
|
57
|
+
(this.maximumValue && value > this.maximumValue)) {
|
|
58
|
+
event.preventDefault();
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
checkingForTexts(value, event) {
|
|
64
|
+
let regex = new RegExp(/^[A-Za-z0-9]*$/);
|
|
65
|
+
if (!regex.test(value)) {
|
|
66
|
+
event.preventDefault();
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputMaskDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
72
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: InputMaskDirective, isStandalone: true, selector: "[inputMask]", inputs: { inputMask: "inputMask", min: "min", max: "max", float: "float" }, host: { listeners: { "paste": "onPaste($event)" } }, ngImport: i0 }); }
|
|
73
|
+
}
|
|
74
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputMaskDirective, decorators: [{
|
|
75
|
+
type: Directive,
|
|
76
|
+
args: [{
|
|
77
|
+
selector: '[inputMask]',
|
|
78
|
+
standalone: true
|
|
79
|
+
}]
|
|
80
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { inputMask: [{
|
|
81
|
+
type: Input
|
|
82
|
+
}], min: [{
|
|
83
|
+
type: Input
|
|
84
|
+
}], max: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}], float: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], onPaste: [{
|
|
89
|
+
type: HostListener,
|
|
90
|
+
args: ['paste', ['$event']]
|
|
91
|
+
}] } });
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQtY29tcG9uZW50cy9zcmMvbGliL2RpcmVjdGl2ZXMvaW5wdXQtbWFzay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDRyxZQUFZLEVBQ3hCLEtBQUssRUFDTixNQUFNLGVBQWUsQ0FBQzs7QUFNdkIsTUFBTSxPQUFPLGtCQUFrQjtJQUU3QixJQUFhLEdBQUcsQ0FBQyxLQUFhO1FBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxJQUFhLEdBQUcsQ0FBQyxLQUFhO1FBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxJQUFhLEtBQUssQ0FBQyxLQUFhO1FBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxLQUFLLE1BQU0sQ0FBQztJQUNsQyxDQUFDO0lBUUQsT0FBTyxDQUFDLEtBQVU7UUFDaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVELFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFSMUMsZUFBVSxHQUFHLElBQUksTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDaEQscUJBQWdCLEdBQUcsSUFBSSxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQVF2RCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxLQUFZLEVBQUUsRUFBRTtZQUMxRSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzVCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFVLEVBQUUsU0FBUyxHQUFHLEtBQUs7UUFDMUMsSUFBSSxLQUFVLENBQUM7UUFDZixJQUFJLE9BQVksQ0FBQztRQUVqQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDZixPQUFPLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0MsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUM7WUFDOUMsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDckMsS0FBSyxHQUFHLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLEdBQUcsT0FBTyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3RHLENBQUM7YUFBTSxDQUFDO1lBQ04sS0FBSyxHQUFHLEtBQUssQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDaEMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDbkUsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFVLEVBQUUsS0FBVSxFQUFFLE9BQWUsRUFBRSxTQUFTLEdBQUcsS0FBSztRQUMzRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxJQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFBQyxDQUFDO1FBRW5HLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RDLEtBQUssSUFBSSxHQUFHLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksU0FBUyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN0RCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUV2RSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDbEIsQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ2hELENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUNsRCxDQUFDO1lBQ0QsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQVUsRUFBRSxLQUFVO1FBQ3JDLElBQUksS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN2QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOytHQWhGVSxrQkFBa0I7bUdBQWxCLGtCQUFrQjs7NEZBQWxCLGtCQUFrQjtrQkFKOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOytFQUVVLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ08sR0FBRztzQkFBZixLQUFLO2dCQUdPLEdBQUc7c0JBQWYsS0FBSztnQkFHTyxLQUFLO3NCQUFqQixLQUFLO2dCQVVOLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsXHJcbiAgSW5wdXRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2lucHV0TWFza10nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0TWFza0RpcmVjdGl2ZSB7XHJcbiAgQElucHV0KCkgaW5wdXRNYXNrITogJ251bWJlcicgfCAnc3RyaW5nJztcclxuICBASW5wdXQoKSBzZXQgbWluKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMubWluaW11bVZhbHVlID0gTnVtYmVyKHZhbHVlKTtcclxuICB9XHJcbiAgQElucHV0KCkgc2V0IG1heCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLm1heGltdW1WYWx1ZSA9IE51bWJlcih2YWx1ZSk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHNldCBmbG9hdCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmlzRmxvYXQgPSB2YWx1ZSA9PT0gJ3RydWUnO1xyXG4gIH1cclxuICBtaW5pbXVtVmFsdWUhOiBudW1iZXI7XHJcbiAgbWF4aW11bVZhbHVlITogbnVtYmVyO1xyXG4gIGlzRmxvYXQhOiBib29sZWFuO1xyXG4gIHJlZ2V4RmxvYXQgPSBuZXcgUmVnRXhwKC9eKFswLTldKlsuXSk/WzAtOV0rJC8pO1xyXG4gIHJlZ2V4T25seU51bWJlcnMgPSBuZXcgUmVnRXhwKC9eLT9bMC05XSsoPzpcXC5bMC05XSspPyQvKTtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigncGFzdGUnLCBbJyRldmVudCddKVxyXG4gIG9uUGFzdGUoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5tYWtlVmFsaWRhdGlvbihldmVudCwgdHJ1ZSlcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xyXG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5cHJlc3MnLCAoZXZlbnQ6IEV2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMubWFrZVZhbGlkYXRpb24oZXZlbnQpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbWFrZVZhbGlkYXRpb24oZXZlbnQ6IGFueSwgZnJvbVBhc3RlID0gZmFsc2UpOiBib29sZWFuIHtcclxuICAgIGxldCB2YWx1ZTogYW55O1xyXG4gICAgbGV0IG5ld0NoYXI6IGFueTtcclxuXHJcbiAgICBpZiAoIWZyb21QYXN0ZSkge1xyXG4gICAgICBuZXdDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShldmVudC5rZXlDb2RlKTtcclxuICAgICAgY29uc3QgY3Vyc29yUG9zID0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvblN0YXJ0O1xyXG4gICAgICBjb25zdCBpbnB1dFRleHQgPSBldmVudC50YXJnZXQudmFsdWU7XHJcbiAgICAgIHZhbHVlID0gYCR7aW5wdXRUZXh0LnNsaWNlKDAsIGN1cnNvclBvcyl9JHtuZXdDaGFyfSR7aW5wdXRUZXh0LnNsaWNlKGN1cnNvclBvcywgaW5wdXRUZXh0Lmxlbmd0aCl9YDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhbHVlID0gZXZlbnQuY2xpcGJvYXJkRGF0YT8uZ2V0RGF0YSgndGV4dC9wbGFpbicpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmlucHV0TWFzayA9PT0gJ251bWJlcicpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY2hlY2tpbmdGb3JOdW1iZXJzKHZhbHVlLCBldmVudCwgbmV3Q2hhciwgZnJvbVBhc3RlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNoZWNraW5nRm9yVGV4dHModmFsdWUsIGV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoZWNraW5nRm9yTnVtYmVycyh2YWx1ZTogYW55LCBldmVudDogYW55LCBuZXdDaGFyOiBzdHJpbmcsIGZyb21QYXN0ZSA9IGZhbHNlKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoKGlzTmFOKHRoaXMubWluaW11bVZhbHVlKSB8fCB0aGlzLm1pbmltdW1WYWx1ZSA8IDApICYmIHZhbHVlID09PSAnLScpIHsgdmFsdWUgPSBOdW1iZXIoJy0wJyk7IH1cclxuXHJcbiAgICBpZiAodGhpcy5pc0Zsb2F0ICYmIChuZXdDaGFyID09PSAnLicpKSB7XHJcbiAgICAgIHZhbHVlICs9ICcwJztcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5pc0Zsb2F0ICYmIGZyb21QYXN0ZSAmJiB2YWx1ZS5pbmNsdWRlcygnLicpKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByZWdleCA9ICh0aGlzLmlzRmxvYXQpID8gdGhpcy5yZWdleEZsb2F0IDogdGhpcy5yZWdleE9ubHlOdW1iZXJzO1xyXG5cclxuICAgIGlmICghcmVnZXgudGVzdCh2YWx1ZSkgfHxcclxuICAgICAgICAodGhpcy5taW5pbXVtVmFsdWUgJiYgdmFsdWUgPCB0aGlzLm1pbmltdW1WYWx1ZSkgfHxcclxuICAgICAgICAodGhpcy5tYXhpbXVtVmFsdWUgJiYgdmFsdWUgPiB0aGlzLm1heGltdW1WYWx1ZSlcclxuICAgICkge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBjaGVja2luZ0ZvclRleHRzKHZhbHVlOiBhbnksIGV2ZW50OiBhbnkpOiBib29sZWFuIHtcclxuICAgIGxldCByZWdleCA9IG5ldyBSZWdFeHAoL15bQS1aYS16MC05XSokLyk7XHJcbiAgICBpZiAoIXJlZ2V4LnRlc3QodmFsdWUpKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWlucHV0LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvaW50ZXJmYWNlcy9hcHAtaW5wdXQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEFwcElucHV0SW50ZXJmYWNlIHtcclxuICAgIGFjdGl2ZVN0YXRlSWNvblVybD86IHN0cmluZ1xyXG4gICAgY2xlYXJhYmxlPzogYm9vbGVhbixcclxuICAgIGNvbnRhaW5lckNsYXNzPzogc3RyaW5nLFxyXG4gICAgZGF0ZVBpY2tlcj86IGJvb2xlYW4sXHJcbiAgICBkaXNhYmxlZD86IGJvb2xlYW4sXHJcbiAgICBkb250UmVzZXRWYWx1ZUluQ2xlYXJBY3Rpb24/OiBib29sZWFuLFxyXG4gICAgaGludD86IHN0cmluZyxcclxuICAgIGljb25QcmVmaXg/OiBzdHJpbmcsXHJcbiAgICBpY29uUHJlZml4U3ZnPzogc3RyaW5nLFxyXG4gICAgaWNvblByZWZpeFRvb2x0aXA/OiBzdHJpbmcsXHJcbiAgICBpY29uUHJlZml4Q29sb3I/OiBzdHJpbmcsXHJcbiAgICBpY29uUHJlZml4VmFyaWFudD86IHN0cmluZyxcclxuICAgIGljb25TdWZmaXg/OiBzdHJpbmcsXHJcbiAgICAvLyBUT0RPIC0gUmVtb3ZlIGljb25Vcmwgd2hlbiBhbGwgaW5wdXRzIGFyZSB1cGRhdGVkXHJcbiAgICBpY29uVXJsPzogc3RyaW5nLFxyXG4gICAgaW5wdXRDbGFzcz86IHN0cmluZyxcclxuICAgIGlucHV0TWFzaz86ICdudW1iZXInIHwgJ3N0cmluZycsXHJcbiAgICBsYWJlbD86IHN0cmluZyxcclxuICAgIGxlYWRaZXJvRGF0ZVRpbWU/OiBib29sZWFuLFxyXG4gICAgbWFzaz86IHN0cmluZyxcclxuICAgIHBhdHRlcm4/OiBzdHJpbmcgfCBSZWdFeHAsXHJcbiAgICBwbGFjZWhvbGRlcjogc3RyaW5nLFxyXG4gICAgcHJlZml4Pzogc3RyaW5nLFxyXG4gICAgcmVxdWlyZWQ/OiBib29sZWFuLFxyXG4gICAgcmVhZE9ubHk/OiBib29sZWFuLFxyXG4gICAgc3VibWl0OiBib29sZWFuLFxyXG4gICAgdGV4dGFyZWE/OiBib29sZWFuLFxyXG4gICAgdHlwZTogc3RyaW5nLFxyXG4gICAgZGVmYXVsdFBhdHRlcm5LZXk/OiBzdHJpbmcsXHJcbiAgICBmb2N1c091dEVtaXQ/OiBib29sZWFuXHJcbn1cclxuIl19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export var ButtonType;
|
|
2
|
+
(function (ButtonType) {
|
|
3
|
+
ButtonType["FILLED"] = "FILLED";
|
|
4
|
+
ButtonType["TONAL"] = "TONAL";
|
|
5
|
+
ButtonType["OUTLINE"] = "OUTLINE";
|
|
6
|
+
ButtonType["TEXT"] = "TEXT";
|
|
7
|
+
ButtonType["WARNING"] = "WARNING";
|
|
8
|
+
})(ButtonType || (ButtonType = {}));
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLXR5cGVzLmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvaW50ZXJmYWNlcy9idXR0b24tdHlwZXMuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLFVBTVg7QUFORCxXQUFZLFVBQVU7SUFDcEIsK0JBQWlCLENBQUE7SUFDakIsNkJBQWUsQ0FBQTtJQUNmLGlDQUFtQixDQUFBO0lBQ25CLDJCQUFhLENBQUE7SUFDYixpQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTlcsVUFBVSxLQUFWLFVBQVUsUUFNckIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBCdXR0b25UeXBlIHtcclxuICBGSUxMRUQgPSAnRklMTEVEJyAsXHJcbiAgVE9OQUwgPSAnVE9OQUwnLFxyXG4gIE9VVExJTkUgPSAnT1VUTElORScsXHJcbiAgVEVYVCA9ICdURVhUJyxcclxuICBXQVJOSU5HID0gJ1dBUk5JTkcnLFxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@ngx-translate/core";
|
|
4
|
+
export class GenerateErrorMessagesPipe {
|
|
5
|
+
constructor(translateService) {
|
|
6
|
+
this.translateService = translateService;
|
|
7
|
+
}
|
|
8
|
+
transform(control, label, defaultPatternKey = 'fixed') {
|
|
9
|
+
if (!control.errors) {
|
|
10
|
+
return '';
|
|
11
|
+
}
|
|
12
|
+
let translateParams;
|
|
13
|
+
let errorMessageKey = '';
|
|
14
|
+
const key = (Object.keys(control.errors)[0]);
|
|
15
|
+
translateParams = { ERROR_KEY: this.translateService.instant(label) || 'Field' };
|
|
16
|
+
errorMessageKey = (key === 'pattern') ?
|
|
17
|
+
'errorMessages.pattern.' + defaultPatternKey : 'errorMessages.' + key;
|
|
18
|
+
return this.translateService.instant(errorMessageKey, translateParams);
|
|
19
|
+
}
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GenerateErrorMessagesPipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
21
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: GenerateErrorMessagesPipe, isStandalone: true, name: "generateErrorMessages" }); }
|
|
22
|
+
}
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GenerateErrorMessagesPipe, decorators: [{
|
|
24
|
+
type: Pipe,
|
|
25
|
+
args: [{
|
|
26
|
+
name: 'generateErrorMessages',
|
|
27
|
+
standalone: true,
|
|
28
|
+
pure: true
|
|
29
|
+
}]
|
|
30
|
+
}], ctorParameters: () => [{ type: i1.TranslateService }] });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtZXJyb3ItbWVzc2FnZXMucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvcGlwZXMvZ2VuZXJhdGUtZXJyb3ItbWVzc2FnZXMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7O0FBUXBELE1BQU0sT0FBTyx5QkFBeUI7SUFFbEMsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFDdEQsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUFZLEVBQUMsS0FBYSxFQUFDLG9CQUE0QixPQUFPO1FBRXBFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEIsT0FBTyxFQUFFLENBQUM7UUFDZCxDQUFDO1FBQ0QsSUFBSSxlQUFxQyxDQUFDO1FBQzFDLElBQUksZUFBZSxHQUFHLEVBQUUsQ0FBQTtRQUV4QixNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFN0MsZUFBZSxHQUFHLEVBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksT0FBTyxFQUFDLENBQUM7UUFDL0UsZUFBZSxHQUFHLENBQUMsR0FBRyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsd0JBQXdCLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFHLEdBQUcsQ0FBQztRQUUxRSxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7K0dBcEJRLHlCQUF5Qjs2R0FBekIseUJBQXlCOzs0RkFBekIseUJBQXlCO2tCQUxyQyxJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSx1QkFBdUI7b0JBQzdCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUUsSUFBSTtpQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5cclxuQFBpcGUoe1xyXG4gICAgbmFtZTogJ2dlbmVyYXRlRXJyb3JNZXNzYWdlcycsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgcHVyZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgR2VuZXJhdGVFcnJvck1lc3NhZ2VzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSkge1xyXG4gICAgfVxyXG5cclxuICAgIHRyYW5zZm9ybShjb250cm9sOiBhbnksbGFiZWw6IHN0cmluZyxkZWZhdWx0UGF0dGVybktleTogc3RyaW5nID0gJ2ZpeGVkJyk6IHN0cmluZyB7XHJcblxyXG4gICAgICAgIGlmICghY29udHJvbC5lcnJvcnMpIHtcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgdHJhbnNsYXRlUGFyYW1zIToge0VSUk9SX0tFWTogc3RyaW5nfTtcclxuICAgICAgICBsZXQgZXJyb3JNZXNzYWdlS2V5ID0gJydcclxuXHJcbiAgICAgICAgY29uc3Qga2V5ID0gKE9iamVjdC5rZXlzKGNvbnRyb2wuZXJyb3JzKVswXSk7XHJcblxyXG4gICAgICAgIHRyYW5zbGF0ZVBhcmFtcyA9IHtFUlJPUl9LRVk6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGxhYmVsKSB8fCAnRmllbGQnfTtcclxuICAgICAgICBlcnJvck1lc3NhZ2VLZXkgPSAoa2V5ID09PSAncGF0dGVybicpID9cclxuICAgICAgICAgICAgJ2Vycm9yTWVzc2FnZXMucGF0dGVybi4nICsgZGVmYXVsdFBhdHRlcm5LZXkgOiAnZXJyb3JNZXNzYWdlcy4nICsga2V5O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZXJyb3JNZXNzYWdlS2V5LHRyYW5zbGF0ZVBhcmFtcyk7XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { FormControlName, NgControl } from "@angular/forms";
|
|
2
|
+
import { inject, Injectable } from "@angular/core";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
class NoopValueAccessor {
|
|
5
|
+
writeValue() { }
|
|
6
|
+
registerOnChange() { }
|
|
7
|
+
registerOnTouched() { }
|
|
8
|
+
}
|
|
9
|
+
export class InputService {
|
|
10
|
+
injectNgControl() {
|
|
11
|
+
const ngControl = inject(NgControl, { self: true, optional: true });
|
|
12
|
+
if (!ngControl)
|
|
13
|
+
throw new Error('...');
|
|
14
|
+
if (ngControl instanceof FormControlName) {
|
|
15
|
+
ngControl.valueAccessor = new NoopValueAccessor();
|
|
16
|
+
return ngControl;
|
|
17
|
+
}
|
|
18
|
+
throw new Error(`...`);
|
|
19
|
+
}
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
21
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputService, providedIn: 'root' }); }
|
|
22
|
+
}
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputService, decorators: [{
|
|
24
|
+
type: Injectable,
|
|
25
|
+
args: [{
|
|
26
|
+
providedIn: 'root'
|
|
27
|
+
}]
|
|
28
|
+
}] });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZXMvaW5wdXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLGVBQWUsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRixPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFFakQsTUFBTSxpQkFBaUI7SUFDbkIsVUFBVSxLQUFJLENBQUM7SUFDZixnQkFBZ0IsS0FBSSxDQUFDO0lBRXJCLGlCQUFpQixLQUFJLENBQUM7Q0FDekI7QUFNRCxNQUFNLE9BQU8sWUFBWTtJQUNyQixlQUFlO1FBQ1gsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFFbEUsSUFBSSxDQUFDLFNBQVM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXZDLElBQ0ksU0FBUyxZQUFZLGVBQWUsRUFDdEMsQ0FBQztZQUNDLFNBQVMsQ0FBQyxhQUFhLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1lBQ2xELE9BQU8sU0FBUyxDQUFDO1FBQ3JCLENBQUM7UUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7K0dBZFEsWUFBWTttSEFBWixZQUFZLGNBSFQsTUFBTTs7NEZBR1QsWUFBWTtrQkFKeEIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbE5hbWUsIE5nQ29udHJvbH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7aW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuY2xhc3MgTm9vcFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgICB3cml0ZVZhbHVlKCkge31cclxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoKSB7fVxyXG5cclxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKCkge31cclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgSW5wdXRTZXJ2aWNlIHtcclxuICAgIGluamVjdE5nQ29udHJvbCgpOiBGb3JtQ29udHJvbE5hbWUge1xyXG4gICAgICAgIGNvbnN0IG5nQ29udHJvbCA9IGluamVjdChOZ0NvbnRyb2wsIHtzZWxmOiB0cnVlLCBvcHRpb25hbDogdHJ1ZX0pO1xyXG5cclxuICAgICAgICBpZiAoIW5nQ29udHJvbCkgdGhyb3cgbmV3IEVycm9yKCcuLi4nKTtcclxuXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBuZ0NvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbE5hbWVcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgbmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSBuZXcgTm9vcFZhbHVlQWNjZXNzb3IoKTtcclxuICAgICAgICAgICAgcmV0dXJuIG5nQ29udHJvbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgLi4uYCk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of shared-components
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/pipes/generate-error-messages.pipe';
|
|
5
|
+
export * from './lib/services/input.service';
|
|
6
|
+
export * from './lib/interfaces/app-input.interface';
|
|
7
|
+
export * from './lib/directives/input-mask.directive';
|
|
8
|
+
export * from './lib/components/icon-button/icon-button.component';
|
|
9
|
+
export * from './lib/components/text/text-input.component';
|
|
10
|
+
export * from './lib/components/button/button.component';
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYywwQ0FBMEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBzaGFyZWQtY29tcG9uZW50c1xyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL2dlbmVyYXRlLWVycm9yLW1lc3NhZ2VzLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9pbnB1dC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcy9hcHAtaW5wdXQuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9pbnB1dC1tYXNrLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvaWNvbi1idXR0b24vaWNvbi1idXR0b24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90ZXh0L3RleHQtaW5wdXQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XHJcbiJdfQ==
|