i-tech-shared-components 1.1.6 → 1.1.9
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 +23 -23
- package/esm2022/i-tech-shared-components.mjs +5 -0
- package/esm2022/lib/components/autocomplete-select/autocomplete-select.component.mjs +409 -0
- package/esm2022/lib/components/button/button.component.mjs +122 -0
- package/esm2022/lib/components/clear-value/clear-value.component.mjs +34 -0
- package/esm2022/lib/components/date-picker/date-picker.component.mjs +111 -0
- package/esm2022/lib/components/date-range-datepicker/date-range-datepicker.component.mjs +118 -0
- package/esm2022/lib/components/icon-button/icon-button.component.mjs +49 -0
- package/esm2022/lib/components/menu/menu.component.mjs +51 -0
- package/esm2022/lib/components/text/text-input.component.mjs +73 -0
- package/esm2022/lib/directives/date-mask.directive.mjs +92 -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/autocomplete-configs.interface.mjs +2 -0
- package/esm2022/lib/interfaces/button-types.enum.mjs +17 -0
- package/esm2022/lib/interfaces/dropdown-selection.constants.mjs +12 -0
- package/esm2022/lib/pipes/array-to-string.pipe.mjs +17 -0
- package/esm2022/lib/pipes/generate-error-messages.pipe.mjs +31 -0
- package/esm2022/lib/pipes/get-value-by-key-from-object.pipe.mjs +45 -0
- package/esm2022/lib/services/input.service.mjs +29 -0
- package/esm2022/public-api.mjs +20 -0
- package/fesm2022/i-tech-shared-components.mjs +1216 -0
- package/fesm2022/i-tech-shared-components.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/autocomplete-select/autocomplete-select.component.d.ts +84 -0
- package/lib/components/button/button.component.d.ts +65 -0
- package/lib/components/clear-value/clear-value.component.d.ts +9 -0
- package/lib/components/date-picker/date-picker.component.d.ts +35 -0
- package/lib/components/date-range-datepicker/date-range-datepicker.component.d.ts +36 -0
- package/lib/components/icon-button/icon-button.component.d.ts +14 -0
- package/lib/components/menu/menu.component.d.ts +28 -0
- package/lib/components/text/text-input.component.d.ts +21 -0
- package/lib/directives/date-mask.directive.d.ts +25 -0
- package/lib/directives/input-mask.directive.d.ts +21 -0
- package/lib/interfaces/app-input.interface.d.ts +31 -0
- package/lib/interfaces/autocomplete-configs.interface.d.ts +37 -0
- package/lib/interfaces/button-types.enum.d.ts +15 -0
- package/lib/interfaces/dropdown-selection.constants.d.ts +10 -0
- package/lib/pipes/array-to-string.pipe.d.ts +7 -0
- package/lib/pipes/generate-error-messages.pipe.d.ts +10 -0
- package/lib/pipes/get-value-by-key-from-object.pipe.d.ts +7 -0
- package/lib/services/input.service.d.ts +7 -0
- package/package.json +32 -19
- package/{src/public-api.ts → public-api.d.ts} +16 -20
- package/theme/_buttons.scss +63 -63
- package/theme/_color_themes.scss +136 -136
- package/theme/_date_picker.scss +77 -77
- package/theme/_form_fields.scss +112 -112
- package/theme/_icon-button.scss +123 -123
- package/theme/_label.scss +119 -119
- package/theme/_mat-selects.scss +248 -248
- package/theme/_menu.scss +9 -9
- package/theme/_text_input.scss +28 -28
- package/theme/variables/_colors.scss +20 -20
- package/theme.scss +31 -33
- package/docs/README.md +0 -87
- package/docs/components/autocomplete-select/autocomplete-select.component/README.md +0 -13
- package/docs/components/autocomplete-select/autocomplete-select.component/classes/AutocompleteSelectComponent.md +0 -793
- package/docs/components/button/button.component/README.md +0 -13
- package/docs/components/button/button.component/classes/ButtonComponent.md +0 -191
- package/docs/components/button/button.component.spec/README.md +0 -7
- package/docs/components/clear-value/clear-value.component/README.md +0 -13
- package/docs/components/clear-value/clear-value.component/classes/ClearValueComponent.md +0 -47
- package/docs/components/date-picker/date-picker.component/README.md +0 -13
- package/docs/components/date-picker/date-picker.component/classes/DatePickerComponent.md +0 -253
- package/docs/components/date-range-datepicker/date-range-datepicker.component/README.md +0 -13
- package/docs/components/date-range-datepicker/date-range-datepicker.component/classes/DateRangeDatepickerComponent.md +0 -341
- package/docs/components/icon-button/icon-button.component/README.md +0 -13
- package/docs/components/icon-button/icon-button.component/classes/IconButtonComponent.md +0 -107
- package/docs/components/label/label.component/README.md +0 -13
- package/docs/components/label/label.component/classes/LabelComponent.md +0 -97
- package/docs/components/menu/menu.component/README.md +0 -13
- package/docs/components/menu/menu.component/classes/MenuComponent.md +0 -139
- package/docs/components/text/text-input.component/README.md +0 -13
- package/docs/components/text/text-input.component/classes/TextInputComponent.md +0 -133
- package/docs/interfaces/app-input.interface/README.md +0 -13
- package/docs/interfaces/app-input.interface/interfaces/AppInputInterface.md +0 -297
- package/docs/interfaces/autocomplete-configs.interface/README.md +0 -13
- package/docs/interfaces/autocomplete-configs.interface/interfaces/AutocompleteConfigsInterface.md +0 -357
- package/docs/interfaces/button-types.enum/README.md +0 -13
- package/docs/interfaces/button-types.enum/enumerations/ButtonType.md +0 -69
- package/docs/interfaces/dropdown-selection.constants/README.md +0 -17
- package/docs/interfaces/dropdown-selection.constants/enumerations/DropdownSelectionType.md +0 -37
- package/docs/interfaces/dropdown-selection.constants/variables/DropdownItemIcon.md +0 -27
- package/docs/interfaces/label-type.enum/README.md +0 -13
- package/docs/interfaces/label-type.enum/enumerations/LabelTypeEnum.md +0 -127
- package/docs/services/input.service/README.md +0 -13
- package/docs/services/input.service/classes/InputService.md +0 -31
- package/ng-package.json +0 -17
- package/src/README.md +0 -0
- package/src/lib/components/autocomplete-select/autocomplete-select.component.html +0 -211
- package/src/lib/components/autocomplete-select/autocomplete-select.component.scss +0 -58
- package/src/lib/components/autocomplete-select/autocomplete-select.component.ts +0 -430
- package/src/lib/components/autocomplete-select/loader.svg +0 -6
- package/src/lib/components/button/button.component.css +0 -0
- package/src/lib/components/button/button.component.html +0 -48
- package/src/lib/components/button/button.component.spec.ts +0 -23
- package/src/lib/components/button/button.component.ts +0 -106
- package/src/lib/components/clear-value/clear-value.component.ts +0 -44
- package/src/lib/components/date-picker/date-picker.component.html +0 -61
- package/src/lib/components/date-picker/date-picker.component.ts +0 -75
- package/src/lib/components/date-range-datepicker/date-range-datepicker.component.html +0 -44
- package/src/lib/components/date-range-datepicker/date-range-datepicker.component.ts +0 -105
- package/src/lib/components/icon-button/icon-button.component.html +0 -27
- package/src/lib/components/icon-button/icon-button.component.scss +0 -0
- package/src/lib/components/icon-button/icon-button.component.ts +0 -37
- package/src/lib/components/label/label.component.html +0 -15
- package/src/lib/components/label/label.component.ts +0 -33
- package/src/lib/components/menu/menu.component.html +0 -20
- package/src/lib/components/menu/menu.component.scss +0 -9
- package/src/lib/components/menu/menu.component.ts +0 -39
- package/src/lib/components/text/text-input.component.html +0 -91
- package/src/lib/components/text/text-input.component.ts +0 -73
- package/src/lib/directives/date-mask.directive.ts +0 -97
- package/src/lib/directives/input-mask.directive.ts +0 -93
- package/src/lib/interfaces/app-input.interface.ts +0 -32
- package/src/lib/interfaces/autocomplete-configs.interface.ts +0 -37
- package/src/lib/interfaces/button-types.enum.ts +0 -19
- package/src/lib/interfaces/dropdown-selection.constants.ts +0 -11
- package/src/lib/interfaces/label-type.enum.ts +0 -14
- package/src/lib/pipes/array-to-string.pipe.ts +0 -13
- package/src/lib/pipes/generate-error-messages.pipe.ts +0 -31
- package/src/lib/pipes/get-value-by-key-from-object.pipe.ts +0 -46
- package/src/lib/services/input.service.ts +0 -30
- package/tsconfig.lib.json +0 -15
- package/tsconfig.lib.prod.json +0 -11
- package/tsconfig.spec.json +0 -15
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from "@angular/core";
|
|
2
|
+
import { ButtonType } from "../../interfaces/button-types.enum";
|
|
3
|
+
import { DropdownItemIcon } from "../../interfaces/dropdown-selection.constants";
|
|
4
|
+
import { MatMenu, MatMenuItem, MatMenuTrigger } from "@angular/material/menu";
|
|
5
|
+
import { MatIcon } from "@angular/material/icon";
|
|
6
|
+
import { NgClass, NgForOf, NgIf } from "@angular/common";
|
|
7
|
+
import { TranslateModule } from "@ngx-translate/core";
|
|
8
|
+
import { ButtonComponent } from "../button/button.component";
|
|
9
|
+
import { MatLabel } from "@angular/material/form-field";
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@ngx-translate/core";
|
|
12
|
+
export class MenuComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.positionX = 'before';
|
|
15
|
+
this.menuOptions = [];
|
|
16
|
+
this.emitEvent = new EventEmitter();
|
|
17
|
+
this.ButtonType = ButtonType;
|
|
18
|
+
this.DropdownItemIcon = DropdownItemIcon;
|
|
19
|
+
this.matMenuState = false;
|
|
20
|
+
}
|
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MenuComponent, isStandalone: true, selector: "i-tech-menu", inputs: { text: "text", dataName: "dataName", containerClass: "containerClass", positionX: "positionX", menuOptions: "menuOptions" }, outputs: { emitEvent: "emitEvent" }, ngImport: i0, template: "<div class=\"custom_dropdown_container\"\n [attr.data-name]=\"dataName\"\n [ngClass]=\"containerClass\"\n>\n <i-tech-button\n [matMenuTriggerFor]=\"beforeMenu\"\n [type]=\"ButtonType.OUTLINE\"\n [fontIcon]=\"'keyboard_arrow_down'\"\n [text]=\"(text || '') \"\n (menuOpened)=\"matMenuState = true\"\n (menuClosed)=\"matMenuState = false\"\n [activated]=\"matMenuState\"\n ></i-tech-button>\n <mat-menu #beforeMenu=\"matMenu\" [xPosition]=\"positionX\">\n <button mat-menu-item *ngFor=\"let option of menuOptions\" (click)=\"emitEvent.emit(option.value)\">\n <mat-icon *ngIf=\"option.type\" [svgIcon]=\"DropdownItemIcon[option.type]\"></mat-icon>\n <mat-label class=\"meu_item_label\">{{(option.text || '') | translate}}</mat-label>\n </button>\n </mat-menu>\n</div>\n", styles: [".custom_dropdown_container app-mat-button{display:inline-block}mat-menu{height:max-content}\n"], dependencies: [{ kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ButtonComponent, selector: "i-tech-button", inputs: ["text", "data_cy", "fontIcon", "svgIcon", "type", "customClass", "submit", "disabled", "activated", "color"], outputs: ["buttonClick"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }] }); }
|
|
23
|
+
}
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MenuComponent, decorators: [{
|
|
25
|
+
type: Component,
|
|
26
|
+
args: [{ selector: "i-tech-menu", standalone: true, imports: [
|
|
27
|
+
MatMenuTrigger,
|
|
28
|
+
MatMenu,
|
|
29
|
+
MatIcon,
|
|
30
|
+
NgIf,
|
|
31
|
+
NgForOf,
|
|
32
|
+
MatMenuItem,
|
|
33
|
+
TranslateModule,
|
|
34
|
+
NgClass,
|
|
35
|
+
ButtonComponent,
|
|
36
|
+
MatLabel
|
|
37
|
+
], template: "<div class=\"custom_dropdown_container\"\n [attr.data-name]=\"dataName\"\n [ngClass]=\"containerClass\"\n>\n <i-tech-button\n [matMenuTriggerFor]=\"beforeMenu\"\n [type]=\"ButtonType.OUTLINE\"\n [fontIcon]=\"'keyboard_arrow_down'\"\n [text]=\"(text || '') \"\n (menuOpened)=\"matMenuState = true\"\n (menuClosed)=\"matMenuState = false\"\n [activated]=\"matMenuState\"\n ></i-tech-button>\n <mat-menu #beforeMenu=\"matMenu\" [xPosition]=\"positionX\">\n <button mat-menu-item *ngFor=\"let option of menuOptions\" (click)=\"emitEvent.emit(option.value)\">\n <mat-icon *ngIf=\"option.type\" [svgIcon]=\"DropdownItemIcon[option.type]\"></mat-icon>\n <mat-label class=\"meu_item_label\">{{(option.text || '') | translate}}</mat-label>\n </button>\n </mat-menu>\n</div>\n", styles: [".custom_dropdown_container app-mat-button{display:inline-block}mat-menu{height:max-content}\n"] }]
|
|
38
|
+
}], propDecorators: { text: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}], dataName: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}], containerClass: [{
|
|
43
|
+
type: Input
|
|
44
|
+
}], positionX: [{
|
|
45
|
+
type: Input
|
|
46
|
+
}], menuOptions: [{
|
|
47
|
+
type: Input
|
|
48
|
+
}], emitEvent: [{
|
|
49
|
+
type: Output
|
|
50
|
+
}] } });
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbWVudS9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tZW51L21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDOUQsT0FBTyxFQUFDLGdCQUFnQixFQUF3QixNQUFNLCtDQUErQyxDQUFDO0FBQ3RHLE9BQU8sRUFBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBZ0IsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDL0MsT0FBTyxFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sOEJBQThCLENBQUM7OztBQW9CdEQsTUFBTSxPQUFPLGFBQWE7SUFsQjFCO1FBc0JhLGNBQVMsR0FBa0IsUUFBUSxDQUFDO1FBQ3BDLGdCQUFXLEdBQW9HLEVBQUUsQ0FBQztRQUNqSCxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUMzQixlQUFVLEdBQUcsVUFBVSxDQUFDO1FBQ3hCLHFCQUFnQixHQUFHLGdCQUFnQixDQUFDO1FBQ3ZELGlCQUFZLEdBQUcsS0FBSyxDQUFDO0tBQ3hCOytHQVZZLGFBQWE7bUdBQWIsYUFBYSxrUEM1QjFCLHU0QkFvQkEsdUpETkksY0FBYyxxU0FDZCxPQUFPLDJRQUNQLE9BQU8sMklBQ1AsSUFBSSw2RkFDSixPQUFPLG1IQUNQLFdBQVcscUlBQ1gsZUFBZSw0RkFDZixPQUFPLG9GQUNQLGVBQWUsMk1BQ2YsUUFBUTs7NEZBS0MsYUFBYTtrQkFsQnpCLFNBQVM7K0JBQ0ksYUFBYSxjQUNYLElBQUksV0FDVDt3QkFDUCxjQUFjO3dCQUNkLE9BQU87d0JBQ1AsT0FBTzt3QkFDUCxJQUFJO3dCQUNKLE9BQU87d0JBQ1AsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLE9BQU87d0JBQ1AsZUFBZTt3QkFDZixRQUFRO3FCQUNUOzhCQUtVLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtCdXR0b25UeXBlfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9idXR0b24tdHlwZXMuZW51bVwiO1xuaW1wb3J0IHtEcm9wZG93bkl0ZW1JY29uLCBEcm9wZG93blNlbGVjdGlvblR5cGV9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL2Ryb3Bkb3duLXNlbGVjdGlvbi5jb25zdGFudHNcIjtcbmltcG9ydCB7TWF0TWVudSwgTWF0TWVudUl0ZW0sIE1hdE1lbnVUcmlnZ2VyLCBNZW51UG9zaXRpb25YfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudVwiO1xuaW1wb3J0IHtNYXRJY29ufSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xuaW1wb3J0IHtOZ0NsYXNzLCBOZ0Zvck9mLCBOZ0lmfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7QnV0dG9uQ29tcG9uZW50fSBmcm9tIFwiLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7TWF0TGFiZWx9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcImktdGVjaC1tZW51XCIsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdE1lbnVUcmlnZ2VyLFxuICAgIE1hdE1lbnUsXG4gICAgTWF0SWNvbixcbiAgICBOZ0lmLFxuICAgIE5nRm9yT2YsXG4gICAgTWF0TWVudUl0ZW0sXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIE5nQ2xhc3MsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIE1hdExhYmVsXG4gIF0sXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9tZW51LmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL21lbnUuY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgTWVudUNvbXBvbmVudCB7XG4gICAgQElucHV0KCkgdGV4dCE6IHN0cmluZztcbiAgICBASW5wdXQoKSBkYXRhTmFtZSE6IHN0cmluZztcbiAgICBASW5wdXQoKSBjb250YWluZXJDbGFzcyE6IHN0cmluZztcbiAgICBASW5wdXQoKSBwb3NpdGlvblg6IE1lbnVQb3NpdGlvblggPSAnYmVmb3JlJztcbiAgICBASW5wdXQoKSBtZW51T3B0aW9uczogQXJyYXk8e3ZhbHVlOiBzdHJpbmcsIHRleHQ6IHN0cmluZywgc3JjPzogc3RyaW5nLCBjbGFzcz86IHN0cmluZyx0eXBlPzogRHJvcGRvd25TZWxlY3Rpb25UeXBlfT4gPSBbXTtcbiAgICBAT3V0cHV0KCkgZW1pdEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IEJ1dHRvblR5cGUgPSBCdXR0b25UeXBlO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBEcm9wZG93bkl0ZW1JY29uID0gRHJvcGRvd25JdGVtSWNvbjtcbiAgICBtYXRNZW51U3RhdGUgPSBmYWxzZTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJjdXN0b21fZHJvcGRvd25fY29udGFpbmVyXCJcbiAgICAgW2F0dHIuZGF0YS1uYW1lXT1cImRhdGFOYW1lXCJcbiAgICAgW25nQ2xhc3NdPVwiY29udGFpbmVyQ2xhc3NcIlxuPlxuICAgIDxpLXRlY2gtYnV0dG9uXG4gICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwiYmVmb3JlTWVudVwiXG4gICAgICAgICAgICBbdHlwZV09XCJCdXR0b25UeXBlLk9VVExJTkVcIlxuICAgICAgICAgICAgW2ZvbnRJY29uXT1cIidrZXlib2FyZF9hcnJvd19kb3duJ1wiXG4gICAgICAgICAgICBbdGV4dF09XCIodGV4dCB8fCAnJykgXCJcbiAgICAgICAgICAgIChtZW51T3BlbmVkKT1cIm1hdE1lbnVTdGF0ZSAgPSB0cnVlXCJcbiAgICAgICAgICAgIChtZW51Q2xvc2VkKT1cIm1hdE1lbnVTdGF0ZSAgPSBmYWxzZVwiXG4gICAgICAgICAgICBbYWN0aXZhdGVkXT1cIm1hdE1lbnVTdGF0ZVwiXG4gICAgPjwvaS10ZWNoLWJ1dHRvbj5cbiAgICA8bWF0LW1lbnUgI2JlZm9yZU1lbnU9XCJtYXRNZW51XCIgW3hQb3NpdGlvbl09XCJwb3NpdGlvblhcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgbWVudU9wdGlvbnNcIiAoY2xpY2spPVwiZW1pdEV2ZW50LmVtaXQob3B0aW9uLnZhbHVlKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwib3B0aW9uLnR5cGVcIiBbc3ZnSWNvbl09XCJEcm9wZG93bkl0ZW1JY29uW29wdGlvbi50eXBlXVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8bWF0LWxhYmVsIGNsYXNzPVwibWV1X2l0ZW1fbGFiZWxcIj57eyhvcHRpb24udGV4dCB8fCAnJykgfCB0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L21hdC1tZW51PlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
3
|
+
import { MatFormFieldModule } 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
|
+
import * as i4 from "@angular/material/form-field";
|
|
18
|
+
export class TextInputComponent {
|
|
19
|
+
set inputData(data) {
|
|
20
|
+
// If submit becomes true, mark the control as touched
|
|
21
|
+
if (data?.submit && this.ngControl.control) {
|
|
22
|
+
this.ngControl.control.markAsTouched();
|
|
23
|
+
}
|
|
24
|
+
this._inputData = data;
|
|
25
|
+
}
|
|
26
|
+
get inputData() {
|
|
27
|
+
return this._inputData;
|
|
28
|
+
}
|
|
29
|
+
constructor(inputService) {
|
|
30
|
+
this.inputService = inputService;
|
|
31
|
+
this.focusOutEmitter = new EventEmitter();
|
|
32
|
+
this.customErrorStateMatcher = {
|
|
33
|
+
isErrorState: (control, form) => {
|
|
34
|
+
return !!(control && control.invalid && this.inputData?.submit);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
this.ngControl = this.inputService.injectNgControl();
|
|
38
|
+
}
|
|
39
|
+
onFocusOut() {
|
|
40
|
+
if (this._inputData.focusOutEmit) {
|
|
41
|
+
this.focusOutEmitter.emit();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
clear() {
|
|
45
|
+
if (this.ngControl) {
|
|
46
|
+
this.ngControl.control.reset();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
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 }); }
|
|
50
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TextInputComponent, isStandalone: true, selector: "i-tech-text-input", inputs: { inputData: "inputData" }, outputs: { focusOutEmitter: "focusOutEmitter" }, ngImport: i0, template: "<div *ngIf=\"inputData && ngControl\">\n <div class=\"w-100\">\n <mat-label [ngClass]=\"{\n 'readonly-color' : inputData.readOnly || ngControl.control.disabled,\n 'invalid-label-color': !!(ngControl.control.errors && inputData.submit)\n }\"\n *ngIf=\"inputData.label\">\n {{ inputData.label | translate }}\n </mat-label>\n <span *ngIf=\"inputData.required\" class=\"required-input\"\n [ngClass]=\"{'readonly-color' : inputData.readOnly || ngControl.control.disabled}\">*</span>\n </div>\n <mat-form-field appearance=\"outline\" class=\"w-100\"\n [class.readonly-field]=\"inputData.readOnly || ngControl.control.disabled\"\n >\n <!-- Leading Icon -->\n <mat-icon *ngIf=\"inputData.iconPrefix\"\n matPrefix\n [ngClass]=\"{\n 'readonly-color' : !inputData.iconPrefixColor && (inputData.readOnly || ngControl.control.disabled),\n 'default-form-icon-color' : !inputData.iconPrefixColor && !(inputData.readOnly || ngControl.control.disabled)\n }\"\n [matTooltip]=\"((inputData.iconPrefixTooltip || '') | translate)\"\n [style.color]=\"inputData.iconPrefixColor || null\"\n >{{ inputData.iconPrefix }}\n </mat-icon>\n\n <mat-icon *ngIf=\"inputData.iconPrefixSvg\"\n matPrefix\n [matTooltip]=\"((inputData.iconPrefixTooltip || '') | translate)\"\n [svgIcon]=\"inputData.iconPrefixSvg\"\n ></mat-icon>\n\n <!-- Input Field -->\n <input matInput\n *ngIf=\"!inputData.textarea\"\n [type]=\"inputData.type || 'text'\"\n [readonly]=\"inputData.readOnly\"\n [placeholder]=\"(inputData.placeholder || '') | translate\"\n [pattern]=\"inputData.pattern!\"\n [formControl]=\"ngControl.control\"\n [mask]=\"inputData.mask || ''\"\n [ngClass]=\"{'readonly-color readonly-cursor' : inputData.readOnly || ngControl.control.disabled}\"\n [inputMask]=\"inputData.inputMask!\"\n [errorStateMatcher]=\"customErrorStateMatcher\"\n (blur)=\"onFocusOut()\"\n >\n\n <textarea matInput\n *ngIf=\"inputData.textarea\"\n [type]=\"inputData.type || 'text'\"\n [readonly]=\"inputData.readOnly\"\n [placeholder]=\"(inputData.placeholder || '') | translate\"\n [pattern]=\"inputData.pattern!\"\n [formControl]=\"ngControl.control\"\n [ngClass]=\"{'readonly-color' : inputData.readOnly || ngControl.control.disabled}\"\n [errorStateMatcher]=\"customErrorStateMatcher\"\n ></textarea>\n\n <!-- Clear Icon -->\n <i-tech-icon-button\n *ngIf=\"inputData.clearable\"\n iconName=\"cancel\"\n matSuffix\n [disabled]=\"inputData.readOnly || ngControl.control.disabled || false\"\n [ngClass]=\"inputData.readOnly || ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\n (click)=\"clear()\"\n >\n </i-tech-icon-button>\n\n <!-- Trailing Icon -->\n <i-tech-icon-button\n *ngIf=\"inputData.iconSuffix\"\n [iconName]=\"inputData.iconSuffix\"\n [disabled]=\"inputData.readOnly || ngControl.control.disabled || false\"\n [ngClass]=\"inputData.readOnly || ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\n matSuffix\n >\n </i-tech-icon-button>\n\n <!-- Error Messages -->\n <mat-error *ngIf=\"!!(ngControl.control.errors && inputData.submit)\">\n {{ ngControl.control | generateErrorMessages : (inputData.label || '') : inputData.defaultPatternKey }}\n </mat-error>\n\n <!-- Helper Text -->\n <mat-hint *ngIf=\"!(!!(ngControl.control.errors && inputData.submit)) && inputData.hint\">\n {{ inputData.hint | translate }}\n </mat-hint>\n </mat-form-field>\n</div>\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: "i-tech-icon-button", inputs: ["size", "type", "iconSvg", "iconName", "tooltip", "disabled"], outputs: ["buttonClick"] }, { 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"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }] }); }
|
|
51
|
+
}
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextInputComponent, decorators: [{
|
|
53
|
+
type: Component,
|
|
54
|
+
args: [{ selector: 'i-tech-text-input', imports: [
|
|
55
|
+
TranslateModule,
|
|
56
|
+
NgClass,
|
|
57
|
+
MatIcon,
|
|
58
|
+
MatTooltip,
|
|
59
|
+
MatInput,
|
|
60
|
+
ReactiveFormsModule,
|
|
61
|
+
NgIf,
|
|
62
|
+
GenerateErrorMessagesPipe,
|
|
63
|
+
IconButtonComponent,
|
|
64
|
+
InputMaskDirective,
|
|
65
|
+
NgxMaskDirective,
|
|
66
|
+
MatFormFieldModule
|
|
67
|
+
], standalone: true, template: "<div *ngIf=\"inputData && ngControl\">\n <div class=\"w-100\">\n <mat-label [ngClass]=\"{\n 'readonly-color' : inputData.readOnly || ngControl.control.disabled,\n 'invalid-label-color': !!(ngControl.control.errors && inputData.submit)\n }\"\n *ngIf=\"inputData.label\">\n {{ inputData.label | translate }}\n </mat-label>\n <span *ngIf=\"inputData.required\" class=\"required-input\"\n [ngClass]=\"{'readonly-color' : inputData.readOnly || ngControl.control.disabled}\">*</span>\n </div>\n <mat-form-field appearance=\"outline\" class=\"w-100\"\n [class.readonly-field]=\"inputData.readOnly || ngControl.control.disabled\"\n >\n <!-- Leading Icon -->\n <mat-icon *ngIf=\"inputData.iconPrefix\"\n matPrefix\n [ngClass]=\"{\n 'readonly-color' : !inputData.iconPrefixColor && (inputData.readOnly || ngControl.control.disabled),\n 'default-form-icon-color' : !inputData.iconPrefixColor && !(inputData.readOnly || ngControl.control.disabled)\n }\"\n [matTooltip]=\"((inputData.iconPrefixTooltip || '') | translate)\"\n [style.color]=\"inputData.iconPrefixColor || null\"\n >{{ inputData.iconPrefix }}\n </mat-icon>\n\n <mat-icon *ngIf=\"inputData.iconPrefixSvg\"\n matPrefix\n [matTooltip]=\"((inputData.iconPrefixTooltip || '') | translate)\"\n [svgIcon]=\"inputData.iconPrefixSvg\"\n ></mat-icon>\n\n <!-- Input Field -->\n <input matInput\n *ngIf=\"!inputData.textarea\"\n [type]=\"inputData.type || 'text'\"\n [readonly]=\"inputData.readOnly\"\n [placeholder]=\"(inputData.placeholder || '') | translate\"\n [pattern]=\"inputData.pattern!\"\n [formControl]=\"ngControl.control\"\n [mask]=\"inputData.mask || ''\"\n [ngClass]=\"{'readonly-color readonly-cursor' : inputData.readOnly || ngControl.control.disabled}\"\n [inputMask]=\"inputData.inputMask!\"\n [errorStateMatcher]=\"customErrorStateMatcher\"\n (blur)=\"onFocusOut()\"\n >\n\n <textarea matInput\n *ngIf=\"inputData.textarea\"\n [type]=\"inputData.type || 'text'\"\n [readonly]=\"inputData.readOnly\"\n [placeholder]=\"(inputData.placeholder || '') | translate\"\n [pattern]=\"inputData.pattern!\"\n [formControl]=\"ngControl.control\"\n [ngClass]=\"{'readonly-color' : inputData.readOnly || ngControl.control.disabled}\"\n [errorStateMatcher]=\"customErrorStateMatcher\"\n ></textarea>\n\n <!-- Clear Icon -->\n <i-tech-icon-button\n *ngIf=\"inputData.clearable\"\n iconName=\"cancel\"\n matSuffix\n [disabled]=\"inputData.readOnly || ngControl.control.disabled || false\"\n [ngClass]=\"inputData.readOnly || ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\n (click)=\"clear()\"\n >\n </i-tech-icon-button>\n\n <!-- Trailing Icon -->\n <i-tech-icon-button\n *ngIf=\"inputData.iconSuffix\"\n [iconName]=\"inputData.iconSuffix\"\n [disabled]=\"inputData.readOnly || ngControl.control.disabled || false\"\n [ngClass]=\"inputData.readOnly || ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\n matSuffix\n >\n </i-tech-icon-button>\n\n <!-- Error Messages -->\n <mat-error *ngIf=\"!!(ngControl.control.errors && inputData.submit)\">\n {{ ngControl.control | generateErrorMessages : (inputData.label || '') : inputData.defaultPatternKey }}\n </mat-error>\n\n <!-- Helper Text -->\n <mat-hint *ngIf=\"!(!!(ngControl.control.errors && inputData.submit)) && inputData.hint\">\n {{ inputData.hint | translate }}\n </mat-hint>\n </mat-form-field>\n</div>\n" }]
|
|
68
|
+
}], ctorParameters: () => [{ type: i1.InputService }], propDecorators: { inputData: [{
|
|
69
|
+
type: Input
|
|
70
|
+
}], focusOutEmitter: [{
|
|
71
|
+
type: Output
|
|
72
|
+
}] } });
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvdGV4dC90ZXh0LWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy90ZXh0L3RleHQtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQWtCLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHcEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQy9DLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDakQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDbkYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDekUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sVUFBVSxDQUFDOzs7Ozs7QUFzQjFDLE1BQU0sT0FBTyxrQkFBa0I7SUFDM0IsSUFBYSxTQUFTLENBQUMsSUFBdUI7UUFDMUMsc0RBQXNEO1FBQ3RELElBQUksSUFBSSxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNDLENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFNRCxZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUxwQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFxQnJELDRCQUF1QixHQUFHO1lBQ3RCLFlBQVksRUFBRSxDQUFDLE9BQVksRUFBRSxJQUFTLEVBQVcsRUFBRTtnQkFDL0MsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3BFLENBQUM7U0FDSixDQUFDO1FBbkJFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6RCxDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2hDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSztRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25DLENBQUM7SUFDTCxDQUFDOytHQTlCUSxrQkFBa0I7bUdBQWxCLGtCQUFrQixrS0NuQy9CLCsySEEyRkEsMkNEdkVJLGVBQWUsNEZBQ2YsT0FBTyxvRkFDUCxPQUFPLDJJQUNQLFVBQVUsaVJBQ1YsUUFBUSxnVUFDUixtQkFBbUIsbXVCQUNuQixJQUFJLHdGQUNKLHlCQUF5Qiw4REFDekIsbUJBQW1CLGlLQUNuQixrQkFBa0Isc0dBQ2xCLGdCQUFnQixnakJBQ2hCLGtCQUFrQjs7NEZBSVQsa0JBQWtCO2tCQXBCOUIsU0FBUzsrQkFDRSxtQkFBbUIsV0FHcEI7d0JBQ1AsZUFBZTt3QkFDZixPQUFPO3dCQUNQLE9BQU87d0JBQ1AsVUFBVTt3QkFDVixRQUFRO3dCQUNSLG1CQUFtQjt3QkFDbkIsSUFBSTt3QkFDSix5QkFBeUI7d0JBQ3pCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjtxQkFDbkIsY0FDVyxJQUFJO2lGQUdELFNBQVM7c0JBQXJCLEtBQUs7Z0JBVUksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUNvbnRyb2xOYW1lLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJbnB1dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pbnB1dC5zZXJ2aWNlJztcbmltcG9ydCB7QXBwSW5wdXRJbnRlcmZhY2V9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL2FwcC1pbnB1dC5pbnRlcmZhY2VcIjtcbmltcG9ydCB7TWF0Rm9ybUZpZWxkTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQge05nQ2xhc3MsIE5nSWZ9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7TWF0SWNvbn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcbmltcG9ydCB7TWF0VG9vbHRpcH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXBcIjtcbmltcG9ydCB7TWF0SW5wdXR9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pbnB1dFwiO1xuaW1wb3J0IHtHZW5lcmF0ZUVycm9yTWVzc2FnZXNQaXBlfSBmcm9tIFwiLi4vLi4vcGlwZXMvZ2VuZXJhdGUtZXJyb3ItbWVzc2FnZXMucGlwZVwiO1xuaW1wb3J0IHtJY29uQnV0dG9uQ29tcG9uZW50fSBmcm9tIFwiLi4vaWNvbi1idXR0b24vaWNvbi1idXR0b24uY29tcG9uZW50XCI7XG5pbXBvcnQge0lucHV0TWFza0RpcmVjdGl2ZX0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvaW5wdXQtbWFzay5kaXJlY3RpdmVcIjtcbmltcG9ydCB7Tmd4TWFza0RpcmVjdGl2ZX0gZnJvbSBcIm5neC1tYXNrXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ktdGVjaC10ZXh0LWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxuICBpbXBvcnRzOiBbXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIE5nQ2xhc3MsXG4gICAgTWF0SWNvbixcbiAgICBNYXRUb29sdGlwLFxuICAgIE1hdElucHV0LFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTmdJZixcbiAgICBHZW5lcmF0ZUVycm9yTWVzc2FnZXNQaXBlLFxuICAgIEljb25CdXR0b25Db21wb25lbnQsXG4gICAgSW5wdXRNYXNrRGlyZWN0aXZlLFxuICAgIE5neE1hc2tEaXJlY3RpdmUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGV4dElucHV0Q29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBzZXQgaW5wdXREYXRhKGRhdGE6IEFwcElucHV0SW50ZXJmYWNlKSB7XG4gICAgICAgIC8vIElmIHN1Ym1pdCBiZWNvbWVzIHRydWUsIG1hcmsgdGhlIGNvbnRyb2wgYXMgdG91Y2hlZFxuICAgICAgICBpZiAoZGF0YT8uc3VibWl0ICYmIHRoaXMubmdDb250cm9sLmNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lucHV0RGF0YSA9IGRhdGE7XG4gICAgfVxuICAgIGdldCBpbnB1dERhdGEoKTogQXBwSW5wdXRJbnRlcmZhY2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5wdXREYXRhO1xuICAgIH1cbiAgICBAT3V0cHV0KCkgZm9jdXNPdXRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgcHJpdmF0ZSBfaW5wdXREYXRhITogQXBwSW5wdXRJbnRlcmZhY2U7XG4gICAgbmdDb250cm9sOiBGb3JtQ29udHJvbE5hbWU7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGlucHV0U2VydmljZTogSW5wdXRTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMubmdDb250cm9sID0gdGhpcy5pbnB1dFNlcnZpY2UuaW5qZWN0TmdDb250cm9sKCk7XG4gICAgfVxuXG4gICAgb25Gb2N1c091dCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2lucHV0RGF0YS5mb2N1c091dEVtaXQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNPdXRFbWl0dGVyLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2wucmVzZXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGN1c3RvbUVycm9yU3RhdGVNYXRjaGVyID0ge1xuICAgICAgICBpc0Vycm9yU3RhdGU6IChjb250cm9sOiBhbnksIGZvcm06IGFueSk6IGJvb2xlYW4gPT4ge1xuICAgICAgICAgICAgcmV0dXJuICEhKGNvbnRyb2wgJiYgY29udHJvbC5pbnZhbGlkICYmIHRoaXMuaW5wdXREYXRhPy5zdWJtaXQpO1xuICAgICAgICB9XG4gICAgfTtcbn1cbiIsIjxkaXYgKm5nSWY9XCJpbnB1dERhdGEgJiYgbmdDb250cm9sXCI+XG4gIDxkaXYgY2xhc3M9XCJ3LTEwMFwiPlxuICAgIDxtYXQtbGFiZWwgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICdyZWFkb25seS1jb2xvcicgOiBpbnB1dERhdGEucmVhZE9ubHkgfHwgbmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWQsXG4gICAgICAgICAgJ2ludmFsaWQtbGFiZWwtY29sb3InOiAhIShuZ0NvbnRyb2wuY29udHJvbC5lcnJvcnMgJiYgaW5wdXREYXRhLnN1Ym1pdClcbiAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICpuZ0lmPVwiaW5wdXREYXRhLmxhYmVsXCI+XG4gICAgICB7eyBpbnB1dERhdGEubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICA8L21hdC1sYWJlbD5cbiAgICA8c3BhbiAqbmdJZj1cImlucHV0RGF0YS5yZXF1aXJlZFwiIGNsYXNzPVwicmVxdWlyZWQtaW5wdXRcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsncmVhZG9ubHktY29sb3InIDogaW5wdXREYXRhLnJlYWRPbmx5IHx8IG5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkfVwiPio8L3NwYW4+XG4gIDwvZGl2PlxuICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInctMTAwXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5yZWFkb25seS1maWVsZF09XCJpbnB1dERhdGEucmVhZE9ubHkgfHwgbmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWRcIlxuICA+XG4gICAgPCEtLSBMZWFkaW5nIEljb24gLS0+XG4gICAgPG1hdC1pY29uICpuZ0lmPVwiaW5wdXREYXRhLmljb25QcmVmaXhcIlxuICAgICAgICAgICAgICBtYXRQcmVmaXhcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAncmVhZG9ubHktY29sb3InIDogIWlucHV0RGF0YS5pY29uUHJlZml4Q29sb3IgJiYgKGlucHV0RGF0YS5yZWFkT25seSB8fCBuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZCksXG4gICAgICAgICAgICAgICAgICAgICdkZWZhdWx0LWZvcm0taWNvbi1jb2xvcicgOiAhaW5wdXREYXRhLmljb25QcmVmaXhDb2xvciAmJiAhKGlucHV0RGF0YS5yZWFkT25seSB8fCBuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZClcbiAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIigoaW5wdXREYXRhLmljb25QcmVmaXhUb29sdGlwIHx8ICcnKSB8IHRyYW5zbGF0ZSlcIlxuICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiaW5wdXREYXRhLmljb25QcmVmaXhDb2xvciB8fCBudWxsXCJcbiAgICA+e3sgaW5wdXREYXRhLmljb25QcmVmaXggfX1cbiAgICA8L21hdC1pY29uPlxuXG4gICAgPG1hdC1pY29uICpuZ0lmPVwiaW5wdXREYXRhLmljb25QcmVmaXhTdmdcIlxuICAgICAgICAgICAgICBtYXRQcmVmaXhcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiKChpbnB1dERhdGEuaWNvblByZWZpeFRvb2x0aXAgfHwgJycpIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgIFtzdmdJY29uXT1cImlucHV0RGF0YS5pY29uUHJlZml4U3ZnXCJcbiAgICA+PC9tYXQtaWNvbj5cblxuICAgIDwhLS0gSW5wdXQgRmllbGQgLS0+XG4gICAgPGlucHV0IG1hdElucHV0XG4gICAgICAgICAgICpuZ0lmPVwiIWlucHV0RGF0YS50ZXh0YXJlYVwiXG4gICAgICAgICAgIFt0eXBlXT1cImlucHV0RGF0YS50eXBlIHx8ICd0ZXh0J1wiXG4gICAgICAgICAgIFtyZWFkb25seV09XCJpbnB1dERhdGEucmVhZE9ubHlcIlxuICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiKGlucHV0RGF0YS5wbGFjZWhvbGRlciB8fCAnJykgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICBbcGF0dGVybl09XCJpbnB1dERhdGEucGF0dGVybiFcIlxuICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwibmdDb250cm9sLmNvbnRyb2xcIlxuICAgICAgICAgICBbbWFza109XCJpbnB1dERhdGEubWFzayB8fCAnJ1wiXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cInsncmVhZG9ubHktY29sb3IgcmVhZG9ubHktY3Vyc29yJyA6IGlucHV0RGF0YS5yZWFkT25seSB8fCBuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZH1cIlxuICAgICAgICAgICBbaW5wdXRNYXNrXT1cImlucHV0RGF0YS5pbnB1dE1hc2shXCJcbiAgICAgICAgICAgW2Vycm9yU3RhdGVNYXRjaGVyXT1cImN1c3RvbUVycm9yU3RhdGVNYXRjaGVyXCJcbiAgICAgICAgICAgKGJsdXIpPVwib25Gb2N1c091dCgpXCJcbiAgICA+XG5cbiAgICA8dGV4dGFyZWEgbWF0SW5wdXRcbiAgICAgICAgICAgICAgKm5nSWY9XCJpbnB1dERhdGEudGV4dGFyZWFcIlxuICAgICAgICAgICAgICBbdHlwZV09XCJpbnB1dERhdGEudHlwZSB8fCAndGV4dCdcIlxuICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiaW5wdXREYXRhLnJlYWRPbmx5XCJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIihpbnB1dERhdGEucGxhY2Vob2xkZXIgfHwgJycpIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgW3BhdHRlcm5dPVwiaW5wdXREYXRhLnBhdHRlcm4hXCJcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cIm5nQ29udHJvbC5jb250cm9sXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydyZWFkb25seS1jb2xvcicgOiBpbnB1dERhdGEucmVhZE9ubHkgfHwgbmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWR9XCJcbiAgICAgICAgICAgICAgW2Vycm9yU3RhdGVNYXRjaGVyXT1cImN1c3RvbUVycm9yU3RhdGVNYXRjaGVyXCJcbiAgICA+PC90ZXh0YXJlYT5cblxuICAgIDwhLS0gQ2xlYXIgSWNvbiAtLT5cbiAgICA8aS10ZWNoLWljb24tYnV0dG9uXG4gICAgICAqbmdJZj1cImlucHV0RGF0YS5jbGVhcmFibGVcIlxuICAgICAgaWNvbk5hbWU9XCJjYW5jZWxcIlxuICAgICAgbWF0U3VmZml4XG4gICAgICBbZGlzYWJsZWRdPVwiaW5wdXREYXRhLnJlYWRPbmx5IHx8IG5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkIHx8IGZhbHNlXCJcbiAgICAgIFtuZ0NsYXNzXT1cImlucHV0RGF0YS5yZWFkT25seSB8fCBuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZCA/ICdyZWFkb25seS1jb2xvcicgOiAnZGVmYXVsdC1mb3JtLWljb24tY29sb3InXCJcbiAgICAgIChjbGljayk9XCJjbGVhcigpXCJcbiAgICA+XG4gICAgPC9pLXRlY2gtaWNvbi1idXR0b24+XG5cbiAgICA8IS0tIFRyYWlsaW5nIEljb24gLS0+XG4gICAgPGktdGVjaC1pY29uLWJ1dHRvblxuICAgICAgKm5nSWY9XCJpbnB1dERhdGEuaWNvblN1ZmZpeFwiXG4gICAgICBbaWNvbk5hbWVdPVwiaW5wdXREYXRhLmljb25TdWZmaXhcIlxuICAgICAgW2Rpc2FibGVkXT1cImlucHV0RGF0YS5yZWFkT25seSB8fCBuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZCAgfHwgZmFsc2VcIlxuICAgICAgW25nQ2xhc3NdPVwiaW5wdXREYXRhLnJlYWRPbmx5IHx8IG5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkID8gJ3JlYWRvbmx5LWNvbG9yJyA6ICdkZWZhdWx0LWZvcm0taWNvbi1jb2xvcidcIlxuICAgICAgbWF0U3VmZml4XG4gICAgPlxuICAgIDwvaS10ZWNoLWljb24tYnV0dG9uPlxuXG4gICAgPCEtLSBFcnJvciBNZXNzYWdlcyAtLT5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiISEobmdDb250cm9sLmNvbnRyb2wuZXJyb3JzICYmIGlucHV0RGF0YS5zdWJtaXQpXCI+XG4gICAgICB7eyBuZ0NvbnRyb2wuY29udHJvbCB8IGdlbmVyYXRlRXJyb3JNZXNzYWdlcyA6IChpbnB1dERhdGEubGFiZWwgfHwgJycpIDogaW5wdXREYXRhLmRlZmF1bHRQYXR0ZXJuS2V5IH19XG4gICAgPC9tYXQtZXJyb3I+XG5cbiAgICA8IS0tIEhlbHBlciBUZXh0IC0tPlxuICAgIDxtYXQtaGludCAqbmdJZj1cIiEoISEobmdDb250cm9sLmNvbnRyb2wuZXJyb3JzICYmIGlucHV0RGF0YS5zdWJtaXQpKSAmJiBpbnB1dERhdGEuaGludFwiPlxuICAgICAge3sgaW5wdXREYXRhLmhpbnQgfCB0cmFuc2xhdGUgfX1cbiAgICA8L21hdC1oaW50PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { Directive, HostListener, Input } from '@angular/core';
|
|
2
|
+
import { NgxMaskDirective, NgxMaskService } from 'ngx-mask';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class DateMaskDirective {
|
|
5
|
+
constructor(elementRef, injector) {
|
|
6
|
+
this.elementRef = elementRef;
|
|
7
|
+
this.injector = injector;
|
|
8
|
+
this.expressions = {
|
|
9
|
+
DMY: 'M0/d0/0000',
|
|
10
|
+
DM: 'M0/d0'
|
|
11
|
+
};
|
|
12
|
+
this.dateRegex = new RegExp(/^\s*(1[012]|0?[1-9])\/(3[01]|[12][0-9]|0?[1-9])\/((?:19|20)\d{2})\s*$/);
|
|
13
|
+
this.dayMonthRegex = new RegExp(/^\s*(1[012]|0?[1-9])\/(3[01]|[12][0-9]|0?[1-9])$/);
|
|
14
|
+
this.previousValue = '';
|
|
15
|
+
this.maskService = this.injector.get(NgxMaskService);
|
|
16
|
+
}
|
|
17
|
+
onInput() {
|
|
18
|
+
let value = this.elementRef.nativeElement.value;
|
|
19
|
+
if (this.existsZerosInString(value)) {
|
|
20
|
+
value = this.previousValue;
|
|
21
|
+
}
|
|
22
|
+
const maskedValue = this.maskService.applyMask(value, this.maskType === 'DAY_MONTH' ? this.expressions.DM : this.expressions.DMY);
|
|
23
|
+
if (this.maskType !== 'DAY_MONTH' && !isNaN(new Date(maskedValue).getTime())) {
|
|
24
|
+
if (this.matDatepicker) {
|
|
25
|
+
this.matDatepicker.select(new Date(maskedValue));
|
|
26
|
+
}
|
|
27
|
+
else if (this.rangeFormControl) {
|
|
28
|
+
this.rangeFormControl.setValue(new Date(maskedValue));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
if (isNaN(new Date(maskedValue).getTime())) {
|
|
32
|
+
this.matDatepicker.select(null);
|
|
33
|
+
}
|
|
34
|
+
this.elementRef.nativeElement.value = maskedValue || null;
|
|
35
|
+
this.previousValue = maskedValue || null;
|
|
36
|
+
}
|
|
37
|
+
onPaste(event) {
|
|
38
|
+
const pastedValue = event.clipboardData?.getData('text/plain');
|
|
39
|
+
if (!pastedValue) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (this.maskType === 'DAY_MONTH') {
|
|
43
|
+
if (!this.dayMonthRegex.test(pastedValue)) {
|
|
44
|
+
event?.preventDefault();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
if (!this.dateRegex.test(pastedValue)) {
|
|
49
|
+
event?.preventDefault();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
existsZerosInString(date) {
|
|
54
|
+
const dateToArray = date.split('/');
|
|
55
|
+
let isValid;
|
|
56
|
+
if (this.maskType === 'DAY_MONTH') {
|
|
57
|
+
isValid = !!dateToArray.find((part) => part.includes('00'));
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
if (dateToArray.length < 3) {
|
|
61
|
+
isValid = !!dateToArray.find((part) => part.includes('00'));
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
isValid = (dateToArray[2][0] == '0') || (+dateToArray[2][0] > 2);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return isValid;
|
|
68
|
+
}
|
|
69
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateMaskDirective, deps: [{ token: i0.ElementRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
70
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DateMaskDirective, isStandalone: true, selector: "[dateMask]", inputs: { maskType: "maskType", matDatepicker: "matDatepicker", rangeFormControl: "rangeFormControl" }, host: { listeners: { "input": "onInput()", "paste": "onPaste($event)" } }, providers: [NgxMaskDirective], ngImport: i0 }); }
|
|
71
|
+
}
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateMaskDirective, decorators: [{
|
|
73
|
+
type: Directive,
|
|
74
|
+
args: [{
|
|
75
|
+
selector: '[dateMask]',
|
|
76
|
+
providers: [NgxMaskDirective],
|
|
77
|
+
standalone: true
|
|
78
|
+
}]
|
|
79
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Injector }], propDecorators: { maskType: [{
|
|
80
|
+
type: Input
|
|
81
|
+
}], matDatepicker: [{
|
|
82
|
+
type: Input
|
|
83
|
+
}], rangeFormControl: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}], onInput: [{
|
|
86
|
+
type: HostListener,
|
|
87
|
+
args: ['input']
|
|
88
|
+
}], onPaste: [{
|
|
89
|
+
type: HostListener,
|
|
90
|
+
args: ['paste', ['$event']]
|
|
91
|
+
}] } });
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1tYXNrLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvZGlyZWN0aXZlcy9kYXRlLW1hc2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNGLEtBQUssRUFDaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBQyxNQUFNLFVBQVUsQ0FBQzs7QUFTM0QsTUFBTSxPQUFPLGlCQUFpQjtJQWM1QixZQUNZLFVBQXNCLEVBQ3RCLFFBQWtCO1FBRGxCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVg5QixnQkFBVyxHQUFHO1lBQ1osR0FBRyxFQUFFLFlBQVk7WUFDakIsRUFBRSxFQUFFLE9BQU87U0FDWixDQUFBO1FBRUQsY0FBUyxHQUFHLElBQUksTUFBTSxDQUFDLHVFQUF1RSxDQUFDLENBQUM7UUFDaEcsa0JBQWEsR0FBRyxJQUFJLE1BQU0sQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO1FBQy9FLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBTWpCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUdELE9BQU87UUFDTCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUFFaEQsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUM3QixDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQzFDLEtBQUss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UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOytHQS9FVSxpQkFBaUI7bUdBQWpCLGlCQUFpQiw0T0FIbEIsQ0FBQyxnQkFBZ0IsQ0FBQzs7NEZBR2pCLGlCQUFpQjtrQkFMN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsU0FBUyxFQUFDLENBQUMsZ0JBQWdCLENBQUM7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjtzR0FFVSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQW1CTixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTztnQkE4QnJCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0b3IsIElucHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd4TWFza0RpcmVjdGl2ZSwgTmd4TWFza1NlcnZpY2V9IGZyb20gJ25neC1tYXNrJztcbmltcG9ydCB7TWF0RGF0ZXBpY2tlcn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXJcIjtcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RhdGVNYXNrXScsXG4gIHByb3ZpZGVyczpbTmd4TWFza0RpcmVjdGl2ZV0sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZU1hc2tEaXJlY3RpdmUge1xuICBASW5wdXQoKSBtYXNrVHlwZSE6IHN0cmluZztcbiAgQElucHV0KCkgbWF0RGF0ZXBpY2tlciE6IE1hdERhdGVwaWNrZXI8YW55PjtcbiAgQElucHV0KCkgcmFuZ2VGb3JtQ29udHJvbCE6IEFic3RyYWN0Q29udHJvbDtcblxuICBleHByZXNzaW9ucyA9IHtcbiAgICBETVk6ICdNMC9kMC8wMDAwJyxcbiAgICBETTogJ00wL2QwJ1xuICB9XG4gIG1hc2tTZXJ2aWNlOiBhbnk7XG4gIGRhdGVSZWdleCA9IG5ldyBSZWdFeHAoL15cXHMqKDFbMDEyXXwwP1sxLTldKVxcLygzWzAxXXxbMTJdWzAtOV18MD9bMS05XSlcXC8oKD86MTl8MjApXFxkezJ9KVxccyokLyk7XG4gIGRheU1vbnRoUmVnZXggPSBuZXcgUmVnRXhwKC9eXFxzKigxWzAxMl18MD9bMS05XSlcXC8oM1swMV18WzEyXVswLTldfDA/WzEtOV0pJC8pO1xuICBwcmV2aW91c1ZhbHVlID0gJyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgKSB7XG4gICAgdGhpcy5tYXNrU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5neE1hc2tTZXJ2aWNlKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2lucHV0JylcbiAgb25JbnB1dCgpIHtcbiAgICBsZXQgdmFsdWUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZTtcblxuICAgIGlmICh0aGlzLmV4aXN0c1plcm9zSW5TdHJpbmcodmFsdWUpKSB7XG4gICAgICB2YWx1ZSA9IHRoaXMucHJldmlvdXNWYWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBtYXNrZWRWYWx1ZSA9IHRoaXMubWFza1NlcnZpY2UuYXBwbHlNYXNrKFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgdGhpcy5tYXNrVHlwZSA9PT0gJ0RBWV9NT05USCcgPyB0aGlzLmV4cHJlc3Npb25zLkRNIDogdGhpcy5leHByZXNzaW9ucy5ETVlcbiAgICApO1xuXG4gICAgaWYgKHRoaXMubWFza1R5cGUgIT09ICdEQVlfTU9OVEgnICYmICFpc05hTihuZXcgRGF0ZShtYXNrZWRWYWx1ZSkuZ2V0VGltZSgpKSkge1xuICAgICAgaWYgKHRoaXMubWF0RGF0ZXBpY2tlcikge1xuICAgICAgICB0aGlzLm1hdERhdGVwaWNrZXIuc2VsZWN0KG5ldyBEYXRlKG1hc2tlZFZhbHVlKSk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMucmFuZ2VGb3JtQ29udHJvbCkge1xuICAgICAgICB0aGlzLnJhbmdlRm9ybUNvbnRyb2wuc2V0VmFsdWUobmV3IERhdGUobWFza2VkVmFsdWUpKTtcbiAgICAgfVxuICAgIH1cblxuICAgIGlmIChpc05hTihuZXcgRGF0ZShtYXNrZWRWYWx1ZSkuZ2V0VGltZSgpKSkge1xuICAgICAgdGhpcy5tYXREYXRlcGlja2VyLnNlbGVjdChudWxsKVxuICAgIH1cblxuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gbWFza2VkVmFsdWUgfHwgbnVsbDtcbiAgICB0aGlzLnByZXZpb3VzVmFsdWUgPSBtYXNrZWRWYWx1ZSB8fCBudWxsO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigncGFzdGUnLCBbJyRldmVudCddKVxuICBvblBhc3RlKGV2ZW50OiBDbGlwYm9hcmRFdmVudCkge1xuICAgIGNvbnN0IHBhc3RlZFZhbHVlID0gZXZlbnQuY2xpcGJvYXJkRGF0YT8uZ2V0RGF0YSgndGV4dC9wbGFpbicpO1xuICAgIGlmICghcGFzdGVkVmFsdWUpIHsgcmV0dXJuOyB9XG4gICAgaWYgKHRoaXMubWFza1R5cGUgPT09ICdEQVlfTU9OVEgnKSB7XG4gICAgICBpZiAoIXRoaXMuZGF5TW9udGhSZWdleC50ZXN0KHBhc3RlZFZhbHVlKSkge1xuICAgICAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCF0aGlzLmRhdGVSZWdleC50ZXN0KHBhc3RlZFZhbHVlKSkge1xuICAgICAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBleGlzdHNaZXJvc0luU3RyaW5nKGRhdGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGRhdGVUb0FycmF5ID0gZGF0ZS5zcGxpdCgnLycpO1xuICAgIGxldCBpc1ZhbGlkO1xuICAgIGlmICh0aGlzLm1hc2tUeXBlID09PSAnREFZX01PTlRIJykge1xuICAgICAgaXNWYWxpZCA9ICEhZGF0ZVRvQXJyYXkuZmluZCgocGFydDogc3RyaW5nKSA9PiBwYXJ0LmluY2x1ZGVzKCcwMCcpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGRhdGVUb0FycmF5Lmxlbmd0aCA8IDMpIHtcbiAgICAgICAgaXNWYWxpZCA9ICEhZGF0ZVRvQXJyYXkuZmluZCgocGFydDogc3RyaW5nKSA9PiBwYXJ0LmluY2x1ZGVzKCcwMCcpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlzVmFsaWQgPSAoZGF0ZVRvQXJyYXlbMl1bMF0gPT0gJzAnKSB8fCAoK2RhdGVUb0FycmF5WzJdWzBdID4gMik7XG4gICAgICB9XG5cbiAgICB9XG4gICAgcmV0dXJuIGlzVmFsaWQ7XG4gIH1cblxufVxuIl19
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQtY29tcG9uZW50cy9zcmMvbGliL2RpcmVjdGl2ZXMvaW5wdXQtbWFzay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDRyxZQUFZLEVBQ3hCLEtBQUssRUFDTixNQUFNLGVBQWUsQ0FBQzs7QUFNdkIsTUFBTSxPQUFPLGtCQUFrQjtJQUU3QixJQUFhLEdBQUcsQ0FBQyxLQUFhO1FBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxJQUFhLEdBQUcsQ0FBQyxLQUFhO1FBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxJQUFhLEtBQUssQ0FBQyxLQUFhO1FBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxLQUFLLE1BQU0sQ0FBQztJQUNsQyxDQUFDO0lBUUQsT0FBTyxDQUFDLEtBQVU7UUFDaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVELFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFSMUMsZUFBVSxHQUFHLElBQUksTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDaEQscUJBQWdCLEdBQUcsSUFBSSxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQVF2RCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxLQUFZLEVBQUUsRUFBRTtZQUMxRSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzVCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJ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SUFDZCxDQUFDOytHQWhGVSxrQkFBa0I7bUdBQWxCLGtCQUFrQjs7NEZBQWxCLGtCQUFrQjtrQkFKOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOytFQUVVLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ08sR0FBRztzQkFBZixLQUFLO2dCQUdPLEdBQUc7c0JBQWYsS0FBSztnQkFHTyxLQUFLO3NCQUFqQixLQUFLO2dCQVVOLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tpbnB1dE1hc2tdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dE1hc2tEaXJlY3RpdmUge1xuICBASW5wdXQoKSBpbnB1dE1hc2shOiAnbnVtYmVyJyB8ICdzdHJpbmcnO1xuICBASW5wdXQoKSBzZXQgbWluKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLm1pbmltdW1WYWx1ZSA9IE51bWJlcih2YWx1ZSk7XG4gIH1cbiAgQElucHV0KCkgc2V0IG1heCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5tYXhpbXVtVmFsdWUgPSBOdW1iZXIodmFsdWUpO1xuICB9XG4gIEBJbnB1dCgpIHNldCBmbG9hdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5pc0Zsb2F0ID0gdmFsdWUgPT09ICd0cnVlJztcbiAgfVxuICBtaW5pbXVtVmFsdWUhOiBudW1iZXI7XG4gIG1heGltdW1WYWx1ZSE6IG51bWJlcjtcbiAgaXNGbG9hdCE6IGJvb2xlYW47XG4gIHJlZ2V4RmxvYXQgPSBuZXcgUmVnRXhwKC9eKFswLTldKlsuXSk/WzAtOV0rJC8pO1xuICByZWdleE9ubHlOdW1iZXJzID0gbmV3IFJlZ0V4cCgvXi0/WzAtOV0rKD86XFwuWzAtOV0rKT8kLyk7XG5cbiAgQEhvc3RMaXN0ZW5lcigncGFzdGUnLCBbJyRldmVudCddKVxuICBvblBhc3RlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLm1ha2VWYWxpZGF0aW9uKGV2ZW50LCB0cnVlKVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5cHJlc3MnLCAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICB0aGlzLm1ha2VWYWxpZGF0aW9uKGV2ZW50KVxuICAgIH0pXG4gIH1cblxuICBtYWtlVmFsaWRhdGlvbihldmVudDogYW55LCBmcm9tUGFzdGUgPSBmYWxzZSk6IGJvb2xlYW4ge1xuICAgIGxldCB2YWx1ZTogYW55O1xuICAgIGxldCBuZXdDaGFyOiBhbnk7XG5cbiAgICBpZiAoIWZyb21QYXN0ZSkge1xuICAgICAgbmV3Q2hhciA9IFN0cmluZy5mcm9tQ2hhckNvZGUoZXZlbnQua2V5Q29kZSk7XG4gICAgICBjb25zdCBjdXJzb3JQb3MgPSBldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQ7XG4gICAgICBjb25zdCBpbnB1dFRleHQgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgICB2YWx1ZSA9IGAke2lucHV0VGV4dC5zbGljZSgwLCBjdXJzb3JQb3MpfSR7bmV3Q2hhcn0ke2lucHV0VGV4dC5zbGljZShjdXJzb3JQb3MsIGlucHV0VGV4dC5sZW5ndGgpfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gZXZlbnQuY2xpcGJvYXJkRGF0YT8uZ2V0RGF0YSgndGV4dC9wbGFpbicpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlucHV0TWFzayA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiB0aGlzLmNoZWNraW5nRm9yTnVtYmVycyh2YWx1ZSwgZXZlbnQsIG5ld0NoYXIsIGZyb21QYXN0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmNoZWNraW5nRm9yVGV4dHModmFsdWUsIGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBjaGVja2luZ0Zvck51bWJlcnModmFsdWU6IGFueSwgZXZlbnQ6IGFueSwgbmV3Q2hhcjogc3RyaW5nLCBmcm9tUGFzdGUgPSBmYWxzZSk6IGJvb2xlYW4ge1xuICAgIGlmICgoaXNOYU4odGhpcy5taW5pbXVtVmFsdWUpIHx8IHRoaXMubWluaW11bVZhbHVlIDwgMCkgJiYgdmFsdWUgPT09ICctJykgeyB2YWx1ZSA9IE51bWJlcignLTAnKTsgfVxuXG4gICAgaWYgKHRoaXMuaXNGbG9hdCAmJiAobmV3Q2hhciA9PT0gJy4nKSkge1xuICAgICAgdmFsdWUgKz0gJzAnO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuaXNGbG9hdCAmJiBmcm9tUGFzdGUgJiYgdmFsdWUuaW5jbHVkZXMoJy4nKSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCByZWdleCA9ICh0aGlzLmlzRmxvYXQpID8gdGhpcy5yZWdleEZsb2F0IDogdGhpcy5yZWdleE9ubHlOdW1iZXJzO1xuXG4gICAgaWYgKCFyZWdleC50ZXN0KHZhbHVlKSB8fFxuICAgICAgICAodGhpcy5taW5pbXVtVmFsdWUgJiYgdmFsdWUgPCB0aGlzLm1pbmltdW1WYWx1ZSkgfHxcbiAgICAgICAgKHRoaXMubWF4aW11bVZhbHVlICYmIHZhbHVlID4gdGhpcy5tYXhpbXVtVmFsdWUpXG4gICAgKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgY2hlY2tpbmdGb3JUZXh0cyh2YWx1ZTogYW55LCBldmVudDogYW55KTogYm9vbGVhbiB7XG4gICAgbGV0IHJlZ2V4ID0gbmV3IFJlZ0V4cCgvXltBLVphLXowLTldKiQvKTtcbiAgICBpZiAoIXJlZ2V4LnRlc3QodmFsdWUpKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWlucHV0LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvaW50ZXJmYWNlcy9hcHAtaW5wdXQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEFwcElucHV0SW50ZXJmYWNlIHtcbiAgICBhY3RpdmVTdGF0ZUljb25Vcmw/OiBzdHJpbmdcbiAgICBjbGVhcmFibGU/OiBib29sZWFuLFxuICAgIGNvbnRhaW5lckNsYXNzPzogc3RyaW5nLFxuICAgIGRhdGVQaWNrZXI/OiBib29sZWFuLFxuICAgIGRpc2FibGVkPzogYm9vbGVhbixcbiAgICBkb250UmVzZXRWYWx1ZUluQ2xlYXJBY3Rpb24/OiBib29sZWFuLFxuICAgIGhpbnQ/OiBzdHJpbmcsXG4gICAgaWNvblByZWZpeD86IHN0cmluZyxcbiAgICBpY29uUHJlZml4U3ZnPzogc3RyaW5nLFxuICAgIGljb25QcmVmaXhUb29sdGlwPzogc3RyaW5nLFxuICAgIGljb25QcmVmaXhDb2xvcj86IHN0cmluZyxcbiAgICBpY29uUHJlZml4VmFyaWFudD86IHN0cmluZyxcbiAgICBpY29uU3VmZml4Pzogc3RyaW5nLFxuICAgIC8vIFRPRE8gLSBSZW1vdmUgaWNvblVybCB3aGVuIGFsbCBpbnB1dHMgYXJlIHVwZGF0ZWRcbiAgICBpY29uVXJsPzogc3RyaW5nLFxuICAgIGlucHV0Q2xhc3M/OiBzdHJpbmcsXG4gICAgaW5wdXRNYXNrPzogJ251bWJlcicgfCAnc3RyaW5nJyxcbiAgICBsYWJlbD86IHN0cmluZyxcbiAgICBsZWFkWmVyb0RhdGVUaW1lPzogYm9vbGVhbixcbiAgICBtYXNrPzogc3RyaW5nLFxuICAgIHBhdHRlcm4/OiBzdHJpbmcgfCBSZWdFeHAsXG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZyxcbiAgICBwcmVmaXg/OiBzdHJpbmcsXG4gICAgcmVxdWlyZWQ/OiBib29sZWFuLFxuICAgIHJlYWRPbmx5PzogYm9vbGVhbixcbiAgICBzdWJtaXQ6IGJvb2xlYW4sXG4gICAgdGV4dGFyZWE/OiBib29sZWFuLFxuICAgIHR5cGU6IHN0cmluZyxcbiAgICBkZWZhdWx0UGF0dGVybktleT86IHN0cmluZyxcbiAgICBmb2N1c091dEVtaXQ/OiBib29sZWFuXG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWNvbmZpZ3MuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9pbnRlcmZhY2VzL2F1dG9jb21wbGV0ZS1jb25maWdzLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBdXRvY29tcGxldGVDb25maWdzSW50ZXJmYWNlIHtcbiAgICBsYWJlbDogc3RyaW5nLFxuICAgIGhpZGVMYWJlbD86IGJvb2xlYW4sXG4gICAgcGFnaW5hdGU6IGFueSxcbiAgICBwYWdpbmF0ZU9uU2Nyb2xsPzogYm9vbGVhbixcbiAgICB2YWx1ZUJ5S2V5OiBBcnJheTxzdHJpbmc+LFxuICAgIHZhbHVlVG9TaG93QnlLZXk6IEFycmF5PHN0cmluZz4sXG4gICAgdmFsdWVUb1Nob3dCeVBhcmFtPzogQXJyYXk8c3RyaW5nIHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPj4sXG4gICAgd2l0aFBhcmFtU3ltYm9sPzogc3RyaW5nLFxuICAgIG11bHRpcGxlPzogYm9vbGVhbixcbiAgICBoaWRlU2VsZWN0QWxsT3B0aW9uPzogYm9vbGVhbixcbiAgICByZXNldD86IGJvb2xlYW4sXG4gICAgc2VhcmNoPzogYm9vbGVhbixcbiAgICBkaXNhYmxlZD86IGJvb2xlYW4sXG4gICAgZXJyb3JNZXNzYWdlPzogc3RyaW5nLFxuICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nLFxuICAgIGZpbHRyYXRpb25LZXk/OiBzdHJpbmcsXG4gICAgcmVxdWlyZWQ/OiBib29sZWFuLFxuICAgIGhvdmVyPzogc3RyaW5nLFxuICAgIGNoYW5nZVRleHQ/OiBhbnksXG4gICAgaWNvblVybD86IHN0cmluZyxcbiAgICBhY3RpdmVTdGF0ZUljb25Vcmw/OiBzdHJpbmcsXG4gICAgbWF0SWNvbk5hbWU/OiBzdHJpbmcsXG4gICAgbWF0SWNvblN2Zz86IHN0cmluZyxcbiAgICBhY3Rpb25zPzogYW55LFxuICAgIGJsb2NrUGFnaW5hdGlvbj86IGJvb2xlYW4sXG4gICAgdmFsdWVCeUlkPzogc3RyaW5nLFxuICAgIHNob3dGdWxsVGV4dFdpdGhPcHRpb25hbE9uU2VsZWN0ZWRWYWx1ZT86IGJvb2xlYW4sXG4gICAgaWNvblByZWZpeD86IHN0cmluZyxcbiAgICByZWFkT25seT86IGJvb2xlYW4sXG4gICAgaWNvblN1ZmZpeD86IHN0cmluZyxcbiAgICBjbGVhcmFibGU/OiBib29sZWFuLFxuICAgIGRlZmF1bHRQYXR0ZXJuS2V5Pzogc3RyaW5nLFxuICAgIGljb25QcmVmaXhUb29sdGlwPzogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGljb25QcmVmaXhTdmc/OiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgaWNvblByZWZpeENvbG9yPzogc3RyaW5nIHwgdW5kZWZpbmVkXG59XG4iXX0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enum representing different types of buttons.
|
|
3
|
+
*/
|
|
4
|
+
export var ButtonType;
|
|
5
|
+
(function (ButtonType) {
|
|
6
|
+
/** A filled button with solid background, typically used for primary actions. */
|
|
7
|
+
ButtonType["FILLED"] = "FILLED";
|
|
8
|
+
/** A tonal button with lighter background, used for secondary actions. */
|
|
9
|
+
ButtonType["TONAL"] = "TONAL";
|
|
10
|
+
/** An outlined button with a border and no background. */
|
|
11
|
+
ButtonType["OUTLINE"] = "OUTLINE";
|
|
12
|
+
/** A text button with no background or border, ideal for minimal UI. */
|
|
13
|
+
ButtonType["TEXT"] = "TEXT";
|
|
14
|
+
/** A warning button with special styling to indicate caution or alert actions. */
|
|
15
|
+
ButtonType["WARNING"] = "WARNING";
|
|
16
|
+
})(ButtonType || (ButtonType = {}));
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLXR5cGVzLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQtY29tcG9uZW50cy9zcmMvbGliL2ludGVyZmFjZXMvYnV0dG9uLXR5cGVzLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxVQWVYO0FBZkQsV0FBWSxVQUFVO0lBQ3BCLGlGQUFpRjtJQUNqRiwrQkFBaUIsQ0FBQTtJQUVqQiwwRUFBMEU7SUFDMUUsNkJBQWUsQ0FBQTtJQUVmLDBEQUEwRDtJQUMxRCxpQ0FBbUIsQ0FBQTtJQUVuQix3RUFBd0U7SUFDeEUsMkJBQWEsQ0FBQTtJQUViLGtGQUFrRjtJQUNsRixpQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBZlcsVUFBVSxLQUFWLFVBQVUsUUFlckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEVudW0gcmVwcmVzZW50aW5nIGRpZmZlcmVudCB0eXBlcyBvZiBidXR0b25zLlxuICovXG5leHBvcnQgZW51bSBCdXR0b25UeXBlIHtcbiAgLyoqIEEgZmlsbGVkIGJ1dHRvbiB3aXRoIHNvbGlkIGJhY2tncm91bmQsIHR5cGljYWxseSB1c2VkIGZvciBwcmltYXJ5IGFjdGlvbnMuICovXG4gIEZJTExFRCA9ICdGSUxMRUQnLFxuXG4gIC8qKiBBIHRvbmFsIGJ1dHRvbiB3aXRoIGxpZ2h0ZXIgYmFja2dyb3VuZCwgdXNlZCBmb3Igc2Vjb25kYXJ5IGFjdGlvbnMuICovXG4gIFRPTkFMID0gJ1RPTkFMJyxcblxuICAvKiogQW4gb3V0bGluZWQgYnV0dG9uIHdpdGggYSBib3JkZXIgYW5kIG5vIGJhY2tncm91bmQuICovXG4gIE9VVExJTkUgPSAnT1VUTElORScsXG5cbiAgLyoqIEEgdGV4dCBidXR0b24gd2l0aCBubyBiYWNrZ3JvdW5kIG9yIGJvcmRlciwgaWRlYWwgZm9yIG1pbmltYWwgVUkuICovXG4gIFRFWFQgPSAnVEVYVCcsXG5cbiAgLyoqIEEgd2FybmluZyBidXR0b24gd2l0aCBzcGVjaWFsIHN0eWxpbmcgdG8gaW5kaWNhdGUgY2F1dGlvbiBvciBhbGVydCBhY3Rpb25zLiAqL1xuICBXQVJOSU5HID0gJ1dBUk5JTkcnLFxufVxuIl19
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export var DropdownSelectionType;
|
|
2
|
+
(function (DropdownSelectionType) {
|
|
3
|
+
DropdownSelectionType["UPLOAD"] = "UPLOAD";
|
|
4
|
+
DropdownSelectionType["DOWNLOAD"] = "DOWNLOAD";
|
|
5
|
+
DropdownSelectionType["BLANK"] = "BLANK";
|
|
6
|
+
})(DropdownSelectionType || (DropdownSelectionType = {}));
|
|
7
|
+
export const DropdownItemIcon = {
|
|
8
|
+
[DropdownSelectionType.UPLOAD]: 'upload',
|
|
9
|
+
[DropdownSelectionType.DOWNLOAD]: 'download',
|
|
10
|
+
[DropdownSelectionType.BLANK]: 'blank',
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tc2VsZWN0aW9uLmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvaW50ZXJmYWNlcy9kcm9wZG93bi1zZWxlY3Rpb24uY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLHFCQUlYO0FBSkQsV0FBWSxxQkFBcUI7SUFDN0IsMENBQWlCLENBQUE7SUFDakIsOENBQXFCLENBQUE7SUFDckIsd0NBQWUsQ0FBQTtBQUNuQixDQUFDLEVBSlcscUJBQXFCLEtBQXJCLHFCQUFxQixRQUloQztBQUVELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzVCLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUTtJQUN4QyxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxFQUFFLFVBQVU7SUFDNUMsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPO0NBQ3pDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBEcm9wZG93blNlbGVjdGlvblR5cGUge1xuICAgIFVQTE9BRCA9IFwiVVBMT0FEXCIsXG4gICAgRE9XTkxPQUQgPSBcIkRPV05MT0FEXCIsXG4gICAgQkxBTksgPSBcIkJMQU5LXCJcbn1cblxuZXhwb3J0IGNvbnN0IERyb3Bkb3duSXRlbUljb24gPSB7XG4gICAgW0Ryb3Bkb3duU2VsZWN0aW9uVHlwZS5VUExPQURdOiAndXBsb2FkJyxcbiAgICBbRHJvcGRvd25TZWxlY3Rpb25UeXBlLkRPV05MT0FEXTogJ2Rvd25sb2FkJyxcbiAgICBbRHJvcGRvd25TZWxlY3Rpb25UeXBlLkJMQU5LXTogJ2JsYW5rJyxcbn0iXX0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class ArrayToStringPipe {
|
|
4
|
+
transform(value) {
|
|
5
|
+
return (typeof value === 'string') ? value : value.join(',');
|
|
6
|
+
}
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArrayToStringPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
8
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ArrayToStringPipe, isStandalone: true, name: "arrayToString" }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArrayToStringPipe, decorators: [{
|
|
11
|
+
type: Pipe,
|
|
12
|
+
args: [{
|
|
13
|
+
name: 'arrayToString',
|
|
14
|
+
standalone: true
|
|
15
|
+
}]
|
|
16
|
+
}] });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktdG8tc3RyaW5nLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQtY29tcG9uZW50cy9zcmMvbGliL3BpcGVzL2FycmF5LXRvLXN0cmluZy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQU1wRCxNQUFNLE9BQU8saUJBQWlCO0lBRTVCLFNBQVMsQ0FBQyxLQUFzQztRQUM5QyxPQUFPLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvRCxDQUFDOytHQUpVLGlCQUFpQjs2R0FBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUo3QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxlQUFlO29CQUNyQixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2FycmF5VG9TdHJpbmcnLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5VG9TdHJpbmdQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgdHJhbnNmb3JtKHZhbHVlOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+IHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpID8gdmFsdWUgOiB2YWx1ZS5qb2luKCcsJyk7XG4gIH1cblxufVxuIl19
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtZXJyb3ItbWVzc2FnZXMucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvcGlwZXMvZ2VuZXJhdGUtZXJyb3ItbWVzc2FnZXMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7O0FBUXBELE1BQU0sT0FBTyx5QkFBeUI7SUFFbEMsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFDdEQsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUFZLEVBQUMsS0FBYSxFQUFDLG9CQUE0QixPQUFPO1FBRXBFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEIsT0FBTyxFQUFFLENBQUM7UUFDZCxDQUFDO1FBQ0QsSUFBSSxlQUFxQyxDQUFDO1FBQzFDLElBQUksZUFBZSxHQUFHLEVBQUUsQ0FBQTtRQUV4QixNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFN0MsZUFBZSxHQUFHLEVBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksT0FBTyxFQUFDLENBQUM7UUFDL0UsZUFBZSxHQUFHLENBQUMsR0FBRyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsd0JBQXdCLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFHLEdBQUcsQ0FBQztRQUUxRSxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7K0dBcEJRLHlCQUF5Qjs2R0FBekIseUJBQXlCOzs0RkFBekIseUJBQXlCO2tCQUxyQyxJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSx1QkFBdUI7b0JBQzdCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUUsSUFBSTtpQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcblxuQFBpcGUoe1xuICAgIG5hbWU6ICdnZW5lcmF0ZUVycm9yTWVzc2FnZXMnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHVyZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBHZW5lcmF0ZUVycm9yTWVzc2FnZXNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgICB9XG5cbiAgICB0cmFuc2Zvcm0oY29udHJvbDogYW55LGxhYmVsOiBzdHJpbmcsZGVmYXVsdFBhdHRlcm5LZXk6IHN0cmluZyA9ICdmaXhlZCcpOiBzdHJpbmcge1xuXG4gICAgICAgIGlmICghY29udHJvbC5lcnJvcnMpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgICBsZXQgdHJhbnNsYXRlUGFyYW1zIToge0VSUk9SX0tFWTogc3RyaW5nfTtcbiAgICAgICAgbGV0IGVycm9yTWVzc2FnZUtleSA9ICcnXG5cbiAgICAgICAgY29uc3Qga2V5ID0gKE9iamVjdC5rZXlzKGNvbnRyb2wuZXJyb3JzKVswXSk7XG5cbiAgICAgICAgdHJhbnNsYXRlUGFyYW1zID0ge0VSUk9SX0tFWTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQobGFiZWwpIHx8ICdGaWVsZCd9O1xuICAgICAgICBlcnJvck1lc3NhZ2VLZXkgPSAoa2V5ID09PSAncGF0dGVybicpID9cbiAgICAgICAgICAgICdlcnJvck1lc3NhZ2VzLnBhdHRlcm4uJyArIGRlZmF1bHRQYXR0ZXJuS2V5IDogJ2Vycm9yTWVzc2FnZXMuJyArIGtleTtcblxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZXJyb3JNZXNzYWdlS2V5LHRyYW5zbGF0ZVBhcmFtcyk7XG4gICAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class GetValueByKeyFromObjectPipe {
|
|
4
|
+
transform(keys, data, withParams = null, withParamSymbol) {
|
|
5
|
+
if (typeof keys === 'string') {
|
|
6
|
+
return data[keys];
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
let returnValue = data;
|
|
10
|
+
keys.forEach((key) => {
|
|
11
|
+
if (!returnValue) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
returnValue = returnValue[key];
|
|
15
|
+
});
|
|
16
|
+
if (withParams) {
|
|
17
|
+
withParams.forEach((param) => {
|
|
18
|
+
let include = data;
|
|
19
|
+
if (typeof param === 'object') {
|
|
20
|
+
param.forEach((key) => {
|
|
21
|
+
include = (include) ? include[key] : null;
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
include = include[param];
|
|
26
|
+
}
|
|
27
|
+
if (include !== undefined && include !== null) {
|
|
28
|
+
returnValue += (withParamSymbol ? withParamSymbol : ' ') + include;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
return ((returnValue !== "undefined") && (returnValue !== null)) ? returnValue : '---';
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetValueByKeyFromObjectPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
36
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: GetValueByKeyFromObjectPipe, isStandalone: true, name: "getValueByKeyFromObject" }); }
|
|
37
|
+
}
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetValueByKeyFromObjectPipe, decorators: [{
|
|
39
|
+
type: Pipe,
|
|
40
|
+
args: [{
|
|
41
|
+
name: 'getValueByKeyFromObject',
|
|
42
|
+
standalone: true
|
|
43
|
+
}]
|
|
44
|
+
}] });
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXZhbHVlLWJ5LWtleS1mcm9tLW9iamVjdC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9waXBlcy9nZXQtdmFsdWUtYnkta2V5LWZyb20tb2JqZWN0LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELE1BQU0sT0FBTywyQkFBMkI7SUFFdEMsU0FBUyxDQUNMLElBQXFDLEVBQ3JDLElBQVMsRUFDVCxhQUE0RCxJQUFJLEVBQ2hFLGVBQXdCO1FBRTFCLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLFdBQVcsR0FBUSxJQUFJLENBQUM7WUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQW9CLEVBQUUsRUFBRTtnQkFDcEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUFDLE9BQU87Z0JBQUMsQ0FBQztnQkFDN0IsV0FBVyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQTtZQUNGLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBRWYsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQXNDLEVBQUUsRUFBRTtvQkFDNUQsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDO29CQUVuQixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO3dCQUM5QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBb0IsRUFBRSxFQUFFOzRCQUNyQyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7d0JBQzVDLENBQUMsQ0FBQyxDQUFBO29CQUNKLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUMzQixDQUFDO29CQUVELElBQUksT0FBTyxLQUFLLFNBQVMsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFLENBQUM7d0JBQzlDLFdBQVcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUM7b0JBQ3JFLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUE7WUFDSixDQUFDO1lBRUQsT0FBTyxDQUFDLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxDQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQzFGLENBQUM7SUFDSCxDQUFDOytHQXJDVSwyQkFBMkI7NkdBQTNCLDJCQUEyQjs7NEZBQTNCLDJCQUEyQjtrQkFKdkMsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUseUJBQXlCO29CQUMvQixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2dldFZhbHVlQnlLZXlGcm9tT2JqZWN0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBHZXRWYWx1ZUJ5S2V5RnJvbU9iamVjdFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICB0cmFuc2Zvcm0oXG4gICAgICBrZXlzOiBzdHJpbmcgfCBBcnJheTxzdHJpbmcgfCBudW1iZXI+LFxuICAgICAgZGF0YTogYW55LFxuICAgICAgd2l0aFBhcmFtczogQXJyYXk8c3RyaW5nIHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPj4gfCBudWxsID0gbnVsbCxcbiAgICAgIHdpdGhQYXJhbVN5bWJvbD86IHN0cmluZ1xuICApOiBzdHJpbmcge1xuICAgIGlmICh0eXBlb2Yga2V5cyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBkYXRhW2tleXNdO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgcmV0dXJuVmFsdWU6IGFueSA9IGRhdGE7XG4gICAgICBrZXlzLmZvckVhY2goKGtleTogc3RyaW5nIHwgbnVtYmVyKSA9PiB7XG4gICAgICAgIGlmICghcmV0dXJuVmFsdWUpIHsgcmV0dXJuOyB9XG4gICAgICAgIHJldHVyblZhbHVlID0gcmV0dXJuVmFsdWVba2V5XTtcbiAgICAgIH0pXG4gICAgICBpZiAod2l0aFBhcmFtcykge1xuXG4gICAgICAgIHdpdGhQYXJhbXMuZm9yRWFjaCgocGFyYW06IEFycmF5PHN0cmluZyB8IG51bWJlcj4gfCBzdHJpbmcpID0+IHtcbiAgICAgICAgICBsZXQgaW5jbHVkZSA9IGRhdGE7XG5cbiAgICAgICAgICBpZiAodHlwZW9mIHBhcmFtID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgcGFyYW0uZm9yRWFjaCgoa2V5OiBzdHJpbmcgfCBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgaW5jbHVkZSA9IChpbmNsdWRlKSA/IGluY2x1ZGVba2V5XSA6IG51bGw7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpbmNsdWRlID0gaW5jbHVkZVtwYXJhbV07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGluY2x1ZGUgIT09IHVuZGVmaW5lZCAmJiBpbmNsdWRlICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm5WYWx1ZSArPSAod2l0aFBhcmFtU3ltYm9sID8gd2l0aFBhcmFtU3ltYm9sIDogJyAnKSArIGluY2x1ZGU7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKChyZXR1cm5WYWx1ZSAhPT0gXCJ1bmRlZmluZWRcIikgJiYgKHJldHVyblZhbHVlICE9PSBudWxsKSApID8gcmV0dXJuVmFsdWUgOiAnLS0tJztcbiAgICB9XG4gIH1cblxufVxuIl19
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZXMvaW5wdXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLGVBQWUsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRixPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFFakQsTUFBTSxpQkFBaUI7SUFDbkIsVUFBVSxLQUFJLENBQUM7SUFDZixnQkFBZ0IsS0FBSSxDQUFDO0lBRXJCLGlCQUFpQixLQUFJLENBQUM7Q0FDekI7QUFNRCxNQUFNLE9BQU8sWUFBWTtJQUNyQixlQUFlO1FBQ1gsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFFbEUsSUFBSSxDQUFDLFNBQVM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXZDLElBQ0ksU0FBUyxZQUFZLGVBQWUsRUFDdEMsQ0FBQztZQUNDLFNBQVMsQ0FBQyxhQUFhLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1lBQ2xELE9BQU8sU0FBUyxDQUFDO1FBQ3JCLENBQUM7UUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7K0dBZFEsWUFBWTttSEFBWixZQUFZLGNBSFQsTUFBTTs7NEZBR1QsWUFBWTtrQkFKeEIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbE5hbWUsIE5nQ29udHJvbH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQge2luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuY2xhc3MgTm9vcFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAgd3JpdGVWYWx1ZSgpIHt9XG4gICAgcmVnaXN0ZXJPbkNoYW5nZSgpIHt9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZCgpIHt9XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5cbmV4cG9ydCBjbGFzcyBJbnB1dFNlcnZpY2Uge1xuICAgIGluamVjdE5nQ29udHJvbCgpOiBGb3JtQ29udHJvbE5hbWUge1xuICAgICAgICBjb25zdCBuZ0NvbnRyb2wgPSBpbmplY3QoTmdDb250cm9sLCB7c2VsZjogdHJ1ZSwgb3B0aW9uYWw6IHRydWV9KTtcblxuICAgICAgICBpZiAoIW5nQ29udHJvbCkgdGhyb3cgbmV3IEVycm9yKCcuLi4nKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBuZ0NvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbE5hbWVcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBuZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IG5ldyBOb29wVmFsdWVBY2Nlc3NvcigpO1xuICAgICAgICAgICAgcmV0dXJuIG5nQ29udHJvbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgLi4uYCk7XG4gICAgfVxufVxuIl19
|