ngx-opalbytes-components 1.14.0 → 1.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-opalbytes-components.mjs","sources":["../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-button/base-button.component.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-button/base-button.component.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-input/base-input.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-input/base-input.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-time-range/base-time-range.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-time-range/base-time-range.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/autocomplete/autocomplete.component.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/autocomplete/autocomplete.component.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/drop-down/drop-down.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/drop-down/drop-down.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/links-button/links-button.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/links-button/links-button.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/footer/footer.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/footer/footer.html","../../../projects/ngx-opalbytes-components/src/lib/material.module.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/paginator/paginator.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/paginator/paginator.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/time-picker/time-picker.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/time-picker/time-picker.html","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-modal/base-modal.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-modal/base-modal.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-modal/base-modal.html","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-dialog/base-dialog.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-dialog/base-dialog.html","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-dialog/base-dialog.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table/base-filter-table.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table/base-table.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table/base-table.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table/base-table.html","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table-paginated/base-filter-table-paginated.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table-paginated/base-pagination.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table-paginated/base-table-paginated.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table-paginated/base-table-paginated.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table-paginated/base-table-paginated.html","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-alert/base-alert.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-alert/base-alert.html","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-alert/base-alert.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/stepper/step/step.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/stepper/step/step.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/stepper/stepper.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/stepper/stepper.html","../../../projects/ngx-opalbytes-components/src/public-api.ts","../../../projects/ngx-opalbytes-components/src/ngx-opalbytes-components.ts"],"sourcesContent":["import { CommonModule } from \"@angular/common\";\nimport { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\n\nimport { LucideDynamicIcon } from \"@lucide/angular\";\n\n@Component({\n standalone: true,\n selector: \"cao-button\",\n templateUrl: \"./base-button.component.html\",\n styleUrls: [\"./base-button.component.scss\"],\n imports: [CommonModule, MatTooltipModule, LucideDynamicIcon],\n})\nexport class CaoBaseButtonComponent implements OnInit{\n @Output() readonly buttonClick = new EventEmitter<void>();\n\n @Input() buttonText = \"Clique!\";\n @Input() isDarkMode = false;\n @Input() isDisabled = false;\n @Input() isLoading = false;\n @Input() btnClass = \"\";\n\n @Input() tooltip?:string;\n @Input() trailingIcon?: string;\n @Input() leadingIcon?: string;\n @Input() isLucideIcon = true;\n @Input() dataCy?: string;\n @Input() iconColor?: string;\n\n ngOnInit(): void {\n if (!this.dataCy) {\n this.dataCy = `btn-${this.buttonText.replace(/\\s+/g, '-').toLowerCase()}`;\n }\n\n if(!this.tooltip && this.buttonText.length >= 20){\n this.tooltip = this.buttonText\n }\n }\n\n onClick(): void {\n if (!this.isDisabled && !this.isLoading) {\n this.buttonClick.emit();\n }\n }\n}\n","<button\n type=\"button\"\n class=\"base-button\"\n matTooltipPosition=\"below\"\n matTooltipClass=\"custom-arrow-tooltip\"\n [matTooltip]=\"tooltip\"\n [matTooltipDisabled]=\"!tooltip\"\n [class.dark-mode]=\"isDarkMode\"\n [class.disabled]=\"isDisabled\"\n [class.loading]=\"isLoading\"\n [disabled]=\"isDisabled || isLoading\"\n [attr.data-cy]=\"dataCy\"\n (click)=\"onClick()\">\n @if (leadingIcon) {\n <span class=\"leading-icon\">\n @if (isLucideIcon) {\n <svg [lucideIcon]=\"leadingIcon\" [style.color]=\"iconColor\"></svg>\n } @else {\n <img alt=\"icon\" [src]=\"leadingIcon\" />\n }\n </span>\n } {{ buttonText }} @if (trailingIcon) {\n <span class=\"trailing-icon\">\n @if (isLucideIcon) {\n <svg [lucideIcon]=\"trailingIcon\" [style.color]=\"iconColor\"></svg>\n } @else {\n <img alt=\"icon\" [src]=\"trailingIcon\" />\n }\n </span>\n } @if (isLoading) {\n <span class=\"loader\"></span>\n }\n</button>\n","import { CommonModule } from \"@angular/common\";\nimport { Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { AbstractControl, ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from \"@angular/forms\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\n\nimport { LucideDynamicIcon } from \"@lucide/angular\";\nimport { NgxMaskDirective, provideNgxMask } from \"ngx-mask\";\n\n@Component({\n standalone: true,\n selector: \"cao-input\",\n templateUrl: \"./base-input.html\",\n styleUrls: [\"./base-input.css\"],\n imports: [CommonModule, FormsModule, NgxMaskDirective, MatTooltipModule, LucideDynamicIcon],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: CaoBaseInput,\n multi: true,\n },\n provideNgxMask(),\n ],\n})\nexport class CaoBaseInput implements ControlValueAccessor {\n @Input() type = \"text\";\n @Input() placeholder = \"\";\n @Input() inputClass = \"\";\n @Input() value: string | number | boolean | Date = \"\";\n @Input() errorMessage = \"\";\n @Input() isDisabled = false;\n @Input() maxLength?: number;\n @Input() searchMode = false;\n @Input() showBorder = false;\n @Input() isLucideIcon = false;\n @Input() iconColor = \"\";\n @Input() mask?: string;\n @Input() control?: AbstractControl | null;\n @Input() tooltip = \"\";\n @Input() dataCy?: string = \"\";\n @Input() textareaRows?: string = \"\";\n\n @Input() decimalMarker: \".\" | \",\" | [\".\", \",\"] = \",\";\n @Input() thousandSeparator = \".\";\n @Input() allowNegativeNumbers = false;\n @Input() separatorLimit = \"\";\n\n @Input() set leadingIcon(value: string) {\n this._leadingIcon = value;\n this.icon = true;\n }\n\n @Input() set trailingIcon(value: string) {\n this._trailingIcon = value;\n this.icon = true;\n }\n\n @Output() readonly valueChange = new EventEmitter<string>();\n @Output() readonly searchClick = new EventEmitter<void>();\n @Output() readonly inputChange = new EventEmitter<string>();\n\n isFocused = false;\n icon = false;\n _leadingIcon?: string;\n _trailingIcon?: string;\n\n onChange: any = () => { };\n onTouched: any = () => { };\n\n get hasError() {\n return !!this.errorMessage;\n }\n\n @Input() controlName = \"\";\n\n get controlNameValue(): string {\n return this.controlName;\n }\n\n onInput(event: Event) {\n const newValue = (event.target as HTMLInputElement).value;\n this.value = newValue;\n this.onChange(newValue);\n this.valueChange.emit(newValue);\n }\n\n onInputChange(event: Event) {\n const newValue = (event.target as HTMLInputElement).value;\n this.value = newValue;\n this.inputChange.emit(newValue);\n }\n\n onFocus() {\n this.isFocused = true;\n this.onTouched();\n }\n\n onBlur() {\n this.isFocused = false;\n this.onTouched();\n\n if (this.control?.touched && this.control?.valid && this.control?.value) {\n setTimeout(() => {\n const active = document.activeElement as HTMLElement;\n const current = document.querySelector(`[formcontrolname=\"${this.controlNameValue}\"]`);\n if (!current || !active || !current.contains(active)) {\n this.control?.markAsUntouched();\n }\n });\n }\n }\n\n onSearchClick() {\n this.searchClick.emit();\n }\n\n writeValue(value: string | null | undefined): void {\n this.value = value || \"\";\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n}\n","<div class=\"form-field input-component\" [class.search-mode]=\"searchMode\">\n <div class=\"input-wrapper\" [class.has-leading-icon]=\"_leadingIcon\" [class.has-trailing-icon]=\"_trailingIcon\"\n [class.focused]=\"isFocused\">\n @if (_leadingIcon) { @if (isLucideIcon) {\n <div class=\"icon\">\n <svg [lucideIcon]=\"_leadingIcon\" [style.color]=\"iconColor\"></svg>\n </div>\n } @else {\n <div class=\"icon\">\n <img alt=\"ícone de início\" [src]=\"_leadingIcon\"/>\n </div>\n } } @switch (type) { @case ('textarea') {\n <textarea matTooltip=\"{{ tooltip }}\" matTooltipPosition=\"above\" matTooltipClass=\"custom-arrow-tooltip\" [attr.data-cy]=\"dataCy\"\n [placeholder]=\"placeholder\" [disabled]=\"isDisabled\" [ngClass]=\"[\n inputClass,\n control?.touched && control?.invalid ? 'invalid' : '',\n control?.touched && control?.valid && control?.value ? 'valid' : ''\n ]\" [attr.maxlength]=\"maxLength\"\n [rows]=\"textareaRows\" [mask]=\"mask\" [allowNegativeNumbers]=\"allowNegativeNumbers\" [thousandSeparator]=\"thousandSeparator\" [decimalMarker]=\"decimalMarker\" [separatorLimit]=\"separatorLimit\"\n [(ngModel)]=\"value\" (input)=\"onInput($event)\"\n (focus)=\"onFocus()\" (blur)=\"onBlur()\"></textarea>\n } @default {\n <input matTooltip=\"{{ tooltip }}\" matTooltipPosition=\"below\" matTooltipClass=\"custom-arrow-tooltip\" [attr.data-cy]=\"dataCy\" [type]=\"type\"\n [placeholder]=\"placeholder\" [disabled]=\"isDisabled\" [ngClass]=\"[\n inputClass,\n control?.touched && control?.invalid ? 'invalid' : '',\n control?.touched && control?.valid && control?.value ? 'valid' : ''\n ]\" [attr.maxlength]=\"maxLength\"\n [mask]=\"mask\" [allowNegativeNumbers]=\"allowNegativeNumbers\" [thousandSeparator]=\"thousandSeparator\" [decimalMarker]=\"decimalMarker\" [separatorLimit]=\"separatorLimit\" [(ngModel)]=\"value\" (input)=\"onInput($event)\"\n (change)=\"onInputChange($event)\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" />\n } } @if (_trailingIcon) { @if (isLucideIcon) {\n <div class=\"icon\">\n <svg [lucideIcon]=\"_trailingIcon\" [style.color]=\"iconColor\"></svg>\n </div>\n } @else {\n <div class=\"icon\">\n <img alt=\"ícone de fim\" [src]=\"_trailingIcon\" />\n </div>\n } } \n </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { MatDatepickerModule, MatDateRangeInput } from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\n@Component({\n selector: 'cao-base-time-range',\n imports: [MatFormFieldModule, MatInputModule, MatDatepickerModule],\n templateUrl: './base-time-range.html',\n styleUrl: './base-time-range.css',\n})\nexport class BaseTimeRange implements OnInit{\n @Input() label = \"\";\n @Input() max: Date | undefined;\n @Input() minDate: Date | undefined;\n @Input() maxDate: Date | undefined;\n @Input() startDate: Date | undefined;\n @Input() finalDate: Date | undefined;\n @Input() dataCy?: string\n @Input() controlName = \"\";\n\n @Output() readonly rangeSelected = new EventEmitter<Date[]>();\n\n @ViewChild(MatDateRangeInput) dateRangeInput!: MatDateRangeInput<Date>;\n\n ngOnInit(): void {\n if(!this.dataCy){\n this.dataCy = `time-range-${this.label}`\n }\n }\n\n onSelectStartDate(event: any) {\n const date = event.target.value as Date;\n this.startDate = date;\n this.finalDate = undefined;\n\n const maxDate = new Date(date);\n maxDate.setDate(maxDate.getDate() + 30);\n\n this.maxDate = maxDate;\n }\n\n onInputMaxDate(event: any) {\n const finalDate = event.target.value as Date;\n if (this.startDate && finalDate) {\n const data = [this.startDate, finalDate];\n this.rangeSelected.emit(data);\n }\n }\n\n clearInputs() {\n this.max = undefined;\n this.minDate = undefined;\n this.maxDate = undefined;\n this.startDate = undefined;\n this.finalDate = undefined;\n\n this.dateRangeInput._startInput.value = \"\";\n this.dateRangeInput._endInput.value = \"\";\n }\n}\n","<label class=\"label-dropw-down\" [for]=\"controlName\">{{ label }}</label>\n<mat-form-field class=\"input-data-field\" subscriptSizing=\"dynamic\" appearance=\"outline\">\n <mat-date-range-input [rangePicker]=\"picker\" [max]=\"maxDate\"\n [attr.dataCy]=\"this.dataCy\"\n >\n <input\n #startDateInput\n matStartDate\n placeholder=\"DATA INÍCIO\"\n [tabIndex]=\"1\"\n [value]=\"startDate\"\n (dateInput)=\"onSelectStartDate($event)\" />\n <input\n #endDateInput\n matEndDate\n placeholder=\"DATA FIM\"\n [tabIndex]=\"2\"\n [value]=\"finalDate\"\n (dateInput)=\"onInputMaxDate($event)\" />\n </mat-date-range-input>\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\" />\n <mat-date-range-picker #picker />\n</mat-form-field>\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, OnInit, Output, forwardRef, inject } from \"@angular/core\";\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControl,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from \"@angular/forms\";\nimport {\n MatAutocompleteModule,\n MatAutocompleteSelectedEvent,\n} from \"@angular/material/autocomplete\";\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { MatInputModule } from \"@angular/material/input\";\n\nimport { LucideDynamicIcon } from \"@lucide/angular\";\nimport { Observable, startWith, map } from \"rxjs\";\n\nexport interface ICaoAutoCompleteOption {\n id?: string | number;\n nome: string;\n icon?: string;\n iconPosition?: string;\n}\n\n@Component({\n selector: \"cao-autocomplete\",\n templateUrl: \"./autocomplete.component.html\",\n styleUrls: [\"./autocomplete.component.scss\"],\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatAutocompleteModule,\n LucideDynamicIcon,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CaoAutocompleteComponent),\n multi: true,\n },\n ],\n})\nexport class CaoAutocompleteComponent implements OnInit, ControlValueAccessor {\n @Input() label = \"\";\n @Input() placeholder = \"\";\n @Input() options: ICaoAutoCompleteOption[] = [];\n @Input() control: AbstractControl = new FormControl();\n @Input() dataCy = \"\";\n @Input() controlName = \"\";\n @Input() isLucideIcon = false;\n @Input() iconColor = \"\";\n @Input() _leadingIcon?: string;\n @Input() _trailingIcon?: string;\n @Input() optionIcon?: string;\n @Input() optionIConColor?: string\n @Input() isLucideOptionIcon?: boolean\n\n @Output() readonly itemSelected = new EventEmitter<ICaoAutoCompleteOption>();\n @Output() readonly blurEvent = new EventEmitter<void>();\n @Output() readonly focusEvent = new EventEmitter<void>();\n\n internalControl = new FormControl(\"\");\n filteredOptions$!: Observable<ICaoAutoCompleteOption[]>;\n isFocused = false;\n icon = false;\n\n private el = inject(ElementRef);\n\n private onChange: (value: ICaoAutoCompleteOption | string) => void = () => { };\n private onTouched: () => void = () => { };\n\n ngOnInit(): void {\n this.filteredOptions$ = this.internalControl.valueChanges.pipe(\n startWith(\"\"),\n map((value) => this.filter(value || \"\"))\n );\n\n this.control.valueChanges.subscribe((value) => {\n const displayValue = value && typeof value === \"object\" ? this.displayFn(value) : value;\n this.internalControl.setValue(displayValue, { emitEvent: false });\n });\n }\n\n onFocus() {\n this.isFocused = true;\n this.focusEvent.emit()\n this.onTouched();\n }\n\n onBlur(): void {\n this.isFocused = false;\n this.blurEvent.emit()\n this.onTouched();\n }\n\n onOptionSelected(event: MatAutocompleteSelectedEvent): void {\n this.onChange(event.option.value);\n this.itemSelected.emit(event.option.value)\n this.onTouched();\n }\n\n\n private filter(value: string | ICaoAutoCompleteOption): ICaoAutoCompleteOption[] {\n const filterValue = (typeof value === \"string\" ? value : value?.nome)?.toLowerCase() || \"\";\n if (!this.options) {\n return [];\n }\n return this.options.filter((option) => {\n const nomeMatch = option.nome.toLowerCase().includes(filterValue);\n const idMatch = option.id?.toString().toLowerCase().includes(filterValue);\n return nomeMatch || idMatch;\n });\n }\n\n displayFn(option: ICaoAutoCompleteOption): string {\n return option && option.nome ? option.nome : \"\";\n }\n\n get errorText(): string | null {\n if (!this.control) { return null; }\n\n const isEmpty = this.control.value === null || this.control.value === \"\";\n\n if (this.control.hasError(\"required\") && isEmpty) {\n return \"*Campo obrigatório\";\n }\n\n if (this.control.touched && this.control.invalid) {\n if (this.control.hasError(\"cpfInvalid\")) { return \"CPF inválido\"; }\n if (this.control.hasError(\"cellPhoneInvalid\")) { return \"Número inválido\"; }\n if (this.control.hasError(\"emailInvalid\")) { return \"Email inválido\"; }\n if (this.control.hasError(\"cnpjInvalid\")) { return \"CNPJ inválido\"; }\n if (this.control.hasError(\"rgInvalid\")) { return \"RG inválido\"; }\n if (this.control.hasError(\"dateInvalid\")) { return \"Data inválida\"; }\n if (this.control.hasError(\"dateStartInvalid\")) { return \"Data Inicial inválida\"; }\n if (this.control.hasError(\"dateEndInvalid\")) { return \"Data Final inválida\"; }\n return \"Formato inválido\";\n }\n\n return null;\n }\n\n get controlNameValue(): string {\n return this.controlName;\n }\n\n writeValue(value: ICaoAutoCompleteOption | string): void {\n const displayValue = value && typeof value === \"object\" ? this.displayFn(value) : value;\n this.internalControl.setValue(displayValue, { emitEvent: false });\n }\n\n registerOnChange(fn: (value: ICaoAutoCompleteOption | string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setInputHeight(height: string): void {\n this.el.nativeElement.style.setProperty('--form-field-height', height);\n }\n\n}\n","<div class=\"form-field\">\n @if (label) {\n <label [for]=\"internalControl\">{{ label }}</label>\n }\n\n <mat-form-field appearance=\"outline\" class=\"rnv-autocomplete-mat-form-field autocomplete\">\n <div class=\"input-wrapper\" [class.has-leading-icon]=\"_leadingIcon\" [class.has-trailing-icon]=\"_trailingIcon\"\n [class.focused]=\"isFocused\">\n @if (_leadingIcon) { @if (isLucideIcon) {\n <div class=\"icon\">\n <svg [lucideIcon]=\"_leadingIcon\" [style.color]=\"iconColor\"></svg>\n </div>\n } @else {\n <div class=\"icon\">\n <img alt=\"ícone de início\" [src]=\"_leadingIcon\" />\n </div>\n } }\n <input\n type=\"text\"\n matInput\n [placeholder]=\"placeholder\"\n [formControl]=\"internalControl\"\n [matAutocomplete]=\"auto\"\n [attr.data-cy]=\"dataCy\"\n [ngClass]=\"[\n control?.touched && control?.invalid ? 'invalid' : '',\n control?.touched && control?.valid && control?.value ? 'valid' : ''\n ]\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\" />\n @if (_trailingIcon) { @if (isLucideIcon) {\n <div class=\"icon trailing-icon\">\n <svg [lucideIcon]=\"_trailingIcon\" [style.color]=\"iconColor\"></svg>\n </div>\n } @else {\n <div class=\"icon trailing-icon\">\n <img alt=\"ícone de fim\" [src]=\"_trailingIcon\" />\n </div>\n } }\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n autoActiveFirstOption\n [displayWith]=\"displayFn\"\n (optionSelected)=\"onOptionSelected($event)\">\n @for (option of filteredOptions$ | async; track option.id) {\n <mat-option class=\"option-item\" [value]=\"option\">{{ option.nome }} \n @if(optionIcon){\n @if (isLucideOptionIcon) {\n <svg [lucideIcon]=\"optionIcon\" [style.color]=\"iconColor\"></svg>\n }@else {\n <img alt=\"\" [src]=\"optionIcon\" />\n }\n }\n </mat-option>\n }\n </mat-autocomplete>\n </div>\n </mat-form-field>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n forwardRef,\n OnInit,\n OnDestroy,\n ChangeDetectorRef,\n} from \"@angular/core\";\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n FormControl,\n} from \"@angular/forms\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\n\nexport interface ICaoDropDownOption {\n id?: string | number;\n nome: string;\n icon?: string;\n iconPosition?: string;\n dataCy?: string;\n}\n\n@Component({\n selector: \"cao-drop-down\",\n templateUrl: \"./drop-down.html\",\n styleUrl: \"./drop-down.css\",\n encapsulation: ViewEncapsulation.None,\n imports: [\n MatIconModule,\n CommonModule,\n MatTooltipModule,\n ReactiveFormsModule,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CaoDropDownComponent),\n multi: true,\n },\n ],\n})\nexport class CaoDropDownComponent implements ControlValueAccessor, OnInit, OnDestroy {\n @Input() textHeader = \"SELECIONE UM ITEM\";\n @Input() options: ICaoDropDownOption[] = [];\n @Input() dropDownClass = \"\";\n @Input() styleDropDown: { [klass: string]: unknown } = {};\n @Input() control?: AbstractControl | null;\n @Input() controlName = \"\";\n @Input() isDisabled = false;\n @Input() tooltip = \"\";\n @Input() dropDirectionInput: \"up\" | \"down\" = \"down\";\n @Input() dataCy?: string = \"\";\n\n @Input() trackByFn?: (index: number, item: ICaoDropDownOption) => unknown;\n @Input() compareWith?: (option: unknown, value: unknown) => boolean;\n @Input() ariaLabel?: string;\n @Input() ariaLabelledBy?: string;\n @Input() listAriaLabel?: string;\n\n @Output() readonly itemSelected = new EventEmitter<ICaoDropDownOption>();\n\n isOpen = false;\n selectedItem?: ICaoDropDownOption;\n filteredOptions: ICaoDropDownOption[] = [];\n searchControl = new FormControl(\"\");\n isTouched = false;\n isFocused = false;\n dropDirection: string | undefined;\n removeValidBorder = false;\n\n\n focusedIndex = -1;\n\n private _handleClickOutside = this.onClickOutside.bind(this);\n\n constructor(\n private _eref: ElementRef,\n private cdr: ChangeDetectorRef\n ) { }\n\n ngOnInit(): void {\n document.addEventListener(\"click\", this._handleClickOutside, true);\n this.filteredOptions = [...this.options];\n\n this.searchControl.valueChanges.subscribe((value) => {\n this.filterOptions(value || \"\");\n this.focusedIndex = -1\n });\n }\n\n ngOnDestroy(): void {\n document.removeEventListener(\"click\", this._handleClickOutside, true);\n }\n\n get activeDescendant(): string | null {\n if (this.isOpen && this.focusedIndex >= 0 && this.filteredOptions[this.focusedIndex]) {\n return `option-${this.dataCy}-${this.focusedIndex}`;\n }\n return null;\n }\n\n toggleDropdown(): void {\n if (this.isDisabled) { return };\n\n this.checkAvailableSpace();\n this.isOpen = !this.isOpen;\n this.isFocused = this.isOpen;\n this.markAsTouched();\n\n if (this.isOpen) {\n this.searchControl.setValue(\"\");\n this.filteredOptions = [...this.options];\n this.removeValidBorder = false;\n this.focusedIndex = -1;\n\n\n setTimeout(() => {\n if (this.isOpen) {\n const searchInput = this._eref.nativeElement.querySelector('.dropdown-search input');\n if (searchInput) {\n searchInput.focus();\n }\n }\n });\n } else {\n this.focusedIndex = -1;\n }\n\n this.cdr.detectChanges();\n }\n\n selectItem(option: ICaoDropDownOption): void {\n if (this.isDisabled) { return };\n\n this.selectedItem = option;\n this.isOpen = false;\n this.focusedIndex = -1;\n this.itemSelected.emit(option);\n this.onChange(option);\n this.markAsTouched();\n this.cdr.detectChanges();\n }\n\n clear(): void {\n this.selectedItem = undefined;\n this.onChange(null);\n this.cdr.detectChanges();\n }\n\n filterOptions(searchTerm: string) {\n if (!searchTerm) {\n this.filteredOptions = [...this.options];\n return;\n }\n const lowerCaseSearchTerm = searchTerm.toLowerCase();\n this.filteredOptions = this.options.filter(\n (option) =>\n option.nome.toLowerCase().includes(lowerCaseSearchTerm) ||\n option.id?.toString().toLowerCase().includes(lowerCaseSearchTerm)\n );\n }\n\n trackBy(index: number, item: ICaoDropDownOption): unknown {\n return this.trackByFn ? this.trackByFn(index, item) : item.id;\n }\n\n private onClickOutside(event: MouseEvent): void {\n if (!this._eref.nativeElement.contains(event.target)) {\n if (this.isOpen) {\n this.isOpen = false;\n }\n if (this.isFocused) {\n this.isFocused = false;\n }\n this.focusedIndex = -1;\n this.markAsTouched();\n this.removeValidBorder = true;\n this.cdr.detectChanges();\n }\n }\n\n onArrowDown(event: Event): void {\n if (this.isDisabled) { return };\n\n event.preventDefault();\n event.stopPropagation();\n\n if (this.filteredOptions.length === 0) { return };\n\n if (this.focusedIndex === -1) {\n\n this.focusedIndex = 0;\n } else {\n\n this.focusedIndex = (this.focusedIndex + 1) % this.filteredOptions.length;\n }\n\n this.scrollIntoView();\n this.cdr.detectChanges();\n }\n\n onArrowUp(event: Event): void {\n if (this.isDisabled) { return };\n\n event.preventDefault();\n event.stopPropagation();\n\n if (this.filteredOptions.length === 0) { return };\n\n if (this.focusedIndex === -1) {\n\n this.focusedIndex = this.filteredOptions.length - 1;\n } else {\n\n this.focusedIndex = this.focusedIndex <= 0\n ? this.filteredOptions.length - 1\n : this.focusedIndex - 1;\n }\n\n this.scrollIntoView();\n this.cdr.detectChanges();\n }\n\n onSearchEnter(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.focusedIndex >= 0 && this.focusedIndex < this.filteredOptions.length) {\n this.selectItem(this.filteredOptions[this.focusedIndex]);\n } else if (this.filteredOptions.length > 0) {\n\n this.selectItem(this.filteredOptions[0]);\n }\n }\n\n closeDropdown(): void {\n if (this.isDisabled) { return };\n\n this.isOpen = false;\n this.focusedIndex = -1;\n this.isFocused = false;\n this.cdr.detectChanges();\n }\n\n private scrollIntoView(): void {\n if (!this.isOpen || this.focusedIndex === -1) { return };\n\n setTimeout(() => {\n const element = document.getElementById(`option-${this.dataCy}-${this.focusedIndex}`);\n if (element) {\n element.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth'\n });\n }\n }, 0);\n }\n\n checkAvailableSpace(): void {\n if (this.dropDirectionInput === \"up\") {\n this.dropDirection = \"up\";\n return;\n }\n\n const rect = this._eref.nativeElement.getBoundingClientRect();\n const windowHeight = window.innerHeight;\n const dropdownHeight = 200\n\n const spaceBelow = windowHeight - rect.bottom;\n this.dropDirection = spaceBelow < dropdownHeight ? \"up\" : \"down\";\n }\n\n\n writeValue(value: unknown): void {\n if (value !== null && value !== undefined) {\n const match = this.options.find((opt) =>\n this.compareWith\n ? this.compareWith(opt, value)\n : opt.id === (typeof value === \"object\" && value ? (value as any).id : value)\n );\n\n if (match) {\n this.selectedItem = match;\n } else {\n const matchByName = this.options.find((opt) => opt.nome === value);\n if (matchByName) {\n this.selectedItem = matchByName;\n }\n }\n } else {\n this.selectedItem = undefined;\n }\n this.cdr.detectChanges();\n }\n\n registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n onChange: (value: unknown) => void = () => { };\n onTouched = () => { };\n\n get errorText(): string | null {\n if (!this.control) { return null; }\n if (this.control.hasError(\"required\")) {\n return \"*Campo obrigatório\";\n }\n return null;\n }\n\n private markAsTouched() {\n if (!this.isTouched) {\n this.onTouched();\n this.isTouched = true;\n this.control?.markAsTouched();\n }\n }\n\n get controlNameValue(): string {\n return this.controlName;\n }\n}","<div\n class=\"dropdown-container\"\n role=\"combobox\"\n [ngClass]=\"[\n dropDownClass,\n isDisabled ? 'disabled' : '',\n control?.touched && control?.invalid ? 'invalid' : '',\n (control?.touched && control?.valid && selectedItem && isFocused && !removeValidBorder) ? 'valid' : ''\n ]\"\n [ngStyle]=\"styleDropDown\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-haspopup]=\"'listbox'\"\n [attr.aria-controls]=\"isOpen ? ('dropdown-list-' + dataCy) : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy || null\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-disabled]=\"isDisabled\"\n [attr.aria-activedescendant]=\"activeDescendant\"\n [attr.data-cy]=\"dataCy\">\n \n <div\n class=\"dropdown-header\"\n matTooltipPosition=\"below\"\n matTooltipClass=\"custom-arrow-tooltip\"\n tabindex=\"0\"\n role=\"button\"\n [matTooltip]=\"tooltip\"\n [attr.aria-disabled]=\"isDisabled\"\n (click)=\"!isDisabled && toggleDropdown()\"\n (keydown.enter)=\"!isDisabled && toggleDropdown()\"\n (keydown.space)=\"!isDisabled && toggleDropdown(); $event.preventDefault()\"\n (keydown.arrowdown)=\"!isDisabled && onArrowDown($event)\"\n (keydown.arrowup)=\"!isDisabled && onArrowUp($event)\"\n (keydown.escape)=\"!isDisabled && closeDropdown()\">\n <span id=\"dropdown-label-{{dataCy}}\">{{ selectedItem?.nome ?? textHeader }}</span>\n <mat-icon aria-hidden=\"true\">{{ isOpen ? 'expand_less' : 'expand_more' }}</mat-icon>\n </div>\n\n @if (isOpen) {\n <ul \n class=\"dropdown-list\" \n role=\"listbox\"\n [id]=\"'dropdown-list-' + dataCy\"\n [ngClass]=\"{ 'drop-up': dropDirection === 'up', 'dropdown-secundary': dropDownClass === 'dropdown-secundary' }\"\n [attr.aria-label]=\"listAriaLabel || 'Opções'\"\n [attr.aria-labelledby]=\"'dropdown-label-' + dataCy\">\n \n\n <li class=\"dropdown-search\" role=\"none\">\n <input \n type=\"text\" \n placeholder=\"Buscar por código ou nome...\" \n role=\"searchbox\"\n aria-label=\"Buscar opções\"\n [formControl]=\"searchControl\"\n (keydown.arrowdown)=\"onArrowDown($event)\"\n (keydown.arrowup)=\"onArrowUp($event)\"\n (keydown.enter)=\"onSearchEnter($event)\"\n (keydown.escape)=\"closeDropdown()\" />\n </li>\n \n\n @for (item of filteredOptions; track $index) { \n @if(item && item.nome) {\n <li\n class=\"dropdown-item\"\n role=\"option\"\n [ngClass]=\"{\n 'icon-right': item.iconPosition === 'right',\n 'selected': item === selectedItem,\n 'focused': $index === focusedIndex\n }\"\n [attr.id]=\"'option-' + dataCy + '-' + $index\"\n [attr.aria-selected]=\"item === selectedItem\"\n [attr.tabindex]=\"$index === focusedIndex ? 0 : -1\"\n [attr.data-cy]=\"item.dataCy\"\n (click)=\"selectItem(item)\"\n (keydown.enter)=\"selectItem(item)\"\n (keydown.space)=\"selectItem(item); $event.preventDefault()\"\n (mouseenter)=\"focusedIndex = $index\">\n @if (item.icon && item.iconPosition !== 'right') {\n <mat-icon class=\"dropdown-icon\" aria-hidden=\"true\">{{ item.icon }}</mat-icon>\n } \n <span>{{ item.nome }}</span>\n @if (item.icon && item.iconPosition === 'right') {\n <mat-icon class=\"dropdown-icon\" aria-hidden=\"true\">{{ item.icon }}</mat-icon>\n }\n </li>\n } \n }\n </ul>\n }\n \n @if (control?.touched && control?.invalid && errorText) {\n <div class=\"message-error\">{{ errorText }}</div>\n }\n</div>","import { Component, inject, Input, Signal } from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\n\nexport interface INavContent {\n title: string;\n links: INavLink[];\n permissions?: string[];\n directRoute?: boolean;\n}\nexport interface INavLink {\n text: string;\n url: string;\n disabled?: boolean;\n isValidationRequired?: boolean;\n dataCy?: string;\n directRoute?: boolean;\n}\n\n@Component({\n standalone: true,\n selector: \"cao-links-button\",\n templateUrl: \"./links-button.html\",\n styleUrl: \"./links-button.css\",\n})\nexport class LinksButton {\n @Input({ required: true }) navContent!: Signal<INavContent>;\n router = inject(Router);\n route = inject(ActivatedRoute);\n\n isValidationRequired(link: INavLink) {\n if (link.disabled) {\n return;\n }\n link.directRoute ? this.directRoute(link.url) : this.navigateTo(link.url);\n }\n\n private navigateTo(url: string) {\n this.router.navigate([url], { relativeTo: this.route });\n }\n\n private directRoute(url: string) {\n this.router.navigate([url]);\n }\n\n}\n","<div class=\"links-info\">\n @if (navContent()) {\n <h2>{{ navContent().title }}</h2>\n <div class=\"links\">\n @for (link of navContent().links; track $index) {\n <div\n class=\"link\"\n role=\"button\"\n tabindex=\"0\"\n [tabIndex]=\"link.disabled ? -1 : 0\"\n [class.disabled]=\"link.disabled\"\n [attr.data-cy]=\"link.dataCy\"\n [attr.aria-disabled]=\"link.disabled\"\n (click)=\"isValidationRequired(link)\"\n (keydown.enter)=\"isValidationRequired(link)\"\n (keydown.space)=\"isValidationRequired(link); $event.preventDefault()\"\n >\n {{ link.text }}\n </div>\n }\n </div>\n }\n</div>","import { CommonModule } from \"@angular/common\";\nimport { Component, Input } from \"@angular/core\";\n\n@Component({\n selector: \"cao-footer\",\n templateUrl: \"./footer.html\",\n styleUrl: \"./footer.css\",\n imports: [ CommonModule ]\n})\nexport class Footer {\n currentYear: number = new Date().getFullYear();\n @Input() currentRoute?:string;\n @Input() footerText?:string;\n @Input() isFixed = true;\n}\n","<footer class=\"footer-element\" [class.fixed]=\"isFixed\">\n <div class=\"flex col\">\n <ng-content />\n @if(footerText){\n <ul class=\"footer-end\">\n <li>{{ footerText }} © {{ currentYear }}</li>\n </ul>\n }\n </div>\n</footer>\n","import { OverlayModule } from \"@angular/cdk/overlay\";\nimport { NgModule } from \"@angular/core\";\nimport { MatAutocompleteModule } from \"@angular/material/autocomplete\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatCardModule } from \"@angular/material/card\";\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\nimport { MatChipsModule } from \"@angular/material/chips\";\nimport { MatNativeDateModule , MAT_DATE_LOCALE } from \"@angular/material/core\";\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\nimport { MatDialogModule } from \"@angular/material/dialog\";\nimport { MatDividerModule } from \"@angular/material/divider\";\nimport { MatExpansionModule } from \"@angular/material/expansion\";\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatInputModule } from \"@angular/material/input\";\nimport { MatListModule } from \"@angular/material/list\";\nimport { MatMenuModule } from \"@angular/material/menu\";\nimport { MatPaginatorModule } from \"@angular/material/paginator\";\nimport { MatProgressBarModule } from \"@angular/material/progress-bar\";\nimport { MatProgressSpinnerModule } from \"@angular/material/progress-spinner\";\nimport { MatRadioModule } from \"@angular/material/radio\";\nimport { MatSelectModule } from \"@angular/material/select\";\nimport { MatSidenavModule } from \"@angular/material/sidenav\";\nimport { MatSlideToggleModule } from \"@angular/material/slide-toggle\";\nimport { MatSliderModule } from \"@angular/material/slider\";\nimport { MatSnackBarModule } from \"@angular/material/snack-bar\";\nimport { MatSortModule } from \"@angular/material/sort\";\nimport { MatTableModule } from \"@angular/material/table\";\nimport { MatTabsModule } from \"@angular/material/tabs\";\nimport { MatTimepickerModule } from \"@angular/material/timepicker\";\nimport { MatToolbarModule } from \"@angular/material/toolbar\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\nimport { MatTreeModule } from \"@angular/material/tree\";\n\n\nconst modules = [\n OverlayModule,\n MatSnackBarModule,\n MatAutocompleteModule,\n MatButtonModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatDatepickerModule,\n MatDialogModule,\n MatDividerModule,\n MatExpansionModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatMenuModule,\n MatNativeDateModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n MatPaginatorModule,\n MatRadioModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatSortModule,\n MatSelectModule,\n MatTableModule,\n MatTabsModule,\n MatTooltipModule,\n MatSidenavModule,\n MatListModule,\n MatToolbarModule,\n MatTreeModule,\n MatTimepickerModule\n];\n@NgModule({\n imports: [modules],\n exports: [modules],\n providers: [{ provide: MAT_DATE_LOCALE, useValue: \"pt-BR\" }],\n})\nexport class MaterialModule {}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { PageEvent } from '@angular/material/paginator';\n\nimport { MaterialModule } from '../../../material.module';\n\n@Component({\n selector: 'cao-paginator',\n imports: [MaterialModule],\n templateUrl: './paginator.html',\n styleUrl: './paginator.css',\n})\nexport class Paginator {\n @Input() totalItems = 0;\n @Input() pageSize = 10;\n @Input() currentPage = 1;\n @Input() pageSizeOptions: number[] = [5, 10, 20, 50];\n @Input() customClass = \"\";\n @Input() showFirstLastButtons = true;\n\n @Output() readonly pageEvent = new EventEmitter<PageEvent>();\n\n onPageEvent(event: PageEvent): void {\n this.pageEvent.emit(event)\n }\n}\n","<mat-paginator\n #paginator\n aria-label=\"Select page\"\n [length]=\"totalItems\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [pageIndex]=\"currentPage - 1\"\n [hidePageSize]=\"false\"\n [showFirstLastButtons]=\"showFirstLastButtons\"\n (page)=\"onPageEvent($event)\" />","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { DateAdapter } from '@angular/material/core';\nimport { MatTimepickerOption } from '@angular/material/timepicker';\n\nimport { MaterialModule } from '../../../material.module';\n\n@Component({\n selector: 'cao-time-picker',\n imports: [ MaterialModule, CommonModule, ReactiveFormsModule, ],\n templateUrl: './time-picker.html',\n styleUrl: './time-picker.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class TimePicker {\n @Input() control: FormControl<Date | null> = new FormControl<Date | null>(null);\n @Input() isDisabled = false;\n @Input() dataCy?: string;\n @Input() set min(v: string) {\n this._min = v;\n this.minInNumber = this.convertStringInNumber(v)\n this.customOptions = this.generateTimeOptions().filter((option) => option.label >= this._min);\n }\n @Input() set max(v: string) {\n this._max = v;\n this.maxInNumber = this.convertStringInNumber(v)\n this.customOptions = this.generateTimeOptions().filter((option) => option.label <= this._max);\n }\n\n minInNumber = 7;\n maxInNumber = 23;\n\n @Output() readonly timeChange = new EventEmitter<Date>();\n\n private _min = \"07:00\";\n private _max = \"23:00\";\n\n customOptions: MatTimepickerOption<Date>[] = this.generateTimeOptions();\n\n constructor(private _adapter: DateAdapter<any>) {\n this._adapter.setLocale(\"pt-BR\");\n }\n\n get errorText(): string | null {\n if (!this.control) {return null;}\n\n if (this.control.hasError(\"required\") || (this.control.touched && !this.control.value)) {\n return \"*Campo obrigatório\";\n }\n if (this.control.hasError(\"quarterHour\") && this.control.touched) {\n return \"Formato inválido\";\n }\n return null;\n }\n\n private convertStringInNumber(hour: string): number{\n const explodedHour = parseInt(hour.split(\":\")[0])\n if(typeof explodedHour !== 'number'){\n return explodedHour\n }\n return explodedHour\n }\n\n private generateTimeOptions(): MatTimepickerOption<Date>[] {\n const options: MatTimepickerOption<Date>[] = [];\n const baseDate = new Date(2025, 0, 1);\n\n for (let hour = this.minInNumber; hour <= this.maxInNumber; hour++) {\n for (let minute = 0; minute < 60; minute += 15) {\n if (hour === this.maxInNumber && minute > 0) {continue;}\n const date = new Date(baseDate);\n date.setHours(hour, minute, 0);\n const label = `${hour.toString().padStart(2, \"0\")}:${minute.toString().padStart(2, \"0\")}`;\n options.push({ label, value: date });\n }\n }\n\n return options;\n }\n\n updateTimeOptions(options: MatTimepickerOption<Date>[]): void {\n this.customOptions = options;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n}\n","<div class=\"time-picker-wrapper\">\n <mat-form-field\n class=\"custom-timepicker\"\n [ngClass]=\"{\n 'invalid': control?.touched && control?.invalid,\n 'valid': control?.touched && control?.valid\n }\">\n <input\n matInput\n placeholder=\"00:00\"\n [formControl]=\"control\"\n [matTimepicker]=\"picker\"\n [min]=\"min\"\n [max]=\"max\"\n [disabled]=\"isDisabled\"\n [attr.data-cy]=\"dataCy\"\n (blur)=\"control?.markAsTouched()\" />\n <mat-timepicker-toggle matSuffix [for]=\"picker\" />\n <mat-timepicker #picker [options]=\"customOptions\" (selected)=\"timeChange.emit($event.value)\" />\n </mat-form-field>\n</div>\n","import { EventEmitter, Injectable, Output } from \"@angular/core\";\n\nimport { Subject, Observable } from \"rxjs\";\n\nimport { IModal, ModalType } from \"./base-modal.interface\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BaseModalService {\n constructor() { }\n @Output() readonly toggleModalEvent = new EventEmitter<IModal>();\n @Output() readonly closeAllModalsEvent = new EventEmitter<boolean>();\n @Output() readonly openModal = new EventEmitter<IModal>();\n\n private modalResultSubject = new Subject<any>();\n\n emitModalResult(result: any) {\n this.modalResultSubject.next(result);\n }\n\n onModalResult(): Observable<any> {\n return this.modalResultSubject.asObservable();\n }\n\n toggleModal(modalInfo: IModal) {\n this.toggleModalEvent.emit(modalInfo);\n }\n\n closeAllModals() {\n this.closeAllModalsEvent.emit(true);\n }\n\n showModal(_selectedModal: ModalType, data?: any) {\n this.closeAllModals();\n const modalInfo: IModal = {\n type: _selectedModal,\n data: data,\n status: true,\n };\n this.openModal.emit(modalInfo);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, inject, Input } from '@angular/core';\n\nimport { ModalTypeClass, ModalTypeSize } from './base-modal.interface';\nimport { BaseModalService } from './base-modal.service';\n\n@Component({\n selector: 'cao-modal',\n imports: [CommonModule],\n templateUrl: './base-modal.html',\n styleUrl: './base-modal.css',\n})\nexport class BaseModal<T> {\n @Input() showModal = false;\n @Input() title = \"\";\n @Input() data!: T;\n @Input() modalTypeClass: ModalTypeClass = \"default\";\n @Input() modalClass = \"modal-default\";\n @Input() modalSize: ModalTypeSize = \"w-70\";\n @Input() closeOnOverlayClick = false;\n\n protected modalService = inject(BaseModalService);\n\n closeModals() { }\n\n closeModalsWithoutDialog() {\n this.modalService.closeAllModals();\n }\n\n onOverlayClick() {\n if (this.closeOnOverlayClick) {\n this.closeModals();\n }\n }\n}\n","<div aria-hidden=\"true\" class=\"modal\" tabIndex=\"0\" [class.show]=\"showModal\" (keydown)=\"onOverlayClick()\"\n (click)=\"onOverlayClick()\">\n <div aria-hidden=\"true\" class=\"modal-dialog\" tabIndex=\"1\" [ngClass]=\"[modalSize, modalClass]\"\n (keydown)=\"$event.stopPropagation()\" (click)=\"$event.stopPropagation()\">\n <ng-content />\n </div>\n</div>","import { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\nimport { DialogType, IDialogConfig } from './base-dialog.interface';\n\n@Component({\n selector: 'cao-dialog',\n imports: [CommonModule, NgOptimizedImage],\n templateUrl: './base-dialog.html',\n styleUrl: './base-dialog.css',\n})\nexport class BaseDialog {\n @Input() config!: IDialogConfig;\n\n closeDialog: () => void = this.noop;\n\n protected iconPaths: Record<DialogType, string> = {\n success: \"https://placehold.co/600x400\",\n error: \"https://placehold.co/600x400\",\n info: \"https://placehold.co/600x400\",\n warning: \"https://placehold.co/600x400\",\n };\n\n private noop(): void {\n return\n }\n\n getIconPath(): string {\n return this.iconPaths[this.config.type];\n }\n\n handleConfirm(): void {\n this.config.onConfirm?.();\n this.closeDialog();\n }\n\n handleCancel(): void {\n this.config.onCancel?.();\n this.closeDialog();\n }\n}","\n<div class=\"dialog-container\">\n <div class=\"dialog-content\">\n <img alt=\"Logo\" class=\"logo\" [fill]=\"true\" [ngSrc]=\"config.logoIcon ?? ''\" />\n <div class=\"alert-wrapper\">\n <div class=\"text-content\" [ngClass]=\"config.type\">\n <div class=\"title\">{{ config.title }}</div>\n <div class=\"message\">{{ config.message }}</div>\n <div class=\"button-container\">\n @if (config.cancelButtonText) {\n <button\n type=\"button\"\n class=\"cancel-button\"\n [attr.data-cy]=\"config.cancelButtonText\"\n (keydown)=\"handleCancel()\"\n (click)=\"handleCancel()\">\n {{ config.cancelButtonText }}\n </button>\n } @if (config.confirmButtonText) {\n <button\n type=\"button\"\n class=\"confirm-button\"\n [ngClass]=\"config.type\"\n [attr.data-cy]=\"config.confirmButtonText\"\n (click)=\"handleConfirm()\"\n (keydown)=\"handleConfirm()\"\n >\n {{ config.confirmButtonText }}\n </button>\n }\n </div>\n </div>\n <div class=\"icon-container\">\n <img alt=\"Dialog Icon\" class=\"alert-icon\" [fill]=\"true\" [ngSrc]=\"getIconPath()\" />\n </div>\n </div>\n </div>\n</div>\n","import { Overlay, OverlayRef } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { Injectable } from \"@angular/core\";\n\nimport { BaseDialog } from \"./base-dialog\";\nimport { IDialogConfig } from \"./base-dialog.interface\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BaseDialogService {\n constructor(private overlay: Overlay) { }\n\n open(config: IDialogConfig): OverlayRef {\n const overlayRef = this.overlay.create({\n hasBackdrop: true,\n positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),\n scrollStrategy: this.overlay.scrollStrategies.block(),\n backdropClass: \"dialog-backdrop\",\n });\n\n const dialogPortal = new ComponentPortal(this.generateComponentPortal());\n const componentRef = overlayRef.attach(dialogPortal);\n\n componentRef.instance.config = config;\n\n componentRef.instance.closeDialog = () => {\n overlayRef.dispose();\n };\n\n return overlayRef;\n }\n\n generateComponentPortal(): typeof BaseDialog{\n return BaseDialog;\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { Subject } from \"rxjs\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BaseFilterTableService {\n private filterSubject = new Subject<string>();\n\n filter$ = this.filterSubject.asObservable();\n\n updateFilter(filterValue: string) {\n this.filterSubject.next(filterValue);\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { BehaviorSubject, Observable, map } from \"rxjs\";\n\nimport { ITableConfig, IColumnConfig } from \"./base-table.interface\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BaseTableService {\n private tableConfigSubject = new BehaviorSubject<ITableConfig | null>(null);\n private dataSubject = new BehaviorSubject<any[]>([]);\n private columnsSubject = new BehaviorSubject<IColumnConfig[]>([]);\n\n tableConfig$: Observable<ITableConfig | null> = this.tableConfigSubject.asObservable();\n columns$: Observable<IColumnConfig[]> = this.columnsSubject.asObservable();\n data$: Observable<any[]> = this.dataSubject.asObservable();\n\n visibleColumns$: Observable<string[]> = this.columns$.pipe(\n map((columns) =>\n columns.filter((col) => col.visible).map((col) => col.key || col.element || \"\")\n )\n );\n\n createTable(data: any[], columns?: IColumnConfig[], customConfig?: Partial<ITableConfig>): void {\n const tableConfig: ITableConfig = {\n columns: columns ? columns.map((col) => col.key || col.element || \"\") : [],\n data,\n columnData: {},\n result: {\n noData: \"Não há dados para o filtro selecionado.\",\n defaultMessage: \"Nenhum resultado encontrado.\",\n },\n ...customConfig,\n };\n\n if (data.length > 0 && columns) {\n const columnData: Record<string, IColumnConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = {\n ...col,\n type: col.type || this.inferColumnType(data[0][col.key || col.element || \"\"]),\n visible: col.visible !== undefined ? col.visible : true,\n };\n });\n tableConfig.columnData = columnData;\n } else if (data.length === 0 && columns) {\n const columnData: Record<string, IColumnConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = {\n ...col,\n type: col.type || \"STRING\",\n visible: col.visible !== undefined ? col.visible : true,\n };\n });\n tableConfig.columnData = columnData;\n }\n\n this.tableConfigSubject.next(tableConfig);\n this.columnsSubject.next(columns || []);\n this.dataSubject.next(data);\n }\n\n private inferColumnType(value: any): IColumnConfig[\"type\"] {\n if (value === null || value === undefined) { return \"STRING\"; }\n switch (typeof value) {\n case \"boolean\":\n return \"BOOLEAN\";\n case \"number\":\n return \"NUMBER\";\n case \"string\":\n return this.isValidDate(value) ? \"DATE\" : \"STRING\";\n default:\n return \"STRING\";\n }\n }\n\n private isValidDate(value: string): boolean {\n return !isNaN(Date.parse(value));\n }\n\n toggleColumnVisibility(columnKey: string): void {\n const currentColumns = this.columnsSubject.value;\n const updatedColumns = currentColumns.map((col) =>\n col.key === columnKey || col.element === columnKey ? { ...col, visible: !col.visible } : col\n );\n\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n const updatedColumnData = { ...currentConfig.columnData };\n const columnToUpdate = Object.keys(updatedColumnData).find((key) => key === columnKey);\n\n if (columnToUpdate) {\n updatedColumnData[columnToUpdate].visible = !updatedColumnData[columnToUpdate].visible;\n\n this.tableConfigSubject.next({\n ...currentConfig,\n columnData: updatedColumnData,\n });\n }\n }\n\n this.columnsSubject.next(updatedColumns);\n }\n\n getVisibleColumns(): IColumnConfig[] {\n return this.columnsSubject.value.filter((col) => col.visible);\n }\n\n setColumns(columns: IColumnConfig[]): void {\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n const columnData: Record<string, IColumnConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = col;\n });\n\n this.tableConfigSubject.next({\n ...currentConfig,\n columns: columns.map((col) => col.key || col.element || \"\"),\n columnData,\n });\n }\n this.columnsSubject.next(columns);\n }\n\n setData(data: any[]): void {\n this.dataSubject.next(data);\n\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n this.tableConfigSubject.next({\n ...currentConfig,\n data,\n });\n }\n }\n\n updateTableData(data: any[]): void {\n this.setData(data);\n }\n}","import { LiveAnnouncer } from \"@angular/cdk/a11y\";\nimport { SelectionModel } from \"@angular/cdk/collections\";\nimport { CommonModule, NgOptimizedImage } from \"@angular/common\";\nimport {\n Component,\n OnInit,\n AfterViewInit,\n OnDestroy,\n Input,\n ViewChild,\n Output,\n EventEmitter,\n inject\n} from \"@angular/core\";\nimport { MatPaginator, MatPaginatorIntl, PageEvent } from \"@angular/material/paginator\";\nimport { MatSort, Sort } from \"@angular/material/sort\";\nimport { MatTableDataSource } from \"@angular/material/table\";\n\nimport { Subscription } from \"rxjs\";\n\n\nimport { BaseFilterTableService } from \"./base-filter-table.service\";\nimport { IColumnConfig, ITableConfig } from \"./base-table.interface\";\nimport { BaseTableService } from \"./base-table.service\";\nimport { MaterialModule } from \"../../../material.module\";\n\n\nexport function getPtBrPaginatorIntlBaseTable(): MatPaginatorIntl {\n const paginatorIntl = new MatPaginatorIntl();\n paginatorIntl.itemsPerPageLabel = \"Itens por página:\";\n paginatorIntl.nextPageLabel = \"Próxima página\";\n paginatorIntl.previousPageLabel = \"Página anterior\";\n paginatorIntl.firstPageLabel = \"Primeira página\";\n paginatorIntl.lastPageLabel = \"Última página\";\n paginatorIntl.getRangeLabel = (page: number, pageSize: number, length: number) => {\n if (length === 0 || pageSize === 0) {\n return `0 de ${length}`;\n }\n const startIndex = page * pageSize;\n const endIndex = Math.min(startIndex + pageSize, length);\n return `${startIndex + 1} – ${endIndex} de ${length}`;\n };\n return paginatorIntl;\n}\n\n\n@Component({\n selector: \"cao-table\",\n templateUrl: \"./base-table.html\",\n styleUrls: [\"./base-table.css\"],\n imports: [CommonModule, MaterialModule, NgOptimizedImage],\n providers: [{ provide: MatPaginatorIntl, useValue: getPtBrPaginatorIntlBaseTable() }],\n})\nexport class BaseTable implements OnInit, AfterViewInit, OnDestroy {\n @Input() customClass = \"\";\n @Input() pageSizeOptions: number[] = [5, 10, 20, 50];\n @Input() showFirstLastButtons = true;\n @Input() isPaginatedByServer = false;\n\n @Output() readonly pageChanged = new EventEmitter<number>();\n @Output() readonly pageSizeChanged = new EventEmitter<number>();\n @Output() readonly firstPageClicked = new EventEmitter<void>();\n @Output() readonly lastPageClicked = new EventEmitter<void>();\n @Output() readonly selectionChanged = new EventEmitter<any[]>();\n @Output() readonly pageEvent = new EventEmitter<PageEvent>();\n\n dataSource = new MatTableDataSource<any>([]);\n selection = new SelectionModel<any>(true, []);\n allColumns: string[] = [];\n displayedColumns: string[] = [];\n filterValue = \"\";\n private configSubscription: Subscription | null = null;\n private visibleColumnsSubscription: Subscription | null = null;\n private dataSubscription: Subscription | null = null;\n private filterSubscription: Subscription | null = null;\n tableConfig: ITableConfig | null = null;\n\n @ViewChild(MatSort) sort!: MatSort;\n @ViewChild(MatPaginator) paginator!: MatPaginator;\n\n totalItems = 0;\n pageSize = 10;\n currentPage = 1;\n private previousPage = 1;\n\n getAllColumns(): string[] {\n return [\"select\", ...this.displayedColumns];\n }\n\n protected tableService = inject(BaseTableService)\n protected liveAnnouncer = inject(LiveAnnouncer)\n protected filterTableService = inject(BaseFilterTableService)\n\n constructor(\n ) {\n this.initializeSortingAccessor();\n this.initializeFilterPredicate();\n }\n\n ngOnInit(): void {\n this.configSubscription = this.tableService.tableConfig$.subscribe((config) => {\n if (config) {\n this.tableConfig = config;\n this.allColumns = config.columns;\n }\n });\n this.visibleColumnsSubscription = this.tableService.visibleColumns$.subscribe(\n (visibleColumns) => {\n this.displayedColumns = visibleColumns.filter((col) => col !== \"select\");\n }\n );\n this.dataSubscription = this.tableService.data$.subscribe((data) => {\n this.dataSource.data = data;\n this.updateTotalItems();\n });\n this.filterSubscription = this.filterTableService.filter$.subscribe((filterValue) => {\n this.filterValue = filterValue;\n this.applyFilter();\n });\n }\n\n ngAfterViewInit(): void {\n this.dataSource.sort = this.sort;\n\n // Connect paginator if available\n setTimeout(() => {\n if (this.paginator) {\n this.dataSource.paginator = this.paginator;\n this.paginator.pageIndex = this.currentPage - 1;\n this.paginator.pageSize = this.pageSize;\n this.paginator.showFirstLastButtons = this.showFirstLastButtons;\n }\n });\n this.selection.changed.subscribe(() => {\n this.selectionChanged.emit(this.selection.selected);\n });\n }\n\n ngOnDestroy(): void {\n this.configSubscription?.unsubscribe();\n this.visibleColumnsSubscription?.unsubscribe();\n this.dataSubscription?.unsubscribe();\n this.filterSubscription?.unsubscribe();\n }\n\n initializeSortingAccessor(): void {\n this.dataSource.sortingDataAccessor = (item, property) => {\n const value = item[property];\n if (typeof value === \"string\") {\n return value.toLowerCase();\n } else if (typeof value === \"number\") {\n return value;\n } else if (typeof value === \"boolean\") {\n return value ? 1 : 0;\n } else if (value instanceof Date) {\n return value.valueOf();\n } else if (value === null) {\n return \"\";\n } else if (value === undefined) {\n return undefined;\n } else if (typeof value === \"object\") {\n return value.toString();\n }\n return value;\n };\n }\n\n initializeFilterPredicate(): void {\n this.dataSource.filterPredicate = (data: any, filter: string) => {\n const searchTerms = filter.trim().toLowerCase();\n if (!searchTerms) {\n return true;\n }\n const dataStr = Object.keys(data).reduce((currentTerm: string, key: string) => {\n const value = data[key];\n return (\n currentTerm +\n (value !== null && value !== undefined ? value.toString().toLowerCase() : \"\")\n );\n }, \"\");\n return dataStr.indexOf(searchTerms) !== -1;\n };\n }\n\n applyFilter(): void {\n const normalizedFilter = this.filterValue.trim().toLowerCase();\n this.dataSource.filter = normalizedFilter;\n }\n\n toggleColumnVisibility(columnKey: string): void {\n this.tableService.toggleColumnVisibility(columnKey);\n }\n\n isColumnVisible(column: string): boolean {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return true;\n }\n return this.tableConfig.columnData[column].visible !== false;\n }\n\n getColumnHeader(column: string): string {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return column;\n }\n return this.tableConfig.columnData[column].header || column;\n }\n\n getColumnType(column: string): IColumnConfig[\"type\"] {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return \"STRING\";\n }\n return this.tableConfig.columnData[column].type || \"STRING\";\n }\n\n getColumnElement(column: string): string {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return column;\n }\n return this.tableConfig.columnData[column].element || column;\n }\n\n getColumnButtons(column: string): any[] {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return [];\n }\n return this.tableConfig.columnData[column].buttons || [];\n }\n\n isAllSelected(): boolean {\n if (\n !this.paginator ||\n !this.dataSource.filteredData ||\n this.dataSource.filteredData.length === 0\n ) {\n return false;\n }\n\n const startIndex = this.paginator.pageIndex * this.paginator.pageSize;\n const endIndex = Math.min(\n startIndex + this.paginator.pageSize,\n this.dataSource.filteredData.length\n );\n const currentPageData = this.dataSource.filteredData.slice(startIndex, endIndex);\n\n if (currentPageData.length === 0) {\n return false;\n }\n\n return currentPageData.every((row) => this.selection.isSelected(row));\n }\n\n toggleAllRows(): void {\n if (!this.paginator || !this.dataSource.filteredData) {\n return;\n }\n\n if (this.isAllSelected()) {\n this.selection.clear();\n } else {\n const startIndex = this.paginator.pageIndex * this.paginator.pageSize;\n const endIndex = Math.min(\n startIndex + this.paginator.pageSize,\n this.dataSource.filteredData.length\n );\n const currentPageData = this.dataSource.filteredData.slice(startIndex, endIndex);\n\n currentPageData.forEach((row) => this.selection.select(row));\n }\n }\n\n announceSortChange(sortState: Sort): void {\n if (sortState.direction) {\n this.liveAnnouncer.announce(\n `Ordenado ${sortState.direction === \"asc\" ? \"ascendente\" : \"descendente\"}`\n );\n } else {\n this.liveAnnouncer.announce(\"Ordenação removida\");\n }\n }\n\n trackByFn(index: number, item: any): any {\n return item;\n }\n\n onPageChanged(page: number): void {\n this.currentPage = page;\n this.pageChanged.emit(page);\n\n if (this.paginator && this.paginator.pageIndex !== page - 1) {\n this.paginator.pageIndex = page - 1;\n }\n }\n\n onPageSizeChanged(pageSize: number): void {\n this.pageSize = pageSize;\n this.pageSizeChanged.emit(pageSize);\n\n if (this.paginator && this.paginator.pageSize !== pageSize) {\n this.paginator.pageSize = pageSize;\n }\n }\n\n /**\n * Handle pagination events from Mat Paginator\n */\n onPageEvent(event: PageEvent): void {\n const newPage = event.pageIndex + 1;\n const isFirstPage = newPage === 1 && this.previousPage !== 1;\n const isLastPage =\n newPage === Math.ceil(this.totalItems / event.pageSize) && newPage !== this.previousPage;\n // Handle page size changes\n if (event.pageSize !== this.pageSize) {\n this.onPageSizeChanged(event.pageSize);\n }\n\n // Handle page changes\n if (newPage !== this.currentPage) {\n this.previousPage = this.currentPage; // Store previous page for first/last detection\n this.onPageChanged(newPage);\n\n // Emit specific events for first/last page navigation\n if (isFirstPage) {\n this.firstPageClicked.emit();\n this.liveAnnouncer.announce(\"Primeira página\");\n } else if (isLastPage) {\n this.lastPageClicked.emit();\n this.liveAnnouncer.announce(\"Última página\");\n }\n }\n\n this.pageEvent.emit(event)\n }\n\n /**\n * Navigate to first page programmatically\n */\n goToFirstPage(): void {\n if (this.currentPage !== 1) {\n this.onPageChanged(1);\n this.firstPageClicked.emit();\n this.liveAnnouncer.announce(\"Primeira página\");\n }\n }\n\n /**\n * Navigate to last page programmatically\n */\n goToLastPage(): void {\n const lastPage = Math.max(1, Math.ceil(this.totalItems / this.pageSize));\n if (this.currentPage !== lastPage) {\n this.onPageChanged(lastPage);\n this.lastPageClicked.emit();\n this.liveAnnouncer.announce(\"Última página\");\n }\n }\n\n /**\n * Update total items when data changes\n */\n updateTotalItems(): void {\n if (this.isPaginatedByServer) {\n return;\n }\n\n this.totalItems = this.dataSource.data.length;\n }\n}\n","<div class=\"table-container\" [ngClass]=\"customClass\">\n @if (tableConfig) {\n <div class=\"table-controls\">\n <mat-menu #menuColunas=\"matMenu\">\n @for (column of allColumns; track column) {\n <button\n mat-menu-item\n [type]=\"'button'\" (click)=\"toggleColumnVisibility(column)\">\n <mat-checkbox\n [attr.data-cy]=\"'checkbox-toggle-column-' + column\"\n [checked]=\"isColumnVisible(column)\">\n {{ getColumnHeader(column) }}\n </mat-checkbox>\n </button>\n }\n </mat-menu>\n </div>\n\n <table\n mat-table\n matSort\n class=\"mat-elevation-z8\"\n [dataSource]=\"dataSource\"\n (matSortChange)=\"announceSortChange($event)\">\n <ng-container matColumnDef=\"select\">\n <th *matHeaderCellDef mat-header-cell>\n <mat-checkbox\n data-cy=\"checkbox-select-all\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (change)=\"$event ? toggleAllRows() : null\" />\n </th>\n <td *matCellDef=\"let row\" mat-cell>\n <mat-checkbox\n [attr.data-cy]=\"'checkbox-select-row-' + row.id\"\n [checked]=\"selection.isSelected(row)\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection.toggle(row) : null\" />\n </td>\n </ng-container>\n\n @for (column of displayedColumns; track column) {\n <ng-container [matColumnDef]=\"column\">\n <th *matHeaderCellDef mat-header-cell [mat-sort-header]=\"column\">\n <span>{{ getColumnHeader(column) }}</span>\n <img\n alt=\"icone\"\n [ngSrc]=\"'.src/assets/svg/arrow-left-double.svg'\"\n [fill]=\"true\"\n [matMenuTriggerFor]=\"menuColunas\" />\n <mat-menu #menuColunas=\"matMenu\">\n @for (column of allColumns; track column) {\n <button\n mat-menu-item\n [type]=\"'button'\" (click)=\"toggleColumnVisibility(column)\">\n <mat-checkbox\n [attr.data-cy]=\"'checkbox-toggle-column-' + column\"\n [checked]=\"isColumnVisible(column)\">\n {{ getColumnHeader(column) }}\n </mat-checkbox>\n </button>\n }\n </mat-menu>\n </th>\n <td *matCellDef=\"let element\" mat-cell>\n @switch (getColumnType(column)) { @case ('STRING') {\n <span>{{ element[getColumnElement(column)] }}</span>\n } @case ('BOOLEAN') {\n <mat-checkbox\n disabled\n [attr.data-cy]=\"'checkbox-value-' + column + '-' + element.id\"\n [checked]=\"element[getColumnElement(column)]\" />\n } @case ('DATE') {\n <span>{{ element[getColumnElement(column)] | date:'mediumDate' }}</span>\n } @case ('NUMBER') {\n <span>{{ element[getColumnElement(column)] | number:'1.2-2' }}</span>\n } @case ('SINGLE_BUTTON') {\n <div>\n @for (btn of getColumnButtons(column); track btn) {\n <button\n mat-icon-button\n [type]=\"'button'\" [matTooltip]=\"btn.tooltip\" (click)=\"btn.onClick(element)\">\n <mat-icon>{{ btn.icon }}</mat-icon>\n </button>\n }\n </div>\n } @default {\n <span>{{ element[getColumnElement(column)] }}</span>\n } }\n </td>\n </ng-container>\n }\n\n <ng-container matColumnDef=\"footer\">\n <td *matFooterCellDef mat-footer-cell [attr.colspan]=\"displayedColumns.length + 1\">\n Total de Registros: {{ dataSource.data.length }}\n </td>\n </ng-container>\n\n <tr *matHeaderRowDef=\"getAllColumns()\" mat-header-row></tr>\n <tr\n *matRowDef=\"let row; columns: getAllColumns();\"\n mat-row\n (click)=\"selection.toggle(row)\"></tr>\n <tr *matFooterRowDef=\"['footer']\" mat-footer-row></tr>\n </table>\n }\n</div>\n\n<mat-paginator\n #paginator\n aria-label=\"Select page\"\n [length]=\"totalItems\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [pageIndex]=\"currentPage - 1\"\n [hidePageSize]=\"false\"\n [showFirstLastButtons]=\"showFirstLastButtons\"\n (page)=\"onPageEvent($event)\" />\n\n@if (!tableConfig || tableConfig.data.length === 0) {\n<div class=\"no-data-container\">\n <h2 class=\"no-data-title\">{{ tableConfig?.result?.noData || 'Não há dados disponíveis' }}</h2>\n <p class=\"no-data-message\"\n >{{ tableConfig?.result?.defaultMessage || 'Adicione alguns dados' }}</p\n >\n</div>\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { Subject } from \"rxjs\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BaseFilterTablePaginatedService {\n private filterSubject = new Subject<string>();\n\n filter$ = this.filterSubject.asObservable();\n\n updateFilter(filterValue: string) {\n this.filterSubject.next(filterValue);\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { BehaviorSubject, Observable } from \"rxjs\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BasePaginationService {\n private pageSubject = new BehaviorSubject<number>(1);\n private pageSizeSubject = new BehaviorSubject<number>(10);\n private totalItemsSubject = new BehaviorSubject<number>(0);\n\n public currentPage$: Observable<number> = this.pageSubject.asObservable();\n public pageSize$: Observable<number> = this.pageSizeSubject.asObservable();\n public totalItems$: Observable<number> = this.totalItemsSubject.asObservable();\n\n constructor() {}\n\n /**\n * Sets the current page number\n * @param page The page number to set\n */\n setPage(page: number): void {\n if (page !== this.pageSubject.value) {\n this.pageSubject.next(page);\n }\n }\n\n /**\n * Sets the page size\n * @param size The page size to set\n */\n setPageSize(size: number): void {\n if (size !== this.pageSizeSubject.value) {\n this.pageSizeSubject.next(size);\n }\n }\n\n /**\n * Sets the total number of items\n * @param total The total number of items\n */\n setTotalItems(total: number): void {\n if (total !== this.totalItemsSubject.value) {\n this.totalItemsSubject.next(total);\n }\n }\n\n /**\n * Gets the current page\n */\n getCurrentPage(): number {\n return this.pageSubject.value;\n }\n\n /**\n * Gets the current page size\n */\n getPageSize(): number {\n return this.pageSizeSubject.value;\n }\n\n /**\n * Gets the total number of items\n */\n getTotalItems(): number {\n return this.totalItemsSubject.value;\n }\n\n /**\n * Resets pagination to default values\n */\n reset(): void {\n this.pageSubject.next(1);\n this.pageSizeSubject.next(10);\n this.totalItemsSubject.next(0);\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { BehaviorSubject, Observable, map } from \"rxjs\";\n\nimport { IColumnPaginatedConfig, ITablePaginatedConfig } from \"./base-table-paginated.interface\";\n\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class TablePaginatedService {\n private tableConfigSubject = new BehaviorSubject<ITablePaginatedConfig | null>(null);\n private dataSubject = new BehaviorSubject<any[]>([]);\n private columnsSubject = new BehaviorSubject<IColumnPaginatedConfig[]>([]);\n\n tableConfig$: Observable<ITablePaginatedConfig | null> = this.tableConfigSubject.asObservable();\n columns$: Observable<IColumnPaginatedConfig[]> = this.columnsSubject.asObservable();\n data$: Observable<any[]> = this.dataSubject.asObservable();\n\n visibleColumns$: Observable<string[]> = this.columns$.pipe(\n map((columns) =>\n columns.filter((col) => col.visible).map((col) => col.key || col.element || \"\")\n )\n );\n\n createTable(data: any[], columns?: IColumnPaginatedConfig[], customConfig?: Partial<ITablePaginatedConfig>): void {\n const tableConfig: ITablePaginatedConfig = {\n columns: columns ? columns.map((col) => col.key || col.element || \"\") : [],\n data,\n columnData: {},\n result: {\n noData: \"Não há dados para o filtro selecionado.\",\n defaultMessage: \"Nenhum resultado encontrado.\",\n },\n ...customConfig,\n };\n\n if (data.length > 0 && columns) {\n const columnData: Record<string, IColumnPaginatedConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = {\n ...col,\n type: col.type || this.inferColumnType(data[0][col.key || col.element || \"\"]),\n visible: col.visible !== undefined ? col.visible : true,\n };\n });\n tableConfig.columnData = columnData;\n } else if (data.length === 0 && columns) {\n const columnData: Record<string, IColumnPaginatedConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = {\n ...col,\n type: col.type || \"STRING\",\n visible: col.visible !== undefined ? col.visible : true,\n };\n });\n tableConfig.columnData = columnData;\n }\n\n this.tableConfigSubject.next(tableConfig);\n this.columnsSubject.next(columns || []);\n this.dataSubject.next(data);\n }\n\n private inferColumnType(value: any): IColumnPaginatedConfig[\"type\"] {\n if (value === null || value === undefined) {return \"STRING\";}\n switch (typeof value) {\n case \"boolean\":\n return \"BOOLEAN\";\n case \"number\":\n return \"NUMBER\";\n case \"string\":\n return this.isValidDate(value) ? \"DATE\" : \"STRING\";\n default:\n return \"STRING\";\n }\n }\n\n private isValidDate(value: string): boolean {\n return !isNaN(Date.parse(value));\n }\n\n toggleColumnVisibility(columnKey: string): void {\n const currentColumns = this.columnsSubject.value;\n const updatedColumns = currentColumns.map((col) =>\n col.key === columnKey || col.element === columnKey ? { ...col, visible: !col.visible } : col\n );\n\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n const updatedColumnData = { ...currentConfig.columnData };\n const columnToUpdate = Object.keys(updatedColumnData).find((key) => key === columnKey);\n\n if (columnToUpdate) {\n updatedColumnData[columnToUpdate].visible = !updatedColumnData[columnToUpdate].visible;\n\n this.tableConfigSubject.next({\n ...currentConfig,\n columnData: updatedColumnData,\n });\n }\n }\n\n this.columnsSubject.next(updatedColumns);\n }\n\n getVisibleColumns(): IColumnPaginatedConfig[] {\n return this.columnsSubject.value.filter((col) => col.visible);\n }\n\n setColumns(columns: IColumnPaginatedConfig[]): void {\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n const columnData: Record<string, IColumnPaginatedConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = col;\n });\n\n this.tableConfigSubject.next({\n ...currentConfig,\n columns: columns.map((col) => col.key || col.element || \"\"),\n columnData,\n });\n }\n this.columnsSubject.next(columns);\n }\n\n setData(data: any[]): void {\n this.dataSubject.next(data);\n\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n this.tableConfigSubject.next({\n ...currentConfig,\n data,\n });\n }\n }\n\n updateTableData(data: any[]): void {\n this.setData(data);\n }\n}","import { LiveAnnouncer } from \"@angular/cdk/a11y\";\nimport { SelectionModel } from \"@angular/cdk/collections\";\nimport { CommonModule } from \"@angular/common\";\nimport {\n Component,\n ViewEncapsulation,\n OnInit,\n OnDestroy,\n Input,\n Output,\n EventEmitter,\n inject,\n ViewChild,\n} from \"@angular/core\";\nimport { MatPaginator, MatPaginatorIntl, PageEvent } from \"@angular/material/paginator\";\nimport { MatSort, Sort } from \"@angular/material/sort\";\nimport { MatTableDataSource } from \"@angular/material/table\";\n\nimport { Subscription } from \"rxjs\";\n\nimport { BaseFilterTablePaginatedService } from \"./base-filter-table-paginated.service\";\nimport { BasePaginationService } from \"./base-pagination.service\";\nimport { IColumnPaginatedConfig, ITablePaginatedConfig } from \"./base-table-paginated.interface\";\nimport { TablePaginatedService } from \"./base-table-paginated.service\";\nimport { MaterialModule } from \"../../../material.module\";\n\nexport function getPtBrPaginatorIntlBasePaginated(): MatPaginatorIntl {\n const paginatorIntl = new MatPaginatorIntl();\n paginatorIntl.itemsPerPageLabel = \"Itens por página:\";\n paginatorIntl.nextPageLabel = \"Próxima página\";\n paginatorIntl.previousPageLabel = \"Página anterior\";\n paginatorIntl.firstPageLabel = \"Primeira página\";\n paginatorIntl.lastPageLabel = \"Última página\";\n paginatorIntl.getRangeLabel = (page: number, pageSize: number, length: number) => {\n if (length === 0 || pageSize === 0) {\n return `0 de ${length}`;\n }\n const startIndex = page * pageSize;\n const endIndex = Math.min(startIndex + pageSize, length);\n return `${startIndex + 1} – ${endIndex} de ${length}`;\n };\n return paginatorIntl;\n}\n\n@Component({\n selector: \"cao-table-paginated\",\n templateUrl: \"./base-table-paginated.html\",\n styleUrl: \"./base-table-paginated.css\",\n encapsulation: ViewEncapsulation.None,\n imports: [CommonModule, MaterialModule],\n providers: [{ provide: MatPaginatorIntl, useValue: getPtBrPaginatorIntlBasePaginated() }],\n})\nexport class BaseTablePaginated implements OnInit, OnDestroy {\n private paginationSubscriptions: Subscription[] = [];\n @Input() getColumnCssClass?: (columnKey: string, value: any) => string | null;\n @Input() customClass = \"\";\n @Input() pageSizeOptions: number[] = [5, 10, 20, 50];\n @Input() showFirstLastButtons = true;\n\n @Output() readonly pageChanged = new EventEmitter<number>();\n @Output() readonly pageSizeChanged = new EventEmitter<number>();\n @Output() readonly firstPageClicked = new EventEmitter<void>();\n @Output() readonly lastPageClicked = new EventEmitter<void>();\n @Output() readonly selectionChanged = new EventEmitter<any[]>();\n @Output() readonly pageEvent = new EventEmitter<PageEvent>();\n @Output() readonly rowClicked = new EventEmitter<any>();\n\n\n dataSource = new MatTableDataSource<any>([]);\n selection = new SelectionModel<any>(true, []);\n allColumns: string[] = [];\n displayedColumns: string[] = [];\n filterValue = \"\";\n private configSubscription: Subscription | null = null;\n private visibleColumnsSubscription: Subscription | null = null;\n private dataSubscription: Subscription | null = null;\n private filterSubscription: Subscription | null = null;\n tableConfig: ITablePaginatedConfig | null = null;\n\n @ViewChild(MatSort) sort!: MatSort;\n @ViewChild(MatPaginator) paginator!: MatPaginator;\n\n totalItems = 0;\n pageSize = 10;\n currentPage = 1;\n private previousPage = 1;\n\n\n protected paginationService = inject(BasePaginationService);\n protected tableService = inject(TablePaginatedService);\n protected liveAnnouncer = inject(LiveAnnouncer);\n protected filterTableService = inject(BaseFilterTablePaginatedService);\n\n\n constructor(\n ) {\n this.initializeSortingAccessor();\n this.initializeFilterPredicate();\n }\n\n onPageChanged(page: number): void {\n this.currentPage = page;\n this.pageChanged.emit(page);\n\n if (this.paginator && this.paginator.pageIndex !== page - 1) {\n this.paginator.pageIndex = page - 1;\n }\n }\n\n ngOnInit(): void {\n this.configSubscription = this.tableService.tableConfig$.subscribe((config) => {\n if (config) {\n this.tableConfig = config;\n this.allColumns = config.columns;\n }\n });\n this.visibleColumnsSubscription = this.tableService.visibleColumns$.subscribe(\n (visibleColumns) => {\n this.displayedColumns = visibleColumns.filter((col) => col !== \"select\");\n }\n );\n this.dataSubscription = this.tableService.data$.subscribe((data) => {\n this.dataSource.data = data;\n this.updateTotalItems();\n });\n this.filterSubscription = this.filterTableService.filter$.subscribe((filterValue) => {\n this.filterValue = filterValue;\n this.applyFilter();\n });\n\n this.paginationSubscriptions.push(\n this.paginationService.currentPage$.subscribe((page) => {\n if (this.currentPage !== page) {\n this.onPageChanged(page);\n }\n }),\n\n this.paginationService.pageSize$.subscribe((size) => {\n if (this.pageSize !== size) {\n this.onPageSizeChanged(size);\n }\n })\n );\n }\n\n ngOnDestroy(): void {\n this.configSubscription?.unsubscribe();\n this.visibleColumnsSubscription?.unsubscribe();\n this.dataSubscription?.unsubscribe();\n this.filterSubscription?.unsubscribe();\n this.paginationSubscriptions.forEach((sub) => sub.unsubscribe());\n }\n\n updateTotalItems(newTotalItens?: number): void {\n this.totalItems = newTotalItens ?? this.totalItems;\n this.paginationService.setTotalItems(this.totalItems);\n\n const lastPage = this.pageSize > 0 ? Math.ceil(this.totalItems / this.pageSize) : 1;\n const lastValidPage = lastPage > 0 ? lastPage : 1;\n\n if (this.currentPage > lastValidPage) {\n this.paginationService.setPage(1);\n }\n }\n\n onPageSizeChanged(pageSize: number): void {\n this.pageSize = pageSize;\n this.pageSizeChanged.emit(pageSize);\n\n if (this.paginator && this.paginator.pageSize !== pageSize) {\n this.paginator.pageSize = pageSize;\n }\n }\n\n getColumnHeader(column: string): string {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return column;\n }\n return this.tableConfig.columnData[column].header || column;\n }\n\n getColumnElement(column: string): string {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return column;\n }\n return this.tableConfig.columnData[column].element || column;\n }\n\n getColumnType(column: string): IColumnPaginatedConfig[\"type\"] {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return \"STRING\";\n }\n return this.tableConfig.columnData[column].type || \"STRING\";\n }\n\n announceSortChange(sortState: Sort): void {\n if (sortState.direction) {\n this.liveAnnouncer.announce(\n `Ordenado ${sortState.direction === \"asc\" ? \"ascendente\" : \"descendente\"}`\n );\n } else {\n this.liveAnnouncer.announce(\"Ordenação removida\");\n }\n }\n\n handlePageChange(event: PageEvent): void {\n this.pageSize = event.pageSize;\n this.paginationService.setPageSize(event.pageSize);\n this.pageChanged.emit(event.pageIndex);\n }\n\n applyFilter(): void {\n const normalizedFilter = this.filterValue.trim().toLowerCase();\n this.dataSource.filter = normalizedFilter;\n }\n\n initializeSortingAccessor(): void {\n this.dataSource.sortingDataAccessor = (item, property) => {\n const value = item[property];\n if (typeof value === \"string\") {\n return value.toLowerCase();\n } else if (typeof value === \"number\") {\n return value;\n } else if (typeof value === \"boolean\") {\n return value ? 1 : 0;\n } else if (value instanceof Date) {\n return value.valueOf();\n } else if (value === null) {\n return \"\";\n } else if (value === undefined) {\n return undefined;\n } else if (typeof value === \"object\") {\n return value.toString();\n }\n return value;\n };\n }\n\n initializeFilterPredicate(): void {\n this.dataSource.filterPredicate = (data: any, filter: string) => {\n const searchTerms = filter.trim().toLowerCase();\n if (!searchTerms) {\n return true;\n }\n const dataStr = Object.keys(data).reduce((currentTerm: string, key: string) => {\n const value = data[key];\n return (\n currentTerm +\n (value !== null && value !== undefined ? value.toString().toLowerCase() : \"\")\n );\n }, \"\");\n return dataStr.indexOf(searchTerms) !== -1;\n };\n }\n\n onRowClick(row: any): void {\n this.rowClicked.emit(row);\n }\n\n onPageEvent(event: PageEvent): void {\n const newPage = event.pageIndex + 1;\n const isFirstPage = newPage === 1 && this.previousPage !== 1;\n const isLastPage =\n newPage === Math.ceil(this.totalItems / event.pageSize) && newPage !== this.previousPage;\n // Handle page size changes\n if (event.pageSize !== this.pageSize) {\n this.onPageSizeChanged(event.pageSize);\n }\n\n // Handle page changes\n if (newPage !== this.currentPage) {\n this.previousPage = this.currentPage; // Store previous page for first/last detection\n this.onPageChanged(newPage);\n\n // Emit specific events for first/last page navigation\n if (isFirstPage) {\n this.firstPageClicked.emit();\n this.liveAnnouncer.announce(\"Primeira página\");\n } else if (isLastPage) {\n this.lastPageClicked.emit();\n this.liveAnnouncer.announce(\"Última página\");\n }\n }\n\n this.pageEvent.emit(event)\n }\n\n getColumnButtons(column: string): any[] {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return [];\n }\n return this.tableConfig.columnData[column].buttons || [];\n }\n}\n","<div class=\"table-container\" [ngClass]=\"customClass\">\n @if (tableConfig) {\n <table mat-table matSort [dataSource]=\"dataSource\" (matSortChange)=\"announceSortChange($event)\">\n @for (column of displayedColumns; track column) {\n <ng-container [matColumnDef]=\"column\">\n <th *matHeaderCellDef mat-header-cell mat-sort-header class=\"table-header\">\n {{ getColumnHeader(column) }}\n </th>\n <td *matCellDef=\"let element\" mat-cell class=\"table-cell\">\n @switch (getColumnType(column)) { @case ('STRING') { @if (getColumnCssClass &&\n getColumnCssClass(column, element[getColumnElement(column)])) {\n <span [class]=\"getColumnCssClass(column, element[getColumnElement(column)])\">\n {{ element[getColumnElement(column)] }}\n </span>\n } @else {\n <span>{{ element[getColumnElement(column)] }}</span>\n } } @case ('BOOLEAN') {\n <mat-checkbox disabled [checked]=\"element[getColumnElement(column)]\" />\n } @case ('DATE') {\n <span>{{ element[getColumnElement(column)] | date:'mediumDate' }}</span>\n } @case ('NUMBER') {\n <span>{{ element[getColumnElement(column)] | number:'1.2-2' }}</span>\n } @case ('SINGLE_BUTTON') {\n <div>\n @for (btn of getColumnButtons(column); track btn) {\n <button type=\"button\" mat-icon-button [matTooltip]=\"btn.tooltip\" (click)=\"btn.onClick(element)\">\n <mat-icon>{{ btn.icon }}</mat-icon>\n </button>\n }\n </div>\n } }\n </td>\n </ng-container>\n }\n\n <ng-container matColumnDef=\"footer\">\n <td\n *matFooterCellDef\n mat-footer-cell\n class=\"table-cell\"\n [attr.colspan]=\"displayedColumns.length\">\n Total de Registros: {{ totalItems }}\n </td>\n </ng-container>\n\n <tr *matHeaderRowDef=\"displayedColumns\" mat-header-row></tr>\n <tr *matRowDef=\"let row; columns: displayedColumns;\" mat-row (click)=\"onRowClick(row)\"></tr>\n <tr *matFooterRowDef=\"['footer']\" mat-footer-row class=\"mat-row-footer\"></tr>\n </table>\n @if(totalItems > 0){\n\n <mat-paginator\n #paginator\n aria-label=\"Select page\"\n [length]=\"totalItems\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [pageIndex]=\"currentPage - 1\"\n [hidePageSize]=\"false\"\n [showFirstLastButtons]=\"showFirstLastButtons\"\n (page)=\"onPageEvent($event)\" />\n } @else {\n <div class=\"no-data-container\">\n <h2>{{ tableConfig?.result?.noData ?? 'Não há dados disponíveis' }}</h2>\n <p>{{ tableConfig?.result?.defaultMessage ?? 'Adicione alguns dados' }}</p>\n </div>\n } }\n</div>\n","import { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\n\nimport { AlertType } from './base-alert.interface';\n\n@Component({\n selector: 'cao-alert',\n imports: [CommonModule, NgOptimizedImage],\n templateUrl: './base-alert.html',\n styleUrl: './base-alert.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BaseAlert implements OnInit {\n data!: {\n type: AlertType;\n title: string;\n message: string;\n alertIcon?: string\n };\n\n iconPath!: string;\n titleClass!: string;\n\n private iconPaths: Record<AlertType, string> = {\n success: \"https://placehold.co/600x400\",\n error: \"https://placehold.co/600x400\",\n info: \"https://placehold.co/600x400\",\n warning: \"https://placehold.co/600x400\",\n };\n\n ngOnInit(): void {\n this.iconPath = this.iconPaths[this.data.type];\n this.titleClass = `title-${this.data.type}`;\n }\n}\n","<div class=\"dialog-container\">\n <div class=\"dialog-content\">\n <img alt=\"Logo\" class=\"logo\" [ngSrc]=\"data.alertIcon ?? ''\" [fill]=\"true\" />\n <div class=\"alert-wrapper\">\n <div class=\"text-content\">\n @if (data.title) {\n <div class=\"title\" [ngClass]=\"titleClass\">{{ data.title }}</div>\n } @if (data.title && data.message) {\n <div class=\"message-spacer\"></div>\n } @if (data.message) {\n <div class=\"message\">{{ data.message }}</div>\n }\n </div>\n <div class=\"icon-container\">\n <img alt=\"Alert Icon\" class=\"alert-icon\" [ngSrc]=\"iconPath\" [fill]=\"true\" />\n </div>\n </div>\n </div>\n</div>\n","import { Overlay } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { Injectable } from \"@angular/core\";\n\nimport { BaseAlert } from \"./base-alert\";\nimport { IAlertConfig } from \"./base-alert.interface\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BaseAlertService {\n constructor(private overlay: Overlay) { }\n protected defaultTime = 3000\n\n show(config: IAlertConfig): void {\n const overlayRef = this.overlay.create({\n hasBackdrop: false,\n positionStrategy: this.overlay.position().global().centerHorizontally().top(\"10%\"),\n scrollStrategy: this.overlay.scrollStrategies.block(),\n });\n\n const alertPortal = new ComponentPortal(this.generateComponentPortal());\n const componentRef = overlayRef.attach(alertPortal);\n componentRef.instance.data = config;\n\n setTimeout(() => {\n overlayRef.dispose();\n }, this.defaultTime);\n }\n\n generateComponentPortal(): typeof BaseAlert{\n return BaseAlert;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Component, Input } from \"@angular/core\";\n\n@Component({\n selector: \"cao-step\",\n standalone: true,\n templateUrl: \"./step.html\",\n styleUrl: \"./step.css\",\n imports: [CommonModule],\n})\nexport class StepComponent {\n @Input() title = \"\";\n @Input() isActive = false;\n}\n","<div class=\"step d-flex aic jcc\" [ngClass]=\"{'active': isActive}\"> {{ title }} </div>\n","import { AfterContentInit, EventEmitter, Output , ContentChildren, Input, QueryList , Component } from \"@angular/core\";\n\n\nimport { StepComponent } from \"./step/step\";\n\n@Component({\n selector: \"cao-stepper\",\n standalone: true,\n templateUrl: \"./stepper.html\",\n styleUrl: \"./stepper.css\",\n})\nexport class StepperComponent implements AfterContentInit {\n constructor() {}\n @ContentChildren(StepComponent) steps!: QueryList<StepComponent>;\n @Input() title!: string;\n activeStepIndex = 0;\n lengthStep = 0;\n showLine = true;\n\n @Output() readonly maxReachedEvent: EventEmitter<null> = new EventEmitter<null>();\n\n ngAfterContentInit(): void {\n if (this.steps.length > 0) {\n this.steps.toArray()[0].isActive = true;\n this.lengthStep = this.steps.length;\n }\n }\n\n nextStep() {\n if (this.steps.length > 0) {\n if (this.activeStepIndex < this.steps.length - 1) {\n this.activeStepIndex++;\n this.steps.toArray()[this.activeStepIndex].isActive = true;\n } else {\n this.maxReachedEvent.emit(null);\n }\n }\n }\n\n prevStep() {\n if (this.steps.length > 0) {\n if (this.activeStepIndex > 0) {\n this.steps.toArray()[this.activeStepIndex].isActive = false;\n this.activeStepIndex--;\n this.steps.toArray()[this.activeStepIndex].isActive = true;\n }\n }\n }\n\n resetStepper() {\n this.activeStepIndex = 0;\n this.steps.forEach((step) => (step.isActive = false));\n if (this.steps.length > 0) {\n this.steps.toArray()[0].isActive = true;\n }\n }\n}\n","@if(title){\n<h3 class=\"stepper-title\">{{ title }}</h3>\n}\n<div class=\"d-flex step-container aic jcsb\">\n @if (showLine) {\n <div class=\"line\"></div>\n }\n <div class=\"steps d-flex aic jcsb\">\n <ng-content />\n </div>\n</div>\n","/*\n * Public API Surface of ngx-opalbytes-components\n */\n\nexport * from './lib/shared/components/base-button/base-button.component'\nexport * from './lib/shared/components/base-input/base-input'\nexport * from './lib/shared/components/base-time-range/base-time-range'\n\nexport * from './lib/shared/components/autocomplete/autocomplete.component'\nexport * from './lib/shared/components/drop-down/drop-down'\nexport * from './lib/shared/components/links-button/links-button'\nexport * from './lib/shared/components/footer/footer'\nexport * from './lib/shared/components/paginator/paginator'\nexport * from './lib/shared/components/time-picker/time-picker'\n\nexport * from './lib/shared/features/base-modal/base-modal'\nexport * from './lib/shared/features/base-modal/base-modal.service'\nexport * from './lib/shared/features/base-modal/base-modal.interface'\n\nexport * from './lib/shared/features/base-dialog/base-dialog'\nexport * from './lib/shared/features/base-dialog/base-dialog.service'\nexport * from './lib/shared/features/base-dialog/base-dialog.interface'\n\nexport * from './lib/shared/features/base-table/base-table'\nexport * from './lib/shared/features/base-table/base-table.service'\nexport * from './lib/shared/features/base-table/base-table.interface'\nexport * from './lib/shared/features/base-table/base-filter-table.service'\n\nexport * from './lib/shared/features/base-table-paginated/base-table-paginated'\nexport * from './lib/shared/features/base-table-paginated/base-table-paginated.service'\nexport * from './lib/shared/features/base-table-paginated/base-table-paginated.interface'\nexport * from './lib/shared/features/base-table-paginated/base-filter-table-paginated.service'\nexport * from './lib/shared/features/base-table-paginated/base-pagination.service'\n\nexport * from './lib/shared/features/base-alert/base-alert'\nexport * from './lib/shared/features/base-alert/base-alert.service'\nexport * from './lib/shared/features/base-alert/base-alert.interface'\n\nexport * from './lib/shared/components/stepper/stepper'\nexport * from './lib/shared/components/stepper/step/step'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i4","i6","i5","i9","i7","i8"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAaa,sBAAsB,CAAA;AACd,IAAA,WAAW,GAAG,IAAI,YAAY,EAAQ;IAEhD,UAAU,GAAG,SAAS;IACtB,UAAU,GAAG,KAAK;IAClB,UAAU,GAAG,KAAK;IAClB,SAAS,GAAG,KAAK;IACjB,QAAQ,GAAG,EAAE;AAEb,IAAA,OAAO;AACP,IAAA,YAAY;AACZ,IAAA,WAAW;IACX,YAAY,GAAG,IAAI;AACnB,IAAA,MAAM;AACN,IAAA,SAAS;IAElB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,YAAA,IAAI,CAAC,MAAM,GAAG,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;QAC3E;AAEA,QAAA,IAAG,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE,EAAC;AAC/C,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU;QAChC;IACF;IAEA,OAAO,GAAA;QACL,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACvC,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;QACzB;IACF;uGA9BW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,6YCbnC,u8BAiCA,EAAA,MAAA,EAAA,CAAA,qDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDtBY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,gBAAgB,6TAAE,iBAAiB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAEhD,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;iCACI,IAAI,EAAA,QAAA,EACN,YAAY,EAAA,OAAA,EAGb,CAAC,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,EAAA,QAAA,EAAA,u8BAAA,EAAA,MAAA,EAAA,CAAA,qDAAA,CAAA,EAAA;;sBAG3D;;sBAEA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAEA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;;MEJU,YAAY,CAAA;IACd,IAAI,GAAG,MAAM;IACb,WAAW,GAAG,EAAE;IAChB,UAAU,GAAG,EAAE;IACf,KAAK,GAAqC,EAAE;IAC5C,YAAY,GAAG,EAAE;IACjB,UAAU,GAAG,KAAK;AAClB,IAAA,SAAS;IACT,UAAU,GAAG,KAAK;IAClB,UAAU,GAAG,KAAK;IAClB,YAAY,GAAG,KAAK;IACpB,SAAS,GAAG,EAAE;AACd,IAAA,IAAI;AACJ,IAAA,OAAO;IACP,OAAO,GAAG,EAAE;IACZ,MAAM,GAAY,EAAE;IACpB,YAAY,GAAY,EAAE;IAE1B,aAAa,GAA2B,GAAG;IAC3C,iBAAiB,GAAG,GAAG;IACvB,oBAAoB,GAAG,KAAK;IAC5B,cAAc,GAAG,EAAE;IAE5B,IAAa,WAAW,CAAC,KAAa,EAAA;AACpC,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;IAClB;IAEA,IAAa,YAAY,CAAC,KAAa,EAAA;AACrC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAC1B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;IAClB;AAEmB,IAAA,WAAW,GAAG,IAAI,YAAY,EAAU;AACxC,IAAA,WAAW,GAAG,IAAI,YAAY,EAAQ;AACtC,IAAA,WAAW,GAAG,IAAI,YAAY,EAAU;IAE3D,SAAS,GAAG,KAAK;IACjB,IAAI,GAAG,KAAK;AACZ,IAAA,YAAY;AACZ,IAAA,aAAa;AAEb,IAAA,QAAQ,GAAQ,MAAK,EAAG,CAAC;AACzB,IAAA,SAAS,GAAQ,MAAK,EAAG,CAAC;AAE1B,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY;IAC5B;IAES,WAAW,GAAG,EAAE;AAEzB,IAAA,IAAI,gBAAgB,GAAA;QAClB,OAAO,IAAI,CAAC,WAAW;IACzB;AAEA,IAAA,OAAO,CAAC,KAAY,EAAA;AAClB,QAAA,MAAM,QAAQ,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK;AACzD,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;IACjC;AAEA,IAAA,aAAa,CAAC,KAAY,EAAA;AACxB,QAAA,MAAM,QAAQ,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK;AACzD,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ;AACrB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;IACjC;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACrB,IAAI,CAAC,SAAS,EAAE;IAClB;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QACtB,IAAI,CAAC,SAAS,EAAE;AAEhB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE;YACvE,UAAU,CAAC,MAAK;AACd,gBAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,aAA4B;AACpD,gBAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAA,kBAAA,EAAqB,IAAI,CAAC,gBAAgB,CAAA,EAAA,CAAI,CAAC;AACtF,gBAAA,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACpD,oBAAA,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE;gBACjC;AACF,YAAA,CAAC,CAAC;QACJ;IACF;IAEA,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;IACzB;AAEA,IAAA,UAAU,CAAC,KAAgC,EAAA;AACzC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE;IAC1B;AAEA,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;AAEA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEA,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;IAC9B;uGA1GW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,KAAA,EAAA,OAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EATZ;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,YAAY;AACzB,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA,cAAc,EAAE;SACjB,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrBH,82EAwCM,EAAA,MAAA,EAAA,CAAA,y0GAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED3BM,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,+mBAAE,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,iBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,wBAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,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,EAAE,iBAAiB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAU/E,YAAY,EAAA,UAAA,EAAA,CAAA;kBAfxB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EAAA,QAAA,EACN,WAAW,EAAA,OAAA,EAGZ,CAAC,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,EAAA,SAAA,EAChF;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAA,YAAc;AACzB,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA,cAAc,EAAE;AACjB,qBAAA,EAAA,QAAA,EAAA,82EAAA,EAAA,MAAA,EAAA,CAAA,y0GAAA,CAAA,EAAA;;sBAGA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAEA;;sBACA;;sBACA;;sBACA;;sBAEA;;sBAKA;;sBAKA;;sBACA;;sBACA;;sBAcA;;;ME7DU,aAAa,CAAA;IACf,KAAK,GAAG,EAAE;AACV,IAAA,GAAG;AACH,IAAA,OAAO;AACP,IAAA,OAAO;AACP,IAAA,SAAS;AACT,IAAA,SAAS;AACT,IAAA,MAAM;IACN,WAAW,GAAG,EAAE;AAEN,IAAA,aAAa,GAAG,IAAI,YAAY,EAAU;AAE/B,IAAA,cAAc;IAE5C,QAAQ,GAAA;AACN,QAAA,IAAG,CAAC,IAAI,CAAC,MAAM,EAAC;YACd,IAAI,CAAC,MAAM,GAAG,CAAA,WAAA,EAAc,IAAI,CAAC,KAAK,EAAE;QAC1C;IACF;AAEA,IAAA,iBAAiB,CAAC,KAAU,EAAA;AAC1B,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAa;AACvC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAE1B,QAAA,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC;QAC9B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC;AAEvC,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;IACxB;AAEA,IAAA,cAAc,CAAC,KAAU,EAAA;AACvB,QAAA,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,KAAa;AAC5C,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,SAAS,EAAE;YAC/B,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC;AACxC,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/B;IACF;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,GAAG,GAAG,SAAS;AACpB,QAAA,IAAI,CAAC,OAAO,GAAG,SAAS;AACxB,QAAA,IAAI,CAAC,OAAO,GAAG,SAAS;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;QAE1B,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,GAAG,EAAE;QAC1C,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE;IAC1C;uGAhDW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAYb,iBAAiB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvB9B,2yBAuBA,ybDhBY,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,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,CAAA,EAAA,CAAA;;2FAItD,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,WACtB,CAAC,kBAAkB,EAAE,cAAc,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,2yBAAA,EAAA,MAAA,EAAA,CAAA,kYAAA,CAAA,EAAA;;sBAKjE;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAEA;;sBAEA,SAAS;uBAAC,iBAAiB;;;MEyBjB,wBAAwB,CAAA;IAC1B,KAAK,GAAG,EAAE;IACV,WAAW,GAAG,EAAE;IAChB,OAAO,GAA6B,EAAE;AACtC,IAAA,OAAO,GAAoB,IAAI,WAAW,EAAE;IAC5C,MAAM,GAAG,EAAE;IACX,WAAW,GAAG,EAAE;IAChB,YAAY,GAAG,KAAK;IACpB,SAAS,GAAG,EAAE;AACd,IAAA,YAAY;AACZ,IAAA,aAAa;AACb,IAAA,UAAU;AACV,IAAA,eAAe;AACf,IAAA,kBAAkB;AAER,IAAA,YAAY,GAAG,IAAI,YAAY,EAA0B;AACzD,IAAA,SAAS,GAAG,IAAI,YAAY,EAAQ;AACpC,IAAA,UAAU,GAAG,IAAI,YAAY,EAAQ;AAExD,IAAA,eAAe,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC;AACrC,IAAA,gBAAgB;IAChB,SAAS,GAAG,KAAK;IACjB,IAAI,GAAG,KAAK;AAEJ,IAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AAEvB,IAAA,QAAQ,GAAqD,MAAK,EAAG,CAAC;AACtE,IAAA,SAAS,GAAe,MAAK,EAAG,CAAC;IAEzC,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAC5D,SAAS,CAAC,EAAE,CAAC,EACb,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CACzC;QAED,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;YAC5C,MAAM,YAAY,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK;AACvF,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACnE,QAAA,CAAC,CAAC;IACJ;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;QACtB,IAAI,CAAC,SAAS,EAAE;IAClB;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;QACrB,IAAI,CAAC,SAAS,EAAE;IAClB;AAEA,IAAA,gBAAgB,CAAC,KAAmC,EAAA;QAClD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAC1C,IAAI,CAAC,SAAS,EAAE;IAClB;AAGQ,IAAA,MAAM,CAAC,KAAsC,EAAA;QACnD,MAAM,WAAW,GAAG,CAAC,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,KAAK,EAAE,IAAI,GAAG,WAAW,EAAE,IAAI,EAAE;AAC1F,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,OAAO,EAAE;QACX;QACA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAI;AACpC,YAAA,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;AACjE,YAAA,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;YACzE,OAAO,SAAS,IAAI,OAAO;AAC7B,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,SAAS,CAAC,MAA8B,EAAA;AACtC,QAAA,OAAO,MAAM,IAAI,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,EAAE;IACjD;AAEA,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AAAE,YAAA,OAAO,IAAI;QAAE;AAElC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,EAAE;QAExE,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,EAAE;AAChD,YAAA,OAAO,oBAAoB;QAC7B;AAEA,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YAChD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;AAAE,gBAAA,OAAO,cAAc;YAAE;YAClE,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;AAAE,gBAAA,OAAO,iBAAiB;YAAE;YAC3E,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;AAAE,gBAAA,OAAO,gBAAgB;YAAE;YACtE,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;AAAE,gBAAA,OAAO,eAAe;YAAE;YACpE,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AAAE,gBAAA,OAAO,aAAa;YAAE;YAChE,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;AAAE,gBAAA,OAAO,eAAe;YAAE;YACpE,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;AAAE,gBAAA,OAAO,uBAAuB;YAAE;YACjF,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;AAAE,gBAAA,OAAO,qBAAqB;YAAE;AAC7E,YAAA,OAAO,kBAAkB;QAC3B;AAEA,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,IAAI,gBAAgB,GAAA;QAClB,OAAO,IAAI,CAAC,WAAW;IACzB;AAEA,IAAA,UAAU,CAAC,KAAsC,EAAA;QAC/C,MAAM,YAAY,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK;AACvF,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACnE;AAEA,IAAA,gBAAgB,CAAC,EAAoD,EAAA;AACnE,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;AAEA,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEC,IAAA,cAAc,CAAC,MAAc,EAAA;AAC5B,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACxE;uGAvHW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,SAAA,EARxB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,wBAAwB,CAAC;AACvD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9CH,gnEA2DA,EAAA,MAAA,EAAA,CAAA,4yDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED3BI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,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,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,EACnB,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,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,UAAA,EAAA,IAAA,EAClB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,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,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,qBAAqB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,OAAA,EAAA,8BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,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,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,mDAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,yBAAA,EAAA,4BAAA,EAAA,cAAA,EAAA,yBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,iBAAiB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAWR,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAtBpC,SAAS;+BACE,kBAAkB,EAAA,UAAA,EAGhB,IAAI,EAAA,OAAA,EACP;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,kBAAkB;wBAClB,cAAc;wBACd,qBAAqB;wBACrB,iBAAiB;qBAClB,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,8BAA8B,CAAC;AACvD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,gnEAAA,EAAA,MAAA,EAAA,CAAA,4yDAAA,CAAA,EAAA;;sBAGA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAEA;;sBACA;;sBACA;;;MEfU,oBAAoB,CAAA;AAmCrB,IAAA,KAAA;AACA,IAAA,GAAA;IAnCD,UAAU,GAAG,mBAAmB;IAChC,OAAO,GAAyB,EAAE;IAClC,aAAa,GAAG,EAAE;IAClB,aAAa,GAAiC,EAAE;AAChD,IAAA,OAAO;IACP,WAAW,GAAG,EAAE;IAChB,UAAU,GAAG,KAAK;IAClB,OAAO,GAAG,EAAE;IACZ,kBAAkB,GAAkB,MAAM;IAC1C,MAAM,GAAY,EAAE;AAEpB,IAAA,SAAS;AACT,IAAA,WAAW;AACX,IAAA,SAAS;AACT,IAAA,cAAc;AACd,IAAA,aAAa;AAEH,IAAA,YAAY,GAAG,IAAI,YAAY,EAAsB;IAExE,MAAM,GAAG,KAAK;AACd,IAAA,YAAY;IACZ,eAAe,GAAyB,EAAE;AAC1C,IAAA,aAAa,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC;IACnC,SAAS,GAAG,KAAK;IACjB,SAAS,GAAG,KAAK;AACjB,IAAA,aAAa;IACb,iBAAiB,GAAG,KAAK;IAGzB,YAAY,GAAG,CAAC,CAAC;IAET,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;IAE5D,WAAA,CACU,KAAiB,EACjB,GAAsB,EAAA;QADtB,IAAA,CAAA,KAAK,GAAL,KAAK;QACL,IAAA,CAAA,GAAG,GAAH,GAAG;IACT;IAEJ,QAAQ,GAAA;QACN,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC;QAClE,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QAExC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAClD,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC;AAC/B,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AACxB,QAAA,CAAC,CAAC;IACJ;IAEA,WAAW,GAAA;QACT,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC;IACvE;AAEA,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YACpF,OAAO,CAAA,OAAA,EAAU,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,CAAA,CAAE;QACrD;AACA,QAAA,OAAO,IAAI;IACb;IAEA,cAAc,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YAAE;QAAO;QAAC;QAE/B,IAAI,CAAC,mBAAmB,EAAE;AAC1B,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM;QAC5B,IAAI,CAAC,aAAa,EAAE;AAEpB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;AACxC,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;AAC9B,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YAGtB,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,oBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,wBAAwB,CAAC;oBACpF,IAAI,WAAW,EAAE;wBACf,WAAW,CAAC,KAAK,EAAE;oBACrB;gBACF;AACF,YAAA,CAAC,CAAC;QACJ;aAAO;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACxB;AAEA,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;IAC1B;AAEA,IAAA,UAAU,CAAC,MAA0B,EAAA;AACnC,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YAAE;QAAO;QAAC;AAE/B,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM;AAC1B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AACtB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;AAC9B,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,EAAE;AACpB,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;IAC1B;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,YAAY,GAAG,SAAS;AAC7B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;IAC1B;AAEA,IAAA,aAAa,CAAC,UAAkB,EAAA;QAC9B,IAAI,CAAC,UAAU,EAAE;YACf,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;YACxC;QACF;AACA,QAAA,MAAM,mBAAmB,GAAG,UAAU,CAAC,WAAW,EAAE;QACpD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CACxC,CAAC,MAAM,KACL,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;AACvD,YAAA,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CACpE;IACH;IAEA,OAAO,CAAC,KAAa,EAAE,IAAwB,EAAA;QAC7C,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE;IAC/D;AAEQ,IAAA,cAAc,CAAC,KAAiB,EAAA;AACtC,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACpD,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK;YACrB;AACA,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;YACxB;AACA,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;AAC7B,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;QAC1B;IACF;AAEA,IAAA,WAAW,CAAC,KAAY,EAAA;AACtB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YAAE;QAAO;QAAC;QAE/B,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,eAAe,EAAE;QAEvB,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;YAAE;QAAO;QAAC;AAEjD,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,CAAC,EAAE;AAE5B,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC;QACvB;aAAO;AAEL,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM;QAC3E;QAEA,IAAI,CAAC,cAAc,EAAE;AACrB,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;IAC1B;AAEA,IAAA,SAAS,CAAC,KAAY,EAAA;AACpB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YAAE;QAAO;QAAC;QAE/B,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,eAAe,EAAE;QAEvB,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;YAAE;QAAO;QAAC;AAEjD,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,CAAC,EAAE;YAE5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;QACrD;aAAO;AAEL,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI;AACvC,kBAAE,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG;AAChC,kBAAE,IAAI,CAAC,YAAY,GAAG,CAAC;QAC3B;QAEA,IAAI,CAAC,cAAc,EAAE;AACrB,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;IAC1B;AAEA,IAAA,aAAa,CAAC,KAAY,EAAA;QACxB,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,eAAe,EAAE;AAEvB,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;AAC7E,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1D;aAAO,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;YAE1C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1C;IACF;IAEA,aAAa,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YAAE;QAAO;QAAC;AAE/B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;IAC1B;IAEQ,cAAc,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,CAAC,EAAE;YAAE;QAAO;QAAC;QAExD,UAAU,CAAC,MAAK;AACd,YAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAA,OAAA,EAAU,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,CAAA,CAAE,CAAC;YACrF,IAAI,OAAO,EAAE;gBACX,OAAO,CAAC,cAAc,CAAC;AACrB,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,QAAQ,EAAE;AACX,iBAAA,CAAC;YACJ;QACF,CAAC,EAAE,CAAC,CAAC;IACP;IAEA,mBAAmB,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,EAAE;AACpC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI;YACzB;QACF;QAEA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,qBAAqB,EAAE;AAC7D,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW;QACvC,MAAM,cAAc,GAAG,GAAG;AAE1B,QAAA,MAAM,UAAU,GAAG,YAAY,GAAG,IAAI,CAAC,MAAM;AAC7C,QAAA,IAAI,CAAC,aAAa,GAAG,UAAU,GAAG,cAAc,GAAG,IAAI,GAAG,MAAM;IAClE;AAGA,IAAA,UAAU,CAAC,KAAc,EAAA;QACvB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AACzC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,KAClC,IAAI,CAAC;kBACD,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK;kBAC3B,GAAG,CAAC,EAAE,MAAM,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAI,KAAa,CAAC,EAAE,GAAG,KAAK,CAAC,CAChF;YAED,IAAI,KAAK,EAAE;AACT,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;YAC3B;iBAAO;AACL,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC;gBAClE,IAAI,WAAW,EAAE;AACf,oBAAA,IAAI,CAAC,YAAY,GAAG,WAAW;gBACjC;YACF;QACF;aAAO;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,SAAS;QAC/B;AACA,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;IAC1B;AAEA,IAAA,gBAAgB,CAAC,EAA4B,EAAA;AAC3C,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;AAEA,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEA,IAAA,QAAQ,GAA6B,MAAK,EAAG,CAAC;AAC9C,IAAA,SAAS,GAAG,MAAK,EAAG,CAAC;AAErB,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AAAE,YAAA,OAAO,IAAI;QAAE;QAClC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AACrC,YAAA,OAAO,oBAAoB;QAC7B;AACA,QAAA,OAAO,IAAI;IACb;IAEQ,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,YAAA,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE;QAC/B;IACF;AAEA,IAAA,IAAI,gBAAgB,GAAA;QAClB,OAAO,IAAI,CAAC,WAAW;IACzB;uGA3RW,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,SAAA,EARpB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,oBAAoB,CAAC;AACnD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChDH,okHA+FM,i0BD1DF,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,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,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,gBAAgB,4TAChB,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,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,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAUV,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAnBhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAAA,aAAA,EAGV,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B;wBACP,aAAa;wBACb,YAAY;wBACZ,gBAAgB;wBAChB,mBAAmB;qBACpB,EAAA,SAAA,EACU;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,0BAA0B,CAAC;AACnD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,okHAAA,EAAA,MAAA,EAAA,CAAA,0wBAAA,CAAA,EAAA;;sBAGA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAEA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAEA;;;ME5CU,WAAW,CAAA;AACK,IAAA,UAAU;AACrC,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,IAAA,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;AAE9B,IAAA,oBAAoB,CAAC,IAAc,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB;QACF;QACA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;IAC3E;AAEQ,IAAA,UAAU,CAAC,GAAW,EAAA;AAC5B,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IACzD;AAEQ,IAAA,WAAW,CAAC,GAAW,EAAA;QAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7B;uGAlBW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,kHCxBxB,8pBAsBM,EAAA,MAAA,EAAA,CAAA,iiCAAA,CAAA,EAAA,CAAA;;2FDEO,WAAW,EAAA,UAAA,EAAA,CAAA;kBANvB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,kBAAkB,EAAA,QAAA,EAAA,8pBAAA,EAAA,MAAA,EAAA,CAAA,iiCAAA,CAAA,EAAA;;sBAK3B,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;;MEhBd,MAAM,CAAA;AACjB,IAAA,WAAW,GAAW,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACrC,IAAA,YAAY;AACZ,IAAA,UAAU;IACV,OAAO,GAAG,IAAI;uGAJZ,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAN,MAAM,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECTnB,2QAUA,EAAA,MAAA,EAAA,CAAA,iUAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDHa,YAAY,EAAA,CAAA,EAAA,CAAA;;2FAEZ,MAAM,EAAA,UAAA,EAAA,CAAA;kBANlB,SAAS;+BACE,YAAY,EAAA,OAAA,EAGb,CAAE,YAAY,CAAE,EAAA,QAAA,EAAA,2QAAA,EAAA,MAAA,EAAA,CAAA,iUAAA,CAAA,EAAA;;sBAIxB;;sBACA;;sBACA;;;AEsBH,MAAM,OAAO,GAAG;IACd,aAAa;IACb,iBAAiB;IACjB,qBAAqB;IACrB,eAAe;IACf,aAAa;IACb,iBAAiB;IACjB,cAAc;IACd,mBAAmB;IACnB,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;IAClB,aAAa;IACb,cAAc;IACd,aAAa;IACb,mBAAmB;IACnB,oBAAoB;IACpB,wBAAwB;IACxB,kBAAkB;IAClB,cAAc;IACd,eAAe;IACf,oBAAoB;IACpB,aAAa;IACb,eAAe;IACf,cAAc;IACd,aAAa;IACb,gBAAgB;IAChB,gBAAgB;IAChB,aAAa;IACb,gBAAgB;IAChB,aAAa;IACb;CACD;MAMY,cAAc,CAAA;uGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAtCzB,aAAa;YACb,iBAAiB;YACjB,qBAAqB;YACrB,eAAe;YACf,aAAa;YACb,iBAAiB;YACjB,cAAc;YACd,mBAAmB;YACnB,eAAe;YACf,gBAAgB;YAChB,kBAAkB;YAClB,kBAAkB;YAClB,aAAa;YACb,cAAc;YACd,aAAa;YACb,mBAAmB;YACnB,oBAAoB;YACpB,wBAAwB;YACxB,kBAAkB;YAClB,cAAc;YACd,eAAe;YACf,oBAAoB;YACpB,aAAa;YACb,eAAe;YACf,cAAc;YACd,aAAa;YACb,gBAAgB;YAChB,gBAAgB;YAChB,aAAa;YACb,gBAAgB;YAChB,aAAa;AACb,YAAA,mBAAmB,aA/BnB,aAAa;YACb,iBAAiB;YACjB,qBAAqB;YACrB,eAAe;YACf,aAAa;YACb,iBAAiB;YACjB,cAAc;YACd,mBAAmB;YACnB,eAAe;YACf,gBAAgB;YAChB,kBAAkB;YAClB,kBAAkB;YAClB,aAAa;YACb,cAAc;YACd,aAAa;YACb,mBAAmB;YACnB,oBAAoB;YACpB,wBAAwB;YACxB,kBAAkB;YAClB,cAAc;YACd,eAAe;YACf,oBAAoB;YACpB,aAAa;YACb,eAAe;YACf,cAAc;YACd,aAAa;YACb,gBAAgB;YAChB,gBAAgB;YAChB,aAAa;YACb,gBAAgB;YAChB,aAAa;YACb,mBAAmB,CAAA,EAAA,CAAA;AAOR,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EAAA,SAAA,EAFd,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAA,OAAA,EAAA,CAFlD,OAAO,EAlCjB,aAAa;YACb,iBAAiB;YACjB,qBAAqB;YACrB,eAAe;YACf,aAAa;YACb,iBAAiB;YACjB,cAAc;YACd,mBAAmB;YACnB,eAAe;YACf,gBAAgB;YAChB,kBAAkB;YAClB,kBAAkB;YAClB,aAAa;YACb,cAAc;YACd,aAAa;YACb,mBAAmB;YACnB,oBAAoB;YACpB,wBAAwB;YACxB,kBAAkB;YAClB,cAAc;YACd,eAAe;YACf,oBAAoB;YACpB,aAAa;YACb,eAAe;YACf,cAAc;YACd,aAAa;YACb,gBAAgB;YAChB,gBAAgB;YAChB,aAAa;YACb,gBAAgB;YAChB,aAAa;YACb,mBAAmB,CAAA,EAAA,CAAA;;2FAOR,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC7D,iBAAA;;;MC9DY,SAAS,CAAA;IACX,UAAU,GAAG,CAAC;IACd,QAAQ,GAAG,EAAE;IACb,WAAW,GAAG,CAAC;IACf,eAAe,GAAa,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAC3C,WAAW,GAAG,EAAE;IAChB,oBAAoB,GAAG,IAAI;AAEjB,IAAA,SAAS,GAAG,IAAI,YAAY,EAAa;AAE5D,IAAA,WAAW,CAAC,KAAgB,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;IAC5B;uGAZW,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXtB,kTASiC,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDFrB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIb,SAAS,EAAA,UAAA,EAAA,CAAA;kBANrB,SAAS;+BACE,eAAe,EAAA,OAAA,EAChB,CAAC,cAAc,CAAC,EAAA,QAAA,EAAA,kTAAA,EAAA;;sBAKxB;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAEA;;;MEHU,UAAU,CAAA;AAyBD,IAAA,QAAA;AAxBX,IAAA,OAAO,GAA6B,IAAI,WAAW,CAAc,IAAI,CAAC;IACtE,UAAU,GAAG,KAAK;AAClB,IAAA,MAAM;IACf,IAAa,GAAG,CAAC,CAAS,EAAA;AACxB,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC;QACb,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC;IAC/F;IACA,IAAa,GAAG,CAAC,CAAS,EAAA;AACxB,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC;QACb,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC;IAC/F;IAEA,WAAW,GAAG,CAAC;IACf,WAAW,GAAG,EAAE;AAEG,IAAA,UAAU,GAAG,IAAI,YAAY,EAAQ;IAEhD,IAAI,GAAG,OAAO;IACd,IAAI,GAAG,OAAO;AAEtB,IAAA,aAAa,GAAgC,IAAI,CAAC,mBAAmB,EAAE;AAEvE,IAAA,WAAA,CAAoB,QAA0B,EAAA;QAA1B,IAAA,CAAA,QAAQ,GAAR,QAAQ;AAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC;IAClC;AAEA,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AAAC,YAAA,OAAO,IAAI;QAAC;QAEhC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACtF,YAAA,OAAO,oBAAoB;QAC7B;AACA,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AAChE,YAAA,OAAO,kBAAkB;QAC3B;AACA,QAAA,OAAO,IAAI;IACb;AAEQ,IAAA,qBAAqB,CAAC,IAAY,EAAA;AACxC,QAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,QAAA,IAAG,OAAO,YAAY,KAAK,QAAQ,EAAC;AAClC,YAAA,OAAO,YAAY;QACrB;AACA,QAAA,OAAO,YAAY;IACrB;IAEQ,mBAAmB,GAAA;QACzB,MAAM,OAAO,GAAgC,EAAE;QAC/C,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AAErC,QAAA,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE;AAClE,YAAA,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE;gBAC9C,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,IAAI,MAAM,GAAG,CAAC,EAAE;oBAAC;gBAAS;AACvD,gBAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC;gBAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC9B,MAAM,KAAK,GAAG,CAAA,EAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAA,EAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAE;gBACzF,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YACtC;QACF;AAEA,QAAA,OAAO,OAAO;IAChB;AAEA,IAAA,iBAAiB,CAAC,OAAoC,EAAA;AACpD,QAAA,IAAI,CAAC,aAAa,GAAG,OAAO;IAC9B;AAEA,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;IAC9B;uGAxEW,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,sNChBvB,yrBAqBA,EAAA,MAAA,EAAA,CAAA,whDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDXa,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,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,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,QAAA,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,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,EAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,QAAA,CAAA,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,OAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,0BAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,4HAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,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,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAMjD,UAAU,EAAA,UAAA,EAAA,CAAA;kBARtB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAAA,OAAA,EAClB,CAAE,cAAc,EAAE,YAAY,EAAE,mBAAmB,EAAG,EAAA,eAAA,EAG9C,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,yrBAAA,EAAA,MAAA,EAAA,CAAA,whDAAA,CAAA,EAAA;;sBAGpC;;sBACA;;sBACA;;sBACA;;sBAKA;;sBASA;;;MEzBU,gBAAgB,CAAA;AAC3B,IAAA,WAAA,GAAA,EAAgB;AACG,IAAA,gBAAgB,GAAG,IAAI,YAAY,EAAU;AAC7C,IAAA,mBAAmB,GAAG,IAAI,YAAY,EAAW;AACjD,IAAA,SAAS,GAAG,IAAI,YAAY,EAAU;AAEjD,IAAA,kBAAkB,GAAG,IAAI,OAAO,EAAO;AAE/C,IAAA,eAAe,CAAC,MAAW,EAAA;AACzB,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;IACtC;IAEA,aAAa,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;IAC/C;AAEA,IAAA,WAAW,CAAC,SAAiB,EAAA;AAC3B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;IACvC;IAEA,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;IACrC;IAEA,SAAS,CAAC,cAAyB,EAAE,IAAU,EAAA;QAC7C,IAAI,CAAC,cAAc,EAAE;AACrB,QAAA,MAAM,SAAS,GAAW;AACxB,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,MAAM,EAAE,IAAI;SACb;AACD,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;IAChC;uGAhCW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA;;2FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;sBAGE;;sBACA;;sBACA;;;MCDU,SAAS,CAAA;IACX,SAAS,GAAG,KAAK;IACjB,KAAK,GAAG,EAAE;AACV,IAAA,IAAI;IACJ,cAAc,GAAmB,SAAS;IAC1C,UAAU,GAAG,eAAe;IAC5B,SAAS,GAAkB,MAAM;IACjC,mBAAmB,GAAG,KAAK;AAE1B,IAAA,YAAY,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAEjD,IAAA,WAAW,KAAK;IAEhB,wBAAwB,GAAA;AACtB,QAAA,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE;IACpC;IAEA,cAAc,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,IAAI,CAAC,WAAW,EAAE;QACpB;IACF;uGArBW,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZtB,sXAMM,EAAA,MAAA,EAAA,CAAA,o9BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDEM,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIX,SAAS,EAAA,UAAA,EAAA,CAAA;kBANrB,SAAS;+BACE,WAAW,EAAA,OAAA,EACZ,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,sXAAA,EAAA,MAAA,EAAA,CAAA,o9BAAA,CAAA,EAAA;;sBAKtB;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;;MERU,UAAU,CAAA;AACZ,IAAA,MAAM;AAEf,IAAA,WAAW,GAAe,IAAI,CAAC,IAAI;AAEzB,IAAA,SAAS,GAA+B;AAChD,QAAA,OAAO,EAAE,8BAA8B;AACvC,QAAA,KAAK,EAAE,8BAA8B;AACrC,QAAA,IAAI,EAAE,8BAA8B;AACpC,QAAA,OAAO,EAAE,8BAA8B;KACxC;IAEO,IAAI,GAAA;QACV;IACF;IAEA,WAAW,GAAA;QACT,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IACzC;IAEA,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI;QACzB,IAAI,CAAC,WAAW,EAAE;IACpB;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI;QACxB,IAAI,CAAC,WAAW,EAAE;IACpB;uGA5BW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXvB,o1CAsCA,EAAA,MAAA,EAAA,CAAA,i1DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED/BY,YAAY,6HAAE,gBAAgB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAI7B,UAAU,EAAA,UAAA,EAAA,CAAA;kBANtB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAAA,OAAA,EACb,CAAC,YAAY,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,o1CAAA,EAAA,MAAA,EAAA,CAAA,i1DAAA,CAAA,EAAA;;sBAKxC;;;MEFU,iBAAiB,CAAA;AACR,IAAA,OAAA;AAApB,IAAA,WAAA,CAAoB,OAAgB,EAAA;QAAhB,IAAA,CAAA,OAAO,GAAP,OAAO;IAAa;AAExC,IAAA,IAAI,CAAC,MAAqB,EAAA;AACxB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACrC,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,kBAAkB,EAAE,CAAC,gBAAgB,EAAE;YAC1F,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE;AACrD,YAAA,aAAa,EAAE,iBAAiB;AACjC,SAAA,CAAC;QAEF,MAAM,YAAY,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACxE,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC;AAEpD,QAAA,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM;AAErC,QAAA,YAAY,CAAC,QAAQ,CAAC,WAAW,GAAG,MAAK;YACvC,UAAU,CAAC,OAAO,EAAE;AACtB,QAAA,CAAC;AAED,QAAA,OAAO,UAAU;IACnB;IAEA,uBAAuB,GAAA;AACrB,QAAA,OAAO,UAAU;IACnB;uGAzBW,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAJ,IAAA,CAAA,OAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA;;2FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCFY,sBAAsB,CAAA;AACzB,IAAA,aAAa,GAAG,IAAI,OAAO,EAAU;AAE7C,IAAA,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;AAE3C,IAAA,YAAY,CAAC,WAAmB,EAAA;AAC9B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;IACtC;uGAPW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFrB,MAAM,EAAA,CAAA;;2FAEP,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCGY,gBAAgB,CAAA;AACnB,IAAA,kBAAkB,GAAG,IAAI,eAAe,CAAsB,IAAI,CAAC;AACnE,IAAA,WAAW,GAAG,IAAI,eAAe,CAAQ,EAAE,CAAC;AAC5C,IAAA,cAAc,GAAG,IAAI,eAAe,CAAkB,EAAE,CAAC;AAEjE,IAAA,YAAY,GAAoC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AACtF,IAAA,QAAQ,GAAgC,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;AAC1E,IAAA,KAAK,GAAsB,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;IAE1D,eAAe,GAAyB,IAAI,CAAC,QAAQ,CAAC,IAAI,CACxD,GAAG,CAAC,CAAC,OAAO,KACV,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAChF,CACF;AAED,IAAA,WAAW,CAAC,IAAW,EAAE,OAAyB,EAAE,YAAoC,EAAA;AACtF,QAAA,MAAM,WAAW,GAAiB;YAChC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG,EAAE;YAC1E,IAAI;AACJ,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,MAAM,EAAE;AACN,gBAAA,MAAM,EAAE,yCAAyC;AACjD,gBAAA,cAAc,EAAE,8BAA8B;AAC/C,aAAA;AACD,YAAA,GAAG,YAAY;SAChB;QAED,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,EAAE;YAC9B,MAAM,UAAU,GAAkC,EAAE;AACpD,YAAA,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;gBACtB,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG;AACzC,oBAAA,GAAG,GAAG;oBACN,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;AAC7E,oBAAA,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI;iBACxD;AACH,YAAA,CAAC,CAAC;AACF,YAAA,WAAW,CAAC,UAAU,GAAG,UAAU;QACrC;aAAO,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,EAAE;YACvC,MAAM,UAAU,GAAkC,EAAE;AACpD,YAAA,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;gBACtB,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG;AACzC,oBAAA,GAAG,GAAG;AACN,oBAAA,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,QAAQ;AAC1B,oBAAA,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI;iBACxD;AACH,YAAA,CAAC,CAAC;AACF,YAAA,WAAW,CAAC,UAAU,GAAG,UAAU;QACrC;AAEA,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;QACzC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7B;AAEQ,IAAA,eAAe,CAAC,KAAU,EAAA;QAChC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,OAAO,QAAQ;QAAE;QAC9D,QAAQ,OAAO,KAAK;AAClB,YAAA,KAAK,SAAS;AACZ,gBAAA,OAAO,SAAS;AAClB,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,QAAQ;AACjB,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,QAAQ;AACpD,YAAA;AACE,gBAAA,OAAO,QAAQ;;IAErB;AAEQ,IAAA,WAAW,CAAC,KAAa,EAAA;QAC/B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC;AAEA,IAAA,sBAAsB,CAAC,SAAiB,EAAA;AACtC,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK;AAChD,QAAA,MAAM,cAAc,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,KAC5C,GAAG,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,GAAG,CAC7F;AAED,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK;QACnD,IAAI,aAAa,EAAE;YACjB,MAAM,iBAAiB,GAAG,EAAE,GAAG,aAAa,CAAC,UAAU,EAAE;YACzD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,SAAS,CAAC;YAEtF,IAAI,cAAc,EAAE;AAClB,gBAAA,iBAAiB,CAAC,cAAc,CAAC,CAAC,OAAO,GAAG,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,OAAO;AAEtF,gBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;AAC3B,oBAAA,GAAG,aAAa;AAChB,oBAAA,UAAU,EAAE,iBAAiB;AAC9B,iBAAA,CAAC;YACJ;QACF;AAEA,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC;IAC1C;IAEA,iBAAiB,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC;IAC/D;AAEA,IAAA,UAAU,CAAC,OAAwB,EAAA;AACjC,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK;QACnD,IAAI,aAAa,EAAE;YACjB,MAAM,UAAU,GAAkC,EAAE;AACpD,YAAA,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACtB,gBAAA,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG,GAAG;AAChD,YAAA,CAAC,CAAC;AAEF,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;AAC3B,gBAAA,GAAG,aAAa;AAChB,gBAAA,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC3D,UAAU;AACX,aAAA,CAAC;QACJ;AACA,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;IACnC;AAEA,IAAA,OAAO,CAAC,IAAW,EAAA;AACjB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;AAE3B,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK;QACnD,IAAI,aAAa,EAAE;AACjB,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;AAC3B,gBAAA,GAAG,aAAa;gBAChB,IAAI;AACL,aAAA,CAAC;QACJ;IACF;AAEA,IAAA,eAAe,CAAC,IAAW,EAAA;AACzB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IACpB;uGAnIW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA;;2FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;SCmBe,6BAA6B,GAAA;AAC3C,IAAA,MAAM,aAAa,GAAG,IAAI,gBAAgB,EAAE;AAC5C,IAAA,aAAa,CAAC,iBAAiB,GAAG,mBAAmB;AACrD,IAAA,aAAa,CAAC,aAAa,GAAG,gBAAgB;AAC9C,IAAA,aAAa,CAAC,iBAAiB,GAAG,iBAAiB;AACnD,IAAA,aAAa,CAAC,cAAc,GAAG,iBAAiB;AAChD,IAAA,aAAa,CAAC,aAAa,GAAG,eAAe;IAC7C,aAAa,CAAC,aAAa,GAAG,CAAC,IAAY,EAAE,QAAgB,EAAE,MAAc,KAAI;QAC/E,IAAI,MAAM,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,EAAE;YAClC,OAAO,CAAA,KAAA,EAAQ,MAAM,CAAA,CAAE;QACzB;AACA,QAAA,MAAM,UAAU,GAAG,IAAI,GAAG,QAAQ;AAClC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,QAAQ,EAAE,MAAM,CAAC;QACxD,OAAO,CAAA,EAAG,UAAU,GAAG,CAAC,MAAM,QAAQ,CAAA,IAAA,EAAO,MAAM,CAAA,CAAE;AACvD,IAAA,CAAC;AACD,IAAA,OAAO,aAAa;AACtB;MAUa,SAAS,CAAA;IACX,WAAW,GAAG,EAAE;IAChB,eAAe,GAAa,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAC3C,oBAAoB,GAAG,IAAI;IAC3B,mBAAmB,GAAG,KAAK;AAEjB,IAAA,WAAW,GAAG,IAAI,YAAY,EAAU;AACxC,IAAA,eAAe,GAAG,IAAI,YAAY,EAAU;AAC5C,IAAA,gBAAgB,GAAG,IAAI,YAAY,EAAQ;AAC3C,IAAA,eAAe,GAAG,IAAI,YAAY,EAAQ;AAC1C,IAAA,gBAAgB,GAAG,IAAI,YAAY,EAAS;AAC5C,IAAA,SAAS,GAAG,IAAI,YAAY,EAAa;AAE5D,IAAA,UAAU,GAAG,IAAI,kBAAkB,CAAM,EAAE,CAAC;IAC5C,SAAS,GAAG,IAAI,cAAc,CAAM,IAAI,EAAE,EAAE,CAAC;IAC7C,UAAU,GAAa,EAAE;IACzB,gBAAgB,GAAa,EAAE;IAC/B,WAAW,GAAG,EAAE;IACR,kBAAkB,GAAwB,IAAI;IAC9C,0BAA0B,GAAwB,IAAI;IACtD,gBAAgB,GAAwB,IAAI;IAC5C,kBAAkB,GAAwB,IAAI;IACtD,WAAW,GAAwB,IAAI;AAEnB,IAAA,IAAI;AACC,IAAA,SAAS;IAElC,UAAU,GAAG,CAAC;IACd,QAAQ,GAAG,EAAE;IACb,WAAW,GAAG,CAAC;IACP,YAAY,GAAG,CAAC;IAExB,aAAa,GAAA;QACX,OAAO,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC;IAC7C;AAEU,IAAA,YAAY,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACvC,IAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AACrC,IAAA,kBAAkB,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAE7D,IAAA,WAAA,GAAA;QAEE,IAAI,CAAC,yBAAyB,EAAE;QAChC,IAAI,CAAC,yBAAyB,EAAE;IAClC;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,MAAM,KAAI;YAC5E,IAAI,MAAM,EAAE;AACV,gBAAA,IAAI,CAAC,WAAW,GAAG,MAAM;AACzB,gBAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO;YAClC;AACF,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,SAAS,CAC3E,CAAC,cAAc,KAAI;AACjB,YAAA,IAAI,CAAC,gBAAgB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,QAAQ,CAAC;AAC1E,QAAA,CAAC,CACF;AACD,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AACjE,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI;YAC3B,IAAI,CAAC,gBAAgB,EAAE;AACzB,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,KAAI;AAClF,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW;YAC9B,IAAI,CAAC,WAAW,EAAE;AACpB,QAAA,CAAC,CAAC;IACJ;IAEA,eAAe,GAAA;QACb,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;;QAGhC,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;gBAC1C,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC;gBAC/C,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;gBACvC,IAAI,CAAC,SAAS,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB;YACjE;AACF,QAAA,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAK;YACpC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AACrD,QAAA,CAAC,CAAC;IACJ;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,kBAAkB,EAAE,WAAW,EAAE;AACtC,QAAA,IAAI,CAAC,0BAA0B,EAAE,WAAW,EAAE;AAC9C,QAAA,IAAI,CAAC,gBAAgB,EAAE,WAAW,EAAE;AACpC,QAAA,IAAI,CAAC,kBAAkB,EAAE,WAAW,EAAE;IACxC;IAEA,yBAAyB,GAAA;QACvB,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAI;AACvD,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC5B,YAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,gBAAA,OAAO,KAAK,CAAC,WAAW,EAAE;YAC5B;AAAO,iBAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACpC,gBAAA,OAAO,KAAK;YACd;AAAO,iBAAA,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;gBACrC,OAAO,KAAK,GAAG,CAAC,GAAG,CAAC;YACtB;AAAO,iBAAA,IAAI,KAAK,YAAY,IAAI,EAAE;AAChC,gBAAA,OAAO,KAAK,CAAC,OAAO,EAAE;YACxB;AAAO,iBAAA,IAAI,KAAK,KAAK,IAAI,EAAE;AACzB,gBAAA,OAAO,EAAE;YACX;AAAO,iBAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAC9B,gBAAA,OAAO,SAAS;YAClB;AAAO,iBAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACpC,gBAAA,OAAO,KAAK,CAAC,QAAQ,EAAE;YACzB;AACA,YAAA,OAAO,KAAK;AACd,QAAA,CAAC;IACH;IAEA,yBAAyB,GAAA;QACvB,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,CAAC,IAAS,EAAE,MAAc,KAAI;YAC9D,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;YAC/C,IAAI,CAAC,WAAW,EAAE;AAChB,gBAAA,OAAO,IAAI;YACb;AACA,YAAA,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,WAAmB,EAAE,GAAW,KAAI;AAC5E,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;AACvB,gBAAA,QACE,WAAW;qBACV,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC;YAEjF,CAAC,EAAE,EAAE,CAAC;YACN,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC5C,QAAA,CAAC;IACH;IAEA,WAAW,GAAA;QACT,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AAC9D,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,gBAAgB;IAC3C;AAEA,IAAA,sBAAsB,CAAC,SAAiB,EAAA;AACtC,QAAA,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,SAAS,CAAC;IACrD;AAEA,IAAA,eAAe,CAAC,MAAc,EAAA;QAC5B,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AAC7F,YAAA,OAAO,IAAI;QACb;AACA,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,KAAK;IAC9D;AAEA,IAAA,eAAe,CAAC,MAAc,EAAA;QAC5B,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AAC7F,YAAA,OAAO,MAAM;QACf;AACA,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,MAAM;IAC7D;AAEA,IAAA,aAAa,CAAC,MAAc,EAAA;QAC1B,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AAC7F,YAAA,OAAO,QAAQ;QACjB;AACA,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,QAAQ;IAC7D;AAEA,IAAA,gBAAgB,CAAC,MAAc,EAAA;QAC7B,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AAC7F,YAAA,OAAO,MAAM;QACf;AACA,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,MAAM;IAC9D;AAEA,IAAA,gBAAgB,CAAC,MAAc,EAAA;QAC7B,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AAC7F,YAAA,OAAO,EAAE;QACX;AACA,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,EAAE;IAC1D;IAEA,aAAa,GAAA;QACX,IACE,CAAC,IAAI,CAAC,SAAS;AACf,YAAA,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY;YAC7B,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EACzC;AACA,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACvB,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EACpC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CACpC;AACD,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC;AAEhF,QAAA,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;AAChC,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACvE;IAEA,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE;YACpD;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;QACxB;aAAO;AACL,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ;YACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACvB,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EACpC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CACpC;AACD,YAAA,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC;AAEhF,YAAA,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9D;IACF;AAEA,IAAA,kBAAkB,CAAC,SAAe,EAAA;AAChC,QAAA,IAAI,SAAS,CAAC,SAAS,EAAE;YACvB,IAAI,CAAC,aAAa,CAAC,QAAQ,CACzB,CAAA,SAAA,EAAY,SAAS,CAAC,SAAS,KAAK,KAAK,GAAG,YAAY,GAAG,aAAa,CAAA,CAAE,CAC3E;QACH;aAAO;AACL,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QACnD;IACF;IAEA,SAAS,CAAC,KAAa,EAAE,IAAS,EAAA;AAChC,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,aAAa,CAAC,IAAY,EAAA;AACxB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;AAE3B,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,KAAK,IAAI,GAAG,CAAC,EAAE;YAC3D,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC;QACrC;IACF;AAEA,IAAA,iBAAiB,CAAC,QAAgB,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;AAEnC,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC1D,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ;QACpC;IACF;AAEA;;AAEG;AACH,IAAA,WAAW,CAAC,KAAgB,EAAA;AAC1B,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC;QACnC,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC;QAC5D,MAAM,UAAU,GACd,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,OAAO,KAAK,IAAI,CAAC,YAAY;;QAE1F,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE;AACpC,YAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC;QACxC;;AAGA,QAAA,IAAI,OAAO,KAAK,IAAI,CAAC,WAAW,EAAE;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC;AACrC,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;;YAG3B,IAAI,WAAW,EAAE;AACf,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;AAC5B,gBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAChD;iBAAO,IAAI,UAAU,EAAE;AACrB,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;AAC3B,gBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC9C;QACF;AAEA,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;IAC5B;AAEA;;AAEG;IACH,aAAa,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE;AAC1B,YAAA,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AACrB,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;AAC5B,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAChD;IACF;AAEA;;AAEG;IACH,YAAY,GAAA;QACV,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxE,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE;AACjC,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC5B,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;AAC3B,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC9C;IACF;AAEA;;AAEG;IACH,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B;QACF;QAEA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM;IAC/C;uGAxTW,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,SAAA,EAFT,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,6BAA6B,EAAE,EAAE,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA0B1E,OAAO,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACP,YAAY,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9EzB,q/IAgIA,69GD9EY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sFAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,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,EAAAE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,4BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,UAAA,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,EAAE,gBAAgB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA;;2FAG7C,SAAS,EAAA,UAAA,EAAA,CAAA;kBAPrB,SAAS;+BACE,WAAW,EAAA,OAAA,EAGZ,CAAC,YAAY,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAA,SAAA,EAC9C,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,6BAA6B,EAAE,EAAE,CAAC,EAAA,QAAA,EAAA,q/IAAA,EAAA,MAAA,EAAA,CAAA,s6GAAA,CAAA,EAAA;;sBAGpF;;sBACA;;sBACA;;sBACA;;sBAEA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAaA,SAAS;uBAAC,OAAO;;sBACjB,SAAS;uBAAC,YAAY;;;MEvEZ,+BAA+B,CAAA;AAClC,IAAA,aAAa,GAAG,IAAI,OAAO,EAAU;AAE7C,IAAA,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;AAE3C,IAAA,YAAY,CAAC,WAAmB,EAAA;AAC9B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;IACtC;uGAPW,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAA/B,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,cAF9B,MAAM,EAAA,CAAA;;2FAEP,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAH3C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCCY,qBAAqB,CAAA;AACxB,IAAA,WAAW,GAAG,IAAI,eAAe,CAAS,CAAC,CAAC;AAC5C,IAAA,eAAe,GAAG,IAAI,eAAe,CAAS,EAAE,CAAC;AACjD,IAAA,iBAAiB,GAAG,IAAI,eAAe,CAAS,CAAC,CAAC;AAEnD,IAAA,YAAY,GAAuB,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;AAClE,IAAA,SAAS,GAAuB,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;AACnE,IAAA,WAAW,GAAuB,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;AAE9E,IAAA,WAAA,GAAA,EAAe;AAEf;;;AAGG;AACH,IAAA,OAAO,CAAC,IAAY,EAAA;QAClB,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AACnC,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7B;IACF;AAEA;;;AAGG;AACH,IAAA,WAAW,CAAC,IAAY,EAAA;QACtB,IAAI,IAAI,KAAK,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;AACvC,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;QACjC;IACF;AAEA;;;AAGG;AACH,IAAA,aAAa,CAAC,KAAa,EAAA;QACzB,IAAI,KAAK,KAAK,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;AAC1C,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;QACpC;IACF;AAEA;;AAEG;IACH,cAAc,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK;IAC/B;AAEA;;AAEG;IACH,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK;IACnC;AAEA;;AAEG;IACH,aAAa,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK;IACrC;AAEA;;AAEG;IACH,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC;uGArEW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAArB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA;;2FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCIY,qBAAqB,CAAA;AACxB,IAAA,kBAAkB,GAAG,IAAI,eAAe,CAA+B,IAAI,CAAC;AAC5E,IAAA,WAAW,GAAG,IAAI,eAAe,CAAQ,EAAE,CAAC;AAC5C,IAAA,cAAc,GAAG,IAAI,eAAe,CAA2B,EAAE,CAAC;AAE1E,IAAA,YAAY,GAA6C,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AAC/F,IAAA,QAAQ,GAAyC,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;AACnF,IAAA,KAAK,GAAsB,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;IAE1D,eAAe,GAAyB,IAAI,CAAC,QAAQ,CAAC,IAAI,CACxD,GAAG,CAAC,CAAC,OAAO,KACV,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAChF,CACF;AAED,IAAA,WAAW,CAAC,IAAW,EAAE,OAAkC,EAAE,YAA6C,EAAA;AACxG,QAAA,MAAM,WAAW,GAA0B;YACzC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG,EAAE;YAC1E,IAAI;AACJ,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,MAAM,EAAE;AACN,gBAAA,MAAM,EAAE,yCAAyC;AACjD,gBAAA,cAAc,EAAE,8BAA8B;AAC/C,aAAA;AACD,YAAA,GAAG,YAAY;SAChB;QAED,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,EAAE;YAC9B,MAAM,UAAU,GAA2C,EAAE;AAC7D,YAAA,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;gBACtB,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG;AACzC,oBAAA,GAAG,GAAG;oBACN,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;AAC7E,oBAAA,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI;iBACxD;AACH,YAAA,CAAC,CAAC;AACF,YAAA,WAAW,CAAC,UAAU,GAAG,UAAU;QACrC;aAAO,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,EAAE;YACvC,MAAM,UAAU,GAA2C,EAAE;AAC7D,YAAA,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;gBACtB,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG;AACzC,oBAAA,GAAG,GAAG;AACN,oBAAA,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,QAAQ;AAC1B,oBAAA,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI;iBACxD;AACH,YAAA,CAAC,CAAC;AACF,YAAA,WAAW,CAAC,UAAU,GAAG,UAAU;QACrC;AAEA,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;QACzC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7B;AAEQ,IAAA,eAAe,CAAC,KAAU,EAAA;QAChC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AAAC,YAAA,OAAO,QAAQ;QAAC;QAC5D,QAAQ,OAAO,KAAK;AAClB,YAAA,KAAK,SAAS;AACZ,gBAAA,OAAO,SAAS;AAClB,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,QAAQ;AACjB,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,QAAQ;AACpD,YAAA;AACE,gBAAA,OAAO,QAAQ;;IAErB;AAEQ,IAAA,WAAW,CAAC,KAAa,EAAA;QAC/B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC;AAEA,IAAA,sBAAsB,CAAC,SAAiB,EAAA;AACtC,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK;AAChD,QAAA,MAAM,cAAc,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,KAC5C,GAAG,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,GAAG,CAC7F;AAED,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK;QACnD,IAAI,aAAa,EAAE;YACjB,MAAM,iBAAiB,GAAG,EAAE,GAAG,aAAa,CAAC,UAAU,EAAE;YACzD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,SAAS,CAAC;YAEtF,IAAI,cAAc,EAAE;AAClB,gBAAA,iBAAiB,CAAC,cAAc,CAAC,CAAC,OAAO,GAAG,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,OAAO;AAEtF,gBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;AAC3B,oBAAA,GAAG,aAAa;AAChB,oBAAA,UAAU,EAAE,iBAAiB;AAC9B,iBAAA,CAAC;YACJ;QACF;AAEA,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC;IAC1C;IAEA,iBAAiB,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC;IAC/D;AAEA,IAAA,UAAU,CAAC,OAAiC,EAAA;AAC1C,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK;QACnD,IAAI,aAAa,EAAE;YACjB,MAAM,UAAU,GAA2C,EAAE;AAC7D,YAAA,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACtB,gBAAA,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG,GAAG;AAChD,YAAA,CAAC,CAAC;AAEF,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;AAC3B,gBAAA,GAAG,aAAa;AAChB,gBAAA,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC3D,UAAU;AACX,aAAA,CAAC;QACJ;AACA,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;IACnC;AAEA,IAAA,OAAO,CAAC,IAAW,EAAA;AACjB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;AAE3B,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK;QACnD,IAAI,aAAa,EAAE;AACjB,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;AAC3B,gBAAA,GAAG,aAAa;gBAChB,IAAI;AACL,aAAA,CAAC;QACJ;IACF;AAEA,IAAA,eAAe,CAAC,IAAW,EAAA;AACzB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IACpB;uGAnIW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAArB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA;;2FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;SCiBe,iCAAiC,GAAA;AAC/C,IAAA,MAAM,aAAa,GAAG,IAAI,gBAAgB,EAAE;AAC5C,IAAA,aAAa,CAAC,iBAAiB,GAAG,mBAAmB;AACrD,IAAA,aAAa,CAAC,aAAa,GAAG,gBAAgB;AAC9C,IAAA,aAAa,CAAC,iBAAiB,GAAG,iBAAiB;AACnD,IAAA,aAAa,CAAC,cAAc,GAAG,iBAAiB;AAChD,IAAA,aAAa,CAAC,aAAa,GAAG,eAAe;IAC7C,aAAa,CAAC,aAAa,GAAG,CAAC,IAAY,EAAE,QAAgB,EAAE,MAAc,KAAI;QAC/E,IAAI,MAAM,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,EAAE;YAClC,OAAO,CAAA,KAAA,EAAQ,MAAM,CAAA,CAAE;QACzB;AACA,QAAA,MAAM,UAAU,GAAG,IAAI,GAAG,QAAQ;AAClC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,QAAQ,EAAE,MAAM,CAAC;QACxD,OAAO,CAAA,EAAG,UAAU,GAAG,CAAC,MAAM,QAAQ,CAAA,IAAA,EAAO,MAAM,CAAA,CAAE;AACvD,IAAA,CAAC;AACD,IAAA,OAAO,aAAa;AACtB;MAUa,kBAAkB,CAAA;IACrB,uBAAuB,GAAmB,EAAE;AAC3C,IAAA,iBAAiB;IACjB,WAAW,GAAG,EAAE;IAChB,eAAe,GAAa,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAC3C,oBAAoB,GAAG,IAAI;AAEjB,IAAA,WAAW,GAAG,IAAI,YAAY,EAAU;AACxC,IAAA,eAAe,GAAG,IAAI,YAAY,EAAU;AAC5C,IAAA,gBAAgB,GAAG,IAAI,YAAY,EAAQ;AAC3C,IAAA,eAAe,GAAG,IAAI,YAAY,EAAQ;AAC1C,IAAA,gBAAgB,GAAG,IAAI,YAAY,EAAS;AAC5C,IAAA,SAAS,GAAG,IAAI,YAAY,EAAa;AACzC,IAAA,UAAU,GAAG,IAAI,YAAY,EAAO;AAGvD,IAAA,UAAU,GAAG,IAAI,kBAAkB,CAAM,EAAE,CAAC;IAC5C,SAAS,GAAG,IAAI,cAAc,CAAM,IAAI,EAAE,EAAE,CAAC;IAC7C,UAAU,GAAa,EAAE;IACzB,gBAAgB,GAAa,EAAE;IAC/B,WAAW,GAAG,EAAE;IACR,kBAAkB,GAAwB,IAAI;IAC9C,0BAA0B,GAAwB,IAAI;IACtD,gBAAgB,GAAwB,IAAI;IAC5C,kBAAkB,GAAwB,IAAI;IACtD,WAAW,GAAiC,IAAI;AAE5B,IAAA,IAAI;AACC,IAAA,SAAS;IAElC,UAAU,GAAG,CAAC;IACd,QAAQ,GAAG,EAAE;IACb,WAAW,GAAG,CAAC;IACP,YAAY,GAAG,CAAC;AAGd,IAAA,iBAAiB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACjD,IAAA,YAAY,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAC5C,IAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AACrC,IAAA,kBAAkB,GAAG,MAAM,CAAC,+BAA+B,CAAC;AAGtE,IAAA,WAAA,GAAA;QAEE,IAAI,CAAC,yBAAyB,EAAE;QAChC,IAAI,CAAC,yBAAyB,EAAE;IAClC;AAEA,IAAA,aAAa,CAAC,IAAY,EAAA;AACxB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;AAE3B,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,KAAK,IAAI,GAAG,CAAC,EAAE;YAC3D,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC;QACrC;IACF;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,MAAM,KAAI;YAC5E,IAAI,MAAM,EAAE;AACV,gBAAA,IAAI,CAAC,WAAW,GAAG,MAAM;AACzB,gBAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO;YAClC;AACF,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,SAAS,CAC3E,CAAC,cAAc,KAAI;AACjB,YAAA,IAAI,CAAC,gBAAgB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,QAAQ,CAAC;AAC1E,QAAA,CAAC,CACF;AACD,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AACjE,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI;YAC3B,IAAI,CAAC,gBAAgB,EAAE;AACzB,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,KAAI;AAClF,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW;YAC9B,IAAI,CAAC,WAAW,EAAE;AACpB,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAC/B,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AACrD,YAAA,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;AAC7B,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YAC1B;AACF,QAAA,CAAC,CAAC,EAEF,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AAClD,YAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;AAC1B,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;YAC9B;QACF,CAAC,CAAC,CACH;IACH;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,kBAAkB,EAAE,WAAW,EAAE;AACtC,QAAA,IAAI,CAAC,0BAA0B,EAAE,WAAW,EAAE;AAC9C,QAAA,IAAI,CAAC,gBAAgB,EAAE,WAAW,EAAE;AACpC,QAAA,IAAI,CAAC,kBAAkB,EAAE,WAAW,EAAE;AACtC,QAAA,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC;IAClE;AAEA,IAAA,gBAAgB,CAAC,aAAsB,EAAA;QACrC,IAAI,CAAC,UAAU,GAAG,aAAa,IAAI,IAAI,CAAC,UAAU;QAClD,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;QAErD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AACnF,QAAA,MAAM,aAAa,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC;AAEjD,QAAA,IAAI,IAAI,CAAC,WAAW,GAAG,aAAa,EAAE;AACpC,YAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;QACnC;IACF;AAEA,IAAA,iBAAiB,CAAC,QAAgB,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;AAEnC,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC1D,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ;QACpC;IACF;AAEA,IAAA,eAAe,CAAC,MAAc,EAAA;QAC5B,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AAC7F,YAAA,OAAO,MAAM;QACf;AACA,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,MAAM;IAC7D;AAEA,IAAA,gBAAgB,CAAC,MAAc,EAAA;QAC7B,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AAC7F,YAAA,OAAO,MAAM;QACf;AACA,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,MAAM;IAC9D;AAEA,IAAA,aAAa,CAAC,MAAc,EAAA;QAC1B,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AAC7F,YAAA,OAAO,QAAQ;QACjB;AACA,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,QAAQ;IAC7D;AAEA,IAAA,kBAAkB,CAAC,SAAe,EAAA;AAChC,QAAA,IAAI,SAAS,CAAC,SAAS,EAAE;YACvB,IAAI,CAAC,aAAa,CAAC,QAAQ,CACzB,CAAA,SAAA,EAAY,SAAS,CAAC,SAAS,KAAK,KAAK,GAAG,YAAY,GAAG,aAAa,CAAA,CAAE,CAC3E;QACH;aAAO;AACL,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QACnD;IACF;AAEA,IAAA,gBAAgB,CAAC,KAAgB,EAAA;AAC/B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;QAC9B,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC;QAClD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IACxC;IAEA,WAAW,GAAA;QACT,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AAC9D,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,gBAAgB;IAC3C;IAEA,yBAAyB,GAAA;QACvB,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAI;AACvD,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC5B,YAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,gBAAA,OAAO,KAAK,CAAC,WAAW,EAAE;YAC5B;AAAO,iBAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACpC,gBAAA,OAAO,KAAK;YACd;AAAO,iBAAA,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;gBACrC,OAAO,KAAK,GAAG,CAAC,GAAG,CAAC;YACtB;AAAO,iBAAA,IAAI,KAAK,YAAY,IAAI,EAAE;AAChC,gBAAA,OAAO,KAAK,CAAC,OAAO,EAAE;YACxB;AAAO,iBAAA,IAAI,KAAK,KAAK,IAAI,EAAE;AACzB,gBAAA,OAAO,EAAE;YACX;AAAO,iBAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAC9B,gBAAA,OAAO,SAAS;YAClB;AAAO,iBAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACpC,gBAAA,OAAO,KAAK,CAAC,QAAQ,EAAE;YACzB;AACA,YAAA,OAAO,KAAK;AACd,QAAA,CAAC;IACH;IAEA,yBAAyB,GAAA;QACvB,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,CAAC,IAAS,EAAE,MAAc,KAAI;YAC9D,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;YAC/C,IAAI,CAAC,WAAW,EAAE;AAChB,gBAAA,OAAO,IAAI;YACb;AACA,YAAA,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,WAAmB,EAAE,GAAW,KAAI;AAC5E,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;AACvB,gBAAA,QACE,WAAW;qBACV,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC;YAEjF,CAAC,EAAE,EAAE,CAAC;YACN,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC5C,QAAA,CAAC;IACH;AAEA,IAAA,UAAU,CAAC,GAAQ,EAAA;AACjB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;IAC3B;AAEA,IAAA,WAAW,CAAC,KAAgB,EAAA;AAC1B,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC;QACnC,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC;QAC5D,MAAM,UAAU,GACd,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,OAAO,KAAK,IAAI,CAAC,YAAY;;QAE1F,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE;AACpC,YAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC;QACxC;;AAGA,QAAA,IAAI,OAAO,KAAK,IAAI,CAAC,WAAW,EAAE;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC;AACrC,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;;YAG3B,IAAI,WAAW,EAAE;AACf,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;AAC5B,gBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAChD;iBAAO,IAAI,UAAU,EAAE;AACrB,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;AAC3B,gBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC9C;QACF;AAEA,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;IAC5B;AAEA,IAAA,gBAAgB,CAAC,MAAc,EAAA;QAC7B,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AAC7F,YAAA,OAAO,EAAE;QACX;AACA,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,EAAE;IAC1D;uGAhPW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,SAAA,EAFlB,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,iCAAiC,EAAE,EAAE,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA6B9E,OAAO,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACP,YAAY,gDChFzB,osFAoEA,EAAA,MAAA,EAAA,CAAA,4nGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDnBY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sFAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,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,EAAAE,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,UAAA,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,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAG3B,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAR9B,SAAS;+BACE,qBAAqB,EAAA,aAAA,EAGhB,iBAAiB,CAAC,IAAI,WAC5B,CAAC,YAAY,EAAE,cAAc,CAAC,EAAA,SAAA,EAC5B,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,iCAAiC,EAAE,EAAE,CAAC,EAAA,QAAA,EAAA,osFAAA,EAAA,MAAA,EAAA,CAAA,4nGAAA,CAAA,EAAA;;sBAIxF;;sBACA;;sBACA;;sBACA;;sBAEA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAcA,SAAS;uBAAC,OAAO;;sBACjB,SAAS;uBAAC,YAAY;;;MEpEZ,SAAS,CAAA;AACpB,IAAA,IAAI;AAOJ,IAAA,QAAQ;AACR,IAAA,UAAU;AAEF,IAAA,SAAS,GAA8B;AAC7C,QAAA,OAAO,EAAE,8BAA8B;AACvC,QAAA,KAAK,EAAE,8BAA8B;AACrC,QAAA,IAAI,EAAE,8BAA8B;AACpC,QAAA,OAAO,EAAE,8BAA8B;KACxC;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,CAAA,MAAA,EAAS,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA,CAAE;IAC7C;uGArBW,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAT,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZtB,+sBAmBA,EAAA,MAAA,EAAA,CAAA,m9CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDZY,YAAY,6HAAE,gBAAgB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAK7B,SAAS,EAAA,UAAA,EAAA,CAAA;kBAPrB,SAAS;+BACE,WAAW,EAAA,OAAA,EACZ,CAAC,YAAY,EAAE,gBAAgB,CAAC,EAAA,eAAA,EAGxB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+sBAAA,EAAA,MAAA,EAAA,CAAA,m9CAAA,CAAA,EAAA;;;MEApC,gBAAgB,CAAA;AACP,IAAA,OAAA;AAApB,IAAA,WAAA,CAAoB,OAAgB,EAAA;QAAhB,IAAA,CAAA,OAAO,GAAP,OAAO;IAAa;IAC9B,WAAW,GAAG,IAAI;AAE5B,IAAA,IAAI,CAAC,MAAoB,EAAA;AACvB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACrC,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,kBAAkB,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;YAClF,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE;AACtD,SAAA,CAAC;QAEF,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACvE,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC;AACnD,QAAA,YAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM;QAEnC,UAAU,CAAC,MAAK;YACd,UAAU,CAAC,OAAO,EAAE;AACtB,QAAA,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC;IACtB;IAEA,uBAAuB,GAAA;AACrB,QAAA,OAAO,SAAS;IAClB;uGAtBW,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAR,IAAA,CAAA,OAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA;;2FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCCY,aAAa,CAAA;IACf,KAAK,GAAG,EAAE;IACV,QAAQ,GAAG,KAAK;uGAFd,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECV1B,6FACA,EAAA,MAAA,EAAA,CAAA,mFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDOY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAEX,aAAa,EAAA,UAAA,EAAA,CAAA;kBAPzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAAA,UAAA,EACR,IAAI,EAAA,OAAA,EAGP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,6FAAA,EAAA,MAAA,EAAA,CAAA,mFAAA,CAAA,EAAA;;sBAGtB;;sBACA;;;MEDU,gBAAgB,CAAA;AAC3B,IAAA,WAAA,GAAA,EAAe;AACiB,IAAA,KAAK;AAC5B,IAAA,KAAK;IACd,eAAe,GAAG,CAAC;IACnB,UAAU,GAAG,CAAC;IACd,QAAQ,GAAG,IAAI;AAEI,IAAA,eAAe,GAAuB,IAAI,YAAY,EAAQ;IAEjF,kBAAkB,GAAA;QAChB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI;YACvC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;QACrC;IACF;IAEA,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,YAAA,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChD,IAAI,CAAC,eAAe,EAAE;AACtB,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,GAAG,IAAI;YAC5D;iBAAO;AACL,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;YACjC;QACF;IACF;IAEA,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,YAAA,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE;AAC5B,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,GAAG,KAAK;gBAC3D,IAAI,CAAC,eAAe,EAAE;AACtB,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,GAAG,IAAI;YAC5D;QACF;IACF;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC;AACxB,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI;QACzC;IACF;uGA5CW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAEV,aAAa,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECbhC,sPAWA,EAAA,MAAA,EAAA,CAAA,uKAAA,CAAA,EAAA,CAAA;;2FDAa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAN5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,cACX,IAAI,EAAA,QAAA,EAAA,sPAAA,EAAA,MAAA,EAAA,CAAA,uKAAA,CAAA,EAAA;;sBAMf,eAAe;uBAAC,aAAa;;sBAC7B;;sBAKA;;;AEnBH;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-opalbytes-components.mjs","sources":["../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-button/base-button.component.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-button/base-button.component.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-input/base-input.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-input/base-input.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-time-range/base-time-range.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-time-range/base-time-range.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/autocomplete/autocomplete.component.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/autocomplete/autocomplete.component.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/drop-down/drop-down.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/drop-down/drop-down.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/links-button/links-button.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/links-button/links-button.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/footer/footer.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/footer/footer.html","../../../projects/ngx-opalbytes-components/src/lib/material.module.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/paginator/paginator.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/paginator/paginator.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/time-picker/time-picker.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/time-picker/time-picker.html","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-modal/base-modal.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-modal/base-modal.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-modal/base-modal.html","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-dialog/base-dialog.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-dialog/base-dialog.html","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-dialog/base-dialog.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table/base-filter-table.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table/base-table.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table/base-table.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table/base-table.html","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table-paginated/base-filter-table-paginated.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table-paginated/base-pagination.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table-paginated/base-table-paginated.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table-paginated/base-table-paginated.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table-paginated/base-table-paginated.html","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-alert/base-alert.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-alert/base-alert.html","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-alert/base-alert.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/stepper/step/step.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/stepper/step/step.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/stepper/stepper.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/stepper/stepper.html","../../../projects/ngx-opalbytes-components/src/public-api.ts","../../../projects/ngx-opalbytes-components/src/ngx-opalbytes-components.ts"],"sourcesContent":["import { CommonModule } from \"@angular/common\";\nimport { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\n\nimport { LucideDynamicIcon } from \"@lucide/angular\";\n\n@Component({\n standalone: true,\n selector: \"cao-button\",\n templateUrl: \"./base-button.component.html\",\n styleUrls: [\"./base-button.component.scss\"],\n imports: [CommonModule, MatTooltipModule, LucideDynamicIcon],\n})\nexport class CaoBaseButtonComponent implements OnInit{\n @Output() readonly buttonClick = new EventEmitter<void>();\n\n @Input() buttonText = \"Clique!\";\n @Input() isDarkMode = false;\n @Input() isDisabled = false;\n @Input() isLoading = false;\n @Input() btnClass = \"\";\n\n @Input() tooltip?:string;\n @Input() trailingIcon?: string;\n @Input() leadingIcon?: string;\n @Input() isLucideIcon = true;\n @Input() dataCy?: string;\n @Input() iconColor?: string;\n @Input() strokeWidthIcon = 1\n\n ngOnInit(): void {\n if (!this.dataCy) {\n this.dataCy = `btn-${this.buttonText.replace(/\\s+/g, '-').toLowerCase()}`;\n }\n\n if(!this.tooltip && this.buttonText.length >= 20){\n this.tooltip = this.buttonText\n }\n }\n\n onClick(): void {\n if (!this.isDisabled && !this.isLoading) {\n this.buttonClick.emit();\n }\n }\n}\n","<button\n type=\"button\"\n class=\"base-button\"\n matTooltipPosition=\"below\"\n matTooltipClass=\"custom-arrow-tooltip\"\n [matTooltip]=\"tooltip\"\n [matTooltipDisabled]=\"!tooltip\"\n [class.dark-mode]=\"isDarkMode\"\n [class.disabled]=\"isDisabled\"\n [class.loading]=\"isLoading\"\n [disabled]=\"isDisabled || isLoading\"\n [attr.data-cy]=\"dataCy\"\n (click)=\"onClick()\">\n @if (leadingIcon) {\n <span class=\"leading-icon\">\n @if (isLucideIcon) {\n <svg [lucideIcon]=\"leadingIcon\" [style.color]=\"iconColor\" [strokeWidth]=\"strokeWidthIcon\"></svg>\n } @else {\n <img alt=\"icon\" [src]=\"leadingIcon\" />\n }\n </span>\n } {{ buttonText }} @if (trailingIcon) {\n <span class=\"trailing-icon\">\n @if (isLucideIcon) {\n <svg [lucideIcon]=\"trailingIcon\" [style.color]=\"iconColor\" [strokeWidth]=\"strokeWidthIcon\"></svg>\n } @else {\n <img alt=\"icon\" [src]=\"trailingIcon\" />\n }\n </span>\n } @if (isLoading) {\n <span class=\"loader\"></span>\n }\n</button>\n","import { CommonModule } from \"@angular/common\";\nimport { Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { AbstractControl, ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from \"@angular/forms\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\n\nimport { LucideDynamicIcon } from \"@lucide/angular\";\nimport { NgxMaskDirective, provideNgxMask } from \"ngx-mask\";\n\nexport type CaoTypeInputs = 'text' | 'textarea' | 'number' | 'password' | 'date'\n\n@Component({\n standalone: true,\n selector: \"cao-input\",\n templateUrl: \"./base-input.html\",\n styleUrls: [\"./base-input.css\"],\n imports: [CommonModule, FormsModule, NgxMaskDirective, MatTooltipModule, LucideDynamicIcon],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: CaoBaseInput,\n multi: true,\n },\n provideNgxMask(),\n ],\n})\nexport class CaoBaseInput implements ControlValueAccessor {\n @Input() type: CaoTypeInputs = \"text\" ;\n @Input() placeholder = \"\";\n @Input() inputClass = \"\";\n @Input() value: string | number | boolean | Date = \"\";\n @Input() errorMessage = \"\";\n @Input() isDisabled = false;\n @Input() maxLength?: number;\n @Input() searchMode = false;\n @Input() showBorder = false;\n @Input() isLucideIcon = false;\n @Input() iconColor = \"\";\n @Input() mask?: string;\n @Input() control?: AbstractControl | null;\n @Input() tooltip = \"\";\n @Input() dataCy?: string = \"\";\n @Input() textareaRows?: string = \"\";\n\n @Input() decimalMarker: \".\" | \",\" | [\".\", \",\"] = \",\";\n @Input() thousandSeparator = \".\";\n @Input() allowNegativeNumbers = false;\n @Input() separatorLimit = \"\";\n\n @Input() set leadingIcon(value: string) {\n this._leadingIcon = value;\n this.icon = true;\n }\n\n @Input() set trailingIcon(value: string) {\n this._trailingIcon = value;\n this.icon = true;\n }\n\n @Output() readonly valueChange = new EventEmitter<string>();\n @Output() readonly searchClick = new EventEmitter<void>();\n @Output() readonly inputChange = new EventEmitter<string>();\n\n isFocused = false;\n icon = false;\n _leadingIcon?: string;\n _trailingIcon?: string;\n\n onChange: any = () => { };\n onTouched: any = () => { };\n\n get hasError() {\n return !!this.errorMessage;\n }\n\n @Input() controlName = \"\";\n\n get controlNameValue(): string {\n return this.controlName;\n }\n\n onInput(event: Event) {\n const newValue = (event.target as HTMLInputElement).value;\n this.value = newValue;\n this.onChange(newValue);\n this.valueChange.emit(newValue);\n }\n\n onInputChange(event: Event) {\n const newValue = (event.target as HTMLInputElement).value;\n this.value = newValue;\n this.inputChange.emit(newValue);\n }\n\n onFocus() {\n this.isFocused = true;\n this.onTouched();\n }\n\n onBlur() {\n this.isFocused = false;\n this.onTouched();\n\n if (this.control?.touched && this.control?.valid && this.control?.value) {\n setTimeout(() => {\n const active = document.activeElement as HTMLElement;\n const current = document.querySelector(`[formcontrolname=\"${this.controlNameValue}\"]`);\n if (!current || !active || !current.contains(active)) {\n this.control?.markAsUntouched();\n }\n });\n }\n }\n\n onSearchClick() {\n this.searchClick.emit();\n }\n\n writeValue(value: string | null | undefined): void {\n this.value = value || \"\";\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n}\n","<div class=\"form-field input-component\" [class.search-mode]=\"searchMode\">\n <div class=\"input-wrapper\" [class.has-leading-icon]=\"_leadingIcon\" [class.has-trailing-icon]=\"_trailingIcon\"\n [class.focused]=\"isFocused\">\n @if (_leadingIcon) { @if (isLucideIcon) {\n <div class=\"icon\">\n <svg [lucideIcon]=\"_leadingIcon\" [style.color]=\"iconColor\"></svg>\n </div>\n } @else {\n <div class=\"icon\">\n <img alt=\"ícone de início\" [src]=\"_leadingIcon\"/>\n </div>\n } } @switch (type) { \n @case ('textarea') {\n <textarea matTooltip=\"{{ tooltip }}\" matTooltipPosition=\"above\" matTooltipClass=\"custom-arrow-tooltip\" [attr.data-cy]=\"dataCy\"\n [placeholder]=\"placeholder\" [disabled]=\"isDisabled\" [ngClass]=\"[\n inputClass,\n control?.touched && control?.invalid ? 'invalid' : '',\n control?.touched && control?.valid && control?.value ? 'valid' : ''\n ]\" [attr.maxlength]=\"maxLength\"\n [rows]=\"textareaRows\" [mask]=\"mask\" [allowNegativeNumbers]=\"allowNegativeNumbers\" [thousandSeparator]=\"thousandSeparator\" [decimalMarker]=\"decimalMarker\" [separatorLimit]=\"separatorLimit\"\n [(ngModel)]=\"value\" (input)=\"onInput($event)\"\n (focus)=\"onFocus()\" (blur)=\"onBlur()\"></textarea>\n } \n @default {\n <input matTooltip=\"{{ tooltip }}\" matTooltipPosition=\"below\" matTooltipClass=\"custom-arrow-tooltip\" [attr.data-cy]=\"dataCy\" [type]=\"type\"\n [placeholder]=\"placeholder\" [disabled]=\"isDisabled\" [ngClass]=\"[\n inputClass,\n control?.touched && control?.invalid ? 'invalid' : '',\n control?.touched && control?.valid && control?.value ? 'valid' : ''\n ]\" [attr.maxlength]=\"maxLength\"\n [mask]=\"mask\" [allowNegativeNumbers]=\"allowNegativeNumbers\" [thousandSeparator]=\"thousandSeparator\" [decimalMarker]=\"decimalMarker\" [separatorLimit]=\"separatorLimit\" [(ngModel)]=\"value\" (input)=\"onInput($event)\"\n (change)=\"onInputChange($event)\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" />\n } } @if (_trailingIcon) { @if (isLucideIcon) {\n <div class=\"icon\">\n <svg [lucideIcon]=\"_trailingIcon\" [style.color]=\"iconColor\"></svg>\n </div>\n } @else {\n <div class=\"icon\">\n <img alt=\"ícone de fim\" [src]=\"_trailingIcon\" />\n </div>\n } } \n </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { MatDatepickerModule, MatDateRangeInput } from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\n@Component({\n selector: 'cao-base-time-range',\n imports: [MatFormFieldModule, MatInputModule, MatDatepickerModule],\n templateUrl: './base-time-range.html',\n styleUrl: './base-time-range.css',\n})\nexport class BaseTimeRange implements OnInit{\n @Input() label = \"\";\n @Input() max: Date | undefined;\n @Input() minDate: Date | undefined;\n @Input() maxDate: Date | undefined;\n @Input() startDate: Date | undefined;\n @Input() finalDate: Date | undefined;\n @Input() dataCy?: string\n @Input() controlName = \"\";\n\n @Output() readonly rangeSelected = new EventEmitter<Date[]>();\n\n @ViewChild(MatDateRangeInput) dateRangeInput!: MatDateRangeInput<Date>;\n\n ngOnInit(): void {\n if(!this.dataCy){\n this.dataCy = `time-range-${this.label}`\n }\n }\n\n onSelectStartDate(event: any) {\n const date = event.target.value as Date;\n this.startDate = date;\n this.finalDate = undefined;\n\n const maxDate = new Date(date);\n maxDate.setDate(maxDate.getDate() + 30);\n\n this.maxDate = maxDate;\n }\n\n onInputMaxDate(event: any) {\n const finalDate = event.target.value as Date;\n if (this.startDate && finalDate) {\n const data = [this.startDate, finalDate];\n this.rangeSelected.emit(data);\n }\n }\n\n clearInputs() {\n this.max = undefined;\n this.minDate = undefined;\n this.maxDate = undefined;\n this.startDate = undefined;\n this.finalDate = undefined;\n\n this.dateRangeInput._startInput.value = \"\";\n this.dateRangeInput._endInput.value = \"\";\n }\n}\n","<label class=\"label-dropw-down\" [for]=\"controlName\">{{ label }}</label>\n<mat-form-field class=\"input-data-field\" subscriptSizing=\"dynamic\" appearance=\"outline\">\n <mat-date-range-input [rangePicker]=\"picker\" [max]=\"maxDate\"\n [attr.dataCy]=\"this.dataCy\"\n >\n <input\n #startDateInput\n matStartDate\n placeholder=\"DATA INÍCIO\"\n [tabIndex]=\"1\"\n [value]=\"startDate\"\n (dateInput)=\"onSelectStartDate($event)\" />\n <input\n #endDateInput\n matEndDate\n placeholder=\"DATA FIM\"\n [tabIndex]=\"2\"\n [value]=\"finalDate\"\n (dateInput)=\"onInputMaxDate($event)\" />\n </mat-date-range-input>\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\" />\n <mat-date-range-picker #picker />\n</mat-form-field>\n","import {\n CommonModule\n} from \"@angular/common\";\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n forwardRef,\n inject,\n OnChanges,\n SimpleChanges\n} from \"@angular/core\";\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControl,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from \"@angular/forms\";\nimport {\n MatAutocompleteModule,\n MatAutocompleteSelectedEvent,\n MatAutocompleteTrigger,\n} from \"@angular/material/autocomplete\";\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { MatInputModule } from \"@angular/material/input\";\n\nimport { LucideDynamicIcon } from \"@lucide/angular\";\nimport {\n Observable,\n startWith,\n map,\n BehaviorSubject,\n combineLatest\n} from \"rxjs\";\n\nexport interface ICaoAutoCompleteOption {\n id?: string | number;\n nome: string;\n icon?: string;\n iconPosition?: string;\n}\n\n@Component({\n selector: \"cao-autocomplete\",\n templateUrl: \"./autocomplete.component.html\",\n styleUrls: [\"./autocomplete.component.scss\"],\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatAutocompleteModule,\n LucideDynamicIcon,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CaoAutocompleteComponent),\n multi: true,\n },\n ],\n})\nexport class CaoAutocompleteComponent implements OnInit, OnChanges, ControlValueAccessor {\n @Input() label = \"\";\n @Input() placeholder = \"\";\n @Input() options: ICaoAutoCompleteOption[] = [];\n @Input() control: AbstractControl = new FormControl();\n @Input() dataCy = \"\";\n @Input() controlName = \"\";\n @Input() isLucideIcon = false;\n @Input() iconColor = \"\";\n @Input() _leadingIcon?: string;\n @Input() _trailingIcon?: string;\n @Input() optionIcon?: string;\n @Input() optionIConColor?: string;\n @Input() isLucideOptionIcon?: boolean;\n @Input() autocompleteBgColor = 'white';\n @Input() strokeWidthIcon = 1;\n @Input() isDisabled = false;\n\n @Output() readonly itemSelected = new EventEmitter<ICaoAutoCompleteOption>();\n @Output() readonly blurEvent = new EventEmitter<void>();\n @Output() readonly focusEvent = new EventEmitter<void>();\n\n @Output() readonly leadingIconClick = new EventEmitter<MouseEvent | Event>();\n @Output() readonly trailingIconClick = new EventEmitter<MouseEvent | Event>();\n\n @ViewChild(MatAutocompleteTrigger) autocompleteTrigger!: MatAutocompleteTrigger;\n\n internalControl = new FormControl(\"\");\n filteredOptions$!: Observable<ICaoAutoCompleteOption[]>;\n isFocused = false;\n icon = false;\n\n private selectedOption: ICaoAutoCompleteOption | null = null;\n private options$ = new BehaviorSubject<ICaoAutoCompleteOption[]>([]);\n private el = inject(ElementRef);\n\n private onChange: (value: ICaoAutoCompleteOption | string | null) => void = () => {};\n private onTouched: () => void = () => {};\n\n ngOnInit(): void {\n this.filteredOptions$ = combineLatest([\n this.internalControl.valueChanges.pipe(startWith(\"\")),\n this.options$,\n ]).pipe(\n map(([value]) => this.filter(value || \"\"))\n );\n\n this.control.valueChanges.subscribe((value) => {\n const displayValue = value && typeof value === \"object\" ? this.displayFn(value) : value;\n this.internalControl.setValue(displayValue, { emitEvent: false });\n this.selectedOption = value && typeof value === \"object\" ? value : null;\n });\n\n this.setStyle();\n }\n\n private setStyle(): void {\n this.el.nativeElement.style.setProperty('--autocomplete-bg-color', this.autocompleteBgColor);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['options']) {\n this.options$.next(changes['options'].currentValue ?? []);\n }\n }\n\n onFocus(): void {\n this.isFocused = true;\n this.focusEvent.emit();\n this.onTouched();\n\n const currentDisplay = this.internalControl.value;\n this.internalControl.setValue(\"\", { emitEvent: true });\n\n if (currentDisplay) {\n this.internalControl.setValue(currentDisplay, { emitEvent: false });\n }\n\n setTimeout(() => {\n this.autocompleteTrigger?.openPanel();\n }, 0);\n }\n\n onBlur(): void {\n this.isFocused = false;\n this.blurEvent.emit();\n this.onTouched();\n }\n\n selectItem(option: ICaoAutoCompleteOption): void {\n this.selectedOption = option;\n this.onChange(option);\n this.itemSelected.emit(option);\n }\n\n onOptionSelected(event: MatAutocompleteSelectedEvent): void {\n this.selectItem(event.option.value);\n this.onTouched();\n this.closePanel()\n }\n\n selectOption(option: ICaoAutoCompleteOption): void {\n this.internalControl.setValue(this.displayFn(option), { emitEvent: false });\n this.selectItem(option);\n this.closePanel()\n }\n\n closePanel(){\n setTimeout(() => {\n this.autocompleteTrigger?.closePanel();\n this.el.nativeElement.querySelector('input')?.blur();\n }, 10);\n }\n\n clearSelection(): void {\n this.selectedOption = null;\n this.internalControl.setValue(\"\", { emitEvent: false });\n this.control.setValue(null, { emitEvent: true });\n this.onChange(null);\n this.onTouched();\n\n setTimeout(() => {\n this.autocompleteTrigger?.closePanel();\n }, 0);\n }\n\n onLeadingIconClick(event: MouseEvent | Event): void {\n event.stopPropagation();\n this.leadingIconClick.emit(event);\n }\n\n onTrailingIconClick(event: MouseEvent | Event): void {\n event.stopPropagation();\n this.trailingIconClick.emit(event);\n }\n\n private filter(value: string | ICaoAutoCompleteOption): ICaoAutoCompleteOption[] {\n const filterValue =\n (typeof value === \"string\" ? value : value?.nome)?.toLowerCase() || \"\";\n\n const currentOptions = this.options$.getValue();\n\n if (!currentOptions?.length) {\n return [];\n }\n\n const matched = currentOptions.filter((option) => {\n const nomeMatch = option.nome.toLowerCase().includes(filterValue);\n const idMatch = option.id?.toString().toLowerCase().includes(filterValue);\n return nomeMatch || idMatch;\n });\n\n if (!filterValue && this.selectedOption) {\n const selectedId = this.selectedOption.id;\n const selectedIndex = matched.findIndex((o) => o.id === selectedId);\n\n if (selectedIndex > 0) {\n const [selected] = matched.splice(selectedIndex, 1);\n matched.unshift(selected);\n }\n }\n\n return matched;\n }\n\n displayFn(option: ICaoAutoCompleteOption): string {\n return option && option.nome ? option.nome : \"\";\n }\n\n get errorText(): string | null {\n if (!this.control) { return null; }\n\n const isEmpty = this.control.value === null || this.control.value === \"\";\n\n if (this.control.hasError(\"required\") && isEmpty) {\n return \"*Campo obrigatório\";\n }\n\n if (this.control.touched && this.control.invalid) {\n if (this.control.hasError(\"cpfInvalid\")) { return \"CPF inválido\"; }\n if (this.control.hasError(\"cellPhoneInvalid\")) { return \"Número inválido\"; }\n if (this.control.hasError(\"emailInvalid\")) { return \"Email inválido\"; }\n if (this.control.hasError(\"cnpjInvalid\")) { return \"CNPJ inválido\"; }\n if (this.control.hasError(\"rgInvalid\")) { return \"RG inválido\"; }\n if (this.control.hasError(\"dateInvalid\")) { return \"Data inválida\"; }\n if (this.control.hasError(\"dateStartInvalid\")) { return \"Data Inicial inválida\"; }\n if (this.control.hasError(\"dateEndInvalid\")) { return \"Data Final inválida\"; }\n return \"Formato inválido\";\n }\n\n return null;\n }\n\n get controlNameValue(): string {\n return this.controlName;\n }\n\n writeValue(value: ICaoAutoCompleteOption | string): void {\n const displayValue = value && typeof value === \"object\" ? this.displayFn(value) : value;\n this.internalControl.setValue(displayValue, { emitEvent: false });\n this.selectedOption = value && typeof value === \"object\" ? value : null;\n }\n\n registerOnChange(fn: (value: ICaoAutoCompleteOption | string | null) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setInputHeight(height: string): void {\n this.el.nativeElement.style.setProperty(\"--form-field-height\", height);\n }\n}","<div class=\"form-field\">\n @if (label) {\n <label [for]=\"internalControl\">{{ label }}</label>\n }\n <mat-form-field appearance=\"outline\" class=\"rnv-autocomplete-mat-form-field autocomplete\">\n <div\n class=\"input-wrapper\"\n [class.has-leading-icon]=\"_leadingIcon\"\n [class.has-trailing-icon]=\"_trailingIcon\"\n [class.focused]=\"isFocused\">\n\n @if (_leadingIcon) {\n @if (isLucideIcon) {\n <div class=\"icon\" \n tabindex=\"0\"\n (click)=\"onLeadingIconClick($event)\"\n (keydown.enter)=\"onLeadingIconClick($event)\"\n >\n <svg [strokeWidth]=\"strokeWidthIcon\" [lucideIcon]=\"_leadingIcon\" [style.color]=\"iconColor\"></svg>\n </div>\n } @else {\n <div class=\"icon\" \n tabindex=\"0\"\n (click)=\"onLeadingIconClick($event)\"\n (keydown.enter)=\"onLeadingIconClick($event)\"\n >\n <img alt=\"ícone de início\" [src]=\"_leadingIcon\" />\n </div>\n }\n }\n\n <input\n #trigger=\"matAutocompleteTrigger\"\n type=\"text\"\n matInput\n [placeholder]=\"placeholder\"\n [disabled]=\"isDisabled\"\n [formControl]=\"internalControl\"\n [matAutocomplete]=\"auto\"\n [attr.data-cy]=\"dataCy\"\n [ngClass]=\"[\n control?.touched && control?.invalid ? 'invalid' : '',\n control?.touched && control?.valid && control?.value ? 'valid' : ''\n ]\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\" />\n\n @if (_trailingIcon) {\n @if (isLucideIcon) {\n <div \n tabindex=\"0\"\n class=\"icon trailing-icon\" (click)=\"onTrailingIconClick($event)\"\n (keydown.enter)=\"onTrailingIconClick($event)\"\n >\n <svg [strokeWidth]=\"strokeWidthIcon\" [lucideIcon]=\"_trailingIcon\" [style.color]=\"iconColor\"></svg>\n </div>\n } @else {\n <div \n tabindex=\"0\"\n class=\"icon trailing-icon\" (click)=\"onTrailingIconClick($event)\"\n (keydown.enter)=\"onTrailingIconClick($event)\"\n >\n <img alt=\"ícone de fim\" [src]=\"_trailingIcon\" />\n </div>\n }\n }\n\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n autoActiveFirstOption\n [displayWith]=\"displayFn\"\n (optionSelected)=\"onOptionSelected($event)\">\n @for (option of filteredOptions$ | async; track option.id) {\n <mat-option class=\"option-item\" [value]=\"option\">\n {{ option.nome }}\n @if (optionIcon) {\n @if (isLucideOptionIcon) {\n <svg [strokeWidth]=\"strokeWidthIcon\" [lucideIcon]=\"optionIcon\" [style.color]=\"iconColor\"></svg>\n } @else {\n <img alt=\"\" [src]=\"optionIcon\" />\n }\n }\n </mat-option>\n }\n </mat-autocomplete>\n\n </div>\n </mat-form-field>\n</div>","import { CommonModule } from \"@angular/common\";\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n forwardRef,\n OnInit,\n OnDestroy,\n ChangeDetectorRef,\n} from \"@angular/core\";\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n FormControl,\n} from \"@angular/forms\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\n\nexport interface ICaoDropDownOption {\n id?: string | number;\n nome: string;\n icon?: string;\n iconPosition?: string;\n dataCy?: string;\n}\n\n@Component({\n selector: \"cao-drop-down\",\n templateUrl: \"./drop-down.html\",\n styleUrl: \"./drop-down.css\",\n encapsulation: ViewEncapsulation.None,\n imports: [\n MatIconModule,\n CommonModule,\n MatTooltipModule,\n ReactiveFormsModule,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CaoDropDownComponent),\n multi: true,\n },\n ],\n})\nexport class CaoDropDownComponent implements ControlValueAccessor, OnInit, OnDestroy {\n @Input() textHeader = \"SELECIONE UM ITEM\";\n @Input() options: ICaoDropDownOption[] = [];\n @Input() dropDownClass = \"\";\n @Input() styleDropDown: { [klass: string]: unknown } = {};\n @Input() control?: AbstractControl | null;\n @Input() controlName = \"\";\n @Input() isDisabled = false;\n @Input() tooltip = \"\";\n @Input() dropDirectionInput: \"up\" | \"down\" = \"down\";\n @Input() dataCy?: string = \"\";\n\n @Input() trackByFn?: (index: number, item: ICaoDropDownOption) => unknown;\n @Input() compareWith?: (option: unknown, value: unknown) => boolean;\n @Input() ariaLabel?: string;\n @Input() ariaLabelledBy?: string;\n @Input() listAriaLabel?: string;\n\n @Output() readonly itemSelected = new EventEmitter<ICaoDropDownOption>();\n\n isOpen = false;\n selectedItem?: ICaoDropDownOption;\n filteredOptions: ICaoDropDownOption[] = [];\n searchControl = new FormControl(\"\");\n isTouched = false;\n isFocused = false;\n dropDirection: string | undefined;\n removeValidBorder = false;\n\n\n focusedIndex = -1;\n\n private _handleClickOutside = this.onClickOutside.bind(this);\n\n constructor(\n private _eref: ElementRef,\n private cdr: ChangeDetectorRef\n ) { }\n\n ngOnInit(): void {\n document.addEventListener(\"click\", this._handleClickOutside, true);\n this.filteredOptions = [...this.options];\n\n this.searchControl.valueChanges.subscribe((value) => {\n this.filterOptions(value || \"\");\n this.focusedIndex = -1\n });\n }\n\n ngOnDestroy(): void {\n document.removeEventListener(\"click\", this._handleClickOutside, true);\n }\n\n get activeDescendant(): string | null {\n if (this.isOpen && this.focusedIndex >= 0 && this.filteredOptions[this.focusedIndex]) {\n return `option-${this.dataCy}-${this.focusedIndex}`;\n }\n return null;\n }\n\n toggleDropdown(): void {\n if (this.isDisabled) { return };\n\n this.checkAvailableSpace();\n this.isOpen = !this.isOpen;\n this.isFocused = this.isOpen;\n this.markAsTouched();\n\n if (this.isOpen) {\n this.searchControl.setValue(\"\");\n this.filteredOptions = [...this.options];\n this.removeValidBorder = false;\n this.focusedIndex = -1;\n\n\n setTimeout(() => {\n if (this.isOpen) {\n const searchInput = this._eref.nativeElement.querySelector('.dropdown-search input');\n if (searchInput) {\n searchInput.focus();\n }\n }\n });\n } else {\n this.focusedIndex = -1;\n }\n\n this.cdr.detectChanges();\n }\n\n selectItem(option: ICaoDropDownOption): void {\n if (this.isDisabled) { return };\n\n this.selectedItem = option;\n this.isOpen = false;\n this.focusedIndex = -1;\n this.itemSelected.emit(option);\n this.onChange(option);\n this.markAsTouched();\n this.cdr.detectChanges();\n }\n\n clear(): void {\n this.selectedItem = undefined;\n this.onChange(null);\n this.cdr.detectChanges();\n }\n\n filterOptions(searchTerm: string) {\n if (!searchTerm) {\n this.filteredOptions = [...this.options];\n return;\n }\n const lowerCaseSearchTerm = searchTerm.toLowerCase();\n this.filteredOptions = this.options.filter(\n (option) =>\n option.nome.toLowerCase().includes(lowerCaseSearchTerm) ||\n option.id?.toString().toLowerCase().includes(lowerCaseSearchTerm)\n );\n }\n\n trackBy(index: number, item: ICaoDropDownOption): unknown {\n return this.trackByFn ? this.trackByFn(index, item) : item.id;\n }\n\n private onClickOutside(event: MouseEvent): void {\n if (!this._eref.nativeElement.contains(event.target)) {\n if (this.isOpen) {\n this.isOpen = false;\n }\n if (this.isFocused) {\n this.isFocused = false;\n }\n this.focusedIndex = -1;\n this.markAsTouched();\n this.removeValidBorder = true;\n this.cdr.detectChanges();\n }\n }\n\n onArrowDown(event: Event): void {\n if (this.isDisabled) { return };\n\n event.preventDefault();\n event.stopPropagation();\n\n if (this.filteredOptions.length === 0) { return };\n\n if (this.focusedIndex === -1) {\n\n this.focusedIndex = 0;\n } else {\n\n this.focusedIndex = (this.focusedIndex + 1) % this.filteredOptions.length;\n }\n\n this.scrollIntoView();\n this.cdr.detectChanges();\n }\n\n onArrowUp(event: Event): void {\n if (this.isDisabled) { return };\n\n event.preventDefault();\n event.stopPropagation();\n\n if (this.filteredOptions.length === 0) { return };\n\n if (this.focusedIndex === -1) {\n\n this.focusedIndex = this.filteredOptions.length - 1;\n } else {\n\n this.focusedIndex = this.focusedIndex <= 0\n ? this.filteredOptions.length - 1\n : this.focusedIndex - 1;\n }\n\n this.scrollIntoView();\n this.cdr.detectChanges();\n }\n\n onSearchEnter(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.focusedIndex >= 0 && this.focusedIndex < this.filteredOptions.length) {\n this.selectItem(this.filteredOptions[this.focusedIndex]);\n } else if (this.filteredOptions.length > 0) {\n\n this.selectItem(this.filteredOptions[0]);\n }\n }\n\n closeDropdown(): void {\n if (this.isDisabled) { return };\n\n this.isOpen = false;\n this.focusedIndex = -1;\n this.isFocused = false;\n this.cdr.detectChanges();\n }\n\n private scrollIntoView(): void {\n if (!this.isOpen || this.focusedIndex === -1) { return };\n\n setTimeout(() => {\n const element = document.getElementById(`option-${this.dataCy}-${this.focusedIndex}`);\n if (element) {\n element.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth'\n });\n }\n }, 0);\n }\n\n checkAvailableSpace(): void {\n if (this.dropDirectionInput === \"up\") {\n this.dropDirection = \"up\";\n return;\n }\n\n const rect = this._eref.nativeElement.getBoundingClientRect();\n const windowHeight = window.innerHeight;\n const dropdownHeight = 200\n\n const spaceBelow = windowHeight - rect.bottom;\n this.dropDirection = spaceBelow < dropdownHeight ? \"up\" : \"down\";\n }\n\n\n writeValue(value: unknown): void {\n if (value !== null && value !== undefined) {\n const match = this.options.find((opt) =>\n this.compareWith\n ? this.compareWith(opt, value)\n : opt.id === (typeof value === \"object\" && value ? (value as any).id : value)\n );\n\n if (match) {\n this.selectedItem = match;\n } else {\n const matchByName = this.options.find((opt) => opt.nome === value);\n if (matchByName) {\n this.selectedItem = matchByName;\n }\n }\n } else {\n this.selectedItem = undefined;\n }\n this.cdr.detectChanges();\n }\n\n registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n onChange: (value: unknown) => void = () => { };\n onTouched = () => { };\n\n get errorText(): string | null {\n if (!this.control) { return null; }\n if (this.control.hasError(\"required\")) {\n return \"*Campo obrigatório\";\n }\n return null;\n }\n\n private markAsTouched() {\n if (!this.isTouched) {\n this.onTouched();\n this.isTouched = true;\n this.control?.markAsTouched();\n }\n }\n\n get controlNameValue(): string {\n return this.controlName;\n }\n}","<div\n class=\"dropdown-container\"\n role=\"combobox\"\n [ngClass]=\"[\n dropDownClass,\n isDisabled ? 'disabled' : '',\n control?.touched && control?.invalid ? 'invalid' : '',\n (control?.touched && control?.valid && selectedItem && isFocused && !removeValidBorder) ? 'valid' : ''\n ]\"\n [ngStyle]=\"styleDropDown\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-haspopup]=\"'listbox'\"\n [attr.aria-controls]=\"isOpen ? ('dropdown-list-' + dataCy) : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy || null\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-disabled]=\"isDisabled\"\n [attr.aria-activedescendant]=\"activeDescendant\"\n [attr.data-cy]=\"dataCy\">\n \n <div\n class=\"dropdown-header\"\n matTooltipPosition=\"below\"\n matTooltipClass=\"custom-arrow-tooltip\"\n tabindex=\"0\"\n role=\"button\"\n [matTooltip]=\"tooltip\"\n [attr.aria-disabled]=\"isDisabled\"\n (click)=\"!isDisabled && toggleDropdown()\"\n (keydown.enter)=\"!isDisabled && toggleDropdown()\"\n (keydown.space)=\"!isDisabled && toggleDropdown(); $event.preventDefault()\"\n (keydown.arrowdown)=\"!isDisabled && onArrowDown($event)\"\n (keydown.arrowup)=\"!isDisabled && onArrowUp($event)\"\n (keydown.escape)=\"!isDisabled && closeDropdown()\">\n <span id=\"dropdown-label-{{dataCy}}\">{{ selectedItem?.nome ?? textHeader }}</span>\n <mat-icon aria-hidden=\"true\">{{ isOpen ? 'expand_less' : 'expand_more' }}</mat-icon>\n </div>\n\n @if (isOpen) {\n <ul \n class=\"dropdown-list\" \n role=\"listbox\"\n [id]=\"'dropdown-list-' + dataCy\"\n [ngClass]=\"{ 'drop-up': dropDirection === 'up', 'dropdown-secundary': dropDownClass === 'dropdown-secundary' }\"\n [attr.aria-label]=\"listAriaLabel || 'Opções'\"\n [attr.aria-labelledby]=\"'dropdown-label-' + dataCy\">\n \n\n <li class=\"dropdown-search\" role=\"none\">\n <input \n type=\"text\" \n placeholder=\"Buscar por código ou nome...\" \n role=\"searchbox\"\n aria-label=\"Buscar opções\"\n [formControl]=\"searchControl\"\n (keydown.arrowdown)=\"onArrowDown($event)\"\n (keydown.arrowup)=\"onArrowUp($event)\"\n (keydown.enter)=\"onSearchEnter($event)\"\n (keydown.escape)=\"closeDropdown()\" />\n </li>\n \n\n @for (item of filteredOptions; track $index) { \n @if(item && item.nome) {\n <li\n class=\"dropdown-item\"\n role=\"option\"\n [ngClass]=\"{\n 'icon-right': item.iconPosition === 'right',\n 'selected': item === selectedItem,\n 'focused': $index === focusedIndex\n }\"\n [attr.id]=\"'option-' + dataCy + '-' + $index\"\n [attr.aria-selected]=\"item === selectedItem\"\n [attr.tabindex]=\"$index === focusedIndex ? 0 : -1\"\n [attr.data-cy]=\"item.dataCy\"\n (click)=\"selectItem(item)\"\n (keydown.enter)=\"selectItem(item)\"\n (keydown.space)=\"selectItem(item); $event.preventDefault()\"\n (mouseenter)=\"focusedIndex = $index\">\n @if (item.icon && item.iconPosition !== 'right') {\n <mat-icon class=\"dropdown-icon\" aria-hidden=\"true\">{{ item.icon }}</mat-icon>\n } \n <span>{{ item.nome }}</span>\n @if (item.icon && item.iconPosition === 'right') {\n <mat-icon class=\"dropdown-icon\" aria-hidden=\"true\">{{ item.icon }}</mat-icon>\n }\n </li>\n } \n }\n </ul>\n }\n \n @if (control?.touched && control?.invalid && errorText) {\n <div class=\"message-error\">{{ errorText }}</div>\n }\n</div>","import { Component, inject, Input, Signal } from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\n\nexport interface INavContent {\n title: string;\n links: INavLink[];\n permissions?: string[];\n directRoute?: boolean;\n}\nexport interface INavLink {\n text: string;\n url: string;\n disabled?: boolean;\n isValidationRequired?: boolean;\n dataCy?: string;\n directRoute?: boolean;\n}\n\n@Component({\n standalone: true,\n selector: \"cao-links-button\",\n templateUrl: \"./links-button.html\",\n styleUrl: \"./links-button.css\",\n})\nexport class LinksButton {\n @Input({ required: true }) navContent!: Signal<INavContent>;\n router = inject(Router);\n route = inject(ActivatedRoute);\n\n isValidationRequired(link: INavLink) {\n if (link.disabled) {\n return;\n }\n link.directRoute ? this.directRoute(link.url) : this.navigateTo(link.url);\n }\n\n private navigateTo(url: string) {\n this.router.navigate([url], { relativeTo: this.route });\n }\n\n private directRoute(url: string) {\n this.router.navigate([url]);\n }\n\n}\n","<div class=\"links-info\">\n @if (navContent()) {\n <h2>{{ navContent().title }}</h2>\n <div class=\"links\">\n @for (link of navContent().links; track $index) {\n <div\n class=\"link\"\n role=\"button\"\n tabindex=\"0\"\n [tabIndex]=\"link.disabled ? -1 : 0\"\n [class.disabled]=\"link.disabled\"\n [attr.data-cy]=\"link.dataCy\"\n [attr.aria-disabled]=\"link.disabled\"\n (click)=\"isValidationRequired(link)\"\n (keydown.enter)=\"isValidationRequired(link)\"\n (keydown.space)=\"isValidationRequired(link); $event.preventDefault()\"\n >\n {{ link.text }}\n </div>\n }\n </div>\n }\n</div>","import { CommonModule } from \"@angular/common\";\nimport { Component, Input } from \"@angular/core\";\n\n@Component({\n selector: \"cao-footer\",\n templateUrl: \"./footer.html\",\n styleUrl: \"./footer.css\",\n imports: [ CommonModule ]\n})\nexport class Footer {\n currentYear: number = new Date().getFullYear();\n @Input() currentRoute?:string;\n @Input() footerText?:string;\n @Input() isFixed = true;\n}\n","<footer class=\"footer-element\" [class.fixed]=\"isFixed\">\n <div class=\"flex col\">\n <ng-content />\n @if(footerText){\n <ul class=\"footer-end\">\n <li>{{ footerText }} © {{ currentYear }}</li>\n </ul>\n }\n </div>\n</footer>\n","import { OverlayModule } from \"@angular/cdk/overlay\";\nimport { NgModule } from \"@angular/core\";\nimport { MatAutocompleteModule } from \"@angular/material/autocomplete\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatCardModule } from \"@angular/material/card\";\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\nimport { MatChipsModule } from \"@angular/material/chips\";\nimport { MatNativeDateModule , MAT_DATE_LOCALE } from \"@angular/material/core\";\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\nimport { MatDialogModule } from \"@angular/material/dialog\";\nimport { MatDividerModule } from \"@angular/material/divider\";\nimport { MatExpansionModule } from \"@angular/material/expansion\";\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatInputModule } from \"@angular/material/input\";\nimport { MatListModule } from \"@angular/material/list\";\nimport { MatMenuModule } from \"@angular/material/menu\";\nimport { MatPaginatorModule } from \"@angular/material/paginator\";\nimport { MatProgressBarModule } from \"@angular/material/progress-bar\";\nimport { MatProgressSpinnerModule } from \"@angular/material/progress-spinner\";\nimport { MatRadioModule } from \"@angular/material/radio\";\nimport { MatSelectModule } from \"@angular/material/select\";\nimport { MatSidenavModule } from \"@angular/material/sidenav\";\nimport { MatSlideToggleModule } from \"@angular/material/slide-toggle\";\nimport { MatSliderModule } from \"@angular/material/slider\";\nimport { MatSnackBarModule } from \"@angular/material/snack-bar\";\nimport { MatSortModule } from \"@angular/material/sort\";\nimport { MatTableModule } from \"@angular/material/table\";\nimport { MatTabsModule } from \"@angular/material/tabs\";\nimport { MatTimepickerModule } from \"@angular/material/timepicker\";\nimport { MatToolbarModule } from \"@angular/material/toolbar\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\nimport { MatTreeModule } from \"@angular/material/tree\";\n\n\nconst modules = [\n OverlayModule,\n MatSnackBarModule,\n MatAutocompleteModule,\n MatButtonModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatDatepickerModule,\n MatDialogModule,\n MatDividerModule,\n MatExpansionModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatMenuModule,\n MatNativeDateModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n MatPaginatorModule,\n MatRadioModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatSortModule,\n MatSelectModule,\n MatTableModule,\n MatTabsModule,\n MatTooltipModule,\n MatSidenavModule,\n MatListModule,\n MatToolbarModule,\n MatTreeModule,\n MatTimepickerModule\n];\n@NgModule({\n imports: [modules],\n exports: [modules],\n providers: [{ provide: MAT_DATE_LOCALE, useValue: \"pt-BR\" }],\n})\nexport class MaterialModule {}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { PageEvent } from '@angular/material/paginator';\n\nimport { MaterialModule } from '../../../material.module';\n\n@Component({\n selector: 'cao-paginator',\n imports: [MaterialModule],\n templateUrl: './paginator.html',\n styleUrl: './paginator.css',\n})\nexport class Paginator {\n @Input() totalItems = 0;\n @Input() pageSize = 10;\n @Input() currentPage = 1;\n @Input() pageSizeOptions: number[] = [5, 10, 20, 50];\n @Input() customClass = \"\";\n @Input() showFirstLastButtons = true;\n\n @Output() readonly pageEvent = new EventEmitter<PageEvent>();\n\n onPageEvent(event: PageEvent): void {\n this.pageEvent.emit(event)\n }\n}\n","<mat-paginator\n #paginator\n aria-label=\"Select page\"\n [length]=\"totalItems\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [pageIndex]=\"currentPage - 1\"\n [hidePageSize]=\"false\"\n [showFirstLastButtons]=\"showFirstLastButtons\"\n (page)=\"onPageEvent($event)\" />","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { DateAdapter } from '@angular/material/core';\nimport { MatTimepickerOption } from '@angular/material/timepicker';\n\nimport { MaterialModule } from '../../../material.module';\n\n@Component({\n selector: 'cao-time-picker',\n imports: [ MaterialModule, CommonModule, ReactiveFormsModule, ],\n templateUrl: './time-picker.html',\n styleUrl: './time-picker.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class TimePicker {\n @Input() control: FormControl<Date | null> = new FormControl<Date | null>(null);\n @Input() isDisabled = false;\n @Input() dataCy?: string;\n @Input() set min(v: string) {\n this._min = v;\n this.minInNumber = this.convertStringInNumber(v)\n this.customOptions = this.generateTimeOptions().filter((option) => option.label >= this._min);\n }\n @Input() set max(v: string) {\n this._max = v;\n this.maxInNumber = this.convertStringInNumber(v)\n this.customOptions = this.generateTimeOptions().filter((option) => option.label <= this._max);\n }\n\n minInNumber = 7;\n maxInNumber = 23;\n\n @Output() readonly timeChange = new EventEmitter<Date>();\n\n private _min = \"07:00\";\n private _max = \"23:00\";\n\n customOptions: MatTimepickerOption<Date>[] = this.generateTimeOptions();\n\n constructor(private _adapter: DateAdapter<any>) {\n this._adapter.setLocale(\"pt-BR\");\n }\n\n get errorText(): string | null {\n if (!this.control) {return null;}\n\n if (this.control.hasError(\"required\") || (this.control.touched && !this.control.value)) {\n return \"*Campo obrigatório\";\n }\n if (this.control.hasError(\"quarterHour\") && this.control.touched) {\n return \"Formato inválido\";\n }\n return null;\n }\n\n private convertStringInNumber(hour: string): number{\n const explodedHour = parseInt(hour.split(\":\")[0])\n if(typeof explodedHour !== 'number'){\n return explodedHour\n }\n return explodedHour\n }\n\n private generateTimeOptions(): MatTimepickerOption<Date>[] {\n const options: MatTimepickerOption<Date>[] = [];\n const baseDate = new Date(2025, 0, 1);\n\n for (let hour = this.minInNumber; hour <= this.maxInNumber; hour++) {\n for (let minute = 0; minute < 60; minute += 15) {\n if (hour === this.maxInNumber && minute > 0) {continue;}\n const date = new Date(baseDate);\n date.setHours(hour, minute, 0);\n const label = `${hour.toString().padStart(2, \"0\")}:${minute.toString().padStart(2, \"0\")}`;\n options.push({ label, value: date });\n }\n }\n\n return options;\n }\n\n updateTimeOptions(options: MatTimepickerOption<Date>[]): void {\n this.customOptions = options;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n}\n","<div class=\"time-picker-wrapper\">\n <mat-form-field\n class=\"custom-timepicker\"\n [ngClass]=\"{\n 'invalid': control?.touched && control?.invalid,\n 'valid': control?.touched && control?.valid\n }\">\n <input\n matInput\n placeholder=\"00:00\"\n [formControl]=\"control\"\n [matTimepicker]=\"picker\"\n [min]=\"min\"\n [max]=\"max\"\n [disabled]=\"isDisabled\"\n [attr.data-cy]=\"dataCy\"\n (blur)=\"control?.markAsTouched()\" />\n <mat-timepicker-toggle matSuffix [for]=\"picker\" />\n <mat-timepicker #picker [options]=\"customOptions\" (selected)=\"timeChange.emit($event.value)\" />\n </mat-form-field>\n</div>\n","import { EventEmitter, Injectable, Output } from \"@angular/core\";\n\nimport { Subject, Observable } from \"rxjs\";\n\nimport { IModal, ModalType } from \"./base-modal.interface\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BaseModalService {\n constructor() { }\n @Output() readonly toggleModalEvent = new EventEmitter<IModal>();\n @Output() readonly closeAllModalsEvent = new EventEmitter<boolean>();\n @Output() readonly openModal = new EventEmitter<IModal>();\n\n private modalResultSubject = new Subject<any>();\n\n emitModalResult(result: any) {\n this.modalResultSubject.next(result);\n }\n\n onModalResult(): Observable<any> {\n return this.modalResultSubject.asObservable();\n }\n\n toggleModal(modalInfo: IModal) {\n this.toggleModalEvent.emit(modalInfo);\n }\n\n closeAllModals() {\n this.closeAllModalsEvent.emit(true);\n }\n\n showModal(_selectedModal: ModalType, data?: any) {\n this.closeAllModals();\n const modalInfo: IModal = {\n type: _selectedModal,\n data: data,\n status: true,\n };\n this.openModal.emit(modalInfo);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, inject, Input } from '@angular/core';\n\nimport { ModalTypeClass, ModalTypeSize } from './base-modal.interface';\nimport { BaseModalService } from './base-modal.service';\n\n@Component({\n selector: 'cao-modal',\n imports: [CommonModule],\n templateUrl: './base-modal.html',\n styleUrl: './base-modal.css',\n})\nexport class BaseModal<T> {\n @Input() showModal = false;\n @Input() title = \"\";\n @Input() data!: T;\n @Input() modalTypeClass: ModalTypeClass = \"default\";\n @Input() modalClass = \"modal-default\";\n @Input() modalSize: ModalTypeSize = \"w-70\";\n @Input() closeOnOverlayClick = false;\n\n protected modalService = inject(BaseModalService);\n\n closeModals() { }\n\n closeModalsWithoutDialog() {\n this.modalService.closeAllModals();\n }\n\n onOverlayClick() {\n if (this.closeOnOverlayClick) {\n this.closeModals();\n }\n }\n}\n","<div aria-hidden=\"true\" class=\"modal\" tabIndex=\"0\" [class.show]=\"showModal\" (keydown)=\"onOverlayClick()\"\n (click)=\"onOverlayClick()\">\n <div aria-hidden=\"true\" class=\"modal-dialog\" tabIndex=\"1\" [ngClass]=\"[modalSize, modalClass]\"\n (keydown)=\"$event.stopPropagation()\" (click)=\"$event.stopPropagation()\">\n <ng-content />\n </div>\n</div>","import { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\nimport { DialogType, IDialogConfig } from './base-dialog.interface';\n\n@Component({\n selector: 'cao-dialog',\n imports: [CommonModule, NgOptimizedImage],\n templateUrl: './base-dialog.html',\n styleUrl: './base-dialog.css',\n})\nexport class BaseDialog {\n @Input() config!: IDialogConfig;\n\n closeDialog: () => void = this.noop;\n\n protected iconPaths: Record<DialogType, string> = {\n success: \"https://placehold.co/600x400\",\n error: \"https://placehold.co/600x400\",\n info: \"https://placehold.co/600x400\",\n warning: \"https://placehold.co/600x400\",\n };\n\n private noop(): void {\n return\n }\n\n getIconPath(): string {\n return this.iconPaths[this.config.type];\n }\n\n handleConfirm(): void {\n this.config.onConfirm?.();\n this.closeDialog();\n }\n\n handleCancel(): void {\n this.config.onCancel?.();\n this.closeDialog();\n }\n}","\n<div class=\"dialog-container\">\n <div class=\"dialog-content\">\n <img alt=\"Logo\" class=\"logo\" [fill]=\"true\" [ngSrc]=\"config.logoIcon ?? ''\" />\n <div class=\"alert-wrapper\">\n <div class=\"text-content\" [ngClass]=\"config.type\">\n <div class=\"title\">{{ config.title }}</div>\n <div class=\"message\">{{ config.message }}</div>\n <div class=\"button-container\">\n @if (config.cancelButtonText) {\n <button\n type=\"button\"\n class=\"cancel-button\"\n [attr.data-cy]=\"config.cancelButtonText\"\n (keydown)=\"handleCancel()\"\n (click)=\"handleCancel()\">\n {{ config.cancelButtonText }}\n </button>\n } @if (config.confirmButtonText) {\n <button\n type=\"button\"\n class=\"confirm-button\"\n [ngClass]=\"config.type\"\n [attr.data-cy]=\"config.confirmButtonText\"\n (click)=\"handleConfirm()\"\n (keydown)=\"handleConfirm()\"\n >\n {{ config.confirmButtonText }}\n </button>\n }\n </div>\n </div>\n <div class=\"icon-container\">\n <img alt=\"Dialog Icon\" class=\"alert-icon\" [fill]=\"true\" [ngSrc]=\"getIconPath()\" />\n </div>\n </div>\n </div>\n</div>\n","import { Overlay, OverlayRef } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { Injectable } from \"@angular/core\";\n\nimport { BaseDialog } from \"./base-dialog\";\nimport { IDialogConfig } from \"./base-dialog.interface\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BaseDialogService {\n constructor(private overlay: Overlay) { }\n\n open(config: IDialogConfig): OverlayRef {\n const overlayRef = this.overlay.create({\n hasBackdrop: true,\n positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),\n scrollStrategy: this.overlay.scrollStrategies.block(),\n backdropClass: \"dialog-backdrop\",\n });\n\n const dialogPortal = new ComponentPortal(this.generateComponentPortal());\n const componentRef = overlayRef.attach(dialogPortal);\n\n componentRef.instance.config = config;\n\n componentRef.instance.closeDialog = () => {\n overlayRef.dispose();\n };\n\n return overlayRef;\n }\n\n generateComponentPortal(): typeof BaseDialog{\n return BaseDialog;\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { Subject } from \"rxjs\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BaseFilterTableService {\n private filterSubject = new Subject<string>();\n\n filter$ = this.filterSubject.asObservable();\n\n updateFilter(filterValue: string) {\n this.filterSubject.next(filterValue);\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { BehaviorSubject, Observable, map } from \"rxjs\";\n\nimport { ITableConfig, IColumnConfig } from \"./base-table.interface\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BaseTableService {\n private tableConfigSubject = new BehaviorSubject<ITableConfig | null>(null);\n private dataSubject = new BehaviorSubject<any[]>([]);\n private columnsSubject = new BehaviorSubject<IColumnConfig[]>([]);\n\n tableConfig$: Observable<ITableConfig | null> = this.tableConfigSubject.asObservable();\n columns$: Observable<IColumnConfig[]> = this.columnsSubject.asObservable();\n data$: Observable<any[]> = this.dataSubject.asObservable();\n\n visibleColumns$: Observable<string[]> = this.columns$.pipe(\n map((columns) =>\n columns.filter((col) => col.visible).map((col) => col.key || col.element || \"\")\n )\n );\n\n createTable(data: any[], columns?: IColumnConfig[], customConfig?: Partial<ITableConfig>): void {\n const tableConfig: ITableConfig = {\n columns: columns ? columns.map((col) => col.key || col.element || \"\") : [],\n data,\n columnData: {},\n result: {\n noData: \"Não há dados para o filtro selecionado.\",\n defaultMessage: \"Nenhum resultado encontrado.\",\n },\n ...customConfig,\n };\n\n if (data.length > 0 && columns) {\n const columnData: Record<string, IColumnConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = {\n ...col,\n type: col.type || this.inferColumnType(data[0][col.key || col.element || \"\"]),\n visible: col.visible !== undefined ? col.visible : true,\n };\n });\n tableConfig.columnData = columnData;\n } else if (data.length === 0 && columns) {\n const columnData: Record<string, IColumnConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = {\n ...col,\n type: col.type || \"STRING\",\n visible: col.visible !== undefined ? col.visible : true,\n };\n });\n tableConfig.columnData = columnData;\n }\n\n this.tableConfigSubject.next(tableConfig);\n this.columnsSubject.next(columns || []);\n this.dataSubject.next(data);\n }\n\n private inferColumnType(value: any): IColumnConfig[\"type\"] {\n if (value === null || value === undefined) { return \"STRING\"; }\n switch (typeof value) {\n case \"boolean\":\n return \"BOOLEAN\";\n case \"number\":\n return \"NUMBER\";\n case \"string\":\n return this.isValidDate(value) ? \"DATE\" : \"STRING\";\n default:\n return \"STRING\";\n }\n }\n\n private isValidDate(value: string): boolean {\n return !isNaN(Date.parse(value));\n }\n\n toggleColumnVisibility(columnKey: string): void {\n const currentColumns = this.columnsSubject.value;\n const updatedColumns = currentColumns.map((col) =>\n col.key === columnKey || col.element === columnKey ? { ...col, visible: !col.visible } : col\n );\n\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n const updatedColumnData = { ...currentConfig.columnData };\n const columnToUpdate = Object.keys(updatedColumnData).find((key) => key === columnKey);\n\n if (columnToUpdate) {\n updatedColumnData[columnToUpdate].visible = !updatedColumnData[columnToUpdate].visible;\n\n this.tableConfigSubject.next({\n ...currentConfig,\n columnData: updatedColumnData,\n });\n }\n }\n\n this.columnsSubject.next(updatedColumns);\n }\n\n getVisibleColumns(): IColumnConfig[] {\n return this.columnsSubject.value.filter((col) => col.visible);\n }\n\n setColumns(columns: IColumnConfig[]): void {\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n const columnData: Record<string, IColumnConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = col;\n });\n\n this.tableConfigSubject.next({\n ...currentConfig,\n columns: columns.map((col) => col.key || col.element || \"\"),\n columnData,\n });\n }\n this.columnsSubject.next(columns);\n }\n\n setData(data: any[]): void {\n this.dataSubject.next(data);\n\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n this.tableConfigSubject.next({\n ...currentConfig,\n data,\n });\n }\n }\n\n updateTableData(data: any[]): void {\n this.setData(data);\n }\n}","import { LiveAnnouncer } from \"@angular/cdk/a11y\";\nimport { SelectionModel } from \"@angular/cdk/collections\";\nimport { CommonModule, NgOptimizedImage } from \"@angular/common\";\nimport {\n Component,\n OnInit,\n AfterViewInit,\n OnDestroy,\n Input,\n ViewChild,\n Output,\n EventEmitter,\n inject\n} from \"@angular/core\";\nimport { MatPaginator, MatPaginatorIntl, PageEvent } from \"@angular/material/paginator\";\nimport { MatSort, Sort } from \"@angular/material/sort\";\nimport { MatTableDataSource } from \"@angular/material/table\";\n\nimport { Subscription } from \"rxjs\";\n\n\nimport { BaseFilterTableService } from \"./base-filter-table.service\";\nimport { IColumnConfig, ITableConfig } from \"./base-table.interface\";\nimport { BaseTableService } from \"./base-table.service\";\nimport { MaterialModule } from \"../../../material.module\";\n\n\nexport function getPtBrPaginatorIntlBaseTable(): MatPaginatorIntl {\n const paginatorIntl = new MatPaginatorIntl();\n paginatorIntl.itemsPerPageLabel = \"Itens por página:\";\n paginatorIntl.nextPageLabel = \"Próxima página\";\n paginatorIntl.previousPageLabel = \"Página anterior\";\n paginatorIntl.firstPageLabel = \"Primeira página\";\n paginatorIntl.lastPageLabel = \"Última página\";\n paginatorIntl.getRangeLabel = (page: number, pageSize: number, length: number) => {\n if (length === 0 || pageSize === 0) {\n return `0 de ${length}`;\n }\n const startIndex = page * pageSize;\n const endIndex = Math.min(startIndex + pageSize, length);\n return `${startIndex + 1} – ${endIndex} de ${length}`;\n };\n return paginatorIntl;\n}\n\n\n@Component({\n selector: \"cao-table\",\n templateUrl: \"./base-table.html\",\n styleUrls: [\"./base-table.css\"],\n imports: [CommonModule, MaterialModule, NgOptimizedImage],\n providers: [{ provide: MatPaginatorIntl, useValue: getPtBrPaginatorIntlBaseTable() }],\n})\nexport class BaseTable implements OnInit, AfterViewInit, OnDestroy {\n @Input() customClass = \"\";\n @Input() pageSizeOptions: number[] = [5, 10, 20, 50];\n @Input() showFirstLastButtons = true;\n @Input() isPaginatedByServer = false;\n\n @Output() readonly pageChanged = new EventEmitter<number>();\n @Output() readonly pageSizeChanged = new EventEmitter<number>();\n @Output() readonly firstPageClicked = new EventEmitter<void>();\n @Output() readonly lastPageClicked = new EventEmitter<void>();\n @Output() readonly selectionChanged = new EventEmitter<any[]>();\n @Output() readonly pageEvent = new EventEmitter<PageEvent>();\n\n dataSource = new MatTableDataSource<any>([]);\n selection = new SelectionModel<any>(true, []);\n allColumns: string[] = [];\n displayedColumns: string[] = [];\n filterValue = \"\";\n private configSubscription: Subscription | null = null;\n private visibleColumnsSubscription: Subscription | null = null;\n private dataSubscription: Subscription | null = null;\n private filterSubscription: Subscription | null = null;\n tableConfig: ITableConfig | null = null;\n\n @ViewChild(MatSort) sort!: MatSort;\n @ViewChild(MatPaginator) paginator!: MatPaginator;\n\n totalItems = 0;\n pageSize = 10;\n currentPage = 1;\n private previousPage = 1;\n\n getAllColumns(): string[] {\n return [\"select\", ...this.displayedColumns];\n }\n\n protected tableService = inject(BaseTableService)\n protected liveAnnouncer = inject(LiveAnnouncer)\n protected filterTableService = inject(BaseFilterTableService)\n\n constructor(\n ) {\n this.initializeSortingAccessor();\n this.initializeFilterPredicate();\n }\n\n ngOnInit(): void {\n this.configSubscription = this.tableService.tableConfig$.subscribe((config) => {\n if (config) {\n this.tableConfig = config;\n this.allColumns = config.columns;\n }\n });\n this.visibleColumnsSubscription = this.tableService.visibleColumns$.subscribe(\n (visibleColumns) => {\n this.displayedColumns = visibleColumns.filter((col) => col !== \"select\");\n }\n );\n this.dataSubscription = this.tableService.data$.subscribe((data) => {\n this.dataSource.data = data;\n this.updateTotalItems();\n });\n this.filterSubscription = this.filterTableService.filter$.subscribe((filterValue) => {\n this.filterValue = filterValue;\n this.applyFilter();\n });\n }\n\n ngAfterViewInit(): void {\n this.dataSource.sort = this.sort;\n\n // Connect paginator if available\n setTimeout(() => {\n if (this.paginator) {\n this.dataSource.paginator = this.paginator;\n this.paginator.pageIndex = this.currentPage - 1;\n this.paginator.pageSize = this.pageSize;\n this.paginator.showFirstLastButtons = this.showFirstLastButtons;\n }\n });\n this.selection.changed.subscribe(() => {\n this.selectionChanged.emit(this.selection.selected);\n });\n }\n\n ngOnDestroy(): void {\n this.configSubscription?.unsubscribe();\n this.visibleColumnsSubscription?.unsubscribe();\n this.dataSubscription?.unsubscribe();\n this.filterSubscription?.unsubscribe();\n }\n\n initializeSortingAccessor(): void {\n this.dataSource.sortingDataAccessor = (item, property) => {\n const value = item[property];\n if (typeof value === \"string\") {\n return value.toLowerCase();\n } else if (typeof value === \"number\") {\n return value;\n } else if (typeof value === \"boolean\") {\n return value ? 1 : 0;\n } else if (value instanceof Date) {\n return value.valueOf();\n } else if (value === null) {\n return \"\";\n } else if (value === undefined) {\n return undefined;\n } else if (typeof value === \"object\") {\n return value.toString();\n }\n return value;\n };\n }\n\n initializeFilterPredicate(): void {\n this.dataSource.filterPredicate = (data: any, filter: string) => {\n const searchTerms = filter.trim().toLowerCase();\n if (!searchTerms) {\n return true;\n }\n const dataStr = Object.keys(data).reduce((currentTerm: string, key: string) => {\n const value = data[key];\n return (\n currentTerm +\n (value !== null && value !== undefined ? value.toString().toLowerCase() : \"\")\n );\n }, \"\");\n return dataStr.indexOf(searchTerms) !== -1;\n };\n }\n\n applyFilter(): void {\n const normalizedFilter = this.filterValue.trim().toLowerCase();\n this.dataSource.filter = normalizedFilter;\n }\n\n toggleColumnVisibility(columnKey: string): void {\n this.tableService.toggleColumnVisibility(columnKey);\n }\n\n isColumnVisible(column: string): boolean {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return true;\n }\n return this.tableConfig.columnData[column].visible !== false;\n }\n\n getColumnHeader(column: string): string {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return column;\n }\n return this.tableConfig.columnData[column].header || column;\n }\n\n getColumnType(column: string): IColumnConfig[\"type\"] {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return \"STRING\";\n }\n return this.tableConfig.columnData[column].type || \"STRING\";\n }\n\n getColumnElement(column: string): string {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return column;\n }\n return this.tableConfig.columnData[column].element || column;\n }\n\n getColumnButtons(column: string): any[] {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return [];\n }\n return this.tableConfig.columnData[column].buttons || [];\n }\n\n isAllSelected(): boolean {\n if (\n !this.paginator ||\n !this.dataSource.filteredData ||\n this.dataSource.filteredData.length === 0\n ) {\n return false;\n }\n\n const startIndex = this.paginator.pageIndex * this.paginator.pageSize;\n const endIndex = Math.min(\n startIndex + this.paginator.pageSize,\n this.dataSource.filteredData.length\n );\n const currentPageData = this.dataSource.filteredData.slice(startIndex, endIndex);\n\n if (currentPageData.length === 0) {\n return false;\n }\n\n return currentPageData.every((row) => this.selection.isSelected(row));\n }\n\n toggleAllRows(): void {\n if (!this.paginator || !this.dataSource.filteredData) {\n return;\n }\n\n if (this.isAllSelected()) {\n this.selection.clear();\n } else {\n const startIndex = this.paginator.pageIndex * this.paginator.pageSize;\n const endIndex = Math.min(\n startIndex + this.paginator.pageSize,\n this.dataSource.filteredData.length\n );\n const currentPageData = this.dataSource.filteredData.slice(startIndex, endIndex);\n\n currentPageData.forEach((row) => this.selection.select(row));\n }\n }\n\n announceSortChange(sortState: Sort): void {\n if (sortState.direction) {\n this.liveAnnouncer.announce(\n `Ordenado ${sortState.direction === \"asc\" ? \"ascendente\" : \"descendente\"}`\n );\n } else {\n this.liveAnnouncer.announce(\"Ordenação removida\");\n }\n }\n\n trackByFn(index: number, item: any): any {\n return item;\n }\n\n onPageChanged(page: number): void {\n this.currentPage = page;\n this.pageChanged.emit(page);\n\n if (this.paginator && this.paginator.pageIndex !== page - 1) {\n this.paginator.pageIndex = page - 1;\n }\n }\n\n onPageSizeChanged(pageSize: number): void {\n this.pageSize = pageSize;\n this.pageSizeChanged.emit(pageSize);\n\n if (this.paginator && this.paginator.pageSize !== pageSize) {\n this.paginator.pageSize = pageSize;\n }\n }\n\n /**\n * Handle pagination events from Mat Paginator\n */\n onPageEvent(event: PageEvent): void {\n const newPage = event.pageIndex + 1;\n const isFirstPage = newPage === 1 && this.previousPage !== 1;\n const isLastPage =\n newPage === Math.ceil(this.totalItems / event.pageSize) && newPage !== this.previousPage;\n // Handle page size changes\n if (event.pageSize !== this.pageSize) {\n this.onPageSizeChanged(event.pageSize);\n }\n\n // Handle page changes\n if (newPage !== this.currentPage) {\n this.previousPage = this.currentPage; // Store previous page for first/last detection\n this.onPageChanged(newPage);\n\n // Emit specific events for first/last page navigation\n if (isFirstPage) {\n this.firstPageClicked.emit();\n this.liveAnnouncer.announce(\"Primeira página\");\n } else if (isLastPage) {\n this.lastPageClicked.emit();\n this.liveAnnouncer.announce(\"Última página\");\n }\n }\n\n this.pageEvent.emit(event)\n }\n\n /**\n * Navigate to first page programmatically\n */\n goToFirstPage(): void {\n if (this.currentPage !== 1) {\n this.onPageChanged(1);\n this.firstPageClicked.emit();\n this.liveAnnouncer.announce(\"Primeira página\");\n }\n }\n\n /**\n * Navigate to last page programmatically\n */\n goToLastPage(): void {\n const lastPage = Math.max(1, Math.ceil(this.totalItems / this.pageSize));\n if (this.currentPage !== lastPage) {\n this.onPageChanged(lastPage);\n this.lastPageClicked.emit();\n this.liveAnnouncer.announce(\"Última página\");\n }\n }\n\n /**\n * Update total items when data changes\n */\n updateTotalItems(): void {\n if (this.isPaginatedByServer) {\n return;\n }\n\n this.totalItems = this.dataSource.data.length;\n }\n}\n","<div class=\"table-container\" [ngClass]=\"customClass\">\n @if (tableConfig) {\n <div class=\"table-controls\">\n <mat-menu #menuColunas=\"matMenu\">\n @for (column of allColumns; track column) {\n <button\n mat-menu-item\n [type]=\"'button'\" (click)=\"toggleColumnVisibility(column)\">\n <mat-checkbox\n [attr.data-cy]=\"'checkbox-toggle-column-' + column\"\n [checked]=\"isColumnVisible(column)\">\n {{ getColumnHeader(column) }}\n </mat-checkbox>\n </button>\n }\n </mat-menu>\n </div>\n\n <table\n mat-table\n matSort\n class=\"mat-elevation-z8\"\n [dataSource]=\"dataSource\"\n (matSortChange)=\"announceSortChange($event)\">\n <ng-container matColumnDef=\"select\">\n <th *matHeaderCellDef mat-header-cell>\n <mat-checkbox\n data-cy=\"checkbox-select-all\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (change)=\"$event ? toggleAllRows() : null\" />\n </th>\n <td *matCellDef=\"let row\" mat-cell>\n <mat-checkbox\n [attr.data-cy]=\"'checkbox-select-row-' + row.id\"\n [checked]=\"selection.isSelected(row)\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection.toggle(row) : null\" />\n </td>\n </ng-container>\n\n @for (column of displayedColumns; track column) {\n <ng-container [matColumnDef]=\"column\">\n <th *matHeaderCellDef mat-header-cell [mat-sort-header]=\"column\">\n <span>{{ getColumnHeader(column) }}</span>\n <img\n alt=\"icone\"\n [ngSrc]=\"'.src/assets/svg/arrow-left-double.svg'\"\n [fill]=\"true\"\n [matMenuTriggerFor]=\"menuColunas\" />\n <mat-menu #menuColunas=\"matMenu\">\n @for (column of allColumns; track column) {\n <button\n mat-menu-item\n [type]=\"'button'\" (click)=\"toggleColumnVisibility(column)\">\n <mat-checkbox\n [attr.data-cy]=\"'checkbox-toggle-column-' + column\"\n [checked]=\"isColumnVisible(column)\">\n {{ getColumnHeader(column) }}\n </mat-checkbox>\n </button>\n }\n </mat-menu>\n </th>\n <td *matCellDef=\"let element\" mat-cell>\n @switch (getColumnType(column)) { @case ('STRING') {\n <span>{{ element[getColumnElement(column)] }}</span>\n } @case ('BOOLEAN') {\n <mat-checkbox\n disabled\n [attr.data-cy]=\"'checkbox-value-' + column + '-' + element.id\"\n [checked]=\"element[getColumnElement(column)]\" />\n } @case ('DATE') {\n <span>{{ element[getColumnElement(column)] | date:'mediumDate' }}</span>\n } @case ('NUMBER') {\n <span>{{ element[getColumnElement(column)] | number:'1.2-2' }}</span>\n } @case ('SINGLE_BUTTON') {\n <div>\n @for (btn of getColumnButtons(column); track btn) {\n <button\n mat-icon-button\n [type]=\"'button'\" [matTooltip]=\"btn.tooltip\" (click)=\"btn.onClick(element)\">\n <mat-icon>{{ btn.icon }}</mat-icon>\n </button>\n }\n </div>\n } @default {\n <span>{{ element[getColumnElement(column)] }}</span>\n } }\n </td>\n </ng-container>\n }\n\n <ng-container matColumnDef=\"footer\">\n <td *matFooterCellDef mat-footer-cell [attr.colspan]=\"displayedColumns.length + 1\">\n Total de Registros: {{ dataSource.data.length }}\n </td>\n </ng-container>\n\n <tr *matHeaderRowDef=\"getAllColumns()\" mat-header-row></tr>\n <tr\n *matRowDef=\"let row; columns: getAllColumns();\"\n mat-row\n (click)=\"selection.toggle(row)\"></tr>\n <tr *matFooterRowDef=\"['footer']\" mat-footer-row></tr>\n </table>\n }\n</div>\n\n<mat-paginator\n #paginator\n aria-label=\"Select page\"\n [length]=\"totalItems\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [pageIndex]=\"currentPage - 1\"\n [hidePageSize]=\"false\"\n [showFirstLastButtons]=\"showFirstLastButtons\"\n (page)=\"onPageEvent($event)\" />\n\n@if (!tableConfig || tableConfig.data.length === 0) {\n<div class=\"no-data-container\">\n <h2 class=\"no-data-title\">{{ tableConfig?.result?.noData || 'Não há dados disponíveis' }}</h2>\n <p class=\"no-data-message\"\n >{{ tableConfig?.result?.defaultMessage || 'Adicione alguns dados' }}</p\n >\n</div>\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { Subject } from \"rxjs\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BaseFilterTablePaginatedService {\n private filterSubject = new Subject<string>();\n\n filter$ = this.filterSubject.asObservable();\n\n updateFilter(filterValue: string) {\n this.filterSubject.next(filterValue);\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { BehaviorSubject, Observable } from \"rxjs\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BasePaginationService {\n private pageSubject = new BehaviorSubject<number>(1);\n private pageSizeSubject = new BehaviorSubject<number>(10);\n private totalItemsSubject = new BehaviorSubject<number>(0);\n\n public currentPage$: Observable<number> = this.pageSubject.asObservable();\n public pageSize$: Observable<number> = this.pageSizeSubject.asObservable();\n public totalItems$: Observable<number> = this.totalItemsSubject.asObservable();\n\n constructor() {}\n\n /**\n * Sets the current page number\n * @param page The page number to set\n */\n setPage(page: number): void {\n if (page !== this.pageSubject.value) {\n this.pageSubject.next(page);\n }\n }\n\n /**\n * Sets the page size\n * @param size The page size to set\n */\n setPageSize(size: number): void {\n if (size !== this.pageSizeSubject.value) {\n this.pageSizeSubject.next(size);\n }\n }\n\n /**\n * Sets the total number of items\n * @param total The total number of items\n */\n setTotalItems(total: number): void {\n if (total !== this.totalItemsSubject.value) {\n this.totalItemsSubject.next(total);\n }\n }\n\n /**\n * Gets the current page\n */\n getCurrentPage(): number {\n return this.pageSubject.value;\n }\n\n /**\n * Gets the current page size\n */\n getPageSize(): number {\n return this.pageSizeSubject.value;\n }\n\n /**\n * Gets the total number of items\n */\n getTotalItems(): number {\n return this.totalItemsSubject.value;\n }\n\n /**\n * Resets pagination to default values\n */\n reset(): void {\n this.pageSubject.next(1);\n this.pageSizeSubject.next(10);\n this.totalItemsSubject.next(0);\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { BehaviorSubject, Observable, map } from \"rxjs\";\n\nimport { IColumnPaginatedConfig, ITablePaginatedConfig } from \"./base-table-paginated.interface\";\n\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class TablePaginatedService {\n private tableConfigSubject = new BehaviorSubject<ITablePaginatedConfig | null>(null);\n private dataSubject = new BehaviorSubject<any[]>([]);\n private columnsSubject = new BehaviorSubject<IColumnPaginatedConfig[]>([]);\n\n tableConfig$: Observable<ITablePaginatedConfig | null> = this.tableConfigSubject.asObservable();\n columns$: Observable<IColumnPaginatedConfig[]> = this.columnsSubject.asObservable();\n data$: Observable<any[]> = this.dataSubject.asObservable();\n\n visibleColumns$: Observable<string[]> = this.columns$.pipe(\n map((columns) =>\n columns.filter((col) => col.visible).map((col) => col.key || col.element || \"\")\n )\n );\n\n createTable(data: any[], columns?: IColumnPaginatedConfig[], customConfig?: Partial<ITablePaginatedConfig>): void {\n const tableConfig: ITablePaginatedConfig = {\n columns: columns ? columns.map((col) => col.key || col.element || \"\") : [],\n data,\n columnData: {},\n result: {\n noData: \"Não há dados para o filtro selecionado.\",\n defaultMessage: \"Nenhum resultado encontrado.\",\n },\n ...customConfig,\n };\n\n if (data.length > 0 && columns) {\n const columnData: Record<string, IColumnPaginatedConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = {\n ...col,\n type: col.type || this.inferColumnType(data[0][col.key || col.element || \"\"]),\n visible: col.visible !== undefined ? col.visible : true,\n };\n });\n tableConfig.columnData = columnData;\n } else if (data.length === 0 && columns) {\n const columnData: Record<string, IColumnPaginatedConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = {\n ...col,\n type: col.type || \"STRING\",\n visible: col.visible !== undefined ? col.visible : true,\n };\n });\n tableConfig.columnData = columnData;\n }\n\n this.tableConfigSubject.next(tableConfig);\n this.columnsSubject.next(columns || []);\n this.dataSubject.next(data);\n }\n\n private inferColumnType(value: any): IColumnPaginatedConfig[\"type\"] {\n if (value === null || value === undefined) {return \"STRING\";}\n switch (typeof value) {\n case \"boolean\":\n return \"BOOLEAN\";\n case \"number\":\n return \"NUMBER\";\n case \"string\":\n return this.isValidDate(value) ? \"DATE\" : \"STRING\";\n default:\n return \"STRING\";\n }\n }\n\n private isValidDate(value: string): boolean {\n return !isNaN(Date.parse(value));\n }\n\n toggleColumnVisibility(columnKey: string): void {\n const currentColumns = this.columnsSubject.value;\n const updatedColumns = currentColumns.map((col) =>\n col.key === columnKey || col.element === columnKey ? { ...col, visible: !col.visible } : col\n );\n\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n const updatedColumnData = { ...currentConfig.columnData };\n const columnToUpdate = Object.keys(updatedColumnData).find((key) => key === columnKey);\n\n if (columnToUpdate) {\n updatedColumnData[columnToUpdate].visible = !updatedColumnData[columnToUpdate].visible;\n\n this.tableConfigSubject.next({\n ...currentConfig,\n columnData: updatedColumnData,\n });\n }\n }\n\n this.columnsSubject.next(updatedColumns);\n }\n\n getVisibleColumns(): IColumnPaginatedConfig[] {\n return this.columnsSubject.value.filter((col) => col.visible);\n }\n\n setColumns(columns: IColumnPaginatedConfig[]): void {\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n const columnData: Record<string, IColumnPaginatedConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = col;\n });\n\n this.tableConfigSubject.next({\n ...currentConfig,\n columns: columns.map((col) => col.key || col.element || \"\"),\n columnData,\n });\n }\n this.columnsSubject.next(columns);\n }\n\n setData(data: any[]): void {\n this.dataSubject.next(data);\n\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n this.tableConfigSubject.next({\n ...currentConfig,\n data,\n });\n }\n }\n\n updateTableData(data: any[]): void {\n this.setData(data);\n }\n}","import { LiveAnnouncer } from \"@angular/cdk/a11y\";\nimport { SelectionModel } from \"@angular/cdk/collections\";\nimport { CommonModule } from \"@angular/common\";\nimport {\n Component,\n ViewEncapsulation,\n OnInit,\n OnDestroy,\n Input,\n Output,\n EventEmitter,\n inject,\n ViewChild,\n} from \"@angular/core\";\nimport { MatPaginator, MatPaginatorIntl, PageEvent } from \"@angular/material/paginator\";\nimport { MatSort, Sort } from \"@angular/material/sort\";\nimport { MatTableDataSource } from \"@angular/material/table\";\n\nimport { Subscription } from \"rxjs\";\n\nimport { BaseFilterTablePaginatedService } from \"./base-filter-table-paginated.service\";\nimport { BasePaginationService } from \"./base-pagination.service\";\nimport { IColumnPaginatedConfig, ITablePaginatedConfig } from \"./base-table-paginated.interface\";\nimport { TablePaginatedService } from \"./base-table-paginated.service\";\nimport { MaterialModule } from \"../../../material.module\";\n\nexport function getPtBrPaginatorIntlBasePaginated(): MatPaginatorIntl {\n const paginatorIntl = new MatPaginatorIntl();\n paginatorIntl.itemsPerPageLabel = \"Itens por página:\";\n paginatorIntl.nextPageLabel = \"Próxima página\";\n paginatorIntl.previousPageLabel = \"Página anterior\";\n paginatorIntl.firstPageLabel = \"Primeira página\";\n paginatorIntl.lastPageLabel = \"Última página\";\n paginatorIntl.getRangeLabel = (page: number, pageSize: number, length: number) => {\n if (length === 0 || pageSize === 0) {\n return `0 de ${length}`;\n }\n const startIndex = page * pageSize;\n const endIndex = Math.min(startIndex + pageSize, length);\n return `${startIndex + 1} – ${endIndex} de ${length}`;\n };\n return paginatorIntl;\n}\n\n@Component({\n selector: \"cao-table-paginated\",\n templateUrl: \"./base-table-paginated.html\",\n styleUrl: \"./base-table-paginated.css\",\n encapsulation: ViewEncapsulation.None,\n imports: [CommonModule, MaterialModule],\n providers: [{ provide: MatPaginatorIntl, useValue: getPtBrPaginatorIntlBasePaginated() }],\n})\nexport class BaseTablePaginated implements OnInit, OnDestroy {\n private paginationSubscriptions: Subscription[] = [];\n @Input() getColumnCssClass?: (columnKey: string, value: any) => string | null;\n @Input() customClass = \"\";\n @Input() pageSizeOptions: number[] = [5, 10, 20, 50];\n @Input() showFirstLastButtons = true;\n\n @Output() readonly pageChanged = new EventEmitter<number>();\n @Output() readonly pageSizeChanged = new EventEmitter<number>();\n @Output() readonly firstPageClicked = new EventEmitter<void>();\n @Output() readonly lastPageClicked = new EventEmitter<void>();\n @Output() readonly selectionChanged = new EventEmitter<any[]>();\n @Output() readonly pageEvent = new EventEmitter<PageEvent>();\n @Output() readonly rowClicked = new EventEmitter<any>();\n\n\n dataSource = new MatTableDataSource<any>([]);\n selection = new SelectionModel<any>(true, []);\n allColumns: string[] = [];\n displayedColumns: string[] = [];\n filterValue = \"\";\n private configSubscription: Subscription | null = null;\n private visibleColumnsSubscription: Subscription | null = null;\n private dataSubscription: Subscription | null = null;\n private filterSubscription: Subscription | null = null;\n tableConfig: ITablePaginatedConfig | null = null;\n\n @ViewChild(MatSort) sort!: MatSort;\n @ViewChild(MatPaginator) paginator!: MatPaginator;\n\n totalItems = 0;\n pageSize = 10;\n currentPage = 1;\n private previousPage = 1;\n\n\n protected paginationService = inject(BasePaginationService);\n protected tableService = inject(TablePaginatedService);\n protected liveAnnouncer = inject(LiveAnnouncer);\n protected filterTableService = inject(BaseFilterTablePaginatedService);\n\n\n constructor(\n ) {\n this.initializeSortingAccessor();\n this.initializeFilterPredicate();\n }\n\n onPageChanged(page: number): void {\n this.currentPage = page;\n this.pageChanged.emit(page);\n\n if (this.paginator && this.paginator.pageIndex !== page - 1) {\n this.paginator.pageIndex = page - 1;\n }\n }\n\n ngOnInit(): void {\n this.configSubscription = this.tableService.tableConfig$.subscribe((config) => {\n if (config) {\n this.tableConfig = config;\n this.allColumns = config.columns;\n }\n });\n this.visibleColumnsSubscription = this.tableService.visibleColumns$.subscribe(\n (visibleColumns) => {\n this.displayedColumns = visibleColumns.filter((col) => col !== \"select\");\n }\n );\n this.dataSubscription = this.tableService.data$.subscribe((data) => {\n this.dataSource.data = data;\n this.updateTotalItems();\n });\n this.filterSubscription = this.filterTableService.filter$.subscribe((filterValue) => {\n this.filterValue = filterValue;\n this.applyFilter();\n });\n\n this.paginationSubscriptions.push(\n this.paginationService.currentPage$.subscribe((page) => {\n if (this.currentPage !== page) {\n this.onPageChanged(page);\n }\n }),\n\n this.paginationService.pageSize$.subscribe((size) => {\n if (this.pageSize !== size) {\n this.onPageSizeChanged(size);\n }\n })\n );\n }\n\n ngOnDestroy(): void {\n this.configSubscription?.unsubscribe();\n this.visibleColumnsSubscription?.unsubscribe();\n this.dataSubscription?.unsubscribe();\n this.filterSubscription?.unsubscribe();\n this.paginationSubscriptions.forEach((sub) => sub.unsubscribe());\n }\n\n updateTotalItems(newTotalItens?: number): void {\n this.totalItems = newTotalItens ?? this.totalItems;\n this.paginationService.setTotalItems(this.totalItems);\n\n const lastPage = this.pageSize > 0 ? Math.ceil(this.totalItems / this.pageSize) : 1;\n const lastValidPage = lastPage > 0 ? lastPage : 1;\n\n if (this.currentPage > lastValidPage) {\n this.paginationService.setPage(1);\n }\n }\n\n onPageSizeChanged(pageSize: number): void {\n this.pageSize = pageSize;\n this.pageSizeChanged.emit(pageSize);\n\n if (this.paginator && this.paginator.pageSize !== pageSize) {\n this.paginator.pageSize = pageSize;\n }\n }\n\n getColumnHeader(column: string): string {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return column;\n }\n return this.tableConfig.columnData[column].header || column;\n }\n\n getColumnElement(column: string): string {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return column;\n }\n return this.tableConfig.columnData[column].element || column;\n }\n\n getColumnType(column: string): IColumnPaginatedConfig[\"type\"] {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return \"STRING\";\n }\n return this.tableConfig.columnData[column].type || \"STRING\";\n }\n\n announceSortChange(sortState: Sort): void {\n if (sortState.direction) {\n this.liveAnnouncer.announce(\n `Ordenado ${sortState.direction === \"asc\" ? \"ascendente\" : \"descendente\"}`\n );\n } else {\n this.liveAnnouncer.announce(\"Ordenação removida\");\n }\n }\n\n handlePageChange(event: PageEvent): void {\n this.pageSize = event.pageSize;\n this.paginationService.setPageSize(event.pageSize);\n this.pageChanged.emit(event.pageIndex);\n }\n\n applyFilter(): void {\n const normalizedFilter = this.filterValue.trim().toLowerCase();\n this.dataSource.filter = normalizedFilter;\n }\n\n initializeSortingAccessor(): void {\n this.dataSource.sortingDataAccessor = (item, property) => {\n const value = item[property];\n if (typeof value === \"string\") {\n return value.toLowerCase();\n } else if (typeof value === \"number\") {\n return value;\n } else if (typeof value === \"boolean\") {\n return value ? 1 : 0;\n } else if (value instanceof Date) {\n return value.valueOf();\n } else if (value === null) {\n return \"\";\n } else if (value === undefined) {\n return undefined;\n } else if (typeof value === \"object\") {\n return value.toString();\n }\n return value;\n };\n }\n\n initializeFilterPredicate(): void {\n this.dataSource.filterPredicate = (data: any, filter: string) => {\n const searchTerms = filter.trim().toLowerCase();\n if (!searchTerms) {\n return true;\n }\n const dataStr = Object.keys(data).reduce((currentTerm: string, key: string) => {\n const value = data[key];\n return (\n currentTerm +\n (value !== null && value !== undefined ? value.toString().toLowerCase() : \"\")\n );\n }, \"\");\n return dataStr.indexOf(searchTerms) !== -1;\n };\n }\n\n onRowClick(row: any): void {\n this.rowClicked.emit(row);\n }\n\n onPageEvent(event: PageEvent): void {\n const newPage = event.pageIndex + 1;\n const isFirstPage = newPage === 1 && this.previousPage !== 1;\n const isLastPage =\n newPage === Math.ceil(this.totalItems / event.pageSize) && newPage !== this.previousPage;\n // Handle page size changes\n if (event.pageSize !== this.pageSize) {\n this.onPageSizeChanged(event.pageSize);\n }\n\n // Handle page changes\n if (newPage !== this.currentPage) {\n this.previousPage = this.currentPage; // Store previous page for first/last detection\n this.onPageChanged(newPage);\n\n // Emit specific events for first/last page navigation\n if (isFirstPage) {\n this.firstPageClicked.emit();\n this.liveAnnouncer.announce(\"Primeira página\");\n } else if (isLastPage) {\n this.lastPageClicked.emit();\n this.liveAnnouncer.announce(\"Última página\");\n }\n }\n\n this.pageEvent.emit(event)\n }\n\n getColumnButtons(column: string): any[] {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return [];\n }\n return this.tableConfig.columnData[column].buttons || [];\n }\n}\n","<div class=\"table-container\" [ngClass]=\"customClass\">\n @if (tableConfig) {\n <table mat-table matSort [dataSource]=\"dataSource\" (matSortChange)=\"announceSortChange($event)\">\n @for (column of displayedColumns; track column) {\n <ng-container [matColumnDef]=\"column\">\n <th *matHeaderCellDef mat-header-cell mat-sort-header class=\"table-header\">\n {{ getColumnHeader(column) }}\n </th>\n <td *matCellDef=\"let element\" mat-cell class=\"table-cell\">\n @switch (getColumnType(column)) { @case ('STRING') { @if (getColumnCssClass &&\n getColumnCssClass(column, element[getColumnElement(column)])) {\n <span [class]=\"getColumnCssClass(column, element[getColumnElement(column)])\">\n {{ element[getColumnElement(column)] }}\n </span>\n } @else {\n <span>{{ element[getColumnElement(column)] }}</span>\n } } @case ('BOOLEAN') {\n <mat-checkbox disabled [checked]=\"element[getColumnElement(column)]\" />\n } @case ('DATE') {\n <span>{{ element[getColumnElement(column)] | date:'mediumDate' }}</span>\n } @case ('NUMBER') {\n <span>{{ element[getColumnElement(column)] | number:'1.2-2' }}</span>\n } @case ('SINGLE_BUTTON') {\n <div>\n @for (btn of getColumnButtons(column); track btn) {\n <button type=\"button\" mat-icon-button [matTooltip]=\"btn.tooltip\" (click)=\"btn.onClick(element)\">\n <mat-icon>{{ btn.icon }}</mat-icon>\n </button>\n }\n </div>\n } }\n </td>\n </ng-container>\n }\n\n <ng-container matColumnDef=\"footer\">\n <td\n *matFooterCellDef\n mat-footer-cell\n class=\"table-cell\"\n [attr.colspan]=\"displayedColumns.length\">\n Total de Registros: {{ totalItems }}\n </td>\n </ng-container>\n\n <tr *matHeaderRowDef=\"displayedColumns\" mat-header-row></tr>\n <tr *matRowDef=\"let row; columns: displayedColumns;\" mat-row (click)=\"onRowClick(row)\"></tr>\n <tr *matFooterRowDef=\"['footer']\" mat-footer-row class=\"mat-row-footer\"></tr>\n </table>\n @if(totalItems > 0){\n\n <mat-paginator\n #paginator\n aria-label=\"Select page\"\n [length]=\"totalItems\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [pageIndex]=\"currentPage - 1\"\n [hidePageSize]=\"false\"\n [showFirstLastButtons]=\"showFirstLastButtons\"\n (page)=\"onPageEvent($event)\" />\n } @else {\n <div class=\"no-data-container\">\n <h2>{{ tableConfig?.result?.noData ?? 'Não há dados disponíveis' }}</h2>\n <p>{{ tableConfig?.result?.defaultMessage ?? 'Adicione alguns dados' }}</p>\n </div>\n } }\n</div>\n","import { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\n\nimport { AlertType } from './base-alert.interface';\n\n@Component({\n selector: 'cao-alert',\n imports: [CommonModule, NgOptimizedImage],\n templateUrl: './base-alert.html',\n styleUrl: './base-alert.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BaseAlert implements OnInit {\n data!: {\n type: AlertType;\n title: string;\n message: string;\n alertIcon?: string\n };\n\n iconPath!: string;\n titleClass!: string;\n\n private iconPaths: Record<AlertType, string> = {\n success: \"https://placehold.co/600x400\",\n error: \"https://placehold.co/600x400\",\n info: \"https://placehold.co/600x400\",\n warning: \"https://placehold.co/600x400\",\n };\n\n ngOnInit(): void {\n this.iconPath = this.iconPaths[this.data.type];\n this.titleClass = `title-${this.data.type}`;\n }\n}\n","<div class=\"dialog-container\">\n <div class=\"dialog-content\">\n <img alt=\"Logo\" class=\"logo\" [ngSrc]=\"data.alertIcon ?? ''\" [fill]=\"true\" />\n <div class=\"alert-wrapper\">\n <div class=\"text-content\">\n @if (data.title) {\n <div class=\"title\" [ngClass]=\"titleClass\">{{ data.title }}</div>\n } @if (data.title && data.message) {\n <div class=\"message-spacer\"></div>\n } @if (data.message) {\n <div class=\"message\">{{ data.message }}</div>\n }\n </div>\n <div class=\"icon-container\">\n <img alt=\"Alert Icon\" class=\"alert-icon\" [ngSrc]=\"iconPath\" [fill]=\"true\" />\n </div>\n </div>\n </div>\n</div>\n","import { Overlay } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { Injectable } from \"@angular/core\";\n\nimport { BaseAlert } from \"./base-alert\";\nimport { IAlertConfig } from \"./base-alert.interface\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BaseAlertService {\n constructor(private overlay: Overlay) { }\n protected defaultTime = 3000\n\n show(config: IAlertConfig): void {\n const overlayRef = this.overlay.create({\n hasBackdrop: false,\n positionStrategy: this.overlay.position().global().centerHorizontally().top(\"10%\"),\n scrollStrategy: this.overlay.scrollStrategies.block(),\n });\n\n const alertPortal = new ComponentPortal(this.generateComponentPortal());\n const componentRef = overlayRef.attach(alertPortal);\n componentRef.instance.data = config;\n\n setTimeout(() => {\n overlayRef.dispose();\n }, this.defaultTime);\n }\n\n generateComponentPortal(): typeof BaseAlert{\n return BaseAlert;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Component, Input } from \"@angular/core\";\n\n@Component({\n selector: \"cao-step\",\n standalone: true,\n templateUrl: \"./step.html\",\n styleUrl: \"./step.css\",\n imports: [CommonModule],\n})\nexport class StepComponent {\n @Input() title = \"\";\n @Input() isActive = false;\n}\n","<div class=\"step d-flex aic jcc\" [ngClass]=\"{'active': isActive}\"> {{ title }} </div>\n","import { AfterContentInit, EventEmitter, Output , ContentChildren, Input, QueryList , Component } from \"@angular/core\";\n\n\nimport { StepComponent } from \"./step/step\";\n\n@Component({\n selector: \"cao-stepper\",\n standalone: true,\n templateUrl: \"./stepper.html\",\n styleUrl: \"./stepper.css\",\n})\nexport class StepperComponent implements AfterContentInit {\n constructor() {}\n @ContentChildren(StepComponent) steps!: QueryList<StepComponent>;\n @Input() title!: string;\n activeStepIndex = 0;\n lengthStep = 0;\n showLine = true;\n\n @Output() readonly maxReachedEvent: EventEmitter<null> = new EventEmitter<null>();\n\n ngAfterContentInit(): void {\n if (this.steps.length > 0) {\n this.steps.toArray()[0].isActive = true;\n this.lengthStep = this.steps.length;\n }\n }\n\n nextStep() {\n if (this.steps.length > 0) {\n if (this.activeStepIndex < this.steps.length - 1) {\n this.activeStepIndex++;\n this.steps.toArray()[this.activeStepIndex].isActive = true;\n } else {\n this.maxReachedEvent.emit(null);\n }\n }\n }\n\n prevStep() {\n if (this.steps.length > 0) {\n if (this.activeStepIndex > 0) {\n this.steps.toArray()[this.activeStepIndex].isActive = false;\n this.activeStepIndex--;\n this.steps.toArray()[this.activeStepIndex].isActive = true;\n }\n }\n }\n\n resetStepper() {\n this.activeStepIndex = 0;\n this.steps.forEach((step) => (step.isActive = false));\n if (this.steps.length > 0) {\n this.steps.toArray()[0].isActive = true;\n }\n }\n}\n","@if(title){\n<h3 class=\"stepper-title\">{{ title }}</h3>\n}\n<div class=\"d-flex step-container aic jcsb\">\n @if (showLine) {\n <div class=\"line\"></div>\n }\n <div class=\"steps d-flex aic jcsb\">\n <ng-content />\n </div>\n</div>\n","/*\n * Public API Surface of ngx-opalbytes-components\n */\n\nexport * from './lib/shared/components/base-button/base-button.component'\nexport * from './lib/shared/components/base-input/base-input'\nexport * from './lib/shared/components/base-time-range/base-time-range'\n\nexport * from './lib/shared/components/autocomplete/autocomplete.component'\nexport * from './lib/shared/components/drop-down/drop-down'\nexport * from './lib/shared/components/links-button/links-button'\nexport * from './lib/shared/components/footer/footer'\nexport * from './lib/shared/components/paginator/paginator'\nexport * from './lib/shared/components/time-picker/time-picker'\n\nexport * from './lib/shared/features/base-modal/base-modal'\nexport * from './lib/shared/features/base-modal/base-modal.service'\nexport * from './lib/shared/features/base-modal/base-modal.interface'\n\nexport * from './lib/shared/features/base-dialog/base-dialog'\nexport * from './lib/shared/features/base-dialog/base-dialog.service'\nexport * from './lib/shared/features/base-dialog/base-dialog.interface'\n\nexport * from './lib/shared/features/base-table/base-table'\nexport * from './lib/shared/features/base-table/base-table.service'\nexport * from './lib/shared/features/base-table/base-table.interface'\nexport * from './lib/shared/features/base-table/base-filter-table.service'\n\nexport * from './lib/shared/features/base-table-paginated/base-table-paginated'\nexport * from './lib/shared/features/base-table-paginated/base-table-paginated.service'\nexport * from './lib/shared/features/base-table-paginated/base-table-paginated.interface'\nexport * from './lib/shared/features/base-table-paginated/base-filter-table-paginated.service'\nexport * from './lib/shared/features/base-table-paginated/base-pagination.service'\n\nexport * from './lib/shared/features/base-alert/base-alert'\nexport * from './lib/shared/features/base-alert/base-alert.service'\nexport * from './lib/shared/features/base-alert/base-alert.interface'\n\nexport * from './lib/shared/components/stepper/stepper'\nexport * from './lib/shared/components/stepper/step/step'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i4","i6","i5","i9","i7","i8"],"mappings":"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"}