i-tech-shared-components 1.0.10 → 1.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -24
- package/esm2022/lib/components/autocomplete-select/autocomplete-select.component.mjs +18 -1
- package/esm2022/lib/components/button/button.component.mjs +46 -1
- package/esm2022/lib/interfaces/button-types.enum.mjs +9 -1
- package/fesm2022/i-tech-shared-components.mjs +70 -0
- package/fesm2022/i-tech-shared-components.mjs.map +1 -1
- package/lib/components/autocomplete-select/autocomplete-select.component.d.ts +17 -0
- package/lib/components/button/button.component.d.ts +44 -0
- package/lib/interfaces/button-types.enum.d.ts +8 -0
- package/package.json +1 -1
|
@@ -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/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: string = 'fixed'): string {\r\n\r\n if (!control.errors) {\r\n return '';\r\n }\r\n let translateParams!: {ERROR_KEY: string};\r\n let errorMessageKey = ''\r\n\r\n const key = (Object.keys(control.errors)[0]);\r\n\r\n translateParams = {ERROR_KEY: this.translateService.instant(label) || 'Field'};\r\n 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 registerOnChange() {}\r\n\r\n registerOnTouched() {}\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 (\r\n ngControl instanceof FormControlName\r\n ) {\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","export enum ButtonType {\r\n FILLED = 'FILLED' ,\r\n TONAL = 'TONAL',\r\n OUTLINE = 'OUTLINE',\r\n TEXT = 'TEXT',\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 {\r\n return this.checkingForTexts(value, event);\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 let 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 standalone: true\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, EventEmitter, Input, Output} 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 standalone: true\r\n})\r\nexport class TextInputComponent {\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 get inputData(): AppInputInterface {\r\n return this._inputData;\r\n }\r\n @Output() focusOutEmitter = new EventEmitter<void>();\r\n\r\n private _inputData!: AppInputInterface;\r\n ngControl: FormControlName;\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 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 && (inputData.readOnly || ngControl.control.disabled),\r\n 'default-form-icon-color' : !inputData.iconPrefixColor && !(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\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 <!-- 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@Component({\r\n selector: 'i-tech-button',\r\n standalone: true,\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 @Input() text: string = '';\r\n @Input() data_cy: string = '';\r\n @Input() fontIcon: string = '';\r\n @Input() svgIcon: string = '';\r\n @Input() type: ButtonType = ButtonType.FILLED;\r\n @Input() customClass!: string;\r\n @Input() submit: boolean = false;\r\n @Input() disabled: boolean = false;\r\n @Input() activated: boolean = false;\r\n @Input() color: 'primary' | 'warn' = 'primary';\r\n @Output() buttonClick = new EventEmitter<void>();\r\n protected readonly ButtonType = ButtonType;\r\n\r\n constructor() {}\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)=\"reset.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 standalone: true\r\n})\r\nexport class ClearValueComponent {\r\n @Input() className!: string;\r\n @Input() additionalClass!: string;\r\n @Output() reset = 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 standalone: true\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 @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) { return;}\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 getData(searchText?: string, fromSearch?: boolean): void {\r\n if (!fromSearch && !this.accessToNextRequest) { return; }\r\n\r\n if (this.requestLoading) { return; }\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) { return;}\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 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 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 this.showPlaceholder ? this.matSelect.open() : this.closePanelAndUnsetFocus();\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) { return; }\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 iconClick(matSelect: MatSelect, searchInput?: ElementRef): void {\r\n matSelect.open();\r\n searchInput?.nativeElement?.focus();\r\n }\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' : '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 (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 ? selectConfig.activeStateIconUrl : 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);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 {{ ((selectConfig.valueToShowByKey | getValueByKeyFromObject : item : selectConfig.valueToShowByParam : selectConfig.withParamSymbol) || '') | translate }}\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?.changeText[item].text | translate }}\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'] && (selectConfig.readOnly || ngControl.control.disabled),\r\n 'default-form-icon-color' : !selectConfig['iconPrefixColor'] && !(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)=\"$event.stopPropagation();$event.preventDefault();ngControl.control.reset(null);matSelect._onBlur();closePanelAndUnsetFocus()\"\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\" (reset)=\"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 standalone: true\r\n})\r\nexport class DatePickerComponent {\r\n @Input() label: string = '';\r\n @Input() defaultPatternKey!: string ;\r\n @Input() required: boolean = false;\r\n @Input() hintText: string = '';\r\n @Input() placeholder: string = '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\r\n @Input() submit: boolean = 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 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 dateMask\r\n [matDatepicker]=\"datePicker\"\r\n [errorStateMatcher]=\"customErrorStateMatcher\"\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 <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: 'app-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 standalone: true\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: string = '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 matSuffix [iconName]=\"'date_range'\" (buttonClick)=\"picker.open()\" class=\"default-form-icon-color\"></i-tech-icon-button>\r\n <mat-date-range-picker #picker (closed)=\"isOpen = false;clickForFocusOut()\" (opened)=\"isOpen = true\"></mat-date-range-picker>\r\n <mat-hint *ngIf=\"hintText && !errorMessage\">{{hintText}}</mat-hint>\r\n </mat-form-field>\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\n\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/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/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: string = 'fixed'): string {\r\n\r\n if (!control.errors) {\r\n return '';\r\n }\r\n let translateParams!: {ERROR_KEY: string};\r\n let errorMessageKey = ''\r\n\r\n const key = (Object.keys(control.errors)[0]);\r\n\r\n translateParams = {ERROR_KEY: this.translateService.instant(label) || 'Field'};\r\n 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 registerOnChange() {}\r\n\r\n registerOnTouched() {}\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 (\r\n ngControl instanceof FormControlName\r\n ) {\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 {\r\n return this.checkingForTexts(value, event);\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 let 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 standalone: true\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, EventEmitter, Input, Output} 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 standalone: true\r\n})\r\nexport class TextInputComponent {\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 get inputData(): AppInputInterface {\r\n return this._inputData;\r\n }\r\n @Output() focusOutEmitter = new EventEmitter<void>();\r\n\r\n private _inputData!: AppInputInterface;\r\n ngControl: FormControlName;\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 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 && (inputData.readOnly || ngControl.control.disabled),\r\n 'default-form-icon-color' : !inputData.iconPrefixColor && !(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\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 <!-- 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 standalone: true,\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: string = '';\r\n\r\n /**\r\n * Data attribute used for Cypress or other testing frameworks.\r\n */\r\n @Input() data_cy: string = '';\r\n\r\n /**\r\n * Font icon class for displaying an icon (e.g., Material Icons).\r\n */\r\n @Input() fontIcon: string = '';\r\n\r\n /**\r\n * SVG icon name for displaying an SVG icon.\r\n */\r\n @Input() svgIcon: string = '';\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: string = '';\r\n\r\n /**\r\n * If true, the button acts as a submit button.\r\n */\r\n @Input() submit: boolean = false;\r\n\r\n /**\r\n * If true, the button is disabled and cannot be clicked.\r\n */\r\n @Input() disabled: boolean = false;\r\n\r\n /**\r\n * Indicates whether the button is currently activated.\r\n */\r\n @Input() activated: boolean = 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 constructor() {}\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)=\"reset.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 standalone: true\r\n})\r\nexport class ClearValueComponent {\r\n @Input() className!: string;\r\n @Input() additionalClass!: string;\r\n @Output() reset = 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 standalone: true\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 * For working configs.\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) { return;}\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) { return; }\r\n\r\n if (this.requestLoading) { return; }\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) { return;}\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 * 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 this.showPlaceholder ? this.matSelect.open() : this.closePanelAndUnsetFocus();\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) { return; }\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 iconClick(matSelect: MatSelect, searchInput?: ElementRef): void {\r\n matSelect.open();\r\n searchInput?.nativeElement?.focus();\r\n }\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' : '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 (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 ? selectConfig.activeStateIconUrl : 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);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 {{ ((selectConfig.valueToShowByKey | getValueByKeyFromObject : item : selectConfig.valueToShowByParam : selectConfig.withParamSymbol) || '') | translate }}\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?.changeText[item].text | translate }}\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'] && (selectConfig.readOnly || ngControl.control.disabled),\r\n 'default-form-icon-color' : !selectConfig['iconPrefixColor'] && !(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)=\"$event.stopPropagation();$event.preventDefault();ngControl.control.reset(null);matSelect._onBlur();closePanelAndUnsetFocus()\"\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\" (reset)=\"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 standalone: true\r\n})\r\nexport class DatePickerComponent {\r\n @Input() label: string = '';\r\n @Input() defaultPatternKey!: string ;\r\n @Input() required: boolean = false;\r\n @Input() hintText: string = '';\r\n @Input() placeholder: string = '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\r\n @Input() submit: boolean = 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 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 dateMask\r\n [matDatepicker]=\"datePicker\"\r\n [errorStateMatcher]=\"customErrorStateMatcher\"\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 <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: 'app-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 standalone: true\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: string = '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 matSuffix [iconName]=\"'date_range'\" (buttonClick)=\"picker.open()\" class=\"default-form-icon-color\"></i-tech-icon-button>\r\n <mat-date-range-picker #picker (closed)=\"isOpen = false;clickForFocusOut()\" (opened)=\"isOpen = true\"></mat-date-range-picker>\r\n <mat-hint *ngIf=\"hintText && !errorMessage\">{{hintText}}</mat-hint>\r\n </mat-form-field>\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\n\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":";;;;;;;;;;;;;;;;;;;;;;MAQa,yBAAyB,CAAA;AAElC,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;KACrD;AAED,IAAA,SAAS,CAAC,OAAY,EAAC,KAAa,EAAC,oBAA4B,OAAO,EAAA;AAEpE,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AACjB,YAAA,OAAO,EAAE,CAAC;SACb;AACD,QAAA,IAAI,eAAqC,CAAC;QAC1C,IAAI,eAAe,GAAG,EAAE,CAAA;AAExB,QAAA,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7C,QAAA,eAAe,GAAG,EAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,EAAC,CAAC;AAC/E,QAAA,eAAe,GAAG,CAAC,GAAG,KAAK,SAAS;YAChC,wBAAwB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,GAAG,CAAC;QAE1E,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,eAAe,EAAC,eAAe,CAAC,CAAC;KACzE;+GApBQ,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,uBAAA,EAAA,CAAA,CAAA,EAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,uBAAuB;AAC7B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,IAAI;AACb,iBAAA,CAAA;;;MCDY,iBAAiB,CAAA;AAE5B,IAAA,SAAS,CAAC,KAAsC,EAAA;AAC9C,QAAA,OAAO,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC9D;+GAJU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,CAAA,EAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,eAAe;AACrB,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;MCCY,2BAA2B,CAAA;IAEtC,SAAS,CACL,IAAqC,EACrC,IAAS,EACT,UAA4D,GAAA,IAAI,EAChE,eAAwB,EAAA;AAE1B,QAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC5B,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;SACnB;aAAM;YACL,IAAI,WAAW,GAAQ,IAAI,CAAC;AAC5B,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAoB,KAAI;gBACpC,IAAI,CAAC,WAAW,EAAE;oBAAE,OAAO;iBAAE;AAC7B,gBAAA,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;AACjC,aAAC,CAAC,CAAA;YACF,IAAI,UAAU,EAAE;AAEd,gBAAA,UAAU,CAAC,OAAO,CAAC,CAAC,KAAsC,KAAI;oBAC5D,IAAI,OAAO,GAAG,IAAI,CAAC;AAEnB,oBAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,wBAAA,KAAK,CAAC,OAAO,CAAC,CAAC,GAAoB,KAAI;AACrC,4BAAA,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC5C,yBAAC,CAAC,CAAA;qBACH;yBAAM;AACL,wBAAA,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;qBAC1B;oBAED,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,EAAE;AAC7C,wBAAA,WAAW,IAAI,CAAC,eAAe,GAAG,eAAe,GAAG,GAAG,IAAI,OAAO,CAAC;qBACpE;AACH,iBAAC,CAAC,CAAA;aACH;YAED,OAAO,CAAC,CAAC,WAAW,KAAK,WAAW,MAAM,WAAW,KAAK,IAAI,CAAC,IAAK,WAAW,GAAG,KAAK,CAAC;SACzF;KACF;+GArCU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,yBAAA,EAAA,CAAA,CAAA,EAAA;;4FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,yBAAyB;AAC/B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;ACFD,MAAM,iBAAiB,CAAA;AACnB,IAAA,UAAU,MAAK;AACf,IAAA,gBAAgB,MAAK;AAErB,IAAA,iBAAiB,MAAK;AACzB,CAAA;MAMY,YAAY,CAAA;IACrB,eAAe,GAAA;AACX,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;AAElE,QAAA,IAAI,CAAC,SAAS;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;AAEvC,QAAA,IACI,SAAS,YAAY,eAAe,EACtC;AACE,YAAA,SAAS,CAAC,aAAa,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAClD,YAAA,OAAO,SAAS,CAAC;SACpB;AAED,QAAA,MAAM,IAAI,KAAK,CAAC,CAAA,GAAA,CAAK,CAAC,CAAC;KAC1B;+GAdQ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAHT,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAGT,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACZD;;AAEG;IACS,WAeX;AAfD,CAAA,UAAY,UAAU,EAAA;;AAEpB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;;AAGjB,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;;AAGf,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;;AAGnB,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;;AAGb,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EAfW,UAAU,KAAV,UAAU,GAerB,EAAA,CAAA,CAAA;;MCRY,kBAAkB,CAAA;IAE7B,IAAa,GAAG,CAAC,KAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;KACnC;IACD,IAAa,GAAG,CAAC,KAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;KACnC;IACD,IAAa,KAAK,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,KAAK,MAAM,CAAC;KACjC;AAQD,IAAA,OAAO,CAAC,KAAU,EAAA;AAChB,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;KACjC;AAED,IAAA,WAAA,CAAoB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AAR1C,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAChD,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAQvD,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,KAAY,KAAI;AAC1E,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;AAC5B,SAAC,CAAC,CAAA;KACH;AAED,IAAA,cAAc,CAAC,KAAU,EAAE,SAAS,GAAG,KAAK,EAAA;AAC1C,QAAA,IAAI,KAAU,CAAC;AACf,QAAA,IAAI,OAAY,CAAC;QAEjB,IAAI,CAAC,SAAS,EAAE;YACd,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC7C,YAAA,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC;AAC9C,YAAA,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;YACrC,KAAK,GAAG,CAAG,EAAA,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAG,EAAA,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA,CAAE,CAAC;SACrG;aAAM;YACL,KAAK,GAAG,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;SACpD;AAED,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;AAC/B,YAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;SAClE;aAAM;YACL,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAC5C;KACF;IAED,kBAAkB,CAAC,KAAU,EAAE,KAAU,EAAE,OAAe,EAAE,SAAS,GAAG,KAAK,EAAA;AAC3E,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,KAAK,KAAK,KAAK,GAAG,EAAE;AAAE,YAAA,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;SAAE;QAEnG,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,KAAK,GAAG,CAAC,EAAE;YACrC,KAAK,IAAI,GAAG,CAAC;SACd;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACrD,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,YAAA,OAAO,KAAK,CAAC;SACd;AAED,QAAA,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAEvE,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;aACjB,IAAI,CAAC,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;aAC/C,IAAI,CAAC,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,EAClD;YACA,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,YAAA,OAAO,KAAK,CAAC;SACd;AAED,QAAA,OAAO,IAAI,CAAC;KACb;IAED,gBAAgB,CAAC,KAAU,EAAE,KAAU,EAAA;AACrC,QAAA,IAAI,KAAK,GAAG,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACtB,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,YAAA,OAAO,KAAK,CAAC;SACd;AAED,QAAA,OAAO,IAAI,CAAC;KACb;+GAhFU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;+EAEU,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACO,GAAG,EAAA,CAAA;sBAAf,KAAK;gBAGO,GAAG,EAAA,CAAA;sBAAf,KAAK;gBAGO,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBAUN,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCLtB,mBAAmB,CAAA;AAfhC,IAAA,WAAA,GAAA;QAgBW,IAAI,CAAA,IAAA,GAAuB,QAAQ,CAAC;QACpC,IAAI,CAAA,IAAA,GAAoC,OAAO,CAAC;AAK/C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAQ,CAAC;AAOlD,KAAA;AALC,IAAA,OAAO,CAAC,KAAiB,EAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;SACzB;KACF;+GAbU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,ECtBhC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,2gCA2BA,EDfI,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,aAAa,6FACb,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACP,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACV,eAAe,EACf,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,EACP,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,YAAY,2GACZ,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIK,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAf/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAGrB,OAAA,EAAA;wBACP,aAAa;wBACb,OAAO;wBACP,UAAU;wBACV,eAAe;wBACf,OAAO;wBACP,YAAY;wBACZ,IAAI;AACL,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,QAAA,EAAA,2gCAAA,EAAA,CAAA;8BAGP,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACI,WAAW,EAAA,CAAA;sBAApB,MAAM;;;MEMI,kBAAkB,CAAA;IAC3B,IAAa,SAAS,CAAC,IAAuB,EAAA;;QAE1C,IAAI,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;AACxC,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;SAC1C;AACD,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;KAC1B;AACD,IAAA,IAAI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;AAMD,IAAA,WAAA,CAAoB,YAA0B,EAAA;QAA1B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AALpC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAQ,CAAC;AAqBrD,QAAA,IAAA,CAAA,uBAAuB,GAAG;AACtB,YAAA,YAAY,EAAE,CAAC,OAAY,EAAE,IAAS,KAAa;AAC/C,gBAAA,OAAO,CAAC,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;aACnE;SACJ,CAAC;QAnBE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC;KACxD;IAED,UAAU,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE;AAC9B,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;SAC/B;KACJ;IAED,KAAK,GAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;SAClC;KACJ;+GA9BQ,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnC/B,qiIA2FA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDvEI,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,OAAO,EACP,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,EACP,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAU,EACV,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAQ,gUACR,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,sEAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EACJ,yBAAyB,EAAA,IAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACzB,mBAAmB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,kBAAkB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,KAAA,EAAA,KAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClB,gBAAgB,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,wBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIT,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBApB9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAGpB,OAAA,EAAA;wBACP,eAAe;wBACf,OAAO;wBACP,OAAO;wBACP,UAAU;wBACV,QAAQ;wBACR,mBAAmB;wBACnB,IAAI;wBACJ,yBAAyB;wBACzB,mBAAmB;wBACnB,kBAAkB;wBAClB,gBAAgB;wBAChB,kBAAkB;AACnB,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,QAAA,EAAA,qiIAAA,EAAA,CAAA;8EAGD,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAUI,eAAe,EAAA,CAAA;sBAAxB,MAAM;;;AErCX;;AAEG;MAqBU,eAAe,CAAA;AA6D1B,IAAA,WAAA,GAAA;AA5DA;;AAEG;QACM,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;AAE3B;;AAEG;QACM,IAAO,CAAA,OAAA,GAAW,EAAE,CAAC;AAE9B;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;AAE/B;;AAEG;QACM,IAAO,CAAA,OAAA,GAAW,EAAE,CAAC;AAE9B;;AAEG;AACM,QAAA,IAAA,CAAA,IAAI,GAAe,UAAU,CAAC,MAAM,CAAC;AAE9C;;AAEG;QACM,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AAElC;;AAEG;QACM,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;AAEjC;;AAEG;QACM,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAEnC;;AAEG;QACM,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;AAEpC;;AAEG;QACM,IAAK,CAAA,KAAA,GAAuB,SAAS,CAAC;AAE/C;;AAEG;AACO,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAQ,CAAC;AAEjD;;AAEG;QACgB,IAAU,CAAA,UAAA,GAAG,UAAU,CAAC;KAE3B;AAEhB;;;;AAIG;AACH,IAAA,OAAO,CAAC,KAAiB,EAAA;QACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAClC,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;SACzB;KACF;+GAxEU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAPf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAAA;YACT,gBAAgB;YAChB,WAAW;YACX,aAAa;YACb,gBAAgB;AACjB,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9BH,yiEAgDA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDhCI,SAAS,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACT,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACP,kBAAkB,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClB,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACJ,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAWN,eAAe,EAAA,UAAA,EAAA,CAAA;kBApB3B,SAAS;+BACE,eAAe,EAAA,UAAA,EACb,IAAI,EACP,OAAA,EAAA;wBACP,SAAS;wBACT,OAAO;wBACP,kBAAkB;wBAClB,IAAI;wBACJ,aAAa;wBACb,eAAe;qBAChB,EAGU,SAAA,EAAA;wBACT,gBAAgB;wBAChB,WAAW;wBACX,aAAa;wBACb,gBAAgB;AACjB,qBAAA,EAAA,QAAA,EAAA,yiEAAA,EAAA,CAAA;wDAMQ,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAKG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAKG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAKG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAKG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAKG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAKG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAKG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAKG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAKG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAKI,WAAW,EAAA,CAAA;sBAApB,MAAM;;;ME/CI,mBAAmB,CAAA;AApChC,IAAA,WAAA,GAAA;AAuCY,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAO,CAAC;AAC3C,KAAA;+GAJY,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EAlCpB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;oCAKwB,EAwBhC,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,6IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,oFACP,gBAAgB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBApC/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EACpB,QAAA,EAAA,CAAA;;;;;oCAKwB,EAuBzB,OAAA,EAAA;wBACP,OAAO;wBACP,gBAAgB;AACjB,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,MAAA,EAAA,CAAA,6IAAA,CAAA,EAAA,CAAA;8BAGP,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACI,KAAK,EAAA,CAAA;sBAAd,MAAM;;;MCSI,2BAA2B,CAAA;AAKtC;;AAEG;IACD,IAAa,OAAO,CAAC,IAAkC,EAAA;AACnD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,EAAE;YACP,OAAO;SACV;QAED,IAAI,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,MAAM,UAAU,EAAE;AACpD,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,OAAO;aACV;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;AACf,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;YACxB,OAAO;SACV;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;QACvC,IAAI,CAAC,8BAA8B,EAAE,CAAC;KACzC;;IA0BD,sBAAsB,GAAA;AAClB,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;QACtC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE;YAAE,OAAO;SAAC;QAC5C,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AAClB,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC9B,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,UAAU,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;aACvB,EAAE,IAAI,CAAC,CAAA;SACX;KACJ;AAED,IAAA,WAAA,CAAoB,YAA0B,EAAA;QAA1B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AApCpC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAO,CAAC;AAC1C,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAO,CAAC;QAE/C,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAEhB,IAAI,CAAA,IAAA,GAAe,EAAE,CAAC;QACtB,IAAc,CAAA,cAAA,GAAQ,EAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAC,CAAC;QAG5C,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;QACvB,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;QAI1B,IAAmB,CAAA,mBAAA,GAAG,IAAI,CAAC;QAC3B,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAA6B,CAAA,6BAAA,GAAG,KAAK,CAAC;QAEtC,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QACJ,IAAU,CAAA,UAAA,GAAG,UAAU,CAAC;AAqU3C,QAAA,IAAA,CAAA,uBAAuB,GAAG;AACtB,YAAA,YAAY,EAAE,CAAC,OAAY,EAAE,IAAS,KAAa;AAC/C,gBAAA,OAAO,CAAC,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;aAC7D;SACJ,CAAC;QAxTE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC;KACxD;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAC9B,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE;YAC9C,IAAI,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,MAAM,UAAU,EAAE;gBACpD,IAAI,CAAC,OAAO,EAAE,CAAC;aAClB;SACJ;KACJ;IAED,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;AACvD,YAAA,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,6BAA6B,EAAE;gBAChE,IAAI,CAAC,8BAA8B,EAAE,CAAC;aACzC;AACL,SAAC,CAAC,CAAA;KACL;IAED,UAAU,GAAA;AACN,QAAA,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;KAC1B;AAEH;;;;;AAKG;IACD,OAAO,CAAC,UAAmB,EAAE,UAAoB,EAAA;QAC7C,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAAE,OAAO;SAAE;AAEzD,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YAAE,OAAO;SAAE;QAEpC,IAAI,UAAU,EAAE;AACZ,YAAA,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;SACnC;AAED,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAEzF,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,QAAA,YAAY,EAAE,SAAS,CAAC,CAAC,IAAsB,KAAI;AAC/C,YAAA,MAAM,SAAS,GAAG,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAE5D,YAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AACnB,gBAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;aAC5F;AAED,YAAA,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE,eAAe,IAAI,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC;AAC1G,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAE5B,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;gBACnB,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;gBACvD,OAAO;aACV;AAED,YAAA,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,CAAC;AACjC,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,CAAC;YAC9B,UAAU,CAAC,MAAK;gBACZ,IAAI,CAAC,8BAA8B,EAAE,CAAC;aACzC,EAAC,EAAE,CAAC,CAAA;SACR,EAAE,MAAK;AACJ,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAChC,SAAC,CAAC,CAAA;KACL;IAED,8BAA8B,GAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;AAC5B,YAAA,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AAC1D,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;aACtF;SACJ;aAAM;AACH,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YAC3C,IAAI,UAAU,EAAE;;;;;;;;;aASf;iBAAM;AACH,gBAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oBACrC,OAAO;iBACV;gBACD,IAAI,CAAC,eAAe,EAAE,CAAC;aAC1B;SAEJ;KACJ;IAED,eAAe,GAAA;QACX,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/E,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAA;AACjC,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAAE,OAAO;SAAC;AAClC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAA;AAC3B,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC3C;AAED,IAAA,WAAW,CAAC,WAAgB,EAAA;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAA;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;AAC7B,YAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;AAClC,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACvB,OAAO;SACV;AACD,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;AAC5B,gBAAA,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,CAAA;aAC3C;iBAAM;gBACH,IAAI,CAAC,aAAa,EAAE,CAAC;aACxB;SACJ;AAED,QAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;KAChC;IAED,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;KAC1B;AACH;;;AAGG;AACD,IAAA,eAAe,CAAC,IAAS,EAAA;QACrB,IAAI,CAAC,IAAI,EAAE;YACP,OAAO;SACV;;QAED,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,eAAe,GAAG,IAAI,CAAC;AAE3B,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE;YACpC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAsC,KAAI;AAElF,gBAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC3B,oBAAA,KAAK,CAAC,OAAO,CAAC,CAAC,GAAoB,KAAI;AACnC,wBAAA,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC9C,qBAAC,CAAC,CAAA;iBACL;qBAAM;AACH,oBAAA,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;iBAC5B;AACL,aAAC,CAAC,CAAA;AACF,YAAA,IAAI,IAAI,CAAC,YAAY,CAAC,uCAAuC,EAAE;gBAC3D,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,KAAsC,KAAI;AAErF,oBAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC3B,wBAAA,KAAK,CAAC,OAAO,CAAC,CAAC,GAAoB,KAAI;AACnC,4BAAA,eAAe,GAAG,CAAC,eAAe,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AACtE,yBAAC,CAAC,CAAA;qBACL;yBAAM;AACH,wBAAA,eAAe,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;qBAC5C;AACL,iBAAC,CAAC,CAAA;gBACF,IAAI,IAAI,CAAC,YAAY,CAAC,kBAAkB,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE;AAC7E,oBAAA,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,IAAI,EAAE,IAAI,eAAe,CAAA;iBACzE;aACJ;SAEJ;AACD,QAAA,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;AAC5B,QAAA,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC;KAC7C;AAEH;;;AAGG;AACD,IAAA,cAAc,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;YAC7B,OAAO;SACV;QACD,KAAK,CAAC,cAAc,EAAE,CAAA;KACzB;AAED,IAAA,wBAAwB,CAAC,OAAkB,EAAA;QACvC,IAAI,IAAI,CAAC,YAAY,CAAC,gBAAgB,KAAK,KAAK,EAAE;YAC9C,OAAO;SACV;AAED,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;AAC1C,QAAA,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAU,KAAK,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;KAClF;AAED,IAAA,gBAAgB,CAAC,KAAU,EAAA;QACvB,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC;AAC3F,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,GAAG,EAAE;AAClB,YAAA,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,KAAK,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE;gBAC/F,OAAO;aACV;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;SAClB;KACJ;IAED,gBAAgB,GAAA;QACZ,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE;AAC9C,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SAC1C;KACJ;IAED,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC;QAChE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;AAC1C,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAChC;IAED,UAAU,GAAA;AACN,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;KACxB;IAED,iBAAiB,CAAC,KAAU,EAAE,KAAU,EAAA;QACpC,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC7B,QAAA,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AACnB,YAAA,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,MAAK;AACnC,gBAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;aAC5B,EAAE,GAAG,CAAC,CAAC;SACX;AAAM,aAAA,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE;AACjD,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;SAC5B;KACJ;IAED,qBAAqB,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACnC,YAAA,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;SAC5B;KACJ;IAED,aAAa,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC/D,OAAO;SACV;AACD,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAC9E,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC;AAC7C,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACvB,IAAI,CAAC,UAAU,EAAE,CAAA;SACpB;KACJ;IAED,uBAAuB,GAAA;AACnB,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;AACvB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,EAAE,CAAA;SACxC;KACJ;AAED,IAAA,YAAY,CAAC,KAAU,EAAA;QACnB,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACxB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,OAAO;aACV;AACD,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AAC3B,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;gBACpB,IAAI,CAAC,UAAU,EAAE,CAAC;aACrB;YAED,OAAO;SACV;AAED,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;KAC/B;IAED,UAAU,GAAA;;AAEN,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAAE,OAAO;SAAE;AACxC,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;AACf,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,cAAc,GAAG;AAClB,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,IAAI,EAAE,CAAC;SACV,CAAC;AACF,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,MAAM,UAAU,EAAE;YACpD,IAAI,CAAC,OAAO,EAAE,CAAC;SAClB;aAAM;AACH,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;SAC1C;AACD,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;KAClC;AAED,IAAA,2BAA2B,CAAC,KAAU,EAAA;QAClC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACvC,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;AAC5B,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE;AACtB,gBAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;aAClC;YACD,OAAO;SACV;AACD,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;KAC1B;IAED,SAAS,CAAC,SAAoB,EAAE,WAAwB,EAAA;QACpD,SAAS,CAAC,IAAI,EAAE,CAAC;AACjB,QAAA,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;KACvC;+GAnXQ,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,ECnDxC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,ogVAmNA,EDnLI,MAAA,EAAA,CAAA,84BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,oFACP,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACV,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACJ,KAAK,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACL,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,mBAAmB,EACnB,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,EACnB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,EACf,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,EACf,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,2BAA2B,2DAC3B,iBAAiB,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,gBAAgB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,OAAO,EACP,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,yBAAyB,EACzB,IAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,mBAAmB,4HACnB,kBAAkB,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIT,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAxBvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,EAG7B,OAAA,EAAA;wBACP,OAAO;wBACP,UAAU;wBACV,IAAI;wBACJ,KAAK;wBACL,eAAe;wBACf,mBAAmB;wBACnB,mBAAmB;wBACnB,eAAe;wBACf,eAAe;wBACf,2BAA2B;wBAC3B,iBAAiB;wBACjB,gBAAgB;wBAChB,OAAO;wBACP,yBAAyB;wBACzB,mBAAmB;wBACnB,kBAAkB;AACnB,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,QAAA,EAAA,ogVAAA,EAAA,MAAA,EAAA,CAAA,84BAAA,CAAA,EAAA,CAAA;8EAGU,SAAS,EAAA,CAAA;sBAAhC,SAAS;uBAAC,WAAW,CAAA;gBACI,WAAW,EAAA,CAAA;sBAApC,SAAS;uBAAC,aAAa,CAAA;gBACf,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAIO,OAAO,EAAA,CAAA;sBAAnB,KAAK;gBAmBG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACI,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACmB,WAAW,EAAA,CAAA;sBAApC,SAAS;uBAAC,aAAa,CAAA;gBAqBxB,sBAAsB,EAAA,CAAA;sBADrB,YAAY;uBAAC,2BAA2B,CAAA;;;MEtFhC,iBAAiB,CAAA;IAc5B,WACY,CAAA,UAAsB,EACtB,QAAkB,EAAA;QADlB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AAX9B,QAAA,IAAA,CAAA,WAAW,GAAG;AACZ,YAAA,GAAG,EAAE,YAAY;AACjB,YAAA,EAAE,EAAE,OAAO;SACZ,CAAA;AAED,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,MAAM,CAAC,uEAAuE,CAAC,CAAC;AAChG,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,MAAM,CAAC,kDAAkD,CAAC,CAAC;QAC/E,IAAa,CAAA,aAAA,GAAG,EAAE,CAAC;QAMjB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;KACtD;IAGD,OAAO,GAAA;QACL,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;AAEhD,QAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE;AACnC,YAAA,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;SAC5B;AAED,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAC1C,KAAK,EACL,IAAI,CAAC,QAAQ,KAAK,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAC7E,CAAC;AAEF,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE;AAC5E,YAAA,IAAI,IAAI,CAAC,aAAa,EAAE;gBACtB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;aAClD;AAAM,iBAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBAChC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;aACxD;SACD;AAED,QAAA,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE;AAC1C,YAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;SAChC;QAED,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,GAAG,WAAW,IAAI,IAAI,CAAC;AAC1D,QAAA,IAAI,CAAC,aAAa,GAAG,WAAW,IAAI,IAAI,CAAC;KAC1C;AAGD,IAAA,OAAO,CAAC,KAAqB,EAAA;QAC3B,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAC/D,IAAI,CAAC,WAAW,EAAE;YAAE,OAAO;SAAE;AAC7B,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE;YACjC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;gBACzC,KAAK,EAAE,cAAc,EAAE,CAAC;aACzB;SACF;aAAM;YACL,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;gBACrC,KAAK,EAAE,cAAc,EAAE,CAAC;aACzB;SACF;KACF;AAED,IAAA,mBAAmB,CAAC,IAAY,EAAA;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACpC,QAAA,IAAI,OAAO,CAAC;AACZ,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE;AACjC,YAAA,OAAO,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAY,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;SACrE;aAAM;AACL,YAAA,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1B,gBAAA,OAAO,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAY,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;aACrE;iBAAM;gBACL,OAAO,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;aAClE;SAEF;AACD,QAAA,OAAO,OAAO,CAAC;KAChB;+GA/EU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,SAAA,EAHlB,CAAC,gBAAgB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAGjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,YAAY;oBACtB,SAAS,EAAC,CAAC,gBAAgB,CAAC;AAC5B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;sGAEU,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAmBN,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,CAAA;gBA8BrB,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MClCtB,mBAAmB,CAAA;AAsB5B,IAAA,WAAA,CAAoB,YAA0B,EAAA;QAA1B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QArBrC,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;QAEnB,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;QACtB,IAAW,CAAA,WAAA,GAAW,YAAY,CAAC;QAQnC,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;AAEvB,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAQ,CAAC;QAExD,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QACf,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAoBhB,QAAA,IAAA,CAAA,uBAAuB,GAAG;AACtB,YAAA,YAAY,EAAE,CAAC,OAAY,EAAE,IAAS,KAAa;AAC/C,gBAAA,OAAO,CAAC,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;aACxD;SACJ,CAAC;QAnBE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,EAAqB,CAAC;KAC3E;IAED,UAAU,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YAAE,OAAO;SAAE;AACtC,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;KAClC;IAED,gBAAgB,GAAA;QACZ,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACxC,YAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;SAC1C,EAAC,GAAG,CAAC,CAAA;KACT;+GApCQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/BhC,ujFA6DA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED3CI,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,IAAI,EACb,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,EACf,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,EACnB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,kBAAkB,iuBAClB,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,KAAA,EAAA,KAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,QAAQ,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACR,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACV,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,iBAAiB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EACjB,yBAAyB,EAAA,IAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIrC,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAjB/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAEvB,OAAA,EAAA;AACP,wBAAA,OAAO,EAAE,IAAI;wBACb,eAAe;wBACf,mBAAmB;wBACnB,kBAAkB;wBAClB,mBAAmB;wBACnB,QAAQ;wBACR,UAAU;wBACV,aAAa;wBACb,iBAAiB;AACjB,wBAAA,yBAAyB,EAAE,mBAAmB;AAC/C,qBAAA,EAAA,UAAA,EACa,IAAI,EAAA,QAAA,EAAA,ujFAAA,EAAA,CAAA;8EAGP,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAEG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACqB,YAAY,EAAA,CAAA;sBAAtC,SAAS;uBAAC,cAAc,CAAA;gBACf,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;;;MEfE,4BAA4B,CAAA;AAbzC,IAAA,WAAA,GAAA;QAmBW,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QACf,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;QAClB,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;QAElB,IAAQ,CAAA,QAAA,GAAW,yBAAyB,CAAC;AAC5C,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAO,CAAC;AACpC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAO,CAAC;QAGpD,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QAEf,IAAa,CAAA,aAAA,GAAG,IAAI,gBAAgB,CAAC;AACnC,YAAA,SAAS,EAAE,IAAI,kBAAkB,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;AACjE,YAAA,OAAO,EAAE,IAAI,kBAAkB,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;AAChE,SAAA,CAAC,CAAC;AAoCH,QAAA,IAAA,CAAA,uBAAuB,GAAG;AACxB,YAAA,YAAY,EAAE,CAAC,OAAY,EAAE,IAAS,KAAa;AACjD,gBAAA,OAAO,CAAC,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;aACtD;SACF,CAAC;AAaH,KAAA;IAnDC,eAAe,GAAA;QACb,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE;AAC7B,gBAAA,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;AAC5B,oBAAA,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AAC/B,oBAAA,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AAC9B,iBAAA,CAAC,CAAA;aACH;AACH,SAAC,CAAC,CAAA;KACH;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,UAAU,CAAC,MAAK;YACd,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,YAAY,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;AACzE,gBAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,oBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAC3B,oBAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;iBACzB;aACF;iBAAM,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;AACjD,gBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC1B,oBAAA,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACxC,oBAAA,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACvC,iBAAA,CAAC,CAAA;aACH;SACF,EAAE,EAAE,CAAC,CAAA;KACP;IAED,gBAAgB,GAAA;QACd,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAC/B,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;SAC/B,EAAC,GAAG,CAAC,CAAA;KACP;IAQD,OAAO,CAAC,KAA2B,EAAE,OAAY,EAAA;AAC/C,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,CAAC,IAAI,EAAE,CAAC;KAChB;AAED,IAAA,eAAe,CAAC,KAAoB,EAAC,KAA2B,EAAE,OAAY,EAAA;AAC5E,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;AAC1B,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAC,OAAO,CAAC,CAAA;SAC5B;KACF;+GAvEU,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,qlBC/BzC,6rFA4CA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDtBI,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAClB,mBAAmB,EACnB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,EACnB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,KAAA,EAAA,KAAA,EAAA,UAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,oFAAE,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,eAAe,EACf,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,mBAAmB,iKAAE,iBAAiB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAI7B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAbxC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,EAE3B,OAAA,EAAA;wBACP,kBAAkB;wBAClB,mBAAmB;wBACnB,mBAAmB;AACnB,wBAAA,OAAO,EAAE,IAAI;wBACb,eAAe;AACf,wBAAA,mBAAmB,EAAE,iBAAiB;AACvC,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,QAAA,EAAA,6rFAAA,EAAA,CAAA;8BAGP,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBACc,MAAM,EAAA,CAAA;sBAA1B,SAAS;uBAAC,QAAQ,CAAA;gBACD,GAAG,EAAA,CAAA;sBAApB,SAAS;uBAAC,KAAK,CAAA;;;AE7ClB;;AAEG;;ACFH;;AAEG;;;;"}
|
|
@@ -11,6 +11,9 @@ export declare class AutocompleteSelectComponent implements OnChanges, AfterView
|
|
|
11
11
|
searchInput: ElementRef;
|
|
12
12
|
className: string;
|
|
13
13
|
submitValue: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* For working configs.
|
|
16
|
+
*/
|
|
14
17
|
set configs(data: AutocompleteConfigsInterface);
|
|
15
18
|
detectChanges: boolean;
|
|
16
19
|
selectionChange: EventEmitter<any>;
|
|
@@ -39,12 +42,26 @@ export declare class AutocompleteSelectComponent implements OnChanges, AfterView
|
|
|
39
42
|
ngOnChanges(changes: SimpleChanges): void;
|
|
40
43
|
ngAfterViewInit(): void;
|
|
41
44
|
hardReload(): void;
|
|
45
|
+
/**
|
|
46
|
+
* Dynamic request for select data.
|
|
47
|
+
* @param searchText - The input value to search options by.
|
|
48
|
+
* @param fromSearch - Access for search .
|
|
49
|
+
* @returns Select data.
|
|
50
|
+
*/
|
|
42
51
|
getData(searchText?: string, fromSearch?: boolean): void;
|
|
43
52
|
findAndSetDefaultValueFromData(): void;
|
|
44
53
|
setDefaultValue(): void;
|
|
45
54
|
optionClick(showingData: any): void;
|
|
46
55
|
addNewItemEvent(): void;
|
|
56
|
+
/**
|
|
57
|
+
* Filter and show.
|
|
58
|
+
* @param data - Existing chosen data.
|
|
59
|
+
*/
|
|
47
60
|
setShowingValue(data: any): void;
|
|
61
|
+
/**
|
|
62
|
+
* Block another events.
|
|
63
|
+
* @param event - Element click event.
|
|
64
|
+
*/
|
|
48
65
|
preventDefault(event: any): void;
|
|
49
66
|
registerPanelScrollEvent(element: MatSelect): void;
|
|
50
67
|
loadDataOnScroll(event: any): void;
|