intelica-library-ui 0.1.206 → 0.1.208

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":"intelica-library-ui.mjs","sources":["../../../projects/intelica-library-ui/src/lib/services/config.service.ts","../../../projects/intelica-library-ui/src/lib/services/term.service.ts","../../../projects/intelica-library-ui/src/lib/services/globalTerm.service.ts","../../../projects/intelica-library-ui/src/lib/pipes/term.pipes.ts","../../../projects/intelica-library-ui/src/lib/pipes/amount.pipe.ts","../../../projects/intelica-library-ui/src/lib/pipes/truncate.pipe.ts","../../../projects/intelica-library-ui/src/lib/constants/cookieConfiguration.constants.ts","../../../projects/intelica-library-ui/src/lib/constants/color.constants.ts","../../../projects/intelica-library-ui/src/lib/constants/date-mode-options.constants.ts","../../../projects/intelica-library-ui/src/lib/services/featureFlag.service.ts","../../../projects/intelica-library-ui/src/lib/services/globalFeatureFlag.service.ts","../../../projects/intelica-library-ui/src/lib/services/sweet-alert.service.ts","../../../projects/intelica-library-ui/src/lib/services/spinner.service.ts","../../../projects/intelica-library-ui/src/lib/interceptor/error.interceptor.ts","../../../projects/intelica-library-ui/src/lib/functions/cookie.ts","../../../projects/intelica-library-ui/src/lib/interceptor/refreshToken.interceptor.ts","../../../projects/intelica-library-ui/src/lib/enums/sort-order.enum.ts","../../../projects/intelica-library-ui/src/lib/guards/TermGuard.ts","../../../projects/intelica-library-ui/src/lib/guards/RouteGuard.ts","../../../projects/intelica-library-ui/src/lib/components/spinner/spinner.component.ts","../../../projects/intelica-library-ui/src/lib/components/spinner/spinner.component.html","../../../projects/intelica-library-ui/src/lib/constants/format-date.constants.ts","../../../projects/intelica-library-ui/src/lib/constants/titles.constants.ts","../../../projects/intelica-library-ui/src/lib/components/sorting/model/order.constants.ts","../../../projects/intelica-library-ui/src/lib/constants/constants.ts","../../../projects/intelica-library-ui/src/lib/services/shared.service.ts","../../../projects/intelica-library-ui/src/lib/directives/positive-number.directive.ts","../../../projects/intelica-library-ui/src/lib/components/paginator/paginator.component.ts","../../../projects/intelica-library-ui/src/lib/components/paginator/paginator.component.html","../../../projects/intelica-library-ui/src/lib/components/search/enums/search.enum.ts","../../../projects/intelica-library-ui/src/lib/components/search/search.component.ts","../../../projects/intelica-library-ui/src/lib/components/search/search.component.html","../../../projects/intelica-library-ui/src/lib/components/table/column.component.ts","../../../projects/intelica-library-ui/src/lib/pipes/formatCell.pipe.ts","../../../projects/intelica-library-ui/src/lib/components/table/table.component.ts","../../../projects/intelica-library-ui/src/lib/components/table/table.component.html","../../../projects/intelica-library-ui/src/lib/components/tree-table/column.component.ts","../../../projects/intelica-library-ui/src/lib/components/tree-table/tree-table.component.ts","../../../projects/intelica-library-ui/src/lib/components/tree-table/tree-table.component.html","../../../projects/intelica-library-ui/src/lib/components/matrix-table/column.component.ts","../../../projects/intelica-library-ui/src/lib/components/matrix-table/matrix-table.component.ts","../../../projects/intelica-library-ui/src/lib/components/matrix-table/matrix-table.component.html","../../../projects/intelica-library-ui/src/lib/components/actions-menu/action.directive.ts","../../../projects/intelica-library-ui/src/lib/components/actions-menu/actions-menu.component.ts","../../../projects/intelica-library-ui/src/lib/components/actions-menu/actions-menu.component.html","../../../projects/intelica-library-ui/src/lib/components/filter-chips/filter-chips.component.ts","../../../projects/intelica-library-ui/src/lib/components/filter-chips/filter-chips.component.html","../../../projects/intelica-library-ui/src/lib/enums/filter-type.enum.ts","../../../projects/intelica-library-ui/src/lib/directives/filters/filter.directive.ts","../../../projects/intelica-library-ui/src/lib/components/multi-select/multi-select.component.ts","../../../projects/intelica-library-ui/src/lib/components/multi-select/multi-select.component.html","../../../projects/intelica-library-ui/src/lib/components/filters/filters.component.ts","../../../projects/intelica-library-ui/src/lib/components/filters/filters.component.html","../../../projects/intelica-library-ui/src/lib/components/modal-dialog/modal-dialog.component.ts","../../../projects/intelica-library-ui/src/lib/components/modal-dialog/modal-dialog.component.html","../../../projects/intelica-library-ui/src/lib/components/button-split/itemsplit.directive.ts","../../../projects/intelica-library-ui/src/lib/components/button-split/button-split.component.ts","../../../projects/intelica-library-ui/src/lib/components/button-split/button-split.component.html","../../../projects/intelica-library-ui/src/lib/components/record-per-page/record-per-page.component.ts","../../../projects/intelica-library-ui/src/lib/components/record-per-page/record-per-page.component.html","../../../projects/intelica-library-ui/src/lib/components/sorting/sorting.component.ts","../../../projects/intelica-library-ui/src/lib/components/sorting/sorting.component.html","../../../projects/intelica-library-ui/src/lib/components/popover/popover.component.ts","../../../projects/intelica-library-ui/src/lib/components/popover/popover.component.html","../../../projects/intelica-library-ui/src/lib/components/echart/echart.component.ts","../../../projects/intelica-library-ui/src/lib/components/echart/echart.component.html","../../../projects/intelica-library-ui/src/lib/components/template-menu/template-menu.component.ts","../../../projects/intelica-library-ui/src/lib/components/template-menu/template-menu.component.html","../../../projects/intelica-library-ui/src/lib/services/skeleton.service.ts","../../../projects/intelica-library-ui/src/lib/components/skeleton/skeleton.component.ts","../../../projects/intelica-library-ui/src/lib/components/skeleton/skeleton.component.html","../../../projects/intelica-library-ui/src/lib/components/skeleton-table/skeleton-table.component.ts","../../../projects/intelica-library-ui/src/lib/components/skeleton-table/skeleton-table.component.html","../../../projects/intelica-library-ui/src/lib/components/skeleton-chart/data.directive.ts","../../../projects/intelica-library-ui/src/lib/components/skeleton-chart/skeleton-chart.component.ts","../../../projects/intelica-library-ui/src/lib/components/skeleton-chart/skeleton-chart.component.html","../../../projects/intelica-library-ui/src/lib/components/table-fetch/table-fetch.component.ts","../../../projects/intelica-library-ui/src/lib/components/table-fetch/table-fetch.component.html","../../../projects/intelica-library-ui/src/lib/components/titles/titles.component.ts","../../../projects/intelica-library-ui/src/lib/components/titles/titles.component.html","../../../projects/intelica-library-ui/src/lib/directives/filters/checkbox-filter.directive.ts","../../../projects/intelica-library-ui/src/lib/directives/filters/date-filter.directive.ts","../../../projects/intelica-library-ui/src/lib/directives/filters/select-detail-filter.directive.ts","../../../projects/intelica-library-ui/src/lib/directives/filters/select-filter.directive.ts","../../../projects/intelica-library-ui/src/lib/directives/filters/template.directive.ts","../../../projects/intelica-library-ui/src/lib/directives/filters/text-area-filter.directive.ts","../../../projects/intelica-library-ui/src/lib/directives/filters/text-filter.directive.ts","../../../projects/intelica-library-ui/src/lib/directives/filters/text-range-filter.directive.ts","../../../projects/intelica-library-ui/src/lib/directives/table/cell-checkbox.directive.ts","../../../projects/intelica-library-ui/src/lib/services/htmlToExcel.service.ts","../../../projects/intelica-library-ui/src/lib/services/language.service.ts","../../../projects/intelica-library-ui/src/lib/functions/echart.util.ts","../../../projects/intelica-library-ui/src/lib/services/echart.service.ts","../../../projects/intelica-library-ui/src/lib/services/pageElement.service.ts","../../../projects/intelica-library-ui/src/lib/services/element.service.ts","../../../projects/intelica-library-ui/src/lib/services/compress.service.ts","../../../projects/intelica-library-ui/src/lib/functions/compareByField.ts","../../../projects/intelica-library-ui/src/lib/functions/encryptRSA.ts","../../../projects/intelica-library-ui/src/lib/functions/inputValidation.ts","../../../projects/intelica-library-ui/src/lib/functions/decryptRSA.ts","../../../projects/intelica-library-ui/src/lib/primeThemes/Intelica.theme.ts","../../../projects/intelica-library-ui/src/public-api.ts","../../../projects/intelica-library-ui/src/intelica-library-ui.ts"],"sourcesContent":["import { HttpClient } from \"@angular/common/http\";\r\nimport { inject, Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { Observable } from \"rxjs/internal/Observable\";\r\nimport { getCookie } from \"typescript-cookie\";\r\nimport { environment } from \"../dto/environment\";\r\nimport { SessionInformation } from \"../dto/sessionInformation\";\r\n@Injectable({ providedIn: \"root\" })\r\nexport class ConfigService {\r\n\tprivate readonly Http = inject(HttpClient);\r\n\tenvironment?: environment;\r\n\tSessionInformation: SessionInformation | null = null;\r\n\tprivate readonly userDataSubject = new BehaviorSubject<string>(\"\");\r\n\tpublic userData$: Observable<string> = this.userDataSubject.asObservable();\r\n\tasync init() {\r\n\t\tconst environment = `${window.location.protocol}//${window.location.hostname}${window.location.hostname === \"localhost\" ? `:${window.location.port}` : \"\"}/environment/environment.json`;\r\n\t\tif (getCookie(\"data\") != undefined) this.SessionInformation = JSON.parse(getCookie(\"data\") ?? \"\");\r\n\t\tthis.environment = await this.Http.get<environment>(environment).toPromise();\r\n\t}\r\n\tSetSessionInformation() {\r\n\t\tthis.SessionInformation = JSON.parse(getCookie(\"data\") ?? \"\");\r\n\t}\r\n\tsetUserData(userData: string): void {\r\n\t\tthis.userDataSubject.next(userData);\r\n\t}\r\n\tgetUserData(): string {\r\n\t\treturn this.userDataSubject.value;\r\n\t}\r\n}\r\nexport function InitializeConfigService(confg: ConfigService) {\r\n\treturn () => confg.init();\r\n}\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { inject, Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { TermPageResponse } from \"../dto/term\";\r\nimport { ConfigService } from \"./config.service\";\r\n@Injectable({ providedIn: \"root\" })\r\nexport class TermService {\r\n\tprivate readonly _http = inject(HttpClient);\r\n\tprivate readonly _config = inject(ConfigService);\r\n\tGetTerms(languageCode: string, pageRoot: string): Observable<TermPageResponse[]> {\r\n\t\treturn this._http.get<TermPageResponse[]>(`${this._config.environment?.termPath}/${languageCode}/${pageRoot}`);\r\n\t}\r\n}\r\n","import { inject, Injectable, signal } from \"@angular/core\";\r\nimport { getCookie } from \"typescript-cookie\";\r\nimport { TermPageResponse } from \"../dto/term\";\r\nimport { TermService } from \"./term.service\";\r\n@Injectable({ providedIn: \"root\" })\r\nexport class GlobalTermService {\r\n\tterms: TermPageResponse[] = [];\r\n\tlanguageCode: string = \"\";\r\n\tTermsReady = signal<boolean>(false);\r\n\tPageRoot: string = \"\";\r\n\tprivate readonly termService = inject(TermService);\r\n\tInitialize(pageRoot: string): void {\r\n\t\tlet languageCode = getCookie(\"language\") ?? \"EN\";\r\n\t\tthis.PageRoot = pageRoot;\r\n\t\tif (pageRoot == \"\") {\r\n\t\t\tthis.TermsReady.set(true);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.termService.GetTerms(languageCode, pageRoot).subscribe(response => {\r\n\t\t\tthis.terms = response;\r\n\t\t\tthis.TermsReady.set(true);\r\n\t\t\tthis.SetTerms();\r\n\t\t\tthis.languageCode = languageCode;\r\n\t\t});\r\n\t}\r\n\tasync SetTerms() {\r\n\t\twhile (true) {\r\n\t\t\tawait sleep(10);\r\n\t\t\tif (document.querySelectorAll(\"[data-term]\").length > 1) break;\r\n\t\t}\r\n\t\tlet textsToChange = document.querySelectorAll(\"[data-term]\");\r\n\t\ttextsToChange.forEach(async element => {\r\n\t\t\tlet dataValue = element.getAttribute(\"data-term\");\r\n\t\t\tlet newText = this.terms.find(x => x.termName == dataValue)?.termValue ?? \"\";\r\n\t\t\telement.innerHTML = newText;\r\n\t\t\telement.setAttribute(\"placeholder\", newText);\r\n\t\t});\r\n\t}\r\n}\r\nfunction sleep(ms: number): Promise<void> {\r\n\treturn new Promise(resolve => setTimeout(resolve, ms));\r\n}\r\n","import { inject, Injectable, Pipe, PipeTransform } from \"@angular/core\";\r\nimport { GlobalTermService } from \"../services/globalTerm.service\";\r\n// import GlobalTermService from \"../services/globalTerm.service\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\n@Pipe({ name: \"term\" })\r\nexport class TermPipe implements PipeTransform {\r\n private readonly globalTermService = inject(GlobalTermService);\r\n transform(termName: string, language: string, mode: number = 1): string {\r\n let term =\r\n this.globalTermService.terms.find((x) => x.termName == termName)\r\n ?.termValue ?? \"-\";\r\n if (mode == 2) term = term.substring(0, 1);\r\n if (mode == 3) term = term.toUpperCase();\r\n return term;\r\n }\r\n}\r\n","import { Injectable, Pipe, PipeTransform } from \"@angular/core\";\r\n@Injectable({\r\n\tprovidedIn: \"root\",\r\n})\r\n@Pipe({\r\n\tname: \"amount\",\r\n})\r\nexport class FormatAmountPipe implements PipeTransform {\r\n\ttransform(value: number | string | null | undefined, shortFormat: boolean = false, decimalPlaces: number = 2): string {\r\n\t\tif (value === null || value === undefined) {\r\n\t\t\treturn \"0\";\r\n\t\t}\r\n\r\n\t\tconst numericValue = typeof value === \"string\" ? parseFloat(value) : value;\r\n\r\n\t\tif (isNaN(numericValue)) {\r\n\t\t\treturn \"0\";\r\n\t\t}\r\n\r\n\t\tlet formattedValue: string;\r\n\r\n\t\tif (shortFormat) {\r\n\t\t\tformattedValue = this.getShortFormat(numericValue, decimalPlaces);\r\n\t\t} else {\r\n\t\t\tformattedValue = this.formatWithThousandSeparators(numericValue, decimalPlaces);\r\n\t\t}\r\n\r\n\t\treturn formattedValue;\r\n\t}\r\n\r\n\tprivate getShortFormat(value: number, decimalPlaces: number): string {\r\n\t\tconst absValue = Math.abs(value);\r\n\t\tconst suffixes = [\r\n\t\t\t{ limit: 1e12, suffix: \"T\" },\r\n\t\t\t{ limit: 1e9, suffix: \"B\" },\r\n\t\t\t{ limit: 1e6, suffix: \"M\" },\r\n\t\t\t{ limit: 1e3, suffix: \"K\" },\r\n\t\t];\r\n\r\n\t\tfor (const { limit, suffix } of suffixes) {\r\n\t\t\tif (absValue >= limit) {\r\n\t\t\t\treturn (value / limit).toFixed(decimalPlaces) + suffix;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn value.toFixed(decimalPlaces);\r\n\t}\r\n\r\n\tprivate formatWithThousandSeparators(value: number, decimalPlaces: number): string {\r\n\t\treturn new Intl.NumberFormat(\"en-US\", {\r\n\t\t\tminimumFractionDigits: decimalPlaces,\r\n\t\t\tmaximumFractionDigits: decimalPlaces,\r\n\t\t}).format(value);\r\n\t}\r\n}\r\n","import { Injectable, Pipe, PipeTransform } from \"@angular/core\";\r\n@Injectable({ providedIn: \"root\" })\r\n@Pipe({\r\n\tname: \"truncate\",\r\n})\r\nexport class TruncatePipe implements PipeTransform {\r\n\ttransform(value: any, size: number = 15, original = false): any {\r\n\t\tif (!value) return value;\r\n\t\tif (value.length <= size) return value;\r\n\t\tlet truncateString = value.substring(0, size);\r\n\t\treturn !original ? `${truncateString}...` : truncateString.toUpperCase();\r\n\t}\r\n}\r\n","const Domain = window.location.hostname.split(\".\").slice(-2).join(\".\");\r\nconst Secure = !Domain.includes(\"localhost\");\r\nexport const CookieAttributesGeneral: CookieAttributes = { domain: Domain, path: \"/\", secure: Secure };\r\nexport interface CookieAttributes {\r\n\tpath?: string;\r\n\tdomain?: string;\r\n\texpires?: number | Date;\r\n\tsameSite?: \"strict\" | \"Strict\" | \"lax\" | \"Lax\" | \"none\" | \"None\";\r\n\tsecure?: boolean;\r\n\t[property: string]: any;\r\n}\r\n","export const Color = {\r\n\tmastercard: \"#ff7f00\",\r\n\tvisa: \"#17375E\",\r\n\tamex: \"#348AD5\",\r\n\torange: \"#ff7f00\",\r\n\torangeDark: \"#CC4900\",\r\n\tblue: \"#17375E\",\r\n\tgray: \"#D3D3D3\",\r\n\tgray3: \"#a6a5a1\",\r\n\tgray5: \"#e9e9e9\",\r\n};\r\n\r\nexport type ColorName = keyof typeof Color;\r\n\r\nexport const getColor = (name: ColorName): string => {\r\n\treturn Color[name];\r\n};\r\n","export const DateModeOptions = {\r\n Day: { value: \"day\", format: \"d/m/y\" },\r\n Month: { value: \"month\", format: \"m/y\" },\r\n Year: { value: \"year\", format: \"y\" },\r\n} as const;\r\n\r\nexport type DateMode =\r\n (typeof DateModeOptions)[keyof typeof DateModeOptions][\"value\"];\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { Injectable, inject } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { ConfigService } from \"./config.service\";\r\nimport { FeatureFlagPageRootResponse } from \"../dto/featureFlagResponses\";\r\n@Injectable({ providedIn: \"root\" })\r\nexport class FeatureFlagService {\r\n\tprivate readonly _http = inject(HttpClient);\r\n\tprivate readonly _configService = inject(ConfigService);\r\n\tGetByPageRoot(pageRoot: string): Observable<FeatureFlagPageRootResponse[]> {\r\n\t\treturn this._http.get<FeatureFlagPageRootResponse[]>(`${this._configService.environment?.configurationPath}/FeatureFlag/${pageRoot}`);\r\n\t}\r\n}\r\n","import { Injectable, signal } from \"@angular/core\";\r\nimport { FeatureFlagService } from \"./featureFlag.service\";\r\nimport { FeatureFlagPageRootResponse } from \"../dto/featureFlagResponses\";\r\n@Injectable({ providedIn: \"root\" })\r\nexport class GlobalFeatureFlagService {\r\n\tprivate pageRoot: string = \"\";\r\n\tIsReady = signal<boolean>(false);\r\n\tFeatureFlagsSignal = signal<FeatureFlagPageRootResponse[]>([]);\r\n\r\n\tconstructor(private featureFlagDataService: FeatureFlagService) {}\r\n\tInitialize(pageRoot: string): void {\r\n\t\tthis.pageRoot = pageRoot;\r\n\t\tthis.IsReady.set(true);\r\n\t\t// this.featureFlagDataService.GetByPageRoot(pageRoot).subscribe(response => {\r\n\t\t// \t//\t\tthis.FeatureFlags = response;\r\n\t\t// \tthis.FeatureFlagsSignal.set(response);\r\n\t\t// \tthis.IsReady.set(true);\r\n\t\t// });\r\n\t}\r\n\tExists(featureFlagName: string): boolean {\r\n\t\treturn !(this.FeatureFlagsSignal().find(x => x.name == featureFlagName) == null);\r\n\t}\r\n\tRefresh(): void {\r\n\t\tthis.Initialize(this.pageRoot);\r\n\t}\r\n\tGetPageRoot(): string {\r\n\t\treturn this.pageRoot;\r\n\t}\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport Swal, { SweetAlertOptions, SweetAlertResult } from \"sweetalert2\";\r\n@Injectable({\r\n\tprovidedIn: \"root\",\r\n})\r\nexport class SweetAlertService {\r\n\toptions: SweetAlertOptions = {\r\n\t\ttext: \"\",\r\n\t\tcustomClass: {\r\n\t\t\timage: \"image-class-custom\",\r\n\t\t\tcontainer: \"container-class-custom\",\r\n\t\t\tconfirmButton: \"confirm-class-custom\",\r\n\t\t\tcancelButton: \"cancel-class-custom\",\r\n\t\t},\r\n\t\tshowCloseButton: true,\r\n\t\tcloseButtonHtml: '<i class=\"fa fa-times\"></i>',\r\n\t\timageUrl: `${window.location.origin}/assets/images/logo-incontrol.svg`,\r\n\t\tshowCancelButton: false,\r\n\t\tconfirmButtonText: \"Ok\",\r\n\t\tcancelButtonText: \"\",\r\n\t\thtml: \"\",\r\n\t};\r\n\r\n\tmessageBox(message: string): Promise<SweetAlertResult<any>> {\r\n\t\tlet options = structuredClone(this.options);\r\n\t\toptions.showCancelButton = false;\r\n\t\toptions.text = message;\r\n\t\treturn Swal.fire(options);\r\n\t}\r\n\r\n\tmessageTextBox(message: string = \"\", swHtml: boolean = false) {\r\n\t\tlet options = structuredClone(this.options);\r\n\t\toptions.showCancelButton = false;\r\n\t\tif (!swHtml) options.text = message.length === 0 ? \"Something went wrong!\" : message;\r\n\t\telse options.html = message;\r\n\t\tSwal.fire(options);\r\n\t}\r\n\r\n\tconfirmBox(message: string, confirmButtonText: string, cancelButtonText: string, title?: string, html?: string, popupClass?: string): Promise<SweetAlertResult<any>> {\r\n\t\tlet options = structuredClone(this.options);\r\n\t\toptions.title = title ?? \"\";\r\n\t\toptions.showCancelButton = cancelButtonText == \"\" ? false : true;\r\n\t\toptions.text = message;\r\n\t\toptions.confirmButtonText = confirmButtonText;\r\n\t\toptions.cancelButtonText = cancelButtonText;\r\n\t\toptions.html = html;\r\n\t\tif (popupClass) {\r\n\t\t\toptions.customClass = {\r\n\t\t\t\tpopup: popupClass,\r\n\t\t\t};\r\n\t\t}\r\n\t\treturn Swal.fire(options);\r\n\t}\r\n\r\n\tmessageHTMLBox(title: string, html: string, confirmButtonText: string): Promise<SweetAlertResult<any>> {\r\n\t\tlet options = structuredClone(this.options);\r\n\t\toptions.showCancelButton = false;\r\n\t\toptions.title = title;\r\n\t\toptions.html = html;\r\n\t\toptions.confirmButtonText = confirmButtonText;\r\n\t\treturn Swal.fire(options);\r\n\t}\r\n}\r\n","import { Injectable, signal } from \"@angular/core\";\r\n@Injectable({ providedIn: \"root\" })\r\nexport class SpinnerService {\r\n\tisLoading = signal<boolean>(false);\r\n\tpublic hide() {\r\n\t\tthis.isLoading.set(false);\r\n\t}\r\n\tpublic show() {\r\n\t\tthis.isLoading.set(true);\r\n\t}\r\n}","import { HttpErrorResponse, HttpHeaders, HttpInterceptorFn } from \"@angular/common/http\";\r\nimport { inject } from \"@angular/core\";\r\nimport { catchError, throwError } from \"rxjs\";\r\nimport { getCookie } from \"typescript-cookie\";\r\nimport { GlobalFeatureFlagService } from \"../services/globalFeatureFlag.service\";\r\nimport { ConfigService } from \"../services/config.service\";\r\nimport { SweetAlertService } from \"../services/sweet-alert.service\";\r\nimport { SpinnerService } from \"../services/spinner.service\";\r\nexport const ErrorInterceptor: HttpInterceptorFn = (req, next) => {\r\n\tconst skip = req.headers.has(\"Skip-Interceptor\");\r\n\tif (skip) {\r\n\t\tconst cleanReq = req.clone({\r\n\t\t\theaders: req.headers.delete(\"Skip-Interceptor\"),\r\n\t\t});\r\n\t\treturn next(cleanReq);\r\n\t}\r\n\tconst commonFeatureFlagService = inject(GlobalFeatureFlagService);\r\n\tconst spinnerService = inject(SpinnerService);\r\n\tconst sweetAlertService = inject(SweetAlertService);\r\n\tconst configService: ConfigService = inject(ConfigService);\r\n\tconst HeaderSettings: { [name: string]: string | string[] } = {};\r\n\tconst authenticationClientID = configService.environment?.clientID ?? \"\";\r\n\tif (!req.url.includes(\"environment.json\")) {\r\n\t\tHeaderSettings[\"Accept\"] = \"application/json\";\r\n\t\tHeaderSettings[\"Content-Type\"] = \"application/json\";\r\n\t\tHeaderSettings[\"Authorization\"] = getCookie(\"token\") ?? \"\";\r\n\t\tHeaderSettings[\"RefreshToken\"] = getCookie(\"refreshToken\") ?? \"\";\r\n\t\tHeaderSettings[\"ClientID\"] = configService.environment?.clientID ?? \"\";\r\n\t\tHeaderSettings[\"PageRoot\"] = commonFeatureFlagService.GetPageRoot();\r\n\t\tHeaderSettings[\"LanguageCode\"] = getCookie(\"language\") ?? \"\";\r\n\t\tHeaderSettings[\"Environment\"] = configService.environment?.environment ?? \"\";\r\n\t\tHeaderSettings[\"Access\"] = authenticationClientID == \"\" ? \"\" : getCookie(authenticationClientID) ?? \"\";\r\n\t}\r\n\tlet _request = req.clone({ headers: new HttpHeaders(HeaderSettings) });\r\n\treturn next(_request).pipe(catchError(handleErrorResponse));\r\n\tfunction handleErrorResponse(error: HttpErrorResponse) {\r\n\t\tconsole.log(error, \"error\");\r\n\t\tspinnerService.hide();\r\n\t\tif (error.status == 500) sweetAlertService.messageBox(error.error.message);\r\n\t\tif (error.status == 400) sweetAlertService.messageBox(error.error.message);\r\n\t\tif (error.status == 409) sweetAlertService.messageBox(error.error.message);\r\n\t\tif (error.status == 401) sweetAlertService.messageBox(error.error.message);\r\n\t\tif (error.status == 503 || error.status == 0) sweetAlertService.messageBox(\"El servicio que se necesita consumir no esta activo o no responde.\");\r\n\t\tif (error.status == 405) sweetAlertService.messageBox(\"Los parametros enviados al servicio no coinciden.\");\r\n\t\tif (error.status == 404) sweetAlertService.messageBox(\"Recurso no encontrado.\");\r\n\t\treturn throwError(() => {\r\n\t\t\terror.error, error.message;\r\n\t\t});\r\n\t}\r\n};\r\n","import { CookieAttributes } from \"../constants/cookieConfiguration.constants\";\r\nexport function GetCookieAttributes(environment: string): CookieAttributes {\r\n\tconst domain = window.location.hostname\r\n\t\t.split(\".\")\r\n\t\t.slice(environment == \"main\" ? -2 : -3)\r\n\t\t.join(\".\");\r\n\tconst secure = !domain.includes(\"localhost\");\r\n\treturn { domain: domain, path: \"/\", secure: secure };\r\n}\r\n","import { GlobalFeatureFlagService } from \"../services/globalFeatureFlag.service\";\r\nimport { HttpClient, HttpInterceptorFn } from \"@angular/common/http\";\r\nimport { inject } from \"@angular/core\";\r\nimport { from, switchMap } from \"rxjs\";\r\nimport { getCookie, setCookie, Cookies } from \"typescript-cookie\";\r\nimport { ConfigService } from \"../services/config.service\";\r\nimport {\r\n ValidateTokenQuery,\r\n ValidateTokenResponse,\r\n} from \"../dto/authentication\";\r\nimport { GetCookieAttributes } from \"../functions/cookie\";\r\nexport const RefreshTokenInterceptor: HttpInterceptorFn = (req, next) => {\r\n const skip = req.headers.has(\"Skip-Interceptor\");\r\n if (skip) {\r\n const cleanReq = req.clone({\r\n headers: req.headers.delete(\"Skip-Interceptor\"),\r\n });\r\n return next(cleanReq);\r\n }\r\n const configService: ConfigService = inject(ConfigService);\r\n const httpClient = inject(HttpClient);\r\n const commonFeatureFlagService = inject(GlobalFeatureFlagService);\r\n const cookieAttributesGeneral = GetCookieAttributes(\r\n configService.environment?.environment ?? \"\"\r\n );\r\n let _request = req.clone();\r\n let authenticationLocation = `${configService.environment?.authenticationWeb}?callback=${window.location.href}&clientID=${configService.environment?.clientID}`;\r\n let path = `${\r\n configService.environment?.authenticationPath ?? \"\"\r\n }/Authenticate/ValidateToken`;\r\n var authenticationClientID = configService.environment?.clientID ?? \"\";\r\n let validateTokenQuery: ValidateTokenQuery = {\r\n token: getCookie(\"token\") ?? \"\",\r\n refreshToken: getCookie(\"refreshToken\") ?? \"\",\r\n ip: req.url,\r\n clientID: configService.environment?.clientID ?? \"\",\r\n pageRoot: commonFeatureFlagService.GetPageRoot(),\r\n controller: \"\",\r\n httpVerb: \"GET\",\r\n businessUserClientGroupID: getCookie(\"businessUserClientGroupID\") ?? \"\",\r\n access:\r\n authenticationClientID == \"\"\r\n ? \"\"\r\n : getCookie(authenticationClientID) ?? \"\",\r\n };\r\n if (\r\n !req.url.includes(\"ValidateToken\") &&\r\n !req.url.includes(\"environment.json\") &&\r\n !req.url.includes(\"GetAuthenticationFromCache\")\r\n )\r\n return from(\r\n httpClient.post<ValidateTokenResponse>(path, validateTokenQuery)\r\n ).pipe(\r\n switchMap((response: ValidateTokenResponse) => {\r\n if (response.expired) {\r\n Cookies.remove(\"token\", cookieAttributesGeneral);\r\n Cookies.remove(\"refreshToken\", cookieAttributesGeneral);\r\n Cookies.remove(\"data\", cookieAttributesGeneral);\r\n Cookies.remove(\r\n \"businessUserClientGroupID\",\r\n cookieAttributesGeneral\r\n );\r\n Cookies.remove(\"defaultClientID\", cookieAttributesGeneral);\r\n Cookies.remove(\"defaultClientGroupID\", cookieAttributesGeneral);\r\n Cookies.remove(authenticationClientID, cookieAttributesGeneral);\r\n window.location.href = authenticationLocation;\r\n return next(_request);\r\n }\r\n if (response.unauthorized)\r\n window.location.href = window.location.origin;\r\n if (response.newToken != \"\")\r\n setCookie(\"token\", response.newToken, cookieAttributesGeneral);\r\n return next(_request);\r\n })\r\n );\r\n else return next(_request);\r\n};\r\n","export enum TableSortOrder {\r\n Asc = 1,\r\n Desc = -1,\r\n}\r\n","import { inject, Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, CanActivateFn, RouterStateSnapshot } from \"@angular/router\";\r\nimport { TermPageResponse } from \"../dto/term\";\r\n@Injectable({\r\n\tprovidedIn: \"root\",\r\n})\r\nclass PermissionsService {\t\r\n\tconstructor() {}\r\n\tasync canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot){\r\n\t\twhile (true) {\r\n\t\t\tawait sleep(10);\r\n\t\t\tif (document.querySelectorAll(\"[data-security]\").length > 0) break;\r\n\t\t}\r\n\t\tlet termsString = sessionStorage.getItem(\"Term\");\t\t\r\n\t\tif (termsString == null) return true;\r\n\t\tlet terms: TermPageResponse[] = JSON.parse(termsString);\r\n\t\tconst textsToChange = document.querySelectorAll(\"[data-security]\");\r\n\t\ttextsToChange.forEach(async element => {\r\n\t\t\tlet dataValue = element.getAttribute(\"data-security\");\t\t\t\r\n\t\t\tlet newText = terms.find(x => x.termName == dataValue)?.termValue ?? \"\";\r\n\t\t\telement.innerHTML = newText;\r\n\t\t\telement.setAttribute(\"placeholder\", newText);\r\n\t\t});\r\n\t\treturn true;\r\n\t}\r\n}\r\nfunction sleep(ms: number): Promise<void> {\r\n\treturn new Promise(resolve => setTimeout(resolve, ms));\r\n}\r\nexport const TermGuard: CanActivateFn = (next: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean => {\r\n\tinject(PermissionsService).canActivate(next, state);\r\n\treturn true;\r\n};","import { HttpClient } from \"@angular/common/http\";\r\nimport { inject, Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, CanActivateFn, RouterStateSnapshot } from \"@angular/router\";\r\nimport { ConfigService } from \"../services/config.service\";\r\n@Injectable({\r\n\tprovidedIn: \"root\",\r\n})\r\nclass RouteGuardService {\r\n\tprivate readonly HttpClient = inject(HttpClient);\r\n\tprivate readonly ConfigService = inject(ConfigService);\r\n\tconstructor() {}\r\n\tasync canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n\t\tthis.ChangeRoute(next.data[\"pageRoot\"]);\r\n\t}\r\n\tChangeRoute(pageRoot: string): void {\r\n\t\tthis.HttpClient.get<string[]>(`${this.ConfigService.environment?.securityPath}/Menu/GetBreadcrumbs/${pageRoot}`).subscribe(response => {\r\n\t\t\tlet eventChangeRoute = new CustomEvent(\"ChangeRoute\", {\r\n\t\t\t\tdetail: { Breadcrumbs: response },\r\n\t\t\t});\r\n\t\t\twindow.dispatchEvent(eventChangeRoute);\r\n\t\t});\r\n\t}\r\n}\r\nexport const RouteGuard: CanActivateFn = (next: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean => {\r\n\tinject(RouteGuardService).canActivate(next, state);\r\n\treturn true;\r\n};\r\n","import { Component, inject } from \"@angular/core\";\r\nimport { SpinnerService } from \"../../services/spinner.service\";\r\n@Component({\r\n\tselector: \"app-spinner\",\r\n\timports: [],\r\n\ttemplateUrl: \"./spinner.component.html\",\r\n\tstyleUrl: \"./spinner.component.css\",\r\n})\r\nexport class SpinnerComponent {\r\n\tprivate readonly spinerService = inject(SpinnerService);\r\n\tisLoading = this.spinerService.isLoading;\r\n\tLoadingLogo: string = `${window.location.origin}/assets/images/loading_intelica.gif`;\r\n}\r\n","@if (isLoading()){\r\n<div id=\"overlay\">\r\n\t<div class=\"loading\">\r\n\t\t<div class=\"content-center\">\r\n\t\t\t<img alt=\"Intelica\" [src]=\"LoadingLogo\" />\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n}\r\n","export class FormatDateConstants {\r\n\tpublic static readonly DMYY: string = \"d/M/yy\";\r\n\tpublic static readonly MMYY: string = \"MMMM yyyy\";\r\n\tpublic static readonly YYMD: string = \"yyMd\";\r\n\tpublic static readonly DMYY_MOMENT: string = \"D/M/YY\";\r\n\tpublic static readonly YYMD_MOMENT: string = \"YYMD\";\r\n\tpublic static readonly DDMMYYYY: string = \"dd_MM_YYYY\";\r\n\tpublic static readonly DDMMYYYY_: string = \"DD/MM/YYYY\";\r\n\tpublic static readonly YYYYMMDD: string = \"YYYY-MM-DD\";\r\n\tpublic static readonly YYYYMMDD_: string = \"yyyyMMdd\";\r\n\tpublic static readonly YYYYMMDD_SLASH: string = \"YYYY/MM/DD\";\r\n}\r\n","export class GroupRegCountryBankConstants {\r\n\t//IDS\r\n\tpublic static COLUMN_GROUP_ID = 'groupId';\r\n\tpublic static COLUMN_REGION_ID = 'regionId';\r\n\tpublic static COLUMN_COUNTRY_ID = 'countryId';\r\n\tpublic static COLUMN_BANK_ID = 'bankId';\r\n\t//DESCRIPTION BD\r\n\tpublic static COLUMN_GROUP_NAME = 'groupName';\r\n\tpublic static COLUMN_REGION_NAME = 'regionName';\r\n\tpublic static COLUMN_COUNTRY_NAME = 'countryName';\r\n\tpublic static COLUMN_BANK_NAME = 'bankName';\r\n\tpublic static COLUMN_BANK_NAME_COMERCIAL = 'bankNameCommercial';\r\n\t//DESCRIPTION GROUP COMBO\r\n\tpublic static GLOBAL: { [key: number]: string } = {\r\n\t\t325: 'Global',\r\n\t\t327: 'Global'\r\n\t};\r\n\tpublic static GROUP: { [key: number]: string } = {\r\n\t\t325: 'Group',\r\n\t\t327: 'Grupo'\r\n\t};\r\n\tpublic static REGION: { [key: number]: string } = {\r\n\t\t325: 'Region',\r\n\t\t327: 'Región'\r\n\t};\r\n\tpublic static COUNTRY: { [key: number]: string } = {\r\n\t\t325: 'Country',\r\n\t\t327: 'País'\r\n\t};\r\n\tpublic static BANK: { [key: number]: string } = {\r\n\t\t325: 'Client',\r\n\t\t327: 'Cliente'\r\n\t};\r\n\t//DESCRIPCION BY\r\n\tpublic static GROUP_BY = 'groupBy';\r\n\tpublic static GROUP_TEXT = 'name';\r\n\tpublic static GROUP_INDEX = 'index';\r\n}\r\n\r\nexport class GroupRegionCountryBankModel {\r\n\tindex?: number = 0;\r\n\tgroupId: number = 0;\r\n\tgroupName: string = '';\r\n\tregionId: number = 0;\r\n\tregionName: string = '';\r\n\tcountryId: number = 0;\r\n\tcountryName: string = '';\r\n\tbankId: number = 0;\r\n\tbankName: string = '';\r\n\tnivel?: number = 0;\r\n\tbankNameCommercial: string = '';\r\n}\r\n\r\nexport class GlobalConstants {\r\n\tpublic static STRING_ALL: string = 'All';\r\n\tpublic static NUMBER_ALL: number = -1;\r\n\tpublic static REGION_EUROPE: number = 7;\r\n\tpublic static KEY_ENCRIPT: string = 'abcdefghijklmnopqrstuvwx';\r\n\tpublic static IV_ENCRIPT: string = '1234567890123456';\r\n}\r\n","export class OrderConstants {\r\n\t//DESCRIPTION\r\n\tpublic static ORDER_BY_DESC : 'desc' = \"desc\";\r\n\tpublic static ORDER_BY_ASC : 'asc' = \"asc\";\r\n\t//VALUES\r\n\tpublic static ORDER_BY_DESC_VALUE = \"1\";\r\n\tpublic static ORDER_BY_ASC_VALUE = \"0\";\r\n}\r\n","export class Constants {\r\n\tpublic static REGION_EUROPE = 7;\r\n}","import { inject, Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\r\nimport { Location } from \"@angular/common\";\r\nimport { FormatDateConstants } from \"../constants/format-date.constants\";\r\nimport moment from \"moment\";\r\nimport { GroupRegCountryBankConstants, GroupRegionCountryBankModel } from \"../constants/titles.constants\";\r\nimport { OrderConstants } from \"../components/sorting/model/order.constants\";\r\nimport { Constants } from \"../constants/constants\";\r\nimport { TermPipe } from \"../pipes/term.pipes\";\r\nimport { GlobalTermService } from \"./globalTerm.service\";\r\nimport _ from \"lodash\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class SharedService {\r\n public configObservable = new Subject<boolean>();\r\n isLoading = new BehaviorSubject(false);\r\n isLoadingHeader = new BehaviorSubject(true);\r\n isExpandedContent = new BehaviorSubject(false);\r\n isLoadingPageInfo = new BehaviorSubject(true);\r\n notifyProfileType = new Subject<string>();\r\n charges = 0;\r\n showHelper = new BehaviorSubject(false);\r\n headerPathName = new BehaviorSubject<string[]>([]);\r\n pageId: number | undefined = 0;\r\n openActionMenu$: Subject<boolean> = new Subject<boolean>();\r\n months = {\r\n en: [\r\n \"January\",\r\n \"February\",\r\n \"March\",\r\n \"April\",\r\n \"May\",\r\n \"June\",\r\n \"July\",\r\n \"August\",\r\n \"September\",\r\n \"October\",\r\n \"November\",\r\n \"December\",\r\n ],\r\n es: [\r\n \"Enero\",\r\n \"Febrero\",\r\n \"Marzo\",\r\n \"Abril\",\r\n \"Mayo\",\r\n \"Junio\",\r\n \"Julio\",\r\n \"Agosto\",\r\n \"Septiembre\",\r\n \"Octubre\",\r\n \"Noviembre\",\r\n \"Diciembre\",\r\n ],\r\n };\r\n subtitleDescriptionNotification$!: Observable<string>;\r\n readonly GlobalTermService = inject(GlobalTermService);\r\n constructor(private location: Location, private termsPipe: TermPipe) {}\r\n ///METODOS GLOBALS.\r\n IsNumberRate(n: any) {\r\n return !isNaN(parseFloat(n)) && !isNaN(n - 0);\r\n }\r\n RemovePercentage(string: string) {\r\n if (string.length > 0) {\r\n if (string.startsWith(\"%\")) string = string.substring(1);\r\n let last = string.length - 1;\r\n if (string.endsWith(\"%\")) string = string.substring(0, last);\r\n }\r\n return string;\r\n }\r\n GetTotalAmountByCrncy(col: string, listGeneral: any): number {\r\n return listGeneral.reduce((a: any, b: any) => a + (b[col] || 0), 0);\r\n }\r\n GetTotalAverageByColumn(col: string, listGeneral: any): number {\r\n return (\r\n listGeneral.reduce((a: any, b: any) => a + (b[col] || 0), 0) /\r\n (listGeneral.length || 1)\r\n );\r\n }\r\n GetTotalByGroup(\r\n col: string,\r\n listGeneral: any[],\r\n groupBy: string[] | undefined\r\n ): any[] {\r\n if (!groupBy?.length)\r\n return [listGeneral.reduce((a: any, b: any) => a + (b[col] || 0), 0)];\r\n\r\n let result: { [key: string]: any } = listGeneral.reduce(\r\n (acc: { [key: string]: any }, item: any) => {\r\n const groupKey = groupBy.map((prop) => item[prop]).join(\"||\");\r\n acc[groupKey] = (acc[groupKey] || 0) + item[col];\r\n return acc;\r\n },\r\n {}\r\n );\r\n const propiedades = Object.keys(result).sort();\r\n const indexGroup = groupBy.indexOf(col);\r\n if (indexGroup != -1)\r\n return propiedades.map((propiedad) => propiedad.split(\"||\")[indexGroup]);\r\n return propiedades.map((propiedad) => result[propiedad]);\r\n }\r\n TransformNegative(value: string): string {\r\n value = value?.toString() ?? \"0.00\";\r\n if (value?.indexOf(\"-\") > -1) return \"(\" + value.replace(\"-\", \"\") + \")\";\r\n else return value.toString();\r\n }\r\n FormatNumber(value: number, decimalMax: number, decimalMin: number) {\r\n return value.toLocaleString(\"en-US\", {\r\n maximumFractionDigits: decimalMax,\r\n minimumFractionDigits: decimalMin,\r\n });\r\n }\r\n ClickOutSideValidator(event: any): boolean {\r\n let res = false;\r\n if (event !== undefined) {\r\n const src = (event as Event).srcElement as Element;\r\n res = src.id !== \"button-alignment\" && !this.CheckParents(src, 0);\r\n }\r\n return res;\r\n }\r\n CheckParents(src: Element, c: number): boolean {\r\n var ids = [];\r\n ids.push(\"HamburgerMenu\");\r\n var strings = [];\r\n strings.push(\"swal2-container\");\r\n if (src.className.includes(\"backdrop-visible\")) return false;\r\n var res = ids.some(function (v) {\r\n return src.id === v;\r\n });\r\n if (\r\n !res &&\r\n (src.tagName === \"BODY\" || src.parentElement === null) &&\r\n c === 0\r\n ) {\r\n res = true;\r\n }\r\n if (\r\n !res &&\r\n strings.some(function (v) {\r\n return src.classList.contains(v);\r\n })\r\n )\r\n res = true;\r\n if (src.parentElement && !res) {\r\n c++;\r\n res = this.CheckParents(src.parentElement, c);\r\n }\r\n return res;\r\n }\r\n GetTitleByRegionOrCountry(CurrentGroup: any, Current: any, field: string) {\r\n return CurrentGroup\r\n ? CurrentGroup.groupName + \" - \" + Current[field]\r\n : Current[field];\r\n }\r\n GetTitleByBank(ListGeneralCountryAll: any[], CurrentBank: any) {\r\n return ListGeneralCountryAll.length > 1\r\n ? CurrentBank.groupName +\r\n \" - \" +\r\n CurrentBank.countryName +\r\n \" - \" +\r\n CurrentBank.bankNameCommercial\r\n : CurrentBank.bankNameCommercial;\r\n }\r\n Roundgen(value: any, precision: any) {\r\n var multiplier = Math.pow(10, precision || 0);\r\n return Math.round(value * multiplier) / multiplier;\r\n }\r\n ReturnAmountPercen(amount: any): string {\r\n if (isNaN(amount)) amount = 0;\r\n let resultado: string = \"\";\r\n let AmountStr =\r\n amount === 0\r\n ? \"0\"\r\n : amount.toLocaleString(\"en-US\", {\r\n maximumFractionDigits: 1,\r\n minimumFractionDigits: 1,\r\n });\r\n if (AmountStr.indexOf(\".0\") !== -1)\r\n AmountStr = amount.toLocaleString(\"en-US\", {\r\n maximumFractionDigits: 0,\r\n minimumFractionDigits: 0,\r\n });\r\n if (amount < 0 && parseInt(amount.toString()) * -1 === 0) {\r\n resultado =\r\n amount\r\n .toLocaleString(\"en-US\", {\r\n maximumFractionDigits: 1,\r\n minimumFractionDigits: 1,\r\n })\r\n .replace(\"-\", \"(\") + \"%)\";\r\n } else if (amount < 0) resultado = AmountStr.replace(\"-\", \"(\") + \"%)\";\r\n else resultado = AmountStr + \"%\";\r\n if (\r\n Number.NEGATIVE_INFINITY === amount ||\r\n Number.POSITIVE_INFINITY === amount\r\n )\r\n resultado = \"\";\r\n return resultado;\r\n }\r\n ReturAmountFormat(amount: any): string {\r\n if (isNaN(amount)) amount = 0;\r\n amount = this.Roundgen(amount, 2);\r\n let resultado: string = \"\";\r\n if (amount < 0 && parseInt(amount.toString()) * -1 === 0)\r\n resultado = amount.toString().replace(\"-\", \"(\") + \")\";\r\n else if (amount < 0 && amount > -1000) {\r\n resultado = this.Roundgen(amount, 0).toString().replace(\"-\", \"(\") + \")\";\r\n } else if (amount < 0 && -1000000000 >= amount) {\r\n resultado =\r\n this.Roundgen(amount / 1000000000, 1)\r\n .toString()\r\n .replace(\"-\", \"(\") + \" B)\";\r\n } else if (amount < 0 && -1000000 >= amount) {\r\n resultado =\r\n this.Roundgen(amount / 1000000, 1)\r\n .toString()\r\n .replace(\"-\", \"(\") + \" M)\";\r\n } else if (amount < 0) {\r\n resultado =\r\n this.Roundgen(amount / 1000, 1)\r\n .toString()\r\n .replace(\"-\", \"(\") + \" K)\";\r\n } else if (amount < 1000) resultado = this.Roundgen(amount, 0).toString();\r\n else if (1000000000 < amount)\r\n resultado = this.Roundgen(amount / 1000000000, 1).toString() + \" B\";\r\n else if (1000000 < amount)\r\n resultado = this.Roundgen(amount / 1000000, 1).toString() + \" M\";\r\n else resultado = this.Roundgen(amount / 1000, 1).toString() + \" K\";\r\n if (resultado.indexOf(\".\") === -1 && amount !== 0 && amount >= 1000) {\r\n let a = resultado;\r\n let b = \".0\";\r\n let output = a + b;\r\n\r\n if (resultado.indexOf(\" \") !== -1) {\r\n let position = resultado.indexOf(\" \");\r\n output = [a.slice(0, position), b, a.slice(position)].join(\"\");\r\n } else if (\r\n resultado.indexOf(\" \") === -1 &&\r\n resultado.indexOf(\")\") !== -1\r\n ) {\r\n let position = resultado.indexOf(\")\");\r\n output = [a.slice(0, position), b, a.slice(position)].join(\"\");\r\n }\r\n\r\n resultado = output;\r\n }\r\n return resultado;\r\n }\r\n DownloadFile(fileName: string, blob: any): void {\r\n const nav = window.navigator as any;\r\n if (nav.msSaveOrOpenBlob) {\r\n nav.msSaveOrOpenBlob(blob, fileName);\r\n } else {\r\n const link = document.createElement(\"a\");\r\n link.setAttribute(\"type\", \"hidden\");\r\n link.download = fileName;\r\n link.href = window.URL.createObjectURL(blob.body);\r\n document.body.appendChild(link);\r\n link.click();\r\n }\r\n }\r\n ViewFile(response: any) {\r\n const a = document.createElement(\"a\");\r\n a.setAttribute(\"style\", \"display:none;\");\r\n document.body.appendChild(a);\r\n a.href = URL.createObjectURL(response.body);\r\n a.target = \"_blank\";\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n GetNumberCurrency(amount: number): string {\r\n return amount === 0\r\n ? \"0\"\r\n : amount.toLocaleString(\"en-US\", {\r\n maximumFractionDigits: 2,\r\n minimumFractionDigits: 2,\r\n });\r\n }\r\n CountDecimals(param: number) {\r\n if (Math.floor(param) === param) return 0;\r\n return param.toString().split(\".\")[1].length || 0;\r\n }\r\n IsEmpty(value: any) {\r\n return value === null || value === \"\" || value === undefined;\r\n }\r\n GroupByColumn(data: any[], columnGroup: string): any[] {\r\n let colUnique = [];\r\n if (columnGroup != \"\") {\r\n colUnique = [\r\n ...new Set(\r\n data.map((item) => {\r\n return item[columnGroup];\r\n })\r\n ),\r\n ].filter((unique) => !this.IsEmpty(unique));\r\n } else {\r\n colUnique = [\r\n ...new Set(\r\n data.map((item) => {\r\n return item;\r\n })\r\n ),\r\n ].filter((unique) => !this.IsEmpty(unique));\r\n }\r\n return colUnique;\r\n }\r\n GetRoswpanbyData(column: string, index: number, data: Array<any>): number {\r\n let ValOfAgruppated = null;\r\n let rowspanI = 1;\r\n for (let i: number = index - 1; i < data.length; i++) {\r\n let val = data[i][column];\r\n if (ValOfAgruppated == null) {\r\n ValOfAgruppated = val;\r\n } else if (val !== null && ValOfAgruppated == val) {\r\n rowspanI++;\r\n } else if (val !== null && ValOfAgruppated != val) {\r\n ValOfAgruppated = null;\r\n return rowspanI;\r\n }\r\n }\r\n return rowspanI;\r\n }\r\n FormatterStringJsonByKey(\r\n data: any[],\r\n key: string,\r\n separador: string\r\n ): string {\r\n let result = \"\";\r\n let colUnique: string[] = [];\r\n data.forEach((element) => {\r\n colUnique.push(element[key]);\r\n });\r\n result = colUnique.join(separador);\r\n return result;\r\n }\r\n GroupByKey(xs: any, key: any) {\r\n return xs.reduce(function (rv: any, x: any) {\r\n (rv[x[key]] = rv[x[key]] || []).push(x);\r\n return rv;\r\n }, {});\r\n }\r\n LoadProjectsCss(route: string) {\r\n const elements = this.CheckProjectsCss(route);\r\n if (elements.length === 0) {\r\n const node = document.createElement(\"link\");\r\n node.href = \"./assets/css/projects/\" + route + \".css\";\r\n node.rel = \"stylesheet\";\r\n document.getElementsByTagName(\"head\")[0].appendChild(node);\r\n }\r\n }\r\n RemoveProjectsCss(route: string) {\r\n const elements = this.CheckProjectsCss(route);\r\n elements.forEach((element) => {\r\n document.getElementsByTagName(\"head\")[0].removeChild(element);\r\n });\r\n }\r\n CheckProjectsCss(route: string): any[] {\r\n const parent = document.getElementsByTagName(\"head\")[0];\r\n const elements: any[] = [];\r\n parent.childNodes.forEach((element: any) => {\r\n var a = element as object;\r\n\r\n if (element.nodeName === \"LINK\") {\r\n var elemethref = element[\"href\"];\r\n if (elemethref && elemethref.indexOf(route) > 0) {\r\n elements.push(element);\r\n }\r\n }\r\n });\r\n return elements;\r\n }\r\n CountDecimalsDigits(numero: any) {\r\n if (this.IsEmpty(numero)) return 0;\r\n numero = parseFloat(numero);\r\n let arrayNumero = numero.toString().split(\".\");\r\n numero = arrayNumero.length > 1 ? arrayNumero[1] : \"\";\r\n return numero.length;\r\n }\r\n GetMaxNumberDecimals(data: any[], key: string): number {\r\n let arrCountDecimals: number[] = [];\r\n data.forEach((element) => {\r\n let decimals = this.CountDecimalsDigits(element[key]);\r\n arrCountDecimals.push(decimals);\r\n });\r\n var maxDecimal = Math.max(...arrCountDecimals);\r\n return maxDecimal;\r\n }\r\n SetHeaderPathName(name: string[]) {\r\n this.headerPathName.next(name);\r\n }\r\n FormatDate(date: string, format: string): string {\r\n return moment(date).format(format);\r\n }\r\n CopyTo(src: any, dest: any) {\r\n Object.keys(src).forEach((property) => {\r\n dest[property] = src[property];\r\n });\r\n }\r\n IsValidEmail(email: string): boolean {\r\n const emailPattern = /^\\w+([.-]?\\w+)*@\\w+([.-]?\\w+)*(\\.\\w{2,3})+$/;\r\n return emailPattern.test(email);\r\n }\r\n IsGuid(str: string): boolean {\r\n const guidRegex =\r\n /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;\r\n return guidRegex.test(str);\r\n }\r\n ContainsSpecialCharacters(str: string): boolean {\r\n const specialCharacter = /^[^\\\\/?%*:|\"<>]+$/;\r\n return !specialCharacter.test(str);\r\n }\r\n IsNumber(value: any): boolean {\r\n return /^-?\\d+(\\.\\d+)?$/.test(value);\r\n }\r\n CalculatePreviousDate(date: Date, monthsAgo: number) {\r\n date.setMonth(date.getMonth() - monthsAgo);\r\n const newDate = moment(date).format(FormatDateConstants.DMYY_MOMENT);\r\n\r\n return newDate;\r\n }\r\n GetFilteredSearchKey(\r\n listTempAll: any[],\r\n key: string,\r\n value: any,\r\n operatorId: number\r\n ) {\r\n let listFilter = [];\r\n switch (operatorId) {\r\n case 0: //'Contains'\r\n let word = value.split(\"&\", 100);\r\n let count: number = 0;\r\n let listTemp: any;\r\n if (word.length > 1) {\r\n word.forEach((element: any) => {\r\n if (count === 0) {\r\n listTemp = listTempAll.filter((a) =>\r\n a[key]\r\n ?.toString()\r\n ?.toLowerCase()\r\n .includes(element.toLowerCase())\r\n );\r\n } else {\r\n listTemp = listTemp.filter((a: any) =>\r\n a[key]\r\n ?.toString()\r\n ?.toLowerCase()\r\n .includes(element.toLowerCase())\r\n );\r\n }\r\n count++;\r\n });\r\n listFilter = listTemp;\r\n } else {\r\n listFilter = listTempAll.filter((a) =>\r\n a[key]?.toString()?.toLowerCase().includes(value)\r\n );\r\n }\r\n break;\r\n case 1: //'Exact'\r\n listFilter = value\r\n ? listTempAll.filter(\r\n (a) => a[key]?.toString()?.toLowerCase() === value\r\n )\r\n : listTempAll;\r\n break;\r\n case 2: //'Begin'\r\n listFilter = listTempAll.filter((a) =>\r\n a[key]?.toString()?.toLowerCase().startsWith(value)\r\n );\r\n break;\r\n case 3: //'Ends'\r\n listFilter = listTempAll.filter((a) =>\r\n a[key]?.toString()?.toLowerCase().endsWith(value)\r\n );\r\n break;\r\n default:\r\n listFilter = listTempAll.filter((a) =>\r\n a[key]?.toString()?.toLowerCase().includes(value)\r\n );\r\n break;\r\n }\r\n return listFilter;\r\n }\r\n GetFilteredSearchKeyV2(\r\n listTempAll: any[],\r\n key: string,\r\n value: any,\r\n operatorId: number,\r\n subKey: any = null\r\n ) {\r\n if (value.length == 0) return listTempAll;\r\n if (!listTempAll || !key || value == null) return [];\r\n let listFilter = listTempAll;\r\n value = value.toString().toLowerCase();\r\n const words = value.includes(\"&\")\r\n ? value.split(\"&\").filter(Boolean)\r\n : [value];\r\n const filterFunction = (item: any) => {\r\n const itemValue = item[key]?.toString()?.toLowerCase();\r\n switch (operatorId) {\r\n case 0: // 'Contains'\r\n return words.every((word: any) => itemValue?.includes(word));\r\n case 1: // 'Exact'\r\n return itemValue === value;\r\n case 2: // 'Begin'\r\n return itemValue?.startsWith(value);\r\n case 3: // 'Ends'\r\n return itemValue?.endsWith(value);\r\n default:\r\n return itemValue?.includes(value);\r\n }\r\n };\r\n if (subKey) {\r\n // Filtrar primero a nivel de sublista\r\n listFilter = listFilter.map((filter) => {\r\n return {\r\n ...filter,\r\n [subKey]: filter[subKey]?.filter((item: any) => filterFunction(item)),\r\n };\r\n });\r\n // Filtrar luego la lista principal basado en si la sublista contiene elementos\r\n listFilter = listFilter.filter((filter) => filter[subKey].length > 0);\r\n } else {\r\n // Filtrar solo la lista principal\r\n listFilter = listFilter.filter(filterFunction);\r\n }\r\n return listFilter;\r\n }\r\n public TransformArrayToHashTable<T, TypeKey extends string | number>(\r\n arr: T[],\r\n getKey: (p: T) => TypeKey\r\n ): { [key in TypeKey]: T } {\r\n //example of Use:\r\n // this.transformArrayToHashTable<any,string>([{id:1,prop1:\"prop1Value\"}],(o)=>o.id.toString())\r\n const hashTable: { [key in TypeKey]: T } = {} as { [key in TypeKey]: T };\r\n arr.forEach((object: T) => (hashTable[getKey(object)] = object));\r\n return hashTable;\r\n }\r\n public TransformArrayToMap<TypeKey, T>(\r\n arr: T[],\r\n getKey: (p: T) => TypeKey\r\n ): Map<TypeKey, T> {\r\n //example of Use:\r\n // this.transformArrayToMap<string,any>([{id:1,prop1:\"prop1Value\"}],(o)=>o.id.toString())\r\n return new Map(arr.map((obj) => [getKey(obj), obj]));\r\n }\r\n UrlHasQaUatSubdomain() {\r\n const { hostname } = new URL(window.location.href);\r\n const [subdomain] = hostname.split(\".\");\r\n return [\"qa\", \"uat\"].includes(subdomain);\r\n }\r\n UrlHasQaSubdomain() {\r\n const { hostname } = new URL(window.location.href);\r\n const [subdomain] = hostname.split(\".\");\r\n return [\"qa\"].includes(subdomain);\r\n }\r\n GetLastSegmentUrl(): string {\r\n const segments = this.location.path().split(\"/\");\r\n const lastSegment = segments[segments.length - 1];\r\n const numberMappings: { [key: string]: string } = {\r\n \"0\": \"intelica-allocated\",\r\n \"1\": \"penalty-summary\",\r\n };\r\n // Verifica si lastSegment es un número y si tiene un mapeo correspondiente\r\n if (\r\n !isNaN(Number(lastSegment)) &&\r\n numberMappings.hasOwnProperty(lastSegment)\r\n )\r\n return numberMappings[lastSegment];\r\n else return lastSegment;\r\n }\r\n OnChangeMultiple($event: any, selectDescription: string): void {\r\n let select = $event != null ? $event.element.ej2_instances[0] : null;\r\n if (select?.value.length > 0) {\r\n select.viewWrapper.innerHTML = `${select.value.length} ${selectDescription}`;\r\n }\r\n }\r\n RemoveParamsAndSegments(url: string): string {\r\n // Remover parámetros de consultanom\r\n const urlWithoutParams = url.split(\"?\")[0];\r\n // Remover segmentos de ruta dinámicos\r\n const regex = /\\/\\d+(?=\\/|$)(?!$)/g; // Encuentra segmentos de ruta que consisten en números\r\n return urlWithoutParams.replace(regex, \"\");\r\n }\r\n OpenActionMenu() {\r\n this.openActionMenu$.next(true);\r\n }\r\n AbbreviateNumber(number: number, fixed: number = 2): string {\r\n if (number == 0.0 || number == 0 || number == 0.0) {\r\n return \"0\";\r\n }\r\n let formatCant = \"\";\r\n let numberOriginal = number;\r\n if (number < 0) {\r\n number = Math.abs(number);\r\n }\r\n if (number >= 1000 && number < 1000000) {\r\n number = parseFloat((number / 1000).toFixed(fixed));\r\n formatCant = \" K\";\r\n } else if (number >= 1000000 && number < 1000000000) {\r\n number = parseFloat((number / 1000000).toFixed(fixed));\r\n formatCant = \" M\";\r\n } else if (number >= 1000000000 && number <= 1000000000000) {\r\n number = parseFloat((number / 1000000000).toFixed(fixed));\r\n formatCant = \" B\";\r\n } else {\r\n number = this.NumberFormatByNumberCriteria(number, fixed);\r\n }\r\n return numberOriginal < 0\r\n ? `(${number}${formatCant})`\r\n : `${number}${formatCant}`;\r\n }\r\n NumberFormatByNumberCriteria(number: number, fixed: number = 4): any {\r\n const rounded = (\r\n Math.round(number * Math.pow(10, fixed)) / Math.pow(10, fixed)\r\n ).toFixed(fixed);\r\n return rounded;\r\n }\r\n FormatPercentage(number: number, decimal: number = 2) {\r\n let numberInit = number;\r\n if (number < 0) number = Math.abs(number);\r\n number = parseFloat(number.toFixed(decimal));\r\n let finalNumber = `${number.toLocaleString(\"en-US\")}%`;\r\n return numberInit < 0 ? `(${finalNumber})` : `${finalNumber}`;\r\n }\r\n GetMonthName(monthIndex: number, lang: \"en\" | \"es\" = \"en\"): string {\r\n return this.months[lang][monthIndex];\r\n }\r\n FormatNumberWithSuffix(number: number, decimalPlaces: number = 0): string {\r\n if (number === 0) {\r\n return \"0\";\r\n }\r\n const isNegative = number < 0;\r\n const absoluteValue = Math.abs(number);\r\n const scaledNumber = parseFloat(\r\n (absoluteValue / 1000).toFixed(decimalPlaces)\r\n ).toLocaleString(\"en-US\");\r\n const suffix = \" K\";\r\n\r\n return isNegative\r\n ? `(${scaledNumber}${suffix})`\r\n : `${scaledNumber}${suffix}`;\r\n }\r\n //SYNFCUNTION\r\n GenerateGUID(): string {\r\n let uuid = \"\",\r\n i,\r\n random;\r\n for (i = 0; i < 32; i++) {\r\n random = (Math.random() * 16) | 0;\r\n if (i === 8 || i === 12 || i === 16 || i === 20) {\r\n uuid += \"-\";\r\n }\r\n uuid += (i === 12 ? 4 : i === 16 ? (random & 3) | 8 : random).toString(\r\n 16\r\n );\r\n }\r\n return uuid;\r\n }\r\n AttachDataLabelClickEvent(\r\n chartElementId: string,\r\n dataArray: any[],\r\n onClickCallback: (clickedData: any) => void\r\n ): void {\r\n const chartElement = document.getElementById(chartElementId);\r\n if (!chartElement) {\r\n return;\r\n }\r\n const dataLabels = chartElement.querySelectorAll('[id*=\"_DataLabel_\"]');\r\n const dataLabelsArray = Array.prototype.slice.call(\r\n dataLabels\r\n ) as HTMLElement[];\r\n dataLabelsArray.forEach((label, index) => {\r\n // Calcula el índice ajustado para obtener el dato correcto\r\n const adjustedIndex = index % dataArray.length;\r\n\r\n label.addEventListener(\"click\", () => {\r\n const clickedData = dataArray[adjustedIndex];\r\n if (clickedData) {\r\n onClickCallback(clickedData);\r\n }\r\n });\r\n });\r\n }\r\n FormatNumberAbsolute(number: number) {\r\n const isNegative = number < 0;\r\n if (number < 0) {\r\n number = Math.abs(number);\r\n }\r\n\r\n let finalNumber = `${number.toLocaleString(\"en-US\")}`;\r\n return isNegative ? `(${finalNumber})` : `${finalNumber}`;\r\n }\r\n SortRecursive(data: any[], column: any, criteria: string) {\r\n return _.orderBy(\r\n data.map((item) => {\r\n Object.keys(item).forEach((key) => {\r\n if (Array.isArray(item[key])) {\r\n item[key] = this.SortRecursive(item[key], column, criteria);\r\n }\r\n });\r\n return item;\r\n }),\r\n [\r\n (elm: any) => {\r\n let value = elm[column];\r\n if (value == null) {\r\n value = \"\";\r\n }\r\n if (typeof value === \"string\") {\r\n const normalized = value.trim().toLowerCase();\r\n const startsWithSpecial = /^[^a-z0-9]/i.test(normalized);\r\n return startsWithSpecial ? `~${normalized}` : normalized;\r\n }\r\n return value;\r\n },\r\n ],\r\n [criteria as \"asc\" | \"desc\"]\r\n );\r\n }\r\n SortRecursivePrimeNg(data: any[], column: any, criteria: string) {\r\n return _.orderBy(\r\n data.map((item) => {\r\n Object.keys(item).forEach((key) => {\r\n if (Array.isArray(item[key])) {\r\n item[key] = this.SortRecursive(item[key], column, criteria);\r\n }\r\n });\r\n return item;\r\n }),\r\n [\r\n (elm: any) => {\r\n let value = elm[column];\r\n if (\r\n value == null ||\r\n (typeof value === \"string\" && value.trim() === \"\")\r\n ) {\r\n return \"___0\";\r\n }\r\n if (typeof value === \"string\") {\r\n const normalized = value.trim().toLowerCase();\r\n const startsWithSpecial = /^[^a-z0-9]/i.test(normalized);\r\n if (startsWithSpecial) {\r\n return `___1${normalized}`;\r\n }\r\n return `___2${normalized}`;\r\n }\r\n return `___2${value}`;\r\n },\r\n ],\r\n [criteria as \"asc\" | \"desc\"]\r\n );\r\n }\r\n SortRecursiveNumber(data: any[], column: any, criteria: string) {\r\n return _.orderBy(\r\n data.map((item) => {\r\n Object.keys(item).forEach((key) => {\r\n if (Array.isArray(item[key])) {\r\n item[key] = this.SortRecursiveNumber(item[key], column, criteria);\r\n }\r\n });\r\n return item;\r\n }),\r\n [\r\n (elm: any) => {\r\n let value = elm[column];\r\n if (value == null || value === \"\") {\r\n return Number.NEGATIVE_INFINITY;\r\n }\r\n if (typeof value === \"number\") {\r\n return value;\r\n }\r\n if (!isNaN(Number(value))) {\r\n return Number(value);\r\n }\r\n return Number.NEGATIVE_INFINITY;\r\n },\r\n ],\r\n [criteria as \"asc\" | \"desc\"]\r\n );\r\n }\r\n\r\n IsDateFormat(value: any): boolean {\r\n return (\r\n typeof value === \"string\" && /^\\d{1,2}\\/\\d{1,2}\\/\\d{2,4}$/.test(value)\r\n );\r\n }\r\n\r\n SortRecursiveDate(data: any[], column: any, criteria: string) {\r\n return _.orderBy(\r\n data.map((item) => {\r\n Object.keys(item).forEach((key) => {\r\n if (Array.isArray(item[key])) {\r\n item[key] = this.SortRecursiveDate(item[key], column, criteria);\r\n }\r\n });\r\n return item;\r\n }),\r\n [\r\n (elm: any) => {\r\n let value = elm[column];\r\n if (value == null || value === \"\") {\r\n return Number.NEGATIVE_INFINITY;\r\n }\r\n const dateValue = new Date(value);\r\n if (isNaN(dateValue.getTime())) {\r\n return Number.NEGATIVE_INFINITY;\r\n }\r\n return dateValue.getTime();\r\n },\r\n ],\r\n [criteria as \"asc\" | \"desc\"]\r\n );\r\n }\r\n\r\n //TITLES\r\n\tsetTitles(ListGeneralGroupRegionCountryBank: GroupRegionCountryBankModel[], groupId: number, regId: number, countryId: number, bankId: number, isInternal:boolean): string {\r\n\t\tlet res = \"\";\r\n\t\tconst ListGeneralGroupAll = _.orderBy(\r\n\t\t\t_.uniqBy(ListGeneralGroupRegionCountryBank, GroupRegCountryBankConstants.COLUMN_GROUP_ID),\r\n\t\t\t[GroupRegCountryBankConstants.COLUMN_GROUP_NAME],\r\n\t\t\t[OrderConstants.ORDER_BY_ASC]\r\n\t\t);\r\n\t\tconst ListGeneralRegionAll = _.orderBy(\r\n\t\t\t_.uniqBy(ListGeneralGroupRegionCountryBank, GroupRegCountryBankConstants.COLUMN_REGION_ID),\r\n\t\t\t[GroupRegCountryBankConstants.COLUMN_REGION_NAME],\r\n\t\t\t[OrderConstants.ORDER_BY_ASC]\r\n\t\t);\r\n\t\tconst ListGeneralCountryAll = _.orderBy(\r\n\t\t\t_.uniqBy(ListGeneralGroupRegionCountryBank, GroupRegCountryBankConstants.COLUMN_COUNTRY_ID),\r\n\t\t\t[GroupRegCountryBankConstants.COLUMN_COUNTRY_NAME],\r\n\t\t\t[OrderConstants.ORDER_BY_ASC]\r\n\t\t);\r\n\t\tconst ListGeneralBankAll = _.orderBy(\r\n\t\t\t_.uniqBy(ListGeneralGroupRegionCountryBank, GroupRegCountryBankConstants.COLUMN_BANK_ID),\r\n\t\t\t[GroupRegCountryBankConstants.COLUMN_BANK_NAME],\r\n\t\t\t[OrderConstants.ORDER_BY_ASC]\r\n\t\t);\r\n\r\n\t\tconst CurrentGroup = this.getCurrentGroup(ListGeneralGroupAll, ListGeneralRegionAll, groupId, regId);\r\n\t\tconst CurrentRegion = this.getCurrentRegion(ListGeneralRegionAll, regId, countryId);\r\n\t\tconst CurrentCountry = countryId > 0 ? ListGeneralCountryAll.filter((f: any) => f.countryId === countryId)[0] : undefined;\r\n\t\tconst CurrentBank = bankId > 0 ? ListGeneralBankAll.filter((f: any) => f.bankId === bankId)[0] : undefined;\r\n\r\n\t\tif (isInternal) {\r\n\t\t\tres = CurrentGroup ? CurrentGroup.groupName : \"\";\r\n\t\t\tres = CurrentRegion ? this.getTitleByRegionOrCountry(CurrentGroup, CurrentRegion, \"regionName\") : res;\r\n\t\t\tres = CurrentCountry ? this.getTitleByRegionOrCountry(CurrentGroup, CurrentCountry, \"countryName\") : res;\r\n\t\t\tres = CurrentBank ? CurrentBank.bankName : res;\r\n\t\t} else {\r\n\t\t\tres = CurrentGroup ? CurrentGroup.groupName : \"\";\r\n\t\t\tres = CurrentRegion ? CurrentRegion.groupName + \" \" + CurrentRegion.regionName : res;\r\n\t\t\tres = CurrentCountry ? CurrentCountry.bankName + \" \" + CurrentCountry.countryName : res;\r\n\t\t\tres = CurrentBank ? this.getTitleByBank(ListGeneralCountryAll, CurrentBank) : res;\r\n\t\t\tres = ListGeneralGroupRegionCountryBank.length > 1 ? res : \"\";\r\n\t\t}\r\n\r\n\t\treturn res;\r\n\t}\r\n\r\n getCurrentGroup(ListGeneralGroupAll: any[], ListGeneralRegionAll: any[], groupId: number, regId: number) {\r\n\t\tif (ListGeneralGroupAll.length === 1) {\r\n\t\t\treturn ListGeneralGroupAll[0];\r\n\t\t}\r\n\t\tif (groupId > 0) {\r\n\t\t\treturn ListGeneralGroupAll.filter((f: any) => f.groupId === groupId)[0];\r\n\t\t}\r\n\t\tif ((regId === Constants.REGION_EUROPE || regId === -1) && ListGeneralRegionAll.length === 3) {\r\n\t\t\treturn ListGeneralRegionAll[0];\r\n\t\t}\r\n\t\treturn undefined;\r\n\t}\r\n\r\n getCurrentRegion(ListGeneralRegionAll: any[], regId: number, countryId: number) {\r\n\t\tif ((regId === Constants.REGION_EUROPE || regId === -1) && ListGeneralRegionAll.length === 3) {\r\n\t\t\treturn undefined;\r\n\t\t}\r\n\t\tif (regId > 0 && countryId < 1) {\r\n\t\t\treturn ListGeneralRegionAll.filter((f: any) => f.regionId === regId)[0];\r\n\t\t}\r\n\t\treturn undefined;\r\n\t}\r\n\r\n getTitleByRegionOrCountry(CurrentGroup: any, Current: any, field: string) {\r\n\t\treturn CurrentGroup ? CurrentGroup.groupName + \" - \" + Current[field] : Current[field];\r\n\t}\r\n\r\n getTitleByBank(ListGeneralCountryAll: any[], CurrentBank: any) {\r\n\t\treturn ListGeneralCountryAll.length > 1 ? CurrentBank.groupName + \" - \" + CurrentBank.countryName + \" - \" + CurrentBank.bankNameCommercial : CurrentBank.bankNameCommercial;\r\n\t}\r\n\r\n getTermTextByCode(code: string, mode: number = 1): string {\r\n\t\treturn this.termsPipe.transform(code, \"\", mode);\r\n\t}\r\n\r\n isEmpty(value: any) {\r\n\t\treturn value === null || value === \"\" || value === undefined;\r\n\t}\r\n groupByColumn(data: any[], columnGroup: string): any[] {\r\n\t\tlet colUnique = [];\r\n\t\tif (columnGroup != \"\") {\r\n\t\t\tcolUnique = [\r\n\t\t\t\t...new Set(\r\n\t\t\t\t\tdata.map(item => {\r\n\t\t\t\t\t\treturn item[columnGroup];\r\n\t\t\t\t\t})\r\n\t\t\t\t),\r\n\t\t\t].filter(unique => !this.isEmpty(unique));\r\n\t\t} else {\r\n\t\t\tcolUnique = [\r\n\t\t\t\t...new Set(\r\n\t\t\t\t\tdata.map(item => {\r\n\t\t\t\t\t\treturn item;\r\n\t\t\t\t\t})\r\n\t\t\t\t),\r\n\t\t\t].filter(unique => !this.isEmpty(unique));\r\n\t\t}\r\n\t\treturn colUnique;\r\n\t}\r\n GetFilteredSearchKeyRecursive(\r\n listTempAll: any[],\r\n key: string,\r\n value: any,\r\n operatorId: number,\r\n searchOnlyParent: boolean = true\r\n ): any[] {\r\n if (!value || value.length === 0) return listTempAll;\r\n if (!listTempAll || !key) return [];\r\n \r\n value = value.toString().toLowerCase();\r\n const words = value.includes(\"&\") ? value.split(\"&\").filter(Boolean) : [value];\r\n \r\n const matchesFilter = (item: any): boolean => {\r\n const itemValue = item[key]?.toString()?.toLowerCase();\r\n \r\n switch (operatorId) {\r\n case 0: // 'Contains'\r\n return words.every((word: string) => itemValue?.includes(word));\r\n case 1: // 'Exact'\r\n return itemValue === value;\r\n case 2: // 'Begin'\r\n return itemValue?.startsWith(value);\r\n case 3: // 'Ends'\r\n return itemValue?.endsWith(value);\r\n default:\r\n return itemValue?.includes(value);\r\n }\r\n };\r\n \r\n const filterRecursive = (items: any[], isTopLevel: boolean = true, parentMatched: boolean = false): any[] => {\r\n const result: any[] = [];\r\n \r\n for (const item of items) {\r\n const currentMatches = matchesFilter(item);\r\n \r\n if (parentMatched) {\r\n result.push({ ...item });\r\n continue;\r\n }\r\n \r\n if (currentMatches) {\r\n if (searchOnlyParent) {\r\n result.push({ ...item })\r\n } else {\r\n const itemCopy = { ...item };\r\n if (itemCopy.children && Array.isArray(itemCopy.children) && itemCopy.children.length > 0) {\r\n itemCopy.children = filterRecursive(itemCopy.children, false, true);\r\n }\r\n result.push(itemCopy);\r\n }\r\n continue;\r\n }\r\n \r\n if (!searchOnlyParent && item.children && Array.isArray(item.children) && item.children.length > 0) {\r\n const filteredChildren = filterRecursive(item.children, false, false);\r\n \r\n if (filteredChildren.length > 0) {\r\n result.push({\r\n ...item,\r\n children: filteredChildren\r\n });\r\n }\r\n }\r\n }\r\n \r\n return result;\r\n };\r\n \r\n return filterRecursive(listTempAll, true, false);\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener } from \"@angular/core\";\r\n@Directive({\r\n\tselector: \"[positiveNumber]\",\r\n})\r\nexport class PositiveNumberDirective {\r\n\tconstructor(private el: ElementRef) {}\r\n\t@HostListener(\"input\", [\"$event\"]) onInputChange(event: Event) {\r\n\t\tconst initalValue = this.el.nativeElement.value;\r\n\t\tthis.el.nativeElement.value = initalValue.replace(/[^0-9]*/g, \"\");\r\n\t\tif (initalValue !== this.el.nativeElement.value) {\r\n\t\t\tevent.stopPropagation();\r\n\t\t}\r\n\t}\r\n}\r\n","import { Component, EventEmitter, inject, Input, OnChanges, Output, SimpleChanges } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { ButtonModule } from \"primeng/button\";\r\nimport { PositiveNumberDirective } from \"../../directives/positive-number.directive\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { CommonModule } from \"@angular/common\";\r\n\r\n@Component({\r\n\tselector: \"intelica-paginator\",\r\n\timports: [FormsModule, ButtonModule, PositiveNumberDirective, CommonModule, TermPipe],\r\n\ttemplateUrl: \"./paginator.component.html\",\r\n})\r\nexport class PaginatorComponent implements OnChanges {\r\n\treadonly GlobalTermService = inject(GlobalTermService);\r\n\t/**\r\n\t * Número total de elementos que se están paginando.\r\n\t * @type {number}\r\n\t */\r\n\t@Input() TotalItems: number = 0;\r\n\r\n\t/**\r\n\t * Página actual.\r\n\t * @type {number}\r\n\t */\r\n\t@Input() CurrentPage: number = 1;\r\n\r\n\t/**\r\n\t * Número de elementos por página.\r\n\t * @type {number}\r\n\t * @default 10\r\n\t */\r\n\t@Input() ItemsPerPage: number = 10;\r\n\r\n\t/**\r\n\t * Evento emitido cuando cambia la página.\r\n\t * @type {EventEmitter<any>}\r\n\t */\r\n\t@Output() PageChange: EventEmitter<any> = new EventEmitter();\r\n\r\n\t/**\r\n\t * Número total de páginas calculado internamente.\r\n\t * @type {number}\r\n\t */\r\n\tTotalPages: number = 1;\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tthis.TotalPageCalculator();\r\n\t}\r\n\r\n\tTotalPageCalculator() {\r\n\t\tthis.TotalPages = Math.ceil(this.TotalItems / this.ItemsPerPage);\r\n\t}\r\n\r\n\tGoToFirstPage() {\r\n\t\tthis.CurrentPage = 1;\r\n\t\tthis.EmitPageChange();\r\n\t}\r\n\r\n\tGoToPreviousPage() {\r\n\t\tconst pageNumber = Number(this.CurrentPage);\r\n\t\tthis.CurrentPage = isNaN(pageNumber) || pageNumber === 0 ? 1 : pageNumber;\r\n\t\tif (this.CurrentPage > 1) this.CurrentPage -= 1;\r\n\t\tthis.EmitPageChange();\r\n\t}\r\n\r\n\tGoToNextPage() {\r\n\t\tconst pageNumber = Number(this.CurrentPage);\r\n\t\tthis.CurrentPage = isNaN(pageNumber) ? 0 : pageNumber;\r\n\t\tif (this.CurrentPage < this.TotalPages) this.CurrentPage += 1;\r\n\t\tthis.EmitPageChange();\r\n\t}\r\n\r\n\tGoToLastPage() {\r\n\t\tthis.CurrentPage = this.TotalPages;\r\n\t\tthis.EmitPageChange();\r\n\t}\r\n\r\n\tEmitPageChange() {\r\n\t\tthis.PageChange.emit(this.CurrentPage);\r\n\t}\r\n\r\n\tonKeyUp(event: any) {\r\n\t\tconst eventValue: string = event.target.value;\r\n\t\tif (eventValue === \"\" || isNaN(parseInt(eventValue)) || eventValue === \"0\" || eventValue.indexOf(\"-\") >= 0) {\r\n\t\t\tthis.CurrentPage = 1;\r\n\t\t\tthis.EmitPageChange();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.CurrentPage = parseInt(eventValue);\r\n\r\n\t\tif (this.CurrentPage > this.TotalPages) {\r\n\t\t\tthis.CurrentPage = this.TotalPages;\r\n\t\t}\r\n\t\tthis.EmitPageChange();\r\n\t}\r\n}\r\n","<div \r\n\tclass=\"prPaginator\" \r\n\t[ngClass]=\"{\r\n\t\t'prPaginator--leftdis': CurrentPage === 1 || TotalItems === 0,\r\n\t\t'prPaginator--rightdis': CurrentPage === TotalPages || TotalItems === 0\r\n\t}\">\r\n\t<div class=\"prPaginator__controls\">\r\n\t\t<button pButton type=\"button\" class=\"prPaginator__btn prPaginator__btn--first\" [disabled]=\"CurrentPage === 1 || TotalItems === 0\" (click)=\"GoToFirstPage()\"></button>\r\n\t\t<button pButton type=\"button\" class=\"prPaginator__btn prPaginator__btn--previous\" [disabled]=\"CurrentPage === 1 || TotalItems === 0\" (click)=\"GoToPreviousPage()\"></button>\r\n\t\t<span class=\"prPaginator__label--left\">{{ \"Previous\" | term : GlobalTermService.languageCode }}</span>\r\n\t\t<input pInputText type=\"text\" [disabled]=\"TotalItems === 0\" (keydown.enter)=\"$event.preventDefault()\" [(ngModel)]=\"CurrentPage\" positiveNumber class=\"prPaginator__input\" (keyup.enter)=\"onKeyUp($event)\" />\r\n\t\t<span class=\"prPaginator__total\">{{ \"Of\" | term : GlobalTermService.languageCode }} {{ TotalPages }}</span>\r\n\t\t<span class=\"prPaginator__label--right\">{{ \"Next\" | term : GlobalTermService.languageCode }}</span>\r\n\t\t<button pButton type=\"button\" class=\"prPaginator__btn prPaginator__btn--next\" [disabled]=\"CurrentPage === TotalPages || TotalItems === 0\" (click)=\"GoToNextPage()\"></button>\r\n\t\t<button pButton type=\"button\" class=\"prPaginator__btn prPaginator__btn--last\" [disabled]=\"CurrentPage === TotalPages || TotalItems === 0\" (click)=\"GoToLastPage()\"></button>\r\n\t</div>\r\n</div>\r\n","export enum SearchInputEnum {\r\n\tOperatorId = \"operatorId\",\r\n\tFieldId = \"fieldId\",\r\n\tSearchText = \"searchText\",\r\n}\r\n","import { Component, EventEmitter, forwardRef, inject, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule, FormBuilder, FormGroup, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { RadioButtonModule } from \"primeng/radiobutton\";\r\nimport { Popover } from \"primeng/popover\";\r\nimport { InputText } from \"primeng/inputtext\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { SearchInputModel } from \"./model/search.model\";\r\nimport { SearchInputEnum } from \"./enums/search.enum\";\r\nimport { TooltipModule } from \"primeng/tooltip\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\n\r\n@Component({\r\n\tselector: \"intelica-search\",\r\n\timports: [FormsModule, ReactiveFormsModule, RadioButtonModule, Popover, InputText, CommonModule, TooltipModule, TermPipe],\r\n\ttemplateUrl: \"./search.component.html\",\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => SearchComponent),\r\n\t\t},\r\n\t],\r\n\t// styleUrl: \"./search.component.css\",\r\n})\r\nexport class SearchComponent implements OnDestroy, OnInit {\r\n\treadonly GlobalTermService = inject(GlobalTermService);\r\n\t/**\r\n\t * Indica el componente del que proviene.\r\n\t * @type {string}\r\n\t */\r\n\t@Input() ComponentId: string = \"\";\r\n\t@Input() ShowTooltip: boolean = false;\r\n\r\n\t/**\r\n\t * Opciones para campos de búsqueda.\r\n\t * @type {{ id: number; value: string }[]}\r\n\t */\r\n\t@Input() SearchFieldOptions!: { id: number; value: string }[];\r\n\r\n\t/**\r\n\t * Indica si realizar la búsqueda al soltar una tecla.\r\n\t * @type {boolean}\r\n\t */\r\n\t@Input() SearchOnKeyup!: boolean;\r\n\r\n\t/**\r\n\t * @deprecated No debe ser utilizado. Es sólo para uso interno y no para módulos.\r\n\t * @type {boolean}\r\n\t * @default false\r\n\t */\r\n\t@Input() SimpleSearchInput: boolean = false;\r\n\r\n\t/**\r\n\t * Placeholder para el componente de búsqueda.\r\n\t * @type {string}\r\n\t */\r\n\t@Input() Placeholder: string = \"\";\r\n\r\n\t/**\r\n\t * Evento emitido al realizar una búsqueda.\r\n\t * @type {EventEmitter<{ operatorId: number; operatorText: string, fieldId: number, fieldText: string, searchText: string }>}\r\n\t */\r\n\t@Output(\"OnSearch\") OnSearchEvent = new EventEmitter<SearchInputModel>();\r\n\r\n\tprivate readonly FormBuilder = inject(FormBuilder);\r\n\r\n\t// Option!: string;\r\n\t// Placeholder!: string;\r\n\r\n\t/**\r\n\t * Indica si el dropdown está abierto\r\n\t * @type {boolean}\r\n\t * @default false\r\n\t */\r\n\tIsDropdownOpen: boolean = false;\r\n\r\n\t/**\r\n\t * Formulario para manejar los parámetros de búsqueda\r\n\t * @type {FormGroup}\r\n\t */\r\n\tSearchForm!: FormGroup;\r\n\r\n\t/**\r\n\t * Suscripción a los valores del formulario.\r\n\t * @type {Subscription}\r\n\t */\r\n\tFormValuesSubscription!: Subscription;\r\n\r\n\t/**\r\n\t * Opciones para operadores de búsqueda.\r\n\t * @type {{ id: number; value: string }[]}\r\n\t */\r\n\tSearchOperatorOptions!: { id: number; value: string }[];\r\n\r\n\t/**\r\n\t * Función llamada cuando cambia el valor del campo de búsqueda.\r\n\t * @type {() => void}\r\n\t */\r\n\tOnChange: (value: SearchInputModel) => void = () => {};\r\n\r\n\t/**\r\n\t * Función llamada cuando el componente de búsqueda es tocado.\r\n\t * @type {() => void}\r\n\t */\r\n\tOnTouched: () => void = () => {};\r\n\r\n\tconstructor() {}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.SearchForm = this.FormBuilder.group({\r\n\t\t\toperatorId: 0,\r\n\t\t\tfieldId: 0,\r\n\t\t\tsearchText: \"\",\r\n\t\t});\r\n\r\n\t\tthis.FormValuesSubscription = this.SearchForm.valueChanges.subscribe(value => {\r\n\t\t\tthis.OnChange(value);\r\n\t\t});\r\n\r\n\t\t//loadTerms\r\n\t\tif (this.Placeholder === \"\") this.Placeholder = \"SearchPlaceholder\";\r\n\t\tthis.SearchOperatorOptions ??= this.GetSearchOperatorOptions();\r\n\t\tthis.SearchFieldOptions ??= this.GetSearchFieldOptions();\r\n\r\n\t\tthis.InitializeForm();\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.FormValuesSubscription.unsubscribe();\r\n\t}\r\n\r\n\tInitializeForm() {\r\n\t\tthis.SearchForm.setValue({\r\n\t\t\toperatorId: this.SearchOperatorOptions[0].id,\r\n\t\t\tfieldId: this.SearchFieldOptions.length > 0 ? this.SearchFieldOptions[0].id : 0,\r\n\t\t\tsearchText: \"\",\r\n\t\t});\r\n\t\tthis.OnSearch();\r\n\t}\r\n\r\n\tDropDownChange(isOpen: boolean) {\r\n\t\tthis.IsDropdownOpen = isOpen;\r\n\t}\r\n\r\n\tOnSearchEnter(): void {\r\n\t\tif (!this.SearchOnKeyup) this.OnSearch();\r\n\t}\r\n\r\n\tOnSearchKeyup() {\r\n\t\tif (this.SearchOnKeyup) this.OnSearch();\r\n\t}\r\n\r\n\tOnSearch(): void {\r\n\t\tconst value = this.SearchForm.value as SearchInputModel;\r\n\t\tvalue.operatorText = this.SearchOperatorOptions.find(o => o.id === value.operatorId)?.value || \"\";\r\n\t\tvalue.fieldText = this.SearchFieldOptions.find(f => f.id === value.fieldId)?.value || \"\";\r\n\t\tthis.OnChange(value);\r\n\t\tthis.OnTouched();\r\n\t\tthis.OnSearchEvent.emit(value);\r\n\t}\r\n\r\n\tClearSearchText(emitEvent: boolean = true) {\r\n\t\tthis.SearchForm.get(SearchInputEnum.SearchText)?.setValue(\"\");\r\n\t\tif (emitEvent) {\r\n\t\t\tthis.OnSearch();\r\n\t\t}\r\n\t}\r\n\r\n\tget HasSearchText(): boolean {\r\n\t\tconst searchText = this.SearchForm.get(SearchInputEnum.SearchText)?.value;\r\n\t\treturn searchText && searchText.length > 0;\r\n\t}\r\n\r\n\tGetSelectedOperatorValue(): string {\r\n\t\tconst selectedId = this.SearchForm.get(SearchInputEnum.OperatorId)?.value;\r\n\t\tconst selectedItem = this.SearchOperatorOptions?.find(item => item.id === selectedId);\r\n\t\treturn selectedItem ? selectedItem.value : \"\";\r\n\t}\r\n\r\n\tGetSelectedFieldValue(): string {\r\n\t\tconst selectedId = this.SearchForm.get(SearchInputEnum.FieldId)?.value;\r\n\t\tconst selectedItem = this.SearchFieldOptions?.find(item => item.id === selectedId);\r\n\t\treturn selectedItem ? selectedItem.value : \"\";\r\n\t}\r\n\r\n\tGetSelectedValues(): string {\r\n\t\treturn `${this.GetSelectedOperatorValue()}, ${this.GetSelectedFieldValue()}`;\r\n\t}\r\n\r\n\tSetSearchTextValue(text: string) {\r\n\t\tthis.SearchForm.get(SearchInputEnum.SearchText)?.setValue(text);\r\n\t}\r\n\r\n\tSetOperatorValue(value: number) {\r\n\t\tthis.SearchForm.get(SearchInputEnum.OperatorId)?.setValue(value ?? 0);\r\n\t}\r\n\r\n\tSetFieldValue(value: number) {\r\n\t\tthis.SearchForm.get(SearchInputEnum.FieldId)?.setValue(value ?? 0);\r\n\t}\r\n\r\n\tGetSearchOperatorOptions() {\r\n\t\treturn [\r\n\t\t\t{ id: 0, value: \"Contains\" },\r\n\t\t\t{ id: 1, value: \"Exact\" },\r\n\t\t\t{ id: 2, value: \"Begin\" },\r\n\t\t\t{ id: 3, value: \"Ends\" },\r\n\t\t];\r\n\t}\r\n\r\n\tGetSearchFieldOptions() {\r\n\t\treturn [\r\n\t\t\t{ id: 0, value: \"code\" },\r\n\t\t\t{ id: 1, value: \"name\" },\r\n\t\t];\r\n\t}\r\n}\r\n","<form [formGroup]=\"SearchForm\">\r\n\t<div class=\"prSearchBar\">\r\n\t\t<div class=\"prSearchBar__dropdown\" (click)=\"op.toggle($event)\" *ngIf=\"!SimpleSearchInput\">\r\n\t\t\t<div\r\n\t\t\t\tclass=\"prSearchBar__dropdown--label\"\r\n\t\t\t\t[pTooltip]=\"ShowTooltip ? (GetSelectedOperatorValue() | term : GlobalTermService.languageCode) + ', ' + (GetSelectedFieldValue() | term : GlobalTermService.languageCode) : ''\"\r\n\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t>\r\n\t\t\t\t{{ GetSelectedFieldValue() | term : GlobalTermService.languageCode }}\r\n\t\t\t</div>\r\n\t\t\t<div class=\"prSearchBar__dropdown--icon\">\r\n\t\t\t\t<i [ngClass]=\"IsDropdownOpen ? 'icon-arrow-up' : 'icon-arrow-down'\"></i>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<p-popover #op (onShow)=\"DropDownChange(true)\" (onHide)=\"DropDownChange(false)\" class=\"prSearchBar__popover\">\r\n\t\t\t<div class=\"searchDropDown\">\r\n\t\t\t\t<div class=\"searchDropDown__group\">\r\n\t\t\t\t\t<div class=\"searchDropDown__title\">{{ \"Selectoperator\" | term : GlobalTermService.languageCode }}</div>\r\n\t\t\t\t\t<div class=\"searchDropDown__listOption\">\r\n\t\t\t\t\t\t@for ( option of SearchOperatorOptions ; track option.id; let index = $index){\r\n\t\t\t\t\t\t<div class=\"searchDropDown__option\">\r\n\t\t\t\t\t\t\t<p-radiobutton [inputId]=\"ComponentId + option.id\" class=\"prRadioButton\" [value]=\"option.id\" formControlName=\"operatorId\" (change)=\"OnSearchKeyup()\" />\r\n\t\t\t\t\t\t\t<label [for]=\"ComponentId + option.id\" class=\"prRadioButton--label\">{{ option.value | term : GlobalTermService.languageCode }}</label>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t<hr />\r\n\t\t\t\t<div class=\"searchDropDown__group\">\r\n\t\t\t\t\t<div class=\"searchDropDown__title\">{{ \"Selectfield\" | term : GlobalTermService.languageCode }}</div>\r\n\t\t\t\t\t@for ( option of SearchFieldOptions ; track option.id; let index = $index){\r\n\t\t\t\t\t<div class=\"searchDropDown__option\">\r\n\t\t\t\t\t\t<p-radiobutton [inputId]=\"ComponentId + 'fieldId_' + option.id\" class=\"prRadioButton\" [value]=\"option.id\" formControlName=\"fieldId\" (change)=\"OnSearchKeyup()\" />\r\n\t\t\t\t\t\t<label [for]=\"ComponentId + 'fieldId_' + option.id\" class=\"prRadioButton--label\">{{ option.value | term : GlobalTermService.languageCode }}</label>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</p-popover>\r\n\t\t<div class=\"prSearchBar__content\">\r\n\t\t\t<div class=\"prSearchBar__btn\">\r\n\t\t\t\t<button pButton type=\"button\" class=\"prSearchBar__btn-action\" (click)=\"ClearSearchText()\" *ngIf=\"HasSearchText\">\r\n\t\t\t\t\t<i class=\"icon-times\"></i>\r\n\t\t\t\t</button>\r\n\t\t\t\t<button pButton type=\"button\" class=\"prSearchBar__btn-action\" (click)=\"OnSearch()\">\r\n\t\t\t\t\t<i class=\"icon-search\"></i>\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t\t<input\r\n\t\t\t\tpInputText\r\n\t\t\t\ttype=\"text\"\r\n\t\t\t\tclass=\"prSearchBar__input\"\r\n\t\t\t\tformControlName=\"searchText\"\r\n\t\t\t\t[placeholder]=\"Placeholder | term : GlobalTermService.languageCode\"\r\n\t\t\t\t(keyup.enter)=\"OnSearchEnter()\"\r\n\t\t\t\t(keyup)=\"OnSearchKeyup()\"\r\n\t\t\t/>\r\n\t\t</div>\r\n\t</div>\r\n</form>\r\n","import { ContentChild, Directive, Input, TemplateRef } from \"@angular/core\";\r\n@Directive({ selector: \"column\" })\r\nexport class ColumnComponent<T = any> {\r\n @Input() field!: string;\r\n @Input() header!: string;\r\n @Input() sortable: boolean = false;\r\n @Input() width?: string;\r\n @Input() className?: string;\r\n @Input() headerTooltip?: string;\r\n @Input() headerTooltipPosition: \"top\" | \"bottom\" | \"left\" | \"right\" = \"top\";\r\n @Input() tooltip: string = \"\";\r\n @Input() tooltipPosition: \"top\" | \"bottom\" | \"left\" | \"right\" = \"top\";\r\n @Input() showIndex: boolean = false;\r\n @Input() showHeader: boolean = true;\r\n @Input() minWidth?: string;\r\n @Input() isChecboxColumn: boolean = false;\r\n //@Input() isGrouped: boolean = false;\r\n //@Input() isGroup: boolean = false;\r\n @Input() formatType:\r\n | \"string\"\r\n | \"date\"\r\n | \"date2\"\r\n | \"date3\"\r\n | \"time\"\r\n | \"decimal2\"\r\n | \"decimal4\"\r\n | \"tarifa\" = \"string\";\r\n @ContentChild(TemplateRef) templateRef?: TemplateRef<any>;\r\n}\r\n@Directive({ selector: \"columnGroup\" })\r\nexport class ColumnGroupComponent<T = any> {\r\n @Input() field!: string;\r\n @Input() header!: string;\r\n @Input() sortable: boolean = false;\r\n @Input() width?: string;\r\n @Input() minWidth?: string;\r\n @Input() className?: string;\r\n @Input() headerTooltip?: string = \"\";\r\n @Input() headerTooltipPosition: \"top\" | \"bottom\" | \"left\" | \"right\" = \"top\";\r\n // @Input() tooltip: string = \"\";\r\n // @Input() tooltipPosition: \"top\" | \"bottom\" | \"left\" | \"right\" = \"top\";\r\n // @Input() showIndex: boolean = false;\r\n // @Input() isGrouped: boolean = false;\r\n // @Input() isGroup: boolean = false;\r\n @Input() colspan: number = 1;\r\n @Input() rowspan: number = 1;\r\n @Input() level: number = 0;\r\n @Input() formatType:\r\n | \"string\"\r\n | \"date\"\r\n | \"date2\"\r\n | \"date3\"\r\n | \"time\"\r\n | \"decimal2\"\r\n | \"decimal4\"\r\n | \"tarifa\" = \"string\";\r\n}\r\n@Directive({ selector: \"rowResumenComponent\" })\r\nexport class RowResumenComponent<T = any> {\r\n @Input() field!: string;\r\n @Input() className?: string;\r\n // @Input() width?: string;\r\n // @Input() className?: string;\r\n // @Input() headerTooltip: string = \"\";\r\n // @Input() headerTooltipPosition: \"top\" | \"bottom\" | \"left\" | \"right\" = \"top\";\r\n // @Input() tooltip: string = \"\";\r\n // @Input() tooltipPosition: \"top\" | \"bottom\" | \"left\" | \"right\" = \"top\";\r\n // @Input() showIndex: boolean = false;\r\n // @Input() isGrouped: boolean = false;\r\n // @Input() isGroup: boolean = false;\r\n @Input() colspan: number = 1;\r\n @Input() rowspan: number = 1;\r\n @ContentChild(TemplateRef) templateRef?: TemplateRef<any>;\r\n @Input() formatType:\r\n | \"string\"\r\n | \"date\"\r\n | \"date2\"\r\n | \"date3\"\r\n | \"time\"\r\n | \"decimal2\"\r\n | \"decimal4\"\r\n | \"tarifa\" = \"string\";\r\n}\r\n\r\n// @Input() headerText: string | undefined;\r\n// @Input() field: string;\r\n// @Input() fieldDetail: string;\r\n// @Input() className: string;\r\n// @Input() order: boolean = false;\r\n// @Input() width: string;\r\n// @Input() isNumber: boolean = false;\r\n// @Input() isRowNumber: boolean = false;\r\n// @Input() isPercent: boolean = false;\r\n// @Input() isInteger: boolean = false;\r\n// @Input() setContainer: boolean = true;\r\n// @Input() hideRowInDetail: boolean = false;\r\n// @Input() prefix: string;\r\n// @Input() headerWidth: number = 0;\r\n// @Input() headerLineBreak: boolean = false;\r\n// @Input() numberFormat: string = '1.2-2';\r\n// @Input() columnHasDateFormat: boolean = false;\r\n// @Input() dateFormat: string = '';\r\n// @Input() isSelectableColum: boolean = false;\r\n// @Input() isHeaderClickable: boolean = false;\r\n// @Input() classNameHeader: string = '';\r\n// @Input() isActiveHeader: boolean = false;\r\n// @Input() classNameActiveHeader: string = '';\r\n// @Input() isCellClickable: boolean = false;\r\n// @Input() isAveragePercent: boolean = false;\r\n// @Input() visible: boolean = true;\r\n// @Input() hasAmountNaming: boolean = false;\r\n// @Input() computedField: string;\r\n// @Input() isOrderedDesc: boolean = false;\r\n// @Input() isOrderedAsc: boolean = false;\r\n// @Input() containDetails: boolean = false;\r\n// @Input() isChecboxColumn: boolean = false;\r\n// columnsForCompare: string = '';\r\n// @ContentChild('detail') detail!: any;\r\n// @ContentChild('content') content!: any;\r\n","import { inject, Pipe, PipeTransform } from \"@angular/core\";\r\nimport { DateMode } from \"../constants/date-mode-options.constants\";\r\nimport { DatePipe } from \"@angular/common\";\r\n\r\n@Pipe({\r\n name: \"formatCell\",\r\n standalone: true,\r\n})\r\nexport class FormatCellPipe implements PipeTransform {\r\n private readonly datePipe = inject(DatePipe);\r\n\r\n transform(\r\n value: any,\r\n type:\r\n | \"string\"\r\n | \"date\"\r\n | \"date2\"\r\n | \"date3\"\r\n | \"time\"\r\n | \"decimal2\"\r\n | \"decimal4\"\r\n | \"tarifa\"\r\n ): string {\r\n if (value == null) return \"\";\r\n\r\n switch (type) {\r\n case \"date\":\r\n return this.formatDateValue(value, \"day\");\r\n case \"date2\":\r\n return this.formatDateValue(value, \"month\");\r\n case \"date3\":\r\n return this.formatDateValue(value, \"year\");\r\n case \"time\":\r\n return this.formatTime(value);\r\n case \"decimal2\":\r\n return this.formatDecimal(value, 2);\r\n case \"decimal4\":\r\n return this.formatDecimal(value, 4);\r\n case \"tarifa\":\r\n return this.formatTarifa(value);\r\n default:\r\n return value;\r\n }\r\n }\r\n\r\n getDateFormat(mode: DateMode): string {\r\n switch (mode) {\r\n case \"month\":\r\n return \"M/yy\";\r\n case \"year\":\r\n return \"yy\";\r\n default:\r\n return \"d/M/yy\";\r\n }\r\n }\r\n\r\n formatDateValue(value: any, mode: string): string {\r\n const pattern = this.getDateFormat(mode as DateMode);\r\n\r\n if (Array.isArray(value) && value.length === 2) {\r\n return `${this.datePipe.transform(\r\n value[0],\r\n pattern\r\n )} - ${this.datePipe.transform(value[1], pattern)}`;\r\n }\r\n\r\n if (value) {\r\n return this.datePipe.transform(value, pattern) || \"\";\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n private formatTime(value: any): string {\r\n const date = new Date(value);\r\n if (isNaN(date.getTime())) return \"\";\r\n\r\n let hours = date.getHours();\r\n const minutes = date.getMinutes();\r\n const seconds = date.getSeconds();\r\n const ampm = hours >= 12 ? \"PM\" : \"AM\";\r\n\r\n hours = hours % 12;\r\n hours = hours ? hours : 12;\r\n const hh = hours.toString().padStart(2, \"0\");\r\n const mm = minutes.toString().padStart(2, \"0\");\r\n const ss = seconds.toString().padStart(2, \"0\");\r\n\r\n return `${hh}:${mm}:${ss} ${ampm}`;\r\n }\r\n\r\n private formatDecimal(value: any, digits: number): string {\r\n const num = parseFloat(value);\r\n if (isNaN(num)) return \"\";\r\n return num.toFixed(digits);\r\n }\r\n\r\n private formatTarifa(value: any): string {\r\n const num = parseFloat(value);\r\n if (isNaN(num)) return \"\";\r\n\r\n const absNum = Math.abs(num);\r\n if (absNum >= 0.000001 && absNum <= 0.1) {\r\n // Mostrar hasta 6 decimales\r\n return absNum.toFixed(6);\r\n } else if (absNum < 0.000001) {\r\n return num.toString();\r\n } else {\r\n return num.toString();\r\n }\r\n }\r\n}\r\n","import { CommonModule, DatePipe } from \"@angular/common\";\r\nimport {\r\n AfterContentInit,\r\n Component,\r\n ContentChild,\r\n ContentChildren,\r\n EventEmitter,\r\n inject,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n TemplateRef,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { BadgeModule } from \"primeng/badge\";\r\nimport { CheckboxModule } from \"primeng/checkbox\";\r\nimport { TableModule } from \"primeng/table\";\r\nimport { TooltipModule } from \"primeng/tooltip\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\nimport { SharedService } from \"../../services/shared.service\";\r\nimport { PaginatorComponent } from \"../paginator/paginator.component\";\r\nimport { SearchInputModel } from \"../search/model/search.model\";\r\nimport { SearchComponent } from \"../search/search.component\";\r\nimport {\r\n ColumnComponent,\r\n ColumnGroupComponent,\r\n RowResumenComponent,\r\n} from \"./column.component\";\r\nimport { SearchFieldModel } from \"./model/search.model\";\r\nimport { SortFieldModel } from \"./model/sort.model\";\r\nimport { Select } from \"primeng/select\";\r\nimport { FormatCellPipe } from \"../../pipes/formatCell.pipe\";\r\n\r\n@Component({\r\n selector: \"intelica-table\",\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n SearchComponent,\r\n PaginatorComponent,\r\n TableModule,\r\n Select,\r\n BadgeModule,\r\n TooltipModule,\r\n TermPipe,\r\n CheckboxModule,\r\n FormsModule,\r\n FormatCellPipe,\r\n ],\r\n templateUrl: \"./table.component.html\",\r\n providers: [FormatCellPipe, DatePipe],\r\n})\r\nexport class TableComponent<T> implements OnChanges, AfterContentInit {\r\n private readonly SharedService = inject(SharedService);\r\n readonly GlobalTermService = inject(GlobalTermService);\r\n @Input() ComponentId: string = \"\";\r\n @Input() ListData: T[] = [];\r\n @Input() ShowRowPerPage: boolean = true;\r\n @Input() ShowSearch: boolean = false;\r\n @Input() ListSearchOptions: SearchFieldModel[] = [];\r\n @Input() ShowPagination: boolean = false;\r\n @Input() RowsPerPage: number = 10;\r\n @Input() ShowCheckbox: boolean = false;\r\n @Input() ShowIndex: boolean = false;\r\n @Input() ShowSearchTooltip: boolean = false;\r\n @Input() ListDataSelected: T[] = [];\r\n @Input() SelectedIdentifier: keyof T | null = null;\r\n @Input() ClassName: string = \"\";\r\n @Input() DefaultSortField: string = \"\";\r\n @Input() DefaultSortOrder: number = 1;\r\n @Input() scrollHeight: string = \"400px\";\r\n @Input() scrollable: boolean = false;\r\n @Input() AllowedPageSizes: number[] = [10, 25, 50, 100];\r\n @Input() tableStyle: { [klass: string]: any } = {};\r\n private _isTableDisabled = false;\r\n private _pendingUncheck = false;\r\n HeaderState: Record<string, { checked: boolean; indeterminate: boolean }> =\r\n {};\r\n\r\n @Input()\r\n set IsTableDisabled(val: boolean) {\r\n this._isTableDisabled = val;\r\n\r\n if (val) {\r\n if (!this.ColumnList || this.ColumnList.length === 0) {\r\n this._pendingUncheck = true;\r\n } else {\r\n this.ListDataSelectedTemp = [];\r\n this.ListDataSelectedFilter = [];\r\n this.ExecuteSearch({});\r\n }\r\n }\r\n }\r\n get IsTableDisabled() {\r\n return this._isTableDisabled;\r\n }\r\n\r\n public recomputeHeaderState(field: string) {\r\n const total = this.ListDataFilter.length;\r\n if (total === 0) {\r\n this.HeaderState[field] = { checked: false, indeterminate: false };\r\n return;\r\n }\r\n const checked = this.ListDataFilter.filter(\r\n (r) => (r as any)[field] === true\r\n ).length;\r\n this.HeaderState[field] = {\r\n checked: checked === total,\r\n indeterminate: checked > 0 && checked < total,\r\n };\r\n }\r\n\r\n onBodyCheckboxChange(field: string) {\r\n this.recomputeHeaderState(field);\r\n }\r\n\r\n private refreshAllHeaderStates() {\r\n this.ColumnList.filter((c) => c.isChecboxColumn).forEach((c) =>\r\n this.recomputeHeaderState(c.field)\r\n );\r\n }\r\n @Output() EmitSelectedItem = new EventEmitter<T[]>();\r\n @Output() EmitListDataFilter = new EventEmitter<T[]>();\r\n @Output() EmitSearchEvent = new EventEmitter<SearchInputModel>();\r\n @Output() EmitSortEvent = new EventEmitter<SortFieldModel[]>();\r\n @ViewChild(\"paginatorTable\") PaginatorTable?: PaginatorComponent;\r\n @ViewChild(\"searchTable\") SearchTable?: SearchComponent;\r\n @ContentChildren(ColumnComponent) Columns!: QueryList<ColumnComponent>;\r\n @ContentChildren(ColumnGroupComponent)\r\n ColumnGroups!: QueryList<ColumnGroupComponent>;\r\n @ContentChildren(RowResumenComponent)\r\n RowResumenGroups!: QueryList<RowResumenComponent>;\r\n @ContentChild(\"additionalTemplate\") AdditionalTemplate?: TemplateRef<any>;\r\n @ContentChild(\"additionalExtendedTemplate\")\r\n AdditionalExtendedTemplate?: TemplateRef<any>;\r\n @ContentChild(\"additionalCentralTemplate\")\r\n AdditionalCentralTemplate?: TemplateRef<any>;\r\n ColumnList: ColumnComponent[] = [];\r\n ColumnGroupList: ColumnGroupComponent[] = [];\r\n RowResumenList: RowResumenComponent[] = [];\r\n ListDataFilter: T[] = [];\r\n ListDataTable: T[] = [];\r\n ListDataSelectedFilter: T[] = [];\r\n ListDataSelectedTemp: T[] = [];\r\n ListSearchOptionsSimple: { id: number; value: string }[] = [];\r\n SearchInput: SearchInputModel = {} as SearchInputModel;\r\n TotalRecords: number = 0;\r\n CurrentPage: number = 1;\r\n SortOrder: number = 1;\r\n SortField: keyof T | null = null;\r\n MaxLevel: number = 0;\r\n Levels: number[] = [];\r\n ngOnChanges(): void {\r\n this.LoadSearchOptions();\r\n if (!this.SortField && this.DefaultSortField) {\r\n this.SortField = this.DefaultSortField as keyof T;\r\n this.SortOrder = this.DefaultSortOrder;\r\n }\r\n this.ExecuteSearch({});\r\n this.ValidateSelect();\r\n }\r\n ngAfterContentInit() {\r\n this.ColumnList = this.Columns?.toArray() ?? [];\r\n this.ColumnGroupList = this.ColumnGroups?.toArray() ?? [];\r\n this.RowResumenList = this.RowResumenGroups?.toArray() ?? [];\r\n\r\n const levels = this.ColumnGroupList.map((c) => c.level);\r\n this.MaxLevel = levels.length ? Math.max(...levels) + 1 : 1;\r\n this.Levels = Array.from({ length: this.MaxLevel }, (_, i) => i);\r\n\r\n this.ColumnList.filter((c) => c.isChecboxColumn).forEach((c) => {\r\n if (!this.HeaderState[c.field]) {\r\n this.HeaderState[c.field] = { checked: false, indeterminate: false };\r\n }\r\n });\r\n\r\n if (this._isTableDisabled && this._pendingUncheck) {\r\n this.ListDataSelectedTemp = [];\r\n this.ListDataSelectedFilter = [];\r\n this._pendingUncheck = false;\r\n this.ExecuteSearch({});\r\n } else {\r\n this.refreshAllHeaderStates();\r\n }\r\n }\r\n LoadSearchOptions() {\r\n this.ListSearchOptionsSimple = this.ListSearchOptions.map((item) => ({\r\n id: item.id,\r\n value: item.name,\r\n }));\r\n }\r\n OnSort(field: string) {\r\n if (this.SortField === field) {\r\n this.SortOrder *= -1;\r\n } else {\r\n this.SortField = field as keyof T;\r\n this.SortOrder = 1;\r\n }\r\n this.SortPages();\r\n }\r\n OnPageChange(pageIndex: number) {\r\n this.CurrentPage = pageIndex;\r\n this.UpdatePages();\r\n }\r\n ExecuteSearch(event: any): void {\r\n if (event?.fieldText !== undefined && event?.fieldText !== \"\")\r\n this.SearchInput = event;\r\n this.ListDataFilter = [...this.ListData];\r\n if (\r\n this.SearchInput?.searchText !== undefined &&\r\n this.SearchInput?.searchText !== \"\" &&\r\n this.ListSearchOptions.length > 0\r\n ) {\r\n let Search = this.SearchInput.searchText?.trim()?.toLowerCase();\r\n let searchValue =\r\n this.ListSearchOptions.find(\r\n (item) => item.id === this.SearchInput.fieldId\r\n )?.field || \"code\";\r\n this.ListDataFilter = this.SharedService.GetFilteredSearchKey(\r\n [...this.ListData],\r\n searchValue,\r\n Search,\r\n this.SearchInput.operatorId\r\n );\r\n if (this.PaginatorTable) {\r\n this.PaginatorTable.CurrentPage = 1;\r\n this.CurrentPage = 1;\r\n }\r\n }\r\n this.SortPages();\r\n }\r\n SortPages() {\r\n if (!this.SortField) {\r\n this.UpdatePages();\r\n return;\r\n }\r\n\r\n const order = this.SortOrder === 1 ? \"asc\" : \"desc\";\r\n const field = this.SortField as keyof T;\r\n\r\n const colConfig = this.ColumnList.find((c) => c.field === field);\r\n if (!colConfig) {\r\n console.warn(\"Columna no encontrada:\", field);\r\n this.UpdatePages();\r\n return;\r\n }\r\n const formatType = colConfig.formatType;\r\n const sampleValue = this.ListDataFilter.find(\r\n (item) => item[field] !== null && item[field] !== undefined\r\n )?.[field];\r\n if (typeof sampleValue === \"number\") {\r\n this.ListDataFilter = this.SharedService.SortRecursiveNumber(\r\n [...this.ListDataFilter],\r\n field,\r\n order\r\n );\r\n } else {\r\n if (formatType === \"date\") {\r\n this.ListDataFilter = this.SharedService.SortRecursiveDate(\r\n [...this.ListDataFilter],\r\n field,\r\n order\r\n );\r\n } else {\r\n this.ListDataFilter = this.SharedService.SortRecursivePrimeNg(\r\n [...this.ListDataFilter],\r\n field,\r\n order\r\n );\r\n }\r\n }\r\n this.UpdatePages();\r\n }\r\n UpdatePages() {\r\n if (this.ShowPagination) {\r\n this.TotalRecords = this.ListDataFilter.length;\r\n const start = (this.CurrentPage - 1) * this.RowsPerPage;\r\n const end = start + this.RowsPerPage;\r\n this.ListDataTable = this.ListDataFilter.slice(start, end);\r\n } else {\r\n this.ListDataTable = this.ListDataFilter;\r\n }\r\n if (this.ShowCheckbox)\r\n this.ListDataSelectedFilter = [...this.ListDataSelectedTemp];\r\n this.refreshAllHeaderStates();\r\n this.EmitSearchValues();\r\n }\r\n ValidateSelect() {\r\n if (!this.SelectedIdentifier && this.ShowCheckbox) {\r\n this.ShowCheckbox = false;\r\n return;\r\n }\r\n const selectedIds = new Set(\r\n this.ListDataSelected.map(\r\n (item) => item[this.SelectedIdentifier as keyof T]\r\n )\r\n );\r\n this.ListDataSelectedTemp = this.ListData.filter((item) =>\r\n selectedIds.has(item[this.SelectedIdentifier as keyof T])\r\n );\r\n this.ListDataSelectedFilter = [...this.ListDataSelectedTemp];\r\n }\r\n SelectAll(event: any) {\r\n if (!this.SelectedIdentifier && this.ShowCheckbox) return;\r\n if (event.checked) {\r\n const idsSelected = new Set(\r\n this.ListDataSelectedTemp.map(\r\n (item) => item[this.SelectedIdentifier as keyof T]\r\n )\r\n );\r\n this.ListDataFilter.forEach((item) => {\r\n if (!idsSelected.has(item[this.SelectedIdentifier as keyof T])) {\r\n this.ListDataSelectedTemp.push(item);\r\n }\r\n });\r\n } else {\r\n const idsSelected = new Set(\r\n this.ListDataFilter.map(\r\n (item) => item[this.SelectedIdentifier as keyof T]\r\n )\r\n );\r\n this.ListDataSelectedTemp = this.ListDataSelectedTemp.filter(\r\n (item) => !idsSelected.has(item[this.SelectedIdentifier as keyof T])\r\n );\r\n }\r\n this.EmitSelectedItem.emit(this.ListDataSelectedTemp);\r\n }\r\n OnRowSelect(event: any) {\r\n if (!this.SelectedIdentifier && this.ShowCheckbox) return;\r\n const selectedItem = event.data;\r\n const exists = this.ListDataSelectedTemp.some(\r\n (item) =>\r\n item[this.SelectedIdentifier as keyof T] ===\r\n selectedItem[this.SelectedIdentifier as keyof T]\r\n );\r\n if (!exists) {\r\n this.ListDataSelectedTemp.push(selectedItem);\r\n }\r\n this.EmitSelectedItem.emit(this.ListDataSelectedTemp);\r\n }\r\n OnRowUnselect(event: any) {\r\n if (!this.SelectedIdentifier && this.ShowCheckbox) return;\r\n const unselectedItem = event.data;\r\n this.ListDataSelectedTemp = this.ListDataSelectedTemp.filter(\r\n (item) =>\r\n item[this.SelectedIdentifier as keyof T] !==\r\n unselectedItem[this.SelectedIdentifier as keyof T]\r\n );\r\n this.EmitSelectedItem.emit(this.ListDataSelectedTemp);\r\n }\r\n ResetTable() {\r\n if (this.PaginatorTable) {\r\n this.PaginatorTable.CurrentPage = 1;\r\n this.CurrentPage = 1;\r\n }\r\n if (this.SearchTable) {\r\n this.SearchTable.ClearSearchText();\r\n this.SearchInput.fieldText = \"\";\r\n }\r\n this.ExecuteSearch({});\r\n }\r\n EmitSearchValues() {\r\n this.EmitListDataFilter.emit(this.ListDataFilter);\r\n this.EmitSearchEvent.emit(this.SearchInput);\r\n this.EmitSortEvent.emit([\r\n {\r\n sortOrder: this.SortOrder,\r\n sortField: this.SortField?.toString() ?? \"\",\r\n },\r\n ]);\r\n }\r\n OnHeaderCheckboxChange(checked: boolean, field: string) {\r\n this.ListDataFilter.forEach((r) => ((r as any)[field] = checked));\r\n\r\n this.HeaderState[field] = { checked, indeterminate: false };\r\n this.UpdatePages();\r\n }\r\n\r\n private getHeaderScope(): T[] {\r\n return this.ShowPagination ? this.ListDataTable : this.ListDataFilter;\r\n }\r\n\r\n FilterData(field: string) {\r\n let c = this.ListData.filter(\r\n (item) => (item as Record<string, boolean>)[field]\r\n );\r\n }\r\n IsInderteminate(column: string) {\r\n const rowsChek = this.ListData.filter(\r\n (item) => (item as Record<string, boolean>)[column]\r\n ).length;\r\n const element = [...document.querySelectorAll(\"[data-check]\")].find(\r\n (x) => x.getAttribute(\"data-check\") == column\r\n );\r\n if (element == undefined) return;\r\n if (rowsChek > 0 && rowsChek < this.ListData.length) {\r\n element.setAttribute(\"class\", \"prCheckbox--indeterminate\");\r\n } else {\r\n element.removeAttribute(\"class\");\r\n }\r\n }\r\n OnRowsPerPageChange(value: number) {\r\n this.RowsPerPage = value;\r\n this.ResetTable();\r\n }\r\n ResetTableSelected() {\r\n this.ListDataSelectedTemp = [];\r\n this.ListDataSelectedFilter = [...this.ListDataSelectedTemp];\r\n }\r\n}\r\n","<div class=\"prTable\">\r\n <div class=\"prTableTools\">\r\n <div class=\"prTableTools__new prTableTools__new--left\">\r\n @if (AdditionalTemplate) {\r\n <ng-container *ngTemplateOutlet=\"AdditionalTemplate\"></ng-container>\r\n }\r\n </div>\r\n @if (ShowSearch) {\r\n <intelica-search\r\n #searchTable\r\n [ComponentId]=\"ComponentId + 'Search'\"\r\n (OnSearch)=\"ExecuteSearch($event)\"\r\n [SearchFieldOptions]=\"ListSearchOptionsSimple\"\r\n [SearchOnKeyup]=\"false\"\r\n [SimpleSearchInput]=\"false\"\r\n [ShowTooltip]=\"ShowSearchTooltip\"\r\n ></intelica-search>\r\n } @if (AdditionalCentralTemplate) {\r\n <div class=\"prTableTools__new prTableTools__new--right\">\r\n <ng-container\r\n *ngTemplateOutlet=\"AdditionalCentralTemplate\"\r\n ></ng-container>\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (AdditionalExtendedTemplate) {\r\n <div class=\"prTableTools justify-content-start\">\r\n <ng-container *ngTemplateOutlet=\"AdditionalExtendedTemplate\"></ng-container>\r\n </div>\r\n\r\n }\r\n <p-table\r\n class=\"prTableBasic\"\r\n [ngClass]=\"ClassName\"\r\n [value]=\"ListDataTable\"\r\n responsiveLayout=\"scroll\"\r\n [(selection)]=\"ListDataSelectedFilter\"\r\n (onHeaderCheckboxToggle)=\"SelectAll($event)\"\r\n (onRowSelect)=\"OnRowSelect($event)\"\r\n (onRowUnselect)=\"OnRowUnselect($event)\"\r\n [sortField]=\"DefaultSortField\"\r\n [scrollable]=\"scrollable\"\r\n [scrollHeight]=\"scrollable ? scrollHeight : 'auto'\"\r\n [tableStyle]=\"tableStyle\"\r\n [sortOrder]=\"DefaultSortOrder\"\r\n >\r\n <ng-template pTemplate=\"header\">\r\n @for (level of Levels; track $index) {\r\n <tr>\r\n @for (col of ColumnGroupList; track $index) { @if (col.level === level)\r\n {\r\n <th\r\n [attr.colspan]=\"col.colspan\"\r\n [attr.rowspan]=\"col.rowspan\"\r\n [pSortableColumn]=\"col.sortable ? col.field : ''\"\r\n [style.min-width]=\"col.minWidth\"\r\n (click)=\"col.sortable && OnSort(col.field)\"\r\n >\r\n <div>\r\n <span\r\n [pTooltip]=\"col.headerTooltip?.trim() ? col.headerTooltip : undefined\"\r\n [tooltipPosition]=\"col.headerTooltipPosition || 'top'\"\r\n >\r\n {{ col.header }}\r\n </span>\r\n <p-sortIcon *ngIf=\"col.sortable\" [field]=\"col.field\"></p-sortIcon>\r\n </div>\r\n </th>\r\n } } @if (ShowCheckbox && level === 0 && ColumnGroupList.length != 0) {\r\n <th\r\n class=\"text-center\"\r\n style=\"width: 4%\"\r\n [attr.rowspan]=\"MaxLevel === 1 ? 2 : MaxLevel\"\r\n >\r\n <p-tableHeaderCheckbox\r\n class=\"prCheckbox\"\r\n [ngClass]=\"{\r\n 'prCheckbox--indeterminate':\r\n ListDataSelectedTemp.length > 0 &&\r\n ListDataSelectedTemp.length < ListDataFilter.length\r\n }\"\r\n />\r\n </th>\r\n }\r\n </tr>\r\n }\r\n <tr>\r\n @for (col of ColumnList; track $index) { @if(col.showHeader ){\r\n <th\r\n [class]=\"col.className\"\r\n [pSortableColumn]=\"\r\n !col.isChecboxColumn && col.sortable ? col.field : ''\r\n \"\r\n [style.width]=\"col.width\"\r\n [style.min-width]=\"col.minWidth\"\r\n (click)=\"!col.isChecboxColumn && col.sortable && OnSort(col.field)\"\r\n >\r\n <div>\r\n <span\r\n [pTooltip]=\"col.headerTooltip?.trim() ? col.headerTooltip : undefined\"\r\n [tooltipPosition]=\"col.headerTooltipPosition || 'top'\"\r\n >\r\n {{ col.header }}\r\n </span>\r\n @if(!col.showIndex) { @if(col.isChecboxColumn){\r\n <br />\r\n <p-checkbox\r\n class=\"prCheckbox\"\r\n [binary]=\"true\"\r\n (click)=\"$event.stopPropagation()\"\r\n [(ngModel)]=\"HeaderState[col.field].checked\"\r\n (ngModelChange)=\"OnHeaderCheckboxChange($event, col.field)\"\r\n [attr.data-check]=\"col.field\"\r\n [disabled]=\"IsTableDisabled\"\r\n [ngClass]=\"{\r\n 'prCheckbox--indeterminate':\r\n HeaderState[col.field].indeterminate\r\n }\"\r\n ></p-checkbox>\r\n } @else {\r\n <p-sortIcon *ngIf=\"col.sortable\" [field]=\"col.field\"></p-sortIcon>\r\n } }\r\n </div>\r\n </th>\r\n } } @if(ShowCheckbox && ColumnGroupList.length == 0 ){\r\n <th class=\"text-center\" style=\"width: 4%\">\r\n <p-tableHeaderCheckbox\r\n class=\"prCheckbox\"\r\n [ngClass]=\"{\r\n 'prCheckbox--indeterminate':\r\n ListDataSelectedTemp.length > 0 &&\r\n ListDataSelectedTemp.length < ListDataFilter.length\r\n }\"\r\n />\r\n </th>\r\n }\r\n </tr>\r\n @if (ListDataFilter.length > 0) {\r\n <tr class=\"fixedRow\">\r\n @for (col of RowResumenList; track $index) {\r\n <td\r\n [ngClass]=\"col.className\"\r\n [attr.colspan]=\"col.colspan\"\r\n [attr.rowspan]=\"col.rowspan\"\r\n >\r\n @if (col.templateRef) {\r\n <span>\r\n <ng-container *ngTemplateOutlet=\"col.templateRef\"></ng-container>\r\n </span>\r\n } @else {\r\n <ng-template #defaultContent></ng-template>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-rowIndex=\"rowIndex\">\r\n <tr>\r\n @for (col of ColumnList; track $index) {\r\n <td [ngClass]=\"col.className\">\r\n @if (col.showIndex) {\r\n {{ rowIndex + 1 + (CurrentPage - 1) * RowsPerPage }}\r\n } @else { @if (col.templateRef) {\r\n <ng-container\r\n *ngTemplateOutlet=\"col.templateRef; context: { $implicit: rowData }\"\r\n ></ng-container>\r\n } @else if(col.isChecboxColumn){\r\n <p-checkbox\r\n [binary]=\"true\"\r\n [(ngModel)]=\"rowData[col.field]\"\r\n (onChange)=\"onBodyCheckboxChange(col.field)\"\r\n [disabled]=\"IsTableDisabled\"\r\n ></p-checkbox>\r\n } @else {\r\n <span\r\n class=\"text-breakWord\"\r\n [pTooltip]=\"col.tooltip\"\r\n [tooltipPosition]=\"col.tooltipPosition || 'top'\"\r\n >\r\n {{ rowData[col.field] | formatCell : col.formatType }}\r\n </span>\r\n } }\r\n </td>\r\n } @if (ShowCheckbox) {\r\n <td class=\"text-center\">\r\n <p-tableCheckbox [value]=\"rowData\" class=\"prCheckbox\" />\r\n </td>\r\n }\r\n </tr>\r\n </ng-template>\r\n <ng-template #emptymessage>\r\n <tr>\r\n <td\r\n [attr.colspan]=\"ColumnList.length + (ShowCheckbox ? 1 : 0)\"\r\n class=\"text-center\"\r\n >\r\n {{ \"Nodata\" | term : GlobalTermService.languageCode }}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n <div class=\"prTableToolsBottom\">\r\n @if(TotalRecords !== 0){\r\n @if(ShowRowPerPage){\r\n <div class=\"prTableToolsBottom__itemPerPage\">\r\n {{ \"ItemPerPage\" | term : GlobalTermService.languageCode }}\r\n <p-select\r\n [options]=\"AllowedPageSizes\"\r\n [ngModel]=\"RowsPerPage\"\r\n appendTo=\"body\"\r\n (onChange)=\"OnRowsPerPageChange($event.value)\"\r\n [disabled]=\"TotalRecords === 0\"\r\n />\r\n <label for=\"pageSize\" class=\"control-label\">\r\n {{ 1 + RowsPerPage * (CurrentPage - 1) }} -\r\n {{\r\n CurrentPage * RowsPerPage >= TotalRecords\r\n ? TotalRecords\r\n : CurrentPage * RowsPerPage\r\n }}\r\n {{ \"Of\" | term : GlobalTermService.languageCode }} {{ TotalRecords }}\r\n {{ \"Items\" | term : GlobalTermService.languageCode }}\r\n </label>\r\n </div>\r\n } @if (ShowPagination) {\r\n <intelica-paginator\r\n #paginatorTable\r\n [TotalItems]=\"ListDataFilter.length\"\r\n [ItemsPerPage]=\"RowsPerPage\"\r\n (PageChange)=\"OnPageChange($event)\"\r\n ></intelica-paginator>\r\n }\r\n }\r\n </div>\r\n</div>\r\n","import { ContentChild, Directive, Input, TemplateRef } from \"@angular/core\";\r\n@Directive({ selector: \"column\" })\r\nexport class TreeColumnComponent<T = any> {\r\n @Input() field!: string;\r\n @Input() header!: string;\r\n @Input() sortable: boolean = false;\r\n @Input() width?: string;\r\n @Input() className?: string;\r\n @Input() headerTooltip?: string;\r\n @Input() headerTooltipPosition: \"top\" | \"bottom\" | \"left\" | \"right\" = \"top\";\r\n @Input() tooltip: string = \"\";\r\n @Input() tooltipPosition: \"top\" | \"bottom\" | \"left\" | \"right\" = \"top\";\r\n @Input() showIndex: boolean = false;\r\n @Input() showHeader: boolean = true;\r\n @Input() minWidth?: string;\r\n @Input() isChecboxColumn: boolean = false;\r\n @Input() isExpansionColumn: boolean = false;\r\n @Input() alphaSubEnum: boolean = false;\r\n @ContentChild(TemplateRef) templateRef?: TemplateRef<any>;\r\n @Input() formatType:\r\n | \"string\"\r\n | \"date\"\r\n | \"date2\"\r\n | \"date3\"\r\n | \"time\"\r\n | \"decimal2\"\r\n | \"decimal4\"\r\n | \"tarifa\" = \"string\";\r\n}\r\n@Directive({ selector: \"columnGroup\" })\r\nexport class TreeColumnGroupComponent<T = any> {\r\n @Input() field!: string;\r\n @Input() header!: string;\r\n @Input() sortable: boolean = false;\r\n @Input() minWidth?: string;\r\n @Input() colspan: number = 1;\r\n @Input() rowspan: number = 1;\r\n @Input() level: number = 0;\r\n @Input() formatType:\r\n | \"string\"\r\n | \"date\"\r\n | \"date2\"\r\n | \"date3\"\r\n | \"time\"\r\n | \"decimal2\"\r\n | \"decimal4\"\r\n | \"tarifa\" = \"string\";\r\n}\r\n@Directive({ selector: \"rowResumenComponent\" })\r\nexport class RowResumenTreeComponent<T = any> {\r\n @Input() field!: string;\r\n @Input() className?: string;\r\n @Input() colspan: number = 1;\r\n @Input() rowspan: number = 1;\r\n @ContentChild(TemplateRef) templateRef?: TemplateRef<any>;\r\n\r\n @Input() formatType:\r\n | \"string\"\r\n | \"date\"\r\n | \"date2\"\r\n | \"date3\"\r\n | \"time\"\r\n | \"decimal2\"\r\n | \"decimal4\"\r\n | \"tarifa\" = \"string\";\r\n}\r\n","import { CommonModule, DatePipe } from \"@angular/common\";\r\nimport {\r\n AfterContentInit,\r\n Component,\r\n ContentChild,\r\n ContentChildren,\r\n EventEmitter,\r\n inject,\r\n Input,\r\n OnChanges,\r\n Output,\r\n QueryList,\r\n TemplateRef,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { BadgeModule } from \"primeng/badge\";\r\nimport { CheckboxModule } from \"primeng/checkbox\";\r\nimport { TableModule } from \"primeng/table\";\r\nimport { TooltipModule } from \"primeng/tooltip\";\r\nimport { ButtonModule } from \"primeng/button\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\nimport { SharedService } from \"../../services/shared.service\";\r\nimport { PaginatorComponent } from \"../paginator/paginator.component\";\r\nimport { SearchComponent } from \"../search/search.component\";\r\nimport { SearchInputModel } from \"../search/model/search.model\";\r\nimport { SortFieldModel } from \"../table/model/sort.model\";\r\nimport {\r\n RowResumenTreeComponent,\r\n TreeColumnComponent,\r\n TreeColumnGroupComponent,\r\n} from \"./column.component\";\r\nimport { Select } from \"primeng/select\";\r\nimport { FormatCellPipe } from \"../../pipes/formatCell.pipe\";\r\n\r\n@Component({\r\n selector: \"intelica-tree-table\",\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n SearchComponent,\r\n PaginatorComponent,\r\n Select,\r\n TableModule,\r\n BadgeModule,\r\n TooltipModule,\r\n TermPipe,\r\n CheckboxModule,\r\n FormsModule,\r\n ButtonModule,\r\n FormatCellPipe,\r\n ],\r\n templateUrl: \"./tree-table.component.html\",\r\n providers: [FormatCellPipe, DatePipe],\r\n})\r\nexport class TreeTableComponent<T> implements OnChanges, AfterContentInit {\r\n private readonly SharedService = inject(SharedService);\r\n readonly GlobalTermService = inject(GlobalTermService);\r\n\r\n @Input() ComponentId: string = \"\";\r\n @Input() ListData: T[] = [];\r\n @Input() ClassName: string = \"\";\r\n @Input() groupRowsBy: string = \"\";\r\n @Input() dataKey: string = \"\";\r\n @Input() DefaultSortField: string = \"\";\r\n @Input() DefaultSortOrder: number = 1;\r\n @Input() scrollHeight: string = \"400px\";\r\n @Input() scrollable: boolean = false;\r\n @Input() tableStyle: { [klass: string]: any } = {};\r\n @Input() ShowSearch: boolean = false;\r\n @Input() ShowPagination: boolean = false;\r\n @Input() RowsPerPage: number = 10;\r\n @Input() AllowedPageSizes: number[] = [10, 25, 50, 100];\r\n @Input() ShowCheckbox: boolean = false;\r\n @Input() ShowIndex: boolean = false;\r\n @Input() ShowSearchTooltip: boolean = false;\r\n @Input() ListDataSelected: T[] = [];\r\n @Input() SelectedIdentifier: keyof T | null = null;\r\n @Input() ListSearchOptions: any[] = [];\r\n @Input() ShowRowPerPage: boolean = true;\r\n @Input() ExpandedColumnIdent: string = \"\";\r\n @Input() PropagateHeaderToChildren: boolean = false;\r\n @Input() ShowHeaderTooltips: boolean = true;\r\n\r\n @Output() EmitSelectedItem = new EventEmitter<T[]>();\r\n @Output() EmitListDataFilter = new EventEmitter<T[]>();\r\n @Output() EmitSearchEvent = new EventEmitter<SearchInputModel>();\r\n @Output() EmitSortEvent = new EventEmitter<SortFieldModel[]>();\r\n @Output() EmitCheckboxHeaderEvent = new EventEmitter<void>();\r\n\r\n @ContentChildren(TreeColumnComponent)\r\n Columns!: QueryList<TreeColumnComponent>;\r\n @ContentChildren(TreeColumnGroupComponent)\r\n ColumnGroups!: QueryList<TreeColumnGroupComponent>;\r\n @ContentChildren(RowResumenTreeComponent)\r\n RowResumenGroups!: QueryList<RowResumenTreeComponent>;\r\n @ContentChild(\"additionalTemplate\") AdditionalTemplate?: TemplateRef<any>;\r\n @ContentChild(\"additionalCentralTemplate\")\r\n AdditionalCentralTemplate?: TemplateRef<any>;\r\n @ContentChild(\"additionalExtendedTemplate\")\r\n AdditionalExtendedTemplate?: TemplateRef<any>;\r\n\r\n @ViewChild(\"paginatorTable\") PaginatorTable?: PaginatorComponent;\r\n @ViewChild(\"searchTable\") SearchTable?: SearchComponent;\r\n\r\n ListDataFilter: T[] = [];\r\n ListDataTable: T[] = [];\r\n ListDataSelectedTemp: T[] = [];\r\n ColumnList: TreeColumnComponent[] = [];\r\n ColumnGroupList: TreeColumnGroupComponent[] = [];\r\n RowResumenList: RowResumenTreeComponent[] = [];\r\n MaxLevel: number = 0;\r\n Levels: number[] = [];\r\n SortOrder: number = 1;\r\n SortField: keyof T | null = null;\r\n TotalRecords: number = 0;\r\n CurrentPage: number = 1;\r\n SearchInput: SearchInputModel = {} as SearchInputModel;\r\n ListSearchOptionsSimple: { id: number; value: string }[] = [];\r\n private _isTableDisabled = false;\r\n private _pendingUncheck = false;\r\n HeaderState: Record<string, { checked: boolean; indeterminate: boolean }> =\r\n {};\r\n SelectedItems: number = 0;\r\n TotalItems: number = 0;\r\n\r\n LoadSearchOptions() {\r\n this.ListSearchOptionsSimple = this.ListSearchOptions.map((item) => ({\r\n id: item.id,\r\n value: item.name,\r\n }));\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.LoadSearchOptions();\r\n this.ListDataFilter = [...this.ListData];\r\n if (!this.SortField && this.DefaultSortField) {\r\n this.SortField = this.DefaultSortField as keyof T;\r\n this.SortOrder = this.DefaultSortOrder;\r\n }\r\n this.ExecuteSearch({});\r\n this.ValidateSelect();\r\n }\r\n\r\n ngAfterContentInit() {\r\n this.ColumnList = this.Columns?.toArray() ?? [];\r\n this.ColumnGroupList = this.ColumnGroups?.toArray() ?? [];\r\n this.RowResumenList = this.RowResumenGroups?.toArray() ?? [];\r\n\r\n const levels = this.ColumnGroupList.map((c) => c.level);\r\n this.MaxLevel = levels.length ? Math.max(...levels) + 1 : 1;\r\n this.Levels = Array.from({ length: this.MaxLevel }, (_, i) => i);\r\n\r\n this.ColumnList.filter((c) => c.isChecboxColumn).forEach((c) => {\r\n if (!this.HeaderState[c.field]) {\r\n this.HeaderState[c.field] = { checked: false, indeterminate: false };\r\n }\r\n });\r\n\r\n if (this._isTableDisabled && this._pendingUncheck) {\r\n this.ListDataSelectedTemp = [];\r\n this._pendingUncheck = false;\r\n this.ExecuteSearch({});\r\n } else {\r\n this.refreshAllHeaderStates();\r\n }\r\n }\r\n\r\n OnSort(field: string) {\r\n if (this.SortField === field) {\r\n this.SortOrder *= -1;\r\n } else {\r\n this.SortField = field as keyof T;\r\n this.SortOrder = 1;\r\n }\r\n this.SortPages();\r\n }\r\n\r\n OnPageChange(pageIndex: number) {\r\n this.CurrentPage = pageIndex;\r\n this.UpdatePages();\r\n }\r\n\r\n SortPages() {\r\n const order = this.SortOrder === 1 ? \"asc\" : \"desc\";\r\n const field = this.SortField as keyof T;\r\n const sampleValue = this.ListDataFilter.find(\r\n (item) => item[field] !== null && item[field] !== undefined\r\n )?.[field];\r\n if (typeof sampleValue === \"number\") {\r\n this.ListDataFilter = this.SharedService.SortRecursiveNumber(\r\n [...this.ListDataFilter],\r\n field,\r\n order\r\n );\r\n } else {\r\n this.ListDataFilter = this.SharedService.SortRecursivePrimeNg(\r\n [...this.ListDataFilter],\r\n field,\r\n order\r\n );\r\n }\r\n this.UpdatePages();\r\n }\r\n\r\n ExecuteSearch(event: any): void {\r\n if (event?.fieldText !== undefined && event?.fieldText !== \"\")\r\n this.SearchInput = event;\r\n this.ListDataFilter = [...this.ListData];\r\n if (\r\n this.SearchInput?.searchText !== undefined &&\r\n this.SearchInput?.searchText !== \"\" &&\r\n this.ListSearchOptions.length > 0\r\n ) {\r\n let Search = this.SearchInput.searchText?.trim()?.toLowerCase();\r\n let searchOption = this.ListSearchOptions.find(\r\n (item) => item.id === this.SearchInput.fieldId\r\n );\r\n let searchValue = searchOption?.field || \"code\";\r\n let searchOnlyParent = searchOption?.searchOnlyParent ?? true;\r\n this.ListDataFilter = this.SharedService.GetFilteredSearchKeyRecursive(\r\n [...this.ListData],\r\n searchValue,\r\n Search,\r\n this.SearchInput.operatorId,\r\n searchOnlyParent\r\n );\r\n if (this.PaginatorTable) {\r\n this.PaginatorTable.CurrentPage = 1;\r\n this.CurrentPage = 1;\r\n }\r\n }\r\n this.SortPages();\r\n }\r\n\r\n public recomputeHeaderState(field: string) {\r\n const allRows = this.PropagateHeaderToChildren\r\n ? this.ListDataFilter.flatMap((r: any) =>\r\n Array.isArray(r.children) ? [r, ...r.children] : [r]\r\n )\r\n : this.ListDataFilter;\r\n\r\n const total = allRows.length;\r\n if (total === 0) {\r\n this.HeaderState[field] = { checked: false, indeterminate: false };\r\n return;\r\n }\r\n\r\n const checked = allRows.filter((r: any) => r[field] === true).length;\r\n\r\n this.HeaderState[field] = {\r\n checked: checked === total,\r\n indeterminate: checked > 0 && checked < total,\r\n };\r\n }\r\n\r\n public recomputeRowSelectionState() {\r\n const all = this.flattenRows(this.ListDataFilter);\r\n this.TotalItems = all.length;\r\n\r\n const selIds = this.toIdSet(this.ListDataSelected || []);\r\n this.SelectedItems = all.filter((r) => selIds.has(this.getId(r))).length;\r\n }\r\n\r\n onBodyCheckboxChange(field: string, row?: any) {\r\n this.recomputeHeaderState(field);\r\n }\r\n\r\n private refreshAllHeaderStates() {\r\n this.ColumnList.filter((c) => c.isChecboxColumn).forEach((c) =>\r\n this.recomputeHeaderState(c.field)\r\n );\r\n }\r\n\r\n OnHeaderCheckboxChange(checked: boolean, field: string) {\r\n let allRows: any[] = [];\r\n\r\n this.ListDataFilter.forEach((r: any) => {\r\n r[field] = checked;\r\n\r\n if (this.PropagateHeaderToChildren && Array.isArray(r.children)) {\r\n r.children.forEach((child: any) => {\r\n child[field] = checked;\r\n });\r\n }\r\n });\r\n\r\n allRows = this.PropagateHeaderToChildren\r\n ? this.ListDataFilter.flatMap((r: any) =>\r\n Array.isArray(r.children) ? [r, ...r.children] : [r]\r\n )\r\n : this.ListDataFilter;\r\n\r\n this.recomputeRowSelectionState();\r\n\r\n this.HeaderState[field] = { checked, indeterminate: false };\r\n this.UpdatePages();\r\n this.EmitCheckboxHeaderEvent.emit();\r\n }\r\n\r\n IsInderteminate(column: string) {\r\n const rowsChek = this.ListData.filter(\r\n (item) => (item as Record<string, boolean>)[column]\r\n ).length;\r\n const element = [...document.querySelectorAll(\"[data-check]\")].find(\r\n (x) => x.getAttribute(\"data-check\") == column\r\n );\r\n if (element == undefined) return;\r\n if (rowsChek > 0 && rowsChek < this.ListData.length)\r\n element.setAttribute(\"class\", \"prCheckbox--indeterminate\");\r\n else element.removeAttribute(\"class\");\r\n }\r\n\r\n getLetter(index: number): string {\r\n const letters = \"abcdefghijklmnopqrstuvwxyz\";\r\n return letters[index];\r\n }\r\n\r\n getNumber(index: number): string {\r\n return (index + 1).toString();\r\n }\r\n\r\n private getId = (x: T) =>\r\n this.SelectedIdentifier\r\n ? x[this.SelectedIdentifier]\r\n : (x as any)[this.dataKey];\r\n\r\n private flattenRows = (rows: any[]) =>\r\n this.PropagateHeaderToChildren\r\n ? rows.flatMap((r: any) =>\r\n Array.isArray(r.children) ? [r, ...r.children] : [r]\r\n )\r\n : rows;\r\n\r\n private toIdSet = (items: T[]) => new Set(items.map(this.getId));\r\n\r\n get resolvedDataKey(): string {\r\n return (this.SelectedIdentifier as string) || this.dataKey;\r\n }\r\n\r\n UpdatePages() {\r\n if (this.ShowPagination) {\r\n this.TotalRecords = this.ListDataFilter.length;\r\n const start = (this.CurrentPage - 1) * this.RowsPerPage;\r\n const end = start + this.RowsPerPage;\r\n this.ListDataTable = this.ListDataFilter.slice(start, end);\r\n } else {\r\n this.ListDataTable = this.ListDataFilter;\r\n }\r\n this.EmitSearchValues();\r\n }\r\n\r\n ValidateSelect() {\r\n if (!this.SelectedIdentifier && this.ShowCheckbox) {\r\n this.ShowCheckbox = false;\r\n return;\r\n }\r\n const selectedIds = new Set(\r\n this.ListDataSelected.map(\r\n (item) => item[this.SelectedIdentifier as keyof T]\r\n )\r\n );\r\n this.ListDataSelectedTemp = this.ListData.filter((item) =>\r\n selectedIds.has(item[this.SelectedIdentifier as keyof T])\r\n );\r\n }\r\n\r\n SelectAll(event: any) {\r\n if (!this.SelectedIdentifier && !this.dataKey && this.ShowCheckbox) return;\r\n\r\n const all = this.flattenRows(this.ListDataFilter);\r\n const allIds = this.toIdSet(all);\r\n\r\n const curr = [...(this.ListDataSelected || [])];\r\n const currIds = this.toIdSet(curr);\r\n\r\n if (event.checked) {\r\n const toAdd = all.filter((r) => !currIds.has(this.getId(r)));\r\n this.ListDataSelected = curr.concat(toAdd);\r\n } else {\r\n this.ListDataSelected = curr.filter((r) => !allIds.has(this.getId(r)));\r\n }\r\n\r\n this.ListDataSelectedTemp = [...this.ListDataSelected];\r\n\r\n this.recomputeRowSelectionState();\r\n this.EmitSelectedItem.emit(this.ListDataSelectedTemp);\r\n }\r\n\r\n OnRowSelect(event: any) {\r\n if (!this.SelectedIdentifier && !this.dataKey && this.ShowCheckbox) return;\r\n\r\n const row = event.data as any;\r\n const hasChildren =\r\n this.PropagateHeaderToChildren &&\r\n Array.isArray(row.children) &&\r\n row.children.length;\r\n\r\n const curr = new Map(this.ListDataSelected.map((x) => [this.getId(x), x]));\r\n\r\n curr.set(this.getId(row), row);\r\n\r\n if (hasChildren) {\r\n for (const child of row.children) {\r\n curr.set(this.getId(child), child);\r\n }\r\n }\r\n\r\n this.ListDataSelected = Array.from(curr.values());\r\n this.ListDataSelectedTemp = [...this.ListDataSelected];\r\n\r\n this.recomputeRowSelectionState();\r\n this.EmitSelectedItem.emit(this.ListDataSelectedTemp);\r\n }\r\n\r\n OnRowUnselect(event: any) {\r\n if (!this.SelectedIdentifier && !this.dataKey && this.ShowCheckbox) return;\r\n\r\n const row = event.data as any;\r\n const removeIds = new Set<any>([this.getId(row)]);\r\n\r\n if (this.PropagateHeaderToChildren && Array.isArray(row.children)) {\r\n for (const child of row.children) {\r\n removeIds.add(this.getId(child));\r\n }\r\n }\r\n\r\n this.ListDataSelected = (this.ListDataSelected || []).filter(\r\n (x) => !removeIds.has(this.getId(x))\r\n );\r\n this.ListDataSelectedTemp = [...this.ListDataSelected];\r\n\r\n this.recomputeRowSelectionState();\r\n this.EmitSelectedItem.emit(this.ListDataSelectedTemp);\r\n }\r\n\r\n ResetTable() {\r\n if (this.PaginatorTable) {\r\n this.PaginatorTable.CurrentPage = 1;\r\n this.CurrentPage = 1;\r\n }\r\n if (this.SearchTable) {\r\n this.SearchTable.ClearSearchText();\r\n this.SearchInput.fieldText = \"\";\r\n }\r\n this.ExecuteSearch({});\r\n }\r\n\r\n EmitSearchValues() {\r\n this.EmitListDataFilter.emit(this.ListDataFilter);\r\n this.EmitSearchEvent.emit(this.SearchInput);\r\n this.EmitSortEvent.emit([\r\n {\r\n sortOrder: this.SortOrder,\r\n sortField: this.SortField?.toString() ?? \"\",\r\n },\r\n ]);\r\n }\r\n\r\n OnRowsPerPageChange(value: number) {\r\n this.RowsPerPage = value;\r\n this.ResetTable();\r\n }\r\n}\r\n","<div class=\"prTable\">\r\n <div class=\"prTableTools\">\r\n <div class=\"prTableTools__new prTableTools__new--left\">\r\n @if (AdditionalTemplate) {\r\n <ng-container *ngTemplateOutlet=\"AdditionalTemplate\"></ng-container>\r\n }\r\n </div>\r\n\r\n @if (ShowSearch) {\r\n <intelica-search\r\n #searchTable\r\n [ComponentId]=\"ComponentId + 'Search'\"\r\n (OnSearch)=\"ExecuteSearch($event)\"\r\n [SearchFieldOptions]=\"ListSearchOptionsSimple\"\r\n [SearchOnKeyup]=\"false\"\r\n [SimpleSearchInput]=\"false\"\r\n [ShowTooltip]=\"ShowSearchTooltip\"\r\n ></intelica-search>\r\n } @if (AdditionalCentralTemplate) {\r\n <div class=\"prTableTools__new prTableTools__new--right\">\r\n <ng-container\r\n *ngTemplateOutlet=\"AdditionalCentralTemplate\"\r\n ></ng-container>\r\n </div>\r\n }\r\n </div>\r\n @if (AdditionalExtendedTemplate) {\r\n <div class=\"prTableTools justify-content-start\">\r\n <ng-container *ngTemplateOutlet=\"AdditionalExtendedTemplate\"></ng-container>\r\n </div>\r\n\r\n } @if (ShowCheckbox) {\r\n <div class=\"justify-content-start prTableToolsBottom\">\r\n <span\r\n >{{ SelectedItems }}\r\n {{ \"Of\" | term : GlobalTermService.languageCode }}\r\n {{ TotalItems }}\r\n {{ \"Selected Items\" | term : GlobalTermService.languageCode }}\r\n </span>\r\n </div>\r\n }\r\n <p-table\r\n class=\"prTableBasic\"\r\n [value]=\"ListDataTable\"\r\n [ngClass]=\"ClassName\"\r\n responsiveLayout=\"scroll\"\r\n [(selection)]=\"ListDataSelected\"\r\n (onHeaderCheckboxToggle)=\"SelectAll($event)\"\r\n (onRowSelect)=\"OnRowSelect($event)\"\r\n (onRowUnselect)=\"OnRowUnselect($event)\"\r\n [groupRowsBy]=\"groupRowsBy\"\r\n [dataKey]=\"resolvedDataKey\"\r\n [sortField]=\"DefaultSortField\"\r\n [scrollable]=\"scrollable\"\r\n [scrollHeight]=\"scrollable ? scrollHeight : 'auto'\"\r\n [tableStyle]=\"tableStyle\"\r\n [sortOrder]=\"SortOrder\"\r\n >\r\n <ng-template pTemplate=\"header\">\r\n @for (level of Levels; track $index) {\r\n <tr>\r\n @for (col of ColumnGroupList; track $index) { @if (col.level === level)\r\n {\r\n <th\r\n [attr.colspan]=\"col.colspan\"\r\n [attr.rowspan]=\"col.rowspan\"\r\n [pSortableColumn]=\"col.sortable ? col.field : ''\"\r\n [style.min-width]=\"col.minWidth\"\r\n (click)=\"col.sortable && OnSort(col.field)\"\r\n >\r\n <div>\r\n <span [pTooltip]=\"ShowHeaderTooltips ? col.header : undefined\">\r\n {{ col.header }}\r\n </span>\r\n <p-sortIcon *ngIf=\"col.sortable\" [field]=\"col.field\"></p-sortIcon>\r\n </div>\r\n </th>\r\n } } @if (ShowCheckbox && level === 0 && ColumnGroupList.length != 0) {\r\n <th\r\n class=\"text-center\"\r\n style=\"width: 4%\"\r\n [attr.rowspan]=\"MaxLevel === 1 ? 2 : MaxLevel\"\r\n >\r\n <p-tableHeaderCheckbox\r\n class=\"prCheckbox\"\r\n [ngClass]=\"{\r\n 'prCheckbox--indeterminate':\r\n ListDataSelectedTemp.length > 0 &&\r\n ListDataSelectedTemp.length < ListDataFilter.length\r\n }\"\r\n />\r\n </th>\r\n }\r\n </tr>\r\n }\r\n\r\n <tr>\r\n @for (col of ColumnList; track $index) { @if(col.showHeader) {\r\n <th\r\n [class]=\"col.className\"\r\n [pSortableColumn]=\"\r\n !col.isChecboxColumn && col.sortable ? col.field : ''\r\n \"\r\n [style.width]=\"col.width\"\r\n [style.min-width]=\"col.minWidth\"\r\n (click)=\"!col.isChecboxColumn && col.sortable && OnSort(col.field)\"\r\n >\r\n <div>\r\n <span\r\n [pTooltip]=\"\r\n ShowHeaderTooltips && col.headerTooltip?.trim()\r\n ? col.headerTooltip\r\n : undefined\r\n \"\r\n [tooltipPosition]=\"col.headerTooltipPosition || 'top'\"\r\n >\r\n {{ col.header }}\r\n </span>\r\n\r\n @if (!col.showIndex) { @if (col.isChecboxColumn) {\r\n <br />\r\n <p-checkbox\r\n class=\"prCheckbox\"\r\n [binary]=\"true\"\r\n (click)=\"$event.stopPropagation()\"\r\n [(ngModel)]=\"HeaderState[col.field].checked\"\r\n (ngModelChange)=\"OnHeaderCheckboxChange($event, col.field)\"\r\n [attr.data-check]=\"col.field\"\r\n [ngClass]=\"{\r\n 'prCheckbox--indeterminate':\r\n HeaderState[col.field].indeterminate\r\n }\"\r\n ></p-checkbox>\r\n } @else {\r\n <p-sortIcon *ngIf=\"col.sortable\" [field]=\"col.field\"></p-sortIcon>\r\n } }\r\n </div>\r\n </th>\r\n } } @if (ShowCheckbox && ColumnGroupList.length == 0) {\r\n <th class=\"text-center\" style=\"width: 4%\">\r\n <p-tableHeaderCheckbox\r\n class=\"prCheckbox\"\r\n [ngClass]=\"{\r\n 'prCheckbox--indeterminate':\r\n ListDataSelectedTemp.length > 0 &&\r\n ListDataSelectedTemp.length < ListDataFilter.length\r\n }\"\r\n />\r\n </th>\r\n }\r\n </tr>\r\n\r\n @if (ListDataFilter.length > 0) {\r\n <tr class=\"fixedRow\">\r\n @for (col of RowResumenList; track $index) {\r\n <td\r\n [ngClass]=\"col.className\"\r\n [attr.colspan]=\"col.colspan\"\r\n [attr.rowspan]=\"col.rowspan\"\r\n >\r\n @if (col.templateRef) {\r\n <span\r\n ><ng-container *ngTemplateOutlet=\"col.templateRef\"></ng-container\r\n ></span>\r\n } @else {\r\n <ng-template #defaultContent></ng-template>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </ng-template>\r\n\r\n <ng-template\r\n pTemplate=\"body\"\r\n let-rowData\r\n let-rowIndex=\"rowIndex\"\r\n let-expanded=\"expanded\"\r\n >\r\n <tr>\r\n @for (col of ColumnList; track $index) {\r\n <td [ngClass]=\"col.className\">\r\n @if (col.showIndex) {\r\n {{ rowIndex + 1 + (CurrentPage - 1) * RowsPerPage }}\r\n } @else if ((col.field === (ExpandedColumnIdent?.trim() || 'name')) &&\r\n (rowData.children?.length ?? 0) > 0 ) {\r\n <div class=\"prTable__expandToggleRow\">\r\n <p-button\r\n [pRowToggler]=\"rowData\"\r\n class=\"prButton prButton--icon prButton--iconBlue\"\r\n >\r\n <i\r\n [class]=\"\r\n expanded ? 'icon icon-collapse-rows' : 'icon icon-expand-rows'\r\n \"\r\n ></i>\r\n </p-button>\r\n <span\r\n class=\"text-breakWord\"\r\n pTooltip=\"{{ col.tooltip }}\"\r\n tooltipPosition=\"{{ col.tooltipPosition }}\"\r\n >\r\n {{ rowData[col.field] | formatCell : col.formatType }}\r\n </span>\r\n </div>\r\n } @else { @if (col.templateRef) {\r\n <ng-container\r\n *ngTemplateOutlet=\"col.templateRef; context: { $implicit: rowData }\"\r\n ></ng-container>\r\n } @else if(col.isChecboxColumn){\r\n <p-checkbox\r\n [binary]=\"true\"\r\n [(ngModel)]=\"rowData[col.field]\"\r\n (onChange)=\"onBodyCheckboxChange(col.field)\"\r\n ></p-checkbox>\r\n } @else {\r\n <span\r\n class=\"text-breakWord\"\r\n pTooltip=\"{{ col.tooltip }}\"\r\n tooltipPosition=\"{{ col.tooltipPosition }}\"\r\n >\r\n {{ rowData[col.field] | formatCell : col.formatType }}\r\n </span>\r\n } }\r\n </td>\r\n } @if (ShowCheckbox) {\r\n <td class=\"text-center\">\r\n <p-tableCheckbox [value]=\"rowData\" class=\"prCheckbox\" />\r\n </td>\r\n }\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"expandedrow\" let-rowData let-rowIndex=\"rowIndex\">\r\n <ng-container *ngIf=\"rowData.children?.length\">\r\n <tr\r\n *ngFor=\"let childRow of rowData.children; let i = index\"\r\n class=\"subRow\"\r\n >\r\n @for (col of ColumnList; track $index) {\r\n <td [ngClass]=\"col.className\">\r\n @if (col.showIndex && $index === 0) {\r\n <ng-container\r\n *ngIf=\"\r\n col.alphaSubEnum && rowData.children.length <= 26;\r\n else numericEnum\r\n \"\r\n >\r\n {{ rowIndex + 1 + \".\" + getLetter(i) }}\r\n </ng-container>\r\n <ng-template #numericEnum>\r\n {{ rowIndex + 1 + \".\" + getNumber(i) }}\r\n </ng-template>\r\n } @else if (col.templateRef) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n col.templateRef;\r\n context: { $implicit: childRow }\r\n \"\r\n ></ng-container>\r\n } @else if (col.isChecboxColumn) {\r\n <p-checkbox\r\n [binary]=\"true\"\r\n [(ngModel)]=\"childRow[col.field]\"\r\n (onChange)=\"onBodyCheckboxChange(col.field, childRow)\"\r\n ></p-checkbox>\r\n } @else {\r\n <span\r\n class=\"text-breakWord\"\r\n pTooltip=\"{{ col.tooltip }}\"\r\n tooltipPosition=\"{{ col.tooltipPosition }}\"\r\n [class.prTable__expandIdentText]=\"\r\n col.field === (ExpandedColumnIdent || 'name')\r\n \"\r\n >\r\n {{ childRow[col.field] | formatCell : col.formatType }}\r\n </span>\r\n }\r\n </td>\r\n } @if (ShowCheckbox) {\r\n <td class=\"text-center\">\r\n <p-tableCheckbox [value]=\"childRow\" class=\"prCheckbox\" />\r\n </td>\r\n }\r\n </tr>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #emptymessage>\r\n <tr>\r\n <td\r\n [attr.colspan]=\"ColumnList.length + (ShowCheckbox ? 1 : 0)\"\r\n class=\"text-center\"\r\n >\r\n {{ \"Nodata\" | term : GlobalTermService.languageCode }}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n\r\n <div class=\"prTableToolsBottom\">\r\n @if(TotalRecords !== 0){ @if (ShowRowPerPage) {\r\n <div class=\"prTableToolsBottom__itemPerPage\">\r\n {{ \"ItemPerPage\" | term : GlobalTermService.languageCode }}\r\n <p-select\r\n [options]=\"AllowedPageSizes\"\r\n [ngModel]=\"RowsPerPage\"\r\n appendTo=\"body\"\r\n (onChange)=\"OnRowsPerPageChange($event.value)\"\r\n />\r\n <label for=\"pageSize\" class=\"control-label\">\r\n {{ 1 + RowsPerPage * (CurrentPage - 1) }} -\r\n {{\r\n CurrentPage * RowsPerPage >= TotalRecords\r\n ? TotalRecords\r\n : CurrentPage * RowsPerPage\r\n }}\r\n {{ \"Of\" | term : GlobalTermService.languageCode }} {{ TotalRecords }}\r\n {{ \"Items\" | term : GlobalTermService.languageCode }}\r\n </label>\r\n </div>\r\n } @if (ShowPagination) {\r\n <intelica-paginator\r\n #paginatorTable\r\n [TotalItems]=\"ListDataFilter.length\"\r\n [ItemsPerPage]=\"RowsPerPage\"\r\n (PageChange)=\"OnPageChange($event)\"\r\n >\r\n </intelica-paginator>\r\n } }\r\n </div>\r\n</div>\r\n","import { ContentChild, Directive, Input, TemplateRef } from \"@angular/core\";\r\n@Directive({ selector: \"column\" })\r\nexport class MatrixColumnComponent<T = any> {\r\n\t@Input() field!: string;\r\n\t@Input() header!: string;\r\n\t@Input() width?: string;\r\n\t@Input() className?: string;\r\n\t@Input() headerTooltip?: string;\r\n\t@Input() headerTooltipPosition: \"top\" | \"bottom\" | \"left\" | \"right\" = \"top\";\r\n\t@Input() tooltip: string = \"\";\r\n\t@Input() tooltipPosition: \"top\" | \"bottom\" | \"left\" | \"right\" = \"top\";\r\n\t@Input() showIndex: boolean = false;\r\n\t@Input() showHeader: boolean = true;\r\n\t@Input() minWidth?: string;\r\n\t@ContentChild(TemplateRef) templateRef?: TemplateRef<any>;\r\n}\r\n@Directive({ selector: \"columnGroup\" })\r\nexport class MatrixColumnGroupComponent<T = any> {\r\n\t@Input() field!: string;\r\n\t@Input() header!: string;\r\n\t@Input() sortable: boolean = false;\r\n\t@Input() width?: string;\r\n\t@Input() className?: string;\r\n\t@Input() headerTooltip?: string = \"\";\r\n\t@Input() headerTooltipPosition: \"top\" | \"bottom\" | \"left\" | \"right\" = \"top\";\r\n\t@Input() minWidth?: string;\r\n\t@Input() colspan: number = 1;\r\n\t@Input() rowspan: number = 1;\r\n\t@Input() level: number = 0;\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { AfterContentInit, Component, ContentChildren, inject, Input, OnChanges, QueryList } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { BadgeModule } from \"primeng/badge\";\r\nimport { CheckboxModule } from \"primeng/checkbox\";\r\nimport { TableModule } from \"primeng/table\";\r\nimport { TooltipModule } from \"primeng/tooltip\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\nimport { SharedService } from \"../../services/shared.service\";\r\nimport { MatrixColumnComponent, MatrixColumnGroupComponent } from \"./column.component\";\r\nimport { ButtonModule } from \"primeng/button\";\r\n\r\n@Component({\r\n\tselector: \"intelica-matrix-table\",\r\n\tstandalone: true,\r\n\timports: [CommonModule, TableModule, BadgeModule, TooltipModule, TermPipe, CheckboxModule, FormsModule, ButtonModule],\r\n\ttemplateUrl: \"./matrix-table.component.html\",\r\n})\r\nexport class MatrixTableComponent<T> implements OnChanges, AfterContentInit {\r\n\tprivate readonly SharedService = inject(SharedService);\r\n\treadonly GlobalTermService = inject(GlobalTermService);\r\n\t@Input() ComponentId: string = \"\";\r\n\t@Input() ListData: T[] = [];\r\n\t@Input() ShowIndex: boolean = false;\r\n\t@Input() ClassName: string = \"\";\r\n\t@Input() dataKey: string = \"\";\r\n\t@Input() scrollHeight: string = \"400px\";\r\n\t@Input() scrollable: boolean = false;\r\n\t@Input() tableStyle: { [klass: string]: any } = {};\r\n\t@ContentChildren(MatrixColumnComponent) Columns!: QueryList<MatrixColumnComponent>;\r\n\t@ContentChildren(MatrixColumnGroupComponent) ColumnGroups!: QueryList<MatrixColumnGroupComponent>;\r\n\tColumnList: MatrixColumnComponent[] = [];\r\n\tColumnGroupList: MatrixColumnGroupComponent[] = [];\r\n\tMaxLevel: number = 0;\r\n\tLevels: number[] = [];\r\n\tngOnChanges(): void {}\r\n\tngAfterContentInit() {\r\n\t\tthis.ColumnList = this.Columns.toArray();\r\n\t\tthis.ColumnGroupList = this.ColumnGroups.toArray();\r\n\t\tthis.MaxLevel = Math.max(...this.ColumnGroupList.map(c => c.level)) + 1;\r\n\t\tthis.Levels = Array.from({ length: this.MaxLevel }, (_, i) => i);\r\n\t}\r\n}\r\n","<div class=\"prTable prTable--blueLeft\">\r\n\t<p-table\r\n\t\tclass=\"prTableBasic\"\r\n\t\t[ngClass]=\"ClassName\"\r\n\t\t[value]=\"ListData\"\r\n\t\tresponsiveLayout=\"scroll\"\r\n\t\t[sortOrder]=\"-1\"\r\n\t\tdataKey=\"dataKey\"\r\n\t\t[scrollable]=\"scrollable\"\r\n\t\t[scrollHeight]=\"scrollable ? scrollHeight : 'auto'\"\r\n\t\t[tableStyle]=\"tableStyle\"\r\n\t>\r\n\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t@for (level of Levels; track $index) {\r\n\r\n\t\t\t<tr>\r\n\t\t\t\t@for (col of ColumnGroupList; track $index) { @if (col.level === level) {\r\n\t\t\t\r\n\t\t\t\t<th [ngClass]=\"col.className\" [attr.colspan]=\"col.colspan\" [attr.rowspan]=\"col.rowspan\"\r\n\t\t\t\t\t[style.min-width]=\"col.minWidth\">\r\n\t\t\t\t\t<div>\r\n\t\t\t\t\t\t<span [pTooltip]=\"col.headerTooltip?.trim() ? col.headerTooltip : undefined\"\r\n\t\t\t\t\t\t\t[tooltipPosition]=\"col.headerTooltipPosition || 'top'\">\r\n\t\t\t\t\t\t\t{{ col.header }}\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</th>\r\n\t\t\t\r\n\t\t\t\t} }\r\n\t\t\t</tr>\r\n\t\t\t}\r\n\t\t\t<tr>\r\n\t\t\t\t@for (col of ColumnList; track $index) { @if(col.showHeader ){\r\n\t\t\t\t<th [class]=\"col.className\" [style.width]=\"col.width\" [style.min-width]=\"col.minWidth\">\r\n\t\t\t\t\t<div>\r\n\t\t\t\t\t\t<span [pTooltip]=\"col.headerTooltip?.trim() ? col.headerTooltip : undefined\"\r\n\t\t\t\t\t\t\t[tooltipPosition]=\"col.headerTooltipPosition || 'top'\">\r\n\t\t\t\t\t\t\t{{ col.header }}\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t</th>\r\n\t\t\t\t} }\r\n\t\t\t</tr>\r\n\t\t</ng-template>\r\n\t\t<ng-template pTemplate=\"body\" let-rowData let-rowIndex=\"rowIndex\">\r\n\t\t\t<tr>\r\n\t\t\t\t@for (col of ColumnList; track col; let i = $index) {\r\n\t\t\t\t<td [ngClass]=\"col.className\" [class.left-header]=\"i === 0\">\r\n\t\t\t\t\t@if (col.templateRef) {\r\n\t\t\t\t\t<ng-container *ngTemplateOutlet=\"col.templateRef; context: { $implicit: rowData }\"></ng-container>\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t<span class=\"text-breakWord\" [pTooltip]=\"col.tooltip\" [tooltipPosition]=\"col.tooltipPosition || 'top'\">\r\n\t\t\t\t\t\t\t{{ rowData[col.field] ?? \"-\" }}\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t}\r\n\t\t\t\t</td>\r\n\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t\t<ng-container *ngIf=\"rowData.children?.length > 0\">\r\n\t\t\t\t<tr *ngFor=\"let childRow of rowData.children\">\r\n\t\t\t\t\t<td *ngFor=\"let col of ColumnList; let i = index\" [ngClass]=\"col.className\" [class.child-cell-padding]=\"i === 0\" [class.left-header]=\"i === 0\">\r\n\t\t\t\t\t\t{{ childRow[col.field] }}\r\n\t\t\t\t\t</td>\r\n\t\t\t\t</tr>\r\n\t\t\t</ng-container>\r\n\t\t</ng-template>\r\n\t\t<ng-template #emptymessage>\r\n\t\t\t<tr>\r\n\t\t\t\t<td [attr.colspan]=\"ColumnList.length\" class=\"text-center\">\r\n\t\t\t\t\t{{ \"Nodata\" | term : GlobalTermService.languageCode }}\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t</ng-template>\r\n\t</p-table>\r\n</div>\r\n","import { ContentChild, Directive, EventEmitter, Input, Output } from \"@angular/core\";\r\n\r\n@Directive({\r\n\tselector: \"action\",\r\n})\r\nexport class ActionDirective {\r\n\t/**\r\n\t * Nombre de la acción.\r\n\t * @type {string}\r\n\t */\r\n\t@Input() name: string = \"\";\r\n\r\n\t/**\r\n\t * Indica si los botones asociados a la acción deben ocultarse.\r\n\t * @type {boolean}\r\n\t * @default false\r\n\t */\r\n\t@Input() hideButtons: boolean = false;\r\n\r\n\t/**\r\n\t * Texto que se mostrará en el botón de aplicar.\r\n\t * @type {string}\r\n\t * @default 'Apply'\r\n\t */\r\n\t@Input() textApply: string = \"Apply\";\r\n\r\n\t/**\r\n\t * Texto que se mostrará en el botón de cancelar.\r\n\t * @type {string}\r\n\t * @default 'Clear'\r\n\t */\r\n\t@Input() textCancel: string = \"Clear\";\r\n\r\n\t/**\r\n\t * Indica si detener la propagación de eventos al hacer clic en la acción.\r\n\t * @type {boolean}\r\n\t * @default false\r\n\t */\r\n\t@Input() stopPropagation: boolean = false;\r\n\r\n\t/**\r\n\t * Evento emitido cuando se aplica la acción.\r\n\t * @type {EventEmitter<any>}\r\n\t */\r\n\t@Output() onApply: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n\t/**\r\n\t * Evento emitido cuando se cancela la acción.\r\n\t * @type {EventEmitter<any>}\r\n\t */\r\n\t@Output() onCancel: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n\t/**\r\n\t * Evento emitido cuando se hace clic en la acción.\r\n\t * @type {EventEmitter<any>}\r\n\t */\r\n\t@Output() onClick: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n\t/**\r\n\t * Referencia al contenido proporcionado por la plantilla.\r\n\t * @type {any}\r\n\t */\r\n\t@ContentChild(\"template\") template!: any;\r\n\r\n\t/**\r\n\t * Indica si la acción está activa o no.\r\n\t * @type {boolean}\r\n\t * @default false\r\n\t */\r\n\tactive: boolean = false;\r\n}\r\n","import { Component, ViewChild, ElementRef, HostListener, ContentChildren, QueryList, OnInit, inject, Input } from \"@angular/core\";\r\nimport { ButtonModule } from \"primeng/button\";\r\nimport { InputGroupAddonModule } from \"primeng/inputgroupaddon\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { RippleModule } from \"primeng/ripple\";\r\nimport { ActionDirective } from \"./action.directive\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\n\r\n@Component({\r\n\tselector: \"intelica-actions-menu\",\r\n\timports: [ButtonModule, InputGroupAddonModule, CommonModule, RippleModule, TermPipe],\r\n\ttemplateUrl: \"./actions-menu.component.html\",\r\n})\r\nexport class ActionsMenuComponent implements OnInit {\r\n\treadonly GlobalTermService = inject(GlobalTermService);\r\n\t@ViewChild(\"popover\") Popover!: ElementRef;\r\n\t@ViewChild(\"menuButton\") MenuButton!: ElementRef;\r\n\t@ViewChild(\"popoverContainer\") PopoverContainer!: ElementRef;\r\n\r\n\tIsPopoverOpen: boolean = false;\r\n\tIsClickInsideDatepicker: boolean = false;\r\n\r\n\t/**\r\n\t * Indica si el menú de acciones está visible o no.\r\n\t * @type {boolean}\r\n\t * @default false\r\n\t */\r\n\tShowActionsMenu = false;\r\n\r\n\t/**\r\n\t * Indica si la sección de selección de acciones está visible o no.\r\n\t * @type {boolean}\r\n\t * @default false\r\n\t */\r\n\tShowSelectActions = false;\r\n\r\n\tconstructor(private readonly termPipe: TermPipe) {}\r\n\r\n\tngOnInit(): void {\r\n\t\t// const specificRegex = /local.*filt|filt.*local/i;\r\n\t\t// const generalRegex = /filt/i;\r\n\t\t// const specificResults = this.actions.filter(action => specificRegex.test(action.name));\r\n\t\t// if (specificResults.length === 0) {\r\n\t\t// \tconst generalResults = this.actions.filter(action => generalRegex.test(action.name));\r\n\t\t// \tgeneralResults.forEach(action => this.showTemplate(action));\r\n\t\t// } else {\r\n\t\t// \tspecificResults.forEach(action => this.showTemplate(action));\r\n\t\t// }\r\n\t}\r\n\r\n\topenPopover() {\r\n\t\tthis.IsPopoverOpen = true;\r\n\r\n\t\t// Cambia el estado de visibilidad del menú de acciones.\r\n\t\tthis.ShowActionsMenu = true;\r\n\r\n\t\t// Muestra u oculta el menú de selección de acciones.\r\n\t\tthis.ShowSelectActions = true;\r\n\r\n\r\n\t}\r\n\r\n\tclosePopover() {\r\n\t\tthis.IsPopoverOpen = false;\r\n\r\n\t\t// Cambia el estado de visibilidad del menú de acciones.\r\n\t\tthis.ShowActionsMenu = false;\r\n\r\n\t\t// Muestra u oculta el menú de selección de acciones.\r\n\t\tthis.ShowSelectActions = true;\r\n\r\n\t}\r\n\r\n\t/** Método para alternar el estado del popover */\r\n\ttogglePopover(event?: Event) {\r\n\t\tthis.IsPopoverOpen ? this.closePopover() : this.openPopover();\r\n\r\n\t\t// Desactiva todas las acciones dentro del menú.\r\n\t\tthis.actions.forEach(action => {\r\n\t\t\taction.active = false;\r\n\t\t});\r\n\t}\r\n\r\n\t@HostListener(\"mousedown\", [\"$event\"])\r\n\tonMouseDown(event: Event) {\r\n\t\tconst target = event.target as HTMLElement;\r\n\t\tif (target.closest(\".p-datepicker\") || target.closest(\".p-inputtext\") || target.closest(\".p-select-panel\") || target.closest(\".p-multiselect-panel\")) {\r\n\t\t\tthis.IsClickInsideDatepicker = true;\r\n\t\t}\r\n\t}\r\n\r\n\t@HostListener(\"window:mousedown\", [\"$event\"])\r\n\tonMouseDownOutsideBody(event: Event) {\r\n\t\tconst target = event.target as HTMLElement;\r\n\t\tif (target.closest(\".p-datepicker\") || target.closest(\".p-inputtext\") || target.closest(\".p-select-panel\") || target.closest(\".p-multiselect-panel\")) {\r\n\t\t\tthis.IsClickInsideDatepicker = true;\r\n\t\t}\r\n\t}\r\n\r\n\t@HostListener(\"mouseup\", [\"$event\"])\r\n\tonMouseUp(event: Event) {\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.IsClickInsideDatepicker = false;\r\n\t\t}, 100);\r\n\t}\r\n\r\n\t@HostListener(\"document:click\", [\"$event\"])\r\n\tcloseAll(event?: Event) {\r\n\t\tif (!event) return;\r\n\t\tconst target = event.target as HTMLElement;\r\n\r\n\t\tconst allowedClasses = [\r\n\t\t\t\"prSelect\",\r\n\t\t\t\"p-select-option-selected\",\r\n\t\t\t\"p-select-option\",\r\n\t\t\t\"p-datepicker-panel\",\r\n\t\t\t\"p-datepicker-select-month\",\r\n\t\t\t\"p-button-text\",\r\n\t\t\t\"p-datepicker-select-year\",\r\n\t\t\t\"p-datepicker-month\",\r\n\t\t\t\"p-datepicker-year\",\r\n\t\t\t\"p-checkbox-input\",\r\n\t\t\t\"p-multiselect-option\",\r\n\t\t\t\"p-multiselect-filter\",\r\n\t\t\t\"p-multiselect-empty-message\",\r\n\t\t\t\"p-inputicon\",\r\n\t\t\t\"p-tree-node-selected\",\r\n\t\t\t\"p-tree-node-content\",\r\n\t\t\t\"p-multiselect-header\",\r\n\t\t\t\"grButton--icon-close-modal\",\r\n\t\t\t\"p-overlay-mask\",\r\n\t\t\t\"p-select-clear-icon\",\r\n\t\t\t\"formRowInputClear\",\r\n\t\t\t\"icon-times\",\r\n\t\t\t\"p-select-empty-message\",\r\n\t\t\t\"p-select-list\",\r\n\t\t\t\"p-iconfield\",\r\n\t\t\t\"p-inputtext\",\r\n\t\t\t\"p-select-header\",\r\n\t\t\t\"p-overlay\",\r\n\t\t\t\"p-select-filter\",\r\n\t\t\t\"p-overlay-content\",\r\n\t\t\t\"p-select-overlay\",\r\n\t\t\t\"p-select-panel\",\r\n\t\t\t\"p-multiselect-panel\",\r\n\t\t];\r\n\t\tif (this.IsClickInsideDatepicker) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (allowedClasses.some(className => target.closest(`.${className}`))) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (this.Popover && !this.Popover.nativeElement.contains(target) && this.MenuButton && !this.MenuButton.nativeElement.contains(target)) {\r\n\t\t\tthis.closePopover();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Directiva que representa una colección de elementos hijos del tipo `ActionDirective`.\r\n\t * Se utiliza para acceder a las instancias de la directiva `ActionDirective` dentro de un componente.\r\n\t * @type {QueryList<ActionDirective>}\r\n\t */\r\n\t@ContentChildren(ActionDirective)\r\n\tactions!: QueryList<ActionDirective>;\r\n\r\n\t/**\r\n\t * Muestra la plantilla asociada a una acción si se proporciona un manejador de eventos `onClick`.\r\n\t * - Emite el evento `onClick` de la acción si está definido.\r\n\t * - Detiene la propagación del evento si la propiedad `stopPropagation` de la acción está establecida.\r\n\t * - Activa la acción.\r\n\t * - Oculta el menú de selección de acciones si se cumplen ciertas condiciones.\r\n\t *\r\n\t * @param {ActionDirective} action - La acción para la cual mostrar la plantilla.\r\n\t */\r\n\tshowTemplate(action: ActionDirective): void {\r\n\t\t// Emite el evento onClick de la acción si está definido.\r\n\t\tif (action.onClick) {\r\n\t\t\taction.onClick.emit();\r\n\t\t}\r\n\r\n\t\t// Detiene la propagación del evento si la propiedad stopPropagation de la acción está establecida.\r\n\t\tif (action.stopPropagation) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Activa la acción.\r\n\t\taction.active = true;\r\n\r\n\t\t// Oculta el menú de selección de acciones si se cumplen ciertas condiciones.\r\n\t\tif (action.active) {\r\n\t\t\t// || this.showRecordsPerPage || this.showSorting) {\r\n\t\t\tthis.ShowSelectActions = false;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Restablece el estado de una acción y muestra el menú de selección de acciones.\r\n\t * - Desactiva la acción proporcionada.\r\n\t * - Muestra el menú de acciones.\r\n\t * - Muestra el menú de selección de acciones.\r\n\t *\r\n\t * @param {ActionDirective} action - La acción que se va a restablecer.\r\n\t */\r\n\treturnSelectActions(action: ActionDirective) {\r\n\t\t// Desactiva la acción proporcionada.\r\n\t\taction.active = false;\r\n\r\n\t\t// Muestra el menú de acciones.\r\n\t\tthis.ShowActionsMenu = true;\r\n\r\n\t\t// Muestra el menú de selección de acciones.\r\n\t\tthis.ShowSelectActions = true;\r\n\t}\r\n}\r\n","<div class=\"grPopoverContainer\" #popoverContainer [ngClass]=\"{ 'backdrop-visible': IsPopoverOpen }\">\r\n\t<button #menuButton class=\"grMenuAction\" (click)=\"togglePopover($event)\" [ngClass]=\"{ 'active': IsPopoverOpen }\">\r\n\t\t<span class=\"grMenuAction__ico\"><i class=\"icon icon-filter-option\"></i></span>\r\n\t\t<span class=\"grMenuAction__txt\">{{ \"Actions\" | term : GlobalTermService.languageCode }}</span>\r\n\t</button>\r\n\t<div class=\"grPopover\" #popover [style.display]=\"IsPopoverOpen ? 'block' : 'none'\">\r\n\t\t<!-- Menú -->\r\n\t\t<div class=\"grPopoverMenu\" *ngIf=\"ShowActionsMenu\" [ngClass]=\"{ hidden: !ShowSelectActions }\">\r\n\t\t\t<div class=\"grPopoverHeader\">\r\n\t\t\t\t<h3>\r\n\t\t\t\t\t<span>{{ \"SelectAction\" | term : GlobalTermService.languageCode }}</span>\r\n\t\t\t\t</h3>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"grPopoverBody\">\r\n\t\t\t\t<button pRipple class=\"grButtonActions\" *ngFor=\"let item of actions; let $index = index\" (click)=\"showTemplate(item)\">\r\n\t\t\t\t\t<span class=\"formRowInputNumber\">{{ $index + 1 }}</span>\r\n\t\t\t\t\t<span class=\"grButtonActionName\">{{ item.name | term : GlobalTermService.languageCode }}</span>\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<!-- Sub Menú -->\r\n\t\t<div class=\"grPopoverSubMenu\" [ngClass]=\"{ hidden: !item.active }\" *ngFor=\"let item of actions\">\r\n\t\t\t<div class=\"grPopoverHeader\">\r\n\t\t\t\t<h3>\r\n\t\t\t\t\t<button class=\"backButton\" (click)=\"returnSelectActions(item)\">\r\n\t\t\t\t\t\t<i class=\"icon icon-arrow-left\"></i>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<span>{{ item.name | term : GlobalTermService.languageCode }}</span>\r\n\t\t\t\t</h3>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"grPopoverBody\">\r\n\t\t\t\t<ng-container *ngTemplateOutlet=\"item.template\"></ng-container>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n","import { Component, Input, Output, EventEmitter, inject } from \"@angular/core\";\r\nimport { FilterModel } from \"./model/filter.model\"; // Ajusta la ruta según tu proyecto\r\nimport { CommonModule, DatePipe } from \"@angular/common\";\r\nimport { TooltipModule } from \"primeng/tooltip\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\nimport { DateMode } from \"../../constants/date-mode-options.constants\";\r\n\r\n@Component({\r\n selector: \"filter-chips\",\r\n templateUrl: \"./filter-chips.component.html\",\r\n imports: [CommonModule, TooltipModule],\r\n providers: [DatePipe],\r\n})\r\nexport class FilterChipsComponent {\r\n @Input() filters: FilterModel[] = [];\r\n @Output() remove = new EventEmitter<FilterModel>();\r\n @Output() openPopUp = new EventEmitter<FilterModel>();\r\n readonly GlobalTermService = inject(GlobalTermService);\r\n readonly datePipe = inject(DatePipe);\r\n\r\n onRemove(filter: FilterModel) {\r\n this.remove.emit(filter);\r\n }\r\n\r\n onTapChip(filter: FilterModel) {\r\n this.openPopUp.emit(filter);\r\n }\r\n\r\n isBooleanTrue(value: any): boolean {\r\n return typeof value === \"boolean\" && value === true;\r\n }\r\n\r\n getDateFormat(mode: DateMode): string {\r\n switch (mode) {\r\n case \"month\":\r\n return \"M/yy\";\r\n case \"year\":\r\n return \"yy\";\r\n default:\r\n return \"d/M/yy\";\r\n }\r\n }\r\n\r\n formatDateValue(value: any, mode: string): string {\r\n const pattern = this.getDateFormat(mode as DateMode);\r\n\r\n if (Array.isArray(value) && value.length === 2) {\r\n return `${this.datePipe.transform(\r\n value[0],\r\n pattern\r\n )} - ${this.datePipe.transform(value[1], pattern)}`;\r\n }\r\n\r\n if (value) {\r\n return this.datePipe.transform(value, pattern) || \"\";\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n isDateOrDateRange(value: any): boolean {\r\n const isValidDate = (v: any): boolean => {\r\n if (typeof v !== \"string\") return false;\r\n const date = new Date(v);\r\n return !isNaN(date.getTime());\r\n };\r\n\r\n // Caso 1: Fecha simple (string)\r\n if (isValidDate(value)) {\r\n return true;\r\n }\r\n\r\n // Caso 2: Rango de fechas (array de 2 strings válidas)\r\n if (Array.isArray(value) && value.length === 2) {\r\n return value.every(isValidDate);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n sortList(list: any[] | string | null | undefined): string[] {\r\n if (!Array.isArray(list)) {\r\n return [];\r\n }\r\n const stringList = list.map((item) =>\r\n typeof item === \"string\"\r\n ? item\r\n : item?.name || item?.text || JSON.stringify(item)\r\n );\r\n const sorted = [...stringList].sort();\r\n if (sorted.length > 5) {\r\n return sorted\r\n .slice(0, 5)\r\n .map((item, index) => `${index + 1}. ${item}`)\r\n .concat(\"...\");\r\n } else {\r\n return sorted.map((item, index) => `${index + 1}. ${item}`);\r\n }\r\n }\r\n\r\n getSafeString(value: string | string[] | null | undefined): string | null {\r\n if (Array.isArray(value)) {\r\n return value.join(\", \");\r\n }\r\n return value ?? null;\r\n }\r\n}\r\n","<div class=\"d-flex gap-2 flex-wrap\">\r\n\t@for (item of filters; track $index) {\r\n\t<button\r\n\t\tclass=\"prPill\"\r\n\t\tpInputText\r\n\t\t(click)=\"onTapChip(item)\"\r\n\t\t[pTooltip]=\"item.isTooltipForm ? tooltipFormContent : item.valueName!.length > 1 ? tooltipContent : item.title ?? ''\"\r\n\t\ttooltipPosition=\"top\"\r\n\t>\r\n\t\t<!-- Templates de tooltip -->\r\n\t\t<ng-template #tooltipFormContent>\r\n\t\t\t<span>{{ item.text?.toString() }}</span>\r\n\t\t\t<br />\r\n\t\t\t<ul *ngIf=\"item.valueName!.length > 1\" class=\"tooltip-list list-unlisted text-start filterChipsList\">\r\n\t\t\t\t<li *ngFor=\"let value of item.valueName\">{{ value }}</li>\r\n\t\t\t</ul>\r\n\t\t</ng-template>\r\n\r\n\t\t<ng-template #tooltipContent>\r\n\t\t\t<ul *ngIf=\"item.valueName!.length > 1\" class=\"tooltip-list list-unlisted text-start filterChipsList\">\r\n\t\t\t\t<li *ngFor=\"let value of sortList(item.valueName)\">\r\n\t\t\t\t\t{{ value }}\r\n\t\t\t\t</li>\r\n\t\t\t</ul>\r\n\t\t</ng-template>\r\n\r\n\t\t<!-- Texto del chip -->\r\n\t\t<span class=\"prPill__value\">\r\n\t\t\t<ng-container *ngIf=\"isBooleanTrue(item.value)\">{{ item.title | slice : 0 : 15 }}{{ item.title && item.title.length > 15 ? \"...\" : \"\" }}</ng-container>\r\n\r\n\t\t\t<ng-container *ngIf=\"(!item.valueName || item.valueName.length === 0) && item.value && item.value.length > 0 && !item.dateFormat\">\r\n\t\t\t\t{{ item.text | slice : 0 : 15 }}{{ item.text && item.text.length > 15 ? \"...\" : \"\" }}\r\n\t\t\t</ng-container>\r\n\r\n\t\t\t<ng-container *ngIf=\"item.dateFormat\">\r\n\t\t\t\t{{ formatDateValue(item.value, item.dateFormat) }}\r\n\t\t\t</ng-container>\r\n\r\n\t\t\t<ng-container *ngIf=\"item.valueName?.length === 1\">{{ item.text | slice : 0 : 15 }}{{ item.text!.length > 15 ? \"...\" : \"\" }}</ng-container>\r\n\r\n\t\t\t<ng-container *ngIf=\"item.valueName!.length > 1\">{{ item.title | slice : 0 : 15 }}{{ item.title!.length > 15 ? \"...\" : \"\" }}</ng-container>\r\n\r\n\t\t\t<ng-container *ngIf=\"item.valueName!.length > 1 && !item.isTooltipForm\">({{ item.valueName?.length }})</ng-container>\r\n\t\t</span>\r\n\r\n\t\t<!-- Botón de cierre -->\r\n\t\t<i class=\"icon-close1\" (click)=\"onRemove(item); $event.stopPropagation()\"></i>\r\n\t</button>\r\n\t}\r\n</div>\r\n","export enum FilterTypeEnum {\r\n\tSelect = 0,\r\n\tText = 1,\r\n\tCheckbox = 2,\r\n\tDate = 3,\r\n\tSelectDetail = 4,\r\n\tTemplate = 5,\r\n\tTextArea = 6,\r\n\tTextRange = 7,\r\n}","import {\r\n Directive,\r\n EventEmitter,\r\n forwardRef,\r\n Injectable,\r\n Input,\r\n Output,\r\n} from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { Subject } from \"rxjs\";\r\nimport { FilterTypeEnum } from \"../../enums/filter-type.enum\";\r\nimport { FilterChangedModel } from \"../../model/filterChanged.model\";\r\nconst noop = () => {};\r\n\r\nexport const CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => FilterDirective),\r\n multi: true,\r\n};\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\n@Directive({\r\n selector: \"filter\",\r\n providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR],\r\n})\r\nexport class FilterDirective implements ControlValueAccessor {\r\n @Input() name: string = \"\";\r\n @Input() label: string = \"\";\r\n @Input() visible: boolean = true;\r\n @Input() enabled: boolean = true;\r\n @Input() parent: string = \"\";\r\n @Input() placeholder: string = \"\";\r\n @Input() title: string = \"\";\r\n @Input() filterClass: string = \"\";\r\n @Input() letterIndex: boolean = false;\r\n @Input() defaultValue: any;\r\n @Input() showClean: boolean = true;\r\n @Input() showInAppliedFilter: boolean = true;\r\n @Input() showClass: boolean = true;\r\n @Input() selectClass: any = null;\r\n @Input() confirmDateFormat: boolean = false;\r\n @Input() hasFilterActionsButton: boolean = false;\r\n @Input() visibilityRules: { child: string; allowedValues: any[] }[] = [];\r\n @Output() change: EventEmitter<FilterChangedModel> =\r\n new EventEmitter<FilterChangedModel>();\r\n\r\n private innerValue: any = \"\";\r\n\r\n children: FilterDirective[] = [];\r\n $changes: Subject<any> = new Subject<any>();\r\n type: FilterTypeEnum;\r\n index: number = -1;\r\n\r\n get value(): any {\r\n return this.innerValue;\r\n }\r\n\r\n // set accessor including call the onchange callback\r\n set value(v: any) {\r\n if (v !== this.innerValue) {\r\n this.innerValue = v;\r\n this.onChangeCallback(v);\r\n }\r\n }\r\n\r\n constructor(filterType: FilterTypeEnum) {\r\n this.type = filterType;\r\n }\r\n\r\n writeValue(value: any): void {\r\n if (value !== this.innerValue) {\r\n this.innerValue = value;\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChangeCallback = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouchedCallback = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {}\r\n\r\n onBlur() {\r\n this.onTouchedCallback();\r\n }\r\n\r\n private onTouchedCallback: () => void = noop;\r\n private onChangeCallback: (_: any) => void = noop;\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n inject,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n} from \"@angular/core\";\r\nimport { MultiSelectModule } from \"primeng/multiselect\";\r\nimport { CheckboxModule } from \"primeng/checkbox\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\nimport { CommonModule } from \"@angular/common\";\r\n\r\n@Component({\r\n selector: \"intelica-multi-select\",\r\n imports: [\r\n FormsModule,\r\n MultiSelectModule,\r\n CheckboxModule,\r\n TermPipe,\r\n CommonModule,\r\n ],\r\n templateUrl: \"./multi-select.component.html\",\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MultiSelectComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class MultiSelectComponent\r\n implements ControlValueAccessor, AfterViewInit\r\n{\r\n readonly GlobalTermService = inject(GlobalTermService);\r\n /**\r\n * @description Id\r\n * @default\t\"\"\r\n * @type {string}\r\n */\r\n @Input() id: string = \"\";\r\n\r\n /**\r\n * @description Opciones.\r\n * @example\t[{value: string, text: string}]\r\n * @type {any[]}\r\n */\r\n @Input() options: any[] = [];\r\n\r\n /**\r\n * @description Label name.\r\n * @default\t\"text\"\r\n * @type {{value: string, label: string}[]}\r\n */\r\n @Input() optionLabel: string | undefined = \"text\";\r\n\r\n /**\r\n * @description Value name.\r\n * @default\t\"value\"\r\n * @type {{value: string, label: string}[]}\r\n */\r\n @Input() optionValue: string | undefined = \"value\";\r\n\r\n /**\r\n * @description Placeholder\r\n * @default\t\"Select an item\"\r\n * @type {string}\r\n */\r\n @Input() placeholder: string = \"Select an item\";\r\n\r\n /**\r\n * @description Show filter textbox\r\n * @default\tfalse\r\n * @type {boolean}\r\n */\r\n @Input() showFilter: boolean = false;\r\n\r\n /**\r\n * @description Show All Checkbox\r\n * @default\tfalse\r\n * @type {boolean}\r\n */\r\n @Input() showAll: boolean = false;\r\n\r\n /**\r\n * @description All | Todo\r\n * @default\t\"All\"\r\n * @type {string}\r\n */\r\n @Input() allText: string = \"All\";\r\n\r\n /**\r\n * @description Number\tof selected labels to show\r\n * @default\t3\r\n * @type {number}\r\n */\r\n @Input() maxSelectedLabels: number = 1;\r\n\r\n /**\r\n * @description Append To\r\n * @default\t\"\"\r\n * @type {string}\r\n */\r\n @Input() appendTo: string = \"\";\r\n\r\n /**\r\n * @description Panel Style Class\r\n * @default\t\"\"\r\n * @type {string}\r\n */\r\n @Input() panelStyleClass: string = \"prMultiselect\";\r\n\r\n /**\r\n * @description Enable virtual scroll\r\n * @default\t\"\"\r\n * @type {boolean}\r\n */\r\n @Input() virtualScroll: boolean = false;\r\n\r\n /**\r\n * @description Enable virtual scroll\r\n * @default\t\"\"\r\n * @type {boolean}\r\n */\r\n @Input() disabled: boolean = false;\r\n\r\n /**\r\n * @description Label for the selected items\r\n * @default\t\"\"\r\n * @type {string}\r\n */\r\n @Input() selectedItemsLabel: string = \"Selected\";\r\n\r\n /**\r\n * @description Style por color text\r\n * @default\t\"\"\r\n * @type {string}\r\n */\r\n @Input() textColorClass: string = \"\";\r\n\r\n /**\r\n * @description Enable group\r\n * @default\t\"\"\r\n * @type {boolean}\r\n */\r\n @Input() group: boolean = false;\r\n\r\n /**\r\n * @description Reset filter on hide\r\n * @default\t\"\"\r\n * @type {boolean}\r\n */\r\n @Input() resetFilterOnHide: boolean = true;\r\n\r\n /**\r\n * @description Change event\r\n * @emits {string[]}\r\n * @type {EventEmitter<string[]>}\r\n */\r\n @Output(\"onChange\") onChangeEvent: EventEmitter<string[]> =\r\n new EventEmitter();\r\n @Output(\"onPanelShow\") onPanelShowEvent: EventEmitter<any> =\r\n new EventEmitter();\r\n @Output(\"onPanelHide\") onPanelHideEvent: EventEmitter<any> =\r\n new EventEmitter();\r\n\r\n checked: boolean = false;\r\n selectedOptions: string[] = [];\r\n\r\n onChangeFn: any = () => {};\r\n onTouchedFn: any = () => {};\r\n\r\n /**\r\n * @description Define custom class\r\n * @default\t\"\"\r\n * @type {boolean}\r\n */\r\n @Input() customClass: string = \"\";\r\n\r\n ngAfterViewInit(): void {\r\n if (this.options.some((option) => typeof option !== \"object\")) {\r\n this.optionValue = undefined;\r\n this.optionLabel = undefined;\r\n }\r\n }\r\n\r\n writeValue(value: string[]): void {\r\n this.selectedOptions = value || [];\r\n const totalOptionsCount = this.group\r\n ? this.options.reduce((acc, group) => acc + group.items.length, 0)\r\n : this.options.length;\r\n\r\n this.checked = this.selectedOptions.length === totalOptionsCount;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChangeFn = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouchedFn = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n /* opcional: implementar si necesitas deshabilitar el componente desde ngModel */\r\n }\r\n\r\n toggleAllSelection(event: any) {\r\n if (!event.checked) {\r\n this.selectedOptions = [];\r\n } else {\r\n if (this.group) {\r\n // Agrupadas: aplanar todos los items\r\n this.selectedOptions = this.options.flatMap((group) =>\r\n group.items.map((item: any) =>\r\n this.optionValue ? item[this.optionValue] : item\r\n )\r\n );\r\n } else {\r\n // Sin agrupar\r\n this.selectedOptions = this.options.map((option) =>\r\n this.optionValue ? option[this.optionValue] : option\r\n );\r\n }\r\n }\r\n this.checked = this.selectedOptions.length > 0;\r\n this.emitChangeEvent();\r\n }\r\n\r\n onChangeSelect(event: any) {\r\n this.checked = this.selectedOptions.length === this.options.length;\r\n this.emitChangeEvent();\r\n this.onChangeFn(this.selectedOptions);\r\n this.onTouchedFn();\r\n }\r\n\r\n emitChangeEvent() {\r\n this.onChangeEvent.emit(this.selectedOptions);\r\n this.onChangeFn(this.selectedOptions);\r\n this.onTouchedFn();\r\n }\r\n\r\n onPanelShow(event: any) {\r\n this.onPanelShowEvent.emit(event);\r\n }\r\n\r\n onPanelHide(event: any) {\r\n this.onPanelHideEvent.emit(event);\r\n }\r\n}\r\n","<p-multiSelect\r\n [class]=\"textColorClass + ' prMultiselect'\"\r\n [disabled]=\"disabled\"\r\n [options]=\"options\"\r\n [(ngModel)]=\"selectedOptions\"\r\n [optionLabel]=\"optionLabel\"\r\n [optionValue]=\"optionValue\"\r\n [placeholder]=\"placeholder\"\r\n [maxSelectedLabels]=\"maxSelectedLabels\"\r\n [filter]=\"showFilter\"\r\n [showToggleAll]=\"false\"\r\n (onChange)=\"onChangeSelect($event)\"\r\n (onPanelHide)=\"onPanelHide($event)\"\r\n (onPanelShow)=\"onPanelShow($event)\"\r\n [appendTo]=\"appendTo\"\r\n [panelStyleClass]=\"panelStyleClass\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [virtualScrollOptions]=\"{ itemSize: 25, scrollHeight: '200px' }\"\r\n selectedItemsLabel=\"{0} {{\r\n selectedItemsLabel | term : GlobalTermService.languageCode\r\n }}\"\r\n [group]=\"group\"\r\n [resetFilterOnHide]=\"resetFilterOnHide\"\r\n [ngClass]=\"customClass\"\r\n>\r\n @if(showAll){\r\n <ng-template #header>\r\n <div class=\"prMultiselect__all\">\r\n <label [for]=\"id + '-all'\">\r\n <p-checkbox\r\n [inputId]=\"id + '-all'\"\r\n [binary]=\"true\"\r\n [(ngModel)]=\"checked\"\r\n (onChange)=\"toggleAllSelection($event)\"\r\n ></p-checkbox>\r\n {{ allText | term : GlobalTermService.languageCode }}\r\n </label>\r\n </div>\r\n </ng-template>\r\n }\r\n <ng-template let-group #group *ngIf=\"group\">\r\n <div class=\"flex items-center\">\r\n <span>{{ group.label }}</span>\r\n </div>\r\n </ng-template>\r\n</p-multiSelect>\r\n","import { CommonModule } from \"@angular/common\";\r\nimport {\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n ContentChildren,\r\n EventEmitter,\r\n inject,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n SimpleChanges,\r\n TemplateRef,\r\n} from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { ButtonModule } from \"primeng/button\";\r\nimport { CheckboxModule } from \"primeng/checkbox\";\r\nimport { DatePickerModule } from \"primeng/datepicker\";\r\nimport { InputTextModule } from \"primeng/inputtext\";\r\nimport { MultiSelectModule } from \"primeng/multiselect\";\r\nimport { SelectModule } from \"primeng/select\";\r\nimport { TextareaModule } from \"primeng/textarea\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\nimport { FilterModel } from \"../../model/filter.model\";\r\nimport { FilterDirective } from \"../../directives/filters/filter.directive\";\r\nimport { FilterTypeEnum } from \"../../enums/filter-type.enum\";\r\nimport { SelectFilterDirective } from \"../../directives/filters/select-filter.directive\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { RippleModule } from \"primeng/ripple\";\r\nimport { DateMode } from \"../../constants/date-mode-options.constants\";\r\nimport { MultiSelectComponent } from \"../multi-select/multi-select.component\";\r\nimport { DateFilterDirective } from \"../../../public-api\";\r\n\r\n@Component({\r\n selector: \"intelica-filters\",\r\n imports: [\r\n CommonModule,\r\n DatePickerModule,\r\n FormsModule,\r\n TermPipe,\r\n ButtonModule,\r\n InputTextModule,\r\n CheckboxModule,\r\n SelectModule,\r\n MultiSelectModule,\r\n TextareaModule,\r\n RippleModule,\r\n MultiSelectComponent,\r\n ],\r\n templateUrl: \"./filters.component.html\",\r\n})\r\nexport class FiltersComponent implements OnInit, OnChanges, OnDestroy {\r\n readonly GlobalTermService = inject(GlobalTermService);\r\n @Input() showButtons: boolean = true;\r\n @Input() customClass: string = \"\";\r\n @Input() columns: number = 1;\r\n @Output() EmitApply: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() EmitCancel: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n // Suscripciones a eventos\r\n subscriptions: Subscription[] = [];\r\n\r\n // Objeto para almacenar términos\r\n terms: any;\r\n\r\n // Variable para mostrar u ocultar opciones de menú\r\n showMenuOptions: boolean = false;\r\n\r\n // Variable para manejar el estilo de altura de pantalla\r\n styleHeighScreen: boolean = false;\r\n\r\n // Lista de filtros aplicados\r\n _filtersApplied: FilterModel[] = [];\r\n\r\n // Clases CSS asociadas a diferentes tipos de controles\r\n radioClass = \"radioStyle\";\r\n comboClass = \"comboStyle\";\r\n ddlClass = \"ddlStyle\";\r\n ddtClass = \"ddtStyle\";\r\n dPClass = \"dPStyle\";\r\n mSClass = \"mSStyle\";\r\n\r\n // Texto descriptivo para la opción seleccionada\r\n selectDescription = \"Selected\";\r\n\r\n /**\r\n * Colección de elementos filtrados mediante la directiva FilterDirective.\r\n * Utilice @ContentChildren para obtener referencias a elementos dentro del contenido proyectado.\r\n * @type {QueryList<FilterDirective>}\r\n */\r\n @ContentChildren(FilterDirective)\r\n filterDirectives!: QueryList<FilterDirective>;\r\n\r\n // Referencia al ng-template filterActionsButton\r\n @ContentChild(\"filterActionsButton\", { static: true })\r\n filterActionsButtonTemplate!: TemplateRef<any>;\r\n\r\n /**\r\n * Colección de instancias de DropDownListComponent.\r\n * Utilice @ViewChildren para obtener referencias a componentes hijos dentro de la vista actual.\r\n * @type {QueryList<DropDownListComponent>}\r\n */\r\n // @ViewChildren(DropDownListComponent) selects!: QueryList<DropDownListComponent>;\r\n\r\n // Cadena de letras\r\n letters: string = \"abcdefghijklmnopqrstuvwxyz\";\r\n\r\n // Arreglo de filtros\r\n filters: FilterDirective[] = [];\r\n\r\n // Enumeración de tipos de filtro\r\n filterTypeEnum = FilterTypeEnum;\r\n\r\n // Índices y longitud de columnas\r\n indexArray: number[] = [];\r\n columnsLengthArray: any = [];\r\n\r\n // Idioma default para datepicker\r\n language = \"en\";\r\n\r\n //Cantidad limite para mostrar buscador en select-filter\r\n filterThreshold: number = 10;\r\n\r\n hasNoActiveClass: boolean = false;\r\n\r\n constructor(private cd: ChangeDetectorRef) {}\r\n\r\n ngOnInit() {\r\n this.columnsLengthArray = Array.from({ length: this.columns }, (_, i) => i);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n for (const propertyName in changes) {\r\n if (propertyName === \"columns\") {\r\n const CHANGE = changes[propertyName];\r\n const CURRENT = CHANGE.currentValue;\r\n\r\n this.columnsLengthArray = Array.from({ length: CURRENT }, (v, i) => i);\r\n this.cd.detectChanges();\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach((subscription) => {\r\n subscription.unsubscribe();\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.setColumnSize();\r\n this.filters = this.filterDirectives.toArray();\r\n\r\n this.filters.forEach((filter) => {\r\n if (filter.parent) {\r\n const parent = this.filters.find((f) => f.name === filter.parent);\r\n if (parent) {\r\n parent.children.push(filter);\r\n }\r\n }\r\n });\r\n\r\n this.subscriptions = [];\r\n this.filterDirectives.forEach((filter) => {\r\n if (\r\n (filter.value === undefined ||\r\n filter.value === null ||\r\n filter.value === \"\") &&\r\n filter.defaultValue != null\r\n ) {\r\n filter.value = filter.defaultValue;\r\n if (filter.type === FilterTypeEnum.Select) {\r\n filter.value = null;\r\n }\r\n this.toggleChildrenVisibility(filter);\r\n }\r\n });\r\n\r\n this.cd.detectChanges();\r\n }\r\n\r\n getOptionCount(item: any): number {\r\n if (!item.options || !Array.isArray(item.options)) return 0;\r\n\r\n if (item.group) {\r\n return item.options.reduce((total: number, group: any) => {\r\n return total + (Array.isArray(group.items) ? group.items.length : 0);\r\n }, 0);\r\n } else {\r\n return item.options.length;\r\n }\r\n }\r\n\r\n onChange($event: any, filter: FilterDirective): void {\r\n const value = $event?.value !== undefined ? $event.value : $event;\r\n filter.value = value;\r\n this.toggleChildrenVisibility(filter);\r\n if (filter.change) {\r\n filter.change.emit({ current: filter, all: this.filterDirectives });\r\n }\r\n }\r\n\r\n onChangeCheck($event: any, filter: FilterDirective): void {\r\n filter.value = $event.checked;\r\n if (filter.change) {\r\n filter.change.emit({ current: filter, all: this.filterDirectives });\r\n }\r\n }\r\n\r\n onChangeMultiple($event: any, filter: FilterDirective): void {\r\n const value = $event?.value !== undefined ? $event.value : $event;\r\n filter.value = value;\r\n this.toggleChildrenVisibility(filter);\r\n if (filter.change) {\r\n filter.change.emit({ current: filter, all: this.filterDirectives });\r\n }\r\n }\r\n\r\n isUnselected(item: FilterDirective): boolean {\r\n const v = item.value;\r\n const d = item.defaultValue;\r\n\r\n if (v === null || v === undefined) return true;\r\n\r\n if (item.type === this.filterTypeEnum.Select) {\r\n if (Array.isArray(v)) {\r\n const defArr = Array.isArray(d) ? d : [];\r\n return v.length === 0 || this.arraysAreEqual(v, defArr);\r\n }\r\n return v === d;\r\n }\r\n\r\n if (\r\n item.type === this.filterTypeEnum.Text ||\r\n item.type === this.filterTypeEnum.TextArea\r\n ) {\r\n return typeof v === \"string\" ? v.trim() === \"\" : v === d;\r\n }\r\n\r\n if (item.type === this.filterTypeEnum.Date) {\r\n if (Array.isArray(v)) {\r\n const defArr = Array.isArray(d) ? d : [];\r\n const sameLen = v.length === defArr.length;\r\n const sameDates =\r\n sameLen &&\r\n v.every(\r\n (vx, i) =>\r\n vx instanceof Date &&\r\n defArr[i] instanceof Date &&\r\n vx.getTime() === (defArr[i] as Date).getTime()\r\n );\r\n return v.every((x) => !x) || sameDates;\r\n }\r\n if (v instanceof Date && d instanceof Date)\r\n return v.getTime() === d.getTime();\r\n return !v;\r\n }\r\n return v === d || !v;\r\n }\r\n\r\n private toggleChildrenVisibility(filter: FilterDirective): void {\r\n if (!filter.visibilityRules?.length) return;\r\n\r\n const allFilters = this.filterDirectives.toArray();\r\n\r\n filter.visibilityRules.forEach((rule) => {\r\n const child = allFilters.find((f) => f.name === rule.child);\r\n if (child) {\r\n const value = filter.value;\r\n const shouldShow = Array.isArray(value)\r\n ? value.some((v) => rule.allowedValues.includes(v))\r\n : rule.allowedValues.includes(value);\r\n\r\n child.visible = shouldShow;\r\n child.$changes.next({ visible: { currentValue: shouldShow } });\r\n }\r\n });\r\n }\r\n\r\n onKeyUp($event: any, filter: FilterDirective) {\r\n if (filter.change)\r\n filter.change.emit({ current: filter, all: this.filterDirectives });\r\n }\r\n\r\n cleanValue(filter: FilterDirective) {\r\n // Limpiar valor del filtro actual\r\n if (filter.defaultValue !== undefined && filter.defaultValue !== null) {\r\n filter.value = filter.defaultValue;\r\n } else {\r\n switch (typeof filter.value) {\r\n case \"string\":\r\n if (filter.type === FilterTypeEnum.Select) {\r\n filter.value = null;\r\n } else {\r\n filter.value = \"\";\r\n }\r\n break;\r\n case \"boolean\":\r\n filter.value = false;\r\n break;\r\n default:\r\n if (Array.isArray(filter.value)) {\r\n filter.value = [];\r\n } else {\r\n filter.value = null;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n // Si es padre, limpiar hijos\r\n if (!filter.parent) {\r\n const children = this.filterDirectives.filter(\r\n (f) => f.parent === filter.name\r\n );\r\n const shouldHideChildren = !(\r\n filter.defaultValue !== undefined && filter.defaultValue !== null\r\n ); // solo ocultar si el padre NO tiene defaultValue\r\n\r\n children.forEach((child) => {\r\n if (child.defaultValue !== undefined && child.defaultValue !== null) {\r\n child.value = child.defaultValue;\r\n } else {\r\n switch (typeof child.value) {\r\n case \"string\":\r\n child.value = \"\";\r\n break;\r\n case \"boolean\":\r\n child.value = false;\r\n break;\r\n default:\r\n if (Array.isArray(child.value)) {\r\n child.value = [];\r\n } else {\r\n child.value = null;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n if (shouldHideChildren) {\r\n child.visible = false;\r\n }\r\n\r\n if (child.change) {\r\n child.change.emit({\r\n current: child,\r\n all: this.filterDirectives,\r\n });\r\n }\r\n });\r\n }\r\n\r\n const index = this._filtersApplied.findIndex((x) => x.name === filter.name);\r\n if (index !== -1) this._filtersApplied.splice(index, 1);\r\n\r\n if (filter.change) {\r\n filter.change.emit({ current: filter, all: this.filterDirectives });\r\n }\r\n\r\n this.cd.detectChanges();\r\n }\r\n\r\n /**\r\n * Construye y actualiza la lista de filtros aplicados con la información proporcionada por la directiva de filtro.\r\n * @param {FilterDirective} filter - La directiva de filtro que proporciona la información.\r\n * @returns {void}\r\n */\r\n builderFiltersApplied(filter: FilterDirective): void {\r\n if (!filter.showInAppliedFilter) return;\r\n\r\n let value = filter.value;\r\n let text = filter.value;\r\n let valueName: any = [];\r\n let dateFormat: any = \"\";\r\n\r\n if (filter.type === FilterTypeEnum.Select) {\r\n const selectFilter = filter as SelectFilterDirective;\r\n\r\n if (selectFilter.multiple) {\r\n text = \"\";\r\n filter.value.forEach((f: any) => {\r\n let filterSelect = selectFilter.options.filter(\r\n (x) => x[selectFilter.optionValue] === f\r\n );\r\n if (filterSelect.length)\r\n valueName = [\r\n ...valueName,\r\n filterSelect[0][selectFilter.optionLabel],\r\n ];\r\n if (filterSelect.length > 0)\r\n text = text + filterSelect[0][selectFilter.optionLabel] + \"-\";\r\n });\r\n text = text.slice(0, -1);\r\n } else {\r\n let filterSelect = selectFilter.options.filter(\r\n (x) => x[selectFilter.optionValue] === filter.value\r\n );\r\n if (filterSelect.length > 0)\r\n text = filterSelect[0][selectFilter.optionLabel];\r\n }\r\n }\r\n\r\n let filterApplied = this._filtersApplied.filter(\r\n (x) => x.name === filter.name\r\n )[0] as any;\r\n\r\n if (!filterApplied) {\r\n if (filter.type === FilterTypeEnum.Date) {\r\n const dateFilter = filter as DateFilterDirective;\r\n this._filtersApplied.push({\r\n name: filter.name,\r\n value: value,\r\n text: text,\r\n title: filter.title,\r\n valueName: valueName,\r\n dateFormat: dateFilter.dateMode,\r\n });\r\n } else {\r\n this._filtersApplied.push({\r\n name: filter.name,\r\n value: value,\r\n text: text,\r\n title: filter.title,\r\n valueName: valueName,\r\n });\r\n }\r\n } else {\r\n filterApplied.text = text;\r\n filterApplied.value = value;\r\n }\r\n }\r\n\r\n /**\r\n * Obtiene el índice de un filtro en el contexto de todos los filtros visibles, proporcionando una numeración o letras.\r\n * @param {FilterDirective} filter - La directiva de filtro para la cual se obtendrá el índice.\r\n * @param {FilterDirective} [parentFilter] - La directiva de filtro padre, si existe, en el caso de filtros anidados.\r\n * @returns {string} - El índice del filtro en formato de numeración o letras.\r\n */\r\n getIndex(filter: FilterDirective, parentFilter?: FilterDirective): string {\r\n const filters = [\r\n ...this.filterDirectives.filter((x) => !x.parent && x.visible),\r\n ];\r\n\r\n // Verifica si el filtro está en la lista principal de filtros visibles\r\n if (filters.indexOf(filter) > -1) {\r\n // Retorna el índice en formato de letras si está definido, de lo contrario, utiliza la numeración\r\n if (filter.letterIndex) return this.letters[filters.indexOf(filter)];\r\n return (filters.indexOf(filter) + 1).toString();\r\n }\r\n\r\n // Si hay un filtro padre proporcionado\r\n if (parentFilter) {\r\n const children = [\r\n ...this.filterDirectives.filter(\r\n (x) => x.parent === parentFilter?.name && x.visible\r\n ),\r\n ];\r\n let index: string = \"\";\r\n\r\n // Concatena el índice del filtro padre en formato de letras o numeración\r\n if (parentFilter.letterIndex)\r\n index += this.letters[filters.indexOf(parentFilter)];\r\n else index += (filters.indexOf(parentFilter) + 1).toString();\r\n\r\n // Concatena el índice del filtro actual en formato de letras o numeración\r\n if (filter.letterIndex)\r\n index += \".\" + this.letters[children.indexOf(filter)];\r\n else index += \".\" + (children.indexOf(filter) + 1).toString();\r\n\r\n return index;\r\n }\r\n\r\n // Retorna 'ERROR' si no se cumple ninguna de las condiciones anteriores\r\n return \"ERROR\";\r\n }\r\n\r\n /**\r\n * Maneja el evento de hacer clic en el botón \"Aplicar\" para aplicar los filtros seleccionados.\r\n * Limpia la lista de filtros aplicados y construye la lista nuevamente con los valores actuales de los filtros.\r\n * Luego, emite el evento `EmitApply` con la lista de filtros aplicados.\r\n * @returns {void}\r\n */\r\n clickApply(): void {\r\n // Limpia la lista de filtros aplicados\r\n this._filtersApplied = [];\r\n // Itera sobre todas las directivas de filtro\r\n this.filterDirectives.forEach((filterDirective) => {\r\n if (this.validateFilter(filterDirective)) {\r\n // Verifica si el tipo de filtro es de texto\r\n if (filterDirective.type === FilterTypeEnum.Text) {\r\n // Comprueba si el valor de texto no está vacío y agrega el filtro aplicado\r\n if (\r\n filterDirective.value !== undefined &&\r\n filterDirective.value !== null &&\r\n filterDirective.value.trim() !== \"\"\r\n ) {\r\n this.builderFiltersApplied(filterDirective);\r\n }\r\n } else {\r\n // Si el filtro requiere confirmación de formato de fecha, convierte el valor a un objeto de fecha\r\n if (filterDirective.confirmDateFormat) {\r\n const parsedDate = new Date(filterDirective.value);\r\n filterDirective.value = this.isValidDate(parsedDate)\r\n ? parsedDate\r\n : null;\r\n }\r\n\r\n // Comprueba si el valor del filtro es válido y no está vacío, luego agrega el filtro aplicado\r\n if (\r\n filterDirective.value !== undefined &&\r\n filterDirective.value !== null &&\r\n (this.validStringValue(\r\n filterDirective.value,\r\n filterDirective.defaultValue\r\n ) ||\r\n filterDirective.value > -1 ||\r\n Array.isArray(filterDirective.value) ||\r\n this.isValidDate(filterDirective.value)) &&\r\n filterDirective.value.toString().length > 0\r\n ) {\r\n this.builderFiltersApplied(filterDirective);\r\n }\r\n }\r\n }\r\n });\r\n\r\n this.EmitApply.emit(this._filtersApplied);\r\n }\r\n\r\n private isValidDate(value: any): boolean {\r\n return value instanceof Date && !isNaN(value.getTime());\r\n }\r\n\r\n validateFilter(filter: FilterDirective): boolean {\r\n return filter.value !== undefined && filter.value !== null;\r\n }\r\n\r\n validStringValue(value: any, defaultValue: any): boolean {\r\n return (\r\n typeof (value == \"string\" || value === \"Object\") && value != defaultValue\r\n );\r\n }\r\n\r\n clickCancel(): void {\r\n this.filterDirectives.forEach((filter) => {\r\n // Restaurar valor por default o limpiar\r\n if (filter.defaultValue !== undefined && filter.defaultValue !== null) {\r\n filter.value = filter.defaultValue;\r\n } else {\r\n switch (typeof filter.value) {\r\n case \"string\":\r\n filter.value = \"\";\r\n break;\r\n case \"boolean\":\r\n filter.value = false;\r\n break;\r\n case \"object\":\r\n if (Array.isArray(filter.value)) {\r\n filter.value = [];\r\n } else {\r\n filter.value = null;\r\n }\r\n break;\r\n default:\r\n filter.value = null;\r\n break;\r\n }\r\n }\r\n\r\n // Ocultar hijos si su padre no tiene defaultValue\r\n if (filter.parent) {\r\n const parent = this.filterDirectives.find(\r\n (f) => f.name === filter.parent\r\n );\r\n const parentHasDefault =\r\n parent?.defaultValue !== undefined && parent?.defaultValue !== null;\r\n\r\n if (!parentHasDefault) {\r\n filter.visible = false;\r\n }\r\n }\r\n\r\n if (filter.change) {\r\n filter.change.emit({ current: filter, all: this.filterDirectives });\r\n }\r\n });\r\n\r\n this._filtersApplied = [];\r\n\r\n this.EmitCancel.emit(this.filterDirectives);\r\n\r\n this.cd.detectChanges();\r\n }\r\n\r\n /**\r\n * Evalúa si el valor actual del filtro es diferente al valor predeterminado, considerando el tipo de filtro.\r\n * @param {FilterDirective} filter - La directiva de filtro a evaluar.\r\n * @returns {boolean} - `true` si el valor actual es diferente al valor predeterminado, `false` de lo contrario.\r\n */\r\n evaluatecleanvalue(filter: FilterDirective): boolean {\r\n let isContinue = filter.value != filter.defaultValue;\r\n\r\n // Si el tipo de filtro es de fecha y el valor predeterminado es un objeto de fecha, compara las fechas en milisegundos\r\n if (\r\n filter.type === FilterTypeEnum.Date &&\r\n typeof filter.defaultValue === \"object\" &&\r\n filter.defaultValue != null\r\n ) {\r\n isContinue =\r\n (filter.value as Date).getTime() !=\r\n (filter.defaultValue as Date).getTime();\r\n }\r\n\r\n // Si el tipo de filtro es SelectDetail, compara los primeros elementos de los arreglos\r\n if (filter.type === FilterTypeEnum.SelectDetail) {\r\n isContinue = filter.value[0] != filter.defaultValue[0];\r\n }\r\n\r\n return isContinue;\r\n }\r\n\r\n /**\r\n * Evalúa si el valor actual del filtro de texto es diferente al valor predeterminado y cumple con ciertas condiciones.\r\n * @param {FilterDirective} filter - La directiva de filtro de texto a evaluar.\r\n * @returns {boolean} - `true` si el valor actual cumple con las condiciones para ser diferente al valor predeterminado, `false` de lo contrario.\r\n */\r\n evaluatecleanvaluetext(filter: FilterDirective): boolean {\r\n let isContinue =\r\n filter.value != null &&\r\n filter.value != 0 &&\r\n filter.value != -1 &&\r\n filter.value != filter.defaultValue &&\r\n filter.showClass;\r\n\r\n if (filter.defaultValue) {\r\n isContinue = filter.value != null && filter.value != filter.defaultValue;\r\n }\r\n\r\n // Si el tipo de filtro es de fecha y el valor predeterminado es un objeto de fecha, compara las fechas en milisegundos\r\n if (\r\n filter.value != null &&\r\n filter.type === FilterTypeEnum.Date &&\r\n typeof filter.defaultValue === \"object\" &&\r\n filter.defaultValue != null\r\n ) {\r\n isContinue =\r\n (filter.value as Date).getTime() !=\r\n (filter.defaultValue as Date).getTime();\r\n }\r\n\r\n if (filter.type === FilterTypeEnum.Select) {\r\n if (Array.isArray(filter.value) && Array.isArray(filter.defaultValue)) {\r\n isContinue = !this.arraysAreEqual(filter.value, filter.defaultValue);\r\n } else {\r\n isContinue = filter.value != filter.defaultValue;\r\n }\r\n }\r\n return isContinue;\r\n }\r\n\r\n private arraysAreEqual(arr1: any[], arr2: any[]): boolean {\r\n if (arr1.length !== arr2.length) return false;\r\n return arr1.every((val, index) => val === arr2[index]);\r\n }\r\n\r\n hasValue(item: FilterDirective): boolean {\r\n const { value, type } = item;\r\n\r\n let has = false;\r\n\r\n if (type === this.filterTypeEnum.Select && Array.isArray(value)) {\r\n has = value.length > 0;\r\n } else if (\r\n type === this.filterTypeEnum.Text ||\r\n type === this.filterTypeEnum.TextArea\r\n ) {\r\n has = !!value && value.trim() !== \"\";\r\n } else if (type === this.filterTypeEnum.Date && Array.isArray(value)) {\r\n has = value.some((v) => !!v);\r\n } else {\r\n has = !!value;\r\n }\r\n\r\n if (has && this.equalsDefault(item)) {\r\n return false;\r\n }\r\n\r\n return has;\r\n }\r\n\r\n private equalsDefault(item: FilterDirective): boolean {\r\n const { value, defaultValue, type } = item;\r\n\r\n if (defaultValue === undefined || defaultValue === null) {\r\n return false;\r\n }\r\n\r\n if (\r\n type === this.filterTypeEnum.Select &&\r\n Array.isArray(value) &&\r\n Array.isArray(defaultValue)\r\n ) {\r\n return (\r\n value.length === defaultValue.length &&\r\n value.every((v, i) => v === defaultValue[i])\r\n );\r\n }\r\n\r\n if (\r\n type === this.filterTypeEnum.Date &&\r\n Array.isArray(value) &&\r\n Array.isArray(defaultValue)\r\n ) {\r\n return (\r\n value.length === defaultValue.length &&\r\n value.every(\r\n (v, i) =>\r\n v instanceof Date &&\r\n defaultValue[i] instanceof Date &&\r\n v.getTime() === (defaultValue[i] as Date).getTime()\r\n )\r\n );\r\n }\r\n\r\n if (\r\n type === this.filterTypeEnum.Date &&\r\n value instanceof Date &&\r\n defaultValue instanceof Date\r\n ) {\r\n return value.getTime() === defaultValue.getTime();\r\n }\r\n\r\n return value === defaultValue;\r\n }\r\n\r\n getDateView(mode: DateMode): \"date\" | \"month\" | \"year\" {\r\n switch (mode) {\r\n case \"month\":\r\n return \"month\";\r\n case \"year\":\r\n return \"year\";\r\n default:\r\n return \"date\";\r\n }\r\n }\r\n\r\n getDateFormat(mode: DateMode): string {\r\n switch (mode) {\r\n case \"month\":\r\n return \"m/y\";\r\n case \"year\":\r\n return \"y\";\r\n default:\r\n return \"d/m/y\";\r\n }\r\n }\r\n\r\n getDateFormatPlaceholder(mode: DateMode): string {\r\n switch (mode) {\r\n case \"month\":\r\n return \"m/yy\";\r\n case \"year\":\r\n return \"yy\";\r\n default:\r\n return \"d/m/yy\";\r\n }\r\n }\r\n\r\n setColumnSize(): string {\r\n let response = \"col-md-6\";\r\n\r\n if (this.filterDirectives) {\r\n const visibleParents = this.filterDirectives.filter(\r\n (x) => x.visible && !x.parent\r\n );\r\n const columnBreak = Math.ceil(visibleParents.length / this.columns);\r\n\r\n for (const ind of this.columnsLengthArray) {\r\n const pageNumber = ind + 1;\r\n const parentsInCol = visibleParents.slice(\r\n (pageNumber - 1) * columnBreak,\r\n pageNumber * columnBreak\r\n );\r\n\r\n for (const parent of parentsInCol) {\r\n parent.index = ind;\r\n\r\n const children = this.filterDirectives.filter(\r\n (x) => x.visible && x.parent === parent.name\r\n );\r\n for (const child of children) {\r\n child.index = ind;\r\n }\r\n }\r\n }\r\n }\r\n\r\n switch (this.columns) {\r\n case 1:\r\n response = \"col-md-12\";\r\n break;\r\n case 2:\r\n response = \"col-md-6\";\r\n break;\r\n case 3:\r\n response = \"col-md-4\";\r\n break;\r\n case 4:\r\n response = \"col-md-3\";\r\n break;\r\n case 6:\r\n response = \"col-md-2\";\r\n break;\r\n default:\r\n response = \"col-md-6\";\r\n break;\r\n }\r\n\r\n return response;\r\n }\r\n}\r\n","<div\r\n class=\"container overflow-hidden\"\r\n [ngStyle]=\"{ 'min-width': 313 * columns + 'px' }\"\r\n>\r\n <div class=\"row gy-3 filtersAnalytics\">\r\n @for (colIndex of columnsLengthArray; track colIndex) {\r\n <div class=\"inputRowGap\" [ngClass]=\"setColumnSize()\">\r\n @for (filter of filterDirectives; track filter) { @if (filter.visible &&\r\n !filter.parent && filter.index == colIndex) {\r\n <div class=\"mb-3\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n template;\r\n context: { item: filter, index: getIndex(filter) }\r\n \"\r\n ></ng-container>\r\n </div>\r\n\r\n @for (child of filterDirectives; track child) { @if (child.visible &&\r\n child.parent === filter.name && child.index == colIndex) {\r\n <div class=\"mb-3\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n template;\r\n context: { item: child, index: getIndex(child, filter) }\r\n \"\r\n ></ng-container>\r\n </div>\r\n } } } }\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n\r\n@if (showButtons) {\r\n<div class=\"btnBox btnBox--center mt-4\">\r\n <button\r\n pRipple\r\n class=\"grButton grButton--primary applyAnalytics\"\r\n (click)=\"clickApply()\"\r\n >\r\n <span>{{ \"Apply\" | term : GlobalTermService.languageCode }}</span>\r\n </button>\r\n <button\r\n pRipple\r\n class=\"grButton grButton--secondary cleanAnalytics\"\r\n (click)=\"clickCancel()\"\r\n >\r\n <span>{{ \"Clear\" | term : GlobalTermService.languageCode }}</span>\r\n </button>\r\n</div>\r\n}\r\n\r\n<!-- Template general -->\r\n<ng-template #template let-item=\"item\" let-index=\"index\">\r\n @if (item.visible) {\r\n <div\r\n class=\"formRowInput {{ item.filterClass }}\"\r\n [ngClass]=\"{ required: item.required }\"\r\n >\r\n @if (item.label && item.label.length > 0) {\r\n <div class=\"formRowInputLeft\">\r\n <div class=\"formRowInputNumber\">\r\n <span>{{ index }}</span>\r\n </div>\r\n <label [for]=\"item.name\">\r\n <span>{{ item.label }}</span>\r\n </label>\r\n </div>\r\n }\r\n <div class=\"formRowInputWrap align-items-center\">\r\n @if (item.type === filterTypeEnum.Select) {\r\n <ng-container\r\n *ngTemplateOutlet=\"select; context: { item: item, index: index }\"\r\n ></ng-container>\r\n }\r\n <!---->\r\n @if (item.type === filterTypeEnum.Text) {\r\n <ng-container\r\n *ngTemplateOutlet=\"text; context: { item: item, index: index }\"\r\n ></ng-container>\r\n }\r\n <!---->\r\n @if (item.type === filterTypeEnum.Checkbox) {\r\n <ng-container\r\n *ngTemplateOutlet=\"checkbox; context: { item: item, index: index }\"\r\n ></ng-container>\r\n }\r\n <!---->\r\n @if (item.type === filterTypeEnum.Date) {\r\n <ng-container\r\n *ngTemplateOutlet=\"date; context: { item: item, index: index }\"\r\n ></ng-container>\r\n }\r\n <!---->\r\n @if (item.type === filterTypeEnum.Template) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n template_filter;\r\n context: { item: item, index: index }\r\n \"\r\n ></ng-container>\r\n }\r\n <!---->\r\n @if (item.type === filterTypeEnum.TextArea) {\r\n <ng-container\r\n *ngTemplateOutlet=\"text_area; context: { item: item, index: index }\"\r\n ></ng-container>\r\n } @if (filterActionsButtonTemplate && item.hasFilterActionsButton) {\r\n <ng-container\r\n *ngTemplateOutlet=\"filterActionsButtonTemplate\"\r\n ></ng-container>\r\n }\r\n </div>\r\n @if (item.showClean && hasValue(item)) {\r\n <button class=\"desactive formRowInputClear\" (click)=\"cleanValue(item)\">\r\n <i class=\"icon-times\"></i>\r\n </button>\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n\r\n<!-- Tipos de filtros -->\r\n<ng-template #select let-item=\"item\" let-index=\"index\">\r\n @if (item.multiple) {\r\n <intelica-multi-select\r\n [placeholder]=\"item.placeholder\"\r\n [options]=\"item.options\"\r\n [showFilter]=\"getOptionCount(item) > filterThreshold\"\r\n [resetFilterOnHide]=\"item.resetFilterOnHide\"\r\n [showAll]=\"item.showAll\"\r\n [optionLabel]=\"item.optionLabel\"\r\n [optionValue]=\"item.optionValue\"\r\n [disabled]=\"!item.enabled\"\r\n [(ngModel)]=\"item.value\"\r\n (onChange)=\"onChangeMultiple($event, item)\"\r\n [appendTo]=\"item.appendTo\"\r\n [panelStyleClass]=\"item.panelStyleClass\"\r\n [allText]=\"item.allText\"\r\n [maxSelectedLabels]=\"item.maxSelectedLabels\"\r\n [virtualScroll]=\"item.virtualScroll\"\r\n [selectedItemsLabel]=\"item.selectedItemsLabel\"\r\n [group]=\"item.group\"\r\n [customClass]=\"isUnselected(item) ? ' is-unselected' : ''\"\r\n [class]=\"'fullWidth'\"\r\n ></intelica-multi-select>\r\n } @else {\r\n <p-select\r\n [options]=\"item.options\"\r\n [(ngModel)]=\"item.value\"\r\n [optionLabel]=\"item.optionLabel\"\r\n [optionValue]=\"item.optionValue\"\r\n [placeholder]=\"item.placeholder\"\r\n [disabled]=\"!item.enabled\"\r\n (onChange)=\"onChange($event, item)\"\r\n [filter]=\"getOptionCount(item) > filterThreshold\"\r\n [resetFilterOnHide]=\"item.resetFilterOnHide\"\r\n [appendTo]=\"item.appendTo\"\r\n [panelStyleClass]=\"item.panelStyleClass\"\r\n [virtualScroll]=\"item.virtualScroll\"\r\n [virtualScrollItemSize]=\"25\"\r\n [group]=\"item.group\"\r\n [ngClass]=\"{ prSelect: true, 'is-unselected': isUnselected(item) }\"\r\n appendTo=\"body\"\r\n >\r\n <ng-template let-group #group *ngIf=\"item.group\">\r\n <div class=\"flex items-center\">\r\n <span>{{ group.label }}</span>\r\n </div>\r\n </ng-template>\r\n </p-select>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #text let-item=\"item\" let-index=\"index\">\r\n <input\r\n pInputText\r\n class=\"prInputText\"\r\n type=\"text\"\r\n [disabled]=\"!item.enabled\"\r\n [(ngModel)]=\"item.value\"\r\n [placeholder]=\"item.placeholder\"\r\n (keyup)=\"onKeyUp($event, item)\"\r\n [maxlength]=\"item.maxlength\"\r\n />\r\n</ng-template>\r\n\r\n<ng-template #checkbox let-item=\"item\" let-index=\"index\">\r\n <p-checkbox\r\n class=\"prCheckbox\"\r\n [(ngModel)]=\"item.value\"\r\n [binary]=\"true\"\r\n [disabled]=\"!item.enabled\"\r\n (onChange)=\"onChangeCheck($event, item)\"\r\n ></p-checkbox>\r\n</ng-template>\r\n\r\n<ng-template #date let-item=\"item\" let-index=\"index\">\r\n <p-datepicker\r\n [(ngModel)]=\"item.value\"\r\n [selectionMode]=\"item.range ? 'range' : 'single'\"\r\n [disabled]=\"!item.enabled\"\r\n [iconDisplay]=\"'input'\"\r\n [showIcon]=\"true\"\r\n (ngModelChange)=\"onChange($event, item)\"\r\n [view]=\"getDateView(item.dateMode)\"\r\n [dateFormat]=\"getDateFormat(item.dateMode)\"\r\n class=\"prDatePicker\"\r\n appendTo=\"body\"\r\n panelStyleClass=\"prDatePicker\"\r\n [placeholder]=\"getDateFormatPlaceholder(item.dateMode)\"\r\n [readonlyInput]=\"item.isReadOnly\"\r\n [minDate]=\"item.min\"\r\n [maxDate]=\"item.max\"\r\n ></p-datepicker>\r\n</ng-template>\r\n\r\n<ng-template #template_filter let-item=\"item\" let-index=\"index\">\r\n <ng-container *ngTemplateOutlet=\"item.content\"></ng-container>\r\n</ng-template>\r\n\r\n<ng-template #text_area let-item=\"item\" let-index=\"index\">\r\n <textarea\r\n pTextarea\r\n class=\"prInputText\"\r\n [disabled]=\"!item.enabled\"\r\n [(ngModel)]=\"item.value\"\r\n [placeholder]=\"item.placeholder\"\r\n (keyup)=\"onKeyUp($event, item)\"\r\n ></textarea>\r\n</ng-template>\r\n","import {\r\n Component,\r\n ContentChild,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n TemplateRef,\r\n} from \"@angular/core\";\r\nimport { Dialog } from \"primeng/dialog\";\r\nimport { ButtonModule } from \"primeng/button\";\r\nimport { CommonModule } from \"@angular/common\";\r\n\r\n@Component({\r\n selector: \"intelica-modal-dialog\",\r\n imports: [Dialog, ButtonModule, CommonModule],\r\n templateUrl: \"./modal-dialog.component.html\",\r\n})\r\nexport class ModalDialogComponent {\r\n /**\r\n * Título del cuadro de diálogo.\r\n * @type {string}\r\n */\r\n @Input() Title: string = \"\";\r\n\r\n /**\r\n * Tamaño del cuadro de diálogo.\r\n * @type {string}\r\n */\r\n @Input() Size: string = \"lg\";\r\n\r\n /**\r\n * Controlar el arrastre del cuadro de diálogo.\r\n * @type {boolean}\r\n */\r\n @Input() Draggable: boolean = false;\r\n\r\n /**\r\n * Controlar el cierre del cuadro de diálogo.\r\n * @type {boolean}\r\n */\r\n @Input() DisableMaskClose: boolean = false;\r\n\r\n /**\r\n * Evento emitido al cerrar el cuadro de diálogo.\r\n * @type {EventEmitter<boolean>}\r\n */\r\n @Output() EmmitCloseModal = new EventEmitter<boolean>();\r\n\r\n /**\r\n * Captura la plantilla del contenido.\r\n * @type {TemplateRef<any>}\r\n */\r\n @ContentChild(\"modalContent\") modalContentTemplate!: TemplateRef<any>;\r\n\r\n /**\r\n * Visibilidad del cuadro de diálogo.\r\n * @type {string}\r\n */\r\n Visible: boolean = false;\r\n\r\n public showDialog() {\r\n this.Visible = true;\r\n }\r\n\r\n public closeDialog() {\r\n this.Visible = false;\r\n this.EmmitCloseModal.emit(false);\r\n }\r\n}\r\n","<p-dialog\r\n class=\"prDialog prDialog--{{ Size }}\"\r\n [modal]=\"true\"\r\n [(visible)]=\"Visible\"\r\n [draggable]=\"Draggable\"\r\n [dismissableMask]=\"!DisableMaskClose\"\r\n (onHide)=\"closeDialog()\"\r\n>\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"custom-header\">\r\n <h2>\r\n <ng-content select=\"[titleHeaderMenu]\"></ng-content>\r\n </h2>\r\n <button class=\"grButton--icon-close-modal\" (click)=\"closeDialog()\">\r\n <i class=\"icon-close1\"></i>\r\n </button>\r\n </div>\r\n </ng-template>\r\n <div class=\"prDialog__content\">\r\n <ng-container>\r\n <ng-container *ngTemplateOutlet=\"modalContentTemplate\"></ng-container>\r\n </ng-container>\r\n </div>\r\n</p-dialog>\r\n","import { ContentChild, Directive, EventEmitter, Input, Output } from \"@angular/core\";\r\n\r\n@Directive({\r\n\tselector: \"itemsplit\",\r\n})\r\nexport class ItemSplitDirective {\r\n\t/**\r\n\t * Nombre de la acción.\r\n\t * @type {string}\r\n\t */\r\n\t@Input() name: string = \"\";\r\n\r\n\t/**\r\n\t * Indica si los botones asociados a la acción deben ocultarse.\r\n\t * @type {boolean}\r\n\t * @default false\r\n\t */\r\n\t@Input() hideButtons: boolean = false;\r\n\r\n\t/**\r\n\t * Indica si detener la propagación de eventos al hacer clic en la acción.\r\n\t * @type {boolean}\r\n\t * @default false\r\n\t */\r\n\t@Input() stopPropagation: boolean = false;\r\n\r\n\t/**\r\n\t * Evento emitido cuando se hace clic en la acción.\r\n\t * @type {EventEmitter<any>}\r\n\t */\r\n\t@Output() onClick: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n\t/**\r\n\t * Referencia al contenido proporcionado por la plantilla.\r\n\t * @type {any}\r\n\t */\r\n\t@ContentChild(\"template\") template!: any;\r\n\r\n\t/**\r\n\t * Indica si la acción está activa o no.\r\n\t * @type {boolean}\r\n\t * @default false\r\n\t */\r\n\tactive: boolean = false;\r\n}\r\n","import { Component, ContentChildren, QueryList } from \"@angular/core\";\r\nimport { PopoverModule } from \"primeng/popover\";\r\nimport { ItemSplitDirective } from \"./itemsplit.directive\";\r\nimport { CommonModule } from \"@angular/common\";\r\n\r\n@Component({\r\n\tselector: \"intelica-button-split\",\r\n\timports: [PopoverModule, CommonModule],\r\n\ttemplateUrl: \"./button-split.component.html\",\r\n})\r\nexport class ButtonSplitComponent {\r\n\t/**\r\n\t * Directiva que representa una colección de elementos hijos del tipo `ItemSplitDirective`.\r\n\t * Se utiliza para acceder a las instancias de la directiva `ItemSplitDirective` dentro de un componente.\r\n\t * @type {QueryList<ItemSplitDirective>}\r\n\t */\r\n\t@ContentChildren(ItemSplitDirective)\r\n\titemsSplit!: QueryList<ItemSplitDirective>;\r\n\r\n\t/**\r\n\t * Muestra la plantilla asociada a una acción si se proporciona un manejador de eventos `onClick`.\r\n\t * - Emite el evento `onClick` de la acción si está definido.\r\n\t * - Detiene la propagación del evento si la propiedad `stopPropagation` de la acción está establecida.\r\n\t * - Activa la acción.\r\n\t * - Oculta el menú de selección de acciones si se cumplen ciertas condiciones.\r\n\t *\r\n\t * @param {ItemSplitDirective} item - La acción para la cual mostrar la plantilla.\r\n\t */\r\n\tshowTemplate(item: ItemSplitDirective): void {\r\n\t\t// Emite el evento onClick de la acción si está definido.\r\n\t\tif (item.onClick) {\r\n\t\t\titem.onClick.emit();\r\n\t\t}\r\n\r\n\t\t// Detiene la propagación del evento si la propiedad stopPropagation del item está establecida.\r\n\t\tif (item.stopPropagation) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Activa el item.\r\n\t\titem.active = true;\r\n\t}\r\n}\r\n","<button class=\"grButton grButton--icon grButton--select-popover\" (click)=\"op.toggle($event)\"><i class=\"icon icon-list-options\"></i></button>\r\n<p-popover #op>\r\n\t<div class=\"prPopoverV3 prPopoverV3--contentLeft\">\r\n\t\t<ul>\r\n\t\t\t<li [ngClass]=\"{ hidden: !item.active }\" *ngFor=\"let item of itemsSplit\" (click)=\"showTemplate(item)\">{{ item.name }}</li>\r\n\t\t</ul>\r\n\t</div>\r\n</p-popover>\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from \"@angular/core\";\r\nimport { PropertiesModel } from \"./model/properties.model\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { RadioButtonModule } from \"primeng/radiobutton\";\r\n\r\n@Component({\r\n\tselector: \"intelica-record-per-page\",\r\n\timports: [CommonModule, FormsModule, RadioButtonModule],\r\n\ttemplateUrl: \"./record-per-page.component.html\",\r\n})\r\nexport class RecordPerPageComponent implements OnInit, OnChanges {\r\n\t/**\r\n\t * Lista de propiedades del modelo `PropertiesModel`.\r\n\t * @type {PropertiesModel[]}\r\n\t * @default []\r\n\t */\r\n\t@Input() Properties: PropertiesModel[] = [];\r\n\r\n\t/**\r\n\t * Evento emitido al realizar un cambio de pagina, envia el pageSize a los componentes.\r\n\t * @type {EventEmitter<any>}\r\n\t */\r\n\t@Output() ReturnPage: EventEmitter<any> = new EventEmitter();\r\n\r\n\t/**\r\n\t * Términos utilizados en el componente.\r\n\t * @type {any}\r\n\t */\r\n\tTerms: any;\r\n\r\n\t/**\r\n\t * Lista de registros.\r\n\t * @type {number[]}\r\n\t * @default []\r\n\t */\r\n\tRecords: number[] = [];\r\n\r\n\t/**\r\n\t * Tamaño de página predeterminado.\r\n\t * @type {number}\r\n\t * @default 20\r\n\t * @private\r\n\t */\r\n\tPageSize: number = 20;\r\n\r\n\tconstructor() {}\r\n\r\n\tngOnChanges(changes: any): void {\r\n\t\tif (changes.Properties && changes.Properties.currentValue.length > 0) this.FillRecordperPage();\r\n\t}\r\n\r\n\tngOnDestroy(): void {}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.FillRecordperPage();\r\n\t}\r\n\r\n\tChangePageSize() {\r\n\t\tthis.ReturnPage.emit(this.PageSize);\r\n\t}\r\n\r\n\t/**\r\n\t * Rellena la lista de registros por página basándose en las propiedades del modelo.\r\n\t * - Utiliza el término de idioma global para la configuración.\r\n\t * - Filtra las propiedades para obtener la propiedad 'RP' (Registros por Página).\r\n\t * - Si la propiedad no existe, la función sale.\r\n\t * - Divide el valor de la propiedad 'RP' en una lista de números.\r\n\t * - Establece el tamaño de página predeterminado como el primer elemento de la lista.\r\n\t */\r\n\tFillRecordperPage(): any {\r\n\t\t// Utiliza el término de idioma global para la configuración.\r\n\t\t// this.terms = this.globals.languageTerms;\r\n\r\n\t\t// Filtra las propiedades para obtener la propiedad 'RP' (Registros por Página).\r\n\t\tvar rpProperty = this.Properties.filter(x => x.code === \"RP\");\r\n\r\n\t\t// Si la propiedad no existe, la función sale temprano.\r\n\t\tif (rpProperty.length === 0) return;\r\n\r\n\t\t// Divide el valor de la propiedad 'RP' en una lista de números.\r\n\t\tthis.Records = rpProperty[0].value.split(\",\").map(x => parseInt(x));\r\n\r\n\t\t// Establece el tamaño de página predeterminado como el primer elemento de la lista.\r\n\t\tthis.PageSize = this.Records[0];\r\n\t}\r\n}\r\n","<div style=\"width: 400px\">\r\n\t<div class=\"recordsPerPageCtr\">\r\n\t\t<ng-container *ngFor=\"let record of Records; let i = index\">\r\n\t\t\t<div class=\"form-check form-check-inline\">\r\n\t\t\t\t<p-radiobutton class=\"prRadioButton\" [inputId]=\"'radio-' + i\" name=\"optSortRP1\" [(ngModel)]=\"PageSize\" [value]=\"record\" [tabindex]=\"i\" />\r\n\t\t\t\t<label [for]=\"'radio-' + i\">{{ record }}</label>\r\n\t\t\t</div>\r\n\t\t</ng-container>\r\n\t</div>\r\n\t<div class=\"recordsPerPageBtnCtr\">\r\n\t\t<button class=\"grButton grButton--primary applyAnalytics\" (click)=\"ChangePageSize()\">\r\n\t\t\t<span>Apply</span>\r\n\t\t</button>\r\n\t</div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { RadioButtonModule } from \"primeng/radiobutton\";\r\nimport { ButtonModule } from \"primeng/button\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { CascadeFilterModel } from \"./model/cascade-filter\";\r\nimport { OrderConstants } from \"./model/order.constants\";\r\n\r\n@Component({\r\n\tselector: \"intelica-sorting\",\r\n\timports: [CommonModule, FormsModule, RadioButtonModule, ButtonModule],\r\n\ttemplateUrl: \"./sorting.component.html\",\r\n})\r\nexport class SortingComponent implements OnInit, OnChanges {\r\n\t/**\r\n\t * Suscripción a un observable.\r\n\t * @type {Subscription}\r\n\t */\r\n\tsubscription: Subscription = new Subscription();\r\n\r\n\t/**\r\n\t * Términos utilizados en el componente.\r\n\t * @type {any}\r\n\t */\r\n\tterms: any;\r\n\r\n\t/**\r\n\t * Lista de modelos de filtro en cascada.\r\n\t * @type {CascadeFilterModel[]}\r\n\t * @default []\r\n\t */\r\n\tLCascadefilter: CascadeFilterModel[] = [];\r\n\r\n\t/**\r\n\t * Número máximo de ordenamiento.\r\n\t * @type {number}\r\n\t * @default 4\r\n\t */\r\n\tNumMaxSorting = 4;\r\n\r\n\t/**\r\n\t * Lista de objetos de ordenamiento.\r\n\t * @type {any}\r\n\t * @default []\r\n\t */\r\n\t@Input() Sorters: any = [];\r\n\r\n\t/**\r\n\t * Objeto que indica el ordenamiento actual.\r\n\t * @type {any}\r\n\t */\r\n\t@Input() OrderBy: any;\r\n\r\n\t/**\r\n\t * Objeto que indica el ordenamiento predeterminado.\r\n\t * @type {any}\r\n\t * @default {}\r\n\t */\r\n\t@Input() OrderByDefault: any = {};\r\n\r\n\t/**\r\n\t * Indica si se debe realizar un solo renderizado.\r\n\t * @type {boolean}\r\n\t * @default false\r\n\t */\r\n\t@Input() OneRender: boolean = false;\r\n\r\n\t/**\r\n\t * Evento emitido al realizar un retorno de datos.\r\n\t * @type {EventEmitter<any>}\r\n\t */\r\n\t@Output() ReturnSorting: EventEmitter<any> = new EventEmitter();\r\n\r\n\t/**\r\n\t * Evento emitido al alertar sobre una ordenación.\r\n\t * @type {EventEmitter<any>}\r\n\t */\r\n\t@Output() AlertOrder: EventEmitter<any> = new EventEmitter();\r\n\r\n\t/**\r\n\t * Objeto que contiene constantes de ordenación.\r\n\t * @type {OrderConstants}\r\n\t */\r\n\tOrder = OrderConstants;\r\n\r\n\tconstructor() {}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.subscription.unsubscribe();\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\t// this.subscription = this.sharedService.isLoadingPageInfo.subscribe({\r\n\t\t// \tnext: isLoadingPageInfo => {\r\n\t\t// \t\tif (!isLoadingPageInfo) this.terms = this.globals.languageTerms;\r\n\t\t// \t},\r\n\t\t// });\r\n\t}\r\n\r\n\tngOnChanges(changes: any): void {\r\n\t\tif (changes.OrderBy && this.Sorters.length > 0) this.GetInfoSorting();\r\n\t\tif (changes.Sorters && this.Sorters.length > 0) this.GetInfoSorting();\r\n\t\t// this.terms = this.globals.languageTerms;\r\n\t}\r\n\r\n\t/**\r\n\t * Obtiene información sobre la ordenación y la asigna a la lista de modelos de filtro en cascada.\r\n\t * - Si no hay información de ordenación (`orderBy`), la función sale.\r\n\t * - Crea una lista de modelos de filtro en cascada con una longitud determinada.\r\n\t * - Filtra las propiedades de ordenación que coinciden con los campos existentes.\r\n\t * - Asigna las propiedades de ordenación a los modelos de filtro en cascada.\r\n\t */\r\n\tGetInfoSorting(): void {\r\n\t\t// Si no hay información de ordenación (orderBy), la función sale temprano.\r\n\t\tif (!this.OrderBy) return;\r\n\r\n\t\t// Crea una lista de modelos de filtro en cascada con una longitud determinada.\r\n\t\tthis.LCascadefilter = this.PushCascade(this.Sorters.length);\r\n\r\n\t\t// Filtra las propiedades de ordenación que coinciden con los campos existentes.\r\n\t\tthis.OrderBy = Object.fromEntries(Object.entries(this.OrderBy).filter(([key]) => this.Sorters.find((y: any) => y.field === key)));\r\n\r\n\t\t// Obtiene las columnas y el orden de la ordenación.\r\n\t\tconst columns = Object.keys(this.OrderBy).map(x => x);\r\n\t\tconst order = columns.map(x => this.OrderBy[x]);\r\n\r\n\t\t// Asigna las propiedades de ordenación a los modelos de filtro en cascada.\r\n\t\tcolumns.forEach((f: any, i) => {\r\n\t\t\tthis.LCascadefilter[i].id = f;\r\n\t\t\tthis.LCascadefilter[i].order = order[i];\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Función que genera una lista de modelos de filtro en cascada con una cantidad determinada.\r\n\t *\r\n\t * @param {number} cant - Cantidad de modelos de filtro en cascada a generar.\r\n\t * @returns {Array} - Lista de modelos de filtro en cascada.\r\n\t */\r\n\tPushCascade(cant: number): Array<any> {\r\n\t\tlet Lcascadefilter = [];\r\n\t\tfor (let i = 0; i < cant; i++) {\r\n\t\t\tLcascadefilter.push({ id: \"0\", index: i, order: OrderConstants.ORDER_BY_ASC });\r\n\t\t}\r\n\t\treturn Lcascadefilter;\r\n\t}\r\n\r\n\t/**\r\n\t * Verifica y procesa la ordenación en cascada.\r\n\t * - Si algún modelo de filtro en cascada tiene un ID diferente de '0', se realiza la ordenación.\r\n\t * - De lo contrario, se emite una alerta indicando que no hay columna seleccionada para ordenar.\r\n\t */\r\n\tCheckCascadeOrder(): void {\r\n\t\tthis.OrderBy = {};\r\n\t\tif (this.LCascadefilter.some(s => s.id !== \"0\")) {\r\n\t\t\tthis.CascadeOrder();\r\n\t\t} else {\r\n\t\t\treturn this.AlertOrder.emit({ ValidMessage: \"Select at least one column to sort\" }); //this.sharedService.getTermTextByCode(\"MSG_NO_COLUMN_ORDER\") });\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Procesa la ordenación en cascada y emite el resultado.\r\n\t */\r\n\tCascadeOrder(): void {\r\n\t\tthis.LCascadefilter.forEach(element => {\r\n\t\t\tif (element.id !== \"0\") {\r\n\t\t\t\tthis.OrderBy[element.id] = element.order;\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.ReturnSorting.emit(this.OrderBy);\r\n\t}\r\n\r\n\t/**\r\n\t * Restaura la ordenación en cascada a la configuración predeterminada y obtiene la información de ordenación.\r\n\t */\r\n\tClearCascadeOrder(): void {\r\n\t\tthis.OrderBy = { ...this.OrderByDefault };\r\n\t\tthis.GetInfoSorting();\r\n\t}\r\n\r\n\t/**\r\n\t * Verifica si un modelo de filtro en cascada está deshabilitado basándose en su ID.\r\n\t *\r\n\t * @param {string} id - ID del modelo de filtro en cascada.\r\n\t * @param {number} index - Índice del modelo de filtro en cascada.\r\n\t * @returns {boolean} - Indica si el modelo de filtro en cascada está deshabilitado.\r\n\t */\r\n\tCheckCascadeDisabled(id: string, index: number): boolean {\r\n\t\treturn this.LCascadefilter.some(e => e.id == id);\r\n\t}\r\n}\r\n","<ng-container>\r\n\t<div class=\"sortingAnalytics\">\r\n\t\t<div class=\"sortingCtr\">\r\n\t\t\t<div></div>\r\n\t\t\t<div class=\"triangle-top\"></div>\r\n\t\t\t<div class=\"triangle-down\"></div>\r\n\t\t\t<ng-container *ngIf=\"OneRender; else multiple_render\">\r\n\t\t\t\t<ng-container *ngTemplateOutlet=\"one_render; context: { Sorters: Sorters }\"></ng-container>\r\n\t\t\t</ng-container>\r\n\t\t</div>\r\n\r\n\t\t<div class=\"sortingBtnCtr\">\r\n\t\t\t<!-- <span>{{'BTN_APPLY_SORT' | term : terms}}</span> -->\r\n\t\t\t<p-button pRipple class=\"prButton applyAnalytics\" label=\"{{ 'Apply sort' }}\" (onClick)=\"CheckCascadeOrder()\" />\r\n\t\t\t<!-- <span>{{'BTN_CLEAR_SORT' | term : terms}}</span> -->\r\n\t\t\t<p-button pRipple class=\"prButton cleanAnalytics\" label=\"{{ 'Clear sort' }}\" severity=\"secondary\" (onClick)=\"ClearCascadeOrder()\" />\r\n\t\t</div>\r\n\t</div>\r\n</ng-container>\r\n\r\n<ng-template #one_render let-Sorters=\"Sorters\">\r\n\t<ng-container *ngFor=\"let row of Sorters; let i = index\">\r\n\t\t<ng-container *ngIf=\"LCascadefilter.length > 0 && i <= NumMaxSorting\">\r\n\t\t\t<ng-container *ngIf=\"OneRender && i == 0\">\r\n\t\t\t\t<div class=\"idx-select\" *ngIf=\"i < LCascadefilter.length\">\r\n\t\t\t\t\t<div class=\"formRowInputNumber\">\r\n\t\t\t\t\t\t<span>{{ i + 1 }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<select class=\"grSelect\" [(ngModel)]=\"LCascadefilter[i].id\">\r\n\t\t\t\t\t\t<option *ngIf=\"i === 0\" [value]=\"0\">\r\n\t\t\t\t\t\t\t--\r\n\t\t\t\t\t\t\t<!-- <span>{{ \"LBL_SORT_BY\" | term : terms }}</span> -->\r\n\t\t\t\t\t\t\t<span>Sort By</span>\r\n\t\t\t\t\t\t\t--\r\n\t\t\t\t\t\t</option>\r\n\t\t\t\t\t\t<option *ngFor=\"let sort of Sorters\" [ngValue]=\"sort.field\" [disabled]=\"CheckCascadeDisabled(sort.field, i)\">\r\n\t\t\t\t\t\t\t{{ sort.headerText }}\r\n\t\t\t\t\t\t</option>\r\n\t\t\t\t\t</select>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div class=\"form-check\" *ngIf=\"i < LCascadefilter.length\">\r\n\t\t\t\t\t<p-radiobutton class=\"prRadioButton\" name=\"optSort{{ i }}\" [value]=\"Order.ORDER_BY_ASC\" [inputId]=\"'test{{ i + i + 1 }}'\" [(ngModel)]=\"LCascadefilter[i].order\" tabindex=\"0\" />\r\n\t\t\t\t\t<label for=\"test{{ i + i + 1 }}\"></label>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div class=\"form-check\" *ngIf=\"i < LCascadefilter.length\">\r\n\t\t\t\t\t<p-radiobutton class=\"prRadioButton\" name=\"optSort{{ i }}\" [value]=\"Order.ORDER_BY_DESC\" [inputId]=\"'test{{ i + i + 2 }}'\" [(ngModel)]=\"LCascadefilter[i].order\" tabindex=\"0\" />\r\n\t\t\t\t\t<label for=\"test{{ i + i + 2 }}\"></label>\r\n\t\t\t\t</div>\r\n\t\t\t</ng-container>\r\n\t\t</ng-container>\r\n\t</ng-container>\r\n</ng-template>\r\n\r\n<ng-template #multiple_render>\r\n\t<ng-container *ngFor=\"let row of Sorters; let i = index\">\r\n\t\t<ng-container *ngIf=\"LCascadefilter.length > 0 && i <= NumMaxSorting\">\r\n\t\t\t<div class=\"idx-select\" *ngIf=\"i < LCascadefilter.length\">\r\n\t\t\t\t<div class=\"formRowInputNumber\">\r\n\t\t\t\t\t<span>{{ i + 1 }}</span>\r\n\t\t\t\t</div>\r\n\t\t\t\t<select class=\"grSelect\" [(ngModel)]=\"LCascadefilter[i].id\">\r\n\t\t\t\t\t<option *ngIf=\"i === 0\" [value]=\"0\">\r\n\t\t\t\t\t\t--\r\n\t\t\t\t\t\t<!-- <span>{{ \"LBL_SORT_BY\" | term : terms }}</span> -->\r\n\t\t\t\t\t\t<span>Sort By</span>\r\n\t\t\t\t\t\t--\r\n\t\t\t\t\t</option>\r\n\t\t\t\t\t<option *ngIf=\"i > 0\" [value]=\"0\">\r\n\t\t\t\t\t\t--\r\n\t\t\t\t\t\t<!-- <span>{{ \"LBL_SORT_THEN\" | term : terms }}</span> -->\r\n\t\t\t\t\t\t<span>Then by</span>\r\n\t\t\t\t\t\t--\r\n\t\t\t\t\t</option>\r\n\t\t\t\t\t<option *ngFor=\"let sort of Sorters\" [ngValue]=\"sort.field\" [disabled]=\"CheckCascadeDisabled(sort.field, i)\">\r\n\t\t\t\t\t\t{{ sort.headerText }}\r\n\t\t\t\t\t</option>\r\n\t\t\t\t</select>\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"form-check\" *ngIf=\"i < LCascadefilter.length\">\r\n\t\t\t\t<p-radiobutton class=\"prRadioButton\" name=\"optSort{{ i }}\" [value]=\"Order.ORDER_BY_ASC\" [inputId]=\"'test{{ i + i + 1 }}'\" [(ngModel)]=\"LCascadefilter[i].order\" tabindex=\"0\" />\r\n\t\t\t\t<label for=\"test{{ i + i + 1 }}\"></label>\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"form-check\" *ngIf=\"i < LCascadefilter.length\">\r\n\t\t\t\t<p-radiobutton class=\"prRadioButton\" name=\"optSort{{ i }}\" [value]=\"Order.ORDER_BY_DESC\" [inputId]=\"'test{{ i + i + 2 }}'\" [(ngModel)]=\"LCascadefilter[i].order\" tabindex=\"0\" />\r\n\t\t\t\t<label for=\"test{{ i + i + 2 }}\"></label>\r\n\t\t\t</div>\r\n\t\t</ng-container>\r\n\t</ng-container>\r\n</ng-template>\r\n","import { Component, Input } from \"@angular/core\";\r\nimport { PopoverInformationModel } from \"./model/popover-information.model\";\r\nimport { CommonModule } from \"@angular/common\";\r\n\r\n@Component({\r\n\tselector: \"intelica-popover\",\r\n\timports: [CommonModule],\r\n\ttemplateUrl: \"./popover.component.html\",\r\n})\r\nexport class PopoverComponent {\r\n\t/**\r\n\t * Información de asignación utilizada para la inicialización del popover.\r\n\t * @type {PopoverModel}\r\n\t * @default {}\r\n\t */\r\n\t@Input() information: PopoverInformationModel[] = [];\r\n}\r\n","<div class=\"tooltipTable tooltipTable--limitHeight\">\r\n\t<div class=\"tooltipTable__row\" *ngFor=\"let item of information\">\r\n\t\t<div class=\"tooltipTable__left\">\r\n\t\t\t<span>{{ item.title }}</span>\r\n\t\t</div>\r\n\t\t<div class=\"tooltipTable__right tooltipTable__right--gray\">{{ item.description }}</div>\r\n\t</div>\r\n</div>\r\n","import { CommonModule, isPlatformBrowser } from \"@angular/common\";\r\nimport { AfterViewInit, Component, ElementRef, EventEmitter, Inject, Input, Output, PLATFORM_ID } from \"@angular/core\";\r\nimport * as echarts from \"echarts\";\r\nimport { EChartsOption } from \"echarts\";\r\n\r\n@Component({\r\n\tselector: \"intelica-echart\",\r\n\timports: [CommonModule],\r\n\ttemplateUrl: \"./echart.component.html\",\r\n})\r\nexport class EchartComponent implements AfterViewInit {\r\n\t@Input() config!: EChartsOption | undefined;\r\n\t@Input() id!: string;\r\n\t@Input() renderer: \"canvas\" | \"svg\" = \"canvas\";\r\n\t@Input() containerStyle: { [klass: string]: any } = {\r\n\t\twidth: \"100%\",\r\n\t\theight: \"400px\",\r\n\t};\r\n\t@Output() event = new EventEmitter<any>();\r\n\r\n\tchart!: echarts.ECharts;\r\n\r\n\tconstructor(private el: ElementRef, @Inject(PLATFORM_ID) private platformId: Object) {}\r\n\r\n\tngAfterViewInit(): void {\r\n\t\tconst chartElement = this.el.nativeElement.querySelector(`#${this.id}_plot`);\r\n\t\tif (!this.config) {\r\n\t\t\tthrow new Error(\"Chart configuration is not set\");\r\n\t\t}\r\n\t\tif (!isPlatformBrowser(this.platformId)) {\r\n\t\t\tthrow new Error(\"Platform is not browser\");\r\n\t\t}\r\n\r\n\t\tif (!chartElement) {\r\n\t\t\tthrow new Error(\"Plot area not found\");\r\n\t\t}\r\n\r\n\t\tthis.initChart(chartElement);\r\n\t}\r\n\r\n\trefreshChart() {\r\n\t\tthis.chart.setOption(this.config!);\r\n\t}\r\n\r\n\tresize() {\r\n\t\tif (this.chart) {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis.chart.resize();\r\n\t\t\t}, 1);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate initChart(chartElement: any) {\r\n\t\tconst observer = new ResizeObserver(() => this.resize());\r\n\t\tthis.chart = echarts.init(chartElement, null, { renderer: this.renderer });\r\n\t\tthis.chart.setOption(this.config!);\r\n\t\tthis.chart.on(\"click\", params => {\r\n\t\t\tthis.event.emit(params);\r\n\t\t});\r\n\t\tobserver.observe(chartElement);\r\n\t}\r\n}\r\n","<div [id]=\"id + '_plot'\" class=\"chart\" [ngStyle]=\"containerStyle\"></div>\r\n","import { Component, ViewChild, ElementRef, ContentChild, TemplateRef, HostListener, ContentChildren, QueryList, OnInit, inject, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport { ButtonModule } from \"primeng/button\";\r\nimport { InputGroupAddonModule } from \"primeng/inputgroupaddon\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { RippleModule } from \"primeng/ripple\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\n\r\n@Component({\r\n\tselector: \"intelica-template-menu\",\r\n\timports: [ButtonModule, InputGroupAddonModule, CommonModule, RippleModule, TermPipe],\r\n\ttemplateUrl: \"./template-menu.component.html\",\r\n})\r\nexport class TemplateMenuComponent {\r\n\treadonly GlobalTermService = inject(GlobalTermService);\r\n\t@ViewChild(\"popover\") Popover!: ElementRef;\r\n\t@ViewChild(\"menuButton\") MenuButton!: ElementRef;\r\n\t@ViewChild(\"popoverContainer\") PopoverContainer!: ElementRef;\r\n\r\n\t@Output(\"onOpen\") openPanelEvent: EventEmitter<any> = new EventEmitter<any>();\r\n\t@Output(\"onClose\") closePanelEvent: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n\tIsPopoverOpen: boolean = false;\r\n\tIsClickInsideDatepicker: boolean = false;\r\n\r\n\tconstructor() {}\r\n\r\n\topenPanel() {\r\n\t\tthis.IsPopoverOpen = true;\r\n\t\tthis.Popover.nativeElement.style.display = \"block\";\r\n\t\tthis.MenuButton.nativeElement.classList.add(\"active\");\r\n\t\tthis.PopoverContainer.nativeElement.classList.add(\"backdrop-visible\");\r\n\t\tthis.openPanelEvent.emit({\r\n\t\t\topen: this.IsPopoverOpen,\r\n\t\t\telement: this.Popover.nativeElement,\r\n\t\t});\r\n\t}\r\n\r\n\tclosePanel() {\r\n\t\tthis.IsPopoverOpen = false;\r\n\t\tthis.Popover.nativeElement.style.display = \"none\";\r\n\t\tthis.MenuButton.nativeElement.classList.remove(\"active\");\r\n\t\tthis.PopoverContainer.nativeElement.classList.remove(\"backdrop-visible\");\r\n\t\tthis.closePanelEvent.emit({\r\n\t\t\topen: this.IsPopoverOpen,\r\n\t\t\telement: this.Popover.nativeElement,\r\n\t\t});\r\n\t}\r\n\r\n\ttogglePanel(event?: Event) {\r\n\t\tthis.IsPopoverOpen ? this.closePanel() : this.openPanel();\r\n\t}\r\n\r\n\t@HostListener(\"mousedown\", [\"$event\"])\r\n\tonMouseDown(event: Event) {\r\n\t\tconst target = event.target as HTMLElement;\r\n\t\tif (target.closest(\".p-datepicker\") || target.closest(\".p-inputtext\") || target.closest(\".p-select-panel\") || target.closest(\".p-multiselect-panel\")) {\r\n\t\t\tthis.IsClickInsideDatepicker = true;\r\n\t\t}\r\n\t}\r\n\r\n\t@HostListener(\"window:mousedown\", [\"$event\"])\r\n\tonMouseDownOutsideBody(event: Event) {\r\n\t\tconst target = event.target as HTMLElement;\r\n\t\tif (target.closest(\".p-datepicker\") || target.closest(\".p-inputtext\") || target.closest(\".p-select-panel\") || target.closest(\".p-multiselect-panel\") || target.closest(\".swal2-container\")) {\r\n\t\t\tthis.IsClickInsideDatepicker = true;\r\n\t\t}\r\n\t}\r\n\r\n\t@HostListener(\"mouseup\", [\"$event\"])\r\n\tonMouseUp(event: Event) {\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.IsClickInsideDatepicker = false;\r\n\t\t}, 100);\r\n\t}\r\n\r\n\t@HostListener(\"document:click\", [\"$event\"])\r\n\tcloseAll(event?: Event) {\r\n\t\tif (!event) return;\r\n\t\tconst target = event.target as HTMLElement;\r\n\t\t// const forceCloseClasses = [\"closePopoverNow\", \"closeTemplateMenu\"];\r\n\t\t// if (forceCloseClasses.some(className => target.closest(`.${className}`))) {\r\n\t\t// \tthis.closePanel();\r\n\t\t// \treturn;\r\n\t\t// }\r\n\t\tif (this.IsPopoverOpen && this.PopoverContainer && target === this.PopoverContainer.nativeElement) {\r\n\t\t\tthis.closePanel();\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst allowedClasses = [\r\n\t\t\t\"prSelect\",\r\n\t\t\t\"p-select-option-selected\",\r\n\t\t\t\"p-select-option\",\r\n\t\t\t\"p-datepicker-panel\",\r\n\t\t\t\"p-datepicker-select-month\",\r\n\t\t\t\"p-button-text\",\r\n\t\t\t\"p-datepicker-select-year\",\r\n\t\t\t\"p-datepicker-month\",\r\n\t\t\t\"p-datepicker-year\",\r\n\t\t\t\"p-checkbox-input\",\r\n\t\t\t\"p-multiselect-option\",\r\n\t\t\t\"p-multiselect-filter\",\r\n\t\t\t\"p-multiselect-empty-message\",\r\n\t\t\t\"p-inputicon\",\r\n\t\t\t\"p-tree-node-selected\",\r\n\t\t\t\"p-tree-node-content\",\r\n\t\t\t\"p-multiselect-header\",\r\n\t\t\t\"grButton--icon-close-modal\",\r\n\t\t\t\"p-overlay-mask\",\r\n\t\t\t\"p-select-clear-icon\",\r\n\t\t\t\"formRowInputClear\",\r\n\t\t\t\"icon-times\",\r\n\t\t\t\"p-select-empty-message\",\r\n\t\t\t\"p-select-list\",\r\n\t\t\t\"p-iconfield\",\r\n\t\t\t\"p-inputtext\",\r\n\t\t\t\"p-select-header\",\r\n\t\t\t\"p-overlay\",\r\n\t\t\t\"p-select-filter\",\r\n\t\t\t\"p-overlay-content\",\r\n\t\t\t\"p-select-overlay\",\r\n\t\t\t\"p-select-panel\",\r\n\t\t\t\"p-multiselect-panel\",\r\n\t\t];\r\n\t\tif (this.IsClickInsideDatepicker) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (allowedClasses.some(className => target.closest(`.${className}`))) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (this.Popover && !this.Popover.nativeElement.contains(target) && this.MenuButton && !this.MenuButton.nativeElement.contains(target)) {\r\n\t\t\tthis.closePanel();\r\n\t\t}\r\n\t}\r\n}\r\n","<div #popoverContainer class=\"grPopoverContainer\">\r\n\t<button #menuButton class=\"grMenuTemplate\" (click)=\"togglePanel($event)\">\r\n\t\t<span class=\"grMenuTemplate__ico\"><i class=\"icon icon-filter-option\"></i></span>\r\n\t\t<span class=\"grMenuTemplate__txt\">{{ \"Filters\" | term : GlobalTermService.languageCode }}</span>\r\n\t</button>\r\n\t<div class=\"grPopover\" #popover>\r\n\t\t<div class=\"grPopoverMenu\" [ngClass]=\"{ hidden: !IsPopoverOpen }\">\r\n\t\t\t<div class=\"grPopoverHeader\">\r\n\t\t\t\t<h3>\r\n\t\t\t\t\t<span>{{ \"Filters\" | term : GlobalTermService.languageCode }}</span>\r\n\t\t\t\t</h3>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"grPopoverBody grPopoverBody--template\">\r\n\t\t\t\t<ng-content></ng-content>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n","import { Injectable, signal } from \"@angular/core\";\r\n@Injectable({ providedIn: \"root\" })\r\nexport class SkeletonService {\r\n\tisLoading = signal<boolean>(false);\r\n\tpublic hide() {\r\n\t\tthis.isLoading.set(false);\r\n\t}\r\n\tpublic show() {\r\n\t\tthis.isLoading.set(true);\r\n\t}\r\n}\r\n","import { Component, inject, Input } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { SkeletonService } from \"../../services/skeleton.service\";\r\n\r\n@Component({\r\n\tselector: \"intelica-skeleton\",\r\n\timports: [CommonModule],\r\n\ttemplateUrl: \"./skeleton.component.html\",\r\n})\r\nexport class SkeletonComponent {\r\n\tprivate readonly skeletonService = inject(SkeletonService);\r\n\tisLoading = this.skeletonService.isLoading;\r\n\r\n\t@Input() localLoading: boolean = false;\r\n\t@Input() show: boolean = false;\r\n}\r\n","@if((isLoading() && !localLoading) || show){\r\n<ng-content></ng-content>\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { SkeletonModule } from \"primeng/skeleton\";\r\n\r\n@Component({\r\n\tselector: \"intelica-skeleton-table\",\r\n\timports: [CommonModule, SkeletonModule],\r\n\ttemplateUrl: \"./skeleton-table.component.html\",\r\n})\r\nexport class SkeletonTableComponent implements OnInit {\r\n\t/**\r\n\t * @description number of rows to display\r\n\t * @default 6\r\n\t * @type number\r\n\t * @example <intelica-skeleton-table [rows]=\"6\"></intelica-skeleton-table>\r\n\t */\r\n\t@Input() rows: 2 | 3 | 4 | 6 | 12 = 6;\r\n\t/**\r\n\t * @description number of columns to display\r\n\t * @default 6\r\n\t * @type number\r\n\t * @example <intelica-skeleton-table [columns]=\"6\"></intelica-skeleton-table>\r\n\t */\r\n\t@Input() columns: 2 | 3 | 4 | 6 | 12 = 6;\r\n\r\n\t@Input() showLeftSkeleton: boolean = true;\r\n\t@Input() showRightSkeleton: boolean = true;\r\n\r\n\tcolumnSizes: string[] = [];\r\n\r\n\tngOnInit(): void {\r\n\t\tconst baseSize = 12 / this.columns;\r\n\t\tthis.columnSizes = Array.from({ length: this.columns }, (_, i) => {\r\n\t\t\treturn `col-${baseSize}`;\r\n\t\t});\r\n\t}\r\n\r\n\tget justifyClass(): string | null {\r\n\t\tif (this.showLeftSkeleton && this.showRightSkeleton) return \"justify-content-between\";\r\n\t\tif (this.showLeftSkeleton) return \"justify-content-start\";\r\n\t\tif (this.showRightSkeleton) return \"justify-content-end\";\r\n\t\treturn null;\r\n\t}\r\n\r\n\tgetRows() {\r\n\t\treturn new Array(this.rows);\r\n\t}\r\n}\r\n","<div class=\"skeletonTable\">\r\n\t<div class=\"mb-2 row\" *ngIf=\"showLeftSkeleton || showRightSkeleton\" [ngClass]=\"justifyClass\">\r\n\t\t<div class=\"col-1 px-0\" *ngIf=\"showLeftSkeleton\">\r\n\t\t\t<p-skeleton class=\"prSkeleton\" [height]=\"'3rem'\"></p-skeleton>\r\n\t\t</div>\r\n\t\t<div class=\"col-3 px-0\" *ngIf=\"showRightSkeleton\">\r\n\t\t\t<p-skeleton class=\"prSkeleton\" [height]=\"'3rem'\"></p-skeleton>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<div class=\"row\">\r\n\t\t<div class=\"col-12 px-0 mb-2\">\r\n\t\t\t<p-skeleton class=\"prSkeleton\" [height]=\"'4rem'\"></p-skeleton>\r\n\t\t</div>\r\n\t</div>\r\n\t@for (row of getRows(); track $index) {\r\n\t<div class=\"row borderBottomRow\">\r\n\t\t@for (column of columnSizes; track $index) {\r\n\t\t<div class=\"{{ column }} px-0\">\r\n\t\t\t<div class=\"bodyPaddingTable\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [height]=\"'2rem'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t}\r\n\t</div>\r\n\t}\r\n</div>\r\n","import { Directive, Input } from \"@angular/core\";\r\n\r\n@Directive({\r\n\tselector: \"data\", // El selector es 'data', lo que permite usar <data> en la plantilla\r\n})\r\nexport class DataDirective {\r\n\t@Input() size: string = \"\"; // Esta es la propiedad que recibirás en la etiqueta <data>\r\n}\r\n","import { Component, Input, ContentChildren, QueryList, AfterContentInit } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { SkeletonModule } from \"primeng/skeleton\";\r\nimport { DataDirective } from \"./data.directive\";\r\n\r\n@Component({\r\n\tselector: \"intelica-skeleton-chart\",\r\n\timports: [CommonModule, SkeletonModule],\r\n\ttemplateUrl: \"./skeleton-chart.component.html\",\r\n})\r\nexport class SkeletonChartComponent implements AfterContentInit {\r\n\t/**\r\n\t * @description type of skeleton chart\r\n\t * @default 'bar'\r\n\t * @type string\r\n\t * @example <intelica-skeleton-chart [type]=\"'bar'\"></intelica-skeleton-chart>\r\n\t */\r\n\t@Input() type: \"horizontal-bar\" | \"bar\" | \"pie\" | \"line\" | \"donut\" = \"bar\";\r\n\r\n\t/**\r\n\t * @description number of series to display\r\n\t * @default 6\r\n\t * @type number\r\n\t * @example <intelica-skeleton-chart [series]=\"3\"></intelica-skeleton-chart>\r\n\t */\r\n\t@Input() series: number = 6;\r\n\r\n\t/**\r\n\t * @description number of data items to display in each bar\r\n\t * @default 1\r\n\t * @type number\r\n\t * @example <intelica-skeleton-chart [data]=\"3\"></intelica-skeleton-chart>\r\n\t */\r\n\t@Input() data: number = 1;\r\n\r\n\t/**\r\n\t * @description Flag to indicate whether the label should be displayed or hidden\r\n\t * @default false\r\n\t * @type boolean\r\n\t */\r\n\t@Input() label: boolean = true;\r\n\r\n\t// Propiedad para almacenar los valores aleatorios de porcentaje de altura\r\n\trandomPercent: string[][] = [];\r\n\r\n\t// Recibimos las etiquetas <data> como directivas\r\n\t@ContentChildren(DataDirective) dataElements!: QueryList<DataDirective>;\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.updateRandomPercentages();\r\n\t}\r\n\r\n\tngAfterContentInit(): void {\r\n\t\t// Si hay elementos <data> proyectados, usamos sus valores de 'size'\r\n\t\tif (this.dataElements.length > 0) {\r\n\t\t\tthis.setFixedPercentages();\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.updateRandomPercentages();\r\n\t}\r\n\r\n\t// Método para asignar alturas aleatorias\r\n\tupdateRandomPercentages(): void {\r\n\t\t// Si no se encuentran las etiquetas <data>, usamos valores aleatorios\r\n\t\tthis.randomPercent = this.getArray(this.series).map(() => this.getArray(this.data).map(() => this.setRandomPercent(20, 100)));\r\n\t}\r\n\r\n\t// Método para asignar alturas fijas según las etiquetas <data>\r\n\tsetFixedPercentages(): void {\r\n\t\t// Usa las alturas fijas definidas por las etiquetas <data>\r\n\t\tthis.randomPercent = this.getArray(this.series).map(\r\n\t\t\t() => this.dataElements.toArray().map(data => data.size) // Aquí mapeamos todas las alturas de las etiquetas <data>\r\n\t\t);\r\n\t}\r\n\r\n\t// Función para generar un valor aleatorio en porcentaje\r\n\tsetRandomPercent(min: number, max: number): string {\r\n\t\tconst random = Math.floor(Math.random() * (max - min + 1));\r\n\t\treturn `${random + min}%`;\r\n\t}\r\n\r\n\t// Función auxiliar para crear un array de tamaño \"length\"\r\n\tgetArray(length: number): number[] {\r\n\t\treturn Array.from({ length }, (_, i) => i);\r\n\t}\r\n}\r\n","@switch (type) { @case('bar'){\r\n<div class=\"skeletonGraphic skeletonGraphic--verticalBars\">\r\n\t<div class=\"skeletonGraphic__serie\" *ngFor=\"let i of getArray(series)\">\r\n\t\t<div class=\"skeletonGraphic__data\">\r\n\t\t\t<!-- Si hay etiquetas <data> proyectadas, las usamos con las alturas fijas -->\r\n\t\t\t<ng-container *ngIf=\"dataElements.length > 0\">\r\n\t\t\t\t<ng-container *ngFor=\"let data of dataElements.toArray()\">\r\n\t\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"data.size\"></p-skeleton>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</ng-container>\r\n\r\n\t\t\t<!-- Si no hay etiquetas <data>, usamos los valores aleatorios -->\r\n\t\t\t<ng-container *ngIf=\"dataElements.length === 0\">\r\n\t\t\t\t<ng-container *ngFor=\"let j of getArray(data)\">\r\n\t\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"randomPercent[i][j]\"></p-skeleton>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</ng-container>\r\n\t\t</div>\r\n\t\t<div class=\"skeletonGraphic__label\" *ngIf=\"label\">\r\n\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'50%'\" [height]=\"'1rem'\"></p-skeleton>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n} @case ('horizontal-bar'){\r\n<div class=\"skeletonGraphic skeletonGraphic--horizontalBars\">\r\n\t<div class=\"skeletonGraphic__serie\" *ngFor=\"let i of getArray(series)\">\r\n\t\t<div class=\"skeletonGraphic__data\">\r\n\t\t\t<!-- Si hay etiquetas <data> proyectadas, las usamos con las alturas fijas -->\r\n\t\t\t<ng-container *ngIf=\"dataElements.length > 0\">\r\n\t\t\t\t<ng-container *ngFor=\"let data of dataElements.toArray()\">\r\n\t\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"data.size\" [height]=\"'100%'\"></p-skeleton>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</ng-container>\r\n\r\n\t\t\t<!-- Si no hay etiquetas <data>, usamos los valores aleatorios -->\r\n\t\t\t<ng-container *ngIf=\"dataElements.length === 0\">\r\n\t\t\t\t<ng-container *ngFor=\"let j of getArray(data)\">\r\n\t\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"randomPercent[i][j]\" [height]=\"'100%'\"></p-skeleton>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</ng-container>\r\n\t\t</div>\r\n\t\t<div class=\"skeletonGraphic__label\" *ngIf=\"label\">\r\n\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'10rem'\" [height]=\"'1rem'\"></p-skeleton>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n} @case ('pie'){\r\n<div class=\"skeletonGraphic skeletonGraphic--pie\">\r\n\t<ng-container *ngTemplateOutlet=\"pieDonutTemplate\"></ng-container>\r\n</div>\r\n} @case ('donut'){\r\n<div class=\"skeletonGraphic skeletonGraphic--pie skeletonGraphic--donut\">\r\n\t<ng-container *ngTemplateOutlet=\"pieDonutTemplate\"></ng-container>\r\n</div>\r\n} @case ('line'){\r\n<div class=\"col-6 mb-3\">\r\n\t<div class=\"row align-items-end\">\r\n\t\t<div class=\"col-1 d-flex justify-content-end\">\r\n\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'0.5rem'\" [height]=\"'25rem'\"></p-skeleton>\r\n\t\t</div>\r\n\t\t<div class=\"col d-flex justify-content-center px-0\">\r\n\t\t\t<div class=\"col-8 px-0\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'10rem'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"col d-flex justify-content-center px-0\">\r\n\t\t\t<div class=\"col-8 px-0\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'20rem'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"col d-flex justify-content-center px-0\">\r\n\t\t\t<div class=\"col-8 px-0\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'8rem'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"col d-flex justify-content-center px-0\">\r\n\t\t\t<div class=\"col-8 px-0\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'15rem'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"col d-flex justify-content-center px-0\">\r\n\t\t\t<div class=\"col-8 px-0\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'20rem'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"col d-flex justify-content-center px-0\">\r\n\t\t\t<div class=\"col-8 px-0\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'8rem'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\t<div class=\"row mt-3\">\r\n\t\t<div class=\"col-1\"></div>\r\n\t\t<div class=\"col\">\r\n\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'0.5rem'\"></p-skeleton>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n} }\r\n\r\n<ng-template #pieDonutTemplate>\r\n\t<div class=\"skeletonGraphic__serie\">\r\n\t\t<div class=\"skeletonGraphic__wrap\">\r\n\t\t\t<div class=\"skeletonGraphic__label left\" *ngIf=\"label\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'100%'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"skeletonGraphic__data\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" shape=\"circle\" [size]=\"'100%'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"skeletonGraphic__label right\" *ngIf=\"label\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'100%'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</ng-template>\r\n","import { CommonModule, DatePipe } from \"@angular/common\";\r\nimport {\r\n AfterContentInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n ContentChildren,\r\n EventEmitter,\r\n inject,\r\n Input,\r\n OnChanges,\r\n Output,\r\n QueryList,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { BadgeModule } from \"primeng/badge\";\r\nimport { CheckboxModule } from \"primeng/checkbox\";\r\nimport { TableModule } from \"primeng/table\";\r\nimport { TooltipModule } from \"primeng/tooltip\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\nimport { SearchInputModel } from \"../search/model/search.model\";\r\nimport {\r\n ColumnComponent,\r\n ColumnGroupComponent,\r\n RowResumenComponent,\r\n} from \"../table/column.component\";\r\nimport { SearchFieldModel } from \"../table/model/search.model\";\r\nimport { Select } from \"primeng/select\";\r\nimport { QueryParametersModel } from \"./model/query.model\";\r\nimport { SortFieldModel } from \"../table/model/sort.model\";\r\nimport { SearchComponent } from \"../search/search.component\";\r\nimport { PaginatorComponent } from \"../paginator/paginator.component\";\r\nimport { FormatCellPipe } from \"../../pipes/formatCell.pipe\";\r\n\r\n@Component({\r\n selector: \"intelica-table-fetch\",\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n TableModule,\r\n Select,\r\n BadgeModule,\r\n TooltipModule,\r\n TermPipe,\r\n CheckboxModule,\r\n FormsModule,\r\n SearchComponent,\r\n PaginatorComponent,\r\n FormatCellPipe,\r\n ],\r\n templateUrl: \"./table-fetch.component.html\",\r\n providers: [FormatCellPipe, DatePipe],\r\n})\r\nexport class TableFetchComponent<T> implements OnChanges, AfterContentInit {\r\n readonly GlobalTermService = inject(GlobalTermService);\r\n\r\n @Input() ComponentId: string = \"\";\r\n @Input() ShowRowPerPage: boolean = true;\r\n @Input() ShowSearch: boolean = false;\r\n @Input() ListSearchOptions: SearchFieldModel[] = [];\r\n @Input() ShowPagination: boolean = false;\r\n @Input() RowsPerPage: number = 10;\r\n @Input() ShowCheckbox: boolean = false;\r\n @Input() ShowIndex: boolean = false;\r\n @Input() ShowSearchTooltip: boolean = false;\r\n @Input() ClassName: string = \"\";\r\n @Input() DefaultSortField: string = \"\";\r\n @Input() scrollHeight: string = \"400px\";\r\n @Input() scrollable: boolean = false;\r\n @Input() AllowedPageSizes: number[] = [10, 25, 50, 100];\r\n @Input() tableStyle: { [klass: string]: any } = {};\r\n Levels: number[] = [];\r\n @Input() FilteredList: T[] = [];\r\n @Input() TotalItems: number = 0;\r\n TotalRecords: number = 0;\r\n IsPaginatorInputSearch: boolean = false;\r\n\r\n @Output() EmitQueryParametersChange =\r\n new EventEmitter<QueryParametersModel>();\r\n\r\n @ViewChild(\"paginatorTable\") PaginatorTable?: PaginatorComponent;\r\n @ViewChild(\"searchTable\") SearchTable?: SearchComponent;\r\n\r\n @ContentChildren(ColumnComponent) Columns!: QueryList<ColumnComponent>;\r\n @ContentChildren(ColumnGroupComponent)\r\n ColumnGroups!: QueryList<ColumnGroupComponent>;\r\n @ContentChildren(RowResumenComponent)\r\n RowResumenGroups!: QueryList<RowResumenComponent>;\r\n\r\n @ContentChild(\"additionalTemplate\") AdditionalTemplate?: TemplateRef<any>;\r\n @ContentChild(\"additionalCentralTemplate\")\r\n AdditionalCentralTemplate?: TemplateRef<any>;\r\n @ContentChild(\"additionalExtendedTemplate\")\r\n AdditionalExtendedTemplate?: TemplateRef<any>;\r\n @Output() EmitSortEvent = new EventEmitter<SortFieldModel[]>();\r\n\r\n ColumnList: ColumnComponent[] = [];\r\n ColumnGroupList: ColumnGroupComponent[] = [];\r\n RowResumenList: RowResumenComponent[] = [];\r\n\r\n SearchInput: SearchInputModel = {} as SearchInputModel;\r\n @Input() CurrentPage: number = 1;\r\n @Input() SortOrder: number = 1;\r\n @Input() SortField: keyof T | null = null;\r\n ListSearchOptionsSimple: { id: number; value: string }[] = [];\r\n MaxLevel: number = 0;\r\n ListDataTable: T[] = [];\r\n\r\n constructor(private cdr: ChangeDetectorRef) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.LoadSearchOptions();\r\n\r\n if (changes[\"FilteredList\"] || changes[\"RowsPerPage\"] || changes[\"CurrentPage\"]) {\r\n this.UpdatePages();\r\n }\r\n \r\n if (changes[\"SortField\"] || changes[\"SortOrder\"]) {\r\n this.EmitSortEvent.emit([{\r\n sortOrder: this.SortOrder,\r\n sortField: this.SortField?.toString() ?? \"\",\r\n }]);\r\n }\r\n }\r\n \r\n ngAfterContentInit() {\r\n this.captureColumns();\r\n this.captureGroups();\r\n this.captureResumen();\r\n\r\n this.Columns.changes.subscribe(() => {\r\n this.captureColumns();\r\n this.cdr.markForCheck();\r\n });\r\n\r\n this.ColumnGroups.changes.subscribe(() => {\r\n this.captureGroups();\r\n this.cdr.markForCheck();\r\n });\r\n\r\n this.RowResumenGroups.changes.subscribe(() => {\r\n this.captureResumen();\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n private captureColumns() {\r\n this.ColumnList = this.Columns?.toArray() ?? [];\r\n }\r\n\r\n private captureGroups() {\r\n this.ColumnGroupList = this.ColumnGroups?.toArray() ?? [];\r\n \r\n const levels = this.ColumnGroupList.map(c => c.level);\r\n this.MaxLevel = levels.length ? Math.max(...levels) + 1 : 1;\r\n this.Levels = Array.from({ length: this.MaxLevel }, (_, i) => i);\r\n }\r\n\r\n private captureResumen() {\r\n this.RowResumenList = this.RowResumenGroups?.toArray() ?? [];\r\n }\r\n \r\n LoadSearchOptions() {\r\n this.ListSearchOptionsSimple = this.ListSearchOptions.map((item) => ({\r\n id: item.id,\r\n value: item.name,\r\n }));\r\n }\r\n\r\n OnSort(field: string) {\r\n if (this.SortField === field) {\r\n this.SortOrder *= -1;\r\n } else {\r\n this.SortField = field as keyof T;\r\n this.SortOrder = 1;\r\n }\r\n this.ExecuteSearch({});\r\n }\r\n\r\n UpdatePages() {\r\n if (this.ShowPagination) {\r\n this.TotalRecords = this.TotalItems;\r\n\r\n const start = (this.CurrentPage - 1) * this.RowsPerPage;\r\n const end = start + this.RowsPerPage;\r\n this.ListDataTable = this.FilteredList.slice(start, end);\r\n } else {\r\n this.ListDataTable = this.FilteredList;\r\n }\r\n }\r\n\r\n OnPageChange(pageIndex: number): void {\r\n this.CurrentPage = pageIndex;\r\n this.IsPaginatorInputSearch = true;\r\n this.ExecuteSearch({});\r\n }\r\n\r\n ResetTable() {\r\n if (this.PaginatorTable) {\r\n this.PaginatorTable.CurrentPage = 1;\r\n this.CurrentPage = 1;\r\n }\r\n if (this.SearchTable) {\r\n this.SearchTable.ClearSearchText();\r\n this.SearchInput.fieldText = \"\";\r\n }\r\n this.ExecuteSearch({});\r\n }\r\n\r\n ExecuteSearch(event: any): void {\r\n if (event?.fieldText !== undefined && event?.fieldText !== \"\") {\r\n this.SearchInput = event;\r\n }\r\n\r\n const field = this.ListSearchOptions.find(\r\n (item) => item.id === this.SearchInput.fieldId\r\n )?.field;\r\n\r\n if (\r\n this.SearchInput?.searchText !== undefined &&\r\n this.SearchInput?.searchText !== \"\" &&\r\n this.ListSearchOptions.length > 0 &&\r\n !this.IsPaginatorInputSearch\r\n ) {\r\n if (this.PaginatorTable) {\r\n this.PaginatorTable.CurrentPage = 1;\r\n this.CurrentPage = 1;\r\n }\r\n }\r\n\r\n const newQueryParameters: QueryParametersModel = {\r\n FilterBy: field || undefined,\r\n FilterValue: this.SearchInput.searchText?.trim(),\r\n FilterOperator: this.SearchInput.operatorId?.toString(),\r\n OrderBy: this.SortField ? String(this.SortField) : undefined,\r\n SortDirection: this.SortOrder === 1 ? \"asc\" : \"desc\",\r\n PageNumber: this.CurrentPage,\r\n PageSize: this.RowsPerPage,\r\n };\r\n\r\n this.EmitQueryParametersChange.emit(newQueryParameters);\r\n this.UpdatePages();\r\n this.IsPaginatorInputSearch = false;\r\n }\r\n\r\n OnRowsPerPageChange(value: number): void {\r\n this.RowsPerPage = value;\r\n this.CurrentPage = 1;\r\n this.ExecuteSearch({});\r\n }\r\n}\r\n","<div class=\"prTable\">\r\n <div class=\"prTableTools\">\r\n <div class=\"prTableTools__new prTableTools__new--left\">\r\n @if (AdditionalTemplate) {\r\n <ng-container *ngTemplateOutlet=\"AdditionalTemplate\"></ng-container>\r\n }\r\n </div>\r\n\r\n @if (ShowSearch) {\r\n <intelica-search\r\n #searchTable\r\n [ComponentId]=\"ComponentId + 'Search'\"\r\n (OnSearch)=\"ExecuteSearch($event)\"\r\n [SearchFieldOptions]=\"ListSearchOptionsSimple\"\r\n [SearchOnKeyup]=\"false\"\r\n [SimpleSearchInput]=\"false\"\r\n [ShowTooltip]=\"ShowSearchTooltip\"\r\n ></intelica-search>\r\n } @if (AdditionalCentralTemplate) {\r\n <div class=\"prTableTools__new prTableTools__new--right\">\r\n <ng-container\r\n *ngTemplateOutlet=\"AdditionalCentralTemplate\"\r\n ></ng-container>\r\n </div>\r\n }\r\n </div>\r\n @if (AdditionalExtendedTemplate) {\r\n <div class=\"prTableTools justify-content-start\">\r\n <ng-container *ngTemplateOutlet=\"AdditionalExtendedTemplate\"></ng-container>\r\n </div>\r\n\r\n }\r\n <!-- Tabla que muestra FilteredList -->\r\n <p-table\r\n class=\"prTableBasic\"\r\n [ngClass]=\"ClassName\"\r\n [value]=\"FilteredList\"\r\n responsiveLayout=\"scroll\"\r\n [sortField]=\"DefaultSortField\"\r\n [sortOrder]=\"SortOrder\"\r\n [scrollable]=\"scrollable\"\r\n [scrollHeight]=\"scrollable ? scrollHeight : 'auto'\"\r\n [tableStyle]=\"tableStyle\"\r\n >\r\n <!-- Cabecera con columnas agrupadas -->\r\n <ng-template pTemplate=\"header\">\r\n @for (level of Levels; track $index) {\r\n <tr>\r\n @for (col of ColumnGroupList; track $index) { @if (col.level === level)\r\n {\r\n <th\r\n [attr.colspan]=\"col.colspan\"\r\n [attr.rowspan]=\"col.rowspan\"\r\n [pSortableColumn]=\"col.sortable ? col.field : ''\"\r\n [style.min-width]=\"col.minWidth\"\r\n (click)=\"col.sortable && OnSort(col.field)\"\r\n >\r\n <div>\r\n <span [pTooltip]=\"col.headerTooltip?.trim() ? col.headerTooltip : undefined\"\r\n [tooltipPosition]=\"col.headerTooltipPosition || 'top'\">\r\n {{ col.header }}\r\n </span>\r\n <p-sortIcon *ngIf=\"col.sortable\" [field]=\"col.field\"></p-sortIcon>\r\n </div>\r\n </th>\r\n } } @if (ShowCheckbox && level === 0 && ColumnGroupList.length != 0) {\r\n <th\r\n class=\"text-center\"\r\n style=\"width: 4%\"\r\n [attr.rowspan]=\"MaxLevel === 1 ? 2 : MaxLevel\"\r\n >\r\n <p-tableHeaderCheckbox class=\"prCheckbox\" />\r\n </th>\r\n }\r\n </tr>\r\n }\r\n\r\n <tr>\r\n @for (col of ColumnList; track $index) { @if (col.showHeader) {\r\n <th\r\n [class]=\"col.className\"\r\n [pSortableColumn]=\"\r\n !col.isChecboxColumn && col.sortable ? col.field : ''\r\n \"\r\n [style.width]=\"col.width\"\r\n [style.min-width]=\"col.minWidth\"\r\n (click)=\"!col.isChecboxColumn && col.sortable && OnSort(col.field)\"\r\n >\r\n <div>\r\n <span [pTooltip]=\"col.headerTooltip?.trim() ? col.headerTooltip : undefined\"\r\n [tooltipPosition]=\"col.headerTooltipPosition || 'top'\">\r\n {{ col.header }}\r\n </span>\r\n @if (!col.showIndex) {\r\n <p-sortIcon *ngIf=\"col.sortable\" [field]=\"col.field\"></p-sortIcon>\r\n }\r\n </div>\r\n </th>\r\n } } @if (ShowCheckbox && ColumnGroupList.length == 0) {\r\n <th class=\"text-center\" style=\"width: 4%\">\r\n <p-tableHeaderCheckbox class=\"prCheckbox\" />\r\n </th>\r\n }\r\n </tr>\r\n\r\n @if (FilteredList.length > 0 && RowResumenList.length > 0) {\r\n <tr class=\"fixedRow\">\r\n @for (col of RowResumenList; track $index) {\r\n <td\r\n [ngClass]=\"col.className\"\r\n [attr.colspan]=\"col.colspan\"\r\n [attr.rowspan]=\"col.rowspan\"\r\n >\r\n @if (col.templateRef) {\r\n <span>\r\n <ng-container *ngTemplateOutlet=\"col.templateRef\"></ng-container>\r\n </span>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </ng-template>\r\n\r\n <!-- Cuerpo de la tabla -->\r\n <ng-template pTemplate=\"body\" let-rowData let-rowIndex=\"rowIndex\">\r\n <tr>\r\n @for (col of ColumnList; track $index) {\r\n <td [ngClass]=\"col.className\">\r\n @if (col.showIndex) {\r\n {{ rowIndex + 1 + (CurrentPage - 1) * RowsPerPage }}\r\n } @else { @if (col.templateRef) {\r\n <ng-container\r\n *ngTemplateOutlet=\"col.templateRef; context: { $implicit: rowData }\"\r\n ></ng-container>\r\n } @else {\r\n <span\r\n class=\"text-breakWord\"\r\n pTooltip=\"{{ col.tooltip }}\"\r\n tooltipPosition=\"{{ col.tooltipPosition }}\"\r\n >\r\n {{ rowData[col.field] | formatCell : col.formatType }}\r\n </span>\r\n } }\r\n </td>\r\n } @if (ShowCheckbox) {\r\n <td class=\"text-center\">\r\n <p-tableCheckbox [value]=\"rowData\" class=\"prCheckbox\" />\r\n </td>\r\n }\r\n </tr>\r\n </ng-template>\r\n\r\n <!-- Mensaje cuando no hay datos -->\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td\r\n [attr.colspan]=\"ColumnList.length + (ShowCheckbox ? 1 : 0)\"\r\n class=\"text-center\"\r\n >\r\n {{ \"Nodata\" | term : GlobalTermService.languageCode }}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n\r\n <div class=\"prTableToolsBottom\">\r\n @if(TotalRecords !== 0){\r\n @if(ShowRowPerPage){\r\n <div class=\"prTableToolsBottom__itemPerPage\">\r\n {{ \"ItemPerPage\" | term : GlobalTermService.languageCode }}\r\n <p-select\r\n [options]=\"AllowedPageSizes\"\r\n [ngModel]=\"RowsPerPage\"\r\n appendTo=\"body\"\r\n (onChange)=\"OnRowsPerPageChange($event.value)\"\r\n />\r\n <label for=\"pageSize\" class=\"control-label\">\r\n {{ 1 + RowsPerPage * (CurrentPage - 1) }} -\r\n {{\r\n CurrentPage * RowsPerPage >= TotalRecords\r\n ? TotalRecords\r\n : CurrentPage * RowsPerPage\r\n }}\r\n {{ \"Of\" | term : GlobalTermService.languageCode }} {{ TotalRecords }}\r\n {{ \"Items\" | term : GlobalTermService.languageCode }}\r\n </label>\r\n </div>\r\n } @if (ShowPagination) {\r\n <intelica-paginator\r\n #paginatorTable\r\n [TotalItems]=\"TotalRecords\"\r\n [CurrentPage]=\"CurrentPage\"\r\n [ItemsPerPage]=\"RowsPerPage\"\r\n (PageChange)=\"OnPageChange($event)\"\r\n ></intelica-paginator>\r\n }\r\n }\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output, OnChanges, OnDestroy, ViewChild, inject, forwardRef, OnInit } from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { Router } from '@angular/router';\r\nimport { GlobalConstants, GroupRegCountryBankConstants, GroupRegionCountryBankModel } from \"../../constants/titles.constants\";\r\nimport { TitleSelectModel } from \"./model/title-select.model\";\r\nimport { TitleFilterModel } from \"./model/title-filter.model\";\r\nimport { SharedService } from \"../../services/shared.service\";\r\nimport { IUserContext } from \"./model/user-context.model\";\r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { CommonModule, NgIf } from '@angular/common';\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\nimport { DropdownModule } from \"primeng/dropdown\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\n\r\nimport { OverlayPanel, OverlayPanelModule } from 'primeng/overlaypanel';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { PopoverModule } from \"primeng/popover\";\r\nimport { RadioButtonModule } from \"primeng/radiobutton\";\r\nimport { AccordionModule } from \"primeng/accordion\";\r\n\r\n@Component({\r\n selector: \"intelica-titles\",\r\n templateUrl: \"./titles.component.html\",\r\n styleUrls: [\"./titles.component.css\"],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TitlesComponent),\r\n multi: true,\r\n },\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n DropdownModule,\r\n TermPipe,\r\n OverlayPanelModule,\r\n ButtonModule,\r\n NgIf,\r\n AccordionModule,\r\n PopoverModule,\r\n RadioButtonModule,\r\n ],\r\n})\r\nexport class TitlesComponent implements ControlValueAccessor, OnChanges, OnDestroy {\r\n public readonly globalTerms = inject(GlobalTermService);\r\n private readonly SharedService = inject(SharedService);\r\n /** Modelo de selección de filtro. */\r\n @Input() setFilter: TitleSelectModel | undefined;\r\n\r\n /** Título y subtítulo */\r\n @Input() title: string = \"\";\r\n @Input() subTitle: string = \"\";\r\n\r\n /** Mostrar filtros en cabecera */\r\n @Input() showFilterHead: boolean = true;\r\n\r\n /** Agregar opción Global (-1,-1,-1,-1) */\r\n @Input() addGlobal: boolean = false;\r\n\r\n /** ID para helper */\r\n @Input() helperId: string = \"\";\r\n\r\n /** Evento de cambio */\r\n @Output() changeCboTitle: EventEmitter<any> = new EventEmitter();\r\n\r\n /** Dropdown alterno (caja grande) */\r\n @Input() showAlterFilterHead: boolean = false;\r\n @Input() subShowAlterFilterHead: boolean = false;\r\n\r\n /** Filtros alternos (categoría / subcategoría) */\r\n @Input() alterFilterValues: any[] = [];\r\n @Input() alterFilterValue: number | null | undefined = 0;\r\n\r\n @Input() subAlterFilterValues: any[] = [];\r\n @Input() subAlterFilterValue: number | null | undefined = 0;\r\n\r\n /** Bancos disponibles (para filtrar) */\r\n @Input() bankIdListAvaliable: any[] = [];\r\n\r\n /** Dropdown alterno (caja grande) */\r\n @Input() isInternal: boolean = true;\r\n\r\n @Input() currentUser!: IUserContext;\r\n\r\n @Output() applyFilterClick = new EventEmitter<TitleSelectModel | undefined>();\r\n @Output() clearFilterClick = new EventEmitter<void>();\r\n\r\n /** Estado interno */\r\n titlePage: string = \"\";\r\n selectIndex: number = 0;\r\n filterHead: string = \"\";\r\n placeholder: string = \"\";\r\n subscription: Subscription = new Subscription();\r\n userBanks: TitleFilterModel[] = [];\r\n\r\n existEurope: boolean = false;\r\n isDropdownOpen: boolean = false;\r\n\r\n groupValues: any[] = [];\r\n dropdownOptions: any[] = [];\r\n\r\n groupIds: number[] = [];\r\n countryIds: number[] = [];\r\n regionIds: number[] = [];\r\n isFilterAvaliable: boolean = false;\r\n\r\n dropdownMenuId: string = \"\";\r\n tempCategoryId: number = 0;\r\n tempSubcategoryId: number = 0;\r\n tempGroupId: number = 0;\r\n filterSubCategories: any[] = [];\r\n\r\n langId: number = 325;\r\n \r\n IsTitleDropdownOpen: boolean = false;\r\n\r\n demoRadioButtonRegion!: any[];\r\n selectedRadioButtonRegion: any = null;\r\n demoRadioButtonCountry!: any[];\r\n selectedRadioButtonCountry: any = null;\r\n demoRadioButtonClient!: any[];\r\n selectedRadioButtonClient: any = null;\r\n demoRadioButtonCategory!: any[];\r\n selectedRadioButtonCategory: any = null;\r\n demoRadioButtonSubCategory!: any[];\r\n selectedRadioButtonSubCategory: any = null;\r\n demoRadioButtonMonthly!: any[];\r\n selectedRadioButtonMonthly: any = null;\r\n \r\n constructor() {\r\n this.subscription = this.SharedService.isLoadingPageInfo.subscribe({\r\n next: isLoadingPageInfo => {\r\n if (!isLoadingPageInfo) {\r\n this.loadData();\r\n this.dropdownMenuId = this.SharedService.GetLastSegmentUrl() + \"-analytics\";\r\n }\r\n },\r\n });\r\n }\r\n\r\n OnTitleDropdownClickOutside(event: Event): void {\r\n const dropdownElement = document.querySelector(\".titleDropdown\");\r\n if (dropdownElement && !dropdownElement.contains(event.target as Node)) {\r\n this.IsTitleDropdownOpen = false;\r\n }\r\n }\r\n OnTitleDropdownToggle(event: Event): void {\r\n event.stopPropagation();\r\n this.IsTitleDropdownOpen = !this.IsTitleDropdownOpen;\r\n }\r\n\r\n ApplyFilter() {\r\n const model = this.buildTitleSelect(this.selectIndex);\r\n this.changeCboTitle.emit(model);\r\n this.applyFilterClick.emit(model);\r\n this.IsTitleDropdownOpen = false;\r\n }\r\n \r\n ClearFilter() {\r\n this.alterFilterValue = 0;\r\n this.subAlterFilterValue = 0;\r\n this.changeCategories();\r\n const model = this.buildTitleSelect(this.selectIndex);\r\n this.changeCboTitle.emit(model);\r\n this.clearFilterClick.emit();\r\n this.IsTitleDropdownOpen = false;\r\n }\r\n \r\n\r\n private buildTitleSelect(index: number): TitleSelectModel {\r\n const titleSelect: TitleSelectModel = {\r\n groupId: GlobalConstants.NUMBER_ALL,\r\n regionId: GlobalConstants.NUMBER_ALL,\r\n countryId: GlobalConstants.NUMBER_ALL,\r\n bankId: GlobalConstants.NUMBER_ALL,\r\n banksId: \"\",\r\n group: \"\",\r\n addValue1: 0,\r\n addValue2: 0,\r\n };\r\n \r\n const objSelect: TitleFilterModel = this.userBanks.find(model => model.index === index) ?? ({} as TitleFilterModel);\r\n titleSelect.group = objSelect.groupBy;\r\n \r\n switch (objSelect.groupBy) {\r\n case GroupRegCountryBankConstants.GROUP[this.langId]:\r\n titleSelect.groupId = objSelect.id;\r\n break;\r\n \r\n case GroupRegCountryBankConstants.REGION[this.langId]: {\r\n const region = this.currentUser.listRegionAll.find(r => r.regionId === objSelect.id);\r\n titleSelect.regionId = region?.regionId ?? -1;\r\n break;\r\n }\r\n \r\n case GroupRegCountryBankConstants.COUNTRY[this.langId]: {\r\n const country = this.currentUser.listCountryAll.find(c => c.countryId === objSelect.id);\r\n titleSelect.countryId = country?.countryId ?? -1;\r\n break;\r\n }\r\n \r\n default: {\r\n const bank = this.currentUser.listBankAll.find(b => b.bankId === objSelect.id);\r\n if (this.currentUser.IsGroupProfile) {\r\n titleSelect.countryId = bank?.countryId ?? -1;\r\n }\r\n titleSelect.bankId = bank?.bankId ?? -1;\r\n break;\r\n }\r\n }\r\n \r\n titleSelect.banksId = this.getAllBanks(objSelect);\r\n titleSelect.addValue1 = this.alterFilterValue ?? 0;\r\n titleSelect.addValue2 = this.subAlterFilterValue ?? 0;\r\n return titleSelect;\r\n }\r\n\r\n \r\n writeValue(obj: any): void {\r\n }\r\n registerOnChange(fn: any): void {\r\n }\r\n registerOnTouched(fn: any): void {\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n }\r\n\r\n loadData() {\r\n this.langId = this.currentUser.LangSite;\r\n this.filterHead = this.SharedService.setTitles(this.currentUser.ListGroupRegionCountryBank, -1, -1, -1, -1, this.isInternal);\r\n this.title = this.titlePage;\r\n this.setGroupRegionCountryBankAll();\r\n this.setTitleFilter(this.setFilter);\r\n }\r\n\r\n ngOnChanges(changes: any): void {\r\n if (changes.setFilter) {\r\n if (this.bankIdListAvaliable.length > 0 && this.currentUser.IsIntelicaUser) {\r\n this.filterBankListAvaliable();\r\n this.setTitleFilter(changes.setFilter.currentValue);\r\n } else {\r\n this.isFilterAvaliable = false;\r\n this.setGroupRegionCountryBankAll();\r\n this.setTitleFilter(changes.setFilter.currentValue);\r\n }\r\n }\r\n if (changes.title) {\r\n this.titlePage = this.title;\r\n }\r\n if (changes.alterFilterValue) {\r\n this.tempCategoryId = this.alterFilterValue !== null && this.alterFilterValue !== undefined ? (this.alterFilterValue as number) : 0;\r\n }\r\n if (changes.subAlterFilterValue) {\r\n this.tempSubcategoryId = this.subAlterFilterValue !== null && this.subAlterFilterValue !== undefined ? (this.subAlterFilterValue as number) : 0;\r\n }\r\n if (changes.subAlterFilterValues) {\r\n this.changeCategories();\r\n }\r\n if (this.tempSubcategoryId === -1) {\r\n this.tempSubcategoryId = 0;\r\n }\r\n }\r\n\r\n setGroupRegionCountryBankAll(): void {\r\n\t\tlet regionValue = this.SharedService.getTermTextByCode(\"LBL_BANK_REGION\");\r\n\t\tlet countryValue = this.SharedService.getTermTextByCode(\"LBL_BANK_COUNTRY\");\r\n\t\tlet bankValue = this.SharedService.getTermTextByCode(\"LBL_BANK\");\r\n\t\tlet globalValue = this.SharedService.getTermTextByCode(\"LBL_TITLE_GLOBAL\");\r\n\t\tlet allValue = this.SharedService.getTermTextByCode(\"LBL_ALL\");\r\n\t\tthis.userBanks = [];\r\n\t\tif (this.currentUser) {\r\n\t\t\tif (this.addGlobal) {\r\n\t\t\t\tthis.setNewField(globalValue, globalValue, GlobalConstants.NUMBER_ALL);\r\n\t\t\t}\r\n\r\n\t\t\tif (this.currentUser && this.currentUser.ListGroupRegionCountryBank.length == 1) {\r\n\t\t\t\tthis.setNewField(\r\n\t\t\t\t\tbankValue !== \"\" ? bankValue : GroupRegCountryBankConstants.BANK[this.langId],\r\n\t\t\t\t\tthis.currentUser.ListGroupRegionCountryBank[0].bankNameCommercial,\r\n\t\t\t\t\tthis.currentUser.ListGroupRegionCountryBank[0].bankId\r\n\t\t\t\t);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tlet listGroupAll = this.fillGeneralListFilter(this.currentUser.listGroupAll, this.groupIds, 0, this.isFilterAvaliable);\r\n \r\n\t\t\tthis.fillGeneralList(listGroupAll, GroupRegCountryBankConstants.GROUP[this.langId], true);\r\n\r\n\t\t\tif (this.validateEuropeAll() && !this.currentUser.PerfilInternal) {\r\n\t\t\t\tthis.setNewField(regionValue !== \"\" ? regionValue : GroupRegCountryBankConstants.REGION[this.langId], allValue !== \"\" ? allValue : GlobalConstants.STRING_ALL, GlobalConstants.NUMBER_ALL);\r\n\t\t\t}\r\n\r\n\t\t\tlet listRegionAll = this.fillGeneralListFilter(this.currentUser.listRegionAll, this.regionIds, 1, this.isFilterAvaliable);\r\n\t\t\tthis.fillGeneralList(listRegionAll, GroupRegCountryBankConstants.REGION[this.langId]);\r\n\r\n\t\t\tif (this.hasNotPreviousGroup(this.currentUser.listCountryAll)) {\r\n\t\t\t\tthis.setNewField(countryValue !== \"\" ? countryValue : GroupRegCountryBankConstants.COUNTRY[this.langId], allValue !== \"\" ? allValue : GlobalConstants.STRING_ALL, GlobalConstants.NUMBER_ALL);\r\n\t\t\t}\r\n\r\n\t\t\tlet listCountryAll = this.fillGeneralListFilter(this.currentUser.listCountryAll, this.countryIds, 2, this.isFilterAvaliable);\r\n\t\t\tthis.fillGeneralList(listCountryAll, GroupRegCountryBankConstants.COUNTRY[this.langId]);\r\n\r\n\t\t\tif (this.hasNotPreviousGroup(this.currentUser.listBankAll)) {\r\n\t\t\t\tthis.setNewField(bankValue !== \"\" ? bankValue : GroupRegCountryBankConstants.BANK[this.langId], allValue !== \"\" ? allValue : GlobalConstants.STRING_ALL, GlobalConstants.NUMBER_ALL);\r\n\t\t\t}\r\n\r\n\t\t\tlet listBankAll = this.fillGeneralListFilter(this.currentUser.listBankAll, this.bankIdListAvaliable, 3, this.isFilterAvaliable);\r\n\t\t\tlistBankAll.forEach(bank => {\r\n\t\t\t\tif (this.existsMoreThanOneBankOrPerfilInternal(bank)) {\r\n\t\t\t\t\tthis.setNewField(\r\n\t\t\t\t\t\tbankValue !== \"\" ? bankValue : GroupRegCountryBankConstants.BANK[this.langId],\r\n\t\t\t\t\t\tthis.currentUser.PerfilInternal ? bank.bankName : bank.bankNameCommercial,\r\n\t\t\t\t\t\tbank.bankId\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.groupValues = [];\r\n\t\t\tvar groupValues = this.SharedService.groupByColumn(this.userBanks, \"groupBy\");\r\n\t\t\tgroupValues.forEach(element => {\r\n\t\t\t\tthis.groupValues.push({ groupname: element, values: this.userBanks.filter(uB => uB.groupBy === element) });\r\n\t\t\t});\r\n\r\n\t\t}\r\n\t}\r\n\r\n fillGeneralList(listAll: GroupRegionCountryBankModel[], groupBy: string, setSelectIndex: boolean = false): void {\r\n const groupValue = this.SharedService.getTermTextByCode(\"LBL_BANK_GROUP\");\r\n const regionValue = this.SharedService.getTermTextByCode(\"LBL_BANK_REGION\");\r\n const countryValue = this.SharedService.getTermTextByCode(\"LBL_BANK_COUNTRY\");\r\n\r\n [...listAll].forEach(model => {\r\n if (!(listAll.length > 1 || this.currentUser.PerfilInternal)) {\r\n return;\r\n }\r\n switch (groupBy) {\r\n case GroupRegCountryBankConstants.GROUP[this.langId]:\r\n this.setNewField(groupValue, model.groupName, model.groupId);\r\n break;\r\n case GroupRegCountryBankConstants.REGION[this.langId]:\r\n this.setNewField(regionValue, model.regionName, model.regionId);\r\n break;\r\n case GroupRegCountryBankConstants.COUNTRY[this.langId]:\r\n this.setNewField(countryValue, model.countryName, model.countryId);\r\n break;\r\n }\r\n });\r\n\r\n if (setSelectIndex) {\r\n this.selectIndex = this.currentUser.PerfilInternal ? this.userBanks.length : this.selectIndex;\r\n }\r\n }\r\n\r\n existsMoreThanOneBankOrPerfilInternal(bank: GroupRegionCountryBankModel): boolean {\r\n return this.currentUser.listBankAll.filter(altBank => altBank.countryId === bank.countryId).length > 1 || this.currentUser.PerfilInternal;\r\n }\r\n\r\n hasNotPreviousGroup(listAll: GroupRegionCountryBankModel[]): boolean {\r\n return !this.currentUser.PerfilInternal && listAll.length > 1 && !this.userBanks.some(field => field.id === -1) && !this.existEurope;\r\n }\r\n\r\n setNewField(groupBy: string, name: string, id: number) {\r\n const field = {\r\n groupBy: groupBy,\r\n name: name,\r\n id: id,\r\n index: this.userBanks.length,\r\n };\r\n \r\n this.userBanks.push(field);\r\n }\r\n\r\n validateEuropeAll() {\r\n this.existEurope = this.currentUser.listRegionAll.some(region => region.regionId === GlobalConstants.REGION_EUROPE);\r\n return (this.existEurope && this.currentUser.listRegionAll.length > 3) || (!this.existEurope && this.currentUser.listRegionAll.length > 1);\r\n }\r\n\r\n setTitleFilter(filter: TitleSelectModel | undefined): void {\r\n if (!filter) return;\r\n\r\n let groupBy: string = \"\";\r\n let id: number = GlobalConstants.NUMBER_ALL;\r\n\r\n filter.groupId = filter.groupId > 0 ? filter.groupId : GlobalConstants.NUMBER_ALL;\r\n filter.regionId = filter.regionId > 0 ? filter.regionId : GlobalConstants.NUMBER_ALL;\r\n filter.countryId = filter.countryId > 0 ? filter.countryId : GlobalConstants.NUMBER_ALL;\r\n filter.bankId = filter.bankId > 0 ? filter.bankId : GlobalConstants.NUMBER_ALL;\r\n\r\n const groupValue = this.SharedService.getTermTextByCode(\"LBL_BANK_GROUP\");\r\n const regionValue = this.SharedService.getTermTextByCode(\"LBL_BANK_REGION\");\r\n const countryValue = this.SharedService.getTermTextByCode(\"LBL_BANK_COUNTRY\");\r\n const bankValue = this.SharedService.getTermTextByCode(\"LBL_BANK\");\r\n\r\n if (filter.groupId !== GlobalConstants.NUMBER_ALL) { groupBy = groupValue !== \"\" ? groupValue : GroupRegCountryBankConstants.GROUP[this.langId]; id = filter.groupId; }\r\n if (filter.regionId !== GlobalConstants.NUMBER_ALL) { groupBy = regionValue !== \"\" ? regionValue : GroupRegCountryBankConstants.REGION[this.langId]; id = filter.regionId; }\r\n if (filter.countryId !== GlobalConstants.NUMBER_ALL) { groupBy = countryValue !== \"\" ? countryValue : GroupRegCountryBankConstants.COUNTRY[this.langId]; id = filter.countryId; }\r\n if (filter.bankId !== GlobalConstants.NUMBER_ALL) { groupBy = bankValue !== \"\" ? bankValue : GroupRegCountryBankConstants.BANK[this.langId]; id = filter.bankId; }\r\n\r\n const selected: TitleFilterModel = this.userBanks.find(option => option.groupBy === groupBy && option.id === id) ?? this.userBanks[0];\r\n if (selected) {\r\n this.selectIndex = selected.index;\r\n this.tempGroupId = this.selectIndex;\r\n }\r\n\r\n this.filterHead = this.SharedService.setTitles(this.currentUser.ListGroupRegionCountryBank, filter.groupId, filter.regionId, filter.countryId, filter.bankId, this.isInternal);\r\n\r\n if (this.addGlobal && filter.groupId === -1 && filter.regionId === -1 && filter.countryId === -1 && filter.bankId === -1) {\r\n this.filterHead = this.SharedService.getTermTextByCode(\"LBL_TITLE_GLOBAL\");\r\n }\r\n }\r\n\r\n showFilter(): boolean {\r\n return this.userBanks.length > 1 && this.showFilterHead;\r\n }\r\n\r\n /** PrimeNG emite { originalEvent, value } */\r\n changeFilter(event: any) {\r\n if (event?.value !== undefined) {\r\n this.emitSelectFilter(event.value as number);\r\n }\r\n }\r\n\r\n emitSelectFilter(index: number): void {\r\n const titleSelect = this.buildTitleSelect(index);\r\n \r\n this.filterHead = this.SharedService.setTitles(\r\n this.currentUser.ListGroupRegionCountryBank,\r\n titleSelect.groupId, titleSelect.regionId, titleSelect.countryId, titleSelect.bankId, this.isInternal\r\n );\r\n \r\n if (this.addGlobal &&\r\n (titleSelect.groupId == null || titleSelect.groupId === -1) &&\r\n (titleSelect.regionId == null || titleSelect.regionId === -1) &&\r\n (titleSelect.countryId == null || titleSelect.countryId === -1) &&\r\n (titleSelect.bankId == null || titleSelect.bankId === -1)) {\r\n this.filterHead = this.SharedService.getTermTextByCode(\"LBL_TITLE_GLOBAL\");\r\n }\r\n \r\n this.changeCboTitle.emit(titleSelect);\r\n }\r\n \r\n getAllBanks(filter: TitleFilterModel): string {\r\n let banks = \"\";\r\n const banksFiltered: GroupRegionCountryBankModel[] = this.currentUser.ListGroupRegionCountryBank.filter(bank => {\r\n let validate = false;\r\n switch (filter.groupBy) {\r\n case GroupRegCountryBankConstants.GROUP[this.langId]: validate = bank.groupId === filter.id; break;\r\n case GroupRegCountryBankConstants.REGION[this.langId]: validate = bank.regionId === filter.id; break;\r\n case GroupRegCountryBankConstants.COUNTRY[this.langId]: validate = bank.countryId === filter.id; break;\r\n default: validate = bank.bankId === filter.id; break;\r\n }\r\n return validate || filter.id === GlobalConstants.NUMBER_ALL;\r\n });\r\n banksFiltered.forEach(b => banks += \"|\" + b.bankId);\r\n return banks.substring(1);\r\n }\r\n\r\n transformNegative(val: number): string {\r\n return this.SharedService.TransformNegative(val.toString());\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n \r\n filterBankListAvaliable() {\r\n const banksAll = [...this.currentUser.ListGroupRegionCountryBank].filter(item => this.bankIdListAvaliable.includes(item.bankId));\r\n this.groupIds = [...new Set(banksAll.map(item => item.groupId))];\r\n this.countryIds = [...new Set(banksAll.map(item => item.countryId))];\r\n this.regionIds = [...new Set(banksAll.map(item => item.regionId))];\r\n this.isFilterAvaliable = true;\r\n this.setGroupRegionCountryBankAll();\r\n }\r\n\r\n fillGeneralListFilter(listAll: GroupRegionCountryBankModel[], listIds: number[], column: number, isFilterAvaliable: boolean = false): GroupRegionCountryBankModel[] {\r\n return isFilterAvaliable\r\n ? [...listAll].filter(item => listIds.includes(item[column === 0 ? \"groupId\" : column === 1 ? \"regionId\" : column === 2 ? \"countryId\" : \"bankId\"]))\r\n : [...listAll];\r\n }\r\n\r\n changeCategories() {\r\n this.filterSubCategories = this.subAlterFilterValues.filter(f => f.feeStypId === this.alterFilterValue || this.alterFilterValue === 0);\r\n if (this.tempCategoryId !== this.alterFilterValue) {\r\n this.subAlterFilterValue = 0;\r\n }\r\n }\r\n}\r\n","<div class=\"cs-client\" [id]=\"helperId\">\r\n <div class=\"client\">\r\n <div class=\"autoLine d-flex\">\r\n <div class=\"position-relative\">\r\n <ng-container *ngIf=\"!showAlterFilterHead\">\r\n <b><span>{{ titlePage }}</span></b>\r\n <b><span *ngIf=\"showFilter()\">&nbsp;- {{ filterHead }}</span></b>\r\n <b><span *ngIf=\"subTitle.length > 0\">&nbsp;- {{ subTitle }}</span></b>\r\n </ng-container>\r\n \r\n <ng-container>\r\n <div class=\"titleDropdown titleDropdown--minHeight\" [ngClass]=\"{ 'is-dropdown': IsTitleDropdownOpen }\">\r\n <div class=\"titleDropdown__toggle\" (click)=\"OnTitleDropdownToggle($event)\">\r\n <div class=\"titleDropdown__label\">\r\n <span class=\"client\">\r\n <b><span class=\"titleCategoryAnalytics\">{{ titlePage }}</span></b>\r\n <b><span *ngIf=\"showFilter()\">&nbsp;- {{ filterHead }}</span></b>\r\n <b><span *ngIf=\"subTitle.length > 0\">&nbsp;- {{ subTitle }}</span></b>\r\n </span>\r\n </div>\r\n <div class=\"titleDropdown__icon\"><i class=\"icon-arrow-down\"></i></div>\r\n </div>\r\n <div class=\"titleDropdown__dropdown\">\r\n <p-accordion class=\"prAccordionTitleDropdown\" [multiple]=\"true\">\r\n\r\n <!-- Panels dinámicos basados en groupValues (Group / Region / Country / Bank) -->\r\n <p-accordion-panel *ngFor=\"let g of groupValues; let gi = index\" [value]=\"gi\">\r\n <p-accordion-header>\r\n <div class=\"accordion-container-header\">{{ g.groupname }}</div>\r\n </p-accordion-header>\r\n \r\n <p-accordion-content>\r\n <div class=\"prRadioButtonGroup\" *ngFor=\"let v of g.values\">\r\n <p-radiobutton\r\n class=\"prRadioButton\"\r\n [inputId]=\"'optSort-' + gi + '-' + v.index\"\r\n [name]=\"'optSort_' + gi\"\r\n [value]=\"v.index\"\r\n [(ngModel)]=\"selectIndex\" />\r\n <label class=\"prRadioButtonLabel\" [for]=\"'optSort-' + gi + '-' + v.index\">\r\n {{ v.name }}\r\n </label>\r\n </div>\r\n </p-accordion-content>\r\n </p-accordion-panel>\r\n \r\n <!-- Category (usa tu alterFilterValues / alterFilterValue) -->\r\n <p-accordion-panel *ngIf=\"alterFilterValues?.length\" value=\"category\">\r\n <p-accordion-header>\r\n <div class=\"accordion-container-header\">{{'LBL_CATEGORY' | term : globalTerms.languageCode}}</div>\r\n </p-accordion-header>\r\n \r\n <p-accordion-content>\r\n <!-- ALL -->\r\n <div class=\"prRadioButtonGroup\">\r\n <p-radiobutton\r\n class=\"prRadioButton\"\r\n inputId=\"cat-all\"\r\n name=\"category\"\r\n [value]=\"0\"\r\n [(ngModel)]=\"alterFilterValue\"\r\n (onClick)=\"changeCategories()\" />\r\n <label class=\"prRadioButtonLabel\" for=\"cat-all\">{{'LBL_ALL' | term : globalTerms.languageCode}}</label>\r\n </div>\r\n \r\n <!-- Lista de categorías -->\r\n <div class=\"prRadioButtonGroup\" *ngFor=\"let cat of alterFilterValues\">\r\n <p-radiobutton\r\n class=\"prRadioButton\"\r\n [inputId]=\"'cat-' + cat.feeStypId\"\r\n name=\"category\"\r\n [value]=\"cat.feeStypId\"\r\n [(ngModel)]=\"alterFilterValue\"\r\n (onClick)=\"changeCategories()\" />\r\n <label class=\"prRadioButtonLabel\" [for]=\"'cat-' + cat.feeStypId\">\r\n {{ cat.feeStypDesc }}\r\n </label>\r\n </div>\r\n </p-accordion-content>\r\n </p-accordion-panel>\r\n \r\n <!-- SubCategory (filtrado por changeCategories -> filterSubCategories) -->\r\n <p-accordion-panel *ngIf=\"filterSubCategories?.length\" value=\"subcategory\">\r\n <p-accordion-header>\r\n <div class=\"accordion-container-header\">{{'LBL_SUBCATEGORY' | term : globalTerms.languageCode}}</div>\r\n </p-accordion-header>\r\n \r\n <p-accordion-content>\r\n <!-- ALL -->\r\n <div class=\"prRadioButtonGroup\">\r\n <p-radiobutton\r\n class=\"prRadioButton\"\r\n inputId=\"subcat-all\"\r\n name=\"subcategory\"\r\n [value]=\"0\"\r\n [(ngModel)]=\"subAlterFilterValue\" />\r\n <label class=\"prRadioButtonLabel\" for=\"subcat-all\">{{'LBL_ALL' | term : globalTerms.languageCode}}</label>\r\n </div>\r\n \r\n <!-- Lista subcategorías filtradas -->\r\n <div class=\"prRadioButtonGroup\" *ngFor=\"let sub of filterSubCategories\">\r\n <p-radiobutton\r\n class=\"prRadioButton\"\r\n [inputId]=\"'sub-' + sub.feeStypSubId\"\r\n name=\"subcategory\"\r\n [value]=\"sub.feeStypSubId\"\r\n [(ngModel)]=\"subAlterFilterValue\" />\r\n <label class=\"prRadioButtonLabel\" [for]=\"'sub-' + sub.feeStypSubId\">\r\n {{ sub.feeStypSubDesc }}\r\n </label>\r\n </div>\r\n </p-accordion-content>\r\n </p-accordion-panel>\r\n \r\n </p-accordion>\r\n \r\n <div class=\"titleDropdown__action\">\r\n <div class=\"btnBox btnBox--center\">\r\n <p-button class=\"prButton prButton--primary\" label=\"Apply\" severity=\"primary\" (click)=\"ApplyFilter()\" />\r\n <p-button class=\"prButton prButton--primary\" label=\"Clear\" severity=\"secondary\" (click)=\"ClearFilter()\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"d-flex\">\r\n <span class=\"range mt-1\"><ng-content></ng-content></span>\r\n </div>\r\n </div>\r\n ","import { Directive, forwardRef, Input, OnChanges, SimpleChanges } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { FilterDirective } from \"./filter.directive\";\r\nimport { FilterTypeEnum } from \"../../enums/filter-type.enum\";\r\n\r\n@Directive({\r\n\tselector: \"checkbox-filter\",\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => CheckboxFilterDirective),\r\n\t\t\tmulti: true\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: FilterDirective,\r\n\t\t\tuseExisting: forwardRef(() => CheckboxFilterDirective)\r\n\t\t}\r\n\t],\r\n})\r\nexport class CheckboxFilterDirective extends FilterDirective implements OnChanges, ControlValueAccessor {\r\n\tconstructor() {\r\n\t\tsuper(FilterTypeEnum.Checkbox);\r\n\t}\r\n\t@Input() modeCheckBox: string = \"\";\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tthis.$changes.next(changes);\r\n\t}\r\n}\r\n","import {\r\n Directive,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n OnChanges,\r\n Output,\r\n SimpleChanges,\r\n} from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { FilterDirective } from \"./filter.directive\";\r\nimport { FilterTypeEnum } from \"../../enums/filter-type.enum\";\r\nimport { DateMode } from \"../../constants/date-mode-options.constants\";\r\n\r\n@Directive({\r\n selector: \"date-filter\",\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DateFilterDirective),\r\n multi: true,\r\n },\r\n {\r\n provide: FilterDirective,\r\n useExisting: forwardRef(() => DateFilterDirective),\r\n },\r\n ],\r\n})\r\nexport class DateFilterDirective\r\n extends FilterDirective\r\n implements OnChanges, ControlValueAccessor\r\n{\r\n constructor() {\r\n super(FilterTypeEnum.Date);\r\n }\r\n @Input() format: string = \"MM-yyyy\";\r\n @Input() start: string = \"year\";\r\n @Input() depth: string = \"Year\";\r\n @Input() strictMode: boolean = false;\r\n @Input() min: Date = new Date(1970, 0, 1);\r\n @Input() max: Date = new Date();\r\n @Input() showTodayButton: boolean = false;\r\n @Input() allowEdit: boolean = true;\r\n @Input() range: boolean = false;\r\n @Input() isReadOnly: boolean = false;\r\n @Input() dateMode: DateMode = \"day\";\r\n @Output() open: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() navigated: EventEmitter<any> = new EventEmitter<any>();\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.$changes.next(changes);\r\n }\r\n}\r\n","import { Directive, forwardRef, Input, OnChanges, SimpleChanges } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { FilterDirective } from \"./filter.directive\";\r\nimport { FilterTypeEnum } from \"../../enums/filter-type.enum\";\r\n\r\n@Directive({\r\n\tselector: \"select-detail-filter\",\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => SelectDetailFilterDirective),\r\n\t\t\tmulti: true\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: FilterDirective,\r\n\t\t\tuseExisting: forwardRef(() => SelectDetailFilterDirective)\r\n\t\t}\r\n\t],\r\n})\r\nexport class SelectDetailFilterDirective extends FilterDirective implements OnChanges, ControlValueAccessor {\r\n\tconstructor() {\r\n\t\tsuper(FilterTypeEnum.SelectDetail);\r\n\t}\r\n\r\n\t@Input() id: string = \"\";\r\n\t@Input() fieldText: string = \"\";\r\n\t@Input() fieldValue: string = \"\";\r\n\t@Input() fieldDetail: string = \"\";\r\n\t@Input() data: any[] = [];\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tthis.$changes.next(changes);\r\n\t}\r\n}\r\n","import { Directive, forwardRef, Input, OnChanges } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { FilterDirective } from \"./filter.directive\";\r\nimport { FilterTypeEnum } from \"../../enums/filter-type.enum\";\r\n\r\n@Directive({\r\n\tselector: \"select-filter\",\r\n\tproviders: [\r\n\t {\r\n\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\tuseExisting: forwardRef(() => SelectFilterDirective),\r\n\t\tmulti: true\r\n\t },\r\n\t {\r\n\t\tprovide: FilterDirective,\r\n\t\tuseExisting: forwardRef(() => SelectFilterDirective)\r\n\t }\r\n\t]\r\n })\r\nexport class SelectFilterDirective extends FilterDirective implements OnChanges, ControlValueAccessor {\r\n\tconstructor() {\r\n\t\tsuper(FilterTypeEnum.Select);\r\n\t}\r\n\r\n\t@Input() options: any[] = [];\r\n\t@Input() optionLabel: string = \"text\";\r\n\t@Input() optionValue: string = \"value\";\r\n\t@Input() showFilter: boolean = false;\r\n\t@Input() showAll: boolean = false;\r\n\t@Input() multiple: boolean = false;\r\n\t@Input() popupWidth: string = \"auto\";\r\n\t@Input() appendTo: string = \"\";\r\n\t@Input() panelStyleClass: string = \"prSelect\";\r\n\t@Input() allText: string = \"All\";\r\n\t@Input() maxSelectedLabels: number = 3;\r\n\t@Input() virtualScroll: boolean = false;\r\n\t@Input() selectedItemsLabel: string = \"Selected\";\r\n\t@Input() group: boolean = false;\r\n\t@Input() resetFilterOnHide: boolean = true;\r\n\r\n\tngOnChanges(changes: any): void {\r\n\t\tthis.$changes.next(changes);\r\n\t}\r\n}\r\n","import { ContentChild, Directive, forwardRef } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { FilterDirective } from \"./filter.directive\";\r\nimport { FilterTypeEnum } from \"../../enums/filter-type.enum\";\r\n\r\n@Directive({\r\n\tselector: \"template-filter\",\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => TemplateDirective),\r\n\t\t\tmulti: true\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: FilterDirective,\r\n\t\t\tuseExisting: forwardRef(() => TemplateDirective)\r\n\t\t}\r\n\t],\r\n})\r\nexport class TemplateDirective extends FilterDirective implements ControlValueAccessor {\r\n\tconstructor() {\r\n\t\tsuper(FilterTypeEnum.Template);\r\n\t}\r\n\t@ContentChild(\"content\") content!: any;\r\n}\r\n","import { Directive, forwardRef, OnChanges, SimpleChanges } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { FilterDirective } from \"./filter.directive\";\r\nimport { FilterTypeEnum } from \"../../enums/filter-type.enum\";\r\n\r\n@Directive({\r\n\tselector: \"view-text-area-filter\",\r\n\tproviders: [\r\n\t\t {\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => TextAreaFilterDirective),\r\n\t\t\tmulti: true\r\n\t\t },\r\n\t\t {\r\n\t\t\tprovide: FilterDirective,\r\n\t\t\tuseExisting: forwardRef(() => TextAreaFilterDirective)\r\n\t\t }\r\n\t\t],\r\n})\r\nexport class TextAreaFilterDirective extends FilterDirective implements OnChanges, ControlValueAccessor {\r\n\tconstructor() {\r\n\t\tsuper(FilterTypeEnum.TextArea);\r\n\t}\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tthis.$changes.next(changes);\r\n\t}\r\n}\r\n","import { Directive, forwardRef, OnChanges, SimpleChanges } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { FilterDirective } from \"./filter.directive\";\r\nimport { FilterTypeEnum } from \"../../enums/filter-type.enum\";\r\n\r\n@Directive({\r\n\tselector: \"text-filter\",\r\n\tproviders: [\r\n\t\t{\r\n\t\t provide: NG_VALUE_ACCESSOR,\r\n\t\t useExisting: forwardRef(() => TextFilterDirective),\r\n\t\t multi: true\r\n\t\t},\r\n\t\t{\r\n\t\t provide: FilterDirective,\r\n\t\t useExisting: forwardRef(() => TextFilterDirective)\r\n\t\t}\r\n\t ],\r\n\tstandalone: true,\r\n})\r\nexport class TextFilterDirective extends FilterDirective implements OnChanges, ControlValueAccessor {\r\n\tconstructor() {\r\n\t\tsuper(FilterTypeEnum.Text);\r\n\t}\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tthis.$changes.next(changes);\r\n\t}\r\n}\r\n","import { Directive, forwardRef, Input, OnChanges, SimpleChanges } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { FilterDirective } from \"./filter.directive\";\r\nimport { FilterTypeEnum } from \"../../enums/filter-type.enum\";\r\n\r\n@Directive({\r\n\tselector: \"text-range-filter\",\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => TextRangeFilterDirective),\r\n\t\t\tmulti: true\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: FilterDirective,\r\n\t\t\tuseExisting: forwardRef(() => TextRangeFilterDirective)\r\n\t\t}\r\n\t],\r\n})\r\nexport class TextRangeFilterDirective extends FilterDirective implements OnChanges, ControlValueAccessor {\r\n\tconstructor() {\r\n\t\tsuper(FilterTypeEnum.TextRange);\r\n\t}\r\n\r\n\t@Input() minRange?: string = \"\";\r\n\t@Input() maxRange?: string = \"\";\r\n\t@Input() minLabel: string = \"\";\r\n\t@Input() maxLabel: string = \"\";\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tthis.$changes.next(changes);\r\n\t}\r\n}\r\n","import { Directive, HostListener, Input, Optional, Host } from \"@angular/core\";\r\nimport { TableComponent } from \"../../components/table/table.component\";\r\n\r\n@Directive({\r\n selector: \"[intelicaCellCheckbox]\",\r\n standalone: true,\r\n})\r\nexport class IntelicaCellCheckboxDirective {\r\n @Input(\"intelicaCellCheckbox\") field!: string;\r\n @Input(\"intelicaCellCheckboxRow\") row!: any;\r\n\r\n constructor(@Optional() @Host() private table: TableComponent<any>) {}\r\n\r\n // ngModel (Angular forms)\r\n @HostListener(\"ngModelChange\", [\"$event\"])\r\n onNgModelChange(val: boolean) {\r\n if (!this.table || !this.field || !this.row) return;\r\n this.row[this.field] = val;\r\n this.table.recomputeHeaderState(this.field);\r\n }\r\n\r\n // onChange (PrimeNG p-checkbox)\r\n @HostListener(\"onChange\", [\"$event\"])\r\n onPrimeChange(evt: any) {\r\n const val = !!evt?.checked;\r\n this.onNgModelChange(val);\r\n }\r\n}\r\n","import * as XLSX from \"xlsx\";\r\nimport { Alignment, Workbook, Worksheet } from \"exceljs\";\r\nimport { saveAs } from \"file-saver\";\r\nimport { Injectable } from \"@angular/core\";\r\n@Injectable({\r\n\tprovidedIn: \"root\",\r\n})\r\nexport class HtmlToExcelService {\r\n\tExportTOExcel(idTabla: string, html: string, filename: string, tabname: string, extension: string) {\r\n\t\tlet Table = document.getElementById(idTabla);\r\n\t\tif (Table == null) return;\r\n\t\tTable.innerHTML = \"\";\r\n\t\tTable.innerHTML += html;\r\n\t\tconst ws: XLSX.WorkSheet = XLSX.utils.table_to_sheet(Table, {\r\n\t\t\traw: false,\r\n\t\t});\r\n\t\tconst wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n\t\tXLSX.utils.book_append_sheet(wb, ws, tabname);\r\n\t\tXLSX.writeFile(wb, filename + \".\" + extension);\r\n\t}\r\n\r\n\tprivate readonly Logo: string =\r\n\t\t\"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\";\r\n\tprivate readonly ColumnAligment: Partial<Alignment> = {\r\n\t\tvertical: \"middle\",\r\n\t\thorizontal: \"center\",\r\n\t\twrapText: true,\r\n\t};\r\n\r\n\tprivate readonly BorderStyle = { style: \"thin\" as \"thin\", color: { argb: \"FFFFFF\" } };\r\n\r\n\tasync ExportToExcel(\r\n\t\texcelName: string,\r\n\t\treportTitle: string,\r\n\t\tfilterTitle: string,\r\n\t\trowsSerializate: string,\r\n\t\tcolumns: IExcelColumnName[],\r\n\t\tfilters: IFilter[],\r\n\t\tsubtitles?: string[],\r\n\t\tshowTotalRow?: boolean,\r\n\t\theaderGroups?: IExcelHeaderGroup[],\r\n\t\tchildKey?: string,\r\n\t\tSheetName?: string\r\n\t): Promise<void>;\r\n\r\n\tasync ExportToExcel(options: ExportToExcelOptions): Promise<void>;\r\n\r\n\tasync ExportToExcel(\r\n\t\texcelNameOrOptions: string | ExportToExcelOptions,\r\n\t\treportTitle?: string,\r\n\t\tfilterTitle?: string,\r\n\t\trowsSerializate?: string,\r\n\t\tcolumns?: IExcelColumnName[],\r\n\t\tfilters?: IFilter[],\r\n\t\tsubtitles: string[] = [],\r\n\t\tshowTotalRow: boolean = false,\r\n\t\theaderGroups: IExcelHeaderGroup[] = [],\r\n\t\tchildKey?: string,\r\n\t\tSheetName: string = \"\"\r\n\t): Promise<void> {\r\n\t\tlet options: ExportToExcelOptions;\r\n\r\n\t\tif (typeof excelNameOrOptions === \"string\") {\r\n\t\t\toptions = {\r\n\t\t\t\texcelName: excelNameOrOptions,\r\n\t\t\t\treportTitle: reportTitle!,\r\n\t\t\t\tfilterTitle: filterTitle!,\r\n\t\t\t\trowsSerializate: rowsSerializate!,\r\n\t\t\t\tcolumns: columns!,\r\n\t\t\t\tfilters: filters!,\r\n\t\t\t\tsubtitles,\r\n\t\t\t\tshowTotalRow,\r\n\t\t\t\theaderGroups,\r\n\t\t\t\tchildKey,\r\n\t\t\t\tSheetName,\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\toptions = {\r\n\t\t\t\tsubtitles: [],\r\n\t\t\t\tshowTotalRow: false,\r\n\t\t\t\theaderGroups: [],\r\n\t\t\t\tSheetName: \"\",\r\n\t\t\t\t...excelNameOrOptions,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst workbook = new Workbook();\r\n\t\tconst worksheet = workbook.addWorksheet(options.SheetName || options.reportTitle);\r\n\t\tworksheet.views = [{ showGridLines: false }];\r\n\t\tconst imageId = workbook.addImage({\r\n\t\t\tbase64: this.Logo,\r\n\t\t\textension: \"png\",\r\n\t\t});\r\n\t\tthis.SetReportPage(options.rowsSerializate, worksheet, options.columns, imageId, options.subtitles, options.showTotalRow, options.headerGroups, options.childKey);\r\n\t\tthis.SetTitle(worksheet, options.reportTitle);\r\n\t\tif (options.filters.length > 0) {\r\n\t\t\tconst worksheetFilter = workbook.addWorksheet(options.filterTitle);\r\n\t\t\tworksheetFilter.views = [{ showGridLines: false }];\r\n\t\t\tthis.SetFilterPage(options.filterTitle, worksheetFilter, options.filters);\r\n\t\t}\r\n\t\tconst buffer = await workbook.xlsx.writeBuffer();\r\n\t\tsaveAs(new Blob([buffer]), options.excelName);\r\n\t}\r\n\r\n\tprivate SetTitle(worksheet: Worksheet, reportTitle: string) {\r\n\t\tworksheet.mergeCells(\"D1:I5\");\r\n\t\tconst titleCell = worksheet.getCell(\"D1\");\r\n\t\ttitleCell.value = reportTitle;\r\n\t\ttitleCell.font = {\r\n\t\t\tname: \"Arial\",\r\n\t\t\tbold: true,\r\n\t\t\tsize: 20,\r\n\t\t\tcolor: { argb: \"21409A\" },\r\n\t\t};\r\n\t\ttitleCell.alignment = this.ColumnAligment;\r\n\t}\r\n\tprivate SetReportPage(\r\n\t\trowsSerializate: string,\r\n\t\tworksheet: Worksheet,\r\n\t\tcolumns: IExcelColumnName[],\r\n\t\timageId: number,\r\n\t\tsubtitles: string[] = [],\r\n\t\tshowTotalRow: boolean = false,\r\n\t\theaderGroups: IExcelHeaderGroup[] = [],\r\n\t\tchildKey?: string\r\n\t) {\r\n\t\tlet columnsCell: string[] = [];\r\n\t\tlet rows = JSON.parse(rowsSerializate);\r\n\r\n\t\tconst isHierarchical = this.DetectsHierarchy(rows, childKey);\r\n\t\tif (isHierarchical) {\r\n\t\t\trows = this.FlattenRowsForHierarchy(rows, childKey);\r\n\t\t}\r\n\r\n\t\tlet isHeaderGroup = headerGroups.length > 0;\r\n\t\tconst imageRows = 5;\r\n\t\tconst numberRows = rows.length;\r\n\t\tfor (let i = 0; i < subtitles.length + imageRows; i++) {\r\n\t\t\tworksheet.addRow([\"\"]);\r\n\t\t}\r\n\t\tlet startRow = imageRows + 1 + subtitles.length;\r\n\t\tconst groupedIndices = new Set<number>();\r\n\t\tif (isHeaderGroup) {\r\n\t\t\tfor (const group of headerGroups) {\r\n\t\t\t\tconst startChar = this.GetExcelColumnLetter(group.startColumn);\r\n\t\t\t\tconst endChar = this.GetExcelColumnLetter(group.endColumn);\r\n\t\t\t\tconst range = `${startChar}${startRow}:${endChar}${startRow}`;\r\n\t\t\t\tworksheet.mergeCells(range);\r\n\t\t\t\tconst cellGroup: string = `${startChar}${startRow}`;\r\n\t\t\t\tconst cell = worksheet.getCell(cellGroup);\r\n\r\n\t\t\t\tcell.value = group.name;\r\n\t\t\t\tcell.font = {\r\n\t\t\t\t\tname: \"Arial\",\r\n\t\t\t\t\tbold: true,\r\n\t\t\t\t\tsize: 10,\r\n\t\t\t\t\tcolor: { argb: \"FFFFFF\" },\r\n\t\t\t\t};\r\n\t\t\t\tcell.fill = {\r\n\t\t\t\t\ttype: \"pattern\",\r\n\t\t\t\t\tpattern: \"solid\",\r\n\t\t\t\t\tfgColor: { argb: \"21409A\" },\r\n\t\t\t\t};\r\n\t\t\t\tcell.border = {\r\n\t\t\t\t\ttop: this.BorderStyle,\r\n\t\t\t\t\tleft: this.BorderStyle,\r\n\t\t\t\t\tbottom: this.BorderStyle,\r\n\t\t\t\t\tright: this.BorderStyle,\r\n\t\t\t\t};\r\n\t\t\t\tcell.alignment = {\r\n\t\t\t\t\tvertical: \"middle\",\r\n\t\t\t\t\thorizontal: \"center\",\r\n\t\t\t\t\twrapText: true,\r\n\t\t\t\t};\r\n\t\t\t\tfor (let i = group.startColumn; i <= group.endColumn; i++) {\r\n\t\t\t\t\tgroupedIndices.add(i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tfor (let i = 0; i < columns.length; i++) {\r\n\t\t\tconst colLetter = this.GetExcelColumnLetter(i);\r\n\t\t\tconst topCell = `${colLetter}${startRow}`;\r\n\t\t\tconst bottomCell = `${colLetter}${isHeaderGroup ? startRow + 1 : startRow}`;\r\n\t\t\tif (groupedIndices.has(i)) {\r\n\t\t\t\tcolumnsCell.push(bottomCell);\r\n\t\t\t\tconst cell = worksheet.getCell(bottomCell);\r\n\t\t\t\tcell.value = columns[i].displayColumnName;\r\n\t\t\t\tcell.border = { top: this.BorderStyle, left: this.BorderStyle, bottom: this.BorderStyle, right: this.BorderStyle };\r\n\t\t\t\tcell.alignment = {\r\n\t\t\t\t\tvertical: \"middle\",\r\n\t\t\t\t\thorizontal: \"center\",\r\n\t\t\t\t\twrapText: true,\r\n\t\t\t\t};\r\n\t\t\t} else {\r\n\t\t\t\tworksheet.mergeCells(`${topCell}:${bottomCell}`);\r\n\t\t\t\tconst cell = worksheet.getCell(topCell);\r\n\t\t\t\tcell.value = columns[i].displayColumnName;\r\n\t\t\t\tcell.font = {\r\n\t\t\t\t\tname: \"Arial\",\r\n\t\t\t\t\tbold: true,\r\n\t\t\t\t\tsize: 10,\r\n\t\t\t\t\tcolor: { argb: \"FFFFFF\" },\r\n\t\t\t\t};\r\n\t\t\t\tcell.border = {\r\n\t\t\t\t\ttop: this.BorderStyle,\r\n\t\t\t\t\tleft: this.BorderStyle,\r\n\t\t\t\t\tbottom: this.BorderStyle,\r\n\t\t\t\t\tright: this.BorderStyle,\r\n\t\t\t\t};\r\n\t\t\t\tcell.alignment = this.ColumnAligment;\r\n\t\t\t\tcell.fill = {\r\n\t\t\t\t\ttype: \"pattern\",\r\n\t\t\t\t\tpattern: \"solid\",\r\n\t\t\t\t\tfgColor: { argb: \"21409A\" },\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (isHeaderGroup) startRow += 2;\r\n\t\telse startRow += 1;\r\n\t\tif (showTotalRow) {\r\n\t\t\tconst sums = columns.map(col => {\r\n\t\t\t\tif (col.columnName === \"\") return \"Total\";\r\n\t\t\t\tif (!col.totalRowValue) return null;\r\n\t\t\t\treturn col.totalRowValue\r\n\t\t\t\t\t? {\r\n\t\t\t\t\t\t\tformula: `\"${col.totalRowValue}\"`,\r\n\t\t\t\t\t\t\tresult: col.totalRowValue,\r\n\t\t\t\t\t }\r\n\t\t\t\t\t: null;\r\n\t\t\t});\r\n\t\t\tconst insertedRow = worksheet.insertRow(startRow, sums);\r\n\t\t\tinsertedRow.eachCell((cell, colNumber) => {\r\n\t\t\t\tconst column = columns[colNumber - 1];\r\n\t\t\t\tcell.font = {\r\n\t\t\t\t\tname: \"Arial\",\r\n\t\t\t\t\tbold: true,\r\n\t\t\t\t\tsize: 10,\r\n\t\t\t\t\tcolor: { argb: \"21409A\" },\r\n\t\t\t\t};\r\n\t\t\t\tcell.alignment = {\r\n\t\t\t\t\tvertical: \"middle\",\r\n\t\t\t\t\thorizontal: (column?.alignHorizontal as \"distributed\" | \"justify\" | \"center\" | \"left\" | \"right\" | \"fill\" | \"centerContinuous\") ?? \"left\",\r\n\t\t\t\t};\r\n\t\t\t\tcell.border = {\r\n\t\t\t\t\tbottom: { style: \"thin\", color: { argb: \"FF7F00\" } },\r\n\t\t\t\t};\r\n\t\t\t\tif (typeof cell.value === \"number\") {\r\n\t\t\t\t\tcell.numFmt = \"0.00\";\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tcolumns.forEach((col, index) => {\r\n\t\t\t\tconst cellAddress = `${this.GetExcelColumnLetter(index)}${startRow}`;\r\n\t\t\t\tconst cell = worksheet.getCell(cellAddress);\r\n\t\t\t\tcell.font = {\r\n\t\t\t\t\tname: \"Arial\",\r\n\t\t\t\t\tbold: true,\r\n\t\t\t\t\tsize: 10,\r\n\t\t\t\t\tcolor: { argb: \"21409A\" },\r\n\t\t\t\t};\r\n\t\t\t\tcell.alignment = {\r\n\t\t\t\t\tvertical: \"middle\",\r\n\t\t\t\t\thorizontal: (col.alignHorizontal as \"distributed\" | \"justify\" | \"center\" | \"left\" | \"right\" | \"fill\" | \"centerContinuous\") ?? \"left\",\r\n\t\t\t\t};\r\n\t\t\t\tcell.border = {\r\n\t\t\t\t\tbottom: { style: \"thin\", color: { argb: \"FF7F00\" } },\r\n\t\t\t\t};\r\n\t\t\t});\r\n\t\t\tstartRow++;\r\n\t\t}\r\n\t\t//Inserción de filas\r\n\t\tconst numberColIdx = (() => {\r\n\t\t\tconst byEmpty = columns.findIndex(c => (c.columnName ?? \"\").trim() === \"\");\r\n\t\t\tif (byEmpty !== -1) return byEmpty;\r\n\r\n\t\t\tconst isNumDisplay = (s?: string) => (s ?? \"\").trim().toLowerCase().replace(\"º\", \"°\") === \"n°\";\r\n\r\n\t\t\tconst byDisplay = columns.findIndex(c => isNumDisplay(c.displayColumnName));\r\n\t\t\tconst byColumnName = columns.findIndex(c => isNumDisplay(c.columnName as any));\r\n\r\n\t\t\tconst i = byDisplay !== -1 ? byDisplay : byColumnName;\r\n\t\t\treturn i; // -1 si no hay numeración\r\n\t\t})(); // Detecta la columna de numeración (\"\", \"N°\" o \"Nº\") si existe\r\n\r\n\t\tconst hasNumbering = numberColIdx !== -1;\r\n\r\n\t\t// Columna a indentar:\r\n\t\tlet indentColIdx: number | null = null;\r\n\t\tif (hasNumbering && numberColIdx + 1 < columns.length) {\r\n\t\t\tindentColIdx = numberColIdx + 1;\r\n\t\t} else {\r\n\t\t\tconst nameIdx = columns.findIndex(c => (c.columnName ?? \"\").trim().toLowerCase() === \"name\" || (c.displayColumnName ?? \"\").trim().toLowerCase().includes(\"name\"));\r\n\t\t\tif (nameIdx !== -1) indentColIdx = nameIdx;\r\n\t\t}\r\n\r\n\t\tfor (let rowIndex = 0; rowIndex < numberRows; rowIndex++) {\r\n\t\t\tconst rowValues: any[] = [];\r\n\t\t\tfor (let colIndex = 0; colIndex < columns.length; colIndex++) {\r\n\t\t\t\tif (hasNumbering && colIndex === numberColIdx) {\r\n\t\t\t\t\trowValues.push(isHierarchical ? rows[rowIndex].__hier : rowIndex + 1);\r\n\t\t\t\t} else {\r\n\t\t\t\t\trowValues.push(rows[rowIndex][columns[colIndex].columnName] ?? \"\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tconst insertedRow = worksheet.addRow(rowValues);\r\n\r\n\t\t\tinsertedRow.eachCell((cell, colNumber) => {\r\n\t\t\t\tconst col = columns[colNumber - 1];\r\n\t\t\t\tif (col?.formatNumber) {\r\n\t\t\t\t\tconst fmt = this.GetNumberFormat(col.formatNumber);\r\n\t\t\t\t\tif (fmt) cell.numFmt = fmt;\r\n\t\t\t\t}\r\n\t\t\t\tcell.alignment = {\r\n\t\t\t\t\tvertical: \"middle\",\r\n\t\t\t\t\thorizontal: (col?.alignHorizontal as Alignment[\"horizontal\"]) ?? \"left\",\r\n\t\t\t\t\twrapText: true,\r\n\t\t\t\t};\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t//Formato nombre de columnas\r\n\t\tcolumnsCell.forEach(cellRef => {\r\n\t\t\tconst cell = worksheet.getCell(cellRef);\r\n\t\t\tcell.fill = {\r\n\t\t\t\ttype: \"pattern\",\r\n\t\t\t\tpattern: \"solid\",\r\n\t\t\t\tfgColor: { argb: \"21409A\" },\r\n\t\t\t};\r\n\t\t\tcell.font = {\r\n\t\t\t\tname: \"Arial\",\r\n\t\t\t\tbold: true,\r\n\t\t\t\tsize: 10,\r\n\t\t\t\tcolor: { argb: \"FFFFFF\" },\r\n\t\t\t};\r\n\t\t\tcell.alignment = this.ColumnAligment;\r\n\t\t});\r\n\t\t//Formato de filas\r\n\t\tconst firstDataRow = startRow;\r\n\t\tworksheet.eachRow((row, rowIndex) => {\r\n\t\t\tif (rowIndex < firstDataRow) return;\r\n\t\t\tconst isEven = (rowIndex - firstDataRow) % 2 === 0;\r\n\t\t\trow.eachCell(cell => {\r\n\t\t\t\tif (!isEven) {\r\n\t\t\t\t\tcell.fill = {\r\n\t\t\t\t\t\ttype: \"pattern\",\r\n\t\t\t\t\t\tpattern: \"solid\",\r\n\t\t\t\t\t\tfgColor: { argb: \"F0F4FF\" },\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t\tcell.font = {\r\n\t\t\t\t\tname: \"Arial\",\r\n\t\t\t\t\tsize: 10,\r\n\t\t\t\t\tcolor: { argb: \"0F1533\" },\r\n\t\t\t\t\t...(isHierarchical\r\n\t\t\t\t\t\t? (() => {\r\n\t\t\t\t\t\t\t\tconst dataIndex = rowIndex - firstDataRow;\r\n\t\t\t\t\t\t\t\tconst isApplyBold = rows?.[dataIndex]?.__level === 0 || rows?.[dataIndex]?.__level === 1;\r\n\t\t\t\t\t\t\t\treturn isApplyBold ? { bold: true } : {};\r\n\t\t\t\t\t\t })()\r\n\t\t\t\t\t\t: {}),\r\n\t\t\t\t};\r\n\t\t\t});\r\n\t\t});\r\n\t\t//Logo intelica\r\n\t\tworksheet.addImage(imageId, {\r\n\t\t\ttl: { col: 0.5, row: 1 },\r\n\t\t\text: { width: 217, height: 50 },\r\n\t\t\teditAs: \"absolute\",\r\n\t\t});\r\n\t\t//Subtitulos: Se inserta al final para evitar altere el autoajuste de las columnas\r\n\t\tfor (let i = 0; i < subtitles.length; i++) {\r\n\t\t\tconst range = `A${6 + i}:${this.GetExcelColumnLetter(columns.length - 1)}${6 + i}`;\r\n\t\t\tworksheet.mergeCells(range);\r\n\t\t\tconst cell = worksheet.getCell(`A${6 + i}`);\r\n\t\t\tcell.value = subtitles[i];\r\n\t\t\tcell.font = {\r\n\t\t\t\tname: \"Arial\",\r\n\t\t\t\tsize: 10,\r\n\t\t\t\tcolor: { argb: \"21409A\" },\r\n\t\t\t};\r\n\t\t\tcell.alignment = {\r\n\t\t\t\tvertical: \"middle\",\r\n\t\t\t\thorizontal: \"left\",\r\n\t\t\t\twrapText: true,\r\n\t\t\t};\r\n\t\t}\r\n\t\tthis.AdjustColumnWidth(worksheet, columns, subtitles.length);\r\n\t}\r\n\tprivate SetFilterPage(filterTitle: string, worksheetFilter: Worksheet, filters: IFilter[]) {\r\n\t\tlet widtFilter: number = 30;\r\n\t\tworksheetFilter.addRow([filterTitle]);\r\n\t\tworksheetFilter.mergeCells([\"A1\", \"B2\"]);\r\n\t\tworksheetFilter.columns.forEach(column => {\r\n\t\t\tcolumn.width = widtFilter;\r\n\t\t\tcolumn.alignment = this.ColumnAligment;\r\n\t\t\twidtFilter *= 3;\r\n\t\t});\r\n\t\t[\"A1\", \"B1\"].map(key => {\r\n\t\t\tworksheetFilter.getCell(key).fill = {\r\n\t\t\t\ttype: \"pattern\",\r\n\t\t\t\tpattern: \"solid\",\r\n\t\t\t\tfgColor: { argb: \"FF7F00\" },\r\n\t\t\t\tbgColor: { argb: \"FF7F00\" },\r\n\t\t\t};\r\n\t\t\tworksheetFilter.getCell(key).font = {\r\n\t\t\t\tname: \"Arial\",\r\n\t\t\t\tbold: true,\r\n\t\t\t\tsize: 12,\r\n\t\t\t\tcolor: { argb: \"FFFFFF\" },\r\n\t\t\t};\r\n\t\t});\r\n\t\tfilters.forEach((element, index) => {\r\n\t\t\tlet row = worksheetFilter.addRow([element.key, element.value]);\r\n\t\t\tlet color = index % 2 === 1 ? \"F0F4FF\" : \"FFFFFF\";\r\n\r\n\t\t\trow.eachCell(cell => {\r\n\t\t\t\tcell.fill = {\r\n\t\t\t\t\ttype: \"pattern\",\r\n\t\t\t\t\tpattern: \"solid\",\r\n\t\t\t\t\tfgColor: { argb: color },\r\n\t\t\t\t\tbgColor: { argb: color },\r\n\t\t\t\t};\r\n\t\t\t\tcell.font = {\r\n\t\t\t\t\tname: \"Arial\",\r\n\t\t\t\t\tbold: false,\r\n\t\t\t\t\tsize: 10,\r\n\t\t\t\t\tcolor: { argb: \"0F1533\" },\r\n\t\t\t\t};\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\tprivate AdjustColumnWidth(worksheet: Worksheet, columns: IExcelColumnName[], numSubtitles: number) {\r\n\t\tworksheet.columns.forEach((column, index) => {\r\n\t\t\tif (!column.values) return;\r\n\t\t\tif (columns[index] == undefined) return;\r\n\t\t\tlet columnWidth = columns[index].width ?? Math.max(...column.values.map(v => (v ? v.toString().length : 0)).filter(v => typeof v === \"number\"), columns[index].displayColumnName.length) * 1.4;\r\n\t\t\tcolumn.width = Math.min(Math.max(columnWidth, 5), 100);\r\n\t\t});\r\n\t\tworksheet.eachRow((row, rowIndex) => {\r\n\t\t\tlet maxLines = 1;\r\n\t\t\trow.eachCell((cell, colNumber) => {\r\n\t\t\t\tif (numSubtitles > 0 && cell.fullAddress.row > 5 && cell.fullAddress.row <= 5 + numSubtitles) return;\r\n\t\t\t\tif (cell.value) {\r\n\t\t\t\t\tlet text = typeof cell.value === \"object\" ? cell.text : cell.value.toString();\r\n\t\t\t\t\tlet columnWidth = worksheet.getColumn(colNumber).width ?? 10;\r\n\t\t\t\t\tlet charsPerLine = columnWidth * 1.2;\r\n\t\t\t\t\tlet estimatedLines = Math.ceil(text.length / charsPerLine);\r\n\t\t\t\t\tmaxLines = Math.max(maxLines, estimatedLines);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\trow.height = Math.min(Math.max(15 * maxLines, 15), 30);\r\n\t\t});\r\n\t}\r\n\tasync ExportToExcelRawData({ excelName, reportTitle, filterTitle, rowsSerializate, columns, filters, orderColumn = false }: ExportExcelCommand): Promise<void> {\r\n\t\tconst workbook = new Workbook();\r\n\t\tconst worksheet = workbook.addWorksheet(reportTitle);\r\n\t\tconst rows = JSON.parse(rowsSerializate);\r\n\t\tworksheet.views = [{ showGridLines: false }];\r\n\t\tconst allColumns = orderColumn ? [{ displayColumnName: \"N°\" }, ...columns] : columns;\r\n\t\tallColumns.forEach((col, index) => {\r\n\t\t\tconst columnLetter = this.GetExcelColumnLetter(index);\r\n\t\t\tconst headerCell = worksheet.getCell(`${columnLetter}1`);\r\n\t\t\theaderCell.value = col.displayColumnName;\r\n\t\t\theaderCell.alignment = { horizontal: \"center\", vertical: \"middle\" };\r\n\t\t\theaderCell.font = { name: \"Arial\", bold: true, size: 10 };\r\n\t\t});\r\n\t\tconst maxLengths = allColumns.map(col => col.displayColumnName.length);\r\n\t\trows.forEach((rowData: any, rowIndex: number) => {\r\n\t\t\tconst rowValues = allColumns.map((col, colIndex) => {\r\n\t\t\t\tif (orderColumn && colIndex === 0) {\r\n\t\t\t\t\treturn rowIndex + 1;\r\n\t\t\t\t}\r\n\t\t\t\tconst originalColIndex = orderColumn ? colIndex - 1 : colIndex;\r\n\t\t\t\treturn rowData[columns[originalColIndex].columnName]?.toString() || \"\";\r\n\t\t\t});\r\n\t\t\trowValues.forEach((value, i) => {\r\n\t\t\t\tconst length = value.length;\r\n\t\t\t\tif (length > maxLengths[i]) {\r\n\t\t\t\t\tmaxLengths[i] = length;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tworksheet.addRow(rowValues);\r\n\t\t});\r\n\t\tallColumns.forEach((_, index) => {\r\n\t\t\tworksheet.getColumn(index + 1).width = maxLengths[index] + 2;\r\n\t\t});\r\n\t\tif (filters?.length) {\r\n\t\t\tconst worksheetFilter = workbook.addWorksheet(filterTitle);\r\n\t\t\tworksheetFilter.views = [{ showGridLines: false }];\r\n\t\t\tthis.SetFilterPage(filterTitle, worksheetFilter, filters);\r\n\t\t}\r\n\t\tconst buffer = await workbook.xlsx.writeBuffer();\r\n\t\tsaveAs(new Blob([buffer]), excelName);\r\n\t}\r\n\tasync ExportToCSVRaw(excelName: string, rowsSerializate: string): Promise<void> {\r\n\t\tconst rows: { linea: string }[] = JSON.parse(rowsSerializate);\r\n\t\tconst csvLines: string[] = rows.map(r => r.linea);\r\n\t\tconst csvContent = csvLines.join(\"\\n\");\r\n\t\tconst blob = new Blob([\"\\uFEFF\" + csvContent], {\r\n\t\t\ttype: \"text/csv;charset=utf-8;\",\r\n\t\t});\r\n\t\tsaveAs(blob, excelName.endsWith(\".csv\") ? excelName : `${excelName}.csv`);\r\n\t}\r\n\tprivate GetExcelColumnLetter(columnNumber: number): string {\r\n\t\tlet letter = \"\";\r\n\t\twhile (columnNumber >= 0) {\r\n\t\t\tletter = String.fromCharCode(65 + (columnNumber % 26)) + letter;\r\n\t\t\tcolumnNumber = Math.floor(columnNumber / 26) - 1;\r\n\t\t}\r\n\t\treturn letter;\r\n\t}\r\n\r\n\tprivate GetNumberFormat(formatNumber: string): string {\r\n\t\tconst formats: Record<string, string> = {\r\n\t\t\tinteger: '#,##0;(#,##0);\"-\"',\r\n\t\t\tdecimal: '#,##0.00;(#,##0.00);\"-\"',\r\n\t\t\tpercent_2: '#0.00\"%\";(#0.00\"%\");\"-\"',\r\n\t\t\tpercent_4: '#0.0000\"%\";(#0.0000\"%\");\"-\"',\r\n\t\t};\r\n\t\treturn formats[formatNumber] || \"\";\r\n\t}\r\n\r\n\tprivate FlattenRowsForHierarchy(rows: any[], childKey = \"details\", path: number[] = []): any[] {\r\n\t\tconst flat: any[] = [];\r\n\t\trows?.forEach((item, idx) => {\r\n\t\t\tconst seq = [...path, idx + 1];\r\n\t\t\tconst hasChildren = Array.isArray(item?.[childKey]) && item[childKey].length > 0;\r\n\t\t\tconst copy = { ...item };\r\n\t\t\tdelete copy[childKey];\r\n\r\n\t\t\tflat.push({\r\n\t\t\t\t...copy,\r\n\t\t\t\t__hier: seq.join(\".\"), // \"1\" | \"1.1\" | \"2.2.1\" ...\r\n\t\t\t\t__level: seq.length - 1, // 0 = raíz, 1 = hijo, 2 = nieto...\r\n\t\t\t\t__hasChildren: hasChildren, // para formateo en negrita\r\n\t\t\t});\r\n\r\n\t\t\tif (hasChildren) {\r\n\t\t\t\tflat.push(...this.FlattenRowsForHierarchy(item[childKey], childKey, seq));\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn flat;\r\n\t}\r\n\r\n\tprivate DetectsHierarchy(rows: any[], childKey = \"details\"): boolean {\r\n\t\treturn rows?.some(r => Array.isArray(r?.[childKey]) && r[childKey].length > 0) ?? false;\r\n\t}\r\n}\r\nexport interface ExportExcelCommand {\r\n\texcelName: string;\r\n\treportTitle: string;\r\n\tfilterTitle: string;\r\n\trowsSerializate: string;\r\n\tcolumns: IExcelColumnName[];\r\n\tfilters: IFilter[];\r\n\torderColumn?: boolean;\r\n}\r\nexport interface ICell {\r\n\tindex: number;\r\n\tcells: string[];\r\n}\r\nexport interface IExcelColumnName {\r\n\tcolumnName: string;\r\n\tdisplayColumnName: string;\r\n\talignHorizontal?: string; // 'distributed' | 'justify' | 'center' | 'left' | 'right' | 'fill' | 'centerContinuous' type alignment and left for default\r\n\twidth?: number;\r\n\ttotalRowValue?: string;\r\n\tformatNumber?: \"integer\" | \"decimal\" | \"percent_2\" | \"percent_4\";\r\n}\r\nexport interface IFilter {\r\n\tkey: string;\r\n\tvalue: string;\r\n}\r\nexport interface IExcelHeaderGroup {\r\n\tstartColumn: number;\r\n\tendColumn: number;\r\n\tname: string;\r\n}\r\n\r\nexport interface ExportToExcelOptions {\r\n\texcelName: string;\r\n\treportTitle: string;\r\n\tfilterTitle: string;\r\n\trowsSerializate: string;\r\n\tcolumns: IExcelColumnName[];\r\n\tfilters: IFilter[];\r\n\tsubtitles?: string[];\r\n\tshowTotalRow?: boolean;\r\n\theaderGroups?: IExcelHeaderGroup[];\r\n\tchildKey?: string;\r\n\tSheetName?: string;\r\n}\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { inject, Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { LanguageSimpleResponse } from \"../dto/languageResponses\";\r\nimport { ConfigService } from \"./config.service\";\r\n@Injectable({\r\n\tprovidedIn: \"root\",\r\n})\r\nexport class LanguageService {\r\n\tprivate readonly _http = inject(HttpClient);\r\n\tprivate readonly _configService = inject(ConfigService);\r\n\tGetAllLanguage(): Observable<LanguageSimpleResponse[]> {\r\n\t\treturn this._http.get<LanguageSimpleResponse[]>(`${this._configService.environment?.configurationPath}/Language`);\r\n\t}\r\n}\r\n","export function darkenColor(input: string, amount = 0.2): string {\r\n const clamp = (v: number) => Math.max(0, Math.min(255, v));\r\n const toHex = (v: number) => v.toString(16).padStart(2, '0');\r\n\r\n if (input.startsWith('#')) {\r\n const r = parseInt(input.slice(1, 3), 16);\r\n const g = parseInt(input.slice(3, 5), 16);\r\n const b = parseInt(input.slice(5, 7), 16);\r\n return `#${toHex(clamp(Math.round(r * (1 - amount))))}${toHex(clamp(Math.round(g * (1 - amount))))}${toHex(clamp(Math.round(b * (1 - amount))))}`;\r\n }\r\n const m = input.match(/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*([\\d.]+))?\\)/i);\r\n if (m) {\r\n const r = clamp(Math.round(+m[1] * (1 - amount)));\r\n const g = clamp(Math.round(+m[2] * (1 - amount)));\r\n const b = clamp(Math.round(+m[3] * (1 - amount)));\r\n const a = m[4] !== undefined ? `, ${m[4]}` : '';\r\n return `rgba(${r}, ${g}, ${b}${a})`;\r\n }\r\n return input;\r\n}","import { inject, Injectable } from \"@angular/core\";\r\nimport {\r\n\tEChartsOption,\r\n\tPieSeriesOption,\r\n\tLegendComponentOption,\r\n\tBarSeriesOption,\r\n\tGridComponentOption,\r\n\tTooltipComponentFormatterCallback,\r\n\tTooltipComponentFormatterCallbackParams,\r\n\tLabelFormatterCallback,\r\n\tDefaultLabelFormatterCallbackParams,\r\n\tLineSeriesOption,\r\n\tYAXisComponentOption,\r\n} from \"echarts\";\r\nimport { Color, getColor } from \"../constants/color.constants\";\r\nimport { SharedService } from \"./shared.service\";\r\nimport { darkenColor } from \"../functions/echart.util\";\r\n\r\n@Injectable({\r\n\tprovidedIn: \"root\",\r\n})\r\nexport class EchartService {\r\n\tprivate readonly _sharedService = inject(SharedService);\r\n\r\n\t/// Chart Generals\r\n\r\n\tprivate getDefultAxisConfiguration(type: string, data?: any[], showAxis: boolean = true, showSplitLine: boolean = false): any {\r\n\t\treturn {\r\n\t\t\tshow: showAxis,\r\n\t\t\ttype: type,\r\n\t\t\tdata: data,\r\n\t\t\taxisTick: {\r\n\t\t\t\tshow: false,\r\n\t\t\t},\r\n\t\t\taxisLine: {\r\n\t\t\t\tshow: false,\r\n\t\t\t\tlineStyle: { color: getColor(\"gray\"), type: \"dashed\" },\r\n\t\t\t},\r\n\t\t\tsplitLine: {\r\n\t\t\t\tshow: showSplitLine,\r\n\t\t\t\tlineStyle: {\r\n\t\t\t\t\tcolor: Color.gray,\r\n\t\t\t\t\ttype: \"dashed\",\r\n\t\t\t\t\twidth: 1,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\taxisLabel: {\r\n\t\t\t\tshow: showAxis,\r\n\t\t\t\tcolor: Color.gray3,\r\n\t\t\t\tfontSize: 14,\r\n\t\t\t\tpadding: 10,\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tprivate getCategoryAxisConfiguration(data: any[]) {\r\n\t\treturn this.getDefultAxisConfiguration(\"category\", data, true);\r\n\t}\r\n\r\n\tprivate getValueAxisConfiguration(showAxis: boolean = false, format: boolean = false, showAxisLines: boolean = false) {\r\n\t\tlet axisConfiguration = this.getDefultAxisConfiguration(\"value\", undefined, showAxis, showAxisLines);\r\n\t\tif (format) {\r\n\t\t\taxisConfiguration.axisLabel.formatter = (value: number) => this._sharedService.FormatNumberWithSuffix(value);\r\n\t\t}\r\n\t\treturn axisConfiguration;\r\n\t}\r\n\r\n\tprivate getGridConfiguration(): GridComponentOption {\r\n\t\treturn {\r\n\t\t\tleft: \"0%\",\r\n\t\t\tright: \"0%\",\r\n\t\t\t//bottom: '0%',\r\n\t\t\tcontainLabel: true,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate getLegendConfiguration(): LegendComponentOption {\r\n\t\treturn {\r\n\t\t\torient: \"horizontal\", // 'horizontal | vertical'\r\n\t\t\ticon: \"circle\",\r\n\t\t\tbottom: 5,\r\n\t\t\talign: \"auto\",\r\n\t\t\titemGap: 20,\r\n\t\t\ttextStyle: { color: Color.blue, fontSize: 14 },\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @param color - Color of the tooltip\r\n\t * @param title - Title of the tooltip\r\n\t * @param body - Body of the tooltip\r\n\t * @returns - Tooltip HTML string\r\n\t */\r\n\tgetTooltipFormatter(color: string, title: string, body: string): string {\r\n\t\tconst titleHtml =\r\n\t\t\ttitle.length > 0\r\n\t\t\t\t? `\r\n\t\t\t<b style=\" font-size: 13px;\">${title} </b><br>\r\n\t\t\t<hr style=\"border: 1px solid ${color}; margin: 4px 0;\">`\r\n\t\t\t\t: \"\";\r\n\t\treturn `\r\n\t \t<div style=\"font-size: 12px; boder-color: ${color}; color: ${color}; border-radius: 6px; min-width: 120px; text-align: center;\">\r\n\t\t\t${titleHtml}\r\n\t\t\t${body}\r\n\t\t</div>\r\n\t `;\r\n\t}\r\n\r\n\t/// Charts Configuration\r\n\r\n\t/// BAR CHARTS\r\n\r\n\t/**\r\n\t *\r\n\t * @param categories - Array of categories for the x-axis\r\n\t * @param series - Array of series data, each containing name, value, and color\r\n\t * @param labelConfig - Optional label configuration for the bars\r\n\t * @param tooltipConfig - Optional tooltip configuration for the bars\r\n\t * @param showLegend - Optional flag to show the legend\r\n\t * @returns - EChartsOption - Configuration object for the bar chart\r\n\t */\r\n\tgetBarChartOptions(\r\n\t\tcategories: string[],\r\n\t\tseries: { name: string; value: any; color: string }[],\r\n\t\tlabelConfig?: LabelFormatterCallback<DefaultLabelFormatterCallbackParams>,\r\n\t\ttooltipConfig?: TooltipComponentFormatterCallback<TooltipComponentFormatterCallbackParams>,\r\n\t\tshowLegend: boolean = false\r\n\t): EChartsOption {\r\n\t\treturn {\r\n\t\t\txAxis: this.getCategoryAxisConfiguration(categories),\r\n\t\t\tyAxis: this.getValueAxisConfiguration(),\r\n\t\t\tseries: [\r\n\t\t\t\t...series.map(\r\n\t\t\t\t\t(item): BarSeriesOption => ({\r\n\t\t\t\t\t\ttype: \"bar\",\r\n\t\t\t\t\t\tname: item.name,\r\n\t\t\t\t\t\titemStyle: { color: item.color },\r\n\t\t\t\t\t\tdata: item.value,\r\n\t\t\t\t\t\t// barWidth: \"33%\",\r\n\t\t\t\t\t\tbarGap: \"0%\",\r\n\t\t\t\t\t\tlabel: {\r\n\t\t\t\t\t\t\tshow: true,\r\n\t\t\t\t\t\t\tposition: \"top\",\r\n\t\t\t\t\t\t\tcolor: Color.blue,\r\n\t\t\t\t\t\t\tfontSize: 12,\r\n\t\t\t\t\t\t\tformatter: labelConfig,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t})\r\n\t\t\t\t),\r\n\t\t\t],\r\n\t\t\ttooltip: {\r\n\t\t\t\ttrigger: \"item\",\r\n\t\t\t\tbackgroundColor: \"#FFFFFF\",\r\n\t\t\t\tborderWidth: 2,\r\n\t\t\t\ttextStyle: { fontSize: 12 },\r\n\t\t\t\tformatter: tooltipConfig,\r\n\t\t\t},\r\n\t\t\tgrid: this.getGridConfiguration(),\r\n\t\t\tlegend: showLegend ? this.getLegendConfiguration() : undefined,\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @param categories - Array of categories for the x-axis\r\n\t * @param series - Array of series data, each containing name, value, and color\r\n\t * @param labelConfig - Optional label configuration for the bars\r\n\t * @param tooltipConfig - Optional tooltip configuration for the bars\r\n\t * @param showLegend - Optional flag to show the legend\r\n\t * @returns - EChartsOption - Configuration object for the bar chart\r\n\t */\r\n\tgetBarChartStackOptions(\r\n\t\tcategories: string[],\r\n\t\tseries: { name: string; value: any; color: string }[],\r\n\t\tlabelConfig?: LabelFormatterCallback<DefaultLabelFormatterCallbackParams>,\r\n\t\ttooltipConfig?: TooltipComponentFormatterCallback<TooltipComponentFormatterCallbackParams>,\r\n\t\tshowLegend: boolean = false\r\n\t): EChartsOption {\r\n\t\tlet barBase = this.getBarChartOptions(categories, series, labelConfig, tooltipConfig, showLegend);\r\n\t\t(barBase.series as BarSeriesOption[]).forEach((serie, index) => {\r\n\t\t\t// serie.barWidth = \"50%\";\r\n\t\t\t// serie.barGap = \"0%\";\r\n\t\t\tserie.barCategoryGap = \"10%\";\r\n\t\t\tserie.stack = \"total\";\r\n\t\t\tif (index < series.length - 1) {\r\n\t\t\t\tserie.label = undefined;\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn barBase;\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @param categories - Array of categories for the y-axis\r\n\t * @param series - Array of series data, each containing name, value, and color\r\n\t * @param labelConfig - Optional label configuration for the bars\r\n\t * @param tooltipConfig - Optional tooltip configuration for the bars\r\n\t * @param showLegend - Optional flag to show the legend\r\n\t * @returns - EChartsOption - Configuration object for the bar chart\r\n\t */\r\n\tgetBarChartHorizontalOptions(\r\n\t\tcategories: string[],\r\n\t\tseries: { name: string; value: any; color: string }[],\r\n\t\tlabelConfig?: LabelFormatterCallback<DefaultLabelFormatterCallbackParams>,\r\n\t\ttooltipConfig?: TooltipComponentFormatterCallback<TooltipComponentFormatterCallbackParams>,\r\n\t\tshowLegend: boolean = false,\r\n\t\tenableSelectStyle: boolean = false // 👈 nuevo\r\n\t): EChartsOption {\r\n\t\tlet barBase = this.getBarChartOptions(categories, series, labelConfig, tooltipConfig, showLegend);\r\n\t\tbarBase.xAxis = this.getValueAxisConfiguration();\r\n\t\tbarBase.yAxis = this.getCategoryAxisConfiguration(categories);\r\n\r\n\t\t(barBase.series as BarSeriesOption[]).forEach((serie, idx) => {\r\n\t\t\tif (serie.label) {\r\n\t\t\t\tserie.label.position = \"right\";\r\n\t\t\t}\r\n\r\n\t\t\tconst baseColor =\r\n\t\t\t\t(serie.itemStyle as any)?.color ??\r\n\t\t\t\t(series[idx] && series[idx].color) ??\r\n\t\t\t\t'#FF8A00';\r\n\r\n\t\t\tserie.itemStyle = {\r\n\t\t\t\t...(serie.itemStyle || {}),\r\n\t\t\t\tcolor: baseColor,\r\n\t\t\t\tborderWidth: 0,\r\n\t\t\t};\r\n\r\n\t\t\tif (enableSelectStyle) {\r\n\t\t\t\t(serie as any).selectedMode = 'single';\r\n\r\n\t\t\t\tconst selectedColor = darkenColor(String(baseColor), 0.38);\r\n\r\n\t\t\t\tserie.select = {\r\n\t\t\t\t\titemStyle: {\r\n\t\t\t\t\t\tcolor: selectedColor,\r\n\t\t\t\t\t\tborderWidth: 0,\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (barBase.grid) {\r\n\t\t\t(barBase.grid as GridComponentOption).left = \"10%\";\r\n\t\t\t(barBase.grid as GridComponentOption).right = \"10%\";\r\n\t\t\t(barBase.grid as GridComponentOption).bottom = \"10%\";\r\n\t\t\t(barBase.grid as GridComponentOption).containLabel = true;\r\n\t\t}\r\n\t\treturn barBase;\r\n\t}\t \r\n\r\n\t/**\r\n\t *\r\n\t * @param categories - Array of categories for the y-axis\r\n\t * @param series - Array of series data, each containing name, value, and color\r\n\t * @param labelConfig - Optional label configuration for the bars\r\n\t * @param tooltipConfig - Optional tooltip configuration for the bars\r\n\t * @param showLegend - Optional flag to show the legend\r\n\t * @returns - EChartsOption - Configuration object for the bar chart\r\n\t */\r\n\tgetBarChartHorizontalStackOptions(\r\n\t\tcategories: string[],\r\n\t\tseries: { name: string; value: any; color: string }[],\r\n\t\tlabelConfig?: LabelFormatterCallback<DefaultLabelFormatterCallbackParams>,\r\n\t\ttooltipConfig?: TooltipComponentFormatterCallback<TooltipComponentFormatterCallbackParams>,\r\n\t\tshowLegend: boolean = false\r\n\t): EChartsOption {\r\n\t\tlet barBase = this.getBarChartHorizontalOptions(categories, series, labelConfig, tooltipConfig, showLegend);\r\n\t\t(barBase.series as BarSeriesOption[]).forEach((serie, index) => {\r\n\t\t\t// serie.barWidth = \"50%\";\r\n\t\t\t// serie.barGap = \"0%\";\r\n\t\t\tserie.barCategoryGap = \"10%\";\r\n\t\t\tserie.stack = \"total\";\r\n\t\t\tif (serie.label) {\r\n\t\t\t\tserie.label.position = \"right\";\r\n\t\t\t}\r\n\t\t\tif (index < series.length - 1) {\r\n\t\t\t\tserie.label = undefined;\r\n\t\t\t}\r\n\t\t});\r\n\t\tif (barBase.grid) {\r\n\t\t\t(barBase.grid as GridComponentOption).left = \"10%\";\r\n\t\t\t(barBase.grid as GridComponentOption).right = \"10%\";\r\n\t\t\t(barBase.grid as GridComponentOption).bottom = \"10%\";\r\n\t\t\t(barBase.grid as GridComponentOption).containLabel = true;\r\n\t\t}\r\n\t\treturn barBase;\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @param categories - Array of categories for the y-axis\r\n\t * @param series - Array of series data, each containing name, value, and color\r\n\t * @param labelConfig - Optional label configuration for the bars\r\n\t * @param tooltipConfig - Optional tooltip configuration for the bars\r\n\t * @param showLegend - Optional flag to show the legend\r\n\t * @returns - EChartsOption - Configuration object for the bar chart\r\n\t */\r\n\tgetBarChartTopOptions(\r\n\t\tcategories: string[],\r\n\t\tseries: { name: string; value: any; color: string }[],\r\n\t\tcategoryWidth: number = 240,\r\n\t\tlabelConfig?: LabelFormatterCallback<DefaultLabelFormatterCallbackParams>,\r\n\t\ttooltipConfig?: TooltipComponentFormatterCallback<TooltipComponentFormatterCallbackParams>,\r\n\t\tshowLegend: boolean = false,\r\n\t\tcategoryFormatter?: (value: string, index: number) => string\r\n\t): EChartsOption {\r\n\t\tconst barBase = this.getBarChartHorizontalOptions(categories, series, labelConfig, tooltipConfig, showLegend, true);\r\n\t\r\n\t\tif (barBase.yAxis) {\r\n\t\t\tconst y = barBase.yAxis as YAXisComponentOption;\r\n\t\t\tconst gr = barBase.grid as GridComponentOption;\r\n\t\r\n\t\t\tconst defaultCategoryFormatter = (value: string | number, index: number) => {\r\n\t\t\t\tconst sangriaBase = '\\u2008\\u2008\\u2008\\u2008\\u2008\\u2008\\u2009';\r\n\t\t\t\tconst lineLength = 35;\r\n\t\t\t\r\n\t\t\t\tconst text = String(value ?? '');\r\n\t\t\t\tconst prefix = `${index + 1} - `;\r\n\t\t\t\r\n\t\t\t\tconst digitCount = String(index + 1).length;\r\n\t\t\t\t\r\n\t\t\t\tlet extraRepeat = 0;\r\n\t\t\t\tif (digitCount === 2) extraRepeat = 2;\r\n\t\t\t\telse if (digitCount === 3) extraRepeat = 5;\r\n\t\t\t\r\n\t\t\t\tconst sangria = sangriaBase + '\\u2008'.repeat(extraRepeat);\r\n\t\t\t\r\n\t\t\t\tconst words = text.split(' ');\r\n\t\t\t\tconst lines: string[] = [];\r\n\t\t\t\tlet current = '';\r\n\t\t\t\r\n\t\t\t\tfor (const w of words) {\r\n\t\t\t\t\tconst test = current ? `${current} ${w}` : w;\r\n\t\t\t\t\tif (test.length <= lineLength) current = test;\r\n\t\t\t\t\telse { if (current) lines.push(current); current = w; }\r\n\t\t\t\t}\r\n\t\t\t\tif (current) lines.push(current);\r\n\t\t\t\r\n\t\t\t\treturn prefix + lines.map((ln, i) => (i === 0 ? ln : `${sangria}${ln}`)).join('\\n');\r\n\t\t\t};\r\n\t\t\t\r\n\t\t\ty.inverse = true;\r\n\t\t\ty.axisLabel = {\r\n\t\t\t\t...y.axisLabel,\r\n\t\t\t\tcolor: Color.blue,\r\n\t\t\t\tfontSize: 12,\r\n\t\t\t\twidth: categoryWidth,\r\n\t\t\t\toverflow: \"break\",\r\n\t\t\t\talign: \"left\",\r\n\t\t\t\tverticalAlign: \"middle\",\r\n\t\t\t\tmargin: categoryWidth + 30,\r\n\t\t\t\tlineHeight: 16,\r\n\t\t\t\tformatter: categoryFormatter || defaultCategoryFormatter,\r\n\t\t\t};\r\n\t\r\n\t\t\tgr.top = \"0%\";\r\n\t\t\tgr.left = -1 * categoryWidth + 60;\r\n\t\t\tgr.right = 20;\r\n\t\t\tgr.bottom = \"0%\";\r\n\t\t\tgr.containLabel = true;\r\n\t\t}\r\n\t\r\n\t\t(barBase.series as BarSeriesOption[]).forEach((serie) => {\r\n\t\t\tserie.label = {\r\n\t\t\t\t...(serie.label || {}),\r\n\t\t\t\tformatter: labelConfig,\r\n\t\t\t};\r\n\t\t});\r\n\t\r\n\t\treturn barBase;\r\n\t}\r\n\r\n\t/// LINE CHARTS\r\n\r\n\t/**\r\n\t *\r\n\t * @param categories - Array of categories for the x-axis\r\n\t * @param series - Array of series data, each containing name, value, and color\r\n\t * @param labelConfig - Optional label configuration for the lines\r\n\t * @param tooltipConfig - Optional tooltip configuration for the lines\r\n\t * @param showLegend - Optional flag to show the legend\r\n\t * @returns - EChartsOption - Configuration object for the line chart\r\n\t */\r\n\tgetLineChartOptions(\r\n\t\tcategories: string[],\r\n\t\tseries: { name: string; value: any; color: string }[],\r\n\t\tlabelConfig: LabelFormatterCallback<DefaultLabelFormatterCallbackParams>,\r\n\t\ttooltipConfig?: TooltipComponentFormatterCallback<TooltipComponentFormatterCallbackParams>,\r\n\t\tshowLegend: boolean = false\r\n\t): EChartsOption {\r\n\t\treturn {\r\n\t\t\txAxis: this.getCategoryAxisConfiguration(categories),\r\n\t\t\tyAxis: this.getValueAxisConfiguration(true, true, true),\r\n\t\t\tseries: [\r\n\t\t\t\t...series.map(\r\n\t\t\t\t\t(item, seriesIndex): LineSeriesOption => ({\r\n\t\t\t\t\t\ttype: \"line\",\r\n\t\t\t\t\t\tname: item.name,\r\n\t\t\t\t\t\tdata: item.value,\r\n\t\t\t\t\t\titemStyle: { color: item.color },\r\n\t\t\t\t\t\tsymbol: \"circle\",\r\n\t\t\t\t\t\tsymbolSize: 14,\r\n\t\t\t\t\t\temphasis: {\r\n\t\t\t\t\t\t\titemStyle: {\r\n\t\t\t\t\t\t\t\tcolor: item.color,\r\n\t\t\t\t\t\t\t\tborderColor: item.color + \"40\", // 40 ( hexadecimal ) = .25 ( decimal )\r\n\t\t\t\t\t\t\t\tborderWidth: 16,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t})\r\n\t\t\t\t),\r\n\t\t\t],\r\n\t\t\ttooltip: {\r\n\t\t\t\ttrigger: \"item\",\r\n\t\t\t\tbackgroundColor: \"#FFFFFF\",\r\n\t\t\t\tborderWidth: 2,\r\n\t\t\t\ttextStyle: { fontSize: 12 },\r\n\t\t\t\tformatter: tooltipConfig,\r\n\t\t\t},\r\n\t\t\tdataZoom: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttype: \"inside\", // inside | slider\r\n\t\t\t\t\tshow: true,\r\n\t\t\t\t\theight: 12,\r\n\t\t\t\t\tbottom: 10,\r\n\t\t\t\t\tbackgroundColor: \"#ddd\",\r\n\t\t\t\t\tborderColor: \"transparent\",\r\n\t\t\t\t\tfillerColor: \"rgba(150, 150, 150, 0.5)\",\r\n\t\t\t\t\thandleSize: \"80%\",\r\n\t\t\t\t\thandleStyle: {\r\n\t\t\t\t\t\tcolor: \"#A0A0A0\",\r\n\t\t\t\t\t\tborderColor: \"transparent\",\r\n\t\t\t\t\t\tshadowBlur: 2,\r\n\t\t\t\t\t\tshadowColor: \"rgba(0, 0, 0, 0.2)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tshowDataShadow: false,\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\ttype: \"inside\",\r\n\t\t\t\t\tshowDataShadow: false,\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tlegend: showLegend ? this.getLegendConfiguration() : undefined,\r\n\t\t};\r\n\t}\r\n\r\n\t/// PIE CHARTS\r\n\r\n\t/**\r\n\t *\r\n\t * @param data - Array of series data, each containing name, value, and color\r\n\t * @param labelConfig - Optional label configuration\r\n\t * @param tooltipConfig - Optional tooltip configuration\r\n\t * @returns - EChartsOption - Configuration object for the pie\r\n\t */\r\n\tgetDoughnutPieOptions(\r\n\t\tdata: { name: string; value: any; color: string }[],\r\n\t\tlabelConfig: LabelFormatterCallback<DefaultLabelFormatterCallbackParams>,\r\n\t\ttooltipConfig?: TooltipComponentFormatterCallback<TooltipComponentFormatterCallbackParams>\r\n\t): EChartsOption {\r\n\t\treturn {\r\n\t\t\tseries: <PieSeriesOption[]>[\r\n\t\t\t\t{\r\n\t\t\t\t\tdata: data.map(item => ({\r\n\t\t\t\t\t\t...item,\r\n\t\t\t\t\t\titemStyle: { color: item.color },\r\n\t\t\t\t\t})),\r\n\t\t\t\t\tname: \"Pie Chart\",\r\n\t\t\t\t\ttype: \"pie\",\r\n\t\t\t\t\tradius: [\"40%\", \"70%\"],\r\n\t\t\t\t\tavoidLabelOverlap: false,\r\n\t\t\t\t\temphasis: {\r\n\t\t\t\t\t\tscale: true,\r\n\t\t\t\t\t},\r\n\t\t\t\t\tlabelLine: {\r\n\t\t\t\t\t\tshow: true,\r\n\t\t\t\t\t\tlength: 15,\r\n\t\t\t\t\t\tlength2: 20,\r\n\t\t\t\t\t},\r\n\t\t\t\t\tlabel: {\r\n\t\t\t\t\t\tshow: true,\r\n\t\t\t\t\t\tposition: \"outside\",\r\n\t\t\t\t\t\tcolor: Color.blue,\r\n\t\t\t\t\t\tfontSize: 14,\r\n\t\t\t\t\t\tformatter: labelConfig,\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\ttooltip: {\r\n\t\t\t\ttrigger: \"item\",\r\n\t\t\t\tformatter: tooltipConfig,\r\n\t\t\t\t// extraCssText: this.chartService.getTooltipCssText(),\r\n\t\t\t},\r\n\t\t\tlegend: <LegendComponentOption>{\r\n\t\t\t\torient: \"horizontal\", // 'horizontal | vertical'\r\n\t\t\t\ticon: \"circle\",\r\n\t\t\t\tbottom: 5,\r\n\t\t\t\talign: \"auto\",\r\n\t\t\t\titemGap: 20,\r\n\t\t\t\ttextStyle: { color: Color.blue, fontSize: 14 },\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @param letter - text to show in the center of the pie\r\n\t * @param value - rate\tvalue\r\n\t * @param textSize - size of the letter\r\n\t * @param color - color of the letter and pie\r\n\t * @param\ttotal - total value for the pie (default is 100)\r\n\t * @returns\r\n\t */\r\n\tgetRateDoughnutPieOptions(letter: string, value: number, textSize: number, color: string, total: number = 100): EChartsOption {\r\n\t\tconst data = [\r\n\t\t\t{ name: letter, value: value, itemStyle: { color: color } },\r\n\t\t\t{\r\n\t\t\t\tname: \"placeholder\",\r\n\t\t\t\tvalue: total - value,\r\n\t\t\t\titemStyle: { color: Color.gray5 },\r\n\t\t\t},\r\n\t\t];\r\n\t\treturn {\r\n\t\t\ttooltip: {\r\n\t\t\t\ttrigger: \"none\",\r\n\t\t\t},\r\n\t\t\tseries: <PieSeriesOption[]>[\r\n\t\t\t\t{\r\n\t\t\t\t\tname: \"RateDoughnutPie\",\r\n\t\t\t\t\ttype: \"pie\",\r\n\t\t\t\t\ttooltip: {\r\n\t\t\t\t\t\ttrigger: \"none\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tradius: [\"80%\", \"60%\"],\r\n\t\t\t\t\tdata: data,\r\n\t\t\t\t\tstartAngle: 0,\r\n\t\t\t\t\tselectedMode: false,\r\n\t\t\t\t\tsilent: true,\r\n\t\t\t\t\tlabel: {\r\n\t\t\t\t\t\tshow: true,\r\n\t\t\t\t\t\tformatter: letter,\r\n\t\t\t\t\t\tcolor: color,\r\n\t\t\t\t\t\tposition: \"center\",\r\n\t\t\t\t\t\tfontWeight: \"bold\",\r\n\t\t\t\t\t\tfontSize: textSize,\r\n\t\t\t\t\t\tfontFamily: \"Arial\",\r\n\t\t\t\t\t\tlineHeight: textSize * -0.22,\r\n\t\t\t\t\t\talign: \"center\",\r\n\t\t\t\t\t\tverticalAlign: \"middle\",\r\n\t\t\t\t\t\tbackgroundColor: \"transparent\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t};\r\n\t}\r\n}\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { inject, Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { ElementResponse } from \"../dto/ElementResponse\";\r\nimport { ConfigService } from \"./config.service\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class PageElementService {\r\n\tprivate readonly _http = inject(HttpClient);\r\n\tprivate readonly _configService = inject(ConfigService);\r\n\tGetElements(pageRoot: string): Observable<ElementResponse[]> {\r\n\t\treturn this._http.get<ElementResponse[]>(`${this._configService.environment?.securityPath}/Page/GetAvailableElementsByPageRoot/${pageRoot}`);\r\n\t}\r\n}\r\n","import { inject, Injectable } from \"@angular/core\";\r\nimport { map, Observable, of, tap } from \"rxjs\";\r\nimport { ElementResponse } from \"../dto/ElementResponse\";\r\nimport { PageElementService } from \"./pageElement.service\";\r\n@Injectable({ providedIn: \"root\" })\r\nexport class ElementService {\r\n\tElements: ElementResponse[] = [];\r\n\tPageRoot: string = \"\";\r\n\tprivate readonly pageElementService = inject(PageElementService);\r\n\tInitialize$(pageRootValue: string): Observable<void> {\r\n\t\tif (!pageRootValue) return of();\r\n\r\n\t\tthis.PageRoot = pageRootValue;\r\n\r\n\t\treturn this.pageElementService.GetElements(this.PageRoot).pipe(\r\n\t\t\ttap(elements => (this.Elements = elements)),\r\n\t\t\tmap(() => void 0)\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Verify if page has available element by description\r\n\t */\r\n\tHasElement(description: string): boolean {\r\n\t\treturn this.Elements.some(x => x.elementDescription === description);\r\n\t}\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport pako from \"pako\";\r\n@Injectable({ providedIn: \"root\" })\r\nexport class CompressService {\r\n\tZip(data: string): string {\r\n\t\tlet dataZip = pako.gzip(data);\r\n\t\tconst base64 = btoa(String.fromCharCode(...dataZip));\r\n\t\tconst encode = encodeURIComponent(base64);\r\n\t\treturn encode;\r\n\t}\r\n}\r\n","/**\r\n * Función de comparación genérica para ordenar objetos por un campo específico.\r\n *\r\n * @template T - Tipo genérico que representa la estructura de los objetos a comparar.\r\n * @param {keyof T} field - El nombre del campo por el cual se realizará la comparación.\r\n * @param {number} [sortOrder=1] - Orden de la clasificación: 1 para ascendente y -1 para descendente.\r\n * @returns {(a: T, b: T) => number} - Función de comparación que puede ser utilizada en métodos de ordenación como `Array.prototype.sort`.\r\n */\r\nexport function CompareByField<T>(field: keyof T, sortOrder: number = 1) {\r\n\treturn (a: T, b: T): number => {\r\n\t\tconst valueA = a[field];\r\n\t\tconst valueB = b[field];\r\n\r\n\t\t// Manejo de valores nulos\r\n\t\tif (valueA === null && valueB === null) return 0;\r\n\t\tif (valueA === null) return -sortOrder;\r\n\t\tif (valueB === null) return sortOrder;\r\n\r\n\t\t// Comparación de fechas\r\n\t\tif (valueA instanceof Date && valueB instanceof Date) {\r\n\t\t\treturn sortOrder * (valueA.getTime() - valueB.getTime());\r\n\t\t}\r\n\r\n\t\t// Comparación de números\r\n\t\tif (typeof valueA === \"number\" && typeof valueB === \"number\") {\r\n\t\t\treturn sortOrder * (valueA - valueB);\r\n\t\t}\r\n\r\n\t\t// Comparación de booleanos\r\n\t\tif (typeof valueA === \"boolean\" && typeof valueB === \"boolean\") {\r\n\t\t\treturn sortOrder * (Number(valueA) - Number(valueB));\r\n\t\t}\r\n\r\n\t\t// Comparación de cadenas de texto\r\n\t\tconst strA = valueA?.toString().toLowerCase() || \"\";\r\n\t\tconst strB = valueB?.toString().toLowerCase() || \"\";\r\n\t\treturn sortOrder * strA.localeCompare(strB);\r\n\t};\r\n}\r\n","import JSEncrypt from \"jsencrypt\";\r\nexport function encryptData(data: any, keyEncrypt: string): string | null {\r\n\tconst encryptor = new JSEncrypt();\r\n\tencryptor.setPublicKey(keyEncrypt);\r\n\tconst encryptedText = encryptor.encrypt(data);\r\n\tif (!encryptedText) {\r\n\t\tconsole.error(\"Error al cifrar los datos con RSA\");\r\n\t\treturn null;\r\n\t}\r\n\treturn encryptedText;\r\n}\r\n","export class Patterns {\r\n\tPatternText: string = \"^(?!\\\\s*$)[a-zA-Z0-9-\\\\s]*$\";\r\n\tPatternEmail: string = \"^[a-zA-Z0-9._+~\\\\-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,}$\";\r\n\tPatternOnlyLetters: string = \"^[a-zA-Z\\\\s]+$\";\r\n\tPatternOnlyLettersWithAccents: string = \"^[A-Za-záéíóúÁÉÍÓÚžščřćďňťľźěǎǧȟǐǩǫřšťžŽŠČŘĆĎŇŤĽŹĚǍǦȞǏǨǪŘŠŤŽ\\\\s]+$\";\r\n\tPatternLettersEmail: string = \"^[A-Za-z0-9@._-]+$\";\r\n}\r\nexport function InputValidation(event: KeyboardEvent) {\r\n\tconst allowedCharacters = /^[a-zA-Z0-9-\\s]$/;\r\n\tconst inputChar = event.key;\r\n\tif (!allowedCharacters.test(inputChar)) event.preventDefault();\r\n}\r\nexport function DynamicInputValidation(event: KeyboardEvent, pattern: string) {\r\n\tconst inputChar = event.key;\r\n\tconst regex = new RegExp(pattern);\r\n\tif (!regex.test(inputChar)) {\r\n\t\tevent.preventDefault();\r\n\t}\r\n}\r\nexport function EmailInputValidation(event: KeyboardEvent) {\r\n\tconst inputChar = event.key;\r\n\tif (event.ctrlKey || event.altKey || inputChar.length > 1) return;\r\n\tconst allowedCharacters = /^[a-zA-Z0-9._+@-]$/;\r\n\tif (!allowedCharacters.test(inputChar)) {\r\n\t\tevent.preventDefault();\r\n\t}\r\n}\r\n","import JSEncrypt from \"jsencrypt\";\r\nexport function decryptData(encryptedData: string, privateKey: string): string | null {\r\n\tconst decryptor = new JSEncrypt();\r\n\tdecryptor.setPrivateKey(privateKey);\r\n\tconst decryptedText = decryptor.decrypt(encryptedData);\r\n\r\n\tif (!decryptedText) {\r\n\t\tconsole.error(\"Error al descifrar los datos con RSA\");\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn decryptedText;\r\n}\r\n","import Aura from \"@primeng/themes/aura\";\r\nimport { definePreset } from \"@primeng/themes\";\r\nexport const IntelicaTheme = definePreset(Aura, {\r\n\tprimitive: {\r\n\t\tblue: {\r\n\t\t\t0: \"#FFFFFF\",\r\n\t\t\t100: \"#DFF0FF\",\r\n\t\t\t200: \"#AED9FF\",\r\n\t\t\t300: \"#71BDFF\",\r\n\t\t\t400: \"#348AD5\",\r\n\t\t\t500: \"#2567A1\",\r\n\t\t\t600: \"#1B5180\",\r\n\t\t\t700: \"#17375E\", // Azul Intelica\r\n\t\t},\r\n\t\torange: {\r\n\t\t\t0: \"#FFFFFF\",\r\n\t\t\t100: \"#FCE8DD\",\r\n\t\t\t200: \"#FCD3BD\",\r\n\t\t\t300: \"#FFB48B\",\r\n\t\t\t400: \"#FF9053\",\r\n\t\t\t500: \"#FF7F00\", // Orange Intelica\r\n\t\t\t600: \"#FF7B31\",\r\n\t\t\t700: \"#CC4900\",\r\n\t\t},\r\n\t\tbrown: {\r\n\t\t\t100: \"#F1E7E1\",\r\n\t\t\t200: \"#F1DDD1\",\r\n\t\t\t300: \"#E2C6B4\",\r\n\t\t\t400: \"#C4AC9D\",\r\n\t\t\t500: \"#A18D80\",\r\n\t\t\t600: \"#837267\",\r\n\t\t},\r\n\t\tbeige: {\r\n\t\t\t100: \"#EEE7E1\",\r\n\t\t\t200: \"#F1E3D7\",\r\n\t\t\t300: \"#ECD2BB\",\r\n\t\t\t400: \"#ECC098\",\r\n\t\t\t500: \"#EBA869\",\r\n\t\t\t600: \"#C48B56\",\r\n\t\t},\r\n\t\tgray: {\r\n\t\t\t0: \"#FFFFFF\",\r\n\t\t\t100: \"#F3F3F3\",\r\n\t\t\t200: \"#E9E9E9\",\r\n\t\t\t300: \"#D9D9D9\",\r\n\t\t\t400: \"#BFBFBF\",\r\n\t\t\t500: \"#A6A5A1\",\r\n\t\t},\r\n\t\tneutral: {\r\n\t\t\t950: \"#081423\",\r\n\t\t},\r\n\t\tred: {\r\n\t\t\t50: \"#fef2f2\",\r\n\t\t\t100: \"#fee2e2\",\r\n\t\t\t200: \"#fecaca\",\r\n\t\t\t300: \"#fca5a5\",\r\n\t\t\t400: \"#f87171\",\r\n\t\t\t500: \"#ef4444\",\r\n\t\t\t600: \"#dc2626\",\r\n\t\t\t700: \"#b91c1c\",\r\n\t\t\t800: \"#991b1b\",\r\n\t\t\t900: \"#7f1d1d\",\r\n\t\t\t950: \"#450a0a\",\r\n\t\t},\r\n\t\tgreen: {\r\n\t\t\t50: \"#f0fdf4\",\r\n\t\t\t100: \"#dcfce7\",\r\n\t\t\t200: \"#bbf7d0\",\r\n\t\t\t300: \"#86efac\",\r\n\t\t\t400: \"#4ade80\",\r\n\t\t\t500: \"#22c55e\",\r\n\t\t\t600: \"#16a34a\",\r\n\t\t\t700: \"#15803d\",\r\n\t\t\t800: \"#166534\",\r\n\t\t\t900: \"#14532d\",\r\n\t\t\t950: \"#052e16\",\r\n\t\t},\r\n\t\ttransitionDuration: \"0.2s\",\r\n\t\ticonSize: \"1rem\",\r\n\t\tanchorGutter: \"2px\",\r\n\t\tlist: {\r\n\t\t\tpadding: \"0rem\",\r\n\t\t\tgap: \"2px\",\r\n\t\t\theader: {\r\n\t\t\t\tpadding: \"0.5rem 1rem 0.25rem 1rem\",\r\n\t\t\t},\r\n\t\t\toption: {\r\n\t\t\t\tpadding: \"0.5rem 0.75rem\",\r\n\t\t\t\tborderRadius: \"{border.radius.sm}\",\r\n\t\t\t},\r\n\t\t\toptionGroup: {\r\n\t\t\t\tpadding: \"0.5rem 0.75rem\",\r\n\t\t\t\tfontWeight: \"600\",\r\n\t\t\t},\r\n\t\t},\r\n\t\tcontent: {\r\n\t\t\tborderRadius: \"{border.radius.md}\",\r\n\t\t},\r\n\t\tmask: {\r\n\t\t\ttransitionDuration: \"0.15s\",\r\n\t\t},\r\n\t\tnavigation: {\r\n\t\t\tlist: {\r\n\t\t\t\tpadding: \"0.25rem 0.25rem\",\r\n\t\t\t\tgap: \"2px\",\r\n\t\t\t},\r\n\t\t\titem: {\r\n\t\t\t\tpadding: \"0.5rem 0.75rem\",\r\n\t\t\t\tborderRadius: \"{border.radius.sm}\",\r\n\t\t\t\tgap: \"0.5rem\",\r\n\t\t\t},\r\n\t\t\tsubmenuLabel: {\r\n\t\t\t\tpadding: \"0.5rem 0.75rem\",\r\n\t\t\t\tfontWeight: \"600\",\r\n\t\t\t},\r\n\t\t\tsubmenuIcon: {\r\n\t\t\t\tsize: \"0.875rem\",\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tsemantic: {\r\n\t\ttransparent: \"transparent\",\r\n\t\tprimary: {\r\n\t\t\t0: \"{blue.0}\",\r\n\t\t\t100: \"{blue.100}\",\r\n\t\t\t200: \"{blue.200}\",\r\n\t\t\t300: \"{blue.300}\",\r\n\t\t\t400: \"{blue.400}\",\r\n\t\t\t500: \"{blue.500}\",\r\n\t\t\t600: \"{blue.600}\",\r\n\t\t\t700: \"var(--main-blue)\",\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\t0: \"{orange.0}\",\r\n\t\t\t100: \"{orange.100}\",\r\n\t\t\t200: \"{orange.200}\",\r\n\t\t\t300: \"{orange.300}\",\r\n\t\t\t400: \"{orange.400}\",\r\n\t\t\t500: \"var(--main-orange)\",\r\n\t\t\t600: \"{orange.600}\",\r\n\t\t\t700: \"var(--main-orange-dark)\",\r\n\t\t},\r\n\t\tcolorScheme: {\r\n\t\t\tlight: {\r\n\t\t\t\tsurface: {\r\n\t\t\t\t\t0: \"#ffffff\",\r\n\t\t\t\t\t50: \"#f8fafc\",\r\n\t\t\t\t\t100: \"#f1f5f9\",\r\n\t\t\t\t\t200: \"#e2e8f0\",\r\n\t\t\t\t\t300: \"#cbd5e1\",\r\n\t\t\t\t\t400: \"#94a3b8\",\r\n\t\t\t\t\t500: \"#64748b\",\r\n\t\t\t\t\t600: \"#475569\",\r\n\t\t\t\t\t700: \"#334155\",\r\n\t\t\t\t\t800: \"#1e293b\",\r\n\t\t\t\t\t900: \"#0f172a\",\r\n\t\t\t\t\t950: \"#020617\",\r\n\t\t\t\t},\r\n\t\t\t\tprimary: {\r\n\t\t\t\t\tcolor: \"{primary.700}\",\r\n\t\t\t\t\tcontrastColor: \"#ffffff\",\r\n\t\t\t\t\thoverColor: \"{primary.600}\",\r\n\t\t\t\t\tactiveColor: \"{primary.700}\",\r\n\t\t\t\t},\r\n\t\t\t\tsecondary: {\r\n\t\t\t\t\tcolor: \"{secondary.500}\",\r\n\t\t\t\t},\r\n\t\t\t\thighlight: {\r\n\t\t\t\t\tbackground: \"var(--main-orange)\",\r\n\t\t\t\t\tfocusBackground: \"var(--main-orange)\",\r\n\t\t\t\t\tcolor: \"{orange.0}\",\r\n\t\t\t\t\tfocusColor: \"{orange.0}\",\r\n\t\t\t\t},\r\n\t\t\t\tmask: {\r\n\t\t\t\t\tbackground: \"rgba(23, 55, 94, 0.8)\",\r\n\t\t\t\t\tcolor: \"{surface.200}\",\r\n\t\t\t\t},\r\n\t\t\t\tformField: {\r\n\t\t\t\t\tpaddingX: \"1.0rem\", // added by CA\r\n\t\t\t\t\tpaddingY: \"0.6rem\", // added by CA\r\n\t\t\t\t\tbackground: \"var(--main-light)\",\r\n\t\t\t\t\tdisabledBackground: \"{gray.100}\",\r\n\t\t\t\t\tfilledBackground: \"{surface.50}\",\r\n\t\t\t\t\tfilledHoverBackground: \"{surface.50}\",\r\n\t\t\t\t\tfilledFocusBackground: \"{surface.50}\",\r\n\t\t\t\t\tborderColor: \"{gray.300}\",\r\n\t\t\t\t\thoverBorderColor: \"{primary.color}\", // modify by CA\r\n\t\t\t\t\tfocusBorderColor: \"{primary.color}\",\r\n\t\t\t\t\tinvalidBorderColor: \"{red.400}\",\r\n\t\t\t\t\tcolor: \"{surface.700}\",\r\n\t\t\t\t\tdisabledColor: \"{gray.500}\",\r\n\t\t\t\t\tplaceholderColor: \"{gray.500}\",\r\n\t\t\t\t\tinvalidPlaceholderColor: \"{red.600}\",\r\n\t\t\t\t\tfloatLabelColor: \"{surface.500}\",\r\n\t\t\t\t\tfloatLabelFocusColor: \"{primary.600}\",\r\n\t\t\t\t\tfloatLabelActiveColor: \"{surface.500}\",\r\n\t\t\t\t\tfloatLabelInvalidColor: \"{form.field.invalid.placeholder.color}\",\r\n\t\t\t\t\ticonColor: \"{primary.color}\",\r\n\t\t\t\t\tshadow: \"0 0 #0000, 0 0 #0000, 0 1px 2px 0 rgba(18, 18, 23, 0.05)\",\r\n\t\t\t\t\tborderRadius: \"{border.radius.sm}\",\r\n\t\t\t\t},\r\n\t\t\t\ttext: {\r\n\t\t\t\t\tcolor: \"var(--main-blue)\",\r\n\t\t\t\t\thoverColor: \"var(--main-orange)\",\r\n\t\t\t\t\tmutedColor: \"var(--main-orange)\",\r\n\t\t\t\t\thoverMutedColor: \"orange.700}\",\r\n\t\t\t\t},\r\n\t\t\t\tcontent: {\r\n\t\t\t\t\tbackground: \"{gray.0}\",\r\n\t\t\t\t\thoverBackground: \"{surface.100}\",\r\n\t\t\t\t\tborderColor: \"var(--main-blue)\",\r\n\t\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\t\thoverColor: \"{text.hover.color}\",\r\n\t\t\t\t},\r\n\t\t\t\toverlay: {\r\n\t\t\t\t\tselect: {\r\n\t\t\t\t\t\tborderRadius: \"{border.radius.md}\",\r\n\t\t\t\t\t\tshadow: \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)\",\r\n\t\t\t\t\t\tbackground: \"var(--main-light)\",\r\n\t\t\t\t\t\tborderColor: \"{surface.200}\",\r\n\t\t\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tpopover: {\r\n\t\t\t\t\t\tbackground: \"var(--main-light)\",\r\n\t\t\t\t\t\tborderColor: \"{surface.200}\",\r\n\t\t\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\t\t\tborderRadius: \"{border.radius.md}\",\r\n\t\t\t\t\t\tpadding: \"0\",\r\n\t\t\t\t\t\tshadow: \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmodal: {\r\n\t\t\t\t\t\tborderColor: \"#bfbfbf\",\r\n\t\t\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\t\t\tborderRadius: \"{border.radius.xl}\",\r\n\t\t\t\t\t\tpadding: \"1.5rem\",\r\n\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tnavigation: {\r\n\t\t\t\t\t\tshadow: \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"1px\",\r\n\t\t\t\t\tstyle: \"solid\",\r\n\t\t\t\t\tcolor: \"{primary.color}\",\r\n\t\t\t\t\toffset: \"-.1rem\",\r\n\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t},\r\n\t\t\t\tborderRadius: {\r\n\t\t\t\t\tnone: \"0\",\r\n\t\t\t\t\txs: \"0.2rem\",\r\n\t\t\t\t\tsm: \"0.4rem\",\r\n\t\t\t\t\tmd: \"0.6rem\",\r\n\t\t\t\t\tlg: \"0.8rem\",\r\n\t\t\t\t\txl: \"1.2rem\",\r\n\t\t\t\t},\r\n\t\t\t\tdisabledOpacity: \"1\",\r\n\t\t\t\tlist: {\r\n\t\t\t\t\tpadding: \"0rem\",\r\n\t\t\t\t\tgap: \"0rem\",\r\n\t\t\t\t\toption: {\r\n\t\t\t\t\t\tborderRadius: \"0rem\",\r\n\t\t\t\t\t\tfocusBackground: \"var(--main-orange)\",\r\n\t\t\t\t\t\tselectedBackground: \"{highlight.background}\",\r\n\t\t\t\t\t\tselectedFocusBackground: \"{highlight.focus.background}\",\r\n\t\t\t\t\t\tcolor: \"var(--main-blue)\",\r\n\t\t\t\t\t\tfocusColor: \"var(--main-light)\",\r\n\t\t\t\t\t\tselectedColor: \"{highlight.color}\",\r\n\t\t\t\t\t\tselectedFocusColor: \"{highlight.focus.color}\",\r\n\t\t\t\t\t\ticon: {\r\n\t\t\t\t\t\t\tcolor: \"{surface.400}\",\r\n\t\t\t\t\t\t\tfocusColor: \"{surface.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\toptionGroup: {\r\n\t\t\t\t\t\tbackground: \"transparent\",\r\n\t\t\t\t\t\tcolor: \"{text.muted.color}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tnavigation: {\r\n\t\t\t\t\titem: {\r\n\t\t\t\t\t\tfocusBackground: \"{surface.100}\",\r\n\t\t\t\t\t\tactiveBackground: \"{surface.100}\",\r\n\t\t\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\t\t\tfocusColor: \"{text.hover.color}\",\r\n\t\t\t\t\t\tactiveColor: \"{text.hover.color}\",\r\n\t\t\t\t\t\ticon: {\r\n\t\t\t\t\t\t\tcolor: \"{surface.400}\",\r\n\t\t\t\t\t\t\tfocusColor: \"{surface.500}\",\r\n\t\t\t\t\t\t\tactiveColor: \"{surface.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsubmenuLabel: {\r\n\t\t\t\t\t\tbackground: \"transparent\",\r\n\t\t\t\t\t\tcolor: \"{text.muted.color}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsubmenuIcon: {\r\n\t\t\t\t\t\tcolor: \"{surface.400}\",\r\n\t\t\t\t\t\tfocusColor: \"{surface.500}\",\r\n\t\t\t\t\t\tactiveColor: \"{surface.500}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tdark: {\r\n\t\t\t\tsurface: {\r\n\t\t\t\t\t0: \"#ffffff\",\r\n\t\t\t\t\t50: \"#f8fafc\",\r\n\t\t\t\t\t100: \"#f1f5f9\",\r\n\t\t\t\t\t200: \"#e2e8f0\",\r\n\t\t\t\t\t300: \"#cbd5e1\",\r\n\t\t\t\t\t400: \"#94a3b8\",\r\n\t\t\t\t\t500: \"#64748b\",\r\n\t\t\t\t\t600: \"#475569\",\r\n\t\t\t\t\t700: \"#334155\",\r\n\t\t\t\t\t800: \"#1e293b\",\r\n\t\t\t\t\t900: \"#0f172a\",\r\n\t\t\t\t\t950: \"#020617\",\r\n\t\t\t\t},\r\n\t\t\t\tprimary: {\r\n\t\t\t\t\tcolor: \"{primary.700}\",\r\n\t\t\t\t\tcontrastColor: \"#ffffff\",\r\n\t\t\t\t\thoverColor: \"{primary.600}\",\r\n\t\t\t\t\tactiveColor: \"{primary.700}\",\r\n\t\t\t\t},\r\n\t\t\t\tsecondary: {\r\n\t\t\t\t\tcolor: \"{secondary.500}\",\r\n\t\t\t\t},\r\n\t\t\t\thighlight: {\r\n\t\t\t\t\tbackground: \"var(--main-orange)\",\r\n\t\t\t\t\tfocusBackground: \"var(--main-orange)\",\r\n\t\t\t\t\tcolor: \"{orange.0}\",\r\n\t\t\t\t\tfocusColor: \"{orange.0}\",\r\n\t\t\t\t},\r\n\t\t\t\tmask: {\r\n\t\t\t\t\tbackground: \"rgba(23, 55, 94, 0.8)\",\r\n\t\t\t\t\tcolor: \"{surface.200}\",\r\n\t\t\t\t},\r\n\t\t\t\tformField: {\r\n\t\t\t\t\tpaddingX: \"1.0rem\", // added by CA\r\n\t\t\t\t\tpaddingY: \"0.6rem\", // added by CA\r\n\t\t\t\t\tbackground: \"var(--main-light)\",\r\n\t\t\t\t\tdisabledBackground: \"{gray.100}\",\r\n\t\t\t\t\tfilledBackground: \"{surface.50}\",\r\n\t\t\t\t\tfilledHoverBackground: \"{surface.50}\",\r\n\t\t\t\t\tfilledFocusBackground: \"{surface.50}\",\r\n\t\t\t\t\tborderColor: \"{gray.300}\",\r\n\t\t\t\t\thoverBorderColor: \"{primary.color}\", // modify by CA\r\n\t\t\t\t\tfocusBorderColor: \"{primary.color}\",\r\n\t\t\t\t\tinvalidBorderColor: \"{red.400}\",\r\n\t\t\t\t\tcolor: \"{surface.700}\",\r\n\t\t\t\t\tdisabledColor: \"{gray.500}\",\r\n\t\t\t\t\tplaceholderColor: \"{gray.500}\",\r\n\t\t\t\t\tinvalidPlaceholderColor: \"{red.600}\",\r\n\t\t\t\t\tfloatLabelColor: \"{surface.500}\",\r\n\t\t\t\t\tfloatLabelFocusColor: \"{primary.600}\",\r\n\t\t\t\t\tfloatLabelActiveColor: \"{surface.500}\",\r\n\t\t\t\t\tfloatLabelInvalidColor: \"{form.field.invalid.placeholder.color}\",\r\n\t\t\t\t\ticonColor: \"{primary.color}\",\r\n\t\t\t\t\tshadow: \"0 0 #0000, 0 0 #0000, 0 1px 2px 0 rgba(18, 18, 23, 0.05)\",\r\n\t\t\t\t\tborderRadius: \"{border.radius.sm}\",\r\n\t\t\t\t},\r\n\t\t\t\ttext: {\r\n\t\t\t\t\tcolor: \"var(--main-blue)\",\r\n\t\t\t\t\thoverColor: \"var(--main-orange)\",\r\n\t\t\t\t\tmutedColor: \"var(--main-orange)\",\r\n\t\t\t\t\thoverMutedColor: \"orange.700}\",\r\n\t\t\t\t},\r\n\t\t\t\tcontent: {\r\n\t\t\t\t\tbackground: \"{gray.0}\",\r\n\t\t\t\t\thoverBackground: \"{surface.100}\",\r\n\t\t\t\t\tborderColor: \"var(--main-blue)\",\r\n\t\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\t\thoverColor: \"{text.hover.color}\",\r\n\t\t\t\t},\r\n\t\t\t\toverlay: {\r\n\t\t\t\t\tselect: {\r\n\t\t\t\t\t\tborderRadius: \"{border.radius.md}\",\r\n\t\t\t\t\t\tshadow: \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)\",\r\n\t\t\t\t\t\tbackground: \"var(--main-light)\",\r\n\t\t\t\t\t\tborderColor: \"{surface.200}\",\r\n\t\t\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tpopover: {\r\n\t\t\t\t\t\tbackground: \"var(--main-light)\",\r\n\t\t\t\t\t\tborderColor: \"{surface.200}\",\r\n\t\t\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\t\t\tborderRadius: \"{border.radius.md}\",\r\n\t\t\t\t\t\tpadding: \"0\",\r\n\t\t\t\t\t\tshadow: \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmodal: {\r\n\t\t\t\t\t\tborderColor: \"#bfbfbf\",\r\n\t\t\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\t\t\tborderRadius: \"{border.radius.xl}\",\r\n\t\t\t\t\t\tpadding: \"1.5rem\",\r\n\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tnavigation: {\r\n\t\t\t\t\t\tshadow: \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"1px\",\r\n\t\t\t\t\tstyle: \"solid\",\r\n\t\t\t\t\tcolor: \"{primary.color}\",\r\n\t\t\t\t\toffset: \"-.1rem\",\r\n\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t},\r\n\t\t\t\tborderRadius: {\r\n\t\t\t\t\tnone: \"0\",\r\n\t\t\t\t\txs: \"0.2rem\",\r\n\t\t\t\t\tsm: \"0.4rem\",\r\n\t\t\t\t\tmd: \"0.6rem\",\r\n\t\t\t\t\tlg: \"0.8rem\",\r\n\t\t\t\t\txl: \"1.2rem\",\r\n\t\t\t\t},\r\n\t\t\t\tdisabledOpacity: \"1\",\r\n\t\t\t\tlist: {\r\n\t\t\t\t\tpadding: \"0rem\",\r\n\t\t\t\t\tgap: \"0rem\",\r\n\t\t\t\t\toption: {\r\n\t\t\t\t\t\tborderRadius: \"0rem\",\r\n\t\t\t\t\t\tfocusBackground: \"var(--main-orange)\",\r\n\t\t\t\t\t\tselectedBackground: \"{highlight.background}\",\r\n\t\t\t\t\t\tselectedFocusBackground: \"{highlight.focus.background}\",\r\n\t\t\t\t\t\tcolor: \"var(--main-blue)\",\r\n\t\t\t\t\t\tfocusColor: \"var(--main-light)\",\r\n\t\t\t\t\t\tselectedColor: \"{highlight.color}\",\r\n\t\t\t\t\t\tselectedFocusColor: \"{highlight.focus.color}\",\r\n\t\t\t\t\t\ticon: {\r\n\t\t\t\t\t\t\tcolor: \"{surface.400}\",\r\n\t\t\t\t\t\t\tfocusColor: \"{surface.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\toptionGroup: {\r\n\t\t\t\t\t\tbackground: \"transparent\",\r\n\t\t\t\t\t\tcolor: \"{text.muted.color}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tnavigation: {\r\n\t\t\t\t\titem: {\r\n\t\t\t\t\t\tfocusBackground: \"{surface.100}\",\r\n\t\t\t\t\t\tactiveBackground: \"{surface.100}\",\r\n\t\t\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\t\t\tfocusColor: \"{text.hover.color}\",\r\n\t\t\t\t\t\tactiveColor: \"{text.hover.color}\",\r\n\t\t\t\t\t\ticon: {\r\n\t\t\t\t\t\t\tcolor: \"{surface.400}\",\r\n\t\t\t\t\t\t\tfocusColor: \"{surface.500}\",\r\n\t\t\t\t\t\t\tactiveColor: \"{surface.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsubmenuLabel: {\r\n\t\t\t\t\t\tbackground: \"transparent\",\r\n\t\t\t\t\t\tcolor: \"{text.muted.color}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsubmenuIcon: {\r\n\t\t\t\t\t\tcolor: \"{surface.400}\",\r\n\t\t\t\t\t\tfocusColor: \"{surface.500}\",\r\n\t\t\t\t\t\tactiveColor: \"{surface.500}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tcomponents: {\r\n\t\tskeleton: {\r\n\t\t\tcolorScheme: {\r\n\t\t\t\tlight: {\r\n\t\t\t\t\troot: {\r\n\t\t\t\t\t\tbackground: \"{surface.200}\",\r\n\t\t\t\t\t\tanimationBackground: \"rgba(0,0,0,0.4)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tdark: {\r\n\t\t\t\t\troot: {\r\n\t\t\t\t\t\tbackground: \"rgba(0, 0, 0, 0.06)\",\r\n\t\t\t\t\t\tanimationBackground: \"rgba(0, 0, 0, 0.04)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\taccordion: {\r\n\t\t\troot: {\r\n\t\t\t\ttransitionDuration: \"{transition.duration}\",\r\n\t\t\t},\r\n\t\t\tpanel: {\r\n\t\t\t\tborderWidth: \"0 0 1px 0\",\r\n\t\t\t\tborderColor: \"{content.border.color}\",\r\n\t\t\t},\r\n\t\t\theader: {\r\n\t\t\t\tcolor: \"{text.muted.color}\",\r\n\t\t\t\thoverColor: \"{text.color}\",\r\n\t\t\t\tactiveColor: \"{text.color}\",\r\n\t\t\t\tpadding: \"1.125rem\",\r\n\t\t\t\tfontWeight: \"600\",\r\n\t\t\t\tborderRadius: \"0\",\r\n\t\t\t\tborderWidth: \"0\",\r\n\t\t\t\tborderColor: \"{content.border.color}\",\r\n\t\t\t\tbackground: \"{content.background}\",\r\n\t\t\t\thoverBackground: \"{content.background}\",\r\n\t\t\t\tactiveBackground: \"{content.background}\",\r\n\t\t\t\tactiveHoverBackground: \"{content.background}\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"-1px\",\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t\ttoggleIcon: {\r\n\t\t\t\t\tcolor: \"{text.muted.color}\",\r\n\t\t\t\t\thoverColor: \"{text.color}\",\r\n\t\t\t\t\tactiveColor: \"{text.color}\",\r\n\t\t\t\t\tactiveHoverColor: \"{text.color}\",\r\n\t\t\t\t},\r\n\t\t\t\tfirst: {\r\n\t\t\t\t\ttopBorderRadius: \"{content.border.radius}\",\r\n\t\t\t\t\tborderWidth: \"0\",\r\n\t\t\t\t},\r\n\t\t\t\tlast: {\r\n\t\t\t\t\tbottomBorderRadius: \"{content.border.radius}\",\r\n\t\t\t\t\tactiveBottomBorderRadius: \"0\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tcontent: {\r\n\t\t\t\tborderWidth: \"0\",\r\n\t\t\t\tborderColor: \"{content.border.color}\",\r\n\t\t\t\tbackground: \"{content.background}\",\r\n\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\tpadding: \"0 1.125rem 1.125rem 1.125rem\",\r\n\t\t\t},\r\n\t\t\tcolorScheme: {\r\n\t\t\t\tlight: {\r\n\t\t\t\t\ttext: {\r\n\t\t\t\t\t\tcolor: \"red\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tdark: {\r\n\t\t\t\t\ttext: {\r\n\t\t\t\t\t\tcolor: \"red\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\tautocomplete: {\r\n\t\t\troot: {\r\n\t\t\t\tbackground: \"{form.field.background}\",\r\n\t\t\t\tdisabledBackground: \"{form.field.disabled.background}\",\r\n\t\t\t\tfilledBackground: \"{form.field.filled.background}\",\r\n\t\t\t\tfilledHoverBackground: \"{form.field.filled.hover.background}\",\r\n\t\t\t\tfilledFocusBackground: \"{form.field.filled.focus.background}\",\r\n\t\t\t\tborderColor: \"{form.field.border.color}\",\r\n\t\t\t\thoverBorderColor: \"{form.field.hover.border.color}\",\r\n\t\t\t\tfocusBorderColor: \"{form.field.focus.border.color}\",\r\n\t\t\t\tinvalidBorderColor: \"{form.field.invalid.border.color}\",\r\n\t\t\t\tcolor: \"{form.field.color}\",\r\n\t\t\t\tdisabledColor: \"{form.field.disabled.color}\",\r\n\t\t\t\tplaceholderColor: \"{form.field.placeholder.color}\",\r\n\t\t\t\tinvalidPlaceholderColor: \"{form.field.invalid.placeholder.color}\",\r\n\t\t\t\tshadow: \"{form.field.shadow}\",\r\n\t\t\t\tpaddingX: \"{form.field.padding.x}\",\r\n\t\t\t\tpaddingY: \"{form.field.padding.y}\",\r\n\t\t\t\tborderRadius: \"{form.field.border.radius}\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{form.field.focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{form.field.focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{form.field.focus.ring.color}\",\r\n\t\t\t\t\toffset: \"{form.field.focus.ring.offset}\",\r\n\t\t\t\t\tshadow: \"{form.field.focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t\ttransitionDuration: \"{form.field.transition.duration}\",\r\n\t\t\t},\r\n\t\t\toverlay: {\r\n\t\t\t\tbackground: \"{overlay.select.background}\",\r\n\t\t\t\tborderColor: \"{overlay.select.border.color}\",\r\n\t\t\t\tborderRadius: \"{overlay.select.border.radius}\",\r\n\t\t\t\tcolor: \"{overlay.select.color}\",\r\n\t\t\t\tshadow: \"{overlay.select.shadow}\",\r\n\t\t\t},\r\n\t\t\tlist: {\r\n\t\t\t\tpadding: \"{list.padding}\", // var(--p-autocomplete-list-padding)\r\n\t\t\t\tgap: \"{list.gap}\", // var(--p-autocomplete-list-gap)\r\n\t\t\t},\r\n\t\t\toption: {\r\n\t\t\t\tfocusBackground: \"{list.option.focus.background}\",\r\n\t\t\t\tselectedBackground: \"{list.option.selected.background}\",\r\n\t\t\t\tselectedFocusBackground: \"{list.option.selected.focus.background}\",\r\n\t\t\t\tcolor: \"{list.option.color}\",\r\n\t\t\t\tfocusColor: \"{list.option.focus.color}\", // var(--p-autocomplete-option-focus-color)\r\n\t\t\t\tselectedColor: \"{list.option.selected.color}\",\r\n\t\t\t\tselectedFocusColor: \"{list.option.selected.focus.color}\",\r\n\t\t\t\tpadding: \"{list.option.padding}\",\r\n\t\t\t\tborderRadius: \"{list.option.border.radius}\", // var(--p-autocomplete-option-border-radius)\r\n\t\t\t},\r\n\t\t\toptionGroup: {\r\n\t\t\t\tbackground: \"{list.option.group.background}\",\r\n\t\t\t\tcolor: \"{list.option.group.color}\",\r\n\t\t\t\tfontWeight: \"{list.option.group.font.weight}\",\r\n\t\t\t\tpadding: \"{list.option.group.padding}\",\r\n\t\t\t},\r\n\t\t\tdropdown: {\r\n\t\t\t\twidth: \"2.5rem\",\r\n\t\t\t\tsm: {\r\n\t\t\t\t\twidth: \"2rem\",\r\n\t\t\t\t},\r\n\t\t\t\tlg: {\r\n\t\t\t\t\twidth: \"3rem\",\r\n\t\t\t\t},\r\n\t\t\t\tbackground: \"red\",\r\n\t\t\t\tborderColor: \"{form.field.border.color}\",\r\n\t\t\t\thoverBorderColor: \"{form.field.border.color}\",\r\n\t\t\t\tactiveBorderColor: \"{form.field.border.color}\",\r\n\t\t\t\tborderRadius: \"{form.field.border.radius}\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"{focus.ring.offset}\", //var(--p-autocomplete-dropdown-focus-ring-offset)\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tchip: {\r\n\t\t\t\tborderRadius: \"{border.radius.sm}\",\r\n\t\t\t},\r\n\t\t\temptyMessage: {\r\n\t\t\t\tpadding: \"{list.option.padding}\",\r\n\t\t\t},\r\n\t\t\tcolorScheme: {\r\n\t\t\t\tlight: {\r\n\t\t\t\t\tchip: {\r\n\t\t\t\t\t\tfocusBackground: \"{surface.200}\",\r\n\t\t\t\t\t\tfocusColor: \"{surface.800}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tdropdown: {\r\n\t\t\t\t\t\tbackground: \"{primary.0}\",\r\n\t\t\t\t\t\thoverBackground: \"{primary.0}\",\r\n\t\t\t\t\t\tactiveBackground: \"{primary.0}\",\r\n\t\t\t\t\t\tcolor: \"{surface.600}\",\r\n\t\t\t\t\t\thoverColor: \"{surface.700}\",\r\n\t\t\t\t\t\tactiveColor: \"{surface.800}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tdark: {\r\n\t\t\t\t\tchip: {\r\n\t\t\t\t\t\tfocusBackground: \"{surface.200}\",\r\n\t\t\t\t\t\tfocusColor: \"{surface.800}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tdropdown: {\r\n\t\t\t\t\t\tbackground: \"{primary.0}\",\r\n\t\t\t\t\t\thoverBackground: \"{primary.0}\",\r\n\t\t\t\t\t\tactiveBackground: \"{primary.0}\",\r\n\t\t\t\t\t\tcolor: \"{surface.600}\",\r\n\t\t\t\t\t\thoverColor: \"{surface.700}\",\r\n\t\t\t\t\t\tactiveColor: \"{surface.800}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\tbadge: {\r\n\t\t\troot: {\r\n\t\t\t\tborderRadius: \"{border.radius.xl}\",\r\n\t\t\t\tpadding: \"0 1rem\",\r\n\t\t\t\tfontSize: \"1rem\",\r\n\t\t\t\tfontWeight: \"400\",\r\n\t\t\t\tminWidth: \"6.8rem\",\r\n\t\t\t\theight: \"1.8rem\",\r\n\t\t\t},\r\n\t\t\tdot: {\r\n\t\t\t\tsize: \"0.5rem\",\r\n\t\t\t},\r\n\t\t\tsm: {\r\n\t\t\t\tfontSize: \"0.625rem\",\r\n\t\t\t\tminWidth: \"1.25rem\",\r\n\t\t\t\theight: \"1.25rem\",\r\n\t\t\t},\r\n\t\t\tlg: {\r\n\t\t\t\tfontSize: \"0.875rem\",\r\n\t\t\t\tminWidth: \"1.75rem\",\r\n\t\t\t\theight: \"1.75rem\",\r\n\t\t\t},\r\n\t\t\txl: {\r\n\t\t\t\tfontSize: \"1rem\",\r\n\t\t\t\tminWidth: \"2rem\",\r\n\t\t\t\theight: \"2rem\",\r\n\t\t\t},\r\n\t\t\tcolorScheme: {\r\n\t\t\t\tlight: {\r\n\t\t\t\t\tprimary: {\r\n\t\t\t\t\t\tbackground: \"{green.500}\",\r\n\t\t\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsuccess: {\r\n\t\t\t\t\t\tbackground: \"{green.500}\",\r\n\t\t\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tdanger: {\r\n\t\t\t\t\t\tbackground: \"{red.500}\",\r\n\t\t\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tdark: {\r\n\t\t\t\t\tprimary: {\r\n\t\t\t\t\t\tbackground: \"{green.500}\",\r\n\t\t\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsuccess: {\r\n\t\t\t\t\t\tbackground: \"{green.500}\",\r\n\t\t\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tdanger: {\r\n\t\t\t\t\t\tbackground: \"{red.500}\",\r\n\t\t\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\tbutton: {\r\n\t\t\troot: {\r\n\t\t\t\tborderRadius: \"{border.radius.sm}\",\r\n\t\t\t\troundedBorderRadius: \"2rem\",\r\n\t\t\t\tgap: \"0.25em\",\r\n\t\t\t\tpaddingX: \"1rem\",\r\n\t\t\t\tpaddingY: \"0.4rem\",\r\n\t\t\t\ticonOnlyWidth: \"2.5rem\",\r\n\t\t\t\tsm: {\r\n\t\t\t\t\tfontSize: \"{form.field.sm.font.size}\",\r\n\t\t\t\t\tpaddingX: \"{form.field.sm.padding.x}\",\r\n\t\t\t\t\tpaddingY: \"{form.field.sm.padding.y}\",\r\n\t\t\t\t},\r\n\t\t\t\tlg: {\r\n\t\t\t\t\tfontSize: \"{form.field.lg.font.size}\",\r\n\t\t\t\t\tpaddingX: \"{form.field.lg.padding.x}\",\r\n\t\t\t\t\tpaddingY: \"{form.field.lg.padding.y}\",\r\n\t\t\t\t},\r\n\t\t\t\tlabel: {\r\n\t\t\t\t\tfontWeight: \"500\",\r\n\t\t\t\t},\r\n\t\t\t\traisedShadow: \"0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12)\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\toffset: \"{focus.ring.offset}\",\r\n\t\t\t\t},\r\n\t\t\t\tbadgeSize: \"1rem\",\r\n\t\t\t\ttransitionDuration: \"{form.field.transition.duration}\",\r\n\t\t\t},\r\n\t\t\tcolorScheme: {\r\n\t\t\t\tlight: {\r\n\t\t\t\t\troot: {\r\n\t\t\t\t\t\tprimary: {\r\n\t\t\t\t\t\t\tbackground: \"var(--main-orange)\",\r\n\t\t\t\t\t\t\thoverBackground: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tactiveBackground: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tborderColor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\t\t\t\thoverColor: \"var(--main-light)\",\r\n\t\t\t\t\t\t\tactiveColor: \"var(--main-light)\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{primary.color}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tsecondary: {\r\n\t\t\t\t\t\t\tbackground: \"var(--main-light)\",\r\n\t\t\t\t\t\t\thoverBackground: \"var(--main-light)\",\r\n\t\t\t\t\t\t\tactiveBackground: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tborderColor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t\thoverColor: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tactiveColor: \"var(--main-light)\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{surface.600}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tinfo: {\r\n\t\t\t\t\t\t\tbackground: \"{sky.500}\",\r\n\t\t\t\t\t\t\thoverBackground: \"{sky.600}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{sky.700}\",\r\n\t\t\t\t\t\t\tborderColor: \"{sky.500}\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"{sky.600}\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"{sky.700}\",\r\n\t\t\t\t\t\t\tcolor: \"#ffffff\",\r\n\t\t\t\t\t\t\thoverColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tactiveColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{sky.500}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tsuccess: {\r\n\t\t\t\t\t\t\tbackground: \"var(--main-light)\",\r\n\t\t\t\t\t\t\thoverBackground: \"{gray.400}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{gray.400}\",\r\n\t\t\t\t\t\t\tborderColor: \"{gray.400}\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"{gray.400}\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"{gray.400}\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-blue)\",\r\n\t\t\t\t\t\t\thoverColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tactiveColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{green.500}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\twarn: {\r\n\t\t\t\t\t\t\tbackground: \"var(--main-orange)\",\r\n\t\t\t\t\t\t\thoverBackground: \"{orange.600}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tborderColor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"{orange.600}\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tcolor: \"#ffffff\",\r\n\t\t\t\t\t\t\thoverColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tactiveColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\thelp: {\r\n\t\t\t\t\t\t\tbackground: \"{purple.500}\",\r\n\t\t\t\t\t\t\thoverBackground: \"{purple.600}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{purple.700}\",\r\n\t\t\t\t\t\t\tborderColor: \"{purple.500}\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"{purple.600}\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"{purple.700}\",\r\n\t\t\t\t\t\t\tcolor: \"#ffffff\",\r\n\t\t\t\t\t\t\thoverColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tactiveColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{purple.500}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdanger: {\r\n\t\t\t\t\t\t\tbackground: \"{red.500}\",\r\n\t\t\t\t\t\t\thoverBackground: \"{red.600}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{red.700}\",\r\n\t\t\t\t\t\t\tborderColor: \"{red.500}\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"{red.600}\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"{red.700}\",\r\n\t\t\t\t\t\t\tcolor: \"#ffffff\",\r\n\t\t\t\t\t\t\thoverColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tactiveColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{red.500}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tcontrast: {\r\n\t\t\t\t\t\t\tbackground: \"{surface.950}\",\r\n\t\t\t\t\t\t\thoverBackground: \"{surface.900}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{surface.800}\",\r\n\t\t\t\t\t\t\tborderColor: \"{surface.950}\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"{surface.900}\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"{surface.800}\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\t\t\t\thoverColor: \"var(--main-light)\",\r\n\t\t\t\t\t\t\tactiveColor: \"var(--main-light)\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{surface.950}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\toutlined: {\r\n\t\t\t\t\t\tprimary: {\r\n\t\t\t\t\t\t\thoverBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tborderColor: \"{transparent}\",\r\n\t\t\t\t\t\t\tcolor: \"{primary.color}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tsecondary: {\r\n\t\t\t\t\t\t\thoverBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tborderColor: \"{transparent}\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tsuccess: {\r\n\t\t\t\t\t\t\tbackground: \"{surface.0}\",\r\n\t\t\t\t\t\t\thoverBackground: \"{gray.400}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{gray.400}\",\r\n\t\t\t\t\t\t\tborderColor: \"{gray.400}\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"{gray.400}\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"{gray.400}\",\r\n\t\t\t\t\t\t\tcolor: \"{blue.700}\",\r\n\t\t\t\t\t\t\thoverColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tactiveColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{green.500}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tinfo: {\r\n\t\t\t\t\t\t\thoverBackground: \"{sky.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{sky.100}\",\r\n\t\t\t\t\t\t\tborderColor: \"{sky.200}\",\r\n\t\t\t\t\t\t\tcolor: \"{sky.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\twarn: {\r\n\t\t\t\t\t\t\thoverBackground: \"{orange.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{orange.100}\",\r\n\t\t\t\t\t\t\tborderColor: \"{orange.200}\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\thelp: {\r\n\t\t\t\t\t\t\thoverBackground: \"{purple.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{purple.100}\",\r\n\t\t\t\t\t\t\tborderColor: \"{purple.200}\",\r\n\t\t\t\t\t\t\tcolor: \"{purple.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdanger: {\r\n\t\t\t\t\t\t\thoverBackground: \"{red.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{red.100}\",\r\n\t\t\t\t\t\t\tborderColor: \"{red.200}\",\r\n\t\t\t\t\t\t\tcolor: \"{red.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tcontrast: {\r\n\t\t\t\t\t\t\thoverBackground: \"{surface.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{surface.100}\",\r\n\t\t\t\t\t\t\tborderColor: \"{surface.700}\",\r\n\t\t\t\t\t\t\tcolor: \"{surface.950}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tplain: {\r\n\t\t\t\t\t\t\thoverBackground: \"{surface.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{surface.100}\",\r\n\t\t\t\t\t\t\tborderColor: \"{surface.200}\",\r\n\t\t\t\t\t\t\tcolor: \"{surface.700}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\ttext: {\r\n\t\t\t\t\t\tprimary: {\r\n\t\t\t\t\t\t\thoverBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-blue)\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tsecondary: {\r\n\t\t\t\t\t\t\thoverBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tsuccess: {\r\n\t\t\t\t\t\t\thoverBackground: \"{green.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{green.100}\",\r\n\t\t\t\t\t\t\tcolor: \"{green.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tinfo: {\r\n\t\t\t\t\t\t\thoverBackground: \"{sky.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{sky.100}\",\r\n\t\t\t\t\t\t\tcolor: \"{sky.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\twarn: {\r\n\t\t\t\t\t\t\thoverBackground: \"{orange.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{orange.100}\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\thelp: {\r\n\t\t\t\t\t\t\thoverBackground: \"{purple.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{purple.100}\",\r\n\t\t\t\t\t\t\tcolor: \"{purple.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdanger: {\r\n\t\t\t\t\t\t\thoverBackground: \"{red.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{red.100}\",\r\n\t\t\t\t\t\t\tcolor: \"{red.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tcontrast: {\r\n\t\t\t\t\t\t\thoverBackground: \"{surface.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{surface.100}\",\r\n\t\t\t\t\t\t\tcolor: \"{surface.950}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tplain: {\r\n\t\t\t\t\t\t\thoverBackground: \"{surface.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{surface.100}\",\r\n\t\t\t\t\t\t\tcolor: \"{surface.700}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\tlink: {\r\n\t\t\t\t\t\tcolor: \"{primary.color}\",\r\n\t\t\t\t\t\thoverColor: \"{primary.color}\",\r\n\t\t\t\t\t\tactiveColor: \"{primary.color}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tdark: {\r\n\t\t\t\t\troot: {\r\n\t\t\t\t\t\tprimary: {\r\n\t\t\t\t\t\t\tbackground: \"var(--main-orange)\",\r\n\t\t\t\t\t\t\thoverBackground: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tactiveBackground: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tborderColor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\t\t\t\thoverColor: \"var(--main-light)\",\r\n\t\t\t\t\t\t\tactiveColor: \"var(--main-light)\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{primary.color}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tsecondary: {\r\n\t\t\t\t\t\t\tbackground: \"var(--main-light)\",\r\n\t\t\t\t\t\t\thoverBackground: \"var(--main-light)\",\r\n\t\t\t\t\t\t\tactiveBackground: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tborderColor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t\thoverColor: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tactiveColor: \"var(--main-light)\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{surface.600}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tinfo: {\r\n\t\t\t\t\t\t\tbackground: \"{sky.500}\",\r\n\t\t\t\t\t\t\thoverBackground: \"{sky.600}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{sky.700}\",\r\n\t\t\t\t\t\t\tborderColor: \"{sky.500}\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"{sky.600}\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"{sky.700}\",\r\n\t\t\t\t\t\t\tcolor: \"#ffffff\",\r\n\t\t\t\t\t\t\thoverColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tactiveColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{sky.500}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tsuccess: {\r\n\t\t\t\t\t\t\tbackground: \"var(--main-light)\",\r\n\t\t\t\t\t\t\thoverBackground: \"{gray.400}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{gray.400}\",\r\n\t\t\t\t\t\t\tborderColor: \"{gray.400}\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"{gray.400}\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"{gray.400}\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-blue)\",\r\n\t\t\t\t\t\t\thoverColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tactiveColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{green.500}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\twarn: {\r\n\t\t\t\t\t\t\tbackground: \"var(--main-orange)\",\r\n\t\t\t\t\t\t\thoverBackground: \"{orange.600}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tborderColor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"{orange.600}\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tcolor: \"#ffffff\",\r\n\t\t\t\t\t\t\thoverColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tactiveColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\thelp: {\r\n\t\t\t\t\t\t\tbackground: \"{purple.500}\",\r\n\t\t\t\t\t\t\thoverBackground: \"{purple.600}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{purple.700}\",\r\n\t\t\t\t\t\t\tborderColor: \"{purple.500}\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"{purple.600}\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"{purple.700}\",\r\n\t\t\t\t\t\t\tcolor: \"#ffffff\",\r\n\t\t\t\t\t\t\thoverColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tactiveColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{purple.500}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdanger: {\r\n\t\t\t\t\t\t\tbackground: \"{red.500}\",\r\n\t\t\t\t\t\t\thoverBackground: \"{red.600}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{red.700}\",\r\n\t\t\t\t\t\t\tborderColor: \"{red.500}\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"{red.600}\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"{red.700}\",\r\n\t\t\t\t\t\t\tcolor: \"#ffffff\",\r\n\t\t\t\t\t\t\thoverColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tactiveColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{red.500}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tcontrast: {\r\n\t\t\t\t\t\t\tbackground: \"{surface.950}\",\r\n\t\t\t\t\t\t\thoverBackground: \"{surface.900}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{surface.800}\",\r\n\t\t\t\t\t\t\tborderColor: \"{surface.950}\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"{surface.900}\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"{surface.800}\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\t\t\t\thoverColor: \"var(--main-light)\",\r\n\t\t\t\t\t\t\tactiveColor: \"var(--main-light)\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{surface.950}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\toutlined: {\r\n\t\t\t\t\t\tprimary: {\r\n\t\t\t\t\t\t\thoverBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tborderColor: \"{transparent}\",\r\n\t\t\t\t\t\t\tcolor: \"{primary.color}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tsecondary: {\r\n\t\t\t\t\t\t\thoverBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tborderColor: \"{transparent}\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tsuccess: {\r\n\t\t\t\t\t\t\thoverBackground: \"{green.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{green.100}\",\r\n\t\t\t\t\t\t\tborderColor: \"{green.200}\",\r\n\t\t\t\t\t\t\tcolor: \"{green.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tinfo: {\r\n\t\t\t\t\t\t\thoverBackground: \"{sky.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{sky.100}\",\r\n\t\t\t\t\t\t\tborderColor: \"{sky.200}\",\r\n\t\t\t\t\t\t\tcolor: \"{sky.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\twarn: {\r\n\t\t\t\t\t\t\thoverBackground: \"{orange.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{orange.100}\",\r\n\t\t\t\t\t\t\tborderColor: \"{orange.200}\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\thelp: {\r\n\t\t\t\t\t\t\thoverBackground: \"{purple.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{purple.100}\",\r\n\t\t\t\t\t\t\tborderColor: \"{purple.200}\",\r\n\t\t\t\t\t\t\tcolor: \"{purple.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdanger: {\r\n\t\t\t\t\t\t\thoverBackground: \"{red.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{red.100}\",\r\n\t\t\t\t\t\t\tborderColor: \"{red.200}\",\r\n\t\t\t\t\t\t\tcolor: \"{red.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tcontrast: {\r\n\t\t\t\t\t\t\thoverBackground: \"{surface.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{surface.100}\",\r\n\t\t\t\t\t\t\tborderColor: \"{surface.700}\",\r\n\t\t\t\t\t\t\tcolor: \"{surface.950}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tplain: {\r\n\t\t\t\t\t\t\thoverBackground: \"{surface.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{surface.100}\",\r\n\t\t\t\t\t\t\tborderColor: \"{surface.200}\",\r\n\t\t\t\t\t\t\tcolor: \"{surface.700}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\ttext: {\r\n\t\t\t\t\t\tprimary: {\r\n\t\t\t\t\t\t\thoverBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-blue)\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tsecondary: {\r\n\t\t\t\t\t\t\thoverBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tsuccess: {\r\n\t\t\t\t\t\t\thoverBackground: \"{green.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{green.100}\",\r\n\t\t\t\t\t\t\tcolor: \"{green.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tinfo: {\r\n\t\t\t\t\t\t\thoverBackground: \"{sky.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{sky.100}\",\r\n\t\t\t\t\t\t\tcolor: \"{sky.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\twarn: {\r\n\t\t\t\t\t\t\thoverBackground: \"{orange.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{orange.100}\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\thelp: {\r\n\t\t\t\t\t\t\thoverBackground: \"{purple.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{purple.100}\",\r\n\t\t\t\t\t\t\tcolor: \"{purple.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdanger: {\r\n\t\t\t\t\t\t\thoverBackground: \"{red.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{red.100}\",\r\n\t\t\t\t\t\t\tcolor: \"{red.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tcontrast: {\r\n\t\t\t\t\t\t\thoverBackground: \"{surface.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{surface.100}\",\r\n\t\t\t\t\t\t\tcolor: \"{surface.950}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tplain: {\r\n\t\t\t\t\t\t\thoverBackground: \"{surface.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{surface.100}\",\r\n\t\t\t\t\t\t\tcolor: \"{surface.700}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\tlink: {\r\n\t\t\t\t\t\tcolor: \"{primary.color}\",\r\n\t\t\t\t\t\thoverColor: \"{primary.color}\",\r\n\t\t\t\t\t\tactiveColor: \"{primary.color}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\tcarousel: {\r\n\t\t\troot: {\r\n\t\t\t\ttransitionDuration: \"{transition.duration}\",\r\n\t\t\t},\r\n\t\t\tcontent: {\r\n\t\t\t\tgap: \"0.25rem\",\r\n\t\t\t},\r\n\t\t\tindicatorList: {\r\n\t\t\t\tpadding: \"1rem\",\r\n\t\t\t\tgap: \"0.5rem\",\r\n\t\t\t},\r\n\t\t\tindicator: {\r\n\t\t\t\twidth: \"0.8rem\",\r\n\t\t\t\theight: \"0.8rem\",\r\n\t\t\t\tborderRadius: \"{content.border.radius}\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"{focus.ring.offset}\",\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tcolorScheme: {\r\n\t\t\t\tlight: {\r\n\t\t\t\t\tindicator: {\r\n\t\t\t\t\t\tbackground: \"var(--main-blue)\",\r\n\t\t\t\t\t\thoverBackground: \"var(--main-blue)\",\r\n\t\t\t\t\t\tactiveBackground: \"{primary.color}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tdark: {\r\n\t\t\t\t\tindicator: {\r\n\t\t\t\t\t\tbackground: \"var(--main-blue)\",\r\n\t\t\t\t\t\thoverBackground: \"var(--main-blue)\",\r\n\t\t\t\t\t\tactiveBackground: \"{primary.color}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\tcheckbox: {\r\n\t\t\troot: {\r\n\t\t\t\tborderRadius: \"{border.radius.sm}\",\r\n\t\t\t\twidth: \"1.2rem\",\r\n\t\t\t\theight: \"1.2rem\",\r\n\t\t\t\tbackground: \"{form.field.background}\",\r\n\t\t\t\tcheckedBackground: \"var(--main-orange)\",\r\n\t\t\t\tcheckedHoverBackground: \"var(--main-orange)\",\r\n\t\t\t\tdisabledBackground: \"{form.field.disabled.background}\",\r\n\t\t\t\tfilledBackground: \"{form.field.filled.background}\",\r\n\t\t\t\tborderColor: \"{gray.500}\",\r\n\t\t\t\thoverBorderColor: \"var(--main-orange)\",\r\n\t\t\t\tfocusBorderColor: \"var(--main-blue)\",\r\n\t\t\t\tcheckedBorderColor: \"var(--main-orange)\",\r\n\t\t\t\tcheckedHoverBorderColor: \"var(--main-orange)\",\r\n\t\t\t\tcheckedFocusBorderColor: \"{primary.color}\",\r\n\t\t\t\tcheckedDisabledBorderColor: \"{form.field.border.color}\",\r\n\t\t\t\tinvalidBorderColor: \"{form.field.invalid.border.color}\",\r\n\t\t\t\tshadow: \"{form.field.shadow}\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"{focus.ring.offset}\",\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t\ttransitionDuration: \"{form.field.transition.duration}\",\r\n\t\t\t\tsm: {\r\n\t\t\t\t\twidth: \"1rem\",\r\n\t\t\t\t\theight: \"1rem\",\r\n\t\t\t\t},\r\n\t\t\t\tlg: {\r\n\t\t\t\t\twidth: \"1.5rem\",\r\n\t\t\t\t\theight: \"1.5rem\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\ticon: {\r\n\t\t\t\tsize: \"0.875rem\",\r\n\t\t\t\tcolor: \"{form.field.color}\",\r\n\t\t\t\tcheckedColor: \"{primary.contrast.color}\",\r\n\t\t\t\tcheckedHoverColor: \"{primary.contrast.color}\",\r\n\t\t\t\tdisabledColor: \"{form.field.disabled.color}\",\r\n\t\t\t\tsm: {\r\n\t\t\t\t\tsize: \"0.75rem\",\r\n\t\t\t\t},\r\n\t\t\t\tlg: {\r\n\t\t\t\t\tsize: \"1rem\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\tdatatable: {\r\n\t\t\troot: {\r\n\t\t\t\ttransitionDuration: \"{transition.duration}\",\r\n\t\t\t},\r\n\r\n\t\t\theader: {\r\n\t\t\t\tbackground: \"{content.background}\",\r\n\t\t\t\tborderColor: \"{datatable.border.color}\",\r\n\t\t\t\tcolor: \"{content.color}\",\r\n\t\t\t\tborderWidth: \"0 0 1px 0\",\r\n\t\t\t\tpadding: \"0.75rem 1rem\",\r\n\t\t\t},\r\n\t\t\theaderCell: {\r\n\t\t\t\tbackground: \"var(--main-blue)\",\r\n\t\t\t\thoverBackground: \"var(--main-blue)\",\r\n\t\t\t\tselectedBackground: \"var(--main-blue)\",\r\n\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\thoverColor: \"var(--main-light)\",\r\n\t\t\t\tselectedColor: \"var(--main-light)\",\r\n\t\t\t\tgap: \"0.5rem\",\r\n\t\t\t\tpadding: \"1.3rem 0.5rem\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"-1px\",\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tcolumnTitle: {\r\n\t\t\t\tfontWeight: \"400\",\r\n\t\t\t},\r\n\t\t\trow: {\r\n\t\t\t\tbackground: \"{content.background}\",\r\n\t\t\t\thoverBackground: \"#cbd9ea\",\r\n\t\t\t\tselectedBackground: \"{highlight.background}\",\r\n\t\t\t\tcolor: \"{content.color}\",\r\n\t\t\t\thoverColor: \"var(--main-blue)\",\r\n\t\t\t\tselectedColor: \"{highlight.color}\",\r\n\t\t\t\tborderWidth: \"0px\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"-1px\",\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tbodyCell: {\r\n\t\t\t\tborderColor: \"transparent\",\r\n\t\t\t\tpadding: \"0.75rem 1rem\",\r\n\t\t\t},\r\n\t\t\tfooterCell: {\r\n\t\t\t\tbackground: \"{content.background}\",\r\n\t\t\t\tborderColor: \"{datatable.border.color}\",\r\n\t\t\t\tcolor: \"{content.color}\",\r\n\t\t\t\tpadding: \"0.75rem 1rem\",\r\n\t\t\t},\r\n\t\t\tcolumnFooter: {\r\n\t\t\t\tfontWeight: \"600\",\r\n\t\t\t},\r\n\t\t\tfooter: {\r\n\t\t\t\tbackground: \"{content.background}\",\r\n\t\t\t\tborderColor: \"{datatable.border.color}\",\r\n\t\t\t\tcolor: \"{content.color}\",\r\n\t\t\t\tborderWidth: \"0 0 1px 0\",\r\n\t\t\t\tpadding: \"0.75rem 1rem\",\r\n\t\t\t},\r\n\t\t\tdropPoint: {\r\n\t\t\t\tcolor: \"{primary.color}\",\r\n\t\t\t},\r\n\t\t\tcolumnResizerWidth: \"0.5rem\",\r\n\t\t\tresizeIndicator: {\r\n\t\t\t\twidth: \"1px\",\r\n\t\t\t\tcolor: \"{primary.color}\",\r\n\t\t\t},\r\n\t\t\tsortIcon: {\r\n\t\t\t\tcolor: \"{text.muted.color}\",\r\n\t\t\t\thoverColor: \"{text.hover.muted.color}\",\r\n\t\t\t\tsize: \"0.875rem\",\r\n\t\t\t},\r\n\t\t\tloadingIcon: {\r\n\t\t\t\tsize: \"2rem\",\r\n\t\t\t},\r\n\t\t\trowToggleButton: {\r\n\t\t\t\thoverBackground: \"{content.hover.background}\",\r\n\t\t\t\tselectedHoverBackground: \"{content.background}\",\r\n\t\t\t\tcolor: \"{text.muted.color}\",\r\n\t\t\t\thoverColor: \"{text.color}\",\r\n\t\t\t\tselectedHoverColor: \"{primary.color}\",\r\n\t\t\t\tsize: \"1.75rem\",\r\n\t\t\t\tborderRadius: \"50%\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"{focus.ring.offset}\",\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tfilter: {\r\n\t\t\t\tinlineGap: \"0.5rem\",\r\n\t\t\t\toverlaySelect: {\r\n\t\t\t\t\tbackground: \"{overlay.select.background}\",\r\n\t\t\t\t\tborderColor: \"{overlay.select.border.color}\",\r\n\t\t\t\t\tborderRadius: \"{overlay.select.border.radius}\",\r\n\t\t\t\t\tcolor: \"{overlay.select.color}\",\r\n\t\t\t\t\tshadow: \"{overlay.select.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t\toverlayPopover: {\r\n\t\t\t\t\tbackground: \"{overlay.popover.background}\",\r\n\t\t\t\t\tborderColor: \"{overlay.popover.border.color}\",\r\n\t\t\t\t\tborderRadius: \"{overlay.popover.border.radius}\",\r\n\t\t\t\t\tcolor: \"{overlay.popover.color}\",\r\n\t\t\t\t\tshadow: \"{overlay.popover.shadow}\",\r\n\t\t\t\t\tpadding: \"{overlay.popover.padding}\",\r\n\t\t\t\t\tgap: \"0.5rem\",\r\n\t\t\t\t},\r\n\t\t\t\trule: {\r\n\t\t\t\t\tborderColor: \"{content.border.color}\",\r\n\t\t\t\t},\r\n\t\t\t\tconstraintList: {\r\n\t\t\t\t\tpadding: \"{list.padding}\",\r\n\t\t\t\t\tgap: \"{list.gap}\",\r\n\t\t\t\t},\r\n\t\t\t\tconstraint: {\r\n\t\t\t\t\tfocusBackground: \"{list.option.focus.background}\",\r\n\t\t\t\t\tselectedBackground: \"{list.option.selected.background}\",\r\n\t\t\t\t\tselectedFocusBackground: \"{list.option.selected.focus.background}\",\r\n\t\t\t\t\tcolor: \"{list.option.color}\",\r\n\t\t\t\t\tfocusColor: \"{list.option.focus.color}\",\r\n\t\t\t\t\tselectedColor: \"{list.option.selected.color}\",\r\n\t\t\t\t\tselectedFocusColor: \"{list.option.selected.focus.color}\",\r\n\t\t\t\t\tseparator: {\r\n\t\t\t\t\t\tborderColor: \"{content.border.color}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tpadding: \"{list.option.padding}\",\r\n\t\t\t\t\tborderRadius: \"{list.option.border.radius}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tpaginatorTop: {\r\n\t\t\t\tborderColor: \"{datatable.border.color}\",\r\n\t\t\t\tborderWidth: \"0 0 1px 0\",\r\n\t\t\t},\r\n\t\t\tpaginatorBottom: {\r\n\t\t\t\tborderColor: \"{datatable.border.color}\",\r\n\t\t\t\tborderWidth: \"0 0 1px 0\",\r\n\t\t\t},\r\n\t\t\tcolorScheme: {\r\n\t\t\t\tlight: {\r\n\t\t\t\t\troot: {\r\n\t\t\t\t\t\tborderColor: \"{content.border.color}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\trow: {\r\n\t\t\t\t\t\tstripedBackground: \"{surface.50}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tbodyCell: {\r\n\t\t\t\t\t\tselectedBorderColor: \"{primary.100}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tdark: {\r\n\t\t\t\t\troot: {\r\n\t\t\t\t\t\tborderColor: \"{content.border.color}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\trow: {\r\n\t\t\t\t\t\tstripedBackground: \"{surface.50}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tbodyCell: {\r\n\t\t\t\t\t\tselectedBorderColor: \"{primary.100}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\tdialog: {\r\n\t\t\troot: {\r\n\t\t\t\tbackground: \"var(--main-light)\",\r\n\t\t\t\tcolor: \"{overlay.modal.color}\",\r\n\t\t\t\tborderRadius: \"{overlay.modal.border.radius}\",\r\n\t\t\t\tshadow: \"none\",\r\n\t\t\t},\r\n\t\t\theader: {\r\n\t\t\t\tgap: \"0.5rem\",\r\n\t\t\t},\r\n\t\t\ttitle: {\r\n\t\t\t\tfontSize: \"1.25rem\",\r\n\t\t\t\tfontWeight: \"600\",\r\n\t\t\t},\r\n\t\t\tcontent: {\r\n\t\t\t\tpadding: \" {overlay.modal.padding}\",\r\n\t\t\t},\r\n\t\t\tfooter: {\r\n\t\t\t\tpadding: \"0 {overlay.modal.padding} {overlay.modal.padding} {overlay.modal.padding}\",\r\n\t\t\t},\r\n\t\t},\r\n\t\tfileupload: {\r\n\t\t\troot: {\r\n\t\t\t\tbackground: \"{content.background}\",\r\n\t\t\t\tborderColor: \"{content.border.color}\",\r\n\t\t\t\tcolor: \"{content.color}\",\r\n\t\t\t\tborderRadius: \"{content.border.radius}\",\r\n\t\t\t\ttransitionDuration: \"{transition.duration}\",\r\n\t\t\t},\r\n\t\t\theader: {\r\n\t\t\t\tbackground: \"transparent\",\r\n\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\tpadding: \"1.125rem\",\r\n\t\t\t\tborderColor: \"unset\",\r\n\t\t\t\tborderWidth: \"0\",\r\n\t\t\t\tborderRadius: \"0\",\r\n\t\t\t\tgap: \"0.5rem\",\r\n\t\t\t},\r\n\t\t\tcontent: {\r\n\t\t\t\thighlightBorderColor: \"{primary.color}\",\r\n\t\t\t\tpadding: \"0 1.125rem 1.125rem 1.125rem\",\r\n\t\t\t\tgap: \"1rem\",\r\n\t\t\t},\r\n\t\t\tfile: {\r\n\t\t\t\tpadding: \"1rem\",\r\n\t\t\t\tgap: \"1rem\",\r\n\t\t\t\tborderColor: \"{content.border.color}\",\r\n\t\t\t\tinfo: {\r\n\t\t\t\t\tgap: \"0.5rem\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tfileList: {\r\n\t\t\t\tgap: \"0.5rem\",\r\n\t\t\t},\r\n\t\t\tprogressbar: {\r\n\t\t\t\theight: \"0.25rem\",\r\n\t\t\t},\r\n\t\t\tbasic: {\r\n\t\t\t\tgap: \"0.5rem\",\r\n\t\t\t},\r\n\t\t},\r\n\t\tinputtext: {\r\n\t\t\troot: {\r\n\t\t\t\tbackground: \"{form.field.background}\",\r\n\t\t\t\tdisabledBackground: \"{form.field.disabled.background}\", // var(--p-inputtext-disabled-background)\r\n\t\t\t\tfilledBackground: \"{form.field.filled.background}\",\r\n\t\t\t\tfilledHoverBackground: \"{form.field.filled.hover.background}\",\r\n\t\t\t\tfilledFocusBackground: \"{form.field.filled.focus.background}\",\r\n\t\t\t\tborderColor: \"{form.field.border.color}\",\r\n\t\t\t\thoverBorderColor: \"{form.field.hover.border.color}\",\r\n\t\t\t\tfocusBorderColor: \"{form.field.focus.border.color}\",\r\n\t\t\t\tinvalidBorderColor: \"{form.field.invalid.border.color}\",\r\n\t\t\t\tcolor: \"{form.field.color}\",\r\n\t\t\t\tdisabledColor: \"{form.field.disabled.color}\",\r\n\t\t\t\tplaceholderColor: \"{form.field.placeholder.color}\",\r\n\t\t\t\tinvalidPlaceholderColor: \"{form.field.invalid.placeholder.color}\",\r\n\t\t\t\tshadow: \"{form.field.shadow}\",\r\n\t\t\t\tpaddingX: \"{form.field.padding.x}\",\r\n\t\t\t\tpaddingY: \"{form.field.padding.y}\",\r\n\t\t\t\tborderRadius: \"{form.field.border.radius}\", // var(--p-inputtext-border-radius)\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{form.field.focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{form.field.focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{form.field.focus.ring.color}\",\r\n\t\t\t\t\toffset: \"{form.field.focus.ring.offset}\", // var(--p-inputtext-focus-ring-offset)\r\n\t\t\t\t\tshadow: \"{form.field.focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t\ttransitionDuration: \"{form.field.transition.duration}\",\r\n\t\t\t\tsm: {\r\n\t\t\t\t\tfontSize: \"{form.field.sm.font.size}\",\r\n\t\t\t\t\tpaddingX: \"{form.field.sm.padding.x}\",\r\n\t\t\t\t\tpaddingY: \"{form.field.sm.padding.y}\",\r\n\t\t\t\t},\r\n\t\t\t\tlg: {\r\n\t\t\t\t\tfontSize: \"{form.field.lg.font.size}\",\r\n\t\t\t\t\tpaddingX: \"{form.field.lg.padding.x}\",\r\n\t\t\t\t\tpaddingY: \"{form.field.lg.padding.y}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\tinputgroup: {\r\n\t\t\taddon: {\r\n\t\t\t\tbackground: \"{form.field.background}\",\r\n\t\t\t\tborderColor: \"{form.field.border.color}\",\r\n\t\t\t\tcolor: \"{form.field.icon.color}\",\r\n\t\t\t\tborderRadius: \"{form.field.border.radius}\",\r\n\t\t\t\tpadding: \"0.5rem\",\r\n\t\t\t\tminWidth: \"2.5rem\",\r\n\t\t\t},\r\n\t\t},\r\n\t\tlistbox: {\r\n\t\t\troot: {\r\n\t\t\t\tbackground: \"{form.field.background}\",\r\n\t\t\t\tdisabledBackground: \"{form.field.disabled.background}\",\r\n\t\t\t\tborderColor: \"{form.field.border.color}\",\r\n\t\t\t\tinvalidBorderColor: \"{form.field.invalid.border.color}\",\r\n\t\t\t\tcolor: \"{form.field.color}\",\r\n\t\t\t\tdisabledColor: \"{form.field.disabled.color}\",\r\n\t\t\t\tshadow: \"{form.field.shadow}\",\r\n\t\t\t\tborderRadius: \"{form.field.border.radius}\",\r\n\t\t\t\ttransitionDuration: \"{form.field.transition.duration}\",\r\n\t\t\t},\r\n\t\t\tlist: {\r\n\t\t\t\tpadding: \"{list.padding}\",\r\n\t\t\t\tgap: \"{list.gap}\",\r\n\t\t\t\theader: {\r\n\t\t\t\t\tpadding: \"{list.header.padding}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\toption: {\r\n\t\t\t\tfocusBackground: \"{list.option.focus.background}\",\r\n\t\t\t\tselectedBackground: \"{list.option.selected.background}\",\r\n\t\t\t\tselectedFocusBackground: \"{list.option.selected.focus.background}\",\r\n\t\t\t\tcolor: \"{list.option.color}\",\r\n\t\t\t\tfocusColor: \"{list.option.focus.color}\",\r\n\t\t\t\tselectedColor: \"{list.option.selected.color}\",\r\n\t\t\t\tselectedFocusColor: \"{list.option.selected.focus.color}\",\r\n\t\t\t\tpadding: \"{list.option.padding}\",\r\n\t\t\t\tborderRadius: \"{list.option.border.radius}\",\r\n\t\t\t},\r\n\t\t\toptionGroup: {\r\n\t\t\t\tbackground: \"{list.option.group.background}\",\r\n\t\t\t\tcolor: \"{list.option.group.color}\",\r\n\t\t\t\tfontWeight: \"{list.option.group.font.weight}\",\r\n\t\t\t\tpadding: \"{list.option.group.padding}\",\r\n\t\t\t},\r\n\t\t\tcheckmark: {\r\n\t\t\t\tcolor: \"{list.option.color}\",\r\n\t\t\t\tgutterStart: \"-0.375rem\",\r\n\t\t\t\tgutterEnd: \"0.375rem\",\r\n\t\t\t},\r\n\t\t\temptyMessage: {\r\n\t\t\t\tpadding: \"{list.option.padding}\",\r\n\t\t\t},\r\n\t\t\tcolorScheme: {\r\n\t\t\t\tlight: {\r\n\t\t\t\t\toption: {\r\n\t\t\t\t\t\tstripedBackground: \"{surface.50}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tdark: {\r\n\t\t\t\t\toption: {\r\n\t\t\t\t\t\tstripedBackground: \"{surface.900}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\tmultiselect: {\r\n\t\t\troot: {\r\n\t\t\t\tbackground: \"{form.field.background}\",\r\n\t\t\t\tdisabledBackground: \"{form.field.disabled.background}\",\r\n\t\t\t\tfilledBackground: \"{form.field.filled.background}\",\r\n\t\t\t\tfilledHoverBackground: \"{form.field.filled.hover.background}\",\r\n\t\t\t\tfilledFocusBackground: \"{form.field.filled.focus.background}\",\r\n\t\t\t\tborderColor: \"{form.field.border.color}\",\r\n\t\t\t\thoverBorderColor: \"{form.field.hover.border.color}\",\r\n\t\t\t\tfocusBorderColor: \"{form.field.focus.border.color}\",\r\n\t\t\t\tinvalidBorderColor: \"{form.field.invalid.border.color}\",\r\n\t\t\t\tcolor: \"{form.field.color}\",\r\n\t\t\t\tdisabledColor: \"{form.field.disabled.color}\",\r\n\t\t\t\tplaceholderColor: \"{form.field.placeholder.color}\",\r\n\t\t\t\tinvalidPlaceholderColor: \"{form.field.invalid.placeholder.color}\",\r\n\t\t\t\tshadow: \"{form.field.shadow}\",\r\n\t\t\t\tpaddingX: \"{form.field.padding.x}\",\r\n\t\t\t\tpaddingY: \"{form.field.padding.y}\",\r\n\t\t\t\tborderRadius: \"{form.field.border.radius}\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{form.field.focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{form.field.focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{form.field.focus.ring.color}\",\r\n\t\t\t\t\toffset: \"{form.field.focus.ring.offset}\",\r\n\t\t\t\t\tshadow: \"{form.field.focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t\ttransitionDuration: \"{form.field.transition.duration}\",\r\n\t\t\t\tsm: {\r\n\t\t\t\t\tfontSize: \"{form.field.sm.font.size}\",\r\n\t\t\t\t\tpaddingX: \"{form.field.sm.padding.x}\",\r\n\t\t\t\t\tpaddingY: \"{form.field.sm.padding.y}\",\r\n\t\t\t\t},\r\n\t\t\t\tlg: {\r\n\t\t\t\t\tfontSize: \"{form.field.lg.font.size}\",\r\n\t\t\t\t\tpaddingX: \"{form.field.lg.padding.x}\",\r\n\t\t\t\t\tpaddingY: \"{form.field.lg.padding.y}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tdropdown: {\r\n\t\t\t\twidth: \"2.5rem\",\r\n\t\t\t\tcolor: \"{form.field.icon.color}\",\r\n\t\t\t},\r\n\t\t\toverlay: {\r\n\t\t\t\tbackground: \"{overlay.select.background}\",\r\n\t\t\t\tborderColor: \"{overlay.select.border.color}\",\r\n\t\t\t\tborderRadius: \"{overlay.select.border.radius}\",\r\n\t\t\t\tcolor: \"{overlay.select.color}\",\r\n\t\t\t\tshadow: \"{overlay.select.shadow}\",\r\n\t\t\t},\r\n\t\t\tlist: {\r\n\t\t\t\tpadding: \"{list.padding}\",\r\n\t\t\t\tgap: \"{list.gap}\",\r\n\t\t\t\theader: {\r\n\t\t\t\t\tpadding: \"{list.header.padding}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\toption: {\r\n\t\t\t\tfocusBackground: \"{list.option.focus.background}\",\r\n\t\t\t\tselectedBackground: \"{list.option.selected.background}\",\r\n\t\t\t\tselectedFocusBackground: \"{list.option.selected.focus.background}\",\r\n\t\t\t\tcolor: \"{list.option.color}\",\r\n\t\t\t\tfocusColor: \"{list.option.focus.color}\",\r\n\t\t\t\tselectedColor: \"{list.option.selected.color}\",\r\n\t\t\t\tselectedFocusColor: \"{list.option.selected.focus.color}\",\r\n\t\t\t\tpadding: \"{list.option.padding}\",\r\n\t\t\t\tborderRadius: \"{list.option.border.radius}\",\r\n\t\t\t\tgap: \"0.5rem\",\r\n\t\t\t},\r\n\t\t\toptionGroup: {\r\n\t\t\t\tbackground: \"{list.option.group.background}\",\r\n\t\t\t\tcolor: \"{list.option.group.color}\",\r\n\t\t\t\tfontWeight: \"{list.option.group.font.weight}\",\r\n\t\t\t\tpadding: \"{list.option.group.padding}\",\r\n\t\t\t},\r\n\t\t\tclearIcon: {\r\n\t\t\t\tcolor: \"{form.field.icon.color}\",\r\n\t\t\t},\r\n\t\t\tchip: {\r\n\t\t\t\tborderRadius: \"{border.radius.sm}\",\r\n\t\t\t},\r\n\t\t\temptyMessage: {\r\n\t\t\t\tpadding: \"{list.option.padding}\",\r\n\t\t\t},\r\n\t\t},\r\n\t\tpicklist: {\r\n\t\t\troot: {\r\n\t\t\t\tgap: \"1.125rem\",\r\n\t\t\t},\r\n\t\t\tcontrols: {\r\n\t\t\t\tgap: \"0.5rem\",\r\n\t\t\t},\r\n\t\t},\r\n\t\tpopover: {\r\n\t\t\troot: {\r\n\t\t\t\tbackground: \"{overlay.popover.background}\",\r\n\t\t\t\tborderColor: \"{overlay.popover.border.color}\",\r\n\t\t\t\tcolor: \"{overlay.popover.color}\",\r\n\t\t\t\tborderRadius: \"{overlay.popover.border.radius}\",\r\n\t\t\t\tshadow: \"{overlay.popover.shadow}\",\r\n\t\t\t\tgutter: \"0\",\r\n\t\t\t\tarrowOffset: \"1.25rem\",\r\n\t\t\t},\r\n\t\t\tcontent: {\r\n\t\t\t\tpadding: \"0\",\r\n\t\t\t},\r\n\t\t},\r\n\t\tradiobutton: {\r\n\t\t\troot: {\r\n\t\t\t\twidth: \"1.2rem\",\r\n\t\t\t\theight: \"1.2rem\",\r\n\t\t\t\tbackground: \"{form.field.background}\",\r\n\t\t\t\tcheckedBackground: \"var(--main-orange)\",\r\n\t\t\t\tcheckedHoverBackground: \"var(--main-orange)\",\r\n\t\t\t\tdisabledBackground: \"{form.field.disabled.background}\",\r\n\t\t\t\tfilledBackground: \"{form.field.filled.background}\",\r\n\t\t\t\tborderColor: \"{gray.500}\",\r\n\t\t\t\thoverBorderColor: \"var(--main-orange)\",\r\n\t\t\t\tfocusBorderColor: \"var(--main-blue)\",\r\n\t\t\t\tcheckedBorderColor: \"var(--main-orange)\",\r\n\t\t\t\tcheckedHoverBorderColor: \"var(--main-orange)\",\r\n\t\t\t\tcheckedFocusBorderColor: \"{primary.color}\",\r\n\t\t\t\tcheckedDisabledBorderColor: \"{form.field.border.color}\",\r\n\t\t\t\tinvalidBorderColor: \"{form.field.invalid.border.color}\",\r\n\t\t\t\tshadow: \"{form.field.shadow}\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"{focus.ring.offset}\",\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t\ttransitionDuration: \"{form.field.transition.duration}\",\r\n\t\t\t\tsm: {\r\n\t\t\t\t\twidth: \"1rem\",\r\n\t\t\t\t\theight: \"1rem\",\r\n\t\t\t\t},\r\n\t\t\t\tlg: {\r\n\t\t\t\t\twidth: \"1.5rem\",\r\n\t\t\t\t\theight: \"1.5rem\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\ticon: {\r\n\t\t\t\tsize: \"0.75rem\",\r\n\t\t\t\tcheckedColor: \"{primary.contrast.color}\",\r\n\t\t\t\tcheckedHoverColor: \"{primary.contrast.color}\",\r\n\t\t\t\tdisabledColor: \"{form.field.disabled.color}\",\r\n\t\t\t\tsm: {\r\n\t\t\t\t\tsize: \"0.5rem\",\r\n\t\t\t\t},\r\n\t\t\t\tlg: {\r\n\t\t\t\t\tsize: \"1rem\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\tselect: {\r\n\t\t\troot: {\r\n\t\t\t\tbackground: \"{form.field.background}\",\r\n\t\t\t\tdisabledBackground: \"{form.field.disabled.background}\",\r\n\t\t\t\tfilledBackground: \"{form.field.filled.background}\",\r\n\t\t\t\tfilledHoverBackground: \"{form.field.filled.hover.background}\",\r\n\t\t\t\tfilledFocusBackground: \"{form.field.filled.focus.background}\",\r\n\t\t\t\tborderColor: \"{form.field.border.color}\",\r\n\t\t\t\thoverBorderColor: \"{form.field.hover.border.color}\",\r\n\t\t\t\tfocusBorderColor: \"{form.field.focus.border.color}\",\r\n\t\t\t\tinvalidBorderColor: \"{form.field.invalid.border.color}\",\r\n\t\t\t\tcolor: \"{form.field.color}\",\r\n\t\t\t\tdisabledColor: \"{form.field.disabled.color}\",\r\n\t\t\t\tplaceholderColor: \"{form.field.placeholder.color}\",\r\n\t\t\t\tinvalidPlaceholderColor: \"{form.field.invalid.placeholder.color}\",\r\n\t\t\t\tshadow: \"{form.field.shadow}\",\r\n\t\t\t\tpaddingX: \"{form.field.padding.x}\",\r\n\t\t\t\tpaddingY: \"{form.field.padding.y}\",\r\n\t\t\t\tborderRadius: \"{form.field.border.radius}\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{form.field.focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{form.field.focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{form.field.focus.ring.color}\",\r\n\t\t\t\t\toffset: \"{form.field.focus.ring.offset}\",\r\n\t\t\t\t\tshadow: \"{form.field.focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t\ttransitionDuration: \"{form.field.transition.duration}\",\r\n\t\t\t\tsm: {\r\n\t\t\t\t\tfontSize: \"{form.field.sm.font.size}\",\r\n\t\t\t\t\tpaddingX: \"{form.field.sm.padding.x}\",\r\n\t\t\t\t\tpaddingY: \"{form.field.sm.padding.y}\",\r\n\t\t\t\t},\r\n\t\t\t\tlg: {\r\n\t\t\t\t\tfontSize: \"{form.field.lg.font.size}\",\r\n\t\t\t\t\tpaddingX: \"{form.field.lg.padding.x}\",\r\n\t\t\t\t\tpaddingY: \"{form.field.lg.padding.y}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tdropdown: {\r\n\t\t\t\twidth: \"2.5rem\",\r\n\t\t\t\tcolor: \"{form.field.icon.color}\",\r\n\t\t\t},\r\n\t\t\toverlay: {\r\n\t\t\t\tbackground: \"{overlay.select.background}\",\r\n\t\t\t\tborderColor: \"{overlay.select.border.color}\",\r\n\t\t\t\tborderRadius: \"{overlay.select.border.radius}\",\r\n\t\t\t\tcolor: \"{overlay.select.color}\",\r\n\t\t\t\tshadow: \"{overlay.select.shadow}\",\r\n\t\t\t},\r\n\t\t\tlist: {\r\n\t\t\t\tpadding: \"{list.padding}\",\r\n\t\t\t\tgap: \"{list.gap}\",\r\n\t\t\t\theader: {\r\n\t\t\t\t\tpadding: \"{list.header.padding}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\toption: {\r\n\t\t\t\tfocusBackground: \"{list.option.focus.background}\",\r\n\t\t\t\tselectedBackground: \"{list.option.selected.background}\",\r\n\t\t\t\tselectedFocusBackground: \"{list.option.selected.focus.background}\",\r\n\t\t\t\tcolor: \"{list.option.color}\",\r\n\t\t\t\tfocusColor: \"{list.option.focus.color}\",\r\n\t\t\t\tselectedColor: \"{list.option.selected.color}\",\r\n\t\t\t\tselectedFocusColor: \"{list.option.selected.focus.color}\",\r\n\t\t\t\tpadding: \"{list.option.padding}\",\r\n\t\t\t\tborderRadius: \"{list.option.border.radius}\",\r\n\t\t\t},\r\n\t\t\toptionGroup: {\r\n\t\t\t\tbackground: \"{list.option.group.background}\",\r\n\t\t\t\tcolor: \"{list.option.group.color}\",\r\n\t\t\t\tfontWeight: \"{list.option.group.font.weight}\",\r\n\t\t\t\tpadding: \"{list.option.group.padding}\",\r\n\t\t\t},\r\n\t\t\tclearIcon: {\r\n\t\t\t\tcolor: \"{form.field.icon.color}\",\r\n\t\t\t},\r\n\t\t\tcheckmark: {\r\n\t\t\t\tcolor: \"{list.option.color}\",\r\n\t\t\t\tgutterStart: \"-0.375rem\",\r\n\t\t\t\tgutterEnd: \"0.375rem\",\r\n\t\t\t},\r\n\t\t\temptyMessage: {\r\n\t\t\t\tpadding: \"{list.option.padding}\",\r\n\t\t\t},\r\n\t\t},\r\n\t\tstepper: {\r\n\t\t\troot: {\r\n\t\t\t\ttransitionDuration: \"{transition.duration}\",\r\n\t\t\t},\r\n\t\t\tseparator: {\r\n\t\t\t\tbackground: \"var(--main-gray)\", // var(--p-stepper-separator-background)\r\n\t\t\t\tactiveBackground: \"var(--main-orange)\",\r\n\t\t\t\tmargin: \"0 0 0 1.625rem\",\r\n\t\t\t\tsize: \"2px\",\r\n\t\t\t},\r\n\t\t\tstep: {\r\n\t\t\t\tpadding: \"0.5rem\",\r\n\t\t\t\tgap: \"1rem\",\r\n\t\t\t},\r\n\t\t\tstepHeader: {\r\n\t\t\t\tpadding: \"0\",\r\n\t\t\t\tborderRadius: \"{content.border.radius}\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"{focus.ring.offset}\",\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t\tgap: \"0.5rem\",\r\n\t\t\t},\r\n\t\t\tstepTitle: {\r\n\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\tactiveColor: \"{secondary.color}\",\r\n\t\t\t\tfontWeight: \"500\",\r\n\t\t\t},\r\n\t\t\tstepNumber: {\r\n\t\t\t\tbackground: \"{content.background}\",\r\n\t\t\t\tactiveBackground: \"{content.background}\",\r\n\t\t\t\tborderColor: \"{primary.color}\",\r\n\t\t\t\tactiveBorderColor: \"{secondary.color}\",\r\n\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\tactiveColor: \"{secondary.color}\",\r\n\t\t\t\tsize: \"2rem\",\r\n\t\t\t\tfontSize: \"1.143rem\",\r\n\t\t\t\tfontWeight: \"500\",\r\n\t\t\t\tborderRadius: \"50%\",\r\n\t\t\t\tshadow: \"0px 0.5px 0px 0px rgba(0, 0, 0, 0.06), 0px 1px 1px 0px rgba(0, 0, 0, 0.12)\",\r\n\t\t\t},\r\n\t\t\tstepIcon: {\r\n\t\t\t\tbackground: \"{primary.color}\",\r\n\t\t\t\tactiveBackground: \"{content.background}\",\r\n\t\t\t\tborderColor: \"{primary.color}\",\r\n\t\t\t\tactiveBorderColor: \"{secondary.color}\",\r\n\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\tactiveColor: \"{secondary.color}\",\r\n\t\t\t\tsize: \"2rem\",\r\n\t\t\t\tfontSize: \"1.143rem\",\r\n\t\t\t\tfontWeight: \"500\",\r\n\t\t\t\tborderRadius: \"50%\",\r\n\t\t\t\tshadow: \"0px 0.5px 0px 0px rgba(0, 0, 0, 0.06), 0px 1px 1px 0px rgba(0, 0, 0, 0.12)\",\r\n\t\t\t},\r\n\t\t\tsteppanels: {\r\n\t\t\t\tpadding: \"0.875rem 0.5rem 1.125rem 0.5rem\",\r\n\t\t\t},\r\n\t\t\tsteppanel: {\r\n\t\t\t\tbackground: \"{content.background}\",\r\n\t\t\t\tcolor: \"{content.color}\",\r\n\t\t\t\tpadding: \"0\",\r\n\t\t\t\tindent: \"1rem\",\r\n\t\t\t},\r\n\t\t},\r\n\t\tslider: {\r\n\t\t\troot: {\r\n\t\t\t\tborderRadius: \"1rem\",\r\n\t\t\t\ttransitionDuration: \"{transition.duration}\",\r\n\t\t\t},\r\n\t\t\ttrack: {\r\n\t\t\t\tbackground: \"{gray.200}\",\r\n\t\t\t\tsize: \"0.4rem\",\r\n\t\t\t},\r\n\t\t\trange: {\r\n\t\t\t\tbackground: \"{primary.color}\",\r\n\t\t\t},\r\n\t\t\thandle: {\r\n\t\t\t\twidth: \"1.1rem\",\r\n\t\t\t\theight: \"1.1rem\",\r\n\t\t\t\tborderRadius: \"50%\",\r\n\t\t\t\tbackground: \"{content.border.color}\",\r\n\t\t\t\thoverBackground: \"{content.border.color}\",\r\n\t\t\t\tcontent: {\r\n\t\t\t\t\tborderRadius: \"50%\",\r\n\t\t\t\t\thoverBackground: \"{content.background}\",\r\n\t\t\t\t\twidth: \"16px\",\r\n\t\t\t\t\theight: \"16px\",\r\n\t\t\t\t\tshadow: \"0px 0.5px 0px 0px rgba(0, 0, 0, 0.08), 0px 1px 1px 0px rgba(0, 0, 0, 0.14)\",\r\n\t\t\t\t},\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"{focus.ring.offset}\",\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tcolorScheme: {\r\n\t\t\t\tlight: {\r\n\t\t\t\t\thandle: {\r\n\t\t\t\t\t\tcontentBackground: \"{content.border.color}\",\r\n\t\t\t\t\t\trange: {\r\n\t\t\t\t\t\t\tbackground: \"{content.border.color}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tdark: {\r\n\t\t\t\t\thandle: {\r\n\t\t\t\t\t\tcontentBackground: \"{content.border.color} \",\r\n\t\t\t\t\t},\r\n\t\t\t\t\trange: {\r\n\t\t\t\t\t\tbackground: \"{content.border.color}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttabs: {\r\n\t\t\troot: {\r\n\t\t\t\ttransitionDuration: \"{transition.duration}\",\r\n\t\t\t},\r\n\t\t\ttablist: {\r\n\t\t\t\tborderWidth: \"0 0 0 0\",\r\n\t\t\t\tbackground: \"var(--main-blue)\",\r\n\t\t\t\tborderColor: \"#fff\",\r\n\t\t\t},\r\n\t\t\ttab: {\r\n\t\t\t\tbackground: \"transparent\",\r\n\t\t\t\thoverBackground: \"transparent\",\r\n\t\t\t\tactiveBackground: \"#fff\",\r\n\t\t\t\tborderWidth: \"0 0 0 0\",\r\n\t\t\t\tborderColor: \"{content.border.color}\",\r\n\t\t\t\thoverBorderColor: \"{content.border.color}\",\r\n\t\t\t\tactiveBorderColor: \"#fff\",\r\n\t\t\t\tcolor: \"#fff\",\r\n\t\t\t\thoverColor: \"#d9d9d9\",\r\n\t\t\t\tactiveColor: \"var(--main-orange)\",\r\n\t\t\t\tpadding: \"1rem 1.125rem\",\r\n\t\t\t\tfontWeight: \"400\",\r\n\t\t\t\tmargin: \"0\",\r\n\t\t\t\tgap: \"0.5rem\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"-1px\",\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\ttabpanel: {\r\n\t\t\t\tbackground: \"{content.background}\",\r\n\t\t\t\tcolor: \"{content.color}\",\r\n\t\t\t\tpadding: \"2rem\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"{focus.ring.offset}\",\r\n\t\t\t\t\tshadow: \"inset {focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tnavButton: {\r\n\t\t\t\tbackground: \"{content.background}\",\r\n\t\t\t\tcolor: \"{text.muted.color}\",\r\n\t\t\t\thoverColor: \"{text.color}\",\r\n\t\t\t\twidth: \"2.5rem\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"-1px\",\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tactiveBar: {\r\n\t\t\t\theight: \"1px\",\r\n\t\t\t\tbottom: \"-1px\",\r\n\t\t\t\tbackground: \"{primary.color}\",\r\n\t\t\t},\r\n\t\t\tcolorScheme: {\r\n\t\t\t\tlight: {\r\n\t\t\t\t\tnavButton: {\r\n\t\t\t\t\t\tshadow: \"0px 0px 10px 50px rgba(255, 255, 255, 0.6)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tdark: {\r\n\t\t\t\t\tnavButton: {\r\n\t\t\t\t\t\tshadow: \"0px 0px 10px 50px rgba(255, 255, 255, 0.6)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttag: {\r\n\t\t\t// Pills\r\n\t\t\troot: {\r\n\t\t\t\tfontSize: \"0.875rem\",\r\n\t\t\t\tfontWeight: \"700\",\r\n\t\t\t\tpadding: \"0.25rem 0.5rem\",\r\n\t\t\t\tgap: \"0.25rem\",\r\n\t\t\t\tborderRadius: \"{content.border.radius}\",\r\n\t\t\t\troundedBorderRadius: \"{border.radius.xl}\",\r\n\t\t\t},\r\n\t\t\ticon: {\r\n\t\t\t\tsize: \"0.75rem\",\r\n\t\t\t},\r\n\t\t\tcolorScheme: {\r\n\t\t\t\tlight: {\r\n\t\t\t\t\tprimary: {\r\n\t\t\t\t\t\tbackground: \"{primary.100}\",\r\n\t\t\t\t\t\tcolor: \"{primary.700}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsecondary: {\r\n\t\t\t\t\t\tbackground: \"{surface.100}\",\r\n\t\t\t\t\t\tcolor: \"{surface.600}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsuccess: {\r\n\t\t\t\t\t\tbackground: \"{green.100}\",\r\n\t\t\t\t\t\tcolor: \"{green.700}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tinfo: {\r\n\t\t\t\t\t\tbackground: \"{sky.100}\",\r\n\t\t\t\t\t\tcolor: \"{sky.700}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\twarn: {\r\n\t\t\t\t\t\tbackground: \"{orange.100}\",\r\n\t\t\t\t\t\tcolor: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tdanger: {\r\n\t\t\t\t\t\tbackground: \"{red.100}\",\r\n\t\t\t\t\t\tcolor: \"{red.700}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontrast: {\r\n\t\t\t\t\t\tbackground: \"{surface.950}\",\r\n\t\t\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tdark: {\r\n\t\t\t\t\tprimary: {\r\n\t\t\t\t\t\tbackground: \"{primary.100}\",\r\n\t\t\t\t\t\tcolor: \"{primary.700}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsecondary: {\r\n\t\t\t\t\t\tbackground: \"{surface.100}\",\r\n\t\t\t\t\t\tcolor: \"{surface.600}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsuccess: {\r\n\t\t\t\t\t\tbackground: \"{green.100}\",\r\n\t\t\t\t\t\tcolor: \"{green.700}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tinfo: {\r\n\t\t\t\t\t\tbackground: \"{sky.100}\",\r\n\t\t\t\t\t\tcolor: \"{sky.700}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\twarn: {\r\n\t\t\t\t\t\tbackground: \"{orange.100}\",\r\n\t\t\t\t\t\tcolor: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tdanger: {\r\n\t\t\t\t\t\tbackground: \"{red.100}\",\r\n\t\t\t\t\t\tcolor: \"{red.700}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontrast: {\r\n\t\t\t\t\t\tbackground: \"{surface.950}\",\r\n\t\t\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttoggleswitch: {\r\n\t\t\troot: {\r\n\t\t\t\twidth: \"2.9rem\",\r\n\t\t\t\theight: \"1.5rem\",\r\n\t\t\t\tborderRadius: \"3rem\",\r\n\t\t\t\tgap: \"0.25rem\",\r\n\t\t\t\tshadow: \"{form.field.shadow}\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"{focus.ring.offset}\",\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t\tborderWidth: \"1px\",\r\n\t\t\t\tborderColor: \"transparent\",\r\n\t\t\t\thoverBorderColor: \"transparent\",\r\n\t\t\t\tcheckedBorderColor: \"transparent\",\r\n\t\t\t\tcheckedHoverBorderColor: \"transparent\",\r\n\t\t\t\tinvalidBorderColor: \"{form.field.invalid.border.color}\",\r\n\t\t\t\ttransitionDuration: \"{form.field.transition.duration}\",\r\n\t\t\t\tslideDuration: \"0.2s\",\r\n\t\t\t},\r\n\t\t\thandle: {\r\n\t\t\t\tborderRadius: \"50%\",\r\n\t\t\t\tsize: \"1rem\",\r\n\t\t\t},\r\n\t\t\tcolorScheme: {\r\n\t\t\t\tlight: {\r\n\t\t\t\t\troot: {\r\n\t\t\t\t\t\tbackground: \"{gray.400}\",\r\n\t\t\t\t\t\tdisabledBackground: \"{gray.300}\",\r\n\t\t\t\t\t\thoverBackground: \"{gray.400}\",\r\n\t\t\t\t\t\tcheckedBackground: \"var(--main-orange)\",\r\n\t\t\t\t\t\tcheckedHoverBackground: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\thandle: {\r\n\t\t\t\t\t\tbackground: \"var(--main-light)\",\r\n\t\t\t\t\t\tdisabledBackground: \"{gray.400}\",\r\n\t\t\t\t\t\thoverBackground: \"var(--main-light)\",\r\n\t\t\t\t\t\tcheckedBackground: \"var(--main-light)\",\r\n\t\t\t\t\t\tcheckedHoverBackground: \"var(--main-light)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tdark: {\r\n\t\t\t\t\troot: {\r\n\t\t\t\t\t\tbackground: \"{gray.400}\",\r\n\t\t\t\t\t\tdisabledBackground: \"{gray.300}\",\r\n\t\t\t\t\t\thoverBackground: \"{gray.400}\",\r\n\t\t\t\t\t\tcheckedBackground: \"var(--main-orange)\",\r\n\t\t\t\t\t\tcheckedHoverBackground: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\thandle: {\r\n\t\t\t\t\t\tbackground: \"var(--main-light)\",\r\n\t\t\t\t\t\tdisabledBackground: \"{gray.400}\",\r\n\t\t\t\t\t\thoverBackground: \"var(--main-light)\",\r\n\t\t\t\t\t\tcheckedBackground: \"var(--main-light)\",\r\n\t\t\t\t\t\tcheckedHoverBackground: \"var(--main-light)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttooltip: {\r\n\t\t\troot: {\r\n\t\t\t\tmaxWidth: \"60rem\",\r\n\t\t\t\tgutter: \"0.25rem\",\r\n\t\t\t\tshadow: \"{overlay.popover.shadow}\",\r\n\t\t\t\tpadding: \"0.5rem 0.75rem\",\r\n\t\t\t\tborderRadius: \"{overlay.popover.border.radius}\",\r\n\t\t\t},\r\n\t\t\tcolorScheme: {\r\n\t\t\t\tlight: {\r\n\t\t\t\t\troot: {\r\n\t\t\t\t\t\tbackground: \"var(--main-blue)\",\r\n\t\t\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tdark: {\r\n\t\t\t\t\troot: {\r\n\t\t\t\t\t\tbackground: \"var(--main-blue)\",\r\n\t\t\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttree: {\r\n\t\t\troot: {\r\n\t\t\t\tbackground: \"transparent\",\r\n\t\t\t\tcolor: \"{content.color}\",\r\n\t\t\t\tpadding: \"0\",\r\n\t\t\t\tgap: \"0.2rem\",\r\n\t\t\t\tindent: \"1rem\",\r\n\t\t\t\ttransitionDuration: \"{transition.duration}\",\r\n\t\t\t},\r\n\t\t\tnode: {\r\n\t\t\t\tpadding: \"0.25rem 0.5rem\",\r\n\t\t\t\tborderRadius: \"{content.border.radius}\",\r\n\t\t\t\thoverBackground: \"{content.hover.background}\",\r\n\t\t\t\tselectedBackground: \"{highlight.background}\",\r\n\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\thoverColor: \"{text.hover.color}\",\r\n\t\t\t\tselectedColor: \"{highlight.color}\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"-1px\",\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t\tgap: \"0.25rem\",\r\n\t\t\t},\r\n\t\t\tnodeIcon: {\r\n\t\t\t\tcolor: \"{text.muted.color}\",\r\n\t\t\t\thoverColor: \"{text.hover.muted.color}\",\r\n\t\t\t\tselectedColor: \"{highlight.color}\",\r\n\t\t\t},\r\n\t\t\tnodeToggleButton: {\r\n\t\t\t\tborderRadius: \"0\",\r\n\t\t\t\tsize: \"1em\",\r\n\t\t\t\thoverBackground: \"{content.hover.background}\",\r\n\t\t\t\tselectedHoverBackground: \"{content.background}\",\r\n\t\t\t\tcolor: \"blue.700\",\r\n\t\t\t\thoverColor: \"{text.hover.muted.color}\",\r\n\t\t\t\tselectedHoverColor: \"{primary.color}\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"{focus.ring.offset}\",\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tloadingIcon: {\r\n\t\t\t\tsize: \"2rem\",\r\n\t\t\t},\r\n\t\t\tfilter: {\r\n\t\t\t\tmargin: \"0 0 0.5rem 0\",\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n});\r\n","//Pipes\r\nexport * from \"./lib/pipes/term.pipes\";\r\nexport * from \"./lib/pipes/amount.pipe\";\r\nexport * from \"./lib/pipes/truncate.pipe\";\r\n//Constants\r\nexport * from \"./lib/constants/cookieConfiguration.constants\";\r\nexport * from \"./lib/constants/color.constants\";\r\nexport * from \"./lib/constants/date-mode-options.constants\";\r\n//Interceptors\r\nexport * from \"./lib/interceptor/error.interceptor\";\r\nexport * from \"./lib/interceptor/refreshToken.interceptor\";\r\n//Enums\r\nexport * from \"./lib/enums/sort-order.enum\";\r\n//Guards\r\nexport * from \"./lib/guards/TermGuard\";\r\nexport * from \"./lib/guards/RouteGuard\";\r\n//Components\r\nexport * from \"./lib/components/spinner/spinner.component\";\r\nexport * from \"./lib/components/table/table.component\";\r\nexport * from \"./lib/components/table/column.component\";\r\nexport * from \"./lib/components/table/model/search.model\";\r\nexport * from \"./lib/components/table/model/sort.model\";\r\nexport * from \"./lib/components/tree-table/tree-table.component\";\r\nexport * from \"./lib/components/tree-table/column.component\";\r\nexport * from \"./lib/components/matrix-table/matrix-table.component\";\r\nexport * from \"./lib/components/matrix-table/column.component\";\r\nexport * from \"./lib/components/actions-menu/actions-menu.component\";\r\nexport * from \"./lib/components/actions-menu/action.directive\";\r\nexport * from \"./lib/components/filter-chips/filter-chips.component\";\r\nexport * from \"./lib/components/filters/filters.component\";\r\nexport * from \"./lib/components/search/search.component\";\r\nexport * from \"./lib/components/search/model/search.model\";\r\nexport * from \"./lib/components/paginator/paginator.component\";\r\nexport * from \"./lib/components/modal-dialog/modal-dialog.component\";\r\nexport * from \"./lib/components/button-split/button-split.component\";\r\nexport * from \"./lib/components/button-split/itemsplit.directive\";\r\nexport * from \"./lib/components/record-per-page/record-per-page.component\";\r\nexport * from \"./lib/components/record-per-page/model/properties.model\";\r\nexport * from \"./lib/components/sorting/sorting.component\";\r\nexport * from \"./lib/components/sorting/model/cascade-filter\";\r\nexport * from \"./lib/components/sorting/model/order.constants\";\r\nexport * from \"./lib/components/popover/popover.component\";\r\nexport * from \"./lib/components/popover/model/popover-information.model\";\r\nexport * from \"./lib/components/echart/echart.component\";\r\nexport * from \"./lib/components/template-menu/template-menu.component\";\r\nexport * from \"./lib/components/multi-select/multi-select.component\";\r\nexport * from \"./lib/components/skeleton/skeleton.component\";\r\nexport * from \"./lib/components/skeleton-table/skeleton-table.component\";\r\nexport * from \"./lib/components/skeleton-chart/skeleton-chart.component\";\r\nexport * from \"./lib/components/skeleton-chart/data.directive\";\r\nexport * from \"./lib/components/table-fetch/table-fetch.component\";\r\nexport * from \"./lib/components/table-fetch/model/query.model\";\r\nexport * from \"./lib/components/titles/titles.component\";\r\n//Directives\r\nexport * from \"./lib/directives/filters/checkbox-filter.directive\";\r\nexport * from \"./lib/directives/filters/date-filter.directive\";\r\nexport * from \"./lib/directives/filters/select-detail-filter.directive\";\r\nexport * from \"./lib/directives/filters/select-filter.directive\";\r\nexport * from \"./lib/directives/filters/template.directive\";\r\nexport * from \"./lib/directives/filters/text-area-filter.directive\";\r\nexport * from \"./lib/directives/filters/text-filter.directive\";\r\nexport * from \"./lib/directives/filters/text-range-filter.directive\";\r\nexport * from \"./lib/directives/table/cell-checkbox.directive\";\r\n//Models\r\nexport * from \"./lib/model/filter.model\";\r\n//Services\r\nexport * from \"./lib/services/htmlToExcel.service\";\r\nexport * from \"./lib/services/shared.service\";\r\nexport * from \"./lib/services/config.service\";\r\nexport * from \"./lib/services/spinner.service\";\r\nexport * from \"./lib/services/sweet-alert.service\";\r\nexport * from \"./lib/services/globalTerm.service\";\r\nexport * from \"./lib/services/term.service\";\r\nexport * from \"./lib/services/globalFeatureFlag.service\";\r\nexport * from \"./lib/services/featureFlag.service\";\r\nexport * from \"./lib/services/language.service\";\r\nexport * from \"./lib/services/echart.service\";\r\nexport * from \"./lib/services/skeleton.service\";\r\nexport * from \"./lib/services/element.service\";\r\nexport * from \"./lib/services/compress.service\";\r\n//Funcions\r\nexport * from \"./lib/functions/compareByField\";\r\nexport * from \"./lib/functions/encryptRSA\";\r\nexport * from \"./lib/functions/inputValidation\";\r\nexport * from \"./lib/functions/decryptRSA\";\r\nexport * from \"./lib/functions/cookie\";\r\n//Themes\r\nexport * from \"./lib/primeThemes/Intelica.theme\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["sleep","i1.FeatureFlagService","i2.TermPipe","i1","i3","i2","i6","i1.TermPipe","i1.FilterTypeEnum","i4","i8","i5","i1.TableComponent"],"mappings":"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"}
1
+ {"version":3,"file":"intelica-library-ui.mjs","sources":["../../../projects/intelica-library-ui/src/lib/services/config.service.ts","../../../projects/intelica-library-ui/src/lib/services/term.service.ts","../../../projects/intelica-library-ui/src/lib/services/globalTerm.service.ts","../../../projects/intelica-library-ui/src/lib/pipes/term.pipes.ts","../../../projects/intelica-library-ui/src/lib/pipes/amount.pipe.ts","../../../projects/intelica-library-ui/src/lib/pipes/truncate.pipe.ts","../../../projects/intelica-library-ui/src/lib/constants/cookieConfiguration.constants.ts","../../../projects/intelica-library-ui/src/lib/constants/color.constants.ts","../../../projects/intelica-library-ui/src/lib/constants/date-mode-options.constants.ts","../../../projects/intelica-library-ui/src/lib/services/featureFlag.service.ts","../../../projects/intelica-library-ui/src/lib/services/globalFeatureFlag.service.ts","../../../projects/intelica-library-ui/src/lib/services/sweet-alert.service.ts","../../../projects/intelica-library-ui/src/lib/services/spinner.service.ts","../../../projects/intelica-library-ui/src/lib/interceptor/error.interceptor.ts","../../../projects/intelica-library-ui/src/lib/functions/cookie.ts","../../../projects/intelica-library-ui/src/lib/interceptor/refreshToken.interceptor.ts","../../../projects/intelica-library-ui/src/lib/enums/sort-order.enum.ts","../../../projects/intelica-library-ui/src/lib/guards/TermGuard.ts","../../../projects/intelica-library-ui/src/lib/guards/RouteGuard.ts","../../../projects/intelica-library-ui/src/lib/components/spinner/spinner.component.ts","../../../projects/intelica-library-ui/src/lib/components/spinner/spinner.component.html","../../../projects/intelica-library-ui/src/lib/constants/format-date.constants.ts","../../../projects/intelica-library-ui/src/lib/constants/titles.constants.ts","../../../projects/intelica-library-ui/src/lib/components/sorting/model/order.constants.ts","../../../projects/intelica-library-ui/src/lib/constants/constants.ts","../../../projects/intelica-library-ui/src/lib/services/shared.service.ts","../../../projects/intelica-library-ui/src/lib/directives/positive-number.directive.ts","../../../projects/intelica-library-ui/src/lib/components/paginator/paginator.component.ts","../../../projects/intelica-library-ui/src/lib/components/paginator/paginator.component.html","../../../projects/intelica-library-ui/src/lib/components/search/enums/search.enum.ts","../../../projects/intelica-library-ui/src/lib/components/search/search.component.ts","../../../projects/intelica-library-ui/src/lib/components/search/search.component.html","../../../projects/intelica-library-ui/src/lib/components/table/column.component.ts","../../../projects/intelica-library-ui/src/lib/pipes/formatCell.pipe.ts","../../../projects/intelica-library-ui/src/lib/components/table/table.component.ts","../../../projects/intelica-library-ui/src/lib/components/table/table.component.html","../../../projects/intelica-library-ui/src/lib/components/tree-table/column.component.ts","../../../projects/intelica-library-ui/src/lib/components/tree-table/tree-table.component.ts","../../../projects/intelica-library-ui/src/lib/components/tree-table/tree-table.component.html","../../../projects/intelica-library-ui/src/lib/components/matrix-table/column.component.ts","../../../projects/intelica-library-ui/src/lib/components/matrix-table/matrix-table.component.ts","../../../projects/intelica-library-ui/src/lib/components/matrix-table/matrix-table.component.html","../../../projects/intelica-library-ui/src/lib/components/actions-menu/action.directive.ts","../../../projects/intelica-library-ui/src/lib/components/actions-menu/actions-menu.component.ts","../../../projects/intelica-library-ui/src/lib/components/actions-menu/actions-menu.component.html","../../../projects/intelica-library-ui/src/lib/components/filter-chips/filter-chips.component.ts","../../../projects/intelica-library-ui/src/lib/components/filter-chips/filter-chips.component.html","../../../projects/intelica-library-ui/src/lib/enums/filter-type.enum.ts","../../../projects/intelica-library-ui/src/lib/directives/filters/filter.directive.ts","../../../projects/intelica-library-ui/src/lib/components/multi-select/multi-select.component.ts","../../../projects/intelica-library-ui/src/lib/components/multi-select/multi-select.component.html","../../../projects/intelica-library-ui/src/lib/components/filters/filters.component.ts","../../../projects/intelica-library-ui/src/lib/components/filters/filters.component.html","../../../projects/intelica-library-ui/src/lib/components/modal-dialog/modal-dialog.component.ts","../../../projects/intelica-library-ui/src/lib/components/modal-dialog/modal-dialog.component.html","../../../projects/intelica-library-ui/src/lib/components/button-split/itemsplit.directive.ts","../../../projects/intelica-library-ui/src/lib/components/button-split/button-split.component.ts","../../../projects/intelica-library-ui/src/lib/components/button-split/button-split.component.html","../../../projects/intelica-library-ui/src/lib/components/record-per-page/record-per-page.component.ts","../../../projects/intelica-library-ui/src/lib/components/record-per-page/record-per-page.component.html","../../../projects/intelica-library-ui/src/lib/components/sorting/sorting.component.ts","../../../projects/intelica-library-ui/src/lib/components/sorting/sorting.component.html","../../../projects/intelica-library-ui/src/lib/components/popover/popover.component.ts","../../../projects/intelica-library-ui/src/lib/components/popover/popover.component.html","../../../projects/intelica-library-ui/src/lib/components/echart/echart.component.ts","../../../projects/intelica-library-ui/src/lib/components/echart/echart.component.html","../../../projects/intelica-library-ui/src/lib/components/template-menu/template-menu.component.ts","../../../projects/intelica-library-ui/src/lib/components/template-menu/template-menu.component.html","../../../projects/intelica-library-ui/src/lib/services/skeleton.service.ts","../../../projects/intelica-library-ui/src/lib/components/skeleton/skeleton.component.ts","../../../projects/intelica-library-ui/src/lib/components/skeleton/skeleton.component.html","../../../projects/intelica-library-ui/src/lib/components/skeleton-table/skeleton-table.component.ts","../../../projects/intelica-library-ui/src/lib/components/skeleton-table/skeleton-table.component.html","../../../projects/intelica-library-ui/src/lib/components/skeleton-chart/data.directive.ts","../../../projects/intelica-library-ui/src/lib/components/skeleton-chart/skeleton-chart.component.ts","../../../projects/intelica-library-ui/src/lib/components/skeleton-chart/skeleton-chart.component.html","../../../projects/intelica-library-ui/src/lib/components/tree-table-fetch/tree-table-fetch.component.ts","../../../projects/intelica-library-ui/src/lib/components/tree-table-fetch/tree-table-fetch.component.html","../../../projects/intelica-library-ui/src/lib/components/table-fetch/table-fetch.component.ts","../../../projects/intelica-library-ui/src/lib/components/table-fetch/table-fetch.component.html","../../../projects/intelica-library-ui/src/lib/components/titles/titles.component.ts","../../../projects/intelica-library-ui/src/lib/components/titles/titles.component.html","../../../projects/intelica-library-ui/src/lib/directives/filters/checkbox-filter.directive.ts","../../../projects/intelica-library-ui/src/lib/directives/filters/date-filter.directive.ts","../../../projects/intelica-library-ui/src/lib/directives/filters/select-detail-filter.directive.ts","../../../projects/intelica-library-ui/src/lib/directives/filters/select-filter.directive.ts","../../../projects/intelica-library-ui/src/lib/directives/filters/template.directive.ts","../../../projects/intelica-library-ui/src/lib/directives/filters/text-area-filter.directive.ts","../../../projects/intelica-library-ui/src/lib/directives/filters/text-filter.directive.ts","../../../projects/intelica-library-ui/src/lib/directives/filters/text-range-filter.directive.ts","../../../projects/intelica-library-ui/src/lib/directives/table/cell-checkbox.directive.ts","../../../projects/intelica-library-ui/src/lib/services/htmlToExcel.service.ts","../../../projects/intelica-library-ui/src/lib/services/language.service.ts","../../../projects/intelica-library-ui/src/lib/functions/echart.util.ts","../../../projects/intelica-library-ui/src/lib/services/echart.service.ts","../../../projects/intelica-library-ui/src/lib/services/pageElement.service.ts","../../../projects/intelica-library-ui/src/lib/services/element.service.ts","../../../projects/intelica-library-ui/src/lib/services/compress.service.ts","../../../projects/intelica-library-ui/src/lib/functions/compareByField.ts","../../../projects/intelica-library-ui/src/lib/functions/encryptRSA.ts","../../../projects/intelica-library-ui/src/lib/functions/inputValidation.ts","../../../projects/intelica-library-ui/src/lib/functions/decryptRSA.ts","../../../projects/intelica-library-ui/src/lib/primeThemes/Intelica.theme.ts","../../../projects/intelica-library-ui/src/public-api.ts","../../../projects/intelica-library-ui/src/intelica-library-ui.ts"],"sourcesContent":["import { HttpClient } from \"@angular/common/http\";\r\nimport { inject, Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { Observable } from \"rxjs/internal/Observable\";\r\nimport { getCookie } from \"typescript-cookie\";\r\nimport { environment } from \"../dto/environment\";\r\nimport { SessionInformation } from \"../dto/sessionInformation\";\r\n@Injectable({ providedIn: \"root\" })\r\nexport class ConfigService {\r\n\tprivate readonly Http = inject(HttpClient);\r\n\tenvironment?: environment;\r\n\tSessionInformation: SessionInformation | null = null;\r\n\tprivate readonly userDataSubject = new BehaviorSubject<string>(\"\");\r\n\tpublic userData$: Observable<string> = this.userDataSubject.asObservable();\r\n\tasync init() {\r\n\t\tconst environment = `${window.location.protocol}//${window.location.hostname}${window.location.hostname === \"localhost\" ? `:${window.location.port}` : \"\"}/environment/environment.json`;\r\n\t\tif (getCookie(\"data\") != undefined) this.SessionInformation = JSON.parse(getCookie(\"data\") ?? \"\");\r\n\t\tthis.environment = await this.Http.get<environment>(environment).toPromise();\r\n\t}\r\n\tSetSessionInformation() {\r\n\t\tthis.SessionInformation = JSON.parse(getCookie(\"data\") ?? \"\");\r\n\t}\r\n\tsetUserData(userData: string): void {\r\n\t\tthis.userDataSubject.next(userData);\r\n\t}\r\n\tgetUserData(): string {\r\n\t\treturn this.userDataSubject.value;\r\n\t}\r\n}\r\nexport function InitializeConfigService(confg: ConfigService) {\r\n\treturn () => confg.init();\r\n}\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { inject, Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { TermPageResponse } from \"../dto/term\";\r\nimport { ConfigService } from \"./config.service\";\r\n@Injectable({ providedIn: \"root\" })\r\nexport class TermService {\r\n\tprivate readonly _http = inject(HttpClient);\r\n\tprivate readonly _config = inject(ConfigService);\r\n\tGetTerms(languageCode: string, pageRoot: string): Observable<TermPageResponse[]> {\r\n\t\treturn this._http.get<TermPageResponse[]>(`${this._config.environment?.termPath}/${languageCode}/${pageRoot}`);\r\n\t}\r\n}\r\n","import { inject, Injectable, signal } from \"@angular/core\";\r\nimport { getCookie } from \"typescript-cookie\";\r\nimport { TermPageResponse } from \"../dto/term\";\r\nimport { TermService } from \"./term.service\";\r\n@Injectable({ providedIn: \"root\" })\r\nexport class GlobalTermService {\r\n\tterms: TermPageResponse[] = [];\r\n\tlanguageCode: string = \"\";\r\n\tTermsReady = signal<boolean>(false);\r\n\tPageRoot: string = \"\";\r\n\tprivate readonly termService = inject(TermService);\r\n\tInitialize(pageRoot: string): void {\r\n\t\tlet languageCode = getCookie(\"language\") ?? \"EN\";\r\n\t\tthis.PageRoot = pageRoot;\r\n\t\tif (pageRoot == \"\") {\r\n\t\t\tthis.TermsReady.set(true);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.termService.GetTerms(languageCode, pageRoot).subscribe(response => {\r\n\t\t\tthis.terms = response;\r\n\t\t\tthis.TermsReady.set(true);\r\n\t\t\tthis.SetTerms();\r\n\t\t\tthis.languageCode = languageCode;\r\n\t\t});\r\n\t}\r\n\tasync SetTerms() {\r\n\t\twhile (true) {\r\n\t\t\tawait sleep(10);\r\n\t\t\tif (document.querySelectorAll(\"[data-term]\").length > 1) break;\r\n\t\t}\r\n\t\tlet textsToChange = document.querySelectorAll(\"[data-term]\");\r\n\t\ttextsToChange.forEach(async element => {\r\n\t\t\tlet dataValue = element.getAttribute(\"data-term\");\r\n\t\t\tlet newText = this.terms.find(x => x.termName == dataValue)?.termValue ?? \"\";\r\n\t\t\telement.innerHTML = newText;\r\n\t\t\telement.setAttribute(\"placeholder\", newText);\r\n\t\t});\r\n\t}\r\n}\r\nfunction sleep(ms: number): Promise<void> {\r\n\treturn new Promise(resolve => setTimeout(resolve, ms));\r\n}\r\n","import { inject, Injectable, Pipe, PipeTransform } from \"@angular/core\";\r\nimport { GlobalTermService } from \"../services/globalTerm.service\";\r\n// import GlobalTermService from \"../services/globalTerm.service\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\n@Pipe({ name: \"term\" })\r\nexport class TermPipe implements PipeTransform {\r\n private readonly globalTermService = inject(GlobalTermService);\r\n transform(termName: string, language: string, mode: number = 1): string {\r\n let term =\r\n this.globalTermService.terms.find((x) => x.termName == termName)\r\n ?.termValue ?? \"-\";\r\n if (mode == 2) term = term.substring(0, 1);\r\n if (mode == 3) term = term.toUpperCase();\r\n return term;\r\n }\r\n}\r\n","import { Injectable, Pipe, PipeTransform } from \"@angular/core\";\r\n@Injectable({\r\n\tprovidedIn: \"root\",\r\n})\r\n@Pipe({\r\n\tname: \"amount\",\r\n})\r\nexport class FormatAmountPipe implements PipeTransform {\r\n\ttransform(value: number | string | null | undefined, shortFormat: boolean = false, decimalPlaces: number = 2): string {\r\n\t\tif (value === null || value === undefined) {\r\n\t\t\treturn \"0\";\r\n\t\t}\r\n\r\n\t\tconst numericValue = typeof value === \"string\" ? parseFloat(value) : value;\r\n\r\n\t\tif (isNaN(numericValue)) {\r\n\t\t\treturn \"0\";\r\n\t\t}\r\n\r\n\t\tlet formattedValue: string;\r\n\r\n\t\tif (shortFormat) {\r\n\t\t\tformattedValue = this.getShortFormat(numericValue, decimalPlaces);\r\n\t\t} else {\r\n\t\t\tformattedValue = this.formatWithThousandSeparators(numericValue, decimalPlaces);\r\n\t\t}\r\n\r\n\t\treturn formattedValue;\r\n\t}\r\n\r\n\tprivate getShortFormat(value: number, decimalPlaces: number): string {\r\n\t\tconst absValue = Math.abs(value);\r\n\t\tconst suffixes = [\r\n\t\t\t{ limit: 1e12, suffix: \"T\" },\r\n\t\t\t{ limit: 1e9, suffix: \"B\" },\r\n\t\t\t{ limit: 1e6, suffix: \"M\" },\r\n\t\t\t{ limit: 1e3, suffix: \"K\" },\r\n\t\t];\r\n\r\n\t\tfor (const { limit, suffix } of suffixes) {\r\n\t\t\tif (absValue >= limit) {\r\n\t\t\t\treturn (value / limit).toFixed(decimalPlaces) + suffix;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn value.toFixed(decimalPlaces);\r\n\t}\r\n\r\n\tprivate formatWithThousandSeparators(value: number, decimalPlaces: number): string {\r\n\t\treturn new Intl.NumberFormat(\"en-US\", {\r\n\t\t\tminimumFractionDigits: decimalPlaces,\r\n\t\t\tmaximumFractionDigits: decimalPlaces,\r\n\t\t}).format(value);\r\n\t}\r\n}\r\n","import { Injectable, Pipe, PipeTransform } from \"@angular/core\";\r\n@Injectable({ providedIn: \"root\" })\r\n@Pipe({\r\n\tname: \"truncate\",\r\n})\r\nexport class TruncatePipe implements PipeTransform {\r\n\ttransform(value: any, size: number = 15, original = false): any {\r\n\t\tif (!value) return value;\r\n\t\tif (value.length <= size) return value;\r\n\t\tlet truncateString = value.substring(0, size);\r\n\t\treturn !original ? `${truncateString}...` : truncateString.toUpperCase();\r\n\t}\r\n}\r\n","const Domain = window.location.hostname.split(\".\").slice(-2).join(\".\");\r\nconst Secure = !Domain.includes(\"localhost\");\r\nexport const CookieAttributesGeneral: CookieAttributes = { domain: Domain, path: \"/\", secure: Secure };\r\nexport interface CookieAttributes {\r\n\tpath?: string;\r\n\tdomain?: string;\r\n\texpires?: number | Date;\r\n\tsameSite?: \"strict\" | \"Strict\" | \"lax\" | \"Lax\" | \"none\" | \"None\";\r\n\tsecure?: boolean;\r\n\t[property: string]: any;\r\n}\r\n","export const Color = {\r\n\tmastercard: \"#ff7f00\",\r\n\tvisa: \"#17375E\",\r\n\tamex: \"#348AD5\",\r\n\torange: \"#ff7f00\",\r\n\torangeDark: \"#CC4900\",\r\n\tblue: \"#17375E\",\r\n\tgray: \"#D3D3D3\",\r\n\tgray3: \"#a6a5a1\",\r\n\tgray5: \"#e9e9e9\",\r\n};\r\n\r\nexport type ColorName = keyof typeof Color;\r\n\r\nexport const getColor = (name: ColorName): string => {\r\n\treturn Color[name];\r\n};\r\n","export const DateModeOptions = {\r\n Day: { value: \"day\", format: \"d/m/y\" },\r\n Month: { value: \"month\", format: \"m/y\" },\r\n Year: { value: \"year\", format: \"y\" },\r\n} as const;\r\n\r\nexport type DateMode =\r\n (typeof DateModeOptions)[keyof typeof DateModeOptions][\"value\"];\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { Injectable, inject } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { ConfigService } from \"./config.service\";\r\nimport { FeatureFlagPageRootResponse } from \"../dto/featureFlagResponses\";\r\n@Injectable({ providedIn: \"root\" })\r\nexport class FeatureFlagService {\r\n\tprivate readonly _http = inject(HttpClient);\r\n\tprivate readonly _configService = inject(ConfigService);\r\n\tGetByPageRoot(pageRoot: string): Observable<FeatureFlagPageRootResponse[]> {\r\n\t\treturn this._http.get<FeatureFlagPageRootResponse[]>(`${this._configService.environment?.configurationPath}/FeatureFlag/${pageRoot}`);\r\n\t}\r\n}\r\n","import { Injectable, signal } from \"@angular/core\";\r\nimport { FeatureFlagService } from \"./featureFlag.service\";\r\nimport { FeatureFlagPageRootResponse } from \"../dto/featureFlagResponses\";\r\n@Injectable({ providedIn: \"root\" })\r\nexport class GlobalFeatureFlagService {\r\n\tprivate pageRoot: string = \"\";\r\n\tIsReady = signal<boolean>(false);\r\n\tFeatureFlagsSignal = signal<FeatureFlagPageRootResponse[]>([]);\r\n\r\n\tconstructor(private featureFlagDataService: FeatureFlagService) {}\r\n\tInitialize(pageRoot: string): void {\r\n\t\tthis.pageRoot = pageRoot;\r\n\t\tthis.IsReady.set(true);\r\n\t\t// this.featureFlagDataService.GetByPageRoot(pageRoot).subscribe(response => {\r\n\t\t// \t//\t\tthis.FeatureFlags = response;\r\n\t\t// \tthis.FeatureFlagsSignal.set(response);\r\n\t\t// \tthis.IsReady.set(true);\r\n\t\t// });\r\n\t}\r\n\tExists(featureFlagName: string): boolean {\r\n\t\treturn !(this.FeatureFlagsSignal().find(x => x.name == featureFlagName) == null);\r\n\t}\r\n\tRefresh(): void {\r\n\t\tthis.Initialize(this.pageRoot);\r\n\t}\r\n\tGetPageRoot(): string {\r\n\t\treturn this.pageRoot;\r\n\t}\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport Swal, { SweetAlertOptions, SweetAlertResult } from \"sweetalert2\";\r\n@Injectable({\r\n\tprovidedIn: \"root\",\r\n})\r\nexport class SweetAlertService {\r\n\toptions: SweetAlertOptions = {\r\n\t\ttext: \"\",\r\n\t\tcustomClass: {\r\n\t\t\timage: \"image-class-custom\",\r\n\t\t\tcontainer: \"container-class-custom\",\r\n\t\t\tconfirmButton: \"confirm-class-custom\",\r\n\t\t\tcancelButton: \"cancel-class-custom\",\r\n\t\t},\r\n\t\tshowCloseButton: true,\r\n\t\tcloseButtonHtml: '<i class=\"fa fa-times\"></i>',\r\n\t\timageUrl: `${window.location.origin}/assets/images/logo-incontrol.svg`,\r\n\t\tshowCancelButton: false,\r\n\t\tconfirmButtonText: \"Ok\",\r\n\t\tcancelButtonText: \"\",\r\n\t\thtml: \"\",\r\n\t};\r\n\r\n\tmessageBox(message: string): Promise<SweetAlertResult<any>> {\r\n\t\tlet options = structuredClone(this.options);\r\n\t\toptions.showCancelButton = false;\r\n\t\toptions.text = message;\r\n\t\treturn Swal.fire(options);\r\n\t}\r\n\r\n\tmessageTextBox(message: string = \"\", swHtml: boolean = false) {\r\n\t\tlet options = structuredClone(this.options);\r\n\t\toptions.showCancelButton = false;\r\n\t\tif (!swHtml) options.text = message.length === 0 ? \"Something went wrong!\" : message;\r\n\t\telse options.html = message;\r\n\t\tSwal.fire(options);\r\n\t}\r\n\r\n\tconfirmBox(message: string, confirmButtonText: string, cancelButtonText: string, title?: string, html?: string, popupClass?: string): Promise<SweetAlertResult<any>> {\r\n\t\tlet options = structuredClone(this.options);\r\n\t\toptions.title = title ?? \"\";\r\n\t\toptions.showCancelButton = cancelButtonText == \"\" ? false : true;\r\n\t\toptions.text = message;\r\n\t\toptions.confirmButtonText = confirmButtonText;\r\n\t\toptions.cancelButtonText = cancelButtonText;\r\n\t\toptions.html = html;\r\n\t\tif (popupClass) {\r\n\t\t\toptions.customClass = {\r\n\t\t\t\tpopup: popupClass,\r\n\t\t\t};\r\n\t\t}\r\n\t\treturn Swal.fire(options);\r\n\t}\r\n\r\n\tmessageHTMLBox(title: string, html: string, confirmButtonText: string): Promise<SweetAlertResult<any>> {\r\n\t\tlet options = structuredClone(this.options);\r\n\t\toptions.showCancelButton = false;\r\n\t\toptions.title = title;\r\n\t\toptions.html = html;\r\n\t\toptions.confirmButtonText = confirmButtonText;\r\n\t\treturn Swal.fire(options);\r\n\t}\r\n}\r\n","import { Injectable, signal } from \"@angular/core\";\r\n@Injectable({ providedIn: \"root\" })\r\nexport class SpinnerService {\r\n\tisLoading = signal<boolean>(false);\r\n\tpublic hide() {\r\n\t\tthis.isLoading.set(false);\r\n\t}\r\n\tpublic show() {\r\n\t\tthis.isLoading.set(true);\r\n\t}\r\n}","import { HttpErrorResponse, HttpHeaders, HttpInterceptorFn } from \"@angular/common/http\";\r\nimport { inject } from \"@angular/core\";\r\nimport { catchError, throwError } from \"rxjs\";\r\nimport { getCookie } from \"typescript-cookie\";\r\nimport { GlobalFeatureFlagService } from \"../services/globalFeatureFlag.service\";\r\nimport { ConfigService } from \"../services/config.service\";\r\nimport { SweetAlertService } from \"../services/sweet-alert.service\";\r\nimport { SpinnerService } from \"../services/spinner.service\";\r\nexport const ErrorInterceptor: HttpInterceptorFn = (req, next) => {\r\n\tconst skip = req.headers.has(\"Skip-Interceptor\");\r\n\tif (skip) {\r\n\t\tconst cleanReq = req.clone({\r\n\t\t\theaders: req.headers.delete(\"Skip-Interceptor\"),\r\n\t\t});\r\n\t\treturn next(cleanReq);\r\n\t}\r\n\tconst commonFeatureFlagService = inject(GlobalFeatureFlagService);\r\n\tconst spinnerService = inject(SpinnerService);\r\n\tconst sweetAlertService = inject(SweetAlertService);\r\n\tconst configService: ConfigService = inject(ConfigService);\r\n\tconst HeaderSettings: { [name: string]: string | string[] } = {};\r\n\tconst authenticationClientID = configService.environment?.clientID ?? \"\";\r\n\tif (!req.url.includes(\"environment.json\")) {\r\n\t\tHeaderSettings[\"Accept\"] = \"application/json\";\r\n\t\tHeaderSettings[\"Content-Type\"] = \"application/json\";\r\n\t\tHeaderSettings[\"Authorization\"] = getCookie(\"token\") ?? \"\";\r\n\t\tHeaderSettings[\"RefreshToken\"] = getCookie(\"refreshToken\") ?? \"\";\r\n\t\tHeaderSettings[\"ClientID\"] = configService.environment?.clientID ?? \"\";\r\n\t\tHeaderSettings[\"PageRoot\"] = commonFeatureFlagService.GetPageRoot();\r\n\t\tHeaderSettings[\"LanguageCode\"] = getCookie(\"language\") ?? \"\";\r\n\t\tHeaderSettings[\"Environment\"] = configService.environment?.environment ?? \"\";\r\n\t\tHeaderSettings[\"Access\"] = authenticationClientID == \"\" ? \"\" : getCookie(authenticationClientID) ?? \"\";\r\n\t}\r\n\tlet _request = req.clone({ headers: new HttpHeaders(HeaderSettings) });\r\n\treturn next(_request).pipe(catchError(handleErrorResponse));\r\n\tfunction handleErrorResponse(error: HttpErrorResponse) {\r\n\t\tconsole.log(error, \"error\");\r\n\t\tspinnerService.hide();\r\n\t\tif (error.status == 500) sweetAlertService.messageBox(error.error.message);\r\n\t\tif (error.status == 400) sweetAlertService.messageBox(error.error.message);\r\n\t\tif (error.status == 409) sweetAlertService.messageBox(error.error.message);\r\n\t\tif (error.status == 401) sweetAlertService.messageBox(error.error.message);\r\n\t\tif (error.status == 503 || error.status == 0) sweetAlertService.messageBox(\"El servicio que se necesita consumir no esta activo o no responde.\");\r\n\t\tif (error.status == 405) sweetAlertService.messageBox(\"Los parametros enviados al servicio no coinciden.\");\r\n\t\tif (error.status == 404) sweetAlertService.messageBox(\"Recurso no encontrado.\");\r\n\t\treturn throwError(() => {\r\n\t\t\terror.error, error.message;\r\n\t\t});\r\n\t}\r\n};\r\n","import { CookieAttributes } from \"../constants/cookieConfiguration.constants\";\r\nexport function GetCookieAttributes(environment: string): CookieAttributes {\r\n\tconst domain = window.location.hostname\r\n\t\t.split(\".\")\r\n\t\t.slice(environment == \"main\" ? -2 : -3)\r\n\t\t.join(\".\");\r\n\tconst secure = !domain.includes(\"localhost\");\r\n\treturn { domain: domain, path: \"/\", secure: secure };\r\n}\r\n","import { GlobalFeatureFlagService } from \"../services/globalFeatureFlag.service\";\r\nimport { HttpClient, HttpInterceptorFn } from \"@angular/common/http\";\r\nimport { inject } from \"@angular/core\";\r\nimport { from, switchMap } from \"rxjs\";\r\nimport { getCookie, setCookie, Cookies } from \"typescript-cookie\";\r\nimport { ConfigService } from \"../services/config.service\";\r\nimport {\r\n ValidateTokenQuery,\r\n ValidateTokenResponse,\r\n} from \"../dto/authentication\";\r\nimport { GetCookieAttributes } from \"../functions/cookie\";\r\nexport const RefreshTokenInterceptor: HttpInterceptorFn = (req, next) => {\r\n const skip = req.headers.has(\"Skip-Interceptor\");\r\n if (skip) {\r\n const cleanReq = req.clone({\r\n headers: req.headers.delete(\"Skip-Interceptor\"),\r\n });\r\n return next(cleanReq);\r\n }\r\n const configService: ConfigService = inject(ConfigService);\r\n const httpClient = inject(HttpClient);\r\n const commonFeatureFlagService = inject(GlobalFeatureFlagService);\r\n const cookieAttributesGeneral = GetCookieAttributes(\r\n configService.environment?.environment ?? \"\"\r\n );\r\n let _request = req.clone();\r\n let authenticationLocation = `${configService.environment?.authenticationWeb}?callback=${window.location.href}&clientID=${configService.environment?.clientID}`;\r\n let path = `${\r\n configService.environment?.authenticationPath ?? \"\"\r\n }/Authenticate/ValidateToken`;\r\n var authenticationClientID = configService.environment?.clientID ?? \"\";\r\n let validateTokenQuery: ValidateTokenQuery = {\r\n token: getCookie(\"token\") ?? \"\",\r\n refreshToken: getCookie(\"refreshToken\") ?? \"\",\r\n ip: req.url,\r\n clientID: configService.environment?.clientID ?? \"\",\r\n pageRoot: commonFeatureFlagService.GetPageRoot(),\r\n controller: \"\",\r\n httpVerb: \"GET\",\r\n businessUserClientGroupID: getCookie(\"businessUserClientGroupID\") ?? \"\",\r\n access:\r\n authenticationClientID == \"\"\r\n ? \"\"\r\n : getCookie(authenticationClientID) ?? \"\",\r\n };\r\n if (\r\n !req.url.includes(\"ValidateToken\") &&\r\n !req.url.includes(\"environment.json\") &&\r\n !req.url.includes(\"GetAuthenticationFromCache\")\r\n )\r\n return from(\r\n httpClient.post<ValidateTokenResponse>(path, validateTokenQuery)\r\n ).pipe(\r\n switchMap((response: ValidateTokenResponse) => {\r\n if (response.expired) {\r\n Cookies.remove(\"token\", cookieAttributesGeneral);\r\n Cookies.remove(\"refreshToken\", cookieAttributesGeneral);\r\n Cookies.remove(\"data\", cookieAttributesGeneral);\r\n Cookies.remove(\r\n \"businessUserClientGroupID\",\r\n cookieAttributesGeneral\r\n );\r\n Cookies.remove(\"defaultClientID\", cookieAttributesGeneral);\r\n Cookies.remove(\"defaultClientGroupID\", cookieAttributesGeneral);\r\n Cookies.remove(authenticationClientID, cookieAttributesGeneral);\r\n window.location.href = authenticationLocation;\r\n return next(_request);\r\n }\r\n if (response.unauthorized)\r\n window.location.href = window.location.origin;\r\n if (response.newToken != \"\")\r\n setCookie(\"token\", response.newToken, cookieAttributesGeneral);\r\n return next(_request);\r\n })\r\n );\r\n else return next(_request);\r\n};\r\n","export enum TableSortOrder {\r\n Asc = 1,\r\n Desc = -1,\r\n}\r\n","import { inject, Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, CanActivateFn, RouterStateSnapshot } from \"@angular/router\";\r\nimport { TermPageResponse } from \"../dto/term\";\r\n@Injectable({\r\n\tprovidedIn: \"root\",\r\n})\r\nclass PermissionsService {\t\r\n\tconstructor() {}\r\n\tasync canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot){\r\n\t\twhile (true) {\r\n\t\t\tawait sleep(10);\r\n\t\t\tif (document.querySelectorAll(\"[data-security]\").length > 0) break;\r\n\t\t}\r\n\t\tlet termsString = sessionStorage.getItem(\"Term\");\t\t\r\n\t\tif (termsString == null) return true;\r\n\t\tlet terms: TermPageResponse[] = JSON.parse(termsString);\r\n\t\tconst textsToChange = document.querySelectorAll(\"[data-security]\");\r\n\t\ttextsToChange.forEach(async element => {\r\n\t\t\tlet dataValue = element.getAttribute(\"data-security\");\t\t\t\r\n\t\t\tlet newText = terms.find(x => x.termName == dataValue)?.termValue ?? \"\";\r\n\t\t\telement.innerHTML = newText;\r\n\t\t\telement.setAttribute(\"placeholder\", newText);\r\n\t\t});\r\n\t\treturn true;\r\n\t}\r\n}\r\nfunction sleep(ms: number): Promise<void> {\r\n\treturn new Promise(resolve => setTimeout(resolve, ms));\r\n}\r\nexport const TermGuard: CanActivateFn = (next: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean => {\r\n\tinject(PermissionsService).canActivate(next, state);\r\n\treturn true;\r\n};","import { HttpClient } from \"@angular/common/http\";\r\nimport { inject, Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, CanActivateFn, RouterStateSnapshot } from \"@angular/router\";\r\nimport { ConfigService } from \"../services/config.service\";\r\n@Injectable({\r\n\tprovidedIn: \"root\",\r\n})\r\nclass RouteGuardService {\r\n\tprivate readonly HttpClient = inject(HttpClient);\r\n\tprivate readonly ConfigService = inject(ConfigService);\r\n\tconstructor() {}\r\n\tasync canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n\t\tthis.ChangeRoute(next.data[\"pageRoot\"]);\r\n\t}\r\n\tChangeRoute(pageRoot: string): void {\r\n\t\tthis.HttpClient.get<string[]>(`${this.ConfigService.environment?.securityPath}/Menu/GetBreadcrumbs/${pageRoot}`).subscribe(response => {\r\n\t\t\tlet eventChangeRoute = new CustomEvent(\"ChangeRoute\", {\r\n\t\t\t\tdetail: { Breadcrumbs: response },\r\n\t\t\t});\r\n\t\t\twindow.dispatchEvent(eventChangeRoute);\r\n\t\t});\r\n\t}\r\n}\r\nexport const RouteGuard: CanActivateFn = (next: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean => {\r\n\tinject(RouteGuardService).canActivate(next, state);\r\n\treturn true;\r\n};\r\n","import { Component, inject } from \"@angular/core\";\r\nimport { SpinnerService } from \"../../services/spinner.service\";\r\n@Component({\r\n\tselector: \"app-spinner\",\r\n\timports: [],\r\n\ttemplateUrl: \"./spinner.component.html\",\r\n\tstyleUrl: \"./spinner.component.css\",\r\n})\r\nexport class SpinnerComponent {\r\n\tprivate readonly spinerService = inject(SpinnerService);\r\n\tisLoading = this.spinerService.isLoading;\r\n\tLoadingLogo: string = `${window.location.origin}/assets/images/loading_intelica.gif`;\r\n}\r\n","@if (isLoading()){\r\n<div id=\"overlay\">\r\n\t<div class=\"loading\">\r\n\t\t<div class=\"content-center\">\r\n\t\t\t<img alt=\"Intelica\" [src]=\"LoadingLogo\" />\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n}\r\n","export class FormatDateConstants {\r\n\tpublic static readonly DMYY: string = \"d/M/yy\";\r\n\tpublic static readonly MMYY: string = \"MMMM yyyy\";\r\n\tpublic static readonly YYMD: string = \"yyMd\";\r\n\tpublic static readonly DMYY_MOMENT: string = \"D/M/YY\";\r\n\tpublic static readonly YYMD_MOMENT: string = \"YYMD\";\r\n\tpublic static readonly DDMMYYYY: string = \"dd_MM_YYYY\";\r\n\tpublic static readonly DDMMYYYY_: string = \"DD/MM/YYYY\";\r\n\tpublic static readonly YYYYMMDD: string = \"YYYY-MM-DD\";\r\n\tpublic static readonly YYYYMMDD_: string = \"yyyyMMdd\";\r\n\tpublic static readonly YYYYMMDD_SLASH: string = \"YYYY/MM/DD\";\r\n}\r\n","export class GroupRegCountryBankConstants {\r\n\t//IDS\r\n\tpublic static COLUMN_GROUP_ID = 'groupId';\r\n\tpublic static COLUMN_REGION_ID = 'regionId';\r\n\tpublic static COLUMN_COUNTRY_ID = 'countryId';\r\n\tpublic static COLUMN_BANK_ID = 'bankId';\r\n\t//DESCRIPTION BD\r\n\tpublic static COLUMN_GROUP_NAME = 'groupName';\r\n\tpublic static COLUMN_REGION_NAME = 'regionName';\r\n\tpublic static COLUMN_COUNTRY_NAME = 'countryName';\r\n\tpublic static COLUMN_BANK_NAME = 'bankName';\r\n\tpublic static COLUMN_BANK_NAME_COMERCIAL = 'bankNameCommercial';\r\n\t//DESCRIPTION GROUP COMBO\r\n\tpublic static GLOBAL: { [key: number]: string } = {\r\n\t\t325: 'Global',\r\n\t\t327: 'Global'\r\n\t};\r\n\tpublic static GROUP: { [key: number]: string } = {\r\n\t\t325: 'Group',\r\n\t\t327: 'Grupo'\r\n\t};\r\n\tpublic static REGION: { [key: number]: string } = {\r\n\t\t325: 'Region',\r\n\t\t327: 'Región'\r\n\t};\r\n\tpublic static COUNTRY: { [key: number]: string } = {\r\n\t\t325: 'Country',\r\n\t\t327: 'País'\r\n\t};\r\n\tpublic static BANK: { [key: number]: string } = {\r\n\t\t325: 'Client',\r\n\t\t327: 'Cliente'\r\n\t};\r\n\t//DESCRIPCION BY\r\n\tpublic static GROUP_BY = 'groupBy';\r\n\tpublic static GROUP_TEXT = 'name';\r\n\tpublic static GROUP_INDEX = 'index';\r\n}\r\n\r\nexport class GroupRegionCountryBankModel {\r\n\tindex?: number = 0;\r\n\tgroupId: number = 0;\r\n\tgroupName: string = '';\r\n\tregionId: number = 0;\r\n\tregionName: string = '';\r\n\tcountryId: number = 0;\r\n\tcountryName: string = '';\r\n\tbankId: number = 0;\r\n\tbankName: string = '';\r\n\tnivel?: number = 0;\r\n\tbankNameCommercial: string = '';\r\n}\r\n\r\nexport class GlobalConstants {\r\n\tpublic static STRING_ALL: string = 'All';\r\n\tpublic static NUMBER_ALL: number = -1;\r\n\tpublic static REGION_EUROPE: number = 7;\r\n\tpublic static KEY_ENCRIPT: string = 'abcdefghijklmnopqrstuvwx';\r\n\tpublic static IV_ENCRIPT: string = '1234567890123456';\r\n}\r\n","export class OrderConstants {\r\n\t//DESCRIPTION\r\n\tpublic static ORDER_BY_DESC : 'desc' = \"desc\";\r\n\tpublic static ORDER_BY_ASC : 'asc' = \"asc\";\r\n\t//VALUES\r\n\tpublic static ORDER_BY_DESC_VALUE = \"1\";\r\n\tpublic static ORDER_BY_ASC_VALUE = \"0\";\r\n}\r\n","export class Constants {\r\n\tpublic static REGION_EUROPE = 7;\r\n}","import { inject, Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\r\nimport { Location } from \"@angular/common\";\r\nimport { FormatDateConstants } from \"../constants/format-date.constants\";\r\nimport moment from \"moment\";\r\nimport { GroupRegCountryBankConstants, GroupRegionCountryBankModel } from \"../constants/titles.constants\";\r\nimport { OrderConstants } from \"../components/sorting/model/order.constants\";\r\nimport { Constants } from \"../constants/constants\";\r\nimport { TermPipe } from \"../pipes/term.pipes\";\r\nimport { GlobalTermService } from \"./globalTerm.service\";\r\nimport _ from \"lodash\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class SharedService {\r\n public configObservable = new Subject<boolean>();\r\n isLoading = new BehaviorSubject(false);\r\n isLoadingHeader = new BehaviorSubject(true);\r\n isExpandedContent = new BehaviorSubject(false);\r\n isLoadingPageInfo = new BehaviorSubject(true);\r\n notifyProfileType = new Subject<string>();\r\n charges = 0;\r\n showHelper = new BehaviorSubject(false);\r\n headerPathName = new BehaviorSubject<string[]>([]);\r\n pageId: number | undefined = 0;\r\n openActionMenu$: Subject<boolean> = new Subject<boolean>();\r\n months = {\r\n en: [\r\n \"January\",\r\n \"February\",\r\n \"March\",\r\n \"April\",\r\n \"May\",\r\n \"June\",\r\n \"July\",\r\n \"August\",\r\n \"September\",\r\n \"October\",\r\n \"November\",\r\n \"December\",\r\n ],\r\n es: [\r\n \"Enero\",\r\n \"Febrero\",\r\n \"Marzo\",\r\n \"Abril\",\r\n \"Mayo\",\r\n \"Junio\",\r\n \"Julio\",\r\n \"Agosto\",\r\n \"Septiembre\",\r\n \"Octubre\",\r\n \"Noviembre\",\r\n \"Diciembre\",\r\n ],\r\n };\r\n subtitleDescriptionNotification$!: Observable<string>;\r\n readonly GlobalTermService = inject(GlobalTermService);\r\n constructor(private location: Location, private termsPipe: TermPipe) {}\r\n ///METODOS GLOBALS.\r\n IsNumberRate(n: any) {\r\n return !isNaN(parseFloat(n)) && !isNaN(n - 0);\r\n }\r\n RemovePercentage(string: string) {\r\n if (string.length > 0) {\r\n if (string.startsWith(\"%\")) string = string.substring(1);\r\n let last = string.length - 1;\r\n if (string.endsWith(\"%\")) string = string.substring(0, last);\r\n }\r\n return string;\r\n }\r\n GetTotalAmountByCrncy(col: string, listGeneral: any): number {\r\n return listGeneral.reduce((a: any, b: any) => a + (b[col] || 0), 0);\r\n }\r\n GetTotalAverageByColumn(col: string, listGeneral: any): number {\r\n return (\r\n listGeneral.reduce((a: any, b: any) => a + (b[col] || 0), 0) /\r\n (listGeneral.length || 1)\r\n );\r\n }\r\n GetTotalByGroup(\r\n col: string,\r\n listGeneral: any[],\r\n groupBy: string[] | undefined\r\n ): any[] {\r\n if (!groupBy?.length)\r\n return [listGeneral.reduce((a: any, b: any) => a + (b[col] || 0), 0)];\r\n\r\n let result: { [key: string]: any } = listGeneral.reduce(\r\n (acc: { [key: string]: any }, item: any) => {\r\n const groupKey = groupBy.map((prop) => item[prop]).join(\"||\");\r\n acc[groupKey] = (acc[groupKey] || 0) + item[col];\r\n return acc;\r\n },\r\n {}\r\n );\r\n const propiedades = Object.keys(result).sort();\r\n const indexGroup = groupBy.indexOf(col);\r\n if (indexGroup != -1)\r\n return propiedades.map((propiedad) => propiedad.split(\"||\")[indexGroup]);\r\n return propiedades.map((propiedad) => result[propiedad]);\r\n }\r\n TransformNegative(value: string): string {\r\n value = value?.toString() ?? \"0.00\";\r\n if (value?.indexOf(\"-\") > -1) return \"(\" + value.replace(\"-\", \"\") + \")\";\r\n else return value.toString();\r\n }\r\n FormatNumber(value: number, decimalMax: number, decimalMin: number) {\r\n return value.toLocaleString(\"en-US\", {\r\n maximumFractionDigits: decimalMax,\r\n minimumFractionDigits: decimalMin,\r\n });\r\n }\r\n ClickOutSideValidator(event: any): boolean {\r\n let res = false;\r\n if (event !== undefined) {\r\n const src = (event as Event).srcElement as Element;\r\n res = src.id !== \"button-alignment\" && !this.CheckParents(src, 0);\r\n }\r\n return res;\r\n }\r\n CheckParents(src: Element, c: number): boolean {\r\n var ids = [];\r\n ids.push(\"HamburgerMenu\");\r\n var strings = [];\r\n strings.push(\"swal2-container\");\r\n if (src.className.includes(\"backdrop-visible\")) return false;\r\n var res = ids.some(function (v) {\r\n return src.id === v;\r\n });\r\n if (\r\n !res &&\r\n (src.tagName === \"BODY\" || src.parentElement === null) &&\r\n c === 0\r\n ) {\r\n res = true;\r\n }\r\n if (\r\n !res &&\r\n strings.some(function (v) {\r\n return src.classList.contains(v);\r\n })\r\n )\r\n res = true;\r\n if (src.parentElement && !res) {\r\n c++;\r\n res = this.CheckParents(src.parentElement, c);\r\n }\r\n return res;\r\n }\r\n GetTitleByRegionOrCountry(CurrentGroup: any, Current: any, field: string) {\r\n return CurrentGroup\r\n ? CurrentGroup.groupName + \" - \" + Current[field]\r\n : Current[field];\r\n }\r\n GetTitleByBank(ListGeneralCountryAll: any[], CurrentBank: any) {\r\n return ListGeneralCountryAll.length > 1\r\n ? CurrentBank.groupName +\r\n \" - \" +\r\n CurrentBank.countryName +\r\n \" - \" +\r\n CurrentBank.bankNameCommercial\r\n : CurrentBank.bankNameCommercial;\r\n }\r\n Roundgen(value: any, precision: any) {\r\n var multiplier = Math.pow(10, precision || 0);\r\n return Math.round(value * multiplier) / multiplier;\r\n }\r\n ReturnAmountPercen(amount: any): string {\r\n if (isNaN(amount)) amount = 0;\r\n let resultado: string = \"\";\r\n let AmountStr =\r\n amount === 0\r\n ? \"0\"\r\n : amount.toLocaleString(\"en-US\", {\r\n maximumFractionDigits: 1,\r\n minimumFractionDigits: 1,\r\n });\r\n if (AmountStr.indexOf(\".0\") !== -1)\r\n AmountStr = amount.toLocaleString(\"en-US\", {\r\n maximumFractionDigits: 0,\r\n minimumFractionDigits: 0,\r\n });\r\n if (amount < 0 && parseInt(amount.toString()) * -1 === 0) {\r\n resultado =\r\n amount\r\n .toLocaleString(\"en-US\", {\r\n maximumFractionDigits: 1,\r\n minimumFractionDigits: 1,\r\n })\r\n .replace(\"-\", \"(\") + \"%)\";\r\n } else if (amount < 0) resultado = AmountStr.replace(\"-\", \"(\") + \"%)\";\r\n else resultado = AmountStr + \"%\";\r\n if (\r\n Number.NEGATIVE_INFINITY === amount ||\r\n Number.POSITIVE_INFINITY === amount\r\n )\r\n resultado = \"\";\r\n return resultado;\r\n }\r\n ReturAmountFormat(amount: any): string {\r\n if (isNaN(amount)) amount = 0;\r\n amount = this.Roundgen(amount, 2);\r\n let resultado: string = \"\";\r\n if (amount < 0 && parseInt(amount.toString()) * -1 === 0)\r\n resultado = amount.toString().replace(\"-\", \"(\") + \")\";\r\n else if (amount < 0 && amount > -1000) {\r\n resultado = this.Roundgen(amount, 0).toString().replace(\"-\", \"(\") + \")\";\r\n } else if (amount < 0 && -1000000000 >= amount) {\r\n resultado =\r\n this.Roundgen(amount / 1000000000, 1)\r\n .toString()\r\n .replace(\"-\", \"(\") + \" B)\";\r\n } else if (amount < 0 && -1000000 >= amount) {\r\n resultado =\r\n this.Roundgen(amount / 1000000, 1)\r\n .toString()\r\n .replace(\"-\", \"(\") + \" M)\";\r\n } else if (amount < 0) {\r\n resultado =\r\n this.Roundgen(amount / 1000, 1)\r\n .toString()\r\n .replace(\"-\", \"(\") + \" K)\";\r\n } else if (amount < 1000) resultado = this.Roundgen(amount, 0).toString();\r\n else if (1000000000 < amount)\r\n resultado = this.Roundgen(amount / 1000000000, 1).toString() + \" B\";\r\n else if (1000000 < amount)\r\n resultado = this.Roundgen(amount / 1000000, 1).toString() + \" M\";\r\n else resultado = this.Roundgen(amount / 1000, 1).toString() + \" K\";\r\n if (resultado.indexOf(\".\") === -1 && amount !== 0 && amount >= 1000) {\r\n let a = resultado;\r\n let b = \".0\";\r\n let output = a + b;\r\n\r\n if (resultado.indexOf(\" \") !== -1) {\r\n let position = resultado.indexOf(\" \");\r\n output = [a.slice(0, position), b, a.slice(position)].join(\"\");\r\n } else if (\r\n resultado.indexOf(\" \") === -1 &&\r\n resultado.indexOf(\")\") !== -1\r\n ) {\r\n let position = resultado.indexOf(\")\");\r\n output = [a.slice(0, position), b, a.slice(position)].join(\"\");\r\n }\r\n\r\n resultado = output;\r\n }\r\n return resultado;\r\n }\r\n DownloadFile(fileName: string, blob: any): void {\r\n const nav = window.navigator as any;\r\n if (nav.msSaveOrOpenBlob) {\r\n nav.msSaveOrOpenBlob(blob, fileName);\r\n } else {\r\n const link = document.createElement(\"a\");\r\n link.setAttribute(\"type\", \"hidden\");\r\n link.download = fileName;\r\n link.href = window.URL.createObjectURL(blob.body);\r\n document.body.appendChild(link);\r\n link.click();\r\n }\r\n }\r\n ViewFile(response: any) {\r\n const a = document.createElement(\"a\");\r\n a.setAttribute(\"style\", \"display:none;\");\r\n document.body.appendChild(a);\r\n a.href = URL.createObjectURL(response.body);\r\n a.target = \"_blank\";\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n GetNumberCurrency(amount: number): string {\r\n return amount === 0\r\n ? \"0\"\r\n : amount.toLocaleString(\"en-US\", {\r\n maximumFractionDigits: 2,\r\n minimumFractionDigits: 2,\r\n });\r\n }\r\n CountDecimals(param: number) {\r\n if (Math.floor(param) === param) return 0;\r\n return param.toString().split(\".\")[1].length || 0;\r\n }\r\n IsEmpty(value: any) {\r\n return value === null || value === \"\" || value === undefined;\r\n }\r\n GroupByColumn(data: any[], columnGroup: string): any[] {\r\n let colUnique = [];\r\n if (columnGroup != \"\") {\r\n colUnique = [\r\n ...new Set(\r\n data.map((item) => {\r\n return item[columnGroup];\r\n })\r\n ),\r\n ].filter((unique) => !this.IsEmpty(unique));\r\n } else {\r\n colUnique = [\r\n ...new Set(\r\n data.map((item) => {\r\n return item;\r\n })\r\n ),\r\n ].filter((unique) => !this.IsEmpty(unique));\r\n }\r\n return colUnique;\r\n }\r\n GetRoswpanbyData(column: string, index: number, data: Array<any>): number {\r\n let ValOfAgruppated = null;\r\n let rowspanI = 1;\r\n for (let i: number = index - 1; i < data.length; i++) {\r\n let val = data[i][column];\r\n if (ValOfAgruppated == null) {\r\n ValOfAgruppated = val;\r\n } else if (val !== null && ValOfAgruppated == val) {\r\n rowspanI++;\r\n } else if (val !== null && ValOfAgruppated != val) {\r\n ValOfAgruppated = null;\r\n return rowspanI;\r\n }\r\n }\r\n return rowspanI;\r\n }\r\n FormatterStringJsonByKey(\r\n data: any[],\r\n key: string,\r\n separador: string\r\n ): string {\r\n let result = \"\";\r\n let colUnique: string[] = [];\r\n data.forEach((element) => {\r\n colUnique.push(element[key]);\r\n });\r\n result = colUnique.join(separador);\r\n return result;\r\n }\r\n GroupByKey(xs: any, key: any) {\r\n return xs.reduce(function (rv: any, x: any) {\r\n (rv[x[key]] = rv[x[key]] || []).push(x);\r\n return rv;\r\n }, {});\r\n }\r\n LoadProjectsCss(route: string) {\r\n const elements = this.CheckProjectsCss(route);\r\n if (elements.length === 0) {\r\n const node = document.createElement(\"link\");\r\n node.href = \"./assets/css/projects/\" + route + \".css\";\r\n node.rel = \"stylesheet\";\r\n document.getElementsByTagName(\"head\")[0].appendChild(node);\r\n }\r\n }\r\n RemoveProjectsCss(route: string) {\r\n const elements = this.CheckProjectsCss(route);\r\n elements.forEach((element) => {\r\n document.getElementsByTagName(\"head\")[0].removeChild(element);\r\n });\r\n }\r\n CheckProjectsCss(route: string): any[] {\r\n const parent = document.getElementsByTagName(\"head\")[0];\r\n const elements: any[] = [];\r\n parent.childNodes.forEach((element: any) => {\r\n var a = element as object;\r\n\r\n if (element.nodeName === \"LINK\") {\r\n var elemethref = element[\"href\"];\r\n if (elemethref && elemethref.indexOf(route) > 0) {\r\n elements.push(element);\r\n }\r\n }\r\n });\r\n return elements;\r\n }\r\n CountDecimalsDigits(numero: any) {\r\n if (this.IsEmpty(numero)) return 0;\r\n numero = parseFloat(numero);\r\n let arrayNumero = numero.toString().split(\".\");\r\n numero = arrayNumero.length > 1 ? arrayNumero[1] : \"\";\r\n return numero.length;\r\n }\r\n GetMaxNumberDecimals(data: any[], key: string): number {\r\n let arrCountDecimals: number[] = [];\r\n data.forEach((element) => {\r\n let decimals = this.CountDecimalsDigits(element[key]);\r\n arrCountDecimals.push(decimals);\r\n });\r\n var maxDecimal = Math.max(...arrCountDecimals);\r\n return maxDecimal;\r\n }\r\n SetHeaderPathName(name: string[]) {\r\n this.headerPathName.next(name);\r\n }\r\n FormatDate(date: string, format: string): string {\r\n return moment(date).format(format);\r\n }\r\n CopyTo(src: any, dest: any) {\r\n Object.keys(src).forEach((property) => {\r\n dest[property] = src[property];\r\n });\r\n }\r\n IsValidEmail(email: string): boolean {\r\n const emailPattern = /^\\w+([.-]?\\w+)*@\\w+([.-]?\\w+)*(\\.\\w{2,3})+$/;\r\n return emailPattern.test(email);\r\n }\r\n IsGuid(str: string): boolean {\r\n const guidRegex =\r\n /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;\r\n return guidRegex.test(str);\r\n }\r\n ContainsSpecialCharacters(str: string): boolean {\r\n const specialCharacter = /^[^\\\\/?%*:|\"<>]+$/;\r\n return !specialCharacter.test(str);\r\n }\r\n IsNumber(value: any): boolean {\r\n return /^-?\\d+(\\.\\d+)?$/.test(value);\r\n }\r\n CalculatePreviousDate(date: Date, monthsAgo: number) {\r\n date.setMonth(date.getMonth() - monthsAgo);\r\n const newDate = moment(date).format(FormatDateConstants.DMYY_MOMENT);\r\n\r\n return newDate;\r\n }\r\n GetFilteredSearchKey(\r\n listTempAll: any[],\r\n key: string,\r\n value: any,\r\n operatorId: number\r\n ) {\r\n let listFilter = [];\r\n switch (operatorId) {\r\n case 0: //'Contains'\r\n let word = value.split(\"&\", 100);\r\n let count: number = 0;\r\n let listTemp: any;\r\n if (word.length > 1) {\r\n word.forEach((element: any) => {\r\n if (count === 0) {\r\n listTemp = listTempAll.filter((a) =>\r\n a[key]\r\n ?.toString()\r\n ?.toLowerCase()\r\n .includes(element.toLowerCase())\r\n );\r\n } else {\r\n listTemp = listTemp.filter((a: any) =>\r\n a[key]\r\n ?.toString()\r\n ?.toLowerCase()\r\n .includes(element.toLowerCase())\r\n );\r\n }\r\n count++;\r\n });\r\n listFilter = listTemp;\r\n } else {\r\n listFilter = listTempAll.filter((a) =>\r\n a[key]?.toString()?.toLowerCase().includes(value)\r\n );\r\n }\r\n break;\r\n case 1: //'Exact'\r\n listFilter = value\r\n ? listTempAll.filter(\r\n (a) => a[key]?.toString()?.toLowerCase() === value\r\n )\r\n : listTempAll;\r\n break;\r\n case 2: //'Begin'\r\n listFilter = listTempAll.filter((a) =>\r\n a[key]?.toString()?.toLowerCase().startsWith(value)\r\n );\r\n break;\r\n case 3: //'Ends'\r\n listFilter = listTempAll.filter((a) =>\r\n a[key]?.toString()?.toLowerCase().endsWith(value)\r\n );\r\n break;\r\n default:\r\n listFilter = listTempAll.filter((a) =>\r\n a[key]?.toString()?.toLowerCase().includes(value)\r\n );\r\n break;\r\n }\r\n return listFilter;\r\n }\r\n GetFilteredSearchKeyV2(\r\n listTempAll: any[],\r\n key: string,\r\n value: any,\r\n operatorId: number,\r\n subKey: any = null\r\n ) {\r\n if (value.length == 0) return listTempAll;\r\n if (!listTempAll || !key || value == null) return [];\r\n let listFilter = listTempAll;\r\n value = value.toString().toLowerCase();\r\n const words = value.includes(\"&\")\r\n ? value.split(\"&\").filter(Boolean)\r\n : [value];\r\n const filterFunction = (item: any) => {\r\n const itemValue = item[key]?.toString()?.toLowerCase();\r\n switch (operatorId) {\r\n case 0: // 'Contains'\r\n return words.every((word: any) => itemValue?.includes(word));\r\n case 1: // 'Exact'\r\n return itemValue === value;\r\n case 2: // 'Begin'\r\n return itemValue?.startsWith(value);\r\n case 3: // 'Ends'\r\n return itemValue?.endsWith(value);\r\n default:\r\n return itemValue?.includes(value);\r\n }\r\n };\r\n if (subKey) {\r\n // Filtrar primero a nivel de sublista\r\n listFilter = listFilter.map((filter) => {\r\n return {\r\n ...filter,\r\n [subKey]: filter[subKey]?.filter((item: any) => filterFunction(item)),\r\n };\r\n });\r\n // Filtrar luego la lista principal basado en si la sublista contiene elementos\r\n listFilter = listFilter.filter((filter) => filter[subKey].length > 0);\r\n } else {\r\n // Filtrar solo la lista principal\r\n listFilter = listFilter.filter(filterFunction);\r\n }\r\n return listFilter;\r\n }\r\n public TransformArrayToHashTable<T, TypeKey extends string | number>(\r\n arr: T[],\r\n getKey: (p: T) => TypeKey\r\n ): { [key in TypeKey]: T } {\r\n //example of Use:\r\n // this.transformArrayToHashTable<any,string>([{id:1,prop1:\"prop1Value\"}],(o)=>o.id.toString())\r\n const hashTable: { [key in TypeKey]: T } = {} as { [key in TypeKey]: T };\r\n arr.forEach((object: T) => (hashTable[getKey(object)] = object));\r\n return hashTable;\r\n }\r\n public TransformArrayToMap<TypeKey, T>(\r\n arr: T[],\r\n getKey: (p: T) => TypeKey\r\n ): Map<TypeKey, T> {\r\n //example of Use:\r\n // this.transformArrayToMap<string,any>([{id:1,prop1:\"prop1Value\"}],(o)=>o.id.toString())\r\n return new Map(arr.map((obj) => [getKey(obj), obj]));\r\n }\r\n UrlHasQaUatSubdomain() {\r\n const { hostname } = new URL(window.location.href);\r\n const [subdomain] = hostname.split(\".\");\r\n return [\"qa\", \"uat\"].includes(subdomain);\r\n }\r\n UrlHasQaSubdomain() {\r\n const { hostname } = new URL(window.location.href);\r\n const [subdomain] = hostname.split(\".\");\r\n return [\"qa\"].includes(subdomain);\r\n }\r\n GetLastSegmentUrl(): string {\r\n const segments = this.location.path().split(\"/\");\r\n const lastSegment = segments[segments.length - 1];\r\n const numberMappings: { [key: string]: string } = {\r\n \"0\": \"intelica-allocated\",\r\n \"1\": \"penalty-summary\",\r\n };\r\n // Verifica si lastSegment es un número y si tiene un mapeo correspondiente\r\n if (\r\n !isNaN(Number(lastSegment)) &&\r\n numberMappings.hasOwnProperty(lastSegment)\r\n )\r\n return numberMappings[lastSegment];\r\n else return lastSegment;\r\n }\r\n OnChangeMultiple($event: any, selectDescription: string): void {\r\n let select = $event != null ? $event.element.ej2_instances[0] : null;\r\n if (select?.value.length > 0) {\r\n select.viewWrapper.innerHTML = `${select.value.length} ${selectDescription}`;\r\n }\r\n }\r\n RemoveParamsAndSegments(url: string): string {\r\n // Remover parámetros de consultanom\r\n const urlWithoutParams = url.split(\"?\")[0];\r\n // Remover segmentos de ruta dinámicos\r\n const regex = /\\/\\d+(?=\\/|$)(?!$)/g; // Encuentra segmentos de ruta que consisten en números\r\n return urlWithoutParams.replace(regex, \"\");\r\n }\r\n OpenActionMenu() {\r\n this.openActionMenu$.next(true);\r\n }\r\n AbbreviateNumber(number: number, fixed: number = 2): string {\r\n if (number == 0.0 || number == 0 || number == 0.0) {\r\n return \"0\";\r\n }\r\n let formatCant = \"\";\r\n let numberOriginal = number;\r\n if (number < 0) {\r\n number = Math.abs(number);\r\n }\r\n if (number >= 1000 && number < 1000000) {\r\n number = parseFloat((number / 1000).toFixed(fixed));\r\n formatCant = \" K\";\r\n } else if (number >= 1000000 && number < 1000000000) {\r\n number = parseFloat((number / 1000000).toFixed(fixed));\r\n formatCant = \" M\";\r\n } else if (number >= 1000000000 && number <= 1000000000000) {\r\n number = parseFloat((number / 1000000000).toFixed(fixed));\r\n formatCant = \" B\";\r\n } else {\r\n number = this.NumberFormatByNumberCriteria(number, fixed);\r\n }\r\n return numberOriginal < 0\r\n ? `(${number}${formatCant})`\r\n : `${number}${formatCant}`;\r\n }\r\n NumberFormatByNumberCriteria(number: number, fixed: number = 4): any {\r\n const rounded = (\r\n Math.round(number * Math.pow(10, fixed)) / Math.pow(10, fixed)\r\n ).toFixed(fixed);\r\n return rounded;\r\n }\r\n FormatPercentage(number: number, decimal: number = 2) {\r\n let numberInit = number;\r\n if (number < 0) number = Math.abs(number);\r\n number = parseFloat(number.toFixed(decimal));\r\n let finalNumber = `${number.toLocaleString(\"en-US\")}%`;\r\n return numberInit < 0 ? `(${finalNumber})` : `${finalNumber}`;\r\n }\r\n GetMonthName(monthIndex: number, lang: \"en\" | \"es\" = \"en\"): string {\r\n return this.months[lang][monthIndex];\r\n }\r\n FormatNumberWithSuffix(number: number, decimalPlaces: number = 0): string {\r\n if (number === 0) {\r\n return \"0\";\r\n }\r\n const isNegative = number < 0;\r\n const absoluteValue = Math.abs(number);\r\n const scaledNumber = parseFloat(\r\n (absoluteValue / 1000).toFixed(decimalPlaces)\r\n ).toLocaleString(\"en-US\");\r\n const suffix = \" K\";\r\n\r\n return isNegative\r\n ? `(${scaledNumber}${suffix})`\r\n : `${scaledNumber}${suffix}`;\r\n }\r\n //SYNFCUNTION\r\n GenerateGUID(): string {\r\n let uuid = \"\",\r\n i,\r\n random;\r\n for (i = 0; i < 32; i++) {\r\n random = (Math.random() * 16) | 0;\r\n if (i === 8 || i === 12 || i === 16 || i === 20) {\r\n uuid += \"-\";\r\n }\r\n uuid += (i === 12 ? 4 : i === 16 ? (random & 3) | 8 : random).toString(\r\n 16\r\n );\r\n }\r\n return uuid;\r\n }\r\n AttachDataLabelClickEvent(\r\n chartElementId: string,\r\n dataArray: any[],\r\n onClickCallback: (clickedData: any) => void\r\n ): void {\r\n const chartElement = document.getElementById(chartElementId);\r\n if (!chartElement) {\r\n return;\r\n }\r\n const dataLabels = chartElement.querySelectorAll('[id*=\"_DataLabel_\"]');\r\n const dataLabelsArray = Array.prototype.slice.call(\r\n dataLabels\r\n ) as HTMLElement[];\r\n dataLabelsArray.forEach((label, index) => {\r\n // Calcula el índice ajustado para obtener el dato correcto\r\n const adjustedIndex = index % dataArray.length;\r\n\r\n label.addEventListener(\"click\", () => {\r\n const clickedData = dataArray[adjustedIndex];\r\n if (clickedData) {\r\n onClickCallback(clickedData);\r\n }\r\n });\r\n });\r\n }\r\n FormatNumberAbsolute(number: number) {\r\n const isNegative = number < 0;\r\n if (number < 0) {\r\n number = Math.abs(number);\r\n }\r\n\r\n let finalNumber = `${number.toLocaleString(\"en-US\")}`;\r\n return isNegative ? `(${finalNumber})` : `${finalNumber}`;\r\n }\r\n SortRecursive(data: any[], column: any, criteria: string) {\r\n return _.orderBy(\r\n data.map((item) => {\r\n Object.keys(item).forEach((key) => {\r\n if (Array.isArray(item[key])) {\r\n item[key] = this.SortRecursive(item[key], column, criteria);\r\n }\r\n });\r\n return item;\r\n }),\r\n [\r\n (elm: any) => {\r\n let value = elm[column];\r\n if (value == null) {\r\n value = \"\";\r\n }\r\n if (typeof value === \"string\") {\r\n const normalized = value.trim().toLowerCase();\r\n const startsWithSpecial = /^[^a-z0-9]/i.test(normalized);\r\n return startsWithSpecial ? `~${normalized}` : normalized;\r\n }\r\n return value;\r\n },\r\n ],\r\n [criteria as \"asc\" | \"desc\"]\r\n );\r\n }\r\n SortRecursivePrimeNg(data: any[], column: any, criteria: string) {\r\n return _.orderBy(\r\n data.map((item) => {\r\n Object.keys(item).forEach((key) => {\r\n if (Array.isArray(item[key])) {\r\n item[key] = this.SortRecursive(item[key], column, criteria);\r\n }\r\n });\r\n return item;\r\n }),\r\n [\r\n (elm: any) => {\r\n let value = elm[column];\r\n if (\r\n value == null ||\r\n (typeof value === \"string\" && value.trim() === \"\")\r\n ) {\r\n return \"___0\";\r\n }\r\n if (typeof value === \"string\") {\r\n const normalized = value.trim().toLowerCase();\r\n const startsWithSpecial = /^[^a-z0-9]/i.test(normalized);\r\n if (startsWithSpecial) {\r\n return `___1${normalized}`;\r\n }\r\n return `___2${normalized}`;\r\n }\r\n return `___2${value}`;\r\n },\r\n ],\r\n [criteria as \"asc\" | \"desc\"]\r\n );\r\n }\r\n SortRecursiveNumber(data: any[], column: any, criteria: string) {\r\n return _.orderBy(\r\n data.map((item) => {\r\n Object.keys(item).forEach((key) => {\r\n if (Array.isArray(item[key])) {\r\n item[key] = this.SortRecursiveNumber(item[key], column, criteria);\r\n }\r\n });\r\n return item;\r\n }),\r\n [\r\n (elm: any) => {\r\n let value = elm[column];\r\n if (value == null || value === \"\") {\r\n return Number.NEGATIVE_INFINITY;\r\n }\r\n if (typeof value === \"number\") {\r\n return value;\r\n }\r\n if (!isNaN(Number(value))) {\r\n return Number(value);\r\n }\r\n return Number.NEGATIVE_INFINITY;\r\n },\r\n ],\r\n [criteria as \"asc\" | \"desc\"]\r\n );\r\n }\r\n\r\n IsDateFormat(value: any): boolean {\r\n return (\r\n typeof value === \"string\" && /^\\d{1,2}\\/\\d{1,2}\\/\\d{2,4}$/.test(value)\r\n );\r\n }\r\n\r\n SortRecursiveDate(data: any[], column: any, criteria: string) {\r\n return _.orderBy(\r\n data.map((item) => {\r\n Object.keys(item).forEach((key) => {\r\n if (Array.isArray(item[key])) {\r\n item[key] = this.SortRecursiveDate(item[key], column, criteria);\r\n }\r\n });\r\n return item;\r\n }),\r\n [\r\n (elm: any) => {\r\n let value = elm[column];\r\n if (value == null || value === \"\") {\r\n return Number.NEGATIVE_INFINITY;\r\n }\r\n const dateValue = new Date(value);\r\n if (isNaN(dateValue.getTime())) {\r\n return Number.NEGATIVE_INFINITY;\r\n }\r\n return dateValue.getTime();\r\n },\r\n ],\r\n [criteria as \"asc\" | \"desc\"]\r\n );\r\n }\r\n\r\n //TITLES\r\n\tsetTitles(ListGeneralGroupRegionCountryBank: GroupRegionCountryBankModel[], groupId: number, regId: number, countryId: number, bankId: number, isInternal:boolean): string {\r\n\t\tlet res = \"\";\r\n\t\tconst ListGeneralGroupAll = _.orderBy(\r\n\t\t\t_.uniqBy(ListGeneralGroupRegionCountryBank, GroupRegCountryBankConstants.COLUMN_GROUP_ID),\r\n\t\t\t[GroupRegCountryBankConstants.COLUMN_GROUP_NAME],\r\n\t\t\t[OrderConstants.ORDER_BY_ASC]\r\n\t\t);\r\n\t\tconst ListGeneralRegionAll = _.orderBy(\r\n\t\t\t_.uniqBy(ListGeneralGroupRegionCountryBank, GroupRegCountryBankConstants.COLUMN_REGION_ID),\r\n\t\t\t[GroupRegCountryBankConstants.COLUMN_REGION_NAME],\r\n\t\t\t[OrderConstants.ORDER_BY_ASC]\r\n\t\t);\r\n\t\tconst ListGeneralCountryAll = _.orderBy(\r\n\t\t\t_.uniqBy(ListGeneralGroupRegionCountryBank, GroupRegCountryBankConstants.COLUMN_COUNTRY_ID),\r\n\t\t\t[GroupRegCountryBankConstants.COLUMN_COUNTRY_NAME],\r\n\t\t\t[OrderConstants.ORDER_BY_ASC]\r\n\t\t);\r\n\t\tconst ListGeneralBankAll = _.orderBy(\r\n\t\t\t_.uniqBy(ListGeneralGroupRegionCountryBank, GroupRegCountryBankConstants.COLUMN_BANK_ID),\r\n\t\t\t[GroupRegCountryBankConstants.COLUMN_BANK_NAME],\r\n\t\t\t[OrderConstants.ORDER_BY_ASC]\r\n\t\t);\r\n\r\n\t\tconst CurrentGroup = this.getCurrentGroup(ListGeneralGroupAll, ListGeneralRegionAll, groupId, regId);\r\n\t\tconst CurrentRegion = this.getCurrentRegion(ListGeneralRegionAll, regId, countryId);\r\n\t\tconst CurrentCountry = countryId > 0 ? ListGeneralCountryAll.filter((f: any) => f.countryId === countryId)[0] : undefined;\r\n\t\tconst CurrentBank = bankId > 0 ? ListGeneralBankAll.filter((f: any) => f.bankId === bankId)[0] : undefined;\r\n\r\n\t\tif (isInternal) {\r\n\t\t\tres = CurrentGroup ? CurrentGroup.groupName : \"\";\r\n\t\t\tres = CurrentRegion ? this.getTitleByRegionOrCountry(CurrentGroup, CurrentRegion, \"regionName\") : res;\r\n\t\t\tres = CurrentCountry ? this.getTitleByRegionOrCountry(CurrentGroup, CurrentCountry, \"countryName\") : res;\r\n\t\t\tres = CurrentBank ? CurrentBank.bankName : res;\r\n\t\t} else {\r\n\t\t\tres = CurrentGroup ? CurrentGroup.groupName : \"\";\r\n\t\t\tres = CurrentRegion ? CurrentRegion.groupName + \" \" + CurrentRegion.regionName : res;\r\n\t\t\tres = CurrentCountry ? CurrentCountry.bankName + \" \" + CurrentCountry.countryName : res;\r\n\t\t\tres = CurrentBank ? this.getTitleByBank(ListGeneralCountryAll, CurrentBank) : res;\r\n\t\t\tres = ListGeneralGroupRegionCountryBank.length > 1 ? res : \"\";\r\n\t\t}\r\n\r\n\t\treturn res;\r\n\t}\r\n\r\n getCurrentGroup(ListGeneralGroupAll: any[], ListGeneralRegionAll: any[], groupId: number, regId: number) {\r\n\t\tif (ListGeneralGroupAll.length === 1) {\r\n\t\t\treturn ListGeneralGroupAll[0];\r\n\t\t}\r\n\t\tif (groupId > 0) {\r\n\t\t\treturn ListGeneralGroupAll.filter((f: any) => f.groupId === groupId)[0];\r\n\t\t}\r\n\t\tif ((regId === Constants.REGION_EUROPE || regId === -1) && ListGeneralRegionAll.length === 3) {\r\n\t\t\treturn ListGeneralRegionAll[0];\r\n\t\t}\r\n\t\treturn undefined;\r\n\t}\r\n\r\n getCurrentRegion(ListGeneralRegionAll: any[], regId: number, countryId: number) {\r\n\t\tif ((regId === Constants.REGION_EUROPE || regId === -1) && ListGeneralRegionAll.length === 3) {\r\n\t\t\treturn undefined;\r\n\t\t}\r\n\t\tif (regId > 0 && countryId < 1) {\r\n\t\t\treturn ListGeneralRegionAll.filter((f: any) => f.regionId === regId)[0];\r\n\t\t}\r\n\t\treturn undefined;\r\n\t}\r\n\r\n getTitleByRegionOrCountry(CurrentGroup: any, Current: any, field: string) {\r\n\t\treturn CurrentGroup ? CurrentGroup.groupName + \" - \" + Current[field] : Current[field];\r\n\t}\r\n\r\n getTitleByBank(ListGeneralCountryAll: any[], CurrentBank: any) {\r\n\t\treturn ListGeneralCountryAll.length > 1 ? CurrentBank.groupName + \" - \" + CurrentBank.countryName + \" - \" + CurrentBank.bankNameCommercial : CurrentBank.bankNameCommercial;\r\n\t}\r\n\r\n getTermTextByCode(code: string, mode: number = 1): string {\r\n\t\treturn this.termsPipe.transform(code, \"\", mode);\r\n\t}\r\n\r\n isEmpty(value: any) {\r\n\t\treturn value === null || value === \"\" || value === undefined;\r\n\t}\r\n groupByColumn(data: any[], columnGroup: string): any[] {\r\n\t\tlet colUnique = [];\r\n\t\tif (columnGroup != \"\") {\r\n\t\t\tcolUnique = [\r\n\t\t\t\t...new Set(\r\n\t\t\t\t\tdata.map(item => {\r\n\t\t\t\t\t\treturn item[columnGroup];\r\n\t\t\t\t\t})\r\n\t\t\t\t),\r\n\t\t\t].filter(unique => !this.isEmpty(unique));\r\n\t\t} else {\r\n\t\t\tcolUnique = [\r\n\t\t\t\t...new Set(\r\n\t\t\t\t\tdata.map(item => {\r\n\t\t\t\t\t\treturn item;\r\n\t\t\t\t\t})\r\n\t\t\t\t),\r\n\t\t\t].filter(unique => !this.isEmpty(unique));\r\n\t\t}\r\n\t\treturn colUnique;\r\n\t}\r\n GetFilteredSearchKeyRecursive(\r\n listTempAll: any[],\r\n key: string,\r\n value: any,\r\n operatorId: number,\r\n searchOnlyParent: boolean = true\r\n ): any[] {\r\n if (!value || value.length === 0) return listTempAll;\r\n if (!listTempAll || !key) return [];\r\n \r\n value = value.toString().toLowerCase();\r\n const words = value.includes(\"&\") ? value.split(\"&\").filter(Boolean) : [value];\r\n \r\n const matchesFilter = (item: any): boolean => {\r\n const itemValue = item[key]?.toString()?.toLowerCase();\r\n \r\n switch (operatorId) {\r\n case 0: // 'Contains'\r\n return words.every((word: string) => itemValue?.includes(word));\r\n case 1: // 'Exact'\r\n return itemValue === value;\r\n case 2: // 'Begin'\r\n return itemValue?.startsWith(value);\r\n case 3: // 'Ends'\r\n return itemValue?.endsWith(value);\r\n default:\r\n return itemValue?.includes(value);\r\n }\r\n };\r\n \r\n const filterRecursive = (items: any[], isTopLevel: boolean = true, parentMatched: boolean = false): any[] => {\r\n const result: any[] = [];\r\n \r\n for (const item of items) {\r\n const currentMatches = matchesFilter(item);\r\n \r\n if (parentMatched) {\r\n result.push({ ...item });\r\n continue;\r\n }\r\n \r\n if (currentMatches) {\r\n if (searchOnlyParent) {\r\n result.push({ ...item })\r\n } else {\r\n const itemCopy = { ...item };\r\n if (itemCopy.children && Array.isArray(itemCopy.children) && itemCopy.children.length > 0) {\r\n itemCopy.children = filterRecursive(itemCopy.children, false, true);\r\n }\r\n result.push(itemCopy);\r\n }\r\n continue;\r\n }\r\n \r\n if (!searchOnlyParent && item.children && Array.isArray(item.children) && item.children.length > 0) {\r\n const filteredChildren = filterRecursive(item.children, false, false);\r\n \r\n if (filteredChildren.length > 0) {\r\n result.push({\r\n ...item,\r\n children: filteredChildren\r\n });\r\n }\r\n }\r\n }\r\n \r\n return result;\r\n };\r\n \r\n return filterRecursive(listTempAll, true, false);\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener } from \"@angular/core\";\r\n@Directive({\r\n\tselector: \"[positiveNumber]\",\r\n})\r\nexport class PositiveNumberDirective {\r\n\tconstructor(private el: ElementRef) {}\r\n\t@HostListener(\"input\", [\"$event\"]) onInputChange(event: Event) {\r\n\t\tconst initalValue = this.el.nativeElement.value;\r\n\t\tthis.el.nativeElement.value = initalValue.replace(/[^0-9]*/g, \"\");\r\n\t\tif (initalValue !== this.el.nativeElement.value) {\r\n\t\t\tevent.stopPropagation();\r\n\t\t}\r\n\t}\r\n}\r\n","import { Component, EventEmitter, inject, Input, OnChanges, Output, SimpleChanges } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { ButtonModule } from \"primeng/button\";\r\nimport { PositiveNumberDirective } from \"../../directives/positive-number.directive\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { CommonModule } from \"@angular/common\";\r\n\r\n@Component({\r\n\tselector: \"intelica-paginator\",\r\n\timports: [FormsModule, ButtonModule, PositiveNumberDirective, CommonModule, TermPipe],\r\n\ttemplateUrl: \"./paginator.component.html\",\r\n})\r\nexport class PaginatorComponent implements OnChanges {\r\n\treadonly GlobalTermService = inject(GlobalTermService);\r\n\t/**\r\n\t * Número total de elementos que se están paginando.\r\n\t * @type {number}\r\n\t */\r\n\t@Input() TotalItems: number = 0;\r\n\r\n\t/**\r\n\t * Página actual.\r\n\t * @type {number}\r\n\t */\r\n\t@Input() CurrentPage: number = 1;\r\n\r\n\t/**\r\n\t * Número de elementos por página.\r\n\t * @type {number}\r\n\t * @default 10\r\n\t */\r\n\t@Input() ItemsPerPage: number = 10;\r\n\r\n\t/**\r\n\t * Evento emitido cuando cambia la página.\r\n\t * @type {EventEmitter<any>}\r\n\t */\r\n\t@Output() PageChange: EventEmitter<any> = new EventEmitter();\r\n\r\n\t/**\r\n\t * Número total de páginas calculado internamente.\r\n\t * @type {number}\r\n\t */\r\n\tTotalPages: number = 1;\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tthis.TotalPageCalculator();\r\n\t}\r\n\r\n\tTotalPageCalculator() {\r\n\t\tthis.TotalPages = Math.ceil(this.TotalItems / this.ItemsPerPage);\r\n\t}\r\n\r\n\tGoToFirstPage() {\r\n\t\tthis.CurrentPage = 1;\r\n\t\tthis.EmitPageChange();\r\n\t}\r\n\r\n\tGoToPreviousPage() {\r\n\t\tconst pageNumber = Number(this.CurrentPage);\r\n\t\tthis.CurrentPage = isNaN(pageNumber) || pageNumber === 0 ? 1 : pageNumber;\r\n\t\tif (this.CurrentPage > 1) this.CurrentPage -= 1;\r\n\t\tthis.EmitPageChange();\r\n\t}\r\n\r\n\tGoToNextPage() {\r\n\t\tconst pageNumber = Number(this.CurrentPage);\r\n\t\tthis.CurrentPage = isNaN(pageNumber) ? 0 : pageNumber;\r\n\t\tif (this.CurrentPage < this.TotalPages) this.CurrentPage += 1;\r\n\t\tthis.EmitPageChange();\r\n\t}\r\n\r\n\tGoToLastPage() {\r\n\t\tthis.CurrentPage = this.TotalPages;\r\n\t\tthis.EmitPageChange();\r\n\t}\r\n\r\n\tEmitPageChange() {\r\n\t\tthis.PageChange.emit(this.CurrentPage);\r\n\t}\r\n\r\n\tonKeyUp(event: any) {\r\n\t\tconst eventValue: string = event.target.value;\r\n\t\tif (eventValue === \"\" || isNaN(parseInt(eventValue)) || eventValue === \"0\" || eventValue.indexOf(\"-\") >= 0) {\r\n\t\t\tthis.CurrentPage = 1;\r\n\t\t\tthis.EmitPageChange();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.CurrentPage = parseInt(eventValue);\r\n\r\n\t\tif (this.CurrentPage > this.TotalPages) {\r\n\t\t\tthis.CurrentPage = this.TotalPages;\r\n\t\t}\r\n\t\tthis.EmitPageChange();\r\n\t}\r\n}\r\n","<div \r\n\tclass=\"prPaginator\" \r\n\t[ngClass]=\"{\r\n\t\t'prPaginator--leftdis': CurrentPage === 1 || TotalItems === 0,\r\n\t\t'prPaginator--rightdis': CurrentPage === TotalPages || TotalItems === 0\r\n\t}\">\r\n\t<div class=\"prPaginator__controls\">\r\n\t\t<button pButton type=\"button\" class=\"prPaginator__btn prPaginator__btn--first\" [disabled]=\"CurrentPage === 1 || TotalItems === 0\" (click)=\"GoToFirstPage()\"></button>\r\n\t\t<button pButton type=\"button\" class=\"prPaginator__btn prPaginator__btn--previous\" [disabled]=\"CurrentPage === 1 || TotalItems === 0\" (click)=\"GoToPreviousPage()\"></button>\r\n\t\t<span class=\"prPaginator__label--left\">{{ \"Previous\" | term : GlobalTermService.languageCode }}</span>\r\n\t\t<input pInputText type=\"text\" [disabled]=\"TotalItems === 0\" (keydown.enter)=\"$event.preventDefault()\" [(ngModel)]=\"CurrentPage\" positiveNumber class=\"prPaginator__input\" (keyup.enter)=\"onKeyUp($event)\" />\r\n\t\t<span class=\"prPaginator__total\">{{ \"Of\" | term : GlobalTermService.languageCode }} {{ TotalPages }}</span>\r\n\t\t<span class=\"prPaginator__label--right\">{{ \"Next\" | term : GlobalTermService.languageCode }}</span>\r\n\t\t<button pButton type=\"button\" class=\"prPaginator__btn prPaginator__btn--next\" [disabled]=\"CurrentPage === TotalPages || TotalItems === 0\" (click)=\"GoToNextPage()\"></button>\r\n\t\t<button pButton type=\"button\" class=\"prPaginator__btn prPaginator__btn--last\" [disabled]=\"CurrentPage === TotalPages || TotalItems === 0\" (click)=\"GoToLastPage()\"></button>\r\n\t</div>\r\n</div>\r\n","export enum SearchInputEnum {\r\n\tOperatorId = \"operatorId\",\r\n\tFieldId = \"fieldId\",\r\n\tSearchText = \"searchText\",\r\n}\r\n","import { Component, EventEmitter, forwardRef, inject, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule, FormBuilder, FormGroup, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { RadioButtonModule } from \"primeng/radiobutton\";\r\nimport { Popover } from \"primeng/popover\";\r\nimport { InputText } from \"primeng/inputtext\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { SearchInputModel } from \"./model/search.model\";\r\nimport { SearchInputEnum } from \"./enums/search.enum\";\r\nimport { TooltipModule } from \"primeng/tooltip\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\n\r\n@Component({\r\n\tselector: \"intelica-search\",\r\n\timports: [FormsModule, ReactiveFormsModule, RadioButtonModule, Popover, InputText, CommonModule, TooltipModule, TermPipe],\r\n\ttemplateUrl: \"./search.component.html\",\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => SearchComponent),\r\n\t\t},\r\n\t],\r\n\t// styleUrl: \"./search.component.css\",\r\n})\r\nexport class SearchComponent implements OnDestroy, OnInit {\r\n\treadonly GlobalTermService = inject(GlobalTermService);\r\n\t/**\r\n\t * Indica el componente del que proviene.\r\n\t * @type {string}\r\n\t */\r\n\t@Input() ComponentId: string = \"\";\r\n\t@Input() ShowTooltip: boolean = false;\r\n\r\n\t/**\r\n\t * Opciones para campos de búsqueda.\r\n\t * @type {{ id: number; value: string }[]}\r\n\t */\r\n\t@Input() SearchFieldOptions!: { id: number; value: string }[];\r\n\r\n\t/**\r\n\t * Indica si realizar la búsqueda al soltar una tecla.\r\n\t * @type {boolean}\r\n\t */\r\n\t@Input() SearchOnKeyup!: boolean;\r\n\r\n\t/**\r\n\t * @deprecated No debe ser utilizado. Es sólo para uso interno y no para módulos.\r\n\t * @type {boolean}\r\n\t * @default false\r\n\t */\r\n\t@Input() SimpleSearchInput: boolean = false;\r\n\r\n\t/**\r\n\t * Placeholder para el componente de búsqueda.\r\n\t * @type {string}\r\n\t */\r\n\t@Input() Placeholder: string = \"\";\r\n\r\n\t/**\r\n\t * Evento emitido al realizar una búsqueda.\r\n\t * @type {EventEmitter<{ operatorId: number; operatorText: string, fieldId: number, fieldText: string, searchText: string }>}\r\n\t */\r\n\t@Output(\"OnSearch\") OnSearchEvent = new EventEmitter<SearchInputModel>();\r\n\r\n\tprivate readonly FormBuilder = inject(FormBuilder);\r\n\r\n\t// Option!: string;\r\n\t// Placeholder!: string;\r\n\r\n\t/**\r\n\t * Indica si el dropdown está abierto\r\n\t * @type {boolean}\r\n\t * @default false\r\n\t */\r\n\tIsDropdownOpen: boolean = false;\r\n\r\n\t/**\r\n\t * Formulario para manejar los parámetros de búsqueda\r\n\t * @type {FormGroup}\r\n\t */\r\n\tSearchForm!: FormGroup;\r\n\r\n\t/**\r\n\t * Suscripción a los valores del formulario.\r\n\t * @type {Subscription}\r\n\t */\r\n\tFormValuesSubscription!: Subscription;\r\n\r\n\t/**\r\n\t * Opciones para operadores de búsqueda.\r\n\t * @type {{ id: number; value: string }[]}\r\n\t */\r\n\tSearchOperatorOptions!: { id: number; value: string }[];\r\n\r\n\t/**\r\n\t * Función llamada cuando cambia el valor del campo de búsqueda.\r\n\t * @type {() => void}\r\n\t */\r\n\tOnChange: (value: SearchInputModel) => void = () => {};\r\n\r\n\t/**\r\n\t * Función llamada cuando el componente de búsqueda es tocado.\r\n\t * @type {() => void}\r\n\t */\r\n\tOnTouched: () => void = () => {};\r\n\r\n\tconstructor() {}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.SearchForm = this.FormBuilder.group({\r\n\t\t\toperatorId: 0,\r\n\t\t\tfieldId: 0,\r\n\t\t\tsearchText: \"\",\r\n\t\t});\r\n\r\n\t\tthis.FormValuesSubscription = this.SearchForm.valueChanges.subscribe(value => {\r\n\t\t\tthis.OnChange(value);\r\n\t\t});\r\n\r\n\t\t//loadTerms\r\n\t\tif (this.Placeholder === \"\") this.Placeholder = \"SearchPlaceholder\";\r\n\t\tthis.SearchOperatorOptions ??= this.GetSearchOperatorOptions();\r\n\t\tthis.SearchFieldOptions ??= this.GetSearchFieldOptions();\r\n\r\n\t\tthis.InitializeForm();\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.FormValuesSubscription.unsubscribe();\r\n\t}\r\n\r\n\tInitializeForm() {\r\n\t\tthis.SearchForm.setValue({\r\n\t\t\toperatorId: this.SearchOperatorOptions[0].id,\r\n\t\t\tfieldId: this.SearchFieldOptions.length > 0 ? this.SearchFieldOptions[0].id : 0,\r\n\t\t\tsearchText: \"\",\r\n\t\t});\r\n\t\tthis.OnSearch();\r\n\t}\r\n\r\n\tDropDownChange(isOpen: boolean) {\r\n\t\tthis.IsDropdownOpen = isOpen;\r\n\t}\r\n\r\n\tOnSearchEnter(): void {\r\n\t\tif (!this.SearchOnKeyup) this.OnSearch();\r\n\t}\r\n\r\n\tOnSearchKeyup() {\r\n\t\tif (this.SearchOnKeyup) this.OnSearch();\r\n\t}\r\n\r\n\tOnSearch(): void {\r\n\t\tconst value = this.SearchForm.value as SearchInputModel;\r\n\t\tvalue.operatorText = this.SearchOperatorOptions.find(o => o.id === value.operatorId)?.value || \"\";\r\n\t\tvalue.fieldText = this.SearchFieldOptions.find(f => f.id === value.fieldId)?.value || \"\";\r\n\t\tthis.OnChange(value);\r\n\t\tthis.OnTouched();\r\n\t\tthis.OnSearchEvent.emit(value);\r\n\t}\r\n\r\n\tClearSearchText(emitEvent: boolean = true) {\r\n\t\tthis.SearchForm.get(SearchInputEnum.SearchText)?.setValue(\"\");\r\n\t\tif (emitEvent) {\r\n\t\t\tthis.OnSearch();\r\n\t\t}\r\n\t}\r\n\r\n\tget HasSearchText(): boolean {\r\n\t\tconst searchText = this.SearchForm.get(SearchInputEnum.SearchText)?.value;\r\n\t\treturn searchText && searchText.length > 0;\r\n\t}\r\n\r\n\tGetSelectedOperatorValue(): string {\r\n\t\tconst selectedId = this.SearchForm.get(SearchInputEnum.OperatorId)?.value;\r\n\t\tconst selectedItem = this.SearchOperatorOptions?.find(item => item.id === selectedId);\r\n\t\treturn selectedItem ? selectedItem.value : \"\";\r\n\t}\r\n\r\n\tGetSelectedFieldValue(): string {\r\n\t\tconst selectedId = this.SearchForm.get(SearchInputEnum.FieldId)?.value;\r\n\t\tconst selectedItem = this.SearchFieldOptions?.find(item => item.id === selectedId);\r\n\t\treturn selectedItem ? selectedItem.value : \"\";\r\n\t}\r\n\r\n\tGetSelectedValues(): string {\r\n\t\treturn `${this.GetSelectedOperatorValue()}, ${this.GetSelectedFieldValue()}`;\r\n\t}\r\n\r\n\tSetSearchTextValue(text: string) {\r\n\t\tthis.SearchForm.get(SearchInputEnum.SearchText)?.setValue(text);\r\n\t}\r\n\r\n\tSetOperatorValue(value: number) {\r\n\t\tthis.SearchForm.get(SearchInputEnum.OperatorId)?.setValue(value ?? 0);\r\n\t}\r\n\r\n\tSetFieldValue(value: number) {\r\n\t\tthis.SearchForm.get(SearchInputEnum.FieldId)?.setValue(value ?? 0);\r\n\t}\r\n\r\n\tGetSearchOperatorOptions() {\r\n\t\treturn [\r\n\t\t\t{ id: 0, value: \"Contains\" },\r\n\t\t\t{ id: 1, value: \"Exact\" },\r\n\t\t\t{ id: 2, value: \"Begin\" },\r\n\t\t\t{ id: 3, value: \"Ends\" },\r\n\t\t];\r\n\t}\r\n\r\n\tGetSearchFieldOptions() {\r\n\t\treturn [\r\n\t\t\t{ id: 0, value: \"code\" },\r\n\t\t\t{ id: 1, value: \"name\" },\r\n\t\t];\r\n\t}\r\n}\r\n","<form [formGroup]=\"SearchForm\">\r\n\t<div class=\"prSearchBar\">\r\n\t\t<div class=\"prSearchBar__dropdown\" (click)=\"op.toggle($event)\" *ngIf=\"!SimpleSearchInput\">\r\n\t\t\t<div\r\n\t\t\t\tclass=\"prSearchBar__dropdown--label\"\r\n\t\t\t\t[pTooltip]=\"ShowTooltip ? (GetSelectedOperatorValue() | term : GlobalTermService.languageCode) + ', ' + (GetSelectedFieldValue() | term : GlobalTermService.languageCode) : ''\"\r\n\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t>\r\n\t\t\t\t{{ GetSelectedFieldValue() | term : GlobalTermService.languageCode }}\r\n\t\t\t</div>\r\n\t\t\t<div class=\"prSearchBar__dropdown--icon\">\r\n\t\t\t\t<i [ngClass]=\"IsDropdownOpen ? 'icon-arrow-up' : 'icon-arrow-down'\"></i>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<p-popover #op (onShow)=\"DropDownChange(true)\" (onHide)=\"DropDownChange(false)\" class=\"prSearchBar__popover\">\r\n\t\t\t<div class=\"searchDropDown\">\r\n\t\t\t\t<div class=\"searchDropDown__group\">\r\n\t\t\t\t\t<div class=\"searchDropDown__title\">{{ \"Selectoperator\" | term : GlobalTermService.languageCode }}</div>\r\n\t\t\t\t\t<div class=\"searchDropDown__listOption\">\r\n\t\t\t\t\t\t@for ( option of SearchOperatorOptions ; track option.id; let index = $index){\r\n\t\t\t\t\t\t<div class=\"searchDropDown__option\">\r\n\t\t\t\t\t\t\t<p-radiobutton [inputId]=\"ComponentId + option.id\" class=\"prRadioButton\" [value]=\"option.id\" formControlName=\"operatorId\" (change)=\"OnSearchKeyup()\" />\r\n\t\t\t\t\t\t\t<label [for]=\"ComponentId + option.id\" class=\"prRadioButton--label\">{{ option.value | term : GlobalTermService.languageCode }}</label>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t<hr />\r\n\t\t\t\t<div class=\"searchDropDown__group\">\r\n\t\t\t\t\t<div class=\"searchDropDown__title\">{{ \"Selectfield\" | term : GlobalTermService.languageCode }}</div>\r\n\t\t\t\t\t@for ( option of SearchFieldOptions ; track option.id; let index = $index){\r\n\t\t\t\t\t<div class=\"searchDropDown__option\">\r\n\t\t\t\t\t\t<p-radiobutton [inputId]=\"ComponentId + 'fieldId_' + option.id\" class=\"prRadioButton\" [value]=\"option.id\" formControlName=\"fieldId\" (change)=\"OnSearchKeyup()\" />\r\n\t\t\t\t\t\t<label [for]=\"ComponentId + 'fieldId_' + option.id\" class=\"prRadioButton--label\">{{ option.value | term : GlobalTermService.languageCode }}</label>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</p-popover>\r\n\t\t<div class=\"prSearchBar__content\">\r\n\t\t\t<div class=\"prSearchBar__btn\">\r\n\t\t\t\t<button pButton type=\"button\" class=\"prSearchBar__btn-action\" (click)=\"ClearSearchText()\" *ngIf=\"HasSearchText\">\r\n\t\t\t\t\t<i class=\"icon-times\"></i>\r\n\t\t\t\t</button>\r\n\t\t\t\t<button pButton type=\"button\" class=\"prSearchBar__btn-action\" (click)=\"OnSearch()\">\r\n\t\t\t\t\t<i class=\"icon-search\"></i>\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t\t<input\r\n\t\t\t\tpInputText\r\n\t\t\t\ttype=\"text\"\r\n\t\t\t\tclass=\"prSearchBar__input\"\r\n\t\t\t\tformControlName=\"searchText\"\r\n\t\t\t\t[placeholder]=\"Placeholder | term : GlobalTermService.languageCode\"\r\n\t\t\t\t(keyup.enter)=\"OnSearchEnter()\"\r\n\t\t\t\t(keyup)=\"OnSearchKeyup()\"\r\n\t\t\t/>\r\n\t\t</div>\r\n\t</div>\r\n</form>\r\n","import { ContentChild, Directive, Input, TemplateRef } from \"@angular/core\";\r\n@Directive({ selector: \"column\" })\r\nexport class ColumnComponent<T = any> {\r\n @Input() field!: string;\r\n @Input() header!: string;\r\n @Input() sortable: boolean = false;\r\n @Input() width?: string;\r\n @Input() className?: string;\r\n @Input() headerTooltip?: string;\r\n @Input() headerTooltipPosition: \"top\" | \"bottom\" | \"left\" | \"right\" = \"top\";\r\n @Input() tooltip: string = \"\";\r\n @Input() tooltipPosition: \"top\" | \"bottom\" | \"left\" | \"right\" = \"top\";\r\n @Input() showIndex: boolean = false;\r\n @Input() showHeader: boolean = true;\r\n @Input() minWidth?: string;\r\n @Input() isChecboxColumn: boolean = false;\r\n @Input() alphaSubEnum: boolean = false;\r\n //@Input() isGrouped: boolean = false;\r\n //@Input() isGroup: boolean = false;\r\n @Input() formatType:\r\n | \"string\"\r\n | \"date\"\r\n | \"date2\"\r\n | \"date3\"\r\n | \"time\"\r\n | \"decimal2\"\r\n | \"decimal4\"\r\n | \"tarifa\" = \"string\";\r\n @ContentChild(TemplateRef) templateRef?: TemplateRef<any>;\r\n}\r\n@Directive({ selector: \"columnGroup\" })\r\nexport class ColumnGroupComponent<T = any> {\r\n @Input() field!: string;\r\n @Input() header!: string;\r\n @Input() sortable: boolean = false;\r\n @Input() width?: string;\r\n @Input() minWidth?: string;\r\n @Input() className?: string;\r\n @Input() headerTooltip?: string = \"\";\r\n @Input() headerTooltipPosition: \"top\" | \"bottom\" | \"left\" | \"right\" = \"top\";\r\n // @Input() tooltip: string = \"\";\r\n // @Input() tooltipPosition: \"top\" | \"bottom\" | \"left\" | \"right\" = \"top\";\r\n // @Input() showIndex: boolean = false;\r\n // @Input() isGrouped: boolean = false;\r\n // @Input() isGroup: boolean = false;\r\n @Input() colspan: number = 1;\r\n @Input() rowspan: number = 1;\r\n @Input() level: number = 0;\r\n @Input() formatType:\r\n | \"string\"\r\n | \"date\"\r\n | \"date2\"\r\n | \"date3\"\r\n | \"time\"\r\n | \"decimal2\"\r\n | \"decimal4\"\r\n | \"tarifa\" = \"string\";\r\n}\r\n@Directive({ selector: \"rowResumenComponent\" })\r\nexport class RowResumenComponent<T = any> {\r\n @Input() field!: string;\r\n @Input() className?: string;\r\n // @Input() width?: string;\r\n // @Input() className?: string;\r\n // @Input() headerTooltip: string = \"\";\r\n // @Input() headerTooltipPosition: \"top\" | \"bottom\" | \"left\" | \"right\" = \"top\";\r\n // @Input() tooltip: string = \"\";\r\n // @Input() tooltipPosition: \"top\" | \"bottom\" | \"left\" | \"right\" = \"top\";\r\n // @Input() showIndex: boolean = false;\r\n // @Input() isGrouped: boolean = false;\r\n // @Input() isGroup: boolean = false;\r\n @Input() colspan: number = 1;\r\n @Input() rowspan: number = 1;\r\n @ContentChild(TemplateRef) templateRef?: TemplateRef<any>;\r\n @Input() formatType:\r\n | \"string\"\r\n | \"date\"\r\n | \"date2\"\r\n | \"date3\"\r\n | \"time\"\r\n | \"decimal2\"\r\n | \"decimal4\"\r\n | \"tarifa\" = \"string\";\r\n}\r\n\r\n// @Input() headerText: string | undefined;\r\n// @Input() field: string;\r\n// @Input() fieldDetail: string;\r\n// @Input() className: string;\r\n// @Input() order: boolean = false;\r\n// @Input() width: string;\r\n// @Input() isNumber: boolean = false;\r\n// @Input() isRowNumber: boolean = false;\r\n// @Input() isPercent: boolean = false;\r\n// @Input() isInteger: boolean = false;\r\n// @Input() setContainer: boolean = true;\r\n// @Input() hideRowInDetail: boolean = false;\r\n// @Input() prefix: string;\r\n// @Input() headerWidth: number = 0;\r\n// @Input() headerLineBreak: boolean = false;\r\n// @Input() numberFormat: string = '1.2-2';\r\n// @Input() columnHasDateFormat: boolean = false;\r\n// @Input() dateFormat: string = '';\r\n// @Input() isSelectableColum: boolean = false;\r\n// @Input() isHeaderClickable: boolean = false;\r\n// @Input() classNameHeader: string = '';\r\n// @Input() isActiveHeader: boolean = false;\r\n// @Input() classNameActiveHeader: string = '';\r\n// @Input() isCellClickable: boolean = false;\r\n// @Input() isAveragePercent: boolean = false;\r\n// @Input() visible: boolean = true;\r\n// @Input() hasAmountNaming: boolean = false;\r\n// @Input() computedField: string;\r\n// @Input() isOrderedDesc: boolean = false;\r\n// @Input() isOrderedAsc: boolean = false;\r\n// @Input() containDetails: boolean = false;\r\n// @Input() isChecboxColumn: boolean = false;\r\n// columnsForCompare: string = '';\r\n// @ContentChild('detail') detail!: any;\r\n// @ContentChild('content') content!: any;\r\n","import { inject, Pipe, PipeTransform } from \"@angular/core\";\r\nimport { DateMode } from \"../constants/date-mode-options.constants\";\r\nimport { DatePipe } from \"@angular/common\";\r\n\r\n@Pipe({\r\n name: \"formatCell\",\r\n standalone: true,\r\n})\r\nexport class FormatCellPipe implements PipeTransform {\r\n private readonly datePipe = inject(DatePipe);\r\n\r\n transform(\r\n value: any,\r\n type:\r\n | \"string\"\r\n | \"date\"\r\n | \"date2\"\r\n | \"date3\"\r\n | \"time\"\r\n | \"decimal2\"\r\n | \"decimal4\"\r\n | \"tarifa\"\r\n ): string {\r\n if (value == null) return \"\";\r\n\r\n switch (type) {\r\n case \"date\":\r\n return this.formatDateValue(value, \"day\");\r\n case \"date2\":\r\n return this.formatDateValue(value, \"month\");\r\n case \"date3\":\r\n return this.formatDateValue(value, \"year\");\r\n case \"time\":\r\n return this.formatTime(value);\r\n case \"decimal2\":\r\n return this.formatDecimal(value, 2);\r\n case \"decimal4\":\r\n return this.formatDecimal(value, 4);\r\n case \"tarifa\":\r\n return this.formatTarifa(value);\r\n default:\r\n return value;\r\n }\r\n }\r\n\r\n getDateFormat(mode: DateMode): string {\r\n switch (mode) {\r\n case \"month\":\r\n return \"M/yy\";\r\n case \"year\":\r\n return \"yy\";\r\n default:\r\n return \"d/M/yy\";\r\n }\r\n }\r\n\r\n formatDateValue(value: any, mode: string): string {\r\n const pattern = this.getDateFormat(mode as DateMode);\r\n\r\n if (Array.isArray(value) && value.length === 2) {\r\n return `${this.datePipe.transform(\r\n value[0],\r\n pattern\r\n )} - ${this.datePipe.transform(value[1], pattern)}`;\r\n }\r\n\r\n if (value) {\r\n return this.datePipe.transform(value, pattern) || \"\";\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n private formatTime(value: any): string {\r\n const date = new Date(value);\r\n if (isNaN(date.getTime())) return \"\";\r\n\r\n let hours = date.getHours();\r\n const minutes = date.getMinutes();\r\n const seconds = date.getSeconds();\r\n const ampm = hours >= 12 ? \"PM\" : \"AM\";\r\n\r\n hours = hours % 12;\r\n hours = hours ? hours : 12;\r\n const hh = hours.toString().padStart(2, \"0\");\r\n const mm = minutes.toString().padStart(2, \"0\");\r\n const ss = seconds.toString().padStart(2, \"0\");\r\n\r\n return `${hh}:${mm}:${ss} ${ampm}`;\r\n }\r\n\r\n private formatDecimal(value: any, digits: number): string {\r\n const num = parseFloat(value);\r\n if (isNaN(num)) return \"\";\r\n return num.toFixed(digits);\r\n }\r\n\r\n private formatTarifa(value: any): string {\r\n const num = parseFloat(value);\r\n if (isNaN(num)) return \"\";\r\n\r\n const absNum = Math.abs(num);\r\n if (absNum >= 0.000001 && absNum <= 0.1) {\r\n // Mostrar hasta 6 decimales\r\n return absNum.toFixed(6);\r\n } else if (absNum < 0.000001) {\r\n return num.toString();\r\n } else {\r\n return num.toString();\r\n }\r\n }\r\n}\r\n","import { CommonModule, DatePipe } from \"@angular/common\";\r\nimport {\r\n AfterContentInit,\r\n Component,\r\n ContentChild,\r\n ContentChildren,\r\n EventEmitter,\r\n inject,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n TemplateRef,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { BadgeModule } from \"primeng/badge\";\r\nimport { CheckboxModule } from \"primeng/checkbox\";\r\nimport { TableModule } from \"primeng/table\";\r\nimport { TooltipModule } from \"primeng/tooltip\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\nimport { SharedService } from \"../../services/shared.service\";\r\nimport { PaginatorComponent } from \"../paginator/paginator.component\";\r\nimport { SearchInputModel } from \"../search/model/search.model\";\r\nimport { SearchComponent } from \"../search/search.component\";\r\nimport {\r\n ColumnComponent,\r\n ColumnGroupComponent,\r\n RowResumenComponent,\r\n} from \"./column.component\";\r\nimport { SearchFieldModel } from \"./model/search.model\";\r\nimport { SortFieldModel } from \"./model/sort.model\";\r\nimport { Select } from \"primeng/select\";\r\nimport { FormatCellPipe } from \"../../pipes/formatCell.pipe\";\r\n\r\n@Component({\r\n selector: \"intelica-table\",\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n SearchComponent,\r\n PaginatorComponent,\r\n TableModule,\r\n Select,\r\n BadgeModule,\r\n TooltipModule,\r\n TermPipe,\r\n CheckboxModule,\r\n FormsModule,\r\n FormatCellPipe,\r\n ],\r\n templateUrl: \"./table.component.html\",\r\n providers: [FormatCellPipe, DatePipe],\r\n})\r\nexport class TableComponent<T> implements OnChanges, AfterContentInit {\r\n private readonly SharedService = inject(SharedService);\r\n readonly GlobalTermService = inject(GlobalTermService);\r\n @Input() ComponentId: string = \"\";\r\n @Input() ListData: T[] = [];\r\n @Input() ShowRowPerPage: boolean = true;\r\n @Input() ShowSearch: boolean = false;\r\n @Input() ListSearchOptions: SearchFieldModel[] = [];\r\n @Input() ShowPagination: boolean = false;\r\n @Input() RowsPerPage: number = 10;\r\n @Input() ShowCheckbox: boolean = false;\r\n @Input() ShowIndex: boolean = false;\r\n @Input() ShowSearchTooltip: boolean = false;\r\n @Input() ListDataSelected: T[] = [];\r\n @Input() SelectedIdentifier: keyof T | null = null;\r\n @Input() ClassName: string = \"\";\r\n @Input() DefaultSortField: string = \"\";\r\n @Input() DefaultSortOrder: number = 1;\r\n @Input() scrollHeight: string = \"400px\";\r\n @Input() scrollable: boolean = false;\r\n @Input() AllowedPageSizes: number[] = [10, 25, 50, 100];\r\n @Input() tableStyle: { [klass: string]: any } = {};\r\n private _isTableDisabled = false;\r\n private _pendingUncheck = false;\r\n HeaderState: Record<string, { checked: boolean; indeterminate: boolean }> =\r\n {};\r\n\r\n @Input()\r\n set IsTableDisabled(val: boolean) {\r\n this._isTableDisabled = val;\r\n\r\n if (val) {\r\n if (!this.ColumnList || this.ColumnList.length === 0) {\r\n this._pendingUncheck = true;\r\n } else {\r\n this.ListDataSelectedTemp = [];\r\n this.ListDataSelectedFilter = [];\r\n this.ExecuteSearch({});\r\n }\r\n }\r\n }\r\n get IsTableDisabled() {\r\n return this._isTableDisabled;\r\n }\r\n\r\n public recomputeHeaderState(field: string) {\r\n const total = this.ListDataFilter.length;\r\n if (total === 0) {\r\n this.HeaderState[field] = { checked: false, indeterminate: false };\r\n return;\r\n }\r\n const checked = this.ListDataFilter.filter(\r\n (r) => (r as any)[field] === true\r\n ).length;\r\n this.HeaderState[field] = {\r\n checked: checked === total,\r\n indeterminate: checked > 0 && checked < total,\r\n };\r\n }\r\n\r\n onBodyCheckboxChange(field: string) {\r\n this.recomputeHeaderState(field);\r\n }\r\n\r\n private refreshAllHeaderStates() {\r\n this.ColumnList.filter((c) => c.isChecboxColumn).forEach((c) =>\r\n this.recomputeHeaderState(c.field)\r\n );\r\n }\r\n @Output() EmitSelectedItem = new EventEmitter<T[]>();\r\n @Output() EmitListDataFilter = new EventEmitter<T[]>();\r\n @Output() EmitSearchEvent = new EventEmitter<SearchInputModel>();\r\n @Output() EmitSortEvent = new EventEmitter<SortFieldModel[]>();\r\n @ViewChild(\"paginatorTable\") PaginatorTable?: PaginatorComponent;\r\n @ViewChild(\"searchTable\") SearchTable?: SearchComponent;\r\n @ContentChildren(ColumnComponent) Columns!: QueryList<ColumnComponent>;\r\n @ContentChildren(ColumnGroupComponent)\r\n ColumnGroups!: QueryList<ColumnGroupComponent>;\r\n @ContentChildren(RowResumenComponent)\r\n RowResumenGroups!: QueryList<RowResumenComponent>;\r\n @ContentChild(\"additionalTemplate\") AdditionalTemplate?: TemplateRef<any>;\r\n @ContentChild(\"additionalExtendedTemplate\")\r\n AdditionalExtendedTemplate?: TemplateRef<any>;\r\n @ContentChild(\"additionalCentralTemplate\")\r\n AdditionalCentralTemplate?: TemplateRef<any>;\r\n ColumnList: ColumnComponent[] = [];\r\n ColumnGroupList: ColumnGroupComponent[] = [];\r\n RowResumenList: RowResumenComponent[] = [];\r\n ListDataFilter: T[] = [];\r\n ListDataTable: T[] = [];\r\n ListDataSelectedFilter: T[] = [];\r\n ListDataSelectedTemp: T[] = [];\r\n ListSearchOptionsSimple: { id: number; value: string }[] = [];\r\n SearchInput: SearchInputModel = {} as SearchInputModel;\r\n TotalRecords: number = 0;\r\n CurrentPage: number = 1;\r\n SortOrder: number = 1;\r\n SortField: keyof T | null = null;\r\n MaxLevel: number = 0;\r\n Levels: number[] = [];\r\n ngOnChanges(): void {\r\n this.LoadSearchOptions();\r\n if (!this.SortField && this.DefaultSortField) {\r\n this.SortField = this.DefaultSortField as keyof T;\r\n this.SortOrder = this.DefaultSortOrder;\r\n }\r\n this.ExecuteSearch({});\r\n this.ValidateSelect();\r\n }\r\n ngAfterContentInit() {\r\n this.ColumnList = this.Columns?.toArray() ?? [];\r\n this.ColumnGroupList = this.ColumnGroups?.toArray() ?? [];\r\n this.RowResumenList = this.RowResumenGroups?.toArray() ?? [];\r\n\r\n const levels = this.ColumnGroupList.map((c) => c.level);\r\n this.MaxLevel = levels.length ? Math.max(...levels) + 1 : 1;\r\n this.Levels = Array.from({ length: this.MaxLevel }, (_, i) => i);\r\n\r\n this.ColumnList.filter((c) => c.isChecboxColumn).forEach((c) => {\r\n if (!this.HeaderState[c.field]) {\r\n this.HeaderState[c.field] = { checked: false, indeterminate: false };\r\n }\r\n });\r\n\r\n if (this._isTableDisabled && this._pendingUncheck) {\r\n this.ListDataSelectedTemp = [];\r\n this.ListDataSelectedFilter = [];\r\n this._pendingUncheck = false;\r\n this.ExecuteSearch({});\r\n } else {\r\n this.refreshAllHeaderStates();\r\n }\r\n }\r\n LoadSearchOptions() {\r\n this.ListSearchOptionsSimple = this.ListSearchOptions.map((item) => ({\r\n id: item.id,\r\n value: item.name,\r\n }));\r\n }\r\n OnSort(field: string) {\r\n if (this.SortField === field) {\r\n this.SortOrder *= -1;\r\n } else {\r\n this.SortField = field as keyof T;\r\n this.SortOrder = 1;\r\n }\r\n this.SortPages();\r\n }\r\n OnPageChange(pageIndex: number) {\r\n this.CurrentPage = pageIndex;\r\n this.UpdatePages();\r\n }\r\n ExecuteSearch(event: any): void {\r\n if (event?.fieldText !== undefined && event?.fieldText !== \"\")\r\n this.SearchInput = event;\r\n this.ListDataFilter = [...this.ListData];\r\n if (\r\n this.SearchInput?.searchText !== undefined &&\r\n this.SearchInput?.searchText !== \"\" &&\r\n this.ListSearchOptions.length > 0\r\n ) {\r\n let Search = this.SearchInput.searchText?.trim()?.toLowerCase();\r\n let searchValue =\r\n this.ListSearchOptions.find(\r\n (item) => item.id === this.SearchInput.fieldId\r\n )?.field || \"code\";\r\n this.ListDataFilter = this.SharedService.GetFilteredSearchKey(\r\n [...this.ListData],\r\n searchValue,\r\n Search,\r\n this.SearchInput.operatorId\r\n );\r\n if (this.PaginatorTable) {\r\n this.PaginatorTable.CurrentPage = 1;\r\n this.CurrentPage = 1;\r\n }\r\n }\r\n this.SortPages();\r\n }\r\n SortPages() {\r\n if (!this.SortField) {\r\n this.UpdatePages();\r\n return;\r\n }\r\n\r\n const order = this.SortOrder === 1 ? \"asc\" : \"desc\";\r\n const field = this.SortField as keyof T;\r\n\r\n const colConfig = this.ColumnList.find((c) => c.field === field);\r\n if (!colConfig) {\r\n console.warn(\"Columna no encontrada:\", field);\r\n this.UpdatePages();\r\n return;\r\n }\r\n const formatType = colConfig.formatType;\r\n const sampleValue = this.ListDataFilter.find(\r\n (item) => item[field] !== null && item[field] !== undefined\r\n )?.[field];\r\n if (typeof sampleValue === \"number\") {\r\n this.ListDataFilter = this.SharedService.SortRecursiveNumber(\r\n [...this.ListDataFilter],\r\n field,\r\n order\r\n );\r\n } else {\r\n if (formatType === \"date\") {\r\n this.ListDataFilter = this.SharedService.SortRecursiveDate(\r\n [...this.ListDataFilter],\r\n field,\r\n order\r\n );\r\n } else {\r\n this.ListDataFilter = this.SharedService.SortRecursivePrimeNg(\r\n [...this.ListDataFilter],\r\n field,\r\n order\r\n );\r\n }\r\n }\r\n this.UpdatePages();\r\n }\r\n UpdatePages() {\r\n if (this.ShowPagination) {\r\n this.TotalRecords = this.ListDataFilter.length;\r\n const start = (this.CurrentPage - 1) * this.RowsPerPage;\r\n const end = start + this.RowsPerPage;\r\n this.ListDataTable = this.ListDataFilter.slice(start, end);\r\n } else {\r\n this.ListDataTable = this.ListDataFilter;\r\n }\r\n if (this.ShowCheckbox)\r\n this.ListDataSelectedFilter = [...this.ListDataSelectedTemp];\r\n this.refreshAllHeaderStates();\r\n this.EmitSearchValues();\r\n }\r\n ValidateSelect() {\r\n if (!this.SelectedIdentifier && this.ShowCheckbox) {\r\n this.ShowCheckbox = false;\r\n return;\r\n }\r\n const selectedIds = new Set(\r\n this.ListDataSelected.map(\r\n (item) => item[this.SelectedIdentifier as keyof T]\r\n )\r\n );\r\n this.ListDataSelectedTemp = this.ListData.filter((item) =>\r\n selectedIds.has(item[this.SelectedIdentifier as keyof T])\r\n );\r\n this.ListDataSelectedFilter = [...this.ListDataSelectedTemp];\r\n }\r\n SelectAll(event: any) {\r\n if (!this.SelectedIdentifier && this.ShowCheckbox) return;\r\n if (event.checked) {\r\n const idsSelected = new Set(\r\n this.ListDataSelectedTemp.map(\r\n (item) => item[this.SelectedIdentifier as keyof T]\r\n )\r\n );\r\n this.ListDataFilter.forEach((item) => {\r\n if (!idsSelected.has(item[this.SelectedIdentifier as keyof T])) {\r\n this.ListDataSelectedTemp.push(item);\r\n }\r\n });\r\n } else {\r\n const idsSelected = new Set(\r\n this.ListDataFilter.map(\r\n (item) => item[this.SelectedIdentifier as keyof T]\r\n )\r\n );\r\n this.ListDataSelectedTemp = this.ListDataSelectedTemp.filter(\r\n (item) => !idsSelected.has(item[this.SelectedIdentifier as keyof T])\r\n );\r\n }\r\n this.EmitSelectedItem.emit(this.ListDataSelectedTemp);\r\n }\r\n OnRowSelect(event: any) {\r\n if (!this.SelectedIdentifier && this.ShowCheckbox) return;\r\n const selectedItem = event.data;\r\n const exists = this.ListDataSelectedTemp.some(\r\n (item) =>\r\n item[this.SelectedIdentifier as keyof T] ===\r\n selectedItem[this.SelectedIdentifier as keyof T]\r\n );\r\n if (!exists) {\r\n this.ListDataSelectedTemp.push(selectedItem);\r\n }\r\n this.EmitSelectedItem.emit(this.ListDataSelectedTemp);\r\n }\r\n OnRowUnselect(event: any) {\r\n if (!this.SelectedIdentifier && this.ShowCheckbox) return;\r\n const unselectedItem = event.data;\r\n this.ListDataSelectedTemp = this.ListDataSelectedTemp.filter(\r\n (item) =>\r\n item[this.SelectedIdentifier as keyof T] !==\r\n unselectedItem[this.SelectedIdentifier as keyof T]\r\n );\r\n this.EmitSelectedItem.emit(this.ListDataSelectedTemp);\r\n }\r\n ResetTable() {\r\n if (this.PaginatorTable) {\r\n this.PaginatorTable.CurrentPage = 1;\r\n this.CurrentPage = 1;\r\n }\r\n if (this.SearchTable) {\r\n this.SearchTable.ClearSearchText();\r\n this.SearchInput.fieldText = \"\";\r\n }\r\n this.ExecuteSearch({});\r\n }\r\n EmitSearchValues() {\r\n this.EmitListDataFilter.emit(this.ListDataFilter);\r\n this.EmitSearchEvent.emit(this.SearchInput);\r\n this.EmitSortEvent.emit([\r\n {\r\n sortOrder: this.SortOrder,\r\n sortField: this.SortField?.toString() ?? \"\",\r\n },\r\n ]);\r\n }\r\n OnHeaderCheckboxChange(checked: boolean, field: string) {\r\n this.ListDataFilter.forEach((r) => ((r as any)[field] = checked));\r\n\r\n this.HeaderState[field] = { checked, indeterminate: false };\r\n this.UpdatePages();\r\n }\r\n\r\n private getHeaderScope(): T[] {\r\n return this.ShowPagination ? this.ListDataTable : this.ListDataFilter;\r\n }\r\n\r\n FilterData(field: string) {\r\n let c = this.ListData.filter(\r\n (item) => (item as Record<string, boolean>)[field]\r\n );\r\n }\r\n IsInderteminate(column: string) {\r\n const rowsChek = this.ListData.filter(\r\n (item) => (item as Record<string, boolean>)[column]\r\n ).length;\r\n const element = [...document.querySelectorAll(\"[data-check]\")].find(\r\n (x) => x.getAttribute(\"data-check\") == column\r\n );\r\n if (element == undefined) return;\r\n if (rowsChek > 0 && rowsChek < this.ListData.length) {\r\n element.setAttribute(\"class\", \"prCheckbox--indeterminate\");\r\n } else {\r\n element.removeAttribute(\"class\");\r\n }\r\n }\r\n OnRowsPerPageChange(value: number) {\r\n this.RowsPerPage = value;\r\n this.ResetTable();\r\n }\r\n ResetTableSelected() {\r\n this.ListDataSelectedTemp = [];\r\n this.ListDataSelectedFilter = [...this.ListDataSelectedTemp];\r\n }\r\n}\r\n","<div class=\"prTable\">\r\n <div class=\"prTableTools\">\r\n <div class=\"prTableTools__new prTableTools__new--left\">\r\n @if (AdditionalTemplate) {\r\n <ng-container *ngTemplateOutlet=\"AdditionalTemplate\"></ng-container>\r\n }\r\n </div>\r\n @if (ShowSearch) {\r\n <intelica-search\r\n #searchTable\r\n [ComponentId]=\"ComponentId + 'Search'\"\r\n (OnSearch)=\"ExecuteSearch($event)\"\r\n [SearchFieldOptions]=\"ListSearchOptionsSimple\"\r\n [SearchOnKeyup]=\"false\"\r\n [SimpleSearchInput]=\"false\"\r\n [ShowTooltip]=\"ShowSearchTooltip\"\r\n ></intelica-search>\r\n } @if (AdditionalCentralTemplate) {\r\n <div class=\"prTableTools__new prTableTools__new--right\">\r\n <ng-container\r\n *ngTemplateOutlet=\"AdditionalCentralTemplate\"\r\n ></ng-container>\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (AdditionalExtendedTemplate) {\r\n <div class=\"prTableTools justify-content-start\">\r\n <ng-container *ngTemplateOutlet=\"AdditionalExtendedTemplate\"></ng-container>\r\n </div>\r\n\r\n }\r\n <p-table\r\n class=\"prTableBasic\"\r\n [ngClass]=\"ClassName\"\r\n [value]=\"ListDataTable\"\r\n responsiveLayout=\"scroll\"\r\n [(selection)]=\"ListDataSelectedFilter\"\r\n (onHeaderCheckboxToggle)=\"SelectAll($event)\"\r\n (onRowSelect)=\"OnRowSelect($event)\"\r\n (onRowUnselect)=\"OnRowUnselect($event)\"\r\n [sortField]=\"DefaultSortField\"\r\n [scrollable]=\"scrollable\"\r\n [scrollHeight]=\"scrollable ? scrollHeight : 'auto'\"\r\n [tableStyle]=\"tableStyle\"\r\n [sortOrder]=\"DefaultSortOrder\"\r\n >\r\n <ng-template pTemplate=\"header\">\r\n @for (level of Levels; track $index) {\r\n <tr>\r\n @for (col of ColumnGroupList; track $index) { @if (col.level === level)\r\n {\r\n <th\r\n [attr.colspan]=\"col.colspan\"\r\n [attr.rowspan]=\"col.rowspan\"\r\n [pSortableColumn]=\"col.sortable ? col.field : ''\"\r\n [style.min-width]=\"col.minWidth\"\r\n (click)=\"col.sortable && OnSort(col.field)\"\r\n >\r\n <div>\r\n <span\r\n [pTooltip]=\"col.headerTooltip?.trim() ? col.headerTooltip : undefined\"\r\n [tooltipPosition]=\"col.headerTooltipPosition || 'top'\"\r\n >\r\n {{ col.header }}\r\n </span>\r\n <p-sortIcon *ngIf=\"col.sortable\" [field]=\"col.field\"></p-sortIcon>\r\n </div>\r\n </th>\r\n } } @if (ShowCheckbox && level === 0 && ColumnGroupList.length != 0) {\r\n <th\r\n class=\"text-center\"\r\n style=\"width: 4%\"\r\n [attr.rowspan]=\"MaxLevel === 1 ? 2 : MaxLevel\"\r\n >\r\n <p-tableHeaderCheckbox\r\n class=\"prCheckbox\"\r\n [ngClass]=\"{\r\n 'prCheckbox--indeterminate':\r\n ListDataSelectedTemp.length > 0 &&\r\n ListDataSelectedTemp.length < ListDataFilter.length\r\n }\"\r\n />\r\n </th>\r\n }\r\n </tr>\r\n }\r\n <tr>\r\n @for (col of ColumnList; track $index) { @if(col.showHeader ){\r\n <th\r\n [class]=\"col.className\"\r\n [pSortableColumn]=\"\r\n !col.isChecboxColumn && col.sortable ? col.field : ''\r\n \"\r\n [style.width]=\"col.width\"\r\n [style.min-width]=\"col.minWidth\"\r\n (click)=\"!col.isChecboxColumn && col.sortable && OnSort(col.field)\"\r\n >\r\n <div>\r\n <span\r\n [pTooltip]=\"col.headerTooltip?.trim() ? col.headerTooltip : undefined\"\r\n [tooltipPosition]=\"col.headerTooltipPosition || 'top'\"\r\n >\r\n {{ col.header }}\r\n </span>\r\n @if(!col.showIndex) { @if(col.isChecboxColumn){\r\n <br />\r\n <p-checkbox\r\n class=\"prCheckbox\"\r\n [binary]=\"true\"\r\n (click)=\"$event.stopPropagation()\"\r\n [(ngModel)]=\"HeaderState[col.field].checked\"\r\n (ngModelChange)=\"OnHeaderCheckboxChange($event, col.field)\"\r\n [attr.data-check]=\"col.field\"\r\n [disabled]=\"IsTableDisabled\"\r\n [ngClass]=\"{\r\n 'prCheckbox--indeterminate':\r\n HeaderState[col.field].indeterminate\r\n }\"\r\n ></p-checkbox>\r\n } @else {\r\n <p-sortIcon *ngIf=\"col.sortable\" [field]=\"col.field\"></p-sortIcon>\r\n } }\r\n </div>\r\n </th>\r\n } } @if(ShowCheckbox && ColumnGroupList.length == 0 ){\r\n <th class=\"text-center\" style=\"width: 4%\">\r\n <p-tableHeaderCheckbox\r\n class=\"prCheckbox\"\r\n [ngClass]=\"{\r\n 'prCheckbox--indeterminate':\r\n ListDataSelectedTemp.length > 0 &&\r\n ListDataSelectedTemp.length < ListDataFilter.length\r\n }\"\r\n />\r\n </th>\r\n }\r\n </tr>\r\n @if (ListDataFilter.length > 0) {\r\n <tr class=\"fixedRow\">\r\n @for (col of RowResumenList; track $index) {\r\n <td\r\n [ngClass]=\"col.className\"\r\n [attr.colspan]=\"col.colspan\"\r\n [attr.rowspan]=\"col.rowspan\"\r\n >\r\n @if (col.templateRef) {\r\n <span>\r\n <ng-container *ngTemplateOutlet=\"col.templateRef\"></ng-container>\r\n </span>\r\n } @else {\r\n <ng-template #defaultContent></ng-template>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-rowIndex=\"rowIndex\">\r\n <tr>\r\n @for (col of ColumnList; track $index) {\r\n <td [ngClass]=\"col.className\">\r\n @if (col.showIndex) {\r\n {{ rowIndex + 1 + (CurrentPage - 1) * RowsPerPage }}\r\n } @else { @if (col.templateRef) {\r\n <ng-container\r\n *ngTemplateOutlet=\"col.templateRef; context: { $implicit: rowData }\"\r\n ></ng-container>\r\n } @else if(col.isChecboxColumn){\r\n <p-checkbox\r\n [binary]=\"true\"\r\n [(ngModel)]=\"rowData[col.field]\"\r\n (onChange)=\"onBodyCheckboxChange(col.field)\"\r\n [disabled]=\"IsTableDisabled\"\r\n ></p-checkbox>\r\n } @else {\r\n <span\r\n class=\"text-breakWord\"\r\n [pTooltip]=\"col.tooltip\"\r\n [tooltipPosition]=\"col.tooltipPosition || 'top'\"\r\n >\r\n {{ rowData[col.field] | formatCell : col.formatType }}\r\n </span>\r\n } }\r\n </td>\r\n } @if (ShowCheckbox) {\r\n <td class=\"text-center\">\r\n <p-tableCheckbox [value]=\"rowData\" class=\"prCheckbox\" />\r\n </td>\r\n }\r\n </tr>\r\n </ng-template>\r\n <ng-template #emptymessage>\r\n <tr>\r\n <td\r\n [attr.colspan]=\"ColumnList.length + (ShowCheckbox ? 1 : 0)\"\r\n class=\"text-center\"\r\n >\r\n {{ \"Nodata\" | term : GlobalTermService.languageCode }}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n <div class=\"prTableToolsBottom\">\r\n @if(TotalRecords !== 0){\r\n @if(ShowRowPerPage){\r\n <div class=\"prTableToolsBottom__itemPerPage\">\r\n {{ \"ItemPerPage\" | term : GlobalTermService.languageCode }}\r\n <p-select\r\n [options]=\"AllowedPageSizes\"\r\n [ngModel]=\"RowsPerPage\"\r\n appendTo=\"body\"\r\n (onChange)=\"OnRowsPerPageChange($event.value)\"\r\n [disabled]=\"TotalRecords === 0\"\r\n />\r\n <label for=\"pageSize\" class=\"control-label\">\r\n {{ 1 + RowsPerPage * (CurrentPage - 1) }} -\r\n {{\r\n CurrentPage * RowsPerPage >= TotalRecords\r\n ? TotalRecords\r\n : CurrentPage * RowsPerPage\r\n }}\r\n {{ \"Of\" | term : GlobalTermService.languageCode }} {{ TotalRecords }}\r\n {{ \"Items\" | term : GlobalTermService.languageCode }}\r\n </label>\r\n </div>\r\n } @if (ShowPagination) {\r\n <intelica-paginator\r\n #paginatorTable\r\n [TotalItems]=\"ListDataFilter.length\"\r\n [ItemsPerPage]=\"RowsPerPage\"\r\n (PageChange)=\"OnPageChange($event)\"\r\n ></intelica-paginator>\r\n }\r\n }\r\n </div>\r\n</div>\r\n","import { ContentChild, Directive, Input, TemplateRef } from \"@angular/core\";\r\n@Directive({ selector: \"column\" })\r\nexport class TreeColumnComponent<T = any> {\r\n @Input() field!: string;\r\n @Input() header!: string;\r\n @Input() sortable: boolean = false;\r\n @Input() width?: string;\r\n @Input() className?: string;\r\n @Input() headerTooltip?: string;\r\n @Input() headerTooltipPosition: \"top\" | \"bottom\" | \"left\" | \"right\" = \"top\";\r\n @Input() tooltip: string = \"\";\r\n @Input() tooltipPosition: \"top\" | \"bottom\" | \"left\" | \"right\" = \"top\";\r\n @Input() showIndex: boolean = false;\r\n @Input() showHeader: boolean = true;\r\n @Input() minWidth?: string;\r\n @Input() isChecboxColumn: boolean = false;\r\n @Input() isExpansionColumn: boolean = false;\r\n @Input() alphaSubEnum: boolean = false;\r\n @ContentChild(TemplateRef) templateRef?: TemplateRef<any>;\r\n @Input() formatType:\r\n | \"string\"\r\n | \"date\"\r\n | \"date2\"\r\n | \"date3\"\r\n | \"time\"\r\n | \"decimal2\"\r\n | \"decimal4\"\r\n | \"tarifa\" = \"string\";\r\n}\r\n@Directive({ selector: \"columnGroup\" })\r\nexport class TreeColumnGroupComponent<T = any> {\r\n @Input() field!: string;\r\n @Input() header!: string;\r\n @Input() sortable: boolean = false;\r\n @Input() minWidth?: string;\r\n @Input() colspan: number = 1;\r\n @Input() rowspan: number = 1;\r\n @Input() level: number = 0;\r\n @Input() formatType:\r\n | \"string\"\r\n | \"date\"\r\n | \"date2\"\r\n | \"date3\"\r\n | \"time\"\r\n | \"decimal2\"\r\n | \"decimal4\"\r\n | \"tarifa\" = \"string\";\r\n}\r\n@Directive({ selector: \"rowResumenComponent\" })\r\nexport class RowResumenTreeComponent<T = any> {\r\n @Input() field!: string;\r\n @Input() className?: string;\r\n @Input() colspan: number = 1;\r\n @Input() rowspan: number = 1;\r\n @ContentChild(TemplateRef) templateRef?: TemplateRef<any>;\r\n\r\n @Input() formatType:\r\n | \"string\"\r\n | \"date\"\r\n | \"date2\"\r\n | \"date3\"\r\n | \"time\"\r\n | \"decimal2\"\r\n | \"decimal4\"\r\n | \"tarifa\" = \"string\";\r\n}\r\n","import { CommonModule, DatePipe } from \"@angular/common\";\r\nimport {\r\n AfterContentInit,\r\n Component,\r\n ContentChild,\r\n ContentChildren,\r\n EventEmitter,\r\n inject,\r\n Input,\r\n OnChanges,\r\n Output,\r\n QueryList,\r\n TemplateRef,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { BadgeModule } from \"primeng/badge\";\r\nimport { CheckboxModule } from \"primeng/checkbox\";\r\nimport { TableModule } from \"primeng/table\";\r\nimport { TooltipModule } from \"primeng/tooltip\";\r\nimport { ButtonModule } from \"primeng/button\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\nimport { SharedService } from \"../../services/shared.service\";\r\nimport { PaginatorComponent } from \"../paginator/paginator.component\";\r\nimport { SearchComponent } from \"../search/search.component\";\r\nimport { SearchInputModel } from \"../search/model/search.model\";\r\nimport { SortFieldModel } from \"../table/model/sort.model\";\r\nimport {\r\n RowResumenTreeComponent,\r\n TreeColumnComponent,\r\n TreeColumnGroupComponent,\r\n} from \"./column.component\";\r\nimport { Select } from \"primeng/select\";\r\nimport { FormatCellPipe } from \"../../pipes/formatCell.pipe\";\r\n\r\n@Component({\r\n selector: \"intelica-tree-table\",\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n SearchComponent,\r\n PaginatorComponent,\r\n Select,\r\n TableModule,\r\n BadgeModule,\r\n TooltipModule,\r\n TermPipe,\r\n CheckboxModule,\r\n FormsModule,\r\n ButtonModule,\r\n FormatCellPipe,\r\n ],\r\n templateUrl: \"./tree-table.component.html\",\r\n providers: [FormatCellPipe, DatePipe],\r\n})\r\nexport class TreeTableComponent<T> implements OnChanges, AfterContentInit {\r\n private readonly SharedService = inject(SharedService);\r\n readonly GlobalTermService = inject(GlobalTermService);\r\n\r\n @Input() ComponentId: string = \"\";\r\n @Input() ListData: T[] = [];\r\n @Input() ClassName: string = \"\";\r\n @Input() groupRowsBy: string = \"\";\r\n @Input() dataKey: string = \"\";\r\n @Input() DefaultSortField: string = \"\";\r\n @Input() DefaultSortOrder: number = 1;\r\n @Input() scrollHeight: string = \"400px\";\r\n @Input() scrollable: boolean = false;\r\n @Input() tableStyle: { [klass: string]: any } = {};\r\n @Input() ShowSearch: boolean = false;\r\n @Input() ShowPagination: boolean = false;\r\n @Input() RowsPerPage: number = 10;\r\n @Input() AllowedPageSizes: number[] = [10, 25, 50, 100];\r\n @Input() ShowCheckbox: boolean = false;\r\n @Input() ShowIndex: boolean = false;\r\n @Input() ShowSearchTooltip: boolean = false;\r\n @Input() ListDataSelected: T[] = [];\r\n @Input() SelectedIdentifier: keyof T | null = null;\r\n @Input() ListSearchOptions: any[] = [];\r\n @Input() ShowRowPerPage: boolean = true;\r\n @Input() ExpandedColumnIdent: string = \"\";\r\n @Input() PropagateHeaderToChildren: boolean = false;\r\n @Input() ShowHeaderTooltips: boolean = true;\r\n\r\n @Output() EmitSelectedItem = new EventEmitter<T[]>();\r\n @Output() EmitListDataFilter = new EventEmitter<T[]>();\r\n @Output() EmitSearchEvent = new EventEmitter<SearchInputModel>();\r\n @Output() EmitSortEvent = new EventEmitter<SortFieldModel[]>();\r\n @Output() EmitCheckboxHeaderEvent = new EventEmitter<void>();\r\n\r\n @ContentChildren(TreeColumnComponent)\r\n Columns!: QueryList<TreeColumnComponent>;\r\n @ContentChildren(TreeColumnGroupComponent)\r\n ColumnGroups!: QueryList<TreeColumnGroupComponent>;\r\n @ContentChildren(RowResumenTreeComponent)\r\n RowResumenGroups!: QueryList<RowResumenTreeComponent>;\r\n @ContentChild(\"additionalTemplate\") AdditionalTemplate?: TemplateRef<any>;\r\n @ContentChild(\"additionalCentralTemplate\")\r\n AdditionalCentralTemplate?: TemplateRef<any>;\r\n @ContentChild(\"additionalExtendedTemplate\")\r\n AdditionalExtendedTemplate?: TemplateRef<any>;\r\n\r\n @ViewChild(\"paginatorTable\") PaginatorTable?: PaginatorComponent;\r\n @ViewChild(\"searchTable\") SearchTable?: SearchComponent;\r\n\r\n ListDataFilter: T[] = [];\r\n ListDataTable: T[] = [];\r\n ListDataSelectedTemp: T[] = [];\r\n ColumnList: TreeColumnComponent[] = [];\r\n ColumnGroupList: TreeColumnGroupComponent[] = [];\r\n RowResumenList: RowResumenTreeComponent[] = [];\r\n MaxLevel: number = 0;\r\n Levels: number[] = [];\r\n SortOrder: number = 1;\r\n SortField: keyof T | null = null;\r\n TotalRecords: number = 0;\r\n CurrentPage: number = 1;\r\n SearchInput: SearchInputModel = {} as SearchInputModel;\r\n ListSearchOptionsSimple: { id: number; value: string }[] = [];\r\n private _isTableDisabled = false;\r\n private _pendingUncheck = false;\r\n HeaderState: Record<string, { checked: boolean; indeterminate: boolean }> =\r\n {};\r\n SelectedItems: number = 0;\r\n TotalItems: number = 0;\r\n\r\n LoadSearchOptions() {\r\n this.ListSearchOptionsSimple = this.ListSearchOptions.map((item) => ({\r\n id: item.id,\r\n value: item.name,\r\n }));\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.LoadSearchOptions();\r\n this.ListDataFilter = [...this.ListData];\r\n if (!this.SortField && this.DefaultSortField) {\r\n this.SortField = this.DefaultSortField as keyof T;\r\n this.SortOrder = this.DefaultSortOrder;\r\n }\r\n this.ExecuteSearch({});\r\n this.ValidateSelect();\r\n }\r\n\r\n ngAfterContentInit() {\r\n this.ColumnList = this.Columns?.toArray() ?? [];\r\n this.ColumnGroupList = this.ColumnGroups?.toArray() ?? [];\r\n this.RowResumenList = this.RowResumenGroups?.toArray() ?? [];\r\n\r\n const levels = this.ColumnGroupList.map((c) => c.level);\r\n this.MaxLevel = levels.length ? Math.max(...levels) + 1 : 1;\r\n this.Levels = Array.from({ length: this.MaxLevel }, (_, i) => i);\r\n\r\n this.ColumnList.filter((c) => c.isChecboxColumn).forEach((c) => {\r\n if (!this.HeaderState[c.field]) {\r\n this.HeaderState[c.field] = { checked: false, indeterminate: false };\r\n }\r\n });\r\n\r\n if (this._isTableDisabled && this._pendingUncheck) {\r\n this.ListDataSelectedTemp = [];\r\n this._pendingUncheck = false;\r\n this.ExecuteSearch({});\r\n } else {\r\n this.refreshAllHeaderStates();\r\n }\r\n }\r\n\r\n OnSort(field: string) {\r\n if (this.SortField === field) {\r\n this.SortOrder *= -1;\r\n } else {\r\n this.SortField = field as keyof T;\r\n this.SortOrder = 1;\r\n }\r\n this.SortPages();\r\n }\r\n\r\n OnPageChange(pageIndex: number) {\r\n this.CurrentPage = pageIndex;\r\n this.UpdatePages();\r\n }\r\n\r\n SortPages() {\r\n const order = this.SortOrder === 1 ? \"asc\" : \"desc\";\r\n const field = this.SortField as keyof T;\r\n const sampleValue = this.ListDataFilter.find(\r\n (item) => item[field] !== null && item[field] !== undefined\r\n )?.[field];\r\n if (typeof sampleValue === \"number\") {\r\n this.ListDataFilter = this.SharedService.SortRecursiveNumber(\r\n [...this.ListDataFilter],\r\n field,\r\n order\r\n );\r\n } else {\r\n this.ListDataFilter = this.SharedService.SortRecursivePrimeNg(\r\n [...this.ListDataFilter],\r\n field,\r\n order\r\n );\r\n }\r\n this.UpdatePages();\r\n }\r\n\r\n ExecuteSearch(event: any): void {\r\n if (event?.fieldText !== undefined && event?.fieldText !== \"\")\r\n this.SearchInput = event;\r\n this.ListDataFilter = [...this.ListData];\r\n if (\r\n this.SearchInput?.searchText !== undefined &&\r\n this.SearchInput?.searchText !== \"\" &&\r\n this.ListSearchOptions.length > 0\r\n ) {\r\n let Search = this.SearchInput.searchText?.trim()?.toLowerCase();\r\n let searchOption = this.ListSearchOptions.find(\r\n (item) => item.id === this.SearchInput.fieldId\r\n );\r\n let searchValue = searchOption?.field || \"code\";\r\n let searchOnlyParent = searchOption?.searchOnlyParent ?? true;\r\n this.ListDataFilter = this.SharedService.GetFilteredSearchKeyRecursive(\r\n [...this.ListData],\r\n searchValue,\r\n Search,\r\n this.SearchInput.operatorId,\r\n searchOnlyParent\r\n );\r\n if (this.PaginatorTable) {\r\n this.PaginatorTable.CurrentPage = 1;\r\n this.CurrentPage = 1;\r\n }\r\n }\r\n this.SortPages();\r\n }\r\n\r\n public recomputeHeaderState(field: string) {\r\n const allRows = this.PropagateHeaderToChildren\r\n ? this.ListDataFilter.flatMap((r: any) =>\r\n Array.isArray(r.children) ? [r, ...r.children] : [r]\r\n )\r\n : this.ListDataFilter;\r\n\r\n const total = allRows.length;\r\n if (total === 0) {\r\n this.HeaderState[field] = { checked: false, indeterminate: false };\r\n return;\r\n }\r\n\r\n const checked = allRows.filter((r: any) => r[field] === true).length;\r\n\r\n this.HeaderState[field] = {\r\n checked: checked === total,\r\n indeterminate: checked > 0 && checked < total,\r\n };\r\n }\r\n\r\n public recomputeRowSelectionState() {\r\n const all = this.flattenRows(this.ListDataFilter);\r\n this.TotalItems = all.length;\r\n\r\n const selIds = this.toIdSet(this.ListDataSelected || []);\r\n this.SelectedItems = all.filter((r) => selIds.has(this.getId(r))).length;\r\n }\r\n\r\n onBodyCheckboxChange(field: string, row?: any) {\r\n this.recomputeHeaderState(field);\r\n }\r\n\r\n private refreshAllHeaderStates() {\r\n this.ColumnList.filter((c) => c.isChecboxColumn).forEach((c) =>\r\n this.recomputeHeaderState(c.field)\r\n );\r\n }\r\n\r\n OnHeaderCheckboxChange(checked: boolean, field: string) {\r\n let allRows: any[] = [];\r\n\r\n this.ListDataFilter.forEach((r: any) => {\r\n r[field] = checked;\r\n\r\n if (this.PropagateHeaderToChildren && Array.isArray(r.children)) {\r\n r.children.forEach((child: any) => {\r\n child[field] = checked;\r\n });\r\n }\r\n });\r\n\r\n allRows = this.PropagateHeaderToChildren\r\n ? this.ListDataFilter.flatMap((r: any) =>\r\n Array.isArray(r.children) ? [r, ...r.children] : [r]\r\n )\r\n : this.ListDataFilter;\r\n\r\n this.recomputeRowSelectionState();\r\n\r\n this.HeaderState[field] = { checked, indeterminate: false };\r\n this.UpdatePages();\r\n this.EmitCheckboxHeaderEvent.emit();\r\n }\r\n\r\n IsInderteminate(column: string) {\r\n const rowsChek = this.ListData.filter(\r\n (item) => (item as Record<string, boolean>)[column]\r\n ).length;\r\n const element = [...document.querySelectorAll(\"[data-check]\")].find(\r\n (x) => x.getAttribute(\"data-check\") == column\r\n );\r\n if (element == undefined) return;\r\n if (rowsChek > 0 && rowsChek < this.ListData.length)\r\n element.setAttribute(\"class\", \"prCheckbox--indeterminate\");\r\n else element.removeAttribute(\"class\");\r\n }\r\n\r\n getParentDisplayIndex(rowData: any): number {\r\n const list = this.ListDataTable?.length\r\n ? this.ListDataTable\r\n : this.ListDataFilter;\r\n const localIdx = list.indexOf(rowData);\r\n if (localIdx < 0) return 0;\r\n\r\n const pageOffset = this.ShowPagination\r\n ? (this.CurrentPage - 1) * this.RowsPerPage\r\n : 0;\r\n return localIdx + 1 + pageOffset;\r\n }\r\n\r\n getLetter(index: number): string {\r\n const letters = \"abcdefghijklmnopqrstuvwxyz\";\r\n return letters[index];\r\n }\r\n\r\n getNumber(index: number): string {\r\n return (index + 1).toString();\r\n }\r\n\r\n private getId = (x: T) =>\r\n this.SelectedIdentifier\r\n ? x[this.SelectedIdentifier]\r\n : (x as any)[this.dataKey];\r\n\r\n private flattenRows = (rows: any[]) =>\r\n this.PropagateHeaderToChildren\r\n ? rows.flatMap((r: any) =>\r\n Array.isArray(r.children) ? [r, ...r.children] : [r]\r\n )\r\n : rows;\r\n\r\n private toIdSet = (items: T[]) => new Set(items.map(this.getId));\r\n\r\n get resolvedDataKey(): string {\r\n return (this.SelectedIdentifier as string) || this.dataKey;\r\n }\r\n\r\n UpdatePages() {\r\n if (this.ShowPagination) {\r\n this.TotalRecords = this.ListDataFilter.length;\r\n const start = (this.CurrentPage - 1) * this.RowsPerPage;\r\n const end = start + this.RowsPerPage;\r\n this.ListDataTable = this.ListDataFilter.slice(start, end);\r\n } else {\r\n this.ListDataTable = this.ListDataFilter;\r\n }\r\n this.EmitSearchValues();\r\n }\r\n\r\n ValidateSelect() {\r\n if (!this.SelectedIdentifier && this.ShowCheckbox) {\r\n this.ShowCheckbox = false;\r\n return;\r\n }\r\n const selectedIds = new Set(\r\n this.ListDataSelected.map(\r\n (item) => item[this.SelectedIdentifier as keyof T]\r\n )\r\n );\r\n this.ListDataSelectedTemp = this.ListData.filter((item) =>\r\n selectedIds.has(item[this.SelectedIdentifier as keyof T])\r\n );\r\n }\r\n\r\n SelectAll(event: any) {\r\n if (!this.SelectedIdentifier && !this.dataKey && this.ShowCheckbox) return;\r\n\r\n const all = this.flattenRows(this.ListDataFilter);\r\n const allIds = this.toIdSet(all);\r\n\r\n const curr = [...(this.ListDataSelected || [])];\r\n const currIds = this.toIdSet(curr);\r\n\r\n if (event.checked) {\r\n const toAdd = all.filter((r) => !currIds.has(this.getId(r)));\r\n this.ListDataSelected = curr.concat(toAdd);\r\n } else {\r\n this.ListDataSelected = curr.filter((r) => !allIds.has(this.getId(r)));\r\n }\r\n\r\n this.ListDataSelectedTemp = [...this.ListDataSelected];\r\n\r\n this.recomputeRowSelectionState();\r\n this.EmitSelectedItem.emit(this.ListDataSelectedTemp);\r\n }\r\n\r\n OnRowSelect(event: any) {\r\n if (!this.SelectedIdentifier && !this.dataKey && this.ShowCheckbox) return;\r\n\r\n const row = event.data as any;\r\n const hasChildren =\r\n this.PropagateHeaderToChildren &&\r\n Array.isArray(row.children) &&\r\n row.children.length;\r\n\r\n const curr = new Map(this.ListDataSelected.map((x) => [this.getId(x), x]));\r\n\r\n curr.set(this.getId(row), row);\r\n\r\n if (hasChildren) {\r\n for (const child of row.children) {\r\n curr.set(this.getId(child), child);\r\n }\r\n }\r\n\r\n this.ListDataSelected = Array.from(curr.values());\r\n this.ListDataSelectedTemp = [...this.ListDataSelected];\r\n\r\n this.recomputeRowSelectionState();\r\n this.EmitSelectedItem.emit(this.ListDataSelectedTemp);\r\n }\r\n\r\n OnRowUnselect(event: any) {\r\n if (!this.SelectedIdentifier && !this.dataKey && this.ShowCheckbox) return;\r\n\r\n const row = event.data as any;\r\n const removeIds = new Set<any>([this.getId(row)]);\r\n\r\n if (this.PropagateHeaderToChildren && Array.isArray(row.children)) {\r\n for (const child of row.children) {\r\n removeIds.add(this.getId(child));\r\n }\r\n }\r\n\r\n this.ListDataSelected = (this.ListDataSelected || []).filter(\r\n (x) => !removeIds.has(this.getId(x))\r\n );\r\n this.ListDataSelectedTemp = [...this.ListDataSelected];\r\n\r\n this.recomputeRowSelectionState();\r\n this.EmitSelectedItem.emit(this.ListDataSelectedTemp);\r\n }\r\n\r\n ResetTable() {\r\n if (this.PaginatorTable) {\r\n this.PaginatorTable.CurrentPage = 1;\r\n this.CurrentPage = 1;\r\n }\r\n if (this.SearchTable) {\r\n this.SearchTable.ClearSearchText();\r\n this.SearchInput.fieldText = \"\";\r\n }\r\n this.ExecuteSearch({});\r\n }\r\n\r\n EmitSearchValues() {\r\n this.EmitListDataFilter.emit(this.ListDataFilter);\r\n this.EmitSearchEvent.emit(this.SearchInput);\r\n this.EmitSortEvent.emit([\r\n {\r\n sortOrder: this.SortOrder,\r\n sortField: this.SortField?.toString() ?? \"\",\r\n },\r\n ]);\r\n }\r\n\r\n OnRowsPerPageChange(value: number) {\r\n this.RowsPerPage = value;\r\n this.ResetTable();\r\n }\r\n}\r\n","<div class=\"prTable\">\r\n <div class=\"prTableTools\">\r\n <div class=\"prTableTools__new prTableTools__new--left\">\r\n @if (AdditionalTemplate) {\r\n <ng-container *ngTemplateOutlet=\"AdditionalTemplate\"></ng-container>\r\n }\r\n </div>\r\n\r\n @if (ShowSearch) {\r\n <intelica-search\r\n #searchTable\r\n [ComponentId]=\"ComponentId + 'Search'\"\r\n (OnSearch)=\"ExecuteSearch($event)\"\r\n [SearchFieldOptions]=\"ListSearchOptionsSimple\"\r\n [SearchOnKeyup]=\"false\"\r\n [SimpleSearchInput]=\"false\"\r\n [ShowTooltip]=\"ShowSearchTooltip\"\r\n ></intelica-search>\r\n } @if (AdditionalCentralTemplate) {\r\n <div class=\"prTableTools__new prTableTools__new--right\">\r\n <ng-container\r\n *ngTemplateOutlet=\"AdditionalCentralTemplate\"\r\n ></ng-container>\r\n </div>\r\n }\r\n </div>\r\n @if (AdditionalExtendedTemplate) {\r\n <div class=\"prTableTools justify-content-start\">\r\n <ng-container *ngTemplateOutlet=\"AdditionalExtendedTemplate\"></ng-container>\r\n </div>\r\n\r\n } @if (ShowCheckbox) {\r\n <div class=\"justify-content-start prTableToolsBottom\">\r\n <span\r\n >{{ SelectedItems }}\r\n {{ \"Of\" | term : GlobalTermService.languageCode }}\r\n {{ TotalItems }}\r\n {{ \"Selected Items\" | term : GlobalTermService.languageCode }}\r\n </span>\r\n </div>\r\n }\r\n <p-table\r\n class=\"prTableBasic\"\r\n [value]=\"ListDataTable\"\r\n [ngClass]=\"ClassName\"\r\n responsiveLayout=\"scroll\"\r\n [(selection)]=\"ListDataSelected\"\r\n (onHeaderCheckboxToggle)=\"SelectAll($event)\"\r\n (onRowSelect)=\"OnRowSelect($event)\"\r\n (onRowUnselect)=\"OnRowUnselect($event)\"\r\n [groupRowsBy]=\"groupRowsBy\"\r\n [dataKey]=\"resolvedDataKey\"\r\n [sortField]=\"DefaultSortField\"\r\n [scrollable]=\"scrollable\"\r\n [scrollHeight]=\"scrollable ? scrollHeight : 'auto'\"\r\n [tableStyle]=\"tableStyle\"\r\n [sortOrder]=\"SortOrder\"\r\n >\r\n <ng-template pTemplate=\"header\">\r\n @for (level of Levels; track $index) {\r\n <tr>\r\n @for (col of ColumnGroupList; track $index) { @if (col.level === level)\r\n {\r\n <th\r\n [attr.colspan]=\"col.colspan\"\r\n [attr.rowspan]=\"col.rowspan\"\r\n [pSortableColumn]=\"col.sortable ? col.field : ''\"\r\n [style.min-width]=\"col.minWidth\"\r\n (click)=\"col.sortable && OnSort(col.field)\"\r\n >\r\n <div>\r\n <span [pTooltip]=\"ShowHeaderTooltips ? col.header : undefined\">\r\n {{ col.header }}\r\n </span>\r\n <p-sortIcon *ngIf=\"col.sortable\" [field]=\"col.field\"></p-sortIcon>\r\n </div>\r\n </th>\r\n } } @if (ShowCheckbox && level === 0 && ColumnGroupList.length != 0) {\r\n <th\r\n class=\"text-center\"\r\n style=\"width: 4%\"\r\n [attr.rowspan]=\"MaxLevel === 1 ? 2 : MaxLevel\"\r\n >\r\n <p-tableHeaderCheckbox\r\n class=\"prCheckbox\"\r\n [ngClass]=\"{\r\n 'prCheckbox--indeterminate':\r\n ListDataSelectedTemp.length > 0 &&\r\n ListDataSelectedTemp.length < ListDataFilter.length\r\n }\"\r\n />\r\n </th>\r\n }\r\n </tr>\r\n }\r\n\r\n <tr>\r\n @for (col of ColumnList; track $index) { @if(col.showHeader) {\r\n <th\r\n [class]=\"col.className\"\r\n [pSortableColumn]=\"\r\n !col.isChecboxColumn && col.sortable ? col.field : ''\r\n \"\r\n [style.width]=\"col.width\"\r\n [style.min-width]=\"col.minWidth\"\r\n (click)=\"!col.isChecboxColumn && col.sortable && OnSort(col.field)\"\r\n >\r\n <div>\r\n <span\r\n [pTooltip]=\"\r\n ShowHeaderTooltips && col.headerTooltip?.trim()\r\n ? col.headerTooltip\r\n : undefined\r\n \"\r\n [tooltipPosition]=\"col.headerTooltipPosition || 'top'\"\r\n >\r\n {{ col.header }}\r\n </span>\r\n\r\n @if (!col.showIndex) { @if (col.isChecboxColumn) {\r\n <br />\r\n <p-checkbox\r\n class=\"prCheckbox\"\r\n [binary]=\"true\"\r\n (click)=\"$event.stopPropagation()\"\r\n [(ngModel)]=\"HeaderState[col.field].checked\"\r\n (ngModelChange)=\"OnHeaderCheckboxChange($event, col.field)\"\r\n [attr.data-check]=\"col.field\"\r\n [ngClass]=\"{\r\n 'prCheckbox--indeterminate':\r\n HeaderState[col.field].indeterminate\r\n }\"\r\n ></p-checkbox>\r\n } @else {\r\n <p-sortIcon *ngIf=\"col.sortable\" [field]=\"col.field\"></p-sortIcon>\r\n } }\r\n </div>\r\n </th>\r\n } } @if (ShowCheckbox && ColumnGroupList.length == 0) {\r\n <th class=\"text-center\" style=\"width: 4%\">\r\n <p-tableHeaderCheckbox\r\n class=\"prCheckbox\"\r\n [ngClass]=\"{\r\n 'prCheckbox--indeterminate':\r\n ListDataSelectedTemp.length > 0 &&\r\n ListDataSelectedTemp.length < ListDataFilter.length\r\n }\"\r\n />\r\n </th>\r\n }\r\n </tr>\r\n\r\n @if (ListDataFilter.length > 0) {\r\n <tr class=\"fixedRow\">\r\n @for (col of RowResumenList; track $index) {\r\n <td\r\n [ngClass]=\"col.className\"\r\n [attr.colspan]=\"col.colspan\"\r\n [attr.rowspan]=\"col.rowspan\"\r\n >\r\n @if (col.templateRef) {\r\n <span\r\n ><ng-container *ngTemplateOutlet=\"col.templateRef\"></ng-container\r\n ></span>\r\n } @else {\r\n <ng-template #defaultContent></ng-template>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </ng-template>\r\n\r\n <ng-template\r\n pTemplate=\"body\"\r\n let-rowData\r\n let-rowIndex=\"rowIndex\"\r\n let-expanded=\"expanded\"\r\n >\r\n <tr>\r\n @for (col of ColumnList; track $index) {\r\n <td [ngClass]=\"col.className\">\r\n @if (col.showIndex) {\r\n {{ rowIndex + 1 + (CurrentPage - 1) * RowsPerPage }}\r\n } @else if ((col.field === (ExpandedColumnIdent?.trim() || 'name')) &&\r\n (rowData.children?.length ?? 0) > 0 ) {\r\n <div class=\"prTable__expandToggleRow\">\r\n <p-button\r\n [pRowToggler]=\"rowData\"\r\n class=\"prButton prButton--icon prButton--iconBlue\"\r\n >\r\n <i\r\n [class]=\"\r\n expanded ? 'icon icon-collapse-rows' : 'icon icon-expand-rows'\r\n \"\r\n ></i>\r\n </p-button>\r\n <span\r\n class=\"text-breakWord\"\r\n pTooltip=\"{{ col.tooltip }}\"\r\n tooltipPosition=\"{{ col.tooltipPosition }}\"\r\n >\r\n {{ rowData[col.field] | formatCell : col.formatType }}\r\n </span>\r\n </div>\r\n } @else { @if (col.templateRef) {\r\n <ng-container\r\n *ngTemplateOutlet=\"col.templateRef; context: { $implicit: rowData }\"\r\n ></ng-container>\r\n } @else if(col.isChecboxColumn){\r\n <p-checkbox\r\n [binary]=\"true\"\r\n [(ngModel)]=\"rowData[col.field]\"\r\n (onChange)=\"onBodyCheckboxChange(col.field)\"\r\n ></p-checkbox>\r\n } @else {\r\n <span\r\n class=\"text-breakWord\"\r\n pTooltip=\"{{ col.tooltip }}\"\r\n tooltipPosition=\"{{ col.tooltipPosition }}\"\r\n >\r\n {{ rowData[col.field] | formatCell : col.formatType }}\r\n </span>\r\n } }\r\n </td>\r\n } @if (ShowCheckbox) {\r\n <td class=\"text-center\">\r\n <p-tableCheckbox [value]=\"rowData\" class=\"prCheckbox\" />\r\n </td>\r\n }\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"expandedrow\" let-rowData let-rowIndex=\"rowIndex\">\r\n <ng-container *ngIf=\"rowData.children?.length\">\r\n <tr\r\n *ngFor=\"let childRow of rowData.children; let i = index\"\r\n class=\"subRow\"\r\n >\r\n @for (col of ColumnList; track $index) {\r\n <td [ngClass]=\"col.className\">\r\n @if (col.showIndex && $index === 0) {\r\n <ng-container\r\n *ngIf=\"\r\n col.alphaSubEnum && rowData.children.length <= 26;\r\n else numericEnum\r\n \"\r\n >\r\n {{ getParentDisplayIndex(rowData) + \".\" + getLetter(i) }}\r\n </ng-container>\r\n <ng-template #numericEnum>\r\n {{ getParentDisplayIndex(rowData) + \".\" + getNumber(i) }}\r\n </ng-template>\r\n } @else if (col.templateRef) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n col.templateRef;\r\n context: { $implicit: childRow }\r\n \"\r\n ></ng-container>\r\n } @else if (col.isChecboxColumn) {\r\n <p-checkbox\r\n [binary]=\"true\"\r\n [(ngModel)]=\"childRow[col.field]\"\r\n (onChange)=\"onBodyCheckboxChange(col.field, childRow)\"\r\n ></p-checkbox>\r\n } @else {\r\n <span\r\n class=\"text-breakWord\"\r\n pTooltip=\"{{ col.tooltip }}\"\r\n tooltipPosition=\"{{ col.tooltipPosition }}\"\r\n [class.prTable__expandIdentText]=\"\r\n col.field === (ExpandedColumnIdent || 'name')\r\n \"\r\n >\r\n {{ childRow[col.field] | formatCell : col.formatType }}\r\n </span>\r\n }\r\n </td>\r\n } @if (ShowCheckbox) {\r\n <td class=\"text-center\">\r\n <p-tableCheckbox [value]=\"childRow\" class=\"prCheckbox\" />\r\n </td>\r\n }\r\n </tr>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #emptymessage>\r\n <tr>\r\n <td\r\n [attr.colspan]=\"ColumnList.length + (ShowCheckbox ? 1 : 0)\"\r\n class=\"text-center\"\r\n >\r\n {{ \"Nodata\" | term : GlobalTermService.languageCode }}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n\r\n <div class=\"prTableToolsBottom\">\r\n @if(TotalRecords !== 0){ @if (ShowRowPerPage) {\r\n <div class=\"prTableToolsBottom__itemPerPage\">\r\n {{ \"ItemPerPage\" | term : GlobalTermService.languageCode }}\r\n <p-select\r\n [options]=\"AllowedPageSizes\"\r\n [ngModel]=\"RowsPerPage\"\r\n appendTo=\"body\"\r\n (onChange)=\"OnRowsPerPageChange($event.value)\"\r\n />\r\n <label for=\"pageSize\" class=\"control-label\">\r\n {{ 1 + RowsPerPage * (CurrentPage - 1) }} -\r\n {{\r\n CurrentPage * RowsPerPage >= TotalRecords\r\n ? TotalRecords\r\n : CurrentPage * RowsPerPage\r\n }}\r\n {{ \"Of\" | term : GlobalTermService.languageCode }} {{ TotalRecords }}\r\n {{ \"Items\" | term : GlobalTermService.languageCode }}\r\n </label>\r\n </div>\r\n } @if (ShowPagination) {\r\n <intelica-paginator\r\n #paginatorTable\r\n [TotalItems]=\"ListDataFilter.length\"\r\n [ItemsPerPage]=\"RowsPerPage\"\r\n (PageChange)=\"OnPageChange($event)\"\r\n >\r\n </intelica-paginator>\r\n } }\r\n </div>\r\n</div>\r\n","import { ContentChild, Directive, Input, TemplateRef } from \"@angular/core\";\r\n@Directive({ selector: \"column\" })\r\nexport class MatrixColumnComponent<T = any> {\r\n\t@Input() field!: string;\r\n\t@Input() header!: string;\r\n\t@Input() width?: string;\r\n\t@Input() className?: string;\r\n\t@Input() headerTooltip?: string;\r\n\t@Input() headerTooltipPosition: \"top\" | \"bottom\" | \"left\" | \"right\" = \"top\";\r\n\t@Input() tooltip: string = \"\";\r\n\t@Input() tooltipPosition: \"top\" | \"bottom\" | \"left\" | \"right\" = \"top\";\r\n\t@Input() showIndex: boolean = false;\r\n\t@Input() showHeader: boolean = true;\r\n\t@Input() minWidth?: string;\r\n\t@ContentChild(TemplateRef) templateRef?: TemplateRef<any>;\r\n}\r\n@Directive({ selector: \"columnGroup\" })\r\nexport class MatrixColumnGroupComponent<T = any> {\r\n\t@Input() field!: string;\r\n\t@Input() header!: string;\r\n\t@Input() sortable: boolean = false;\r\n\t@Input() width?: string;\r\n\t@Input() className?: string;\r\n\t@Input() headerTooltip?: string = \"\";\r\n\t@Input() headerTooltipPosition: \"top\" | \"bottom\" | \"left\" | \"right\" = \"top\";\r\n\t@Input() minWidth?: string;\r\n\t@Input() colspan: number = 1;\r\n\t@Input() rowspan: number = 1;\r\n\t@Input() level: number = 0;\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { AfterContentInit, Component, ContentChildren, inject, Input, OnChanges, QueryList } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { BadgeModule } from \"primeng/badge\";\r\nimport { CheckboxModule } from \"primeng/checkbox\";\r\nimport { TableModule } from \"primeng/table\";\r\nimport { TooltipModule } from \"primeng/tooltip\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\nimport { SharedService } from \"../../services/shared.service\";\r\nimport { MatrixColumnComponent, MatrixColumnGroupComponent } from \"./column.component\";\r\nimport { ButtonModule } from \"primeng/button\";\r\n\r\n@Component({\r\n\tselector: \"intelica-matrix-table\",\r\n\tstandalone: true,\r\n\timports: [CommonModule, TableModule, BadgeModule, TooltipModule, TermPipe, CheckboxModule, FormsModule, ButtonModule],\r\n\ttemplateUrl: \"./matrix-table.component.html\",\r\n})\r\nexport class MatrixTableComponent<T> implements OnChanges, AfterContentInit {\r\n\tprivate readonly SharedService = inject(SharedService);\r\n\treadonly GlobalTermService = inject(GlobalTermService);\r\n\t@Input() ComponentId: string = \"\";\r\n\t@Input() ListData: T[] = [];\r\n\t@Input() ShowIndex: boolean = false;\r\n\t@Input() ClassName: string = \"\";\r\n\t@Input() dataKey: string = \"\";\r\n\t@Input() scrollHeight: string = \"400px\";\r\n\t@Input() scrollable: boolean = false;\r\n\t@Input() tableStyle: { [klass: string]: any } = {};\r\n\t@ContentChildren(MatrixColumnComponent) Columns!: QueryList<MatrixColumnComponent>;\r\n\t@ContentChildren(MatrixColumnGroupComponent) ColumnGroups!: QueryList<MatrixColumnGroupComponent>;\r\n\tColumnList: MatrixColumnComponent[] = [];\r\n\tColumnGroupList: MatrixColumnGroupComponent[] = [];\r\n\tMaxLevel: number = 0;\r\n\tLevels: number[] = [];\r\n\tngOnChanges(): void {}\r\n\tngAfterContentInit() {\r\n\t\tthis.ColumnList = this.Columns.toArray();\r\n\t\tthis.ColumnGroupList = this.ColumnGroups.toArray();\r\n\t\tthis.MaxLevel = Math.max(...this.ColumnGroupList.map(c => c.level)) + 1;\r\n\t\tthis.Levels = Array.from({ length: this.MaxLevel }, (_, i) => i);\r\n\t}\r\n}\r\n","<div class=\"prTable prTable--blueLeft\">\r\n\t<p-table\r\n\t\tclass=\"prTableBasic\"\r\n\t\t[ngClass]=\"ClassName\"\r\n\t\t[value]=\"ListData\"\r\n\t\tresponsiveLayout=\"scroll\"\r\n\t\t[sortOrder]=\"-1\"\r\n\t\tdataKey=\"dataKey\"\r\n\t\t[scrollable]=\"scrollable\"\r\n\t\t[scrollHeight]=\"scrollable ? scrollHeight : 'auto'\"\r\n\t\t[tableStyle]=\"tableStyle\"\r\n\t>\r\n\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t@for (level of Levels; track $index) {\r\n\r\n\t\t\t<tr>\r\n\t\t\t\t@for (col of ColumnGroupList; track $index) { @if (col.level === level) {\r\n\t\t\t\r\n\t\t\t\t<th [ngClass]=\"col.className\" [attr.colspan]=\"col.colspan\" [attr.rowspan]=\"col.rowspan\"\r\n\t\t\t\t\t[style.min-width]=\"col.minWidth\">\r\n\t\t\t\t\t<div>\r\n\t\t\t\t\t\t<span [pTooltip]=\"col.headerTooltip?.trim() ? col.headerTooltip : undefined\"\r\n\t\t\t\t\t\t\t[tooltipPosition]=\"col.headerTooltipPosition || 'top'\">\r\n\t\t\t\t\t\t\t{{ col.header }}\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</th>\r\n\t\t\t\r\n\t\t\t\t} }\r\n\t\t\t</tr>\r\n\t\t\t}\r\n\t\t\t<tr>\r\n\t\t\t\t@for (col of ColumnList; track $index) { @if(col.showHeader ){\r\n\t\t\t\t<th [class]=\"col.className\" [style.width]=\"col.width\" [style.min-width]=\"col.minWidth\">\r\n\t\t\t\t\t<div>\r\n\t\t\t\t\t\t<span [pTooltip]=\"col.headerTooltip?.trim() ? col.headerTooltip : undefined\"\r\n\t\t\t\t\t\t\t[tooltipPosition]=\"col.headerTooltipPosition || 'top'\">\r\n\t\t\t\t\t\t\t{{ col.header }}\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t</th>\r\n\t\t\t\t} }\r\n\t\t\t</tr>\r\n\t\t</ng-template>\r\n\t\t<ng-template pTemplate=\"body\" let-rowData let-rowIndex=\"rowIndex\">\r\n\t\t\t<tr>\r\n\t\t\t\t@for (col of ColumnList; track col; let i = $index) {\r\n\t\t\t\t<td [ngClass]=\"col.className\" [class.left-header]=\"i === 0\">\r\n\t\t\t\t\t@if (col.templateRef) {\r\n\t\t\t\t\t<ng-container *ngTemplateOutlet=\"col.templateRef; context: { $implicit: rowData }\"></ng-container>\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t<span class=\"text-breakWord\" [pTooltip]=\"col.tooltip\" [tooltipPosition]=\"col.tooltipPosition || 'top'\">\r\n\t\t\t\t\t\t\t{{ rowData[col.field] ?? \"-\" }}\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t}\r\n\t\t\t\t</td>\r\n\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t\t<ng-container *ngIf=\"rowData.children?.length > 0\">\r\n\t\t\t\t<tr *ngFor=\"let childRow of rowData.children\">\r\n\t\t\t\t\t<td *ngFor=\"let col of ColumnList; let i = index\" [ngClass]=\"col.className\" [class.child-cell-padding]=\"i === 0\" [class.left-header]=\"i === 0\">\r\n\t\t\t\t\t\t{{ childRow[col.field] }}\r\n\t\t\t\t\t</td>\r\n\t\t\t\t</tr>\r\n\t\t\t</ng-container>\r\n\t\t</ng-template>\r\n\t\t<ng-template #emptymessage>\r\n\t\t\t<tr>\r\n\t\t\t\t<td [attr.colspan]=\"ColumnList.length\" class=\"text-center\">\r\n\t\t\t\t\t{{ \"Nodata\" | term : GlobalTermService.languageCode }}\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t</ng-template>\r\n\t</p-table>\r\n</div>\r\n","import { ContentChild, Directive, EventEmitter, Input, Output } from \"@angular/core\";\r\n\r\n@Directive({\r\n\tselector: \"action\",\r\n})\r\nexport class ActionDirective {\r\n\t/**\r\n\t * Nombre de la acción.\r\n\t * @type {string}\r\n\t */\r\n\t@Input() name: string = \"\";\r\n\r\n\t/**\r\n\t * Indica si los botones asociados a la acción deben ocultarse.\r\n\t * @type {boolean}\r\n\t * @default false\r\n\t */\r\n\t@Input() hideButtons: boolean = false;\r\n\r\n\t/**\r\n\t * Texto que se mostrará en el botón de aplicar.\r\n\t * @type {string}\r\n\t * @default 'Apply'\r\n\t */\r\n\t@Input() textApply: string = \"Apply\";\r\n\r\n\t/**\r\n\t * Texto que se mostrará en el botón de cancelar.\r\n\t * @type {string}\r\n\t * @default 'Clear'\r\n\t */\r\n\t@Input() textCancel: string = \"Clear\";\r\n\r\n\t/**\r\n\t * Indica si detener la propagación de eventos al hacer clic en la acción.\r\n\t * @type {boolean}\r\n\t * @default false\r\n\t */\r\n\t@Input() stopPropagation: boolean = false;\r\n\r\n\t/**\r\n\t * Evento emitido cuando se aplica la acción.\r\n\t * @type {EventEmitter<any>}\r\n\t */\r\n\t@Output() onApply: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n\t/**\r\n\t * Evento emitido cuando se cancela la acción.\r\n\t * @type {EventEmitter<any>}\r\n\t */\r\n\t@Output() onCancel: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n\t/**\r\n\t * Evento emitido cuando se hace clic en la acción.\r\n\t * @type {EventEmitter<any>}\r\n\t */\r\n\t@Output() onClick: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n\t/**\r\n\t * Referencia al contenido proporcionado por la plantilla.\r\n\t * @type {any}\r\n\t */\r\n\t@ContentChild(\"template\") template!: any;\r\n\r\n\t/**\r\n\t * Indica si la acción está activa o no.\r\n\t * @type {boolean}\r\n\t * @default false\r\n\t */\r\n\tactive: boolean = false;\r\n}\r\n","import { Component, ViewChild, ElementRef, HostListener, ContentChildren, QueryList, OnInit, inject, Input } from \"@angular/core\";\r\nimport { ButtonModule } from \"primeng/button\";\r\nimport { InputGroupAddonModule } from \"primeng/inputgroupaddon\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { RippleModule } from \"primeng/ripple\";\r\nimport { ActionDirective } from \"./action.directive\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\n\r\n@Component({\r\n\tselector: \"intelica-actions-menu\",\r\n\timports: [ButtonModule, InputGroupAddonModule, CommonModule, RippleModule, TermPipe],\r\n\ttemplateUrl: \"./actions-menu.component.html\",\r\n})\r\nexport class ActionsMenuComponent implements OnInit {\r\n\treadonly GlobalTermService = inject(GlobalTermService);\r\n\t@ViewChild(\"popover\") Popover!: ElementRef;\r\n\t@ViewChild(\"menuButton\") MenuButton!: ElementRef;\r\n\t@ViewChild(\"popoverContainer\") PopoverContainer!: ElementRef;\r\n\r\n\tIsPopoverOpen: boolean = false;\r\n\tIsClickInsideDatepicker: boolean = false;\r\n\r\n\t/**\r\n\t * Indica si el menú de acciones está visible o no.\r\n\t * @type {boolean}\r\n\t * @default false\r\n\t */\r\n\tShowActionsMenu = false;\r\n\r\n\t/**\r\n\t * Indica si la sección de selección de acciones está visible o no.\r\n\t * @type {boolean}\r\n\t * @default false\r\n\t */\r\n\tShowSelectActions = false;\r\n\r\n\tconstructor(private readonly termPipe: TermPipe) {}\r\n\r\n\tngOnInit(): void {\r\n\t\t// const specificRegex = /local.*filt|filt.*local/i;\r\n\t\t// const generalRegex = /filt/i;\r\n\t\t// const specificResults = this.actions.filter(action => specificRegex.test(action.name));\r\n\t\t// if (specificResults.length === 0) {\r\n\t\t// \tconst generalResults = this.actions.filter(action => generalRegex.test(action.name));\r\n\t\t// \tgeneralResults.forEach(action => this.showTemplate(action));\r\n\t\t// } else {\r\n\t\t// \tspecificResults.forEach(action => this.showTemplate(action));\r\n\t\t// }\r\n\t}\r\n\r\n\topenPopover() {\r\n\t\tthis.IsPopoverOpen = true;\r\n\r\n\t\t// Cambia el estado de visibilidad del menú de acciones.\r\n\t\tthis.ShowActionsMenu = true;\r\n\r\n\t\t// Muestra u oculta el menú de selección de acciones.\r\n\t\tthis.ShowSelectActions = true;\r\n\r\n\r\n\t}\r\n\r\n\tclosePopover() {\r\n\t\tthis.IsPopoverOpen = false;\r\n\r\n\t\t// Cambia el estado de visibilidad del menú de acciones.\r\n\t\tthis.ShowActionsMenu = false;\r\n\r\n\t\t// Muestra u oculta el menú de selección de acciones.\r\n\t\tthis.ShowSelectActions = true;\r\n\r\n\t}\r\n\r\n\t/** Método para alternar el estado del popover */\r\n\ttogglePopover(event?: Event) {\r\n\t\tthis.IsPopoverOpen ? this.closePopover() : this.openPopover();\r\n\r\n\t\t// Desactiva todas las acciones dentro del menú.\r\n\t\tthis.actions.forEach(action => {\r\n\t\t\taction.active = false;\r\n\t\t});\r\n\t}\r\n\r\n\t@HostListener(\"mousedown\", [\"$event\"])\r\n\tonMouseDown(event: Event) {\r\n\t\tconst target = event.target as HTMLElement;\r\n\t\tif (target.closest(\".p-datepicker\") || target.closest(\".p-inputtext\") || target.closest(\".p-select-panel\") || target.closest(\".p-multiselect-panel\")) {\r\n\t\t\tthis.IsClickInsideDatepicker = true;\r\n\t\t}\r\n\t}\r\n\r\n\t@HostListener(\"window:mousedown\", [\"$event\"])\r\n\tonMouseDownOutsideBody(event: Event) {\r\n\t\tconst target = event.target as HTMLElement;\r\n\t\tif (target.closest(\".p-datepicker\") || target.closest(\".p-inputtext\") || target.closest(\".p-select-panel\") || target.closest(\".p-multiselect-panel\")) {\r\n\t\t\tthis.IsClickInsideDatepicker = true;\r\n\t\t}\r\n\t}\r\n\r\n\t@HostListener(\"mouseup\", [\"$event\"])\r\n\tonMouseUp(event: Event) {\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.IsClickInsideDatepicker = false;\r\n\t\t}, 100);\r\n\t}\r\n\r\n\t@HostListener(\"document:click\", [\"$event\"])\r\n\tcloseAll(event?: Event) {\r\n\t\tif (!event) return;\r\n\t\tconst target = event.target as HTMLElement;\r\n\r\n\t\tconst allowedClasses = [\r\n\t\t\t\"prSelect\",\r\n\t\t\t\"p-select-option-selected\",\r\n\t\t\t\"p-select-option\",\r\n\t\t\t\"p-datepicker-panel\",\r\n\t\t\t\"p-datepicker-select-month\",\r\n\t\t\t\"p-button-text\",\r\n\t\t\t\"p-datepicker-select-year\",\r\n\t\t\t\"p-datepicker-month\",\r\n\t\t\t\"p-datepicker-year\",\r\n\t\t\t\"p-checkbox-input\",\r\n\t\t\t\"p-multiselect-option\",\r\n\t\t\t\"p-multiselect-filter\",\r\n\t\t\t\"p-multiselect-empty-message\",\r\n\t\t\t\"p-inputicon\",\r\n\t\t\t\"p-tree-node-selected\",\r\n\t\t\t\"p-tree-node-content\",\r\n\t\t\t\"p-multiselect-header\",\r\n\t\t\t\"grButton--icon-close-modal\",\r\n\t\t\t\"p-overlay-mask\",\r\n\t\t\t\"p-select-clear-icon\",\r\n\t\t\t\"formRowInputClear\",\r\n\t\t\t\"icon-times\",\r\n\t\t\t\"p-select-empty-message\",\r\n\t\t\t\"p-select-list\",\r\n\t\t\t\"p-iconfield\",\r\n\t\t\t\"p-inputtext\",\r\n\t\t\t\"p-select-header\",\r\n\t\t\t\"p-overlay\",\r\n\t\t\t\"p-select-filter\",\r\n\t\t\t\"p-overlay-content\",\r\n\t\t\t\"p-select-overlay\",\r\n\t\t\t\"p-select-panel\",\r\n\t\t\t\"p-multiselect-panel\",\r\n\t\t];\r\n\t\tif (this.IsClickInsideDatepicker) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (allowedClasses.some(className => target.closest(`.${className}`))) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (this.Popover && !this.Popover.nativeElement.contains(target) && this.MenuButton && !this.MenuButton.nativeElement.contains(target)) {\r\n\t\t\tthis.closePopover();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Directiva que representa una colección de elementos hijos del tipo `ActionDirective`.\r\n\t * Se utiliza para acceder a las instancias de la directiva `ActionDirective` dentro de un componente.\r\n\t * @type {QueryList<ActionDirective>}\r\n\t */\r\n\t@ContentChildren(ActionDirective)\r\n\tactions!: QueryList<ActionDirective>;\r\n\r\n\t/**\r\n\t * Muestra la plantilla asociada a una acción si se proporciona un manejador de eventos `onClick`.\r\n\t * - Emite el evento `onClick` de la acción si está definido.\r\n\t * - Detiene la propagación del evento si la propiedad `stopPropagation` de la acción está establecida.\r\n\t * - Activa la acción.\r\n\t * - Oculta el menú de selección de acciones si se cumplen ciertas condiciones.\r\n\t *\r\n\t * @param {ActionDirective} action - La acción para la cual mostrar la plantilla.\r\n\t */\r\n\tshowTemplate(action: ActionDirective): void {\r\n\t\t// Emite el evento onClick de la acción si está definido.\r\n\t\tif (action.onClick) {\r\n\t\t\taction.onClick.emit();\r\n\t\t}\r\n\r\n\t\t// Detiene la propagación del evento si la propiedad stopPropagation de la acción está establecida.\r\n\t\tif (action.stopPropagation) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Activa la acción.\r\n\t\taction.active = true;\r\n\r\n\t\t// Oculta el menú de selección de acciones si se cumplen ciertas condiciones.\r\n\t\tif (action.active) {\r\n\t\t\t// || this.showRecordsPerPage || this.showSorting) {\r\n\t\t\tthis.ShowSelectActions = false;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Restablece el estado de una acción y muestra el menú de selección de acciones.\r\n\t * - Desactiva la acción proporcionada.\r\n\t * - Muestra el menú de acciones.\r\n\t * - Muestra el menú de selección de acciones.\r\n\t *\r\n\t * @param {ActionDirective} action - La acción que se va a restablecer.\r\n\t */\r\n\treturnSelectActions(action: ActionDirective) {\r\n\t\t// Desactiva la acción proporcionada.\r\n\t\taction.active = false;\r\n\r\n\t\t// Muestra el menú de acciones.\r\n\t\tthis.ShowActionsMenu = true;\r\n\r\n\t\t// Muestra el menú de selección de acciones.\r\n\t\tthis.ShowSelectActions = true;\r\n\t}\r\n}\r\n","<div class=\"grPopoverContainer\" #popoverContainer [ngClass]=\"{ 'backdrop-visible': IsPopoverOpen }\">\r\n\t<button #menuButton class=\"grMenuAction\" (click)=\"togglePopover($event)\" [ngClass]=\"{ 'active': IsPopoverOpen }\">\r\n\t\t<span class=\"grMenuAction__ico\"><i class=\"icon icon-filter-option\"></i></span>\r\n\t\t<span class=\"grMenuAction__txt\">{{ \"Actions\" | term : GlobalTermService.languageCode }}</span>\r\n\t</button>\r\n\t<div class=\"grPopover\" #popover [style.display]=\"IsPopoverOpen ? 'block' : 'none'\">\r\n\t\t<!-- Menú -->\r\n\t\t<div class=\"grPopoverMenu\" *ngIf=\"ShowActionsMenu\" [ngClass]=\"{ hidden: !ShowSelectActions }\">\r\n\t\t\t<div class=\"grPopoverHeader\">\r\n\t\t\t\t<h3>\r\n\t\t\t\t\t<span>{{ \"SelectAction\" | term : GlobalTermService.languageCode }}</span>\r\n\t\t\t\t</h3>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"grPopoverBody\">\r\n\t\t\t\t<button pRipple class=\"grButtonActions\" *ngFor=\"let item of actions; let $index = index\" (click)=\"showTemplate(item)\">\r\n\t\t\t\t\t<span class=\"formRowInputNumber\">{{ $index + 1 }}</span>\r\n\t\t\t\t\t<span class=\"grButtonActionName\">{{ item.name | term : GlobalTermService.languageCode }}</span>\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<!-- Sub Menú -->\r\n\t\t<div class=\"grPopoverSubMenu\" [ngClass]=\"{ hidden: !item.active }\" *ngFor=\"let item of actions\">\r\n\t\t\t<div class=\"grPopoverHeader\">\r\n\t\t\t\t<h3>\r\n\t\t\t\t\t<button class=\"backButton\" (click)=\"returnSelectActions(item)\">\r\n\t\t\t\t\t\t<i class=\"icon icon-arrow-left\"></i>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<span>{{ item.name | term : GlobalTermService.languageCode }}</span>\r\n\t\t\t\t</h3>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"grPopoverBody\">\r\n\t\t\t\t<ng-container *ngTemplateOutlet=\"item.template\"></ng-container>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n","import { Component, Input, Output, EventEmitter, inject } from \"@angular/core\";\r\nimport { FilterModel } from \"./model/filter.model\"; // Ajusta la ruta según tu proyecto\r\nimport { CommonModule, DatePipe } from \"@angular/common\";\r\nimport { TooltipModule } from \"primeng/tooltip\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\nimport { DateMode } from \"../../constants/date-mode-options.constants\";\r\n\r\n@Component({\r\n selector: \"filter-chips\",\r\n templateUrl: \"./filter-chips.component.html\",\r\n imports: [CommonModule, TooltipModule],\r\n providers: [DatePipe],\r\n})\r\nexport class FilterChipsComponent {\r\n @Input() filters: FilterModel[] = [];\r\n @Output() remove = new EventEmitter<FilterModel>();\r\n @Output() openPopUp = new EventEmitter<FilterModel>();\r\n readonly GlobalTermService = inject(GlobalTermService);\r\n readonly datePipe = inject(DatePipe);\r\n\r\n onRemove(filter: FilterModel) {\r\n this.remove.emit(filter);\r\n }\r\n\r\n onTapChip(filter: FilterModel) {\r\n this.openPopUp.emit(filter);\r\n }\r\n\r\n isBooleanTrue(value: any): boolean {\r\n return typeof value === \"boolean\" && value === true;\r\n }\r\n\r\n getDateFormat(mode: DateMode): string {\r\n switch (mode) {\r\n case \"month\":\r\n return \"M/yy\";\r\n case \"year\":\r\n return \"yy\";\r\n default:\r\n return \"d/M/yy\";\r\n }\r\n }\r\n\r\n formatDateValue(value: any, mode: string): string {\r\n const pattern = this.getDateFormat(mode as DateMode);\r\n\r\n if (Array.isArray(value) && value.length === 2) {\r\n return `${this.datePipe.transform(\r\n value[0],\r\n pattern\r\n )} - ${this.datePipe.transform(value[1], pattern)}`;\r\n }\r\n\r\n if (value) {\r\n return this.datePipe.transform(value, pattern) || \"\";\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n isDateOrDateRange(value: any): boolean {\r\n const isValidDate = (v: any): boolean => {\r\n if (typeof v !== \"string\") return false;\r\n const date = new Date(v);\r\n return !isNaN(date.getTime());\r\n };\r\n\r\n // Caso 1: Fecha simple (string)\r\n if (isValidDate(value)) {\r\n return true;\r\n }\r\n\r\n // Caso 2: Rango de fechas (array de 2 strings válidas)\r\n if (Array.isArray(value) && value.length === 2) {\r\n return value.every(isValidDate);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n sortList(list: any[] | string | null | undefined): string[] {\r\n if (!Array.isArray(list)) {\r\n return [];\r\n }\r\n const stringList = list.map((item) =>\r\n typeof item === \"string\"\r\n ? item\r\n : item?.name || item?.text || JSON.stringify(item)\r\n );\r\n const sorted = [...stringList].sort();\r\n if (sorted.length > 5) {\r\n return sorted\r\n .slice(0, 5)\r\n .map((item, index) => `${index + 1}. ${item}`)\r\n .concat(\"...\");\r\n } else {\r\n return sorted.map((item, index) => `${index + 1}. ${item}`);\r\n }\r\n }\r\n\r\n getSafeString(value: string | string[] | null | undefined): string | null {\r\n if (Array.isArray(value)) {\r\n return value.join(\", \");\r\n }\r\n return value ?? null;\r\n }\r\n}\r\n","<div class=\"d-flex gap-2 flex-wrap\">\r\n\t@for (item of filters; track $index) {\r\n\t<button\r\n\t\tclass=\"prPill\"\r\n\t\tpInputText\r\n\t\t(click)=\"onTapChip(item)\"\r\n\t\t[pTooltip]=\"item.isTooltipForm ? tooltipFormContent : item.valueName!.length > 1 ? tooltipContent : item.title ?? ''\"\r\n\t\ttooltipPosition=\"top\"\r\n\t>\r\n\t\t<!-- Templates de tooltip -->\r\n\t\t<ng-template #tooltipFormContent>\r\n\t\t\t<span>{{ item.text?.toString() }}</span>\r\n\t\t\t<br />\r\n\t\t\t<ul *ngIf=\"item.valueName!.length > 1\" class=\"tooltip-list list-unlisted text-start filterChipsList\">\r\n\t\t\t\t<li *ngFor=\"let value of item.valueName\">{{ value }}</li>\r\n\t\t\t</ul>\r\n\t\t</ng-template>\r\n\r\n\t\t<ng-template #tooltipContent>\r\n\t\t\t<ul *ngIf=\"item.valueName!.length > 1\" class=\"tooltip-list list-unlisted text-start filterChipsList\">\r\n\t\t\t\t<li *ngFor=\"let value of sortList(item.valueName)\">\r\n\t\t\t\t\t{{ value }}\r\n\t\t\t\t</li>\r\n\t\t\t</ul>\r\n\t\t</ng-template>\r\n\r\n\t\t<!-- Texto del chip -->\r\n\t\t<span class=\"prPill__value\">\r\n\t\t\t<ng-container *ngIf=\"isBooleanTrue(item.value)\">{{ item.title | slice : 0 : 15 }}{{ item.title && item.title.length > 15 ? \"...\" : \"\" }}</ng-container>\r\n\r\n\t\t\t<ng-container *ngIf=\"(!item.valueName || item.valueName.length === 0) && item.value && item.value.length > 0 && !item.dateFormat\">\r\n\t\t\t\t{{ item.text | slice : 0 : 15 }}{{ item.text && item.text.length > 15 ? \"...\" : \"\" }}\r\n\t\t\t</ng-container>\r\n\r\n\t\t\t<ng-container *ngIf=\"item.dateFormat\">\r\n\t\t\t\t{{ formatDateValue(item.value, item.dateFormat) }}\r\n\t\t\t</ng-container>\r\n\r\n\t\t\t<ng-container *ngIf=\"item.valueName?.length === 1\">{{ item.text | slice : 0 : 15 }}{{ item.text!.length > 15 ? \"...\" : \"\" }}</ng-container>\r\n\r\n\t\t\t<ng-container *ngIf=\"item.valueName!.length > 1\">{{ item.title | slice : 0 : 15 }}{{ item.title!.length > 15 ? \"...\" : \"\" }}</ng-container>\r\n\r\n\t\t\t<ng-container *ngIf=\"item.valueName!.length > 1 && !item.isTooltipForm\">({{ item.valueName?.length }})</ng-container>\r\n\t\t</span>\r\n\r\n\t\t<!-- Botón de cierre -->\r\n\t\t<i class=\"icon-close1\" (click)=\"onRemove(item); $event.stopPropagation()\"></i>\r\n\t</button>\r\n\t}\r\n</div>\r\n","export enum FilterTypeEnum {\r\n\tSelect = 0,\r\n\tText = 1,\r\n\tCheckbox = 2,\r\n\tDate = 3,\r\n\tSelectDetail = 4,\r\n\tTemplate = 5,\r\n\tTextArea = 6,\r\n\tTextRange = 7,\r\n}","import {\r\n Directive,\r\n EventEmitter,\r\n forwardRef,\r\n Injectable,\r\n Input,\r\n Output,\r\n} from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { Subject } from \"rxjs\";\r\nimport { FilterTypeEnum } from \"../../enums/filter-type.enum\";\r\nimport { FilterChangedModel } from \"../../model/filterChanged.model\";\r\nconst noop = () => {};\r\n\r\nexport const CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => FilterDirective),\r\n multi: true,\r\n};\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\n@Directive({\r\n selector: \"filter\",\r\n providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR],\r\n})\r\nexport class FilterDirective implements ControlValueAccessor {\r\n @Input() name: string = \"\";\r\n @Input() label: string = \"\";\r\n @Input() visible: boolean = true;\r\n @Input() enabled: boolean = true;\r\n @Input() parent: string = \"\";\r\n @Input() placeholder: string = \"\";\r\n @Input() title: string = \"\";\r\n @Input() filterClass: string = \"\";\r\n @Input() letterIndex: boolean = false;\r\n @Input() defaultValue: any;\r\n @Input() showClean: boolean = true;\r\n @Input() showInAppliedFilter: boolean = true;\r\n @Input() showClass: boolean = true;\r\n @Input() selectClass: any = null;\r\n @Input() confirmDateFormat: boolean = false;\r\n @Input() hasFilterActionsButton: boolean = false;\r\n @Input() visibilityRules: { child: string; allowedValues: any[] }[] = [];\r\n @Output() change: EventEmitter<FilterChangedModel> =\r\n new EventEmitter<FilterChangedModel>();\r\n\r\n private innerValue: any = \"\";\r\n\r\n children: FilterDirective[] = [];\r\n $changes: Subject<any> = new Subject<any>();\r\n type: FilterTypeEnum;\r\n index: number = -1;\r\n\r\n get value(): any {\r\n return this.innerValue;\r\n }\r\n\r\n // set accessor including call the onchange callback\r\n set value(v: any) {\r\n if (v !== this.innerValue) {\r\n this.innerValue = v;\r\n this.onChangeCallback(v);\r\n }\r\n }\r\n\r\n constructor(filterType: FilterTypeEnum) {\r\n this.type = filterType;\r\n }\r\n\r\n writeValue(value: any): void {\r\n if (value !== this.innerValue) {\r\n this.innerValue = value;\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChangeCallback = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouchedCallback = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {}\r\n\r\n onBlur() {\r\n this.onTouchedCallback();\r\n }\r\n\r\n private onTouchedCallback: () => void = noop;\r\n private onChangeCallback: (_: any) => void = noop;\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n inject,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n} from \"@angular/core\";\r\nimport { MultiSelectModule } from \"primeng/multiselect\";\r\nimport { CheckboxModule } from \"primeng/checkbox\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\nimport { CommonModule } from \"@angular/common\";\r\n\r\n@Component({\r\n selector: \"intelica-multi-select\",\r\n imports: [\r\n FormsModule,\r\n MultiSelectModule,\r\n CheckboxModule,\r\n TermPipe,\r\n CommonModule,\r\n ],\r\n templateUrl: \"./multi-select.component.html\",\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MultiSelectComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class MultiSelectComponent\r\n implements ControlValueAccessor, AfterViewInit\r\n{\r\n readonly GlobalTermService = inject(GlobalTermService);\r\n /**\r\n * @description Id\r\n * @default\t\"\"\r\n * @type {string}\r\n */\r\n @Input() id: string = \"\";\r\n\r\n /**\r\n * @description Opciones.\r\n * @example\t[{value: string, text: string}]\r\n * @type {any[]}\r\n */\r\n @Input() options: any[] = [];\r\n\r\n /**\r\n * @description Label name.\r\n * @default\t\"text\"\r\n * @type {{value: string, label: string}[]}\r\n */\r\n @Input() optionLabel: string | undefined = \"text\";\r\n\r\n /**\r\n * @description Value name.\r\n * @default\t\"value\"\r\n * @type {{value: string, label: string}[]}\r\n */\r\n @Input() optionValue: string | undefined = \"value\";\r\n\r\n /**\r\n * @description Placeholder\r\n * @default\t\"Select an item\"\r\n * @type {string}\r\n */\r\n @Input() placeholder: string = \"Select an item\";\r\n\r\n /**\r\n * @description Show filter textbox\r\n * @default\tfalse\r\n * @type {boolean}\r\n */\r\n @Input() showFilter: boolean = false;\r\n\r\n /**\r\n * @description Show All Checkbox\r\n * @default\tfalse\r\n * @type {boolean}\r\n */\r\n @Input() showAll: boolean = false;\r\n\r\n /**\r\n * @description All | Todo\r\n * @default\t\"All\"\r\n * @type {string}\r\n */\r\n @Input() allText: string = \"All\";\r\n\r\n /**\r\n * @description Number\tof selected labels to show\r\n * @default\t3\r\n * @type {number}\r\n */\r\n @Input() maxSelectedLabels: number = 1;\r\n\r\n /**\r\n * @description Append To\r\n * @default\t\"\"\r\n * @type {string}\r\n */\r\n @Input() appendTo: string = \"\";\r\n\r\n /**\r\n * @description Panel Style Class\r\n * @default\t\"\"\r\n * @type {string}\r\n */\r\n @Input() panelStyleClass: string = \"prMultiselect\";\r\n\r\n /**\r\n * @description Enable virtual scroll\r\n * @default\t\"\"\r\n * @type {boolean}\r\n */\r\n @Input() virtualScroll: boolean = false;\r\n\r\n /**\r\n * @description Enable virtual scroll\r\n * @default\t\"\"\r\n * @type {boolean}\r\n */\r\n @Input() disabled: boolean = false;\r\n\r\n /**\r\n * @description Label for the selected items\r\n * @default\t\"\"\r\n * @type {string}\r\n */\r\n @Input() selectedItemsLabel: string = \"Selected\";\r\n\r\n /**\r\n * @description Style por color text\r\n * @default\t\"\"\r\n * @type {string}\r\n */\r\n @Input() textColorClass: string = \"\";\r\n\r\n /**\r\n * @description Enable group\r\n * @default\t\"\"\r\n * @type {boolean}\r\n */\r\n @Input() group: boolean = false;\r\n\r\n /**\r\n * @description Reset filter on hide\r\n * @default\t\"\"\r\n * @type {boolean}\r\n */\r\n @Input() resetFilterOnHide: boolean = true;\r\n\r\n /**\r\n * @description Change event\r\n * @emits {string[]}\r\n * @type {EventEmitter<string[]>}\r\n */\r\n @Output(\"onChange\") onChangeEvent: EventEmitter<string[]> =\r\n new EventEmitter();\r\n @Output(\"onPanelShow\") onPanelShowEvent: EventEmitter<any> =\r\n new EventEmitter();\r\n @Output(\"onPanelHide\") onPanelHideEvent: EventEmitter<any> =\r\n new EventEmitter();\r\n\r\n checked: boolean = false;\r\n selectedOptions: string[] = [];\r\n\r\n onChangeFn: any = () => {};\r\n onTouchedFn: any = () => {};\r\n\r\n /**\r\n * @description Define custom class\r\n * @default\t\"\"\r\n * @type {boolean}\r\n */\r\n @Input() customClass: string = \"\";\r\n\r\n ngAfterViewInit(): void {\r\n if (this.options.some((option) => typeof option !== \"object\")) {\r\n this.optionValue = undefined;\r\n this.optionLabel = undefined;\r\n }\r\n }\r\n\r\n writeValue(value: string[]): void {\r\n this.selectedOptions = value || [];\r\n const totalOptionsCount = this.group\r\n ? this.options.reduce((acc, group) => acc + group.items.length, 0)\r\n : this.options.length;\r\n\r\n this.checked = this.selectedOptions.length === totalOptionsCount;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChangeFn = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouchedFn = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n /* opcional: implementar si necesitas deshabilitar el componente desde ngModel */\r\n }\r\n\r\n toggleAllSelection(event: any) {\r\n if (!event.checked) {\r\n this.selectedOptions = [];\r\n } else {\r\n if (this.group) {\r\n // Agrupadas: aplanar todos los items\r\n this.selectedOptions = this.options.flatMap((group) =>\r\n group.items.map((item: any) =>\r\n this.optionValue ? item[this.optionValue] : item\r\n )\r\n );\r\n } else {\r\n // Sin agrupar\r\n this.selectedOptions = this.options.map((option) =>\r\n this.optionValue ? option[this.optionValue] : option\r\n );\r\n }\r\n }\r\n this.checked = this.selectedOptions.length > 0;\r\n this.emitChangeEvent();\r\n }\r\n\r\n onChangeSelect(event: any) {\r\n this.checked = this.selectedOptions.length === this.options.length;\r\n this.emitChangeEvent();\r\n this.onChangeFn(this.selectedOptions);\r\n this.onTouchedFn();\r\n }\r\n\r\n emitChangeEvent() {\r\n this.onChangeEvent.emit(this.selectedOptions);\r\n this.onChangeFn(this.selectedOptions);\r\n this.onTouchedFn();\r\n }\r\n\r\n onPanelShow(event: any) {\r\n this.onPanelShowEvent.emit(event);\r\n }\r\n\r\n onPanelHide(event: any) {\r\n this.onPanelHideEvent.emit(event);\r\n }\r\n}\r\n","<p-multiSelect\r\n [class]=\"textColorClass + ' prMultiselect'\"\r\n [disabled]=\"disabled\"\r\n [options]=\"options\"\r\n [(ngModel)]=\"selectedOptions\"\r\n [optionLabel]=\"optionLabel\"\r\n [optionValue]=\"optionValue\"\r\n [placeholder]=\"placeholder\"\r\n [maxSelectedLabels]=\"maxSelectedLabels\"\r\n [filter]=\"showFilter\"\r\n [showToggleAll]=\"false\"\r\n (onChange)=\"onChangeSelect($event)\"\r\n (onPanelHide)=\"onPanelHide($event)\"\r\n (onPanelShow)=\"onPanelShow($event)\"\r\n [appendTo]=\"appendTo\"\r\n [panelStyleClass]=\"panelStyleClass\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [virtualScrollOptions]=\"{ itemSize: 25, scrollHeight: '200px' }\"\r\n selectedItemsLabel=\"{0} {{\r\n selectedItemsLabel | term : GlobalTermService.languageCode\r\n }}\"\r\n [group]=\"group\"\r\n [resetFilterOnHide]=\"resetFilterOnHide\"\r\n [ngClass]=\"customClass\"\r\n>\r\n @if(showAll){\r\n <ng-template #header>\r\n <div class=\"prMultiselect__all\">\r\n <label [for]=\"id + '-all'\">\r\n <p-checkbox\r\n [inputId]=\"id + '-all'\"\r\n [binary]=\"true\"\r\n [(ngModel)]=\"checked\"\r\n (onChange)=\"toggleAllSelection($event)\"\r\n ></p-checkbox>\r\n {{ allText | term : GlobalTermService.languageCode }}\r\n </label>\r\n </div>\r\n </ng-template>\r\n }\r\n <ng-template let-group #group *ngIf=\"group\">\r\n <div class=\"flex items-center\">\r\n <span>{{ group.label }}</span>\r\n </div>\r\n </ng-template>\r\n</p-multiSelect>\r\n","import { CommonModule } from \"@angular/common\";\r\nimport {\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n ContentChildren,\r\n EventEmitter,\r\n inject,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n SimpleChanges,\r\n TemplateRef,\r\n} from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { ButtonModule } from \"primeng/button\";\r\nimport { CheckboxModule } from \"primeng/checkbox\";\r\nimport { DatePickerModule } from \"primeng/datepicker\";\r\nimport { InputTextModule } from \"primeng/inputtext\";\r\nimport { MultiSelectModule } from \"primeng/multiselect\";\r\nimport { SelectModule } from \"primeng/select\";\r\nimport { TextareaModule } from \"primeng/textarea\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\nimport { FilterModel } from \"../../model/filter.model\";\r\nimport { FilterDirective } from \"../../directives/filters/filter.directive\";\r\nimport { FilterTypeEnum } from \"../../enums/filter-type.enum\";\r\nimport { SelectFilterDirective } from \"../../directives/filters/select-filter.directive\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { RippleModule } from \"primeng/ripple\";\r\nimport { DateMode } from \"../../constants/date-mode-options.constants\";\r\nimport { MultiSelectComponent } from \"../multi-select/multi-select.component\";\r\nimport { DateFilterDirective } from \"../../../public-api\";\r\n\r\n@Component({\r\n selector: \"intelica-filters\",\r\n imports: [\r\n CommonModule,\r\n DatePickerModule,\r\n FormsModule,\r\n TermPipe,\r\n ButtonModule,\r\n InputTextModule,\r\n CheckboxModule,\r\n SelectModule,\r\n MultiSelectModule,\r\n TextareaModule,\r\n RippleModule,\r\n MultiSelectComponent,\r\n ],\r\n templateUrl: \"./filters.component.html\",\r\n})\r\nexport class FiltersComponent implements OnInit, OnChanges, OnDestroy {\r\n readonly GlobalTermService = inject(GlobalTermService);\r\n @Input() showButtons: boolean = true;\r\n @Input() customClass: string = \"\";\r\n @Input() columns: number = 1;\r\n @Output() EmitApply: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() EmitCancel: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n // Suscripciones a eventos\r\n subscriptions: Subscription[] = [];\r\n\r\n // Objeto para almacenar términos\r\n terms: any;\r\n\r\n // Variable para mostrar u ocultar opciones de menú\r\n showMenuOptions: boolean = false;\r\n\r\n // Variable para manejar el estilo de altura de pantalla\r\n styleHeighScreen: boolean = false;\r\n\r\n // Lista de filtros aplicados\r\n _filtersApplied: FilterModel[] = [];\r\n\r\n // Clases CSS asociadas a diferentes tipos de controles\r\n radioClass = \"radioStyle\";\r\n comboClass = \"comboStyle\";\r\n ddlClass = \"ddlStyle\";\r\n ddtClass = \"ddtStyle\";\r\n dPClass = \"dPStyle\";\r\n mSClass = \"mSStyle\";\r\n\r\n // Texto descriptivo para la opción seleccionada\r\n selectDescription = \"Selected\";\r\n\r\n /**\r\n * Colección de elementos filtrados mediante la directiva FilterDirective.\r\n * Utilice @ContentChildren para obtener referencias a elementos dentro del contenido proyectado.\r\n * @type {QueryList<FilterDirective>}\r\n */\r\n @ContentChildren(FilterDirective)\r\n filterDirectives!: QueryList<FilterDirective>;\r\n\r\n // Referencia al ng-template filterActionsButton\r\n @ContentChild(\"filterActionsButton\", { static: true })\r\n filterActionsButtonTemplate!: TemplateRef<any>;\r\n\r\n /**\r\n * Colección de instancias de DropDownListComponent.\r\n * Utilice @ViewChildren para obtener referencias a componentes hijos dentro de la vista actual.\r\n * @type {QueryList<DropDownListComponent>}\r\n */\r\n // @ViewChildren(DropDownListComponent) selects!: QueryList<DropDownListComponent>;\r\n\r\n // Cadena de letras\r\n letters: string = \"abcdefghijklmnopqrstuvwxyz\";\r\n\r\n // Arreglo de filtros\r\n filters: FilterDirective[] = [];\r\n\r\n // Enumeración de tipos de filtro\r\n filterTypeEnum = FilterTypeEnum;\r\n\r\n // Índices y longitud de columnas\r\n indexArray: number[] = [];\r\n columnsLengthArray: any = [];\r\n\r\n // Idioma default para datepicker\r\n language = \"en\";\r\n\r\n //Cantidad limite para mostrar buscador en select-filter\r\n filterThreshold: number = 10;\r\n\r\n hasNoActiveClass: boolean = false;\r\n\r\n constructor(private cd: ChangeDetectorRef) {}\r\n\r\n ngOnInit() {\r\n this.columnsLengthArray = Array.from({ length: this.columns }, (_, i) => i);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n for (const propertyName in changes) {\r\n if (propertyName === \"columns\") {\r\n const CHANGE = changes[propertyName];\r\n const CURRENT = CHANGE.currentValue;\r\n\r\n this.columnsLengthArray = Array.from({ length: CURRENT }, (v, i) => i);\r\n this.cd.detectChanges();\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach((subscription) => {\r\n subscription.unsubscribe();\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.setColumnSize();\r\n this.filters = this.filterDirectives.toArray();\r\n\r\n this.filters.forEach((filter) => {\r\n if (filter.parent) {\r\n const parent = this.filters.find((f) => f.name === filter.parent);\r\n if (parent) {\r\n parent.children.push(filter);\r\n }\r\n }\r\n });\r\n\r\n this.subscriptions = [];\r\n this.filterDirectives.forEach((filter) => {\r\n if (\r\n (filter.value === undefined ||\r\n filter.value === null ||\r\n filter.value === \"\") &&\r\n filter.defaultValue != null\r\n ) {\r\n filter.value = filter.defaultValue;\r\n if (filter.type === FilterTypeEnum.Select) {\r\n filter.value = null;\r\n }\r\n this.toggleChildrenVisibility(filter);\r\n }\r\n });\r\n\r\n this.cd.detectChanges();\r\n }\r\n\r\n getOptionCount(item: any): number {\r\n if (!item.options || !Array.isArray(item.options)) return 0;\r\n\r\n if (item.group) {\r\n return item.options.reduce((total: number, group: any) => {\r\n return total + (Array.isArray(group.items) ? group.items.length : 0);\r\n }, 0);\r\n } else {\r\n return item.options.length;\r\n }\r\n }\r\n\r\n onChange($event: any, filter: FilterDirective): void {\r\n const value = $event?.value !== undefined ? $event.value : $event;\r\n filter.value = value;\r\n this.toggleChildrenVisibility(filter);\r\n if (filter.change) {\r\n filter.change.emit({ current: filter, all: this.filterDirectives });\r\n }\r\n }\r\n\r\n onChangeCheck($event: any, filter: FilterDirective): void {\r\n filter.value = $event.checked;\r\n if (filter.change) {\r\n filter.change.emit({ current: filter, all: this.filterDirectives });\r\n }\r\n }\r\n\r\n onChangeMultiple($event: any, filter: FilterDirective): void {\r\n const value = $event?.value !== undefined ? $event.value : $event;\r\n filter.value = value;\r\n this.toggleChildrenVisibility(filter);\r\n if (filter.change) {\r\n filter.change.emit({ current: filter, all: this.filterDirectives });\r\n }\r\n }\r\n\r\n isUnselected(item: FilterDirective): boolean {\r\n const v = item.value;\r\n const d = item.defaultValue;\r\n\r\n if (v === null || v === undefined) return true;\r\n\r\n if (item.type === this.filterTypeEnum.Select) {\r\n if (Array.isArray(v)) {\r\n const defArr = Array.isArray(d) ? d : [];\r\n return v.length === 0 || this.arraysAreEqual(v, defArr);\r\n }\r\n return v === d;\r\n }\r\n\r\n if (\r\n item.type === this.filterTypeEnum.Text ||\r\n item.type === this.filterTypeEnum.TextArea\r\n ) {\r\n return typeof v === \"string\" ? v.trim() === \"\" : v === d;\r\n }\r\n\r\n if (item.type === this.filterTypeEnum.Date) {\r\n if (Array.isArray(v)) {\r\n const defArr = Array.isArray(d) ? d : [];\r\n const sameLen = v.length === defArr.length;\r\n const sameDates =\r\n sameLen &&\r\n v.every(\r\n (vx, i) =>\r\n vx instanceof Date &&\r\n defArr[i] instanceof Date &&\r\n vx.getTime() === (defArr[i] as Date).getTime()\r\n );\r\n return v.every((x) => !x) || sameDates;\r\n }\r\n if (v instanceof Date && d instanceof Date)\r\n return v.getTime() === d.getTime();\r\n return !v;\r\n }\r\n return v === d || !v;\r\n }\r\n\r\n private toggleChildrenVisibility(filter: FilterDirective): void {\r\n if (!filter.visibilityRules?.length) return;\r\n\r\n const allFilters = this.filterDirectives.toArray();\r\n\r\n filter.visibilityRules.forEach((rule) => {\r\n const child = allFilters.find((f) => f.name === rule.child);\r\n if (child) {\r\n const value = filter.value;\r\n const shouldShow = Array.isArray(value)\r\n ? value.some((v) => rule.allowedValues.includes(v))\r\n : rule.allowedValues.includes(value);\r\n\r\n child.visible = shouldShow;\r\n child.$changes.next({ visible: { currentValue: shouldShow } });\r\n }\r\n });\r\n }\r\n\r\n onKeyUp($event: any, filter: FilterDirective) {\r\n if (filter.change)\r\n filter.change.emit({ current: filter, all: this.filterDirectives });\r\n }\r\n\r\n cleanValue(filter: FilterDirective) {\r\n // Limpiar valor del filtro actual\r\n if (filter.defaultValue !== undefined && filter.defaultValue !== null) {\r\n filter.value = filter.defaultValue;\r\n } else {\r\n switch (typeof filter.value) {\r\n case \"string\":\r\n if (filter.type === FilterTypeEnum.Select) {\r\n filter.value = null;\r\n } else {\r\n filter.value = \"\";\r\n }\r\n break;\r\n case \"boolean\":\r\n filter.value = false;\r\n break;\r\n default:\r\n if (Array.isArray(filter.value)) {\r\n filter.value = [];\r\n } else {\r\n filter.value = null;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n // Si es padre, limpiar hijos\r\n if (!filter.parent) {\r\n const children = this.filterDirectives.filter(\r\n (f) => f.parent === filter.name\r\n );\r\n const shouldHideChildren = !(\r\n filter.defaultValue !== undefined && filter.defaultValue !== null\r\n ); // solo ocultar si el padre NO tiene defaultValue\r\n\r\n children.forEach((child) => {\r\n if (child.defaultValue !== undefined && child.defaultValue !== null) {\r\n child.value = child.defaultValue;\r\n } else {\r\n switch (typeof child.value) {\r\n case \"string\":\r\n child.value = \"\";\r\n break;\r\n case \"boolean\":\r\n child.value = false;\r\n break;\r\n default:\r\n if (Array.isArray(child.value)) {\r\n child.value = [];\r\n } else {\r\n child.value = null;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n if (shouldHideChildren) {\r\n child.visible = false;\r\n }\r\n\r\n if (child.change) {\r\n child.change.emit({\r\n current: child,\r\n all: this.filterDirectives,\r\n });\r\n }\r\n });\r\n }\r\n\r\n const index = this._filtersApplied.findIndex((x) => x.name === filter.name);\r\n if (index !== -1) this._filtersApplied.splice(index, 1);\r\n\r\n if (filter.change) {\r\n filter.change.emit({ current: filter, all: this.filterDirectives });\r\n }\r\n\r\n this.cd.detectChanges();\r\n }\r\n\r\n /**\r\n * Construye y actualiza la lista de filtros aplicados con la información proporcionada por la directiva de filtro.\r\n * @param {FilterDirective} filter - La directiva de filtro que proporciona la información.\r\n * @returns {void}\r\n */\r\n builderFiltersApplied(filter: FilterDirective): void {\r\n if (!filter.showInAppliedFilter) return;\r\n\r\n let value = filter.value;\r\n let text = filter.value;\r\n let valueName: any = [];\r\n let dateFormat: any = \"\";\r\n\r\n if (filter.type === FilterTypeEnum.Select) {\r\n const selectFilter = filter as SelectFilterDirective;\r\n\r\n if (selectFilter.multiple) {\r\n text = \"\";\r\n filter.value.forEach((f: any) => {\r\n let filterSelect = selectFilter.options.filter(\r\n (x) => x[selectFilter.optionValue] === f\r\n );\r\n if (filterSelect.length)\r\n valueName = [\r\n ...valueName,\r\n filterSelect[0][selectFilter.optionLabel],\r\n ];\r\n if (filterSelect.length > 0)\r\n text = text + filterSelect[0][selectFilter.optionLabel] + \"-\";\r\n });\r\n text = text.slice(0, -1);\r\n } else {\r\n let filterSelect = selectFilter.options.filter(\r\n (x) => x[selectFilter.optionValue] === filter.value\r\n );\r\n if (filterSelect.length > 0)\r\n text = filterSelect[0][selectFilter.optionLabel];\r\n }\r\n }\r\n\r\n let filterApplied = this._filtersApplied.filter(\r\n (x) => x.name === filter.name\r\n )[0] as any;\r\n\r\n if (!filterApplied) {\r\n if (filter.type === FilterTypeEnum.Date) {\r\n const dateFilter = filter as DateFilterDirective;\r\n this._filtersApplied.push({\r\n name: filter.name,\r\n value: value,\r\n text: text,\r\n title: filter.title,\r\n valueName: valueName,\r\n dateFormat: dateFilter.dateMode,\r\n });\r\n } else {\r\n this._filtersApplied.push({\r\n name: filter.name,\r\n value: value,\r\n text: text,\r\n title: filter.title,\r\n valueName: valueName,\r\n });\r\n }\r\n } else {\r\n filterApplied.text = text;\r\n filterApplied.value = value;\r\n }\r\n }\r\n\r\n /**\r\n * Obtiene el índice de un filtro en el contexto de todos los filtros visibles, proporcionando una numeración o letras.\r\n * @param {FilterDirective} filter - La directiva de filtro para la cual se obtendrá el índice.\r\n * @param {FilterDirective} [parentFilter] - La directiva de filtro padre, si existe, en el caso de filtros anidados.\r\n * @returns {string} - El índice del filtro en formato de numeración o letras.\r\n */\r\n getIndex(filter: FilterDirective, parentFilter?: FilterDirective): string {\r\n const filters = [\r\n ...this.filterDirectives.filter((x) => !x.parent && x.visible),\r\n ];\r\n\r\n // Verifica si el filtro está en la lista principal de filtros visibles\r\n if (filters.indexOf(filter) > -1) {\r\n // Retorna el índice en formato de letras si está definido, de lo contrario, utiliza la numeración\r\n if (filter.letterIndex) return this.letters[filters.indexOf(filter)];\r\n return (filters.indexOf(filter) + 1).toString();\r\n }\r\n\r\n // Si hay un filtro padre proporcionado\r\n if (parentFilter) {\r\n const children = [\r\n ...this.filterDirectives.filter(\r\n (x) => x.parent === parentFilter?.name && x.visible\r\n ),\r\n ];\r\n let index: string = \"\";\r\n\r\n // Concatena el índice del filtro padre en formato de letras o numeración\r\n if (parentFilter.letterIndex)\r\n index += this.letters[filters.indexOf(parentFilter)];\r\n else index += (filters.indexOf(parentFilter) + 1).toString();\r\n\r\n // Concatena el índice del filtro actual en formato de letras o numeración\r\n if (filter.letterIndex)\r\n index += \".\" + this.letters[children.indexOf(filter)];\r\n else index += \".\" + (children.indexOf(filter) + 1).toString();\r\n\r\n return index;\r\n }\r\n\r\n // Retorna 'ERROR' si no se cumple ninguna de las condiciones anteriores\r\n return \"ERROR\";\r\n }\r\n\r\n /**\r\n * Maneja el evento de hacer clic en el botón \"Aplicar\" para aplicar los filtros seleccionados.\r\n * Limpia la lista de filtros aplicados y construye la lista nuevamente con los valores actuales de los filtros.\r\n * Luego, emite el evento `EmitApply` con la lista de filtros aplicados.\r\n * @returns {void}\r\n */\r\n clickApply(): void {\r\n // Limpia la lista de filtros aplicados\r\n this._filtersApplied = [];\r\n // Itera sobre todas las directivas de filtro\r\n this.filterDirectives.forEach((filterDirective) => {\r\n if (this.validateFilter(filterDirective)) {\r\n // Verifica si el tipo de filtro es de texto\r\n if (filterDirective.type === FilterTypeEnum.Text) {\r\n // Comprueba si el valor de texto no está vacío y agrega el filtro aplicado\r\n if (\r\n filterDirective.value !== undefined &&\r\n filterDirective.value !== null &&\r\n filterDirective.value.trim() !== \"\"\r\n ) {\r\n this.builderFiltersApplied(filterDirective);\r\n }\r\n } else {\r\n // Si el filtro requiere confirmación de formato de fecha, convierte el valor a un objeto de fecha\r\n if (filterDirective.confirmDateFormat) {\r\n const parsedDate = new Date(filterDirective.value);\r\n filterDirective.value = this.isValidDate(parsedDate)\r\n ? parsedDate\r\n : null;\r\n }\r\n\r\n // Comprueba si el valor del filtro es válido y no está vacío, luego agrega el filtro aplicado\r\n if (\r\n filterDirective.value !== undefined &&\r\n filterDirective.value !== null &&\r\n (this.validStringValue(\r\n filterDirective.value,\r\n filterDirective.defaultValue\r\n ) ||\r\n filterDirective.value > -1 ||\r\n Array.isArray(filterDirective.value) ||\r\n this.isValidDate(filterDirective.value)) &&\r\n filterDirective.value.toString().length > 0\r\n ) {\r\n this.builderFiltersApplied(filterDirective);\r\n }\r\n }\r\n }\r\n });\r\n\r\n this.EmitApply.emit(this._filtersApplied);\r\n }\r\n\r\n private isValidDate(value: any): boolean {\r\n return value instanceof Date && !isNaN(value.getTime());\r\n }\r\n\r\n validateFilter(filter: FilterDirective): boolean {\r\n return filter.value !== undefined && filter.value !== null;\r\n }\r\n\r\n validStringValue(value: any, defaultValue: any): boolean {\r\n return (\r\n typeof (value == \"string\" || value === \"Object\") && value != defaultValue\r\n );\r\n }\r\n\r\n clickCancel(): void {\r\n this.filterDirectives.forEach((filter) => {\r\n // Restaurar valor por default o limpiar\r\n if (filter.defaultValue !== undefined && filter.defaultValue !== null) {\r\n filter.value = filter.defaultValue;\r\n } else {\r\n switch (typeof filter.value) {\r\n case \"string\":\r\n filter.value = \"\";\r\n break;\r\n case \"boolean\":\r\n filter.value = false;\r\n break;\r\n case \"object\":\r\n if (Array.isArray(filter.value)) {\r\n filter.value = [];\r\n } else {\r\n filter.value = null;\r\n }\r\n break;\r\n default:\r\n filter.value = null;\r\n break;\r\n }\r\n }\r\n\r\n // Ocultar hijos si su padre no tiene defaultValue\r\n if (filter.parent) {\r\n const parent = this.filterDirectives.find(\r\n (f) => f.name === filter.parent\r\n );\r\n const parentHasDefault =\r\n parent?.defaultValue !== undefined && parent?.defaultValue !== null;\r\n\r\n if (!parentHasDefault) {\r\n filter.visible = false;\r\n }\r\n }\r\n\r\n if (filter.change) {\r\n filter.change.emit({ current: filter, all: this.filterDirectives });\r\n }\r\n });\r\n\r\n this._filtersApplied = [];\r\n\r\n this.EmitCancel.emit(this.filterDirectives);\r\n\r\n this.cd.detectChanges();\r\n }\r\n\r\n /**\r\n * Evalúa si el valor actual del filtro es diferente al valor predeterminado, considerando el tipo de filtro.\r\n * @param {FilterDirective} filter - La directiva de filtro a evaluar.\r\n * @returns {boolean} - `true` si el valor actual es diferente al valor predeterminado, `false` de lo contrario.\r\n */\r\n evaluatecleanvalue(filter: FilterDirective): boolean {\r\n let isContinue = filter.value != filter.defaultValue;\r\n\r\n // Si el tipo de filtro es de fecha y el valor predeterminado es un objeto de fecha, compara las fechas en milisegundos\r\n if (\r\n filter.type === FilterTypeEnum.Date &&\r\n typeof filter.defaultValue === \"object\" &&\r\n filter.defaultValue != null\r\n ) {\r\n isContinue =\r\n (filter.value as Date).getTime() !=\r\n (filter.defaultValue as Date).getTime();\r\n }\r\n\r\n // Si el tipo de filtro es SelectDetail, compara los primeros elementos de los arreglos\r\n if (filter.type === FilterTypeEnum.SelectDetail) {\r\n isContinue = filter.value[0] != filter.defaultValue[0];\r\n }\r\n\r\n return isContinue;\r\n }\r\n\r\n /**\r\n * Evalúa si el valor actual del filtro de texto es diferente al valor predeterminado y cumple con ciertas condiciones.\r\n * @param {FilterDirective} filter - La directiva de filtro de texto a evaluar.\r\n * @returns {boolean} - `true` si el valor actual cumple con las condiciones para ser diferente al valor predeterminado, `false` de lo contrario.\r\n */\r\n evaluatecleanvaluetext(filter: FilterDirective): boolean {\r\n let isContinue =\r\n filter.value != null &&\r\n filter.value != 0 &&\r\n filter.value != -1 &&\r\n filter.value != filter.defaultValue &&\r\n filter.showClass;\r\n\r\n if (filter.defaultValue) {\r\n isContinue = filter.value != null && filter.value != filter.defaultValue;\r\n }\r\n\r\n // Si el tipo de filtro es de fecha y el valor predeterminado es un objeto de fecha, compara las fechas en milisegundos\r\n if (\r\n filter.value != null &&\r\n filter.type === FilterTypeEnum.Date &&\r\n typeof filter.defaultValue === \"object\" &&\r\n filter.defaultValue != null\r\n ) {\r\n isContinue =\r\n (filter.value as Date).getTime() !=\r\n (filter.defaultValue as Date).getTime();\r\n }\r\n\r\n if (filter.type === FilterTypeEnum.Select) {\r\n if (Array.isArray(filter.value) && Array.isArray(filter.defaultValue)) {\r\n isContinue = !this.arraysAreEqual(filter.value, filter.defaultValue);\r\n } else {\r\n isContinue = filter.value != filter.defaultValue;\r\n }\r\n }\r\n return isContinue;\r\n }\r\n\r\n private arraysAreEqual(arr1: any[], arr2: any[]): boolean {\r\n if (arr1.length !== arr2.length) return false;\r\n return arr1.every((val, index) => val === arr2[index]);\r\n }\r\n\r\n hasValue(item: FilterDirective): boolean {\r\n const { value, type } = item;\r\n\r\n let has = false;\r\n\r\n if (type === this.filterTypeEnum.Select && Array.isArray(value)) {\r\n has = value.length > 0;\r\n } else if (\r\n type === this.filterTypeEnum.Text ||\r\n type === this.filterTypeEnum.TextArea\r\n ) {\r\n has = !!value && value.trim() !== \"\";\r\n } else if (type === this.filterTypeEnum.Date && Array.isArray(value)) {\r\n has = value.some((v) => !!v);\r\n } else {\r\n has = !!value;\r\n }\r\n\r\n if (has && this.equalsDefault(item)) {\r\n return false;\r\n }\r\n\r\n return has;\r\n }\r\n\r\n private equalsDefault(item: FilterDirective): boolean {\r\n const { value, defaultValue, type } = item;\r\n\r\n if (defaultValue === undefined || defaultValue === null) {\r\n return false;\r\n }\r\n\r\n if (\r\n type === this.filterTypeEnum.Select &&\r\n Array.isArray(value) &&\r\n Array.isArray(defaultValue)\r\n ) {\r\n return (\r\n value.length === defaultValue.length &&\r\n value.every((v, i) => v === defaultValue[i])\r\n );\r\n }\r\n\r\n if (\r\n type === this.filterTypeEnum.Date &&\r\n Array.isArray(value) &&\r\n Array.isArray(defaultValue)\r\n ) {\r\n return (\r\n value.length === defaultValue.length &&\r\n value.every(\r\n (v, i) =>\r\n v instanceof Date &&\r\n defaultValue[i] instanceof Date &&\r\n v.getTime() === (defaultValue[i] as Date).getTime()\r\n )\r\n );\r\n }\r\n\r\n if (\r\n type === this.filterTypeEnum.Date &&\r\n value instanceof Date &&\r\n defaultValue instanceof Date\r\n ) {\r\n return value.getTime() === defaultValue.getTime();\r\n }\r\n\r\n return value === defaultValue;\r\n }\r\n\r\n getDateView(mode: DateMode): \"date\" | \"month\" | \"year\" {\r\n switch (mode) {\r\n case \"month\":\r\n return \"month\";\r\n case \"year\":\r\n return \"year\";\r\n default:\r\n return \"date\";\r\n }\r\n }\r\n\r\n getDateFormat(mode: DateMode): string {\r\n switch (mode) {\r\n case \"month\":\r\n return \"m/y\";\r\n case \"year\":\r\n return \"y\";\r\n default:\r\n return \"d/m/y\";\r\n }\r\n }\r\n\r\n getDateFormatPlaceholder(mode: DateMode): string {\r\n switch (mode) {\r\n case \"month\":\r\n return \"m/yy\";\r\n case \"year\":\r\n return \"yy\";\r\n default:\r\n return \"d/m/yy\";\r\n }\r\n }\r\n\r\n setColumnSize(): string {\r\n let response = \"col-md-6\";\r\n\r\n if (this.filterDirectives) {\r\n const visibleParents = this.filterDirectives.filter(\r\n (x) => x.visible && !x.parent\r\n );\r\n const columnBreak = Math.ceil(visibleParents.length / this.columns);\r\n\r\n for (const ind of this.columnsLengthArray) {\r\n const pageNumber = ind + 1;\r\n const parentsInCol = visibleParents.slice(\r\n (pageNumber - 1) * columnBreak,\r\n pageNumber * columnBreak\r\n );\r\n\r\n for (const parent of parentsInCol) {\r\n parent.index = ind;\r\n\r\n const children = this.filterDirectives.filter(\r\n (x) => x.visible && x.parent === parent.name\r\n );\r\n for (const child of children) {\r\n child.index = ind;\r\n }\r\n }\r\n }\r\n }\r\n\r\n switch (this.columns) {\r\n case 1:\r\n response = \"col-md-12\";\r\n break;\r\n case 2:\r\n response = \"col-md-6\";\r\n break;\r\n case 3:\r\n response = \"col-md-4\";\r\n break;\r\n case 4:\r\n response = \"col-md-3\";\r\n break;\r\n case 6:\r\n response = \"col-md-2\";\r\n break;\r\n default:\r\n response = \"col-md-6\";\r\n break;\r\n }\r\n\r\n return response;\r\n }\r\n}\r\n","<div\r\n class=\"container overflow-hidden\"\r\n [ngStyle]=\"{ 'min-width': 313 * columns + 'px' }\"\r\n>\r\n <div class=\"row gy-3 filtersAnalytics\">\r\n @for (colIndex of columnsLengthArray; track colIndex) {\r\n <div class=\"inputRowGap\" [ngClass]=\"setColumnSize()\">\r\n @for (filter of filterDirectives; track filter) { @if (filter.visible &&\r\n !filter.parent && filter.index == colIndex) {\r\n <div class=\"mb-3\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n template;\r\n context: { item: filter, index: getIndex(filter) }\r\n \"\r\n ></ng-container>\r\n </div>\r\n\r\n @for (child of filterDirectives; track child) { @if (child.visible &&\r\n child.parent === filter.name && child.index == colIndex) {\r\n <div class=\"mb-3\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n template;\r\n context: { item: child, index: getIndex(child, filter) }\r\n \"\r\n ></ng-container>\r\n </div>\r\n } } } }\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n\r\n@if (showButtons) {\r\n<div class=\"btnBox btnBox--center mt-4\">\r\n <button\r\n pRipple\r\n class=\"grButton grButton--primary applyAnalytics\"\r\n (click)=\"clickApply()\"\r\n >\r\n <span>{{ \"Apply\" | term : GlobalTermService.languageCode }}</span>\r\n </button>\r\n <button\r\n pRipple\r\n class=\"grButton grButton--secondary cleanAnalytics\"\r\n (click)=\"clickCancel()\"\r\n >\r\n <span>{{ \"Clear\" | term : GlobalTermService.languageCode }}</span>\r\n </button>\r\n</div>\r\n}\r\n\r\n<!-- Template general -->\r\n<ng-template #template let-item=\"item\" let-index=\"index\">\r\n @if (item.visible) {\r\n <div\r\n class=\"formRowInput {{ item.filterClass }}\"\r\n [ngClass]=\"{ required: item.required }\"\r\n >\r\n @if (item.label && item.label.length > 0) {\r\n <div class=\"formRowInputLeft\">\r\n <div class=\"formRowInputNumber\">\r\n <span>{{ index }}</span>\r\n </div>\r\n <label [for]=\"item.name\">\r\n <span>{{ item.label }}</span>\r\n </label>\r\n </div>\r\n }\r\n <div class=\"formRowInputWrap align-items-center\">\r\n @if (item.type === filterTypeEnum.Select) {\r\n <ng-container\r\n *ngTemplateOutlet=\"select; context: { item: item, index: index }\"\r\n ></ng-container>\r\n }\r\n <!---->\r\n @if (item.type === filterTypeEnum.Text) {\r\n <ng-container\r\n *ngTemplateOutlet=\"text; context: { item: item, index: index }\"\r\n ></ng-container>\r\n }\r\n <!---->\r\n @if (item.type === filterTypeEnum.Checkbox) {\r\n <ng-container\r\n *ngTemplateOutlet=\"checkbox; context: { item: item, index: index }\"\r\n ></ng-container>\r\n }\r\n <!---->\r\n @if (item.type === filterTypeEnum.Date) {\r\n <ng-container\r\n *ngTemplateOutlet=\"date; context: { item: item, index: index }\"\r\n ></ng-container>\r\n }\r\n <!---->\r\n @if (item.type === filterTypeEnum.Template) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n template_filter;\r\n context: { item: item, index: index }\r\n \"\r\n ></ng-container>\r\n }\r\n <!---->\r\n @if (item.type === filterTypeEnum.TextArea) {\r\n <ng-container\r\n *ngTemplateOutlet=\"text_area; context: { item: item, index: index }\"\r\n ></ng-container>\r\n } @if (filterActionsButtonTemplate && item.hasFilterActionsButton) {\r\n <ng-container\r\n *ngTemplateOutlet=\"filterActionsButtonTemplate\"\r\n ></ng-container>\r\n }\r\n </div>\r\n @if (item.showClean && hasValue(item)) {\r\n <button class=\"desactive formRowInputClear\" (click)=\"cleanValue(item)\">\r\n <i class=\"icon-times\"></i>\r\n </button>\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n\r\n<!-- Tipos de filtros -->\r\n<ng-template #select let-item=\"item\" let-index=\"index\">\r\n @if (item.multiple) {\r\n <intelica-multi-select\r\n [placeholder]=\"item.placeholder\"\r\n [options]=\"item.options\"\r\n [showFilter]=\"getOptionCount(item) > filterThreshold\"\r\n [resetFilterOnHide]=\"item.resetFilterOnHide\"\r\n [showAll]=\"item.showAll\"\r\n [optionLabel]=\"item.optionLabel\"\r\n [optionValue]=\"item.optionValue\"\r\n [disabled]=\"!item.enabled\"\r\n [(ngModel)]=\"item.value\"\r\n (onChange)=\"onChangeMultiple($event, item)\"\r\n [appendTo]=\"item.appendTo\"\r\n [panelStyleClass]=\"item.panelStyleClass\"\r\n [allText]=\"item.allText\"\r\n [maxSelectedLabels]=\"item.maxSelectedLabels\"\r\n [virtualScroll]=\"item.virtualScroll\"\r\n [selectedItemsLabel]=\"item.selectedItemsLabel\"\r\n [group]=\"item.group\"\r\n [customClass]=\"isUnselected(item) ? ' is-unselected' : ''\"\r\n [class]=\"'fullWidth'\"\r\n ></intelica-multi-select>\r\n } @else {\r\n <p-select\r\n [options]=\"item.options\"\r\n [(ngModel)]=\"item.value\"\r\n [optionLabel]=\"item.optionLabel\"\r\n [optionValue]=\"item.optionValue\"\r\n [placeholder]=\"item.placeholder\"\r\n [disabled]=\"!item.enabled\"\r\n (onChange)=\"onChange($event, item)\"\r\n [filter]=\"getOptionCount(item) > filterThreshold\"\r\n [resetFilterOnHide]=\"item.resetFilterOnHide\"\r\n [appendTo]=\"item.appendTo\"\r\n [panelStyleClass]=\"item.panelStyleClass\"\r\n [virtualScroll]=\"item.virtualScroll\"\r\n [virtualScrollItemSize]=\"25\"\r\n [group]=\"item.group\"\r\n [ngClass]=\"{ prSelect: true, 'is-unselected': isUnselected(item) }\"\r\n appendTo=\"body\"\r\n >\r\n <ng-template let-group #group *ngIf=\"item.group\">\r\n <div class=\"flex items-center\">\r\n <span>{{ group.label }}</span>\r\n </div>\r\n </ng-template>\r\n </p-select>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #text let-item=\"item\" let-index=\"index\">\r\n <input\r\n pInputText\r\n class=\"prInputText\"\r\n type=\"text\"\r\n [disabled]=\"!item.enabled\"\r\n [(ngModel)]=\"item.value\"\r\n [placeholder]=\"item.placeholder\"\r\n (keyup)=\"onKeyUp($event, item)\"\r\n [maxlength]=\"item.maxlength\"\r\n />\r\n</ng-template>\r\n\r\n<ng-template #checkbox let-item=\"item\" let-index=\"index\">\r\n <p-checkbox\r\n class=\"prCheckbox\"\r\n [(ngModel)]=\"item.value\"\r\n [binary]=\"true\"\r\n [disabled]=\"!item.enabled\"\r\n (onChange)=\"onChangeCheck($event, item)\"\r\n ></p-checkbox>\r\n</ng-template>\r\n\r\n<ng-template #date let-item=\"item\" let-index=\"index\">\r\n <p-datepicker\r\n [(ngModel)]=\"item.value\"\r\n [selectionMode]=\"item.range ? 'range' : 'single'\"\r\n [disabled]=\"!item.enabled\"\r\n [iconDisplay]=\"'input'\"\r\n [showIcon]=\"true\"\r\n (ngModelChange)=\"onChange($event, item)\"\r\n [view]=\"getDateView(item.dateMode)\"\r\n [dateFormat]=\"getDateFormat(item.dateMode)\"\r\n class=\"prDatePicker\"\r\n appendTo=\"body\"\r\n panelStyleClass=\"prDatePicker\"\r\n [placeholder]=\"getDateFormatPlaceholder(item.dateMode)\"\r\n [readonlyInput]=\"item.isReadOnly\"\r\n [minDate]=\"item.min\"\r\n [maxDate]=\"item.max\"\r\n ></p-datepicker>\r\n</ng-template>\r\n\r\n<ng-template #template_filter let-item=\"item\" let-index=\"index\">\r\n <ng-container *ngTemplateOutlet=\"item.content\"></ng-container>\r\n</ng-template>\r\n\r\n<ng-template #text_area let-item=\"item\" let-index=\"index\">\r\n <textarea\r\n pTextarea\r\n class=\"prInputText\"\r\n [disabled]=\"!item.enabled\"\r\n [(ngModel)]=\"item.value\"\r\n [placeholder]=\"item.placeholder\"\r\n (keyup)=\"onKeyUp($event, item)\"\r\n ></textarea>\r\n</ng-template>\r\n","import {\r\n Component,\r\n ContentChild,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n TemplateRef,\r\n} from \"@angular/core\";\r\nimport { Dialog } from \"primeng/dialog\";\r\nimport { ButtonModule } from \"primeng/button\";\r\nimport { CommonModule } from \"@angular/common\";\r\n\r\n@Component({\r\n selector: \"intelica-modal-dialog\",\r\n imports: [Dialog, ButtonModule, CommonModule],\r\n templateUrl: \"./modal-dialog.component.html\",\r\n})\r\nexport class ModalDialogComponent {\r\n /**\r\n * Título del cuadro de diálogo.\r\n * @type {string}\r\n */\r\n @Input() Title: string = \"\";\r\n\r\n /**\r\n * Tamaño del cuadro de diálogo.\r\n * @type {string}\r\n */\r\n @Input() Size: string = \"lg\";\r\n\r\n /**\r\n * Controlar el arrastre del cuadro de diálogo.\r\n * @type {boolean}\r\n */\r\n @Input() Draggable: boolean = false;\r\n\r\n /**\r\n * Controlar el cierre del cuadro de diálogo.\r\n * @type {boolean}\r\n */\r\n @Input() DisableMaskClose: boolean = false;\r\n\r\n /**\r\n * Evento emitido al cerrar el cuadro de diálogo.\r\n * @type {EventEmitter<boolean>}\r\n */\r\n @Output() EmmitCloseModal = new EventEmitter<boolean>();\r\n\r\n /**\r\n * Captura la plantilla del contenido.\r\n * @type {TemplateRef<any>}\r\n */\r\n @ContentChild(\"modalContent\") modalContentTemplate!: TemplateRef<any>;\r\n\r\n /**\r\n * Visibilidad del cuadro de diálogo.\r\n * @type {string}\r\n */\r\n Visible: boolean = false;\r\n\r\n public showDialog() {\r\n this.Visible = true;\r\n }\r\n\r\n public closeDialog() {\r\n this.Visible = false;\r\n this.EmmitCloseModal.emit(false);\r\n }\r\n}\r\n","<p-dialog\r\n class=\"prDialog prDialog--{{ Size }}\"\r\n [modal]=\"true\"\r\n [(visible)]=\"Visible\"\r\n [draggable]=\"Draggable\"\r\n [dismissableMask]=\"!DisableMaskClose\"\r\n (onHide)=\"closeDialog()\"\r\n>\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"custom-header\">\r\n <h2>\r\n <ng-content select=\"[titleHeaderMenu]\"></ng-content>\r\n </h2>\r\n <button class=\"grButton--icon-close-modal\" (click)=\"closeDialog()\">\r\n <i class=\"icon-close1\"></i>\r\n </button>\r\n </div>\r\n </ng-template>\r\n <div class=\"prDialog__content\">\r\n <ng-container>\r\n <ng-container *ngTemplateOutlet=\"modalContentTemplate\"></ng-container>\r\n </ng-container>\r\n </div>\r\n</p-dialog>\r\n","import { ContentChild, Directive, EventEmitter, Input, Output } from \"@angular/core\";\r\n\r\n@Directive({\r\n\tselector: \"itemsplit\",\r\n})\r\nexport class ItemSplitDirective {\r\n\t/**\r\n\t * Nombre de la acción.\r\n\t * @type {string}\r\n\t */\r\n\t@Input() name: string = \"\";\r\n\r\n\t/**\r\n\t * Indica si los botones asociados a la acción deben ocultarse.\r\n\t * @type {boolean}\r\n\t * @default false\r\n\t */\r\n\t@Input() hideButtons: boolean = false;\r\n\r\n\t/**\r\n\t * Indica si detener la propagación de eventos al hacer clic en la acción.\r\n\t * @type {boolean}\r\n\t * @default false\r\n\t */\r\n\t@Input() stopPropagation: boolean = false;\r\n\r\n\t/**\r\n\t * Evento emitido cuando se hace clic en la acción.\r\n\t * @type {EventEmitter<any>}\r\n\t */\r\n\t@Output() onClick: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n\t/**\r\n\t * Referencia al contenido proporcionado por la plantilla.\r\n\t * @type {any}\r\n\t */\r\n\t@ContentChild(\"template\") template!: any;\r\n\r\n\t/**\r\n\t * Indica si la acción está activa o no.\r\n\t * @type {boolean}\r\n\t * @default false\r\n\t */\r\n\tactive: boolean = false;\r\n}\r\n","import { Component, ContentChildren, QueryList } from \"@angular/core\";\r\nimport { PopoverModule } from \"primeng/popover\";\r\nimport { ItemSplitDirective } from \"./itemsplit.directive\";\r\nimport { CommonModule } from \"@angular/common\";\r\n\r\n@Component({\r\n\tselector: \"intelica-button-split\",\r\n\timports: [PopoverModule, CommonModule],\r\n\ttemplateUrl: \"./button-split.component.html\",\r\n})\r\nexport class ButtonSplitComponent {\r\n\t/**\r\n\t * Directiva que representa una colección de elementos hijos del tipo `ItemSplitDirective`.\r\n\t * Se utiliza para acceder a las instancias de la directiva `ItemSplitDirective` dentro de un componente.\r\n\t * @type {QueryList<ItemSplitDirective>}\r\n\t */\r\n\t@ContentChildren(ItemSplitDirective)\r\n\titemsSplit!: QueryList<ItemSplitDirective>;\r\n\r\n\t/**\r\n\t * Muestra la plantilla asociada a una acción si se proporciona un manejador de eventos `onClick`.\r\n\t * - Emite el evento `onClick` de la acción si está definido.\r\n\t * - Detiene la propagación del evento si la propiedad `stopPropagation` de la acción está establecida.\r\n\t * - Activa la acción.\r\n\t * - Oculta el menú de selección de acciones si se cumplen ciertas condiciones.\r\n\t *\r\n\t * @param {ItemSplitDirective} item - La acción para la cual mostrar la plantilla.\r\n\t */\r\n\tshowTemplate(item: ItemSplitDirective): void {\r\n\t\t// Emite el evento onClick de la acción si está definido.\r\n\t\tif (item.onClick) {\r\n\t\t\titem.onClick.emit();\r\n\t\t}\r\n\r\n\t\t// Detiene la propagación del evento si la propiedad stopPropagation del item está establecida.\r\n\t\tif (item.stopPropagation) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Activa el item.\r\n\t\titem.active = true;\r\n\t}\r\n}\r\n","<button class=\"grButton grButton--icon grButton--select-popover\" (click)=\"op.toggle($event)\"><i class=\"icon icon-list-options\"></i></button>\r\n<p-popover #op>\r\n\t<div class=\"prPopoverV3 prPopoverV3--contentLeft\">\r\n\t\t<ul>\r\n\t\t\t<li [ngClass]=\"{ hidden: !item.active }\" *ngFor=\"let item of itemsSplit\" (click)=\"showTemplate(item)\">{{ item.name }}</li>\r\n\t\t</ul>\r\n\t</div>\r\n</p-popover>\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from \"@angular/core\";\r\nimport { PropertiesModel } from \"./model/properties.model\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { RadioButtonModule } from \"primeng/radiobutton\";\r\n\r\n@Component({\r\n\tselector: \"intelica-record-per-page\",\r\n\timports: [CommonModule, FormsModule, RadioButtonModule],\r\n\ttemplateUrl: \"./record-per-page.component.html\",\r\n})\r\nexport class RecordPerPageComponent implements OnInit, OnChanges {\r\n\t/**\r\n\t * Lista de propiedades del modelo `PropertiesModel`.\r\n\t * @type {PropertiesModel[]}\r\n\t * @default []\r\n\t */\r\n\t@Input() Properties: PropertiesModel[] = [];\r\n\r\n\t/**\r\n\t * Evento emitido al realizar un cambio de pagina, envia el pageSize a los componentes.\r\n\t * @type {EventEmitter<any>}\r\n\t */\r\n\t@Output() ReturnPage: EventEmitter<any> = new EventEmitter();\r\n\r\n\t/**\r\n\t * Términos utilizados en el componente.\r\n\t * @type {any}\r\n\t */\r\n\tTerms: any;\r\n\r\n\t/**\r\n\t * Lista de registros.\r\n\t * @type {number[]}\r\n\t * @default []\r\n\t */\r\n\tRecords: number[] = [];\r\n\r\n\t/**\r\n\t * Tamaño de página predeterminado.\r\n\t * @type {number}\r\n\t * @default 20\r\n\t * @private\r\n\t */\r\n\tPageSize: number = 20;\r\n\r\n\tconstructor() {}\r\n\r\n\tngOnChanges(changes: any): void {\r\n\t\tif (changes.Properties && changes.Properties.currentValue.length > 0) this.FillRecordperPage();\r\n\t}\r\n\r\n\tngOnDestroy(): void {}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.FillRecordperPage();\r\n\t}\r\n\r\n\tChangePageSize() {\r\n\t\tthis.ReturnPage.emit(this.PageSize);\r\n\t}\r\n\r\n\t/**\r\n\t * Rellena la lista de registros por página basándose en las propiedades del modelo.\r\n\t * - Utiliza el término de idioma global para la configuración.\r\n\t * - Filtra las propiedades para obtener la propiedad 'RP' (Registros por Página).\r\n\t * - Si la propiedad no existe, la función sale.\r\n\t * - Divide el valor de la propiedad 'RP' en una lista de números.\r\n\t * - Establece el tamaño de página predeterminado como el primer elemento de la lista.\r\n\t */\r\n\tFillRecordperPage(): any {\r\n\t\t// Utiliza el término de idioma global para la configuración.\r\n\t\t// this.terms = this.globals.languageTerms;\r\n\r\n\t\t// Filtra las propiedades para obtener la propiedad 'RP' (Registros por Página).\r\n\t\tvar rpProperty = this.Properties.filter(x => x.code === \"RP\");\r\n\r\n\t\t// Si la propiedad no existe, la función sale temprano.\r\n\t\tif (rpProperty.length === 0) return;\r\n\r\n\t\t// Divide el valor de la propiedad 'RP' en una lista de números.\r\n\t\tthis.Records = rpProperty[0].value.split(\",\").map(x => parseInt(x));\r\n\r\n\t\t// Establece el tamaño de página predeterminado como el primer elemento de la lista.\r\n\t\tthis.PageSize = this.Records[0];\r\n\t}\r\n}\r\n","<div style=\"width: 400px\">\r\n\t<div class=\"recordsPerPageCtr\">\r\n\t\t<ng-container *ngFor=\"let record of Records; let i = index\">\r\n\t\t\t<div class=\"form-check form-check-inline\">\r\n\t\t\t\t<p-radiobutton class=\"prRadioButton\" [inputId]=\"'radio-' + i\" name=\"optSortRP1\" [(ngModel)]=\"PageSize\" [value]=\"record\" [tabindex]=\"i\" />\r\n\t\t\t\t<label [for]=\"'radio-' + i\">{{ record }}</label>\r\n\t\t\t</div>\r\n\t\t</ng-container>\r\n\t</div>\r\n\t<div class=\"recordsPerPageBtnCtr\">\r\n\t\t<button class=\"grButton grButton--primary applyAnalytics\" (click)=\"ChangePageSize()\">\r\n\t\t\t<span>Apply</span>\r\n\t\t</button>\r\n\t</div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { RadioButtonModule } from \"primeng/radiobutton\";\r\nimport { ButtonModule } from \"primeng/button\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { CascadeFilterModel } from \"./model/cascade-filter\";\r\nimport { OrderConstants } from \"./model/order.constants\";\r\n\r\n@Component({\r\n\tselector: \"intelica-sorting\",\r\n\timports: [CommonModule, FormsModule, RadioButtonModule, ButtonModule],\r\n\ttemplateUrl: \"./sorting.component.html\",\r\n})\r\nexport class SortingComponent implements OnInit, OnChanges {\r\n\t/**\r\n\t * Suscripción a un observable.\r\n\t * @type {Subscription}\r\n\t */\r\n\tsubscription: Subscription = new Subscription();\r\n\r\n\t/**\r\n\t * Términos utilizados en el componente.\r\n\t * @type {any}\r\n\t */\r\n\tterms: any;\r\n\r\n\t/**\r\n\t * Lista de modelos de filtro en cascada.\r\n\t * @type {CascadeFilterModel[]}\r\n\t * @default []\r\n\t */\r\n\tLCascadefilter: CascadeFilterModel[] = [];\r\n\r\n\t/**\r\n\t * Número máximo de ordenamiento.\r\n\t * @type {number}\r\n\t * @default 4\r\n\t */\r\n\tNumMaxSorting = 4;\r\n\r\n\t/**\r\n\t * Lista de objetos de ordenamiento.\r\n\t * @type {any}\r\n\t * @default []\r\n\t */\r\n\t@Input() Sorters: any = [];\r\n\r\n\t/**\r\n\t * Objeto que indica el ordenamiento actual.\r\n\t * @type {any}\r\n\t */\r\n\t@Input() OrderBy: any;\r\n\r\n\t/**\r\n\t * Objeto que indica el ordenamiento predeterminado.\r\n\t * @type {any}\r\n\t * @default {}\r\n\t */\r\n\t@Input() OrderByDefault: any = {};\r\n\r\n\t/**\r\n\t * Indica si se debe realizar un solo renderizado.\r\n\t * @type {boolean}\r\n\t * @default false\r\n\t */\r\n\t@Input() OneRender: boolean = false;\r\n\r\n\t/**\r\n\t * Evento emitido al realizar un retorno de datos.\r\n\t * @type {EventEmitter<any>}\r\n\t */\r\n\t@Output() ReturnSorting: EventEmitter<any> = new EventEmitter();\r\n\r\n\t/**\r\n\t * Evento emitido al alertar sobre una ordenación.\r\n\t * @type {EventEmitter<any>}\r\n\t */\r\n\t@Output() AlertOrder: EventEmitter<any> = new EventEmitter();\r\n\r\n\t/**\r\n\t * Objeto que contiene constantes de ordenación.\r\n\t * @type {OrderConstants}\r\n\t */\r\n\tOrder = OrderConstants;\r\n\r\n\tconstructor() {}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.subscription.unsubscribe();\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\t// this.subscription = this.sharedService.isLoadingPageInfo.subscribe({\r\n\t\t// \tnext: isLoadingPageInfo => {\r\n\t\t// \t\tif (!isLoadingPageInfo) this.terms = this.globals.languageTerms;\r\n\t\t// \t},\r\n\t\t// });\r\n\t}\r\n\r\n\tngOnChanges(changes: any): void {\r\n\t\tif (changes.OrderBy && this.Sorters.length > 0) this.GetInfoSorting();\r\n\t\tif (changes.Sorters && this.Sorters.length > 0) this.GetInfoSorting();\r\n\t\t// this.terms = this.globals.languageTerms;\r\n\t}\r\n\r\n\t/**\r\n\t * Obtiene información sobre la ordenación y la asigna a la lista de modelos de filtro en cascada.\r\n\t * - Si no hay información de ordenación (`orderBy`), la función sale.\r\n\t * - Crea una lista de modelos de filtro en cascada con una longitud determinada.\r\n\t * - Filtra las propiedades de ordenación que coinciden con los campos existentes.\r\n\t * - Asigna las propiedades de ordenación a los modelos de filtro en cascada.\r\n\t */\r\n\tGetInfoSorting(): void {\r\n\t\t// Si no hay información de ordenación (orderBy), la función sale temprano.\r\n\t\tif (!this.OrderBy) return;\r\n\r\n\t\t// Crea una lista de modelos de filtro en cascada con una longitud determinada.\r\n\t\tthis.LCascadefilter = this.PushCascade(this.Sorters.length);\r\n\r\n\t\t// Filtra las propiedades de ordenación que coinciden con los campos existentes.\r\n\t\tthis.OrderBy = Object.fromEntries(Object.entries(this.OrderBy).filter(([key]) => this.Sorters.find((y: any) => y.field === key)));\r\n\r\n\t\t// Obtiene las columnas y el orden de la ordenación.\r\n\t\tconst columns = Object.keys(this.OrderBy).map(x => x);\r\n\t\tconst order = columns.map(x => this.OrderBy[x]);\r\n\r\n\t\t// Asigna las propiedades de ordenación a los modelos de filtro en cascada.\r\n\t\tcolumns.forEach((f: any, i) => {\r\n\t\t\tthis.LCascadefilter[i].id = f;\r\n\t\t\tthis.LCascadefilter[i].order = order[i];\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Función que genera una lista de modelos de filtro en cascada con una cantidad determinada.\r\n\t *\r\n\t * @param {number} cant - Cantidad de modelos de filtro en cascada a generar.\r\n\t * @returns {Array} - Lista de modelos de filtro en cascada.\r\n\t */\r\n\tPushCascade(cant: number): Array<any> {\r\n\t\tlet Lcascadefilter = [];\r\n\t\tfor (let i = 0; i < cant; i++) {\r\n\t\t\tLcascadefilter.push({ id: \"0\", index: i, order: OrderConstants.ORDER_BY_ASC });\r\n\t\t}\r\n\t\treturn Lcascadefilter;\r\n\t}\r\n\r\n\t/**\r\n\t * Verifica y procesa la ordenación en cascada.\r\n\t * - Si algún modelo de filtro en cascada tiene un ID diferente de '0', se realiza la ordenación.\r\n\t * - De lo contrario, se emite una alerta indicando que no hay columna seleccionada para ordenar.\r\n\t */\r\n\tCheckCascadeOrder(): void {\r\n\t\tthis.OrderBy = {};\r\n\t\tif (this.LCascadefilter.some(s => s.id !== \"0\")) {\r\n\t\t\tthis.CascadeOrder();\r\n\t\t} else {\r\n\t\t\treturn this.AlertOrder.emit({ ValidMessage: \"Select at least one column to sort\" }); //this.sharedService.getTermTextByCode(\"MSG_NO_COLUMN_ORDER\") });\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Procesa la ordenación en cascada y emite el resultado.\r\n\t */\r\n\tCascadeOrder(): void {\r\n\t\tthis.LCascadefilter.forEach(element => {\r\n\t\t\tif (element.id !== \"0\") {\r\n\t\t\t\tthis.OrderBy[element.id] = element.order;\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.ReturnSorting.emit(this.OrderBy);\r\n\t}\r\n\r\n\t/**\r\n\t * Restaura la ordenación en cascada a la configuración predeterminada y obtiene la información de ordenación.\r\n\t */\r\n\tClearCascadeOrder(): void {\r\n\t\tthis.OrderBy = { ...this.OrderByDefault };\r\n\t\tthis.GetInfoSorting();\r\n\t}\r\n\r\n\t/**\r\n\t * Verifica si un modelo de filtro en cascada está deshabilitado basándose en su ID.\r\n\t *\r\n\t * @param {string} id - ID del modelo de filtro en cascada.\r\n\t * @param {number} index - Índice del modelo de filtro en cascada.\r\n\t * @returns {boolean} - Indica si el modelo de filtro en cascada está deshabilitado.\r\n\t */\r\n\tCheckCascadeDisabled(id: string, index: number): boolean {\r\n\t\treturn this.LCascadefilter.some(e => e.id == id);\r\n\t}\r\n}\r\n","<ng-container>\r\n\t<div class=\"sortingAnalytics\">\r\n\t\t<div class=\"sortingCtr\">\r\n\t\t\t<div></div>\r\n\t\t\t<div class=\"triangle-top\"></div>\r\n\t\t\t<div class=\"triangle-down\"></div>\r\n\t\t\t<ng-container *ngIf=\"OneRender; else multiple_render\">\r\n\t\t\t\t<ng-container *ngTemplateOutlet=\"one_render; context: { Sorters: Sorters }\"></ng-container>\r\n\t\t\t</ng-container>\r\n\t\t</div>\r\n\r\n\t\t<div class=\"sortingBtnCtr\">\r\n\t\t\t<!-- <span>{{'BTN_APPLY_SORT' | term : terms}}</span> -->\r\n\t\t\t<p-button pRipple class=\"prButton applyAnalytics\" label=\"{{ 'Apply sort' }}\" (onClick)=\"CheckCascadeOrder()\" />\r\n\t\t\t<!-- <span>{{'BTN_CLEAR_SORT' | term : terms}}</span> -->\r\n\t\t\t<p-button pRipple class=\"prButton cleanAnalytics\" label=\"{{ 'Clear sort' }}\" severity=\"secondary\" (onClick)=\"ClearCascadeOrder()\" />\r\n\t\t</div>\r\n\t</div>\r\n</ng-container>\r\n\r\n<ng-template #one_render let-Sorters=\"Sorters\">\r\n\t<ng-container *ngFor=\"let row of Sorters; let i = index\">\r\n\t\t<ng-container *ngIf=\"LCascadefilter.length > 0 && i <= NumMaxSorting\">\r\n\t\t\t<ng-container *ngIf=\"OneRender && i == 0\">\r\n\t\t\t\t<div class=\"idx-select\" *ngIf=\"i < LCascadefilter.length\">\r\n\t\t\t\t\t<div class=\"formRowInputNumber\">\r\n\t\t\t\t\t\t<span>{{ i + 1 }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<select class=\"grSelect\" [(ngModel)]=\"LCascadefilter[i].id\">\r\n\t\t\t\t\t\t<option *ngIf=\"i === 0\" [value]=\"0\">\r\n\t\t\t\t\t\t\t--\r\n\t\t\t\t\t\t\t<!-- <span>{{ \"LBL_SORT_BY\" | term : terms }}</span> -->\r\n\t\t\t\t\t\t\t<span>Sort By</span>\r\n\t\t\t\t\t\t\t--\r\n\t\t\t\t\t\t</option>\r\n\t\t\t\t\t\t<option *ngFor=\"let sort of Sorters\" [ngValue]=\"sort.field\" [disabled]=\"CheckCascadeDisabled(sort.field, i)\">\r\n\t\t\t\t\t\t\t{{ sort.headerText }}\r\n\t\t\t\t\t\t</option>\r\n\t\t\t\t\t</select>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div class=\"form-check\" *ngIf=\"i < LCascadefilter.length\">\r\n\t\t\t\t\t<p-radiobutton class=\"prRadioButton\" name=\"optSort{{ i }}\" [value]=\"Order.ORDER_BY_ASC\" [inputId]=\"'test{{ i + i + 1 }}'\" [(ngModel)]=\"LCascadefilter[i].order\" tabindex=\"0\" />\r\n\t\t\t\t\t<label for=\"test{{ i + i + 1 }}\"></label>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div class=\"form-check\" *ngIf=\"i < LCascadefilter.length\">\r\n\t\t\t\t\t<p-radiobutton class=\"prRadioButton\" name=\"optSort{{ i }}\" [value]=\"Order.ORDER_BY_DESC\" [inputId]=\"'test{{ i + i + 2 }}'\" [(ngModel)]=\"LCascadefilter[i].order\" tabindex=\"0\" />\r\n\t\t\t\t\t<label for=\"test{{ i + i + 2 }}\"></label>\r\n\t\t\t\t</div>\r\n\t\t\t</ng-container>\r\n\t\t</ng-container>\r\n\t</ng-container>\r\n</ng-template>\r\n\r\n<ng-template #multiple_render>\r\n\t<ng-container *ngFor=\"let row of Sorters; let i = index\">\r\n\t\t<ng-container *ngIf=\"LCascadefilter.length > 0 && i <= NumMaxSorting\">\r\n\t\t\t<div class=\"idx-select\" *ngIf=\"i < LCascadefilter.length\">\r\n\t\t\t\t<div class=\"formRowInputNumber\">\r\n\t\t\t\t\t<span>{{ i + 1 }}</span>\r\n\t\t\t\t</div>\r\n\t\t\t\t<select class=\"grSelect\" [(ngModel)]=\"LCascadefilter[i].id\">\r\n\t\t\t\t\t<option *ngIf=\"i === 0\" [value]=\"0\">\r\n\t\t\t\t\t\t--\r\n\t\t\t\t\t\t<!-- <span>{{ \"LBL_SORT_BY\" | term : terms }}</span> -->\r\n\t\t\t\t\t\t<span>Sort By</span>\r\n\t\t\t\t\t\t--\r\n\t\t\t\t\t</option>\r\n\t\t\t\t\t<option *ngIf=\"i > 0\" [value]=\"0\">\r\n\t\t\t\t\t\t--\r\n\t\t\t\t\t\t<!-- <span>{{ \"LBL_SORT_THEN\" | term : terms }}</span> -->\r\n\t\t\t\t\t\t<span>Then by</span>\r\n\t\t\t\t\t\t--\r\n\t\t\t\t\t</option>\r\n\t\t\t\t\t<option *ngFor=\"let sort of Sorters\" [ngValue]=\"sort.field\" [disabled]=\"CheckCascadeDisabled(sort.field, i)\">\r\n\t\t\t\t\t\t{{ sort.headerText }}\r\n\t\t\t\t\t</option>\r\n\t\t\t\t</select>\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"form-check\" *ngIf=\"i < LCascadefilter.length\">\r\n\t\t\t\t<p-radiobutton class=\"prRadioButton\" name=\"optSort{{ i }}\" [value]=\"Order.ORDER_BY_ASC\" [inputId]=\"'test{{ i + i + 1 }}'\" [(ngModel)]=\"LCascadefilter[i].order\" tabindex=\"0\" />\r\n\t\t\t\t<label for=\"test{{ i + i + 1 }}\"></label>\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"form-check\" *ngIf=\"i < LCascadefilter.length\">\r\n\t\t\t\t<p-radiobutton class=\"prRadioButton\" name=\"optSort{{ i }}\" [value]=\"Order.ORDER_BY_DESC\" [inputId]=\"'test{{ i + i + 2 }}'\" [(ngModel)]=\"LCascadefilter[i].order\" tabindex=\"0\" />\r\n\t\t\t\t<label for=\"test{{ i + i + 2 }}\"></label>\r\n\t\t\t</div>\r\n\t\t</ng-container>\r\n\t</ng-container>\r\n</ng-template>\r\n","import { Component, Input } from \"@angular/core\";\r\nimport { PopoverInformationModel } from \"./model/popover-information.model\";\r\nimport { CommonModule } from \"@angular/common\";\r\n\r\n@Component({\r\n\tselector: \"intelica-popover\",\r\n\timports: [CommonModule],\r\n\ttemplateUrl: \"./popover.component.html\",\r\n})\r\nexport class PopoverComponent {\r\n\t/**\r\n\t * Información de asignación utilizada para la inicialización del popover.\r\n\t * @type {PopoverModel}\r\n\t * @default {}\r\n\t */\r\n\t@Input() information: PopoverInformationModel[] = [];\r\n}\r\n","<div class=\"tooltipTable tooltipTable--limitHeight\">\r\n\t<div class=\"tooltipTable__row\" *ngFor=\"let item of information\">\r\n\t\t<div class=\"tooltipTable__left\">\r\n\t\t\t<span>{{ item.title }}</span>\r\n\t\t</div>\r\n\t\t<div class=\"tooltipTable__right tooltipTable__right--gray\">{{ item.description }}</div>\r\n\t</div>\r\n</div>\r\n","import { CommonModule, isPlatformBrowser } from \"@angular/common\";\r\nimport { AfterViewInit, Component, ElementRef, EventEmitter, Inject, Input, Output, PLATFORM_ID } from \"@angular/core\";\r\nimport * as echarts from \"echarts\";\r\nimport { EChartsOption } from \"echarts\";\r\n\r\n@Component({\r\n\tselector: \"intelica-echart\",\r\n\timports: [CommonModule],\r\n\ttemplateUrl: \"./echart.component.html\",\r\n})\r\nexport class EchartComponent implements AfterViewInit {\r\n\t@Input() config!: EChartsOption | undefined;\r\n\t@Input() id!: string;\r\n\t@Input() renderer: \"canvas\" | \"svg\" = \"canvas\";\r\n\t@Input() containerStyle: { [klass: string]: any } = {\r\n\t\twidth: \"100%\",\r\n\t\theight: \"400px\",\r\n\t};\r\n\t@Output() event = new EventEmitter<any>();\r\n\r\n\tchart!: echarts.ECharts;\r\n\r\n\tconstructor(private el: ElementRef, @Inject(PLATFORM_ID) private platformId: Object) {}\r\n\r\n\tngAfterViewInit(): void {\r\n\t\tconst chartElement = this.el.nativeElement.querySelector(`#${this.id}_plot`);\r\n\t\tif (!this.config) {\r\n\t\t\tthrow new Error(\"Chart configuration is not set\");\r\n\t\t}\r\n\t\tif (!isPlatformBrowser(this.platformId)) {\r\n\t\t\tthrow new Error(\"Platform is not browser\");\r\n\t\t}\r\n\r\n\t\tif (!chartElement) {\r\n\t\t\tthrow new Error(\"Plot area not found\");\r\n\t\t}\r\n\r\n\t\tthis.initChart(chartElement);\r\n\t}\r\n\r\n\trefreshChart() {\r\n\t\tthis.chart.setOption(this.config!);\r\n\t}\r\n\r\n\tresize() {\r\n\t\tif (this.chart) {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis.chart.resize();\r\n\t\t\t}, 1);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate initChart(chartElement: any) {\r\n\t\tconst observer = new ResizeObserver(() => this.resize());\r\n\t\tthis.chart = echarts.init(chartElement, null, { renderer: this.renderer });\r\n\t\tthis.chart.setOption(this.config!);\r\n\t\tthis.chart.on(\"click\", params => {\r\n\t\t\tthis.event.emit(params);\r\n\t\t});\r\n\t\tobserver.observe(chartElement);\r\n\t}\r\n}\r\n","<div [id]=\"id + '_plot'\" class=\"chart\" [ngStyle]=\"containerStyle\"></div>\r\n","import { Component, ViewChild, ElementRef, ContentChild, TemplateRef, HostListener, ContentChildren, QueryList, OnInit, inject, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport { ButtonModule } from \"primeng/button\";\r\nimport { InputGroupAddonModule } from \"primeng/inputgroupaddon\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { RippleModule } from \"primeng/ripple\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\n\r\n@Component({\r\n\tselector: \"intelica-template-menu\",\r\n\timports: [ButtonModule, InputGroupAddonModule, CommonModule, RippleModule, TermPipe],\r\n\ttemplateUrl: \"./template-menu.component.html\",\r\n})\r\nexport class TemplateMenuComponent {\r\n\treadonly GlobalTermService = inject(GlobalTermService);\r\n\t@ViewChild(\"popover\") Popover!: ElementRef;\r\n\t@ViewChild(\"menuButton\") MenuButton!: ElementRef;\r\n\t@ViewChild(\"popoverContainer\") PopoverContainer!: ElementRef;\r\n\r\n\t@Output(\"onOpen\") openPanelEvent: EventEmitter<any> = new EventEmitter<any>();\r\n\t@Output(\"onClose\") closePanelEvent: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n\tIsPopoverOpen: boolean = false;\r\n\tIsClickInsideDatepicker: boolean = false;\r\n\r\n\tconstructor() {}\r\n\r\n\topenPanel() {\r\n\t\tthis.IsPopoverOpen = true;\r\n\t\tthis.Popover.nativeElement.style.display = \"block\";\r\n\t\tthis.MenuButton.nativeElement.classList.add(\"active\");\r\n\t\tthis.PopoverContainer.nativeElement.classList.add(\"backdrop-visible\");\r\n\t\tthis.openPanelEvent.emit({\r\n\t\t\topen: this.IsPopoverOpen,\r\n\t\t\telement: this.Popover.nativeElement,\r\n\t\t});\r\n\t}\r\n\r\n\tclosePanel() {\r\n\t\tthis.IsPopoverOpen = false;\r\n\t\tthis.Popover.nativeElement.style.display = \"none\";\r\n\t\tthis.MenuButton.nativeElement.classList.remove(\"active\");\r\n\t\tthis.PopoverContainer.nativeElement.classList.remove(\"backdrop-visible\");\r\n\t\tthis.closePanelEvent.emit({\r\n\t\t\topen: this.IsPopoverOpen,\r\n\t\t\telement: this.Popover.nativeElement,\r\n\t\t});\r\n\t}\r\n\r\n\ttogglePanel(event?: Event) {\r\n\t\tthis.IsPopoverOpen ? this.closePanel() : this.openPanel();\r\n\t}\r\n\r\n\t@HostListener(\"mousedown\", [\"$event\"])\r\n\tonMouseDown(event: Event) {\r\n\t\tconst target = event.target as HTMLElement;\r\n\t\tif (target.closest(\".p-datepicker\") || target.closest(\".p-inputtext\") || target.closest(\".p-select-panel\") || target.closest(\".p-multiselect-panel\")) {\r\n\t\t\tthis.IsClickInsideDatepicker = true;\r\n\t\t}\r\n\t}\r\n\r\n\t@HostListener(\"window:mousedown\", [\"$event\"])\r\n\tonMouseDownOutsideBody(event: Event) {\r\n\t\tconst target = event.target as HTMLElement;\r\n\t\tif (target.closest(\".p-datepicker\") || target.closest(\".p-inputtext\") || target.closest(\".p-select-panel\") || target.closest(\".p-multiselect-panel\") || target.closest(\".swal2-container\")) {\r\n\t\t\tthis.IsClickInsideDatepicker = true;\r\n\t\t}\r\n\t}\r\n\r\n\t@HostListener(\"mouseup\", [\"$event\"])\r\n\tonMouseUp(event: Event) {\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.IsClickInsideDatepicker = false;\r\n\t\t}, 100);\r\n\t}\r\n\r\n\t@HostListener(\"document:click\", [\"$event\"])\r\n\tcloseAll(event?: Event) {\r\n\t\tif (!event) return;\r\n\t\tconst target = event.target as HTMLElement;\r\n\t\t// const forceCloseClasses = [\"closePopoverNow\", \"closeTemplateMenu\"];\r\n\t\t// if (forceCloseClasses.some(className => target.closest(`.${className}`))) {\r\n\t\t// \tthis.closePanel();\r\n\t\t// \treturn;\r\n\t\t// }\r\n\t\tif (this.IsPopoverOpen && this.PopoverContainer && target === this.PopoverContainer.nativeElement) {\r\n\t\t\tthis.closePanel();\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst allowedClasses = [\r\n\t\t\t\"prSelect\",\r\n\t\t\t\"p-select-option-selected\",\r\n\t\t\t\"p-select-option\",\r\n\t\t\t\"p-datepicker-panel\",\r\n\t\t\t\"p-datepicker-select-month\",\r\n\t\t\t\"p-button-text\",\r\n\t\t\t\"p-datepicker-select-year\",\r\n\t\t\t\"p-datepicker-month\",\r\n\t\t\t\"p-datepicker-year\",\r\n\t\t\t\"p-checkbox-input\",\r\n\t\t\t\"p-multiselect-option\",\r\n\t\t\t\"p-multiselect-filter\",\r\n\t\t\t\"p-multiselect-empty-message\",\r\n\t\t\t\"p-inputicon\",\r\n\t\t\t\"p-tree-node-selected\",\r\n\t\t\t\"p-tree-node-content\",\r\n\t\t\t\"p-multiselect-header\",\r\n\t\t\t\"grButton--icon-close-modal\",\r\n\t\t\t\"p-overlay-mask\",\r\n\t\t\t\"p-select-clear-icon\",\r\n\t\t\t\"formRowInputClear\",\r\n\t\t\t\"icon-times\",\r\n\t\t\t\"p-select-empty-message\",\r\n\t\t\t\"p-select-list\",\r\n\t\t\t\"p-iconfield\",\r\n\t\t\t\"p-inputtext\",\r\n\t\t\t\"p-select-header\",\r\n\t\t\t\"p-overlay\",\r\n\t\t\t\"p-select-filter\",\r\n\t\t\t\"p-overlay-content\",\r\n\t\t\t\"p-select-overlay\",\r\n\t\t\t\"p-select-panel\",\r\n\t\t\t\"p-multiselect-panel\",\r\n\t\t];\r\n\t\tif (this.IsClickInsideDatepicker) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (allowedClasses.some(className => target.closest(`.${className}`))) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (this.Popover && !this.Popover.nativeElement.contains(target) && this.MenuButton && !this.MenuButton.nativeElement.contains(target)) {\r\n\t\t\tthis.closePanel();\r\n\t\t}\r\n\t}\r\n}\r\n","<div #popoverContainer class=\"grPopoverContainer\">\r\n\t<button #menuButton class=\"grMenuTemplate\" (click)=\"togglePanel($event)\">\r\n\t\t<span class=\"grMenuTemplate__ico\"><i class=\"icon icon-filter-option\"></i></span>\r\n\t\t<span class=\"grMenuTemplate__txt\">{{ \"Filters\" | term : GlobalTermService.languageCode }}</span>\r\n\t</button>\r\n\t<div class=\"grPopover\" #popover>\r\n\t\t<div class=\"grPopoverMenu\" [ngClass]=\"{ hidden: !IsPopoverOpen }\">\r\n\t\t\t<div class=\"grPopoverHeader\">\r\n\t\t\t\t<h3>\r\n\t\t\t\t\t<span>{{ \"Filters\" | term : GlobalTermService.languageCode }}</span>\r\n\t\t\t\t</h3>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"grPopoverBody grPopoverBody--template\">\r\n\t\t\t\t<ng-content></ng-content>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n","import { Injectable, signal } from \"@angular/core\";\r\n@Injectable({ providedIn: \"root\" })\r\nexport class SkeletonService {\r\n\tisLoading = signal<boolean>(false);\r\n\tpublic hide() {\r\n\t\tthis.isLoading.set(false);\r\n\t}\r\n\tpublic show() {\r\n\t\tthis.isLoading.set(true);\r\n\t}\r\n}\r\n","import { Component, inject, Input } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { SkeletonService } from \"../../services/skeleton.service\";\r\n\r\n@Component({\r\n\tselector: \"intelica-skeleton\",\r\n\timports: [CommonModule],\r\n\ttemplateUrl: \"./skeleton.component.html\",\r\n})\r\nexport class SkeletonComponent {\r\n\tprivate readonly skeletonService = inject(SkeletonService);\r\n\tisLoading = this.skeletonService.isLoading;\r\n\r\n\t@Input() localLoading: boolean = false;\r\n\t@Input() show: boolean = false;\r\n}\r\n","@if((isLoading() && !localLoading) || show){\r\n<ng-content></ng-content>\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { SkeletonModule } from \"primeng/skeleton\";\r\n\r\n@Component({\r\n\tselector: \"intelica-skeleton-table\",\r\n\timports: [CommonModule, SkeletonModule],\r\n\ttemplateUrl: \"./skeleton-table.component.html\",\r\n})\r\nexport class SkeletonTableComponent implements OnInit {\r\n\t/**\r\n\t * @description number of rows to display\r\n\t * @default 6\r\n\t * @type number\r\n\t * @example <intelica-skeleton-table [rows]=\"6\"></intelica-skeleton-table>\r\n\t */\r\n\t@Input() rows: 2 | 3 | 4 | 6 | 12 = 6;\r\n\t/**\r\n\t * @description number of columns to display\r\n\t * @default 6\r\n\t * @type number\r\n\t * @example <intelica-skeleton-table [columns]=\"6\"></intelica-skeleton-table>\r\n\t */\r\n\t@Input() columns: 2 | 3 | 4 | 6 | 12 = 6;\r\n\r\n\t@Input() showLeftSkeleton: boolean = true;\r\n\t@Input() showRightSkeleton: boolean = true;\r\n\r\n\tcolumnSizes: string[] = [];\r\n\r\n\tngOnInit(): void {\r\n\t\tconst baseSize = 12 / this.columns;\r\n\t\tthis.columnSizes = Array.from({ length: this.columns }, (_, i) => {\r\n\t\t\treturn `col-${baseSize}`;\r\n\t\t});\r\n\t}\r\n\r\n\tget justifyClass(): string | null {\r\n\t\tif (this.showLeftSkeleton && this.showRightSkeleton) return \"justify-content-between\";\r\n\t\tif (this.showLeftSkeleton) return \"justify-content-start\";\r\n\t\tif (this.showRightSkeleton) return \"justify-content-end\";\r\n\t\treturn null;\r\n\t}\r\n\r\n\tgetRows() {\r\n\t\treturn new Array(this.rows);\r\n\t}\r\n}\r\n","<div class=\"skeletonTable\">\r\n\t<div class=\"mb-2 row\" *ngIf=\"showLeftSkeleton || showRightSkeleton\" [ngClass]=\"justifyClass\">\r\n\t\t<div class=\"col-1 px-0\" *ngIf=\"showLeftSkeleton\">\r\n\t\t\t<p-skeleton class=\"prSkeleton\" [height]=\"'3rem'\"></p-skeleton>\r\n\t\t</div>\r\n\t\t<div class=\"col-3 px-0\" *ngIf=\"showRightSkeleton\">\r\n\t\t\t<p-skeleton class=\"prSkeleton\" [height]=\"'3rem'\"></p-skeleton>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<div class=\"row\">\r\n\t\t<div class=\"col-12 px-0 mb-2\">\r\n\t\t\t<p-skeleton class=\"prSkeleton\" [height]=\"'4rem'\"></p-skeleton>\r\n\t\t</div>\r\n\t</div>\r\n\t@for (row of getRows(); track $index) {\r\n\t<div class=\"row borderBottomRow\">\r\n\t\t@for (column of columnSizes; track $index) {\r\n\t\t<div class=\"{{ column }} px-0\">\r\n\t\t\t<div class=\"bodyPaddingTable\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [height]=\"'2rem'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t}\r\n\t</div>\r\n\t}\r\n</div>\r\n","import { Directive, Input } from \"@angular/core\";\r\n\r\n@Directive({\r\n\tselector: \"data\", // El selector es 'data', lo que permite usar <data> en la plantilla\r\n})\r\nexport class DataDirective {\r\n\t@Input() size: string = \"\"; // Esta es la propiedad que recibirás en la etiqueta <data>\r\n}\r\n","import { Component, Input, ContentChildren, QueryList, AfterContentInit } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { SkeletonModule } from \"primeng/skeleton\";\r\nimport { DataDirective } from \"./data.directive\";\r\n\r\n@Component({\r\n\tselector: \"intelica-skeleton-chart\",\r\n\timports: [CommonModule, SkeletonModule],\r\n\ttemplateUrl: \"./skeleton-chart.component.html\",\r\n})\r\nexport class SkeletonChartComponent implements AfterContentInit {\r\n\t/**\r\n\t * @description type of skeleton chart\r\n\t * @default 'bar'\r\n\t * @type string\r\n\t * @example <intelica-skeleton-chart [type]=\"'bar'\"></intelica-skeleton-chart>\r\n\t */\r\n\t@Input() type: \"horizontal-bar\" | \"bar\" | \"pie\" | \"line\" | \"donut\" = \"bar\";\r\n\r\n\t/**\r\n\t * @description number of series to display\r\n\t * @default 6\r\n\t * @type number\r\n\t * @example <intelica-skeleton-chart [series]=\"3\"></intelica-skeleton-chart>\r\n\t */\r\n\t@Input() series: number = 6;\r\n\r\n\t/**\r\n\t * @description number of data items to display in each bar\r\n\t * @default 1\r\n\t * @type number\r\n\t * @example <intelica-skeleton-chart [data]=\"3\"></intelica-skeleton-chart>\r\n\t */\r\n\t@Input() data: number = 1;\r\n\r\n\t/**\r\n\t * @description Flag to indicate whether the label should be displayed or hidden\r\n\t * @default false\r\n\t * @type boolean\r\n\t */\r\n\t@Input() label: boolean = true;\r\n\r\n\t// Propiedad para almacenar los valores aleatorios de porcentaje de altura\r\n\trandomPercent: string[][] = [];\r\n\r\n\t// Recibimos las etiquetas <data> como directivas\r\n\t@ContentChildren(DataDirective) dataElements!: QueryList<DataDirective>;\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.updateRandomPercentages();\r\n\t}\r\n\r\n\tngAfterContentInit(): void {\r\n\t\t// Si hay elementos <data> proyectados, usamos sus valores de 'size'\r\n\t\tif (this.dataElements.length > 0) {\r\n\t\t\tthis.setFixedPercentages();\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.updateRandomPercentages();\r\n\t}\r\n\r\n\t// Método para asignar alturas aleatorias\r\n\tupdateRandomPercentages(): void {\r\n\t\t// Si no se encuentran las etiquetas <data>, usamos valores aleatorios\r\n\t\tthis.randomPercent = this.getArray(this.series).map(() => this.getArray(this.data).map(() => this.setRandomPercent(20, 100)));\r\n\t}\r\n\r\n\t// Método para asignar alturas fijas según las etiquetas <data>\r\n\tsetFixedPercentages(): void {\r\n\t\t// Usa las alturas fijas definidas por las etiquetas <data>\r\n\t\tthis.randomPercent = this.getArray(this.series).map(\r\n\t\t\t() => this.dataElements.toArray().map(data => data.size) // Aquí mapeamos todas las alturas de las etiquetas <data>\r\n\t\t);\r\n\t}\r\n\r\n\t// Función para generar un valor aleatorio en porcentaje\r\n\tsetRandomPercent(min: number, max: number): string {\r\n\t\tconst random = Math.floor(Math.random() * (max - min + 1));\r\n\t\treturn `${random + min}%`;\r\n\t}\r\n\r\n\t// Función auxiliar para crear un array de tamaño \"length\"\r\n\tgetArray(length: number): number[] {\r\n\t\treturn Array.from({ length }, (_, i) => i);\r\n\t}\r\n}\r\n","@switch (type) { @case('bar'){\r\n<div class=\"skeletonGraphic skeletonGraphic--verticalBars\">\r\n\t<div class=\"skeletonGraphic__serie\" *ngFor=\"let i of getArray(series)\">\r\n\t\t<div class=\"skeletonGraphic__data\">\r\n\t\t\t<!-- Si hay etiquetas <data> proyectadas, las usamos con las alturas fijas -->\r\n\t\t\t<ng-container *ngIf=\"dataElements.length > 0\">\r\n\t\t\t\t<ng-container *ngFor=\"let data of dataElements.toArray()\">\r\n\t\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"data.size\"></p-skeleton>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</ng-container>\r\n\r\n\t\t\t<!-- Si no hay etiquetas <data>, usamos los valores aleatorios -->\r\n\t\t\t<ng-container *ngIf=\"dataElements.length === 0\">\r\n\t\t\t\t<ng-container *ngFor=\"let j of getArray(data)\">\r\n\t\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"randomPercent[i][j]\"></p-skeleton>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</ng-container>\r\n\t\t</div>\r\n\t\t<div class=\"skeletonGraphic__label\" *ngIf=\"label\">\r\n\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'50%'\" [height]=\"'1rem'\"></p-skeleton>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n} @case ('horizontal-bar'){\r\n<div class=\"skeletonGraphic skeletonGraphic--horizontalBars\">\r\n\t<div class=\"skeletonGraphic__serie\" *ngFor=\"let i of getArray(series)\">\r\n\t\t<div class=\"skeletonGraphic__data\">\r\n\t\t\t<!-- Si hay etiquetas <data> proyectadas, las usamos con las alturas fijas -->\r\n\t\t\t<ng-container *ngIf=\"dataElements.length > 0\">\r\n\t\t\t\t<ng-container *ngFor=\"let data of dataElements.toArray()\">\r\n\t\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"data.size\" [height]=\"'100%'\"></p-skeleton>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</ng-container>\r\n\r\n\t\t\t<!-- Si no hay etiquetas <data>, usamos los valores aleatorios -->\r\n\t\t\t<ng-container *ngIf=\"dataElements.length === 0\">\r\n\t\t\t\t<ng-container *ngFor=\"let j of getArray(data)\">\r\n\t\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"randomPercent[i][j]\" [height]=\"'100%'\"></p-skeleton>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</ng-container>\r\n\t\t</div>\r\n\t\t<div class=\"skeletonGraphic__label\" *ngIf=\"label\">\r\n\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'10rem'\" [height]=\"'1rem'\"></p-skeleton>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n} @case ('pie'){\r\n<div class=\"skeletonGraphic skeletonGraphic--pie\">\r\n\t<ng-container *ngTemplateOutlet=\"pieDonutTemplate\"></ng-container>\r\n</div>\r\n} @case ('donut'){\r\n<div class=\"skeletonGraphic skeletonGraphic--pie skeletonGraphic--donut\">\r\n\t<ng-container *ngTemplateOutlet=\"pieDonutTemplate\"></ng-container>\r\n</div>\r\n} @case ('line'){\r\n<div class=\"col-6 mb-3\">\r\n\t<div class=\"row align-items-end\">\r\n\t\t<div class=\"col-1 d-flex justify-content-end\">\r\n\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'0.5rem'\" [height]=\"'25rem'\"></p-skeleton>\r\n\t\t</div>\r\n\t\t<div class=\"col d-flex justify-content-center px-0\">\r\n\t\t\t<div class=\"col-8 px-0\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'10rem'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"col d-flex justify-content-center px-0\">\r\n\t\t\t<div class=\"col-8 px-0\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'20rem'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"col d-flex justify-content-center px-0\">\r\n\t\t\t<div class=\"col-8 px-0\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'8rem'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"col d-flex justify-content-center px-0\">\r\n\t\t\t<div class=\"col-8 px-0\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'15rem'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"col d-flex justify-content-center px-0\">\r\n\t\t\t<div class=\"col-8 px-0\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'20rem'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"col d-flex justify-content-center px-0\">\r\n\t\t\t<div class=\"col-8 px-0\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'8rem'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\t<div class=\"row mt-3\">\r\n\t\t<div class=\"col-1\"></div>\r\n\t\t<div class=\"col\">\r\n\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'0.5rem'\"></p-skeleton>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n} }\r\n\r\n<ng-template #pieDonutTemplate>\r\n\t<div class=\"skeletonGraphic__serie\">\r\n\t\t<div class=\"skeletonGraphic__wrap\">\r\n\t\t\t<div class=\"skeletonGraphic__label left\" *ngIf=\"label\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'100%'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"skeletonGraphic__data\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" shape=\"circle\" [size]=\"'100%'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"skeletonGraphic__label right\" *ngIf=\"label\">\r\n\t\t\t\t<p-skeleton class=\"prSkeleton\" [width]=\"'100%'\" [height]=\"'100%'\"></p-skeleton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</ng-template>\r\n","// tree-table-fetch.component.ts\r\nimport { CommonModule, DatePipe } from \"@angular/common\";\r\nimport {\r\n AfterContentInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n ContentChildren,\r\n EventEmitter,\r\n inject,\r\n Input,\r\n OnChanges,\r\n Output,\r\n QueryList,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { BadgeModule } from \"primeng/badge\";\r\nimport { CheckboxModule } from \"primeng/checkbox\";\r\nimport { TableModule } from \"primeng/table\";\r\nimport { TooltipModule } from \"primeng/tooltip\";\r\nimport { ButtonModule } from \"primeng/button\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\nimport { SearchInputModel } from \"../search/model/search.model\";\r\nimport { Select } from \"primeng/select\";\r\nimport { QueryParametersModel } from \"../table-fetch/model/query.model\";\r\nimport { SortFieldModel } from \"../table/model/sort.model\";\r\nimport { SearchComponent } from \"../search/search.component\";\r\nimport { PaginatorComponent } from \"../paginator/paginator.component\";\r\nimport { FormatCellPipe } from \"../../pipes/formatCell.pipe\";\r\nimport { RowResumenTreeComponent } from \"../tree-table/column.component\";\r\nimport {\r\n ColumnComponent,\r\n ColumnGroupComponent,\r\n} from \"../table/column.component\";\r\n\r\n@Component({\r\n selector: \"intelica-tree-table-fetch\",\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n TableModule,\r\n Select,\r\n BadgeModule,\r\n TooltipModule,\r\n TermPipe,\r\n CheckboxModule,\r\n FormsModule,\r\n SearchComponent,\r\n PaginatorComponent,\r\n FormatCellPipe,\r\n ButtonModule,\r\n ],\r\n templateUrl: \"./tree-table-fetch.component.html\",\r\n providers: [FormatCellPipe, DatePipe],\r\n})\r\nexport class TreeTableFetchComponent<T extends { children?: T[] }>\r\n implements OnChanges, AfterContentInit\r\n{\r\n readonly GlobalTermService = inject(GlobalTermService);\r\n\r\n @Input() ComponentId: string = \"\";\r\n @Input() ClassName: string = \"\";\r\n @Input() ShowSearch: boolean = false;\r\n @Input() ShowSearchTooltip: boolean = false;\r\n @Input() ShowPagination: boolean = false;\r\n @Input() ShowRowPerPage: boolean = true;\r\n @Input() RowsPerPage: number = 10;\r\n @Input() AllowedPageSizes: number[] = [10, 25, 50, 100];\r\n @Input() scrollHeight: string = \"400px\";\r\n @Input() scrollable: boolean = false;\r\n @Input() tableStyle: { [klass: string]: any } = {};\r\n\r\n @Input() ShowCheckbox: boolean = false;\r\n @Input() ShowIndex: boolean = false;\r\n @Input() SelectedIdentifier: keyof T | null = null;\r\n @Input() dataKey: string = \"\";\r\n @Input() PropagateHeaderToChildren: boolean = false;\r\n @Input() ExpandedColumnIdent: string = \"\";\r\n\r\n @Input() FilteredList: T[] = [];\r\n @Input() TotalItems: number = 0;\r\n\r\n @Input() DefaultSortField: string = \"\";\r\n @Input() SortField: keyof T | null = null;\r\n @Input() SortOrder: number = 1;\r\n\r\n @Input() CurrentPage: number = 1;\r\n\r\n @Input() ListSearchOptions: {\r\n id: number;\r\n name: string;\r\n field: string;\r\n searchOnlyParent?: boolean;\r\n }[] = [];\r\n\r\n @Output() EmitQueryParametersChange =\r\n new EventEmitter<QueryParametersModel>();\r\n @Output() EmitSortEvent = new EventEmitter<SortFieldModel[]>();\r\n @Output() EmitSelectedItem = new EventEmitter<T[]>();\r\n @Output() EmitCheckboxHeaderEvent = new EventEmitter<void>();\r\n\r\n @ContentChildren(ColumnComponent)\r\n Columns!: QueryList<ColumnComponent>;\r\n @ContentChildren(ColumnGroupComponent)\r\n ColumnGroups!: QueryList<ColumnGroupComponent>;\r\n @ContentChildren(RowResumenTreeComponent)\r\n RowResumenGroups!: QueryList<RowResumenTreeComponent>;\r\n\r\n @ContentChild(\"additionalTemplate\") AdditionalTemplate?: TemplateRef<any>;\r\n @ContentChild(\"additionalCentralTemplate\")\r\n AdditionalCentralTemplate?: TemplateRef<any>;\r\n @ContentChild(\"additionalExtendedTemplate\")\r\n AdditionalExtendedTemplate?: TemplateRef<any>;\r\n\r\n @ViewChild(\"paginatorTable\") PaginatorTable?: PaginatorComponent;\r\n @ViewChild(\"searchTable\") SearchTable?: SearchComponent;\r\n\r\n ColumnList: ColumnComponent[] = [];\r\n ColumnGroupList: ColumnGroupComponent[] = [];\r\n RowResumenList: RowResumenTreeComponent[] = [];\r\n MaxLevel: number = 0;\r\n Levels: number[] = [];\r\n\r\n ListDataTable: T[] = [];\r\n\r\n SearchInput: SearchInputModel = {} as SearchInputModel;\r\n ListSearchOptionsSimple: { id: number; value: string }[] = [];\r\n\r\n @Input() ListDataSelected: T[] = [];\r\n ListDataSelectedTemp: T[] = [];\r\n HeaderState: Record<string, { checked: boolean; indeterminate: boolean }> =\r\n {};\r\n SelectedItems: number = 0;\r\n TotalVisibleRows: number = 0;\r\n\r\n private cdr = inject(ChangeDetectorRef);\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes[\"ListSearchOptions\"] && Array.isArray(this.ListSearchOptions)) {\r\n this.LoadSearchOptions();\r\n }\r\n\r\n if (\r\n changes[\"FilteredList\"] ||\r\n changes[\"RowsPerPage\"] ||\r\n changes[\"CurrentPage\"]\r\n ) {\r\n this.UpdatePages();\r\n this.recomputeRowSelectionState();\r\n }\r\n\r\n if (changes[\"SortField\"] || changes[\"SortOrder\"]) {\r\n this.EmitSortEvent.emit([\r\n {\r\n sortOrder: this.SortOrder,\r\n sortField: this.SortField?.toString() ?? \"\",\r\n },\r\n ]);\r\n }\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.captureColumns();\r\n this.captureGroups();\r\n this.captureResumen();\r\n\r\n this.Columns?.changes.subscribe(() => {\r\n this.captureColumns();\r\n this.cdr.markForCheck();\r\n });\r\n this.ColumnGroups?.changes.subscribe(() => {\r\n this.captureGroups();\r\n this.cdr.markForCheck();\r\n });\r\n this.RowResumenGroups?.changes.subscribe(() => {\r\n this.captureResumen();\r\n this.cdr.markForCheck();\r\n });\r\n\r\n this.ColumnList.filter((c) => c.isChecboxColumn).forEach((c) => {\r\n if (!this.HeaderState[c.field]) {\r\n this.HeaderState[c.field] = { checked: false, indeterminate: false };\r\n }\r\n });\r\n }\r\n\r\n private captureColumns() {\r\n this.ColumnList = this.Columns?.toArray() ?? [];\r\n this.ColumnList.filter((c) => c.isChecboxColumn).forEach((c) => {\r\n if (!this.HeaderState[c.field]) {\r\n this.HeaderState[c.field] = { checked: false, indeterminate: false };\r\n }\r\n });\r\n }\r\n\r\n private captureGroups() {\r\n this.ColumnGroupList = this.ColumnGroups?.toArray() ?? [];\r\n const levels = this.ColumnGroupList.map((c) => c.level);\r\n this.MaxLevel = levels.length ? Math.max(...levels) + 1 : 1;\r\n this.Levels = Array.from({ length: this.MaxLevel }, (_, i) => i);\r\n }\r\n\r\n private captureResumen() {\r\n this.RowResumenList = this.RowResumenGroups?.toArray() ?? [];\r\n }\r\n\r\n LoadSearchOptions() {\r\n this.ListSearchOptionsSimple = (this.ListSearchOptions ?? []).map(\r\n (item) => ({\r\n id: item.id,\r\n value: item.name,\r\n })\r\n );\r\n }\r\n\r\n OnSort(field: string) {\r\n if (this.SortField === field) {\r\n this.SortOrder *= -1;\r\n } else {\r\n this.SortField = field as keyof T;\r\n this.SortOrder = 1;\r\n }\r\n this.ExecuteSearch({});\r\n }\r\n\r\n OnPageChange(pageIndex: number): void {\r\n this.CurrentPage = pageIndex; // 1-based\r\n this.ExecuteSearch({ paginator: true });\r\n }\r\n\r\n OnRowsPerPageChange(value: number): void {\r\n this.RowsPerPage = value;\r\n this.CurrentPage = 1;\r\n this.ExecuteSearch({});\r\n }\r\n\r\n ResetTable() {\r\n if (this.PaginatorTable) {\r\n this.PaginatorTable.CurrentPage = 1;\r\n this.CurrentPage = 1;\r\n }\r\n if (this.SearchTable) {\r\n this.SearchTable.ClearSearchText();\r\n this.SearchInput.fieldText = \"\";\r\n }\r\n this.ExecuteSearch({});\r\n }\r\n\r\n ExecuteSearch(event: any): void {\r\n if (event?.fieldText !== undefined && event?.fieldText !== \"\") {\r\n this.SearchInput = event;\r\n }\r\n\r\n const field = this.ListSearchOptions.find(\r\n (item) => item.id === this.SearchInput.fieldId\r\n )?.field;\r\n\r\n if (\r\n this.SearchInput?.searchText !== undefined &&\r\n this.SearchInput?.searchText !== \"\" &&\r\n this.ListSearchOptions.length > 0 &&\r\n !event?.paginator\r\n ) {\r\n if (this.PaginatorTable) {\r\n this.PaginatorTable.CurrentPage = 1;\r\n }\r\n this.CurrentPage = 1;\r\n }\r\n\r\n const newQueryParameters: QueryParametersModel = {\r\n FilterBy: field || undefined,\r\n FilterValue: this.SearchInput.searchText?.trim(),\r\n FilterOperator: this.SearchInput.operatorId?.toString(),\r\n OrderBy: this.SortField ? String(this.SortField) : undefined,\r\n SortDirection: this.SortOrder === 1 ? \"asc\" : \"desc\",\r\n PageNumber: this.CurrentPage,\r\n PageSize: this.RowsPerPage,\r\n };\r\n\r\n this.EmitQueryParametersChange.emit(newQueryParameters);\r\n this.UpdatePages();\r\n }\r\n\r\n UpdatePages() {\r\n const filtered = Array.isArray(this.FilteredList) ? this.FilteredList : [];\r\n const totalParents = this.TotalItems || filtered.length;\r\n\r\n if (this.ShowPagination) {\r\n this.ListDataTable = filtered;\r\n this.TotalVisibleRows = filtered.length;\r\n } else {\r\n this.ListDataTable = filtered;\r\n this.TotalVisibleRows = filtered.length;\r\n }\r\n }\r\n\r\n private getId = (x: T) =>\r\n this.SelectedIdentifier\r\n ? (x[this.SelectedIdentifier] as any)\r\n : (x as any)[this.dataKey];\r\n\r\n get resolvedDataKey(): string {\r\n return (this.SelectedIdentifier as string) || this.dataKey;\r\n }\r\n\r\n getParentDisplayIndex(rowData: any): number {\r\n const list = this.ListDataTable?.length\r\n ? this.ListDataTable\r\n : this.FilteredList;\r\n const localIdx = list.indexOf(rowData);\r\n if (localIdx < 0) return 0;\r\n\r\n const pageOffset = this.ShowPagination\r\n ? (this.CurrentPage - 1) * this.RowsPerPage\r\n : 0;\r\n return localIdx + 1 + pageOffset;\r\n }\r\n\r\n getLetter(index: number): string {\r\n const letters = \"abcdefghijklmnopqrstuvwxyz\";\r\n return letters[index] ?? String(index);\r\n }\r\n\r\n getNumber(index: number): string {\r\n return (index + 1).toString();\r\n }\r\n\r\n private flattenRows = (rows: any[]) =>\r\n this.PropagateHeaderToChildren\r\n ? rows.flatMap((r: any) =>\r\n Array.isArray(r.children) ? [r, ...r.children] : [r]\r\n )\r\n : rows;\r\n\r\n private toIdSet = (items: T[]) => new Set(items.map(this.getId));\r\n\r\n public recomputeRowSelectionState() {\r\n const all = this.flattenRows(this.FilteredList || []);\r\n const selIds = this.toIdSet(this.ListDataSelected || []);\r\n this.SelectedItems = all.filter((r) => selIds.has(this.getId(r))).length;\r\n }\r\n\r\n public recomputeHeaderState(field: string) {\r\n const allRows = this.PropagateHeaderToChildren\r\n ? this.FilteredList.flatMap((r: any) =>\r\n Array.isArray(r.children) ? [r, ...r.children] : [r]\r\n )\r\n : this.FilteredList;\r\n\r\n const total = allRows.length;\r\n if (total === 0) {\r\n this.HeaderState[field] = { checked: false, indeterminate: false };\r\n return;\r\n }\r\n\r\n const checked = allRows.filter((r: any) => r[field] === true).length;\r\n this.HeaderState[field] = {\r\n checked: checked === total,\r\n indeterminate: checked > 0 && checked < total,\r\n };\r\n }\r\n\r\n onBodyCheckboxChange(field: string, _row?: any) {\r\n this.recomputeHeaderState(field);\r\n }\r\n\r\n OnHeaderCheckboxChange(checked: boolean, field: string) {\r\n const pageParents = this.ListDataTable as any[];\r\n\r\n pageParents.forEach((r: any) => {\r\n r[field] = checked;\r\n if (this.PropagateHeaderToChildren && Array.isArray(r.children)) {\r\n r.children.forEach((c: any) => (c[field] = checked));\r\n }\r\n });\r\n\r\n this.recomputeRowSelectionState();\r\n this.HeaderState[field] = { checked, indeterminate: false };\r\n this.EmitCheckboxHeaderEvent.emit();\r\n }\r\n\r\n OnRowSelect(event: any) {\r\n if (!this.SelectedIdentifier && !this.dataKey && this.ShowCheckbox) return;\r\n\r\n const row = event.data as any;\r\n const hasChildren =\r\n this.PropagateHeaderToChildren &&\r\n Array.isArray(row.children) &&\r\n row.children.length;\r\n\r\n const curr = new Map(this.ListDataSelected.map((x) => [this.getId(x), x]));\r\n curr.set(this.getId(row), row);\r\n\r\n if (hasChildren) {\r\n for (const child of row.children) curr.set(this.getId(child), child);\r\n }\r\n\r\n this.ListDataSelected = Array.from(curr.values());\r\n this.ListDataSelectedTemp = [...this.ListDataSelected];\r\n this.recomputeRowSelectionState();\r\n this.EmitSelectedItem.emit(this.ListDataSelectedTemp);\r\n }\r\n\r\n OnRowUnselect(event: any) {\r\n if (!this.SelectedIdentifier && !this.dataKey && this.ShowCheckbox) return;\r\n\r\n const row = event.data as any;\r\n const removeIds = new Set<any>([this.getId(row)]);\r\n if (this.PropagateHeaderToChildren && Array.isArray(row.children)) {\r\n for (const child of row.children) removeIds.add(this.getId(child));\r\n }\r\n\r\n this.ListDataSelected = (this.ListDataSelected || []).filter(\r\n (x) => !removeIds.has(this.getId(x))\r\n );\r\n this.ListDataSelectedTemp = [...this.ListDataSelected];\r\n this.recomputeRowSelectionState();\r\n this.EmitSelectedItem.emit(this.ListDataSelectedTemp);\r\n }\r\n}\r\n","<div class=\"prTable\">\r\n <div class=\"prTableTools\">\r\n <div class=\"prTableTools__new prTableTools__new--left\">\r\n @if (AdditionalTemplate) {\r\n <ng-container *ngTemplateOutlet=\"AdditionalTemplate\"></ng-container>\r\n }\r\n </div>\r\n\r\n @if (ShowSearch) {\r\n <intelica-search\r\n #searchTable\r\n [ComponentId]=\"ComponentId + 'Search'\"\r\n (OnSearch)=\"ExecuteSearch($event)\"\r\n [SearchFieldOptions]=\"ListSearchOptionsSimple\"\r\n [SearchOnKeyup]=\"false\"\r\n [SimpleSearchInput]=\"false\"\r\n [ShowTooltip]=\"ShowSearchTooltip\"\r\n ></intelica-search>\r\n } @if (AdditionalCentralTemplate) {\r\n <div class=\"prTableTools__new prTableTools__new--right\">\r\n <ng-container\r\n *ngTemplateOutlet=\"AdditionalCentralTemplate\"\r\n ></ng-container>\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (AdditionalExtendedTemplate) {\r\n <div class=\"prTableTools justify-content-start\">\r\n <ng-container *ngTemplateOutlet=\"AdditionalExtendedTemplate\"></ng-container>\r\n </div>\r\n }\r\n\r\n <div class=\"justify-content-start prTableToolsBottom\" *ngIf=\"ShowCheckbox\">\r\n <span\r\n >{{ SelectedItems }} {{ \"Of\" | term : GlobalTermService.languageCode }}\r\n {{ TotalItems }}\r\n {{ \"Selected Items\" | term : GlobalTermService.languageCode }}</span\r\n >\r\n </div>\r\n\r\n <p-table\r\n class=\"prTableBasic\"\r\n [value]=\"ListDataTable\"\r\n [ngClass]=\"ClassName\"\r\n responsiveLayout=\"scroll\"\r\n [dataKey]=\"resolvedDataKey\"\r\n [sortField]=\"DefaultSortField\"\r\n [sortOrder]=\"SortOrder\"\r\n [scrollable]=\"scrollable\"\r\n [scrollHeight]=\"scrollable ? scrollHeight : 'auto'\"\r\n [tableStyle]=\"tableStyle\"\r\n [(selection)]=\"ListDataSelected\"\r\n (onRowSelect)=\"OnRowSelect($event)\"\r\n (onRowUnselect)=\"OnRowUnselect($event)\"\r\n (onHeaderCheckboxToggle)=\"OnHeaderCheckboxChange($event.checked, 'checked')\"\r\n >\r\n <!-- Cabeceras agrupadas -->\r\n <ng-template pTemplate=\"header\">\r\n @for (level of Levels; track $index) {\r\n <tr>\r\n @for (col of ColumnGroupList; track $index) { @if (col.level === level)\r\n {\r\n <th\r\n [attr.colspan]=\"col.colspan\"\r\n [attr.rowspan]=\"col.rowspan\"\r\n [pSortableColumn]=\"col.sortable ? col.field : ''\"\r\n [style.min-width]=\"col.minWidth\"\r\n (click)=\"col.sortable && OnSort(col.field)\"\r\n >\r\n <div>\r\n <span\r\n [pTooltip]=\"\r\n col.headerTooltip?.trim() ? col.headerTooltip : undefined\r\n \"\r\n [tooltipPosition]=\"col.headerTooltipPosition || 'top'\"\r\n >\r\n {{ col.header }}\r\n </span>\r\n <p-sortIcon *ngIf=\"col.sortable\" [field]=\"col.field\"></p-sortIcon>\r\n </div>\r\n </th>\r\n } } @if (ShowCheckbox && level === 0 && ColumnGroupList.length != 0) {\r\n <th\r\n class=\"text-center\"\r\n style=\"width: 4%\"\r\n [attr.rowspan]=\"MaxLevel === 1 ? 2 : MaxLevel\"\r\n >\r\n <p-tableHeaderCheckbox\r\n class=\"prCheckbox\"\r\n [ngClass]=\"{\r\n 'prCheckbox--indeterminate':\r\n ListDataSelected?.length &&\r\n ListDataSelected.length < ListDataTable.length\r\n }\"\r\n />\r\n </th>\r\n }\r\n </tr>\r\n }\r\n\r\n <tr>\r\n @for (col of ColumnList; track $index) { @if (col.showHeader) {\r\n <th\r\n [class]=\"col.className\"\r\n [pSortableColumn]=\"\r\n !col.isChecboxColumn && col.sortable ? col.field : ''\r\n \"\r\n [style.width]=\"col.width\"\r\n [style.min-width]=\"col.minWidth\"\r\n (click)=\"!col.isChecboxColumn && col.sortable && OnSort(col.field)\"\r\n >\r\n <div>\r\n <span\r\n [pTooltip]=\"\r\n col.headerTooltip?.trim() ? col.headerTooltip : undefined\r\n \"\r\n [tooltipPosition]=\"col.headerTooltipPosition || 'top'\"\r\n >\r\n {{ col.header }}\r\n </span>\r\n\r\n @if (!col.showIndex) { @if (col.isChecboxColumn) {\r\n <br />\r\n <p-checkbox\r\n class=\"prCheckbox\"\r\n [binary]=\"true\"\r\n (click)=\"$event.stopPropagation()\"\r\n [(ngModel)]=\"HeaderState[col.field].checked\"\r\n (ngModelChange)=\"OnHeaderCheckboxChange($event, col.field)\"\r\n [attr.data-check]=\"col.field\"\r\n [ngClass]=\"{\r\n 'prCheckbox--indeterminate':\r\n HeaderState[col.field].indeterminate\r\n }\"\r\n ></p-checkbox>\r\n } @else {\r\n <p-sortIcon *ngIf=\"col.sortable\" [field]=\"col.field\"></p-sortIcon>\r\n } }\r\n </div>\r\n </th>\r\n } } @if (ShowCheckbox && ColumnGroupList.length == 0) {\r\n <th class=\"text-center\" style=\"width: 4%\">\r\n <p-tableHeaderCheckbox\r\n class=\"prCheckbox\"\r\n [ngClass]=\"{\r\n 'prCheckbox--indeterminate':\r\n ListDataSelected?.length &&\r\n ListDataSelected.length < ListDataTable.length\r\n }\"\r\n />\r\n </th>\r\n }\r\n </tr>\r\n\r\n @if ((FilteredList?.length ?? 0) > 0 && (RowResumenList?.length ?? 0) > 0)\r\n {\r\n <tr class=\"fixedRow\">\r\n @for (col of RowResumenList; track $index) {\r\n <td\r\n [ngClass]=\"col.className\"\r\n [attr.colspan]=\"col.colspan\"\r\n [attr.rowspan]=\"col.rowspan\"\r\n >\r\n @if (col.templateRef) {\r\n <span\r\n ><ng-container *ngTemplateOutlet=\"col.templateRef\"></ng-container\r\n ></span>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </ng-template>\r\n\r\n <!-- Filas padre -->\r\n <ng-template\r\n pTemplate=\"body\"\r\n let-rowData\r\n let-rowIndex=\"rowIndex\"\r\n let-expanded=\"expanded\"\r\n >\r\n <tr>\r\n @for (col of ColumnList; track $index) {\r\n <td [ngClass]=\"col.className\">\r\n @if (col.showIndex) {\r\n {{ rowIndex + 1 + (CurrentPage - 1) * RowsPerPage }}\r\n } @else if ((col.field === (ExpandedColumnIdent?.trim() || 'name')) &&\r\n (rowData.children?.length ?? 0) > 0 ) {\r\n <div class=\"prTable__expandToggleRow\">\r\n <p-button\r\n [pRowToggler]=\"rowData\"\r\n class=\"prButton prButton--icon prButton--iconBlue\"\r\n >\r\n <i\r\n [class]=\"\r\n expanded ? 'icon icon-collapse-rows' : 'icon icon-expand-rows'\r\n \"\r\n ></i>\r\n </p-button>\r\n <span\r\n class=\"text-breakWord\"\r\n pTooltip=\"{{ col.tooltip }}\"\r\n tooltipPosition=\"{{ col.tooltipPosition }}\"\r\n >\r\n {{ rowData[col.field] | formatCell : col.formatType }}\r\n </span>\r\n </div>\r\n } @else { @if (col.templateRef) {\r\n <ng-container\r\n *ngTemplateOutlet=\"col.templateRef; context: { $implicit: rowData }\"\r\n ></ng-container>\r\n } @else if(col.isChecboxColumn){\r\n <p-checkbox\r\n [binary]=\"true\"\r\n [(ngModel)]=\"rowData[col.field]\"\r\n (onChange)=\"onBodyCheckboxChange(col.field)\"\r\n ></p-checkbox>\r\n } @else {\r\n <span\r\n class=\"text-breakWord\"\r\n pTooltip=\"{{ col.tooltip }}\"\r\n tooltipPosition=\"{{ col.tooltipPosition }}\"\r\n >\r\n {{ rowData[col.field] | formatCell : col.formatType }}\r\n </span>\r\n } }\r\n </td>\r\n } @if (ShowCheckbox) {\r\n <td class=\"text-center\">\r\n <p-tableCheckbox [value]=\"rowData\" class=\"prCheckbox\" />\r\n </td>\r\n }\r\n </tr>\r\n </ng-template>\r\n\r\n <!-- Filas hijo (no paginadas) -->\r\n <ng-template pTemplate=\"expandedrow\" let-rowData let-rowIndex=\"rowIndex\">\r\n <ng-container *ngIf=\"rowData.children?.length\">\r\n <tr\r\n *ngFor=\"let childRow of rowData.children; let i = index\"\r\n class=\"subRow\"\r\n >\r\n @for (col of ColumnList; track $index) {\r\n <td [ngClass]=\"col.className\">\r\n @if (col.showIndex && $index === 0) {\r\n <ng-container\r\n *ngIf=\"\r\n col.alphaSubEnum && rowData.children.length <= 26;\r\n else numericEnum\r\n \"\r\n >\r\n {{ getParentDisplayIndex(rowData) + \".\" + getLetter(i) }}\r\n </ng-container>\r\n <ng-template #numericEnum>\r\n {{ getParentDisplayIndex(rowData) + \".\" + getNumber(i) }}\r\n </ng-template>\r\n } @else if (col.templateRef) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n col.templateRef;\r\n context: { $implicit: childRow }\r\n \"\r\n ></ng-container>\r\n } @else if (col.isChecboxColumn) {\r\n <p-checkbox\r\n [binary]=\"true\"\r\n [(ngModel)]=\"childRow[col.field]\"\r\n (onChange)=\"onBodyCheckboxChange(col.field, childRow)\"\r\n ></p-checkbox>\r\n } @else {\r\n <span\r\n class=\"text-breakWord\"\r\n pTooltip=\"{{ col.tooltip }}\"\r\n tooltipPosition=\"{{ col.tooltipPosition }}\"\r\n [class.prTable__expandIdentText]=\"\r\n col.field === (ExpandedColumnIdent || 'name')\r\n \"\r\n >\r\n {{ childRow[col.field] | formatCell : col.formatType }}\r\n </span>\r\n }\r\n </td>\r\n } @if (ShowCheckbox) {\r\n <td class=\"text-center\">\r\n <p-tableCheckbox [value]=\"childRow\" class=\"prCheckbox\" />\r\n </td>\r\n }\r\n </tr>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Vacío -->\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td\r\n [attr.colspan]=\"ColumnList.length + (ShowCheckbox ? 1 : 0)\"\r\n class=\"text-center\"\r\n >\r\n {{ \"Nodata\" | term : GlobalTermService.languageCode }}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n\r\n <div class=\"prTableToolsBottom\">\r\n @if(TotalItems !== 0){ @if (ShowRowPerPage) {\r\n <div class=\"prTableToolsBottom__itemPerPage\">\r\n {{ \"ItemPerPage\" | term : GlobalTermService.languageCode }}\r\n <p-select\r\n [options]=\"AllowedPageSizes\"\r\n [ngModel]=\"RowsPerPage\"\r\n appendTo=\"body\"\r\n (onChange)=\"OnRowsPerPageChange($event.value)\"\r\n />\r\n <label for=\"pageSize\" class=\"control-label\">\r\n {{ 1 + RowsPerPage * (CurrentPage - 1) }} -\r\n {{\r\n CurrentPage * RowsPerPage >= TotalItems\r\n ? TotalItems\r\n : CurrentPage * RowsPerPage\r\n }}\r\n {{ \"Of\" | term : GlobalTermService.languageCode }} {{ TotalItems }}\r\n {{ \"Items\" | term : GlobalTermService.languageCode }}\r\n </label>\r\n </div>\r\n } @if (ShowPagination) {\r\n <intelica-paginator\r\n #paginatorTable\r\n [TotalItems]=\"TotalItems\"\r\n [CurrentPage]=\"CurrentPage\"\r\n [ItemsPerPage]=\"RowsPerPage\"\r\n (PageChange)=\"OnPageChange($event)\"\r\n ></intelica-paginator>\r\n } }\r\n </div>\r\n</div>\r\n","import { CommonModule, DatePipe } from \"@angular/common\";\r\nimport {\r\n AfterContentInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n ContentChildren,\r\n EventEmitter,\r\n inject,\r\n Input,\r\n OnChanges,\r\n Output,\r\n QueryList,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { BadgeModule } from \"primeng/badge\";\r\nimport { CheckboxModule } from \"primeng/checkbox\";\r\nimport { TableModule } from \"primeng/table\";\r\nimport { TooltipModule } from \"primeng/tooltip\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\nimport { SearchInputModel } from \"../search/model/search.model\";\r\nimport {\r\n ColumnComponent,\r\n ColumnGroupComponent,\r\n RowResumenComponent,\r\n} from \"../table/column.component\";\r\nimport { SearchFieldModel } from \"../table/model/search.model\";\r\nimport { Select } from \"primeng/select\";\r\nimport { QueryParametersModel } from \"./model/query.model\";\r\nimport { SortFieldModel } from \"../table/model/sort.model\";\r\nimport { SearchComponent } from \"../search/search.component\";\r\nimport { PaginatorComponent } from \"../paginator/paginator.component\";\r\nimport { FormatCellPipe } from \"../../pipes/formatCell.pipe\";\r\n\r\n@Component({\r\n selector: \"intelica-table-fetch\",\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n TableModule,\r\n Select,\r\n BadgeModule,\r\n TooltipModule,\r\n TermPipe,\r\n CheckboxModule,\r\n FormsModule,\r\n SearchComponent,\r\n PaginatorComponent,\r\n FormatCellPipe,\r\n ],\r\n templateUrl: \"./table-fetch.component.html\",\r\n providers: [FormatCellPipe, DatePipe],\r\n})\r\nexport class TableFetchComponent<T> implements OnChanges, AfterContentInit {\r\n readonly GlobalTermService = inject(GlobalTermService);\r\n\r\n @Input() ComponentId: string = \"\";\r\n @Input() ShowRowPerPage: boolean = true;\r\n @Input() ShowSearch: boolean = false;\r\n @Input() ListSearchOptions: SearchFieldModel[] = [];\r\n @Input() ShowPagination: boolean = false;\r\n @Input() RowsPerPage: number = 10;\r\n @Input() ShowCheckbox: boolean = false;\r\n @Input() ShowIndex: boolean = false;\r\n @Input() ShowSearchTooltip: boolean = false;\r\n @Input() ClassName: string = \"\";\r\n @Input() DefaultSortField: string = \"\";\r\n @Input() scrollHeight: string = \"400px\";\r\n @Input() scrollable: boolean = false;\r\n @Input() AllowedPageSizes: number[] = [10, 25, 50, 100];\r\n @Input() tableStyle: { [klass: string]: any } = {};\r\n Levels: number[] = [];\r\n @Input() FilteredList: T[] = [];\r\n @Input() TotalItems: number = 0;\r\n TotalRecords: number = 0;\r\n IsPaginatorInputSearch: boolean = false;\r\n\r\n @Output() EmitQueryParametersChange =\r\n new EventEmitter<QueryParametersModel>();\r\n\r\n @ViewChild(\"paginatorTable\") PaginatorTable?: PaginatorComponent;\r\n @ViewChild(\"searchTable\") SearchTable?: SearchComponent;\r\n\r\n @ContentChildren(ColumnComponent) Columns!: QueryList<ColumnComponent>;\r\n @ContentChildren(ColumnGroupComponent)\r\n ColumnGroups!: QueryList<ColumnGroupComponent>;\r\n @ContentChildren(RowResumenComponent)\r\n RowResumenGroups!: QueryList<RowResumenComponent>;\r\n\r\n @ContentChild(\"additionalTemplate\") AdditionalTemplate?: TemplateRef<any>;\r\n @ContentChild(\"additionalCentralTemplate\")\r\n AdditionalCentralTemplate?: TemplateRef<any>;\r\n @ContentChild(\"additionalExtendedTemplate\")\r\n AdditionalExtendedTemplate?: TemplateRef<any>;\r\n @Output() EmitSortEvent = new EventEmitter<SortFieldModel[]>();\r\n\r\n ColumnList: ColumnComponent[] = [];\r\n ColumnGroupList: ColumnGroupComponent[] = [];\r\n RowResumenList: RowResumenComponent[] = [];\r\n\r\n SearchInput: SearchInputModel = {} as SearchInputModel;\r\n @Input() CurrentPage: number = 1;\r\n @Input() SortOrder: number = 1;\r\n @Input() SortField: keyof T | null = null;\r\n ListSearchOptionsSimple: { id: number; value: string }[] = [];\r\n MaxLevel: number = 0;\r\n ListDataTable: T[] = [];\r\n\r\n constructor(private cdr: ChangeDetectorRef) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.LoadSearchOptions();\r\n\r\n if (changes[\"FilteredList\"] || changes[\"RowsPerPage\"] || changes[\"CurrentPage\"]) {\r\n this.UpdatePages();\r\n }\r\n \r\n if (changes[\"SortField\"] || changes[\"SortOrder\"]) {\r\n this.EmitSortEvent.emit([{\r\n sortOrder: this.SortOrder,\r\n sortField: this.SortField?.toString() ?? \"\",\r\n }]);\r\n }\r\n }\r\n \r\n ngAfterContentInit() {\r\n this.captureColumns();\r\n this.captureGroups();\r\n this.captureResumen();\r\n\r\n this.Columns.changes.subscribe(() => {\r\n this.captureColumns();\r\n this.cdr.markForCheck();\r\n });\r\n\r\n this.ColumnGroups.changes.subscribe(() => {\r\n this.captureGroups();\r\n this.cdr.markForCheck();\r\n });\r\n\r\n this.RowResumenGroups.changes.subscribe(() => {\r\n this.captureResumen();\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n private captureColumns() {\r\n this.ColumnList = this.Columns?.toArray() ?? [];\r\n }\r\n\r\n private captureGroups() {\r\n this.ColumnGroupList = this.ColumnGroups?.toArray() ?? [];\r\n \r\n const levels = this.ColumnGroupList.map(c => c.level);\r\n this.MaxLevel = levels.length ? Math.max(...levels) + 1 : 1;\r\n this.Levels = Array.from({ length: this.MaxLevel }, (_, i) => i);\r\n }\r\n\r\n private captureResumen() {\r\n this.RowResumenList = this.RowResumenGroups?.toArray() ?? [];\r\n }\r\n \r\n LoadSearchOptions() {\r\n this.ListSearchOptionsSimple = this.ListSearchOptions.map((item) => ({\r\n id: item.id,\r\n value: item.name,\r\n }));\r\n }\r\n\r\n OnSort(field: string) {\r\n if (this.SortField === field) {\r\n this.SortOrder *= -1;\r\n } else {\r\n this.SortField = field as keyof T;\r\n this.SortOrder = 1;\r\n }\r\n this.ExecuteSearch({});\r\n }\r\n\r\n UpdatePages() {\r\n if (this.ShowPagination) {\r\n this.TotalRecords = this.TotalItems;\r\n\r\n const start = (this.CurrentPage - 1) * this.RowsPerPage;\r\n const end = start + this.RowsPerPage;\r\n this.ListDataTable = this.FilteredList.slice(start, end);\r\n } else {\r\n this.ListDataTable = this.FilteredList;\r\n }\r\n }\r\n\r\n OnPageChange(pageIndex: number): void {\r\n this.CurrentPage = pageIndex;\r\n this.IsPaginatorInputSearch = true;\r\n this.ExecuteSearch({});\r\n }\r\n\r\n ResetTable() {\r\n if (this.PaginatorTable) {\r\n this.PaginatorTable.CurrentPage = 1;\r\n this.CurrentPage = 1;\r\n }\r\n if (this.SearchTable) {\r\n this.SearchTable.ClearSearchText();\r\n this.SearchInput.fieldText = \"\";\r\n }\r\n this.ExecuteSearch({});\r\n }\r\n\r\n ExecuteSearch(event: any): void {\r\n if (event?.fieldText !== undefined && event?.fieldText !== \"\") {\r\n this.SearchInput = event;\r\n }\r\n\r\n const field = this.ListSearchOptions.find(\r\n (item) => item.id === this.SearchInput.fieldId\r\n )?.field;\r\n\r\n if (\r\n this.SearchInput?.searchText !== undefined &&\r\n this.SearchInput?.searchText !== \"\" &&\r\n this.ListSearchOptions.length > 0 &&\r\n !this.IsPaginatorInputSearch\r\n ) {\r\n if (this.PaginatorTable) {\r\n this.PaginatorTable.CurrentPage = 1;\r\n this.CurrentPage = 1;\r\n }\r\n }\r\n\r\n const newQueryParameters: QueryParametersModel = {\r\n FilterBy: field || undefined,\r\n FilterValue: this.SearchInput.searchText?.trim(),\r\n FilterOperator: this.SearchInput.operatorId?.toString(),\r\n OrderBy: this.SortField ? String(this.SortField) : undefined,\r\n SortDirection: this.SortOrder === 1 ? \"asc\" : \"desc\",\r\n PageNumber: this.CurrentPage,\r\n PageSize: this.RowsPerPage,\r\n };\r\n\r\n this.EmitQueryParametersChange.emit(newQueryParameters);\r\n this.UpdatePages();\r\n this.IsPaginatorInputSearch = false;\r\n }\r\n\r\n OnRowsPerPageChange(value: number): void {\r\n this.RowsPerPage = value;\r\n this.CurrentPage = 1;\r\n this.ExecuteSearch({});\r\n }\r\n}\r\n","<div class=\"prTable\">\r\n <div class=\"prTableTools\">\r\n <div class=\"prTableTools__new prTableTools__new--left\">\r\n @if (AdditionalTemplate) {\r\n <ng-container *ngTemplateOutlet=\"AdditionalTemplate\"></ng-container>\r\n }\r\n </div>\r\n\r\n @if (ShowSearch) {\r\n <intelica-search\r\n #searchTable\r\n [ComponentId]=\"ComponentId + 'Search'\"\r\n (OnSearch)=\"ExecuteSearch($event)\"\r\n [SearchFieldOptions]=\"ListSearchOptionsSimple\"\r\n [SearchOnKeyup]=\"false\"\r\n [SimpleSearchInput]=\"false\"\r\n [ShowTooltip]=\"ShowSearchTooltip\"\r\n ></intelica-search>\r\n } @if (AdditionalCentralTemplate) {\r\n <div class=\"prTableTools__new prTableTools__new--right\">\r\n <ng-container\r\n *ngTemplateOutlet=\"AdditionalCentralTemplate\"\r\n ></ng-container>\r\n </div>\r\n }\r\n </div>\r\n @if (AdditionalExtendedTemplate) {\r\n <div class=\"prTableTools justify-content-start\">\r\n <ng-container *ngTemplateOutlet=\"AdditionalExtendedTemplate\"></ng-container>\r\n </div>\r\n\r\n }\r\n <!-- Tabla que muestra FilteredList -->\r\n <p-table\r\n class=\"prTableBasic\"\r\n [ngClass]=\"ClassName\"\r\n [value]=\"FilteredList\"\r\n responsiveLayout=\"scroll\"\r\n [sortField]=\"DefaultSortField\"\r\n [sortOrder]=\"SortOrder\"\r\n [scrollable]=\"scrollable\"\r\n [scrollHeight]=\"scrollable ? scrollHeight : 'auto'\"\r\n [tableStyle]=\"tableStyle\"\r\n >\r\n <!-- Cabecera con columnas agrupadas -->\r\n <ng-template pTemplate=\"header\">\r\n @for (level of Levels; track $index) {\r\n <tr>\r\n @for (col of ColumnGroupList; track $index) { @if (col.level === level)\r\n {\r\n <th\r\n [attr.colspan]=\"col.colspan\"\r\n [attr.rowspan]=\"col.rowspan\"\r\n [pSortableColumn]=\"col.sortable ? col.field : ''\"\r\n [style.min-width]=\"col.minWidth\"\r\n (click)=\"col.sortable && OnSort(col.field)\"\r\n >\r\n <div>\r\n <span [pTooltip]=\"col.headerTooltip?.trim() ? col.headerTooltip : undefined\"\r\n [tooltipPosition]=\"col.headerTooltipPosition || 'top'\">\r\n {{ col.header }}\r\n </span>\r\n <p-sortIcon *ngIf=\"col.sortable\" [field]=\"col.field\"></p-sortIcon>\r\n </div>\r\n </th>\r\n } } @if (ShowCheckbox && level === 0 && ColumnGroupList.length != 0) {\r\n <th\r\n class=\"text-center\"\r\n style=\"width: 4%\"\r\n [attr.rowspan]=\"MaxLevel === 1 ? 2 : MaxLevel\"\r\n >\r\n <p-tableHeaderCheckbox class=\"prCheckbox\" />\r\n </th>\r\n }\r\n </tr>\r\n }\r\n\r\n <tr>\r\n @for (col of ColumnList; track $index) { @if (col.showHeader) {\r\n <th\r\n [class]=\"col.className\"\r\n [pSortableColumn]=\"\r\n !col.isChecboxColumn && col.sortable ? col.field : ''\r\n \"\r\n [style.width]=\"col.width\"\r\n [style.min-width]=\"col.minWidth\"\r\n (click)=\"!col.isChecboxColumn && col.sortable && OnSort(col.field)\"\r\n >\r\n <div>\r\n <span [pTooltip]=\"col.headerTooltip?.trim() ? col.headerTooltip : undefined\"\r\n [tooltipPosition]=\"col.headerTooltipPosition || 'top'\">\r\n {{ col.header }}\r\n </span>\r\n @if (!col.showIndex) {\r\n <p-sortIcon *ngIf=\"col.sortable\" [field]=\"col.field\"></p-sortIcon>\r\n }\r\n </div>\r\n </th>\r\n } } @if (ShowCheckbox && ColumnGroupList.length == 0) {\r\n <th class=\"text-center\" style=\"width: 4%\">\r\n <p-tableHeaderCheckbox class=\"prCheckbox\" />\r\n </th>\r\n }\r\n </tr>\r\n\r\n @if (FilteredList.length > 0 && RowResumenList.length > 0) {\r\n <tr class=\"fixedRow\">\r\n @for (col of RowResumenList; track $index) {\r\n <td\r\n [ngClass]=\"col.className\"\r\n [attr.colspan]=\"col.colspan\"\r\n [attr.rowspan]=\"col.rowspan\"\r\n >\r\n @if (col.templateRef) {\r\n <span>\r\n <ng-container *ngTemplateOutlet=\"col.templateRef\"></ng-container>\r\n </span>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </ng-template>\r\n\r\n <!-- Cuerpo de la tabla -->\r\n <ng-template pTemplate=\"body\" let-rowData let-rowIndex=\"rowIndex\">\r\n <tr>\r\n @for (col of ColumnList; track $index) {\r\n <td [ngClass]=\"col.className\">\r\n @if (col.showIndex) {\r\n {{ rowIndex + 1 + (CurrentPage - 1) * RowsPerPage }}\r\n } @else { @if (col.templateRef) {\r\n <ng-container\r\n *ngTemplateOutlet=\"col.templateRef; context: { $implicit: rowData }\"\r\n ></ng-container>\r\n } @else {\r\n <span\r\n class=\"text-breakWord\"\r\n pTooltip=\"{{ col.tooltip }}\"\r\n tooltipPosition=\"{{ col.tooltipPosition }}\"\r\n >\r\n {{ rowData[col.field] | formatCell : col.formatType }}\r\n </span>\r\n } }\r\n </td>\r\n } @if (ShowCheckbox) {\r\n <td class=\"text-center\">\r\n <p-tableCheckbox [value]=\"rowData\" class=\"prCheckbox\" />\r\n </td>\r\n }\r\n </tr>\r\n </ng-template>\r\n\r\n <!-- Mensaje cuando no hay datos -->\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td\r\n [attr.colspan]=\"ColumnList.length + (ShowCheckbox ? 1 : 0)\"\r\n class=\"text-center\"\r\n >\r\n {{ \"Nodata\" | term : GlobalTermService.languageCode }}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n\r\n <div class=\"prTableToolsBottom\">\r\n @if(TotalRecords !== 0){\r\n @if(ShowRowPerPage){\r\n <div class=\"prTableToolsBottom__itemPerPage\">\r\n {{ \"ItemPerPage\" | term : GlobalTermService.languageCode }}\r\n <p-select\r\n [options]=\"AllowedPageSizes\"\r\n [ngModel]=\"RowsPerPage\"\r\n appendTo=\"body\"\r\n (onChange)=\"OnRowsPerPageChange($event.value)\"\r\n />\r\n <label for=\"pageSize\" class=\"control-label\">\r\n {{ 1 + RowsPerPage * (CurrentPage - 1) }} -\r\n {{\r\n CurrentPage * RowsPerPage >= TotalRecords\r\n ? TotalRecords\r\n : CurrentPage * RowsPerPage\r\n }}\r\n {{ \"Of\" | term : GlobalTermService.languageCode }} {{ TotalRecords }}\r\n {{ \"Items\" | term : GlobalTermService.languageCode }}\r\n </label>\r\n </div>\r\n } @if (ShowPagination) {\r\n <intelica-paginator\r\n #paginatorTable\r\n [TotalItems]=\"TotalRecords\"\r\n [CurrentPage]=\"CurrentPage\"\r\n [ItemsPerPage]=\"RowsPerPage\"\r\n (PageChange)=\"OnPageChange($event)\"\r\n ></intelica-paginator>\r\n }\r\n }\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output, OnChanges, OnDestroy, ViewChild, inject, forwardRef, OnInit } from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { Router } from '@angular/router';\r\nimport { GlobalConstants, GroupRegCountryBankConstants, GroupRegionCountryBankModel } from \"../../constants/titles.constants\";\r\nimport { TitleSelectModel } from \"./model/title-select.model\";\r\nimport { TitleFilterModel } from \"./model/title-filter.model\";\r\nimport { SharedService } from \"../../services/shared.service\";\r\nimport { IUserContext } from \"./model/user-context.model\";\r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { CommonModule, NgIf } from '@angular/common';\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\nimport { DropdownModule } from \"primeng/dropdown\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\n\r\nimport { OverlayPanel, OverlayPanelModule } from 'primeng/overlaypanel';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { PopoverModule } from \"primeng/popover\";\r\nimport { RadioButtonModule } from \"primeng/radiobutton\";\r\nimport { AccordionModule } from \"primeng/accordion\";\r\n\r\n@Component({\r\n selector: \"intelica-titles\",\r\n templateUrl: \"./titles.component.html\",\r\n styleUrls: [\"./titles.component.css\"],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TitlesComponent),\r\n multi: true,\r\n },\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n DropdownModule,\r\n TermPipe,\r\n OverlayPanelModule,\r\n ButtonModule,\r\n NgIf,\r\n AccordionModule,\r\n PopoverModule,\r\n RadioButtonModule,\r\n ],\r\n})\r\nexport class TitlesComponent implements ControlValueAccessor, OnChanges, OnDestroy {\r\n public readonly globalTerms = inject(GlobalTermService);\r\n private readonly SharedService = inject(SharedService);\r\n /** Modelo de selección de filtro. */\r\n @Input() setFilter: TitleSelectModel | undefined;\r\n\r\n /** Título y subtítulo */\r\n @Input() title: string = \"\";\r\n @Input() subTitle: string = \"\";\r\n\r\n /** Mostrar filtros en cabecera */\r\n @Input() showFilterHead: boolean = true;\r\n\r\n /** Agregar opción Global (-1,-1,-1,-1) */\r\n @Input() addGlobal: boolean = false;\r\n\r\n /** ID para helper */\r\n @Input() helperId: string = \"\";\r\n\r\n /** Evento de cambio */\r\n @Output() changeCboTitle: EventEmitter<any> = new EventEmitter();\r\n\r\n /** Dropdown alterno (caja grande) */\r\n @Input() showAlterFilterHead: boolean = false;\r\n @Input() subShowAlterFilterHead: boolean = false;\r\n\r\n /** Filtros alternos (categoría / subcategoría) */\r\n @Input() alterFilterValues: any[] = [];\r\n @Input() alterFilterValue: number | null | undefined = 0;\r\n\r\n @Input() subAlterFilterValues: any[] = [];\r\n @Input() subAlterFilterValue: number | null | undefined = 0;\r\n\r\n /** Bancos disponibles (para filtrar) */\r\n @Input() bankIdListAvaliable: any[] = [];\r\n\r\n /** Dropdown alterno (caja grande) */\r\n @Input() isInternal: boolean = true;\r\n\r\n @Input() currentUser!: IUserContext;\r\n\r\n @Output() applyFilterClick = new EventEmitter<TitleSelectModel | undefined>();\r\n @Output() clearFilterClick = new EventEmitter<void>();\r\n\r\n /** Estado interno */\r\n titlePage: string = \"\";\r\n selectIndex: number = 0;\r\n filterHead: string = \"\";\r\n placeholder: string = \"\";\r\n subscription: Subscription = new Subscription();\r\n userBanks: TitleFilterModel[] = [];\r\n\r\n existEurope: boolean = false;\r\n isDropdownOpen: boolean = false;\r\n\r\n groupValues: any[] = [];\r\n dropdownOptions: any[] = [];\r\n\r\n groupIds: number[] = [];\r\n countryIds: number[] = [];\r\n regionIds: number[] = [];\r\n isFilterAvaliable: boolean = false;\r\n\r\n dropdownMenuId: string = \"\";\r\n tempCategoryId: number = 0;\r\n tempSubcategoryId: number = 0;\r\n tempGroupId: number = 0;\r\n filterSubCategories: any[] = [];\r\n\r\n langId: number = 325;\r\n \r\n IsTitleDropdownOpen: boolean = false;\r\n\r\n demoRadioButtonRegion!: any[];\r\n selectedRadioButtonRegion: any = null;\r\n demoRadioButtonCountry!: any[];\r\n selectedRadioButtonCountry: any = null;\r\n demoRadioButtonClient!: any[];\r\n selectedRadioButtonClient: any = null;\r\n demoRadioButtonCategory!: any[];\r\n selectedRadioButtonCategory: any = null;\r\n demoRadioButtonSubCategory!: any[];\r\n selectedRadioButtonSubCategory: any = null;\r\n demoRadioButtonMonthly!: any[];\r\n selectedRadioButtonMonthly: any = null;\r\n \r\n constructor() {\r\n this.subscription = this.SharedService.isLoadingPageInfo.subscribe({\r\n next: isLoadingPageInfo => {\r\n if (!isLoadingPageInfo) {\r\n this.loadData();\r\n this.dropdownMenuId = this.SharedService.GetLastSegmentUrl() + \"-analytics\";\r\n }\r\n },\r\n });\r\n }\r\n\r\n OnTitleDropdownClickOutside(event: Event): void {\r\n const dropdownElement = document.querySelector(\".titleDropdown\");\r\n if (dropdownElement && !dropdownElement.contains(event.target as Node)) {\r\n this.IsTitleDropdownOpen = false;\r\n }\r\n }\r\n OnTitleDropdownToggle(event: Event): void {\r\n event.stopPropagation();\r\n this.IsTitleDropdownOpen = !this.IsTitleDropdownOpen;\r\n }\r\n\r\n ApplyFilter() {\r\n const model = this.buildTitleSelect(this.selectIndex);\r\n this.changeCboTitle.emit(model);\r\n this.applyFilterClick.emit(model);\r\n this.IsTitleDropdownOpen = false;\r\n }\r\n \r\n ClearFilter() {\r\n this.alterFilterValue = 0;\r\n this.subAlterFilterValue = 0;\r\n this.changeCategories();\r\n const model = this.buildTitleSelect(this.selectIndex);\r\n this.changeCboTitle.emit(model);\r\n this.clearFilterClick.emit();\r\n this.IsTitleDropdownOpen = false;\r\n }\r\n \r\n\r\n private buildTitleSelect(index: number): TitleSelectModel {\r\n const titleSelect: TitleSelectModel = {\r\n groupId: GlobalConstants.NUMBER_ALL,\r\n regionId: GlobalConstants.NUMBER_ALL,\r\n countryId: GlobalConstants.NUMBER_ALL,\r\n bankId: GlobalConstants.NUMBER_ALL,\r\n banksId: \"\",\r\n group: \"\",\r\n addValue1: 0,\r\n addValue2: 0,\r\n };\r\n \r\n const objSelect: TitleFilterModel = this.userBanks.find(model => model.index === index) ?? ({} as TitleFilterModel);\r\n titleSelect.group = objSelect.groupBy;\r\n \r\n switch (objSelect.groupBy) {\r\n case GroupRegCountryBankConstants.GROUP[this.langId]:\r\n titleSelect.groupId = objSelect.id;\r\n break;\r\n \r\n case GroupRegCountryBankConstants.REGION[this.langId]: {\r\n const region = this.currentUser.listRegionAll.find(r => r.regionId === objSelect.id);\r\n titleSelect.regionId = region?.regionId ?? -1;\r\n break;\r\n }\r\n \r\n case GroupRegCountryBankConstants.COUNTRY[this.langId]: {\r\n const country = this.currentUser.listCountryAll.find(c => c.countryId === objSelect.id);\r\n titleSelect.countryId = country?.countryId ?? -1;\r\n break;\r\n }\r\n \r\n default: {\r\n const bank = this.currentUser.listBankAll.find(b => b.bankId === objSelect.id);\r\n if (this.currentUser.IsGroupProfile) {\r\n titleSelect.countryId = bank?.countryId ?? -1;\r\n }\r\n titleSelect.bankId = bank?.bankId ?? -1;\r\n break;\r\n }\r\n }\r\n \r\n titleSelect.banksId = this.getAllBanks(objSelect);\r\n titleSelect.addValue1 = this.alterFilterValue ?? 0;\r\n titleSelect.addValue2 = this.subAlterFilterValue ?? 0;\r\n return titleSelect;\r\n }\r\n\r\n \r\n writeValue(obj: any): void {\r\n }\r\n registerOnChange(fn: any): void {\r\n }\r\n registerOnTouched(fn: any): void {\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n }\r\n\r\n loadData() {\r\n this.langId = this.currentUser.LangSite;\r\n this.filterHead = this.SharedService.setTitles(this.currentUser.ListGroupRegionCountryBank, -1, -1, -1, -1, this.isInternal);\r\n this.title = this.titlePage;\r\n this.setGroupRegionCountryBankAll();\r\n this.setTitleFilter(this.setFilter);\r\n }\r\n\r\n ngOnChanges(changes: any): void {\r\n if (changes.setFilter) {\r\n if (this.bankIdListAvaliable.length > 0 && this.currentUser.IsIntelicaUser) {\r\n this.filterBankListAvaliable();\r\n this.setTitleFilter(changes.setFilter.currentValue);\r\n } else {\r\n this.isFilterAvaliable = false;\r\n this.setGroupRegionCountryBankAll();\r\n this.setTitleFilter(changes.setFilter.currentValue);\r\n }\r\n }\r\n if (changes.title) {\r\n this.titlePage = this.title;\r\n }\r\n if (changes.alterFilterValue) {\r\n this.tempCategoryId = this.alterFilterValue !== null && this.alterFilterValue !== undefined ? (this.alterFilterValue as number) : 0;\r\n }\r\n if (changes.subAlterFilterValue) {\r\n this.tempSubcategoryId = this.subAlterFilterValue !== null && this.subAlterFilterValue !== undefined ? (this.subAlterFilterValue as number) : 0;\r\n }\r\n if (changes.subAlterFilterValues) {\r\n this.changeCategories();\r\n }\r\n if (this.tempSubcategoryId === -1) {\r\n this.tempSubcategoryId = 0;\r\n }\r\n }\r\n\r\n setGroupRegionCountryBankAll(): void {\r\n\t\tlet regionValue = this.SharedService.getTermTextByCode(\"LBL_BANK_REGION\");\r\n\t\tlet countryValue = this.SharedService.getTermTextByCode(\"LBL_BANK_COUNTRY\");\r\n\t\tlet bankValue = this.SharedService.getTermTextByCode(\"LBL_BANK\");\r\n\t\tlet globalValue = this.SharedService.getTermTextByCode(\"LBL_TITLE_GLOBAL\");\r\n\t\tlet allValue = this.SharedService.getTermTextByCode(\"LBL_ALL\");\r\n\t\tthis.userBanks = [];\r\n\t\tif (this.currentUser) {\r\n\t\t\tif (this.addGlobal) {\r\n\t\t\t\tthis.setNewField(globalValue, globalValue, GlobalConstants.NUMBER_ALL);\r\n\t\t\t}\r\n\r\n\t\t\tif (this.currentUser && this.currentUser.ListGroupRegionCountryBank.length == 1) {\r\n\t\t\t\tthis.setNewField(\r\n\t\t\t\t\tbankValue !== \"\" ? bankValue : GroupRegCountryBankConstants.BANK[this.langId],\r\n\t\t\t\t\tthis.currentUser.ListGroupRegionCountryBank[0].bankNameCommercial,\r\n\t\t\t\t\tthis.currentUser.ListGroupRegionCountryBank[0].bankId\r\n\t\t\t\t);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tlet listGroupAll = this.fillGeneralListFilter(this.currentUser.listGroupAll, this.groupIds, 0, this.isFilterAvaliable);\r\n \r\n\t\t\tthis.fillGeneralList(listGroupAll, GroupRegCountryBankConstants.GROUP[this.langId], true);\r\n\r\n\t\t\tif (this.validateEuropeAll() && !this.currentUser.PerfilInternal) {\r\n\t\t\t\tthis.setNewField(regionValue !== \"\" ? regionValue : GroupRegCountryBankConstants.REGION[this.langId], allValue !== \"\" ? allValue : GlobalConstants.STRING_ALL, GlobalConstants.NUMBER_ALL);\r\n\t\t\t}\r\n\r\n\t\t\tlet listRegionAll = this.fillGeneralListFilter(this.currentUser.listRegionAll, this.regionIds, 1, this.isFilterAvaliable);\r\n\t\t\tthis.fillGeneralList(listRegionAll, GroupRegCountryBankConstants.REGION[this.langId]);\r\n\r\n\t\t\tif (this.hasNotPreviousGroup(this.currentUser.listCountryAll)) {\r\n\t\t\t\tthis.setNewField(countryValue !== \"\" ? countryValue : GroupRegCountryBankConstants.COUNTRY[this.langId], allValue !== \"\" ? allValue : GlobalConstants.STRING_ALL, GlobalConstants.NUMBER_ALL);\r\n\t\t\t}\r\n\r\n\t\t\tlet listCountryAll = this.fillGeneralListFilter(this.currentUser.listCountryAll, this.countryIds, 2, this.isFilterAvaliable);\r\n\t\t\tthis.fillGeneralList(listCountryAll, GroupRegCountryBankConstants.COUNTRY[this.langId]);\r\n\r\n\t\t\tif (this.hasNotPreviousGroup(this.currentUser.listBankAll)) {\r\n\t\t\t\tthis.setNewField(bankValue !== \"\" ? bankValue : GroupRegCountryBankConstants.BANK[this.langId], allValue !== \"\" ? allValue : GlobalConstants.STRING_ALL, GlobalConstants.NUMBER_ALL);\r\n\t\t\t}\r\n\r\n\t\t\tlet listBankAll = this.fillGeneralListFilter(this.currentUser.listBankAll, this.bankIdListAvaliable, 3, this.isFilterAvaliable);\r\n\t\t\tlistBankAll.forEach(bank => {\r\n\t\t\t\tif (this.existsMoreThanOneBankOrPerfilInternal(bank)) {\r\n\t\t\t\t\tthis.setNewField(\r\n\t\t\t\t\t\tbankValue !== \"\" ? bankValue : GroupRegCountryBankConstants.BANK[this.langId],\r\n\t\t\t\t\t\tthis.currentUser.PerfilInternal ? bank.bankName : bank.bankNameCommercial,\r\n\t\t\t\t\t\tbank.bankId\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.groupValues = [];\r\n\t\t\tvar groupValues = this.SharedService.groupByColumn(this.userBanks, \"groupBy\");\r\n\t\t\tgroupValues.forEach(element => {\r\n\t\t\t\tthis.groupValues.push({ groupname: element, values: this.userBanks.filter(uB => uB.groupBy === element) });\r\n\t\t\t});\r\n\r\n\t\t}\r\n\t}\r\n\r\n fillGeneralList(listAll: GroupRegionCountryBankModel[], groupBy: string, setSelectIndex: boolean = false): void {\r\n const groupValue = this.SharedService.getTermTextByCode(\"LBL_BANK_GROUP\");\r\n const regionValue = this.SharedService.getTermTextByCode(\"LBL_BANK_REGION\");\r\n const countryValue = this.SharedService.getTermTextByCode(\"LBL_BANK_COUNTRY\");\r\n\r\n [...listAll].forEach(model => {\r\n if (!(listAll.length > 1 || this.currentUser.PerfilInternal)) {\r\n return;\r\n }\r\n switch (groupBy) {\r\n case GroupRegCountryBankConstants.GROUP[this.langId]:\r\n this.setNewField(groupValue, model.groupName, model.groupId);\r\n break;\r\n case GroupRegCountryBankConstants.REGION[this.langId]:\r\n this.setNewField(regionValue, model.regionName, model.regionId);\r\n break;\r\n case GroupRegCountryBankConstants.COUNTRY[this.langId]:\r\n this.setNewField(countryValue, model.countryName, model.countryId);\r\n break;\r\n }\r\n });\r\n\r\n if (setSelectIndex) {\r\n this.selectIndex = this.currentUser.PerfilInternal ? this.userBanks.length : this.selectIndex;\r\n }\r\n }\r\n\r\n existsMoreThanOneBankOrPerfilInternal(bank: GroupRegionCountryBankModel): boolean {\r\n return this.currentUser.listBankAll.filter(altBank => altBank.countryId === bank.countryId).length > 1 || this.currentUser.PerfilInternal;\r\n }\r\n\r\n hasNotPreviousGroup(listAll: GroupRegionCountryBankModel[]): boolean {\r\n return !this.currentUser.PerfilInternal && listAll.length > 1 && !this.userBanks.some(field => field.id === -1) && !this.existEurope;\r\n }\r\n\r\n setNewField(groupBy: string, name: string, id: number) {\r\n const field = {\r\n groupBy: groupBy,\r\n name: name,\r\n id: id,\r\n index: this.userBanks.length,\r\n };\r\n \r\n this.userBanks.push(field);\r\n }\r\n\r\n validateEuropeAll() {\r\n this.existEurope = this.currentUser.listRegionAll.some(region => region.regionId === GlobalConstants.REGION_EUROPE);\r\n return (this.existEurope && this.currentUser.listRegionAll.length > 3) || (!this.existEurope && this.currentUser.listRegionAll.length > 1);\r\n }\r\n\r\n setTitleFilter(filter: TitleSelectModel | undefined): void {\r\n if (!filter) return;\r\n\r\n let groupBy: string = \"\";\r\n let id: number = GlobalConstants.NUMBER_ALL;\r\n\r\n filter.groupId = filter.groupId > 0 ? filter.groupId : GlobalConstants.NUMBER_ALL;\r\n filter.regionId = filter.regionId > 0 ? filter.regionId : GlobalConstants.NUMBER_ALL;\r\n filter.countryId = filter.countryId > 0 ? filter.countryId : GlobalConstants.NUMBER_ALL;\r\n filter.bankId = filter.bankId > 0 ? filter.bankId : GlobalConstants.NUMBER_ALL;\r\n\r\n const groupValue = this.SharedService.getTermTextByCode(\"LBL_BANK_GROUP\");\r\n const regionValue = this.SharedService.getTermTextByCode(\"LBL_BANK_REGION\");\r\n const countryValue = this.SharedService.getTermTextByCode(\"LBL_BANK_COUNTRY\");\r\n const bankValue = this.SharedService.getTermTextByCode(\"LBL_BANK\");\r\n\r\n if (filter.groupId !== GlobalConstants.NUMBER_ALL) { groupBy = groupValue !== \"\" ? groupValue : GroupRegCountryBankConstants.GROUP[this.langId]; id = filter.groupId; }\r\n if (filter.regionId !== GlobalConstants.NUMBER_ALL) { groupBy = regionValue !== \"\" ? regionValue : GroupRegCountryBankConstants.REGION[this.langId]; id = filter.regionId; }\r\n if (filter.countryId !== GlobalConstants.NUMBER_ALL) { groupBy = countryValue !== \"\" ? countryValue : GroupRegCountryBankConstants.COUNTRY[this.langId]; id = filter.countryId; }\r\n if (filter.bankId !== GlobalConstants.NUMBER_ALL) { groupBy = bankValue !== \"\" ? bankValue : GroupRegCountryBankConstants.BANK[this.langId]; id = filter.bankId; }\r\n\r\n const selected: TitleFilterModel = this.userBanks.find(option => option.groupBy === groupBy && option.id === id) ?? this.userBanks[0];\r\n if (selected) {\r\n this.selectIndex = selected.index;\r\n this.tempGroupId = this.selectIndex;\r\n }\r\n\r\n this.filterHead = this.SharedService.setTitles(this.currentUser.ListGroupRegionCountryBank, filter.groupId, filter.regionId, filter.countryId, filter.bankId, this.isInternal);\r\n\r\n if (this.addGlobal && filter.groupId === -1 && filter.regionId === -1 && filter.countryId === -1 && filter.bankId === -1) {\r\n this.filterHead = this.SharedService.getTermTextByCode(\"LBL_TITLE_GLOBAL\");\r\n }\r\n }\r\n\r\n showFilter(): boolean {\r\n return this.userBanks.length > 1 && this.showFilterHead;\r\n }\r\n\r\n /** PrimeNG emite { originalEvent, value } */\r\n changeFilter(event: any) {\r\n if (event?.value !== undefined) {\r\n this.emitSelectFilter(event.value as number);\r\n }\r\n }\r\n\r\n emitSelectFilter(index: number): void {\r\n const titleSelect = this.buildTitleSelect(index);\r\n \r\n this.filterHead = this.SharedService.setTitles(\r\n this.currentUser.ListGroupRegionCountryBank,\r\n titleSelect.groupId, titleSelect.regionId, titleSelect.countryId, titleSelect.bankId, this.isInternal\r\n );\r\n \r\n if (this.addGlobal &&\r\n (titleSelect.groupId == null || titleSelect.groupId === -1) &&\r\n (titleSelect.regionId == null || titleSelect.regionId === -1) &&\r\n (titleSelect.countryId == null || titleSelect.countryId === -1) &&\r\n (titleSelect.bankId == null || titleSelect.bankId === -1)) {\r\n this.filterHead = this.SharedService.getTermTextByCode(\"LBL_TITLE_GLOBAL\");\r\n }\r\n \r\n this.changeCboTitle.emit(titleSelect);\r\n }\r\n \r\n getAllBanks(filter: TitleFilterModel): string {\r\n let banks = \"\";\r\n const banksFiltered: GroupRegionCountryBankModel[] = this.currentUser.ListGroupRegionCountryBank.filter(bank => {\r\n let validate = false;\r\n switch (filter.groupBy) {\r\n case GroupRegCountryBankConstants.GROUP[this.langId]: validate = bank.groupId === filter.id; break;\r\n case GroupRegCountryBankConstants.REGION[this.langId]: validate = bank.regionId === filter.id; break;\r\n case GroupRegCountryBankConstants.COUNTRY[this.langId]: validate = bank.countryId === filter.id; break;\r\n default: validate = bank.bankId === filter.id; break;\r\n }\r\n return validate || filter.id === GlobalConstants.NUMBER_ALL;\r\n });\r\n banksFiltered.forEach(b => banks += \"|\" + b.bankId);\r\n return banks.substring(1);\r\n }\r\n\r\n transformNegative(val: number): string {\r\n return this.SharedService.TransformNegative(val.toString());\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n \r\n filterBankListAvaliable() {\r\n const banksAll = [...this.currentUser.ListGroupRegionCountryBank].filter(item => this.bankIdListAvaliable.includes(item.bankId));\r\n this.groupIds = [...new Set(banksAll.map(item => item.groupId))];\r\n this.countryIds = [...new Set(banksAll.map(item => item.countryId))];\r\n this.regionIds = [...new Set(banksAll.map(item => item.regionId))];\r\n this.isFilterAvaliable = true;\r\n this.setGroupRegionCountryBankAll();\r\n }\r\n\r\n fillGeneralListFilter(listAll: GroupRegionCountryBankModel[], listIds: number[], column: number, isFilterAvaliable: boolean = false): GroupRegionCountryBankModel[] {\r\n return isFilterAvaliable\r\n ? [...listAll].filter(item => listIds.includes(item[column === 0 ? \"groupId\" : column === 1 ? \"regionId\" : column === 2 ? \"countryId\" : \"bankId\"]))\r\n : [...listAll];\r\n }\r\n\r\n changeCategories() {\r\n this.filterSubCategories = this.subAlterFilterValues.filter(f => f.feeStypId === this.alterFilterValue || this.alterFilterValue === 0);\r\n if (this.tempCategoryId !== this.alterFilterValue) {\r\n this.subAlterFilterValue = 0;\r\n }\r\n }\r\n}\r\n","<div class=\"cs-client\" [id]=\"helperId\">\r\n <div class=\"client\">\r\n <div class=\"autoLine d-flex\">\r\n <div class=\"position-relative\">\r\n <ng-container *ngIf=\"!showAlterFilterHead\">\r\n <b><span>{{ titlePage }}</span></b>\r\n <b><span *ngIf=\"showFilter()\">&nbsp;- {{ filterHead }}</span></b>\r\n <b><span *ngIf=\"subTitle.length > 0\">&nbsp;- {{ subTitle }}</span></b>\r\n </ng-container>\r\n \r\n <ng-container>\r\n <div class=\"titleDropdown titleDropdown--minHeight\" [ngClass]=\"{ 'is-dropdown': IsTitleDropdownOpen }\">\r\n <div class=\"titleDropdown__toggle\" (click)=\"OnTitleDropdownToggle($event)\">\r\n <div class=\"titleDropdown__label\">\r\n <span class=\"client\">\r\n <b><span class=\"titleCategoryAnalytics\">{{ titlePage }}</span></b>\r\n <b><span *ngIf=\"showFilter()\">&nbsp;- {{ filterHead }}</span></b>\r\n <b><span *ngIf=\"subTitle.length > 0\">&nbsp;- {{ subTitle }}</span></b>\r\n </span>\r\n </div>\r\n <div class=\"titleDropdown__icon\"><i class=\"icon-arrow-down\"></i></div>\r\n </div>\r\n <div class=\"titleDropdown__dropdown\">\r\n <p-accordion class=\"prAccordionTitleDropdown\" [multiple]=\"true\">\r\n\r\n <!-- Panels dinámicos basados en groupValues (Group / Region / Country / Bank) -->\r\n <p-accordion-panel *ngFor=\"let g of groupValues; let gi = index\" [value]=\"gi\">\r\n <p-accordion-header>\r\n <div class=\"accordion-container-header\">{{ g.groupname }}</div>\r\n </p-accordion-header>\r\n \r\n <p-accordion-content>\r\n <div class=\"prRadioButtonGroup\" *ngFor=\"let v of g.values\">\r\n <p-radiobutton\r\n class=\"prRadioButton\"\r\n [inputId]=\"'optSort-' + gi + '-' + v.index\"\r\n [name]=\"'optSort_' + gi\"\r\n [value]=\"v.index\"\r\n [(ngModel)]=\"selectIndex\" />\r\n <label class=\"prRadioButtonLabel\" [for]=\"'optSort-' + gi + '-' + v.index\">\r\n {{ v.name }}\r\n </label>\r\n </div>\r\n </p-accordion-content>\r\n </p-accordion-panel>\r\n \r\n <!-- Category (usa tu alterFilterValues / alterFilterValue) -->\r\n <p-accordion-panel *ngIf=\"alterFilterValues?.length\" value=\"category\">\r\n <p-accordion-header>\r\n <div class=\"accordion-container-header\">{{'LBL_CATEGORY' | term : globalTerms.languageCode}}</div>\r\n </p-accordion-header>\r\n \r\n <p-accordion-content>\r\n <!-- ALL -->\r\n <div class=\"prRadioButtonGroup\">\r\n <p-radiobutton\r\n class=\"prRadioButton\"\r\n inputId=\"cat-all\"\r\n name=\"category\"\r\n [value]=\"0\"\r\n [(ngModel)]=\"alterFilterValue\"\r\n (onClick)=\"changeCategories()\" />\r\n <label class=\"prRadioButtonLabel\" for=\"cat-all\">{{'LBL_ALL' | term : globalTerms.languageCode}}</label>\r\n </div>\r\n \r\n <!-- Lista de categorías -->\r\n <div class=\"prRadioButtonGroup\" *ngFor=\"let cat of alterFilterValues\">\r\n <p-radiobutton\r\n class=\"prRadioButton\"\r\n [inputId]=\"'cat-' + cat.feeStypId\"\r\n name=\"category\"\r\n [value]=\"cat.feeStypId\"\r\n [(ngModel)]=\"alterFilterValue\"\r\n (onClick)=\"changeCategories()\" />\r\n <label class=\"prRadioButtonLabel\" [for]=\"'cat-' + cat.feeStypId\">\r\n {{ cat.feeStypDesc }}\r\n </label>\r\n </div>\r\n </p-accordion-content>\r\n </p-accordion-panel>\r\n \r\n <!-- SubCategory (filtrado por changeCategories -> filterSubCategories) -->\r\n <p-accordion-panel *ngIf=\"filterSubCategories?.length\" value=\"subcategory\">\r\n <p-accordion-header>\r\n <div class=\"accordion-container-header\">{{'LBL_SUBCATEGORY' | term : globalTerms.languageCode}}</div>\r\n </p-accordion-header>\r\n \r\n <p-accordion-content>\r\n <!-- ALL -->\r\n <div class=\"prRadioButtonGroup\">\r\n <p-radiobutton\r\n class=\"prRadioButton\"\r\n inputId=\"subcat-all\"\r\n name=\"subcategory\"\r\n [value]=\"0\"\r\n [(ngModel)]=\"subAlterFilterValue\" />\r\n <label class=\"prRadioButtonLabel\" for=\"subcat-all\">{{'LBL_ALL' | term : globalTerms.languageCode}}</label>\r\n </div>\r\n \r\n <!-- Lista subcategorías filtradas -->\r\n <div class=\"prRadioButtonGroup\" *ngFor=\"let sub of filterSubCategories\">\r\n <p-radiobutton\r\n class=\"prRadioButton\"\r\n [inputId]=\"'sub-' + sub.feeStypSubId\"\r\n name=\"subcategory\"\r\n [value]=\"sub.feeStypSubId\"\r\n [(ngModel)]=\"subAlterFilterValue\" />\r\n <label class=\"prRadioButtonLabel\" [for]=\"'sub-' + sub.feeStypSubId\">\r\n {{ sub.feeStypSubDesc }}\r\n </label>\r\n </div>\r\n </p-accordion-content>\r\n </p-accordion-panel>\r\n \r\n </p-accordion>\r\n \r\n <div class=\"titleDropdown__action\">\r\n <div class=\"btnBox btnBox--center\">\r\n <p-button class=\"prButton prButton--primary\" label=\"Apply\" severity=\"primary\" (click)=\"ApplyFilter()\" />\r\n <p-button class=\"prButton prButton--primary\" label=\"Clear\" severity=\"secondary\" (click)=\"ClearFilter()\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"d-flex\">\r\n <span class=\"range mt-1\"><ng-content></ng-content></span>\r\n </div>\r\n </div>\r\n ","import { Directive, forwardRef, Input, OnChanges, SimpleChanges } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { FilterDirective } from \"./filter.directive\";\r\nimport { FilterTypeEnum } from \"../../enums/filter-type.enum\";\r\n\r\n@Directive({\r\n\tselector: \"checkbox-filter\",\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => CheckboxFilterDirective),\r\n\t\t\tmulti: true\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: FilterDirective,\r\n\t\t\tuseExisting: forwardRef(() => CheckboxFilterDirective)\r\n\t\t}\r\n\t],\r\n})\r\nexport class CheckboxFilterDirective extends FilterDirective implements OnChanges, ControlValueAccessor {\r\n\tconstructor() {\r\n\t\tsuper(FilterTypeEnum.Checkbox);\r\n\t}\r\n\t@Input() modeCheckBox: string = \"\";\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tthis.$changes.next(changes);\r\n\t}\r\n}\r\n","import {\r\n Directive,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n OnChanges,\r\n Output,\r\n SimpleChanges,\r\n} from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { FilterDirective } from \"./filter.directive\";\r\nimport { FilterTypeEnum } from \"../../enums/filter-type.enum\";\r\nimport { DateMode } from \"../../constants/date-mode-options.constants\";\r\n\r\n@Directive({\r\n selector: \"date-filter\",\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DateFilterDirective),\r\n multi: true,\r\n },\r\n {\r\n provide: FilterDirective,\r\n useExisting: forwardRef(() => DateFilterDirective),\r\n },\r\n ],\r\n})\r\nexport class DateFilterDirective\r\n extends FilterDirective\r\n implements OnChanges, ControlValueAccessor\r\n{\r\n constructor() {\r\n super(FilterTypeEnum.Date);\r\n }\r\n @Input() format: string = \"MM-yyyy\";\r\n @Input() start: string = \"year\";\r\n @Input() depth: string = \"Year\";\r\n @Input() strictMode: boolean = false;\r\n @Input() min: Date = new Date(1970, 0, 1);\r\n @Input() max: Date = new Date();\r\n @Input() showTodayButton: boolean = false;\r\n @Input() allowEdit: boolean = true;\r\n @Input() range: boolean = false;\r\n @Input() isReadOnly: boolean = false;\r\n @Input() dateMode: DateMode = \"day\";\r\n @Output() open: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() navigated: EventEmitter<any> = new EventEmitter<any>();\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.$changes.next(changes);\r\n }\r\n}\r\n","import { Directive, forwardRef, Input, OnChanges, SimpleChanges } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { FilterDirective } from \"./filter.directive\";\r\nimport { FilterTypeEnum } from \"../../enums/filter-type.enum\";\r\n\r\n@Directive({\r\n\tselector: \"select-detail-filter\",\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => SelectDetailFilterDirective),\r\n\t\t\tmulti: true\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: FilterDirective,\r\n\t\t\tuseExisting: forwardRef(() => SelectDetailFilterDirective)\r\n\t\t}\r\n\t],\r\n})\r\nexport class SelectDetailFilterDirective extends FilterDirective implements OnChanges, ControlValueAccessor {\r\n\tconstructor() {\r\n\t\tsuper(FilterTypeEnum.SelectDetail);\r\n\t}\r\n\r\n\t@Input() id: string = \"\";\r\n\t@Input() fieldText: string = \"\";\r\n\t@Input() fieldValue: string = \"\";\r\n\t@Input() fieldDetail: string = \"\";\r\n\t@Input() data: any[] = [];\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tthis.$changes.next(changes);\r\n\t}\r\n}\r\n","import { Directive, forwardRef, Input, OnChanges } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { FilterDirective } from \"./filter.directive\";\r\nimport { FilterTypeEnum } from \"../../enums/filter-type.enum\";\r\n\r\n@Directive({\r\n\tselector: \"select-filter\",\r\n\tproviders: [\r\n\t {\r\n\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\tuseExisting: forwardRef(() => SelectFilterDirective),\r\n\t\tmulti: true\r\n\t },\r\n\t {\r\n\t\tprovide: FilterDirective,\r\n\t\tuseExisting: forwardRef(() => SelectFilterDirective)\r\n\t }\r\n\t]\r\n })\r\nexport class SelectFilterDirective extends FilterDirective implements OnChanges, ControlValueAccessor {\r\n\tconstructor() {\r\n\t\tsuper(FilterTypeEnum.Select);\r\n\t}\r\n\r\n\t@Input() options: any[] = [];\r\n\t@Input() optionLabel: string = \"text\";\r\n\t@Input() optionValue: string = \"value\";\r\n\t@Input() showFilter: boolean = false;\r\n\t@Input() showAll: boolean = false;\r\n\t@Input() multiple: boolean = false;\r\n\t@Input() popupWidth: string = \"auto\";\r\n\t@Input() appendTo: string = \"\";\r\n\t@Input() panelStyleClass: string = \"prSelect\";\r\n\t@Input() allText: string = \"All\";\r\n\t@Input() maxSelectedLabels: number = 3;\r\n\t@Input() virtualScroll: boolean = false;\r\n\t@Input() selectedItemsLabel: string = \"Selected\";\r\n\t@Input() group: boolean = false;\r\n\t@Input() resetFilterOnHide: boolean = true;\r\n\r\n\tngOnChanges(changes: any): void {\r\n\t\tthis.$changes.next(changes);\r\n\t}\r\n}\r\n","import { ContentChild, Directive, forwardRef } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { FilterDirective } from \"./filter.directive\";\r\nimport { FilterTypeEnum } from \"../../enums/filter-type.enum\";\r\n\r\n@Directive({\r\n\tselector: \"template-filter\",\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => TemplateDirective),\r\n\t\t\tmulti: true\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: FilterDirective,\r\n\t\t\tuseExisting: forwardRef(() => TemplateDirective)\r\n\t\t}\r\n\t],\r\n})\r\nexport class TemplateDirective extends FilterDirective implements ControlValueAccessor {\r\n\tconstructor() {\r\n\t\tsuper(FilterTypeEnum.Template);\r\n\t}\r\n\t@ContentChild(\"content\") content!: any;\r\n}\r\n","import { Directive, forwardRef, OnChanges, SimpleChanges } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { FilterDirective } from \"./filter.directive\";\r\nimport { FilterTypeEnum } from \"../../enums/filter-type.enum\";\r\n\r\n@Directive({\r\n\tselector: \"view-text-area-filter\",\r\n\tproviders: [\r\n\t\t {\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => TextAreaFilterDirective),\r\n\t\t\tmulti: true\r\n\t\t },\r\n\t\t {\r\n\t\t\tprovide: FilterDirective,\r\n\t\t\tuseExisting: forwardRef(() => TextAreaFilterDirective)\r\n\t\t }\r\n\t\t],\r\n})\r\nexport class TextAreaFilterDirective extends FilterDirective implements OnChanges, ControlValueAccessor {\r\n\tconstructor() {\r\n\t\tsuper(FilterTypeEnum.TextArea);\r\n\t}\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tthis.$changes.next(changes);\r\n\t}\r\n}\r\n","import { Directive, forwardRef, OnChanges, SimpleChanges } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { FilterDirective } from \"./filter.directive\";\r\nimport { FilterTypeEnum } from \"../../enums/filter-type.enum\";\r\n\r\n@Directive({\r\n\tselector: \"text-filter\",\r\n\tproviders: [\r\n\t\t{\r\n\t\t provide: NG_VALUE_ACCESSOR,\r\n\t\t useExisting: forwardRef(() => TextFilterDirective),\r\n\t\t multi: true\r\n\t\t},\r\n\t\t{\r\n\t\t provide: FilterDirective,\r\n\t\t useExisting: forwardRef(() => TextFilterDirective)\r\n\t\t}\r\n\t ],\r\n\tstandalone: true,\r\n})\r\nexport class TextFilterDirective extends FilterDirective implements OnChanges, ControlValueAccessor {\r\n\tconstructor() {\r\n\t\tsuper(FilterTypeEnum.Text);\r\n\t}\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tthis.$changes.next(changes);\r\n\t}\r\n}\r\n","import { Directive, forwardRef, Input, OnChanges, SimpleChanges } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { FilterDirective } from \"./filter.directive\";\r\nimport { FilterTypeEnum } from \"../../enums/filter-type.enum\";\r\n\r\n@Directive({\r\n\tselector: \"text-range-filter\",\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => TextRangeFilterDirective),\r\n\t\t\tmulti: true\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: FilterDirective,\r\n\t\t\tuseExisting: forwardRef(() => TextRangeFilterDirective)\r\n\t\t}\r\n\t],\r\n})\r\nexport class TextRangeFilterDirective extends FilterDirective implements OnChanges, ControlValueAccessor {\r\n\tconstructor() {\r\n\t\tsuper(FilterTypeEnum.TextRange);\r\n\t}\r\n\r\n\t@Input() minRange?: string = \"\";\r\n\t@Input() maxRange?: string = \"\";\r\n\t@Input() minLabel: string = \"\";\r\n\t@Input() maxLabel: string = \"\";\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tthis.$changes.next(changes);\r\n\t}\r\n}\r\n","import { Directive, HostListener, Input, Optional, Host } from \"@angular/core\";\r\nimport { TableComponent } from \"../../components/table/table.component\";\r\n\r\n@Directive({\r\n selector: \"[intelicaCellCheckbox]\",\r\n standalone: true,\r\n})\r\nexport class IntelicaCellCheckboxDirective {\r\n @Input(\"intelicaCellCheckbox\") field!: string;\r\n @Input(\"intelicaCellCheckboxRow\") row!: any;\r\n\r\n constructor(@Optional() @Host() private table: TableComponent<any>) {}\r\n\r\n // ngModel (Angular forms)\r\n @HostListener(\"ngModelChange\", [\"$event\"])\r\n onNgModelChange(val: boolean) {\r\n if (!this.table || !this.field || !this.row) return;\r\n this.row[this.field] = val;\r\n this.table.recomputeHeaderState(this.field);\r\n }\r\n\r\n // onChange (PrimeNG p-checkbox)\r\n @HostListener(\"onChange\", [\"$event\"])\r\n onPrimeChange(evt: any) {\r\n const val = !!evt?.checked;\r\n this.onNgModelChange(val);\r\n }\r\n}\r\n","import * as XLSX from \"xlsx\";\r\nimport { Alignment, Workbook, Worksheet } from \"exceljs\";\r\nimport { saveAs } from \"file-saver\";\r\nimport { Injectable } from \"@angular/core\";\r\n@Injectable({\r\n\tprovidedIn: \"root\",\r\n})\r\nexport class HtmlToExcelService {\r\n\tExportTOExcel(idTabla: string, html: string, filename: string, tabname: string, extension: string) {\r\n\t\tlet Table = document.getElementById(idTabla);\r\n\t\tif (Table == null) return;\r\n\t\tTable.innerHTML = \"\";\r\n\t\tTable.innerHTML += html;\r\n\t\tconst ws: XLSX.WorkSheet = XLSX.utils.table_to_sheet(Table, {\r\n\t\t\traw: false,\r\n\t\t});\r\n\t\tconst wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n\t\tXLSX.utils.book_append_sheet(wb, ws, tabname);\r\n\t\tXLSX.writeFile(wb, filename + \".\" + extension);\r\n\t}\r\n\r\n\tprivate readonly Logo: string =\r\n\t\t\"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\";\r\n\tprivate readonly ColumnAligment: Partial<Alignment> = {\r\n\t\tvertical: \"middle\",\r\n\t\thorizontal: \"center\",\r\n\t\twrapText: true,\r\n\t};\r\n\r\n\tprivate readonly BorderStyle = { style: \"thin\" as \"thin\", color: { argb: \"FFFFFF\" } };\r\n\r\n\tasync ExportToExcel(\r\n\t\texcelName: string,\r\n\t\treportTitle: string,\r\n\t\tfilterTitle: string,\r\n\t\trowsSerializate: string,\r\n\t\tcolumns: IExcelColumnName[],\r\n\t\tfilters: IFilter[],\r\n\t\tsubtitles?: string[],\r\n\t\tshowTotalRow?: boolean,\r\n\t\theaderGroups?: IExcelHeaderGroup[],\r\n\t\tchildKey?: string,\r\n\t\tSheetName?: string\r\n\t): Promise<void>;\r\n\r\n\tasync ExportToExcel(options: ExportToExcelOptions): Promise<void>;\r\n\r\n\tasync ExportToExcel(\r\n\t\texcelNameOrOptions: string | ExportToExcelOptions,\r\n\t\treportTitle?: string,\r\n\t\tfilterTitle?: string,\r\n\t\trowsSerializate?: string,\r\n\t\tcolumns?: IExcelColumnName[],\r\n\t\tfilters?: IFilter[],\r\n\t\tsubtitles: string[] = [],\r\n\t\tshowTotalRow: boolean = false,\r\n\t\theaderGroups: IExcelHeaderGroup[] = [],\r\n\t\tchildKey?: string,\r\n\t\tSheetName: string = \"\"\r\n\t): Promise<void> {\r\n\t\tlet options: ExportToExcelOptions;\r\n\r\n\t\tif (typeof excelNameOrOptions === \"string\") {\r\n\t\t\toptions = {\r\n\t\t\t\texcelName: excelNameOrOptions,\r\n\t\t\t\treportTitle: reportTitle!,\r\n\t\t\t\tfilterTitle: filterTitle!,\r\n\t\t\t\trowsSerializate: rowsSerializate!,\r\n\t\t\t\tcolumns: columns!,\r\n\t\t\t\tfilters: filters!,\r\n\t\t\t\tsubtitles,\r\n\t\t\t\tshowTotalRow,\r\n\t\t\t\theaderGroups,\r\n\t\t\t\tchildKey,\r\n\t\t\t\tSheetName,\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\toptions = {\r\n\t\t\t\tsubtitles: [],\r\n\t\t\t\tshowTotalRow: false,\r\n\t\t\t\theaderGroups: [],\r\n\t\t\t\tSheetName: \"\",\r\n\t\t\t\t...excelNameOrOptions,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst workbook = new Workbook();\r\n\t\tconst worksheet = workbook.addWorksheet(options.SheetName || options.reportTitle);\r\n\t\tworksheet.views = [{ showGridLines: false }];\r\n\t\tconst imageId = workbook.addImage({\r\n\t\t\tbase64: this.Logo,\r\n\t\t\textension: \"png\",\r\n\t\t});\r\n\t\tthis.SetReportPage(options.rowsSerializate, worksheet, options.columns, imageId, options.subtitles, options.showTotalRow, options.headerGroups, options.childKey);\r\n\t\tthis.SetTitle(worksheet, options.reportTitle);\r\n\t\tif (options.filters.length > 0) {\r\n\t\t\tconst worksheetFilter = workbook.addWorksheet(options.filterTitle);\r\n\t\t\tworksheetFilter.views = [{ showGridLines: false }];\r\n\t\t\tthis.SetFilterPage(options.filterTitle, worksheetFilter, options.filters);\r\n\t\t}\r\n\t\tconst buffer = await workbook.xlsx.writeBuffer();\r\n\t\tsaveAs(new Blob([buffer]), options.excelName);\r\n\t}\r\n\r\n\tprivate SetTitle(worksheet: Worksheet, reportTitle: string) {\r\n\t\tworksheet.mergeCells(\"D1:I5\");\r\n\t\tconst titleCell = worksheet.getCell(\"D1\");\r\n\t\ttitleCell.value = reportTitle;\r\n\t\ttitleCell.font = {\r\n\t\t\tname: \"Arial\",\r\n\t\t\tbold: true,\r\n\t\t\tsize: 20,\r\n\t\t\tcolor: { argb: \"21409A\" },\r\n\t\t};\r\n\t\ttitleCell.alignment = this.ColumnAligment;\r\n\t}\r\n\tprivate SetReportPage(\r\n\t\trowsSerializate: string,\r\n\t\tworksheet: Worksheet,\r\n\t\tcolumns: IExcelColumnName[],\r\n\t\timageId: number,\r\n\t\tsubtitles: string[] = [],\r\n\t\tshowTotalRow: boolean = false,\r\n\t\theaderGroups: IExcelHeaderGroup[] = [],\r\n\t\tchildKey?: string\r\n\t) {\r\n\t\tlet columnsCell: string[] = [];\r\n\t\tlet rows = JSON.parse(rowsSerializate);\r\n\r\n\t\tconst isHierarchical = this.DetectsHierarchy(rows, childKey);\r\n\t\tif (isHierarchical) {\r\n\t\t\trows = this.FlattenRowsForHierarchy(rows, childKey);\r\n\t\t}\r\n\r\n\t\tlet isHeaderGroup = headerGroups.length > 0;\r\n\t\tconst imageRows = 5;\r\n\t\tconst numberRows = rows.length;\r\n\t\tfor (let i = 0; i < subtitles.length + imageRows; i++) {\r\n\t\t\tworksheet.addRow([\"\"]);\r\n\t\t}\r\n\t\tlet startRow = imageRows + 1 + subtitles.length;\r\n\t\tconst groupedIndices = new Set<number>();\r\n\t\tif (isHeaderGroup) {\r\n\t\t\tfor (const group of headerGroups) {\r\n\t\t\t\tconst startChar = this.GetExcelColumnLetter(group.startColumn);\r\n\t\t\t\tconst endChar = this.GetExcelColumnLetter(group.endColumn);\r\n\t\t\t\tconst range = `${startChar}${startRow}:${endChar}${startRow}`;\r\n\t\t\t\tworksheet.mergeCells(range);\r\n\t\t\t\tconst cellGroup: string = `${startChar}${startRow}`;\r\n\t\t\t\tconst cell = worksheet.getCell(cellGroup);\r\n\r\n\t\t\t\tcell.value = group.name;\r\n\t\t\t\tcell.font = {\r\n\t\t\t\t\tname: \"Arial\",\r\n\t\t\t\t\tbold: true,\r\n\t\t\t\t\tsize: 10,\r\n\t\t\t\t\tcolor: { argb: \"FFFFFF\" },\r\n\t\t\t\t};\r\n\t\t\t\tcell.fill = {\r\n\t\t\t\t\ttype: \"pattern\",\r\n\t\t\t\t\tpattern: \"solid\",\r\n\t\t\t\t\tfgColor: { argb: \"21409A\" },\r\n\t\t\t\t};\r\n\t\t\t\tcell.border = {\r\n\t\t\t\t\ttop: this.BorderStyle,\r\n\t\t\t\t\tleft: this.BorderStyle,\r\n\t\t\t\t\tbottom: this.BorderStyle,\r\n\t\t\t\t\tright: this.BorderStyle,\r\n\t\t\t\t};\r\n\t\t\t\tcell.alignment = {\r\n\t\t\t\t\tvertical: \"middle\",\r\n\t\t\t\t\thorizontal: \"center\",\r\n\t\t\t\t\twrapText: true,\r\n\t\t\t\t};\r\n\t\t\t\tfor (let i = group.startColumn; i <= group.endColumn; i++) {\r\n\t\t\t\t\tgroupedIndices.add(i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tfor (let i = 0; i < columns.length; i++) {\r\n\t\t\tconst colLetter = this.GetExcelColumnLetter(i);\r\n\t\t\tconst topCell = `${colLetter}${startRow}`;\r\n\t\t\tconst bottomCell = `${colLetter}${isHeaderGroup ? startRow + 1 : startRow}`;\r\n\t\t\tif (groupedIndices.has(i)) {\r\n\t\t\t\tcolumnsCell.push(bottomCell);\r\n\t\t\t\tconst cell = worksheet.getCell(bottomCell);\r\n\t\t\t\tcell.value = columns[i].displayColumnName;\r\n\t\t\t\tcell.border = { top: this.BorderStyle, left: this.BorderStyle, bottom: this.BorderStyle, right: this.BorderStyle };\r\n\t\t\t\tcell.alignment = {\r\n\t\t\t\t\tvertical: \"middle\",\r\n\t\t\t\t\thorizontal: \"center\",\r\n\t\t\t\t\twrapText: true,\r\n\t\t\t\t};\r\n\t\t\t} else {\r\n\t\t\t\tworksheet.mergeCells(`${topCell}:${bottomCell}`);\r\n\t\t\t\tconst cell = worksheet.getCell(topCell);\r\n\t\t\t\tcell.value = columns[i].displayColumnName;\r\n\t\t\t\tcell.font = {\r\n\t\t\t\t\tname: \"Arial\",\r\n\t\t\t\t\tbold: true,\r\n\t\t\t\t\tsize: 10,\r\n\t\t\t\t\tcolor: { argb: \"FFFFFF\" },\r\n\t\t\t\t};\r\n\t\t\t\tcell.border = {\r\n\t\t\t\t\ttop: this.BorderStyle,\r\n\t\t\t\t\tleft: this.BorderStyle,\r\n\t\t\t\t\tbottom: this.BorderStyle,\r\n\t\t\t\t\tright: this.BorderStyle,\r\n\t\t\t\t};\r\n\t\t\t\tcell.alignment = this.ColumnAligment;\r\n\t\t\t\tcell.fill = {\r\n\t\t\t\t\ttype: \"pattern\",\r\n\t\t\t\t\tpattern: \"solid\",\r\n\t\t\t\t\tfgColor: { argb: \"21409A\" },\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (isHeaderGroup) startRow += 2;\r\n\t\telse startRow += 1;\r\n\t\tif (showTotalRow) {\r\n\t\t\tconst sums = columns.map(col => {\r\n\t\t\t\tif (col.columnName === \"\") return \"Total\";\r\n\t\t\t\tif (!col.totalRowValue) return null;\r\n\t\t\t\treturn col.totalRowValue\r\n\t\t\t\t\t? {\r\n\t\t\t\t\t\t\tformula: `\"${col.totalRowValue}\"`,\r\n\t\t\t\t\t\t\tresult: col.totalRowValue,\r\n\t\t\t\t\t }\r\n\t\t\t\t\t: null;\r\n\t\t\t});\r\n\t\t\tconst insertedRow = worksheet.insertRow(startRow, sums);\r\n\t\t\tinsertedRow.eachCell((cell, colNumber) => {\r\n\t\t\t\tconst column = columns[colNumber - 1];\r\n\t\t\t\tcell.font = {\r\n\t\t\t\t\tname: \"Arial\",\r\n\t\t\t\t\tbold: true,\r\n\t\t\t\t\tsize: 10,\r\n\t\t\t\t\tcolor: { argb: \"21409A\" },\r\n\t\t\t\t};\r\n\t\t\t\tcell.alignment = {\r\n\t\t\t\t\tvertical: \"middle\",\r\n\t\t\t\t\thorizontal: (column?.alignHorizontal as \"distributed\" | \"justify\" | \"center\" | \"left\" | \"right\" | \"fill\" | \"centerContinuous\") ?? \"left\",\r\n\t\t\t\t};\r\n\t\t\t\tcell.border = {\r\n\t\t\t\t\tbottom: { style: \"thin\", color: { argb: \"FF7F00\" } },\r\n\t\t\t\t};\r\n\t\t\t\tif (typeof cell.value === \"number\") {\r\n\t\t\t\t\tcell.numFmt = \"0.00\";\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tcolumns.forEach((col, index) => {\r\n\t\t\t\tconst cellAddress = `${this.GetExcelColumnLetter(index)}${startRow}`;\r\n\t\t\t\tconst cell = worksheet.getCell(cellAddress);\r\n\t\t\t\tcell.font = {\r\n\t\t\t\t\tname: \"Arial\",\r\n\t\t\t\t\tbold: true,\r\n\t\t\t\t\tsize: 10,\r\n\t\t\t\t\tcolor: { argb: \"21409A\" },\r\n\t\t\t\t};\r\n\t\t\t\tcell.alignment = {\r\n\t\t\t\t\tvertical: \"middle\",\r\n\t\t\t\t\thorizontal: (col.alignHorizontal as \"distributed\" | \"justify\" | \"center\" | \"left\" | \"right\" | \"fill\" | \"centerContinuous\") ?? \"left\",\r\n\t\t\t\t};\r\n\t\t\t\tcell.border = {\r\n\t\t\t\t\tbottom: { style: \"thin\", color: { argb: \"FF7F00\" } },\r\n\t\t\t\t};\r\n\t\t\t});\r\n\t\t\tstartRow++;\r\n\t\t}\r\n\t\t//Inserción de filas\r\n\t\tconst numberColIdx = (() => {\r\n\t\t\tconst byEmpty = columns.findIndex(c => (c.columnName ?? \"\").trim() === \"\");\r\n\t\t\tif (byEmpty !== -1) return byEmpty;\r\n\r\n\t\t\tconst isNumDisplay = (s?: string) => (s ?? \"\").trim().toLowerCase().replace(\"º\", \"°\") === \"n°\";\r\n\r\n\t\t\tconst byDisplay = columns.findIndex(c => isNumDisplay(c.displayColumnName));\r\n\t\t\tconst byColumnName = columns.findIndex(c => isNumDisplay(c.columnName as any));\r\n\r\n\t\t\tconst i = byDisplay !== -1 ? byDisplay : byColumnName;\r\n\t\t\treturn i; // -1 si no hay numeración\r\n\t\t})(); // Detecta la columna de numeración (\"\", \"N°\" o \"Nº\") si existe\r\n\r\n\t\tconst hasNumbering = numberColIdx !== -1;\r\n\r\n\t\t// Columna a indentar:\r\n\t\tlet indentColIdx: number | null = null;\r\n\t\tif (hasNumbering && numberColIdx + 1 < columns.length) {\r\n\t\t\tindentColIdx = numberColIdx + 1;\r\n\t\t} else {\r\n\t\t\tconst nameIdx = columns.findIndex(c => (c.columnName ?? \"\").trim().toLowerCase() === \"name\" || (c.displayColumnName ?? \"\").trim().toLowerCase().includes(\"name\"));\r\n\t\t\tif (nameIdx !== -1) indentColIdx = nameIdx;\r\n\t\t}\r\n\r\n\t\tfor (let rowIndex = 0; rowIndex < numberRows; rowIndex++) {\r\n\t\t\tconst rowValues: any[] = [];\r\n\t\t\tfor (let colIndex = 0; colIndex < columns.length; colIndex++) {\r\n\t\t\t\tif (hasNumbering && colIndex === numberColIdx) {\r\n\t\t\t\t\trowValues.push(isHierarchical ? rows[rowIndex].__hier : rowIndex + 1);\r\n\t\t\t\t} else {\r\n\t\t\t\t\trowValues.push(rows[rowIndex][columns[colIndex].columnName] ?? \"\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tconst insertedRow = worksheet.addRow(rowValues);\r\n\r\n\t\t\tinsertedRow.eachCell((cell, colNumber) => {\r\n\t\t\t\tconst col = columns[colNumber - 1];\r\n\t\t\t\tif (col?.formatNumber) {\r\n\t\t\t\t\tconst fmt = this.GetNumberFormat(col.formatNumber);\r\n\t\t\t\t\tif (fmt) cell.numFmt = fmt;\r\n\t\t\t\t}\r\n\t\t\t\tcell.alignment = {\r\n\t\t\t\t\tvertical: \"middle\",\r\n\t\t\t\t\thorizontal: (col?.alignHorizontal as Alignment[\"horizontal\"]) ?? \"left\",\r\n\t\t\t\t\twrapText: true,\r\n\t\t\t\t};\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t//Formato nombre de columnas\r\n\t\tcolumnsCell.forEach(cellRef => {\r\n\t\t\tconst cell = worksheet.getCell(cellRef);\r\n\t\t\tcell.fill = {\r\n\t\t\t\ttype: \"pattern\",\r\n\t\t\t\tpattern: \"solid\",\r\n\t\t\t\tfgColor: { argb: \"21409A\" },\r\n\t\t\t};\r\n\t\t\tcell.font = {\r\n\t\t\t\tname: \"Arial\",\r\n\t\t\t\tbold: true,\r\n\t\t\t\tsize: 10,\r\n\t\t\t\tcolor: { argb: \"FFFFFF\" },\r\n\t\t\t};\r\n\t\t\tcell.alignment = this.ColumnAligment;\r\n\t\t});\r\n\t\t//Formato de filas\r\n\t\tconst firstDataRow = startRow;\r\n\t\tworksheet.eachRow((row, rowIndex) => {\r\n\t\t\tif (rowIndex < firstDataRow) return;\r\n\t\t\tconst isEven = (rowIndex - firstDataRow) % 2 === 0;\r\n\t\t\trow.eachCell(cell => {\r\n\t\t\t\tif (!isEven) {\r\n\t\t\t\t\tcell.fill = {\r\n\t\t\t\t\t\ttype: \"pattern\",\r\n\t\t\t\t\t\tpattern: \"solid\",\r\n\t\t\t\t\t\tfgColor: { argb: \"F0F4FF\" },\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t\tcell.font = {\r\n\t\t\t\t\tname: \"Arial\",\r\n\t\t\t\t\tsize: 10,\r\n\t\t\t\t\tcolor: { argb: \"0F1533\" },\r\n\t\t\t\t\t...(isHierarchical\r\n\t\t\t\t\t\t? (() => {\r\n\t\t\t\t\t\t\t\tconst dataIndex = rowIndex - firstDataRow;\r\n\t\t\t\t\t\t\t\tconst isApplyBold = rows?.[dataIndex]?.__level === 0 || rows?.[dataIndex]?.__level === 1;\r\n\t\t\t\t\t\t\t\treturn isApplyBold ? { bold: true } : {};\r\n\t\t\t\t\t\t })()\r\n\t\t\t\t\t\t: {}),\r\n\t\t\t\t};\r\n\t\t\t});\r\n\t\t});\r\n\t\t//Logo intelica\r\n\t\tworksheet.addImage(imageId, {\r\n\t\t\ttl: { col: 0.5, row: 1 },\r\n\t\t\text: { width: 217, height: 50 },\r\n\t\t\teditAs: \"absolute\",\r\n\t\t});\r\n\t\t//Subtitulos: Se inserta al final para evitar altere el autoajuste de las columnas\r\n\t\tfor (let i = 0; i < subtitles.length; i++) {\r\n\t\t\tconst range = `A${6 + i}:${this.GetExcelColumnLetter(columns.length - 1)}${6 + i}`;\r\n\t\t\tworksheet.mergeCells(range);\r\n\t\t\tconst cell = worksheet.getCell(`A${6 + i}`);\r\n\t\t\tcell.value = subtitles[i];\r\n\t\t\tcell.font = {\r\n\t\t\t\tname: \"Arial\",\r\n\t\t\t\tsize: 10,\r\n\t\t\t\tcolor: { argb: \"21409A\" },\r\n\t\t\t};\r\n\t\t\tcell.alignment = {\r\n\t\t\t\tvertical: \"middle\",\r\n\t\t\t\thorizontal: \"left\",\r\n\t\t\t\twrapText: true,\r\n\t\t\t};\r\n\t\t}\r\n\t\tthis.AdjustColumnWidth(worksheet, columns, subtitles.length);\r\n\t}\r\n\tprivate SetFilterPage(filterTitle: string, worksheetFilter: Worksheet, filters: IFilter[]) {\r\n\t\tlet widtFilter: number = 30;\r\n\t\tworksheetFilter.addRow([filterTitle]);\r\n\t\tworksheetFilter.mergeCells([\"A1\", \"B2\"]);\r\n\t\tworksheetFilter.columns.forEach(column => {\r\n\t\t\tcolumn.width = widtFilter;\r\n\t\t\tcolumn.alignment = this.ColumnAligment;\r\n\t\t\twidtFilter *= 3;\r\n\t\t});\r\n\t\t[\"A1\", \"B1\"].map(key => {\r\n\t\t\tworksheetFilter.getCell(key).fill = {\r\n\t\t\t\ttype: \"pattern\",\r\n\t\t\t\tpattern: \"solid\",\r\n\t\t\t\tfgColor: { argb: \"FF7F00\" },\r\n\t\t\t\tbgColor: { argb: \"FF7F00\" },\r\n\t\t\t};\r\n\t\t\tworksheetFilter.getCell(key).font = {\r\n\t\t\t\tname: \"Arial\",\r\n\t\t\t\tbold: true,\r\n\t\t\t\tsize: 12,\r\n\t\t\t\tcolor: { argb: \"FFFFFF\" },\r\n\t\t\t};\r\n\t\t});\r\n\t\tfilters.forEach((element, index) => {\r\n\t\t\tlet row = worksheetFilter.addRow([element.key, element.value]);\r\n\t\t\tlet color = index % 2 === 1 ? \"F0F4FF\" : \"FFFFFF\";\r\n\r\n\t\t\trow.eachCell(cell => {\r\n\t\t\t\tcell.fill = {\r\n\t\t\t\t\ttype: \"pattern\",\r\n\t\t\t\t\tpattern: \"solid\",\r\n\t\t\t\t\tfgColor: { argb: color },\r\n\t\t\t\t\tbgColor: { argb: color },\r\n\t\t\t\t};\r\n\t\t\t\tcell.font = {\r\n\t\t\t\t\tname: \"Arial\",\r\n\t\t\t\t\tbold: false,\r\n\t\t\t\t\tsize: 10,\r\n\t\t\t\t\tcolor: { argb: \"0F1533\" },\r\n\t\t\t\t};\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\tprivate AdjustColumnWidth(worksheet: Worksheet, columns: IExcelColumnName[], numSubtitles: number) {\r\n\t\tworksheet.columns.forEach((column, index) => {\r\n\t\t\tif (!column.values) return;\r\n\t\t\tif (columns[index] == undefined) return;\r\n\t\t\tlet columnWidth = columns[index].width ?? Math.max(...column.values.map(v => (v ? v.toString().length : 0)).filter(v => typeof v === \"number\"), columns[index].displayColumnName.length) * 1.4;\r\n\t\t\tcolumn.width = Math.min(Math.max(columnWidth, 5), 100);\r\n\t\t});\r\n\t\tworksheet.eachRow((row, rowIndex) => {\r\n\t\t\tlet maxLines = 1;\r\n\t\t\trow.eachCell((cell, colNumber) => {\r\n\t\t\t\tif (numSubtitles > 0 && cell.fullAddress.row > 5 && cell.fullAddress.row <= 5 + numSubtitles) return;\r\n\t\t\t\tif (cell.value) {\r\n\t\t\t\t\tlet text = typeof cell.value === \"object\" ? cell.text : cell.value.toString();\r\n\t\t\t\t\tlet columnWidth = worksheet.getColumn(colNumber).width ?? 10;\r\n\t\t\t\t\tlet charsPerLine = columnWidth * 1.2;\r\n\t\t\t\t\tlet estimatedLines = Math.ceil(text.length / charsPerLine);\r\n\t\t\t\t\tmaxLines = Math.max(maxLines, estimatedLines);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\trow.height = Math.min(Math.max(15 * maxLines, 15), 30);\r\n\t\t});\r\n\t}\r\n\tasync ExportToExcelRawData({ excelName, reportTitle, filterTitle, rowsSerializate, columns, filters, orderColumn = false }: ExportExcelCommand): Promise<void> {\r\n\t\tconst workbook = new Workbook();\r\n\t\tconst worksheet = workbook.addWorksheet(reportTitle);\r\n\t\tconst rows = JSON.parse(rowsSerializate);\r\n\t\tworksheet.views = [{ showGridLines: false }];\r\n\t\tconst allColumns = orderColumn ? [{ displayColumnName: \"N°\" }, ...columns] : columns;\r\n\t\tallColumns.forEach((col, index) => {\r\n\t\t\tconst columnLetter = this.GetExcelColumnLetter(index);\r\n\t\t\tconst headerCell = worksheet.getCell(`${columnLetter}1`);\r\n\t\t\theaderCell.value = col.displayColumnName;\r\n\t\t\theaderCell.alignment = { horizontal: \"center\", vertical: \"middle\" };\r\n\t\t\theaderCell.font = { name: \"Arial\", bold: true, size: 10 };\r\n\t\t});\r\n\t\tconst maxLengths = allColumns.map(col => col.displayColumnName.length);\r\n\t\trows.forEach((rowData: any, rowIndex: number) => {\r\n\t\t\tconst rowValues = allColumns.map((col, colIndex) => {\r\n\t\t\t\tif (orderColumn && colIndex === 0) {\r\n\t\t\t\t\treturn rowIndex + 1;\r\n\t\t\t\t}\r\n\t\t\t\tconst originalColIndex = orderColumn ? colIndex - 1 : colIndex;\r\n\t\t\t\treturn rowData[columns[originalColIndex].columnName]?.toString() || \"\";\r\n\t\t\t});\r\n\t\t\trowValues.forEach((value, i) => {\r\n\t\t\t\tconst length = value.length;\r\n\t\t\t\tif (length > maxLengths[i]) {\r\n\t\t\t\t\tmaxLengths[i] = length;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tworksheet.addRow(rowValues);\r\n\t\t});\r\n\t\tallColumns.forEach((_, index) => {\r\n\t\t\tworksheet.getColumn(index + 1).width = maxLengths[index] + 2;\r\n\t\t});\r\n\t\tif (filters?.length) {\r\n\t\t\tconst worksheetFilter = workbook.addWorksheet(filterTitle);\r\n\t\t\tworksheetFilter.views = [{ showGridLines: false }];\r\n\t\t\tthis.SetFilterPage(filterTitle, worksheetFilter, filters);\r\n\t\t}\r\n\t\tconst buffer = await workbook.xlsx.writeBuffer();\r\n\t\tsaveAs(new Blob([buffer]), excelName);\r\n\t}\r\n\tasync ExportToCSVRaw(excelName: string, rowsSerializate: string): Promise<void> {\r\n\t\tconst rows: { linea: string }[] = JSON.parse(rowsSerializate);\r\n\t\tconst csvLines: string[] = rows.map(r => r.linea);\r\n\t\tconst csvContent = csvLines.join(\"\\n\");\r\n\t\tconst blob = new Blob([\"\\uFEFF\" + csvContent], {\r\n\t\t\ttype: \"text/csv;charset=utf-8;\",\r\n\t\t});\r\n\t\tsaveAs(blob, excelName.endsWith(\".csv\") ? excelName : `${excelName}.csv`);\r\n\t}\r\n\tprivate GetExcelColumnLetter(columnNumber: number): string {\r\n\t\tlet letter = \"\";\r\n\t\twhile (columnNumber >= 0) {\r\n\t\t\tletter = String.fromCharCode(65 + (columnNumber % 26)) + letter;\r\n\t\t\tcolumnNumber = Math.floor(columnNumber / 26) - 1;\r\n\t\t}\r\n\t\treturn letter;\r\n\t}\r\n\r\n\tprivate GetNumberFormat(formatNumber: string): string {\r\n\t\tconst formats: Record<string, string> = {\r\n\t\t\tinteger: '#,##0;(#,##0);\"-\"',\r\n\t\t\tdecimal: '#,##0.00;(#,##0.00);\"-\"',\r\n\t\t\tpercent_2: '#0.00\"%\";(#0.00\"%\");\"-\"',\r\n\t\t\tpercent_4: '#0.0000\"%\";(#0.0000\"%\");\"-\"',\r\n\t\t};\r\n\t\treturn formats[formatNumber] || \"\";\r\n\t}\r\n\r\n\tprivate FlattenRowsForHierarchy(rows: any[], childKey = \"details\", path: number[] = []): any[] {\r\n\t\tconst flat: any[] = [];\r\n\t\trows?.forEach((item, idx) => {\r\n\t\t\tconst seq = [...path, idx + 1];\r\n\t\t\tconst hasChildren = Array.isArray(item?.[childKey]) && item[childKey].length > 0;\r\n\t\t\tconst copy = { ...item };\r\n\t\t\tdelete copy[childKey];\r\n\r\n\t\t\tflat.push({\r\n\t\t\t\t...copy,\r\n\t\t\t\t__hier: seq.join(\".\"), // \"1\" | \"1.1\" | \"2.2.1\" ...\r\n\t\t\t\t__level: seq.length - 1, // 0 = raíz, 1 = hijo, 2 = nieto...\r\n\t\t\t\t__hasChildren: hasChildren, // para formateo en negrita\r\n\t\t\t});\r\n\r\n\t\t\tif (hasChildren) {\r\n\t\t\t\tflat.push(...this.FlattenRowsForHierarchy(item[childKey], childKey, seq));\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn flat;\r\n\t}\r\n\r\n\tprivate DetectsHierarchy(rows: any[], childKey = \"details\"): boolean {\r\n\t\treturn rows?.some(r => Array.isArray(r?.[childKey]) && r[childKey].length > 0) ?? false;\r\n\t}\r\n}\r\nexport interface ExportExcelCommand {\r\n\texcelName: string;\r\n\treportTitle: string;\r\n\tfilterTitle: string;\r\n\trowsSerializate: string;\r\n\tcolumns: IExcelColumnName[];\r\n\tfilters: IFilter[];\r\n\torderColumn?: boolean;\r\n}\r\nexport interface ICell {\r\n\tindex: number;\r\n\tcells: string[];\r\n}\r\nexport interface IExcelColumnName {\r\n\tcolumnName: string;\r\n\tdisplayColumnName: string;\r\n\talignHorizontal?: string; // 'distributed' | 'justify' | 'center' | 'left' | 'right' | 'fill' | 'centerContinuous' type alignment and left for default\r\n\twidth?: number;\r\n\ttotalRowValue?: string;\r\n\tformatNumber?: \"integer\" | \"decimal\" | \"percent_2\" | \"percent_4\";\r\n}\r\nexport interface IFilter {\r\n\tkey: string;\r\n\tvalue: string;\r\n}\r\nexport interface IExcelHeaderGroup {\r\n\tstartColumn: number;\r\n\tendColumn: number;\r\n\tname: string;\r\n}\r\n\r\nexport interface ExportToExcelOptions {\r\n\texcelName: string;\r\n\treportTitle: string;\r\n\tfilterTitle: string;\r\n\trowsSerializate: string;\r\n\tcolumns: IExcelColumnName[];\r\n\tfilters: IFilter[];\r\n\tsubtitles?: string[];\r\n\tshowTotalRow?: boolean;\r\n\theaderGroups?: IExcelHeaderGroup[];\r\n\tchildKey?: string;\r\n\tSheetName?: string;\r\n}\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { inject, Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { LanguageSimpleResponse } from \"../dto/languageResponses\";\r\nimport { ConfigService } from \"./config.service\";\r\n@Injectable({\r\n\tprovidedIn: \"root\",\r\n})\r\nexport class LanguageService {\r\n\tprivate readonly _http = inject(HttpClient);\r\n\tprivate readonly _configService = inject(ConfigService);\r\n\tGetAllLanguage(): Observable<LanguageSimpleResponse[]> {\r\n\t\treturn this._http.get<LanguageSimpleResponse[]>(`${this._configService.environment?.configurationPath}/Language`);\r\n\t}\r\n}\r\n","export function darkenColor(input: string, amount = 0.2): string {\r\n const clamp = (v: number) => Math.max(0, Math.min(255, v));\r\n const toHex = (v: number) => v.toString(16).padStart(2, '0');\r\n\r\n if (input.startsWith('#')) {\r\n const r = parseInt(input.slice(1, 3), 16);\r\n const g = parseInt(input.slice(3, 5), 16);\r\n const b = parseInt(input.slice(5, 7), 16);\r\n return `#${toHex(clamp(Math.round(r * (1 - amount))))}${toHex(clamp(Math.round(g * (1 - amount))))}${toHex(clamp(Math.round(b * (1 - amount))))}`;\r\n }\r\n const m = input.match(/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*([\\d.]+))?\\)/i);\r\n if (m) {\r\n const r = clamp(Math.round(+m[1] * (1 - amount)));\r\n const g = clamp(Math.round(+m[2] * (1 - amount)));\r\n const b = clamp(Math.round(+m[3] * (1 - amount)));\r\n const a = m[4] !== undefined ? `, ${m[4]}` : '';\r\n return `rgba(${r}, ${g}, ${b}${a})`;\r\n }\r\n return input;\r\n}","import { inject, Injectable } from \"@angular/core\";\r\nimport {\r\n\tEChartsOption,\r\n\tPieSeriesOption,\r\n\tLegendComponentOption,\r\n\tBarSeriesOption,\r\n\tGridComponentOption,\r\n\tTooltipComponentFormatterCallback,\r\n\tTooltipComponentFormatterCallbackParams,\r\n\tLabelFormatterCallback,\r\n\tDefaultLabelFormatterCallbackParams,\r\n\tLineSeriesOption,\r\n\tYAXisComponentOption,\r\n} from \"echarts\";\r\nimport { Color, getColor } from \"../constants/color.constants\";\r\nimport { SharedService } from \"./shared.service\";\r\nimport { darkenColor } from \"../functions/echart.util\";\r\n\r\n@Injectable({\r\n\tprovidedIn: \"root\",\r\n})\r\nexport class EchartService {\r\n\tprivate readonly _sharedService = inject(SharedService);\r\n\r\n\t/// Chart Generals\r\n\r\n\tprivate getDefultAxisConfiguration(type: string, data?: any[], showAxis: boolean = true, showSplitLine: boolean = false): any {\r\n\t\treturn {\r\n\t\t\tshow: showAxis,\r\n\t\t\ttype: type,\r\n\t\t\tdata: data,\r\n\t\t\taxisTick: {\r\n\t\t\t\tshow: false,\r\n\t\t\t},\r\n\t\t\taxisLine: {\r\n\t\t\t\tshow: false,\r\n\t\t\t\tlineStyle: { color: getColor(\"gray\"), type: \"dashed\" },\r\n\t\t\t},\r\n\t\t\tsplitLine: {\r\n\t\t\t\tshow: showSplitLine,\r\n\t\t\t\tlineStyle: {\r\n\t\t\t\t\tcolor: Color.gray,\r\n\t\t\t\t\ttype: \"dashed\",\r\n\t\t\t\t\twidth: 1,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\taxisLabel: {\r\n\t\t\t\tshow: showAxis,\r\n\t\t\t\tcolor: Color.gray3,\r\n\t\t\t\tfontSize: 14,\r\n\t\t\t\tpadding: 10,\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tprivate getCategoryAxisConfiguration(data: any[]) {\r\n\t\treturn this.getDefultAxisConfiguration(\"category\", data, true);\r\n\t}\r\n\r\n\tprivate getValueAxisConfiguration(showAxis: boolean = false, format: boolean = false, showAxisLines: boolean = false) {\r\n\t\tlet axisConfiguration = this.getDefultAxisConfiguration(\"value\", undefined, showAxis, showAxisLines);\r\n\t\tif (format) {\r\n\t\t\taxisConfiguration.axisLabel.formatter = (value: number) => this._sharedService.FormatNumberWithSuffix(value);\r\n\t\t}\r\n\t\treturn axisConfiguration;\r\n\t}\r\n\r\n\tprivate getGridConfiguration(): GridComponentOption {\r\n\t\treturn {\r\n\t\t\tleft: \"0%\",\r\n\t\t\tright: \"0%\",\r\n\t\t\t//bottom: '0%',\r\n\t\t\tcontainLabel: true,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate getLegendConfiguration(): LegendComponentOption {\r\n\t\treturn {\r\n\t\t\torient: \"horizontal\", // 'horizontal | vertical'\r\n\t\t\ticon: \"circle\",\r\n\t\t\tbottom: 5,\r\n\t\t\talign: \"auto\",\r\n\t\t\titemGap: 20,\r\n\t\t\ttextStyle: { color: Color.blue, fontSize: 14 },\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @param color - Color of the tooltip\r\n\t * @param title - Title of the tooltip\r\n\t * @param body - Body of the tooltip\r\n\t * @returns - Tooltip HTML string\r\n\t */\r\n\tgetTooltipFormatter(color: string, title: string, body: string): string {\r\n\t\tconst titleHtml =\r\n\t\t\ttitle.length > 0\r\n\t\t\t\t? `\r\n\t\t\t<b style=\" font-size: 13px;\">${title} </b><br>\r\n\t\t\t<hr style=\"border: 1px solid ${color}; margin: 4px 0;\">`\r\n\t\t\t\t: \"\";\r\n\t\treturn `\r\n\t \t<div style=\"font-size: 12px; boder-color: ${color}; color: ${color}; border-radius: 6px; min-width: 120px; text-align: center;\">\r\n\t\t\t${titleHtml}\r\n\t\t\t${body}\r\n\t\t</div>\r\n\t `;\r\n\t}\r\n\r\n\t/// Charts Configuration\r\n\r\n\t/// BAR CHARTS\r\n\r\n\t/**\r\n\t *\r\n\t * @param categories - Array of categories for the x-axis\r\n\t * @param series - Array of series data, each containing name, value, and color\r\n\t * @param labelConfig - Optional label configuration for the bars\r\n\t * @param tooltipConfig - Optional tooltip configuration for the bars\r\n\t * @param showLegend - Optional flag to show the legend\r\n\t * @returns - EChartsOption - Configuration object for the bar chart\r\n\t */\r\n\tgetBarChartOptions(\r\n\t\tcategories: string[],\r\n\t\tseries: { name: string; value: any; color: string }[],\r\n\t\tlabelConfig?: LabelFormatterCallback<DefaultLabelFormatterCallbackParams>,\r\n\t\ttooltipConfig?: TooltipComponentFormatterCallback<TooltipComponentFormatterCallbackParams>,\r\n\t\tshowLegend: boolean = false\r\n\t): EChartsOption {\r\n\t\treturn {\r\n\t\t\txAxis: this.getCategoryAxisConfiguration(categories),\r\n\t\t\tyAxis: this.getValueAxisConfiguration(),\r\n\t\t\tseries: [\r\n\t\t\t\t...series.map(\r\n\t\t\t\t\t(item): BarSeriesOption => ({\r\n\t\t\t\t\t\ttype: \"bar\",\r\n\t\t\t\t\t\tname: item.name,\r\n\t\t\t\t\t\titemStyle: { color: item.color },\r\n\t\t\t\t\t\tdata: item.value,\r\n\t\t\t\t\t\t// barWidth: \"33%\",\r\n\t\t\t\t\t\tbarGap: \"0%\",\r\n\t\t\t\t\t\tlabel: {\r\n\t\t\t\t\t\t\tshow: true,\r\n\t\t\t\t\t\t\tposition: \"top\",\r\n\t\t\t\t\t\t\tcolor: Color.blue,\r\n\t\t\t\t\t\t\tfontSize: 12,\r\n\t\t\t\t\t\t\tformatter: labelConfig,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t})\r\n\t\t\t\t),\r\n\t\t\t],\r\n\t\t\ttooltip: {\r\n\t\t\t\ttrigger: \"item\",\r\n\t\t\t\tbackgroundColor: \"#FFFFFF\",\r\n\t\t\t\tborderWidth: 2,\r\n\t\t\t\ttextStyle: { fontSize: 12 },\r\n\t\t\t\tformatter: tooltipConfig,\r\n\t\t\t},\r\n\t\t\tgrid: this.getGridConfiguration(),\r\n\t\t\tlegend: showLegend ? this.getLegendConfiguration() : undefined,\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @param categories - Array of categories for the x-axis\r\n\t * @param series - Array of series data, each containing name, value, and color\r\n\t * @param labelConfig - Optional label configuration for the bars\r\n\t * @param tooltipConfig - Optional tooltip configuration for the bars\r\n\t * @param showLegend - Optional flag to show the legend\r\n\t * @returns - EChartsOption - Configuration object for the bar chart\r\n\t */\r\n\tgetBarChartStackOptions(\r\n\t\tcategories: string[],\r\n\t\tseries: { name: string; value: any; color: string }[],\r\n\t\tlabelConfig?: LabelFormatterCallback<DefaultLabelFormatterCallbackParams>,\r\n\t\ttooltipConfig?: TooltipComponentFormatterCallback<TooltipComponentFormatterCallbackParams>,\r\n\t\tshowLegend: boolean = false\r\n\t): EChartsOption {\r\n\t\tlet barBase = this.getBarChartOptions(categories, series, labelConfig, tooltipConfig, showLegend);\r\n\t\t(barBase.series as BarSeriesOption[]).forEach((serie, index) => {\r\n\t\t\t// serie.barWidth = \"50%\";\r\n\t\t\t// serie.barGap = \"0%\";\r\n\t\t\tserie.barCategoryGap = \"10%\";\r\n\t\t\tserie.stack = \"total\";\r\n\t\t\tif (index < series.length - 1) {\r\n\t\t\t\tserie.label = undefined;\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn barBase;\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @param categories - Array of categories for the y-axis\r\n\t * @param series - Array of series data, each containing name, value, and color\r\n\t * @param labelConfig - Optional label configuration for the bars\r\n\t * @param tooltipConfig - Optional tooltip configuration for the bars\r\n\t * @param showLegend - Optional flag to show the legend\r\n\t * @returns - EChartsOption - Configuration object for the bar chart\r\n\t */\r\n\tgetBarChartHorizontalOptions(\r\n\t\tcategories: string[],\r\n\t\tseries: { name: string; value: any; color: string }[],\r\n\t\tlabelConfig?: LabelFormatterCallback<DefaultLabelFormatterCallbackParams>,\r\n\t\ttooltipConfig?: TooltipComponentFormatterCallback<TooltipComponentFormatterCallbackParams>,\r\n\t\tshowLegend: boolean = false,\r\n\t\tenableSelectStyle: boolean = false // 👈 nuevo\r\n\t): EChartsOption {\r\n\t\tlet barBase = this.getBarChartOptions(categories, series, labelConfig, tooltipConfig, showLegend);\r\n\t\tbarBase.xAxis = this.getValueAxisConfiguration();\r\n\t\tbarBase.yAxis = this.getCategoryAxisConfiguration(categories);\r\n\r\n\t\t(barBase.series as BarSeriesOption[]).forEach((serie, idx) => {\r\n\t\t\tif (serie.label) {\r\n\t\t\t\tserie.label.position = \"right\";\r\n\t\t\t}\r\n\r\n\t\t\tconst baseColor =\r\n\t\t\t\t(serie.itemStyle as any)?.color ??\r\n\t\t\t\t(series[idx] && series[idx].color) ??\r\n\t\t\t\t'#FF8A00';\r\n\r\n\t\t\tserie.itemStyle = {\r\n\t\t\t\t...(serie.itemStyle || {}),\r\n\t\t\t\tcolor: baseColor,\r\n\t\t\t\tborderWidth: 0,\r\n\t\t\t};\r\n\r\n\t\t\tif (enableSelectStyle) {\r\n\t\t\t\t(serie as any).selectedMode = 'single';\r\n\r\n\t\t\t\tconst selectedColor = darkenColor(String(baseColor), 0.38);\r\n\r\n\t\t\t\tserie.select = {\r\n\t\t\t\t\titemStyle: {\r\n\t\t\t\t\t\tcolor: selectedColor,\r\n\t\t\t\t\t\tborderWidth: 0,\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (barBase.grid) {\r\n\t\t\t(barBase.grid as GridComponentOption).left = \"10%\";\r\n\t\t\t(barBase.grid as GridComponentOption).right = \"10%\";\r\n\t\t\t(barBase.grid as GridComponentOption).bottom = \"10%\";\r\n\t\t\t(barBase.grid as GridComponentOption).containLabel = true;\r\n\t\t}\r\n\t\treturn barBase;\r\n\t}\t \r\n\r\n\t/**\r\n\t *\r\n\t * @param categories - Array of categories for the y-axis\r\n\t * @param series - Array of series data, each containing name, value, and color\r\n\t * @param labelConfig - Optional label configuration for the bars\r\n\t * @param tooltipConfig - Optional tooltip configuration for the bars\r\n\t * @param showLegend - Optional flag to show the legend\r\n\t * @returns - EChartsOption - Configuration object for the bar chart\r\n\t */\r\n\tgetBarChartHorizontalStackOptions(\r\n\t\tcategories: string[],\r\n\t\tseries: { name: string; value: any; color: string }[],\r\n\t\tlabelConfig?: LabelFormatterCallback<DefaultLabelFormatterCallbackParams>,\r\n\t\ttooltipConfig?: TooltipComponentFormatterCallback<TooltipComponentFormatterCallbackParams>,\r\n\t\tshowLegend: boolean = false\r\n\t): EChartsOption {\r\n\t\tlet barBase = this.getBarChartHorizontalOptions(categories, series, labelConfig, tooltipConfig, showLegend);\r\n\t\t(barBase.series as BarSeriesOption[]).forEach((serie, index) => {\r\n\t\t\t// serie.barWidth = \"50%\";\r\n\t\t\t// serie.barGap = \"0%\";\r\n\t\t\tserie.barCategoryGap = \"10%\";\r\n\t\t\tserie.stack = \"total\";\r\n\t\t\tif (serie.label) {\r\n\t\t\t\tserie.label.position = \"right\";\r\n\t\t\t}\r\n\t\t\tif (index < series.length - 1) {\r\n\t\t\t\tserie.label = undefined;\r\n\t\t\t}\r\n\t\t});\r\n\t\tif (barBase.grid) {\r\n\t\t\t(barBase.grid as GridComponentOption).left = \"10%\";\r\n\t\t\t(barBase.grid as GridComponentOption).right = \"10%\";\r\n\t\t\t(barBase.grid as GridComponentOption).bottom = \"10%\";\r\n\t\t\t(barBase.grid as GridComponentOption).containLabel = true;\r\n\t\t}\r\n\t\treturn barBase;\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @param categories - Array of categories for the y-axis\r\n\t * @param series - Array of series data, each containing name, value, and color\r\n\t * @param labelConfig - Optional label configuration for the bars\r\n\t * @param tooltipConfig - Optional tooltip configuration for the bars\r\n\t * @param showLegend - Optional flag to show the legend\r\n\t * @returns - EChartsOption - Configuration object for the bar chart\r\n\t */\r\n\tgetBarChartTopOptions(\r\n\t\tcategories: string[],\r\n\t\tseries: { name: string; value: any; color: string }[],\r\n\t\tcategoryWidth: number = 240,\r\n\t\tlabelConfig?: LabelFormatterCallback<DefaultLabelFormatterCallbackParams>,\r\n\t\ttooltipConfig?: TooltipComponentFormatterCallback<TooltipComponentFormatterCallbackParams>,\r\n\t\tshowLegend: boolean = false,\r\n\t\tcategoryFormatter?: (value: string, index: number) => string\r\n\t): EChartsOption {\r\n\t\tconst barBase = this.getBarChartHorizontalOptions(categories, series, labelConfig, tooltipConfig, showLegend, true);\r\n\t\r\n\t\tif (barBase.yAxis) {\r\n\t\t\tconst y = barBase.yAxis as YAXisComponentOption;\r\n\t\t\tconst gr = barBase.grid as GridComponentOption;\r\n\t\r\n\t\t\tconst defaultCategoryFormatter = (value: string | number, index: number) => {\r\n\t\t\t\tconst sangriaBase = '\\u2008\\u2008\\u2008\\u2008\\u2008\\u2008\\u2009';\r\n\t\t\t\tconst lineLength = 35;\r\n\t\t\t\r\n\t\t\t\tconst text = String(value ?? '');\r\n\t\t\t\tconst prefix = `${index + 1} - `;\r\n\t\t\t\r\n\t\t\t\tconst digitCount = String(index + 1).length;\r\n\t\t\t\t\r\n\t\t\t\tlet extraRepeat = 0;\r\n\t\t\t\tif (digitCount === 2) extraRepeat = 2;\r\n\t\t\t\telse if (digitCount === 3) extraRepeat = 5;\r\n\t\t\t\r\n\t\t\t\tconst sangria = sangriaBase + '\\u2008'.repeat(extraRepeat);\r\n\t\t\t\r\n\t\t\t\tconst words = text.split(' ');\r\n\t\t\t\tconst lines: string[] = [];\r\n\t\t\t\tlet current = '';\r\n\t\t\t\r\n\t\t\t\tfor (const w of words) {\r\n\t\t\t\t\tconst test = current ? `${current} ${w}` : w;\r\n\t\t\t\t\tif (test.length <= lineLength) current = test;\r\n\t\t\t\t\telse { if (current) lines.push(current); current = w; }\r\n\t\t\t\t}\r\n\t\t\t\tif (current) lines.push(current);\r\n\t\t\t\r\n\t\t\t\treturn prefix + lines.map((ln, i) => (i === 0 ? ln : `${sangria}${ln}`)).join('\\n');\r\n\t\t\t};\r\n\t\t\t\r\n\t\t\ty.inverse = true;\r\n\t\t\ty.axisLabel = {\r\n\t\t\t\t...y.axisLabel,\r\n\t\t\t\tcolor: Color.blue,\r\n\t\t\t\tfontSize: 12,\r\n\t\t\t\twidth: categoryWidth,\r\n\t\t\t\toverflow: \"break\",\r\n\t\t\t\talign: \"left\",\r\n\t\t\t\tverticalAlign: \"middle\",\r\n\t\t\t\tmargin: categoryWidth + 30,\r\n\t\t\t\tlineHeight: 16,\r\n\t\t\t\tformatter: categoryFormatter || defaultCategoryFormatter,\r\n\t\t\t};\r\n\t\r\n\t\t\tgr.top = \"0%\";\r\n\t\t\tgr.left = -1 * categoryWidth + 60;\r\n\t\t\tgr.right = 20;\r\n\t\t\tgr.bottom = \"0%\";\r\n\t\t\tgr.containLabel = true;\r\n\t\t}\r\n\t\r\n\t\t(barBase.series as BarSeriesOption[]).forEach((serie) => {\r\n\t\t\tserie.label = {\r\n\t\t\t\t...(serie.label || {}),\r\n\t\t\t\tformatter: labelConfig,\r\n\t\t\t};\r\n\t\t});\r\n\t\r\n\t\treturn barBase;\r\n\t}\r\n\r\n\t/// LINE CHARTS\r\n\r\n\t/**\r\n\t *\r\n\t * @param categories - Array of categories for the x-axis\r\n\t * @param series - Array of series data, each containing name, value, and color\r\n\t * @param labelConfig - Optional label configuration for the lines\r\n\t * @param tooltipConfig - Optional tooltip configuration for the lines\r\n\t * @param showLegend - Optional flag to show the legend\r\n\t * @returns - EChartsOption - Configuration object for the line chart\r\n\t */\r\n\tgetLineChartOptions(\r\n\t\tcategories: string[],\r\n\t\tseries: { name: string; value: any; color: string }[],\r\n\t\tlabelConfig: LabelFormatterCallback<DefaultLabelFormatterCallbackParams>,\r\n\t\ttooltipConfig?: TooltipComponentFormatterCallback<TooltipComponentFormatterCallbackParams>,\r\n\t\tshowLegend: boolean = false\r\n\t): EChartsOption {\r\n\t\treturn {\r\n\t\t\txAxis: this.getCategoryAxisConfiguration(categories),\r\n\t\t\tyAxis: this.getValueAxisConfiguration(true, true, true),\r\n\t\t\tseries: [\r\n\t\t\t\t...series.map(\r\n\t\t\t\t\t(item, seriesIndex): LineSeriesOption => ({\r\n\t\t\t\t\t\ttype: \"line\",\r\n\t\t\t\t\t\tname: item.name,\r\n\t\t\t\t\t\tdata: item.value,\r\n\t\t\t\t\t\titemStyle: { color: item.color },\r\n\t\t\t\t\t\tsymbol: \"circle\",\r\n\t\t\t\t\t\tsymbolSize: 14,\r\n\t\t\t\t\t\temphasis: {\r\n\t\t\t\t\t\t\titemStyle: {\r\n\t\t\t\t\t\t\t\tcolor: item.color,\r\n\t\t\t\t\t\t\t\tborderColor: item.color + \"40\", // 40 ( hexadecimal ) = .25 ( decimal )\r\n\t\t\t\t\t\t\t\tborderWidth: 16,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t})\r\n\t\t\t\t),\r\n\t\t\t],\r\n\t\t\ttooltip: {\r\n\t\t\t\ttrigger: \"item\",\r\n\t\t\t\tbackgroundColor: \"#FFFFFF\",\r\n\t\t\t\tborderWidth: 2,\r\n\t\t\t\ttextStyle: { fontSize: 12 },\r\n\t\t\t\tformatter: tooltipConfig,\r\n\t\t\t},\r\n\t\t\tdataZoom: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttype: \"inside\", // inside | slider\r\n\t\t\t\t\tshow: true,\r\n\t\t\t\t\theight: 12,\r\n\t\t\t\t\tbottom: 10,\r\n\t\t\t\t\tbackgroundColor: \"#ddd\",\r\n\t\t\t\t\tborderColor: \"transparent\",\r\n\t\t\t\t\tfillerColor: \"rgba(150, 150, 150, 0.5)\",\r\n\t\t\t\t\thandleSize: \"80%\",\r\n\t\t\t\t\thandleStyle: {\r\n\t\t\t\t\t\tcolor: \"#A0A0A0\",\r\n\t\t\t\t\t\tborderColor: \"transparent\",\r\n\t\t\t\t\t\tshadowBlur: 2,\r\n\t\t\t\t\t\tshadowColor: \"rgba(0, 0, 0, 0.2)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tshowDataShadow: false,\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\ttype: \"inside\",\r\n\t\t\t\t\tshowDataShadow: false,\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\tlegend: showLegend ? this.getLegendConfiguration() : undefined,\r\n\t\t};\r\n\t}\r\n\r\n\t/// PIE CHARTS\r\n\r\n\t/**\r\n\t *\r\n\t * @param data - Array of series data, each containing name, value, and color\r\n\t * @param labelConfig - Optional label configuration\r\n\t * @param tooltipConfig - Optional tooltip configuration\r\n\t * @returns - EChartsOption - Configuration object for the pie\r\n\t */\r\n\tgetDoughnutPieOptions(\r\n\t\tdata: { name: string; value: any; color: string }[],\r\n\t\tlabelConfig: LabelFormatterCallback<DefaultLabelFormatterCallbackParams>,\r\n\t\ttooltipConfig?: TooltipComponentFormatterCallback<TooltipComponentFormatterCallbackParams>\r\n\t): EChartsOption {\r\n\t\treturn {\r\n\t\t\tseries: <PieSeriesOption[]>[\r\n\t\t\t\t{\r\n\t\t\t\t\tdata: data.map(item => ({\r\n\t\t\t\t\t\t...item,\r\n\t\t\t\t\t\titemStyle: { color: item.color },\r\n\t\t\t\t\t})),\r\n\t\t\t\t\tname: \"Pie Chart\",\r\n\t\t\t\t\ttype: \"pie\",\r\n\t\t\t\t\tradius: [\"40%\", \"70%\"],\r\n\t\t\t\t\tavoidLabelOverlap: false,\r\n\t\t\t\t\temphasis: {\r\n\t\t\t\t\t\tscale: true,\r\n\t\t\t\t\t},\r\n\t\t\t\t\tlabelLine: {\r\n\t\t\t\t\t\tshow: true,\r\n\t\t\t\t\t\tlength: 15,\r\n\t\t\t\t\t\tlength2: 20,\r\n\t\t\t\t\t},\r\n\t\t\t\t\tlabel: {\r\n\t\t\t\t\t\tshow: true,\r\n\t\t\t\t\t\tposition: \"outside\",\r\n\t\t\t\t\t\tcolor: Color.blue,\r\n\t\t\t\t\t\tfontSize: 14,\r\n\t\t\t\t\t\tformatter: labelConfig,\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\ttooltip: {\r\n\t\t\t\ttrigger: \"item\",\r\n\t\t\t\tformatter: tooltipConfig,\r\n\t\t\t\t// extraCssText: this.chartService.getTooltipCssText(),\r\n\t\t\t},\r\n\t\t\tlegend: <LegendComponentOption>{\r\n\t\t\t\torient: \"horizontal\", // 'horizontal | vertical'\r\n\t\t\t\ticon: \"circle\",\r\n\t\t\t\tbottom: 5,\r\n\t\t\t\talign: \"auto\",\r\n\t\t\t\titemGap: 20,\r\n\t\t\t\ttextStyle: { color: Color.blue, fontSize: 14 },\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @param letter - text to show in the center of the pie\r\n\t * @param value - rate\tvalue\r\n\t * @param textSize - size of the letter\r\n\t * @param color - color of the letter and pie\r\n\t * @param\ttotal - total value for the pie (default is 100)\r\n\t * @returns\r\n\t */\r\n\tgetRateDoughnutPieOptions(letter: string, value: number, textSize: number, color: string, total: number = 100): EChartsOption {\r\n\t\tconst data = [\r\n\t\t\t{ name: letter, value: value, itemStyle: { color: color } },\r\n\t\t\t{\r\n\t\t\t\tname: \"placeholder\",\r\n\t\t\t\tvalue: total - value,\r\n\t\t\t\titemStyle: { color: Color.gray5 },\r\n\t\t\t},\r\n\t\t];\r\n\t\treturn {\r\n\t\t\ttooltip: {\r\n\t\t\t\ttrigger: \"none\",\r\n\t\t\t},\r\n\t\t\tseries: <PieSeriesOption[]>[\r\n\t\t\t\t{\r\n\t\t\t\t\tname: \"RateDoughnutPie\",\r\n\t\t\t\t\ttype: \"pie\",\r\n\t\t\t\t\ttooltip: {\r\n\t\t\t\t\t\ttrigger: \"none\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tradius: [\"80%\", \"60%\"],\r\n\t\t\t\t\tdata: data,\r\n\t\t\t\t\tstartAngle: 0,\r\n\t\t\t\t\tselectedMode: false,\r\n\t\t\t\t\tsilent: true,\r\n\t\t\t\t\tlabel: {\r\n\t\t\t\t\t\tshow: true,\r\n\t\t\t\t\t\tformatter: letter,\r\n\t\t\t\t\t\tcolor: color,\r\n\t\t\t\t\t\tposition: \"center\",\r\n\t\t\t\t\t\tfontWeight: \"bold\",\r\n\t\t\t\t\t\tfontSize: textSize,\r\n\t\t\t\t\t\tfontFamily: \"Arial\",\r\n\t\t\t\t\t\tlineHeight: textSize * -0.22,\r\n\t\t\t\t\t\talign: \"center\",\r\n\t\t\t\t\t\tverticalAlign: \"middle\",\r\n\t\t\t\t\t\tbackgroundColor: \"transparent\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t};\r\n\t}\r\n}\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { inject, Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { ElementResponse } from \"../dto/ElementResponse\";\r\nimport { ConfigService } from \"./config.service\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class PageElementService {\r\n\tprivate readonly _http = inject(HttpClient);\r\n\tprivate readonly _configService = inject(ConfigService);\r\n\tGetElements(pageRoot: string): Observable<ElementResponse[]> {\r\n\t\treturn this._http.get<ElementResponse[]>(`${this._configService.environment?.securityPath}/Page/GetAvailableElementsByPageRoot/${pageRoot}`);\r\n\t}\r\n}\r\n","import { inject, Injectable } from \"@angular/core\";\r\nimport { map, Observable, of, tap } from \"rxjs\";\r\nimport { ElementResponse } from \"../dto/ElementResponse\";\r\nimport { PageElementService } from \"./pageElement.service\";\r\n@Injectable({ providedIn: \"root\" })\r\nexport class ElementService {\r\n\tElements: ElementResponse[] = [];\r\n\tPageRoot: string = \"\";\r\n\tprivate readonly pageElementService = inject(PageElementService);\r\n\tInitialize$(pageRootValue: string): Observable<void> {\r\n\t\tif (!pageRootValue) return of();\r\n\r\n\t\tthis.PageRoot = pageRootValue;\r\n\r\n\t\treturn this.pageElementService.GetElements(this.PageRoot).pipe(\r\n\t\t\ttap(elements => (this.Elements = elements)),\r\n\t\t\tmap(() => void 0)\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Verify if page has available element by description\r\n\t */\r\n\tHasElement(description: string): boolean {\r\n\t\treturn this.Elements.some(x => x.elementDescription === description);\r\n\t}\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport pako from \"pako\";\r\n@Injectable({ providedIn: \"root\" })\r\nexport class CompressService {\r\n\tZip(data: string): string {\r\n\t\tlet dataZip = pako.gzip(data);\r\n\t\tconst base64 = btoa(String.fromCharCode(...dataZip));\r\n\t\tconst encode = encodeURIComponent(base64);\r\n\t\treturn encode;\r\n\t}\r\n}\r\n","/**\r\n * Función de comparación genérica para ordenar objetos por un campo específico.\r\n *\r\n * @template T - Tipo genérico que representa la estructura de los objetos a comparar.\r\n * @param {keyof T} field - El nombre del campo por el cual se realizará la comparación.\r\n * @param {number} [sortOrder=1] - Orden de la clasificación: 1 para ascendente y -1 para descendente.\r\n * @returns {(a: T, b: T) => number} - Función de comparación que puede ser utilizada en métodos de ordenación como `Array.prototype.sort`.\r\n */\r\nexport function CompareByField<T>(field: keyof T, sortOrder: number = 1) {\r\n\treturn (a: T, b: T): number => {\r\n\t\tconst valueA = a[field];\r\n\t\tconst valueB = b[field];\r\n\r\n\t\t// Manejo de valores nulos\r\n\t\tif (valueA === null && valueB === null) return 0;\r\n\t\tif (valueA === null) return -sortOrder;\r\n\t\tif (valueB === null) return sortOrder;\r\n\r\n\t\t// Comparación de fechas\r\n\t\tif (valueA instanceof Date && valueB instanceof Date) {\r\n\t\t\treturn sortOrder * (valueA.getTime() - valueB.getTime());\r\n\t\t}\r\n\r\n\t\t// Comparación de números\r\n\t\tif (typeof valueA === \"number\" && typeof valueB === \"number\") {\r\n\t\t\treturn sortOrder * (valueA - valueB);\r\n\t\t}\r\n\r\n\t\t// Comparación de booleanos\r\n\t\tif (typeof valueA === \"boolean\" && typeof valueB === \"boolean\") {\r\n\t\t\treturn sortOrder * (Number(valueA) - Number(valueB));\r\n\t\t}\r\n\r\n\t\t// Comparación de cadenas de texto\r\n\t\tconst strA = valueA?.toString().toLowerCase() || \"\";\r\n\t\tconst strB = valueB?.toString().toLowerCase() || \"\";\r\n\t\treturn sortOrder * strA.localeCompare(strB);\r\n\t};\r\n}\r\n","import JSEncrypt from \"jsencrypt\";\r\nexport function encryptData(data: any, keyEncrypt: string): string | null {\r\n\tconst encryptor = new JSEncrypt();\r\n\tencryptor.setPublicKey(keyEncrypt);\r\n\tconst encryptedText = encryptor.encrypt(data);\r\n\tif (!encryptedText) {\r\n\t\tconsole.error(\"Error al cifrar los datos con RSA\");\r\n\t\treturn null;\r\n\t}\r\n\treturn encryptedText;\r\n}\r\n","export class Patterns {\r\n\tPatternText: string = \"^(?!\\\\s*$)[a-zA-Z0-9-\\\\s]*$\";\r\n\tPatternEmail: string = \"^[a-zA-Z0-9._+~\\\\-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,}$\";\r\n\tPatternOnlyLetters: string = \"^[a-zA-Z\\\\s]+$\";\r\n\tPatternOnlyLettersWithAccents: string = \"^[A-Za-záéíóúÁÉÍÓÚžščřćďňťľźěǎǧȟǐǩǫřšťžŽŠČŘĆĎŇŤĽŹĚǍǦȞǏǨǪŘŠŤŽ\\\\s]+$\";\r\n\tPatternLettersEmail: string = \"^[A-Za-z0-9@._-]+$\";\r\n}\r\nexport function InputValidation(event: KeyboardEvent) {\r\n\tconst allowedCharacters = /^[a-zA-Z0-9-\\s]$/;\r\n\tconst inputChar = event.key;\r\n\tif (!allowedCharacters.test(inputChar)) event.preventDefault();\r\n}\r\nexport function DynamicInputValidation(event: KeyboardEvent, pattern: string) {\r\n\tconst inputChar = event.key;\r\n\tconst regex = new RegExp(pattern);\r\n\tif (!regex.test(inputChar)) {\r\n\t\tevent.preventDefault();\r\n\t}\r\n}\r\nexport function EmailInputValidation(event: KeyboardEvent) {\r\n\tconst inputChar = event.key;\r\n\tif (event.ctrlKey || event.altKey || inputChar.length > 1) return;\r\n\tconst allowedCharacters = /^[a-zA-Z0-9._+@-]$/;\r\n\tif (!allowedCharacters.test(inputChar)) {\r\n\t\tevent.preventDefault();\r\n\t}\r\n}\r\n","import JSEncrypt from \"jsencrypt\";\r\nexport function decryptData(encryptedData: string, privateKey: string): string | null {\r\n\tconst decryptor = new JSEncrypt();\r\n\tdecryptor.setPrivateKey(privateKey);\r\n\tconst decryptedText = decryptor.decrypt(encryptedData);\r\n\r\n\tif (!decryptedText) {\r\n\t\tconsole.error(\"Error al descifrar los datos con RSA\");\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn decryptedText;\r\n}\r\n","import Aura from \"@primeng/themes/aura\";\r\nimport { definePreset } from \"@primeng/themes\";\r\nexport const IntelicaTheme = definePreset(Aura, {\r\n\tprimitive: {\r\n\t\tblue: {\r\n\t\t\t0: \"#FFFFFF\",\r\n\t\t\t100: \"#DFF0FF\",\r\n\t\t\t200: \"#AED9FF\",\r\n\t\t\t300: \"#71BDFF\",\r\n\t\t\t400: \"#348AD5\",\r\n\t\t\t500: \"#2567A1\",\r\n\t\t\t600: \"#1B5180\",\r\n\t\t\t700: \"#17375E\", // Azul Intelica\r\n\t\t},\r\n\t\torange: {\r\n\t\t\t0: \"#FFFFFF\",\r\n\t\t\t100: \"#FCE8DD\",\r\n\t\t\t200: \"#FCD3BD\",\r\n\t\t\t300: \"#FFB48B\",\r\n\t\t\t400: \"#FF9053\",\r\n\t\t\t500: \"#FF7F00\", // Orange Intelica\r\n\t\t\t600: \"#FF7B31\",\r\n\t\t\t700: \"#CC4900\",\r\n\t\t},\r\n\t\tbrown: {\r\n\t\t\t100: \"#F1E7E1\",\r\n\t\t\t200: \"#F1DDD1\",\r\n\t\t\t300: \"#E2C6B4\",\r\n\t\t\t400: \"#C4AC9D\",\r\n\t\t\t500: \"#A18D80\",\r\n\t\t\t600: \"#837267\",\r\n\t\t},\r\n\t\tbeige: {\r\n\t\t\t100: \"#EEE7E1\",\r\n\t\t\t200: \"#F1E3D7\",\r\n\t\t\t300: \"#ECD2BB\",\r\n\t\t\t400: \"#ECC098\",\r\n\t\t\t500: \"#EBA869\",\r\n\t\t\t600: \"#C48B56\",\r\n\t\t},\r\n\t\tgray: {\r\n\t\t\t0: \"#FFFFFF\",\r\n\t\t\t100: \"#F3F3F3\",\r\n\t\t\t200: \"#E9E9E9\",\r\n\t\t\t300: \"#D9D9D9\",\r\n\t\t\t400: \"#BFBFBF\",\r\n\t\t\t500: \"#A6A5A1\",\r\n\t\t},\r\n\t\tneutral: {\r\n\t\t\t950: \"#081423\",\r\n\t\t},\r\n\t\tred: {\r\n\t\t\t50: \"#fef2f2\",\r\n\t\t\t100: \"#fee2e2\",\r\n\t\t\t200: \"#fecaca\",\r\n\t\t\t300: \"#fca5a5\",\r\n\t\t\t400: \"#f87171\",\r\n\t\t\t500: \"#ef4444\",\r\n\t\t\t600: \"#dc2626\",\r\n\t\t\t700: \"#b91c1c\",\r\n\t\t\t800: \"#991b1b\",\r\n\t\t\t900: \"#7f1d1d\",\r\n\t\t\t950: \"#450a0a\",\r\n\t\t},\r\n\t\tgreen: {\r\n\t\t\t50: \"#f0fdf4\",\r\n\t\t\t100: \"#dcfce7\",\r\n\t\t\t200: \"#bbf7d0\",\r\n\t\t\t300: \"#86efac\",\r\n\t\t\t400: \"#4ade80\",\r\n\t\t\t500: \"#22c55e\",\r\n\t\t\t600: \"#16a34a\",\r\n\t\t\t700: \"#15803d\",\r\n\t\t\t800: \"#166534\",\r\n\t\t\t900: \"#14532d\",\r\n\t\t\t950: \"#052e16\",\r\n\t\t},\r\n\t\ttransitionDuration: \"0.2s\",\r\n\t\ticonSize: \"1rem\",\r\n\t\tanchorGutter: \"2px\",\r\n\t\tlist: {\r\n\t\t\tpadding: \"0rem\",\r\n\t\t\tgap: \"2px\",\r\n\t\t\theader: {\r\n\t\t\t\tpadding: \"0.5rem 1rem 0.25rem 1rem\",\r\n\t\t\t},\r\n\t\t\toption: {\r\n\t\t\t\tpadding: \"0.5rem 0.75rem\",\r\n\t\t\t\tborderRadius: \"{border.radius.sm}\",\r\n\t\t\t},\r\n\t\t\toptionGroup: {\r\n\t\t\t\tpadding: \"0.5rem 0.75rem\",\r\n\t\t\t\tfontWeight: \"600\",\r\n\t\t\t},\r\n\t\t},\r\n\t\tcontent: {\r\n\t\t\tborderRadius: \"{border.radius.md}\",\r\n\t\t},\r\n\t\tmask: {\r\n\t\t\ttransitionDuration: \"0.15s\",\r\n\t\t},\r\n\t\tnavigation: {\r\n\t\t\tlist: {\r\n\t\t\t\tpadding: \"0.25rem 0.25rem\",\r\n\t\t\t\tgap: \"2px\",\r\n\t\t\t},\r\n\t\t\titem: {\r\n\t\t\t\tpadding: \"0.5rem 0.75rem\",\r\n\t\t\t\tborderRadius: \"{border.radius.sm}\",\r\n\t\t\t\tgap: \"0.5rem\",\r\n\t\t\t},\r\n\t\t\tsubmenuLabel: {\r\n\t\t\t\tpadding: \"0.5rem 0.75rem\",\r\n\t\t\t\tfontWeight: \"600\",\r\n\t\t\t},\r\n\t\t\tsubmenuIcon: {\r\n\t\t\t\tsize: \"0.875rem\",\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tsemantic: {\r\n\t\ttransparent: \"transparent\",\r\n\t\tprimary: {\r\n\t\t\t0: \"{blue.0}\",\r\n\t\t\t100: \"{blue.100}\",\r\n\t\t\t200: \"{blue.200}\",\r\n\t\t\t300: \"{blue.300}\",\r\n\t\t\t400: \"{blue.400}\",\r\n\t\t\t500: \"{blue.500}\",\r\n\t\t\t600: \"{blue.600}\",\r\n\t\t\t700: \"var(--main-blue)\",\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\t0: \"{orange.0}\",\r\n\t\t\t100: \"{orange.100}\",\r\n\t\t\t200: \"{orange.200}\",\r\n\t\t\t300: \"{orange.300}\",\r\n\t\t\t400: \"{orange.400}\",\r\n\t\t\t500: \"var(--main-orange)\",\r\n\t\t\t600: \"{orange.600}\",\r\n\t\t\t700: \"var(--main-orange-dark)\",\r\n\t\t},\r\n\t\tcolorScheme: {\r\n\t\t\tlight: {\r\n\t\t\t\tsurface: {\r\n\t\t\t\t\t0: \"#ffffff\",\r\n\t\t\t\t\t50: \"#f8fafc\",\r\n\t\t\t\t\t100: \"#f1f5f9\",\r\n\t\t\t\t\t200: \"#e2e8f0\",\r\n\t\t\t\t\t300: \"#cbd5e1\",\r\n\t\t\t\t\t400: \"#94a3b8\",\r\n\t\t\t\t\t500: \"#64748b\",\r\n\t\t\t\t\t600: \"#475569\",\r\n\t\t\t\t\t700: \"#334155\",\r\n\t\t\t\t\t800: \"#1e293b\",\r\n\t\t\t\t\t900: \"#0f172a\",\r\n\t\t\t\t\t950: \"#020617\",\r\n\t\t\t\t},\r\n\t\t\t\tprimary: {\r\n\t\t\t\t\tcolor: \"{primary.700}\",\r\n\t\t\t\t\tcontrastColor: \"#ffffff\",\r\n\t\t\t\t\thoverColor: \"{primary.600}\",\r\n\t\t\t\t\tactiveColor: \"{primary.700}\",\r\n\t\t\t\t},\r\n\t\t\t\tsecondary: {\r\n\t\t\t\t\tcolor: \"{secondary.500}\",\r\n\t\t\t\t},\r\n\t\t\t\thighlight: {\r\n\t\t\t\t\tbackground: \"var(--main-orange)\",\r\n\t\t\t\t\tfocusBackground: \"var(--main-orange)\",\r\n\t\t\t\t\tcolor: \"{orange.0}\",\r\n\t\t\t\t\tfocusColor: \"{orange.0}\",\r\n\t\t\t\t},\r\n\t\t\t\tmask: {\r\n\t\t\t\t\tbackground: \"rgba(23, 55, 94, 0.8)\",\r\n\t\t\t\t\tcolor: \"{surface.200}\",\r\n\t\t\t\t},\r\n\t\t\t\tformField: {\r\n\t\t\t\t\tpaddingX: \"1.0rem\", // added by CA\r\n\t\t\t\t\tpaddingY: \"0.6rem\", // added by CA\r\n\t\t\t\t\tbackground: \"var(--main-light)\",\r\n\t\t\t\t\tdisabledBackground: \"{gray.100}\",\r\n\t\t\t\t\tfilledBackground: \"{surface.50}\",\r\n\t\t\t\t\tfilledHoverBackground: \"{surface.50}\",\r\n\t\t\t\t\tfilledFocusBackground: \"{surface.50}\",\r\n\t\t\t\t\tborderColor: \"{gray.300}\",\r\n\t\t\t\t\thoverBorderColor: \"{primary.color}\", // modify by CA\r\n\t\t\t\t\tfocusBorderColor: \"{primary.color}\",\r\n\t\t\t\t\tinvalidBorderColor: \"{red.400}\",\r\n\t\t\t\t\tcolor: \"{surface.700}\",\r\n\t\t\t\t\tdisabledColor: \"{gray.500}\",\r\n\t\t\t\t\tplaceholderColor: \"{gray.500}\",\r\n\t\t\t\t\tinvalidPlaceholderColor: \"{red.600}\",\r\n\t\t\t\t\tfloatLabelColor: \"{surface.500}\",\r\n\t\t\t\t\tfloatLabelFocusColor: \"{primary.600}\",\r\n\t\t\t\t\tfloatLabelActiveColor: \"{surface.500}\",\r\n\t\t\t\t\tfloatLabelInvalidColor: \"{form.field.invalid.placeholder.color}\",\r\n\t\t\t\t\ticonColor: \"{primary.color}\",\r\n\t\t\t\t\tshadow: \"0 0 #0000, 0 0 #0000, 0 1px 2px 0 rgba(18, 18, 23, 0.05)\",\r\n\t\t\t\t\tborderRadius: \"{border.radius.sm}\",\r\n\t\t\t\t},\r\n\t\t\t\ttext: {\r\n\t\t\t\t\tcolor: \"var(--main-blue)\",\r\n\t\t\t\t\thoverColor: \"var(--main-orange)\",\r\n\t\t\t\t\tmutedColor: \"var(--main-orange)\",\r\n\t\t\t\t\thoverMutedColor: \"orange.700}\",\r\n\t\t\t\t},\r\n\t\t\t\tcontent: {\r\n\t\t\t\t\tbackground: \"{gray.0}\",\r\n\t\t\t\t\thoverBackground: \"{surface.100}\",\r\n\t\t\t\t\tborderColor: \"var(--main-blue)\",\r\n\t\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\t\thoverColor: \"{text.hover.color}\",\r\n\t\t\t\t},\r\n\t\t\t\toverlay: {\r\n\t\t\t\t\tselect: {\r\n\t\t\t\t\t\tborderRadius: \"{border.radius.md}\",\r\n\t\t\t\t\t\tshadow: \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)\",\r\n\t\t\t\t\t\tbackground: \"var(--main-light)\",\r\n\t\t\t\t\t\tborderColor: \"{surface.200}\",\r\n\t\t\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tpopover: {\r\n\t\t\t\t\t\tbackground: \"var(--main-light)\",\r\n\t\t\t\t\t\tborderColor: \"{surface.200}\",\r\n\t\t\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\t\t\tborderRadius: \"{border.radius.md}\",\r\n\t\t\t\t\t\tpadding: \"0\",\r\n\t\t\t\t\t\tshadow: \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmodal: {\r\n\t\t\t\t\t\tborderColor: \"#bfbfbf\",\r\n\t\t\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\t\t\tborderRadius: \"{border.radius.xl}\",\r\n\t\t\t\t\t\tpadding: \"1.5rem\",\r\n\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tnavigation: {\r\n\t\t\t\t\t\tshadow: \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"1px\",\r\n\t\t\t\t\tstyle: \"solid\",\r\n\t\t\t\t\tcolor: \"{primary.color}\",\r\n\t\t\t\t\toffset: \"-.1rem\",\r\n\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t},\r\n\t\t\t\tborderRadius: {\r\n\t\t\t\t\tnone: \"0\",\r\n\t\t\t\t\txs: \"0.2rem\",\r\n\t\t\t\t\tsm: \"0.4rem\",\r\n\t\t\t\t\tmd: \"0.6rem\",\r\n\t\t\t\t\tlg: \"0.8rem\",\r\n\t\t\t\t\txl: \"1.2rem\",\r\n\t\t\t\t},\r\n\t\t\t\tdisabledOpacity: \"1\",\r\n\t\t\t\tlist: {\r\n\t\t\t\t\tpadding: \"0rem\",\r\n\t\t\t\t\tgap: \"0rem\",\r\n\t\t\t\t\toption: {\r\n\t\t\t\t\t\tborderRadius: \"0rem\",\r\n\t\t\t\t\t\tfocusBackground: \"var(--main-orange)\",\r\n\t\t\t\t\t\tselectedBackground: \"{highlight.background}\",\r\n\t\t\t\t\t\tselectedFocusBackground: \"{highlight.focus.background}\",\r\n\t\t\t\t\t\tcolor: \"var(--main-blue)\",\r\n\t\t\t\t\t\tfocusColor: \"var(--main-light)\",\r\n\t\t\t\t\t\tselectedColor: \"{highlight.color}\",\r\n\t\t\t\t\t\tselectedFocusColor: \"{highlight.focus.color}\",\r\n\t\t\t\t\t\ticon: {\r\n\t\t\t\t\t\t\tcolor: \"{surface.400}\",\r\n\t\t\t\t\t\t\tfocusColor: \"{surface.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\toptionGroup: {\r\n\t\t\t\t\t\tbackground: \"transparent\",\r\n\t\t\t\t\t\tcolor: \"{text.muted.color}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tnavigation: {\r\n\t\t\t\t\titem: {\r\n\t\t\t\t\t\tfocusBackground: \"{surface.100}\",\r\n\t\t\t\t\t\tactiveBackground: \"{surface.100}\",\r\n\t\t\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\t\t\tfocusColor: \"{text.hover.color}\",\r\n\t\t\t\t\t\tactiveColor: \"{text.hover.color}\",\r\n\t\t\t\t\t\ticon: {\r\n\t\t\t\t\t\t\tcolor: \"{surface.400}\",\r\n\t\t\t\t\t\t\tfocusColor: \"{surface.500}\",\r\n\t\t\t\t\t\t\tactiveColor: \"{surface.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsubmenuLabel: {\r\n\t\t\t\t\t\tbackground: \"transparent\",\r\n\t\t\t\t\t\tcolor: \"{text.muted.color}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsubmenuIcon: {\r\n\t\t\t\t\t\tcolor: \"{surface.400}\",\r\n\t\t\t\t\t\tfocusColor: \"{surface.500}\",\r\n\t\t\t\t\t\tactiveColor: \"{surface.500}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tdark: {\r\n\t\t\t\tsurface: {\r\n\t\t\t\t\t0: \"#ffffff\",\r\n\t\t\t\t\t50: \"#f8fafc\",\r\n\t\t\t\t\t100: \"#f1f5f9\",\r\n\t\t\t\t\t200: \"#e2e8f0\",\r\n\t\t\t\t\t300: \"#cbd5e1\",\r\n\t\t\t\t\t400: \"#94a3b8\",\r\n\t\t\t\t\t500: \"#64748b\",\r\n\t\t\t\t\t600: \"#475569\",\r\n\t\t\t\t\t700: \"#334155\",\r\n\t\t\t\t\t800: \"#1e293b\",\r\n\t\t\t\t\t900: \"#0f172a\",\r\n\t\t\t\t\t950: \"#020617\",\r\n\t\t\t\t},\r\n\t\t\t\tprimary: {\r\n\t\t\t\t\tcolor: \"{primary.700}\",\r\n\t\t\t\t\tcontrastColor: \"#ffffff\",\r\n\t\t\t\t\thoverColor: \"{primary.600}\",\r\n\t\t\t\t\tactiveColor: \"{primary.700}\",\r\n\t\t\t\t},\r\n\t\t\t\tsecondary: {\r\n\t\t\t\t\tcolor: \"{secondary.500}\",\r\n\t\t\t\t},\r\n\t\t\t\thighlight: {\r\n\t\t\t\t\tbackground: \"var(--main-orange)\",\r\n\t\t\t\t\tfocusBackground: \"var(--main-orange)\",\r\n\t\t\t\t\tcolor: \"{orange.0}\",\r\n\t\t\t\t\tfocusColor: \"{orange.0}\",\r\n\t\t\t\t},\r\n\t\t\t\tmask: {\r\n\t\t\t\t\tbackground: \"rgba(23, 55, 94, 0.8)\",\r\n\t\t\t\t\tcolor: \"{surface.200}\",\r\n\t\t\t\t},\r\n\t\t\t\tformField: {\r\n\t\t\t\t\tpaddingX: \"1.0rem\", // added by CA\r\n\t\t\t\t\tpaddingY: \"0.6rem\", // added by CA\r\n\t\t\t\t\tbackground: \"var(--main-light)\",\r\n\t\t\t\t\tdisabledBackground: \"{gray.100}\",\r\n\t\t\t\t\tfilledBackground: \"{surface.50}\",\r\n\t\t\t\t\tfilledHoverBackground: \"{surface.50}\",\r\n\t\t\t\t\tfilledFocusBackground: \"{surface.50}\",\r\n\t\t\t\t\tborderColor: \"{gray.300}\",\r\n\t\t\t\t\thoverBorderColor: \"{primary.color}\", // modify by CA\r\n\t\t\t\t\tfocusBorderColor: \"{primary.color}\",\r\n\t\t\t\t\tinvalidBorderColor: \"{red.400}\",\r\n\t\t\t\t\tcolor: \"{surface.700}\",\r\n\t\t\t\t\tdisabledColor: \"{gray.500}\",\r\n\t\t\t\t\tplaceholderColor: \"{gray.500}\",\r\n\t\t\t\t\tinvalidPlaceholderColor: \"{red.600}\",\r\n\t\t\t\t\tfloatLabelColor: \"{surface.500}\",\r\n\t\t\t\t\tfloatLabelFocusColor: \"{primary.600}\",\r\n\t\t\t\t\tfloatLabelActiveColor: \"{surface.500}\",\r\n\t\t\t\t\tfloatLabelInvalidColor: \"{form.field.invalid.placeholder.color}\",\r\n\t\t\t\t\ticonColor: \"{primary.color}\",\r\n\t\t\t\t\tshadow: \"0 0 #0000, 0 0 #0000, 0 1px 2px 0 rgba(18, 18, 23, 0.05)\",\r\n\t\t\t\t\tborderRadius: \"{border.radius.sm}\",\r\n\t\t\t\t},\r\n\t\t\t\ttext: {\r\n\t\t\t\t\tcolor: \"var(--main-blue)\",\r\n\t\t\t\t\thoverColor: \"var(--main-orange)\",\r\n\t\t\t\t\tmutedColor: \"var(--main-orange)\",\r\n\t\t\t\t\thoverMutedColor: \"orange.700}\",\r\n\t\t\t\t},\r\n\t\t\t\tcontent: {\r\n\t\t\t\t\tbackground: \"{gray.0}\",\r\n\t\t\t\t\thoverBackground: \"{surface.100}\",\r\n\t\t\t\t\tborderColor: \"var(--main-blue)\",\r\n\t\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\t\thoverColor: \"{text.hover.color}\",\r\n\t\t\t\t},\r\n\t\t\t\toverlay: {\r\n\t\t\t\t\tselect: {\r\n\t\t\t\t\t\tborderRadius: \"{border.radius.md}\",\r\n\t\t\t\t\t\tshadow: \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)\",\r\n\t\t\t\t\t\tbackground: \"var(--main-light)\",\r\n\t\t\t\t\t\tborderColor: \"{surface.200}\",\r\n\t\t\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tpopover: {\r\n\t\t\t\t\t\tbackground: \"var(--main-light)\",\r\n\t\t\t\t\t\tborderColor: \"{surface.200}\",\r\n\t\t\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\t\t\tborderRadius: \"{border.radius.md}\",\r\n\t\t\t\t\t\tpadding: \"0\",\r\n\t\t\t\t\t\tshadow: \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmodal: {\r\n\t\t\t\t\t\tborderColor: \"#bfbfbf\",\r\n\t\t\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\t\t\tborderRadius: \"{border.radius.xl}\",\r\n\t\t\t\t\t\tpadding: \"1.5rem\",\r\n\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tnavigation: {\r\n\t\t\t\t\t\tshadow: \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"1px\",\r\n\t\t\t\t\tstyle: \"solid\",\r\n\t\t\t\t\tcolor: \"{primary.color}\",\r\n\t\t\t\t\toffset: \"-.1rem\",\r\n\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t},\r\n\t\t\t\tborderRadius: {\r\n\t\t\t\t\tnone: \"0\",\r\n\t\t\t\t\txs: \"0.2rem\",\r\n\t\t\t\t\tsm: \"0.4rem\",\r\n\t\t\t\t\tmd: \"0.6rem\",\r\n\t\t\t\t\tlg: \"0.8rem\",\r\n\t\t\t\t\txl: \"1.2rem\",\r\n\t\t\t\t},\r\n\t\t\t\tdisabledOpacity: \"1\",\r\n\t\t\t\tlist: {\r\n\t\t\t\t\tpadding: \"0rem\",\r\n\t\t\t\t\tgap: \"0rem\",\r\n\t\t\t\t\toption: {\r\n\t\t\t\t\t\tborderRadius: \"0rem\",\r\n\t\t\t\t\t\tfocusBackground: \"var(--main-orange)\",\r\n\t\t\t\t\t\tselectedBackground: \"{highlight.background}\",\r\n\t\t\t\t\t\tselectedFocusBackground: \"{highlight.focus.background}\",\r\n\t\t\t\t\t\tcolor: \"var(--main-blue)\",\r\n\t\t\t\t\t\tfocusColor: \"var(--main-light)\",\r\n\t\t\t\t\t\tselectedColor: \"{highlight.color}\",\r\n\t\t\t\t\t\tselectedFocusColor: \"{highlight.focus.color}\",\r\n\t\t\t\t\t\ticon: {\r\n\t\t\t\t\t\t\tcolor: \"{surface.400}\",\r\n\t\t\t\t\t\t\tfocusColor: \"{surface.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\toptionGroup: {\r\n\t\t\t\t\t\tbackground: \"transparent\",\r\n\t\t\t\t\t\tcolor: \"{text.muted.color}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tnavigation: {\r\n\t\t\t\t\titem: {\r\n\t\t\t\t\t\tfocusBackground: \"{surface.100}\",\r\n\t\t\t\t\t\tactiveBackground: \"{surface.100}\",\r\n\t\t\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\t\t\tfocusColor: \"{text.hover.color}\",\r\n\t\t\t\t\t\tactiveColor: \"{text.hover.color}\",\r\n\t\t\t\t\t\ticon: {\r\n\t\t\t\t\t\t\tcolor: \"{surface.400}\",\r\n\t\t\t\t\t\t\tfocusColor: \"{surface.500}\",\r\n\t\t\t\t\t\t\tactiveColor: \"{surface.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsubmenuLabel: {\r\n\t\t\t\t\t\tbackground: \"transparent\",\r\n\t\t\t\t\t\tcolor: \"{text.muted.color}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsubmenuIcon: {\r\n\t\t\t\t\t\tcolor: \"{surface.400}\",\r\n\t\t\t\t\t\tfocusColor: \"{surface.500}\",\r\n\t\t\t\t\t\tactiveColor: \"{surface.500}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tcomponents: {\r\n\t\tskeleton: {\r\n\t\t\tcolorScheme: {\r\n\t\t\t\tlight: {\r\n\t\t\t\t\troot: {\r\n\t\t\t\t\t\tbackground: \"{surface.200}\",\r\n\t\t\t\t\t\tanimationBackground: \"rgba(0,0,0,0.4)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tdark: {\r\n\t\t\t\t\troot: {\r\n\t\t\t\t\t\tbackground: \"rgba(0, 0, 0, 0.06)\",\r\n\t\t\t\t\t\tanimationBackground: \"rgba(0, 0, 0, 0.04)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\taccordion: {\r\n\t\t\troot: {\r\n\t\t\t\ttransitionDuration: \"{transition.duration}\",\r\n\t\t\t},\r\n\t\t\tpanel: {\r\n\t\t\t\tborderWidth: \"0 0 1px 0\",\r\n\t\t\t\tborderColor: \"{content.border.color}\",\r\n\t\t\t},\r\n\t\t\theader: {\r\n\t\t\t\tcolor: \"{text.muted.color}\",\r\n\t\t\t\thoverColor: \"{text.color}\",\r\n\t\t\t\tactiveColor: \"{text.color}\",\r\n\t\t\t\tpadding: \"1.125rem\",\r\n\t\t\t\tfontWeight: \"600\",\r\n\t\t\t\tborderRadius: \"0\",\r\n\t\t\t\tborderWidth: \"0\",\r\n\t\t\t\tborderColor: \"{content.border.color}\",\r\n\t\t\t\tbackground: \"{content.background}\",\r\n\t\t\t\thoverBackground: \"{content.background}\",\r\n\t\t\t\tactiveBackground: \"{content.background}\",\r\n\t\t\t\tactiveHoverBackground: \"{content.background}\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"-1px\",\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t\ttoggleIcon: {\r\n\t\t\t\t\tcolor: \"{text.muted.color}\",\r\n\t\t\t\t\thoverColor: \"{text.color}\",\r\n\t\t\t\t\tactiveColor: \"{text.color}\",\r\n\t\t\t\t\tactiveHoverColor: \"{text.color}\",\r\n\t\t\t\t},\r\n\t\t\t\tfirst: {\r\n\t\t\t\t\ttopBorderRadius: \"{content.border.radius}\",\r\n\t\t\t\t\tborderWidth: \"0\",\r\n\t\t\t\t},\r\n\t\t\t\tlast: {\r\n\t\t\t\t\tbottomBorderRadius: \"{content.border.radius}\",\r\n\t\t\t\t\tactiveBottomBorderRadius: \"0\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tcontent: {\r\n\t\t\t\tborderWidth: \"0\",\r\n\t\t\t\tborderColor: \"{content.border.color}\",\r\n\t\t\t\tbackground: \"{content.background}\",\r\n\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\tpadding: \"0 1.125rem 1.125rem 1.125rem\",\r\n\t\t\t},\r\n\t\t\tcolorScheme: {\r\n\t\t\t\tlight: {\r\n\t\t\t\t\ttext: {\r\n\t\t\t\t\t\tcolor: \"red\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tdark: {\r\n\t\t\t\t\ttext: {\r\n\t\t\t\t\t\tcolor: \"red\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\tautocomplete: {\r\n\t\t\troot: {\r\n\t\t\t\tbackground: \"{form.field.background}\",\r\n\t\t\t\tdisabledBackground: \"{form.field.disabled.background}\",\r\n\t\t\t\tfilledBackground: \"{form.field.filled.background}\",\r\n\t\t\t\tfilledHoverBackground: \"{form.field.filled.hover.background}\",\r\n\t\t\t\tfilledFocusBackground: \"{form.field.filled.focus.background}\",\r\n\t\t\t\tborderColor: \"{form.field.border.color}\",\r\n\t\t\t\thoverBorderColor: \"{form.field.hover.border.color}\",\r\n\t\t\t\tfocusBorderColor: \"{form.field.focus.border.color}\",\r\n\t\t\t\tinvalidBorderColor: \"{form.field.invalid.border.color}\",\r\n\t\t\t\tcolor: \"{form.field.color}\",\r\n\t\t\t\tdisabledColor: \"{form.field.disabled.color}\",\r\n\t\t\t\tplaceholderColor: \"{form.field.placeholder.color}\",\r\n\t\t\t\tinvalidPlaceholderColor: \"{form.field.invalid.placeholder.color}\",\r\n\t\t\t\tshadow: \"{form.field.shadow}\",\r\n\t\t\t\tpaddingX: \"{form.field.padding.x}\",\r\n\t\t\t\tpaddingY: \"{form.field.padding.y}\",\r\n\t\t\t\tborderRadius: \"{form.field.border.radius}\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{form.field.focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{form.field.focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{form.field.focus.ring.color}\",\r\n\t\t\t\t\toffset: \"{form.field.focus.ring.offset}\",\r\n\t\t\t\t\tshadow: \"{form.field.focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t\ttransitionDuration: \"{form.field.transition.duration}\",\r\n\t\t\t},\r\n\t\t\toverlay: {\r\n\t\t\t\tbackground: \"{overlay.select.background}\",\r\n\t\t\t\tborderColor: \"{overlay.select.border.color}\",\r\n\t\t\t\tborderRadius: \"{overlay.select.border.radius}\",\r\n\t\t\t\tcolor: \"{overlay.select.color}\",\r\n\t\t\t\tshadow: \"{overlay.select.shadow}\",\r\n\t\t\t},\r\n\t\t\tlist: {\r\n\t\t\t\tpadding: \"{list.padding}\", // var(--p-autocomplete-list-padding)\r\n\t\t\t\tgap: \"{list.gap}\", // var(--p-autocomplete-list-gap)\r\n\t\t\t},\r\n\t\t\toption: {\r\n\t\t\t\tfocusBackground: \"{list.option.focus.background}\",\r\n\t\t\t\tselectedBackground: \"{list.option.selected.background}\",\r\n\t\t\t\tselectedFocusBackground: \"{list.option.selected.focus.background}\",\r\n\t\t\t\tcolor: \"{list.option.color}\",\r\n\t\t\t\tfocusColor: \"{list.option.focus.color}\", // var(--p-autocomplete-option-focus-color)\r\n\t\t\t\tselectedColor: \"{list.option.selected.color}\",\r\n\t\t\t\tselectedFocusColor: \"{list.option.selected.focus.color}\",\r\n\t\t\t\tpadding: \"{list.option.padding}\",\r\n\t\t\t\tborderRadius: \"{list.option.border.radius}\", // var(--p-autocomplete-option-border-radius)\r\n\t\t\t},\r\n\t\t\toptionGroup: {\r\n\t\t\t\tbackground: \"{list.option.group.background}\",\r\n\t\t\t\tcolor: \"{list.option.group.color}\",\r\n\t\t\t\tfontWeight: \"{list.option.group.font.weight}\",\r\n\t\t\t\tpadding: \"{list.option.group.padding}\",\r\n\t\t\t},\r\n\t\t\tdropdown: {\r\n\t\t\t\twidth: \"2.5rem\",\r\n\t\t\t\tsm: {\r\n\t\t\t\t\twidth: \"2rem\",\r\n\t\t\t\t},\r\n\t\t\t\tlg: {\r\n\t\t\t\t\twidth: \"3rem\",\r\n\t\t\t\t},\r\n\t\t\t\tbackground: \"red\",\r\n\t\t\t\tborderColor: \"{form.field.border.color}\",\r\n\t\t\t\thoverBorderColor: \"{form.field.border.color}\",\r\n\t\t\t\tactiveBorderColor: \"{form.field.border.color}\",\r\n\t\t\t\tborderRadius: \"{form.field.border.radius}\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"{focus.ring.offset}\", //var(--p-autocomplete-dropdown-focus-ring-offset)\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tchip: {\r\n\t\t\t\tborderRadius: \"{border.radius.sm}\",\r\n\t\t\t},\r\n\t\t\temptyMessage: {\r\n\t\t\t\tpadding: \"{list.option.padding}\",\r\n\t\t\t},\r\n\t\t\tcolorScheme: {\r\n\t\t\t\tlight: {\r\n\t\t\t\t\tchip: {\r\n\t\t\t\t\t\tfocusBackground: \"{surface.200}\",\r\n\t\t\t\t\t\tfocusColor: \"{surface.800}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tdropdown: {\r\n\t\t\t\t\t\tbackground: \"{primary.0}\",\r\n\t\t\t\t\t\thoverBackground: \"{primary.0}\",\r\n\t\t\t\t\t\tactiveBackground: \"{primary.0}\",\r\n\t\t\t\t\t\tcolor: \"{surface.600}\",\r\n\t\t\t\t\t\thoverColor: \"{surface.700}\",\r\n\t\t\t\t\t\tactiveColor: \"{surface.800}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tdark: {\r\n\t\t\t\t\tchip: {\r\n\t\t\t\t\t\tfocusBackground: \"{surface.200}\",\r\n\t\t\t\t\t\tfocusColor: \"{surface.800}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tdropdown: {\r\n\t\t\t\t\t\tbackground: \"{primary.0}\",\r\n\t\t\t\t\t\thoverBackground: \"{primary.0}\",\r\n\t\t\t\t\t\tactiveBackground: \"{primary.0}\",\r\n\t\t\t\t\t\tcolor: \"{surface.600}\",\r\n\t\t\t\t\t\thoverColor: \"{surface.700}\",\r\n\t\t\t\t\t\tactiveColor: \"{surface.800}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\tbadge: {\r\n\t\t\troot: {\r\n\t\t\t\tborderRadius: \"{border.radius.xl}\",\r\n\t\t\t\tpadding: \"0 1rem\",\r\n\t\t\t\tfontSize: \"1rem\",\r\n\t\t\t\tfontWeight: \"400\",\r\n\t\t\t\tminWidth: \"6.8rem\",\r\n\t\t\t\theight: \"1.8rem\",\r\n\t\t\t},\r\n\t\t\tdot: {\r\n\t\t\t\tsize: \"0.5rem\",\r\n\t\t\t},\r\n\t\t\tsm: {\r\n\t\t\t\tfontSize: \"0.625rem\",\r\n\t\t\t\tminWidth: \"1.25rem\",\r\n\t\t\t\theight: \"1.25rem\",\r\n\t\t\t},\r\n\t\t\tlg: {\r\n\t\t\t\tfontSize: \"0.875rem\",\r\n\t\t\t\tminWidth: \"1.75rem\",\r\n\t\t\t\theight: \"1.75rem\",\r\n\t\t\t},\r\n\t\t\txl: {\r\n\t\t\t\tfontSize: \"1rem\",\r\n\t\t\t\tminWidth: \"2rem\",\r\n\t\t\t\theight: \"2rem\",\r\n\t\t\t},\r\n\t\t\tcolorScheme: {\r\n\t\t\t\tlight: {\r\n\t\t\t\t\tprimary: {\r\n\t\t\t\t\t\tbackground: \"{green.500}\",\r\n\t\t\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsuccess: {\r\n\t\t\t\t\t\tbackground: \"{green.500}\",\r\n\t\t\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tdanger: {\r\n\t\t\t\t\t\tbackground: \"{red.500}\",\r\n\t\t\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tdark: {\r\n\t\t\t\t\tprimary: {\r\n\t\t\t\t\t\tbackground: \"{green.500}\",\r\n\t\t\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsuccess: {\r\n\t\t\t\t\t\tbackground: \"{green.500}\",\r\n\t\t\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tdanger: {\r\n\t\t\t\t\t\tbackground: \"{red.500}\",\r\n\t\t\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\tbutton: {\r\n\t\t\troot: {\r\n\t\t\t\tborderRadius: \"{border.radius.sm}\",\r\n\t\t\t\troundedBorderRadius: \"2rem\",\r\n\t\t\t\tgap: \"0.25em\",\r\n\t\t\t\tpaddingX: \"1rem\",\r\n\t\t\t\tpaddingY: \"0.4rem\",\r\n\t\t\t\ticonOnlyWidth: \"2.5rem\",\r\n\t\t\t\tsm: {\r\n\t\t\t\t\tfontSize: \"{form.field.sm.font.size}\",\r\n\t\t\t\t\tpaddingX: \"{form.field.sm.padding.x}\",\r\n\t\t\t\t\tpaddingY: \"{form.field.sm.padding.y}\",\r\n\t\t\t\t},\r\n\t\t\t\tlg: {\r\n\t\t\t\t\tfontSize: \"{form.field.lg.font.size}\",\r\n\t\t\t\t\tpaddingX: \"{form.field.lg.padding.x}\",\r\n\t\t\t\t\tpaddingY: \"{form.field.lg.padding.y}\",\r\n\t\t\t\t},\r\n\t\t\t\tlabel: {\r\n\t\t\t\t\tfontWeight: \"500\",\r\n\t\t\t\t},\r\n\t\t\t\traisedShadow: \"0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12)\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\toffset: \"{focus.ring.offset}\",\r\n\t\t\t\t},\r\n\t\t\t\tbadgeSize: \"1rem\",\r\n\t\t\t\ttransitionDuration: \"{form.field.transition.duration}\",\r\n\t\t\t},\r\n\t\t\tcolorScheme: {\r\n\t\t\t\tlight: {\r\n\t\t\t\t\troot: {\r\n\t\t\t\t\t\tprimary: {\r\n\t\t\t\t\t\t\tbackground: \"var(--main-orange)\",\r\n\t\t\t\t\t\t\thoverBackground: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tactiveBackground: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tborderColor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\t\t\t\thoverColor: \"var(--main-light)\",\r\n\t\t\t\t\t\t\tactiveColor: \"var(--main-light)\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{primary.color}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tsecondary: {\r\n\t\t\t\t\t\t\tbackground: \"var(--main-light)\",\r\n\t\t\t\t\t\t\thoverBackground: \"var(--main-light)\",\r\n\t\t\t\t\t\t\tactiveBackground: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tborderColor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t\thoverColor: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tactiveColor: \"var(--main-light)\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{surface.600}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tinfo: {\r\n\t\t\t\t\t\t\tbackground: \"{sky.500}\",\r\n\t\t\t\t\t\t\thoverBackground: \"{sky.600}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{sky.700}\",\r\n\t\t\t\t\t\t\tborderColor: \"{sky.500}\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"{sky.600}\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"{sky.700}\",\r\n\t\t\t\t\t\t\tcolor: \"#ffffff\",\r\n\t\t\t\t\t\t\thoverColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tactiveColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{sky.500}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tsuccess: {\r\n\t\t\t\t\t\t\tbackground: \"var(--main-light)\",\r\n\t\t\t\t\t\t\thoverBackground: \"{gray.400}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{gray.400}\",\r\n\t\t\t\t\t\t\tborderColor: \"{gray.400}\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"{gray.400}\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"{gray.400}\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-blue)\",\r\n\t\t\t\t\t\t\thoverColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tactiveColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{green.500}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\twarn: {\r\n\t\t\t\t\t\t\tbackground: \"var(--main-orange)\",\r\n\t\t\t\t\t\t\thoverBackground: \"{orange.600}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tborderColor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"{orange.600}\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tcolor: \"#ffffff\",\r\n\t\t\t\t\t\t\thoverColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tactiveColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\thelp: {\r\n\t\t\t\t\t\t\tbackground: \"{purple.500}\",\r\n\t\t\t\t\t\t\thoverBackground: \"{purple.600}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{purple.700}\",\r\n\t\t\t\t\t\t\tborderColor: \"{purple.500}\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"{purple.600}\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"{purple.700}\",\r\n\t\t\t\t\t\t\tcolor: \"#ffffff\",\r\n\t\t\t\t\t\t\thoverColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tactiveColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{purple.500}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdanger: {\r\n\t\t\t\t\t\t\tbackground: \"{red.500}\",\r\n\t\t\t\t\t\t\thoverBackground: \"{red.600}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{red.700}\",\r\n\t\t\t\t\t\t\tborderColor: \"{red.500}\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"{red.600}\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"{red.700}\",\r\n\t\t\t\t\t\t\tcolor: \"#ffffff\",\r\n\t\t\t\t\t\t\thoverColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tactiveColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{red.500}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tcontrast: {\r\n\t\t\t\t\t\t\tbackground: \"{surface.950}\",\r\n\t\t\t\t\t\t\thoverBackground: \"{surface.900}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{surface.800}\",\r\n\t\t\t\t\t\t\tborderColor: \"{surface.950}\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"{surface.900}\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"{surface.800}\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\t\t\t\thoverColor: \"var(--main-light)\",\r\n\t\t\t\t\t\t\tactiveColor: \"var(--main-light)\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{surface.950}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\toutlined: {\r\n\t\t\t\t\t\tprimary: {\r\n\t\t\t\t\t\t\thoverBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tborderColor: \"{transparent}\",\r\n\t\t\t\t\t\t\tcolor: \"{primary.color}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tsecondary: {\r\n\t\t\t\t\t\t\thoverBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tborderColor: \"{transparent}\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tsuccess: {\r\n\t\t\t\t\t\t\tbackground: \"{surface.0}\",\r\n\t\t\t\t\t\t\thoverBackground: \"{gray.400}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{gray.400}\",\r\n\t\t\t\t\t\t\tborderColor: \"{gray.400}\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"{gray.400}\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"{gray.400}\",\r\n\t\t\t\t\t\t\tcolor: \"{blue.700}\",\r\n\t\t\t\t\t\t\thoverColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tactiveColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{green.500}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tinfo: {\r\n\t\t\t\t\t\t\thoverBackground: \"{sky.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{sky.100}\",\r\n\t\t\t\t\t\t\tborderColor: \"{sky.200}\",\r\n\t\t\t\t\t\t\tcolor: \"{sky.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\twarn: {\r\n\t\t\t\t\t\t\thoverBackground: \"{orange.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{orange.100}\",\r\n\t\t\t\t\t\t\tborderColor: \"{orange.200}\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\thelp: {\r\n\t\t\t\t\t\t\thoverBackground: \"{purple.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{purple.100}\",\r\n\t\t\t\t\t\t\tborderColor: \"{purple.200}\",\r\n\t\t\t\t\t\t\tcolor: \"{purple.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdanger: {\r\n\t\t\t\t\t\t\thoverBackground: \"{red.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{red.100}\",\r\n\t\t\t\t\t\t\tborderColor: \"{red.200}\",\r\n\t\t\t\t\t\t\tcolor: \"{red.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tcontrast: {\r\n\t\t\t\t\t\t\thoverBackground: \"{surface.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{surface.100}\",\r\n\t\t\t\t\t\t\tborderColor: \"{surface.700}\",\r\n\t\t\t\t\t\t\tcolor: \"{surface.950}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tplain: {\r\n\t\t\t\t\t\t\thoverBackground: \"{surface.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{surface.100}\",\r\n\t\t\t\t\t\t\tborderColor: \"{surface.200}\",\r\n\t\t\t\t\t\t\tcolor: \"{surface.700}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\ttext: {\r\n\t\t\t\t\t\tprimary: {\r\n\t\t\t\t\t\t\thoverBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-blue)\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tsecondary: {\r\n\t\t\t\t\t\t\thoverBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tsuccess: {\r\n\t\t\t\t\t\t\thoverBackground: \"{green.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{green.100}\",\r\n\t\t\t\t\t\t\tcolor: \"{green.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tinfo: {\r\n\t\t\t\t\t\t\thoverBackground: \"{sky.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{sky.100}\",\r\n\t\t\t\t\t\t\tcolor: \"{sky.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\twarn: {\r\n\t\t\t\t\t\t\thoverBackground: \"{orange.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{orange.100}\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\thelp: {\r\n\t\t\t\t\t\t\thoverBackground: \"{purple.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{purple.100}\",\r\n\t\t\t\t\t\t\tcolor: \"{purple.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdanger: {\r\n\t\t\t\t\t\t\thoverBackground: \"{red.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{red.100}\",\r\n\t\t\t\t\t\t\tcolor: \"{red.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tcontrast: {\r\n\t\t\t\t\t\t\thoverBackground: \"{surface.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{surface.100}\",\r\n\t\t\t\t\t\t\tcolor: \"{surface.950}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tplain: {\r\n\t\t\t\t\t\t\thoverBackground: \"{surface.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{surface.100}\",\r\n\t\t\t\t\t\t\tcolor: \"{surface.700}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\tlink: {\r\n\t\t\t\t\t\tcolor: \"{primary.color}\",\r\n\t\t\t\t\t\thoverColor: \"{primary.color}\",\r\n\t\t\t\t\t\tactiveColor: \"{primary.color}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tdark: {\r\n\t\t\t\t\troot: {\r\n\t\t\t\t\t\tprimary: {\r\n\t\t\t\t\t\t\tbackground: \"var(--main-orange)\",\r\n\t\t\t\t\t\t\thoverBackground: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tactiveBackground: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tborderColor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\t\t\t\thoverColor: \"var(--main-light)\",\r\n\t\t\t\t\t\t\tactiveColor: \"var(--main-light)\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{primary.color}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tsecondary: {\r\n\t\t\t\t\t\t\tbackground: \"var(--main-light)\",\r\n\t\t\t\t\t\t\thoverBackground: \"var(--main-light)\",\r\n\t\t\t\t\t\t\tactiveBackground: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tborderColor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t\thoverColor: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tactiveColor: \"var(--main-light)\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{surface.600}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tinfo: {\r\n\t\t\t\t\t\t\tbackground: \"{sky.500}\",\r\n\t\t\t\t\t\t\thoverBackground: \"{sky.600}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{sky.700}\",\r\n\t\t\t\t\t\t\tborderColor: \"{sky.500}\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"{sky.600}\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"{sky.700}\",\r\n\t\t\t\t\t\t\tcolor: \"#ffffff\",\r\n\t\t\t\t\t\t\thoverColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tactiveColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{sky.500}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tsuccess: {\r\n\t\t\t\t\t\t\tbackground: \"var(--main-light)\",\r\n\t\t\t\t\t\t\thoverBackground: \"{gray.400}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{gray.400}\",\r\n\t\t\t\t\t\t\tborderColor: \"{gray.400}\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"{gray.400}\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"{gray.400}\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-blue)\",\r\n\t\t\t\t\t\t\thoverColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tactiveColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{green.500}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\twarn: {\r\n\t\t\t\t\t\t\tbackground: \"var(--main-orange)\",\r\n\t\t\t\t\t\t\thoverBackground: \"{orange.600}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tborderColor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"{orange.600}\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t\t\tcolor: \"#ffffff\",\r\n\t\t\t\t\t\t\thoverColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tactiveColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\thelp: {\r\n\t\t\t\t\t\t\tbackground: \"{purple.500}\",\r\n\t\t\t\t\t\t\thoverBackground: \"{purple.600}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{purple.700}\",\r\n\t\t\t\t\t\t\tborderColor: \"{purple.500}\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"{purple.600}\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"{purple.700}\",\r\n\t\t\t\t\t\t\tcolor: \"#ffffff\",\r\n\t\t\t\t\t\t\thoverColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tactiveColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{purple.500}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdanger: {\r\n\t\t\t\t\t\t\tbackground: \"{red.500}\",\r\n\t\t\t\t\t\t\thoverBackground: \"{red.600}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{red.700}\",\r\n\t\t\t\t\t\t\tborderColor: \"{red.500}\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"{red.600}\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"{red.700}\",\r\n\t\t\t\t\t\t\tcolor: \"#ffffff\",\r\n\t\t\t\t\t\t\thoverColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tactiveColor: \"#ffffff\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{red.500}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tcontrast: {\r\n\t\t\t\t\t\t\tbackground: \"{surface.950}\",\r\n\t\t\t\t\t\t\thoverBackground: \"{surface.900}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{surface.800}\",\r\n\t\t\t\t\t\t\tborderColor: \"{surface.950}\",\r\n\t\t\t\t\t\t\thoverBorderColor: \"{surface.900}\",\r\n\t\t\t\t\t\t\tactiveBorderColor: \"{surface.800}\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\t\t\t\thoverColor: \"var(--main-light)\",\r\n\t\t\t\t\t\t\tactiveColor: \"var(--main-light)\",\r\n\t\t\t\t\t\t\tfocusRing: {\r\n\t\t\t\t\t\t\t\tcolor: \"{surface.950}\",\r\n\t\t\t\t\t\t\t\tshadow: \"none\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\toutlined: {\r\n\t\t\t\t\t\tprimary: {\r\n\t\t\t\t\t\t\thoverBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tborderColor: \"{transparent}\",\r\n\t\t\t\t\t\t\tcolor: \"{primary.color}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tsecondary: {\r\n\t\t\t\t\t\t\thoverBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tborderColor: \"{transparent}\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tsuccess: {\r\n\t\t\t\t\t\t\thoverBackground: \"{green.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{green.100}\",\r\n\t\t\t\t\t\t\tborderColor: \"{green.200}\",\r\n\t\t\t\t\t\t\tcolor: \"{green.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tinfo: {\r\n\t\t\t\t\t\t\thoverBackground: \"{sky.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{sky.100}\",\r\n\t\t\t\t\t\t\tborderColor: \"{sky.200}\",\r\n\t\t\t\t\t\t\tcolor: \"{sky.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\twarn: {\r\n\t\t\t\t\t\t\thoverBackground: \"{orange.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{orange.100}\",\r\n\t\t\t\t\t\t\tborderColor: \"{orange.200}\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\thelp: {\r\n\t\t\t\t\t\t\thoverBackground: \"{purple.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{purple.100}\",\r\n\t\t\t\t\t\t\tborderColor: \"{purple.200}\",\r\n\t\t\t\t\t\t\tcolor: \"{purple.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdanger: {\r\n\t\t\t\t\t\t\thoverBackground: \"{red.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{red.100}\",\r\n\t\t\t\t\t\t\tborderColor: \"{red.200}\",\r\n\t\t\t\t\t\t\tcolor: \"{red.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tcontrast: {\r\n\t\t\t\t\t\t\thoverBackground: \"{surface.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{surface.100}\",\r\n\t\t\t\t\t\t\tborderColor: \"{surface.700}\",\r\n\t\t\t\t\t\t\tcolor: \"{surface.950}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tplain: {\r\n\t\t\t\t\t\t\thoverBackground: \"{surface.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{surface.100}\",\r\n\t\t\t\t\t\t\tborderColor: \"{surface.200}\",\r\n\t\t\t\t\t\t\tcolor: \"{surface.700}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\ttext: {\r\n\t\t\t\t\t\tprimary: {\r\n\t\t\t\t\t\t\thoverBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-blue)\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tsecondary: {\r\n\t\t\t\t\t\t\thoverBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{transparent}\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tsuccess: {\r\n\t\t\t\t\t\t\thoverBackground: \"{green.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{green.100}\",\r\n\t\t\t\t\t\t\tcolor: \"{green.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tinfo: {\r\n\t\t\t\t\t\t\thoverBackground: \"{sky.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{sky.100}\",\r\n\t\t\t\t\t\t\tcolor: \"{sky.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\twarn: {\r\n\t\t\t\t\t\t\thoverBackground: \"{orange.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{orange.100}\",\r\n\t\t\t\t\t\t\tcolor: \"var(--main-orange)\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\thelp: {\r\n\t\t\t\t\t\t\thoverBackground: \"{purple.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{purple.100}\",\r\n\t\t\t\t\t\t\tcolor: \"{purple.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdanger: {\r\n\t\t\t\t\t\t\thoverBackground: \"{red.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{red.100}\",\r\n\t\t\t\t\t\t\tcolor: \"{red.500}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tcontrast: {\r\n\t\t\t\t\t\t\thoverBackground: \"{surface.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{surface.100}\",\r\n\t\t\t\t\t\t\tcolor: \"{surface.950}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tplain: {\r\n\t\t\t\t\t\t\thoverBackground: \"{surface.50}\",\r\n\t\t\t\t\t\t\tactiveBackground: \"{surface.100}\",\r\n\t\t\t\t\t\t\tcolor: \"{surface.700}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\tlink: {\r\n\t\t\t\t\t\tcolor: \"{primary.color}\",\r\n\t\t\t\t\t\thoverColor: \"{primary.color}\",\r\n\t\t\t\t\t\tactiveColor: \"{primary.color}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\tcarousel: {\r\n\t\t\troot: {\r\n\t\t\t\ttransitionDuration: \"{transition.duration}\",\r\n\t\t\t},\r\n\t\t\tcontent: {\r\n\t\t\t\tgap: \"0.25rem\",\r\n\t\t\t},\r\n\t\t\tindicatorList: {\r\n\t\t\t\tpadding: \"1rem\",\r\n\t\t\t\tgap: \"0.5rem\",\r\n\t\t\t},\r\n\t\t\tindicator: {\r\n\t\t\t\twidth: \"0.8rem\",\r\n\t\t\t\theight: \"0.8rem\",\r\n\t\t\t\tborderRadius: \"{content.border.radius}\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"{focus.ring.offset}\",\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tcolorScheme: {\r\n\t\t\t\tlight: {\r\n\t\t\t\t\tindicator: {\r\n\t\t\t\t\t\tbackground: \"var(--main-blue)\",\r\n\t\t\t\t\t\thoverBackground: \"var(--main-blue)\",\r\n\t\t\t\t\t\tactiveBackground: \"{primary.color}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tdark: {\r\n\t\t\t\t\tindicator: {\r\n\t\t\t\t\t\tbackground: \"var(--main-blue)\",\r\n\t\t\t\t\t\thoverBackground: \"var(--main-blue)\",\r\n\t\t\t\t\t\tactiveBackground: \"{primary.color}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\tcheckbox: {\r\n\t\t\troot: {\r\n\t\t\t\tborderRadius: \"{border.radius.sm}\",\r\n\t\t\t\twidth: \"1.2rem\",\r\n\t\t\t\theight: \"1.2rem\",\r\n\t\t\t\tbackground: \"{form.field.background}\",\r\n\t\t\t\tcheckedBackground: \"var(--main-orange)\",\r\n\t\t\t\tcheckedHoverBackground: \"var(--main-orange)\",\r\n\t\t\t\tdisabledBackground: \"{form.field.disabled.background}\",\r\n\t\t\t\tfilledBackground: \"{form.field.filled.background}\",\r\n\t\t\t\tborderColor: \"{gray.500}\",\r\n\t\t\t\thoverBorderColor: \"var(--main-orange)\",\r\n\t\t\t\tfocusBorderColor: \"var(--main-blue)\",\r\n\t\t\t\tcheckedBorderColor: \"var(--main-orange)\",\r\n\t\t\t\tcheckedHoverBorderColor: \"var(--main-orange)\",\r\n\t\t\t\tcheckedFocusBorderColor: \"{primary.color}\",\r\n\t\t\t\tcheckedDisabledBorderColor: \"{form.field.border.color}\",\r\n\t\t\t\tinvalidBorderColor: \"{form.field.invalid.border.color}\",\r\n\t\t\t\tshadow: \"{form.field.shadow}\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"{focus.ring.offset}\",\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t\ttransitionDuration: \"{form.field.transition.duration}\",\r\n\t\t\t\tsm: {\r\n\t\t\t\t\twidth: \"1rem\",\r\n\t\t\t\t\theight: \"1rem\",\r\n\t\t\t\t},\r\n\t\t\t\tlg: {\r\n\t\t\t\t\twidth: \"1.5rem\",\r\n\t\t\t\t\theight: \"1.5rem\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\ticon: {\r\n\t\t\t\tsize: \"0.875rem\",\r\n\t\t\t\tcolor: \"{form.field.color}\",\r\n\t\t\t\tcheckedColor: \"{primary.contrast.color}\",\r\n\t\t\t\tcheckedHoverColor: \"{primary.contrast.color}\",\r\n\t\t\t\tdisabledColor: \"{form.field.disabled.color}\",\r\n\t\t\t\tsm: {\r\n\t\t\t\t\tsize: \"0.75rem\",\r\n\t\t\t\t},\r\n\t\t\t\tlg: {\r\n\t\t\t\t\tsize: \"1rem\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\tdatatable: {\r\n\t\t\troot: {\r\n\t\t\t\ttransitionDuration: \"{transition.duration}\",\r\n\t\t\t},\r\n\r\n\t\t\theader: {\r\n\t\t\t\tbackground: \"{content.background}\",\r\n\t\t\t\tborderColor: \"{datatable.border.color}\",\r\n\t\t\t\tcolor: \"{content.color}\",\r\n\t\t\t\tborderWidth: \"0 0 1px 0\",\r\n\t\t\t\tpadding: \"0.75rem 1rem\",\r\n\t\t\t},\r\n\t\t\theaderCell: {\r\n\t\t\t\tbackground: \"var(--main-blue)\",\r\n\t\t\t\thoverBackground: \"var(--main-blue)\",\r\n\t\t\t\tselectedBackground: \"var(--main-blue)\",\r\n\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\thoverColor: \"var(--main-light)\",\r\n\t\t\t\tselectedColor: \"var(--main-light)\",\r\n\t\t\t\tgap: \"0.5rem\",\r\n\t\t\t\tpadding: \"1.3rem 0.5rem\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"-1px\",\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tcolumnTitle: {\r\n\t\t\t\tfontWeight: \"400\",\r\n\t\t\t},\r\n\t\t\trow: {\r\n\t\t\t\tbackground: \"{content.background}\",\r\n\t\t\t\thoverBackground: \"#cbd9ea\",\r\n\t\t\t\tselectedBackground: \"{highlight.background}\",\r\n\t\t\t\tcolor: \"{content.color}\",\r\n\t\t\t\thoverColor: \"var(--main-blue)\",\r\n\t\t\t\tselectedColor: \"{highlight.color}\",\r\n\t\t\t\tborderWidth: \"0px\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"-1px\",\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tbodyCell: {\r\n\t\t\t\tborderColor: \"transparent\",\r\n\t\t\t\tpadding: \"0.75rem 1rem\",\r\n\t\t\t},\r\n\t\t\tfooterCell: {\r\n\t\t\t\tbackground: \"{content.background}\",\r\n\t\t\t\tborderColor: \"{datatable.border.color}\",\r\n\t\t\t\tcolor: \"{content.color}\",\r\n\t\t\t\tpadding: \"0.75rem 1rem\",\r\n\t\t\t},\r\n\t\t\tcolumnFooter: {\r\n\t\t\t\tfontWeight: \"600\",\r\n\t\t\t},\r\n\t\t\tfooter: {\r\n\t\t\t\tbackground: \"{content.background}\",\r\n\t\t\t\tborderColor: \"{datatable.border.color}\",\r\n\t\t\t\tcolor: \"{content.color}\",\r\n\t\t\t\tborderWidth: \"0 0 1px 0\",\r\n\t\t\t\tpadding: \"0.75rem 1rem\",\r\n\t\t\t},\r\n\t\t\tdropPoint: {\r\n\t\t\t\tcolor: \"{primary.color}\",\r\n\t\t\t},\r\n\t\t\tcolumnResizerWidth: \"0.5rem\",\r\n\t\t\tresizeIndicator: {\r\n\t\t\t\twidth: \"1px\",\r\n\t\t\t\tcolor: \"{primary.color}\",\r\n\t\t\t},\r\n\t\t\tsortIcon: {\r\n\t\t\t\tcolor: \"{text.muted.color}\",\r\n\t\t\t\thoverColor: \"{text.hover.muted.color}\",\r\n\t\t\t\tsize: \"0.875rem\",\r\n\t\t\t},\r\n\t\t\tloadingIcon: {\r\n\t\t\t\tsize: \"2rem\",\r\n\t\t\t},\r\n\t\t\trowToggleButton: {\r\n\t\t\t\thoverBackground: \"{content.hover.background}\",\r\n\t\t\t\tselectedHoverBackground: \"{content.background}\",\r\n\t\t\t\tcolor: \"{text.muted.color}\",\r\n\t\t\t\thoverColor: \"{text.color}\",\r\n\t\t\t\tselectedHoverColor: \"{primary.color}\",\r\n\t\t\t\tsize: \"1.75rem\",\r\n\t\t\t\tborderRadius: \"50%\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"{focus.ring.offset}\",\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tfilter: {\r\n\t\t\t\tinlineGap: \"0.5rem\",\r\n\t\t\t\toverlaySelect: {\r\n\t\t\t\t\tbackground: \"{overlay.select.background}\",\r\n\t\t\t\t\tborderColor: \"{overlay.select.border.color}\",\r\n\t\t\t\t\tborderRadius: \"{overlay.select.border.radius}\",\r\n\t\t\t\t\tcolor: \"{overlay.select.color}\",\r\n\t\t\t\t\tshadow: \"{overlay.select.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t\toverlayPopover: {\r\n\t\t\t\t\tbackground: \"{overlay.popover.background}\",\r\n\t\t\t\t\tborderColor: \"{overlay.popover.border.color}\",\r\n\t\t\t\t\tborderRadius: \"{overlay.popover.border.radius}\",\r\n\t\t\t\t\tcolor: \"{overlay.popover.color}\",\r\n\t\t\t\t\tshadow: \"{overlay.popover.shadow}\",\r\n\t\t\t\t\tpadding: \"{overlay.popover.padding}\",\r\n\t\t\t\t\tgap: \"0.5rem\",\r\n\t\t\t\t},\r\n\t\t\t\trule: {\r\n\t\t\t\t\tborderColor: \"{content.border.color}\",\r\n\t\t\t\t},\r\n\t\t\t\tconstraintList: {\r\n\t\t\t\t\tpadding: \"{list.padding}\",\r\n\t\t\t\t\tgap: \"{list.gap}\",\r\n\t\t\t\t},\r\n\t\t\t\tconstraint: {\r\n\t\t\t\t\tfocusBackground: \"{list.option.focus.background}\",\r\n\t\t\t\t\tselectedBackground: \"{list.option.selected.background}\",\r\n\t\t\t\t\tselectedFocusBackground: \"{list.option.selected.focus.background}\",\r\n\t\t\t\t\tcolor: \"{list.option.color}\",\r\n\t\t\t\t\tfocusColor: \"{list.option.focus.color}\",\r\n\t\t\t\t\tselectedColor: \"{list.option.selected.color}\",\r\n\t\t\t\t\tselectedFocusColor: \"{list.option.selected.focus.color}\",\r\n\t\t\t\t\tseparator: {\r\n\t\t\t\t\t\tborderColor: \"{content.border.color}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tpadding: \"{list.option.padding}\",\r\n\t\t\t\t\tborderRadius: \"{list.option.border.radius}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tpaginatorTop: {\r\n\t\t\t\tborderColor: \"{datatable.border.color}\",\r\n\t\t\t\tborderWidth: \"0 0 1px 0\",\r\n\t\t\t},\r\n\t\t\tpaginatorBottom: {\r\n\t\t\t\tborderColor: \"{datatable.border.color}\",\r\n\t\t\t\tborderWidth: \"0 0 1px 0\",\r\n\t\t\t},\r\n\t\t\tcolorScheme: {\r\n\t\t\t\tlight: {\r\n\t\t\t\t\troot: {\r\n\t\t\t\t\t\tborderColor: \"{content.border.color}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\trow: {\r\n\t\t\t\t\t\tstripedBackground: \"{surface.50}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tbodyCell: {\r\n\t\t\t\t\t\tselectedBorderColor: \"{primary.100}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tdark: {\r\n\t\t\t\t\troot: {\r\n\t\t\t\t\t\tborderColor: \"{content.border.color}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\trow: {\r\n\t\t\t\t\t\tstripedBackground: \"{surface.50}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tbodyCell: {\r\n\t\t\t\t\t\tselectedBorderColor: \"{primary.100}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\tdialog: {\r\n\t\t\troot: {\r\n\t\t\t\tbackground: \"var(--main-light)\",\r\n\t\t\t\tcolor: \"{overlay.modal.color}\",\r\n\t\t\t\tborderRadius: \"{overlay.modal.border.radius}\",\r\n\t\t\t\tshadow: \"none\",\r\n\t\t\t},\r\n\t\t\theader: {\r\n\t\t\t\tgap: \"0.5rem\",\r\n\t\t\t},\r\n\t\t\ttitle: {\r\n\t\t\t\tfontSize: \"1.25rem\",\r\n\t\t\t\tfontWeight: \"600\",\r\n\t\t\t},\r\n\t\t\tcontent: {\r\n\t\t\t\tpadding: \" {overlay.modal.padding}\",\r\n\t\t\t},\r\n\t\t\tfooter: {\r\n\t\t\t\tpadding: \"0 {overlay.modal.padding} {overlay.modal.padding} {overlay.modal.padding}\",\r\n\t\t\t},\r\n\t\t},\r\n\t\tfileupload: {\r\n\t\t\troot: {\r\n\t\t\t\tbackground: \"{content.background}\",\r\n\t\t\t\tborderColor: \"{content.border.color}\",\r\n\t\t\t\tcolor: \"{content.color}\",\r\n\t\t\t\tborderRadius: \"{content.border.radius}\",\r\n\t\t\t\ttransitionDuration: \"{transition.duration}\",\r\n\t\t\t},\r\n\t\t\theader: {\r\n\t\t\t\tbackground: \"transparent\",\r\n\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\tpadding: \"1.125rem\",\r\n\t\t\t\tborderColor: \"unset\",\r\n\t\t\t\tborderWidth: \"0\",\r\n\t\t\t\tborderRadius: \"0\",\r\n\t\t\t\tgap: \"0.5rem\",\r\n\t\t\t},\r\n\t\t\tcontent: {\r\n\t\t\t\thighlightBorderColor: \"{primary.color}\",\r\n\t\t\t\tpadding: \"0 1.125rem 1.125rem 1.125rem\",\r\n\t\t\t\tgap: \"1rem\",\r\n\t\t\t},\r\n\t\t\tfile: {\r\n\t\t\t\tpadding: \"1rem\",\r\n\t\t\t\tgap: \"1rem\",\r\n\t\t\t\tborderColor: \"{content.border.color}\",\r\n\t\t\t\tinfo: {\r\n\t\t\t\t\tgap: \"0.5rem\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tfileList: {\r\n\t\t\t\tgap: \"0.5rem\",\r\n\t\t\t},\r\n\t\t\tprogressbar: {\r\n\t\t\t\theight: \"0.25rem\",\r\n\t\t\t},\r\n\t\t\tbasic: {\r\n\t\t\t\tgap: \"0.5rem\",\r\n\t\t\t},\r\n\t\t},\r\n\t\tinputtext: {\r\n\t\t\troot: {\r\n\t\t\t\tbackground: \"{form.field.background}\",\r\n\t\t\t\tdisabledBackground: \"{form.field.disabled.background}\", // var(--p-inputtext-disabled-background)\r\n\t\t\t\tfilledBackground: \"{form.field.filled.background}\",\r\n\t\t\t\tfilledHoverBackground: \"{form.field.filled.hover.background}\",\r\n\t\t\t\tfilledFocusBackground: \"{form.field.filled.focus.background}\",\r\n\t\t\t\tborderColor: \"{form.field.border.color}\",\r\n\t\t\t\thoverBorderColor: \"{form.field.hover.border.color}\",\r\n\t\t\t\tfocusBorderColor: \"{form.field.focus.border.color}\",\r\n\t\t\t\tinvalidBorderColor: \"{form.field.invalid.border.color}\",\r\n\t\t\t\tcolor: \"{form.field.color}\",\r\n\t\t\t\tdisabledColor: \"{form.field.disabled.color}\",\r\n\t\t\t\tplaceholderColor: \"{form.field.placeholder.color}\",\r\n\t\t\t\tinvalidPlaceholderColor: \"{form.field.invalid.placeholder.color}\",\r\n\t\t\t\tshadow: \"{form.field.shadow}\",\r\n\t\t\t\tpaddingX: \"{form.field.padding.x}\",\r\n\t\t\t\tpaddingY: \"{form.field.padding.y}\",\r\n\t\t\t\tborderRadius: \"{form.field.border.radius}\", // var(--p-inputtext-border-radius)\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{form.field.focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{form.field.focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{form.field.focus.ring.color}\",\r\n\t\t\t\t\toffset: \"{form.field.focus.ring.offset}\", // var(--p-inputtext-focus-ring-offset)\r\n\t\t\t\t\tshadow: \"{form.field.focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t\ttransitionDuration: \"{form.field.transition.duration}\",\r\n\t\t\t\tsm: {\r\n\t\t\t\t\tfontSize: \"{form.field.sm.font.size}\",\r\n\t\t\t\t\tpaddingX: \"{form.field.sm.padding.x}\",\r\n\t\t\t\t\tpaddingY: \"{form.field.sm.padding.y}\",\r\n\t\t\t\t},\r\n\t\t\t\tlg: {\r\n\t\t\t\t\tfontSize: \"{form.field.lg.font.size}\",\r\n\t\t\t\t\tpaddingX: \"{form.field.lg.padding.x}\",\r\n\t\t\t\t\tpaddingY: \"{form.field.lg.padding.y}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\tinputgroup: {\r\n\t\t\taddon: {\r\n\t\t\t\tbackground: \"{form.field.background}\",\r\n\t\t\t\tborderColor: \"{form.field.border.color}\",\r\n\t\t\t\tcolor: \"{form.field.icon.color}\",\r\n\t\t\t\tborderRadius: \"{form.field.border.radius}\",\r\n\t\t\t\tpadding: \"0.5rem\",\r\n\t\t\t\tminWidth: \"2.5rem\",\r\n\t\t\t},\r\n\t\t},\r\n\t\tlistbox: {\r\n\t\t\troot: {\r\n\t\t\t\tbackground: \"{form.field.background}\",\r\n\t\t\t\tdisabledBackground: \"{form.field.disabled.background}\",\r\n\t\t\t\tborderColor: \"{form.field.border.color}\",\r\n\t\t\t\tinvalidBorderColor: \"{form.field.invalid.border.color}\",\r\n\t\t\t\tcolor: \"{form.field.color}\",\r\n\t\t\t\tdisabledColor: \"{form.field.disabled.color}\",\r\n\t\t\t\tshadow: \"{form.field.shadow}\",\r\n\t\t\t\tborderRadius: \"{form.field.border.radius}\",\r\n\t\t\t\ttransitionDuration: \"{form.field.transition.duration}\",\r\n\t\t\t},\r\n\t\t\tlist: {\r\n\t\t\t\tpadding: \"{list.padding}\",\r\n\t\t\t\tgap: \"{list.gap}\",\r\n\t\t\t\theader: {\r\n\t\t\t\t\tpadding: \"{list.header.padding}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\toption: {\r\n\t\t\t\tfocusBackground: \"{list.option.focus.background}\",\r\n\t\t\t\tselectedBackground: \"{list.option.selected.background}\",\r\n\t\t\t\tselectedFocusBackground: \"{list.option.selected.focus.background}\",\r\n\t\t\t\tcolor: \"{list.option.color}\",\r\n\t\t\t\tfocusColor: \"{list.option.focus.color}\",\r\n\t\t\t\tselectedColor: \"{list.option.selected.color}\",\r\n\t\t\t\tselectedFocusColor: \"{list.option.selected.focus.color}\",\r\n\t\t\t\tpadding: \"{list.option.padding}\",\r\n\t\t\t\tborderRadius: \"{list.option.border.radius}\",\r\n\t\t\t},\r\n\t\t\toptionGroup: {\r\n\t\t\t\tbackground: \"{list.option.group.background}\",\r\n\t\t\t\tcolor: \"{list.option.group.color}\",\r\n\t\t\t\tfontWeight: \"{list.option.group.font.weight}\",\r\n\t\t\t\tpadding: \"{list.option.group.padding}\",\r\n\t\t\t},\r\n\t\t\tcheckmark: {\r\n\t\t\t\tcolor: \"{list.option.color}\",\r\n\t\t\t\tgutterStart: \"-0.375rem\",\r\n\t\t\t\tgutterEnd: \"0.375rem\",\r\n\t\t\t},\r\n\t\t\temptyMessage: {\r\n\t\t\t\tpadding: \"{list.option.padding}\",\r\n\t\t\t},\r\n\t\t\tcolorScheme: {\r\n\t\t\t\tlight: {\r\n\t\t\t\t\toption: {\r\n\t\t\t\t\t\tstripedBackground: \"{surface.50}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tdark: {\r\n\t\t\t\t\toption: {\r\n\t\t\t\t\t\tstripedBackground: \"{surface.900}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\tmultiselect: {\r\n\t\t\troot: {\r\n\t\t\t\tbackground: \"{form.field.background}\",\r\n\t\t\t\tdisabledBackground: \"{form.field.disabled.background}\",\r\n\t\t\t\tfilledBackground: \"{form.field.filled.background}\",\r\n\t\t\t\tfilledHoverBackground: \"{form.field.filled.hover.background}\",\r\n\t\t\t\tfilledFocusBackground: \"{form.field.filled.focus.background}\",\r\n\t\t\t\tborderColor: \"{form.field.border.color}\",\r\n\t\t\t\thoverBorderColor: \"{form.field.hover.border.color}\",\r\n\t\t\t\tfocusBorderColor: \"{form.field.focus.border.color}\",\r\n\t\t\t\tinvalidBorderColor: \"{form.field.invalid.border.color}\",\r\n\t\t\t\tcolor: \"{form.field.color}\",\r\n\t\t\t\tdisabledColor: \"{form.field.disabled.color}\",\r\n\t\t\t\tplaceholderColor: \"{form.field.placeholder.color}\",\r\n\t\t\t\tinvalidPlaceholderColor: \"{form.field.invalid.placeholder.color}\",\r\n\t\t\t\tshadow: \"{form.field.shadow}\",\r\n\t\t\t\tpaddingX: \"{form.field.padding.x}\",\r\n\t\t\t\tpaddingY: \"{form.field.padding.y}\",\r\n\t\t\t\tborderRadius: \"{form.field.border.radius}\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{form.field.focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{form.field.focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{form.field.focus.ring.color}\",\r\n\t\t\t\t\toffset: \"{form.field.focus.ring.offset}\",\r\n\t\t\t\t\tshadow: \"{form.field.focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t\ttransitionDuration: \"{form.field.transition.duration}\",\r\n\t\t\t\tsm: {\r\n\t\t\t\t\tfontSize: \"{form.field.sm.font.size}\",\r\n\t\t\t\t\tpaddingX: \"{form.field.sm.padding.x}\",\r\n\t\t\t\t\tpaddingY: \"{form.field.sm.padding.y}\",\r\n\t\t\t\t},\r\n\t\t\t\tlg: {\r\n\t\t\t\t\tfontSize: \"{form.field.lg.font.size}\",\r\n\t\t\t\t\tpaddingX: \"{form.field.lg.padding.x}\",\r\n\t\t\t\t\tpaddingY: \"{form.field.lg.padding.y}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tdropdown: {\r\n\t\t\t\twidth: \"2.5rem\",\r\n\t\t\t\tcolor: \"{form.field.icon.color}\",\r\n\t\t\t},\r\n\t\t\toverlay: {\r\n\t\t\t\tbackground: \"{overlay.select.background}\",\r\n\t\t\t\tborderColor: \"{overlay.select.border.color}\",\r\n\t\t\t\tborderRadius: \"{overlay.select.border.radius}\",\r\n\t\t\t\tcolor: \"{overlay.select.color}\",\r\n\t\t\t\tshadow: \"{overlay.select.shadow}\",\r\n\t\t\t},\r\n\t\t\tlist: {\r\n\t\t\t\tpadding: \"{list.padding}\",\r\n\t\t\t\tgap: \"{list.gap}\",\r\n\t\t\t\theader: {\r\n\t\t\t\t\tpadding: \"{list.header.padding}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\toption: {\r\n\t\t\t\tfocusBackground: \"{list.option.focus.background}\",\r\n\t\t\t\tselectedBackground: \"{list.option.selected.background}\",\r\n\t\t\t\tselectedFocusBackground: \"{list.option.selected.focus.background}\",\r\n\t\t\t\tcolor: \"{list.option.color}\",\r\n\t\t\t\tfocusColor: \"{list.option.focus.color}\",\r\n\t\t\t\tselectedColor: \"{list.option.selected.color}\",\r\n\t\t\t\tselectedFocusColor: \"{list.option.selected.focus.color}\",\r\n\t\t\t\tpadding: \"{list.option.padding}\",\r\n\t\t\t\tborderRadius: \"{list.option.border.radius}\",\r\n\t\t\t\tgap: \"0.5rem\",\r\n\t\t\t},\r\n\t\t\toptionGroup: {\r\n\t\t\t\tbackground: \"{list.option.group.background}\",\r\n\t\t\t\tcolor: \"{list.option.group.color}\",\r\n\t\t\t\tfontWeight: \"{list.option.group.font.weight}\",\r\n\t\t\t\tpadding: \"{list.option.group.padding}\",\r\n\t\t\t},\r\n\t\t\tclearIcon: {\r\n\t\t\t\tcolor: \"{form.field.icon.color}\",\r\n\t\t\t},\r\n\t\t\tchip: {\r\n\t\t\t\tborderRadius: \"{border.radius.sm}\",\r\n\t\t\t},\r\n\t\t\temptyMessage: {\r\n\t\t\t\tpadding: \"{list.option.padding}\",\r\n\t\t\t},\r\n\t\t},\r\n\t\tpicklist: {\r\n\t\t\troot: {\r\n\t\t\t\tgap: \"1.125rem\",\r\n\t\t\t},\r\n\t\t\tcontrols: {\r\n\t\t\t\tgap: \"0.5rem\",\r\n\t\t\t},\r\n\t\t},\r\n\t\tpopover: {\r\n\t\t\troot: {\r\n\t\t\t\tbackground: \"{overlay.popover.background}\",\r\n\t\t\t\tborderColor: \"{overlay.popover.border.color}\",\r\n\t\t\t\tcolor: \"{overlay.popover.color}\",\r\n\t\t\t\tborderRadius: \"{overlay.popover.border.radius}\",\r\n\t\t\t\tshadow: \"{overlay.popover.shadow}\",\r\n\t\t\t\tgutter: \"0\",\r\n\t\t\t\tarrowOffset: \"1.25rem\",\r\n\t\t\t},\r\n\t\t\tcontent: {\r\n\t\t\t\tpadding: \"0\",\r\n\t\t\t},\r\n\t\t},\r\n\t\tradiobutton: {\r\n\t\t\troot: {\r\n\t\t\t\twidth: \"1.2rem\",\r\n\t\t\t\theight: \"1.2rem\",\r\n\t\t\t\tbackground: \"{form.field.background}\",\r\n\t\t\t\tcheckedBackground: \"var(--main-orange)\",\r\n\t\t\t\tcheckedHoverBackground: \"var(--main-orange)\",\r\n\t\t\t\tdisabledBackground: \"{form.field.disabled.background}\",\r\n\t\t\t\tfilledBackground: \"{form.field.filled.background}\",\r\n\t\t\t\tborderColor: \"{gray.500}\",\r\n\t\t\t\thoverBorderColor: \"var(--main-orange)\",\r\n\t\t\t\tfocusBorderColor: \"var(--main-blue)\",\r\n\t\t\t\tcheckedBorderColor: \"var(--main-orange)\",\r\n\t\t\t\tcheckedHoverBorderColor: \"var(--main-orange)\",\r\n\t\t\t\tcheckedFocusBorderColor: \"{primary.color}\",\r\n\t\t\t\tcheckedDisabledBorderColor: \"{form.field.border.color}\",\r\n\t\t\t\tinvalidBorderColor: \"{form.field.invalid.border.color}\",\r\n\t\t\t\tshadow: \"{form.field.shadow}\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"{focus.ring.offset}\",\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t\ttransitionDuration: \"{form.field.transition.duration}\",\r\n\t\t\t\tsm: {\r\n\t\t\t\t\twidth: \"1rem\",\r\n\t\t\t\t\theight: \"1rem\",\r\n\t\t\t\t},\r\n\t\t\t\tlg: {\r\n\t\t\t\t\twidth: \"1.5rem\",\r\n\t\t\t\t\theight: \"1.5rem\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\ticon: {\r\n\t\t\t\tsize: \"0.75rem\",\r\n\t\t\t\tcheckedColor: \"{primary.contrast.color}\",\r\n\t\t\t\tcheckedHoverColor: \"{primary.contrast.color}\",\r\n\t\t\t\tdisabledColor: \"{form.field.disabled.color}\",\r\n\t\t\t\tsm: {\r\n\t\t\t\t\tsize: \"0.5rem\",\r\n\t\t\t\t},\r\n\t\t\t\tlg: {\r\n\t\t\t\t\tsize: \"1rem\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\tselect: {\r\n\t\t\troot: {\r\n\t\t\t\tbackground: \"{form.field.background}\",\r\n\t\t\t\tdisabledBackground: \"{form.field.disabled.background}\",\r\n\t\t\t\tfilledBackground: \"{form.field.filled.background}\",\r\n\t\t\t\tfilledHoverBackground: \"{form.field.filled.hover.background}\",\r\n\t\t\t\tfilledFocusBackground: \"{form.field.filled.focus.background}\",\r\n\t\t\t\tborderColor: \"{form.field.border.color}\",\r\n\t\t\t\thoverBorderColor: \"{form.field.hover.border.color}\",\r\n\t\t\t\tfocusBorderColor: \"{form.field.focus.border.color}\",\r\n\t\t\t\tinvalidBorderColor: \"{form.field.invalid.border.color}\",\r\n\t\t\t\tcolor: \"{form.field.color}\",\r\n\t\t\t\tdisabledColor: \"{form.field.disabled.color}\",\r\n\t\t\t\tplaceholderColor: \"{form.field.placeholder.color}\",\r\n\t\t\t\tinvalidPlaceholderColor: \"{form.field.invalid.placeholder.color}\",\r\n\t\t\t\tshadow: \"{form.field.shadow}\",\r\n\t\t\t\tpaddingX: \"{form.field.padding.x}\",\r\n\t\t\t\tpaddingY: \"{form.field.padding.y}\",\r\n\t\t\t\tborderRadius: \"{form.field.border.radius}\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{form.field.focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{form.field.focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{form.field.focus.ring.color}\",\r\n\t\t\t\t\toffset: \"{form.field.focus.ring.offset}\",\r\n\t\t\t\t\tshadow: \"{form.field.focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t\ttransitionDuration: \"{form.field.transition.duration}\",\r\n\t\t\t\tsm: {\r\n\t\t\t\t\tfontSize: \"{form.field.sm.font.size}\",\r\n\t\t\t\t\tpaddingX: \"{form.field.sm.padding.x}\",\r\n\t\t\t\t\tpaddingY: \"{form.field.sm.padding.y}\",\r\n\t\t\t\t},\r\n\t\t\t\tlg: {\r\n\t\t\t\t\tfontSize: \"{form.field.lg.font.size}\",\r\n\t\t\t\t\tpaddingX: \"{form.field.lg.padding.x}\",\r\n\t\t\t\t\tpaddingY: \"{form.field.lg.padding.y}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tdropdown: {\r\n\t\t\t\twidth: \"2.5rem\",\r\n\t\t\t\tcolor: \"{form.field.icon.color}\",\r\n\t\t\t},\r\n\t\t\toverlay: {\r\n\t\t\t\tbackground: \"{overlay.select.background}\",\r\n\t\t\t\tborderColor: \"{overlay.select.border.color}\",\r\n\t\t\t\tborderRadius: \"{overlay.select.border.radius}\",\r\n\t\t\t\tcolor: \"{overlay.select.color}\",\r\n\t\t\t\tshadow: \"{overlay.select.shadow}\",\r\n\t\t\t},\r\n\t\t\tlist: {\r\n\t\t\t\tpadding: \"{list.padding}\",\r\n\t\t\t\tgap: \"{list.gap}\",\r\n\t\t\t\theader: {\r\n\t\t\t\t\tpadding: \"{list.header.padding}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\toption: {\r\n\t\t\t\tfocusBackground: \"{list.option.focus.background}\",\r\n\t\t\t\tselectedBackground: \"{list.option.selected.background}\",\r\n\t\t\t\tselectedFocusBackground: \"{list.option.selected.focus.background}\",\r\n\t\t\t\tcolor: \"{list.option.color}\",\r\n\t\t\t\tfocusColor: \"{list.option.focus.color}\",\r\n\t\t\t\tselectedColor: \"{list.option.selected.color}\",\r\n\t\t\t\tselectedFocusColor: \"{list.option.selected.focus.color}\",\r\n\t\t\t\tpadding: \"{list.option.padding}\",\r\n\t\t\t\tborderRadius: \"{list.option.border.radius}\",\r\n\t\t\t},\r\n\t\t\toptionGroup: {\r\n\t\t\t\tbackground: \"{list.option.group.background}\",\r\n\t\t\t\tcolor: \"{list.option.group.color}\",\r\n\t\t\t\tfontWeight: \"{list.option.group.font.weight}\",\r\n\t\t\t\tpadding: \"{list.option.group.padding}\",\r\n\t\t\t},\r\n\t\t\tclearIcon: {\r\n\t\t\t\tcolor: \"{form.field.icon.color}\",\r\n\t\t\t},\r\n\t\t\tcheckmark: {\r\n\t\t\t\tcolor: \"{list.option.color}\",\r\n\t\t\t\tgutterStart: \"-0.375rem\",\r\n\t\t\t\tgutterEnd: \"0.375rem\",\r\n\t\t\t},\r\n\t\t\temptyMessage: {\r\n\t\t\t\tpadding: \"{list.option.padding}\",\r\n\t\t\t},\r\n\t\t},\r\n\t\tstepper: {\r\n\t\t\troot: {\r\n\t\t\t\ttransitionDuration: \"{transition.duration}\",\r\n\t\t\t},\r\n\t\t\tseparator: {\r\n\t\t\t\tbackground: \"var(--main-gray)\", // var(--p-stepper-separator-background)\r\n\t\t\t\tactiveBackground: \"var(--main-orange)\",\r\n\t\t\t\tmargin: \"0 0 0 1.625rem\",\r\n\t\t\t\tsize: \"2px\",\r\n\t\t\t},\r\n\t\t\tstep: {\r\n\t\t\t\tpadding: \"0.5rem\",\r\n\t\t\t\tgap: \"1rem\",\r\n\t\t\t},\r\n\t\t\tstepHeader: {\r\n\t\t\t\tpadding: \"0\",\r\n\t\t\t\tborderRadius: \"{content.border.radius}\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"{focus.ring.offset}\",\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t\tgap: \"0.5rem\",\r\n\t\t\t},\r\n\t\t\tstepTitle: {\r\n\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\tactiveColor: \"{secondary.color}\",\r\n\t\t\t\tfontWeight: \"500\",\r\n\t\t\t},\r\n\t\t\tstepNumber: {\r\n\t\t\t\tbackground: \"{content.background}\",\r\n\t\t\t\tactiveBackground: \"{content.background}\",\r\n\t\t\t\tborderColor: \"{primary.color}\",\r\n\t\t\t\tactiveBorderColor: \"{secondary.color}\",\r\n\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\tactiveColor: \"{secondary.color}\",\r\n\t\t\t\tsize: \"2rem\",\r\n\t\t\t\tfontSize: \"1.143rem\",\r\n\t\t\t\tfontWeight: \"500\",\r\n\t\t\t\tborderRadius: \"50%\",\r\n\t\t\t\tshadow: \"0px 0.5px 0px 0px rgba(0, 0, 0, 0.06), 0px 1px 1px 0px rgba(0, 0, 0, 0.12)\",\r\n\t\t\t},\r\n\t\t\tstepIcon: {\r\n\t\t\t\tbackground: \"{primary.color}\",\r\n\t\t\t\tactiveBackground: \"{content.background}\",\r\n\t\t\t\tborderColor: \"{primary.color}\",\r\n\t\t\t\tactiveBorderColor: \"{secondary.color}\",\r\n\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\tactiveColor: \"{secondary.color}\",\r\n\t\t\t\tsize: \"2rem\",\r\n\t\t\t\tfontSize: \"1.143rem\",\r\n\t\t\t\tfontWeight: \"500\",\r\n\t\t\t\tborderRadius: \"50%\",\r\n\t\t\t\tshadow: \"0px 0.5px 0px 0px rgba(0, 0, 0, 0.06), 0px 1px 1px 0px rgba(0, 0, 0, 0.12)\",\r\n\t\t\t},\r\n\t\t\tsteppanels: {\r\n\t\t\t\tpadding: \"0.875rem 0.5rem 1.125rem 0.5rem\",\r\n\t\t\t},\r\n\t\t\tsteppanel: {\r\n\t\t\t\tbackground: \"{content.background}\",\r\n\t\t\t\tcolor: \"{content.color}\",\r\n\t\t\t\tpadding: \"0\",\r\n\t\t\t\tindent: \"1rem\",\r\n\t\t\t},\r\n\t\t},\r\n\t\tslider: {\r\n\t\t\troot: {\r\n\t\t\t\tborderRadius: \"1rem\",\r\n\t\t\t\ttransitionDuration: \"{transition.duration}\",\r\n\t\t\t},\r\n\t\t\ttrack: {\r\n\t\t\t\tbackground: \"{gray.200}\",\r\n\t\t\t\tsize: \"0.4rem\",\r\n\t\t\t},\r\n\t\t\trange: {\r\n\t\t\t\tbackground: \"{primary.color}\",\r\n\t\t\t},\r\n\t\t\thandle: {\r\n\t\t\t\twidth: \"1.1rem\",\r\n\t\t\t\theight: \"1.1rem\",\r\n\t\t\t\tborderRadius: \"50%\",\r\n\t\t\t\tbackground: \"{content.border.color}\",\r\n\t\t\t\thoverBackground: \"{content.border.color}\",\r\n\t\t\t\tcontent: {\r\n\t\t\t\t\tborderRadius: \"50%\",\r\n\t\t\t\t\thoverBackground: \"{content.background}\",\r\n\t\t\t\t\twidth: \"16px\",\r\n\t\t\t\t\theight: \"16px\",\r\n\t\t\t\t\tshadow: \"0px 0.5px 0px 0px rgba(0, 0, 0, 0.08), 0px 1px 1px 0px rgba(0, 0, 0, 0.14)\",\r\n\t\t\t\t},\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"{focus.ring.offset}\",\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tcolorScheme: {\r\n\t\t\t\tlight: {\r\n\t\t\t\t\thandle: {\r\n\t\t\t\t\t\tcontentBackground: \"{content.border.color}\",\r\n\t\t\t\t\t\trange: {\r\n\t\t\t\t\t\t\tbackground: \"{content.border.color}\",\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tdark: {\r\n\t\t\t\t\thandle: {\r\n\t\t\t\t\t\tcontentBackground: \"{content.border.color} \",\r\n\t\t\t\t\t},\r\n\t\t\t\t\trange: {\r\n\t\t\t\t\t\tbackground: \"{content.border.color}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttabs: {\r\n\t\t\troot: {\r\n\t\t\t\ttransitionDuration: \"{transition.duration}\",\r\n\t\t\t},\r\n\t\t\ttablist: {\r\n\t\t\t\tborderWidth: \"0 0 0 0\",\r\n\t\t\t\tbackground: \"var(--main-blue)\",\r\n\t\t\t\tborderColor: \"#fff\",\r\n\t\t\t},\r\n\t\t\ttab: {\r\n\t\t\t\tbackground: \"transparent\",\r\n\t\t\t\thoverBackground: \"transparent\",\r\n\t\t\t\tactiveBackground: \"#fff\",\r\n\t\t\t\tborderWidth: \"0 0 0 0\",\r\n\t\t\t\tborderColor: \"{content.border.color}\",\r\n\t\t\t\thoverBorderColor: \"{content.border.color}\",\r\n\t\t\t\tactiveBorderColor: \"#fff\",\r\n\t\t\t\tcolor: \"#fff\",\r\n\t\t\t\thoverColor: \"#d9d9d9\",\r\n\t\t\t\tactiveColor: \"var(--main-orange)\",\r\n\t\t\t\tpadding: \"1rem 1.125rem\",\r\n\t\t\t\tfontWeight: \"400\",\r\n\t\t\t\tmargin: \"0\",\r\n\t\t\t\tgap: \"0.5rem\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"-1px\",\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\ttabpanel: {\r\n\t\t\t\tbackground: \"{content.background}\",\r\n\t\t\t\tcolor: \"{content.color}\",\r\n\t\t\t\tpadding: \"2rem\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"{focus.ring.offset}\",\r\n\t\t\t\t\tshadow: \"inset {focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tnavButton: {\r\n\t\t\t\tbackground: \"{content.background}\",\r\n\t\t\t\tcolor: \"{text.muted.color}\",\r\n\t\t\t\thoverColor: \"{text.color}\",\r\n\t\t\t\twidth: \"2.5rem\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"-1px\",\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tactiveBar: {\r\n\t\t\t\theight: \"1px\",\r\n\t\t\t\tbottom: \"-1px\",\r\n\t\t\t\tbackground: \"{primary.color}\",\r\n\t\t\t},\r\n\t\t\tcolorScheme: {\r\n\t\t\t\tlight: {\r\n\t\t\t\t\tnavButton: {\r\n\t\t\t\t\t\tshadow: \"0px 0px 10px 50px rgba(255, 255, 255, 0.6)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tdark: {\r\n\t\t\t\t\tnavButton: {\r\n\t\t\t\t\t\tshadow: \"0px 0px 10px 50px rgba(255, 255, 255, 0.6)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttag: {\r\n\t\t\t// Pills\r\n\t\t\troot: {\r\n\t\t\t\tfontSize: \"0.875rem\",\r\n\t\t\t\tfontWeight: \"700\",\r\n\t\t\t\tpadding: \"0.25rem 0.5rem\",\r\n\t\t\t\tgap: \"0.25rem\",\r\n\t\t\t\tborderRadius: \"{content.border.radius}\",\r\n\t\t\t\troundedBorderRadius: \"{border.radius.xl}\",\r\n\t\t\t},\r\n\t\t\ticon: {\r\n\t\t\t\tsize: \"0.75rem\",\r\n\t\t\t},\r\n\t\t\tcolorScheme: {\r\n\t\t\t\tlight: {\r\n\t\t\t\t\tprimary: {\r\n\t\t\t\t\t\tbackground: \"{primary.100}\",\r\n\t\t\t\t\t\tcolor: \"{primary.700}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsecondary: {\r\n\t\t\t\t\t\tbackground: \"{surface.100}\",\r\n\t\t\t\t\t\tcolor: \"{surface.600}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsuccess: {\r\n\t\t\t\t\t\tbackground: \"{green.100}\",\r\n\t\t\t\t\t\tcolor: \"{green.700}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tinfo: {\r\n\t\t\t\t\t\tbackground: \"{sky.100}\",\r\n\t\t\t\t\t\tcolor: \"{sky.700}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\twarn: {\r\n\t\t\t\t\t\tbackground: \"{orange.100}\",\r\n\t\t\t\t\t\tcolor: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tdanger: {\r\n\t\t\t\t\t\tbackground: \"{red.100}\",\r\n\t\t\t\t\t\tcolor: \"{red.700}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontrast: {\r\n\t\t\t\t\t\tbackground: \"{surface.950}\",\r\n\t\t\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tdark: {\r\n\t\t\t\t\tprimary: {\r\n\t\t\t\t\t\tbackground: \"{primary.100}\",\r\n\t\t\t\t\t\tcolor: \"{primary.700}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsecondary: {\r\n\t\t\t\t\t\tbackground: \"{surface.100}\",\r\n\t\t\t\t\t\tcolor: \"{surface.600}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsuccess: {\r\n\t\t\t\t\t\tbackground: \"{green.100}\",\r\n\t\t\t\t\t\tcolor: \"{green.700}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tinfo: {\r\n\t\t\t\t\t\tbackground: \"{sky.100}\",\r\n\t\t\t\t\t\tcolor: \"{sky.700}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\twarn: {\r\n\t\t\t\t\t\tbackground: \"{orange.100}\",\r\n\t\t\t\t\t\tcolor: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tdanger: {\r\n\t\t\t\t\t\tbackground: \"{red.100}\",\r\n\t\t\t\t\t\tcolor: \"{red.700}\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontrast: {\r\n\t\t\t\t\t\tbackground: \"{surface.950}\",\r\n\t\t\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttoggleswitch: {\r\n\t\t\troot: {\r\n\t\t\t\twidth: \"2.9rem\",\r\n\t\t\t\theight: \"1.5rem\",\r\n\t\t\t\tborderRadius: \"3rem\",\r\n\t\t\t\tgap: \"0.25rem\",\r\n\t\t\t\tshadow: \"{form.field.shadow}\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"{focus.ring.offset}\",\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t\tborderWidth: \"1px\",\r\n\t\t\t\tborderColor: \"transparent\",\r\n\t\t\t\thoverBorderColor: \"transparent\",\r\n\t\t\t\tcheckedBorderColor: \"transparent\",\r\n\t\t\t\tcheckedHoverBorderColor: \"transparent\",\r\n\t\t\t\tinvalidBorderColor: \"{form.field.invalid.border.color}\",\r\n\t\t\t\ttransitionDuration: \"{form.field.transition.duration}\",\r\n\t\t\t\tslideDuration: \"0.2s\",\r\n\t\t\t},\r\n\t\t\thandle: {\r\n\t\t\t\tborderRadius: \"50%\",\r\n\t\t\t\tsize: \"1rem\",\r\n\t\t\t},\r\n\t\t\tcolorScheme: {\r\n\t\t\t\tlight: {\r\n\t\t\t\t\troot: {\r\n\t\t\t\t\t\tbackground: \"{gray.400}\",\r\n\t\t\t\t\t\tdisabledBackground: \"{gray.300}\",\r\n\t\t\t\t\t\thoverBackground: \"{gray.400}\",\r\n\t\t\t\t\t\tcheckedBackground: \"var(--main-orange)\",\r\n\t\t\t\t\t\tcheckedHoverBackground: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\thandle: {\r\n\t\t\t\t\t\tbackground: \"var(--main-light)\",\r\n\t\t\t\t\t\tdisabledBackground: \"{gray.400}\",\r\n\t\t\t\t\t\thoverBackground: \"var(--main-light)\",\r\n\t\t\t\t\t\tcheckedBackground: \"var(--main-light)\",\r\n\t\t\t\t\t\tcheckedHoverBackground: \"var(--main-light)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tdark: {\r\n\t\t\t\t\troot: {\r\n\t\t\t\t\t\tbackground: \"{gray.400}\",\r\n\t\t\t\t\t\tdisabledBackground: \"{gray.300}\",\r\n\t\t\t\t\t\thoverBackground: \"{gray.400}\",\r\n\t\t\t\t\t\tcheckedBackground: \"var(--main-orange)\",\r\n\t\t\t\t\t\tcheckedHoverBackground: \"var(--main-orange-dark)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\thandle: {\r\n\t\t\t\t\t\tbackground: \"var(--main-light)\",\r\n\t\t\t\t\t\tdisabledBackground: \"{gray.400}\",\r\n\t\t\t\t\t\thoverBackground: \"var(--main-light)\",\r\n\t\t\t\t\t\tcheckedBackground: \"var(--main-light)\",\r\n\t\t\t\t\t\tcheckedHoverBackground: \"var(--main-light)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttooltip: {\r\n\t\t\troot: {\r\n\t\t\t\tmaxWidth: \"60rem\",\r\n\t\t\t\tgutter: \"0.25rem\",\r\n\t\t\t\tshadow: \"{overlay.popover.shadow}\",\r\n\t\t\t\tpadding: \"0.5rem 0.75rem\",\r\n\t\t\t\tborderRadius: \"{overlay.popover.border.radius}\",\r\n\t\t\t},\r\n\t\t\tcolorScheme: {\r\n\t\t\t\tlight: {\r\n\t\t\t\t\troot: {\r\n\t\t\t\t\t\tbackground: \"var(--main-blue)\",\r\n\t\t\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\tdark: {\r\n\t\t\t\t\troot: {\r\n\t\t\t\t\t\tbackground: \"var(--main-blue)\",\r\n\t\t\t\t\t\tcolor: \"var(--main-light)\",\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\ttree: {\r\n\t\t\troot: {\r\n\t\t\t\tbackground: \"transparent\",\r\n\t\t\t\tcolor: \"{content.color}\",\r\n\t\t\t\tpadding: \"0\",\r\n\t\t\t\tgap: \"0.2rem\",\r\n\t\t\t\tindent: \"1rem\",\r\n\t\t\t\ttransitionDuration: \"{transition.duration}\",\r\n\t\t\t},\r\n\t\t\tnode: {\r\n\t\t\t\tpadding: \"0.25rem 0.5rem\",\r\n\t\t\t\tborderRadius: \"{content.border.radius}\",\r\n\t\t\t\thoverBackground: \"{content.hover.background}\",\r\n\t\t\t\tselectedBackground: \"{highlight.background}\",\r\n\t\t\t\tcolor: \"{text.color}\",\r\n\t\t\t\thoverColor: \"{text.hover.color}\",\r\n\t\t\t\tselectedColor: \"{highlight.color}\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"-1px\",\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t\tgap: \"0.25rem\",\r\n\t\t\t},\r\n\t\t\tnodeIcon: {\r\n\t\t\t\tcolor: \"{text.muted.color}\",\r\n\t\t\t\thoverColor: \"{text.hover.muted.color}\",\r\n\t\t\t\tselectedColor: \"{highlight.color}\",\r\n\t\t\t},\r\n\t\t\tnodeToggleButton: {\r\n\t\t\t\tborderRadius: \"0\",\r\n\t\t\t\tsize: \"1em\",\r\n\t\t\t\thoverBackground: \"{content.hover.background}\",\r\n\t\t\t\tselectedHoverBackground: \"{content.background}\",\r\n\t\t\t\tcolor: \"blue.700\",\r\n\t\t\t\thoverColor: \"{text.hover.muted.color}\",\r\n\t\t\t\tselectedHoverColor: \"{primary.color}\",\r\n\t\t\t\tfocusRing: {\r\n\t\t\t\t\twidth: \"{focus.ring.width}\",\r\n\t\t\t\t\tstyle: \"{focus.ring.style}\",\r\n\t\t\t\t\tcolor: \"{focus.ring.color}\",\r\n\t\t\t\t\toffset: \"{focus.ring.offset}\",\r\n\t\t\t\t\tshadow: \"{focus.ring.shadow}\",\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tloadingIcon: {\r\n\t\t\t\tsize: \"2rem\",\r\n\t\t\t},\r\n\t\t\tfilter: {\r\n\t\t\t\tmargin: \"0 0 0.5rem 0\",\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n});\r\n","//Pipes\r\nexport * from \"./lib/pipes/term.pipes\";\r\nexport * from \"./lib/pipes/amount.pipe\";\r\nexport * from \"./lib/pipes/truncate.pipe\";\r\n//Constants\r\nexport * from \"./lib/constants/cookieConfiguration.constants\";\r\nexport * from \"./lib/constants/color.constants\";\r\nexport * from \"./lib/constants/date-mode-options.constants\";\r\n//Interceptors\r\nexport * from \"./lib/interceptor/error.interceptor\";\r\nexport * from \"./lib/interceptor/refreshToken.interceptor\";\r\n//Enums\r\nexport * from \"./lib/enums/sort-order.enum\";\r\n//Guards\r\nexport * from \"./lib/guards/TermGuard\";\r\nexport * from \"./lib/guards/RouteGuard\";\r\n//Components\r\nexport * from \"./lib/components/spinner/spinner.component\";\r\nexport * from \"./lib/components/table/table.component\";\r\nexport * from \"./lib/components/table/column.component\";\r\nexport * from \"./lib/components/table/model/search.model\";\r\nexport * from \"./lib/components/table/model/sort.model\";\r\nexport * from \"./lib/components/tree-table/tree-table.component\";\r\nexport * from \"./lib/components/tree-table/column.component\";\r\nexport * from \"./lib/components/matrix-table/matrix-table.component\";\r\nexport * from \"./lib/components/matrix-table/column.component\";\r\nexport * from \"./lib/components/actions-menu/actions-menu.component\";\r\nexport * from \"./lib/components/actions-menu/action.directive\";\r\nexport * from \"./lib/components/filter-chips/filter-chips.component\";\r\nexport * from \"./lib/components/filters/filters.component\";\r\nexport * from \"./lib/components/search/search.component\";\r\nexport * from \"./lib/components/search/model/search.model\";\r\nexport * from \"./lib/components/paginator/paginator.component\";\r\nexport * from \"./lib/components/modal-dialog/modal-dialog.component\";\r\nexport * from \"./lib/components/button-split/button-split.component\";\r\nexport * from \"./lib/components/button-split/itemsplit.directive\";\r\nexport * from \"./lib/components/record-per-page/record-per-page.component\";\r\nexport * from \"./lib/components/record-per-page/model/properties.model\";\r\nexport * from \"./lib/components/sorting/sorting.component\";\r\nexport * from \"./lib/components/sorting/model/cascade-filter\";\r\nexport * from \"./lib/components/sorting/model/order.constants\";\r\nexport * from \"./lib/components/popover/popover.component\";\r\nexport * from \"./lib/components/popover/model/popover-information.model\";\r\nexport * from \"./lib/components/echart/echart.component\";\r\nexport * from \"./lib/components/template-menu/template-menu.component\";\r\nexport * from \"./lib/components/multi-select/multi-select.component\";\r\nexport * from \"./lib/components/skeleton/skeleton.component\";\r\nexport * from \"./lib/components/skeleton-table/skeleton-table.component\";\r\nexport * from \"./lib/components/skeleton-chart/skeleton-chart.component\";\r\nexport * from \"./lib/components/skeleton-chart/data.directive\";\r\nexport * from \"./lib/components/tree-table-fetch/tree-table-fetch.component\";\r\nexport * from \"./lib/components/tree-table-fetch/model/query.model\";\r\nexport * from \"./lib/components/table-fetch/table-fetch.component\";\r\nexport * from \"./lib/components/table-fetch/model/query.model\";\r\nexport * from \"./lib/components/titles/titles.component\";\r\n//Directives\r\nexport * from \"./lib/directives/filters/checkbox-filter.directive\";\r\nexport * from \"./lib/directives/filters/date-filter.directive\";\r\nexport * from \"./lib/directives/filters/select-detail-filter.directive\";\r\nexport * from \"./lib/directives/filters/select-filter.directive\";\r\nexport * from \"./lib/directives/filters/template.directive\";\r\nexport * from \"./lib/directives/filters/text-area-filter.directive\";\r\nexport * from \"./lib/directives/filters/text-filter.directive\";\r\nexport * from \"./lib/directives/filters/text-range-filter.directive\";\r\nexport * from \"./lib/directives/table/cell-checkbox.directive\";\r\n//Models\r\nexport * from \"./lib/model/filter.model\";\r\n//Services\r\nexport * from \"./lib/services/htmlToExcel.service\";\r\nexport * from \"./lib/services/shared.service\";\r\nexport * from \"./lib/services/config.service\";\r\nexport * from \"./lib/services/spinner.service\";\r\nexport * from \"./lib/services/sweet-alert.service\";\r\nexport * from \"./lib/services/globalTerm.service\";\r\nexport * from \"./lib/services/term.service\";\r\nexport * from \"./lib/services/globalFeatureFlag.service\";\r\nexport * from \"./lib/services/featureFlag.service\";\r\nexport * from \"./lib/services/language.service\";\r\nexport * from \"./lib/services/echart.service\";\r\nexport * from \"./lib/services/skeleton.service\";\r\nexport * from \"./lib/services/element.service\";\r\nexport * from \"./lib/services/compress.service\";\r\n//Funcions\r\nexport * from \"./lib/functions/compareByField\";\r\nexport * from \"./lib/functions/encryptRSA\";\r\nexport * from \"./lib/functions/inputValidation\";\r\nexport * from \"./lib/functions/decryptRSA\";\r\nexport * from \"./lib/functions/cookie\";\r\n//Themes\r\nexport * from \"./lib/primeThemes/Intelica.theme\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["sleep","i1.FeatureFlagService","i2.TermPipe","i1","i2","i3","i6","i1.TermPipe","i1.FilterTypeEnum","i4","i7","i8","i5","i1.TableComponent"],"mappings":"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"}