i-tech-shared-components 1.2.51 → 1.3.1
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/fesm2022/i-tech-shared-components.mjs +72 -72
- package/fesm2022/i-tech-shared-components.mjs.map +1 -1
- package/package.json +10 -12
- package/theme/_ag-grid.scss +10 -10
- package/theme/_buttons.scss +14 -4
- package/theme/_date_picker.scss +9 -9
- package/theme/_date_time_picker.scss +9 -9
- package/theme/_form_fields.scss +23 -23
- package/theme/_icon-button.scss +24 -12
- package/theme/_label.scss +51 -29
- package/theme/_mat-selects.scss +18 -18
- package/theme/_menu.scss +3 -3
- package/theme/_text_input.scss +12 -12
- package/theme.scss +16 -17
- package/esm2022/i-tech-shared-components.mjs +0 -5
- package/esm2022/lib/components/ag-grid/ag-grid-button-cell/ag-grid-button-cell.component.mjs +0 -25
- package/esm2022/lib/components/ag-grid/status-label-cell.component.mjs +0 -41
- package/esm2022/lib/components/ag-grid/tooltip-cell-renderer.component.mjs +0 -49
- package/esm2022/lib/components/autocomplete-select/autocomplete-select.component.mjs +0 -456
- package/esm2022/lib/components/button/button.component.mjs +0 -122
- package/esm2022/lib/components/clear-value/clear-value.component.mjs +0 -34
- package/esm2022/lib/components/date-picker/date-picker.component.mjs +0 -117
- package/esm2022/lib/components/date-range-datepicker/date-range-datepicker.component.mjs +0 -141
- package/esm2022/lib/components/date-time-picker/date-time-picker.component.mjs +0 -169
- package/esm2022/lib/components/icon-button/icon-button.component.mjs +0 -49
- package/esm2022/lib/components/label/label.component.mjs +0 -56
- package/esm2022/lib/components/menu/menu.component.mjs +0 -56
- package/esm2022/lib/components/new-sidebar/company-image/company-image.component.mjs +0 -26
- package/esm2022/lib/components/new-sidebar/new-sidebar.component.mjs +0 -201
- package/esm2022/lib/components/text/text-input.component.mjs +0 -97
- package/esm2022/lib/directives/date-mask.directive.mjs +0 -92
- package/esm2022/lib/directives/input-mask.directive.mjs +0 -95
- package/esm2022/lib/interfaces/app-input.interface.mjs +0 -2
- package/esm2022/lib/interfaces/auth.interface.mjs +0 -16
- package/esm2022/lib/interfaces/autocomplete-configs.interface.mjs +0 -2
- package/esm2022/lib/interfaces/button-types.enum.mjs +0 -19
- package/esm2022/lib/interfaces/dropdown-selection.constants.mjs +0 -12
- package/esm2022/lib/interfaces/hour-minute.interface.mjs +0 -2
- package/esm2022/lib/interfaces/label-type.enum.mjs +0 -30
- package/esm2022/lib/interfaces/navigation-link.interface.mjs +0 -2
- package/esm2022/lib/interfaces/timezone.interface.mjs +0 -2
- package/esm2022/lib/pipes/array-to-string.pipe.mjs +0 -17
- package/esm2022/lib/pipes/generate-error-messages.pipe.mjs +0 -29
- package/esm2022/lib/pipes/get-value-by-key-from-object.pipe.mjs +0 -45
- package/esm2022/lib/services/ag-grid-functions.service.mjs +0 -49
- package/esm2022/lib/services/input.service.mjs +0 -35
- package/esm2022/lib/services/parse-date.service.mjs +0 -70
- package/esm2022/public-api.mjs +0 -30
|
@@ -1,122 +0,0 @@
|
|
|
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, TranslatePipe, TranslateService } from "@ngx-translate/core";
|
|
7
|
-
import { ButtonType } from '../../interfaces/button-types.enum';
|
|
8
|
-
import { NgxMaskDirective, NgxMaskPipe } from 'ngx-mask';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "@angular/material/icon";
|
|
11
|
-
import * as i2 from "@ngx-translate/core";
|
|
12
|
-
/**
|
|
13
|
-
* A reusable button component with Material Design styling and custom functionality.
|
|
14
|
-
*/
|
|
15
|
-
export class ButtonComponent {
|
|
16
|
-
constructor() {
|
|
17
|
-
/**
|
|
18
|
-
* The text displayed inside the button.
|
|
19
|
-
*/
|
|
20
|
-
this.text = '';
|
|
21
|
-
/**
|
|
22
|
-
* Data attribute used for Cypress or other testing frameworks.
|
|
23
|
-
*/
|
|
24
|
-
this.data_cy = '';
|
|
25
|
-
/**
|
|
26
|
-
* Font icon class for displaying an icon (e.g., Material Icons).
|
|
27
|
-
*/
|
|
28
|
-
this.fontIcon = '';
|
|
29
|
-
/**
|
|
30
|
-
* SVG icon name for displaying an SVG icon.
|
|
31
|
-
*/
|
|
32
|
-
this.svgIcon = '';
|
|
33
|
-
/**
|
|
34
|
-
* Defines the type of button (e.g., `FILLED`, `OUTLINED`).
|
|
35
|
-
*/
|
|
36
|
-
this.type = ButtonType.FILLED;
|
|
37
|
-
/**
|
|
38
|
-
* Additional custom classes to style the button.
|
|
39
|
-
*/
|
|
40
|
-
this.customClass = '';
|
|
41
|
-
/**
|
|
42
|
-
* If true, the button acts as a submit button.
|
|
43
|
-
*/
|
|
44
|
-
this.submit = false;
|
|
45
|
-
/**
|
|
46
|
-
* If true, the button is disabled and cannot be clicked.
|
|
47
|
-
*/
|
|
48
|
-
this.disabled = false;
|
|
49
|
-
/**
|
|
50
|
-
* Indicates whether the button is currently activated.
|
|
51
|
-
*/
|
|
52
|
-
this.activated = false;
|
|
53
|
-
/**
|
|
54
|
-
* The color of the button (e.g., `primary`, `warn`).
|
|
55
|
-
*/
|
|
56
|
-
this.color = 'primary';
|
|
57
|
-
/**
|
|
58
|
-
* Emits an event when the button is clicked.
|
|
59
|
-
*/
|
|
60
|
-
this.buttonClick = new EventEmitter();
|
|
61
|
-
/**
|
|
62
|
-
* Enum reference for `ButtonType` to use in templates.
|
|
63
|
-
*/
|
|
64
|
-
this.ButtonType = ButtonType;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Handles the button click event.
|
|
68
|
-
*
|
|
69
|
-
* @param event - The mouse event triggered by clicking the button.
|
|
70
|
-
*/
|
|
71
|
-
onClick(event) {
|
|
72
|
-
if (!this.disabled && !this.submit) {
|
|
73
|
-
this.buttonClick.emit();
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
77
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ButtonComponent, isStandalone: true, selector: "i-tech-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" }, providers: [
|
|
78
|
-
NgxMaskDirective,
|
|
79
|
-
NgxMaskPipe,
|
|
80
|
-
TranslatePipe,
|
|
81
|
-
TranslateService
|
|
82
|
-
], ngImport: i0, template: "<button *ngIf=\"[ButtonType.FILLED,ButtonType.WARNING].includes(type)\"\n mat-flat-button\n [attr.data-cy]=\"data_cy\"\n [color]=\"type === ButtonType.WARNING ? 'warn' : color\"\n [class.activated]=\"activated\"\n [ngClass]=\"(customClass || '')\"\n [disabled]=\"disabled || submit\"\n (click)=\"onClick($event)\"\n>\n <span *ngIf=\"submit\" class=\"spinner-overlay\">\n <mat-spinner diameter=\"16\"></mat-spinner>\n </span>\n <mat-icon *ngIf=\"fontIcon && !submit\">{{fontIcon}}</mat-icon>\n <mat-icon *ngIf=\"svgIcon && !submit\" [svgIcon]=\"svgIcon\"></mat-icon>\n <span>{{text | translate}}</span>\n</button>\n<button *ngIf=\"[ButtonType.TONAL,ButtonType.TEXT].includes(type)\"\n mat-button\n [attr.data-cy]=\"data_cy\"\n [ngClass]=\"(type === ButtonType.TONAL ? 'tertiary ' : '') + (customClass || '')\"\n [class.activated]=\"activated\"\n [disabled]=\"disabled || submit\"\n (click)=\"onClick($event)\"\n>\n <span *ngIf=\"submit\" class=\"spinner-overlay\">\n <mat-spinner diameter=\"16\"></mat-spinner>\n </span>\n <mat-icon *ngIf=\"fontIcon && !submit\">{{fontIcon}}</mat-icon>\n <mat-icon *ngIf=\"svgIcon && !submit\" [svgIcon]=\"svgIcon\"></mat-icon>\n\n <span>{{text | translate}}</span>\n</button>\n<button *ngIf=\"[ButtonType.OUTLINE,ButtonType.WARN_OUTLINE].includes(type)\"\n mat-stroked-button\n [attr.data-cy]=\"data_cy\"\n [ngClass]=\"(customClass || '') \"\n [color]=\"type === ButtonType.WARN_OUTLINE ? 'warn' : color\"\n [disabled]=\"disabled || submit\"\n (click)=\"onClick($event)\"\n [class.activated]=\"activated\"\n>\n <span *ngIf=\"submit\" class=\"spinner-overlay\">\n <mat-spinner diameter=\"16\"></mat-spinner>\n </span>\n <mat-icon *ngIf=\"fontIcon && !submit\" >{{fontIcon}}</mat-icon>\n <mat-icon *ngIf=\"svgIcon && !submit\" [svgIcon]=\"svgIcon\"></mat-icon>\n <span>{{text | translate}}</span>\n</button>\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" }] }); }
|
|
83
|
-
}
|
|
84
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
85
|
-
type: Component,
|
|
86
|
-
args: [{ selector: 'i-tech-button', standalone: true, imports: [
|
|
87
|
-
MatButton,
|
|
88
|
-
NgClass,
|
|
89
|
-
MatProgressSpinner,
|
|
90
|
-
NgIf,
|
|
91
|
-
MatIconModule,
|
|
92
|
-
TranslateModule
|
|
93
|
-
], providers: [
|
|
94
|
-
NgxMaskDirective,
|
|
95
|
-
NgxMaskPipe,
|
|
96
|
-
TranslatePipe,
|
|
97
|
-
TranslateService
|
|
98
|
-
], template: "<button *ngIf=\"[ButtonType.FILLED,ButtonType.WARNING].includes(type)\"\n mat-flat-button\n [attr.data-cy]=\"data_cy\"\n [color]=\"type === ButtonType.WARNING ? 'warn' : color\"\n [class.activated]=\"activated\"\n [ngClass]=\"(customClass || '')\"\n [disabled]=\"disabled || submit\"\n (click)=\"onClick($event)\"\n>\n <span *ngIf=\"submit\" class=\"spinner-overlay\">\n <mat-spinner diameter=\"16\"></mat-spinner>\n </span>\n <mat-icon *ngIf=\"fontIcon && !submit\">{{fontIcon}}</mat-icon>\n <mat-icon *ngIf=\"svgIcon && !submit\" [svgIcon]=\"svgIcon\"></mat-icon>\n <span>{{text | translate}}</span>\n</button>\n<button *ngIf=\"[ButtonType.TONAL,ButtonType.TEXT].includes(type)\"\n mat-button\n [attr.data-cy]=\"data_cy\"\n [ngClass]=\"(type === ButtonType.TONAL ? 'tertiary ' : '') + (customClass || '')\"\n [class.activated]=\"activated\"\n [disabled]=\"disabled || submit\"\n (click)=\"onClick($event)\"\n>\n <span *ngIf=\"submit\" class=\"spinner-overlay\">\n <mat-spinner diameter=\"16\"></mat-spinner>\n </span>\n <mat-icon *ngIf=\"fontIcon && !submit\">{{fontIcon}}</mat-icon>\n <mat-icon *ngIf=\"svgIcon && !submit\" [svgIcon]=\"svgIcon\"></mat-icon>\n\n <span>{{text | translate}}</span>\n</button>\n<button *ngIf=\"[ButtonType.OUTLINE,ButtonType.WARN_OUTLINE].includes(type)\"\n mat-stroked-button\n [attr.data-cy]=\"data_cy\"\n [ngClass]=\"(customClass || '') \"\n [color]=\"type === ButtonType.WARN_OUTLINE ? 'warn' : color\"\n [disabled]=\"disabled || submit\"\n (click)=\"onClick($event)\"\n [class.activated]=\"activated\"\n>\n <span *ngIf=\"submit\" class=\"spinner-overlay\">\n <mat-spinner diameter=\"16\"></mat-spinner>\n </span>\n <mat-icon *ngIf=\"fontIcon && !submit\" >{{fontIcon}}</mat-icon>\n <mat-icon *ngIf=\"svgIcon && !submit\" [svgIcon]=\"svgIcon\"></mat-icon>\n <span>{{text | translate}}</span>\n</button>\n" }]
|
|
99
|
-
}], propDecorators: { text: [{
|
|
100
|
-
type: Input
|
|
101
|
-
}], data_cy: [{
|
|
102
|
-
type: Input
|
|
103
|
-
}], fontIcon: [{
|
|
104
|
-
type: Input
|
|
105
|
-
}], svgIcon: [{
|
|
106
|
-
type: Input
|
|
107
|
-
}], type: [{
|
|
108
|
-
type: Input
|
|
109
|
-
}], customClass: [{
|
|
110
|
-
type: Input
|
|
111
|
-
}], submit: [{
|
|
112
|
-
type: Input
|
|
113
|
-
}], disabled: [{
|
|
114
|
-
type: Input
|
|
115
|
-
}], activated: [{
|
|
116
|
-
type: Input
|
|
117
|
-
}], color: [{
|
|
118
|
-
type: Input
|
|
119
|
-
}], buttonClick: [{
|
|
120
|
-
type: Output
|
|
121
|
-
}] } });
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7QUFFekQ7O0dBRUc7QUFxQkgsTUFBTSxPQUFPLGVBQWU7SUFwQjVCO1FBcUJFOztXQUVHO1FBQ00sU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUVuQjs7V0FFRztRQUNNLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFFdEI7O1dBRUc7UUFDTSxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBRXZCOztXQUVHO1FBQ00sWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUV0Qjs7V0FFRztRQUNNLFNBQUksR0FBZSxVQUFVLENBQUMsTUFBTSxDQUFDO1FBRTlDOztXQUVHO1FBQ00sZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFFMUI7O1dBRUc7UUFDTSxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRXhCOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBQztRQUUxQjs7V0FFRztRQUNNLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFM0I7O1dBRUc7UUFDTSxVQUFLLEdBQXVCLFNBQVMsQ0FBQztRQUUvQzs7V0FFRztRQUNPLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUVqRDs7V0FFRztRQUNnQixlQUFVLEdBQUcsVUFBVSxDQUFDO0tBWTVDO0lBVkM7Ozs7T0FJRztJQUNILE9BQU8sQ0FBQyxLQUFpQjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDOytHQXRFVSxlQUFlO21HQUFmLGVBQWUsdVRBUGY7WUFDVCxnQkFBZ0I7WUFDaEIsV0FBVztZQUNYLGFBQWE7WUFDYixnQkFBZ0I7U0FDakIsMEJDOUJILHFoRUFnREEsMEREaENJLFNBQVMsaUxBQ1QsT0FBTyxvRkFDUCxrQkFBa0IsK0tBQ2xCLElBQUksNEZBQ0osYUFBYSxtTEFDYixlQUFlOzs0RkFXTixlQUFlO2tCQXBCM0IsU0FBUzsrQkFDRSxlQUFlLGNBQ2IsSUFBSSxXQUNQO3dCQUNQLFNBQVM7d0JBQ1QsT0FBTzt3QkFDUCxrQkFBa0I7d0JBQ2xCLElBQUk7d0JBQ0osYUFBYTt3QkFDYixlQUFlO3FCQUNoQixhQUdVO3dCQUNULGdCQUFnQjt3QkFDaEIsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLGdCQUFnQjtxQkFDakI7OEJBTVEsSUFBSTtzQkFBWixLQUFLO2dCQUtHLE9BQU87c0JBQWYsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLE9BQU87c0JBQWYsS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUs7Z0JBS0csV0FBVztzQkFBbkIsS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFLRyxTQUFTO3NCQUFqQixLQUFLO2dCQUtHLEtBQUs7c0JBQWIsS0FBSztnQkFLSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbiB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcbmltcG9ydCB7IE5nQ2xhc3MsIE5nSWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXIgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lclwiO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pY29uXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVBpcGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgQnV0dG9uVHlwZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYnV0dG9uLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgTmd4TWFza0RpcmVjdGl2ZSwgTmd4TWFza1BpcGUgfSBmcm9tICduZ3gtbWFzayc7XG5cbi8qKlxuICogQSByZXVzYWJsZSBidXR0b24gY29tcG9uZW50IHdpdGggTWF0ZXJpYWwgRGVzaWduIHN0eWxpbmcgYW5kIGN1c3RvbSBmdW5jdGlvbmFsaXR5LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpLXRlY2gtYnV0dG9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdEJ1dHRvbixcbiAgICBOZ0NsYXNzLFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lcixcbiAgICBOZ0lmLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYnV0dG9uLmNvbXBvbmVudC5jc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICBOZ3hNYXNrRGlyZWN0aXZlLFxuICAgIE5neE1hc2tQaXBlLFxuICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgVHJhbnNsYXRlU2VydmljZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEJ1dHRvbkNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBUaGUgdGV4dCBkaXNwbGF5ZWQgaW5zaWRlIHRoZSBidXR0b24uXG4gICAqL1xuICBASW5wdXQoKSB0ZXh0ID0gJyc7XG5cbiAgLyoqXG4gICAqIERhdGEgYXR0cmlidXRlIHVzZWQgZm9yIEN5cHJlc3Mgb3Igb3RoZXIgdGVzdGluZyBmcmFtZXdvcmtzLlxuICAgKi9cbiAgQElucHV0KCkgZGF0YV9jeSA9ICcnO1xuXG4gIC8qKlxuICAgKiBGb250IGljb24gY2xhc3MgZm9yIGRpc3BsYXlpbmcgYW4gaWNvbiAoZS5nLiwgTWF0ZXJpYWwgSWNvbnMpLlxuICAgKi9cbiAgQElucHV0KCkgZm9udEljb24gPSAnJztcblxuICAvKipcbiAgICogU1ZHIGljb24gbmFtZSBmb3IgZGlzcGxheWluZyBhbiBTVkcgaWNvbi5cbiAgICovXG4gIEBJbnB1dCgpIHN2Z0ljb24gPSAnJztcblxuICAvKipcbiAgICogRGVmaW5lcyB0aGUgdHlwZSBvZiBidXR0b24gKGUuZy4sIGBGSUxMRURgLCBgT1VUTElORURgKS5cbiAgICovXG4gIEBJbnB1dCgpIHR5cGU6IEJ1dHRvblR5cGUgPSBCdXR0b25UeXBlLkZJTExFRDtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBjdXN0b20gY2xhc3NlcyB0byBzdHlsZSB0aGUgYnV0dG9uLlxuICAgKi9cbiAgQElucHV0KCkgY3VzdG9tQ2xhc3MgPSAnJztcblxuICAvKipcbiAgICogSWYgdHJ1ZSwgdGhlIGJ1dHRvbiBhY3RzIGFzIGEgc3VibWl0IGJ1dHRvbi5cbiAgICovXG4gIEBJbnB1dCgpIHN1Ym1pdCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJZiB0cnVlLCB0aGUgYnV0dG9uIGlzIGRpc2FibGVkIGFuZCBjYW5ub3QgYmUgY2xpY2tlZC5cbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBidXR0b24gaXMgY3VycmVudGx5IGFjdGl2YXRlZC5cbiAgICovXG4gIEBJbnB1dCgpIGFjdGl2YXRlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaGUgY29sb3Igb2YgdGhlIGJ1dHRvbiAoZS5nLiwgYHByaW1hcnlgLCBgd2FybmApLlxuICAgKi9cbiAgQElucHV0KCkgY29sb3I6ICdwcmltYXJ5JyB8ICd3YXJuJyA9ICdwcmltYXJ5JztcblxuICAvKipcbiAgICogRW1pdHMgYW4gZXZlbnQgd2hlbiB0aGUgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgYnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIEVudW0gcmVmZXJlbmNlIGZvciBgQnV0dG9uVHlwZWAgdG8gdXNlIGluIHRlbXBsYXRlcy5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBCdXR0b25UeXBlID0gQnV0dG9uVHlwZTtcblxuICAvKipcbiAgICogSGFuZGxlcyB0aGUgYnV0dG9uIGNsaWNrIGV2ZW50LlxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnQgLSBUaGUgbW91c2UgZXZlbnQgdHJpZ2dlcmVkIGJ5IGNsaWNraW5nIHRoZSBidXR0b24uXG4gICAqL1xuICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLnN1Ym1pdCkge1xuICAgICAgdGhpcy5idXR0b25DbGljay5lbWl0KCk7XG4gICAgfVxuICB9XG59XG4iLCI8YnV0dG9uICpuZ0lmPVwiW0J1dHRvblR5cGUuRklMTEVELEJ1dHRvblR5cGUuV0FSTklOR10uaW5jbHVkZXModHlwZSlcIlxuICAgICAgICBtYXQtZmxhdC1idXR0b25cbiAgICAgICAgW2F0dHIuZGF0YS1jeV09XCJkYXRhX2N5XCJcbiAgICAgICAgW2NvbG9yXT1cInR5cGUgPT09IEJ1dHRvblR5cGUuV0FSTklORyA/ICd3YXJuJyA6IGNvbG9yXCJcbiAgICAgICAgW2NsYXNzLmFjdGl2YXRlZF09XCJhY3RpdmF0ZWRcIlxuICAgICAgICBbbmdDbGFzc109XCIoY3VzdG9tQ2xhc3MgfHwgJycpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHN1Ym1pdFwiXG4gICAgICAgIChjbGljayk9XCJvbkNsaWNrKCRldmVudClcIlxuPlxuICAgICAgICA8c3BhbiAqbmdJZj1cInN1Ym1pdFwiIGNsYXNzPVwic3Bpbm5lci1vdmVybGF5XCI+XG4gICAgICAgICAgICA8bWF0LXNwaW5uZXIgZGlhbWV0ZXI9XCIxNlwiPjwvbWF0LXNwaW5uZXI+XG4gICAgICAgIDwvc3Bhbj5cbiAgPG1hdC1pY29uICpuZ0lmPVwiZm9udEljb24gJiYgIXN1Ym1pdFwiPnt7Zm9udEljb259fTwvbWF0LWljb24+XG4gIDxtYXQtaWNvbiAqbmdJZj1cInN2Z0ljb24gJiYgIXN1Ym1pdFwiIFtzdmdJY29uXT1cInN2Z0ljb25cIj48L21hdC1pY29uPlxuICA8c3Bhbj57e3RleHQgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbjwvYnV0dG9uPlxuPGJ1dHRvbiAqbmdJZj1cIltCdXR0b25UeXBlLlRPTkFMLEJ1dHRvblR5cGUuVEVYVF0uaW5jbHVkZXModHlwZSlcIlxuICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgIFthdHRyLmRhdGEtY3ldPVwiZGF0YV9jeVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIih0eXBlID09PSBCdXR0b25UeXBlLlRPTkFMID8gJ3RlcnRpYXJ5ICcgOiAnJykgKyAoY3VzdG9tQ2xhc3MgfHwgJycpXCJcbiAgICAgICAgW2NsYXNzLmFjdGl2YXRlZF09XCJhY3RpdmF0ZWRcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgc3VibWl0XCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiXG4+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwic3VibWl0XCIgIGNsYXNzPVwic3Bpbm5lci1vdmVybGF5XCI+XG4gICAgICAgICAgICA8bWF0LXNwaW5uZXIgZGlhbWV0ZXI9XCIxNlwiPjwvbWF0LXNwaW5uZXI+XG4gICAgICAgIDwvc3Bhbj5cbiAgPG1hdC1pY29uICpuZ0lmPVwiZm9udEljb24gJiYgIXN1Ym1pdFwiPnt7Zm9udEljb259fTwvbWF0LWljb24+XG4gIDxtYXQtaWNvbiAqbmdJZj1cInN2Z0ljb24gJiYgIXN1Ym1pdFwiIFtzdmdJY29uXT1cInN2Z0ljb25cIj48L21hdC1pY29uPlxuXG4gIDxzcGFuPnt7dGV4dCB8IHRyYW5zbGF0ZX19PC9zcGFuPlxuPC9idXR0b24+XG48YnV0dG9uICpuZ0lmPVwiW0J1dHRvblR5cGUuT1VUTElORSxCdXR0b25UeXBlLldBUk5fT1VUTElORV0uaW5jbHVkZXModHlwZSlcIlxuICAgICAgICBtYXQtc3Ryb2tlZC1idXR0b25cbiAgICAgICAgW2F0dHIuZGF0YS1jeV09XCJkYXRhX2N5XCJcbiAgICAgICAgW25nQ2xhc3NdPVwiKGN1c3RvbUNsYXNzIHx8ICcnKSBcIlxuICAgICAgICBbY29sb3JdPVwidHlwZSA9PT0gQnV0dG9uVHlwZS5XQVJOX09VVExJTkUgPyAnd2FybicgOiBjb2xvclwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBzdWJtaXRcIlxuICAgICAgICAoY2xpY2spPVwib25DbGljaygkZXZlbnQpXCJcbiAgICAgICAgW2NsYXNzLmFjdGl2YXRlZF09XCJhY3RpdmF0ZWRcIlxuPlxuICAgICAgICA8c3BhbiAqbmdJZj1cInN1Ym1pdFwiICBjbGFzcz1cInNwaW5uZXItb3ZlcmxheVwiPlxuICAgICAgICAgICAgPG1hdC1zcGlubmVyIGRpYW1ldGVyPVwiMTZcIj48L21hdC1zcGlubmVyPlxuICAgICAgICA8L3NwYW4+XG4gIDxtYXQtaWNvbiAqbmdJZj1cImZvbnRJY29uICYmICFzdWJtaXRcIiA+e3tmb250SWNvbn19PC9tYXQtaWNvbj5cbiAgPG1hdC1pY29uICpuZ0lmPVwic3ZnSWNvbiAmJiAhc3VibWl0XCIgW3N2Z0ljb25dPVwic3ZnSWNvblwiPjwvbWF0LWljb24+XG4gIDxzcGFuPnt7dGV4dCB8IHRyYW5zbGF0ZX19PC9zcGFuPlxuPC9idXR0b24+XG4iXX0=
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { NgClass, NgOptimizedImage } from "@angular/common";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class ClearValueComponent {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.resetValue = new EventEmitter();
|
|
7
|
-
}
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClearValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ClearValueComponent, isStandalone: true, selector: "i-tech-clear-value", inputs: { className: "className", additionalClass: "additionalClass" }, outputs: { resetValue: "resetValue" }, ngImport: i0, template: `<img
|
|
10
|
-
class="pointer"
|
|
11
|
-
[ngClass]="className || 'standard'"
|
|
12
|
-
(click)="resetValue.emit()"
|
|
13
|
-
ngSrc="./ic_close.svg"
|
|
14
|
-
height="24" width="24" alt=""/>`, isInline: true, styles: ["img{position:absolute;width:15px;height:15px}.big{width:25px;height:25px}.range_date{right:-65px;top:15px}.standard{right:-20px;top:40px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }] }); }
|
|
15
|
-
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClearValueComponent, decorators: [{
|
|
17
|
-
type: Component,
|
|
18
|
-
args: [{ selector: 'i-tech-clear-value', template: `<img
|
|
19
|
-
class="pointer"
|
|
20
|
-
[ngClass]="className || 'standard'"
|
|
21
|
-
(click)="resetValue.emit()"
|
|
22
|
-
ngSrc="./ic_close.svg"
|
|
23
|
-
height="24" width="24" alt=""/>`, imports: [
|
|
24
|
-
NgClass,
|
|
25
|
-
NgOptimizedImage
|
|
26
|
-
], standalone: true, styles: ["img{position:absolute;width:15px;height:15px}.big{width:25px;height:25px}.range_date{right:-65px;top:15px}.standard{right:-20px;top:40px}\n"] }]
|
|
27
|
-
}], propDecorators: { className: [{
|
|
28
|
-
type: Input
|
|
29
|
-
}], additionalClass: [{
|
|
30
|
-
type: Input
|
|
31
|
-
}], resetValue: [{
|
|
32
|
-
type: Output
|
|
33
|
-
}] } });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXItdmFsdWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NsZWFyLXZhbHVlL2NsZWFyLXZhbHVlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFzQzVELE1BQU0sT0FBTyxtQkFBbUI7SUFwQ2hDO1FBdUNZLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0tBQ2hEOytHQUpZLG1CQUFtQjttR0FBbkIsbUJBQW1CLDZMQWxDcEI7Ozs7O29DQUt3QixxTkF3QmhDLE9BQU8sb0ZBQ1AsZ0JBQWdCOzs0RkFJUCxtQkFBbUI7a0JBcEMvQixTQUFTOytCQUNFLG9CQUFvQixZQUNwQjs7Ozs7b0NBS3dCLFdBdUJ6Qjt3QkFDUCxPQUFPO3dCQUNQLGdCQUFnQjtxQkFDakIsY0FDVyxJQUFJOzhCQUdQLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nT3B0aW1pemVkSW1hZ2UgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ktdGVjaC1jbGVhci12YWx1ZScsXG4gIHRlbXBsYXRlOiBgPGltZ1xuICAgIGNsYXNzPVwicG9pbnRlclwiXG4gICAgW25nQ2xhc3NdPVwiY2xhc3NOYW1lIHx8ICdzdGFuZGFyZCdcIlxuICAgIChjbGljayk9XCJyZXNldFZhbHVlLmVtaXQoKVwiXG4gICAgbmdTcmM9XCIuL2ljX2Nsb3NlLnN2Z1wiXG4gICAgaGVpZ2h0PVwiMjRcIiB3aWR0aD1cIjI0XCIgYWx0PVwiXCIvPmAsXG4gIHN0eWxlczogW2BcbiAgICBpbWcge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgfVxuXG4gICAgLmJpZyB7XG4gICAgICB3aWR0aDogMjVweDtcbiAgICAgIGhlaWdodDogMjVweDtcbiAgICB9XG5cbiAgICAucmFuZ2VfZGF0ZSB7XG4gICAgICByaWdodDogLTY1cHg7XG4gICAgICB0b3A6IDE1cHg7XG4gICAgfVxuXG4gICAgLnN0YW5kYXJkIHtcbiAgICAgIHJpZ2h0OiAtMjBweDtcbiAgICAgIHRvcDogNDBweDtcbiAgICB9XG4gIGBdLFxuICBpbXBvcnRzOiBbXG4gICAgTmdDbGFzcyxcbiAgICBOZ09wdGltaXplZEltYWdlXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQ2xlYXJWYWx1ZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGNsYXNzTmFtZSE6IHN0cmluZztcbiAgQElucHV0KCkgYWRkaXRpb25hbENsYXNzITogc3RyaW5nO1xuICBAT3V0cHV0KCkgcmVzZXRWYWx1ZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xufVxuIl19
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import { ReactiveFormsModule } from "@angular/forms";
|
|
3
|
-
import { NgClass, NgIf } from "@angular/common";
|
|
4
|
-
import { TranslateModule } from "@ngx-translate/core";
|
|
5
|
-
import { MatFormFieldModule } from "@angular/material/form-field";
|
|
6
|
-
import { MatDatepickerModule } from "@angular/material/datepicker";
|
|
7
|
-
import { MatInput } from "@angular/material/input";
|
|
8
|
-
import { MatTooltip } from "@angular/material/tooltip";
|
|
9
|
-
import { MatIconModule } from "@angular/material/icon";
|
|
10
|
-
import { DateMaskDirective } from "../../directives/date-mask.directive";
|
|
11
|
-
import { GenerateErrorMessagesPipe } from "../../pipes/generate-error-messages.pipe";
|
|
12
|
-
import { IconButtonComponent } from "../icon-button/icon-button.component";
|
|
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
|
-
import * as i5 from "@angular/material/datepicker";
|
|
19
|
-
import * as i6 from "@angular/material/icon";
|
|
20
|
-
export class DatePickerComponent {
|
|
21
|
-
constructor(inputService) {
|
|
22
|
-
this.inputService = inputService;
|
|
23
|
-
this.label = '';
|
|
24
|
-
this.required = false;
|
|
25
|
-
this.pastDatesDisabled = false;
|
|
26
|
-
this.hintText = '';
|
|
27
|
-
this.placeholder = 'MM/DD/YYYY';
|
|
28
|
-
this.minDate = null;
|
|
29
|
-
this.clearable = false;
|
|
30
|
-
this.submit = false;
|
|
31
|
-
this.valueChangeEmitter = new EventEmitter();
|
|
32
|
-
this.isOpen = false;
|
|
33
|
-
this.focused = false;
|
|
34
|
-
this.today = new Date();
|
|
35
|
-
// Filter to disable past dates
|
|
36
|
-
this.dateFilter = (date) => {
|
|
37
|
-
if (this.pastDatesDisabled) {
|
|
38
|
-
const today = this.today;
|
|
39
|
-
return date ? date >= today : false;
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
return true;
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
this.customErrorStateMatcher = {
|
|
46
|
-
isErrorState: (control, form) => {
|
|
47
|
-
return !!(control && control.invalid && this.submit);
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
this.ngControl = this.inputService.injectNgControl();
|
|
51
|
-
}
|
|
52
|
-
emitChange() {
|
|
53
|
-
if (!this.valueChangeEmit) {
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
this.valueChangeEmitter.emit();
|
|
57
|
-
}
|
|
58
|
-
clickForFocusOut() {
|
|
59
|
-
setTimeout(() => {
|
|
60
|
-
this.inputElement.nativeElement.focus();
|
|
61
|
-
this.inputElement.nativeElement.blur();
|
|
62
|
-
}, 120);
|
|
63
|
-
}
|
|
64
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatePickerComponent, deps: [{ token: i1.InputService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
65
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DatePickerComponent, isStandalone: true, selector: "i-tech-date-picker", inputs: { label: "label", defaultPatternKey: "defaultPatternKey", required: "required", pastDatesDisabled: "pastDatesDisabled", hintText: "hintText", placeholder: "placeholder", iconPrefix: "iconPrefix", iconPrefixSvg: "iconPrefixSvg", iconPrefixTooltip: "iconPrefixTooltip", iconPrefixColor: "iconPrefixColor", iconPrefixVariant: "iconPrefixVariant", valueChangeEmit: "valueChangeEmit", minDate: "minDate", clearable: "clearable", submit: "submit" }, outputs: { valueChangeEmitter: "valueChangeEmitter" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<div class=\"flex_column relative mat-date-range-input\" *ngIf=\"ngControl\" [ngClass]=\"{'check_requirements': submit}\">\n <div class=\"w-100\">\n <mat-label [ngClass]=\"{\n 'readonly-color' : ngControl.control.disabled,\n 'invalid-label-color': !!(ngControl.control.errors && submit)\n }\">\n {{ label | translate }}\n </mat-label>\n <span *ngIf=\"required\" class=\"required-input\" [ngClass]=\"{'readonly-color' : ngControl.control.disabled}\">*</span>\n </div>\n <mat-form-field appearance=\"outline\" [ngClass]=\"{'opened_calendar': isOpen}\"\n [class.readonly-field]=\"ngControl.control.disabled\">\n <input matInput #inputElement\n type=\"text\"\n [formControl]=\"ngControl.control\"\n [placeholder]=\"placeholder | translate\"\n [min]=\"minDate\"\n dateMask\n [matDatepicker]=\"datePicker\"\n [errorStateMatcher]=\"customErrorStateMatcher\"\n [matDatepickerFilter]=\"dateFilter\"\n (focus)=\"focused = true\"\n (click)=\"datePicker.open();\"\n (dateChange)=\"emitChange()\"\n >\n\n <mat-icon *ngIf=\"iconPrefix\"\n matPrefix\n [matTooltip]=\"((iconPrefixTooltip || '') | translate)\"\n [style.color]=\"iconPrefixColor\"\n >{{ iconPrefix }}\n </mat-icon>\n\n <mat-icon *ngIf=\"iconPrefixSvg\"\n matPrefix\n [matTooltip]=\"((iconPrefixTooltip || '') | translate)\"\n [svgIcon]=\"iconPrefixSvg\"\n ></mat-icon>\n\n <app-icon-button\n *ngIf=\"clearable && !ngControl.control.disabled && !!ngControl.control.value\"\n iconName=\"cancel\"\n matSuffix\n [ngClass]=\"ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\n (click)=\"$event.stopPropagation();$event.preventDefault();ngControl.control.reset(null);\"\n >\n </app-icon-button>\n\n <i-tech-icon-button matSuffix\n [iconName]=\"'date_range'\"\n [disabled]=\"ngControl.control.disabled\"\n (click)=\"datePicker.open()\"\n [ngClass]=\"ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\n ></i-tech-icon-button>\n\n <mat-datepicker #datePicker (closed)=\"isOpen = false;clickForFocusOut()\"\n (opened)=\"isOpen = true;focused = true\"></mat-datepicker>\n\n <!-- Error Messages -->\n <mat-error *ngIf=\"!!(ngControl.control.errors && submit)\">\n {{ ngControl.control | generateErrorMessages : label : defaultPatternKey }}\n </mat-error>\n\n <!-- Helper Text -->\n <mat-hint *ngIf=\"!(!!(ngControl.control.errors && submit)) && hintText\"\n [ngClass]=\"{'readonly-color' : ngControl.control.disabled}\"\n >\n {{ hintText | translate }}\n </mat-hint>\n\n </mat-form-field>\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { 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"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i5.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i5.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "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: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: DateMaskDirective, selector: "[dateMask]", inputs: ["maskType", "matDatepicker", "rangeFormControl"] }, { kind: "pipe", type: GenerateErrorMessagesPipe, name: "generateErrorMessages" }, { kind: "component", type: IconButtonComponent, selector: "i-tech-icon-button", inputs: ["size", "type", "iconSvg", "iconName", "tooltip", "disabled"], outputs: ["buttonClick"] }] }); }
|
|
66
|
-
}
|
|
67
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
68
|
-
type: Component,
|
|
69
|
-
args: [{ selector: 'i-tech-date-picker', imports: [
|
|
70
|
-
NgClass, NgIf,
|
|
71
|
-
TranslateModule,
|
|
72
|
-
ReactiveFormsModule,
|
|
73
|
-
MatFormFieldModule,
|
|
74
|
-
MatDatepickerModule,
|
|
75
|
-
MatInput,
|
|
76
|
-
MatTooltip,
|
|
77
|
-
MatIconModule,
|
|
78
|
-
DateMaskDirective,
|
|
79
|
-
GenerateErrorMessagesPipe, IconButtonComponent
|
|
80
|
-
], standalone: true, template: "<div class=\"flex_column relative mat-date-range-input\" *ngIf=\"ngControl\" [ngClass]=\"{'check_requirements': submit}\">\n <div class=\"w-100\">\n <mat-label [ngClass]=\"{\n 'readonly-color' : ngControl.control.disabled,\n 'invalid-label-color': !!(ngControl.control.errors && submit)\n }\">\n {{ label | translate }}\n </mat-label>\n <span *ngIf=\"required\" class=\"required-input\" [ngClass]=\"{'readonly-color' : ngControl.control.disabled}\">*</span>\n </div>\n <mat-form-field appearance=\"outline\" [ngClass]=\"{'opened_calendar': isOpen}\"\n [class.readonly-field]=\"ngControl.control.disabled\">\n <input matInput #inputElement\n type=\"text\"\n [formControl]=\"ngControl.control\"\n [placeholder]=\"placeholder | translate\"\n [min]=\"minDate\"\n dateMask\n [matDatepicker]=\"datePicker\"\n [errorStateMatcher]=\"customErrorStateMatcher\"\n [matDatepickerFilter]=\"dateFilter\"\n (focus)=\"focused = true\"\n (click)=\"datePicker.open();\"\n (dateChange)=\"emitChange()\"\n >\n\n <mat-icon *ngIf=\"iconPrefix\"\n matPrefix\n [matTooltip]=\"((iconPrefixTooltip || '') | translate)\"\n [style.color]=\"iconPrefixColor\"\n >{{ iconPrefix }}\n </mat-icon>\n\n <mat-icon *ngIf=\"iconPrefixSvg\"\n matPrefix\n [matTooltip]=\"((iconPrefixTooltip || '') | translate)\"\n [svgIcon]=\"iconPrefixSvg\"\n ></mat-icon>\n\n <app-icon-button\n *ngIf=\"clearable && !ngControl.control.disabled && !!ngControl.control.value\"\n iconName=\"cancel\"\n matSuffix\n [ngClass]=\"ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\n (click)=\"$event.stopPropagation();$event.preventDefault();ngControl.control.reset(null);\"\n >\n </app-icon-button>\n\n <i-tech-icon-button matSuffix\n [iconName]=\"'date_range'\"\n [disabled]=\"ngControl.control.disabled\"\n (click)=\"datePicker.open()\"\n [ngClass]=\"ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\n ></i-tech-icon-button>\n\n <mat-datepicker #datePicker (closed)=\"isOpen = false;clickForFocusOut()\"\n (opened)=\"isOpen = true;focused = true\"></mat-datepicker>\n\n <!-- Error Messages -->\n <mat-error *ngIf=\"!!(ngControl.control.errors && submit)\">\n {{ ngControl.control | generateErrorMessages : label : defaultPatternKey }}\n </mat-error>\n\n <!-- Helper Text -->\n <mat-hint *ngIf=\"!(!!(ngControl.control.errors && submit)) && hintText\"\n [ngClass]=\"{'readonly-color' : ngControl.control.disabled}\"\n >\n {{ hintText | translate }}\n </mat-hint>\n\n </mat-form-field>\n</div>\n" }]
|
|
81
|
-
}], ctorParameters: () => [{ type: i1.InputService }], propDecorators: { label: [{
|
|
82
|
-
type: Input
|
|
83
|
-
}], defaultPatternKey: [{
|
|
84
|
-
type: Input
|
|
85
|
-
}], required: [{
|
|
86
|
-
type: Input
|
|
87
|
-
}], pastDatesDisabled: [{
|
|
88
|
-
type: Input
|
|
89
|
-
}], hintText: [{
|
|
90
|
-
type: Input
|
|
91
|
-
}], placeholder: [{
|
|
92
|
-
type: Input
|
|
93
|
-
}], iconPrefix: [{
|
|
94
|
-
type: Input
|
|
95
|
-
}], iconPrefixSvg: [{
|
|
96
|
-
type: Input
|
|
97
|
-
}], iconPrefixTooltip: [{
|
|
98
|
-
type: Input
|
|
99
|
-
}], iconPrefixColor: [{
|
|
100
|
-
type: Input
|
|
101
|
-
}], iconPrefixVariant: [{
|
|
102
|
-
type: Input
|
|
103
|
-
}], valueChangeEmit: [{
|
|
104
|
-
type: Input
|
|
105
|
-
}], minDate: [{
|
|
106
|
-
type: Input
|
|
107
|
-
}], clearable: [{
|
|
108
|
-
type: Input
|
|
109
|
-
}], submit: [{
|
|
110
|
-
type: Input
|
|
111
|
-
}], inputElement: [{
|
|
112
|
-
type: ViewChild,
|
|
113
|
-
args: ['inputElement']
|
|
114
|
-
}], valueChangeEmitter: [{
|
|
115
|
-
type: Output
|
|
116
|
-
}] } });
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQW1CLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDckYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7O0FBbUIzRSxNQUFN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Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUNxQixZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ2Ysa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2xOYW1lLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBJbnB1dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pbnB1dC5zZXJ2aWNlJztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nSWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlclwiO1xuaW1wb3J0IHsgTWF0SW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXRcIjtcbmltcG9ydCB7IE1hdFRvb2x0aXAgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcFwiO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pY29uXCI7XG5pbXBvcnQgeyBEYXRlTWFza0RpcmVjdGl2ZSB9IGZyb20gXCIuLi8uLi9kaXJlY3RpdmVzL2RhdGUtbWFzay5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IEdlbmVyYXRlRXJyb3JNZXNzYWdlc1BpcGUgfSBmcm9tIFwiLi4vLi4vcGlwZXMvZ2VuZXJhdGUtZXJyb3ItbWVzc2FnZXMucGlwZVwiO1xuaW1wb3J0IHsgSWNvbkJ1dHRvbkNvbXBvbmVudCB9IGZyb20gXCIuLi9pY29uLWJ1dHRvbi9pY29uLWJ1dHRvbi5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaS10ZWNoLWRhdGUtcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW1xuICAgIE5nQ2xhc3MsIE5nSWYsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gICAgTWF0SW5wdXQsXG4gICAgTWF0VG9vbHRpcCxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIERhdGVNYXNrRGlyZWN0aXZlLFxuICAgIEdlbmVyYXRlRXJyb3JNZXNzYWdlc1BpcGUsIEljb25CdXR0b25Db21wb25lbnRcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlUGlja2VyQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBsYWJlbCA9ICcnO1xuICAgIEBJbnB1dCgpIGRlZmF1bHRQYXR0ZXJuS2V5ITogc3RyaW5nIDtcbiAgICBASW5wdXQoKSByZXF1aXJlZCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHBhc3REYXRlc0Rpc2FibGVkID0gZmFsc2U7XG4gICAgQElucHV0KCkgaGludFRleHQgPSAnJztcbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICdNTS9ERC9ZWVlZJztcbiAgICBASW5wdXQoKSBpY29uUHJlZml4Pzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGljb25QcmVmaXhTdmc/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgaWNvblByZWZpeFRvb2x0aXA/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgaWNvblByZWZpeENvbG9yPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGljb25QcmVmaXhWYXJpYW50Pzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHZhbHVlQ2hhbmdlRW1pdD86IGJvb2xlYW47XG4gICAgQElucHV0KCkgbWluRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIGNsZWFyYWJsZSA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgc3VibWl0ID0gZmFsc2U7XG4gICAgQFZpZXdDaGlsZCgnaW5wdXRFbGVtZW50JykgaW5wdXRFbGVtZW50ITogRWxlbWVudFJlZjtcbiAgICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2VFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgaXNPcGVuID0gZmFsc2U7XG4gICAgZm9jdXNlZCA9IGZhbHNlO1xuXG4gICAgbmdDb250cm9sOiBGb3JtQ29udHJvbE5hbWU7XG5cbiAgICB0b2RheTogRGF0ZSA9IG5ldyBEYXRlKCk7XG5cbiAgICAvLyBGaWx0ZXIgdG8gZGlzYWJsZSBwYXN0IGRhdGVzXG4gICAgZGF0ZUZpbHRlciA9IChkYXRlOiBEYXRlIHwgbnVsbCk6IGJvb2xlYW4gPT4ge1xuICAgICAgaWYgKHRoaXMucGFzdERhdGVzRGlzYWJsZWQpIHtcbiAgICAgICAgY29uc3QgdG9kYXkgPSB0aGlzLnRvZGF5O1xuICAgICAgICByZXR1cm4gZGF0ZSA/IGRhdGUgPj0gdG9kYXkgOiBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGlucHV0U2VydmljZTogSW5wdXRTZXJ2aWNlKSB7XG4gICAgICB0aGlzLm5nQ29udHJvbCA9IHRoaXMuaW5wdXRTZXJ2aWNlLmluamVjdE5nQ29udHJvbCgpIGFzIEZvcm1Db250cm9sTmFtZTtcbiAgICB9XG5cbiAgICBlbWl0Q2hhbmdlKCk6IHZvaWQge1xuICAgICAgaWYgKCF0aGlzLnZhbHVlQ2hhbmdlRW1pdCkgeyByZXR1cm47IH1cbiAgICAgIHRoaXMudmFsdWVDaGFuZ2VFbWl0dGVyLmVtaXQoKTtcbiAgICB9XG5cbiAgICBjbGlja0ZvckZvY3VzT3V0KCk6IHZvaWQge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgICB9LDEyMClcbiAgICB9XG5cbiAgICBjdXN0b21FcnJvclN0YXRlTWF0Y2hlciA9IHtcbiAgICAgIGlzRXJyb3JTdGF0ZTogKGNvbnRyb2w6IGFueSwgZm9ybTogYW55KTogYm9vbGVhbiA9PiB7XG4gICAgICAgIHJldHVybiAhIShjb250cm9sICYmIGNvbnRyb2wuaW52YWxpZCAmJiB0aGlzLnN1Ym1pdCk7XG4gICAgICB9XG4gICAgfTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4X2NvbHVtbiByZWxhdGl2ZSBtYXQtZGF0ZS1yYW5nZS1pbnB1dFwiICpuZ0lmPVwibmdDb250cm9sXCIgW25nQ2xhc3NdPVwieydjaGVja19yZXF1aXJlbWVudHMnOiBzdWJtaXR9XCI+XG4gIDxkaXYgY2xhc3M9XCJ3LTEwMFwiPlxuICAgIDxtYXQtbGFiZWwgW25nQ2xhc3NdPVwie1xuICAgICAgICAncmVhZG9ubHktY29sb3InIDogbmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWQsXG4gICAgICAgICdpbnZhbGlkLWxhYmVsLWNvbG9yJzogISEobmdDb250cm9sLmNvbnRyb2wuZXJyb3JzICYmIHN1Ym1pdClcbiAgICAgICAgfVwiPlxuICAgICAge3sgbGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICA8L21hdC1sYWJlbD5cbiAgICA8c3BhbiAqbmdJZj1cInJlcXVpcmVkXCIgY2xhc3M9XCJyZXF1aXJlZC1pbnB1dFwiIFtuZ0NsYXNzXT1cInsncmVhZG9ubHktY29sb3InIDogbmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWR9XCI+Kjwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIFtuZ0NsYXNzXT1cInsnb3BlbmVkX2NhbGVuZGFyJzogaXNPcGVufVwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MucmVhZG9ubHktZmllbGRdPVwibmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWRcIj5cbiAgICA8aW5wdXQgbWF0SW5wdXQgI2lucHV0RWxlbWVudFxuICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJuZ0NvbnRyb2wuY29udHJvbFwiXG4gICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlciB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgIFttaW5dPVwibWluRGF0ZVwiXG4gICAgICAgICAgIGRhdGVNYXNrXG4gICAgICAgICAgIFttYXREYXRlcGlja2VyXT1cImRhdGVQaWNrZXJcIlxuICAgICAgICAgICBbZXJyb3JTdGF0ZU1hdGNoZXJdPVwiY3VzdG9tRXJyb3JTdGF0ZU1hdGNoZXJcIlxuICAgICAgICAgICBbbWF0RGF0ZXBpY2tlckZpbHRlcl09XCJkYXRlRmlsdGVyXCJcbiAgICAgICAgICAgKGZvY3VzKT1cImZvY3VzZWQgPSB0cnVlXCJcbiAgICAgICAgICAgKGNsaWNrKT1cImRhdGVQaWNrZXIub3BlbigpO1wiXG4gICAgICAgICAgIChkYXRlQ2hhbmdlKT1cImVtaXRDaGFuZ2UoKVwiXG4gICAgPlxuXG4gICAgPG1hdC1pY29uICpuZ0lmPVwiaWNvblByZWZpeFwiXG4gICAgICAgICAgICAgIG1hdFByZWZpeFxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCIoKGljb25QcmVmaXhUb29sdGlwIHx8ICcnKSB8IHRyYW5zbGF0ZSlcIlxuICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiaWNvblByZWZpeENvbG9yXCJcbiAgICA+e3sgaWNvblByZWZpeCB9fVxuICAgIDwvbWF0LWljb24+XG5cbiAgICA8bWF0LWljb24gKm5nSWY9XCJpY29uUHJlZml4U3ZnXCJcbiAgICAgICAgICAgICAgbWF0UHJlZml4XG4gICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIigoaWNvblByZWZpeFRvb2x0aXAgfHwgJycpIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgIFtzdmdJY29uXT1cImljb25QcmVmaXhTdmdcIlxuICAgID48L21hdC1pY29uPlxuXG4gICAgPGFwcC1pY29uLWJ1dHRvblxuICAgICAgKm5nSWY9XCJjbGVhcmFibGUgJiYgIW5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkICYmICEhbmdDb250cm9sLmNvbnRyb2wudmFsdWVcIlxuICAgICAgaWNvbk5hbWU9XCJjYW5jZWxcIlxuICAgICAgbWF0U3VmZml4XG4gICAgICBbbmdDbGFzc109XCJuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZCA/ICdyZWFkb25seS1jb2xvcicgOiAnZGVmYXVsdC1mb3JtLWljb24tY29sb3InXCJcbiAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7JGV2ZW50LnByZXZlbnREZWZhdWx0KCk7bmdDb250cm9sLmNvbnRyb2wucmVzZXQobnVsbCk7XCJcbiAgICA+XG4gICAgPC9hcHAtaWNvbi1idXR0b24+XG5cbiAgICA8aS10ZWNoLWljb24tYnV0dG9uIG1hdFN1ZmZpeFxuICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25OYW1lXT1cIidkYXRlX3JhbmdlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRhdGVQaWNrZXIub3BlbigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkID8gJ3JlYWRvbmx5LWNvbG9yJyA6ICdkZWZhdWx0LWZvcm0taWNvbi1jb2xvcidcIlxuICAgID48L2ktdGVjaC1pY29uLWJ1dHRvbj5cblxuICAgIDxtYXQtZGF0ZXBpY2tlciAjZGF0ZVBpY2tlciAoY2xvc2VkKT1cImlzT3BlbiA9IGZhbHNlO2NsaWNrRm9yRm9jdXNPdXQoKVwiXG4gICAgICAgICAgICAgICAgICAgIChvcGVuZWQpPVwiaXNPcGVuID0gdHJ1ZTtmb2N1c2VkID0gdHJ1ZVwiPjwvbWF0LWRhdGVwaWNrZXI+XG5cbiAgICA8IS0tIEVycm9yIE1lc3NhZ2VzIC0tPlxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCIhIShuZ0NvbnRyb2wuY29udHJvbC5lcnJvcnMgJiYgc3VibWl0KVwiPlxuICAgICAge3sgbmdDb250cm9sLmNvbnRyb2wgfCBnZW5lcmF0ZUVycm9yTWVzc2FnZXMgOiBsYWJlbCA6IGRlZmF1bHRQYXR0ZXJuS2V5IH19XG4gICAgPC9tYXQtZXJyb3I+XG5cbiAgICA8IS0tIEhlbHBlciBUZXh0IC0tPlxuICAgIDxtYXQtaGludCAqbmdJZj1cIiEoISEobmdDb250cm9sLmNvbnRyb2wuZXJyb3JzICYmIHN1Ym1pdCkpICYmIGhpbnRUZXh0XCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydyZWFkb25seS1jb2xvcicgOiBuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZH1cIlxuICAgID5cbiAgICAgIHt7IGhpbnRUZXh0IHwgdHJhbnNsYXRlIH19XG4gICAgPC9tYXQtaGludD5cblxuICA8L21hdC1mb3JtLWZpZWxkPlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import { MatDatepickerModule } from "@angular/material/datepicker";
|
|
3
|
-
import { ReactiveFormsModule, UntypedFormControl, UntypedFormGroup, Validators } from "@angular/forms";
|
|
4
|
-
import { MatFormFieldModule } from "@angular/material/form-field";
|
|
5
|
-
import { NgClass, NgIf } from "@angular/common";
|
|
6
|
-
import { TranslateModule } from "@ngx-translate/core";
|
|
7
|
-
import { IconButtonComponent } from "../icon-button/icon-button.component";
|
|
8
|
-
import { DateMaskDirective } from "../../directives/date-mask.directive";
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "@angular/material/form-field";
|
|
11
|
-
import * as i2 from "@angular/forms";
|
|
12
|
-
import * as i3 from "@angular/material/datepicker";
|
|
13
|
-
import * as i4 from "@ngx-translate/core";
|
|
14
|
-
export class DateRangeDatepickerComponent {
|
|
15
|
-
constructor() {
|
|
16
|
-
this.submit = false;
|
|
17
|
-
this.clearValue = true;
|
|
18
|
-
this.errorMessage = '';
|
|
19
|
-
this.hintText = 'MM/DD/YYYY - MM/DD/YYYY';
|
|
20
|
-
this.resetForm = new EventEmitter();
|
|
21
|
-
this.selectionChange = new EventEmitter();
|
|
22
|
-
this.isOpen = false;
|
|
23
|
-
this.isSelectingRange = false;
|
|
24
|
-
this.dateRangeForm = new UntypedFormGroup({
|
|
25
|
-
startDate: new UntypedFormControl('', [Validators.maxLength(10)]),
|
|
26
|
-
endDate: new UntypedFormControl('', [Validators.maxLength(10)]),
|
|
27
|
-
});
|
|
28
|
-
this.customErrorStateMatcher = {
|
|
29
|
-
isErrorState: (control, form) => {
|
|
30
|
-
return !!(control && control.invalid && this.submit);
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
ngAfterViewInit() {
|
|
35
|
-
setTimeout(() => {
|
|
36
|
-
if (this.defaultValue?.length) {
|
|
37
|
-
this.dateRangeForm.patchValue({
|
|
38
|
-
startDate: this.defaultValue[0],
|
|
39
|
-
endDate: this.defaultValue[1]
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
ngOnChanges(changes) {
|
|
45
|
-
setTimeout(() => {
|
|
46
|
-
if (changes['value']?.currentValue && !(changes['value'].currentValue[0])) {
|
|
47
|
-
if (this.picker) {
|
|
48
|
-
this.dateRangeForm.reset();
|
|
49
|
-
this.picker.select(null);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
else if (changes['value'] && this.value?.length) {
|
|
53
|
-
this.dateRangeForm.setValue({
|
|
54
|
-
startDate: new Date(this.value[0] || ''),
|
|
55
|
-
endDate: new Date(this.value[1] || '')
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
}, 10);
|
|
59
|
-
}
|
|
60
|
-
clickForFocusOut() {
|
|
61
|
-
setTimeout(() => {
|
|
62
|
-
this.min.nativeElement.focus();
|
|
63
|
-
this.min.nativeElement.blur();
|
|
64
|
-
}, 120);
|
|
65
|
-
}
|
|
66
|
-
setDate(value, element) {
|
|
67
|
-
const startDate = value[0];
|
|
68
|
-
const endDate = value[1];
|
|
69
|
-
// If this is the start date being selected (matStartDate input)
|
|
70
|
-
if (element === this.min?.nativeElement) {
|
|
71
|
-
// We're starting a new selection process
|
|
72
|
-
this.isSelectingRange = true;
|
|
73
|
-
// Don't emit any event yet
|
|
74
|
-
}
|
|
75
|
-
// If this is the end date being selected (matEndDate input)
|
|
76
|
-
else if (element === this.max?.nativeElement) {
|
|
77
|
-
// We're completing a selection
|
|
78
|
-
this.isSelectingRange = false;
|
|
79
|
-
if (startDate === null && endDate === null) {
|
|
80
|
-
this.dateRangeForm.reset();
|
|
81
|
-
this.selectionChange.emit(value);
|
|
82
|
-
}
|
|
83
|
-
else if (startDate && endDate) {
|
|
84
|
-
this.selectionChange.emit(value);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
element.blur();
|
|
88
|
-
}
|
|
89
|
-
keyEventHandler(event, value, element) {
|
|
90
|
-
if (event.code === 'Enter') {
|
|
91
|
-
this.setDate(value, element);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateRangeDatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
95
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DateRangeDatepickerComponent, isStandalone: true, selector: "i-tech-mat-range-datepicker", inputs: { label: "label", placeholder: "placeholder", value: "value", defaultValue: "defaultValue", key: "key", submit: "submit", clearValue: "clearValue", errorMessage: "errorMessage", onePlaceholder: "onePlaceholder", hintText: "hintText" }, outputs: { resetForm: "resetForm", selectionChange: "selectionChange" }, viewQueries: [{ propertyName: "picker", first: true, predicate: ["picker"], descendants: true }, { propertyName: "min", first: true, predicate: ["min"], descendants: true }, { propertyName: "max", first: true, predicate: ["max"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"flex_column relative mat-date-range-input\"\n [formGroup]=\"dateRangeForm\"\n>\n <div class=\"w-100\" *ngIf=\"label\">\n <mat-label>\n {{ (label || '') | translate }}\n </mat-label>\n </div>\n <mat-form-field appearance=\"outline\" [ngClass]=\"{'opened_calendar': isOpen}\">\n <mat-date-range-input [rangePicker]=\"picker\">\n <input formControlName=\"startDate\"\n [placeholder]=\" (placeholder ? placeholder[0] : 'Start Date')\"\n [title]=\"key ? key.title : 'Date'\"\n [attr.data-accessKey]=\"key ? key.start : 'minStartDate'\"\n [attr.data-parentKey]=\"key ? (key.start + '_' + key.end) : 'minStartDate_maxEndDate'\"\n matStartDate #min\n dateMask\n [errorStateMatcher]=\"customErrorStateMatcher\"\n [rangeFormControl]=\"dateRangeForm.controls['startDate']\"\n (keydown)=\"keyEventHandler($event,[min.value, max.value || null],min)\"\n (dateChange)=\"setDate([min.value, max.value || null],min)\">\n <input formControlName=\"endDate\"\n [placeholder]=\"(placeholder ? placeholder[1] : 'End Date')\"\n [title]=\"key ? key.title : 'Date'\"\n [attr.data-accessKey]=\"key ? key.end : 'maxEndDate'\"\n [attr.data-parentKey]=\"key ? (key.start + '_' + key.end) : 'minStartDate_maxEndDate'\"\n matEndDate #max\n dateMask\n [errorStateMatcher]=\"customErrorStateMatcher\"\n [rangeFormControl]=\"dateRangeForm.controls['endDate']\"\n (keydown)=\"keyEventHandler($event,[min.value, max.value || null],max)\"\n (dateChange)=\"setDate([min.value, max.value || null],max)\">\n </mat-date-range-input>\n <i-tech-icon-button matSuffix\n [iconName]=\"'cancel'\"\n (buttonClick)=\"setDate([null,null], max)\"\n class=\"default-form-icon-color\"\n *ngIf=\"dateRangeForm.get('startDate')?.value && this.dateRangeForm.get('endDate')?.value\"\n ></i-tech-icon-button>\n <i-tech-icon-button\n matSuffix\n [iconName]=\"'date_range'\"\n (buttonClick)=\"picker.open()\"\n class=\"default-form-icon-color\"\n ></i-tech-icon-button>\n <mat-date-range-picker\n #picker\n (closed)=\"isOpen = false;clickForFocusOut()\"\n (opened)=\"isOpen = true\"\n ></mat-date-range-picker>\n <mat-hint *ngIf=\"hintText && !errorMessage\">{{ hintText }}</mat-hint>\n </mat-form-field>\n</div>\n", dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i3.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i3.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i3.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i3.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "component", type: IconButtonComponent, selector: "i-tech-icon-button", inputs: ["size", "type", "iconSvg", "iconName", "tooltip", "disabled"], outputs: ["buttonClick"] }, { kind: "directive", type: DateMaskDirective, selector: "[dateMask]", inputs: ["maskType", "matDatepicker", "rangeFormControl"] }] }); }
|
|
96
|
-
}
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateRangeDatepickerComponent, decorators: [{
|
|
98
|
-
type: Component,
|
|
99
|
-
args: [{ selector: 'i-tech-mat-range-datepicker', imports: [
|
|
100
|
-
MatFormFieldModule,
|
|
101
|
-
ReactiveFormsModule,
|
|
102
|
-
MatDatepickerModule,
|
|
103
|
-
NgClass, NgIf,
|
|
104
|
-
TranslateModule,
|
|
105
|
-
IconButtonComponent, DateMaskDirective
|
|
106
|
-
], standalone: true, template: "<div class=\"flex_column relative mat-date-range-input\"\n [formGroup]=\"dateRangeForm\"\n>\n <div class=\"w-100\" *ngIf=\"label\">\n <mat-label>\n {{ (label || '') | translate }}\n </mat-label>\n </div>\n <mat-form-field appearance=\"outline\" [ngClass]=\"{'opened_calendar': isOpen}\">\n <mat-date-range-input [rangePicker]=\"picker\">\n <input formControlName=\"startDate\"\n [placeholder]=\" (placeholder ? placeholder[0] : 'Start Date')\"\n [title]=\"key ? key.title : 'Date'\"\n [attr.data-accessKey]=\"key ? key.start : 'minStartDate'\"\n [attr.data-parentKey]=\"key ? (key.start + '_' + key.end) : 'minStartDate_maxEndDate'\"\n matStartDate #min\n dateMask\n [errorStateMatcher]=\"customErrorStateMatcher\"\n [rangeFormControl]=\"dateRangeForm.controls['startDate']\"\n (keydown)=\"keyEventHandler($event,[min.value, max.value || null],min)\"\n (dateChange)=\"setDate([min.value, max.value || null],min)\">\n <input formControlName=\"endDate\"\n [placeholder]=\"(placeholder ? placeholder[1] : 'End Date')\"\n [title]=\"key ? key.title : 'Date'\"\n [attr.data-accessKey]=\"key ? key.end : 'maxEndDate'\"\n [attr.data-parentKey]=\"key ? (key.start + '_' + key.end) : 'minStartDate_maxEndDate'\"\n matEndDate #max\n dateMask\n [errorStateMatcher]=\"customErrorStateMatcher\"\n [rangeFormControl]=\"dateRangeForm.controls['endDate']\"\n (keydown)=\"keyEventHandler($event,[min.value, max.value || null],max)\"\n (dateChange)=\"setDate([min.value, max.value || null],max)\">\n </mat-date-range-input>\n <i-tech-icon-button matSuffix\n [iconName]=\"'cancel'\"\n (buttonClick)=\"setDate([null,null], max)\"\n class=\"default-form-icon-color\"\n *ngIf=\"dateRangeForm.get('startDate')?.value && this.dateRangeForm.get('endDate')?.value\"\n ></i-tech-icon-button>\n <i-tech-icon-button\n matSuffix\n [iconName]=\"'date_range'\"\n (buttonClick)=\"picker.open()\"\n class=\"default-form-icon-color\"\n ></i-tech-icon-button>\n <mat-date-range-picker\n #picker\n (closed)=\"isOpen = false;clickForFocusOut()\"\n (opened)=\"isOpen = true\"\n ></mat-date-range-picker>\n <mat-hint *ngIf=\"hintText && !errorMessage\">{{ hintText }}</mat-hint>\n </mat-form-field>\n</div>\n" }]
|
|
107
|
-
}], propDecorators: { label: [{
|
|
108
|
-
type: Input
|
|
109
|
-
}], placeholder: [{
|
|
110
|
-
type: Input
|
|
111
|
-
}], value: [{
|
|
112
|
-
type: Input
|
|
113
|
-
}], defaultValue: [{
|
|
114
|
-
type: Input
|
|
115
|
-
}], key: [{
|
|
116
|
-
type: Input
|
|
117
|
-
}], submit: [{
|
|
118
|
-
type: Input
|
|
119
|
-
}], clearValue: [{
|
|
120
|
-
type: Input
|
|
121
|
-
}], errorMessage: [{
|
|
122
|
-
type: Input
|
|
123
|
-
}], onePlaceholder: [{
|
|
124
|
-
type: Input
|
|
125
|
-
}], hintText: [{
|
|
126
|
-
type: Input
|
|
127
|
-
}], resetForm: [{
|
|
128
|
-
type: Output
|
|
129
|
-
}], selectionChange: [{
|
|
130
|
-
type: Output
|
|
131
|
-
}], picker: [{
|
|
132
|
-
type: ViewChild,
|
|
133
|
-
args: ['picker']
|
|
134
|
-
}], min: [{
|
|
135
|
-
type: ViewChild,
|
|
136
|
-
args: ['min']
|
|
137
|
-
}], max: [{
|
|
138
|
-
type: ViewChild,
|
|
139
|
-
args: ['max']
|
|
140
|
-
}] } });
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1kYXRlcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXJhbmdlLWRhdGVwaWNrZXIvZGF0ZS1yYW5nZS1kYXRlcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXJhbmdlLWRhdGVwaWNrZXIvZGF0ZS1yYW5nZS1kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBc0IsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7OztBQWV6RSxNQUFNLE9BQU8sNEJBQTRCO0lBYnpDO1FBbUJXLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBRWxCLGFBQVEsR0FBRyx5QkFBeUIsQ0FBQztRQUNwQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNwQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFJcEQsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUNmLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUV6QixrQkFBYSxHQUFHLElBQUksZ0JBQWdCLENBQUM7WUFDbkMsU0FBUyxFQUFFLElBQUksa0JBQWtCLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLE9BQU8sRUFBRSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNoRSxDQUFDLENBQUM7UUFvQ0gsNEJBQXVCLEdBQUc7WUFDeEIsWUFBWSxFQUFFLENBQUMsT0FBWSxFQUFFLElBQVMsRUFBVyxFQUFFO2dCQUNqRCxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2RCxDQUFDO1NBQ0YsQ0FBQztLQWtDSDtJQXhFQyxlQUFlO1FBQ2IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7b0JBQzVCLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztvQkFDL0IsT0FBTyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO2lCQUM5QixDQUFDLENBQUE7WUFDSixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxZQUFZLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUMxRSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBQzFCLENBQUM7WUFDSCxDQUFDO2lCQUFNLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO29CQUMxQixTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztpQkFDdkMsQ0FBQyxDQUFBO1lBQ0osQ0FBQztRQUNILENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUNSLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEMsQ0FBQyxFQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ1IsQ0FBQztJQVFELE9BQU8sQ0FBQyxLQUEyQixFQUFFLE9BQVk7UUFDL0MsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV6QixnRUFBZ0U7UUFDaEUsSUFBSSxPQUFPLEtBQUssSUFBSSxDQUFDLEdBQUcsRUFBRSxhQUFhLEVBQUUsQ0FBQztZQUN4Qyx5Q0FBeUM7WUFDekMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztZQUM3QiwyQkFBMkI7UUFDN0IsQ0FBQztRQUNELDREQUE0RDthQUN2RCxJQUFJLE9BQU8sS0FBSyxJQUFJLENBQUMsR0FBRyxFQUFFLGFBQWEsRUFBRSxDQUFDO1lBQzdDLCtCQUErQjtZQUMvQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1lBRTlCLElBQUksU0FBUyxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25DLENBQUM7aUJBQU0sSUFBSSxTQUFTLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25DLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBb0IsRUFBQyxLQUEyQixFQUFFLE9BQVk7UUFDNUUsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQzdCLENBQUM7SUFDSCxDQUFDOytHQTlGVSw0QkFBNEI7bUdBQTVCLDRCQUE0QixxcUJDL0J6QyxtaUZBcURBLDJDRC9CSSxrQkFBa0IsbWdCQUNsQixtQkFBbUIsbTJCQUNuQixtQkFBbUIsa25CQUNuQixPQUFPLG9GQUFFLElBQUksNEZBQ2IsZUFBZSw0RkFDZixtQkFBbUIsaUtBQUUsaUJBQWlCOzs0RkFJN0IsNEJBQTRCO2tCQWJ4QyxTQUFTOytCQUNFLDZCQUE2QixXQUU5Qjt3QkFDUCxrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixPQUFPLEVBQUUsSUFBSTt3QkFDYixlQUFlO3dCQUNmLG1CQUFtQixFQUFFLGlCQUFpQjtxQkFDdkMsY0FDVyxJQUFJOzhCQUdQLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ2MsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRO2dCQUNELEdBQUc7c0JBQXBCLFNBQVM7dUJBQUMsS0FBSztnQkFDRSxHQUFHO3NCQUFwQixTQUFTO3VCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlLCBNYXREYXRlUmFuZ2VQaWNrZXIgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlclwiO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xuaW1wb3J0IHsgTmdDbGFzcywgTmdJZiB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBJY29uQnV0dG9uQ29tcG9uZW50IH0gZnJvbSBcIi4uL2ljb24tYnV0dG9uL2ljb24tYnV0dG9uLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRGF0ZU1hc2tEaXJlY3RpdmUgfSBmcm9tIFwiLi4vLi4vZGlyZWN0aXZlcy9kYXRlLW1hc2suZGlyZWN0aXZlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ktdGVjaC1tYXQtcmFuZ2UtZGF0ZXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXJhbmdlLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBOZ0NsYXNzLCBOZ0lmLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBJY29uQnV0dG9uQ29tcG9uZW50LCBEYXRlTWFza0RpcmVjdGl2ZVxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERhdGVSYW5nZURhdGVwaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBsYWJlbD86IHN0cmluZztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI/OiBBcnJheTxzdHJpbmc+O1xuICBASW5wdXQoKSB2YWx1ZT86IEFycmF5PHN0cmluZyB8IG51bGw+O1xuICBASW5wdXQoKSBkZWZhdWx0VmFsdWU/OiBBcnJheTxEYXRlPjtcbiAgQElucHV0KCkga2V5Pzoge3N0YXJ0OiBzdHJpbmcsIGVuZDogc3RyaW5nLCB0aXRsZTogc3RyaW5nfTtcbiAgQElucHV0KCkgc3VibWl0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNsZWFyVmFsdWUgPSB0cnVlO1xuICBASW5wdXQoKSBlcnJvck1lc3NhZ2UgPSAnJztcbiAgQElucHV0KCkgb25lUGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGhpbnRUZXh0ID0gJ01NL0REL1lZWVkgLSBNTS9ERC9ZWVlZJztcbiAgQE91dHB1dCgpIHJlc2V0Rm9ybSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBWaWV3Q2hpbGQoJ3BpY2tlcicpIHBpY2tlciE6IE1hdERhdGVSYW5nZVBpY2tlcjxhbnk+O1xuICBAVmlld0NoaWxkKCdtaW4nKSBtaW4hOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdtYXgnKSBtYXghOiBFbGVtZW50UmVmO1xuICBpc09wZW4gPSBmYWxzZTtcbiAgaXNTZWxlY3RpbmdSYW5nZSA9IGZhbHNlO1xuXG4gIGRhdGVSYW5nZUZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XG4gICAgc3RhcnREYXRlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTApXSksXG4gICAgZW5kRGF0ZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDEwKV0pLFxuICB9KTtcblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5kZWZhdWx0VmFsdWU/Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLmRhdGVSYW5nZUZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgc3RhcnREYXRlOiB0aGlzLmRlZmF1bHRWYWx1ZVswXSxcbiAgICAgICAgICBlbmREYXRlOiB0aGlzLmRlZmF1bHRWYWx1ZVsxXVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoY2hhbmdlc1sndmFsdWUnXT8uY3VycmVudFZhbHVlICYmICEoY2hhbmdlc1sndmFsdWUnXS5jdXJyZW50VmFsdWVbMF0pKSB7XG4gICAgICAgIGlmICh0aGlzLnBpY2tlcikge1xuICAgICAgICAgIHRoaXMuZGF0ZVJhbmdlRm9ybS5yZXNldCgpO1xuICAgICAgICAgIHRoaXMucGlja2VyLnNlbGVjdChudWxsKVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGNoYW5nZXNbJ3ZhbHVlJ10gJiYgdGhpcy52YWx1ZT8ubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuZGF0ZVJhbmdlRm9ybS5zZXRWYWx1ZSh7XG4gICAgICAgICAgc3RhcnREYXRlOiBuZXcgRGF0ZSh0aGlzLnZhbHVlWzBdIHx8ICcnKSxcbiAgICAgICAgICBlbmREYXRlOiBuZXcgRGF0ZSh0aGlzLnZhbHVlWzFdIHx8ICcnKVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0sIDEwKVxuICB9XG5cbiAgY2xpY2tGb3JGb2N1c091dCgpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMubWluLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIHRoaXMubWluLm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgIH0sMTIwKVxuICB9XG5cbiAgY3VzdG9tRXJyb3JTdGF0ZU1hdGNoZXIgPSB7XG4gICAgaXNFcnJvclN0YXRlOiAoY29udHJvbDogYW55LCBmb3JtOiBhbnkpOiBib29sZWFuID0+IHtcbiAgICAgIHJldHVybiAhIShjb250cm9sICYmIGNvbnRyb2wuaW52YWxpZCAmJiB0aGlzLnN1Ym1pdCk7XG4gICAgfVxuICB9O1xuXG4gIHNldERhdGUodmFsdWU6IEFycmF5PHN0cmluZyB8IG51bGw+LCBlbGVtZW50OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBzdGFydERhdGUgPSB2YWx1ZVswXTtcbiAgICBjb25zdCBlbmREYXRlID0gdmFsdWVbMV07XG5cbiAgICAvLyBJZiB0aGlzIGlzIHRoZSBzdGFydCBkYXRlIGJlaW5nIHNlbGVjdGVkIChtYXRTdGFydERhdGUgaW5wdXQpXG4gICAgaWYgKGVsZW1lbnQgPT09IHRoaXMubWluPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAvLyBXZSdyZSBzdGFydGluZyBhIG5ldyBzZWxlY3Rpb24gcHJvY2Vzc1xuICAgICAgdGhpcy5pc1NlbGVjdGluZ1JhbmdlID0gdHJ1ZTtcbiAgICAgIC8vIERvbid0IGVtaXQgYW55IGV2ZW50IHlldFxuICAgIH1cbiAgICAvLyBJZiB0aGlzIGlzIHRoZSBlbmQgZGF0ZSBiZWluZyBzZWxlY3RlZCAobWF0RW5kRGF0ZSBpbnB1dClcbiAgICBlbHNlIGlmIChlbGVtZW50ID09PSB0aGlzLm1heD8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgLy8gV2UncmUgY29tcGxldGluZyBhIHNlbGVjdGlvblxuICAgICAgdGhpcy5pc1NlbGVjdGluZ1JhbmdlID0gZmFsc2U7XG5cbiAgICAgIGlmIChzdGFydERhdGUgPT09IG51bGwgJiYgZW5kRGF0ZSA9PT0gbnVsbCkge1xuICAgICAgICB0aGlzLmRhdGVSYW5nZUZvcm0ucmVzZXQoKTtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKHN0YXJ0RGF0ZSAmJiBlbmREYXRlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGVsZW1lbnQuYmx1cigpO1xuICB9XG5cbiAga2V5RXZlbnRIYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50LHZhbHVlOiBBcnJheTxzdHJpbmcgfCBudWxsPiwgZWxlbWVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmNvZGUgPT09ICdFbnRlcicpIHtcbiAgICAgIHRoaXMuc2V0RGF0ZSh2YWx1ZSxlbGVtZW50KVxuICAgIH1cbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleF9jb2x1bW4gcmVsYXRpdmUgbWF0LWRhdGUtcmFuZ2UtaW5wdXRcIlxuICAgICBbZm9ybUdyb3VwXT1cImRhdGVSYW5nZUZvcm1cIlxuPlxuICA8ZGl2IGNsYXNzPVwidy0xMDBcIiAqbmdJZj1cImxhYmVsXCI+XG4gICAgPG1hdC1sYWJlbD5cbiAgICAgIHt7IChsYWJlbCB8fCAnJykgfCB0cmFuc2xhdGUgfX1cbiAgICA8L21hdC1sYWJlbD5cbiAgPC9kaXY+XG4gIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIFtuZ0NsYXNzXT1cInsnb3BlbmVkX2NhbGVuZGFyJzogaXNPcGVufVwiPlxuICAgIDxtYXQtZGF0ZS1yYW5nZS1pbnB1dCBbcmFuZ2VQaWNrZXJdPVwicGlja2VyXCI+XG4gICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwic3RhcnREYXRlXCJcbiAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiIChwbGFjZWhvbGRlciA/IHBsYWNlaG9sZGVyWzBdIDogJ1N0YXJ0IERhdGUnKVwiXG4gICAgICAgICAgICAgW3RpdGxlXT1cImtleSA/IGtleS50aXRsZSA6ICAnRGF0ZSdcIlxuICAgICAgICAgICAgIFthdHRyLmRhdGEtYWNjZXNzS2V5XT1cImtleSA/IGtleS5zdGFydCA6ICdtaW5TdGFydERhdGUnXCJcbiAgICAgICAgICAgICBbYXR0ci5kYXRhLXBhcmVudEtleV09XCJrZXkgPyAoa2V5LnN0YXJ0ICsgJ18nICsga2V5LmVuZCkgOiAnbWluU3RhcnREYXRlX21heEVuZERhdGUnXCJcbiAgICAgICAgICAgICBtYXRTdGFydERhdGUgI21pblxuICAgICAgICAgICAgIGRhdGVNYXNrXG4gICAgICAgICAgICAgW2Vycm9yU3RhdGVNYXRjaGVyXT1cImN1c3RvbUVycm9yU3RhdGVNYXRjaGVyXCJcbiAgICAgICAgICAgICBbcmFuZ2VGb3JtQ29udHJvbF09XCJkYXRlUmFuZ2VGb3JtLmNvbnRyb2xzWydzdGFydERhdGUnXVwiXG4gICAgICAgICAgICAgKGtleWRvd24pPVwia2V5RXZlbnRIYW5kbGVyKCRldmVudCxbbWluLnZhbHVlLCBtYXgudmFsdWUgfHwgbnVsbF0sbWluKVwiXG4gICAgICAgICAgICAgKGRhdGVDaGFuZ2UpPVwic2V0RGF0ZShbbWluLnZhbHVlLCBtYXgudmFsdWUgfHwgbnVsbF0sbWluKVwiPlxuICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImVuZERhdGVcIlxuICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIocGxhY2Vob2xkZXIgID8gcGxhY2Vob2xkZXJbMV0gOiAnRW5kIERhdGUnKVwiXG4gICAgICAgICAgICAgW3RpdGxlXT1cImtleSA/IGtleS50aXRsZSA6ICAnRGF0ZSdcIlxuICAgICAgICAgICAgIFthdHRyLmRhdGEtYWNjZXNzS2V5XT1cImtleSA/IGtleS5lbmQgOiAnbWF4RW5kRGF0ZSdcIlxuICAgICAgICAgICAgIFthdHRyLmRhdGEtcGFyZW50S2V5XT1cImtleSA/IChrZXkuc3RhcnQgKyAnXycgKyBrZXkuZW5kKSA6ICdtaW5TdGFydERhdGVfbWF4RW5kRGF0ZSdcIlxuICAgICAgICAgICAgIG1hdEVuZERhdGUgI21heFxuICAgICAgICAgICAgIGRhdGVNYXNrXG4gICAgICAgICAgICAgW2Vycm9yU3RhdGVNYXRjaGVyXT1cImN1c3RvbUVycm9yU3RhdGVNYXRjaGVyXCJcbiAgICAgICAgICAgICBbcmFuZ2VGb3JtQ29udHJvbF09XCJkYXRlUmFuZ2VGb3JtLmNvbnRyb2xzWydlbmREYXRlJ11cIlxuICAgICAgICAgICAgIChrZXlkb3duKT1cImtleUV2ZW50SGFuZGxlcigkZXZlbnQsW21pbi52YWx1ZSwgbWF4LnZhbHVlIHx8IG51bGxdLG1heClcIlxuICAgICAgICAgICAgIChkYXRlQ2hhbmdlKT1cInNldERhdGUoW21pbi52YWx1ZSwgbWF4LnZhbHVlIHx8IG51bGxdLG1heClcIj5cbiAgICA8L21hdC1kYXRlLXJhbmdlLWlucHV0PlxuICAgIDxpLXRlY2gtaWNvbi1idXR0b24gbWF0U3VmZml4XG4gICAgICAgICAgICAgICAgICAgICAgICBbaWNvbk5hbWVdPVwiJ2NhbmNlbCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cInNldERhdGUoW251bGwsbnVsbF0sIG1heClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkZWZhdWx0LWZvcm0taWNvbi1jb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRhdGVSYW5nZUZvcm0uZ2V0KCdzdGFydERhdGUnKT8udmFsdWUgJiYgdGhpcy5kYXRlUmFuZ2VGb3JtLmdldCgnZW5kRGF0ZScpPy52YWx1ZVwiXG4gICAgPjwvaS10ZWNoLWljb24tYnV0dG9uPlxuICAgIDxpLXRlY2gtaWNvbi1idXR0b25cbiAgICAgIG1hdFN1ZmZpeFxuICAgICAgW2ljb25OYW1lXT1cIidkYXRlX3JhbmdlJ1wiXG4gICAgICAoYnV0dG9uQ2xpY2spPVwicGlja2VyLm9wZW4oKVwiXG4gICAgICBjbGFzcz1cImRlZmF1bHQtZm9ybS1pY29uLWNvbG9yXCJcbiAgICA+PC9pLXRlY2gtaWNvbi1idXR0b24+XG4gICAgPG1hdC1kYXRlLXJhbmdlLXBpY2tlclxuICAgICAgI3BpY2tlclxuICAgICAgKGNsb3NlZCk9XCJpc09wZW4gPSBmYWxzZTtjbGlja0ZvckZvY3VzT3V0KClcIlxuICAgICAgKG9wZW5lZCk9XCJpc09wZW4gPSB0cnVlXCJcbiAgICA+PC9tYXQtZGF0ZS1yYW5nZS1waWNrZXI+XG4gICAgPG1hdC1oaW50ICpuZ0lmPVwiaGludFRleHQgJiYgIWVycm9yTWVzc2FnZVwiPnt7IGhpbnRUZXh0IH19PC9tYXQtaGludD5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbjwvZGl2PlxuIl19
|