i-tech-shared-components 1.2.51 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/fesm2022/i-tech-shared-components.mjs +72 -72
  2. package/fesm2022/i-tech-shared-components.mjs.map +1 -1
  3. package/package.json +10 -12
  4. package/esm2022/i-tech-shared-components.mjs +0 -5
  5. package/esm2022/lib/components/ag-grid/ag-grid-button-cell/ag-grid-button-cell.component.mjs +0 -25
  6. package/esm2022/lib/components/ag-grid/status-label-cell.component.mjs +0 -41
  7. package/esm2022/lib/components/ag-grid/tooltip-cell-renderer.component.mjs +0 -49
  8. package/esm2022/lib/components/autocomplete-select/autocomplete-select.component.mjs +0 -456
  9. package/esm2022/lib/components/button/button.component.mjs +0 -122
  10. package/esm2022/lib/components/clear-value/clear-value.component.mjs +0 -34
  11. package/esm2022/lib/components/date-picker/date-picker.component.mjs +0 -117
  12. package/esm2022/lib/components/date-range-datepicker/date-range-datepicker.component.mjs +0 -141
  13. package/esm2022/lib/components/date-time-picker/date-time-picker.component.mjs +0 -169
  14. package/esm2022/lib/components/icon-button/icon-button.component.mjs +0 -49
  15. package/esm2022/lib/components/label/label.component.mjs +0 -56
  16. package/esm2022/lib/components/menu/menu.component.mjs +0 -56
  17. package/esm2022/lib/components/new-sidebar/company-image/company-image.component.mjs +0 -26
  18. package/esm2022/lib/components/new-sidebar/new-sidebar.component.mjs +0 -201
  19. package/esm2022/lib/components/text/text-input.component.mjs +0 -97
  20. package/esm2022/lib/directives/date-mask.directive.mjs +0 -92
  21. package/esm2022/lib/directives/input-mask.directive.mjs +0 -95
  22. package/esm2022/lib/interfaces/app-input.interface.mjs +0 -2
  23. package/esm2022/lib/interfaces/auth.interface.mjs +0 -16
  24. package/esm2022/lib/interfaces/autocomplete-configs.interface.mjs +0 -2
  25. package/esm2022/lib/interfaces/button-types.enum.mjs +0 -19
  26. package/esm2022/lib/interfaces/dropdown-selection.constants.mjs +0 -12
  27. package/esm2022/lib/interfaces/hour-minute.interface.mjs +0 -2
  28. package/esm2022/lib/interfaces/label-type.enum.mjs +0 -30
  29. package/esm2022/lib/interfaces/navigation-link.interface.mjs +0 -2
  30. package/esm2022/lib/interfaces/timezone.interface.mjs +0 -2
  31. package/esm2022/lib/pipes/array-to-string.pipe.mjs +0 -17
  32. package/esm2022/lib/pipes/generate-error-messages.pipe.mjs +0 -29
  33. package/esm2022/lib/pipes/get-value-by-key-from-object.pipe.mjs +0 -45
  34. package/esm2022/lib/services/ag-grid-functions.service.mjs +0 -49
  35. package/esm2022/lib/services/input.service.mjs +0 -35
  36. package/esm2022/lib/services/parse-date.service.mjs +0 -70
  37. package/esm2022/public-api.mjs +0 -30
@@ -1,169 +0,0 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild } 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
- set disabled(disabled) {
19
- this._disabled = disabled;
20
- if (disabled) {
21
- this.form.get('time')?.disable();
22
- this.form.get('date')?.disable();
23
- }
24
- else {
25
- this.form.get('time')?.enable();
26
- this.form.get('date')?.enable();
27
- }
28
- }
29
- ;
30
- get disabled() {
31
- return this._disabled;
32
- }
33
- constructor(inputService, parseDateService) {
34
- this.inputService = inputService;
35
- this.parseDateService = parseDateService;
36
- this.dateChangeEvent = new EventEmitter();
37
- this.submit = false;
38
- this.required = false;
39
- this._disabled = false;
40
- this.isFocused = false;
41
- this.form = new UntypedFormGroup({
42
- time: new UntypedFormControl(),
43
- date: new UntypedFormControl(),
44
- });
45
- // Track datepicker state
46
- this.focusTimeoutId = null;
47
- this.datePickerJustClosed = false;
48
- this.ngControl = this.inputService.injectNgControl();
49
- }
50
- ngAfterViewInit() {
51
- this.setValue();
52
- this.ngControl.control.valueChanges.subscribe(() => {
53
- this.setValue();
54
- });
55
- }
56
- ngOnDestroy() {
57
- if (this.focusTimeoutId) {
58
- clearTimeout(this.focusTimeoutId);
59
- }
60
- }
61
- setValue() {
62
- if (!this.ngControl?.control) {
63
- return;
64
- }
65
- const dateTime = this.ngControl.control.value;
66
- if (!dateTime) {
67
- this.form.patchValue({
68
- date: null,
69
- time: null
70
- }, { emitEvent: false });
71
- return;
72
- }
73
- this.form.patchValue({
74
- date: new Date(this.parseDateService.changeFormat(dateTime, 'YYYY-MM-DD') + 'T' + '00:00:00'),
75
- time: this.parseDateService.changeFormat(dateTime, 'HH:mm')
76
- }, { emitEvent: false });
77
- }
78
- onDatePickerClosed() {
79
- // Update form value first
80
- this.setDateTimeValue();
81
- // Mark that the datepicker just closed
82
- this.datePickerJustClosed = true;
83
- // Clear any existing timeout
84
- if (this.focusTimeoutId) {
85
- clearTimeout(this.focusTimeoutId);
86
- }
87
- // Use a callback that runs outside Angular's change detection
88
- this.focusTimeoutId = setTimeout(() => {
89
- // Focus time input
90
- if (this.timeInput?.nativeElement) {
91
- this.timeInput.nativeElement.focus();
92
- }
93
- // Reset flag after enough time
94
- setTimeout(() => {
95
- this.datePickerJustClosed = false;
96
- }, 200);
97
- }, 100); // Longer delay to let Angular Material finish its work
98
- }
99
- setDateTimeValue() {
100
- if (this.form.value.date && this.form.value.time) {
101
- const date = this.parseDateService.changeFormat(this.form.value.date, 'YYYY-MM-DD');
102
- const time = this.form.value.time;
103
- this.ngControl.control.patchValue(date + 'T' + time, { emitEvent: false });
104
- }
105
- else {
106
- this.ngControl.control.patchValue(null, { emitEvent: false });
107
- }
108
- this.dateChangeEvent.emit();
109
- }
110
- onFocus(event) {
111
- // If datepicker just closed and focus is going to date input, move it to time input
112
- if (this.datePickerJustClosed) {
113
- const target = event.target;
114
- const dateInput = document.querySelector('input[formControlName="date"]');
115
- if (target === dateInput) {
116
- // Cancel any existing focus timeout
117
- if (this.focusTimeoutId) {
118
- clearTimeout(this.focusTimeoutId);
119
- }
120
- // Set new timeout to focus time input
121
- this.focusTimeoutId = setTimeout(() => {
122
- if (this.timeInput?.nativeElement) {
123
- this.timeInput.nativeElement.focus();
124
- }
125
- }, 10);
126
- return;
127
- }
128
- }
129
- this.isFocused = true;
130
- }
131
- onBlur(event) {
132
- // Don't handle blur during datepicker transitions
133
- if (this.datePickerJustClosed) {
134
- this.isFocused = false;
135
- return;
136
- }
137
- // Check if focus is moving to another element within our component
138
- setTimeout(() => {
139
- const dateInput = document.querySelector('input[formControlName="date"]');
140
- const timeInput = this.timeInput?.nativeElement;
141
- const activeElement = document.activeElement;
142
- if (activeElement !== dateInput && activeElement !== timeInput) {
143
- this.isFocused = false;
144
- }
145
- }, 50);
146
- }
147
- 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 }); }
148
- 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", disabled: "disabled" }, outputs: { dateChangeEvent: "dateChangeEvent" }, providers: [ParseDateService], viewQueries: [{ propertyName: "timeInput", first: true, predicate: ["dateElement"], descendants: true }], ngImport: i0, template: "<div class=\"date_time_picker_container\"\n *ngIf=\"ngControl?.control\"\n [class.readonly_field]=\"disabled\"\n>\n <mat-label [ngClass]=\"{'readonly-color': disabled}\">{{label | translate}}</mat-label>\n <span *ngIf=\"required\" class=\"required-input\" [ngClass]=\"{'readonly-color': disabled}\"> *</span>\n\n <div class=\"date_time_picker\"\n [formGroup]=\"form\"\n [ngClass]=\"{'focused': isFocused, 'disabled': disabled}\"\n >\n <input type=\"text\" dateMask class=\"date\"\n placeholder=\"mm/dd/yy\"\n formControlName=\"date\"\n [matDatepicker]=\"DatePicker\"\n [disabled]=\"disabled\"\n (click)=\"!disabled && DatePicker.open()\"\n (focus)=\"onFocus($event)\"\n (focusout)=\"onBlur($event)\"\n >\n <mat-datepicker #DatePicker\n (closed)=\"onDatePickerClosed()\">\n </mat-datepicker>\n <input type=\"time\"\n #dateElement\n class=\"time\"\n formControlName=\"time\"\n [disabled]=\"disabled\"\n (focus)=\"onFocus($event)\"\n (focusout)=\"onBlur($event)\"\n (change)=\"setDateTimeValue()\"\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: [""], 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"] }] }); }
149
- }
150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateTimePickerComponent, decorators: [{
151
- type: Component,
152
- args: [{ selector: 'i-tech-date-time-picker', imports: [MatDatepickerModule, NgxMaskDirective, DateMaskDirective, TranslateModule,
153
- FormsModule, NgClass, ReactiveFormsModule, MatLabel, GenerateErrorMessagesPipe, NgIf, MatError
154
- ], standalone: true, providers: [ParseDateService], template: "<div class=\"date_time_picker_container\"\n *ngIf=\"ngControl?.control\"\n [class.readonly_field]=\"disabled\"\n>\n <mat-label [ngClass]=\"{'readonly-color': disabled}\">{{label | translate}}</mat-label>\n <span *ngIf=\"required\" class=\"required-input\" [ngClass]=\"{'readonly-color': disabled}\"> *</span>\n\n <div class=\"date_time_picker\"\n [formGroup]=\"form\"\n [ngClass]=\"{'focused': isFocused, 'disabled': disabled}\"\n >\n <input type=\"text\" dateMask class=\"date\"\n placeholder=\"mm/dd/yy\"\n formControlName=\"date\"\n [matDatepicker]=\"DatePicker\"\n [disabled]=\"disabled\"\n (click)=\"!disabled && DatePicker.open()\"\n (focus)=\"onFocus($event)\"\n (focusout)=\"onBlur($event)\"\n >\n <mat-datepicker #DatePicker\n (closed)=\"onDatePickerClosed()\">\n </mat-datepicker>\n <input type=\"time\"\n #dateElement\n class=\"time\"\n formControlName=\"time\"\n [disabled]=\"disabled\"\n (focus)=\"onFocus($event)\"\n (focusout)=\"onBlur($event)\"\n (change)=\"setDateTimeValue()\"\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" }]
155
- }], ctorParameters: () => [{ type: i1.InputService }, { type: i2.ParseDateService }], propDecorators: { dateChangeEvent: [{
156
- type: Output
157
- }], label: [{
158
- type: Input
159
- }], submit: [{
160
- type: Input
161
- }], required: [{
162
- type: Input
163
- }], disabled: [{
164
- type: Input
165
- }], timeInput: [{
166
- type: ViewChild,
167
- args: ['dateElement']
168
- }] } });
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZGF0ZS10aW1lLXBpY2tlci9kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXRpbWUtcGlja2VyL2RhdGUtdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDNUMsT0FBTyxFQUVMLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNqQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFckUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7Ozs7QUFZckYsTUFBTSxPQUFPLHVCQUF1QjtJQUts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QyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXJcIjtcbmltcG9ydCB7IE5neE1hc2tEaXJlY3RpdmUgfSBmcm9tIFwibmd4LW1hc2tcIjtcbmltcG9ydCB7XG4gIEZvcm1Db250cm9sTmFtZSxcbiAgRm9ybXNNb2R1bGUsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbiAgVW50eXBlZEZvcm1Hcm91cFxufSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IE5nQ2xhc3MsIE5nSWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBNYXRFcnJvciwgTWF0TGFiZWwgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IERhdGVNYXNrRGlyZWN0aXZlIH0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvZGF0ZS1tYXNrLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgUGFyc2VEYXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9wYXJzZS1kYXRlLnNlcnZpY2VcIjtcbmltcG9ydCB7IElucHV0U2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9pbnB1dC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBHZW5lcmF0ZUVycm9yTWVzc2FnZXNQaXBlIH0gZnJvbSBcIi4uLy4uL3BpcGVzL2dlbmVyYXRlLWVycm9yLW1lc3NhZ2VzLnBpcGVcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaS10ZWNoLWRhdGUtdGltZS1waWNrZXInLFxuICBpbXBvcnRzOiBbTWF0RGF0ZXBpY2tlck1vZHVsZSwgTmd4TWFza0RpcmVjdGl2ZSwgRGF0ZU1hc2tEaXJlY3RpdmUsIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSwgTmdDbGFzcywgUmVhY3RpdmVGb3Jtc01vZHVsZSwgTWF0TGFiZWwsIEdlbmVyYXRlRXJyb3JNZXNzYWdlc1BpcGUsIE5nSWYsIE1hdEVycm9yXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogW1BhcnNlRGF0ZVNlcnZpY2VdLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBEYXRlVGltZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBPdXRwdXQoKSBkYXRlQ2hhbmdlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBJbnB1dCgpIGxhYmVsITogc3RyaW5nO1xuICBASW5wdXQoKSBzdWJtaXQgPSBmYWxzZTtcbiAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgc2V0IGRpc2FibGVkKGRpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuZm9ybS5nZXQoJ3RpbWUnKT8uZGlzYWJsZSgpO1xuICAgICAgdGhpcy5mb3JtLmdldCgnZGF0ZScpPy5kaXNhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybS5nZXQoJ3RpbWUnKT8uZW5hYmxlKCk7XG4gICAgICB0aGlzLmZvcm0uZ2V0KCdkYXRlJyk/LmVuYWJsZSgpO1xuICAgIH1cbiAgfTtcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ2RhdGVFbGVtZW50JykgdGltZUlucHV0ITogRWxlbWVudFJlZjtcblxuICBpc0ZvY3VzZWQgPSBmYWxzZTtcbiAgZm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcbiAgICB0aW1lOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCksXG4gICAgZGF0ZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpLFxuICB9KVxuICBuZ0NvbnRyb2w6IEZvcm1Db250cm9sTmFtZTtcblxuICAvLyBUcmFjayBkYXRlcGlja2VyIHN0YXRlXG4gIHByaXZhdGUgZm9jdXNUaW1lb3V0SWQ6IGFueSA9IG51bGw7XG4gIHByaXZhdGUgZGF0ZVBpY2tlckp1c3RDbG9zZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgaW5wdXRTZXJ2aWNlOiBJbnB1dFNlcnZpY2UsXG4gICAgICBwcml2YXRlIHBhcnNlRGF0ZVNlcnZpY2U6IFBhcnNlRGF0ZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5uZ0NvbnRyb2wgPSB0aGlzLmlucHV0U2VydmljZS5pbmplY3ROZ0NvbnRyb2woKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldFZhbHVlKCk7XG4gICAgdGhpcy5uZ0NvbnRyb2wuY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuc2V0VmFsdWUoKVxuICAgIH0pXG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb2N1c1RpbWVvdXRJZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuZm9jdXNUaW1lb3V0SWQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0VmFsdWUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm5nQ29udHJvbD8uY29udHJvbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBkYXRlVGltZSA9IHRoaXMubmdDb250cm9sLmNvbnRyb2wudmFsdWU7XG4gICAgaWYgKCFkYXRlVGltZSkge1xuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICBkYXRlOiBudWxsLFxuICAgICAgICB0aW1lOiBudWxsXG4gICAgICB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgZGF0ZTogbmV3IERhdGUodGhpcy5wYXJzZURhdGVTZXJ2aWNlLmNoYW5nZUZvcm1hdChkYXRlVGltZSwgJ1lZWVktTU0tREQnKSArICdUJyArICcwMDowMDowMCcpLFxuICAgICAgdGltZTogdGhpcy5wYXJzZURhdGVTZXJ2aWNlLmNoYW5nZUZvcm1hdChkYXRlVGltZSwgJ0hIOm1tJylcbiAgICB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSlcbiAgfVxuXG4gIHB1YmxpYyBvbkRhdGVQaWNrZXJDbG9zZWQoKTogdm9pZCB7XG4gICAgLy8gVXBkYXRlIGZvcm0gdmFsdWUgZmlyc3RcbiAgICB0aGlzLnNldERhdGVUaW1lVmFsdWUoKTtcblxuICAgIC8vIE1hcmsgdGhhdCB0aGUgZGF0ZXBpY2tlciBqdXN0IGNsb3NlZFxuICAgIHRoaXMuZGF0ZVBpY2tlckp1c3RDbG9zZWQgPSB0cnVlO1xuXG4gICAgLy8gQ2xlYXIgYW55IGV4aXN0aW5nIHRpbWVvdXRcbiAgICBpZiAodGhpcy5mb2N1c1RpbWVvdXRJZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuZm9jdXNUaW1lb3V0SWQpO1xuICAgIH1cblxuICAgIC8vIFVzZSBhIGNhbGxiYWNrIHRoYXQgcnVucyBvdXRzaWRlIEFuZ3VsYXIncyBjaGFuZ2UgZGV0ZWN0aW9uXG4gICAgdGhpcy5mb2N1c1RpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLy8gRm9jdXMgdGltZSBpbnB1dFxuICAgICAgaWYgKHRoaXMudGltZUlucHV0Py5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgIHRoaXMudGltZUlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVzZXQgZmxhZyBhZnRlciBlbm91Z2ggdGltZVxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuZGF0ZVBpY2tlckp1c3RDbG9zZWQgPSBmYWxzZTtcbiAgICAgIH0sIDIwMCk7XG4gICAgfSwgMTAwKTsgLy8gTG9uZ2VyIGRlbGF5IHRvIGxldCBBbmd1bGFyIE1hdGVyaWFsIGZpbmlzaCBpdHMgd29ya1xuICB9XG5cbiAgcHVibGljIHNldERhdGVUaW1lVmFsdWUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9ybS52YWx1ZS5kYXRlICYmIHRoaXMuZm9ybS52YWx1ZS50aW1lKSB7XG4gICAgICBjb25zdCBkYXRlID0gdGhpcy5wYXJzZURhdGVTZXJ2aWNlLmNoYW5nZUZvcm1hdCh0aGlzLmZvcm0udmFsdWUuZGF0ZSwgJ1lZWVktTU0tREQnKTtcbiAgICAgIGNvbnN0IHRpbWUgPSB0aGlzLmZvcm0udmFsdWUudGltZTtcbiAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2wucGF0Y2hWYWx1ZShkYXRlICsgJ1QnICsgdGltZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm5nQ29udHJvbC5jb250cm9sLnBhdGNoVmFsdWUobnVsbCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH1cbiAgICB0aGlzLmRhdGVDaGFuZ2VFdmVudC5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgb25Gb2N1cyhldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIC8vIElmIGRhdGVwaWNrZXIganVzdCBjbG9zZWQgYW5kIGZvY3VzIGlzIGdvaW5nIHRvIGRhdGUgaW5wdXQsIG1vdmUgaXQgdG8gdGltZSBpbnB1dFxuICAgIGlmICh0aGlzLmRhdGVQaWNrZXJKdXN0Q2xvc2VkKSB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjb25zdCBkYXRlSW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFtmb3JtQ29udHJvbE5hbWU9XCJkYXRlXCJdJyk7XG5cbiAgICAgIGlmICh0YXJnZXQgPT09IGRhdGVJbnB1dCkge1xuICAgICAgICAvLyBDYW5jZWwgYW55IGV4aXN0aW5nIGZvY3VzIHRpbWVvdXRcbiAgICAgICAgaWYgKHRoaXMuZm9jdXNUaW1lb3V0SWQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5mb2N1c1RpbWVvdXRJZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgbmV3IHRpbWVvdXQgdG8gZm9jdXMgdGltZSBpbnB1dFxuICAgICAgICB0aGlzLmZvY3VzVGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMudGltZUlucHV0Py5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnRpbWVJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAxMCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBvbkJsdXIoZXZlbnQ/OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgLy8gRG9uJ3QgaGFuZGxlIGJsdXIgZHVyaW5nIGRhdGVwaWNrZXIgdHJhbnNpdGlvbnNcbiAgICBpZiAodGhpcy5kYXRlUGlja2VySnVzdENsb3NlZCkge1xuICAgICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiBmb2N1cyBpcyBtb3ZpbmcgdG8gYW5vdGhlciBlbGVtZW50IHdpdGhpbiBvdXIgY29tcG9uZW50XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBkYXRlSW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFtmb3JtQ29udHJvbE5hbWU9XCJkYXRlXCJdJyk7XG4gICAgICBjb25zdCB0aW1lSW5wdXQgPSB0aGlzLnRpbWVJbnB1dD8ubmF0aXZlRWxlbWVudDtcbiAgICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuXG4gICAgICBpZiAoYWN0aXZlRWxlbWVudCAhPT0gZGF0ZUlucHV0ICYmIGFjdGl2ZUVsZW1lbnQgIT09IHRpbWVJbnB1dCkge1xuICAgICAgICB0aGlzLmlzRm9jdXNlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0sIDUwKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRhdGVfdGltZV9waWNrZXJfY29udGFpbmVyXCJcbiAgICAgKm5nSWY9XCJuZ0NvbnRyb2w/LmNvbnRyb2xcIlxuICAgICBbY2xhc3MucmVhZG9ubHlfZmllbGRdPVwiZGlzYWJsZWRcIlxuPlxuICAgIDxtYXQtbGFiZWwgW25nQ2xhc3NdPVwieydyZWFkb25seS1jb2xvcic6IGRpc2FibGVkfVwiPnt7bGFiZWwgfCB0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxuICAgIDxzcGFuICpuZ0lmPVwicmVxdWlyZWRcIiBjbGFzcz1cInJlcXVpcmVkLWlucHV0XCIgW25nQ2xhc3NdPVwieydyZWFkb25seS1jb2xvcic6IGRpc2FibGVkfVwiPiAqPC9zcGFuPlxuXG4gICAgPGRpdiBjbGFzcz1cImRhdGVfdGltZV9waWNrZXJcIlxuICAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAgICAgIFtuZ0NsYXNzXT1cInsnZm9jdXNlZCc6IGlzRm9jdXNlZCwgJ2Rpc2FibGVkJzogZGlzYWJsZWR9XCJcbiAgICA+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGRhdGVNYXNrIGNsYXNzPVwiZGF0ZVwiXG4gICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5XCJcbiAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRhdGVcIlxuICAgICAgICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwiRGF0ZVBpY2tlclwiXG4gICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgKGNsaWNrKT1cIiFkaXNhYmxlZCAmJiBEYXRlUGlja2VyLm9wZW4oKVwiXG4gICAgICAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgIChmb2N1c291dCk9XCJvbkJsdXIoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgPG1hdC1kYXRlcGlja2VyICNEYXRlUGlja2VyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xvc2VkKT1cIm9uRGF0ZVBpY2tlckNsb3NlZCgpXCI+XG4gICAgICAgIDwvbWF0LWRhdGVwaWNrZXI+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGltZVwiXG4gICAgICAgICAgICAgICAjZGF0ZUVsZW1lbnRcbiAgICAgICAgICAgICAgIGNsYXNzPVwidGltZVwiXG4gICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0aW1lXCJcbiAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgIChmb2N1c291dCk9XCJvbkJsdXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAoY2hhbmdlKT1cInNldERhdGVUaW1lVmFsdWUoKVwiXG4gICAgICAgIC8+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBFcnJvciBNZXNzYWdlcyAtLT5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiISEobmdDb250cm9sLmNvbnRyb2wuZXJyb3JzICYmIHN1Ym1pdClcIj5cbiAgICAgICAge3tuZ0NvbnRyb2wuY29udHJvbCB8IGdlbmVyYXRlRXJyb3JNZXNzYWdlcyA6IChsYWJlbCB8fCAnJyl9fVxuICAgIDwvbWF0LWVycm9yPlxuPC9kaXY+XG4iXX0=
@@ -1,49 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { MatFabButton, MatIconButton } from "@angular/material/button";
3
- import { NgClass, NgIf } from "@angular/common";
4
- import { MatTooltip } from "@angular/material/tooltip";
5
- import { TranslateModule } from "@ngx-translate/core";
6
- import { MatIcon } from "@angular/material/icon";
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@ngx-translate/core";
9
- export class IconButtonComponent {
10
- constructor() {
11
- this.size = 'medium';
12
- this.type = 'tonal';
13
- this.buttonClick = new EventEmitter();
14
- }
15
- onClick(event) {
16
- if (!this.disabled) {
17
- this.buttonClick.emit();
18
- }
19
- }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IconButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: IconButtonComponent, isStandalone: true, selector: "i-tech-icon-button", inputs: { size: "size", type: "type", iconSvg: "iconSvg", iconName: "iconName", tooltip: "tooltip", disabled: "disabled" }, outputs: { buttonClick: "buttonClick" }, ngImport: i0, template: "<button\n *ngIf=\"['tonal','standard'].includes(type)\"\n mat-icon-button\n [ngClass]=\"{small: size === 'small', tonal: type === 'tonal', standard: type === 'standard'}\"\n [matTooltip]=\"tooltip | translate\"\n [matTooltipDisabled]=\"!tooltip\"\n [disabled]=\"disabled || false\"\n (click)=\"onClick($event)\"\n>\n <mat-icon *ngIf=\"iconSvg\" [svgIcon]=\"iconSvg\"></mat-icon>\n <mat-icon *ngIf=\"iconName\">{{iconName}}</mat-icon>\n</button>\n\n<button\n *ngIf=\"type === 'filled'\"\n mat-fab\n class=\"filled\"\n [ngClass]=\"{small: size === 'small'}\"\n [matTooltip]=\"tooltip | translate\"\n [matTooltipDisabled]=\"!tooltip\"\n [color]=\"'primary'\"\n [disabled]=\"disabled || false\"\n (click)=\"onClick($event)\"\n>\n <mat-icon *ngIf=\"iconSvg\" [svgIcon]=\"iconSvg\"></mat-icon>\n <mat-icon *ngIf=\"iconName\">{{iconName}}</mat-icon>\n</button>\n", styles: [""], dependencies: [{ kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatFabButton, selector: "button[mat-fab]", inputs: ["extended"], exportAs: ["matButton"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
22
- }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IconButtonComponent, decorators: [{
24
- type: Component,
25
- args: [{ selector: 'i-tech-icon-button', imports: [
26
- MatIconButton,
27
- NgClass,
28
- MatTooltip,
29
- TranslateModule,
30
- MatIcon,
31
- MatFabButton,
32
- NgIf
33
- ], standalone: true, template: "<button\n *ngIf=\"['tonal','standard'].includes(type)\"\n mat-icon-button\n [ngClass]=\"{small: size === 'small', tonal: type === 'tonal', standard: type === 'standard'}\"\n [matTooltip]=\"tooltip | translate\"\n [matTooltipDisabled]=\"!tooltip\"\n [disabled]=\"disabled || false\"\n (click)=\"onClick($event)\"\n>\n <mat-icon *ngIf=\"iconSvg\" [svgIcon]=\"iconSvg\"></mat-icon>\n <mat-icon *ngIf=\"iconName\">{{iconName}}</mat-icon>\n</button>\n\n<button\n *ngIf=\"type === 'filled'\"\n mat-fab\n class=\"filled\"\n [ngClass]=\"{small: size === 'small'}\"\n [matTooltip]=\"tooltip | translate\"\n [matTooltipDisabled]=\"!tooltip\"\n [color]=\"'primary'\"\n [disabled]=\"disabled || false\"\n (click)=\"onClick($event)\"\n>\n <mat-icon *ngIf=\"iconSvg\" [svgIcon]=\"iconSvg\"></mat-icon>\n <mat-icon *ngIf=\"iconName\">{{iconName}}</mat-icon>\n</button>\n" }]
34
- }], propDecorators: { size: [{
35
- type: Input
36
- }], type: [{
37
- type: Input
38
- }], iconSvg: [{
39
- type: Input
40
- }], iconName: [{
41
- type: Input
42
- }], tooltip: [{
43
- type: Input
44
- }], disabled: [{
45
- type: Input
46
- }], buttonClick: [{
47
- type: Output
48
- }] } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ljb24tYnV0dG9uL2ljb24tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9pY29uLWJ1dHRvbi9pY29uLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBaUJqRCxNQUFNLE9BQU8sbUJBQW1CO0lBZmhDO1FBZ0JXLFNBQUksR0FBdUIsUUFBUSxDQUFDO1FBQ3BDLFNBQUksR0FBb0MsT0FBTyxDQUFDO1FBSy9DLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQU9sRDtJQUxDLE9BQU8sQ0FBQyxLQUFpQjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUM7K0dBYlUsbUJBQW1CO21HQUFuQixtQkFBbUIsbVBDdEJoQyxxOUJBMkJBLDBERGZJLGFBQWEsNkZBQ2IsT0FBTyxvRkFDUCxVQUFVLGdSQUNWLGVBQWUsNEZBQ2YsT0FBTywySUFDUCxZQUFZLDJHQUNaLElBQUk7OzRGQUlLLG1CQUFtQjtrQkFmL0IsU0FBUzsrQkFDRSxvQkFBb0IsV0FHckI7d0JBQ1AsYUFBYTt3QkFDYixPQUFPO3dCQUNQLFVBQVU7d0JBQ1YsZUFBZTt3QkFDZixPQUFPO3dCQUNQLFlBQVk7d0JBQ1osSUFBSTtxQkFDTCxjQUNXLElBQUk7OEJBR1AsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEZhYkJ1dHRvbiwgTWF0SWNvbkJ1dHRvbiB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcbmltcG9ydCB7IE5nQ2xhc3MsIE5nSWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBNYXRUb29sdGlwIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXBcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaS10ZWNoLWljb24tYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ljb24tYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2ljb24tYnV0dG9uLmNvbXBvbmVudC5zY3NzJyxcbiAgaW1wb3J0czogW1xuICAgIE1hdEljb25CdXR0b24sXG4gICAgTmdDbGFzcyxcbiAgICBNYXRUb29sdGlwLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBNYXRJY29uLFxuICAgIE1hdEZhYkJ1dHRvbixcbiAgICBOZ0lmXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWNvbkJ1dHRvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHNpemU6ICdtZWRpdW0nIHwgJ3NtYWxsJyA9ICdtZWRpdW0nO1xuICBASW5wdXQoKSB0eXBlOiAnc3RhbmRhcmQnIHwgJ2ZpbGxlZCcgfCAndG9uYWwnID0gJ3RvbmFsJztcbiAgQElucHV0KCkgaWNvblN2ZyE6IHN0cmluZztcbiAgQElucHV0KCkgaWNvbk5hbWUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRvb2x0aXAhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRpc2FibGVkITogYm9vbGVhbjtcbiAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuYnV0dG9uQ2xpY2suZW1pdCgpO1xuICAgIH1cbiAgfVxufVxuIiwiPGJ1dHRvblxuICAgICAgICAqbmdJZj1cIlsndG9uYWwnLCdzdGFuZGFyZCddLmluY2x1ZGVzKHR5cGUpXCJcbiAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgIFtuZ0NsYXNzXT1cIntzbWFsbDogc2l6ZSA9PT0gJ3NtYWxsJywgdG9uYWw6IHR5cGUgPT09ICd0b25hbCcsIHN0YW5kYXJkOiB0eXBlID09PSAnc3RhbmRhcmQnfVwiXG4gICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbbWF0VG9vbHRpcERpc2FibGVkXT1cIiF0b29sdGlwXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGZhbHNlXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiXG4+XG4gICAgPG1hdC1pY29uICpuZ0lmPVwiaWNvblN2Z1wiIFtzdmdJY29uXT1cImljb25TdmdcIj48L21hdC1pY29uPlxuICAgIDxtYXQtaWNvbiAqbmdJZj1cImljb25OYW1lXCI+e3tpY29uTmFtZX19PC9tYXQtaWNvbj5cbjwvYnV0dG9uPlxuXG48YnV0dG9uXG4gICAgICAgICpuZ0lmPVwidHlwZSA9PT0gJ2ZpbGxlZCdcIlxuICAgICAgICBtYXQtZmFiXG4gICAgICAgIGNsYXNzPVwiZmlsbGVkXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie3NtYWxsOiBzaXplID09PSAnc21hbGwnfVwiXG4gICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbbWF0VG9vbHRpcERpc2FibGVkXT1cIiF0b29sdGlwXCJcbiAgICAgICAgW2NvbG9yXT1cIidwcmltYXJ5J1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBmYWxzZVwiXG4gICAgICAgIChjbGljayk9XCJvbkNsaWNrKCRldmVudClcIlxuPlxuICAgIDxtYXQtaWNvbiAqbmdJZj1cImljb25TdmdcIiBbc3ZnSWNvbl09XCJpY29uU3ZnXCI+PC9tYXQtaWNvbj5cbiAgICA8bWF0LWljb24gKm5nSWY9XCJpY29uTmFtZVwiPnt7aWNvbk5hbWV9fTwvbWF0LWljb24+XG48L2J1dHRvbj5cbiJdfQ==
@@ -1,56 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { LabelTypeEnum } from "../../interfaces/label-type.enum";
3
- import { MatChip } from "@angular/material/chips";
4
- import { MatTooltip } from "@angular/material/tooltip";
5
- import { NgClass, NgIf } from "@angular/common";
6
- import { TranslateModule } from "@ngx-translate/core";
7
- import { MatIcon } from "@angular/material/icon";
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@ngx-translate/core";
10
- export class LabelComponent {
11
- constructor() {
12
- this.color = LabelTypeEnum.primary;
13
- this.bordered = false;
14
- this.size = 'standard';
15
- this.iconSvg = '';
16
- this.disableRipple = false;
17
- this.matChipAction = false;
18
- this.forTable = false;
19
- }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
- 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", forTable: "forTable" }, ngImport: i0, template: "<div [class]=\"{table_row_item: forTable,'trailing-icon' : iconName || iconSvg}\">\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"] }] }); }
22
- }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LabelComponent, decorators: [{
24
- type: Component,
25
- args: [{ selector: 'i-tech-label', imports: [
26
- MatChip,
27
- MatTooltip,
28
- NgClass,
29
- TranslateModule,
30
- MatIcon,
31
- NgIf
32
- ], standalone: true, template: "<div [class]=\"{table_row_item: forTable,'trailing-icon' : iconName || iconSvg}\">\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" }]
33
- }], propDecorators: { color: [{
34
- type: Input
35
- }], text: [{
36
- type: Input
37
- }], innerHtml: [{
38
- type: Input
39
- }], bordered: [{
40
- type: Input
41
- }], tooltip: [{
42
- type: Input
43
- }], size: [{
44
- type: Input
45
- }], iconName: [{
46
- type: Input
47
- }], iconSvg: [{
48
- type: Input
49
- }], disableRipple: [{
50
- type: Input
51
- }], matChipAction: [{
52
- type: Input
53
- }], forTable: [{
54
- type: Input
55
- }] } });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2xhYmVsL2xhYmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9sYWJlbC9sYWJlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQWdCakQsTUFBTSxPQUFPLGNBQWM7SUFkM0I7UUFlVyxVQUFLLEdBQWtCLGFBQWEsQ0FBQyxPQUFPLENBQUM7UUFHN0MsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixTQUFJLEdBQXlCLFVBQVUsQ0FBQztRQUV4QyxZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2Isa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsYUFBUSxHQUFHLEtBQUssQ0FBQztLQUMzQjsrR0FaWSxjQUFjO21HQUFkLGNBQWMsa1VDdEIzQixteEJBZUEsNENERkksT0FBTyxrU0FDUCxVQUFVLGlSQUNWLE9BQU8sbUZBQ1AsZUFBZSw0RkFDZixPQUFPLDJJQUNQLElBQUk7OzRGQUlLLGNBQWM7a0JBZDFCLFNBQVM7K0JBQ0UsY0FBYyxXQUdmO3dCQUNQLE9BQU87d0JBQ1AsVUFBVTt3QkFDVixPQUFPO3dCQUNQLGVBQWU7d0JBQ2YsT0FBTzt3QkFDUCxJQUFJO3FCQUNMLGNBQ1csSUFBSTs4QkFHUCxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGFiZWxUeXBlRW51bSB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL2xhYmVsLXR5cGUuZW51bVwiO1xuaW1wb3J0IHsgTWF0Q2hpcCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jaGlwc1wiO1xuaW1wb3J0IHsgTWF0VG9vbHRpcCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwXCI7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ0lmIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpLXRlY2gtbGFiZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGFiZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0Q2hpcCxcbiAgICBNYXRUb29sdGlwLFxuICAgIE5nQ2xhc3MsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIE1hdEljb24sXG4gICAgTmdJZlxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIExhYmVsQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY29sb3I6IExhYmVsVHlwZUVudW0gPSBMYWJlbFR5cGVFbnVtLnByaW1hcnk7XG4gIEBJbnB1dCgpIHRleHQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlubmVySHRtbCE6IHN0cmluZztcbiAgQElucHV0KCkgYm9yZGVyZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgdG9vbHRpcD86IHN0cmluZztcbiAgQElucHV0KCkgc2l6ZTogJ3NtYWxsJyB8ICdzdGFuZGFyZCcgPSAnc3RhbmRhcmQnO1xuICBASW5wdXQoKSBpY29uTmFtZT86IHN0cmluZztcbiAgQElucHV0KCkgaWNvblN2ZyA9ICcnO1xuICBASW5wdXQoKSBkaXNhYmxlUmlwcGxlID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1hdENoaXBBY3Rpb24gPSBmYWxzZTtcbiAgQElucHV0KCkgZm9yVGFibGUgPSBmYWxzZTtcbn1cbiIsIjxkaXYgW2NsYXNzXT1cInt0YWJsZV9yb3dfaXRlbTogZm9yVGFibGUsJ3RyYWlsaW5nLWljb24nIDogaWNvbk5hbWUgfHwgaWNvblN2Z31cIj5cbiAgICA8bWF0LWNoaXBcbiAgICAgICAgICAgIFtjbGFzc109XCInbGFiZWxfJyArIGNvbG9yXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntib3JkZXJlZDogYm9yZGVyZWQsIHNtYWxsOiBzaXplID09PSAnc21hbGwnLCBtYXRDaGlwQWN0aW9uOiAncG9pbnRlcid9XCJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIih0b29sdGlwIHx8ICcnKSB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbZGlzYWJsZVJpcHBsZV09XCJkaXNhYmxlUmlwcGxlXCJcbiAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4X2FsaWduX2NlbnRlciBmbGV4X2dhcFwiIFtuZ0NsYXNzXT1cIm1hdENoaXBBY3Rpb24gPyAncG9pbnRlcicgOiAnJ1wiPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhaW5uZXJIdG1sXCI+e3t0ZXh0IHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImlubmVySHRtbFwiIFtpbm5lckh0bWxdPVwiaW5uZXJIdG1sIHwgdHJhbnNsYXRlXCI+PC9zcGFuPlxuICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiaWNvbk5hbWVcIj57e2ljb25OYW1lfX08L21hdC1pY29uPlxuICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiaWNvblN2Z1wiIFtzdmdJY29uXT1cImljb25TdmchXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9tYXQtY2hpcD5cbjwvZGl2PlxuIl19
@@ -1,56 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from "@angular/core";
2
- import { ButtonType } from "../../interfaces/button-types.enum";
3
- import { DropdownItemIcon } from "../../interfaces/dropdown-selection.constants";
4
- import { MatMenu, MatMenuItem, MatMenuTrigger } from "@angular/material/menu";
5
- import { MatIcon } from "@angular/material/icon";
6
- import { NgClass, NgForOf, NgIf } from "@angular/common";
7
- import { TranslateModule } from "@ngx-translate/core";
8
- import { ButtonComponent } from "../button/button.component";
9
- import { MatLabel } from "@angular/material/form-field";
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "@ngx-translate/core";
12
- export class MenuComponent {
13
- constructor() {
14
- this.positionX = 'before';
15
- this.menuOptions = [];
16
- this.emitEvent = new EventEmitter();
17
- this.loading = false;
18
- this.ButtonType = ButtonType;
19
- this.DropdownItemIcon = DropdownItemIcon;
20
- this.matMenuState = false;
21
- }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MenuComponent, isStandalone: true, selector: "i-tech-menu", inputs: { text: "text", dataName: "dataName", containerClass: "containerClass", icon: "icon", positionX: "positionX", menuOptions: "menuOptions", loading: "loading" }, outputs: { emitEvent: "emitEvent" }, ngImport: i0, template: "<div class=\"custom_dropdown_container\"\n [attr.data-name]=\"dataName\"\n [ngClass]=\"containerClass\"\n>\n <ng-container *ngIf=\"!loading\">\n <i-tech-button\n [matMenuTriggerFor]=\"beforeMenu\"\n [type]=\"ButtonType.OUTLINE\"\n [fontIcon]=\"icon || 'keyboard_arrow_down'\"\n [text]=\"(text || '') \"\n (menuOpened)=\"matMenuState = true\"\n (menuClosed)=\"matMenuState = false\"\n [activated]=\"matMenuState\"\n ></i-tech-button>\n </ng-container>\n\n <ng-container *ngIf=\"loading\">\n <i-tech-button\n [type]=\"ButtonType.OUTLINE\"\n [fontIcon]=\"icon || 'keyboard_arrow_down'\"\n [text]=\"(text || '') \"\n [submit]=\"true\"\n [disabled]=\"true\"\n [activated]=\"false\"\n ></i-tech-button>\n </ng-container>\n\n <mat-menu #beforeMenu=\"matMenu\" [xPosition]=\"positionX\">\n <button mat-menu-item *ngFor=\"let option of menuOptions\" (click)=\"emitEvent.emit(option.value)\">\n <mat-icon *ngIf=\"option.type\" [svgIcon]=\"DropdownItemIcon[option.type]\"></mat-icon>\n <mat-label class=\"meu_item_label\">{{(option.text || '') | translate}}</mat-label>\n </button>\n </mat-menu>\n</div>\n", styles: [".custom_dropdown_container i-tech-button{display:inline-block}.custom_dropdown_container .loader-container{display:flex;justify-content:center;align-items:center}mat-menu{height:max-content}\n"], dependencies: [{ kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ButtonComponent, selector: "i-tech-button", inputs: ["text", "data_cy", "fontIcon", "svgIcon", "type", "customClass", "submit", "disabled", "activated", "color"], outputs: ["buttonClick"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }] }); }
24
- }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MenuComponent, decorators: [{
26
- type: Component,
27
- args: [{ selector: "i-tech-menu", standalone: true, imports: [
28
- MatMenuTrigger,
29
- MatMenu,
30
- MatIcon,
31
- NgIf,
32
- NgForOf,
33
- MatMenuItem,
34
- TranslateModule,
35
- NgClass,
36
- ButtonComponent,
37
- MatLabel
38
- ], template: "<div class=\"custom_dropdown_container\"\n [attr.data-name]=\"dataName\"\n [ngClass]=\"containerClass\"\n>\n <ng-container *ngIf=\"!loading\">\n <i-tech-button\n [matMenuTriggerFor]=\"beforeMenu\"\n [type]=\"ButtonType.OUTLINE\"\n [fontIcon]=\"icon || 'keyboard_arrow_down'\"\n [text]=\"(text || '') \"\n (menuOpened)=\"matMenuState = true\"\n (menuClosed)=\"matMenuState = false\"\n [activated]=\"matMenuState\"\n ></i-tech-button>\n </ng-container>\n\n <ng-container *ngIf=\"loading\">\n <i-tech-button\n [type]=\"ButtonType.OUTLINE\"\n [fontIcon]=\"icon || 'keyboard_arrow_down'\"\n [text]=\"(text || '') \"\n [submit]=\"true\"\n [disabled]=\"true\"\n [activated]=\"false\"\n ></i-tech-button>\n </ng-container>\n\n <mat-menu #beforeMenu=\"matMenu\" [xPosition]=\"positionX\">\n <button mat-menu-item *ngFor=\"let option of menuOptions\" (click)=\"emitEvent.emit(option.value)\">\n <mat-icon *ngIf=\"option.type\" [svgIcon]=\"DropdownItemIcon[option.type]\"></mat-icon>\n <mat-label class=\"meu_item_label\">{{(option.text || '') | translate}}</mat-label>\n </button>\n </mat-menu>\n</div>\n", styles: [".custom_dropdown_container i-tech-button{display:inline-block}.custom_dropdown_container .loader-container{display:flex;justify-content:center;align-items:center}mat-menu{height:max-content}\n"] }]
39
- }], propDecorators: { text: [{
40
- type: Input
41
- }], dataName: [{
42
- type: Input
43
- }], containerClass: [{
44
- type: Input
45
- }], icon: [{
46
- type: Input
47
- }], positionX: [{
48
- type: Input
49
- }], menuOptions: [{
50
- type: Input
51
- }], emitEvent: [{
52
- type: Output
53
- }], loading: [{
54
- type: Input
55
- }] } });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbWVudS9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tZW51L21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUF5QixNQUFNLCtDQUErQyxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBaUIsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQW9CeEQsTUFBTSxPQUFPLGFBQWE7SUFsQjFCO1FBdUJXLGNBQVMsR0FBa0IsUUFBUSxDQUFDO1FBQ3BDLGdCQUFXLEdBTWYsRUFBRSxDQUFDO1FBQ0UsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDckMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNOLGVBQVUsR0FBRyxVQUFVLENBQUM7UUFDeEIscUJBQWdCLEdBQUcsZ0JBQWdCLENBQUM7UUFDdkQsaUJBQVksR0FBRyxLQUFLLENBQUM7S0FDdEI7K0dBbEJZLGFBQWE7bUdBQWIsYUFBYSxvUkM1QjFCLHUyQ0FrQ0EsMFBEcEJJLGNBQWMscVNBQ2QsT0FBTywyUUFDUCxPQUFPLDJJQUNQLElBQUksNkZBQ0osT0FBTyxtSEFDUCxXQUFXLHFJQUNYLGVBQWUsNEZBQ2YsT0FBTyxvRkFDUCxlQUFlLDJNQUNmLFFBQVE7OzRGQUtDLGFBQWE7a0JBbEJ6QixTQUFTOytCQUNFLGFBQWEsY0FDWCxJQUFJLFdBQ1A7d0JBQ1AsY0FBYzt3QkFDZCxPQUFPO3dCQUNQLE9BQU87d0JBQ1AsSUFBSTt3QkFDSixPQUFPO3dCQUNQLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixPQUFPO3dCQUNQLGVBQWU7d0JBQ2YsUUFBUTtxQkFDVDs4QkFLUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBT0ksU0FBUztzQkFBbEIsTUFBTTtnQkFDRSxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBCdXR0b25UeXBlIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvYnV0dG9uLXR5cGVzLmVudW1cIjtcbmltcG9ydCB7IERyb3Bkb3duSXRlbUljb24sIERyb3Bkb3duU2VsZWN0aW9uVHlwZSB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL2Ryb3Bkb3duLXNlbGVjdGlvbi5jb25zdGFudHNcIjtcbmltcG9ydCB7IE1hdE1lbnUsIE1hdE1lbnVJdGVtLCBNYXRNZW51VHJpZ2dlciwgTWVudVBvc2l0aW9uWCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9tZW51XCI7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcbmltcG9ydCB7IE5nQ2xhc3MsIE5nRm9yT2YsIE5nSWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSBcIi4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50XCI7XG5pbXBvcnQgeyBNYXRMYWJlbCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJpLXRlY2gtbWVudVwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0TWVudVRyaWdnZXIsXG4gICAgTWF0TWVudSxcbiAgICBNYXRJY29uLFxuICAgIE5nSWYsXG4gICAgTmdGb3JPZixcbiAgICBNYXRNZW51SXRlbSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgTmdDbGFzcyxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgTWF0TGFiZWxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9tZW51LmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9tZW51LmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVDb21wb25lbnQge1xuICBASW5wdXQoKSB0ZXh0ITogc3RyaW5nO1xuICBASW5wdXQoKSBkYXRhTmFtZSE6IHN0cmluZztcbiAgQElucHV0KCkgY29udGFpbmVyQ2xhc3MhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGljb24hOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBvc2l0aW9uWDogTWVudVBvc2l0aW9uWCA9ICdiZWZvcmUnO1xuICBASW5wdXQoKSBtZW51T3B0aW9uczogQXJyYXk8e1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgdGV4dDogc3RyaW5nO1xuICAgIHNyYz86IHN0cmluZztcbiAgICBjbGFzcz86IHN0cmluZztcbiAgICB0eXBlPzogRHJvcGRvd25TZWxlY3Rpb25UeXBlO1xuICB9PiA9IFtdO1xuICBAT3V0cHV0KCkgZW1pdEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IEJ1dHRvblR5cGUgPSBCdXR0b25UeXBlO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgRHJvcGRvd25JdGVtSWNvbiA9IERyb3Bkb3duSXRlbUljb247XG4gIG1hdE1lbnVTdGF0ZSA9IGZhbHNlO1xufVxuIiwiPGRpdiBjbGFzcz1cImN1c3RvbV9kcm9wZG93bl9jb250YWluZXJcIlxuICAgICBbYXR0ci5kYXRhLW5hbWVdPVwiZGF0YU5hbWVcIlxuICAgICBbbmdDbGFzc109XCJjb250YWluZXJDbGFzc1wiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsb2FkaW5nXCI+XG4gICAgICAgIDxpLXRlY2gtYnV0dG9uXG4gICAgICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImJlZm9yZU1lbnVcIlxuICAgICAgICAgICAgICAgIFt0eXBlXT1cIkJ1dHRvblR5cGUuT1VUTElORVwiXG4gICAgICAgICAgICAgICAgW2ZvbnRJY29uXT1cImljb24gfHwgJ2tleWJvYXJkX2Fycm93X2Rvd24nXCJcbiAgICAgICAgICAgICAgICBbdGV4dF09XCIodGV4dCB8fCAnJykgXCJcbiAgICAgICAgICAgICAgICAobWVudU9wZW5lZCk9XCJtYXRNZW51U3RhdGUgID0gdHJ1ZVwiXG4gICAgICAgICAgICAgICAgKG1lbnVDbG9zZWQpPVwibWF0TWVudVN0YXRlICA9IGZhbHNlXCJcbiAgICAgICAgICAgICAgICBbYWN0aXZhdGVkXT1cIm1hdE1lbnVTdGF0ZVwiXG4gICAgICAgID48L2ktdGVjaC1idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ1wiPlxuICAgICAgICA8aS10ZWNoLWJ1dHRvblxuICAgICAgICAgICAgICAgIFt0eXBlXT1cIkJ1dHRvblR5cGUuT1VUTElORVwiXG4gICAgICAgICAgICAgICAgW2ZvbnRJY29uXT1cImljb24gfHwgJ2tleWJvYXJkX2Fycm93X2Rvd24nXCJcbiAgICAgICAgICAgICAgICBbdGV4dF09XCIodGV4dCB8fCAnJykgXCJcbiAgICAgICAgICAgICAgICBbc3VibWl0XT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbYWN0aXZhdGVkXT1cImZhbHNlXCJcbiAgICAgICAgPjwvaS10ZWNoLWJ1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxtYXQtbWVudSAjYmVmb3JlTWVudT1cIm1hdE1lbnVcIiBbeFBvc2l0aW9uXT1cInBvc2l0aW9uWFwiPlxuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBtZW51T3B0aW9uc1wiIChjbGljayk9XCJlbWl0RXZlbnQuZW1pdChvcHRpb24udmFsdWUpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJvcHRpb24udHlwZVwiIFtzdmdJY29uXT1cIkRyb3Bkb3duSXRlbUljb25bb3B0aW9uLnR5cGVdXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJtZXVfaXRlbV9sYWJlbFwiPnt7KG9wdGlvbi50ZXh0IHx8ICcnKSB8IHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvbWF0LW1lbnU+XG48L2Rpdj5cbiJdfQ==
@@ -1,26 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { CompaniesEnum } from "../../../interfaces/auth.interface";
3
- import { NgIf, SlicePipe, UpperCasePipe } from "@angular/common";
4
- import { MatTooltipModule } from "@angular/material/tooltip";
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/material/tooltip";
7
- export class CompanyImageComponent {
8
- constructor() {
9
- this.CompaniesEnum = CompaniesEnum;
10
- }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CompanyImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CompanyImageComponent, isStandalone: true, selector: "i-tech-company-image", inputs: { collapsed: "collapsed", userData: "userData", currentCompany: "currentCompany", platform: "platform" }, ngImport: i0, template: "<div class=\"information pointer\" *ngIf=\"userData\">\n <div class=\"information_main\">\n <div class=\"images\">\n <img alt=\"\" class=\"company_img\" *ngIf=\"currentCompany?.image; else noImageComponent\"\n [src]=\"currentCompany.image\"\n [matTooltipDisabled]=\"!collapsed\"\n matTooltipClass=\"multiline_tooltip_for_profile\"\n [matTooltip]=\"(currentCompany?.name || '') + '\\n\\r' + (userData.firstName + ' ' + userData.lastName + '\\n') + (userData.email)\"\n >\n <ng-template #noImageComponent>\n <div class=\"company_img no_image\"\n [matTooltipDisabled]=\"!collapsed\"\n matTooltipClass=\"multiline_tooltip_for_profile\"\n [matTooltip]=\"(currentCompany?.name || '') + '\\n\\r' + (userData.firstName + ' ' + userData.lastName + '\\n') + (userData.email)\"\n >\n {{(currentCompany?.name || '') | slice: 0 : 1 | uppercase}}\n </div>\n </ng-template>\n\n <div class=\"user_img\">\n {{userData.firstName | slice: 0 : 1 | uppercase}}\n </div>\n </div>\n\n <div class=\"names\">\n <div class=\"company_name\">{{currentCompany?.name || ''}}</div>\n <div class=\"user_name\">{{userData.firstName}} {{userData.lastName}}</div>\n </div>\n\n </div>\n <div class=\"time_zone\" *ngIf=\"platform === CompaniesEnum.T3\">\n {{userData.timeZone?.enumType || ''}}\n </div>\n</div>\n", styles: [".information .information_main{display:flex;align-items:center}.information .information_main:hover{background-color:#effaf1;outline:4.5px solid #EFFAF1;border-radius:5px}.information .information_main .images{width:max-content;position:relative}.information .information_main .images .company_img{width:40px;height:40px;border-radius:50%;object-fit:cover}.information .information_main .images .company_img:hover{outline:2px solid rgba(0,172,72,.16)}.information .information_main .images .user_img{position:absolute;bottom:0;right:0;border-radius:50%;width:16px;height:16px;border:1px solid #EFFAF1;background-color:#006b1e;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:11px;line-height:16px}.information .information_main .images .no_image{display:flex;align-items:center;justify-content:center;background-color:#c0e5c7;color:#006b1e;font-weight:700;font-size:18px;line-height:24px}.information .information_main .names{margin-left:8px;width:110px}.information .information_main .names .company_name{color:#424954;font-weight:700;font-size:16px;line-height:24px;letter-spacing:.1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.information .information_main .names .user_name{color:#424954;font-weight:500;font-size:11px;line-height:16px;letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.information .time_zone{margin-top:10px;display:flex;justify-content:center;color:#424954;font-weight:700;font-size:12px;line-height:16px;letter-spacing:.1px}::ng-deep .multiline_tooltip_for_profile{white-space:pre-line}::ng-deep .multiline_tooltip_for_profile .mat-mdc-tooltip-surface{text-align:left!important}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: SlicePipe, name: "slice" }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
13
- }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CompanyImageComponent, decorators: [{
15
- type: Component,
16
- args: [{ selector: 'i-tech-company-image', imports: [NgIf, UpperCasePipe, SlicePipe, MatTooltipModule], standalone: true, template: "<div class=\"information pointer\" *ngIf=\"userData\">\n <div class=\"information_main\">\n <div class=\"images\">\n <img alt=\"\" class=\"company_img\" *ngIf=\"currentCompany?.image; else noImageComponent\"\n [src]=\"currentCompany.image\"\n [matTooltipDisabled]=\"!collapsed\"\n matTooltipClass=\"multiline_tooltip_for_profile\"\n [matTooltip]=\"(currentCompany?.name || '') + '\\n\\r' + (userData.firstName + ' ' + userData.lastName + '\\n') + (userData.email)\"\n >\n <ng-template #noImageComponent>\n <div class=\"company_img no_image\"\n [matTooltipDisabled]=\"!collapsed\"\n matTooltipClass=\"multiline_tooltip_for_profile\"\n [matTooltip]=\"(currentCompany?.name || '') + '\\n\\r' + (userData.firstName + ' ' + userData.lastName + '\\n') + (userData.email)\"\n >\n {{(currentCompany?.name || '') | slice: 0 : 1 | uppercase}}\n </div>\n </ng-template>\n\n <div class=\"user_img\">\n {{userData.firstName | slice: 0 : 1 | uppercase}}\n </div>\n </div>\n\n <div class=\"names\">\n <div class=\"company_name\">{{currentCompany?.name || ''}}</div>\n <div class=\"user_name\">{{userData.firstName}} {{userData.lastName}}</div>\n </div>\n\n </div>\n <div class=\"time_zone\" *ngIf=\"platform === CompaniesEnum.T3\">\n {{userData.timeZone?.enumType || ''}}\n </div>\n</div>\n", styles: [".information .information_main{display:flex;align-items:center}.information .information_main:hover{background-color:#effaf1;outline:4.5px solid #EFFAF1;border-radius:5px}.information .information_main .images{width:max-content;position:relative}.information .information_main .images .company_img{width:40px;height:40px;border-radius:50%;object-fit:cover}.information .information_main .images .company_img:hover{outline:2px solid rgba(0,172,72,.16)}.information .information_main .images .user_img{position:absolute;bottom:0;right:0;border-radius:50%;width:16px;height:16px;border:1px solid #EFFAF1;background-color:#006b1e;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:11px;line-height:16px}.information .information_main .images .no_image{display:flex;align-items:center;justify-content:center;background-color:#c0e5c7;color:#006b1e;font-weight:700;font-size:18px;line-height:24px}.information .information_main .names{margin-left:8px;width:110px}.information .information_main .names .company_name{color:#424954;font-weight:700;font-size:16px;line-height:24px;letter-spacing:.1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.information .information_main .names .user_name{color:#424954;font-weight:500;font-size:11px;line-height:16px;letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.information .time_zone{margin-top:10px;display:flex;justify-content:center;color:#424954;font-weight:700;font-size:12px;line-height:16px;letter-spacing:.1px}::ng-deep .multiline_tooltip_for_profile{white-space:pre-line}::ng-deep .multiline_tooltip_for_profile .mat-mdc-tooltip-surface{text-align:left!important}\n"] }]
17
- }], propDecorators: { collapsed: [{
18
- type: Input
19
- }], userData: [{
20
- type: Input
21
- }], currentCompany: [{
22
- type: Input
23
- }], platform: [{
24
- type: Input
25
- }] } });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFueS1pbWFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbmV3LXNpZGViYXIvY29tcGFueS1pbWFnZS9jb21wYW55LWltYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9uZXctc2lkZWJhci9jb21wYW55LWltYWdlL2NvbXBhbnktaW1hZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFpQixhQUFhLEVBQXlCLE1BQU0sb0NBQW9DLENBQUM7QUFDekcsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQVM3RCxNQUFNLE9BQU8scUJBQXFCO0lBUGxDO1FBWUUsa0JBQWEsR0FBRyxhQUFhLENBQUM7S0FDL0I7K0dBTlkscUJBQXFCO21HQUFyQixxQkFBcUIsa01DWmxDLCtrREFrQ0Esc3RERDNCWSxJQUFJLHdGQUFFLGFBQWEsNkNBQUUsU0FBUyw2Q0FBRSxnQkFBZ0I7OzRGQUsvQyxxQkFBcUI7a0JBUGpDLFNBQVM7K0JBQ0Usc0JBQXNCLFdBQ3ZCLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsY0FDL0MsSUFBSTs4QkFLUCxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0aEludGVyZmFjZSwgQ29tcGFuaWVzRW51bSwgT3JnYW5pemF0aW9uSW50ZXJmYWNlIH0gZnJvbSBcIi4uLy4uLy4uL2ludGVyZmFjZXMvYXV0aC5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IE5nSWYsIFNsaWNlUGlwZSwgVXBwZXJDYXNlUGlwZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpLXRlY2gtY29tcGFueS1pbWFnZScsXG4gIGltcG9ydHM6IFtOZ0lmLCBVcHBlckNhc2VQaXBlLCBTbGljZVBpcGUsIE1hdFRvb2x0aXBNb2R1bGVdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJy4vY29tcGFueS1pbWFnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jb21wYW55LWltYWdlLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBDb21wYW55SW1hZ2VDb21wb25lbnQge1xuICBASW5wdXQoKSBjb2xsYXBzZWQhOiBib29sZWFuO1xuICBASW5wdXQoKSB1c2VyRGF0YSE6IEF1dGhJbnRlcmZhY2U7XG4gIEBJbnB1dCgpIGN1cnJlbnRDb21wYW55ITogT3JnYW5pemF0aW9uSW50ZXJmYWNlO1xuICBASW5wdXQoKSBwbGF0Zm9ybSE6IENvbXBhbmllc0VudW07XG4gIENvbXBhbmllc0VudW0gPSBDb21wYW5pZXNFbnVtO1xufVxuIiwiPGRpdiBjbGFzcz1cImluZm9ybWF0aW9uIHBvaW50ZXJcIiAqbmdJZj1cInVzZXJEYXRhXCI+XG4gICAgPGRpdiBjbGFzcz1cImluZm9ybWF0aW9uX21haW5cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlc1wiPlxuICAgICAgICAgICAgPGltZyBhbHQ9XCJcIiBjbGFzcz1cImNvbXBhbnlfaW1nXCIgKm5nSWY9XCJjdXJyZW50Q29tcGFueT8uaW1hZ2U7IGVsc2Ugbm9JbWFnZUNvbXBvbmVudFwiXG4gICAgICAgICAgICAgICAgIFtzcmNdPVwiY3VycmVudENvbXBhbnkuaW1hZ2VcIlxuICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcERpc2FibGVkXT1cIiFjb2xsYXBzZWRcIlxuICAgICAgICAgICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJtdWx0aWxpbmVfdG9vbHRpcF9mb3JfcHJvZmlsZVwiXG4gICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIihjdXJyZW50Q29tcGFueT8ubmFtZSB8fCAnJykgKyAnXFxuXFxyJyArICh1c2VyRGF0YS5maXJzdE5hbWUgKyAnICcgKyB1c2VyRGF0YS5sYXN0TmFtZSArICdcXG4nKSArICh1c2VyRGF0YS5lbWFpbClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub0ltYWdlQ29tcG9uZW50PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb21wYW55X2ltZyBub19pbWFnZVwiXG4gICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcERpc2FibGVkXT1cIiFjb2xsYXBzZWRcIlxuICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcENsYXNzPVwibXVsdGlsaW5lX3Rvb2x0aXBfZm9yX3Byb2ZpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiKGN1cnJlbnRDb21wYW55Py5uYW1lIHx8ICcnKSArICdcXG5cXHInICsgKHVzZXJEYXRhLmZpcnN0TmFtZSArICcgJyArIHVzZXJEYXRhLmxhc3ROYW1lICsgJ1xcbicpICsgKHVzZXJEYXRhLmVtYWlsKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyhjdXJyZW50Q29tcGFueT8ubmFtZSB8fCAnJykgfCBzbGljZTogMCA6IDEgfCB1cHBlcmNhc2V9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXJfaW1nXCI+XG4gICAgICAgICAgICAgICAge3t1c2VyRGF0YS5maXJzdE5hbWUgfCBzbGljZTogMCA6IDEgfCB1cHBlcmNhc2V9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lc1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbXBhbnlfbmFtZVwiPnt7Y3VycmVudENvbXBhbnk/Lm5hbWUgfHwgJyd9fTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXJfbmFtZVwiPnt7dXNlckRhdGEuZmlyc3ROYW1lfX0ge3t1c2VyRGF0YS5sYXN0TmFtZX19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInRpbWVfem9uZVwiICpuZ0lmPVwicGxhdGZvcm0gPT09IENvbXBhbmllc0VudW0uVDNcIj5cbiAgICAgICAge3t1c2VyRGF0YS50aW1lWm9uZT8uZW51bVR5cGUgfHwgJyd9fVxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=