i-tech-shared-components 1.1.30 → 1.1.32

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.
@@ -1 +1 @@
1
- {"version":3,"file":"i-tech-shared-components.mjs","sources":["../../../projects/shared-components/src/lib/pipes/generate-error-messages.pipe.ts","../../../projects/shared-components/src/lib/pipes/array-to-string.pipe.ts","../../../projects/shared-components/src/lib/pipes/get-value-by-key-from-object.pipe.ts","../../../projects/shared-components/src/lib/services/input.service.ts","../../../projects/shared-components/src/lib/interfaces/button-types.enum.ts","../../../projects/shared-components/src/lib/directives/input-mask.directive.ts","../../../projects/shared-components/src/lib/components/icon-button/icon-button.component.ts","../../../projects/shared-components/src/lib/components/icon-button/icon-button.component.html","../../../projects/shared-components/src/lib/components/text/text-input.component.ts","../../../projects/shared-components/src/lib/components/text/text-input.component.html","../../../projects/shared-components/src/lib/components/button/button.component.ts","../../../projects/shared-components/src/lib/components/button/button.component.html","../../../projects/shared-components/src/lib/components/clear-value/clear-value.component.ts","../../../projects/shared-components/src/lib/components/autocomplete-select/autocomplete-select.component.ts","../../../projects/shared-components/src/lib/components/autocomplete-select/autocomplete-select.component.html","../../../projects/shared-components/src/lib/directives/date-mask.directive.ts","../../../projects/shared-components/src/lib/components/date-picker/date-picker.component.ts","../../../projects/shared-components/src/lib/components/date-picker/date-picker.component.html","../../../projects/shared-components/src/lib/components/date-range-datepicker/date-range-datepicker.component.ts","../../../projects/shared-components/src/lib/components/date-range-datepicker/date-range-datepicker.component.html","../../../projects/shared-components/src/lib/interfaces/dropdown-selection.constants.ts","../../../projects/shared-components/src/lib/components/menu/menu.component.ts","../../../projects/shared-components/src/lib/components/menu/menu.component.html","../../../projects/shared-components/src/public-api.ts","../../../projects/shared-components/src/i-tech-shared-components.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Pipe({\r\n name: 'generateErrorMessages',\r\n standalone: true,\r\n pure: true\r\n})\r\nexport class GenerateErrorMessagesPipe implements PipeTransform {\r\n\r\n constructor(private translateService: TranslateService) {\r\n }\r\n\r\n transform(control: any,label: string,defaultPatternKey = 'fixed'): string {\r\n\r\n if (!control.errors) {\r\n return '';\r\n }\r\n const key = (Object.keys(control.errors)[0]);\r\n const translateParams: {ERROR_KEY: string} = { ERROR_KEY: this.translateService.instant(label) || 'Field' };\r\n const errorMessageKey = (key === 'pattern') ?\r\n 'errorMessages.pattern.' + defaultPatternKey : 'errorMessages.' + key;\r\n\r\n return this.translateService.instant(errorMessageKey,translateParams);\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'arrayToString',\r\n standalone: true\r\n})\r\nexport class ArrayToStringPipe implements PipeTransform {\r\n\r\n transform(value: Array<string | number> | string): string {\r\n return (typeof value === 'string') ? value : value.join(',');\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'getValueByKeyFromObject',\r\n standalone: true\r\n})\r\nexport class GetValueByKeyFromObjectPipe implements PipeTransform {\r\n\r\n transform(\r\n keys: string | Array<string | number>,\r\n data: any,\r\n withParams: Array<string | Array<string | number>> | null = null,\r\n withParamSymbol?: string\r\n ): string {\r\n if (typeof keys === 'string') {\r\n return data[keys];\r\n } else {\r\n let returnValue: any = data;\r\n keys.forEach((key: string | number) => {\r\n if (!returnValue) { return; }\r\n returnValue = returnValue[key];\r\n })\r\n if (withParams) {\r\n\r\n withParams.forEach((param: Array<string | number> | string) => {\r\n let include = data;\r\n\r\n if (typeof param === 'object') {\r\n param.forEach((key: string | number) => {\r\n include = (include) ? include[key] : null;\r\n })\r\n } else {\r\n include = include[param];\r\n }\r\n\r\n if (include !== undefined && include !== null) {\r\n returnValue += (withParamSymbol ? withParamSymbol : ' ') + include;\r\n }\r\n })\r\n }\r\n\r\n return ((returnValue !== \"undefined\") && (returnValue !== null) ) ? returnValue : '---';\r\n }\r\n }\r\n\r\n}\r\n","import { ControlValueAccessor, FormControlName, NgControl } from \"@angular/forms\";\r\nimport { inject, Injectable } from \"@angular/core\";\r\n\r\nclass NoopValueAccessor implements ControlValueAccessor {\r\n writeValue() {\r\n // No-op: Intentionally empty to prevent value updates\r\n }\r\n\r\n registerOnChange() {\r\n // No-op: Intentionally empty to prevent change notifications\r\n }\r\n\r\n registerOnTouched() {\r\n // No-op: Intentionally empty to prevent touch notifications\r\n }\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class InputService {\r\n injectNgControl(): FormControlName {\r\n const ngControl = inject(NgControl, { self: true, optional: true });\r\n\r\n if (!ngControl) throw new Error('...');\r\n\r\n if (ngControl instanceof FormControlName) {\r\n ngControl.valueAccessor = new NoopValueAccessor();\r\n return ngControl;\r\n }\r\n\r\n throw new Error(`...`);\r\n }\r\n}\r\n","/**\r\n * Enum representing different types of buttons.\r\n */\r\nexport enum ButtonType {\r\n /** A filled button with solid background, typically used for primary actions. */\r\n FILLED = 'FILLED',\r\n\r\n /** A tonal button with lighter background, used for secondary actions. */\r\n TONAL = 'TONAL',\r\n\r\n /** An outlined button with a border and no background. */\r\n OUTLINE = 'OUTLINE',\r\n\r\n /** A text button with no background or border, ideal for minimal UI. */\r\n TEXT = 'TEXT',\r\n\r\n /** A warning button with special styling to indicate caution or alert actions. */\r\n WARNING = 'WARNING',\r\n}\r\n","import {\r\n Directive,\r\n ElementRef, HostListener,\r\n Input\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[inputMask]',\r\n standalone: true\r\n})\r\nexport class InputMaskDirective {\r\n @Input() inputMask!: 'number' | 'string';\r\n @Input() set min(value: string) {\r\n this.minimumValue = Number(value);\r\n }\r\n @Input() set max(value: string) {\r\n this.maximumValue = Number(value);\r\n }\r\n @Input() set float(value: string) {\r\n this.isFloat = value === 'true';\r\n }\r\n minimumValue!: number;\r\n maximumValue!: number;\r\n isFloat!: boolean;\r\n regexFloat = new RegExp(/^([0-9]*[.])?[0-9]+$/);\r\n regexOnlyNumbers = new RegExp(/^-?[0-9]+(?:\\.[0-9]+)?$/);\r\n\r\n @HostListener('paste', ['$event'])\r\n onPaste(event: any) {\r\n this.makeValidation(event, true)\r\n }\r\n\r\n constructor(private elementRef: ElementRef) {\r\n this.elementRef.nativeElement.addEventListener('keypress', (event: Event) => {\r\n this.makeValidation(event)\r\n })\r\n }\r\n\r\n makeValidation(event: any, fromPaste = false): boolean {\r\n let value: any;\r\n let newChar: any;\r\n\r\n if (!fromPaste) {\r\n newChar = String.fromCharCode(event.keyCode);\r\n const cursorPos = event.target.selectionStart;\r\n const inputText = event.target.value;\r\n value = `${inputText.slice(0, cursorPos)}${newChar}${inputText.slice(cursorPos, inputText.length)}`;\r\n } else {\r\n value = event.clipboardData?.getData('text/plain');\r\n }\r\n\r\n if (this.inputMask === 'number') {\r\n return this.checkingForNumbers(value, event, newChar, fromPaste);\r\n } else if (this.inputMask === 'string') {\r\n return this.checkingForTexts(value, event);\r\n } else {\r\n return true\r\n }\r\n }\r\n\r\n checkingForNumbers(value: any, event: any, newChar: string, fromPaste = false): boolean {\r\n if ((isNaN(this.minimumValue) || this.minimumValue < 0) && value === '-') { value = Number('-0'); }\r\n\r\n if (this.isFloat && (newChar === '.')) {\r\n value += '0';\r\n }\r\n if (!this.isFloat && fromPaste && value.includes('.')) {\r\n event.preventDefault();\r\n return false;\r\n }\r\n\r\n const regex = (this.isFloat) ? this.regexFloat : this.regexOnlyNumbers;\r\n\r\n if (!regex.test(value) ||\r\n (this.minimumValue && value < this.minimumValue) ||\r\n (this.maximumValue && value > this.maximumValue)\r\n ) {\r\n event.preventDefault();\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n checkingForTexts(value: any, event: any): boolean {\r\n const regex = new RegExp(/^[A-Za-z0-9]*$/);\r\n if (!regex.test(value)) {\r\n event.preventDefault();\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { MatFabButton, MatIconButton } from \"@angular/material/button\";\r\nimport { NgClass, NgIf } from \"@angular/common\";\r\nimport { MatTooltip } from \"@angular/material/tooltip\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { MatIcon } from \"@angular/material/icon\";\r\n\r\n@Component({\r\n selector: 'i-tech-icon-button',\r\n templateUrl: './icon-button.component.html',\r\n styleUrl: './icon-button.component.scss',\r\n imports: [\r\n MatIconButton,\r\n NgClass,\r\n MatTooltip,\r\n TranslateModule,\r\n MatIcon,\r\n MatFabButton,\r\n NgIf\r\n ]\r\n})\r\nexport class IconButtonComponent {\r\n @Input() size: 'medium' | 'small' = 'medium';\r\n @Input() type: 'standard' | 'filled' | 'tonal' = 'tonal';\r\n @Input() iconSvg!: string;\r\n @Input() iconName!: string;\r\n @Input() tooltip!: string;\r\n @Input() disabled!: boolean;\r\n @Output() buttonClick = new EventEmitter<void>();\r\n\r\n onClick(event: MouseEvent): void {\r\n if (!this.disabled) {\r\n this.buttonClick.emit();\r\n }\r\n }\r\n}\r\n","<button\r\n *ngIf=\"['tonal','standard'].includes(type)\"\r\n mat-icon-button\r\n [ngClass]=\"{small: size === 'small', tonal: type === 'tonal', standard: type === 'standard'}\"\r\n [matTooltip]=\"tooltip | translate\"\r\n [matTooltipDisabled]=\"!tooltip\"\r\n [disabled]=\"disabled || false\"\r\n (click)=\"onClick($event)\"\r\n>\r\n <mat-icon *ngIf=\"iconSvg\" [svgIcon]=\"iconSvg\"></mat-icon>\r\n <mat-icon *ngIf=\"iconName\">{{iconName}}</mat-icon>\r\n</button>\r\n\r\n<button\r\n *ngIf=\"type === 'filled'\"\r\n mat-fab\r\n class=\"filled\"\r\n [ngClass]=\"{small: size === 'small'}\"\r\n [matTooltip]=\"tooltip | translate\"\r\n [matTooltipDisabled]=\"!tooltip\"\r\n [color]=\"'primary'\"\r\n [disabled]=\"disabled || false\"\r\n (click)=\"onClick($event)\"\r\n>\r\n <mat-icon *ngIf=\"iconSvg\" [svgIcon]=\"iconSvg\"></mat-icon>\r\n <mat-icon *ngIf=\"iconName\">{{iconName}}</mat-icon>\r\n</button>\r\n","import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { FormControlName, ReactiveFormsModule } from '@angular/forms';\r\nimport { InputService } from '../../services/input.service';\r\nimport { AppInputInterface } from \"../../interfaces/app-input.interface\";\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { NgClass, NgIf } from \"@angular/common\";\r\nimport { MatIcon } from \"@angular/material/icon\";\r\nimport { MatTooltip } from \"@angular/material/tooltip\";\r\nimport { MatInput } from \"@angular/material/input\";\r\nimport { GenerateErrorMessagesPipe } from \"../../pipes/generate-error-messages.pipe\";\r\nimport { IconButtonComponent } from \"../icon-button/icon-button.component\";\r\nimport { InputMaskDirective } from \"../../directives/input-mask.directive\";\r\nimport { NgxMaskDirective } from \"ngx-mask\";\r\n\r\n@Component({\r\n selector: 'i-tech-text-input',\r\n templateUrl: './text-input.component.html',\r\n styleUrls: [],\r\n imports: [\r\n TranslateModule,\r\n NgClass,\r\n MatIcon,\r\n MatTooltip,\r\n MatInput,\r\n ReactiveFormsModule,\r\n NgIf,\r\n GenerateErrorMessagesPipe,\r\n IconButtonComponent,\r\n InputMaskDirective,\r\n NgxMaskDirective,\r\n MatFormFieldModule\r\n ]\r\n})\r\nexport class TextInputComponent {\r\n @ViewChild('inputElement') input!: ElementRef;\r\n\r\n @Input() set inputData(data: AppInputInterface) {\r\n // If submit becomes true, mark the control as touched\r\n if (data?.submit && this.ngControl.control) {\r\n this.ngControl.control.markAsTouched();\r\n }\r\n this._inputData = data;\r\n }\r\n\r\n get inputData(): AppInputInterface {\r\n return this._inputData;\r\n }\r\n\r\n @Output() focusOutEmitter = new EventEmitter<void>();\r\n\r\n private _inputData!: AppInputInterface;\r\n ngControl: FormControlName;\r\n closed = false;\r\n\r\n constructor(private inputService: InputService) {\r\n this.ngControl = this.inputService.injectNgControl();\r\n }\r\n\r\n onFocusOut(): void {\r\n if (this._inputData.focusOutEmit) {\r\n this.focusOutEmitter.emit();\r\n }\r\n }\r\n\r\n clear(): void {\r\n if (this.ngControl) {\r\n this.ngControl.control.reset();\r\n }\r\n }\r\n\r\n toggleEye(): void {\r\n this.input.nativeElement.type = this.closed ? 'password' : 'text';\r\n this.closed = !this.closed;\r\n }\r\n\r\n customErrorStateMatcher = {\r\n isErrorState: (control: any, form: any): boolean => {\r\n return !!(control && control.invalid && this.inputData?.submit);\r\n }\r\n };\r\n}\r\n","<div *ngIf=\"inputData && ngControl\">\r\n <div class=\"w-100\">\r\n <mat-label [ngClass]=\"{\r\n 'readonly-color' : inputData.readOnly || ngControl.control.disabled,\r\n 'invalid-label-color': !!(ngControl.control.errors && inputData.submit)\r\n }\"\r\n *ngIf=\"inputData.label\">\r\n {{ inputData.label | translate }}\r\n </mat-label>\r\n <span *ngIf=\"inputData.required\" class=\"required-input\"\r\n [ngClass]=\"{'readonly-color' : inputData.readOnly || ngControl.control.disabled}\">*</span>\r\n </div>\r\n <mat-form-field appearance=\"outline\" class=\"w-100\"\r\n [class.readonly-field]=\"inputData.readOnly || ngControl.control.disabled\"\r\n >\r\n <!-- Leading Icon -->\r\n <mat-icon *ngIf=\"inputData.iconPrefix\"\r\n matPrefix\r\n [ngClass]=\"{\r\n 'readonly-color' : !inputData.iconPrefixColor &&\r\n (inputData.readOnly || ngControl.control.disabled),\r\n 'default-form-icon-color' : !inputData.iconPrefixColor &&\r\n !(inputData.readOnly || ngControl.control.disabled)\r\n }\"\r\n [matTooltip]=\"((inputData.iconPrefixTooltip || '') | translate)\"\r\n [style.color]=\"inputData.iconPrefixColor || null\"\r\n >{{ inputData.iconPrefix }}\r\n </mat-icon>\r\n\r\n <mat-icon *ngIf=\"inputData.iconPrefixSvg\"\r\n matPrefix\r\n [matTooltip]=\"((inputData.iconPrefixTooltip || '') | translate)\"\r\n [svgIcon]=\"inputData.iconPrefixSvg\"\r\n ></mat-icon>\r\n\r\n <!-- Input Field -->\r\n <input matInput #inputElement\r\n *ngIf=\"!inputData.textarea\"\r\n [type]=\"inputData.type || 'text'\"\r\n [readonly]=\"inputData.readOnly\"\r\n [placeholder]=\"(inputData.placeholder || '') | translate\"\r\n [pattern]=\"inputData.pattern!\"\r\n [formControl]=\"ngControl.control\"\r\n [mask]=\"inputData.mask || ''\"\r\n [ngClass]=\"{'readonly-color readonly-cursor' : inputData.readOnly || ngControl.control.disabled}\"\r\n [inputMask]=\"inputData.inputMask!\"\r\n [errorStateMatcher]=\"customErrorStateMatcher\"\r\n (blur)=\"onFocusOut()\"\r\n >\r\n\r\n <textarea matInput\r\n *ngIf=\"inputData.textarea\"\r\n [type]=\"inputData.type || 'text'\"\r\n [readonly]=\"inputData.readOnly\"\r\n [placeholder]=\"(inputData.placeholder || '') | translate\"\r\n [pattern]=\"inputData.pattern!\"\r\n [formControl]=\"ngControl.control\"\r\n [ngClass]=\"{'readonly-color' : inputData.readOnly || ngControl.control.disabled}\"\r\n [errorStateMatcher]=\"customErrorStateMatcher\"\r\n ></textarea>\r\n\r\n <!-- Clear Icon -->\r\n <i-tech-icon-button\r\n *ngIf=\"inputData.clearable\"\r\n iconName=\"cancel\"\r\n matSuffix\r\n [disabled]=\"inputData.readOnly || ngControl.control.disabled || false\"\r\n [ngClass]=\"inputData.readOnly || ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\r\n (click)=\"clear()\"\r\n >\r\n </i-tech-icon-button>\r\n\r\n <i-tech-icon-button\r\n *ngIf=\"inputData.type === 'password'\"\r\n [iconName]=\"closed ? 'visibility' : 'visibility_off'\"\r\n matSuffix\r\n [disabled]=\"inputData.readOnly || ngControl.control.disabled || false\"\r\n [ngClass]=\"inputData.readOnly || ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\r\n (click)=\"toggleEye()\"\r\n >\r\n </i-tech-icon-button>\r\n\r\n <!-- Trailing Icon -->\r\n <i-tech-icon-button\r\n *ngIf=\"inputData.iconSuffix\"\r\n [iconName]=\"inputData.iconSuffix\"\r\n [disabled]=\"inputData.readOnly || ngControl.control.disabled || false\"\r\n [ngClass]=\"inputData.readOnly || ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\r\n matSuffix\r\n >\r\n </i-tech-icon-button>\r\n\r\n <!-- Error Messages -->\r\n <mat-error *ngIf=\"!!(ngControl.control.errors && inputData.submit)\">\r\n {{ ngControl.control | generateErrorMessages : (inputData.label || '') : inputData.defaultPatternKey }}\r\n </mat-error>\r\n\r\n <!-- Helper Text -->\r\n <mat-hint *ngIf=\"!(!!(ngControl.control.errors && inputData.submit)) && inputData.hint\">\r\n {{ inputData.hint | translate }}\r\n </mat-hint>\r\n </mat-form-field>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { MatButton } from \"@angular/material/button\";\r\nimport { NgClass, NgIf } from \"@angular/common\";\r\nimport { MatProgressSpinner } from \"@angular/material/progress-spinner\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { TranslateModule, TranslatePipe, TranslateService } from \"@ngx-translate/core\";\r\nimport { ButtonType } from '../../interfaces/button-types.enum';\r\nimport { NgxMaskDirective, NgxMaskPipe } from 'ngx-mask';\r\n\r\n/**\r\n * A reusable button component with Material Design styling and custom functionality.\r\n */\r\n@Component({\r\n selector: 'i-tech-button',\r\n imports: [\r\n MatButton,\r\n NgClass,\r\n MatProgressSpinner,\r\n NgIf,\r\n MatIconModule,\r\n TranslateModule\r\n ],\r\n templateUrl: './button.component.html',\r\n styleUrl: './button.component.css',\r\n providers: [\r\n NgxMaskDirective,\r\n NgxMaskPipe,\r\n TranslatePipe,\r\n TranslateService\r\n ]\r\n})\r\nexport class ButtonComponent {\r\n /**\r\n * The text displayed inside the button.\r\n */\r\n @Input() text = '';\r\n\r\n /**\r\n * Data attribute used for Cypress or other testing frameworks.\r\n */\r\n @Input() data_cy = '';\r\n\r\n /**\r\n * Font icon class for displaying an icon (e.g., Material Icons).\r\n */\r\n @Input() fontIcon = '';\r\n\r\n /**\r\n * SVG icon name for displaying an SVG icon.\r\n */\r\n @Input() svgIcon = '';\r\n\r\n /**\r\n * Defines the type of button (e.g., `FILLED`, `OUTLINED`).\r\n */\r\n @Input() type: ButtonType = ButtonType.FILLED;\r\n\r\n /**\r\n * Additional custom classes to style the button.\r\n */\r\n @Input() customClass = '';\r\n\r\n /**\r\n * If true, the button acts as a submit button.\r\n */\r\n @Input() submit = false;\r\n\r\n /**\r\n * If true, the button is disabled and cannot be clicked.\r\n */\r\n @Input() disabled = false;\r\n\r\n /**\r\n * Indicates whether the button is currently activated.\r\n */\r\n @Input() activated = false;\r\n\r\n /**\r\n * The color of the button (e.g., `primary`, `warn`).\r\n */\r\n @Input() color: 'primary' | 'warn' = 'primary';\r\n\r\n /**\r\n * Emits an event when the button is clicked.\r\n */\r\n @Output() buttonClick = new EventEmitter<void>();\r\n\r\n /**\r\n * Enum reference for `ButtonType` to use in templates.\r\n */\r\n protected readonly ButtonType = ButtonType;\r\n\r\n /**\r\n * Handles the button click event.\r\n *\r\n * @param event - The mouse event triggered by clicking the button.\r\n */\r\n onClick(event: MouseEvent): void {\r\n if (!this.disabled && !this.submit) {\r\n this.buttonClick.emit();\r\n }\r\n }\r\n}\r\n","<button *ngIf=\"[ButtonType.FILLED,ButtonType.WARNING].includes(type)\"\r\n mat-flat-button\r\n [attr.data-cy]=\"data_cy\"\r\n [color]=\"type === ButtonType.WARNING ? 'warn' : color\"\r\n [class.activated]=\"activated\"\r\n [ngClass]=\"(customClass || '')\"\r\n [disabled]=\"disabled || submit\"\r\n (click)=\"onClick($event)\"\r\n>\r\n <span *ngIf=\"submit\" class=\"spinner-overlay\">\r\n <mat-spinner diameter=\"16\"></mat-spinner>\r\n </span>\r\n <mat-icon *ngIf=\"fontIcon && !submit\">{{fontIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIcon && !submit\" [svgIcon]=\"svgIcon\"></mat-icon>\r\n <span>{{text | translate}}</span>\r\n</button>\r\n<button *ngIf=\"[ButtonType.TONAL,ButtonType.TEXT].includes(type)\"\r\n mat-button\r\n [attr.data-cy]=\"data_cy\"\r\n [ngClass]=\"(type === ButtonType.TONAL ? 'tertiary ' : '') + (customClass || '')\"\r\n [class.activated]=\"activated\"\r\n [disabled]=\"disabled || submit\"\r\n (click)=\"onClick($event)\"\r\n>\r\n <span *ngIf=\"submit\" class=\"spinner-overlay\">\r\n <mat-spinner diameter=\"16\"></mat-spinner>\r\n </span>\r\n <mat-icon *ngIf=\"fontIcon && !submit\">{{fontIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIcon && !submit\" [svgIcon]=\"svgIcon\"></mat-icon>\r\n\r\n <span>{{text | translate}}</span>\r\n</button>\r\n<button *ngIf=\"type === ButtonType.OUTLINE\"\r\n [color]=\"color\"\r\n mat-stroked-button\r\n [attr.data-cy]=\"data_cy\"\r\n [ngClass]=\"(customClass || '') \"\r\n [disabled]=\"disabled || submit\"\r\n (click)=\"onClick($event)\"\r\n [class.activated]=\"activated\"\r\n>\r\n <span *ngIf=\"submit\" class=\"spinner-overlay\">\r\n <mat-spinner diameter=\"16\"></mat-spinner>\r\n </span>\r\n <mat-icon *ngIf=\"fontIcon && !submit\" >{{fontIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIcon && !submit\" [svgIcon]=\"svgIcon\"></mat-icon>\r\n <span>{{text | translate}}</span>\r\n</button>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { NgClass, NgOptimizedImage } from \"@angular/common\";\r\n\r\n@Component({\r\n selector: 'i-tech-clear-value',\r\n template: `<img\r\n class=\"pointer\"\r\n [ngClass]=\"className || 'standard'\"\r\n (click)=\"resetValue.emit()\"\r\n ngSrc=\"./ic_close.svg\"\r\n height=\"24\" width=\"24\" alt=\"\"/>`,\r\n styles: [`\r\n img {\r\n position: absolute;\r\n width: 15px;\r\n height: 15px;\r\n }\r\n\r\n .big {\r\n width: 25px;\r\n height: 25px;\r\n }\r\n\r\n .range_date {\r\n right: -65px;\r\n top: 15px;\r\n }\r\n\r\n .standard {\r\n right: -20px;\r\n top: 40px;\r\n }\r\n `],\r\n imports: [\r\n NgClass,\r\n NgOptimizedImage\r\n ]\r\n})\r\nexport class ClearValueComponent {\r\n @Input() className!: string;\r\n @Input() additionalClass!: string;\r\n @Output() resetValue = new EventEmitter<any>();\r\n}\r\n","import {\r\n Component,\r\n ViewChild,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n OnChanges,\r\n SimpleChanges,\r\n ElementRef, HostListener, AfterViewInit\r\n} from '@angular/core';\r\nimport { MatSelect, MatSelectModule } from \"@angular/material/select\";\r\nimport { AutocompleteConfigsInterface } from \"../../interfaces/autocomplete-configs.interface\";\r\nimport { FormControlName, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { InputService } from '../../services/input.service';\r\nimport { ButtonType } from '../../interfaces/button-types.enum';\r\nimport { NgClass, NgFor, NgIf, NgOptimizedImage } from \"@angular/common\";\r\nimport { MatTooltip } from \"@angular/material/tooltip\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { IconButtonComponent } from \"../icon-button/icon-button.component\";\r\nimport { ButtonComponent } from \"../button/button.component\";\r\nimport { GetValueByKeyFromObjectPipe } from \"../../pipes/get-value-by-key-from-object.pipe\";\r\nimport { ArrayToStringPipe } from \"../../pipes/array-to-string.pipe\";\r\nimport { MatIcon } from \"@angular/material/icon\";\r\nimport { GenerateErrorMessagesPipe } from \"../../pipes/generate-error-messages.pipe\";\r\nimport { ClearValueComponent } from \"../clear-value/clear-value.component\";\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\n\r\n@Component({\r\n selector: 'i-tech-autocomplete-select',\r\n templateUrl: './autocomplete-select.component.html',\r\n styleUrls: ['./autocomplete-select.component.scss'],\r\n imports: [\r\n NgClass,\r\n MatTooltip,\r\n NgIf,\r\n NgFor,\r\n TranslateModule,\r\n IconButtonComponent,\r\n ReactiveFormsModule,\r\n MatSelectModule,\r\n ButtonComponent,\r\n GetValueByKeyFromObjectPipe,\r\n ArrayToStringPipe,\r\n NgOptimizedImage,\r\n MatIcon,\r\n GenerateErrorMessagesPipe,\r\n ClearValueComponent,\r\n MatFormFieldModule\r\n ]\r\n})\r\nexport class AutocompleteSelectComponent implements OnChanges, AfterViewInit {\r\n @ViewChild('matSelect') matSelect!: MatSelect;\r\n @ViewChild('searchInput') searchInput!: ElementRef;\r\n @Input() className!: string;\r\n @Input() submitValue!: boolean;\r\n\r\n /**\r\n * See AutocompleteConfigsInterface for available configurations.\r\n */\r\n @Input() set configs(data: AutocompleteConfigsInterface) {\r\n this.selectConfig = data;\r\n if (!data) {\r\n return;\r\n }\r\n\r\n if ((typeof this.selectConfig.paginate) === 'function') {\r\n if (this.firstRequest) {\r\n return;\r\n }\r\n this.getData();\r\n this.firstRequest = true\r\n return;\r\n }\r\n\r\n this.data = this.selectConfig.paginate;\r\n this.findAndSetDefaultValueFromData();\r\n };\r\n\r\n @Input() detectChanges!: boolean;\r\n @Output() selectionChange = new EventEmitter<any>();\r\n @Output() emitAction = new EventEmitter<any>();\r\n @ViewChild('allSelected') allSelected!: MatSelect;\r\n pending = false;\r\n defaultValue!: any;\r\n data: Array<any> = [];\r\n paginationData: any = { current: 1, last: 0 };\r\n ngControl: FormControlName;\r\n selectConfig!: AutocompleteConfigsInterface;\r\n firstRequest = false;\r\n showPlaceholder = true;\r\n isNeededForRecall = false;\r\n showingValue: any;\r\n searchTimeoutId: any;\r\n tabVisibility!: boolean;\r\n accessToNextRequest = true;\r\n disabled = false;\r\n blockRecallDefaultValueSetter = false;\r\n baseData: any;\r\n requestLoading = false;\r\n protected readonly ButtonType = ButtonType;\r\n\r\n @HostListener('document:visibilitychange')\r\n handleVisibilityChange(): void {\r\n this.tabVisibility = !document.hidden;\r\n if (this.ngControl.control.value) {\r\n return;\r\n }\r\n this.closePanelAndUnsetFocus();\r\n if (!document.hidden) {\r\n this.isNeededForRecall = true;\r\n this.pending = true;\r\n setTimeout(() => {\r\n this.pending = false\r\n }, 4000)\r\n }\r\n }\r\n\r\n constructor(private inputService: InputService) {\r\n this.ngControl = this.inputService.injectNgControl();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['selectConfig'] && this.selectConfig) {\r\n if ((typeof this.selectConfig.paginate) === 'function') {\r\n this.getData();\r\n }\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.ngControl.control.valueChanges.subscribe((res: any) => {\r\n if (this.data.length && res && !this.blockRecallDefaultValueSetter) {\r\n this.findAndSetDefaultValueFromData();\r\n }\r\n })\r\n }\r\n\r\n hardReload(): void {\r\n this.getData('', true);\r\n }\r\n\r\n /**\r\n * Dynamic request for select data.\r\n * @param searchText - The input value to search options by.\r\n * @param fromSearch - Access for search.\r\n * @returns Select data.\r\n */\r\n getData(searchText?: string, fromSearch?: boolean): void {\r\n if (!fromSearch && !this.accessToNextRequest) {\r\n return;\r\n }\r\n\r\n if (this.requestLoading) {\r\n return;\r\n }\r\n\r\n if (fromSearch) {\r\n this.paginationData.current = 1;\r\n this.accessToNextRequest = true;\r\n }\r\n\r\n const functionToDo = this.selectConfig.paginate(this.paginationData.current, searchText);\r\n\r\n this.requestLoading = true;\r\n functionToDo?.subscribe((data: Array<any> | any) => {\r\n const dataToAdd = ('content' in data) ? data.content : data;\r\n\r\n if ('content' in data) {\r\n this.accessToNextRequest = !data.last || (data.totalPages > this.paginationData.current);\r\n }\r\n\r\n this.data = (fromSearch || this.selectConfig?.blockPagination) ? dataToAdd : [...this.data, ...dataToAdd];\r\n this.pending = false;\r\n this.requestLoading = false;\r\n\r\n if (!dataToAdd.length) {\r\n this.paginationData.last = this.paginationData.current;\r\n return;\r\n }\r\n\r\n this.paginationData.current += 1;\r\n this.paginationData.last += 1;\r\n setTimeout(() => {\r\n this.findAndSetDefaultValueFromData();\r\n }, 10)\r\n }, () => {\r\n this.pending = false;\r\n this.requestLoading = false;\r\n })\r\n }\r\n\r\n findAndSetDefaultValueFromData(): void {\r\n if (this.selectConfig.multiple) {\r\n if (this.ngControl.value && this.ngControl.value.length == 1) {\r\n this.setShowingValue(this.data.find((item) => item.id === this.ngControl.value[0]))\r\n }\r\n } else {\r\n const isDisabled = this.ngControl.disabled;\r\n if (isDisabled) {\r\n // TODO Remove after migrating all selects\r\n // this.ngControl.control.enable();\r\n // if (!this.ngControl.value && !this.data.length) {\r\n // this.ngControl.control.disable();\r\n // return;\r\n // }\r\n // this.setDefaultValue();\r\n // this.ngControl.control.disable();\r\n } else {\r\n if (!this.ngControl.value && !this.data) {\r\n return;\r\n }\r\n this.setDefaultValue();\r\n }\r\n\r\n }\r\n }\r\n\r\n setDefaultValue(): void {\r\n this.defaultValue = this.data.find((item) => item.id === this.ngControl.value);\r\n this.baseData = this.defaultValue\r\n if (!this.defaultValue) {\r\n return;\r\n }\r\n this.selectionChange.emit()\r\n this.setShowingValue(this.defaultValue);\r\n }\r\n\r\n optionClick(showingData: any): void {\r\n this.baseData = showingData\r\n if (!this.selectConfig.multiple) {\r\n this.setShowingValue(showingData);\r\n this.matSelect.close();\r\n return;\r\n }\r\n if (this.searchInput) {\r\n if (this.selectConfig.multiple) {\r\n this.searchInput?.nativeElement?.focus()\r\n } else {\r\n this.inputFocusOut();\r\n }\r\n }\r\n\r\n this.setShowingValue(showingData);\r\n this.showPlaceholder = false;\r\n }\r\n\r\n addNewItemEvent(): void {\r\n this.isNeededForRecall = true;\r\n this.emitAction.emit();\r\n }\r\n\r\n /**\r\n * Filter and show.\r\n * @param data - Existing chosen data.\r\n */\r\n setShowingValue(data: any): void {\r\n if (!data) {\r\n return;\r\n }\r\n // TODO refactor this part fully\r\n let include = data;\r\n let includeOptional = data;\r\n\r\n if (this.selectConfig.valueToShowByKey) {\r\n this.selectConfig.valueToShowByKey.forEach((param: Array<string | number> | string) => {\r\n\r\n if (typeof param === 'object') {\r\n param.forEach((key: string | number) => {\r\n include = (include) ? include[key] : null;\r\n })\r\n } else {\r\n include = include[param];\r\n }\r\n })\r\n if (this.selectConfig.showFullTextWithOptionalOnSelectedValue) {\r\n this.selectConfig.valueToShowByParam?.forEach((param: Array<string | number> | string) => {\r\n\r\n if (typeof param === 'object') {\r\n param.forEach((key: string | number) => {\r\n includeOptional = (includeOptional) ? includeOptional[key] : null;\r\n })\r\n } else {\r\n includeOptional = includeOptional[param];\r\n }\r\n })\r\n if (this.selectConfig.valueToShowByParam && typeof includeOptional === 'string') {\r\n include += (this.selectConfig.withParamSymbol || '') + includeOptional\r\n }\r\n }\r\n\r\n }\r\n this.showingValue = include;\r\n this.blockRecallDefaultValueSetter = true;\r\n }\r\n\r\n /**\r\n * Block another events.\r\n * @param event - Element click event.\r\n */\r\n preventDefault(event: any) {\r\n if (!this.selectConfig.multiple) {\r\n return;\r\n }\r\n event.preventDefault()\r\n }\r\n\r\n registerPanelScrollEvent(element: MatSelect) {\r\n if (this.selectConfig.paginateOnScroll === false) {\r\n return;\r\n }\r\n\r\n const panel = element.panel.nativeElement;\r\n panel.addEventListener('scroll', (event: any) => this.loadDataOnScroll(event));\r\n }\r\n\r\n loadDataOnScroll(event: any) {\r\n const pos = (event.target.scrollTop || event.target.scrollTop) + event.target.offsetHeight;\r\n const max = event.target.scrollHeight;\r\n if ((pos + 1) >= max) {\r\n if (this.paginationData.current === this.paginationData.last || this.selectConfig.blockPagination) {\r\n return;\r\n }\r\n this.getData();\r\n }\r\n }\r\n\r\n focusSearchInput() {\r\n if (this.selectConfig.search && this.searchInput) {\r\n this.searchInput.nativeElement.focus();\r\n }\r\n }\r\n\r\n inputFocusOut(): void {\r\n this.isNeededForRecall = !!this.searchInput.nativeElement.value;\r\n this.searchInput.nativeElement.value = '';\r\n this.showPlaceholder = true;\r\n this.clearTimeoutForSearch();\r\n }\r\n\r\n resetValue(): void {\r\n this.selectionChange.emit(null);\r\n this.ngControl.reset(null);\r\n this.inputFocusOut();\r\n }\r\n\r\n getDataWithSearch(value: any, event: any): void {\r\n this.clearTimeoutForSearch();\r\n if (value.length >= 1) {\r\n this.searchTimeoutId = setTimeout(() => {\r\n this.getData(value, true)\r\n }, 800);\r\n } else if (value.length <= 1 && event.keyCode === 8) {\r\n this.getData(value, true)\r\n }\r\n }\r\n\r\n clearTimeoutForSearch(): void {\r\n if (this.searchTimeoutId) {\r\n clearTimeout(this.searchTimeoutId);\r\n this.searchTimeoutId = 0;\r\n }\r\n }\r\n\r\n openSelection(): void {\r\n if (this.selectConfig.disabled || this.ngControl.control.disabled) {\r\n return;\r\n }\r\n if (this.showPlaceholder) {\r\n this.matSelect.open();\r\n } else {\r\n this.closePanelAndUnsetFocus();\r\n }\r\n this.showPlaceholder = !this.showPlaceholder;\r\n if (!this.showPlaceholder) {\r\n this.reCallData();\r\n }\r\n }\r\n\r\n closePanelAndUnsetFocus(): void {\r\n this.matSelect.close();\r\n if (this.searchInput) {\r\n this.searchInput.nativeElement.blur()\r\n }\r\n }\r\n\r\n openedChange(event: any) {\r\n if (event) {\r\n if (this.isNeededForRecall) {\r\n this.reCallData();\r\n return;\r\n }\r\n if (!this.selectConfig.search) {\r\n this.pending = false\r\n this.reCallData();\r\n }\r\n\r\n return;\r\n }\r\n\r\n this.showPlaceholder = true;\r\n }\r\n\r\n reCallData(): void {\r\n // TODO refactor this part\r\n if (!this.isNeededForRecall) {\r\n return;\r\n }\r\n this.data = [];\r\n this.pending = true;\r\n this.paginationData = {\r\n current: 1,\r\n last: 0\r\n };\r\n this.accessToNextRequest = true;\r\n if ((typeof this.selectConfig.paginate) === 'function') {\r\n this.getData();\r\n } else {\r\n this.pending = false;\r\n this.data = this.selectConfig.paginate;\r\n }\r\n this.isNeededForRecall = false;\r\n }\r\n\r\n emitSelectionChangeAndClose(event: any) {\r\n this.selectionChange.emit(event.value);\r\n if (this.selectConfig.multiple) {\r\n if (!event.value?.length) {\r\n this.ngControl.control.reset();\r\n }\r\n return;\r\n }\r\n this.matSelect.close();\r\n }\r\n\r\n /*\r\n * Open mat-select and focus on search on icon click\r\n */\r\n iconClick(matSelect: MatSelect, searchInput?: ElementRef): void {\r\n matSelect.open();\r\n searchInput?.nativeElement?.focus();\r\n }\r\n\r\n /*\r\n * Custom error state matcher for mat-select to properly show error state in mat-form-field\r\n */\r\n customErrorStateMatcher = {\r\n isErrorState: (control: any, form: any): boolean => {\r\n return !!(control && control.invalid && this.submitValue);\r\n }\r\n };\r\n}\r\n","<div class=\"new-mat-autocomplete\" id=\"mat_autocomplete\"\r\n [ngClass]=\"{\r\n 'mat-select-without_icon': !selectConfig.iconUrl && !selectConfig.activeStateIconUrl,\r\n 'mat-select-with-search': selectConfig.search,\r\n 'without-label': selectConfig.hideLabel,\r\n 'invalid_field': ngControl.control.errors && submitValue,\r\n 'readonly-field': selectConfig.readOnly || ngControl.control.disabled\r\n }\"\r\n [matTooltip]=\"(selectConfig.hover && !ngControl.control.disabled ? ((selectConfig.hover || '') | translate) : '')\"\r\n [matTooltipClass]=\"'mat-mdc-tooltip big-td-mat-tooltip'\"\r\n [matTooltipPosition]=\"'above'\"\r\n *ngIf=\"selectConfig && ngControl\">\r\n\r\n <div class=\"w-100\" *ngIf=\"!selectConfig.hideLabel\">\r\n <mat-label [ngClass]=\"{\r\n 'readonly-color' : selectConfig.readOnly || ngControl.control.disabled,\r\n 'invalid-label-color': !!(ngControl.control.errors && submitValue)\r\n }\">\r\n {{ selectConfig.label | translate }}\r\n </mat-label>\r\n <span *ngIf=\"selectConfig.required\" class=\"required-input\"\r\n [ngClass]=\"{'readonly-color' : ngControl.control.disabled}\">*</span>\r\n </div>\r\n\r\n\r\n <!-- Search Input -->\r\n <div class=\"search-input w-100\"\r\n (click)=\"$event.stopPropagation();$event.preventDefault()\"\r\n [ngClass]=\"{ hide_input_placeholder: showPlaceholder || ngControl.control.disabled }\"\r\n *ngIf=\"selectConfig.search\"\r\n >\r\n <input autocomplete=\"off\"\r\n id=\"searchInput\"\r\n type=\"text\"\r\n [ngClass]=\"{'pr-25': !selectConfig.iconUrl}\"\r\n #searchInput\r\n [disabled]=\"ngControl.control.disabled || selectConfig.hover\"\r\n [placeholder]=\"(ngControl.control.disabled || selectConfig.hover) ? '' : 'Search'\"\r\n (focusout)=\"inputFocusOut()\"\r\n (focus)=\"openSelection()\"\r\n (keydown)=\"$event.stopPropagation()\"\r\n (keyup)=\"getDataWithSearch(searchInput.value,$event)\">\r\n\r\n <!-- Search Icon -->\r\n <span class=\"search-icon\">\r\n <i-tech-icon-button\r\n class=\"mr-10\"\r\n [ngClass]=\"selectConfig.readOnly || ngControl.control.disabled ? 'readonly-color'\r\n : 'default-form-icon-color'\"\r\n *ngIf=\"selectConfig.iconPrefix && !showPlaceholder\"\r\n [iconName]=\"selectConfig.iconPrefix || ''\"\r\n [disabled]=\"selectConfig.readOnly || false\"\r\n matPrefix\r\n >\r\n </i-tech-icon-button>\r\n </span>\r\n </div>\r\n\r\n <!-- Placeholder/Selected Value Display -->\r\n <ng-container *ngIf=\"showPlaceholder && selectConfig.search\">\r\n <div class=\"custom-placeholder\"\r\n *ngIf=\"(!ngControl?.value && !ngControl?.value?.length) ||\r\n (selectConfig.multiple && ngControl?.value && !ngControl?.value?.length)\"\r\n [ngClass]=\"selectConfig.readOnly || ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\r\n >\r\n {{ ((selectConfig.placeholder || '') | translate) }}\r\n </div>\r\n <div class=\"custom-placeholder custom-value ellipsis\"\r\n [ngClass]=\"{\r\n 'pr-42': selectConfig.iconUrl,\r\n 'readonly-color': selectConfig.readOnly || ngControl.control.disabled,\r\n 'default-form-icon-color': !(selectConfig.readOnly || ngControl.control.disabled)\r\n }\"\r\n *ngIf=\"ngControl?.value\"\r\n >\r\n {{ selectConfig?.multiple ? (ngControl.value | arrayToString) : showingValue }}\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Custom Icon -->\r\n <img class=\"left_icon_new pointer\"\r\n alt=\"Toggle Selection\"\r\n (click)=\"iconClick(matSelect, searchInput)\"\r\n *ngIf=\"!selectConfig.matIconName && (selectConfig.iconUrl || selectConfig.activeStateIconUrl)\"\r\n [src]=\"'assets/images/icons/global/' + (ngControl.control?.value && selectConfig?.activeStateIconUrl ?\r\n selectConfig.activeStateIconUrl\r\n : selectConfig.iconUrl)\">\r\n\r\n <mat-form-field appearance=\"outline\" class=\"w-100\" (click)=\"selectConfig?.search ? focusSearchInput() : null\">\r\n <!-- Material Select -->\r\n <mat-select #matSelect=\"matSelect\"\r\n [panelClass]=\"'autocomplete-transform-panel-location'\"\r\n [attr.aria-placeholder]=\"(selectConfig.placeholder || '') | translate\"\r\n [aria-label]=\"selectConfig.label | translate\"\r\n [id]=\"selectConfig.filtrationKey || ''\"\r\n (opened)=\"registerPanelScrollEvent(matSelect)\"\r\n (openedChange)=\"openedChange($event)\"\r\n [formControl]=\"ngControl.control\"\r\n [multiple]=\"selectConfig.multiple\"\r\n (selectionChange)=\"emitSelectionChangeAndClose($event)\"\r\n [errorStateMatcher]=\"customErrorStateMatcher\"\r\n [placeholder]=\"(selectConfig.placeholder || '') | translate\"\r\n [disabled]=\"ngControl.control.disabled\"\r\n >\r\n\r\n <!-- Loading State -->\r\n <mat-option *ngIf=\"pending\" class=\"option_loading relative\">\r\n <div class=\"request_loading\">\r\n <img ngSrc=\"./loader.svg\" alt=\"\" height=\"200\" width=\"200\"/>\r\n </div>\r\n </mat-option>\r\n\r\n <!-- Options -->\r\n <ng-container *ngIf=\"data?.length && !pending\">\r\n <!-- Add New Option -->\r\n <mat-option *ngIf=\"selectConfig.actions\"\r\n class=\"pointer add_new\"\r\n disabled\r\n (click)=\"closePanelAndUnsetFocus();addNewItemEvent()\">\r\n <!--(click)=\"ngControl.control.reset(null);\r\n matSelect._onBlur();closePanelAndUnsetFocus();addNewItemEvent()\">-->\r\n <i-tech-button\r\n [type]=\"ButtonType.OUTLINE\"\r\n [fontIcon]=\"'add'\"\r\n [text]=\"('dropdown_add_item' | translate : {INPUT_NAME: (selectConfig.label | translate)}) \"\r\n [customClass]=\"'w-100 mat-autocomplete-select-button'\">\r\n </i-tech-button>\r\n </mat-option>\r\n\r\n <!-- Regular Options -->\r\n <ng-container *ngIf=\"!selectConfig?.changeText && data.length\">\r\n <mat-option *ngFor=\"let item of data\"\r\n [value]=\"selectConfig.valueByKey | getValueByKeyFromObject : item\"\r\n (mouseup)=\"optionClick(item)\"\r\n (mousedown)=\"preventDefault($event)\">\r\n @if (selectConfig?.needTranslateOptions) {\r\n {{\r\n ((selectConfig.valueToShowByKey | getValueByKeyFromObject\r\n : item : selectConfig.valueToShowByParam : selectConfig.withParamSymbol) || '') | translate\r\n }}\r\n }@else {\r\n {{\r\n ((selectConfig.valueToShowByKey | getValueByKeyFromObject\r\n : item : selectConfig.valueToShowByParam : selectConfig.withParamSymbol) || '')\r\n }}\r\n }\r\n\r\n </mat-option>\r\n </ng-container>\r\n\r\n <!-- Custom Text Options -->\r\n <ng-container *ngIf=\"selectConfig?.changeText && data.length\">\r\n <mat-option *ngFor=\"let item of data\"\r\n [value]=\"selectConfig.valueByKey | getValueByKeyFromObject : item\"\r\n (mouseup)=\"optionClick(item)\"\r\n (mousedown)=\"preventDefault($event)\"\r\n [disabled]=\"selectConfig?.changeText[item].disabled\">\r\n {{ selectConfig?.needTranslateOptions ? (selectConfig?.changeText[item].text | translate ) : selectConfig?.changeText[item].text}}\r\n </mat-option>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-- Empty State -->\r\n <ng-container *ngIf=\"!pending && !data.length\">\r\n <mat-option disabled class=\"empty_selection_state\">\r\n <div class=\"actions_and_tile add_new flex_column w-100 flex_center_align_center\">\r\n <span>{{ 'dropdown_no_items' | translate }}</span>\r\n <div class=\"mt-10\">\r\n <i-tech-button\r\n *ngIf=\"selectConfig?.actions\"\r\n [type]=\"ButtonType.OUTLINE\"\r\n (buttonClick)=\"closePanelAndUnsetFocus();addNewItemEvent()\"\r\n [customClass]=\"'mat-autocomplete-select-button'\"\r\n [fontIcon]=\"'add'\"\r\n [text]=\"('dropdown_add_item' | translate : {INPUT_NAME: (selectConfig.label | translate)}) \">\r\n </i-tech-button>\r\n </div>\r\n </div>\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n <mat-icon *ngIf=\"selectConfig.iconPrefix\"\r\n matPrefix\r\n [ngClass]=\"{\r\n 'readonly-color' : !selectConfig['iconPrefixColor']\r\n && (selectConfig.readOnly || ngControl.control.disabled),\r\n 'default-form-icon-color' : !selectConfig['iconPrefixColor']\r\n && !(selectConfig.readOnly || ngControl.control.disabled)\r\n }\"\r\n [matTooltip]=\"((selectConfig?.['iconPrefixTooltip'] || '') | translate)\"\r\n >{{ selectConfig.iconPrefix }}\r\n </mat-icon>\r\n\r\n <mat-icon *ngIf=\"selectConfig['iconPrefixSvg']\"\r\n matPrefix\r\n [matTooltip]=\"((selectConfig?.['iconPrefixTooltip'] || '') | translate)\"\r\n [svgIcon]=\"selectConfig['iconPrefixSvg'] || ''\"\r\n ></mat-icon>\r\n\r\n <i-tech-icon-button\r\n *ngIf=\"selectConfig.search && selectConfig.clearable && !ngControl.control.disabled && !!ngControl.control.value\"\r\n iconName=\"cancel\"\r\n matSuffix\r\n [disabled]=\"selectConfig.readOnly || false\"\r\n [ngClass]=\"selectConfig.readOnly || ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\r\n (click)=\"\r\n $event.stopPropagation();\r\n $event.preventDefault();\r\n ngControl.control.reset(null);\r\n matSelect._onBlur();\r\n closePanelAndUnsetFocus()\r\n \"\r\n >\r\n </i-tech-icon-button>\r\n <mat-icon\r\n matSuffix\r\n class=\"select-arrow\"\r\n [class.open]=\"matSelect.panelOpen\"\r\n [ngClass]=\"{\r\n 'readonly-color': selectConfig.readOnly || ngControl.control.disabled,\r\n 'default-form-icon-color': !(selectConfig.readOnly || ngControl.control.disabled),\r\n 'mt-8': !!ngControl.control.value && selectConfig.clearable\r\n }\"\r\n >\r\n keyboard_arrow_down\r\n </mat-icon>\r\n <!-- Error Message -->\r\n <mat-error *ngIf=\"!!(ngControl.control.errors && submitValue)\">\r\n {{ ngControl.control | generateErrorMessages : selectConfig.label : selectConfig.defaultPatternKey }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <!-- Reset Button -->\r\n <i-tech-clear-value *ngIf=\"selectConfig.reset\" (resetValue)=\"resetValue()\"></i-tech-clear-value>\r\n</div>\r\n","import {\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n Injector, Input\r\n} from '@angular/core';\r\nimport { NgxMaskDirective, NgxMaskService } from 'ngx-mask';\r\nimport { MatDatepicker } from \"@angular/material/datepicker\";\r\nimport { AbstractControl } from \"@angular/forms\";\r\n\r\n@Directive({\r\n selector: '[dateMask]',\r\n providers:[NgxMaskDirective],\r\n standalone: true\r\n})\r\nexport class DateMaskDirective {\r\n @Input() maskType!: string;\r\n @Input() matDatepicker!: MatDatepicker<any>;\r\n @Input() rangeFormControl!: AbstractControl;\r\n\r\n expressions = {\r\n DMY: 'M0/d0/0000',\r\n DM: 'M0/d0'\r\n }\r\n maskService: any;\r\n dateRegex = new RegExp(/^\\s*(1[012]|0?[1-9])\\/(3[01]|[12][0-9]|0?[1-9])\\/((?:19|20)\\d{2})\\s*$/);\r\n dayMonthRegex = new RegExp(/^\\s*(1[012]|0?[1-9])\\/(3[01]|[12][0-9]|0?[1-9])$/);\r\n previousValue = '';\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private injector: Injector,\r\n ) {\r\n this.maskService = this.injector.get(NgxMaskService);\r\n }\r\n\r\n @HostListener('input')\r\n onInput() {\r\n let value = this.elementRef.nativeElement.value;\r\n\r\n if (this.existsZerosInString(value)) {\r\n value = this.previousValue;\r\n }\r\n\r\n const maskedValue = this.maskService.applyMask(\r\n value,\r\n this.maskType === 'DAY_MONTH' ? this.expressions.DM : this.expressions.DMY\r\n );\r\n\r\n if (this.maskType !== 'DAY_MONTH' && !isNaN(new Date(maskedValue).getTime())) {\r\n if (this.matDatepicker) {\r\n this.matDatepicker.select(new Date(maskedValue));\r\n } else if (this.rangeFormControl) {\r\n this.rangeFormControl.setValue(new Date(maskedValue));\r\n }\r\n }\r\n\r\n if (isNaN(new Date(maskedValue).getTime())) {\r\n this.matDatepicker.select(null)\r\n }\r\n\r\n this.elementRef.nativeElement.value = maskedValue || null;\r\n this.previousValue = maskedValue || null;\r\n }\r\n\r\n @HostListener('paste', ['$event'])\r\n onPaste(event: ClipboardEvent) {\r\n const pastedValue = event.clipboardData?.getData('text/plain');\r\n if (!pastedValue) { return; }\r\n if (this.maskType === 'DAY_MONTH') {\r\n if (!this.dayMonthRegex.test(pastedValue)) {\r\n event?.preventDefault();\r\n }\r\n } else {\r\n if (!this.dateRegex.test(pastedValue)) {\r\n event?.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n existsZerosInString(date: string): boolean {\r\n const dateToArray = date.split('/');\r\n let isValid;\r\n if (this.maskType === 'DAY_MONTH') {\r\n isValid = !!dateToArray.find((part: string) => part.includes('00'));\r\n } else {\r\n if (dateToArray.length < 3) {\r\n isValid = !!dateToArray.find((part: string) => part.includes('00'));\r\n } else {\r\n isValid = (dateToArray[2][0] == '0') || (+dateToArray[2][0] > 2);\r\n }\r\n\r\n }\r\n return isValid;\r\n }\r\n\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { FormControlName, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { InputService } from '../../services/input.service';\r\nimport { NgClass, NgIf } from \"@angular/common\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\r\nimport { MatInput } from \"@angular/material/input\";\r\nimport { MatTooltip } from \"@angular/material/tooltip\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { DateMaskDirective } from \"../../directives/date-mask.directive\";\r\nimport { GenerateErrorMessagesPipe } from \"../../pipes/generate-error-messages.pipe\";\r\nimport { IconButtonComponent } from \"../icon-button/icon-button.component\";\r\n\r\n@Component({\r\n selector: 'i-tech-date-picker',\r\n templateUrl: './date-picker.component.html',\r\n imports: [\r\n NgClass, NgIf,\r\n TranslateModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatDatepickerModule,\r\n MatInput,\r\n MatTooltip,\r\n MatIconModule,\r\n DateMaskDirective,\r\n GenerateErrorMessagesPipe, IconButtonComponent\r\n ]\r\n})\r\nexport class DatePickerComponent {\r\n @Input() label = '';\r\n @Input() defaultPatternKey!: string ;\r\n @Input() required = false;\r\n @Input() pastDatesDisabled = false;\r\n @Input() hintText = '';\r\n @Input() placeholder = 'MM/DD/YYYY';\r\n @Input() iconPrefix?: string;\r\n @Input() iconPrefixSvg?: string;\r\n @Input() iconPrefixTooltip?: string;\r\n @Input() iconPrefixColor?: string;\r\n @Input() iconPrefixVariant?: string;\r\n @Input() valueChangeEmit?: boolean;\r\n @Input() minDate: Date | null = null;\r\n @Input() clearable = false;\r\n\r\n @Input() submit = false;\r\n @ViewChild('inputElement') inputElement!: ElementRef;\r\n @Output() valueChangeEmitter = new EventEmitter<void>();\r\n\r\n isOpen = false;\r\n focused = false;\r\n\r\n ngControl: FormControlName;\r\n\r\n today: Date = new Date();\r\n\r\n // Filter to disable past dates\r\n dateFilter = (date: Date | null): boolean => {\r\n if (this.pastDatesDisabled) {\r\n const today = this.today;\r\n return date ? date >= today : false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n\r\n constructor(private inputService: InputService) {\r\n this.ngControl = this.inputService.injectNgControl() as FormControlName;\r\n }\r\n\r\n emitChange(): void {\r\n if (!this.valueChangeEmit) { return; }\r\n this.valueChangeEmitter.emit();\r\n }\r\n\r\n clickForFocusOut(): void {\r\n setTimeout(() => {\r\n this.inputElement.nativeElement.focus();\r\n this.inputElement.nativeElement.blur();\r\n },120)\r\n }\r\n\r\n customErrorStateMatcher = {\r\n isErrorState: (control: any, form: any): boolean => {\r\n return !!(control && control.invalid && this.submit);\r\n }\r\n };\r\n}\r\n","<div class=\"flex_column relative mat-date-range-input\" *ngIf=\"ngControl\" [ngClass]=\"{'check_requirements': submit}\">\r\n <div class=\"w-100\">\r\n <mat-label [ngClass]=\"{\r\n 'readonly-color' : ngControl.control.disabled,\r\n 'invalid-label-color': !!(ngControl.control.errors && submit)\r\n }\">\r\n {{ label | translate }}\r\n </mat-label>\r\n <span *ngIf=\"required\" class=\"required-input\" [ngClass]=\"{'readonly-color' : ngControl.control.disabled}\">*</span>\r\n </div>\r\n <mat-form-field appearance=\"outline\" [ngClass]=\"{'opened_calendar': isOpen}\"\r\n [class.readonly-field]=\"ngControl.control.disabled\">\r\n <input matInput #inputElement\r\n type=\"text\"\r\n [formControl]=\"ngControl.control\"\r\n [placeholder]=\"placeholder | translate\"\r\n [min]=\"minDate\"\r\n dateMask\r\n [matDatepicker]=\"datePicker\"\r\n [errorStateMatcher]=\"customErrorStateMatcher\"\r\n [matDatepickerFilter]=\"dateFilter\"\r\n (focus)=\"focused = true\"\r\n (click)=\"datePicker.open();\"\r\n (dateChange)=\"emitChange()\"\r\n >\r\n\r\n <mat-icon *ngIf=\"iconPrefix\"\r\n matPrefix\r\n [matTooltip]=\"((iconPrefixTooltip || '') | translate)\"\r\n [style.color]=\"iconPrefixColor\"\r\n >{{ iconPrefix }}\r\n </mat-icon>\r\n\r\n <mat-icon *ngIf=\"iconPrefixSvg\"\r\n matPrefix\r\n [matTooltip]=\"((iconPrefixTooltip || '') | translate)\"\r\n [svgIcon]=\"iconPrefixSvg\"\r\n ></mat-icon>\r\n\r\n <app-icon-button\r\n *ngIf=\"clearable && !ngControl.control.disabled && !!ngControl.control.value\"\r\n iconName=\"cancel\"\r\n matSuffix\r\n [ngClass]=\"ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\r\n (click)=\"$event.stopPropagation();$event.preventDefault();ngControl.control.reset(null);\"\r\n >\r\n </app-icon-button>\r\n\r\n <i-tech-icon-button matSuffix\r\n [iconName]=\"'date_range'\"\r\n [disabled]=\"ngControl.control.disabled\"\r\n (click)=\"datePicker.open()\"\r\n [ngClass]=\"ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\r\n ></i-tech-icon-button>\r\n\r\n <mat-datepicker #datePicker (closed)=\"isOpen = false;clickForFocusOut()\"\r\n (opened)=\"isOpen = true;focused = true\"></mat-datepicker>\r\n\r\n <!-- Error Messages -->\r\n <mat-error *ngIf=\"!!(ngControl.control.errors && submit)\">\r\n {{ ngControl.control | generateErrorMessages : label : defaultPatternKey }}\r\n </mat-error>\r\n\r\n <!-- Helper Text -->\r\n <mat-hint *ngIf=\"!(!!(ngControl.control.errors && submit)) && hintText\"\r\n [ngClass]=\"{'readonly-color' : ngControl.control.disabled}\"\r\n >\r\n {{ hintText | translate }}\r\n </mat-hint>\r\n\r\n </mat-form-field>\r\n</div>\r\n","import {\r\n AfterViewInit,\r\n Component, ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n Output,\r\n SimpleChanges,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { MatDatepickerModule, MatDateRangePicker } from \"@angular/material/datepicker\";\r\nimport { ReactiveFormsModule, UntypedFormControl, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { NgClass, NgIf } from \"@angular/common\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { IconButtonComponent } from \"../icon-button/icon-button.component\";\r\nimport { DateMaskDirective } from \"../../directives/date-mask.directive\";\r\n\r\n@Component({\r\n selector: 'i-tech-mat-range-datepicker',\r\n templateUrl: './date-range-datepicker.component.html',\r\n imports: [\r\n MatFormFieldModule,\r\n ReactiveFormsModule,\r\n MatDatepickerModule,\r\n NgClass, NgIf,\r\n TranslateModule,\r\n IconButtonComponent, DateMaskDirective\r\n ]\r\n})\r\nexport class DateRangeDatepickerComponent implements OnChanges, AfterViewInit {\r\n @Input() label?: string;\r\n @Input() placeholder?: Array<string>;\r\n @Input() value?: Array<string | null>;\r\n @Input() defaultValue?: Array<Date>;\r\n @Input() key?: {start: string, end: string, title: string};\r\n @Input() submit = false;\r\n @Input() clearValue = true;\r\n @Input() errorMessage = '';\r\n @Input() onePlaceholder?: string;\r\n @Input() hintText = 'MM/DD/YYYY - MM/DD/YYYY';\r\n @Output() resetForm = new EventEmitter<any>();\r\n @Output() selectionChange = new EventEmitter<any>();\r\n @ViewChild('picker') picker!: MatDateRangePicker<any>;\r\n @ViewChild('min') min!: ElementRef;\r\n isOpen = false;\r\n\r\n dateRangeForm = new UntypedFormGroup({\r\n startDate: new UntypedFormControl('', [Validators.maxLength(10)]),\r\n endDate: new UntypedFormControl('', [Validators.maxLength(10)]),\r\n });\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n if (this.defaultValue?.length) {\r\n this.dateRangeForm.patchValue({\r\n startDate: this.defaultValue[0],\r\n endDate: this.defaultValue[1]\r\n })\r\n }\r\n })\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n setTimeout(() => {\r\n if (changes['value']?.currentValue && !(changes['value'].currentValue[0])) {\r\n if (this.picker) {\r\n this.dateRangeForm.reset();\r\n this.picker.select(null)\r\n }\r\n } else if (changes['value'] && this.value?.length) {\r\n this.dateRangeForm.setValue({\r\n startDate: new Date(this.value[0] || ''),\r\n endDate: new Date(this.value[1] || '')\r\n })\r\n }\r\n }, 10)\r\n }\r\n\r\n clickForFocusOut(): void {\r\n setTimeout(() => {\r\n this.min.nativeElement.focus();\r\n this.min.nativeElement.blur();\r\n },120)\r\n }\r\n\r\n customErrorStateMatcher = {\r\n isErrorState: (control: any, form: any): boolean => {\r\n return !!(control && control.invalid && this.submit);\r\n }\r\n };\r\n\r\n setDate(value: Array<string | null>, element: any): void {\r\n this.selectionChange.emit(value);\r\n element.blur();\r\n }\r\n\r\n keyEventHandler(event: KeyboardEvent,value: Array<string | null>, element: any): void {\r\n if (event.code === 'Enter') {\r\n this.setDate(value,element)\r\n }\r\n }\r\n\r\n}\r\n","<div class=\"flex_column relative mat-date-range-input\"\r\n [formGroup]=\"dateRangeForm\"\r\n>\r\n <div class=\"w-100\">\r\n <mat-label>\r\n {{ (label || '') | translate }}\r\n </mat-label>\r\n </div>\r\n <mat-form-field appearance=\"outline\" [ngClass]=\"{'opened_calendar': isOpen}\">\r\n <mat-date-range-input [rangePicker]=\"picker\">\r\n <input formControlName=\"startDate\"\r\n [placeholder]=\" (placeholder ? placeholder[0] : 'Start Date')\"\r\n [title]=\"key ? key.title : 'Date'\"\r\n [attr.data-accessKey]=\"key ? key.start : 'minStartDate'\"\r\n [attr.data-parentKey]=\"key ? (key.start + '_' + key.end) : 'minStartDate_maxEndDate'\"\r\n matStartDate #min\r\n dateMask\r\n [errorStateMatcher]=\"customErrorStateMatcher\"\r\n [rangeFormControl]=\"dateRangeForm.controls['startDate']\"\r\n (keydown)=\"keyEventHandler($event,[min.value, max.value || null],min)\"\r\n (dateChange)=\"setDate([min.value, max.value || null],min)\">\r\n <input formControlName=\"endDate\"\r\n [placeholder]=\"(placeholder ? placeholder[1] : 'End Date')\"\r\n [title]=\"key ? key.title : 'Date'\"\r\n [attr.data-accessKey]=\"key ? key.end : 'maxEndDate'\"\r\n [attr.data-parentKey]=\"key ? (key.start + '_' + key.end) : 'minStartDate_maxEndDate'\"\r\n matEndDate #max\r\n dateMask\r\n [errorStateMatcher]=\"customErrorStateMatcher\"\r\n [rangeFormControl]=\"dateRangeForm.controls['endDate']\"\r\n (keydown)=\"keyEventHandler($event,[min.value, max.value || null],max)\"\r\n (dateChange)=\"setDate([min.value, max.value || null],max)\">\r\n </mat-date-range-input>\r\n <i-tech-icon-button matSuffix\r\n [iconName]=\"'cancel'\"\r\n (buttonClick)=\"selectionChange.emit([null, null])\"\r\n class=\"default-form-icon-color\"\r\n *ngIf=\"dateRangeForm.get('startDate')?.value && this.dateRangeForm.get('endDate')?.value\"\r\n ></i-tech-icon-button>\r\n <i-tech-icon-button\r\n matSuffix\r\n [iconName]=\"'date_range'\"\r\n (buttonClick)=\"picker.open()\"\r\n class=\"default-form-icon-color\"\r\n ></i-tech-icon-button>\r\n <mat-date-range-picker\r\n #picker\r\n (closed)=\"isOpen = false;clickForFocusOut()\"\r\n (opened)=\"isOpen = true\"\r\n ></mat-date-range-picker>\r\n <mat-hint *ngIf=\"hintText && !errorMessage\">{{ hintText }}</mat-hint>\r\n </mat-form-field>\r\n</div>\r\n","export enum DropdownSelectionType {\r\n UPLOAD = \"UPLOAD\",\r\n DOWNLOAD = \"DOWNLOAD\",\r\n BLANK = \"BLANK\"\r\n}\r\n\r\nexport const DropdownItemIcon = {\r\n [DropdownSelectionType.UPLOAD]: 'upload',\r\n [DropdownSelectionType.DOWNLOAD]: 'download',\r\n [DropdownSelectionType.BLANK]: 'blank',\r\n}","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\r\nimport { ButtonType } from \"../../interfaces/button-types.enum\";\r\nimport { DropdownItemIcon, DropdownSelectionType } from \"../../interfaces/dropdown-selection.constants\";\r\nimport { MatMenu, MatMenuItem, MatMenuTrigger, MenuPositionX } from \"@angular/material/menu\";\r\nimport { MatIcon } from \"@angular/material/icon\";\r\nimport { NgClass, NgForOf, NgIf } from \"@angular/common\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { ButtonComponent } from \"../button/button.component\";\r\nimport { MatLabel } from \"@angular/material/form-field\";\r\n\r\n@Component({\r\n selector: \"i-tech-menu\",\r\n imports: [\r\n MatMenuTrigger,\r\n MatMenu,\r\n MatIcon,\r\n NgIf,\r\n NgForOf,\r\n MatMenuItem,\r\n TranslateModule,\r\n NgClass,\r\n ButtonComponent,\r\n MatLabel\r\n ],\r\n templateUrl: \"./menu.component.html\",\r\n styleUrls: [\"./menu.component.scss\"]\r\n})\r\nexport class MenuComponent {\r\n @Input() text!: string;\r\n @Input() dataName!: string;\r\n @Input() containerClass!: string;\r\n @Input() positionX: MenuPositionX = 'before';\r\n @Input() menuOptions: Array<{\r\n value: string;\r\n text: string;\r\n src?: string;\r\n class?: string;\r\n type?: DropdownSelectionType;\r\n }> = [];\r\n @Output() emitEvent = new EventEmitter<any>();\r\n protected readonly ButtonType = ButtonType;\r\n protected readonly DropdownItemIcon = DropdownItemIcon;\r\n matMenuState = false;\r\n}\r\n","<div class=\"custom_dropdown_container\"\r\n [attr.data-name]=\"dataName\"\r\n [ngClass]=\"containerClass\"\r\n>\r\n <i-tech-button\r\n [matMenuTriggerFor]=\"beforeMenu\"\r\n [type]=\"ButtonType.OUTLINE\"\r\n [fontIcon]=\"'keyboard_arrow_down'\"\r\n [text]=\"(text || '') \"\r\n (menuOpened)=\"matMenuState = true\"\r\n (menuClosed)=\"matMenuState = false\"\r\n [activated]=\"matMenuState\"\r\n ></i-tech-button>\r\n <mat-menu #beforeMenu=\"matMenu\" [xPosition]=\"positionX\">\r\n <button mat-menu-item *ngFor=\"let option of menuOptions\" (click)=\"emitEvent.emit(option.value)\">\r\n <mat-icon *ngIf=\"option.type\" [svgIcon]=\"DropdownItemIcon[option.type]\"></mat-icon>\r\n <mat-label class=\"meu_item_label\">{{(option.text || '') | translate}}</mat-label>\r\n </button>\r\n </mat-menu>\r\n</div>\r\n","/*\r\n * Public API Surface of shared-components\r\n */\r\n\r\nexport * from './lib/pipes/generate-error-messages.pipe';\r\nexport * from './lib/pipes/array-to-string.pipe';\r\nexport * from './lib/pipes/get-value-by-key-from-object.pipe';\r\nexport * from './lib/services/input.service';\r\nexport * from './lib/interfaces/app-input.interface';\r\nexport * from './lib/interfaces/button-types.enum';\r\nexport * from './lib/interfaces/autocomplete-configs.interface';\r\nexport * from './lib/directives/input-mask.directive';\r\nexport * from './lib/components/icon-button/icon-button.component';\r\nexport * from './lib/components/text/text-input.component';\r\nexport * from './lib/components/button/button.component';\r\nexport * from './lib/components/autocomplete-select/autocomplete-select.component';\r\nexport * from './lib/components/date-picker/date-picker.component';\r\nexport * from './lib/components/clear-value/clear-value.component';\r\nexport * from './lib/components/date-range-datepicker/date-range-datepicker.component';\r\nexport * from './lib/components/menu/menu.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.InputService","i5","i6","i2","i3","i4"],"mappings":"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"}
1
+ {"version":3,"file":"i-tech-shared-components.mjs","sources":["../../../projects/shared-components/src/lib/pipes/generate-error-messages.pipe.ts","../../../projects/shared-components/src/lib/pipes/array-to-string.pipe.ts","../../../projects/shared-components/src/lib/pipes/get-value-by-key-from-object.pipe.ts","../../../projects/shared-components/src/lib/interfaces/button-types.enum.ts","../../../projects/shared-components/src/lib/interfaces/confirmation-dialog-types.enum.ts","../../../projects/shared-components/src/lib/interfaces/dropdown-selection.constants.ts","../../../projects/shared-components/src/lib/interfaces/label-type.enum.ts","../../../projects/shared-components/src/lib/directives/input-mask.directive.ts","../../../projects/shared-components/src/lib/components/icon-button/icon-button.component.ts","../../../projects/shared-components/src/lib/components/icon-button/icon-button.component.html","../../../projects/shared-components/src/lib/services/input.service.ts","../../../projects/shared-components/src/lib/components/text/text-input.component.ts","../../../projects/shared-components/src/lib/components/text/text-input.component.html","../../../projects/shared-components/src/lib/components/button/button.component.ts","../../../projects/shared-components/src/lib/components/button/button.component.html","../../../projects/shared-components/src/lib/components/clear-value/clear-value.component.ts","../../../projects/shared-components/src/lib/components/autocomplete-select/autocomplete-select.component.ts","../../../projects/shared-components/src/lib/components/autocomplete-select/autocomplete-select.component.html","../../../projects/shared-components/src/lib/directives/date-mask.directive.ts","../../../projects/shared-components/src/lib/components/date-picker/date-picker.component.ts","../../../projects/shared-components/src/lib/components/date-picker/date-picker.component.html","../../../projects/shared-components/src/lib/components/date-range-datepicker/date-range-datepicker.component.ts","../../../projects/shared-components/src/lib/components/date-range-datepicker/date-range-datepicker.component.html","../../../projects/shared-components/src/lib/components/menu/menu.component.ts","../../../projects/shared-components/src/lib/components/menu/menu.component.html","../../../projects/shared-components/src/lib/components/label/label.component.ts","../../../projects/shared-components/src/lib/components/label/label.component.html","../../../projects/shared-components/src/lib/components/loading/loading.component.ts","../../../projects/shared-components/src/lib/components/loading/loading.component.html","../../../projects/shared-components/src/lib/components/standard-dialog/standard-dialog.component.ts","../../../projects/shared-components/src/lib/components/standard-dialog/standard-dialog.component.html","../../../projects/shared-components/src/lib/components/custom-dialog/custom-dialog.component.ts","../../../projects/shared-components/src/lib/components/custom-dialog/custom-dialog.component.html","../../../projects/shared-components/src/lib/components/confirmation-dialog-by-type/confirmation-dialog-by-type.component.ts","../../../projects/shared-components/src/lib/components/confirmation-dialog-by-type/confirmation-dialog-by-type.component.html","../../../projects/shared-components/src/lib/services/dialog.service.ts","../../../projects/shared-components/src/public-api.ts","../../../projects/shared-components/src/i-tech-shared-components.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Pipe({\r\n name: 'generateErrorMessages',\r\n standalone: true,\r\n pure: true\r\n})\r\nexport class GenerateErrorMessagesPipe implements PipeTransform {\r\n\r\n constructor(private translateService: TranslateService) {\r\n }\r\n\r\n transform(control: any,label: string,defaultPatternKey = 'fixed'): string {\r\n\r\n if (!control.errors) {\r\n return '';\r\n }\r\n const key = (Object.keys(control.errors)[0]);\r\n const translateParams: {ERROR_KEY: string} = { ERROR_KEY: this.translateService.instant(label) || 'Field' };\r\n const errorMessageKey = (key === 'pattern') ?\r\n 'errorMessages.pattern.' + defaultPatternKey : 'errorMessages.' + key;\r\n\r\n return this.translateService.instant(errorMessageKey,translateParams);\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'arrayToString',\r\n standalone: true\r\n})\r\nexport class ArrayToStringPipe implements PipeTransform {\r\n\r\n transform(value: Array<string | number> | string): string {\r\n return (typeof value === 'string') ? value : value.join(',');\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'getValueByKeyFromObject',\r\n standalone: true\r\n})\r\nexport class GetValueByKeyFromObjectPipe implements PipeTransform {\r\n\r\n transform(\r\n keys: string | Array<string | number>,\r\n data: any,\r\n withParams: Array<string | Array<string | number>> | null = null,\r\n withParamSymbol?: string\r\n ): string {\r\n if (typeof keys === 'string') {\r\n return data[keys];\r\n } else {\r\n let returnValue: any = data;\r\n keys.forEach((key: string | number) => {\r\n if (!returnValue) { return; }\r\n returnValue = returnValue[key];\r\n })\r\n if (withParams) {\r\n\r\n withParams.forEach((param: Array<string | number> | string) => {\r\n let include = data;\r\n\r\n if (typeof param === 'object') {\r\n param.forEach((key: string | number) => {\r\n include = (include) ? include[key] : null;\r\n })\r\n } else {\r\n include = include[param];\r\n }\r\n\r\n if (include !== undefined && include !== null) {\r\n returnValue += (withParamSymbol ? withParamSymbol : ' ') + include;\r\n }\r\n })\r\n }\r\n\r\n return ((returnValue !== \"undefined\") && (returnValue !== null) ) ? returnValue : '---';\r\n }\r\n }\r\n\r\n}\r\n","/**\r\n * Enum representing different types of buttons.\r\n */\r\nexport enum ButtonType {\r\n /** A filled button with solid background, typically used for primary actions. */\r\n FILLED = 'FILLED',\r\n\r\n /** A tonal button with lighter background, used for secondary actions. */\r\n TONAL = 'TONAL',\r\n\r\n /** An outlined button with a border and no background. */\r\n OUTLINE = 'OUTLINE',\r\n\r\n /** A text button with no background or border, ideal for minimal UI. */\r\n TEXT = 'TEXT',\r\n\r\n /** A warning button with special styling to indicate caution or alert actions. */\r\n WARNING = 'WARNING',\r\n}\r\n","export enum ConfirmationDialogTypesEnum {\r\n WARNING = 'WARNING',\r\n CONFIRMATION = 'CONFIRMATION',\r\n}\r\n","export enum DropdownSelectionType {\r\n UPLOAD = \"UPLOAD\",\r\n DOWNLOAD = \"DOWNLOAD\",\r\n BLANK = \"BLANK\"\r\n}\r\n\r\nexport const DropdownItemIcon = {\r\n [DropdownSelectionType.UPLOAD]: 'upload',\r\n [DropdownSelectionType.DOWNLOAD]: 'download',\r\n [DropdownSelectionType.BLANK]: 'blank',\r\n}","export enum LabelTypeEnum {\r\n 'purple' = 'purple',\r\n 'teal' = 'teal',\r\n 'olive' = 'olive',\r\n 'orange' = 'orange',\r\n 'blue' = 'blue',\r\n 'cyan' = 'cyan',\r\n 'raspberry' = 'raspberry',\r\n 'yellow' = 'yellow',\r\n 'wine' = 'wine',\r\n 'primary' = 'primary',\r\n 'green' = 'green',\r\n 'red' = 'red',\r\n 'gray' = 'gray'\r\n}\r\n","import {\r\n Directive,\r\n ElementRef, HostListener,\r\n Input\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[inputMask]',\r\n standalone: true\r\n})\r\nexport class InputMaskDirective {\r\n @Input() inputMask!: 'number' | 'string';\r\n @Input() set min(value: string) {\r\n this.minimumValue = Number(value);\r\n }\r\n @Input() set max(value: string) {\r\n this.maximumValue = Number(value);\r\n }\r\n @Input() set float(value: string) {\r\n this.isFloat = value === 'true';\r\n }\r\n minimumValue!: number;\r\n maximumValue!: number;\r\n isFloat!: boolean;\r\n regexFloat = new RegExp(/^([0-9]*[.])?[0-9]+$/);\r\n regexOnlyNumbers = new RegExp(/^-?[0-9]+(?:\\.[0-9]+)?$/);\r\n\r\n @HostListener('paste', ['$event'])\r\n onPaste(event: any) {\r\n this.makeValidation(event, true)\r\n }\r\n\r\n constructor(private elementRef: ElementRef) {\r\n this.elementRef.nativeElement.addEventListener('keypress', (event: Event) => {\r\n this.makeValidation(event)\r\n })\r\n }\r\n\r\n makeValidation(event: any, fromPaste = false): boolean {\r\n let value: any;\r\n let newChar: any;\r\n\r\n if (!fromPaste) {\r\n newChar = String.fromCharCode(event.keyCode);\r\n const cursorPos = event.target.selectionStart;\r\n const inputText = event.target.value;\r\n value = `${inputText.slice(0, cursorPos)}${newChar}${inputText.slice(cursorPos, inputText.length)}`;\r\n } else {\r\n value = event.clipboardData?.getData('text/plain');\r\n }\r\n\r\n if (this.inputMask === 'number') {\r\n return this.checkingForNumbers(value, event, newChar, fromPaste);\r\n } else if (this.inputMask === 'string') {\r\n return this.checkingForTexts(value, event);\r\n } else {\r\n return true\r\n }\r\n }\r\n\r\n checkingForNumbers(value: any, event: any, newChar: string, fromPaste = false): boolean {\r\n if ((isNaN(this.minimumValue) || this.minimumValue < 0) && value === '-') { value = Number('-0'); }\r\n\r\n if (this.isFloat && (newChar === '.')) {\r\n value += '0';\r\n }\r\n if (!this.isFloat && fromPaste && value.includes('.')) {\r\n event.preventDefault();\r\n return false;\r\n }\r\n\r\n const regex = (this.isFloat) ? this.regexFloat : this.regexOnlyNumbers;\r\n\r\n if (!regex.test(value) ||\r\n (this.minimumValue && value < this.minimumValue) ||\r\n (this.maximumValue && value > this.maximumValue)\r\n ) {\r\n event.preventDefault();\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n checkingForTexts(value: any, event: any): boolean {\r\n const regex = new RegExp(/^[A-Za-z0-9]*$/);\r\n if (!regex.test(value)) {\r\n event.preventDefault();\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { MatFabButton, MatIconButton } from \"@angular/material/button\";\r\nimport { NgClass, NgIf } from \"@angular/common\";\r\nimport { MatTooltip } from \"@angular/material/tooltip\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { MatIcon } from \"@angular/material/icon\";\r\n\r\n@Component({\r\n selector: 'i-tech-icon-button',\r\n templateUrl: './icon-button.component.html',\r\n styleUrl: './icon-button.component.scss',\r\n imports: [\r\n MatIconButton,\r\n NgClass,\r\n MatTooltip,\r\n TranslateModule,\r\n MatIcon,\r\n MatFabButton,\r\n NgIf\r\n ]\r\n})\r\nexport class IconButtonComponent {\r\n @Input() size: 'medium' | 'small' = 'medium';\r\n @Input() type: 'standard' | 'filled' | 'tonal' = 'tonal';\r\n @Input() iconSvg!: string;\r\n @Input() iconName!: string;\r\n @Input() tooltip!: string;\r\n @Input() disabled!: boolean;\r\n @Output() buttonClick = new EventEmitter<void>();\r\n\r\n onClick(event: MouseEvent): void {\r\n if (!this.disabled) {\r\n this.buttonClick.emit();\r\n }\r\n }\r\n}\r\n","<button\r\n *ngIf=\"['tonal','standard'].includes(type)\"\r\n mat-icon-button\r\n [ngClass]=\"{small: size === 'small', tonal: type === 'tonal', standard: type === 'standard'}\"\r\n [matTooltip]=\"tooltip | translate\"\r\n [matTooltipDisabled]=\"!tooltip\"\r\n [disabled]=\"disabled || false\"\r\n (click)=\"onClick($event)\"\r\n>\r\n <mat-icon *ngIf=\"iconSvg\" [svgIcon]=\"iconSvg\"></mat-icon>\r\n <mat-icon *ngIf=\"iconName\">{{iconName}}</mat-icon>\r\n</button>\r\n\r\n<button\r\n *ngIf=\"type === 'filled'\"\r\n mat-fab\r\n class=\"filled\"\r\n [ngClass]=\"{small: size === 'small'}\"\r\n [matTooltip]=\"tooltip | translate\"\r\n [matTooltipDisabled]=\"!tooltip\"\r\n [color]=\"'primary'\"\r\n [disabled]=\"disabled || false\"\r\n (click)=\"onClick($event)\"\r\n>\r\n <mat-icon *ngIf=\"iconSvg\" [svgIcon]=\"iconSvg\"></mat-icon>\r\n <mat-icon *ngIf=\"iconName\">{{iconName}}</mat-icon>\r\n</button>\r\n","import { ControlValueAccessor, FormControlName, NgControl } from \"@angular/forms\";\r\nimport { inject, Injectable } from \"@angular/core\";\r\n\r\nclass NoopValueAccessor implements ControlValueAccessor {\r\n writeValue() {\r\n // No-op: Intentionally empty to prevent value updates\r\n }\r\n\r\n registerOnChange() {\r\n // No-op: Intentionally empty to prevent change notifications\r\n }\r\n\r\n registerOnTouched() {\r\n // No-op: Intentionally empty to prevent touch notifications\r\n }\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class InputService {\r\n injectNgControl(): FormControlName {\r\n const ngControl = inject(NgControl, { self: true, optional: true });\r\n\r\n if (!ngControl) throw new Error('...');\r\n\r\n if (ngControl instanceof FormControlName) {\r\n ngControl.valueAccessor = new NoopValueAccessor();\r\n return ngControl;\r\n }\r\n\r\n throw new Error(`...`);\r\n }\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { FormControlName, ReactiveFormsModule } from '@angular/forms';\r\nimport { InputService } from '../../services/input.service';\r\nimport { AppInputInterface } from \"../../interfaces/app-input.interface\";\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { NgClass, NgIf } from \"@angular/common\";\r\nimport { MatIcon } from \"@angular/material/icon\";\r\nimport { MatTooltip } from \"@angular/material/tooltip\";\r\nimport { MatInput } from \"@angular/material/input\";\r\nimport { GenerateErrorMessagesPipe } from \"../../pipes/generate-error-messages.pipe\";\r\nimport { IconButtonComponent } from \"../icon-button/icon-button.component\";\r\nimport { InputMaskDirective } from \"../../directives/input-mask.directive\";\r\nimport { NgxMaskDirective } from \"ngx-mask\";\r\n\r\n@Component({\r\n selector: 'i-tech-text-input',\r\n templateUrl: './text-input.component.html',\r\n styleUrls: [],\r\n imports: [\r\n TranslateModule,\r\n NgClass,\r\n MatIcon,\r\n MatTooltip,\r\n MatInput,\r\n ReactiveFormsModule,\r\n NgIf,\r\n GenerateErrorMessagesPipe,\r\n IconButtonComponent,\r\n InputMaskDirective,\r\n NgxMaskDirective,\r\n MatFormFieldModule\r\n ]\r\n})\r\nexport class TextInputComponent {\r\n @ViewChild('inputElement') input!: ElementRef;\r\n\r\n @Input() set inputData(data: AppInputInterface) {\r\n // If submit becomes true, mark the control as touched\r\n if (data?.submit && this.ngControl.control) {\r\n this.ngControl.control.markAsTouched();\r\n }\r\n this._inputData = data;\r\n }\r\n\r\n get inputData(): AppInputInterface {\r\n return this._inputData;\r\n }\r\n\r\n @Output() focusOutEmitter = new EventEmitter<void>();\r\n\r\n private _inputData!: AppInputInterface;\r\n ngControl: FormControlName;\r\n closed = false;\r\n\r\n constructor(private inputService: InputService) {\r\n this.ngControl = this.inputService.injectNgControl();\r\n }\r\n\r\n onFocusOut(): void {\r\n if (this._inputData.focusOutEmit) {\r\n this.focusOutEmitter.emit();\r\n }\r\n }\r\n\r\n clear(): void {\r\n if (this.ngControl) {\r\n this.ngControl.control.reset();\r\n }\r\n }\r\n\r\n toggleEye(): void {\r\n this.input.nativeElement.type = this.closed ? 'password' : 'text';\r\n this.closed = !this.closed;\r\n }\r\n\r\n customErrorStateMatcher = {\r\n isErrorState: (control: any, form: any): boolean => {\r\n return !!(control && control.invalid && this.inputData?.submit);\r\n }\r\n };\r\n}\r\n","<div *ngIf=\"inputData && ngControl\">\r\n <div class=\"w-100\">\r\n <mat-label [ngClass]=\"{\r\n 'readonly-color' : inputData.readOnly || ngControl.control.disabled,\r\n 'invalid-label-color': !!(ngControl.control.errors && inputData.submit)\r\n }\"\r\n *ngIf=\"inputData.label\">\r\n {{ inputData.label | translate }}\r\n </mat-label>\r\n <span *ngIf=\"inputData.required\" class=\"required-input\"\r\n [ngClass]=\"{'readonly-color' : inputData.readOnly || ngControl.control.disabled}\">*</span>\r\n </div>\r\n <mat-form-field appearance=\"outline\" class=\"w-100\"\r\n [class.readonly-field]=\"inputData.readOnly || ngControl.control.disabled\"\r\n >\r\n <!-- Leading Icon -->\r\n <mat-icon *ngIf=\"inputData.iconPrefix\"\r\n matPrefix\r\n [ngClass]=\"{\r\n 'readonly-color' : !inputData.iconPrefixColor &&\r\n (inputData.readOnly || ngControl.control.disabled),\r\n 'default-form-icon-color' : !inputData.iconPrefixColor &&\r\n !(inputData.readOnly || ngControl.control.disabled)\r\n }\"\r\n [matTooltip]=\"((inputData.iconPrefixTooltip || '') | translate)\"\r\n [style.color]=\"inputData.iconPrefixColor || null\"\r\n >{{ inputData.iconPrefix }}\r\n </mat-icon>\r\n\r\n <mat-icon *ngIf=\"inputData.iconPrefixSvg\"\r\n matPrefix\r\n [matTooltip]=\"((inputData.iconPrefixTooltip || '') | translate)\"\r\n [svgIcon]=\"inputData.iconPrefixSvg\"\r\n ></mat-icon>\r\n\r\n <!-- Input Field -->\r\n <input matInput #inputElement\r\n *ngIf=\"!inputData.textarea\"\r\n [type]=\"inputData.type || 'text'\"\r\n [readonly]=\"inputData.readOnly\"\r\n [placeholder]=\"(inputData.placeholder || '') | translate\"\r\n [pattern]=\"inputData.pattern!\"\r\n [formControl]=\"ngControl.control\"\r\n [mask]=\"inputData.mask || ''\"\r\n [ngClass]=\"{'readonly-color readonly-cursor' : inputData.readOnly || ngControl.control.disabled}\"\r\n [inputMask]=\"inputData.inputMask!\"\r\n [errorStateMatcher]=\"customErrorStateMatcher\"\r\n (blur)=\"onFocusOut()\"\r\n >\r\n\r\n <textarea matInput\r\n *ngIf=\"inputData.textarea\"\r\n [type]=\"inputData.type || 'text'\"\r\n [readonly]=\"inputData.readOnly\"\r\n [placeholder]=\"(inputData.placeholder || '') | translate\"\r\n [pattern]=\"inputData.pattern!\"\r\n [formControl]=\"ngControl.control\"\r\n [ngClass]=\"{'readonly-color' : inputData.readOnly || ngControl.control.disabled}\"\r\n [errorStateMatcher]=\"customErrorStateMatcher\"\r\n ></textarea>\r\n\r\n <!-- Clear Icon -->\r\n <i-tech-icon-button\r\n *ngIf=\"inputData.clearable\"\r\n iconName=\"cancel\"\r\n matSuffix\r\n [disabled]=\"inputData.readOnly || ngControl.control.disabled || false\"\r\n [ngClass]=\"inputData.readOnly || ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\r\n (click)=\"clear()\"\r\n >\r\n </i-tech-icon-button>\r\n\r\n <i-tech-icon-button\r\n *ngIf=\"inputData.type === 'password'\"\r\n [iconName]=\"closed ? 'visibility' : 'visibility_off'\"\r\n matSuffix\r\n [disabled]=\"inputData.readOnly || ngControl.control.disabled || false\"\r\n [ngClass]=\"inputData.readOnly || ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\r\n (click)=\"toggleEye()\"\r\n >\r\n </i-tech-icon-button>\r\n\r\n <!-- Trailing Icon -->\r\n <i-tech-icon-button\r\n *ngIf=\"inputData.iconSuffix\"\r\n [iconName]=\"inputData.iconSuffix\"\r\n [disabled]=\"inputData.readOnly || ngControl.control.disabled || false\"\r\n [ngClass]=\"inputData.readOnly || ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\r\n matSuffix\r\n >\r\n </i-tech-icon-button>\r\n\r\n <!-- Error Messages -->\r\n <mat-error *ngIf=\"!!(ngControl.control.errors && inputData.submit)\">\r\n {{ ngControl.control | generateErrorMessages : (inputData.label || '') : inputData.defaultPatternKey }}\r\n </mat-error>\r\n\r\n <!-- Helper Text -->\r\n <mat-hint *ngIf=\"!(!!(ngControl.control.errors && inputData.submit)) && inputData.hint\">\r\n {{ inputData.hint | translate }}\r\n </mat-hint>\r\n </mat-form-field>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { MatButton } from \"@angular/material/button\";\r\nimport { NgClass, NgIf } from \"@angular/common\";\r\nimport { MatProgressSpinner } from \"@angular/material/progress-spinner\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { TranslateModule, TranslatePipe, TranslateService } from \"@ngx-translate/core\";\r\nimport { ButtonType } from '../../interfaces/button-types.enum';\r\nimport { NgxMaskDirective, NgxMaskPipe } from 'ngx-mask';\r\n\r\n/**\r\n * A reusable button component with Material Design styling and custom functionality.\r\n */\r\n@Component({\r\n selector: 'i-tech-button',\r\n imports: [\r\n MatButton,\r\n NgClass,\r\n MatProgressSpinner,\r\n NgIf,\r\n MatIconModule,\r\n TranslateModule\r\n ],\r\n templateUrl: './button.component.html',\r\n styleUrl: './button.component.css',\r\n providers: [\r\n NgxMaskDirective,\r\n NgxMaskPipe,\r\n TranslatePipe,\r\n TranslateService\r\n ]\r\n})\r\nexport class ButtonComponent {\r\n /**\r\n * The text displayed inside the button.\r\n */\r\n @Input() text = '';\r\n\r\n /**\r\n * Data attribute used for Cypress or other testing frameworks.\r\n */\r\n @Input() data_cy = '';\r\n\r\n /**\r\n * Font icon class for displaying an icon (e.g., Material Icons).\r\n */\r\n @Input() fontIcon = '';\r\n\r\n /**\r\n * SVG icon name for displaying an SVG icon.\r\n */\r\n @Input() svgIcon = '';\r\n\r\n /**\r\n * Defines the type of button (e.g., `FILLED`, `OUTLINED`).\r\n */\r\n @Input() type: ButtonType = ButtonType.FILLED;\r\n\r\n /**\r\n * Additional custom classes to style the button.\r\n */\r\n @Input() customClass = '';\r\n\r\n /**\r\n * If true, the button acts as a submit button.\r\n */\r\n @Input() submit = false;\r\n\r\n /**\r\n * If true, the button is disabled and cannot be clicked.\r\n */\r\n @Input() disabled = false;\r\n\r\n /**\r\n * Indicates whether the button is currently activated.\r\n */\r\n @Input() activated = false;\r\n\r\n /**\r\n * The color of the button (e.g., `primary`, `warn`).\r\n */\r\n @Input() color: 'primary' | 'warn' = 'primary';\r\n\r\n /**\r\n * Emits an event when the button is clicked.\r\n */\r\n @Output() buttonClick = new EventEmitter<void>();\r\n\r\n /**\r\n * Enum reference for `ButtonType` to use in templates.\r\n */\r\n protected readonly ButtonType = ButtonType;\r\n\r\n /**\r\n * Handles the button click event.\r\n *\r\n * @param event - The mouse event triggered by clicking the button.\r\n */\r\n onClick(event: MouseEvent): void {\r\n if (!this.disabled && !this.submit) {\r\n this.buttonClick.emit();\r\n }\r\n }\r\n}\r\n","<button *ngIf=\"[ButtonType.FILLED,ButtonType.WARNING].includes(type)\"\r\n mat-flat-button\r\n [attr.data-cy]=\"data_cy\"\r\n [color]=\"type === ButtonType.WARNING ? 'warn' : color\"\r\n [class.activated]=\"activated\"\r\n [ngClass]=\"(customClass || '')\"\r\n [disabled]=\"disabled || submit\"\r\n (click)=\"onClick($event)\"\r\n>\r\n <span *ngIf=\"submit\" class=\"spinner-overlay\">\r\n <mat-spinner diameter=\"16\"></mat-spinner>\r\n </span>\r\n <mat-icon *ngIf=\"fontIcon && !submit\">{{fontIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIcon && !submit\" [svgIcon]=\"svgIcon\"></mat-icon>\r\n <span>{{text | translate}}</span>\r\n</button>\r\n<button *ngIf=\"[ButtonType.TONAL,ButtonType.TEXT].includes(type)\"\r\n mat-button\r\n [attr.data-cy]=\"data_cy\"\r\n [ngClass]=\"(type === ButtonType.TONAL ? 'tertiary ' : '') + (customClass || '')\"\r\n [class.activated]=\"activated\"\r\n [disabled]=\"disabled || submit\"\r\n (click)=\"onClick($event)\"\r\n>\r\n <span *ngIf=\"submit\" class=\"spinner-overlay\">\r\n <mat-spinner diameter=\"16\"></mat-spinner>\r\n </span>\r\n <mat-icon *ngIf=\"fontIcon && !submit\">{{fontIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIcon && !submit\" [svgIcon]=\"svgIcon\"></mat-icon>\r\n\r\n <span>{{text | translate}}</span>\r\n</button>\r\n<button *ngIf=\"type === ButtonType.OUTLINE\"\r\n [color]=\"color\"\r\n mat-stroked-button\r\n [attr.data-cy]=\"data_cy\"\r\n [ngClass]=\"(customClass || '') \"\r\n [disabled]=\"disabled || submit\"\r\n (click)=\"onClick($event)\"\r\n [class.activated]=\"activated\"\r\n>\r\n <span *ngIf=\"submit\" class=\"spinner-overlay\">\r\n <mat-spinner diameter=\"16\"></mat-spinner>\r\n </span>\r\n <mat-icon *ngIf=\"fontIcon && !submit\" >{{fontIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"svgIcon && !submit\" [svgIcon]=\"svgIcon\"></mat-icon>\r\n <span>{{text | translate}}</span>\r\n</button>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { NgClass, NgOptimizedImage } from \"@angular/common\";\r\n\r\n@Component({\r\n selector: 'i-tech-clear-value',\r\n template: `<img\r\n class=\"pointer\"\r\n [ngClass]=\"className || 'standard'\"\r\n (click)=\"resetValue.emit()\"\r\n ngSrc=\"./ic_close.svg\"\r\n height=\"24\" width=\"24\" alt=\"\"/>`,\r\n styles: [`\r\n img {\r\n position: absolute;\r\n width: 15px;\r\n height: 15px;\r\n }\r\n\r\n .big {\r\n width: 25px;\r\n height: 25px;\r\n }\r\n\r\n .range_date {\r\n right: -65px;\r\n top: 15px;\r\n }\r\n\r\n .standard {\r\n right: -20px;\r\n top: 40px;\r\n }\r\n `],\r\n imports: [\r\n NgClass,\r\n NgOptimizedImage\r\n ]\r\n})\r\nexport class ClearValueComponent {\r\n @Input() className!: string;\r\n @Input() additionalClass!: string;\r\n @Output() resetValue = new EventEmitter<any>();\r\n}\r\n","import {\r\n Component,\r\n ViewChild,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n OnChanges,\r\n SimpleChanges,\r\n ElementRef, HostListener, AfterViewInit\r\n} from '@angular/core';\r\nimport { MatSelect, MatSelectModule } from \"@angular/material/select\";\r\nimport { AutocompleteConfigsInterface } from \"../../interfaces/autocomplete-configs.interface\";\r\nimport { FormControlName, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { InputService } from '../../services/input.service';\r\nimport { ButtonType } from '../../interfaces/button-types.enum';\r\nimport { NgClass, NgFor, NgIf, NgOptimizedImage } from \"@angular/common\";\r\nimport { MatTooltip } from \"@angular/material/tooltip\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { IconButtonComponent } from \"../icon-button/icon-button.component\";\r\nimport { ButtonComponent } from \"../button/button.component\";\r\nimport { GetValueByKeyFromObjectPipe } from \"../../pipes/get-value-by-key-from-object.pipe\";\r\nimport { ArrayToStringPipe } from \"../../pipes/array-to-string.pipe\";\r\nimport { MatIcon } from \"@angular/material/icon\";\r\nimport { GenerateErrorMessagesPipe } from \"../../pipes/generate-error-messages.pipe\";\r\nimport { ClearValueComponent } from \"../clear-value/clear-value.component\";\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\n\r\n@Component({\r\n selector: 'i-tech-autocomplete-select',\r\n templateUrl: './autocomplete-select.component.html',\r\n styleUrls: ['./autocomplete-select.component.scss'],\r\n imports: [\r\n NgClass,\r\n MatTooltip,\r\n NgIf,\r\n NgFor,\r\n TranslateModule,\r\n IconButtonComponent,\r\n ReactiveFormsModule,\r\n MatSelectModule,\r\n ButtonComponent,\r\n GetValueByKeyFromObjectPipe,\r\n ArrayToStringPipe,\r\n NgOptimizedImage,\r\n MatIcon,\r\n GenerateErrorMessagesPipe,\r\n ClearValueComponent,\r\n MatFormFieldModule\r\n ]\r\n})\r\nexport class AutocompleteSelectComponent implements OnChanges, AfterViewInit {\r\n @ViewChild('matSelect') matSelect!: MatSelect;\r\n @ViewChild('searchInput') searchInput!: ElementRef;\r\n @Input() className!: string;\r\n @Input() submitValue!: boolean;\r\n\r\n /**\r\n * See AutocompleteConfigsInterface for available configurations.\r\n */\r\n @Input() set configs(data: AutocompleteConfigsInterface) {\r\n this.selectConfig = data;\r\n if (!data) {\r\n return;\r\n }\r\n\r\n if ((typeof this.selectConfig.paginate) === 'function') {\r\n if (this.firstRequest) {\r\n return;\r\n }\r\n this.getData();\r\n this.firstRequest = true\r\n return;\r\n }\r\n\r\n this.data = this.selectConfig.paginate;\r\n this.findAndSetDefaultValueFromData();\r\n };\r\n\r\n @Input() detectChanges!: boolean;\r\n @Output() selectionChange = new EventEmitter<any>();\r\n @Output() emitAction = new EventEmitter<any>();\r\n @ViewChild('allSelected') allSelected!: MatSelect;\r\n pending = false;\r\n defaultValue!: any;\r\n data: Array<any> = [];\r\n paginationData: any = { current: 1, last: 0 };\r\n ngControl: FormControlName;\r\n selectConfig!: AutocompleteConfigsInterface;\r\n firstRequest = false;\r\n showPlaceholder = true;\r\n isNeededForRecall = false;\r\n showingValue: any;\r\n searchTimeoutId: any;\r\n tabVisibility!: boolean;\r\n accessToNextRequest = true;\r\n disabled = false;\r\n blockRecallDefaultValueSetter = false;\r\n baseData: any;\r\n requestLoading = false;\r\n protected readonly ButtonType = ButtonType;\r\n\r\n @HostListener('document:visibilitychange')\r\n handleVisibilityChange(): void {\r\n this.tabVisibility = !document.hidden;\r\n if (this.ngControl.control.value) {\r\n return;\r\n }\r\n this.closePanelAndUnsetFocus();\r\n if (!document.hidden) {\r\n this.isNeededForRecall = true;\r\n this.pending = true;\r\n setTimeout(() => {\r\n this.pending = false\r\n }, 4000)\r\n }\r\n }\r\n\r\n constructor(private inputService: InputService) {\r\n this.ngControl = this.inputService.injectNgControl();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['selectConfig'] && this.selectConfig) {\r\n if ((typeof this.selectConfig.paginate) === 'function') {\r\n this.getData();\r\n }\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.ngControl.control.valueChanges.subscribe((res: any) => {\r\n if (this.data.length && res && !this.blockRecallDefaultValueSetter) {\r\n this.findAndSetDefaultValueFromData();\r\n }\r\n })\r\n }\r\n\r\n hardReload(): void {\r\n this.getData('', true);\r\n }\r\n\r\n /**\r\n * Dynamic request for select data.\r\n * @param searchText - The input value to search options by.\r\n * @param fromSearch - Access for search.\r\n * @returns Select data.\r\n */\r\n getData(searchText?: string, fromSearch?: boolean): void {\r\n if (!fromSearch && !this.accessToNextRequest) {\r\n return;\r\n }\r\n\r\n if (this.requestLoading) {\r\n return;\r\n }\r\n\r\n if (fromSearch) {\r\n this.paginationData.current = 1;\r\n this.accessToNextRequest = true;\r\n }\r\n\r\n const functionToDo = this.selectConfig.paginate(this.paginationData.current, searchText);\r\n\r\n this.requestLoading = true;\r\n functionToDo?.subscribe((data: Array<any> | any) => {\r\n const dataToAdd = ('content' in data) ? data.content : data;\r\n\r\n if ('content' in data) {\r\n this.accessToNextRequest = !data.last || (data.totalPages > this.paginationData.current);\r\n }\r\n\r\n this.data = (fromSearch || this.selectConfig?.blockPagination) ? dataToAdd : [...this.data, ...dataToAdd];\r\n this.pending = false;\r\n this.requestLoading = false;\r\n\r\n if (!dataToAdd.length) {\r\n this.paginationData.last = this.paginationData.current;\r\n return;\r\n }\r\n\r\n this.paginationData.current += 1;\r\n this.paginationData.last += 1;\r\n setTimeout(() => {\r\n this.findAndSetDefaultValueFromData();\r\n }, 10)\r\n }, () => {\r\n this.pending = false;\r\n this.requestLoading = false;\r\n })\r\n }\r\n\r\n findAndSetDefaultValueFromData(): void {\r\n if (this.selectConfig.multiple) {\r\n if (this.ngControl.value && this.ngControl.value.length == 1) {\r\n this.setShowingValue(this.data.find((item) => item.id === this.ngControl.value[0]))\r\n }\r\n } else {\r\n const isDisabled = this.ngControl.disabled;\r\n if (isDisabled) {\r\n // TODO Remove after migrating all selects\r\n // this.ngControl.control.enable();\r\n // if (!this.ngControl.value && !this.data.length) {\r\n // this.ngControl.control.disable();\r\n // return;\r\n // }\r\n // this.setDefaultValue();\r\n // this.ngControl.control.disable();\r\n } else {\r\n if (!this.ngControl.value && !this.data) {\r\n return;\r\n }\r\n this.setDefaultValue();\r\n }\r\n\r\n }\r\n }\r\n\r\n setDefaultValue(): void {\r\n this.defaultValue = this.data.find((item) => item.id === this.ngControl.value);\r\n this.baseData = this.defaultValue\r\n if (!this.defaultValue) {\r\n return;\r\n }\r\n this.selectionChange.emit()\r\n this.setShowingValue(this.defaultValue);\r\n }\r\n\r\n optionClick(showingData: any): void {\r\n this.baseData = showingData\r\n if (!this.selectConfig.multiple) {\r\n this.setShowingValue(showingData);\r\n this.matSelect.close();\r\n return;\r\n }\r\n if (this.searchInput) {\r\n if (this.selectConfig.multiple) {\r\n this.searchInput?.nativeElement?.focus()\r\n } else {\r\n this.inputFocusOut();\r\n }\r\n }\r\n\r\n this.setShowingValue(showingData);\r\n this.showPlaceholder = false;\r\n }\r\n\r\n addNewItemEvent(): void {\r\n this.isNeededForRecall = true;\r\n this.emitAction.emit();\r\n }\r\n\r\n /**\r\n * Filter and show.\r\n * @param data - Existing chosen data.\r\n */\r\n setShowingValue(data: any): void {\r\n if (!data) {\r\n return;\r\n }\r\n // TODO refactor this part fully\r\n let include = data;\r\n let includeOptional = data;\r\n\r\n if (this.selectConfig.valueToShowByKey) {\r\n this.selectConfig.valueToShowByKey.forEach((param: Array<string | number> | string) => {\r\n\r\n if (typeof param === 'object') {\r\n param.forEach((key: string | number) => {\r\n include = (include) ? include[key] : null;\r\n })\r\n } else {\r\n include = include[param];\r\n }\r\n })\r\n if (this.selectConfig.showFullTextWithOptionalOnSelectedValue) {\r\n this.selectConfig.valueToShowByParam?.forEach((param: Array<string | number> | string) => {\r\n\r\n if (typeof param === 'object') {\r\n param.forEach((key: string | number) => {\r\n includeOptional = (includeOptional) ? includeOptional[key] : null;\r\n })\r\n } else {\r\n includeOptional = includeOptional[param];\r\n }\r\n })\r\n if (this.selectConfig.valueToShowByParam && typeof includeOptional === 'string') {\r\n include += (this.selectConfig.withParamSymbol || '') + includeOptional\r\n }\r\n }\r\n\r\n }\r\n this.showingValue = include;\r\n this.blockRecallDefaultValueSetter = true;\r\n }\r\n\r\n /**\r\n * Block another events.\r\n * @param event - Element click event.\r\n */\r\n preventDefault(event: any) {\r\n if (!this.selectConfig.multiple) {\r\n return;\r\n }\r\n event.preventDefault()\r\n }\r\n\r\n registerPanelScrollEvent(element: MatSelect) {\r\n if (this.selectConfig.paginateOnScroll === false) {\r\n return;\r\n }\r\n\r\n const panel = element.panel.nativeElement;\r\n panel.addEventListener('scroll', (event: any) => this.loadDataOnScroll(event));\r\n }\r\n\r\n loadDataOnScroll(event: any) {\r\n const pos = (event.target.scrollTop || event.target.scrollTop) + event.target.offsetHeight;\r\n const max = event.target.scrollHeight;\r\n if ((pos + 1) >= max) {\r\n if (this.paginationData.current === this.paginationData.last || this.selectConfig.blockPagination) {\r\n return;\r\n }\r\n this.getData();\r\n }\r\n }\r\n\r\n focusSearchInput() {\r\n if (this.selectConfig.search && this.searchInput) {\r\n this.searchInput.nativeElement.focus();\r\n }\r\n }\r\n\r\n inputFocusOut(): void {\r\n this.isNeededForRecall = !!this.searchInput.nativeElement.value;\r\n this.searchInput.nativeElement.value = '';\r\n this.showPlaceholder = true;\r\n this.clearTimeoutForSearch();\r\n }\r\n\r\n resetValue(): void {\r\n this.selectionChange.emit(null);\r\n this.ngControl.reset(null);\r\n this.inputFocusOut();\r\n }\r\n\r\n getDataWithSearch(value: any, event: any): void {\r\n this.clearTimeoutForSearch();\r\n if (value.length >= 1) {\r\n this.searchTimeoutId = setTimeout(() => {\r\n this.getData(value, true)\r\n }, 800);\r\n } else if (value.length <= 1 && event.keyCode === 8) {\r\n this.getData(value, true)\r\n }\r\n }\r\n\r\n clearTimeoutForSearch(): void {\r\n if (this.searchTimeoutId) {\r\n clearTimeout(this.searchTimeoutId);\r\n this.searchTimeoutId = 0;\r\n }\r\n }\r\n\r\n openSelection(): void {\r\n if (this.selectConfig.disabled || this.ngControl.control.disabled) {\r\n return;\r\n }\r\n if (this.showPlaceholder) {\r\n this.matSelect.open();\r\n } else {\r\n this.closePanelAndUnsetFocus();\r\n }\r\n this.showPlaceholder = !this.showPlaceholder;\r\n if (!this.showPlaceholder) {\r\n this.reCallData();\r\n }\r\n }\r\n\r\n closePanelAndUnsetFocus(): void {\r\n this.matSelect.close();\r\n if (this.searchInput) {\r\n this.searchInput.nativeElement.blur()\r\n }\r\n }\r\n\r\n openedChange(event: any) {\r\n if (event) {\r\n if (this.isNeededForRecall) {\r\n this.reCallData();\r\n return;\r\n }\r\n if (!this.selectConfig.search) {\r\n this.pending = false\r\n this.reCallData();\r\n }\r\n\r\n return;\r\n }\r\n\r\n this.showPlaceholder = true;\r\n }\r\n\r\n reCallData(): void {\r\n // TODO refactor this part\r\n if (!this.isNeededForRecall) {\r\n return;\r\n }\r\n this.data = [];\r\n this.pending = true;\r\n this.paginationData = {\r\n current: 1,\r\n last: 0\r\n };\r\n this.accessToNextRequest = true;\r\n if ((typeof this.selectConfig.paginate) === 'function') {\r\n this.getData();\r\n } else {\r\n this.pending = false;\r\n this.data = this.selectConfig.paginate;\r\n }\r\n this.isNeededForRecall = false;\r\n }\r\n\r\n emitSelectionChangeAndClose(event: any) {\r\n this.selectionChange.emit(event.value);\r\n if (this.selectConfig.multiple) {\r\n if (!event.value?.length) {\r\n this.ngControl.control.reset();\r\n }\r\n return;\r\n }\r\n this.matSelect.close();\r\n }\r\n\r\n /*\r\n * Open mat-select and focus on search on icon click\r\n */\r\n iconClick(matSelect: MatSelect, searchInput?: ElementRef): void {\r\n matSelect.open();\r\n searchInput?.nativeElement?.focus();\r\n }\r\n\r\n /*\r\n * Custom error state matcher for mat-select to properly show error state in mat-form-field\r\n */\r\n customErrorStateMatcher = {\r\n isErrorState: (control: any, form: any): boolean => {\r\n return !!(control && control.invalid && this.submitValue);\r\n }\r\n };\r\n}\r\n","<div class=\"new-mat-autocomplete\" id=\"mat_autocomplete\"\r\n [ngClass]=\"{\r\n 'mat-select-without_icon': !selectConfig.iconUrl && !selectConfig.activeStateIconUrl,\r\n 'mat-select-with-search': selectConfig.search,\r\n 'without-label': selectConfig.hideLabel,\r\n 'invalid_field': ngControl.control.errors && submitValue,\r\n 'readonly-field': selectConfig.readOnly || ngControl.control.disabled\r\n }\"\r\n [matTooltip]=\"(selectConfig.hover && !ngControl.control.disabled ? ((selectConfig.hover || '') | translate) : '')\"\r\n [matTooltipClass]=\"'mat-mdc-tooltip big-td-mat-tooltip'\"\r\n [matTooltipPosition]=\"'above'\"\r\n *ngIf=\"selectConfig && ngControl\">\r\n\r\n <div class=\"w-100\" *ngIf=\"!selectConfig.hideLabel\">\r\n <mat-label [ngClass]=\"{\r\n 'readonly-color' : selectConfig.readOnly || ngControl.control.disabled,\r\n 'invalid-label-color': !!(ngControl.control.errors && submitValue)\r\n }\">\r\n {{ selectConfig.label | translate }}\r\n </mat-label>\r\n <span *ngIf=\"selectConfig.required\" class=\"required-input\"\r\n [ngClass]=\"{'readonly-color' : ngControl.control.disabled}\">*</span>\r\n </div>\r\n\r\n\r\n <!-- Search Input -->\r\n <div class=\"search-input w-100\"\r\n (click)=\"$event.stopPropagation();$event.preventDefault()\"\r\n [ngClass]=\"{ hide_input_placeholder: showPlaceholder || ngControl.control.disabled }\"\r\n *ngIf=\"selectConfig.search\"\r\n >\r\n <input autocomplete=\"off\"\r\n id=\"searchInput\"\r\n type=\"text\"\r\n [ngClass]=\"{'pr-25': !selectConfig.iconUrl}\"\r\n #searchInput\r\n [disabled]=\"ngControl.control.disabled || selectConfig.hover\"\r\n [placeholder]=\"(ngControl.control.disabled || selectConfig.hover) ? '' : 'Search'\"\r\n (focusout)=\"inputFocusOut()\"\r\n (focus)=\"openSelection()\"\r\n (keydown)=\"$event.stopPropagation()\"\r\n (keyup)=\"getDataWithSearch(searchInput.value,$event)\">\r\n\r\n <!-- Search Icon -->\r\n <span class=\"search-icon\">\r\n <i-tech-icon-button\r\n class=\"mr-10\"\r\n [ngClass]=\"selectConfig.readOnly || ngControl.control.disabled ? 'readonly-color'\r\n : 'default-form-icon-color'\"\r\n *ngIf=\"selectConfig.iconPrefix && !showPlaceholder\"\r\n [iconName]=\"selectConfig.iconPrefix || ''\"\r\n [disabled]=\"selectConfig.readOnly || false\"\r\n matPrefix\r\n >\r\n </i-tech-icon-button>\r\n </span>\r\n </div>\r\n\r\n <!-- Placeholder/Selected Value Display -->\r\n <ng-container *ngIf=\"showPlaceholder && selectConfig.search\">\r\n <div class=\"custom-placeholder\"\r\n *ngIf=\"(!ngControl?.value && !ngControl?.value?.length) ||\r\n (selectConfig.multiple && ngControl?.value && !ngControl?.value?.length)\"\r\n [ngClass]=\"selectConfig.readOnly || ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\r\n >\r\n {{ ((selectConfig.placeholder || '') | translate) }}\r\n </div>\r\n <div class=\"custom-placeholder custom-value ellipsis\"\r\n [ngClass]=\"{\r\n 'pr-42': selectConfig.iconUrl,\r\n 'readonly-color': selectConfig.readOnly || ngControl.control.disabled,\r\n 'default-form-icon-color': !(selectConfig.readOnly || ngControl.control.disabled)\r\n }\"\r\n *ngIf=\"ngControl?.value\"\r\n >\r\n {{ selectConfig?.multiple ? (ngControl.value | arrayToString) : showingValue }}\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Custom Icon -->\r\n <img class=\"left_icon_new pointer\"\r\n alt=\"Toggle Selection\"\r\n (click)=\"iconClick(matSelect, searchInput)\"\r\n *ngIf=\"!selectConfig.matIconName && (selectConfig.iconUrl || selectConfig.activeStateIconUrl)\"\r\n [src]=\"'assets/images/icons/global/' + (ngControl.control?.value && selectConfig?.activeStateIconUrl ?\r\n selectConfig.activeStateIconUrl\r\n : selectConfig.iconUrl)\">\r\n\r\n <mat-form-field appearance=\"outline\" class=\"w-100\" (click)=\"selectConfig?.search ? focusSearchInput() : null\">\r\n <!-- Material Select -->\r\n <mat-select #matSelect=\"matSelect\"\r\n [panelClass]=\"'autocomplete-transform-panel-location'\"\r\n [attr.aria-placeholder]=\"(selectConfig.placeholder || '') | translate\"\r\n [aria-label]=\"selectConfig.label | translate\"\r\n [id]=\"selectConfig.filtrationKey || ''\"\r\n (opened)=\"registerPanelScrollEvent(matSelect)\"\r\n (openedChange)=\"openedChange($event)\"\r\n [formControl]=\"ngControl.control\"\r\n [multiple]=\"selectConfig.multiple\"\r\n (selectionChange)=\"emitSelectionChangeAndClose($event)\"\r\n [errorStateMatcher]=\"customErrorStateMatcher\"\r\n [placeholder]=\"(selectConfig.placeholder || '') | translate\"\r\n [disabled]=\"ngControl.control.disabled\"\r\n >\r\n\r\n <!-- Loading State -->\r\n <mat-option *ngIf=\"pending\" class=\"option_loading relative\">\r\n <div class=\"request_loading\">\r\n <img ngSrc=\"./loader.svg\" alt=\"\" height=\"200\" width=\"200\"/>\r\n </div>\r\n </mat-option>\r\n\r\n <!-- Options -->\r\n <ng-container *ngIf=\"data?.length && !pending\">\r\n <!-- Add New Option -->\r\n <mat-option *ngIf=\"selectConfig.actions\"\r\n class=\"pointer add_new\"\r\n disabled\r\n (click)=\"closePanelAndUnsetFocus();addNewItemEvent()\">\r\n <!--(click)=\"ngControl.control.reset(null);\r\n matSelect._onBlur();closePanelAndUnsetFocus();addNewItemEvent()\">-->\r\n <i-tech-button\r\n [type]=\"ButtonType.OUTLINE\"\r\n [fontIcon]=\"'add'\"\r\n [text]=\"('dropdown_add_item' | translate : {INPUT_NAME: (selectConfig.label | translate)}) \"\r\n [customClass]=\"'w-100 mat-autocomplete-select-button'\">\r\n </i-tech-button>\r\n </mat-option>\r\n\r\n <!-- Regular Options -->\r\n <ng-container *ngIf=\"!selectConfig?.changeText && data.length\">\r\n <mat-option *ngFor=\"let item of data\"\r\n [value]=\"selectConfig.valueByKey | getValueByKeyFromObject : item\"\r\n (mouseup)=\"optionClick(item)\"\r\n (mousedown)=\"preventDefault($event)\">\r\n @if (selectConfig?.needTranslateOptions) {\r\n {{\r\n ((selectConfig.valueToShowByKey | getValueByKeyFromObject\r\n : item : selectConfig.valueToShowByParam : selectConfig.withParamSymbol) || '') | translate\r\n }}\r\n }@else {\r\n {{\r\n ((selectConfig.valueToShowByKey | getValueByKeyFromObject\r\n : item : selectConfig.valueToShowByParam : selectConfig.withParamSymbol) || '')\r\n }}\r\n }\r\n\r\n </mat-option>\r\n </ng-container>\r\n\r\n <!-- Custom Text Options -->\r\n <ng-container *ngIf=\"selectConfig?.changeText && data.length\">\r\n <mat-option *ngFor=\"let item of data\"\r\n [value]=\"selectConfig.valueByKey | getValueByKeyFromObject : item\"\r\n (mouseup)=\"optionClick(item)\"\r\n (mousedown)=\"preventDefault($event)\"\r\n [disabled]=\"selectConfig?.changeText[item].disabled\">\r\n {{ selectConfig?.needTranslateOptions ? (selectConfig?.changeText[item].text | translate ) : selectConfig?.changeText[item].text}}\r\n </mat-option>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-- Empty State -->\r\n <ng-container *ngIf=\"!pending && !data.length\">\r\n <mat-option disabled class=\"empty_selection_state\">\r\n <div class=\"actions_and_tile add_new flex_column w-100 flex_center_align_center\">\r\n <span>{{ 'dropdown_no_items' | translate }}</span>\r\n <div class=\"mt-10\">\r\n <i-tech-button\r\n *ngIf=\"selectConfig?.actions\"\r\n [type]=\"ButtonType.OUTLINE\"\r\n (buttonClick)=\"closePanelAndUnsetFocus();addNewItemEvent()\"\r\n [customClass]=\"'mat-autocomplete-select-button'\"\r\n [fontIcon]=\"'add'\"\r\n [text]=\"('dropdown_add_item' | translate : {INPUT_NAME: (selectConfig.label | translate)}) \">\r\n </i-tech-button>\r\n </div>\r\n </div>\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n <mat-icon *ngIf=\"selectConfig.iconPrefix\"\r\n matPrefix\r\n [ngClass]=\"{\r\n 'readonly-color' : !selectConfig['iconPrefixColor']\r\n && (selectConfig.readOnly || ngControl.control.disabled),\r\n 'default-form-icon-color' : !selectConfig['iconPrefixColor']\r\n && !(selectConfig.readOnly || ngControl.control.disabled)\r\n }\"\r\n [matTooltip]=\"((selectConfig?.['iconPrefixTooltip'] || '') | translate)\"\r\n >{{ selectConfig.iconPrefix }}\r\n </mat-icon>\r\n\r\n <mat-icon *ngIf=\"selectConfig['iconPrefixSvg']\"\r\n matPrefix\r\n [matTooltip]=\"((selectConfig?.['iconPrefixTooltip'] || '') | translate)\"\r\n [svgIcon]=\"selectConfig['iconPrefixSvg'] || ''\"\r\n ></mat-icon>\r\n\r\n <i-tech-icon-button\r\n *ngIf=\"selectConfig.search && selectConfig.clearable && !ngControl.control.disabled && !!ngControl.control.value\"\r\n iconName=\"cancel\"\r\n matSuffix\r\n [disabled]=\"selectConfig.readOnly || false\"\r\n [ngClass]=\"selectConfig.readOnly || ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\r\n (click)=\"\r\n $event.stopPropagation();\r\n $event.preventDefault();\r\n ngControl.control.reset(null);\r\n matSelect._onBlur();\r\n closePanelAndUnsetFocus()\r\n \"\r\n >\r\n </i-tech-icon-button>\r\n <mat-icon\r\n matSuffix\r\n class=\"select-arrow\"\r\n [class.open]=\"matSelect.panelOpen\"\r\n [ngClass]=\"{\r\n 'readonly-color': selectConfig.readOnly || ngControl.control.disabled,\r\n 'default-form-icon-color': !(selectConfig.readOnly || ngControl.control.disabled),\r\n 'mt-8': !!ngControl.control.value && selectConfig.clearable\r\n }\"\r\n >\r\n keyboard_arrow_down\r\n </mat-icon>\r\n <!-- Error Message -->\r\n <mat-error *ngIf=\"!!(ngControl.control.errors && submitValue)\">\r\n {{ ngControl.control | generateErrorMessages : selectConfig.label : selectConfig.defaultPatternKey }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <!-- Reset Button -->\r\n <i-tech-clear-value *ngIf=\"selectConfig.reset\" (resetValue)=\"resetValue()\"></i-tech-clear-value>\r\n</div>\r\n","import {\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n Injector, Input\r\n} from '@angular/core';\r\nimport { NgxMaskDirective, NgxMaskService } from 'ngx-mask';\r\nimport { MatDatepicker } from \"@angular/material/datepicker\";\r\nimport { AbstractControl } from \"@angular/forms\";\r\n\r\n@Directive({\r\n selector: '[dateMask]',\r\n providers:[NgxMaskDirective],\r\n standalone: true\r\n})\r\nexport class DateMaskDirective {\r\n @Input() maskType!: string;\r\n @Input() matDatepicker!: MatDatepicker<any>;\r\n @Input() rangeFormControl!: AbstractControl;\r\n\r\n expressions = {\r\n DMY: 'M0/d0/0000',\r\n DM: 'M0/d0'\r\n }\r\n maskService: any;\r\n dateRegex = new RegExp(/^\\s*(1[012]|0?[1-9])\\/(3[01]|[12][0-9]|0?[1-9])\\/((?:19|20)\\d{2})\\s*$/);\r\n dayMonthRegex = new RegExp(/^\\s*(1[012]|0?[1-9])\\/(3[01]|[12][0-9]|0?[1-9])$/);\r\n previousValue = '';\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private injector: Injector,\r\n ) {\r\n this.maskService = this.injector.get(NgxMaskService);\r\n }\r\n\r\n @HostListener('input')\r\n onInput() {\r\n let value = this.elementRef.nativeElement.value;\r\n\r\n if (this.existsZerosInString(value)) {\r\n value = this.previousValue;\r\n }\r\n\r\n const maskedValue = this.maskService.applyMask(\r\n value,\r\n this.maskType === 'DAY_MONTH' ? this.expressions.DM : this.expressions.DMY\r\n );\r\n\r\n if (this.maskType !== 'DAY_MONTH' && !isNaN(new Date(maskedValue).getTime())) {\r\n if (this.matDatepicker) {\r\n this.matDatepicker.select(new Date(maskedValue));\r\n } else if (this.rangeFormControl) {\r\n this.rangeFormControl.setValue(new Date(maskedValue));\r\n }\r\n }\r\n\r\n if (isNaN(new Date(maskedValue).getTime())) {\r\n this.matDatepicker.select(null)\r\n }\r\n\r\n this.elementRef.nativeElement.value = maskedValue || null;\r\n this.previousValue = maskedValue || null;\r\n }\r\n\r\n @HostListener('paste', ['$event'])\r\n onPaste(event: ClipboardEvent) {\r\n const pastedValue = event.clipboardData?.getData('text/plain');\r\n if (!pastedValue) { return; }\r\n if (this.maskType === 'DAY_MONTH') {\r\n if (!this.dayMonthRegex.test(pastedValue)) {\r\n event?.preventDefault();\r\n }\r\n } else {\r\n if (!this.dateRegex.test(pastedValue)) {\r\n event?.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n existsZerosInString(date: string): boolean {\r\n const dateToArray = date.split('/');\r\n let isValid;\r\n if (this.maskType === 'DAY_MONTH') {\r\n isValid = !!dateToArray.find((part: string) => part.includes('00'));\r\n } else {\r\n if (dateToArray.length < 3) {\r\n isValid = !!dateToArray.find((part: string) => part.includes('00'));\r\n } else {\r\n isValid = (dateToArray[2][0] == '0') || (+dateToArray[2][0] > 2);\r\n }\r\n\r\n }\r\n return isValid;\r\n }\r\n\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { FormControlName, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { InputService } from '../../services/input.service';\r\nimport { NgClass, NgIf } from \"@angular/common\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\r\nimport { MatInput } from \"@angular/material/input\";\r\nimport { MatTooltip } from \"@angular/material/tooltip\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { DateMaskDirective } from \"../../directives/date-mask.directive\";\r\nimport { GenerateErrorMessagesPipe } from \"../../pipes/generate-error-messages.pipe\";\r\nimport { IconButtonComponent } from \"../icon-button/icon-button.component\";\r\n\r\n@Component({\r\n selector: 'i-tech-date-picker',\r\n templateUrl: './date-picker.component.html',\r\n imports: [\r\n NgClass, NgIf,\r\n TranslateModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatDatepickerModule,\r\n MatInput,\r\n MatTooltip,\r\n MatIconModule,\r\n DateMaskDirective,\r\n GenerateErrorMessagesPipe, IconButtonComponent\r\n ]\r\n})\r\nexport class DatePickerComponent {\r\n @Input() label = '';\r\n @Input() defaultPatternKey!: string ;\r\n @Input() required = false;\r\n @Input() pastDatesDisabled = false;\r\n @Input() hintText = '';\r\n @Input() placeholder = 'MM/DD/YYYY';\r\n @Input() iconPrefix?: string;\r\n @Input() iconPrefixSvg?: string;\r\n @Input() iconPrefixTooltip?: string;\r\n @Input() iconPrefixColor?: string;\r\n @Input() iconPrefixVariant?: string;\r\n @Input() valueChangeEmit?: boolean;\r\n @Input() minDate: Date | null = null;\r\n @Input() clearable = false;\r\n\r\n @Input() submit = false;\r\n @ViewChild('inputElement') inputElement!: ElementRef;\r\n @Output() valueChangeEmitter = new EventEmitter<void>();\r\n\r\n isOpen = false;\r\n focused = false;\r\n\r\n ngControl: FormControlName;\r\n\r\n today: Date = new Date();\r\n\r\n // Filter to disable past dates\r\n dateFilter = (date: Date | null): boolean => {\r\n if (this.pastDatesDisabled) {\r\n const today = this.today;\r\n return date ? date >= today : false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n\r\n constructor(private inputService: InputService) {\r\n this.ngControl = this.inputService.injectNgControl() as FormControlName;\r\n }\r\n\r\n emitChange(): void {\r\n if (!this.valueChangeEmit) { return; }\r\n this.valueChangeEmitter.emit();\r\n }\r\n\r\n clickForFocusOut(): void {\r\n setTimeout(() => {\r\n this.inputElement.nativeElement.focus();\r\n this.inputElement.nativeElement.blur();\r\n },120)\r\n }\r\n\r\n customErrorStateMatcher = {\r\n isErrorState: (control: any, form: any): boolean => {\r\n return !!(control && control.invalid && this.submit);\r\n }\r\n };\r\n}\r\n","<div class=\"flex_column relative mat-date-range-input\" *ngIf=\"ngControl\" [ngClass]=\"{'check_requirements': submit}\">\r\n <div class=\"w-100\">\r\n <mat-label [ngClass]=\"{\r\n 'readonly-color' : ngControl.control.disabled,\r\n 'invalid-label-color': !!(ngControl.control.errors && submit)\r\n }\">\r\n {{ label | translate }}\r\n </mat-label>\r\n <span *ngIf=\"required\" class=\"required-input\" [ngClass]=\"{'readonly-color' : ngControl.control.disabled}\">*</span>\r\n </div>\r\n <mat-form-field appearance=\"outline\" [ngClass]=\"{'opened_calendar': isOpen}\"\r\n [class.readonly-field]=\"ngControl.control.disabled\">\r\n <input matInput #inputElement\r\n type=\"text\"\r\n [formControl]=\"ngControl.control\"\r\n [placeholder]=\"placeholder | translate\"\r\n [min]=\"minDate\"\r\n dateMask\r\n [matDatepicker]=\"datePicker\"\r\n [errorStateMatcher]=\"customErrorStateMatcher\"\r\n [matDatepickerFilter]=\"dateFilter\"\r\n (focus)=\"focused = true\"\r\n (click)=\"datePicker.open();\"\r\n (dateChange)=\"emitChange()\"\r\n >\r\n\r\n <mat-icon *ngIf=\"iconPrefix\"\r\n matPrefix\r\n [matTooltip]=\"((iconPrefixTooltip || '') | translate)\"\r\n [style.color]=\"iconPrefixColor\"\r\n >{{ iconPrefix }}\r\n </mat-icon>\r\n\r\n <mat-icon *ngIf=\"iconPrefixSvg\"\r\n matPrefix\r\n [matTooltip]=\"((iconPrefixTooltip || '') | translate)\"\r\n [svgIcon]=\"iconPrefixSvg\"\r\n ></mat-icon>\r\n\r\n <app-icon-button\r\n *ngIf=\"clearable && !ngControl.control.disabled && !!ngControl.control.value\"\r\n iconName=\"cancel\"\r\n matSuffix\r\n [ngClass]=\"ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\r\n (click)=\"$event.stopPropagation();$event.preventDefault();ngControl.control.reset(null);\"\r\n >\r\n </app-icon-button>\r\n\r\n <i-tech-icon-button matSuffix\r\n [iconName]=\"'date_range'\"\r\n [disabled]=\"ngControl.control.disabled\"\r\n (click)=\"datePicker.open()\"\r\n [ngClass]=\"ngControl.control.disabled ? 'readonly-color' : 'default-form-icon-color'\"\r\n ></i-tech-icon-button>\r\n\r\n <mat-datepicker #datePicker (closed)=\"isOpen = false;clickForFocusOut()\"\r\n (opened)=\"isOpen = true;focused = true\"></mat-datepicker>\r\n\r\n <!-- Error Messages -->\r\n <mat-error *ngIf=\"!!(ngControl.control.errors && submit)\">\r\n {{ ngControl.control | generateErrorMessages : label : defaultPatternKey }}\r\n </mat-error>\r\n\r\n <!-- Helper Text -->\r\n <mat-hint *ngIf=\"!(!!(ngControl.control.errors && submit)) && hintText\"\r\n [ngClass]=\"{'readonly-color' : ngControl.control.disabled}\"\r\n >\r\n {{ hintText | translate }}\r\n </mat-hint>\r\n\r\n </mat-form-field>\r\n</div>\r\n","import {\r\n AfterViewInit,\r\n Component, ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n Output,\r\n SimpleChanges,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { MatDatepickerModule, MatDateRangePicker } from \"@angular/material/datepicker\";\r\nimport { ReactiveFormsModule, UntypedFormControl, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { NgClass, NgIf } from \"@angular/common\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { IconButtonComponent } from \"../icon-button/icon-button.component\";\r\nimport { DateMaskDirective } from \"../../directives/date-mask.directive\";\r\n\r\n@Component({\r\n selector: 'i-tech-mat-range-datepicker',\r\n templateUrl: './date-range-datepicker.component.html',\r\n imports: [\r\n MatFormFieldModule,\r\n ReactiveFormsModule,\r\n MatDatepickerModule,\r\n NgClass, NgIf,\r\n TranslateModule,\r\n IconButtonComponent, DateMaskDirective\r\n ]\r\n})\r\nexport class DateRangeDatepickerComponent implements OnChanges, AfterViewInit {\r\n @Input() label?: string;\r\n @Input() placeholder?: Array<string>;\r\n @Input() value?: Array<string | null>;\r\n @Input() defaultValue?: Array<Date>;\r\n @Input() key?: {start: string, end: string, title: string};\r\n @Input() submit = false;\r\n @Input() clearValue = true;\r\n @Input() errorMessage = '';\r\n @Input() onePlaceholder?: string;\r\n @Input() hintText = 'MM/DD/YYYY - MM/DD/YYYY';\r\n @Output() resetForm = new EventEmitter<any>();\r\n @Output() selectionChange = new EventEmitter<any>();\r\n @ViewChild('picker') picker!: MatDateRangePicker<any>;\r\n @ViewChild('min') min!: ElementRef;\r\n isOpen = false;\r\n\r\n dateRangeForm = new UntypedFormGroup({\r\n startDate: new UntypedFormControl('', [Validators.maxLength(10)]),\r\n endDate: new UntypedFormControl('', [Validators.maxLength(10)]),\r\n });\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n if (this.defaultValue?.length) {\r\n this.dateRangeForm.patchValue({\r\n startDate: this.defaultValue[0],\r\n endDate: this.defaultValue[1]\r\n })\r\n }\r\n })\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n setTimeout(() => {\r\n if (changes['value']?.currentValue && !(changes['value'].currentValue[0])) {\r\n if (this.picker) {\r\n this.dateRangeForm.reset();\r\n this.picker.select(null)\r\n }\r\n } else if (changes['value'] && this.value?.length) {\r\n this.dateRangeForm.setValue({\r\n startDate: new Date(this.value[0] || ''),\r\n endDate: new Date(this.value[1] || '')\r\n })\r\n }\r\n }, 10)\r\n }\r\n\r\n clickForFocusOut(): void {\r\n setTimeout(() => {\r\n this.min.nativeElement.focus();\r\n this.min.nativeElement.blur();\r\n },120)\r\n }\r\n\r\n customErrorStateMatcher = {\r\n isErrorState: (control: any, form: any): boolean => {\r\n return !!(control && control.invalid && this.submit);\r\n }\r\n };\r\n\r\n setDate(value: Array<string | null>, element: any): void {\r\n this.selectionChange.emit(value);\r\n element.blur();\r\n }\r\n\r\n keyEventHandler(event: KeyboardEvent,value: Array<string | null>, element: any): void {\r\n if (event.code === 'Enter') {\r\n this.setDate(value,element)\r\n }\r\n }\r\n\r\n}\r\n","<div class=\"flex_column relative mat-date-range-input\"\r\n [formGroup]=\"dateRangeForm\"\r\n>\r\n <div class=\"w-100\">\r\n <mat-label>\r\n {{ (label || '') | translate }}\r\n </mat-label>\r\n </div>\r\n <mat-form-field appearance=\"outline\" [ngClass]=\"{'opened_calendar': isOpen}\">\r\n <mat-date-range-input [rangePicker]=\"picker\">\r\n <input formControlName=\"startDate\"\r\n [placeholder]=\" (placeholder ? placeholder[0] : 'Start Date')\"\r\n [title]=\"key ? key.title : 'Date'\"\r\n [attr.data-accessKey]=\"key ? key.start : 'minStartDate'\"\r\n [attr.data-parentKey]=\"key ? (key.start + '_' + key.end) : 'minStartDate_maxEndDate'\"\r\n matStartDate #min\r\n dateMask\r\n [errorStateMatcher]=\"customErrorStateMatcher\"\r\n [rangeFormControl]=\"dateRangeForm.controls['startDate']\"\r\n (keydown)=\"keyEventHandler($event,[min.value, max.value || null],min)\"\r\n (dateChange)=\"setDate([min.value, max.value || null],min)\">\r\n <input formControlName=\"endDate\"\r\n [placeholder]=\"(placeholder ? placeholder[1] : 'End Date')\"\r\n [title]=\"key ? key.title : 'Date'\"\r\n [attr.data-accessKey]=\"key ? key.end : 'maxEndDate'\"\r\n [attr.data-parentKey]=\"key ? (key.start + '_' + key.end) : 'minStartDate_maxEndDate'\"\r\n matEndDate #max\r\n dateMask\r\n [errorStateMatcher]=\"customErrorStateMatcher\"\r\n [rangeFormControl]=\"dateRangeForm.controls['endDate']\"\r\n (keydown)=\"keyEventHandler($event,[min.value, max.value || null],max)\"\r\n (dateChange)=\"setDate([min.value, max.value || null],max)\">\r\n </mat-date-range-input>\r\n <i-tech-icon-button matSuffix\r\n [iconName]=\"'cancel'\"\r\n (buttonClick)=\"selectionChange.emit([null, null])\"\r\n class=\"default-form-icon-color\"\r\n *ngIf=\"dateRangeForm.get('startDate')?.value && this.dateRangeForm.get('endDate')?.value\"\r\n ></i-tech-icon-button>\r\n <i-tech-icon-button\r\n matSuffix\r\n [iconName]=\"'date_range'\"\r\n (buttonClick)=\"picker.open()\"\r\n class=\"default-form-icon-color\"\r\n ></i-tech-icon-button>\r\n <mat-date-range-picker\r\n #picker\r\n (closed)=\"isOpen = false;clickForFocusOut()\"\r\n (opened)=\"isOpen = true\"\r\n ></mat-date-range-picker>\r\n <mat-hint *ngIf=\"hintText && !errorMessage\">{{ hintText }}</mat-hint>\r\n </mat-form-field>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\r\nimport { ButtonType } from \"../../interfaces/button-types.enum\";\r\nimport { DropdownItemIcon, DropdownSelectionType } from \"../../interfaces/dropdown-selection.constants\";\r\nimport { MatMenu, MatMenuItem, MatMenuTrigger, MenuPositionX } from \"@angular/material/menu\";\r\nimport { MatIcon } from \"@angular/material/icon\";\r\nimport { NgClass, NgForOf, NgIf } from \"@angular/common\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { ButtonComponent } from \"../button/button.component\";\r\nimport { MatLabel } from \"@angular/material/form-field\";\r\n\r\n@Component({\r\n selector: \"i-tech-menu\",\r\n imports: [\r\n MatMenuTrigger,\r\n MatMenu,\r\n MatIcon,\r\n NgIf,\r\n NgForOf,\r\n MatMenuItem,\r\n TranslateModule,\r\n NgClass,\r\n ButtonComponent,\r\n MatLabel\r\n ],\r\n templateUrl: \"./menu.component.html\",\r\n styleUrls: [\"./menu.component.scss\"]\r\n})\r\nexport class MenuComponent {\r\n @Input() text!: string;\r\n @Input() dataName!: string;\r\n @Input() containerClass!: string;\r\n @Input() positionX: MenuPositionX = 'before';\r\n @Input() menuOptions: Array<{\r\n value: string;\r\n text: string;\r\n src?: string;\r\n class?: string;\r\n type?: DropdownSelectionType;\r\n }> = [];\r\n @Output() emitEvent = new EventEmitter<any>();\r\n protected readonly ButtonType = ButtonType;\r\n protected readonly DropdownItemIcon = DropdownItemIcon;\r\n matMenuState = false;\r\n}\r\n","<div class=\"custom_dropdown_container\"\r\n [attr.data-name]=\"dataName\"\r\n [ngClass]=\"containerClass\"\r\n>\r\n <i-tech-button\r\n [matMenuTriggerFor]=\"beforeMenu\"\r\n [type]=\"ButtonType.OUTLINE\"\r\n [fontIcon]=\"'keyboard_arrow_down'\"\r\n [text]=\"(text || '') \"\r\n (menuOpened)=\"matMenuState = true\"\r\n (menuClosed)=\"matMenuState = false\"\r\n [activated]=\"matMenuState\"\r\n ></i-tech-button>\r\n <mat-menu #beforeMenu=\"matMenu\" [xPosition]=\"positionX\">\r\n <button mat-menu-item *ngFor=\"let option of menuOptions\" (click)=\"emitEvent.emit(option.value)\">\r\n <mat-icon *ngIf=\"option.type\" [svgIcon]=\"DropdownItemIcon[option.type]\"></mat-icon>\r\n <mat-label class=\"meu_item_label\">{{(option.text || '') | translate}}</mat-label>\r\n </button>\r\n </mat-menu>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { LabelTypeEnum } from \"../../interfaces/label-type.enum\";\r\nimport { MatChip } from \"@angular/material/chips\";\r\nimport { MatTooltip } from \"@angular/material/tooltip\";\r\nimport { NgClass } from \"@angular/common\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { MatIcon } from \"@angular/material/icon\";\r\n\r\n@Component({\r\n selector: 'i-tech-label',\r\n templateUrl: './label.component.html',\r\n styleUrls: [],\r\n imports: [\r\n MatChip,\r\n MatTooltip,\r\n NgClass,\r\n TranslateModule,\r\n MatIcon\r\n ]\r\n})\r\nexport class LabelComponent {\r\n @Input() color: LabelTypeEnum = LabelTypeEnum.primary;\r\n @Input() text!: string;\r\n @Input() bordered = false;\r\n @Input() tooltip?:string;\r\n @Input() size: 'small' | 'standard' = 'standard';\r\n @Input() iconName?: string;\r\n @Input() iconSvg = '';\r\n @Input() disableRipple = false;\r\n @Input() forTable = false;\r\n @Input() innerHtml!: string;\r\n\r\n\r\n\r\n}\r\n","<div [class]=\"{table_row_item: forTable,'trailing-icon' : iconName || iconSvg}\">\r\n\r\n <mat-chip\r\n [class]=\"'label_' + color\"\r\n [ngClass]=\"{bordered: bordered, small: size === 'small'}\"\r\n [matTooltip]=\"(tooltip || '') | translate\"\r\n [disableRipple]=\"disableRipple\"\r\n >\r\n <div class=\"flex_align_center flex_gap\">\r\n <span *ngIf=\"!innerHtml\">{{text | translate}}</span>\r\n <span *ngIf=\"innerHtml\" [innerHtml]=\"innerHtml | translate\"></span>\r\n <mat-icon *ngIf=\"iconName\">{{iconName}}</mat-icon>\r\n <mat-icon *ngIf=\"iconSvg\" [svgIcon]=\"iconSvg\"></mat-icon>\r\n </div>\r\n </mat-chip>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { NgClass } from \"@angular/common\";\r\n\r\n@Component({\r\n selector: 'i-tech-loading',\r\n imports: [\r\n NgClass\r\n ],\r\n templateUrl: './loading.component.html',\r\n styleUrl: './loading.component.scss'\r\n})\r\nexport class LoadingComponent {\r\n @Input() loading = false;\r\n @Input() absolute = false;\r\n @Input() smallLoading = false;\r\n}\r\n","<div [hidden]=\"!loading\" class=\"big_loading\" [ngClass]=\"{absolute: absolute, small_loading: smallLoading}\">\r\n <img alt=\"\" src=\"assets/images/table-loader.svg\" />\r\n</div>\r\n","import {\r\n Component,\r\n ComponentFactoryResolver,\r\n ViewContainerRef,\r\n Inject,\r\n ViewChild,\r\n AfterViewInit, ComponentRef\r\n} from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\r\nimport { NgClass, NgIf } from \"@angular/common\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { StandardDialogButtonInterface } from \"../../interfaces/standard-dialog-button.interface\";\r\nimport { LoadingComponent } from '../loading/loading.component';\r\nimport { ButtonComponent } from '../button/button.component';\r\nimport { ButtonType } from '../../interfaces/button-types.enum';\r\n\r\n@Component({\r\n selector: 'i-tech-standard-dialog',\r\n templateUrl: './standard-dialog.component.html',\r\n styles: [`.modal_content {\r\n position: relative\r\n }`],\r\n imports: [\r\n NgClass,\r\n NgIf,\r\n TranslateModule,\r\n LoadingComponent,\r\n ButtonComponent,\r\n ]\r\n})\r\nexport class StandardDialogComponent implements AfterViewInit {\r\n @ViewChild('component', { read: ViewContainerRef }) componentContainer: ViewContainerRef | undefined;\r\n loading = true;\r\n component: ComponentRef<any> | undefined;\r\n pending = false;\r\n public readonly ButtonType = ButtonType;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: {\r\n component: any,\r\n configs?: {\r\n marginTop?: boolean,\r\n title: string,\r\n titleClass?: string,\r\n button?: StandardDialogButtonInterface,\r\n description?: string,\r\n data?: any,\r\n actionsMarginTop?: string;\r\n cancelButton?: {\r\n text?: string,\r\n hidden?: boolean,\r\n class?: string\r\n }\r\n }\r\n },\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private dialogRef: MatDialogRef<any>\r\n ) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n if (!this.data.component) {\r\n return;\r\n }\r\n this.component = this.componentContainer?.createComponent(\r\n this.componentFactoryResolver.resolveComponentFactory(this.data.component)\r\n )\r\n\r\n if (this.component) {\r\n if (this.data.configs?.data) {\r\n this.component.instance.ready?.subscribe(() => {\r\n setTimeout(() => this.loading = false, 300)\r\n });\r\n } else {\r\n setTimeout(() => this.loading = false, 300)\r\n }\r\n\r\n this.component.instance.data = this.data.configs?.data;\r\n\r\n this.component.instance.closeModal.subscribe((data: any) => {\r\n this.dialogRef.close(data)\r\n })\r\n this.component.instance.loading?.subscribe((start: boolean) => {\r\n this.pending = start;\r\n });\r\n\r\n this.component.instance.disable?.subscribe((disabled: boolean) => {\r\n if (this.data.configs?.button) {\r\n this.data.configs.button.disabled = disabled;\r\n }\r\n });\r\n\r\n }\r\n }, 10)\r\n }\r\n\r\n save(type = ''): void {\r\n if (type === 'close') {\r\n this.dialogRef.close(true);\r\n } else if (this.component) {\r\n if (this.pending) {\r\n return;\r\n }\r\n this.component.instance.save();\r\n } else {\r\n this.dialogRef.close(true);\r\n }\r\n }\r\n\r\n close(): void {\r\n this.dialogRef.close(null);\r\n }\r\n\r\n}\r\n","<div class=\"modal_content standard_dialog flex_between\" *ngIf=\"data\" [ngClass]=\"{visibility_hidden: loading}\">\r\n <div class=\"modal-title-text base-bold\" *ngIf=\"data.configs?.title\">\r\n {{(data.configs?.title || '') | translate}}\r\n </div>\r\n <div *ngIf=\"data.configs?.description\" class=\"modal-body-text mt-16\">\r\n {{(data.configs?.description || '') | translate}}\r\n </div>\r\n\r\n <div class=\"modal_content--content\"\r\n [ngClass]=\"data?.configs?.marginTop === false || !data.configs?.title ? '' : 'mt-20 mb-standard-dialog'\"\r\n >\r\n <ng-container #component></ng-container>\r\n </div>\r\n <div class=\"ml-auto flex_align_center\" [ngClass]=\"data.configs?.actionsMarginTop || ''\">\r\n <i-tech-button\r\n *ngIf=\"!data.configs?.cancelButton?.hidden\"\r\n (click)=\"close()\"\r\n [customClass]=\"'mr-20'\"\r\n [type]=\"ButtonType.TONAL\"\r\n [text]=\"data.configs?.cancelButton?.text || 'Cancel'\"\r\n ></i-tech-button>\r\n <i-tech-button\r\n *ngIf=\"!data.configs?.button?.hidden\"\r\n [customClass]=\"(data.configs?.button?.class || '') + ' ' + (data.configs?.button?.disabled ? ' disabled' : '')\"\r\n [disabled]=\"data.configs?.button?.disabled || false\"\r\n [submit]=\"pending\"\r\n [type]=\"data.configs?.button?.buttonType || ButtonType.FILLED\"\r\n (click)=\"save(data.configs?.button?.type)\"\r\n [text]=\"(data.configs?.button?.text || 'Save')\"\r\n ></i-tech-button>\r\n </div>\r\n</div>\r\n<i-tech-loading [loading]=\"loading\" ></i-tech-loading>\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { NgComponentOutlet } from \"@angular/common\";\r\n\r\n// Services\r\n\r\n@Component({\r\n selector: 'i-tech-custom-dialog',\r\n templateUrl: './custom-dialog.component.html',\r\n styleUrls: [],\r\n imports: [\r\n NgComponentOutlet\r\n ]\r\n})\r\nexport class CustomDialogComponent {\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: {\r\n component: any,\r\n configs?: { title: string, description?: string, data?: any }\r\n }\r\n ) {\r\n }\r\n\r\n\r\n}\r\n","<div class=\"modal_content flex_between\">\r\n <div class=\"modal_content--content\">\r\n <ng-template [ngComponentOutlet]=\"data.component\"></ng-template>\r\n </div>\r\n</div>\r\n","import { Component, Inject, OnDestroy } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\r\n// Constants\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { ConfirmationDialogTypesEnum } from '../../interfaces/confirmation-dialog-types.enum';\r\nimport { ButtonType } from '../../interfaces/button-types.enum';\r\nimport { ButtonComponent } from '../button/button.component';\r\nimport { Subject } from \"rxjs\";\r\n\r\n@Component({\r\n selector: 'i-tech-confirmation-dialog-by-type',\r\n templateUrl: './confirmation-dialog-by-type.component.html',\r\n styles: [],\r\n imports: [\r\n TranslateModule,\r\n ButtonComponent,\r\n CommonModule\r\n ]\r\n})\r\nexport class ConfirmationDialogByTypeComponent implements OnDestroy {\r\n protected readonly ConfirmationDialogTypesEnum = ConfirmationDialogTypesEnum;\r\n protected readonly ButtonType = ButtonType;\r\n loading = false;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: {\r\n confirmText?: string,\r\n cancelText?: string,\r\n description?: string,\r\n type: ConfirmationDialogTypesEnum,\r\n unsetMaxWidth?: boolean,\r\n modalTitle?: string,\r\n descriptionByHtml?: boolean,\r\n hideConfirmButton?: boolean,\r\n subject?: Subject<any>,\r\n },\r\n private dialogRef: MatDialogRef<any>\r\n ) {\r\n if (data.subject) {\r\n data.subject.subscribe(res => {\r\n if (res.type === 'close') {\r\n this.dialogRef.close(1)\r\n }\r\n })\r\n }\r\n }\r\n\r\n confirm(): void {\r\n if (this.data.subject) {\r\n this.loading = true;\r\n this.data.subject.next({ type: 'access' })\r\n return;\r\n }\r\n this.dialogRef.close(1);\r\n }\r\n\r\n dismiss(): void {\r\n this.dialogRef.close(0);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.data.subject?.unsubscribe()\r\n }\r\n\r\n}\r\n","<div class=\"modal_content flex_between\" *ngIf=\"data\">\r\n <div class=\"modal-title-text base-bold\">\r\n {{(data?.modalTitle || data.type) | translate}}\r\n </div>\r\n <div class=\"modal-body-text mt-20\" *ngIf=\"!data.descriptionByHtml\" [ngClass]=\"{unset_max_width: data.unsetMaxWidth}\">\r\n {{(data.description || '') | translate }}\r\n </div>\r\n\r\n <div class=\"modal-body-text mt-20\" *ngIf=\"data.descriptionByHtml\"\r\n [innerHTML]=\"data.description\"\r\n [ngClass]=\"{unset_max_width: data.unsetMaxWidth}\"\r\n >\r\n </div>\r\n\r\n <div class=\"mt-50 flex_end flex_align_center\">\r\n <i-tech-button\r\n [type]=\"ButtonType.TONAL\"\r\n [customClass]=\"'mr-20'\"\r\n (click)=\"dismiss()\"\r\n [text]=\"(data.cancelText || 'cancel._')\"\r\n ></i-tech-button>\r\n <i-tech-button\r\n (click)=\"confirm()\"\r\n [color]=\"data.type === ConfirmationDialogTypesEnum.CONFIRMATION ? 'primary' : 'warn'\"\r\n [text]=\"(data.confirmText || 'yes')\"\r\n ></i-tech-button>\r\n </div>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport { NoopScrollStrategy } from \"@angular/cdk/overlay\";\r\nimport { MatDialog, MatDialogRef } from \"@angular/material/dialog\";\r\n// Components\r\nimport { StandardDialogComponent } from \"../components/standard-dialog/standard-dialog.component\";\r\nimport { CustomDialogComponent } from \"../components/custom-dialog/custom-dialog.component\";\r\nimport { ConfirmationDialogTypesEnum } from \"../interfaces/confirmation-dialog-types.enum\";\r\nimport {\r\n ConfirmationDialogByTypeComponent\r\n} from \"../components/confirmation-dialog-by-type/confirmation-dialog-by-type.component\";\r\nimport { Subject } from 'rxjs';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DialogService {\r\n\r\n constructor(\r\n private dialogService: MatDialog\r\n ) {\r\n }\r\n\r\n openStandardDialog(\r\n component: any = null,\r\n styleConfigs: {\r\n width?: string,\r\n height?: string,\r\n minHeight?: string,\r\n maxHeight?: string,\r\n maxWidth?: string,\r\n disableClose?: boolean,\r\n panelClass?: string\r\n },\r\n data: any = null,\r\n ): MatDialogRef<any> {\r\n styleConfigs.maxHeight = '90vh';\r\n if (!styleConfigs.maxWidth) {\r\n styleConfigs.maxWidth = '90vw';\r\n }\r\n return this.dialogService.open(\r\n StandardDialogComponent,\r\n {\r\n ...styleConfigs,\r\n data: { configs: data, component },\r\n scrollStrategy: new NoopScrollStrategy(),\r\n })\r\n }\r\n\r\n openCustomDialog(\r\n component: any,\r\n styleConfigs: {\r\n width?: string,\r\n minWidth?: string,\r\n height?: string,\r\n maxWidth?: string,\r\n minHeight?: string,\r\n maxHeight?: string,\r\n position?: any,\r\n panelClass?: string\r\n } = {},\r\n data: any = null\r\n ): MatDialogRef<any> {\r\n styleConfigs.maxWidth = '95vw';\r\n return this.dialogService.open(\r\n CustomDialogComponent,\r\n {\r\n ...styleConfigs,\r\n data: { configs: data, component },\r\n scrollStrategy: new NoopScrollStrategy()\r\n })\r\n }\r\n\r\n openConfirmationDialogByType(\r\n type: ConfirmationDialogTypesEnum,\r\n styleConfigs: {\r\n width?: string,\r\n height?: string,\r\n maxWidth?: string,\r\n minHeight?: string,\r\n maxHeight?: string,\r\n position?: any,\r\n panelClass?: string\r\n },\r\n data: {\r\n confirmText?: string,\r\n cancelText?: string,\r\n description?: string,\r\n unsetMaxWidth?: boolean,\r\n modalTitle?: string,\r\n descriptionByHtml?: boolean,\r\n hideConfirmButton?: boolean,\r\n subject?: Subject<any>\r\n }\r\n ): MatDialogRef<any> {\r\n return this.dialogService.open(\r\n ConfirmationDialogByTypeComponent,\r\n {\r\n ...styleConfigs,\r\n data: { ...data, type },\r\n scrollStrategy: new NoopScrollStrategy(),\r\n })\r\n }\r\n\r\n}\r\n","/*\r\n * Public API Surface of shared-components\r\n */\r\n\r\n// Pipes\r\nexport * from './lib/pipes/generate-error-messages.pipe';\r\nexport * from './lib/pipes/array-to-string.pipe';\r\nexport * from './lib/pipes/get-value-by-key-from-object.pipe';\r\n\r\n// Interfaces & Enums\r\nexport * from './lib/interfaces/app-input.interface';\r\nexport * from './lib/interfaces/button-types.enum';\r\nexport * from './lib/interfaces/confirmation-dialog-types.enum';\r\nexport * from './lib/interfaces/dropdown-selection.constants';\r\nexport * from './lib/interfaces/label-type.enum';\r\nexport * from './lib/interfaces/standard-dialog-button.interface';\r\nexport * from './lib/interfaces/autocomplete-configs.interface';\r\n\r\n// Components\r\nexport * from './lib/directives/input-mask.directive';\r\nexport * from './lib/components/icon-button/icon-button.component';\r\nexport * from './lib/components/text/text-input.component';\r\nexport * from './lib/components/button/button.component';\r\nexport * from './lib/components/autocomplete-select/autocomplete-select.component';\r\nexport * from './lib/components/date-picker/date-picker.component';\r\nexport * from './lib/components/clear-value/clear-value.component';\r\nexport * from './lib/components/date-range-datepicker/date-range-datepicker.component';\r\nexport * from './lib/components/menu/menu.component';\r\nexport * from './lib/components/label/label.component';\r\nexport * from './lib/components/standard-dialog/standard-dialog.component';\r\nexport * from './lib/components/custom-dialog/custom-dialog.component';\r\nexport * from './lib/components/confirmation-dialog-by-type/confirmation-dialog-by-type.component';\r\nexport * from './lib/components/clear-value/clear-value.component';\r\nexport * from './lib/components/loading/loading.component';\r\n\r\n// Services\r\nexport * from './lib/services/input.service';\r\nexport * from './lib/services/dialog.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.InputService","i5","i6","i2","i3","i4"],"mappings":"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"}