i-tech-shared-components 1.1.39 → 1.1.41
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/esm2022/lib/components/date-time-picker/date-time-picker.component.mjs +87 -0
- package/esm2022/lib/components/label/label.component.mjs +5 -4
- package/esm2022/lib/interfaces/hour-minute.interface.mjs +2 -0
- package/esm2022/lib/services/parse-date.service.mjs +70 -0
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/i-tech-shared-components.mjs +145 -5
- package/fesm2022/i-tech-shared-components.mjs.map +1 -1
- package/lib/components/date-time-picker/date-time-picker.component.d.ts +25 -0
- package/lib/interfaces/hour-minute.interface.d.ts +4 -0
- package/lib/services/parse-date.service.d.ts +23 -0
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { MatDatepickerModule } from "@angular/material/datepicker";
|
|
3
|
+
import { NgxMaskDirective } from "ngx-mask";
|
|
4
|
+
import { FormsModule, ReactiveFormsModule, UntypedFormControl, UntypedFormGroup } from "@angular/forms";
|
|
5
|
+
import { NgClass, NgIf } from "@angular/common";
|
|
6
|
+
import { MatError, MatLabel } from "@angular/material/form-field";
|
|
7
|
+
import { TranslateModule } from "@ngx-translate/core";
|
|
8
|
+
import { DateMaskDirective } from "../../directives/date-mask.directive";
|
|
9
|
+
import { ParseDateService } from "../../services/parse-date.service";
|
|
10
|
+
import { GenerateErrorMessagesPipe } from "../../pipes/generate-error-messages.pipe";
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "../../services/input.service";
|
|
13
|
+
import * as i2 from "../../services/parse-date.service";
|
|
14
|
+
import * as i3 from "@angular/material/datepicker";
|
|
15
|
+
import * as i4 from "@ngx-translate/core";
|
|
16
|
+
import * as i5 from "@angular/forms";
|
|
17
|
+
export class DateTimePickerComponent {
|
|
18
|
+
constructor(inputService, parseDateService) {
|
|
19
|
+
this.inputService = inputService;
|
|
20
|
+
this.parseDateService = parseDateService;
|
|
21
|
+
this.dateChangeEvent = new EventEmitter();
|
|
22
|
+
this.submit = false;
|
|
23
|
+
this.required = false;
|
|
24
|
+
this.isFocused = false;
|
|
25
|
+
this.form = new UntypedFormGroup({
|
|
26
|
+
time: new UntypedFormControl(),
|
|
27
|
+
date: new UntypedFormControl(),
|
|
28
|
+
});
|
|
29
|
+
this.ngControl = this.inputService.injectNgControl();
|
|
30
|
+
}
|
|
31
|
+
ngAfterViewInit() {
|
|
32
|
+
this.setValue();
|
|
33
|
+
this.ngControl.control.valueChanges.subscribe(() => {
|
|
34
|
+
this.setValue();
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
setValue() {
|
|
38
|
+
if (!this.ngControl?.control) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const dateTime = this.ngControl.control.value;
|
|
42
|
+
this.form.patchValue({
|
|
43
|
+
date: new Date(this.parseDateService.changeFormat(dateTime, 'YYYY-MM-DD') + 'T' + '00:00:00'),
|
|
44
|
+
time: this.parseDateService.changeFormat(dateTime, 'HH:mm')
|
|
45
|
+
}, { emitEvent: false });
|
|
46
|
+
}
|
|
47
|
+
dateChange(timeInput) {
|
|
48
|
+
if (!timeInput.value) {
|
|
49
|
+
timeInput.focus();
|
|
50
|
+
}
|
|
51
|
+
this.setDatTimeValue();
|
|
52
|
+
}
|
|
53
|
+
setDatTimeValue() {
|
|
54
|
+
if (this.form.value.date && this.form.value.time) {
|
|
55
|
+
const date = this.parseDateService.changeFormat(this.form.value.date, 'YYYY-MM-DD');
|
|
56
|
+
const time = this.form.value.time;
|
|
57
|
+
this.ngControl.control.patchValue(date + 'T' + time, { emitEvent: false });
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
this.ngControl.control.patchValue(null, { emitEvent: false });
|
|
61
|
+
}
|
|
62
|
+
this.dateChangeEvent.emit();
|
|
63
|
+
}
|
|
64
|
+
onFocus() {
|
|
65
|
+
this.isFocused = true;
|
|
66
|
+
}
|
|
67
|
+
onBlur() {
|
|
68
|
+
this.isFocused = false;
|
|
69
|
+
}
|
|
70
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateTimePickerComponent, deps: [{ token: i1.InputService }, { token: i2.ParseDateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
71
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DateTimePickerComponent, isStandalone: true, selector: "i-tech-date-time-picker", inputs: { label: "label", submit: "submit", required: "required" }, outputs: { dateChangeEvent: "dateChangeEvent" }, providers: [ParseDateService], ngImport: i0, template: "<div class=\"date_time_picker_container\"\n *ngIf=\"ngControl?.control\"\n [class.readonly_field]=\"ngControl.control.disabled\"\n>\n <mat-label>{{label | translate}}</mat-label>\n <span *ngIf=\"required\" class=\"required-input\"> *</span>\n\n <div class=\"date_time_picker\"\n [formGroup]=\"form\"\n [ngClass]=\"{'focused': isFocused}\"\n >\n <input type=\"text\" dateMask class=\"date\"\n placeholder=\"mm/dd/yy\"\n formControlName=\"date\"\n [matDatepicker]=\"DatePicker\"\n (click)=\"DatePicker.open()\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (selectionchange)=\"dateChange(dateElement)\"\n >\n <mat-datepicker #DatePicker></mat-datepicker>\n <input type=\"time\"\n #dateElement\n class=\"time\"\n formControlName=\"time\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (change)=\"setDatTimeValue()\"\n />\n </div>\n <!-- Error Messages -->\n <mat-error *ngIf=\"!!(ngControl.control.errors && submit)\">\n {{ngControl.control | generateErrorMessages : (label || '')}}\n </mat-error>\n</div>\n", styles: [".date_time_picker_container .readonly_field{opacity:.4;pointer-events:none}.date_time_picker_container .date_time_picker{display:flex;outline:1px solid #D7D9DE;border-radius:4px;padding:8px;background-color:#fff;width:max-content}.date_time_picker_container .date_time_picker.focused{outline:3px solid #0060DF}.date_time_picker_container .date_time_picker input{padding:unset;border:unset;background-color:#fff;outline:unset;line-height:20px;font-weight:500;font-size:13px;letter-spacing:.2px}.date_time_picker_container .date_time_picker input.date{width:75px}.date_time_picker_container .date_time_picker input.time{width:63px}.date_time_picker_container .date_time_picker input[type=time]::-webkit-calendar-picker-indicator{display:none;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i3.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i3.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "directive", type: DateMaskDirective, selector: "[dateMask]", inputs: ["maskType", "matDatepicker", "rangeFormControl"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "pipe", type: GenerateErrorMessagesPipe, name: "generateErrorMessages" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }] }); }
|
|
72
|
+
}
|
|
73
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateTimePickerComponent, decorators: [{
|
|
74
|
+
type: Component,
|
|
75
|
+
args: [{ selector: 'i-tech-date-time-picker', imports: [MatDatepickerModule, NgxMaskDirective, DateMaskDirective, TranslateModule,
|
|
76
|
+
FormsModule, NgClass, ReactiveFormsModule, MatLabel, GenerateErrorMessagesPipe, NgIf, MatError
|
|
77
|
+
], standalone: true, providers: [ParseDateService], template: "<div class=\"date_time_picker_container\"\n *ngIf=\"ngControl?.control\"\n [class.readonly_field]=\"ngControl.control.disabled\"\n>\n <mat-label>{{label | translate}}</mat-label>\n <span *ngIf=\"required\" class=\"required-input\"> *</span>\n\n <div class=\"date_time_picker\"\n [formGroup]=\"form\"\n [ngClass]=\"{'focused': isFocused}\"\n >\n <input type=\"text\" dateMask class=\"date\"\n placeholder=\"mm/dd/yy\"\n formControlName=\"date\"\n [matDatepicker]=\"DatePicker\"\n (click)=\"DatePicker.open()\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (selectionchange)=\"dateChange(dateElement)\"\n >\n <mat-datepicker #DatePicker></mat-datepicker>\n <input type=\"time\"\n #dateElement\n class=\"time\"\n formControlName=\"time\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (change)=\"setDatTimeValue()\"\n />\n </div>\n <!-- Error Messages -->\n <mat-error *ngIf=\"!!(ngControl.control.errors && submit)\">\n {{ngControl.control | generateErrorMessages : (label || '')}}\n </mat-error>\n</div>\n", styles: [".date_time_picker_container .readonly_field{opacity:.4;pointer-events:none}.date_time_picker_container .date_time_picker{display:flex;outline:1px solid #D7D9DE;border-radius:4px;padding:8px;background-color:#fff;width:max-content}.date_time_picker_container .date_time_picker.focused{outline:3px solid #0060DF}.date_time_picker_container .date_time_picker input{padding:unset;border:unset;background-color:#fff;outline:unset;line-height:20px;font-weight:500;font-size:13px;letter-spacing:.2px}.date_time_picker_container .date_time_picker input.date{width:75px}.date_time_picker_container .date_time_picker input.time{width:63px}.date_time_picker_container .date_time_picker input[type=time]::-webkit-calendar-picker-indicator{display:none;pointer-events:none}\n"] }]
|
|
78
|
+
}], ctorParameters: () => [{ type: i1.InputService }, { type: i2.ParseDateService }], propDecorators: { dateChangeEvent: [{
|
|
79
|
+
type: Output
|
|
80
|
+
}], label: [{
|
|
81
|
+
type: Input
|
|
82
|
+
}], submit: [{
|
|
83
|
+
type: Input
|
|
84
|
+
}], required: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}] } });
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZGF0ZS10aW1lLXBpY2tlci9kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXRpbWUtcGlja2VyL2RhdGUtdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzVDLE9BQU8sRUFFTCxXQUFXLEVBQ1gsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDakIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7Ozs7O0FBWXJGLE1BQU0sT0FBTyx1QkFBdUI7SUFZbEMsWUFDWSxZQUEw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dkIsQ0FBQyxnQkFBZ0IsQ0FBQywwQkN4Qi9CLGl3Q0FtQ0EsbXpCRGZZLG1CQUFtQiwrVEFBbUIsaUJBQWlCLGlIQUFFLGVBQWUsMkZBQ2hGLFdBQVcsbWpCQUFFLE9BQU8sbUZBQUUsbUJBQW1CLGdWQUFFLFFBQVEsaURBQUUseUJBQXlCLDhEQUFFLElBQUksNkZBQUUsUUFBUTs7NEZBT3JGLHVCQUF1QjtrQkFWbkMsU0FBUzsrQkFDRSx5QkFBeUIsV0FDMUIsQ0FBQyxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBQyxpQkFBaUIsRUFBRSxlQUFlO3dCQUNoRixXQUFXLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSx5QkFBeUIsRUFBRSxJQUFJLEVBQUUsUUFBUTtxQkFDL0YsY0FDVyxJQUFJLGFBQ0wsQ0FBQyxnQkFBZ0IsQ0FBQztnSEFLbkIsZUFBZTtzQkFBeEIsTUFBTTtnQkFDRSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyXCI7XG5pbXBvcnQgeyBOZ3hNYXNrRGlyZWN0aXZlIH0gZnJvbSBcIm5neC1tYXNrXCI7XG5pbXBvcnQge1xuICBGb3JtQ29udHJvbE5hbWUsXG4gIEZvcm1zTW9kdWxlLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXG4gIFVudHlwZWRGb3JtR3JvdXBcbn0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ0lmIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgTWF0RXJyb3IsIE1hdExhYmVsIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBEYXRlTWFza0RpcmVjdGl2ZSB9IGZyb20gXCIuLi8uLi9kaXJlY3RpdmVzL2RhdGUtbWFzay5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IFBhcnNlRGF0ZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvcGFyc2UtZGF0ZS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBJbnB1dFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvaW5wdXQuc2VydmljZVwiO1xuaW1wb3J0IHsgR2VuZXJhdGVFcnJvck1lc3NhZ2VzUGlwZSB9IGZyb20gXCIuLi8uLi9waXBlcy9nZW5lcmF0ZS1lcnJvci1tZXNzYWdlcy5waXBlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ktdGVjaC1kYXRlLXRpbWUtcGlja2VyJyxcbiAgaW1wb3J0czogW01hdERhdGVwaWNrZXJNb2R1bGUsIE5neE1hc2tEaXJlY3RpdmUsRGF0ZU1hc2tEaXJlY3RpdmUsIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSwgTmdDbGFzcywgUmVhY3RpdmVGb3Jtc01vZHVsZSwgTWF0TGFiZWwsIEdlbmVyYXRlRXJyb3JNZXNzYWdlc1BpcGUsIE5nSWYsIE1hdEVycm9yXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogW1BhcnNlRGF0ZVNlcnZpY2VdLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBEYXRlVGltZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBAT3V0cHV0KCkgZGF0ZUNoYW5nZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBASW5wdXQoKSBsYWJlbCE6IHN0cmluZztcbiAgQElucHV0KCkgc3VibWl0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XG4gIGlzRm9jdXNlZCA9IGZhbHNlO1xuICBmb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe1xuICAgIHRpbWU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKSxcbiAgICBkYXRlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCksXG4gIH0pXG4gIG5nQ29udHJvbDogRm9ybUNvbnRyb2xOYW1lO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSBpbnB1dFNlcnZpY2U6IElucHV0U2VydmljZSxcbiAgICAgIHByaXZhdGUgcGFyc2VEYXRlU2VydmljZTogUGFyc2VEYXRlU2VydmljZVxuICApIHtcbiAgICB0aGlzLm5nQ29udHJvbCA9IHRoaXMuaW5wdXRTZXJ2aWNlLmluamVjdE5nQ29udHJvbCgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0VmFsdWUoKTtcbiAgICB0aGlzLm5nQ29udHJvbC5jb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zZXRWYWx1ZSgpXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgc2V0VmFsdWUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm5nQ29udHJvbD8uY29udHJvbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBkYXRlVGltZSA9IHRoaXMubmdDb250cm9sLmNvbnRyb2wudmFsdWU7XG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgZGF0ZTogbmV3IERhdGUodGhpcy5wYXJzZURhdGVTZXJ2aWNlLmNoYW5nZUZvcm1hdChkYXRlVGltZSwnWVlZWS1NTS1ERCcpICsgJ1QnICsgJzAwOjAwOjAwJyksXG4gICAgICB0aW1lOiB0aGlzLnBhcnNlRGF0ZVNlcnZpY2UuY2hhbmdlRm9ybWF0KGRhdGVUaW1lLCdISDptbScpXG4gICAgfSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pXG4gIH1cblxuICBwdWJsaWMgZGF0ZUNoYW5nZSh0aW1lSW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRpbWVJbnB1dC52YWx1ZSkge1xuICAgICAgdGltZUlucHV0LmZvY3VzKCk7XG4gICAgfVxuICAgIHRoaXMuc2V0RGF0VGltZVZhbHVlKClcbiAgfVxuXG4gIHB1YmxpYyBzZXREYXRUaW1lVmFsdWUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9ybS52YWx1ZS5kYXRlICYmIHRoaXMuZm9ybS52YWx1ZS50aW1lKSB7XG4gICAgICBjb25zdCBkYXRlID0gdGhpcy5wYXJzZURhdGVTZXJ2aWNlLmNoYW5nZUZvcm1hdCh0aGlzLmZvcm0udmFsdWUuZGF0ZSAsICdZWVlZLU1NLUREJyk7XG4gICAgICBjb25zdCB0aW1lID0gdGhpcy5mb3JtLnZhbHVlLnRpbWU7XG4gICAgICB0aGlzLm5nQ29udHJvbC5jb250cm9sLnBhdGNoVmFsdWUoZGF0ZSArICdUJyArIHRpbWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5uZ0NvbnRyb2wuY29udHJvbC5wYXRjaFZhbHVlKG51bGwsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB9XG4gICAgdGhpcy5kYXRlQ2hhbmdlRXZlbnQuZW1pdCgpXG4gIH1cblxuICBwdWJsaWMgb25Gb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgb25CbHVyKCk6IHZvaWQge1xuICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkYXRlX3RpbWVfcGlja2VyX2NvbnRhaW5lclwiXG4gICAgICpuZ0lmPVwibmdDb250cm9sPy5jb250cm9sXCJcbiAgICAgW2NsYXNzLnJlYWRvbmx5X2ZpZWxkXT1cIm5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkXCJcbj5cbiAgICA8bWF0LWxhYmVsPnt7bGFiZWwgfCB0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxuICAgIDxzcGFuICpuZ0lmPVwicmVxdWlyZWRcIiBjbGFzcz1cInJlcXVpcmVkLWlucHV0XCI+ICo8L3NwYW4+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZGF0ZV90aW1lX3BpY2tlclwiXG4gICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgICAgICAgW25nQ2xhc3NdPVwieydmb2N1c2VkJzogaXNGb2N1c2VkfVwiXG4gICAgPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBkYXRlTWFzayBjbGFzcz1cImRhdGVcIlxuICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJtbS9kZC95eVwiXG4gICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkYXRlXCJcbiAgICAgICAgICAgICAgIFttYXREYXRlcGlja2VyXT1cIkRhdGVQaWNrZXJcIlxuICAgICAgICAgICAgICAgKGNsaWNrKT1cIkRhdGVQaWNrZXIub3BlbigpXCJcbiAgICAgICAgICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgICAgICAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgICAgICAgICAgICAgKHNlbGVjdGlvbmNoYW5nZSk9XCJkYXRlQ2hhbmdlKGRhdGVFbGVtZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgPG1hdC1kYXRlcGlja2VyICNEYXRlUGlja2VyPjwvbWF0LWRhdGVwaWNrZXI+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGltZVwiXG4gICAgICAgICAgICAgICAjZGF0ZUVsZW1lbnRcbiAgICAgICAgICAgICAgIGNsYXNzPVwidGltZVwiXG4gICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0aW1lXCJcbiAgICAgICAgICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgICAgICAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZXREYXRUaW1lVmFsdWUoKVwiXG4gICAgICAgIC8+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBFcnJvciBNZXNzYWdlcyAtLT5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiISEobmdDb250cm9sLmNvbnRyb2wuZXJyb3JzICYmIHN1Ym1pdClcIj5cbiAgICAgICAge3tuZ0NvbnRyb2wuY29udHJvbCB8IGdlbmVyYXRlRXJyb3JNZXNzYWdlcyA6IChsYWJlbCB8fCAnJyl9fVxuICAgIDwvbWF0LWVycm9yPlxuPC9kaXY+XG4iXX0=
|
|
@@ -2,7 +2,7 @@ import { Component, Input } from '@angular/core';
|
|
|
2
2
|
import { LabelTypeEnum } from "../../interfaces/label-type.enum";
|
|
3
3
|
import { MatChip } from "@angular/material/chips";
|
|
4
4
|
import { MatTooltip } from "@angular/material/tooltip";
|
|
5
|
-
import { NgClass } from "@angular/common";
|
|
5
|
+
import { NgClass, NgIf } from "@angular/common";
|
|
6
6
|
import { TranslateModule } from "@ngx-translate/core";
|
|
7
7
|
import { MatIcon } from "@angular/material/icon";
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
@@ -16,7 +16,7 @@ export class LabelComponent {
|
|
|
16
16
|
this.matChipAction = false;
|
|
17
17
|
}
|
|
18
18
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LabelComponent, isStandalone: true, selector: "i-tech-label", inputs: { color: "color", text: "text", innerHtml: "innerHtml", bordered: "bordered", tooltip: "tooltip", size: "size", iconName: "iconName", iconSvg: "iconSvg", disableRipple: "disableRipple", matChipAction: "matChipAction" }, ngImport: i0, template: "<div [class]=\"iconName || iconSvg ? 'trailing-icon flex' : 'flex'\">\n <mat-chip\n [class]=\"'label_' + color\"\n [ngClass]=\"{bordered: bordered, small: size === 'small', matChipAction: 'pointer'}\"\n [matTooltip]=\"(tooltip || '') | translate\"\n [disableRipple]=\"disableRipple\"\n >\n <div class=\"flex_align_center flex_gap\" [ngClass]=\"matChipAction ? 'pointer' : ''\">\n <span *ngIf=\"!innerHtml\">{{text | translate}}</span>\n <span *ngIf=\"innerHtml\" [innerHtml]=\"innerHtml | translate\"></span>\n <mat-icon *ngIf=\"iconName\">{{iconName}}</mat-icon>\n <mat-icon *ngIf=\"iconSvg\" [svgIcon]=\"iconSvg!\"></mat-icon>\n </div>\n </mat-chip>\n</div>\n", dependencies: [{ kind: "component", type: MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
19
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LabelComponent, isStandalone: true, selector: "i-tech-label", inputs: { color: "color", text: "text", innerHtml: "innerHtml", bordered: "bordered", tooltip: "tooltip", size: "size", iconName: "iconName", iconSvg: "iconSvg", disableRipple: "disableRipple", matChipAction: "matChipAction" }, ngImport: i0, template: "<div [class]=\"iconName || iconSvg ? 'trailing-icon flex' : 'flex'\">\n <mat-chip\n [class]=\"'label_' + color\"\n [ngClass]=\"{bordered: bordered, small: size === 'small', matChipAction: 'pointer'}\"\n [matTooltip]=\"(tooltip || '') | translate\"\n [disableRipple]=\"disableRipple\"\n >\n <div class=\"flex_align_center flex_gap\" [ngClass]=\"matChipAction ? 'pointer' : ''\">\n <span *ngIf=\"!innerHtml\">{{text | translate}}</span>\n <span *ngIf=\"innerHtml\" [innerHtml]=\"innerHtml | translate\"></span>\n <mat-icon *ngIf=\"iconName\">{{iconName}}</mat-icon>\n <mat-icon *ngIf=\"iconSvg\" [svgIcon]=\"iconSvg!\"></mat-icon>\n </div>\n </mat-chip>\n</div>\n", dependencies: [{ kind: "component", type: MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
20
20
|
}
|
|
21
21
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LabelComponent, decorators: [{
|
|
22
22
|
type: Component,
|
|
@@ -25,7 +25,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
25
25
|
MatTooltip,
|
|
26
26
|
NgClass,
|
|
27
27
|
TranslateModule,
|
|
28
|
-
MatIcon
|
|
28
|
+
MatIcon,
|
|
29
|
+
NgIf
|
|
29
30
|
], standalone: true, template: "<div [class]=\"iconName || iconSvg ? 'trailing-icon flex' : 'flex'\">\n <mat-chip\n [class]=\"'label_' + color\"\n [ngClass]=\"{bordered: bordered, small: size === 'small', matChipAction: 'pointer'}\"\n [matTooltip]=\"(tooltip || '') | translate\"\n [disableRipple]=\"disableRipple\"\n >\n <div class=\"flex_align_center flex_gap\" [ngClass]=\"matChipAction ? 'pointer' : ''\">\n <span *ngIf=\"!innerHtml\">{{text | translate}}</span>\n <span *ngIf=\"innerHtml\" [innerHtml]=\"innerHtml | translate\"></span>\n <mat-icon *ngIf=\"iconName\">{{iconName}}</mat-icon>\n <mat-icon *ngIf=\"iconSvg\" [svgIcon]=\"iconSvg!\"></mat-icon>\n </div>\n </mat-chip>\n</div>\n" }]
|
|
30
31
|
}], propDecorators: { color: [{
|
|
31
32
|
type: Input
|
|
@@ -48,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
48
49
|
}], matChipAction: [{
|
|
49
50
|
type: Input
|
|
50
51
|
}] } });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2xhYmVsL2xhYmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9sYWJlbC9sYWJlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQWdCakQsTUFBTSxPQUFPLGNBQWM7SUFkM0I7UUFlVyxVQUFLLEdBQWtCLGFBQWEsQ0FBQyxPQUFPLENBQUM7UUFHN0MsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixTQUFJLEdBQXlCLFVBQVUsQ0FBQztRQUd4QyxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixrQkFBYSxHQUFHLEtBQUssQ0FBQztLQUNoQzsrR0FYWSxjQUFjO21HQUFkLGNBQWMsNFNDdEIzQixzd0JBZUEsNENERkksT0FBTyxrU0FDUCxVQUFVLGlSQUNWLE9BQU8sbUZBQ1AsZUFBZSw0RkFDZixPQUFPLDJJQUNQLElBQUk7OzRGQUlLLGNBQWM7a0JBZDFCLFNBQVM7K0JBQ0UsY0FBYyxXQUdmO3dCQUNQLE9BQU87d0JBQ1AsVUFBVTt3QkFDVixPQUFPO3dCQUNQLGVBQWU7d0JBQ2YsT0FBTzt3QkFDUCxJQUFJO3FCQUNMLGNBQ1csSUFBSTs4QkFHUCxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExhYmVsVHlwZUVudW0gfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9sYWJlbC10eXBlLmVudW1cIjtcbmltcG9ydCB7IE1hdENoaXAgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHNcIjtcbmltcG9ydCB7IE1hdFRvb2x0aXAgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcFwiO1xuaW1wb3J0IHsgTmdDbGFzcywgTmdJZiB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaS10ZWNoLWxhYmVsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xhYmVsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXSxcbiAgaW1wb3J0czogW1xuICAgIE1hdENoaXAsXG4gICAgTWF0VG9vbHRpcCxcbiAgICBOZ0NsYXNzLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBNYXRJY29uLFxuICAgIE5nSWZcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBMYWJlbENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGNvbG9yOiBMYWJlbFR5cGVFbnVtID0gTGFiZWxUeXBlRW51bS5wcmltYXJ5O1xuICBASW5wdXQoKSB0ZXh0ITogc3RyaW5nO1xuICBASW5wdXQoKSBpbm5lckh0bWwhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGJvcmRlcmVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRvb2x0aXA/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNpemU6ICdzbWFsbCcgfCAnc3RhbmRhcmQnID0gJ3N0YW5kYXJkJztcbiAgQElucHV0KCkgaWNvbk5hbWU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGljb25Tdmc/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRpc2FibGVSaXBwbGUgPSBmYWxzZTtcbiAgQElucHV0KCkgbWF0Q2hpcEFjdGlvbiA9IGZhbHNlO1xufVxuIiwiPGRpdiBbY2xhc3NdPVwiaWNvbk5hbWUgfHwgaWNvblN2ZyA/ICd0cmFpbGluZy1pY29uIGZsZXgnIDogJ2ZsZXgnXCI+XG4gICAgPG1hdC1jaGlwXG4gICAgICAgICAgICBbY2xhc3NdPVwiJ2xhYmVsXycgKyBjb2xvclwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7Ym9yZGVyZWQ6IGJvcmRlcmVkLCBzbWFsbDogc2l6ZSA9PT0gJ3NtYWxsJywgbWF0Q2hpcEFjdGlvbjogJ3BvaW50ZXInfVwiXG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCIodG9vbHRpcCB8fCAnJykgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW2Rpc2FibGVSaXBwbGVdPVwiZGlzYWJsZVJpcHBsZVwiXG4gICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleF9hbGlnbl9jZW50ZXIgZmxleF9nYXBcIiBbbmdDbGFzc109XCJtYXRDaGlwQWN0aW9uID8gJ3BvaW50ZXInIDogJydcIj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWlubmVySHRtbFwiPnt7dGV4dCB8IHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpbm5lckh0bWxcIiBbaW5uZXJIdG1sXT1cImlubmVySHRtbCB8IHRyYW5zbGF0ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImljb25OYW1lXCI+e3tpY29uTmFtZX19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImljb25TdmdcIiBbc3ZnSWNvbl09XCJpY29uU3ZnIVwiPjwvbWF0LWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbWF0LWNoaXA+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG91ci1taW51dGUuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9pbnRlcmZhY2VzL2hvdXItbWludXRlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBIb3VyTWludXRlIHtcbiAgaG91cjogbnVtYmVyLFxuICBtaW51dGU6IG51bWJlclxufVxuIl19
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import moment from 'moment';
|
|
3
|
+
import * as momentTimezone from 'moment-timezone';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class ParseDateService {
|
|
6
|
+
toLocaleTime(time, format = '', timezoneId) {
|
|
7
|
+
format = (format) ? format : 'MM/DD/yyyy hh:mm A';
|
|
8
|
+
const momentDate = momentTimezone.utc(time);
|
|
9
|
+
if (timezoneId) {
|
|
10
|
+
momentDate.tz(timezoneId);
|
|
11
|
+
}
|
|
12
|
+
return momentDate.format(format);
|
|
13
|
+
}
|
|
14
|
+
fromLocaleToUtc(time, format = '', timezoneId) {
|
|
15
|
+
format = (format) ? format : 'MM/DD/yyyy hh:mm A';
|
|
16
|
+
if (timezoneId) {
|
|
17
|
+
return momentTimezone.tz(moment(time).format(format), timezoneId).utc(false).format();
|
|
18
|
+
}
|
|
19
|
+
return '';
|
|
20
|
+
}
|
|
21
|
+
toDate(date) {
|
|
22
|
+
return moment(date).toDate();
|
|
23
|
+
}
|
|
24
|
+
toDateWithFormat(date, format) {
|
|
25
|
+
return moment(date, format).toDate();
|
|
26
|
+
}
|
|
27
|
+
getDayDifferentFromCurrentDay(date) {
|
|
28
|
+
return moment(date).diff(moment(), 'days');
|
|
29
|
+
}
|
|
30
|
+
changeFormat(time, format) {
|
|
31
|
+
return moment(time).format(format);
|
|
32
|
+
}
|
|
33
|
+
changeLocalFormat(time, format, timezone) {
|
|
34
|
+
return moment(time).tz(timezone).format(format);
|
|
35
|
+
}
|
|
36
|
+
addToDate(date, toAdd = {}, format, type = 'format') {
|
|
37
|
+
const momentDate = (date ? moment(date) : moment())
|
|
38
|
+
.add(toAdd.second || 0, 'second')
|
|
39
|
+
.add(toAdd.minute || 0, 'minute')
|
|
40
|
+
.add(toAdd.days || 0, 'days');
|
|
41
|
+
if (type === 'format') {
|
|
42
|
+
return momentDate.format(format || 'MM/DD/yyyy');
|
|
43
|
+
}
|
|
44
|
+
return momentDate.toDate();
|
|
45
|
+
}
|
|
46
|
+
getDateForWeekDay(day, forWeek = 0) {
|
|
47
|
+
return moment().add(forWeek, 'week').day(day).toDate();
|
|
48
|
+
}
|
|
49
|
+
getLocalDateForWeekDay(day, forWeek = 0, timezoneId) {
|
|
50
|
+
return moment().tz(timezoneId).add(forWeek, 'week').day(day).toDate();
|
|
51
|
+
}
|
|
52
|
+
containsDay(startDate, endDate, date) {
|
|
53
|
+
return moment(date).isBetween(startDate, endDate, 'days', '[]');
|
|
54
|
+
}
|
|
55
|
+
getDiff(startDate, endDate) {
|
|
56
|
+
return moment(startDate).diff(endDate);
|
|
57
|
+
}
|
|
58
|
+
transformHourMinuteToCorrectFormat(data, format = 'hh:mm A') {
|
|
59
|
+
const dateObj = JSON.parse(JSON.stringify(data));
|
|
60
|
+
const time = '2022-12-12T' + ((+dateObj.hour < 10 ? ('0' + (+dateObj.hour)) : dateObj.hour)
|
|
61
|
+
+ ':' + (+dateObj.minute < 10 ? ('0' + (+dateObj.minute)) : dateObj.minute) + ':00');
|
|
62
|
+
return this.changeFormat(time, format);
|
|
63
|
+
}
|
|
64
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ParseDateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
65
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ParseDateService }); }
|
|
66
|
+
}
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ParseDateService, decorators: [{
|
|
68
|
+
type: Injectable
|
|
69
|
+
}] });
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UtZGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy9wYXJzZS1kYXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxLQUFLLGNBQWMsTUFBTSxpQkFBaUIsQ0FBQzs7QUFJbEQsTUFBTSxPQUFPLGdCQUFnQjtJQUUzQixZQUFZLENBQUMsSUFBUyxFQUFFLE1BQU0sR0FBRyxFQUFFLEVBQUUsVUFBeUI7UUFDNUQsTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUM7UUFDbEQsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1QixDQUFDO1FBQ0QsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxlQUFlLENBQUMsSUFBUyxFQUFFLE1BQU0sR0FBRyxFQUFFLEVBQUUsVUFBeUI7UUFDL0QsTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUM7UUFDbEQsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLE9BQU8sY0FBYyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMs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LE1BQU0sSUFBSSxHQUFHLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO2NBQ3JGLEdBQUcsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQ3pGLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUcsTUFBTSxDQUFDLENBQUM7SUFDMUMsQ0FBQzsrR0F6RVUsZ0JBQWdCO21IQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgKiBhcyBtb21lbnRUaW1lem9uZSBmcm9tICdtb21lbnQtdGltZXpvbmUnO1xuaW1wb3J0IHsgSG91ck1pbnV0ZSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL2hvdXItbWludXRlLmludGVyZmFjZVwiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGFyc2VEYXRlU2VydmljZSB7XG5cbiAgdG9Mb2NhbGVUaW1lKHRpbWU6IGFueSwgZm9ybWF0ID0gJycsIHRpbWV6b25lSWQ6IHN0cmluZyB8IG51bGwpOiBzdHJpbmcge1xuICAgIGZvcm1hdCA9IChmb3JtYXQpID8gZm9ybWF0IDogJ01NL0REL3l5eXkgaGg6bW0gQSc7XG4gICAgY29uc3QgbW9tZW50RGF0ZSA9IG1vbWVudFRpbWV6b25lLnV0Yyh0aW1lKTtcbiAgICBpZiAodGltZXpvbmVJZCkge1xuICAgICAgbW9tZW50RGF0ZS50eih0aW1lem9uZUlkKTtcbiAgICB9XG4gICAgcmV0dXJuIG1vbWVudERhdGUuZm9ybWF0KGZvcm1hdCk7XG4gIH1cblxuICBmcm9tTG9jYWxlVG9VdGModGltZTogYW55LCBmb3JtYXQgPSAnJywgdGltZXpvbmVJZDogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB7XG4gICAgZm9ybWF0ID0gKGZvcm1hdCkgPyBmb3JtYXQgOiAnTU0vREQveXl5eSBoaDptbSBBJztcbiAgICBpZiAodGltZXpvbmVJZCkge1xuICAgICAgcmV0dXJuIG1vbWVudFRpbWV6b25lLnR6KG1vbWVudCh0aW1lKS5mb3JtYXQoZm9ybWF0KSwgdGltZXpvbmVJZCkudXRjKGZhbHNlKS5mb3JtYXQoKTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgdG9EYXRlKGRhdGU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IERhdGUge1xuICAgIHJldHVybiBtb21lbnQoZGF0ZSkudG9EYXRlKCk7XG4gIH1cblxuICB0b0RhdGVXaXRoRm9ybWF0KGRhdGU6IHN0cmluZywgZm9ybWF0OiBzdHJpbmcpOiBEYXRlIHtcbiAgICByZXR1cm4gbW9tZW50KGRhdGUsIGZvcm1hdCkudG9EYXRlKCk7XG4gIH1cblxuICBnZXREYXlEaWZmZXJlbnRGcm9tQ3VycmVudERheShkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gbW9tZW50KGRhdGUpLmRpZmYobW9tZW50KCksICdkYXlzJylcbiAgfVxuXG4gIGNoYW5nZUZvcm1hdCh0aW1lOiBhbnksIGZvcm1hdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbW9tZW50KHRpbWUpLmZvcm1hdChmb3JtYXQpO1xuICB9XG5cbiAgY2hhbmdlTG9jYWxGb3JtYXQodGltZTogYW55LCBmb3JtYXQ6IHN0cmluZywgdGltZXpvbmU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG1vbWVudCh0aW1lKS50eih0aW1lem9uZSkuZm9ybWF0KGZvcm1hdCk7XG4gIH1cblxuICBhZGRUb0RhdGUoZGF0ZTogRGF0ZSB8IG51bGwsIHRvQWRkOiB7c2Vjb25kPzogbnVtYmVyICwgbWludXRlPzogbnVtYmVyLCBkYXlzPzogbnVtYmVyfSAgPSB7fSwgZm9ybWF0Pzogc3RyaW5nIHwgbnVsbCwgdHlwZTogJ2Zvcm1hdCcgfCAnZGF0ZScgPSAnZm9ybWF0JyApOiBzdHJpbmcgfCBEYXRlIHtcbiAgICBjb25zdCBtb21lbnREYXRlID0gKGRhdGUgPyBtb21lbnQoZGF0ZSkgOiBtb21lbnQoKSlcbiAgICAgIC5hZGQodG9BZGQuc2Vjb25kIHx8IDAsICdzZWNvbmQnKVxuICAgICAgLmFkZCh0b0FkZC5taW51dGUgfHwgMCwgJ21pbnV0ZScpXG4gICAgICAuYWRkKHRvQWRkLmRheXMgfHwgMCwgJ2RheXMnKTtcblxuICAgIGlmICh0eXBlID09PSAnZm9ybWF0Jykge1xuICAgICAgcmV0dXJuIG1vbWVudERhdGUuZm9ybWF0KGZvcm1hdCB8fCAnTU0vREQveXl5eScpO1xuICAgIH1cblxuICAgIHJldHVybiBtb21lbnREYXRlLnRvRGF0ZSgpO1xuICB9XG5cbiAgZ2V0RGF0ZUZvcldlZWtEYXkoZGF5OiBudW1iZXIsIGZvcldlZWsgPSAwKTogRGF0ZSB7XG4gICAgcmV0dXJuIG1vbWVudCgpLmFkZChmb3JXZWVrLCAnd2VlaycpLmRheShkYXkpLnRvRGF0ZSgpO1xuICB9XG5cbiAgZ2V0TG9jYWxEYXRlRm9yV2Vla0RheShkYXk6IG51bWJlciwgZm9yV2VlayA9IDAsIHRpbWV6b25lSWQ6IHN0cmluZyk6IERhdGUge1xuICAgIHJldHVybiBtb21lbnQoKS50eih0aW1lem9uZUlkKS5hZGQoZm9yV2VlaywgJ3dlZWsnKS5kYXkoZGF5KS50b0RhdGUoKTtcbiAgfVxuXG4gIGNvbnRhaW5zRGF5KHN0YXJ0RGF0ZTogc3RyaW5nLCBlbmREYXRlOiBzdHJpbmcsIGRhdGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBtb21lbnQoZGF0ZSkuaXNCZXR3ZWVuKHN0YXJ0RGF0ZSwgZW5kRGF0ZSwgJ2RheXMnLCAgJ1tdJyk7XG4gIH1cblxuICBnZXREaWZmKHN0YXJ0RGF0ZTogc3RyaW5nLCBlbmREYXRlOiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybiBtb21lbnQoc3RhcnREYXRlKS5kaWZmKGVuZERhdGUpO1xuICB9XG5cbiAgdHJhbnNmb3JtSG91ck1pbnV0ZVRvQ29ycmVjdEZvcm1hdChkYXRhOiBzdHJpbmcgfCBIb3VyTWludXRlLCBmb3JtYXQgPSAnaGg6bW0gQScpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRhdGVPYmogPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcbiAgICBjb25zdCB0aW1lID0gJzIwMjItMTItMTJUJyArICgoK2RhdGVPYmouaG91ciA8IDEwID8gKCcwJyArICgrZGF0ZU9iai5ob3VyKSkgOiBkYXRlT2JqLmhvdXIpXG4gICAgICAgICsgJzonICsgKCtkYXRlT2JqLm1pbnV0ZSA8IDEwID8gKCcwJyArICgrZGF0ZU9iai5taW51dGUpKSA6IGRhdGVPYmoubWludXRlKSArICc6MDAnKTtcbiAgICByZXR1cm4gdGhpcy5jaGFuZ2VGb3JtYXQodGltZSwgIGZvcm1hdCk7XG4gIH1cblxuXG59XG4iXX0=
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -5,6 +5,7 @@ export * from './lib/pipes/generate-error-messages.pipe';
|
|
|
5
5
|
export * from './lib/pipes/array-to-string.pipe';
|
|
6
6
|
export * from './lib/pipes/get-value-by-key-from-object.pipe';
|
|
7
7
|
export * from './lib/services/input.service';
|
|
8
|
+
export * from './lib/services/parse-date.service';
|
|
8
9
|
export * from './lib/interfaces/app-input.interface';
|
|
9
10
|
export * from './lib/interfaces/button-types.enum';
|
|
10
11
|
export * from './lib/interfaces/label-type.enum';
|
|
@@ -19,4 +20,5 @@ export * from './lib/components/clear-value/clear-value.component';
|
|
|
19
20
|
export * from './lib/components/date-range-datepicker/date-range-datepicker.component';
|
|
20
21
|
export * from './lib/components/menu/menu.component';
|
|
21
22
|
export * from './lib/components/label/label.component';
|
|
22
|
-
|
|
23
|
+
export * from './lib/components/date-time-picker/date-time-picker.component';
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLHdFQUF3RSxDQUFDO0FBQ3ZGLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDhEQUE4RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBzaGFyZWQtY29tcG9uZW50c1xuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL2dlbmVyYXRlLWVycm9yLW1lc3NhZ2VzLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvYXJyYXktdG8tc3RyaW5nLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvZ2V0LXZhbHVlLWJ5LWtleS1mcm9tLW9iamVjdC5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2lucHV0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvcGFyc2UtZGF0ZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvYXBwLWlucHV0LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL2J1dHRvbi10eXBlcy5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvbGFiZWwtdHlwZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvYXV0b2NvbXBsZXRlLWNvbmZpZ3MuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvaW5wdXQtbWFzay5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9pY29uLWJ1dHRvbi9pY29uLWJ1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90ZXh0L3RleHQtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdXRvY29tcGxldGUtc2VsZWN0L2F1dG9jb21wbGV0ZS1zZWxlY3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY2xlYXItdmFsdWUvY2xlYXItdmFsdWUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0ZS1yYW5nZS1kYXRlcGlja2VyL2RhdGUtcmFuZ2UtZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tZW51L21lbnUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGFiZWwvbGFiZWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0ZS10aW1lLXBpY2tlci9kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudCc7XG4iXX0=
|
|
@@ -3,14 +3,16 @@ import { Pipe, inject, Injectable, Directive, Input, HostListener, EventEmitter,
|
|
|
3
3
|
import * as i1 from '@ngx-translate/core';
|
|
4
4
|
import { TranslateModule, TranslatePipe, TranslateService } from '@ngx-translate/core';
|
|
5
5
|
import * as i3 from '@angular/forms';
|
|
6
|
-
import { NgControl, FormControlName, ReactiveFormsModule, UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms';
|
|
6
|
+
import { NgControl, FormControlName, ReactiveFormsModule, UntypedFormGroup, UntypedFormControl, Validators, FormsModule } from '@angular/forms';
|
|
7
|
+
import moment from 'moment';
|
|
8
|
+
import * as momentTimezone from 'moment-timezone';
|
|
7
9
|
import { MatIconButton, MatFabButton, MatButton } from '@angular/material/button';
|
|
8
10
|
import { NgClass, NgIf, NgOptimizedImage, NgFor, NgForOf } from '@angular/common';
|
|
9
11
|
import { MatTooltip } from '@angular/material/tooltip';
|
|
10
12
|
import * as i1$1 from '@angular/material/icon';
|
|
11
13
|
import { MatIcon, MatIconModule } from '@angular/material/icon';
|
|
12
14
|
import * as i4 from '@angular/material/form-field';
|
|
13
|
-
import { MatFormFieldModule, MatLabel } from '@angular/material/form-field';
|
|
15
|
+
import { MatFormFieldModule, MatLabel, MatError } from '@angular/material/form-field';
|
|
14
16
|
import { MatInput } from '@angular/material/input';
|
|
15
17
|
import { NgxMaskDirective, NgxMaskPipe, NgxMaskService } from 'ngx-mask';
|
|
16
18
|
import { MatProgressSpinner } from '@angular/material/progress-spinner';
|
|
@@ -138,6 +140,72 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
138
140
|
}]
|
|
139
141
|
}] });
|
|
140
142
|
|
|
143
|
+
class ParseDateService {
|
|
144
|
+
toLocaleTime(time, format = '', timezoneId) {
|
|
145
|
+
format = (format) ? format : 'MM/DD/yyyy hh:mm A';
|
|
146
|
+
const momentDate = momentTimezone.utc(time);
|
|
147
|
+
if (timezoneId) {
|
|
148
|
+
momentDate.tz(timezoneId);
|
|
149
|
+
}
|
|
150
|
+
return momentDate.format(format);
|
|
151
|
+
}
|
|
152
|
+
fromLocaleToUtc(time, format = '', timezoneId) {
|
|
153
|
+
format = (format) ? format : 'MM/DD/yyyy hh:mm A';
|
|
154
|
+
if (timezoneId) {
|
|
155
|
+
return momentTimezone.tz(moment(time).format(format), timezoneId).utc(false).format();
|
|
156
|
+
}
|
|
157
|
+
return '';
|
|
158
|
+
}
|
|
159
|
+
toDate(date) {
|
|
160
|
+
return moment(date).toDate();
|
|
161
|
+
}
|
|
162
|
+
toDateWithFormat(date, format) {
|
|
163
|
+
return moment(date, format).toDate();
|
|
164
|
+
}
|
|
165
|
+
getDayDifferentFromCurrentDay(date) {
|
|
166
|
+
return moment(date).diff(moment(), 'days');
|
|
167
|
+
}
|
|
168
|
+
changeFormat(time, format) {
|
|
169
|
+
return moment(time).format(format);
|
|
170
|
+
}
|
|
171
|
+
changeLocalFormat(time, format, timezone) {
|
|
172
|
+
return moment(time).tz(timezone).format(format);
|
|
173
|
+
}
|
|
174
|
+
addToDate(date, toAdd = {}, format, type = 'format') {
|
|
175
|
+
const momentDate = (date ? moment(date) : moment())
|
|
176
|
+
.add(toAdd.second || 0, 'second')
|
|
177
|
+
.add(toAdd.minute || 0, 'minute')
|
|
178
|
+
.add(toAdd.days || 0, 'days');
|
|
179
|
+
if (type === 'format') {
|
|
180
|
+
return momentDate.format(format || 'MM/DD/yyyy');
|
|
181
|
+
}
|
|
182
|
+
return momentDate.toDate();
|
|
183
|
+
}
|
|
184
|
+
getDateForWeekDay(day, forWeek = 0) {
|
|
185
|
+
return moment().add(forWeek, 'week').day(day).toDate();
|
|
186
|
+
}
|
|
187
|
+
getLocalDateForWeekDay(day, forWeek = 0, timezoneId) {
|
|
188
|
+
return moment().tz(timezoneId).add(forWeek, 'week').day(day).toDate();
|
|
189
|
+
}
|
|
190
|
+
containsDay(startDate, endDate, date) {
|
|
191
|
+
return moment(date).isBetween(startDate, endDate, 'days', '[]');
|
|
192
|
+
}
|
|
193
|
+
getDiff(startDate, endDate) {
|
|
194
|
+
return moment(startDate).diff(endDate);
|
|
195
|
+
}
|
|
196
|
+
transformHourMinuteToCorrectFormat(data, format = 'hh:mm A') {
|
|
197
|
+
const dateObj = JSON.parse(JSON.stringify(data));
|
|
198
|
+
const time = '2022-12-12T' + ((+dateObj.hour < 10 ? ('0' + (+dateObj.hour)) : dateObj.hour)
|
|
199
|
+
+ ':' + (+dateObj.minute < 10 ? ('0' + (+dateObj.minute)) : dateObj.minute) + ':00');
|
|
200
|
+
return this.changeFormat(time, format);
|
|
201
|
+
}
|
|
202
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ParseDateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
203
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ParseDateService }); }
|
|
204
|
+
}
|
|
205
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ParseDateService, decorators: [{
|
|
206
|
+
type: Injectable
|
|
207
|
+
}] });
|
|
208
|
+
|
|
141
209
|
/**
|
|
142
210
|
* Enum representing different types of buttons.
|
|
143
211
|
*/
|
|
@@ -1289,7 +1357,7 @@ class LabelComponent {
|
|
|
1289
1357
|
this.matChipAction = false;
|
|
1290
1358
|
}
|
|
1291
1359
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1292
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LabelComponent, isStandalone: true, selector: "i-tech-label", inputs: { color: "color", text: "text", innerHtml: "innerHtml", bordered: "bordered", tooltip: "tooltip", size: "size", iconName: "iconName", iconSvg: "iconSvg", disableRipple: "disableRipple", matChipAction: "matChipAction" }, ngImport: i0, template: "<div [class]=\"iconName || iconSvg ? 'trailing-icon flex' : 'flex'\">\n <mat-chip\n [class]=\"'label_' + color\"\n [ngClass]=\"{bordered: bordered, small: size === 'small', matChipAction: 'pointer'}\"\n [matTooltip]=\"(tooltip || '') | translate\"\n [disableRipple]=\"disableRipple\"\n >\n <div class=\"flex_align_center flex_gap\" [ngClass]=\"matChipAction ? 'pointer' : ''\">\n <span *ngIf=\"!innerHtml\">{{text | translate}}</span>\n <span *ngIf=\"innerHtml\" [innerHtml]=\"innerHtml | translate\"></span>\n <mat-icon *ngIf=\"iconName\">{{iconName}}</mat-icon>\n <mat-icon *ngIf=\"iconSvg\" [svgIcon]=\"iconSvg!\"></mat-icon>\n </div>\n </mat-chip>\n</div>\n", dependencies: [{ kind: "component", type: MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
1360
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LabelComponent, isStandalone: true, selector: "i-tech-label", inputs: { color: "color", text: "text", innerHtml: "innerHtml", bordered: "bordered", tooltip: "tooltip", size: "size", iconName: "iconName", iconSvg: "iconSvg", disableRipple: "disableRipple", matChipAction: "matChipAction" }, ngImport: i0, template: "<div [class]=\"iconName || iconSvg ? 'trailing-icon flex' : 'flex'\">\n <mat-chip\n [class]=\"'label_' + color\"\n [ngClass]=\"{bordered: bordered, small: size === 'small', matChipAction: 'pointer'}\"\n [matTooltip]=\"(tooltip || '') | translate\"\n [disableRipple]=\"disableRipple\"\n >\n <div class=\"flex_align_center flex_gap\" [ngClass]=\"matChipAction ? 'pointer' : ''\">\n <span *ngIf=\"!innerHtml\">{{text | translate}}</span>\n <span *ngIf=\"innerHtml\" [innerHtml]=\"innerHtml | translate\"></span>\n <mat-icon *ngIf=\"iconName\">{{iconName}}</mat-icon>\n <mat-icon *ngIf=\"iconSvg\" [svgIcon]=\"iconSvg!\"></mat-icon>\n </div>\n </mat-chip>\n</div>\n", dependencies: [{ kind: "component", type: MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
1293
1361
|
}
|
|
1294
1362
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LabelComponent, decorators: [{
|
|
1295
1363
|
type: Component,
|
|
@@ -1298,7 +1366,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
1298
1366
|
MatTooltip,
|
|
1299
1367
|
NgClass,
|
|
1300
1368
|
TranslateModule,
|
|
1301
|
-
MatIcon
|
|
1369
|
+
MatIcon,
|
|
1370
|
+
NgIf
|
|
1302
1371
|
], standalone: true, template: "<div [class]=\"iconName || iconSvg ? 'trailing-icon flex' : 'flex'\">\n <mat-chip\n [class]=\"'label_' + color\"\n [ngClass]=\"{bordered: bordered, small: size === 'small', matChipAction: 'pointer'}\"\n [matTooltip]=\"(tooltip || '') | translate\"\n [disableRipple]=\"disableRipple\"\n >\n <div class=\"flex_align_center flex_gap\" [ngClass]=\"matChipAction ? 'pointer' : ''\">\n <span *ngIf=\"!innerHtml\">{{text | translate}}</span>\n <span *ngIf=\"innerHtml\" [innerHtml]=\"innerHtml | translate\"></span>\n <mat-icon *ngIf=\"iconName\">{{iconName}}</mat-icon>\n <mat-icon *ngIf=\"iconSvg\" [svgIcon]=\"iconSvg!\"></mat-icon>\n </div>\n </mat-chip>\n</div>\n" }]
|
|
1303
1372
|
}], propDecorators: { color: [{
|
|
1304
1373
|
type: Input
|
|
@@ -1322,6 +1391,77 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
1322
1391
|
type: Input
|
|
1323
1392
|
}] } });
|
|
1324
1393
|
|
|
1394
|
+
class DateTimePickerComponent {
|
|
1395
|
+
constructor(inputService, parseDateService) {
|
|
1396
|
+
this.inputService = inputService;
|
|
1397
|
+
this.parseDateService = parseDateService;
|
|
1398
|
+
this.dateChangeEvent = new EventEmitter();
|
|
1399
|
+
this.submit = false;
|
|
1400
|
+
this.required = false;
|
|
1401
|
+
this.isFocused = false;
|
|
1402
|
+
this.form = new UntypedFormGroup({
|
|
1403
|
+
time: new UntypedFormControl(),
|
|
1404
|
+
date: new UntypedFormControl(),
|
|
1405
|
+
});
|
|
1406
|
+
this.ngControl = this.inputService.injectNgControl();
|
|
1407
|
+
}
|
|
1408
|
+
ngAfterViewInit() {
|
|
1409
|
+
this.setValue();
|
|
1410
|
+
this.ngControl.control.valueChanges.subscribe(() => {
|
|
1411
|
+
this.setValue();
|
|
1412
|
+
});
|
|
1413
|
+
}
|
|
1414
|
+
setValue() {
|
|
1415
|
+
if (!this.ngControl?.control) {
|
|
1416
|
+
return;
|
|
1417
|
+
}
|
|
1418
|
+
const dateTime = this.ngControl.control.value;
|
|
1419
|
+
this.form.patchValue({
|
|
1420
|
+
date: new Date(this.parseDateService.changeFormat(dateTime, 'YYYY-MM-DD') + 'T' + '00:00:00'),
|
|
1421
|
+
time: this.parseDateService.changeFormat(dateTime, 'HH:mm')
|
|
1422
|
+
}, { emitEvent: false });
|
|
1423
|
+
}
|
|
1424
|
+
dateChange(timeInput) {
|
|
1425
|
+
if (!timeInput.value) {
|
|
1426
|
+
timeInput.focus();
|
|
1427
|
+
}
|
|
1428
|
+
this.setDatTimeValue();
|
|
1429
|
+
}
|
|
1430
|
+
setDatTimeValue() {
|
|
1431
|
+
if (this.form.value.date && this.form.value.time) {
|
|
1432
|
+
const date = this.parseDateService.changeFormat(this.form.value.date, 'YYYY-MM-DD');
|
|
1433
|
+
const time = this.form.value.time;
|
|
1434
|
+
this.ngControl.control.patchValue(date + 'T' + time, { emitEvent: false });
|
|
1435
|
+
}
|
|
1436
|
+
else {
|
|
1437
|
+
this.ngControl.control.patchValue(null, { emitEvent: false });
|
|
1438
|
+
}
|
|
1439
|
+
this.dateChangeEvent.emit();
|
|
1440
|
+
}
|
|
1441
|
+
onFocus() {
|
|
1442
|
+
this.isFocused = true;
|
|
1443
|
+
}
|
|
1444
|
+
onBlur() {
|
|
1445
|
+
this.isFocused = false;
|
|
1446
|
+
}
|
|
1447
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateTimePickerComponent, deps: [{ token: InputService }, { token: ParseDateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1448
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DateTimePickerComponent, isStandalone: true, selector: "i-tech-date-time-picker", inputs: { label: "label", submit: "submit", required: "required" }, outputs: { dateChangeEvent: "dateChangeEvent" }, providers: [ParseDateService], ngImport: i0, template: "<div class=\"date_time_picker_container\"\n *ngIf=\"ngControl?.control\"\n [class.readonly_field]=\"ngControl.control.disabled\"\n>\n <mat-label>{{label | translate}}</mat-label>\n <span *ngIf=\"required\" class=\"required-input\"> *</span>\n\n <div class=\"date_time_picker\"\n [formGroup]=\"form\"\n [ngClass]=\"{'focused': isFocused}\"\n >\n <input type=\"text\" dateMask class=\"date\"\n placeholder=\"mm/dd/yy\"\n formControlName=\"date\"\n [matDatepicker]=\"DatePicker\"\n (click)=\"DatePicker.open()\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (selectionchange)=\"dateChange(dateElement)\"\n >\n <mat-datepicker #DatePicker></mat-datepicker>\n <input type=\"time\"\n #dateElement\n class=\"time\"\n formControlName=\"time\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (change)=\"setDatTimeValue()\"\n />\n </div>\n <!-- Error Messages -->\n <mat-error *ngIf=\"!!(ngControl.control.errors && submit)\">\n {{ngControl.control | generateErrorMessages : (label || '')}}\n </mat-error>\n</div>\n", styles: [".date_time_picker_container .readonly_field{opacity:.4;pointer-events:none}.date_time_picker_container .date_time_picker{display:flex;outline:1px solid #D7D9DE;border-radius:4px;padding:8px;background-color:#fff;width:max-content}.date_time_picker_container .date_time_picker.focused{outline:3px solid #0060DF}.date_time_picker_container .date_time_picker input{padding:unset;border:unset;background-color:#fff;outline:unset;line-height:20px;font-weight:500;font-size:13px;letter-spacing:.2px}.date_time_picker_container .date_time_picker input.date{width:75px}.date_time_picker_container .date_time_picker input.time{width:63px}.date_time_picker_container .date_time_picker input[type=time]::-webkit-calendar-picker-indicator{display:none;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i3$1.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i3$1.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "directive", type: DateMaskDirective, selector: "[dateMask]", inputs: ["maskType", "matDatepicker", "rangeFormControl"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FormsModule }, { 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "pipe", type: GenerateErrorMessagesPipe, name: "generateErrorMessages" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }] }); }
|
|
1449
|
+
}
|
|
1450
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateTimePickerComponent, decorators: [{
|
|
1451
|
+
type: Component,
|
|
1452
|
+
args: [{ selector: 'i-tech-date-time-picker', imports: [MatDatepickerModule, NgxMaskDirective, DateMaskDirective, TranslateModule,
|
|
1453
|
+
FormsModule, NgClass, ReactiveFormsModule, MatLabel, GenerateErrorMessagesPipe, NgIf, MatError
|
|
1454
|
+
], standalone: true, providers: [ParseDateService], template: "<div class=\"date_time_picker_container\"\n *ngIf=\"ngControl?.control\"\n [class.readonly_field]=\"ngControl.control.disabled\"\n>\n <mat-label>{{label | translate}}</mat-label>\n <span *ngIf=\"required\" class=\"required-input\"> *</span>\n\n <div class=\"date_time_picker\"\n [formGroup]=\"form\"\n [ngClass]=\"{'focused': isFocused}\"\n >\n <input type=\"text\" dateMask class=\"date\"\n placeholder=\"mm/dd/yy\"\n formControlName=\"date\"\n [matDatepicker]=\"DatePicker\"\n (click)=\"DatePicker.open()\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (selectionchange)=\"dateChange(dateElement)\"\n >\n <mat-datepicker #DatePicker></mat-datepicker>\n <input type=\"time\"\n #dateElement\n class=\"time\"\n formControlName=\"time\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (change)=\"setDatTimeValue()\"\n />\n </div>\n <!-- Error Messages -->\n <mat-error *ngIf=\"!!(ngControl.control.errors && submit)\">\n {{ngControl.control | generateErrorMessages : (label || '')}}\n </mat-error>\n</div>\n", styles: [".date_time_picker_container .readonly_field{opacity:.4;pointer-events:none}.date_time_picker_container .date_time_picker{display:flex;outline:1px solid #D7D9DE;border-radius:4px;padding:8px;background-color:#fff;width:max-content}.date_time_picker_container .date_time_picker.focused{outline:3px solid #0060DF}.date_time_picker_container .date_time_picker input{padding:unset;border:unset;background-color:#fff;outline:unset;line-height:20px;font-weight:500;font-size:13px;letter-spacing:.2px}.date_time_picker_container .date_time_picker input.date{width:75px}.date_time_picker_container .date_time_picker input.time{width:63px}.date_time_picker_container .date_time_picker input[type=time]::-webkit-calendar-picker-indicator{display:none;pointer-events:none}\n"] }]
|
|
1455
|
+
}], ctorParameters: () => [{ type: InputService }, { type: ParseDateService }], propDecorators: { dateChangeEvent: [{
|
|
1456
|
+
type: Output
|
|
1457
|
+
}], label: [{
|
|
1458
|
+
type: Input
|
|
1459
|
+
}], submit: [{
|
|
1460
|
+
type: Input
|
|
1461
|
+
}], required: [{
|
|
1462
|
+
type: Input
|
|
1463
|
+
}] } });
|
|
1464
|
+
|
|
1325
1465
|
/*
|
|
1326
1466
|
* Public API Surface of shared-components
|
|
1327
1467
|
*/
|
|
@@ -1330,5 +1470,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
1330
1470
|
* Generated bundle index. Do not edit.
|
|
1331
1471
|
*/
|
|
1332
1472
|
|
|
1333
|
-
export { ArrayToStringPipe, AutocompleteSelectComponent, ButtonComponent, ButtonType, ClearValueComponent, DatePickerComponent, DateRangeDatepickerComponent, GenerateErrorMessagesPipe, GetValueByKeyFromObjectPipe, IconButtonComponent, InputMaskDirective, InputService, LabelComponent, LabelTypeEnum, MenuComponent, TextInputComponent };
|
|
1473
|
+
export { ArrayToStringPipe, AutocompleteSelectComponent, ButtonComponent, ButtonType, ClearValueComponent, DatePickerComponent, DateRangeDatepickerComponent, DateTimePickerComponent, GenerateErrorMessagesPipe, GetValueByKeyFromObjectPipe, IconButtonComponent, InputMaskDirective, InputService, LabelComponent, LabelTypeEnum, MenuComponent, ParseDateService, TextInputComponent };
|
|
1334
1474
|
//# sourceMappingURL=i-tech-shared-components.mjs.map
|