intelica-library-components 1.1.63 → 1.1.64
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-components.mjs","sources":["../../../projects/intelica-library-components/src/lib/functions/cookie.ts","../../../projects/intelica-library-components/src/lib/services/config.service.ts","../../../projects/intelica-library-components/src/lib/services/term.service.ts","../../../projects/intelica-library-components/src/lib/services/globalTerm.service.ts","../../../projects/intelica-library-components/src/lib/pipes/term.pipes.ts","../../../projects/intelica-library-components/src/lib/pipes/amount.pipe.ts","../../../projects/intelica-library-components/src/lib/pipes/truncate.pipe.ts","../../../projects/intelica-library-components/src/lib/constants/cookieConfiguration.constants.ts","../../../projects/intelica-library-components/src/lib/constants/color.constants.ts","../../../projects/intelica-library-components/src/lib/constants/date-mode-options.constants.ts","../../../projects/intelica-library-components/src/lib/services/featureFlag.service.ts","../../../projects/intelica-library-components/src/lib/services/globalFeatureFlag.service.ts","../../../projects/intelica-library-components/src/lib/services/sweet-alert.service.ts","../../../projects/intelica-library-components/src/lib/services/spinner.service.ts","../../../projects/intelica-library-components/src/lib/interceptor/error.interceptor.ts","../../../projects/intelica-library-components/src/lib/services/intelicaSession.service.ts","../../../projects/intelica-library-components/src/lib/interceptor/refreshToken.interceptor.ts","../../../projects/intelica-library-components/src/lib/interceptor/responseHeaders.interceptor.ts","../../../projects/intelica-library-components/src/lib/enums/sort-order.enum.ts","../../../projects/intelica-library-components/src/lib/enums/alert-type.enum.ts","../../../projects/intelica-library-components/src/lib/guards/TermGuard.ts","../../../projects/intelica-library-components/src/lib/guards/RouteGuard.ts","../../../projects/intelica-library-components/src/lib/guards/PageRootChildGuard.ts","../../../projects/intelica-library-components/src/lib/components/spinner/spinner.component.ts","../../../projects/intelica-library-components/src/lib/components/spinner/spinner.component.html","../../../projects/intelica-library-components/src/lib/pipes/formatCell.pipe.ts","../../../projects/intelica-library-components/src/lib/constants/format-date.constants.ts","../../../projects/intelica-library-components/src/lib/services/shared.service.ts","../../../projects/intelica-library-components/src/lib/components/table/column.component.ts","../../../projects/intelica-library-components/src/lib/components/table/table.component.ts","../../../projects/intelica-library-components/src/lib/components/table/table.component.html","../../../projects/intelica-library-components/src/lib/directives/positive-number.directive.ts","../../../projects/intelica-library-components/src/lib/components/paginator/paginator.component.ts","../../../projects/intelica-library-components/src/lib/components/paginator/paginator.component.html","../../../projects/intelica-library-components/src/lib/components/search/enums/search.enum.ts","../../../projects/intelica-library-components/src/lib/components/search/search.component.ts","../../../projects/intelica-library-components/src/lib/components/search/search.component.html","../../../projects/intelica-library-components/src/lib/components/tree-table/column.component.ts","../../../projects/intelica-library-components/src/lib/components/tree-table/tree-table.component.ts","../../../projects/intelica-library-components/src/lib/components/tree-table/tree-table.component.html","../../../projects/intelica-library-components/src/lib/components/matrix-table/column.component.ts","../../../projects/intelica-library-components/src/lib/components/matrix-table/matrix-table.component.ts","../../../projects/intelica-library-components/src/lib/components/matrix-table/matrix-table.component.html","../../../projects/intelica-library-components/src/lib/components/actions-menu/action.directive.ts","../../../projects/intelica-library-components/src/lib/components/actions-menu/actions-menu.component.ts","../../../projects/intelica-library-components/src/lib/components/actions-menu/actions-menu.component.html","../../../projects/intelica-library-components/src/lib/components/filter-chips/filter-chips.component.ts","../../../projects/intelica-library-components/src/lib/components/filter-chips/filter-chips.component.html","../../../projects/intelica-library-components/src/lib/enums/filter-type.enum.ts","../../../projects/intelica-library-components/src/lib/directives/filters/filter.directive.ts","../../../projects/intelica-library-components/src/lib/components/multi-select/multi-select.component.ts","../../../projects/intelica-library-components/src/lib/components/multi-select/multi-select.component.html","../../../projects/intelica-library-components/src/lib/components/filters/filters.component.ts","../../../projects/intelica-library-components/src/lib/components/filters/filters.component.html","../../../projects/intelica-library-components/src/lib/components/modal-dialog/modal-dialog.component.ts","../../../projects/intelica-library-components/src/lib/components/modal-dialog/modal-dialog.component.html","../../../projects/intelica-library-components/src/lib/components/button-split/itemsplit.directive.ts","../../../projects/intelica-library-components/src/lib/components/button-split/button-split.component.ts","../../../projects/intelica-library-components/src/lib/components/button-split/button-split.component.html","../../../projects/intelica-library-components/src/lib/components/record-per-page/record-per-page.component.ts","../../../projects/intelica-library-components/src/lib/components/record-per-page/record-per-page.component.html","../../../projects/intelica-library-components/src/lib/components/sorting/model/order.constants.ts","../../../projects/intelica-library-components/src/lib/components/sorting/sorting.component.ts","../../../projects/intelica-library-components/src/lib/components/sorting/sorting.component.html","../../../projects/intelica-library-components/src/lib/components/popover/popover.component.ts","../../../projects/intelica-library-components/src/lib/components/popover/popover.component.html","../../../projects/intelica-library-components/src/lib/components/echart/echart.component.ts","../../../projects/intelica-library-components/src/lib/components/echart/echart.component.html","../../../projects/intelica-library-components/src/lib/components/template-menu/template-menu.component.ts","../../../projects/intelica-library-components/src/lib/components/template-menu/template-menu.component.html","../../../projects/intelica-library-components/src/lib/components/datepicker/datepicker-button-types.constants.ts","../../../projects/intelica-library-components/src/lib/components/datepicker/datepicker.component.ts","../../../projects/intelica-library-components/src/lib/components/datepicker/datepicker.component.html","../../../projects/intelica-library-components/src/lib/services/skeleton.service.ts","../../../projects/intelica-library-components/src/lib/components/skeleton/skeleton.component.ts","../../../projects/intelica-library-components/src/lib/components/skeleton/skeleton.component.html","../../../projects/intelica-library-components/src/lib/components/skeleton-table/skeleton-table.component.ts","../../../projects/intelica-library-components/src/lib/components/skeleton-table/skeleton-table.component.html","../../../projects/intelica-library-components/src/lib/components/skeleton-chart/data.directive.ts","../../../projects/intelica-library-components/src/lib/components/skeleton-chart/skeleton-chart.component.ts","../../../projects/intelica-library-components/src/lib/components/skeleton-chart/skeleton-chart.component.html","../../../projects/intelica-library-components/src/lib/components/table-fetch/table-fetch.component.ts","../../../projects/intelica-library-components/src/lib/components/table-fetch/table-fetch.component.html","../../../projects/intelica-library-components/src/lib/components/intelica-alert/intelica-alert.component.ts","../../../projects/intelica-library-components/src/lib/components/intelica-alert/intelica-alert.component.html","../../../projects/intelica-library-components/src/lib/services/globalFavorite.service.ts","../../../projects/intelica-library-components/src/lib/components/add-favorites/add-favorites.service.ts","../../../projects/intelica-library-components/src/lib/components/add-favorites/add-favorites.component.ts","../../../projects/intelica-library-components/src/lib/components/add-favorites/add-favorites.component.html","../../../projects/intelica-library-components/src/lib/components/context-selector/context-selector.component.ts","../../../projects/intelica-library-components/src/lib/components/context-selector/context-selector.component.html","../../../projects/intelica-library-components/src/lib/directives/filters/checkbox-filter.directive.ts","../../../projects/intelica-library-components/src/lib/directives/filters/date-filter.directive.ts","../../../projects/intelica-library-components/src/lib/directives/filters/select-detail-filter.directive.ts","../../../projects/intelica-library-components/src/lib/directives/filters/select-filter.directive.ts","../../../projects/intelica-library-components/src/lib/directives/filters/template.directive.ts","../../../projects/intelica-library-components/src/lib/directives/filters/text-area-filter.directive.ts","../../../projects/intelica-library-components/src/lib/directives/filters/text-filter.directive.ts","../../../projects/intelica-library-components/src/lib/directives/filters/text-range-filter.directive.ts","../../../projects/intelica-library-components/src/lib/directives/table/cell-checkbox.directive.ts","../../../projects/intelica-library-components/src/lib/model/alert.model.ts","../../../projects/intelica-library-components/src/lib/model/pageInformation.model.ts","../../../projects/intelica-library-components/src/lib/services/htmlToExcel.service.ts","../../../projects/intelica-library-components/src/lib/services/alert.service.ts","../../../projects/intelica-library-components/src/lib/services/language.service.ts","../../../projects/intelica-library-components/src/lib/functions/echart.util.ts","../../../projects/intelica-library-components/src/lib/services/echart.service.ts","../../../projects/intelica-library-components/src/lib/services/authentication.service.ts","../../../projects/intelica-library-components/src/lib/functions/decryptRSA.ts","../../../projects/intelica-library-components/src/lib/services/profile.service.ts","../../../projects/intelica-library-components/src/lib/services/pageElement.service.ts","../../../projects/intelica-library-components/src/lib/services/element.service.ts","../../../projects/intelica-library-components/src/lib/services/globalMenu.service.ts","../../../projects/intelica-library-components/src/lib/services/request-cache.service.ts","../../../projects/intelica-library-components/src/lib/functions/compareByField.ts","../../../projects/intelica-library-components/src/lib/functions/encryptRSA.ts","../../../projects/intelica-library-components/src/lib/functions/inputValidation.ts","../../../projects/intelica-library-components/src/lib/primeThemes/Intelica.theme.ts","../../../projects/intelica-library-components/src/lib/notification/dto/recipient-dispatch-error.dto.ts","../../../projects/intelica-library-components/src/lib/notification/notification.service.ts","../../../projects/intelica-library-components/src/lib/notification/notification-job.service.ts","../../../projects/intelica-library-components/src/lib/notification/notification-signalr.service.ts","../../../projects/intelica-library-components/src/lib/notification/notificacion-orchestrator.service.ts","../../../projects/intelica-library-components/src/public-api.ts","../../../projects/intelica-library-components/src/intelica-library-components.ts"],"sourcesContent":["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 { 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 { setCookie } from \"typescript-cookie\";\r\nimport { TermPageResponse } from \"../dto/term\";\r\nimport { GetCookieAttributes } from \"../functions/cookie\";\r\nimport { ConfigService } from \"./config.service\";\r\nimport { TermService } from \"./term.service\";\r\n@Injectable({ providedIn: \"root\" })\r\nexport class GlobalTermService {\r\n\tterms: TermPageResponse[] = [];\r\n\tpublic languageCode: string = \"\";\r\n\tTermsReady = signal<boolean>(false);\r\n\tPageRoot: string = \"\";\r\n\tprivate readonly termService = inject(TermService);\r\n\tprivate readonly configService = inject(ConfigService);\r\n\tpublic readonly languageEvent = \"languagechange\";\r\n\tpublic readonly languageCookie = \"language\";\r\n\r\n\tprivate readonly onBrowserLanguageChange = (): void => {\r\n\t\tconst languageCode = this.getLanguageFromBrowser();\r\n\t\tsetCookie(this.languageCookie, languageCode, GetCookieAttributes(this.configService.environment?.environment ?? \"\"));\r\n\t\tthis.refreshTerms(languageCode);\r\n\t};\r\n\r\n\tconstructor() {\r\n\t\twindow.addEventListener(this.languageEvent, this.onBrowserLanguageChange);\r\n\t}\r\n\r\n\tInitialize(pageRoot: string): void {\r\n\t\tthis.PageRoot = pageRoot;\r\n\t\tconst languageCode = this.getLanguageFromBrowser();\r\n\t\tsetCookie(this.languageCookie, languageCode, GetCookieAttributes(this.configService.environment?.environment ?? \"\"));\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.refreshTerms(languageCode);\r\n\t}\r\n\r\n\tprivate refreshTerms(languageCode: string): void {\r\n\t\tif (this.PageRoot == \"\") {\r\n\t\t\tthis.TermsReady.set(true);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.TermsReady.set(false);\r\n\t\tthis.termService.GetTerms(languageCode, this.PageRoot).subscribe(response => {\r\n\t\t\tthis.languageCode = languageCode;\r\n\t\t\tthis.terms = response;\r\n\t\t\tthis.TermsReady.set(true);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate getLanguageFromBrowser(): string {\r\n\t\tconst browserLanguage = (navigator.language || \"en\").toLowerCase();\r\n\t\tif (browserLanguage.startsWith(\"es\")) return \"ES\";\r\n\t\tif (browserLanguage.startsWith(\"en\")) return \"EN\";\r\n\t\treturn \"EN\";\r\n\t}\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\tprivate readonly globalTermService = inject(GlobalTermService);\r\n\ttransform(termName: string, language: string, mode: number = 1): string {\r\n\t\tlet term = this.globalTermService.terms.find(x => x.termName == termName)?.termValue ?? \"-\";\r\n\t\tif (mode == 2) term = term.substring(0, 1);\r\n\t\tif (mode == 3) term = term.toUpperCase();\r\n\t\treturn term;\r\n\t}\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, validNegative: boolean = false): string {\r\n\t\tif (value === null || value === undefined || value == 0) {\r\n\t\t\treturn \"-\";\r\n\t\t}\r\n\r\n\t\tconst numericValue = typeof value === \"string\" ? Number.parseFloat(value) : value;\r\n\r\n\t\tif (Number.isNaN(numericValue)) {\r\n\t\t\treturn \"-\";\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\tif (validNegative) {\r\n\t\t\tif (numericValue < 0) {\r\n\t\t\t\tformattedValue = `(${formattedValue})`;\r\n\t\t\t}\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 (absValue / limit).toFixed(decimalPlaces) + suffix;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn absValue.toFixed(decimalPlaces);\r\n\t}\r\n\r\n\tprivate formatWithThousandSeparators(value: number, decimalPlaces: number): string {\r\n\t\tconst absValue = Math.abs(value);\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(absValue);\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\tskyBlue: \"#7490E2\",\r\n\tblue: \"#17375E\",\r\n\tgray: \"#BABECF\",\r\n\tgray3: \"#4E546F\",\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\", error.status);\r\n\t\tspinnerService.hide();\r\n\t\tconst authenticationLocation = `${configService.environment?.authenticationWeb}?callback=${window.location.href}&clientID=${configService.environment?.clientID}`;\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\telse if (error.status == 405) sweetAlertService.messageBox(\"Los parametros enviados al servicio no coinciden.\");\r\n\t\telse if (error.status == 404) sweetAlertService.messageBox(\"Recurso no encontrado.\");\r\n\t\telse if (error.status == 401) {\r\n\t\t\tsweetAlertService.messageBox(error.error.Error);\r\n\t\t\twindow.location.href = authenticationLocation;\r\n\t\t} else if (error.status == 403) {\r\n\t\t\tsweetAlertService.messageBox(error.error.Error);\r\n\t\t\twindow.location.href = window.location.origin;\r\n\t\t} else sweetAlertService.messageBox(error.error.message);\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 { inject, Injectable } from \"@angular/core\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { ConfigService } from \"./config.service\";\r\n\r\nexport interface ItlSessionEnvelope<T> {\r\n\tsessionId: string;\r\n\tupdatedAt: number;\r\n\tvalue: T;\r\n}\r\n\r\nexport type ItlSessionScope = \"global\" | \"user\" | \"profile\" | \"user-profile\";\r\n\r\n@Injectable({\r\n\tprovidedIn: \"root\",\r\n})\r\nexport class IntelicaSessionService {\r\n\tprivate readonly configService = inject(ConfigService);\r\n\tprivate readonly prefix = \"itl.session.\";\r\n\tprivate readonly sessionIdKey = \"itl.session.__sessionId\";\r\n\tprivate pageRoot: string = \"\";\r\n\tprivate sessionId: string | null = null;\r\n\r\n\tconstructor() {\r\n\t\tthis.ensureSessionId();\r\n\t\tthis.cleanupForeignSessions();\r\n\t}\r\n\r\n\t/**\r\n\t * Actualiza el pageRoot actual, es necesario matricularlo en el app.component\r\n\t */\r\n\tsetPageRoot(pageRoot: string) {\r\n\t\tthis.pageRoot = pageRoot;\r\n\t}\r\n\r\n\t/**\r\n\t * Retorna la key de usuario con scope si necesitas reutilizarla manualmente.\r\n\t */\r\n\tgetUserKey(key: string): string {\r\n\t\treturn this.buildScopedKey(key, \"user\");\r\n\t}\r\n\r\n\tprivate ensureSessionId(): string {\r\n\t\tif (this.sessionId) return this.sessionId;\r\n\r\n\t\tconst stored = localStorage.getItem(this.sessionIdKey);\r\n\t\tif (stored) {\r\n\t\t\tthis.sessionId = stored;\r\n\t\t\treturn stored;\r\n\t\t}\r\n\r\n\t\tconst id = this.createGuid();\r\n\t\tthis.sessionId = id;\r\n\t\tlocalStorage.setItem(this.sessionIdKey, id);\r\n\t\treturn id;\r\n\t}\r\n\r\n\tprivate createGuid(): string {\r\n\t\treturn Guid.create().toString();\r\n\t}\r\n\r\n\tprivate buildScopedKey(key: string, scope: ItlSessionScope = \"user-profile\"): string {\r\n\t\tconst parts: string[] = [];\r\n\t\tif (this.pageRoot) parts.push(this.pageRoot);\r\n\t\tparts.push(key);\r\n\r\n\t\tconst userId = this.configService.SessionInformation?.businessUserID;\r\n\t\tconst profileId = this.configService.SessionInformation?.businessUserProfile;\r\n\r\n\t\tif (scope === \"user\" || scope === \"user-profile\") {\r\n\t\t\tif (userId) parts.push(`user:${userId}`);\r\n\t\t}\r\n\t\tif (scope === \"profile\" || scope === \"user-profile\") {\r\n\t\t\tif (profileId) parts.push(`profile:${profileId}`);\r\n\t\t}\r\n\r\n\t\treturn parts.join(\"|\");\r\n\t}\r\n\r\n\t/**\r\n\t * Guarda un valor serializable en localStorage con scope por pageRoot\r\n\t */\r\n\tset<T>(key: string, value: T): void;\r\n\t/**\r\n\t * Guarda un valor serializable en localStorage usando el scope indicado.\r\n\t */\r\n\tset<T>(key: string, value: T, scope: ItlSessionScope): void;\r\n\tset<T>(key: string, value: T, scope: ItlSessionScope = \"user-profile\"): void {\r\n\t\tthis.ensureSessionId();\r\n\t\tconst storageKey = this.buildScopedKey(key, scope);\r\n\t\tconst envelope: ItlSessionEnvelope<T> = {\r\n\t\t\tsessionId: this.sessionId as string,\r\n\t\t\tupdatedAt: Date.now(),\r\n\t\t\tvalue,\r\n\t\t};\r\n\t\tlocalStorage.setItem(this.prefix + storageKey, JSON.stringify(envelope));\r\n\t}\r\n\r\n\t/**\r\n\t * Obtiene un valor desde localStorage usando la misma composición de key\r\n\t * (pageRoot + usuario + perfil). Retorna null si no existe o la sesión no coincide.\r\n\t */\r\n\tget<T>(key: string): T | null;\r\n\t/**\r\n\t * Obtiene un valor desde localStorage usando el scope indicado.\r\n\t */\r\n\tget<T>(key: string, scope: ItlSessionScope): T | null;\r\n\tget<T>(key: string, scope: ItlSessionScope = \"user-profile\"): T | null {\r\n\t\tconst storageKey = this.buildScopedKey(key, scope);\r\n\t\tconst raw = localStorage.getItem(this.prefix + storageKey);\r\n\t\tif (!raw) return null;\r\n\r\n\t\ttry {\r\n\t\t\tconst env = JSON.parse(raw) as ItlSessionEnvelope<T>;\r\n\t\t\tif (!this.sessionId || env.sessionId !== this.sessionId) return null;\r\n\t\t\treturn env.value;\r\n\t\t} catch {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Limpia todo lo que haya en localStorage para este servicio (todas las sesiones).\r\n\t * Úsalo al iniciar sesión/cerrar sesión para evitar acumulación.\r\n\t */\r\n\tclearAll(): void {\r\n\t\tObject.keys(localStorage)\r\n\t\t\t.filter(k => k.startsWith(this.prefix))\r\n\t\t\t.forEach(k => localStorage.removeItem(k));\r\n\t\tlocalStorage.removeItem(this.sessionIdKey);\r\n\t\tthis.sessionId = null;\r\n\t}\r\n\r\n\t/**\r\n\t * Limpia los valores de la sesión actual para el pageRoot vigente.\r\n\t */\r\n\tclearCurrentPageRoot(): void {\r\n\t\tif (!this.pageRoot) return;\r\n\t\tthis.clearPageRoot(this.pageRoot);\r\n\t}\r\n\r\n\tprivate clearPageRoot(pageRoot: string): void {\r\n\t\tconst prefix = `${this.prefix}${pageRoot}|`;\r\n\t\tObject.keys(localStorage)\r\n\t\t\t.filter(k => k.startsWith(prefix))\r\n\t\t\t.forEach(k => {\r\n\t\t\t\tconst raw = localStorage.getItem(k);\r\n\t\t\t\tif (!raw) return;\r\n\t\t\t\tconst env = this.tryParseEnvelope(raw);\r\n\t\t\t\tif (!env || env.sessionId !== this.sessionId) return;\r\n\t\t\t\tlocalStorage.removeItem(k);\r\n\t\t\t});\r\n\t}\r\n\r\n\tprivate cleanupForeignSessions(): void {\r\n\t\tif (!this.sessionId) return;\r\n\t\tObject.keys(localStorage)\r\n\t\t\t.filter(k => k.startsWith(this.prefix))\r\n\t\t\t.forEach(k => {\r\n\t\t\t\tconst raw = localStorage.getItem(k);\r\n\t\t\t\tif (!raw) return;\r\n\t\t\t\tconst env = this.tryParseEnvelope(raw);\r\n\t\t\t\tif (!env) return;\r\n\t\t\t\tif (env.sessionId !== this.sessionId) {\r\n\t\t\t\t\tlocalStorage.removeItem(k);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\tprivate tryParseEnvelope(raw: string): ItlSessionEnvelope<unknown> | null {\r\n\t\ttry {\r\n\t\t\treturn JSON.parse(raw) as ItlSessionEnvelope<unknown>;\r\n\t\t} catch {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n}\r\n","import { HttpClient, HttpInterceptorFn } from \"@angular/common/http\";\r\nimport { inject } from \"@angular/core\";\r\nimport { from, switchMap } from \"rxjs\";\r\nimport { Cookies, getCookie, setCookie } from \"typescript-cookie\";\r\nimport { ValidateTokenQuery, ValidateTokenResponse } from \"../dto/authentication\";\r\nimport { GetCookieAttributes } from \"../functions/cookie\";\r\nimport { ConfigService } from \"../services/config.service\";\r\nimport { GlobalFeatureFlagService } from \"../services/globalFeatureFlag.service\";\r\nimport { IntelicaSessionService } from \"../services/intelicaSession.service\";\r\nexport const RefreshTokenInterceptor: 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 configService: ConfigService = inject(ConfigService);\r\n\tconst httpClient = inject(HttpClient);\r\n\tconst commonFeatureFlagService = inject(GlobalFeatureFlagService);\r\n\tconst intelicaSessionService = inject(IntelicaSessionService);\r\n\tconst cookieAttributesGeneral = GetCookieAttributes(configService.environment?.environment ?? \"\");\r\n\tlet _request = req.clone();\r\n\tlet authenticationLocation = `${configService.environment?.authenticationWeb}?callback=${window.location.href}&clientID=${configService.environment?.clientID}`;\r\n\tlet path = `${configService.environment?.authenticationPath ?? \"\"}/Authenticate/auth/token/validate`;\r\n\tvar authenticationClientID = configService.environment?.clientID ?? \"\";\r\n\tlet validateTokenQuery: ValidateTokenQuery = {\r\n\t\ttoken: getCookie(\"token\") ?? \"\",\r\n\t\trefreshToken: getCookie(\"refreshToken\") ?? \"\",\r\n\t\tip: req.url,\r\n\t\tclientID: configService.environment?.clientID ?? \"\",\r\n\t\tpageRoot: commonFeatureFlagService.GetPageRoot(),\r\n\t\tcontroller: \"\",\r\n\t\thttpVerb: \"GET\",\r\n\t\tbusinessUserClientGroupID: getCookie(\"businessUserClientGroupID\") ?? \"\",\r\n\t\taccess: authenticationClientID == \"\" ? \"\" : getCookie(authenticationClientID) ?? \"\",\r\n\t};\r\n\tif (!req.url.includes(\"ValidateToken\") && !req.url.includes(\"environment.json\") && !req.url.includes(\"auth/token/validate\"))\r\n\t\treturn from(httpClient.post<ValidateTokenResponse>(path, validateTokenQuery)).pipe(\r\n\t\t\tswitchMap((response: ValidateTokenResponse) => {\r\n\t\t\t\tif (response.expired) {\r\n\t\t\t\t\tintelicaSessionService.clearAll();\r\n\t\t\t\t\tCookies.remove(\"token\", cookieAttributesGeneral);\r\n\t\t\t\t\tCookies.remove(\"refreshToken\", cookieAttributesGeneral);\r\n\t\t\t\t\tCookies.remove(\"data\", cookieAttributesGeneral);\r\n\t\t\t\t\tCookies.remove(\"businessUserClientGroupID\", cookieAttributesGeneral);\r\n\t\t\t\t\tCookies.remove(\"defaultClientID\", cookieAttributesGeneral);\r\n\t\t\t\t\tCookies.remove(\"defaultClientGroupID\", cookieAttributesGeneral);\r\n\t\t\t\t\tCookies.remove(authenticationClientID, cookieAttributesGeneral);\r\n\t\t\t\t\twindow.location.href = authenticationLocation;\r\n\t\t\t\t\treturn next(_request);\r\n\t\t\t\t}\r\n\t\t\t\tif (response.unauthorized) {\r\n\t\t\t\t\twindow.location.href = window.location.origin;\r\n\t\t\t\t}\r\n\t\t\t\tif (response.newToken != \"\") setCookie(\"token\", response.newToken, cookieAttributesGeneral);\r\n\t\t\t\treturn next(_request);\r\n\t\t\t})\r\n\t\t);\r\n\telse return next(_request);\r\n};\r\n","import { HttpInterceptorFn, HttpResponse } from \"@angular/common/http\";\r\nimport { tap } from \"rxjs/operators\";\r\nimport { setCookie } from \"typescript-cookie\";\r\nimport { CookieAttributesGeneral } from \"../constants/cookieConfiguration.constants\";\r\n\r\nexport const ResponseHeadersInterceptor: HttpInterceptorFn = (req, next) => {\r\n\treturn next(req).pipe(\r\n\t\ttap(event => {\r\n\t\t\tif (event instanceof HttpResponse) {\r\n\t\t\t\tconst headers = event.headers;\r\n\t\t\t\tconst newToken = headers.get(\"TokenNew\");\r\n\t\t\t\tif (newToken != null && newToken != \"\") setCookie(\"token\", newToken, CookieAttributesGeneral);\r\n\t\t\t}\r\n\t\t})\r\n\t);\r\n};\r\n","export enum TableSortOrder {\r\n Asc = 1,\r\n Desc = -1,\r\n}\r\n","/**\r\n * Enum representing the different types of alerts available in the system.\r\n * Each type corresponds to a specific visual style and semantic meaning.\r\n */\r\nexport enum AlertType {\r\n\t/** Warning alert - Yellow icon and title, used for cautionary messages */\r\n\tWARNING = \"warning\",\r\n\t/** Success alert - Green icon and title, used for successful operations */\r\n\tSUCCESS = \"success\",\r\n\t/** Error alert - Red icon and title, used for error messages */\r\n\tERROR = \"error\",\r\n}\r\n\r\n/**\r\n * Enum representing the button configuration modes for alerts.\r\n * Determines which buttons are displayed in the alert dialog.\r\n */\r\nexport enum AlertButtonMode {\r\n\t/** Only shows a single OK/Confirm button */\r\n\tOK_ONLY = \"ok_only\",\r\n\t/** Shows both Confirm and Cancel buttons */\r\n\tCONFIRM_CANCEL = \"confirm_cancel\",\r\n\t/** Shows only a Confirm button (without cancel) */\r\n\tCONFIRM_ONLY = \"confirm_only\",\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\nimport { GetCookieAttributes } from \"../functions/cookie\";\r\nimport { ValidateTokenQuery, ValidateTokenResponse } from \"../dto/authentication\";\r\nimport { getCookie, Cookies, setCookie } from \"typescript-cookie\";\r\nimport { SpinnerService } from \"../services/spinner.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\tprivate readonly SpinnerService = inject(SpinnerService);\r\n\tconstructor() {}\r\n\tasync canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n\t\tthis.ChangeRoute(next.data[\"pageRoot\"]);\r\n\t\tthis.ValidateToken(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\tValidateToken(pageRoot: string) {\r\n\t\tconst cookieAttributesGeneral = GetCookieAttributes(this.ConfigService.environment?.environment ?? \"\");\r\n\t\tconst authenticationLocation = `${this.ConfigService.environment?.authenticationWeb}?callback=${window.location.href}&clientID=${this.ConfigService.environment?.clientID}`;\r\n\t\tconst path = `${this.ConfigService.environment?.authenticationPath ?? \"\"}/Authenticate/ValidateToken`;\r\n\t\tconst authenticationClientID = this.ConfigService.environment?.clientID ?? \"\";\r\n\t\tconst validateTokenQuery: ValidateTokenQuery = {\r\n\t\t\ttoken: getCookie(\"token\") ?? \"\",\r\n\t\t\trefreshToken: getCookie(\"refreshToken\") ?? \"\",\r\n\t\t\tip: \"\",\r\n\t\t\tclientID: this.ConfigService.environment?.clientID ?? \"\",\r\n\t\t\tpageRoot,\r\n\t\t\tcontroller: \"\",\r\n\t\t\thttpVerb: \"GET\",\r\n\t\t\tbusinessUserClientGroupID: getCookie(\"businessUserClientGroupID\") ?? \"\",\r\n\t\t\taccess: authenticationClientID == \"\" ? \"\" : getCookie(authenticationClientID) ?? \"\",\r\n\t\t};\r\n\t\tthis.SpinnerService.show();\r\n\t\tthis.HttpClient.post<ValidateTokenResponse>(path, validateTokenQuery).subscribe(response => {\r\n\t\t\tif (response.expired) {\r\n\t\t\t\tObject.keys(Cookies.get() ?? {}).forEach(cookieName => {\r\n\t\t\t\t\tCookies.remove(cookieName, GetCookieAttributes(this.ConfigService.environment?.environment ?? \"\"));\r\n\t\t\t\t});\r\n\t\t\t\twindow.location.href = authenticationLocation;\r\n\t\t\t\tthis.SpinnerService.hide();\r\n\t\t\t\treturn false;\r\n\t\t\t} else if (response.unauthorized) {\r\n\t\t\t\twindow.location.href = window.location.origin;\r\n\t\t\t\tthis.SpinnerService.hide();\r\n\t\t\t\treturn false;\r\n\t\t\t} else if (response.newToken != \"\") setCookie(\"token\", response.newToken, cookieAttributesGeneral);\r\n\t\t\tthis.SpinnerService.hide();\r\n\t\t\treturn true;\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 { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, CanActivateChild, RouterStateSnapshot } from \"@angular/router\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class PageRootChildGuard implements CanActivateChild {\r\n\tcanActivateChild(child: ActivatedRouteSnapshot, parent: RouterStateSnapshot): boolean {\r\n\t\tconst parentData = child.parent?.data;\r\n\t\tif (parentData?.[\"pageRoot\"]) {\r\n\t\t\tchild.data = {\r\n\t\t\t\t...child.data,\r\n\t\t\t\tpageRoot: parentData[\"pageRoot\"],\r\n\t\t\t};\r\n\t\t}\r\n\t\treturn true;\r\n\t}\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","<div class=\"ptLoading\">\r\n\t<span class=\"ptLoading__svg\">\r\n\t\t@if (isLoading()) {\r\n\t\t\t<svg\r\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t\t\txmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n\t\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\r\n\t\t\t\twidth=\"540\"\r\n\t\t\t\theight=\"300\"\r\n\t\t\t\tviewBox=\"0 0 540 300\"\r\n\t\t\t\tstyle=\"width: 100%; height: 100%\"\r\n\t\t\t>\r\n\t\t\t\t<defs>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_12_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"1\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.04;1\"\r\n\t\t\t\t\t\tvalues=\"1;0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0.167 0.167 0.667 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateMotion\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_12_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.04;1\"\r\n\t\t\t\t\t\tpath=\"M173.5 300 C173.5,300 81.5,300 81.5,300 C81.5,300 81.5,300 81.5,300 \"\r\n\t\t\t\t\t\tkeyPoints=\"0;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.167 0.167 0 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_12_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"0.89062 0.89062\"\r\n\t\t\t\t\t\tto=\"0.89062 0.89062\"\r\n\t\t\t\t\t\ttype=\"scale\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"0.89062 0.89062;0.89062 0.89062\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_12_G_M\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"1\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.2333333;0.2333333;1\"\r\n\t\t\t\t\t\tvalues=\"1;1;0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 0 0;0 0 0 0;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateMotion\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_11_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.0733333;0.1066667;0.1333333;0.16;0.1866667;0.2;1\"\r\n\t\t\t\t\t\tpath=\"M300 300 C300,300 300,172 300,172 C300,172 300,347 300,347 C300,347 300,287 300,287 C300,287 300,306.5 300,306.5 C300,306.5 300,301.5 300,301.5 C300,301.5 300,300 300,300 C300,300 300,300 300,300 \"\r\n\t\t\t\t\t\tkeyPoints=\"0;0.33;0.78;0.93;0.98;1;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.333 0 0 1;0.167 0.167 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_11_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\tto=\"3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\ttype=\"scale\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"3.3000000000000003 3.3000000000000003;3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_11_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"-14.5 -14.5\"\r\n\t\t\t\t\t\tto=\"-14.5 -14.5\"\r\n\t\t\t\t\t\ttype=\"translate\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"-14.5 -14.5;-14.5 -14.5\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_11_G_M\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"1\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.2;0.2;1\"\r\n\t\t\t\t\t\tvalues=\"1;1;0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 0 0;0 0 0 0;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateMotion\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_10_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.2;0.2733333;0.3066667;0.3333333;0.36;0.3866667;0.4;1\"\r\n\t\t\t\t\t\tpath=\"M300 300 C300,300 300,300 300,300 C300,300 300,172 300,172 C300,172 300,347 300,347 C300,347 300,287 300,287 C300,287 300,306.5 300,306.5 C300,306.5 300,301.5 300,301.5 C300,301.5 300,300 300,300 C300,300 300,300 300,300 \"\r\n\t\t\t\t\t\tkeyPoints=\"0;0;0.33;0.78;0.93;0.98;1;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.333 0 0 1;0.333 0 0 1;0.167 0.167 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_10_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\tto=\"3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\ttype=\"scale\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"3.3000000000000003 3.3000000000000003;3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_10_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"-14.5 -14.5\"\r\n\t\t\t\t\t\tto=\"-14.5 -14.5\"\r\n\t\t\t\t\t\ttype=\"translate\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"-14.5 -14.5;-14.5 -14.5\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_10_G_M\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.2;0.2000007;0.4;0.4;1\"\r\n\t\t\t\t\t\tvalues=\"0;0;1;1;0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateMotion\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_9_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.4;0.4733333;0.5066667;0.5333333;0.56;0.5866667;0.6;1\"\r\n\t\t\t\t\t\tpath=\"M300 300 C300,300 300,300 300,300 C300,300 300,172 300,172 C300,172 300,347 300,347 C300,347 300,287 300,287 C300,287 300,306.5 300,306.5 C300,306.5 300,301.5 300,301.5 C300,301.5 300,300 300,300 C300,300 300,300 300,300 \"\r\n\t\t\t\t\t\tkeyPoints=\"0;0;0.33;0.78;0.93;0.98;1;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.333 0 0 1;0.333 0 0 1;0.167 0.167 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_9_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\tto=\"3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\ttype=\"scale\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"3.3000000000000003 3.3000000000000003;3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_9_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"-14.5 -14.5\"\r\n\t\t\t\t\t\tto=\"-14.5 -14.5\"\r\n\t\t\t\t\t\ttype=\"translate\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"-14.5 -14.5;-14.5 -14.5\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_9_G_M\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.4;0.4000007;0.6;0.6;1\"\r\n\t\t\t\t\t\tvalues=\"0;0;1;1;0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateMotion\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_8_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.6;0.6733333;0.7066667;0.7333333;0.76;0.7866667;0.8;1\"\r\n\t\t\t\t\t\tpath=\"M300 300 C300,300 300,300 300,300 C300,300 300,172 300,172 C300,172 300,347 300,347 C300,347 300,287 300,287 C300,287 300,306.5 300,306.5 C300,306.5 300,301.5 300,301.5 C300,301.5 300,300 300,300 C300,300 300,300 300,300 \"\r\n\t\t\t\t\t\tkeyPoints=\"0;0;0.33;0.78;0.93;0.98;1;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.333 0 0 1;0.333 0 0 1;0.167 0.167 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_8_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\tto=\"3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\ttype=\"scale\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"3.3000000000000003 3.3000000000000003;3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_8_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"-14.5 -14.5\"\r\n\t\t\t\t\t\tto=\"-14.5 -14.5\"\r\n\t\t\t\t\t\ttype=\"translate\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"-14.5 -14.5;-14.5 -14.5\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_8_G_M\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.6;0.6000007;0.8;0.8;1\"\r\n\t\t\t\t\t\tvalues=\"0;0;1;1;0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateMotion\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_7_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.8;0.8733333;0.9066667;0.9333333;0.96;0.9866667;1\"\r\n\t\t\t\t\t\tpath=\"M300 300 C300,300 300,300 300,300 C300,300 300,172 300,172 C300,172 300,347 300,347 C300,347 300,287 300,287 C300,287 300,306.5 300,306.5 C300,306.5 300,301.5 300,301.5 C300,301.5 300,300 300,300 \"\r\n\t\t\t\t\t\tkeyPoints=\"0;0;0.33;0.78;0.93;0.98;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.333 0 0 1;0.333 0 0 1;0.167 0.167 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_7_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\tto=\"3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\ttype=\"scale\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"3.3000000000000003 3.3000000000000003;3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_7_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"-14.5 -14.5\"\r\n\t\t\t\t\t\tto=\"-14.5 -14.5\"\r\n\t\t\t\t\t\ttype=\"translate\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"-14.5 -14.5;-14.5 -14.5\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_7_G_M\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"1\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.8;0.8000007;1\"\r\n\t\t\t\t\t\tvalues=\"0;0;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 0 0;0 0 0 0;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateMotion\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_6_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tpath=\"M300 300 C300,300 300,300 300,300 \"\r\n\t\t\t\t\t\tkeyPoints=\"0;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.333 0 0 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_6_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\tto=\"3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\ttype=\"scale\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"3.3000000000000003 3.3000000000000003;3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_6_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"-14.5 -14.5\"\r\n\t\t\t\t\t\tto=\"-14.5 -14.5\"\r\n\t\t\t\t\t\ttype=\"translate\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"-14.5 -14.5;-14.5 -14.5\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_6_G_M\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_5_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"1\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.2333333;0.2733333;1\"\r\n\t\t\t\t\t\tvalues=\"1;1;0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0.167 0.167 0.667 1;0.167 0.167 0.667 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateMotion\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_5_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.08;0.2333333;0.2733333;1\"\r\n\t\t\t\t\t\tpath=\"M427 300 C427,300 173.5,300 173.5,300 C173.5,300 173.5,300 173.5,300 C173.5,300 81.5,300 81.5,300 C81.5,300 81.5,300 81.5,300 \"\r\n\t\t\t\t\t\tkeyPoints=\"0;0.73;0.73;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.167 0.167 0.667 1;0.167 0.167 0.833 0.833;0.167 0.167 0 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_5_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"0.89062 0.89062\"\r\n\t\t\t\t\t\tto=\"0.89062 0.89062\"\r\n\t\t\t\t\t\ttype=\"scale\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"0.89062 0.89062;0.89062 0.89062\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_5_G_M\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"1\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.28;0.28;1\"\r\n\t\t\t\t\t\tvalues=\"1;1;0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 0 0;0 0 0 0;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_4_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.04;0.08;0.4666667;0.5066667;1\"\r\n\t\t\t\t\t\tvalues=\"0;0;1;1;0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0.333 0 0.833 0.833;0.333 0 0.833 0.833;0.167 0.167 0.833 0.833;0.167 0.167 0.667 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateMotion\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_4_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.04;0.08;0.2333333;0.3133333;0.4666667;0.5066667;1\"\r\n\t\t\t\t\t\tpath=\"M498 300 C498,300 498,300 498,300 C498,300 427,300 427,300 C427,300 427,300 427,300 C427,300 173.5,300 173.5,300 C173.5,300 173.5,300 173.5,300 C173.5,300 81.5,300 81.5,300 C81.5,300 81.5,300 81.5,300 \"\r\n\t\t\t\t\t\tkeyPoints=\"0;0;0.17;0.17;0.78;0.78;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.167 0.167 0.667 1;0.167 0.167 0.667 1;0.167 0.167 0.833 0.833;0.167 0.167 0.667 1;0.167 0.167 0.833 0.833;0.167 0.167 0 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_4_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"0.89062 0.89062\"\r\n\t\t\t\t\t\tto=\"0.89062 0.89062\"\r\n\t\t\t\t\t\ttype=\"scale\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"0.89062 0.89062;0.89062 0.89062\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_4_G_M\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.04;0.0400007;0.5133333;0.5133333;1\"\r\n\t\t\t\t\t\tvalues=\"0;0;1;1;0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_3_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.2333333;0.2733333;0.66;0.7;1\"\r\n\t\t\t\t\t\tvalues=\"0;0;1;1;0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0.333 0 0.833 0.833;0.333 0 0.833 0.833;0.167 0.167 0.833 0.833;0.167 0.167 0.667 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateMotion\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_3_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.2333333;0.2733333;0.4266667;0.5066667;0.66;0.7;1\"\r\n\t\t\t\t\t\tpath=\"M498 300 C498,300 498,300 498,300 C498,300 427,300 427,300 C427,300 427,300 427,300 C427,300 173.5,300 173.5,300 C173.5,300 173.5,300 173.5,300 C173.5,300 81.5,300 81.5,300 C81.5,300 81.5,300 81.5,300 \"\r\n\t\t\t\t\t\tkeyPoints=\"0;0;0.17;0.17;0.78;0.78;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.167 0.167 0.667 1;0.167 0.167 0.667 1;0.167 0.167 0.833 0.833;0.167 0.167 0.667 1;0.167 0.167 0.833 0.833;0.167 0.167 0 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_3_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"0.89062 0.89062\"\r\n\t\t\t\t\t\tto=\"0.89062 0.89062\"\r\n\t\t\t\t\t\ttype=\"scale\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"0.89062 0.89062;0.89062 0.89062\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_3_G_M\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.2333333;0.233334;0.7066667;0.7066667;1\"\r\n\t\t\t\t\t\tvalues=\"0;0;1;1;0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_2_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.4266667;0.4666667;0.8533333;0.8933333;1\"\r\n\t\t\t\t\t\tvalues=\"0;0;1;1;0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0.333 0 0.833 0.833;0.333 0 0.833 0.833;0.167 0.167 0.833 0.833;0.167 0.167 0.667 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateMotion\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_2_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.4266667;0.4666667;0.62;0.7;0.8533333;0.8933333;1\"\r\n\t\t\t\t\t\tpath=\"M498 300 C498,300 498,300 498,300 C498,300 427,300 427,300 C427,300 427,300 427,300 C427,300 173.5,300 173.5,300 C173.5,300 173.5,300 173.5,300 C173.5,300 81.5,300 81.5,300 C81.5,300 81.5,300 81.5,300 \"\r\n\t\t\t\t\t\tkeyPoints=\"0;0;0.17;0.17;0.78;0.78;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.167 0.167 0.667 1;0.167 0.167 0.667 1;0.167 0.167 0.833 0.833;0.167 0.167 0.667 1;0.167 0.167 0.833 0.833;0.167 0.167 0 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_2_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"0.89062 0.89062\"\r\n\t\t\t\t\t\tto=\"0.89062 0.89062\"\r\n\t\t\t\t\t\ttype=\"scale\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"0.89062 0.89062;0.89062 0.89062\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_2_G_M\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.4266667;0.4266673;0.9;0.9;1\"\r\n\t\t\t\t\t\tvalues=\"0;0;1;1;0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_1_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"1\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.62;0.66;1\"\r\n\t\t\t\t\t\tvalues=\"0;0;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.333 0 0.833 0.833;0.333 0 0.833 0.833;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateMotion\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_1_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.62;0.66;0.8133333;0.8933333;1\"\r\n\t\t\t\t\t\tpath=\"M498 300 C498,300 498,300 498,300 C498,300 427,300 427,300 C427,300 427,300 427,300 C427,300 173.5,300 173.5,300 C173.5,300 173.5,300 173.5,300 \"\r\n\t\t\t\t\t\tkeyPoints=\"0;0;0.22;0.22;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.167 0.167 0.667 1;0.167 0.167 0.667 1;0.167 0.167 0.833 0.833;0.167 0.167 0.667 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_1_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"0.89062 0.89062\"\r\n\t\t\t\t\t\tto=\"0.89062 0.89062\"\r\n\t\t\t\t\t\ttype=\"scale\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"0.89062 0.89062;0.89062 0.89062\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_1_G_M\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"1\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.62;0.6200007;1\"\r\n\t\t\t\t\t\tvalues=\"0;0;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 0 0;0 0 0 0;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_0_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"1\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.8533333;0.8933333;1\"\r\n\t\t\t\t\t\tvalues=\"0;0;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.333 0 0.833 0.833;0.333 0 0.833 0.833;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateMotion\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_0_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.8533333;0.8933333;1\"\r\n\t\t\t\t\t\tpath=\"M498 300 C498,300 498,300 498,300 C498,300 427,300 427,300 C427,300 427,300 427,300 \"\r\n\t\t\t\t\t\tkeyPoints=\"0;0;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.167 0.167 0.667 1;0.167 0.167 0.667 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_0_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"0.89062 0.89062\"\r\n\t\t\t\t\t\tto=\"0.89062 0.89062\"\r\n\t\t\t\t\t\ttype=\"scale\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"0.89062 0.89062;0.89062 0.89062\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_0_G_M\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"1\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.8533333;0.853334;1\"\r\n\t\t\t\t\t\tvalues=\"0;0;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 0 0;0 0 0 0;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate attributeType=\"XML\" attributeName=\"opacity\" dur=\"5s\" from=\"0\" to=\"1\" xlink:href=\"#time_group\" />\r\n\t\t\t\t</defs>\r\n\t\t\t\t<g id=\"_R_G\">\r\n\t\t\t\t\t<g id=\"_R_G_L_0_G\" transform=\" translate(270, 196) translate(-300, -300)\">\r\n\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_12_G_M\">\r\n\t\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_12_G\">\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_12_G_D_0_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M0 -30 C16.56,-30 30,-16.56 30,0 C30,16.56 16.56,30 0,30 C-16.56,30 -30,16.56 -30,0 C-30,-16.56 -16.56,-30 0,-30z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_11_G_M\">\r\n\t\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_11_G\">\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_11_G_D_0_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M3.63 23.8 C3.63,23.8 8.05,27.83 24.33,20.28 C24.33,20.28 26.42,16.28 26.42,16.28 C26.42,16.28 27,14.81 27,14.81 C27,14.81 16.7,22.26 5.84,19.04 C2.26,17.97 3.63,23.8 3.63,23.8z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_11_G_D_1_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M9.41 27.76 C9.41,27.76 14.46,29.73 21.79,25.65 C21.79,25.65 23.71,24.43 23.71,24.43 C23.71,24.43 24.71,23.23 24.71,23.23 C24.71,23.23 17.24,26.84 10.74,24.91 C8.59,24.28 9.41,27.76 9.41,27.76z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_11_G_D_2_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M0.09 15.87 C0.09,15.87 11.11,22.24 26.48,10.22 C26.48,10.22 24.78,5.86 24.78,5.86 C24.78,5.86 15.46,14.09 3.98,10.46 C0.1,9.23 0.09,15.87 0.09,15.87z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_11_G_D_3_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M2.09 6.86 C2.09,6.86 10.72,10.88 22.35,3.43 C22.35,3.43 18.54,1.51 18.54,1.51 C18.54,1.51 15.04,5.07 5.34,3.53 C5.34,3.53 2.09,6.86 2.09,6.86z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_11_G_D_4_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M23.39 3.26 C22.15,2.23 20.73,1.42 19.19,0.86 C16.82,2.31 13.88,3.87 10.5,5.21 C6.5,6.81 3.12,8.7 0.55,10.37 C0.19,11.62 0,12.94 0,14.31 C0,14.84 0.03,15.36 0.09,15.87 C2.76,13.92 7.09,11.14 12.63,8.94 C17.07,7.17 20.74,5.04 23.39,3.26 C23.39,3.26 23.39,3.26 23.39,3.26z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_11_G_D_5_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M16.12 0.11 C15.52,0.04 14.92,0 14.31,0 C9.14,0 4.61,2.74 2.09,6.85 C4.2,5.65 6.65,4.41 9.41,3.31 C11.9,2.32 14.15,1.21 16.12,0.11z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_11_G_D_6_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M28.01 18.42 C28.4,17.12 28.61,15.74 28.61,14.31 C28.61,13.97 28.6,13.63 28.58,13.3 C25.91,15.1 22.2,17.28 17.68,19.08 C12.45,21.16 8.31,23.74 5.61,25.67 C6.79,26.57 8.12,27.3 9.56,27.81 C11.97,26.32 14.96,24.71 18.43,23.33 C22.25,21.82 25.49,20.03 28.01,18.42z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_11_G_D_7_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M28.08 10.43 C27.52,8.42 26.53,6.6 25.22,5.06 C22.53,6.9 18.67,9.21 13.93,11.1 C7.84,13.52 3.22,16.63 0.65,18.58 C1.26,20.55 2.29,22.33 3.63,23.83 C6.31,21.88 10.6,19.16 16.06,16.98 C21.25,14.92 25.38,12.35 28.08,10.43 C28.08,10.43 28.08,10.43 28.08,10.43z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_11_G_D_8_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M19.61 25.03 C16.91,26.1 14.51,27.31 12.44,28.49 C13.05,28.57 13.67,28.61 14.31,28.61 C19.5,28.61 24.05,25.84 26.56,21.7 C24.54,22.84 22.21,24 19.61,25.03 C19.61,25.03 19.61,25.03 19.61,25.03z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_10_G_M\">\r\n\t\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_10_G\">\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_10_G_D_0_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M3.63 23.8 C3.63,23.8 8.05,27.83 24.33,20.28 C24.33,20.28 26.42,16.28 26.42,16.28 C26.42,16.28 27,14.81 27,14.81 C27,14.81 16.7,22.26 5.84,19.04 C2.26,17.97 3.63,23.8 3.63,23.8z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_10_G_D_1_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M9.41 27.76 C9.41,27.76 14.46,29.73 21.79,25.65 C21.79,25.65 23.71,24.43 23.71,24.43 C23.71,24.43 24.71,23.23 24.71,23.23 C24.71,23.23 17.24,26.84 10.74,24.91 C8.59,24.28 9.41,27.76 9.41,27.76z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_10_G_D_2_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M0.09 15.87 C0.09,15.87 11.11,22.24 26.48,10.22 C26.48,10.22 24.78,5.86 24.78,5.86 C24.78,5.86 15.46,14.09 3.98,10.46 C0.1,9.23 0.09,15.87 0.09,15.87z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_10_G_D_3_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M2.09 6.86 C2.09,6.86 10.72,10.88 22.35,3.43 C22.35,3.43 18.54,1.51 18.54,1.51 C18.54,1.51 15.04,5.07 5.34,3.53 C5.34,3.53 2.09,6.86 2.09,6.86z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_10_G_D_4_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M23.39 3.26 C22.15,2.23 20.73,1.42 19.19,0.86 C16.82,2.31 13.88,3.87 10.5,5.21 C6.5,6.81 3.12,8.7 0.55,10.37 C0.19,11.62 0,12.94 0,14.31 C0,14.84 0.03,15.36 0.09,15.87 C2.76,13.92 7.09,11.14 12.63,8.94 C17.07,7.17 20.74,5.04 23.39,3.26 C23.39,3.26 23.39,3.26 23.39,3.26z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_10_G_D_5_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M16.12 0.11 C15.52,0.04 14.92,0 14.31,0 C9.14,0 4.61,2.74 2.09,6.85 C4.2,5.65 6.65,4.41 9.41,3.31 C11.9,2.32 14.15,1.21 16.12,0.11z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_10_G_D_6_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M28.01 18.42 C28.4,17.12 28.61,15.74 28.61,14.31 C28.61,13.97 28.6,13.63 28.58,13.3 C25.91,15.1 22.2,17.28 17.68,19.08 C12.45,21.16 8.31,23.74 5.61,25.67 C6.79,26.57 8.12,27.3 9.56,27.81 C11.97,26.32 14.96,24.71 18.43,23.33 C22.25,21.82 25.49,20.03 28.01,18.42z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_10_G_D_7_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M28.08 10.43 C27.52,8.42 26.53,6.6 25.22,5.06 C22.53,6.9 18.67,9.21 13.93,11.1 C7.84,13.52 3.22,16.63 0.65,18.58 C1.26,20.55 2.29,22.33 3.63,23.83 C6.31,21.88 10.6,19.16 16.06,16.98 C21.25,14.92 25.38,12.35 28.08,10.43 C28.08,10.43 28.08,10.43 28.08,10.43z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_10_G_D_8_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M19.61 25.03 C16.91,26.1 14.51,27.31 12.44,28.49 C13.05,28.57 13.67,28.61 14.31,28.61 C19.5,28.61 24.05,25.84 26.56,21.7 C24.54,22.84 22.21,24 19.61,25.03 C19.61,25.03 19.61,25.03 19.61,25.03z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_9_G_M\">\r\n\t\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_9_G\">\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_9_G_D_0_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M3.63 23.8 C3.63,23.8 8.05,27.83 24.33,20.28 C24.33,20.28 26.42,16.28 26.42,16.28 C26.42,16.28 27,14.81 27,14.81 C27,14.81 16.7,22.26 5.84,19.04 C2.26,17.97 3.63,23.8 3.63,23.8z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_9_G_D_1_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M9.41 27.76 C9.41,27.76 14.46,29.73 21.79,25.65 C21.79,25.65 23.71,24.43 23.71,24.43 C23.71,24.43 24.71,23.23 24.71,23.23 C24.71,23.23 17.24,26.84 10.74,24.91 C8.59,24.28 9.41,27.76 9.41,27.76z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_9_G_D_2_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M0.09 15.87 C0.09,15.87 11.11,22.24 26.48,10.22 C26.48,10.22 24.78,5.86 24.78,5.86 C24.78,5.86 15.46,14.09 3.98,10.46 C0.1,9.23 0.09,15.87 0.09,15.87z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_9_G_D_3_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M2.09 6.86 C2.09,6.86 10.72,10.88 22.35,3.43 C22.35,3.43 18.54,1.51 18.54,1.51 C18.54,1.51 15.04,5.07 5.34,3.53 C5.34,3.53 2.09,6.86 2.09,6.86z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_9_G_D_4_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M23.39 3.26 C22.15,2.23 20.73,1.42 19.19,0.86 C16.82,2.31 13.88,3.87 10.5,5.21 C6.5,6.81 3.12,8.7 0.55,10.37 C0.19,11.62 0,12.94 0,14.31 C0,14.84 0.03,15.36 0.09,15.87 C2.76,13.92 7.09,11.14 12.63,8.94 C17.07,7.17 20.74,5.04 23.39,3.26 C23.39,3.26 23.39,3.26 23.39,3.26z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_9_G_D_5_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M16.12 0.11 C15.52,0.04 14.92,0 14.31,0 C9.14,0 4.61,2.74 2.09,6.85 C4.2,5.65 6.65,4.41 9.41,3.31 C11.9,2.32 14.15,1.21 16.12,0.11z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_9_G_D_6_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M28.01 18.42 C28.4,17.12 28.61,15.74 28.61,14.31 C28.61,13.97 28.6,13.63 28.58,13.3 C25.91,15.1 22.2,17.28 17.68,19.08 C12.45,21.16 8.31,23.74 5.61,25.67 C6.79,26.57 8.12,27.3 9.56,27.81 C11.97,26.32 14.96,24.71 18.43,23.33 C22.25,21.82 25.49,20.03 28.01,18.42z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_9_G_D_7_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M28.08 10.43 C27.52,8.42 26.53,6.6 25.22,5.06 C22.53,6.9 18.67,9.21 13.93,11.1 C7.84,13.52 3.22,16.63 0.65,18.58 C1.26,20.55 2.29,22.33 3.63,23.83 C6.31,21.88 10.6,19.16 16.06,16.98 C21.25,14.92 25.38,12.35 28.08,10.43 C28.08,10.43 28.08,10.43 28.08,10.43z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_9_G_D_8_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M19.61 25.03 C16.91,26.1 14.51,27.31 12.44,28.49 C13.05,28.57 13.67,28.61 14.31,28.61 C19.5,28.61 24.05,25.84 26.56,21.7 C24.54,22.84 22.21,24 19.61,25.03 C19.61,25.03 19.61,25.03 19.61,25.03z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_8_G_M\">\r\n\t\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_8_G\">\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_8_G_D_0_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M3.63 23.8 C3.63,23.8 8.05,27.83 24.33,20.28 C24.33,20.28 26.42,16.28 26.42,16.28 C26.42,16.28 27,14.81 27,14.81 C27,14.81 16.7,22.26 5.84,19.04 C2.26,17.97 3.63,23.8 3.63,23.8z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_8_G_D_1_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M9.41 27.76 C9.41,27.76 14.46,29.73 21.79,25.65 C21.79,25.65 23.71,24.43 23.71,24.43 C23.71,24.43 24.71,23.23 24.71,23.23 C24.71,23.23 17.24,26.84 10.74,24.91 C8.59,24.28 9.41,27.76 9.41,27.76z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_8_G_D_2_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M0.09 15.87 C0.09,15.87 11.11,22.24 26.48,10.22 C26.48,10.22 24.78,5.86 24.78,5.86 C24.78,5.86 15.46,14.09 3.98,10.46 C0.1,9.23 0.09,15.87 0.09,15.87z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_8_G_D_3_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M2.09 6.86 C2.09,6.86 10.72,10.88 22.35,3.43 C22.35,3.43 18.54,1.51 18.54,1.51 C18.54,1.51 15.04,5.07 5.34,3.53 C5.34,3.53 2.09,6.86 2.09,6.86z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_8_G_D_4_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M23.39 3.26 C22.15,2.23 20.73,1.42 19.19,0.86 C16.82,2.31 13.88,3.87 10.5,5.21 C6.5,6.81 3.12,8.7 0.55,10.37 C0.19,11.62 0,12.94 0,14.31 C0,14.84 0.03,15.36 0.09,15.87 C2.76,13.92 7.09,11.14 12.63,8.94 C17.07,7.17 20.74,5.04 23.39,3.26 C23.39,3.26 23.39,3.26 23.39,3.26z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_8_G_D_5_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M16.12 0.11 C15.52,0.04 14.92,0 14.31,0 C9.14,0 4.61,2.74 2.09,6.85 C4.2,5.65 6.65,4.41 9.41,3.31 C11.9,2.32 14.15,1.21 16.12,0.11z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_8_G_D_6_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M28.01 18.42 C28.4,17.12 28.61,15.74 28.61,14.31 C28.61,13.97 28.6,13.63 28.58,13.3 C25.91,15.1 22.2,17.28 17.68,19.08 C12.45,21.16 8.31,23.74 5.61,25.67 C6.79,26.57 8.12,27.3 9.56,27.81 C11.97,26.32 14.96,24.71 18.43,23.33 C22.25,21.82 25.49,20.03 28.01,18.42z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_8_G_D_7_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M28.08 10.43 C27.52,8.42 26.53,6.6 25.22,5.06 C22.53,6.9 18.67,9.21 13.93,11.1 C7.84,13.52 3.22,16.63 0.65,18.58 C1.26,20.55 2.29,22.33 3.63,23.83 C6.31,21.88 10.6,19.16 16.06,16.98 C21.25,14.92 25.38,12.35 28.08,10.43 C28.08,10.43 28.08,10.43 28.08,10.43z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_8_G_D_8_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M19.61 25.03 C16.91,26.1 14.51,27.31 12.44,28.49 C13.05,28.57 13.67,28.61 14.31,28.61 C19.5,28.61 24.05,25.84 26.56,21.7 C24.54,22.84 22.21,24 19.61,25.03 C19.61,25.03 19.61,25.03 19.61,25.03z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_7_G_M\">\r\n\t\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_7_G\">\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_7_G_D_0_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M3.63 23.8 C3.63,23.8 8.05,27.83 24.33,20.28 C24.33,20.28 26.42,16.28 26.42,16.28 C26.42,16.28 27,14.81 27,14.81 C27,14.81 16.7,22.26 5.84,19.04 C2.26,17.97 3.63,23.8 3.63,23.8z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_7_G_D_1_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M9.41 27.76 C9.41,27.76 14.46,29.73 21.79,25.65 C21.79,25.65 23.71,24.43 23.71,24.43 C23.71,24.43 24.71,23.23 24.71,23.23 C24.71,23.23 17.24,26.84 10.74,24.91 C8.59,24.28 9.41,27.76 9.41,27.76z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_7_G_D_2_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M0.09 15.87 C0.09,15.87 11.11,22.24 26.48,10.22 C26.48,10.22 24.78,5.86 24.78,5.86 C24.78,5.86 15.46,14.09 3.98,10.46 C0.1,9.23 0.09,15.87 0.09,15.87z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_7_G_D_3_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M2.09 6.86 C2.09,6.86 10.72,10.88 22.35,3.43 C22.35,3.43 18.54,1.51 18.54,1.51 C18.54,1.51 15.04,5.07 5.34,3.53 C5.34,3.53 2.09,6.86 2.09,6.86z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_7_G_D_4_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M23.39 3.26 C22.15,2.23 20.73,1.42 19.19,0.86 C16.82,2.31 13.88,3.87 10.5,5.21 C6.5,6.81 3.12,8.7 0.55,10.37 C0.19,11.62 0,12.94 0,14.31 C0,14.84 0.03,15.36 0.09,15.87 C2.76,13.92 7.09,11.14 12.63,8.94 C17.07,7.17 20.74,5.04 23.39,3.26 C23.39,3.26 23.39,3.26 23.39,3.26z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_7_G_D_5_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M16.12 0.11 C15.52,0.04 14.92,0 14.31,0 C9.14,0 4.61,2.74 2.09,6.85 C4.2,5.65 6.65,4.41 9.41,3.31 C11.9,2.32 14.15,1.21 16.12,0.11z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_7_G_D_6_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M28.01 18.42 C28.4,17.12 28.61,15.74 28.61,14.31 C28.61,13.97 28.6,13.63 28.58,13.3 C25.91,15.1 22.2,17.28 17.68,19.08 C12.45,21.16 8.31,23.74 5.61,25.67 C6.79,26.57 8.12,27.3 9.56,27.81 C11.97,26.32 14.96,24.71 18.43,23.33 C22.25,21.82 25.49,20.03 28.01,18.42z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_7_G_D_7_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M28.08 10.43 C27.52,8.42 26.53,6.6 25.22,5.06 C22.53,6.9 18.67,9.21 13.93,11.1 C7.84,13.52 3.22,16.63 0.65,18.58 C1.26,20.55 2.29,22.33 3.63,23.83 C6.31,21.88 10.6,19.16 16.06,16.98 C21.25,14.92 25.38,12.35 28.08,10.43 C28.08,10.43 28.08,10.43 28.08,10.43z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_7_G_D_8_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M19.61 25.03 C16.91,26.1 14.51,27.31 12.44,28.49 C13.05,28.57 13.67,28.61 14.31,28.61 C19.5,28.61 24.05,25.84 26.56,21.7 C24.54,22.84 22.21,24 19.61,25.03 C19.61,25.03 19.61,25.03 19.61,25.03z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_6_G_M\">\r\n\t\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_6_G\">\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_6_G_D_0_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M3.63 23.8 C3.63,23.8 8.05,27.83 24.33,20.28 C24.33,20.28 26.42,16.28 26.42,16.28 C26.42,16.28 27,14.81 27,14.81 C27,14.81 16.7,22.26 5.84,19.04 C2.26,17.97 3.63,23.8 3.63,23.8z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_6_G_D_1_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M9.41 27.76 C9.41,27.76 14.46,29.73 21.79,25.65 C21.79,25.65 23.71,24.43 23.71,24.43 C23.71,24.43 24.71,23.23 24.71,23.23 C24.71,23.23 17.24,26.84 10.74,24.91 C8.59,24.28 9.41,27.76 9.41,27.76z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_6_G_D_2_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M0.09 15.87 C0.09,15.87 11.11,22.24 26.48,10.22 C26.48,10.22 24.78,5.86 24.78,5.86 C24.78,5.86 15.46,14.09 3.98,10.46 C0.1,9.23 0.09,15.87 0.09,15.87z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_6_G_D_3_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M2.09 6.86 C2.09,6.86 10.72,10.88 22.35,3.43 C22.35,3.43 18.54,1.51 18.54,1.51 C18.54,1.51 15.04,5.07 5.34,3.53 C5.34,3.53 2.09,6.86 2.09,6.86z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_6_G_D_4_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M23.39 3.26 C22.15,2.23 20.73,1.42 19.19,0.86 C16.82,2.31 13.88,3.87 10.5,5.21 C6.5,6.81 3.12,8.7 0.55,10.37 C0.19,11.62 0,12.94 0,14.31 C0,14.84 0.03,15.36 0.09,15.87 C2.76,13.92 7.09,11.14 12.63,8.94 C17.07,7.17 20.74,5.04 23.39,3.26 C23.39,3.26 23.39,3.26 23.39,3.26z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_6_G_D_5_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M16.12 0.11 C15.52,0.04 14.92,0 14.31,0 C9.14,0 4.61,2.74 2.09,6.85 C4.2,5.65 6.65,4.41 9.41,3.31 C11.9,2.32 14.15,1.21 16.12,0.11z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_6_G_D_6_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M28.01 18.42 C28.4,17.12 28.61,15.74 28.61,14.31 C28.61,13.97 28.6,13.63 28.58,13.3 C25.91,15.1 22.2,17.28 17.68,19.08 C12.45,21.16 8.31,23.74 5.61,25.67 C6.79,26.57 8.12,27.3 9.56,27.81 C11.97,26.32 14.96,24.71 18.43,23.33 C22.25,21.82 25.49,20.03 28.01,18.42z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_6_G_D_7_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M28.08 10.43 C27.52,8.42 26.53,6.6 25.22,5.06 C22.53,6.9 18.67,9.21 13.93,11.1 C7.84,13.52 3.22,16.63 0.65,18.58 C1.26,20.55 2.29,22.33 3.63,23.83 C6.31,21.88 10.6,19.16 16.06,16.98 C21.25,14.92 25.38,12.35 28.08,10.43 C28.08,10.43 28.08,10.43 28.08,10.43z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_6_G_D_8_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M19.61 25.03 C16.91,26.1 14.51,27.31 12.44,28.49 C13.05,28.57 13.67,28.61 14.31,28.61 C19.5,28.61 24.05,25.84 26.56,21.7 C24.54,22.84 22.21,24 19.61,25.03 C19.61,25.03 19.61,25.03 19.61,25.03z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_5_G_M\">\r\n\t\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_5_G\">\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_5_G_D_0_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M0 -30 C16.56,-30 30,-16.56 30,0 C30,16.56 16.56,30 0,30 C-16.56,30 -30,16.56 -30,0 C-30,-16.56 -16.56,-30 0,-30z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_4_G_M\">\r\n\t\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_4_G\">\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_4_G_D_0_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M0 -30 C16.56,-30 30,-16.56 30,0 C30,16.56 16.56,30 0,30 C-16.56,30 -30,16.56 -30,0 C-30,-16.56 -16.56,-30 0,-30z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_3_G_M\">\r\n\t\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_3_G\">\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_3_G_D_0_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M0 -30 C16.56,-30 30,-16.56 30,0 C30,16.56 16.56,30 0,30 C-16.56,30 -30,16.56 -30,0 C-30,-16.56 -16.56,-30 0,-30z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_2_G_M\">\r\n\t\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_2_G\">\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_2_G_D_0_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M0 -30 C16.56,-30 30,-16.56 30,0 C30,16.56 16.56,30 0,30 C-16.56,30 -30,16.56 -30,0 C-30,-16.56 -16.56,-30 0,-30z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_1_G_M\">\r\n\t\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_1_G\">\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_1_G_D_0_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M0 -30 C16.56,-30 30,-16.56 30,0 C30,16.56 16.56,30 0,30 C-16.56,30 -30,16.56 -30,0 C-30,-16.56 -16.56,-30 0,-30z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_0_G_M\">\r\n\t\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_0_G\">\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_0_G_D_0_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M0 -30 C16.56,-30 30,-16.56 30,0 C30,16.56 16.56,30 0,30 C-16.56,30 -30,16.56 -30,0 C-30,-16.56 -16.56,-30 0,-30z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t</g>\r\n\t\t\t\t</g>\r\n\t\t\t\t<g id=\"time_group\" />\r\n\t\t\t</svg>\r\n\t\t}\r\n\t</span>\r\n</div>\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","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","import { 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 * as _ from \"lodash\";\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 constructor(private location: Location) {}\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","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 { CommonModule, DatePipe } from \"@angular/common\";\r\nimport { AfterContentInit, Component, ContentChild, ContentChildren, EventEmitter, inject, Input, OnChanges, Output, QueryList, TemplateRef } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { BadgeModule } from \"primeng/badge\";\r\nimport { CheckboxModule } from \"primeng/checkbox\";\r\nimport { IconFieldModule } from \"primeng/iconfield\";\r\nimport { InputIcon } from \"primeng/inputicon\";\r\nimport { InputNumber } from \"primeng/inputnumber\";\r\nimport { InputText, InputTextModule } from \"primeng/inputtext\";\r\nimport { Paginator } from \"primeng/paginator\";\r\nimport { Select } from \"primeng/select\";\r\nimport { TableModule } from \"primeng/table\";\r\nimport { TooltipModule } from \"primeng/tooltip\";\r\nimport { FormatCellPipe } from \"../../pipes/formatCell.pipe\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\nimport { SharedService } from \"../../services/shared.service\";\r\nimport { SearchInputModel } from \"../search/model/search.model\";\r\nimport { ColumnComponent, ColumnGroupComponent, RowResumenComponent } from \"./column.component\";\r\nimport { SortFieldModel } from \"./model/sort.model\";\r\n\r\n@Component({\r\n\tselector: \"intelica-table\",\r\n\tstandalone: true,\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tIconFieldModule,\r\n\t\tInputIcon,\r\n\t\tInputText,\r\n\t\tInputTextModule,\r\n\t\tInputNumber,\r\n\t\tPaginator,\r\n\t\tTableModule,\r\n\t\tSelect,\r\n\t\tBadgeModule,\r\n\t\tTooltipModule,\r\n\t\tTermPipe,\r\n\t\tCheckboxModule,\r\n\t\tFormsModule,\r\n\t\tFormatCellPipe,\r\n\t],\r\n\ttemplateUrl: \"./table.component.html\",\r\n\tproviders: [FormatCellPipe, DatePipe],\r\n})\r\nexport class TableComponent<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() ShowRowPerPage: boolean = true;\r\n\t@Input() ShowSearch: boolean = false;\r\n\t@Input() ShowPagination: boolean = false;\r\n\t@Input() RowsPerPage: number = 10;\r\n\t@Input() ShowCheckbox: boolean = false;\r\n\t@Input() ShowIndex: boolean = false;\r\n\t@Input() ListDataSelected: T[] = [];\r\n\t@Input() SelectedIdentifier: keyof T | null = null;\r\n\t@Input() ClassName: string = \"\";\r\n\t@Input() DefaultSortField: string = \"\";\r\n\t@Input() DefaultSortOrder: number = 1;\r\n\t@Input() scrollHeight: string = \"400px\";\r\n\t@Input() scrollable: boolean = false;\r\n\t@Input() AllowedPageSizes: number[] = [10, 25, 50, 100];\r\n\t@Input() tableStyle: { [klass: string]: any } = {};\r\n\tprivate _isTableDisabled = false;\r\n\tprivate _pendingUncheck = false;\r\n\tHeaderState: Record<string, { checked: boolean; indeterminate: boolean }> = {};\r\n\r\n\t@Input()\r\n\tset IsTableDisabled(val: boolean) {\r\n\t\tthis._isTableDisabled = val;\r\n\r\n\t\tif (val) {\r\n\t\t\tif (!this.ColumnList || this.ColumnList.length === 0) {\r\n\t\t\t\tthis._pendingUncheck = true;\r\n\t\t\t} else {\r\n\t\t\t\tthis.ListDataSelectedTemp = [];\r\n\t\t\t\tthis.ListDataSelectedFilter = [];\r\n\t\t\t\tthis.ExecuteSearch();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tget IsTableDisabled() {\r\n\t\treturn this._isTableDisabled;\r\n\t}\r\n\r\n\tpublic recomputeHeaderState(field: string) {\r\n\t\tconst total = this.ListDataFilter.length;\r\n\t\tif (total === 0) {\r\n\t\t\tthis.HeaderState[field] = { checked: false, indeterminate: false };\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst checked = this.ListDataFilter.filter(r => (r as any)[field] === true).length;\r\n\t\tthis.HeaderState[field] = {\r\n\t\t\tchecked: checked === total,\r\n\t\t\tindeterminate: checked > 0 && checked < total,\r\n\t\t};\r\n\t}\r\n\r\n\tonBodyCheckboxChange(field: string) {\r\n\t\tthis.recomputeHeaderState(field);\r\n\t}\r\n\r\n\tprivate refreshAllHeaderStates() {\r\n\t\tthis.ColumnList.filter(c => c.isChecboxColumn).forEach(c => this.recomputeHeaderState(c.field));\r\n\t}\r\n\t@Output() EmitSelectedItem = new EventEmitter<T[]>();\r\n\t@Output() EmitListDataFilter = new EventEmitter<T[]>();\r\n\t@Output() EmitSearchEvent = new EventEmitter<SearchInputModel>();\r\n\t@Output() EmitSortEvent = new EventEmitter<SortFieldModel[]>();\r\n\t@ContentChildren(ColumnComponent) Columns!: QueryList<ColumnComponent>;\r\n\t@ContentChildren(ColumnGroupComponent)\r\n\tColumnGroups!: QueryList<ColumnGroupComponent>;\r\n\t@ContentChildren(RowResumenComponent)\r\n\tRowResumenGroups!: QueryList<RowResumenComponent>;\r\n\t@ContentChild(\"additionalTemplate\") AdditionalTemplate?: TemplateRef<any>;\r\n\t@ContentChild(\"additionalExtendedTemplate\")\r\n\tAdditionalExtendedTemplate?: TemplateRef<any>;\r\n\t@ContentChild(\"additionalCentralTemplate\")\r\n\tAdditionalCentralTemplate?: TemplateRef<any>;\r\n\tColumnList: ColumnComponent[] = [];\r\n\tColumnGroupList: ColumnGroupComponent[] = [];\r\n\tRowResumenList: RowResumenComponent[] = [];\r\n\tListDataFilter: T[] = [];\r\n\tListDataTable: T[] = [];\r\n\tListDataSelectedFilter: T[] = [];\r\n\tListDataSelectedTemp: T[] = [];\r\n\tSearchInput: SearchInputModel = { searchText: \"\" } as SearchInputModel;\r\n\tTotalRecords: number = 0;\r\n\tCurrentPage: number = 1;\r\n\tSortOrder: number = 1;\r\n\tSortField: keyof T | null = null;\r\n\tMaxLevel: number = 0;\r\n\tLevels: number[] = [];\r\n\tngOnChanges(): void {\r\n\t\tif (!this.SortField && this.DefaultSortField) {\r\n\t\t\tthis.SortField = this.DefaultSortField as keyof T;\r\n\t\t\tthis.SortOrder = this.DefaultSortOrder;\r\n\t\t}\r\n\t\tthis.ExecuteSearch();\r\n\t\tthis.ValidateSelect();\r\n\t}\r\n\tngAfterContentInit() {\r\n\t\tthis.ColumnList = this.Columns?.toArray() ?? [];\r\n\t\tthis.ColumnGroupList = this.ColumnGroups?.toArray() ?? [];\r\n\t\tthis.RowResumenList = this.RowResumenGroups?.toArray() ?? [];\r\n\r\n\t\tconst levels = this.ColumnGroupList.map(c => c.level);\r\n\t\tthis.MaxLevel = levels.length ? Math.max(...levels) + 1 : 1;\r\n\t\tthis.Levels = Array.from({ length: this.MaxLevel }, (_, i) => i);\r\n\r\n\t\tthis.ColumnList.filter(c => c.isChecboxColumn).forEach(c => {\r\n\t\t\tif (!this.HeaderState[c.field]) {\r\n\t\t\t\tthis.HeaderState[c.field] = { checked: false, indeterminate: false };\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (this._isTableDisabled && this._pendingUncheck) {\r\n\t\t\tthis.ListDataSelectedTemp = [];\r\n\t\t\tthis.ListDataSelectedFilter = [];\r\n\t\t\tthis._pendingUncheck = false;\r\n\t\t\tthis.ExecuteSearch();\r\n\t\t} else {\r\n\t\t\tthis.refreshAllHeaderStates();\r\n\t\t}\r\n\t}\r\n\tOnSort(field: string) {\r\n\t\tif (this.SortField === field) {\r\n\t\t\tthis.SortOrder *= -1;\r\n\t\t} else {\r\n\t\t\tthis.SortField = field as keyof T;\r\n\t\t\tthis.SortOrder = 1;\r\n\t\t}\r\n\t\tthis.SortPages();\r\n\t}\r\n\tOnPageChange(event: { page?: number; rows?: number } | number) {\r\n\t\tif (typeof event === \"number\") {\r\n\t\t\tthis.CurrentPage = event;\r\n\t\t} else {\r\n\t\t\tif (typeof event?.rows === \"number\") {\r\n\t\t\t\tthis.RowsPerPage = event.rows;\r\n\t\t\t}\r\n\t\t\tif (typeof event?.page === \"number\") {\r\n\t\t\t\tthis.CurrentPage = event.page + 1;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.UpdatePages();\r\n\t}\r\n\tExecuteSearch(searchText?: string): void {\r\n\t\tif (typeof searchText === \"string\") {\r\n\t\t\tthis.SearchInput = { ...(this.SearchInput ?? {}), searchText };\r\n\t\t}\r\n\t\tthis.ListDataFilter = [...this.ListData];\r\n\t\tconst search = this.SearchInput?.searchText?.trim()?.toLowerCase();\r\n\t\tif (search) {\r\n\t\t\tthis.ListDataFilter = this.ListData.filter(item => {\r\n\t\t\t\tconst searchableText = Object.values(item as any)\r\n\t\t\t\t\t.filter(v => v !== null && v !== undefined)\r\n\t\t\t\t\t.join(\" \")\r\n\t\t\t\t\t.toLowerCase();\r\n\t\t\t\treturn searchableText.includes(search);\r\n\t\t\t});\r\n\t\t\tthis.CurrentPage = 1;\r\n\t\t}\r\n\t\tthis.SortPages();\r\n\t}\r\n\tSortPages() {\r\n\t\tif (!this.SortField) {\r\n\t\t\tthis.UpdatePages();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst order = this.SortOrder === 1 ? \"asc\" : \"desc\";\r\n\t\tconst field = this.SortField as keyof T;\r\n\r\n\t\tconst colConfig = this.ColumnList.find(c => c.field === field);\r\n\t\tif (!colConfig) {\r\n\t\t\tconsole.warn(\"Columna no encontrada:\", field);\r\n\t\t\tthis.UpdatePages();\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst formatType = colConfig.formatType;\r\n\t\tconst sampleValue = this.ListDataFilter.find(item => item[field] !== null && item[field] !== undefined)?.[field];\r\n\t\tif (typeof sampleValue === \"number\") {\r\n\t\t\tthis.ListDataFilter = this.SharedService.SortRecursiveNumber([...this.ListDataFilter], field, order);\r\n\t\t} else {\r\n\t\t\tif (formatType === \"date\") {\r\n\t\t\t\tthis.ListDataFilter = this.SharedService.SortRecursiveDate([...this.ListDataFilter], field, order);\r\n\t\t\t} else {\r\n\t\t\t\tthis.ListDataFilter = this.SharedService.SortRecursivePrimeNg([...this.ListDataFilter], field, order);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.UpdatePages();\r\n\t}\r\n\tUpdatePages() {\r\n\t\tif (this.ShowPagination) {\r\n\t\t\tthis.TotalRecords = this.ListDataFilter.length;\r\n\t\t\tconst start = (this.CurrentPage - 1) * this.RowsPerPage;\r\n\t\t\tconst end = start + this.RowsPerPage;\r\n\t\t\tthis.ListDataTable = this.ListDataFilter.slice(start, end);\r\n\t\t} else {\r\n\t\t\tthis.ListDataTable = this.ListDataFilter;\r\n\t\t}\r\n\t\tif (this.ShowCheckbox) this.ListDataSelectedFilter = [...this.ListDataSelectedTemp];\r\n\t\tthis.refreshAllHeaderStates();\r\n\t\tthis.EmitSearchValues();\r\n\t}\r\n\tValidateSelect() {\r\n\t\tif (!this.SelectedIdentifier && this.ShowCheckbox) {\r\n\t\t\tthis.ShowCheckbox = false;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst selectedIds = new Set(this.ListDataSelected.map(item => item[this.SelectedIdentifier as keyof T]));\r\n\t\tthis.ListDataSelectedTemp = this.ListData.filter(item => selectedIds.has(item[this.SelectedIdentifier as keyof T]));\r\n\t\tthis.ListDataSelectedFilter = [...this.ListDataSelectedTemp];\r\n\t}\r\n\tSelectAll(event: any) {\r\n\t\tif (!this.SelectedIdentifier && this.ShowCheckbox) return;\r\n\t\tif (event.checked) {\r\n\t\t\tconst idsSelected = new Set(this.ListDataSelectedTemp.map(item => item[this.SelectedIdentifier as keyof T]));\r\n\t\t\tthis.ListDataFilter.forEach(item => {\r\n\t\t\t\tif (!idsSelected.has(item[this.SelectedIdentifier as keyof T])) {\r\n\t\t\t\t\tthis.ListDataSelectedTemp.push(item);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tconst idsSelected = new Set(this.ListDataFilter.map(item => item[this.SelectedIdentifier as keyof T]));\r\n\t\t\tthis.ListDataSelectedTemp = this.ListDataSelectedTemp.filter(item => !idsSelected.has(item[this.SelectedIdentifier as keyof T]));\r\n\t\t}\r\n\t\tthis.ListDataSelectedFilter = [...this.ListDataSelectedTemp];\r\n\t\tthis.EmitSelectedItem.emit(this.ListDataSelectedTemp);\r\n\t}\r\n\tOnHeaderSelectionToggle(checked: boolean) {\r\n\t\tthis.SelectAll({ checked });\r\n\t}\r\n\tOnRowSelect(event: any) {\r\n\t\tif (!this.SelectedIdentifier && this.ShowCheckbox) return;\r\n\t\tconst selectedItem = event.data;\r\n\t\tconst exists = this.ListDataSelectedTemp.some(item => item[this.SelectedIdentifier as keyof T] === selectedItem[this.SelectedIdentifier as keyof T]);\r\n\t\tif (!exists) {\r\n\t\t\tthis.ListDataSelectedTemp.push(selectedItem);\r\n\t\t}\r\n\t\tthis.EmitSelectedItem.emit(this.ListDataSelectedTemp);\r\n\t}\r\n\tOnRowUnselect(event: any) {\r\n\t\tif (!this.SelectedIdentifier && this.ShowCheckbox) return;\r\n\t\tconst unselectedItem = event.data;\r\n\t\tthis.ListDataSelectedTemp = this.ListDataSelectedTemp.filter(item => item[this.SelectedIdentifier as keyof T] !== unselectedItem[this.SelectedIdentifier as keyof T]);\r\n\t\tthis.EmitSelectedItem.emit(this.ListDataSelectedTemp);\r\n\t}\r\n\tResetTable() {\r\n\t\tthis.CurrentPage = 1;\r\n\t\tthis.SearchInput = { ...(this.SearchInput ?? {}), searchText: \"\" };\r\n\t\tthis.ExecuteSearch();\r\n\t}\r\n\tEmitSearchValues() {\r\n\t\tthis.EmitListDataFilter.emit(this.ListDataFilter);\r\n\t\tthis.EmitSearchEvent.emit(this.SearchInput);\r\n\t\tthis.EmitSortEvent.emit([\r\n\t\t\t{\r\n\t\t\t\tsortOrder: this.SortOrder,\r\n\t\t\t\tsortField: this.SortField?.toString() ?? \"\",\r\n\t\t\t},\r\n\t\t]);\r\n\t}\r\n\tOnHeaderCheckboxChange(checked: boolean, field: string) {\r\n\t\tthis.ListDataFilter.forEach(r => ((r as any)[field] = checked));\r\n\r\n\t\tthis.HeaderState[field] = { checked, indeterminate: false };\r\n\t\tthis.UpdatePages();\r\n\t}\r\n\r\n\tprivate getFilteredSelectedCount(): number {\r\n\t\tif (!this.SelectedIdentifier || this.ListDataFilter.length === 0 || this.ListDataSelectedTemp.length === 0) return 0;\r\n\t\tconst selectedIds = new Set(this.ListDataSelectedTemp.map(item => item[this.SelectedIdentifier as keyof T]));\r\n\t\treturn this.ListDataFilter.filter(item => selectedIds.has(item[this.SelectedIdentifier as keyof T])).length;\r\n\t}\r\n\tget IsHeaderSelectionChecked(): boolean {\r\n\t\treturn this.ListDataFilter.length > 0 && this.getFilteredSelectedCount() === this.ListDataFilter.length;\r\n\t}\r\n\tget IsHeaderSelectionIndeterminate(): boolean {\r\n\t\tconst selectedCount = this.getFilteredSelectedCount();\r\n\t\treturn selectedCount > 0 && selectedCount < this.ListDataFilter.length;\r\n\t}\r\n\r\n\tFilterData(field: string) {\r\n\t\tlet c = this.ListData.filter(item => (item as Record<string, boolean>)[field]);\r\n\t}\r\n\tIsInderteminate(column: string) {\r\n\t\tconst rowsChek = this.ListData.filter(item => (item as Record<string, boolean>)[column]).length;\r\n\t\tconst element = [...document.querySelectorAll(\"[data-check]\")].find(x => x.getAttribute(\"data-check\") == column);\r\n\t\tif (element == undefined) return;\r\n\t\tif (rowsChek > 0 && rowsChek < this.ListData.length) {\r\n\t\t\telement.setAttribute(\"class\", \"prCheckbox--indeterminate\");\r\n\t\t} else {\r\n\t\t\telement.removeAttribute(\"class\");\r\n\t\t}\r\n\t}\r\n\tOnRowsPerPageChange(value: number) {\r\n\t\tthis.RowsPerPage = value;\r\n\t\tthis.CurrentPage = 1;\r\n\t\tthis.UpdatePages();\r\n\t}\r\n\tResetTableSelected() {\r\n\t\tthis.ListDataSelectedTemp = [];\r\n\t\tthis.ListDataSelectedFilter = [...this.ListDataSelectedTemp];\r\n\t}\r\n\tClearSearch() {\r\n\t\tthis.SearchInput.searchText = \"\";\r\n\t}\r\n\r\n\tget TotalPages(): number {\r\n\t\treturn Math.ceil(this.TotalRecords / this.RowsPerPage);\r\n\t}\r\n\tonChangeSelectPage(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.UpdatePages();\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.UpdatePages();\r\n\t}\r\n\tget RenderPanel(): boolean {\r\n\t\treturn Boolean(this.AdditionalTemplate) || this.ShowSearch || Boolean(this.AdditionalCentralTemplate) || Boolean(this.AdditionalExtendedTemplate);\r\n\t}\r\n}\r\n","<div class=\"prTable\">\r\n\t@if (RenderPanel) {\r\n\t\t<div class=\"grPanel\">\r\n\t\t\t<div class=\"prCard__row justify-content-end\">\r\n\t\t\t\t<div class=\"prCard__actionflex\">\r\n\t\t\t\t\t@if (AdditionalTemplate) {\r\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"AdditionalTemplate\"></ng-container>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t\t@if (ShowSearch) {\r\n\t\t\t\t\t<div class=\"ptSearch\">\r\n\t\t\t\t\t\t<p-iconfield>\r\n\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\tclass=\"prInputText\"\r\n\t\t\t\t\t\t\t\tpInputText\r\n\t\t\t\t\t\t\t\tplaceholder=\"{{ 'LBL_SEARCH_SELECT' | term: GlobalTermService.languageCode }}\"\r\n\t\t\t\t\t\t\t\t[(ngModel)]=\"SearchInput.searchText\"\r\n\t\t\t\t\t\t\t\t(keydown.enter)=\"ExecuteSearch()\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t<p-inputicon>\r\n\t\t\t\t\t\t\t\t<button class=\"ptSearch__icon ptSearch__icon--close\">\r\n\t\t\t\t\t\t\t\t\t<i class=\"icon icon-cancel\" *ngIf=\"SearchInput.searchText\" (click)=\"ClearSearch()\"></i>\r\n\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t<span class=\"ptSearch__icon ptSearch__icon--divider\" *ngIf=\"SearchInput.searchText\"></span>\r\n\t\t\t\t\t\t\t\t<button class=\"ptSearch__icon ptSearch__icon--search\">\r\n\t\t\t\t\t\t\t\t\t<i class=\"icon icon-search\"></i>\r\n\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t</p-inputicon>\r\n\t\t\t\t\t\t</p-iconfield>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t\t@if (AdditionalCentralTemplate) {\r\n\t\t\t\t\t<div class=\"prTableTools__new prTableTools__new--right\">\r\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"AdditionalCentralTemplate\"></ng-container>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\r\n\t\t\t@if (AdditionalExtendedTemplate) {\r\n\t\t\t\t<div class=\"prTableTools justify-content-start\">\r\n\t\t\t\t\t<ng-container *ngTemplateOutlet=\"AdditionalExtendedTemplate\"></ng-container>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t</div>\r\n\t}\r\n\t<p-table\r\n\t\tclass=\"prTable\"\r\n\t\t[ngClass]=\"ClassName\"\r\n\t\t[value]=\"ListDataTable\"\r\n\t\tresponsiveLayout=\"scroll\"\r\n\t\t[(selection)]=\"ListDataSelectedFilter\"\r\n\t\t(onRowSelect)=\"OnRowSelect($event)\"\r\n\t\t(onRowUnselect)=\"OnRowUnselect($event)\"\r\n\t\t[sortField]=\"DefaultSortField\"\r\n\t\t[scrollable]=\"scrollable\"\r\n\t\t[scrollHeight]=\"scrollable ? scrollHeight : 'auto'\"\r\n\t\t[tableStyle]=\"tableStyle\"\r\n\t\t[sortOrder]=\"DefaultSortOrder\"\r\n\t>\r\n\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t@for (level of Levels; track $index) {\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t@for (col of ColumnGroupList; track $index) {\r\n\t\t\t\t\t\t@if (col.level === level) {\r\n\t\t\t\t\t\t\t<th [attr.colspan]=\"col.colspan\" [attr.rowspan]=\"col.rowspan\" [pSortableColumn]=\"col.sortable ? col.field : ''\" [style.min-width]=\"col.minWidth\" (click)=\"col.sortable && OnSort(col.field)\">\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span tooltipStyleClass=\"prTooltip\" [pTooltip]=\"col.headerTooltip || col.header\" [tooltipPosition]=\"col.headerTooltipPosition || 'top'\">\r\n\t\t\t\t\t\t\t\t\t\t{{ col.header }}\r\n\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t<p-sortIcon *ngIf=\"col.sortable\" [field]=\"col.field\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</th>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t@if (ShowCheckbox && level === 0 && ColumnGroupList.length != 0) {\r\n\t\t\t\t\t\t<th class=\"text-center\" style=\"width: 4%\" [attr.rowspan]=\"MaxLevel === 1 ? 2 : MaxLevel\">\r\n\t\t\t\t\t\t\t<p-checkbox\r\n\t\t\t\t\t\t\t\tclass=\"prCheckbox\"\r\n\t\t\t\t\t\t\t\t[binary]=\"true\"\r\n\t\t\t\t\t\t\t\t(click)=\"$event.stopPropagation()\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"IsHeaderSelectionChecked\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"OnHeaderSelectionToggle($event)\"\r\n\t\t\t\t\t\t\t\t[disabled]=\"IsTableDisabled || ListDataFilter.length === 0\"\r\n\t\t\t\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\t\t\t\t'prCheckbox--indeterminate': IsHeaderSelectionIndeterminate,\r\n\t\t\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t\t></p-checkbox>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t}\r\n\t\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) {\r\n\t\t\t\t\t@if (col.showHeader) {\r\n\t\t\t\t\t\t<th\r\n\t\t\t\t\t\t\t[class]=\"col.className\"\r\n\t\t\t\t\t\t\t[pSortableColumn]=\"!col.isChecboxColumn && col.sortable ? col.field : ''\"\r\n\t\t\t\t\t\t\t[style.width]=\"col.width\"\r\n\t\t\t\t\t\t\t[style.min-width]=\"col.minWidth\"\r\n\t\t\t\t\t\t\t(click)=\"!col.isChecboxColumn && col.sortable && OnSort(col.field)\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<div class=\"prTable__header\">\r\n\t\t\t\t\t\t\t\t<span tooltipStyleClass=\"prTooltip\" [pTooltip]=\"col.headerTooltip || col.header\" [tooltipPosition]=\"col.headerTooltipPosition || 'top'\">\r\n\t\t\t\t\t\t\t\t\t{{ col.header }}\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t@if (!col.showIndex) {\r\n\t\t\t\t\t\t\t\t\t@if (col.isChecboxColumn) {\r\n\t\t\t\t\t\t\t\t\t\t<br />\r\n\t\t\t\t\t\t\t\t\t\t<p-checkbox\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"prCheckbox\"\r\n\t\t\t\t\t\t\t\t\t\t\t[binary]=\"true\"\r\n\t\t\t\t\t\t\t\t\t\t\t(click)=\"$event.stopPropagation()\"\r\n\t\t\t\t\t\t\t\t\t\t\t[(ngModel)]=\"HeaderState[col.field].checked\"\r\n\t\t\t\t\t\t\t\t\t\t\t(ngModelChange)=\"OnHeaderCheckboxChange($event, col.field)\"\r\n\t\t\t\t\t\t\t\t\t\t\t[attr.data-check]=\"col.field\"\r\n\t\t\t\t\t\t\t\t\t\t\t[disabled]=\"IsTableDisabled\"\r\n\t\t\t\t\t\t\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\t\t\t\t\t\t\t'prCheckbox--indeterminate': HeaderState[col.field].indeterminate,\r\n\t\t\t\t\t\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t\t\t\t\t></p-checkbox>\r\n\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t<p-sortIcon *ngIf=\"col.sortable\" [field]=\"col.field\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t@if (ShowCheckbox && ColumnGroupList.length == 0) {\r\n\t\t\t\t\t<th class=\"text-center\" style=\"width: 4%\">\r\n\t\t\t\t\t\t<p-checkbox\r\n\t\t\t\t\t\t\tclass=\"prCheckbox\"\r\n\t\t\t\t\t\t\t[binary]=\"true\"\r\n\t\t\t\t\t\t\t(click)=\"$event.stopPropagation()\"\r\n\t\t\t\t\t\t\t[ngModel]=\"IsHeaderSelectionChecked\"\r\n\t\t\t\t\t\t\t(ngModelChange)=\"OnHeaderSelectionToggle($event)\"\r\n\t\t\t\t\t\t\t[disabled]=\"IsTableDisabled || ListDataFilter.length === 0\"\r\n\t\t\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\t\t\t'prCheckbox--indeterminate': IsHeaderSelectionIndeterminate,\r\n\t\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t></p-checkbox>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t\t@if (ListDataFilter.length > 0) {\r\n\t\t\t\t<tr class=\"fixedRow\">\r\n\t\t\t\t\t@for (col of RowResumenList; track $index) {\r\n\t\t\t\t\t\t<td [ngClass]=\"col.className\" [attr.colspan]=\"col.colspan\" [attr.rowspan]=\"col.rowspan\">\r\n\t\t\t\t\t\t\t@if (col.templateRef) {\r\n\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"col.templateRef\"></ng-container>\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t<ng-template #defaultContent></ng-template>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t}\r\n\t\t\t\t</tr>\r\n\t\t\t}\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 $index) {\r\n\t\t\t\t\t<td [ngClass]=\"col.className\">\r\n\t\t\t\t\t\t@if (col.showIndex) {\r\n\t\t\t\t\t\t\t{{ rowIndex + 1 + (CurrentPage - 1) * RowsPerPage }}\r\n\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t@if (col.templateRef) {\r\n\t\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"col.templateRef; context: { $implicit: rowData }\"></ng-container>\r\n\t\t\t\t\t\t\t} @else if (col.isChecboxColumn) {\r\n\t\t\t\t\t\t\t\t<p-checkbox [binary]=\"true\" [(ngModel)]=\"rowData[col.field]\" (onChange)=\"onBodyCheckboxChange(col.field)\" [disabled]=\"IsTableDisabled\"></p-checkbox>\r\n\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t<span class=\"text-breakWord\" tooltipStyleClass=\"prTooltip\" [pTooltip]=\"col.tooltip\" [tooltipPosition]=\"col.tooltipPosition || 'top'\">\r\n\t\t\t\t\t\t\t\t\t{{ rowData[col.field] | formatCell: col.formatType }}\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t\t@if (ShowCheckbox) {\r\n\t\t\t\t\t<td class=\"text-center\">\r\n\t\t\t\t\t\t<p-tableCheckbox [value]=\"rowData\" class=\"prCheckbox\" />\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\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 + (ShowCheckbox ? 1 : 0)\" 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\t<div class=\"d-flex justify-content-end\">\r\n\t\t@if (TotalRecords !== 0 && ShowPagination) {\r\n\t\t\t<div class=\"ptTablePaginator\">\r\n\t\t\t\t<p-paginator\r\n\t\t\t\t\tclass=\"prPaginator\"\r\n\t\t\t\t\t[first]=\"(CurrentPage - 1) * RowsPerPage\"\r\n\t\t\t\t\t[rows]=\"RowsPerPage\"\r\n\t\t\t\t\t[totalRecords]=\"TotalRecords\"\r\n\t\t\t\t\t(onPageChange)=\"OnPageChange($event)\"\r\n\t\t\t\t\t[showJumpToPageInput]=\"false\"\r\n\t\t\t\t\t[showCurrentPageReport]=\"false\"\r\n\t\t\t\t\t[showPageLinks]=\"false\"\r\n\t\t\t\t\t[showFirstLastIcon]=\"false\"\r\n\t\t\t\t\t[templateLeft]=\"templateLeft\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<ng-template #previouspagelinkicon>\r\n\t\t\t\t\t\t<i class=\"icon icon-arrow-left\"></i>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<ng-template #nextpagelinkicon>\r\n\t\t\t\t\t\t<i class=\"icon icon-arrow-right\"></i>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<ng-template pTemplate=\"templateLeft\" let-state #templateLeft>\r\n\t\t\t\t\t\t<span>{{ \"ROWS_PER_PAGE\" | term: GlobalTermService.languageCode }}</span>\r\n\t\t\t\t\t\t<p-select class=\"prSelect\" [options]=\"AllowedPageSizes\" [ngModel]=\"RowsPerPage\" appendTo=\"body\" (onChange)=\"OnRowsPerPageChange($event.value)\" />\r\n\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t{{ \"Page\" | term: GlobalTermService.languageCode }}\r\n\t\t\t\t\t\t\t<p-inputnumber class=\"p-paginator-jtp-input\" inputId=\"integeronly\" [(ngModel)]=\"CurrentPage\" [allowEmpty]=\"false\" [min]=\"1\" (keyup.enter)=\"onChangeSelectPage($event)\" />\r\n\t\t\t\t\t\t\t{{ \"Of\" | term: GlobalTermService.languageCode }} {{ TotalPages }}\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-paginator>\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n</div>\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 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 @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() width?: string;\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\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\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\r\n ngOnChanges(): void {\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\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 this.MaxLevel = Math.max(...this.ColumnGroupList.map((c) => c.level)) + 1;\r\n this.Levels = Array.from({ length: this.MaxLevel }, (_, i) => i);\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 this.ListDataFilter = [...this.ListData];\r\n this.SortPages();\r\n }\r\n\r\n OnHeaderCheckboxChange(event: any, field: string) {\r\n const checked: boolean = event.checked;\r\n if (!this.SelectedIdentifier) return;\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.ListData.forEach((item) => {\r\n const id = item[this.SelectedIdentifier as keyof T];\r\n const exists = idsSelected.has(id);\r\n if (exists) {\r\n (item as Record<string, boolean>)[field] = checked;\r\n }\r\n });\r\n this.IsInderteminate(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 element.removeAttribute(\"class\");\r\n }\r\n\r\n getLetter(index: number): string {\r\n if (index < 0 || index > 25) return \"\";\r\n return String.fromCharCode(97 + index);\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.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\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\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\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 }\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]=\"dataKey\"\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=\"{{ col.header }}\">{{ col.header }}</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=\"{{ col.headerTooltip }}\"\r\n tooltipPosition=\"{{ col.headerTooltipPosition }}\"\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 [binary]=\"true\"\r\n (click)=\"$event.stopPropagation()\"\r\n (onChange)=\"OnHeaderCheckboxChange($event, col.field)\"\r\n [attr.data-check]=\"col.field\"\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 === 'name' && rowData.children &&\r\n rowData.children.length > 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)=\"IsInderteminate(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 <td\r\n *ngFor=\"let col of ColumnList; let j = index\"\r\n [ngClass]=\"col.className\"\r\n >\r\n <span\r\n class=\"text-breakWord\"\r\n pTooltip=\"{{ col.tooltip }}\"\r\n tooltipPosition=\"{{ col.tooltipPosition }}\"\r\n >\r\n <ng-container *ngIf=\"col.showIndex && j === 0; else normalCell\">\r\n {{ rowIndex + 1 + \".\" + getLetter(i) }}\r\n </ng-container>\r\n <ng-template #normalCell>\r\n @if (col.field === \"id\" && i < 26) {\r\n <span>{{ childRow[col.field] + \".\" + getLetter(i) }}</span>\r\n } @else {\r\n <ng-container *ngIf=\"col.templateRef; else defaultExpandedContent\">\r\n <ng-container *ngTemplateOutlet=\"col.templateRef; context: { $implicit: childRow }\"></ng-container>\r\n </ng-container>\r\n <ng-template #defaultExpandedContent>\r\n <span [class]=\"col.field === 'name' ? 'prTable__expandIdentText' : ''\">\r\n {{ childRow[col.field] | formatCell : col.formatType }}\r\n </span>\r\n </ng-template> \r\n }\r\n </ng-template>\r\n </span>\r\n </td>\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){\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]=\"ListDataFilter.length\"\r\n [ItemsPerPage]=\"RowsPerPage\"\r\n (PageChange)=\"OnPageChange($event)\"\r\n >\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 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 || col.header\" [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 || col.header\" [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\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","export class OrderConstants {\r\n\t//DESCRIPTION\r\n\tpublic static ORDER_BY_DESC = \"desc\";\r\n\tpublic static ORDER_BY_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","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","/**\r\n * Constants for DatePicker custom button types\r\n * Use these constants instead of string literals to maintain consistency\r\n * and facilitate future changes\r\n */\r\n\r\nexport const DATEPICKER_BUTTON_TYPES = {\r\n\tTODAY: 'TODAY',\r\n\tLAST_12_MONTHS: 'LAST_12_MONTHS',\r\n\tCURRENT_YEAR: 'CURRENT_YEAR',\r\n\tCURRENT_MONTH: 'CURRENT_MONTH',\r\n} as const;\r\n\r\n/**\r\n * Type derived from the constants object\r\n * This ensures type safety while using the constants\r\n */\r\nexport type CustomButtonType =\r\n\t(typeof DATEPICKER_BUTTON_TYPES)[keyof typeof DATEPICKER_BUTTON_TYPES];\r\n","import { AfterViewChecked, ChangeDetectorRef, Component, EventEmitter, forwardRef, Input, Output, ViewChild } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { DatePicker } from \"primeng/datepicker\";\r\nimport { SelectModule } from \"primeng/select\";\r\nimport { ButtonModule } from \"primeng/button\";\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\r\nimport { CustomButtonType, DATEPICKER_BUTTON_TYPES } from \"./datepicker-button-types.constants\";\r\n\r\n@Component({\r\n\tselector: \"intelica-datepicker\",\r\n\timports: [CommonModule, FormsModule, DatePicker, SelectModule, ButtonModule],\r\n\ttemplateUrl: \"./datepicker.component.html\",\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => DatepickerComponent),\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t],\r\n})\r\nexport class DatepickerComponent implements ControlValueAccessor, AfterViewChecked {\r\n\t// Expose constants to template\r\n\treadonly DATEPICKER_BUTTON_TYPES = DATEPICKER_BUTTON_TYPES;\r\n\r\n\t/**\r\n\t * @description Readonly input\r\n\t * @default\tfalse\r\n\t * @type {boolean}\r\n\t */\r\n\t@Input() readonlyInput: boolean = false;\r\n\r\n\t/**\r\n\t * @description Show icon\r\n\t * @default\tfalse\r\n\t * @type {boolean}\r\n\t */\r\n\t@Input() showIcon: boolean = false;\r\n\r\n\t/**\r\n\t * @description Number of months to display\r\n\t * @default\t2\r\n\t * @type {number}\r\n\t */\r\n\t@Input() numberOfMonths: number = 2;\r\n\r\n\t/**\r\n\t * @description Panel style class\r\n\t * @default\t\"prDatapicker prDatapicker--dropdown\"\r\n\t * @type {string}\r\n\t */\r\n\t@Input() panelStyleClass: string = \"prDatapicker prDatapicker--dropdown\";\r\n\r\n\t/**\r\n\t * @description Manual apply mode - requires Apply button click to confirm selection\r\n\t * @default\tfalse\r\n\t * @type {boolean}\r\n\t */\r\n\t@Input() manualApply: boolean = false;\r\n\r\n\t/**\r\n\t * @description Custom buttons to show in footer\r\n\t * @default\t[]\r\n\t * @type {CustomButtonType[]}\r\n\t */\r\n\t@Input() customButtons: CustomButtonType[] = [];\r\n\r\n\t/**\r\n\t * @description Date format for display in input\r\n\t * @default\t\"dd M, yy\" (e.g., \"08 Jan, 2026\")\r\n\t * @type {string}\r\n\t */\r\n\t@Input() dateFormat?: string;\r\n\r\n\t/**\r\n\t * @description View mode for the datepicker\r\n\t * @default\t\"date\"\r\n\t * @type {\"date\" | \"month\" | \"year\"}\r\n\t */\r\n\t@Input() view: \"date\" | \"month\" | \"year\" = \"date\";\r\n\r\n\t/**\r\n\t * @description Selection mode for the datepicker\r\n\t * @default\t\"range\"\r\n\t * @type {\"single\" | \"range\"}\r\n\t */\r\n\t@Input() selectionMode: \"single\" | \"range\" = \"range\";\r\n\r\n\t/**\r\n\t * @description Change event\r\n\t * @emits {(Date | null)[] | null}\r\n\t * @type {EventEmitter<(Date | null)[] | null>}\r\n\t */\r\n\t@Output(\"onChange\") onChangeEvent: EventEmitter<(Date | null)[] | null> =\r\n\t\tnew EventEmitter();\r\n\r\n\trangeDates: (Date | null)[] | null = null;\r\n\r\n\t// Temporary selection for manual apply mode\r\n\ttempSelection: (Date | null)[] | null = null;\r\n\r\n\tviewMonth!: number;\r\n\tviewYear!: number;\r\n\r\n\tcurrentYear = new Date().getFullYear();\r\n\tcurrentMonth = new Date().getMonth();\r\n\r\n\tdefaultDate!: Date;\r\n\r\n\tprivate navigatingWithArrows = false;\r\n\r\n\t// ViewChild to access datepicker instance\r\n\t@ViewChild('datepicker') datepickerRef: any;\r\n\r\n\t// Flag to control when closing is allowed\r\n\tprivate allowClose: boolean = true;\r\n\r\n\t// Flag to prevent auto-close immediately after date selection\r\n\tprivate preventAutoClose: boolean = false;\r\n\r\n\t// Track active button\r\n\tactiveButton: CustomButtonType | null = null;\r\n\r\n\tmonths = [\r\n\t\t{ label: \"Enero\", value: 0 },\r\n\t\t{ label: \"Febrero\", value: 1 },\r\n\t\t{ label: \"Marzo\", value: 2 },\r\n\t\t{ label: \"Abril\", value: 3 },\r\n\t\t{ label: \"Mayo\", value: 4 },\r\n\t\t{ label: \"Junio\", value: 5 },\r\n\t\t{ label: \"Julio\", value: 6 },\r\n\t\t{ label: \"Agosto\", value: 7 },\r\n\t\t{ label: \"Septiembre\", value: 8 },\r\n\t\t{ label: \"Octubre\", value: 9 },\r\n\t\t{ label: \"Noviembre\", value: 10 },\r\n\t\t{ label: \"Diciembre\", value: 11 },\r\n\t];\r\n\r\n\tyears: number[] = [];\r\n\r\n\tonChangeFn: any = () => {};\r\n\tonTouchedFn: any = () => {};\r\n\r\n\tconstructor(private cdr: ChangeDetectorRef) {\r\n\t\tconst today = new Date();\r\n\r\n\t\tthis.viewMonth = today.getMonth();\r\n\t\tthis.viewYear = today.getFullYear();\r\n\r\n\t\tthis.defaultDate = new Date(this.viewYear, this.viewMonth, 1);\r\n\r\n\t\tconst YEARS_BACK = 10;\r\n\r\n\t\tthis.years = [];\r\n\t\tfor (let y = this.viewYear - YEARS_BACK; y <= this.viewYear; y++) {\r\n\t\t\tthis.years.push(y);\r\n\t\t}\r\n\t}\r\n\r\n\tget filteredMonths() {\r\n\t\tif (this.navigatingWithArrows) {\r\n\t\t\treturn this.months;\r\n\t\t}\r\n\r\n\t\tif (this.viewYear === this.currentYear) {\r\n\t\t\treturn this.months.filter(m => m.value >= this.currentMonth);\r\n\t\t}\r\n\r\n\t\treturn this.months;\r\n\t}\r\n\r\n\tgetDateFormat(): string {\r\n\t\tif (this.dateFormat) {\r\n\t\t\treturn this.dateFormat;\r\n\t\t}\r\n\r\n\t\tswitch (this.view) {\r\n\t\t\tcase 'month':\r\n\t\t\t\treturn 'M, yy';\r\n\t\t\tcase 'year':\r\n\t\t\t\treturn 'yy';\r\n\t\t\tdefault:\r\n\t\t\t\treturn 'dd M, yy';\r\n\t\t}\r\n\t}\r\n\r\n\tprivate normalizeMonthYear(month: number, year: number) {\r\n\t\tif (month > 11) {\r\n\t\t\treturn { month: 0, year: year + 1 };\r\n\t\t}\r\n\r\n\t\tif (month < 0) {\r\n\t\t\treturn { month: 11, year: year - 1 };\r\n\t\t}\r\n\r\n\t\treturn { month, year };\r\n\t}\r\n\r\n\tonMonthChange(event: any) {\r\n\t\tthis.navigatingWithArrows = true;\r\n\t\tconst normalized = this.normalizeMonthYear(event.month, event.year);\r\n\t\tthis.viewMonth = normalized.month;\r\n\t\tthis.viewYear = normalized.year;\r\n\t}\r\n\r\n\tonYearChange(event: any) {\r\n\t\tthis.navigatingWithArrows = true;\r\n\t\tconst normalized = this.normalizeMonthYear(event.month, event.year);\r\n\t\tthis.viewMonth = normalized.month;\r\n\t\tthis.viewYear = normalized.year;\r\n\t}\r\n\r\n\tonViewChange() {\r\n\t\tthis.navigatingWithArrows = false;\r\n\t\tif (this.viewYear === this.currentYear && this.viewMonth < this.currentMonth) {\r\n\t\t\tthis.viewMonth = this.currentMonth;\r\n\t\t}\r\n\t\tthis.defaultDate = new Date(this.viewYear, this.viewMonth, 1);\r\n\t}\r\n\r\n\t// Internal model for the datepicker (handles manual apply mode)\r\n\tget internalModel(): (Date | null)[] | null {\r\n\t\t// In manual apply mode, show temp selection for the calendar\r\n\t\t// In normal mode, show the actual value\r\n\t\treturn this.manualApply ? this.tempSelection : this.rangeDates;\r\n\t}\r\n\r\n\t// Handle model changes from datepicker\r\n\tonModelChange(val: (Date | null)[] | null): void {\r\n\t\t// Reset active button when user manually selects dates\r\n\t\tthis.activeButton = null;\r\n\r\n\t\tif (this.manualApply) {\r\n\t\t\t// In manual apply mode, only store in temp selection\r\n\t\t\tthis.tempSelection = val;\r\n\r\n\t\t\t// Prevent auto-close immediately after date selection\r\n\t\t\tthis.preventAutoClose = true;\r\n\r\n\t\t\t// After a brief moment, allow closing by clicking outside\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis.preventAutoClose = false;\r\n\t\t\t}, 200);\r\n\t\t} else {\r\n\t\t\t// In normal mode, update the actual value immediately\r\n\t\t\tthis.rangeDates = val;\r\n\t\t\tthis.onChangeEvent.emit(this.rangeDates);\r\n\t\t\tthis.onChangeFn(this.rangeDates);\r\n\t\t\tthis.onTouchedFn();\r\n\t\t}\r\n\t}\r\n\r\n\twriteValue(value: (Date | null)[] | null): void {\r\n\t\tthis.rangeDates = value;\r\n\t\tif (this.manualApply) {\r\n\t\t\tthis.tempSelection = value;\r\n\t\t}\r\n\t}\r\n\r\n\tregisterOnChange(fn: any): void {\r\n\t\tthis.onChangeFn = fn;\r\n\t}\r\n\r\n\tregisterOnTouched(fn: any): void {\r\n\t\tthis.onTouchedFn = fn;\r\n\t}\r\n\r\n\tsetDisabledState?(isDisabled: boolean): void {\r\n\t\t/* opcional: implementar si necesitas deshabilitar el componente desde ngModel */\r\n\t}\r\n\r\n\tonDateChange() {\r\n\t\tthis.onChangeEvent.emit(this.rangeDates);\r\n\t\tthis.onChangeFn(this.rangeDates);\r\n\t\tthis.onTouchedFn();\r\n\t}\r\n\r\n\t// Event handlers for open/close\r\n\thandleOpen(): void {\r\n\t\tif (this.manualApply) {\r\n\t\t\t// Initialize temp selection with current value\r\n\t\t\tthis.tempSelection = this.rangeDates;\r\n\t\t\t// Reset flags\r\n\t\t\tthis.allowClose = false;\r\n\t\t\tthis.preventAutoClose = false;\r\n\r\n\t\t\t// Ensure hideOverlay is overridden every time the overlay opens\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis.setupHideOverlayOverride();\r\n\t\t\t}, 0);\r\n\t\t}\r\n\t}\r\n\r\n\thandleClose(): void {\r\n\t\tif (this.manualApply) {\r\n\t\t\t// Reset temp selection to current value (discards changes if not applied)\r\n\t\t\tthis.tempSelection = this.rangeDates;\r\n\t\t\t// Reset flags\r\n\t\t\tthis.allowClose = false;\r\n\t\t\tthis.preventAutoClose = false;\r\n\r\n\t\t\t// Force the datepicker to refresh its internal model to show the original value\r\n\t\t\t// Use setTimeout to ensure the change happens after the close animation\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tif (this.datepickerRef) {\r\n\t\t\t\t\t// Update the datepicker's internal value\r\n\t\t\t\t\tthis.datepickerRef.value = this.rangeDates;\r\n\t\t\t\t\t// Trigger change detection\r\n\t\t\t\t\tthis.cdr.detectChanges();\r\n\t\t\t\t}\r\n\t\t\t}, 0);\r\n\t\t}\r\n\t}\r\n\r\n\t// Apply button callback\r\n\tapplyCallback(event: any): void {\r\n\t\t// Apply the temporary selection to the actual value\r\n\t\tthis.rangeDates = this.tempSelection;\r\n\t\tthis.onChangeEvent.emit(this.rangeDates);\r\n\t\tthis.onChangeFn(this.rangeDates);\r\n\t\tthis.onTouchedFn();\r\n\r\n\t\t// Allow closing\r\n\t\tthis.allowClose = true;\r\n\t\tthis.preventAutoClose = false;\r\n\r\n\t\t// Close the datepicker overlay\r\n\t\tif (this.datepickerRef) {\r\n\t\t\tthis.datepickerRef.overlayVisible = false;\r\n\t\t}\r\n\t}\r\n\r\n\t// Clear button callback\r\n\tclearCallback(event: any): void {\r\n\t\t// Reset active button\r\n\t\tthis.activeButton = null;\r\n\r\n\t\tif (this.manualApply) {\r\n\t\t\t// In manual apply mode, clear both temp selection and actual value\r\n\t\t\tthis.tempSelection = null;\r\n\t\t\tthis.rangeDates = null;\r\n\t\t\tthis.onChangeEvent.emit(this.rangeDates);\r\n\t\t\tthis.onChangeFn(this.rangeDates);\r\n\t\t\tthis.onTouchedFn();\r\n\t\t\t// Allow closing\r\n\t\t\tthis.allowClose = true;\r\n\t\t\tthis.preventAutoClose = false;\r\n\t\t} else {\r\n\t\t\tthis.rangeDates = null;\r\n\t\t\tthis.onChangeEvent.emit(this.rangeDates);\r\n\t\t\tthis.onChangeFn(this.rangeDates);\r\n\t\t\tthis.onTouchedFn();\r\n\t\t}\r\n\r\n\t\t// Close the datepicker overlay\r\n\t\tif (this.datepickerRef) {\r\n\t\t\tthis.datepickerRef.overlayVisible = false;\r\n\t\t}\r\n\t}\r\n\r\n\t// Custom button callbacks\r\n\ttodayCallback(event: any): void {\r\n\t\tconst today = new Date();\r\n\t\tconst dateRange: (Date | null)[] = [today, today];\r\n\r\n\t\tthis.activeButton = DATEPICKER_BUTTON_TYPES.TODAY;\r\n\r\n\t\tif (this.manualApply) {\r\n\t\t\tthis.tempSelection = dateRange;\r\n\t\t} else {\r\n\t\t\tthis.rangeDates = dateRange;\r\n\t\t\tthis.onChangeEvent.emit(this.rangeDates);\r\n\t\t\tthis.onChangeFn(this.rangeDates);\r\n\t\t\tthis.onTouchedFn();\r\n\t\t}\r\n\t}\r\n\r\n\tlast12MonthsCallback(event: any): void {\r\n\t\tconst endDate = new Date();\r\n\t\tconst startDate = new Date();\r\n\t\tstartDate.setMonth(startDate.getMonth() - 12);\r\n\t\tconst dateRange: (Date | null)[] = [startDate, endDate];\r\n\r\n\t\tthis.activeButton = DATEPICKER_BUTTON_TYPES.LAST_12_MONTHS;\r\n\r\n\t\tif (this.manualApply) {\r\n\t\t\tthis.tempSelection = dateRange;\r\n\t\t} else {\r\n\t\t\tthis.rangeDates = dateRange;\r\n\t\t\tthis.onChangeEvent.emit(this.rangeDates);\r\n\t\t\tthis.onChangeFn(this.rangeDates);\r\n\t\t\tthis.onTouchedFn();\r\n\t\t}\r\n\t}\r\n\r\n\tcurrentYearCallback(event: any): void {\r\n\t\tconst today = new Date();\r\n\t\tconst startDate = new Date(today.getFullYear(), 0, 1); // January 1st\r\n\t\tconst endDate = new Date(today.getFullYear(), 11, 31); // December 31st\r\n\t\tconst dateRange: (Date | null)[] = [startDate, endDate];\r\n\r\n\t\tthis.activeButton = DATEPICKER_BUTTON_TYPES.CURRENT_YEAR;\r\n\r\n\t\tif (this.manualApply) {\r\n\t\t\tthis.tempSelection = dateRange;\r\n\t\t} else {\r\n\t\t\tthis.rangeDates = dateRange;\r\n\t\t\tthis.onChangeEvent.emit(this.rangeDates);\r\n\t\t\tthis.onChangeFn(this.rangeDates);\r\n\t\t\tthis.onTouchedFn();\r\n\t\t}\r\n\t}\r\n\r\n\tcurrentMonthCallback(event: any): void {\r\n\t\tconst today = new Date();\r\n\t\tconst startDate = new Date(today.getFullYear(), today.getMonth(), 1); // First day of month\r\n\t\tconst lastDay = new Date(today.getFullYear(), today.getMonth() + 1, 0).getDate();\r\n\t\tconst endDate = new Date(today.getFullYear(), today.getMonth(), lastDay); // Last day of month\r\n\t\tconst dateRange: (Date | null)[] = [startDate, endDate];\r\n\r\n\t\tthis.activeButton = DATEPICKER_BUTTON_TYPES.CURRENT_MONTH;\r\n\r\n\t\tif (this.manualApply) {\r\n\t\t\tthis.tempSelection = dateRange;\r\n\t\t} else {\r\n\t\t\tthis.rangeDates = dateRange;\r\n\t\t\tthis.onChangeEvent.emit(this.rangeDates);\r\n\t\t\tthis.onChangeFn(this.rangeDates);\r\n\t\t\tthis.onTouchedFn();\r\n\t\t}\r\n\t}\r\n\r\n\t// Helper method to check if a button should be shown\r\n\tshouldShowButton(buttonType: CustomButtonType): boolean {\r\n\t\treturn this.customButtons.includes(buttonType);\r\n\t}\r\n\r\n\t// Helper method to get button class\r\n\tgetButtonClass(buttonType: CustomButtonType): string {\r\n\t\treturn this.activeButton === buttonType ? 'btnActive' : 'btnSecond';\r\n\t}\r\n\r\n\tngAfterViewChecked(): void {\r\n\t\t// Sync viewYear with PrimeNG's internal year when in month view\r\n\t\tif (this.view === 'month' && this.datepickerRef && this.datepickerRef.currentYear !== undefined) {\r\n\t\t\tif (this.viewYear !== this.datepickerRef.currentYear) {\r\n\t\t\t\t// Use setTimeout to avoid ExpressionChangedAfterItHasBeenCheckedError\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.viewYear = this.datepickerRef.currentYear;\r\n\t\t\t\t}, 0);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate setupHideOverlayOverride(): void {\r\n\t\tif (!this.datepickerRef) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Check if hideOverlay method exists\r\n\t\tif (!this.datepickerRef.hideOverlay) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Save the original method only once\r\n\t\tif (!this.datepickerRef._hideOverlayOriginal) {\r\n\t\t\tthis.datepickerRef._hideOverlayOriginal = this.datepickerRef.hideOverlay.bind(this.datepickerRef);\r\n\t\t}\r\n\r\n\t\t// Override the hideOverlay method\r\n\t\tthis.datepickerRef.hideOverlay = () => {\r\n\t\t\t// In manual apply mode, prevent auto-close only immediately after date selection\r\n\t\t\tif (this.manualApply && this.preventAutoClose) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// In manual apply mode, if closing without Apply button (clicking outside)\r\n\t\t\t// Reset temp selection to original value BEFORE closing\r\n\t\t\tif (this.manualApply && !this.allowClose) {\r\n\t\t\t\t// Reset temp selection to discard changes\r\n\t\t\t\tthis.tempSelection = this.rangeDates;\r\n\t\t\t\t// Update datepicker's internal value\r\n\t\t\t\tthis.datepickerRef.value = this.rangeDates;\r\n\t\t\t}\r\n\r\n\t\t\t// Allow closing\r\n\t\t\tthis.datepickerRef._hideOverlayOriginal();\r\n\t\t};\r\n\t}\r\n}\r\n","<p-datepicker\r\n\t#datepicker\r\n\t[class]=\"panelStyleClass\"\r\n\t[ngModel]=\"internalModel\"\r\n\t(ngModelChange)=\"onModelChange($event)\"\r\n\t[selectionMode]=\"selectionMode\"\r\n\t[numberOfMonths]=\"numberOfMonths\"\r\n\t[readonlyInput]=\"readonlyInput\"\r\n\t[showIcon]=\"showIcon\"\r\n\t[view]=\"view\"\r\n\t[dateFormat]=\"getDateFormat()\"\r\n\t[defaultDate]=\"defaultDate\"\r\n\t(onMonthChange)=\"onMonthChange($event)\"\r\n\t(onYearChange)=\"onYearChange($event)\"\r\n\t(onShow)=\"handleOpen()\"\r\n\t(onHide)=\"handleClose()\"\r\n\t>\r\n\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"prDatapicker__header\">\r\n\t\t\t<div class=\"prDatapicker__content\">\r\n\r\n\t\t\t\t<!-- MES -->\r\n\t\t\t\t<p-select\r\n\t\t\t\t\t*ngIf=\"view === 'date'\"\r\n\t\t\t\t\tclass=\"prSelect\"\r\n\t\t\t\t\t[options]=\"filteredMonths\"\r\n\t\t\t\t\toptionLabel=\"label\"\r\n\t\t\t\t\toptionValue=\"value\"\r\n\t\t\t\t\t[(ngModel)]=\"viewMonth\"\r\n\t\t\t\t\t(ngModelChange)=\"onViewChange()\"\r\n\t\t\t\t\tdropdownIcon=\"icon icon-arrow-down\">\r\n\t\t\t\t</p-select>\r\n\r\n\t\t\t\t<!-- AÑO -->\r\n\t\t\t\t<p-select\r\n\t\t\t\t\t*ngIf=\"view === 'date' || view === 'month'\"\r\n\t\t\t\t\tclass=\"prSelect\"\r\n\t\t\t\t\t[options]=\"years\"\r\n\t\t\t\t\t[(ngModel)]=\"viewYear\"\r\n\t\t\t\t\t(ngModelChange)=\"onViewChange()\"\r\n\t\t\t\t\tdropdownIcon=\"icon icon-arrow-down\"\r\n\t\t\t\t\t[virtualScroll]=\"true\"\r\n\t\t\t\t\t[virtualScrollItemSize]=\"38\">\r\n\t\t\t\t</p-select>\r\n\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-template>\r\n\t<ng-template pTemplate=\"footer\" *ngIf=\"selectionMode === 'range'\">\r\n\t\t<div class=\"footerDatapicker footerDatapicker--range\">\r\n\t\t\t<div class=\"footerDatapicker__box\">\r\n\t\t\t\t<!-- TODAY button -->\r\n\t\t\t\t<p-button\r\n\t\t\t\t\t*ngIf=\"shouldShowButton(DATEPICKER_BUTTON_TYPES.TODAY)\"\r\n\t\t\t\t\t[class]=\"getButtonClass(DATEPICKER_BUTTON_TYPES.TODAY)\"\r\n\t\t\t\t\tlabel=\"Today\"\r\n\t\t\t\t\t(click)=\"todayCallback($event)\">\r\n\t\t\t\t</p-button>\r\n\t\t\t\t<!-- LAST 12 MONTHS button -->\r\n\t\t\t\t<p-button\r\n\t\t\t\t\t*ngIf=\"shouldShowButton(DATEPICKER_BUTTON_TYPES.LAST_12_MONTHS)\"\r\n\t\t\t\t\t[class]=\"getButtonClass(DATEPICKER_BUTTON_TYPES.LAST_12_MONTHS)\"\r\n\t\t\t\t\tlabel=\"Last 12 months\"\r\n\t\t\t\t\t(click)=\"last12MonthsCallback($event)\">\r\n\t\t\t\t</p-button>\r\n\t\t\t\t<!-- CURRENT YEAR button -->\r\n\t\t\t\t<p-button\r\n\t\t\t\t\t*ngIf=\"shouldShowButton(DATEPICKER_BUTTON_TYPES.CURRENT_YEAR)\"\r\n\t\t\t\t\t[class]=\"getButtonClass(DATEPICKER_BUTTON_TYPES.CURRENT_YEAR)\"\r\n\t\t\t\t\tlabel=\"Current year\"\r\n\t\t\t\t\t(click)=\"currentYearCallback($event)\">\r\n\t\t\t\t</p-button>\r\n\t\t\t\t<!-- CURRENT MONTH button -->\r\n\t\t\t\t<p-button\r\n\t\t\t\t\t*ngIf=\"shouldShowButton(DATEPICKER_BUTTON_TYPES.CURRENT_MONTH)\"\r\n\t\t\t\t\t[class]=\"getButtonClass(DATEPICKER_BUTTON_TYPES.CURRENT_MONTH)\"\r\n\t\t\t\t\tlabel=\"Current month\"\r\n\t\t\t\t\t(click)=\"currentMonthCallback($event)\">\r\n\t\t\t\t</p-button>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"footerDatapicker__box\">\r\n\t\t\t\t<!-- Apply button - shown only in manual apply mode -->\r\n\t\t\t\t<p-button\r\n\t\t\t\t\t*ngIf=\"manualApply\"\r\n\t\t\t\t\tclass=\"btnPrimary\"\r\n\t\t\t\t\tlabel=\"Apply\"\r\n\t\t\t\t\t(click)=\"applyCallback($event)\">\r\n\t\t\t\t</p-button>\r\n\t\t\t\t<!-- Clear button - always shown -->\r\n\t\t\t\t<p-button\r\n\t\t\t\t\tclass=\"btnSecond\"\r\n\t\t\t\t\tlabel=\"Clear\"\r\n\t\t\t\t\t(click)=\"clearCallback($event)\">\r\n\t\t\t\t</p-button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n</p-datepicker>\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 { AfterContentInit, ChangeDetectorRef, Component, ContentChild, ContentChildren, EventEmitter, inject, Input, OnChanges, Output, QueryList, SimpleChanges, TemplateRef } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { BadgeModule } from \"primeng/badge\";\r\nimport { CheckboxModule } from \"primeng/checkbox\";\r\nimport { IconField } from \"primeng/iconfield\";\r\nimport { InputIcon } from \"primeng/inputicon\";\r\nimport { InputNumber } from \"primeng/inputnumber\";\r\nimport { InputText, InputTextModule } from \"primeng/inputtext\";\r\nimport { Paginator } from \"primeng/paginator\";\r\nimport { Select } from \"primeng/select\";\r\nimport { TableModule } from \"primeng/table\";\r\nimport { TooltipModule } from \"primeng/tooltip\";\r\nimport { FormatCellPipe } from \"../../pipes/formatCell.pipe\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\nimport { ColumnComponent, ColumnGroupComponent, RowResumenComponent } from \"../table/column.component\";\r\nimport { SortFieldModel } from \"../table/model/sort.model\";\r\nimport { QueryParametersModel } from \"./model/query.model\";\r\n\r\n@Component({\r\n\tselector: \"intelica-table-fetch\",\r\n\tstandalone: true,\r\n\timports: [\r\n\t\tInputIcon,\r\n\t\tIconField,\r\n\t\tInputText,\r\n\t\tInputTextModule,\r\n\t\tInputNumber,\r\n\t\tPaginator,\r\n\t\tFormsModule,\r\n\t\tCommonModule,\r\n\t\tTableModule,\r\n\t\tSelect,\r\n\t\tBadgeModule,\r\n\t\tTooltipModule,\r\n\t\tTermPipe,\r\n\t\tCheckboxModule,\r\n\t\tFormsModule,\r\n\t\tFormatCellPipe,\r\n\t],\r\n\ttemplateUrl: \"./table-fetch.component.html\",\r\n\tproviders: [FormatCellPipe, DatePipe],\r\n})\r\nexport class TableFetchComponent<T> implements OnChanges, AfterContentInit {\r\n\treadonly GlobalTermService = inject(GlobalTermService);\r\n\r\n\t@Input() ComponentId: string = \"\";\r\n\t@Input() ShowRowPerPage: boolean = true;\r\n\t@Input() ShowSearch: boolean = false;\r\n\t@Input() ShowPagination: boolean = false;\r\n\t@Input() RowsPerPage: number = 10;\r\n\t@Input() ShowCheckbox: boolean = false;\r\n\t@Input() ShowIndex: boolean = false;\r\n\t@Input() ClassName: string = \"\";\r\n\t@Input() DefaultSortField: string = \"\";\r\n\t@Input() scrollHeight: string = \"400px\";\r\n\t@Input() scrollable: boolean = false;\r\n\t@Input() AllowedPageSizes: number[] = [10, 25, 50, 100];\r\n\t@Input() tableStyle: { [klass: string]: any } = {};\r\n\tLevels: number[] = [];\r\n\t@Input() FilteredList: T[] = [];\r\n\t@Input() TotalItems: number = 0;\r\n\tTotalRecords: number = 0;\r\n\tIsPaginatorInputSearch: boolean = false;\r\n\r\n\t@Output() EmitQueryParametersChange = new EventEmitter<QueryParametersModel>();\r\n\r\n\t@ContentChildren(ColumnComponent) Columns!: QueryList<ColumnComponent>;\r\n\t@ContentChildren(ColumnGroupComponent)\r\n\tColumnGroups!: QueryList<ColumnGroupComponent>;\r\n\t@ContentChildren(RowResumenComponent)\r\n\tRowResumenGroups!: QueryList<RowResumenComponent>;\r\n\r\n\t@ContentChild(\"additionalTemplate\") AdditionalTemplate?: TemplateRef<any>;\r\n\t@ContentChild(\"additionalCentralTemplate\")\r\n\tAdditionalCentralTemplate?: TemplateRef<any>;\r\n\t@ContentChild(\"additionalExtendedTemplate\")\r\n\tAdditionalExtendedTemplate?: TemplateRef<any>;\r\n\t@Output() EmitSortEvent = new EventEmitter<SortFieldModel[]>();\r\n\r\n\tColumnList: ColumnComponent[] = [];\r\n\tColumnGroupList: ColumnGroupComponent[] = [];\r\n\tRowResumenList: RowResumenComponent[] = [];\r\n\r\n\t@Input() CurrentPage: number = 1;\r\n\t@Input() SortOrder: number = 1;\r\n\t@Input() SortField: keyof T | null = null;\r\n\tMaxLevel: number = 0;\r\n\tListDataTable: T[] = [];\r\n\tSearchInput: string = \"\";\r\n\r\n\tconstructor(private cdr: ChangeDetectorRef) {}\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tif (changes[\"FilteredList\"] || changes[\"RowsPerPage\"] || changes[\"CurrentPage\"]) {\r\n\t\t\tthis.UpdatePages();\r\n\t\t}\r\n\r\n\t\tif (changes[\"SortField\"] || changes[\"SortOrder\"]) {\r\n\t\t\tthis.EmitSortEvent.emit([\r\n\t\t\t\t{\r\n\t\t\t\t\tsortOrder: this.SortOrder,\r\n\t\t\t\t\tsortField: this.SortField?.toString() ?? \"\",\r\n\t\t\t\t},\r\n\t\t\t]);\r\n\t\t}\r\n\t}\r\n\r\n\tngAfterContentInit() {\r\n\t\tthis.captureColumns();\r\n\t\tthis.captureGroups();\r\n\t\tthis.captureResumen();\r\n\r\n\t\tthis.Columns.changes.subscribe(() => {\r\n\t\t\tthis.captureColumns();\r\n\t\t\tthis.cdr.markForCheck();\r\n\t\t});\r\n\r\n\t\tthis.ColumnGroups.changes.subscribe(() => {\r\n\t\t\tthis.captureGroups();\r\n\t\t\tthis.cdr.markForCheck();\r\n\t\t});\r\n\r\n\t\tthis.RowResumenGroups.changes.subscribe(() => {\r\n\t\t\tthis.captureResumen();\r\n\t\t\tthis.cdr.markForCheck();\r\n\t\t});\r\n\t}\r\n\r\n\tprivate captureColumns() {\r\n\t\tthis.ColumnList = this.Columns?.toArray() ?? [];\r\n\t}\r\n\r\n\tprivate captureGroups() {\r\n\t\tthis.ColumnGroupList = this.ColumnGroups?.toArray() ?? [];\r\n\r\n\t\tconst levels = this.ColumnGroupList.map(c => c.level);\r\n\t\tthis.MaxLevel = levels.length ? Math.max(...levels) + 1 : 1;\r\n\t\tthis.Levels = Array.from({ length: this.MaxLevel }, (_, i) => i);\r\n\t}\r\n\r\n\tprivate captureResumen() {\r\n\t\tthis.RowResumenList = this.RowResumenGroups?.toArray() ?? [];\r\n\t}\r\n\r\n\tOnSort(field: string) {\r\n\t\tif (this.SortField === field) {\r\n\t\t\tthis.SortOrder *= -1;\r\n\t\t} else {\r\n\t\t\tthis.SortField = field as keyof T;\r\n\t\t\tthis.SortOrder = 1;\r\n\t\t}\r\n\t\tthis.ExecuteSearch({});\r\n\t}\r\n\tUpdatePages() {\r\n\t\tif (this.ShowPagination) {\r\n\t\t\tthis.TotalRecords = this.TotalItems;\r\n\r\n\t\t\tconst start = (this.CurrentPage - 1) * this.RowsPerPage;\r\n\t\t\tconst end = start + this.RowsPerPage;\r\n\t\t\tthis.ListDataTable = this.FilteredList.slice(start, end);\r\n\t\t} else {\r\n\t\t\tthis.ListDataTable = this.FilteredList;\r\n\t\t}\r\n\t}\r\n\r\n\tOnPageChange(event: { page?: number; rows?: number } | number): void {\r\n\t\tif (typeof event === \"number\") {\r\n\t\t\tthis.CurrentPage = event;\r\n\t\t} else {\r\n\t\t\tif (typeof event?.rows === \"number\") {\r\n\t\t\t\tthis.RowsPerPage = event.rows;\r\n\t\t\t}\r\n\t\t\tif (typeof event?.page === \"number\") {\r\n\t\t\t\tthis.CurrentPage = event.page + 1;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.IsPaginatorInputSearch = true;\r\n\t\tthis.ExecuteSearch({});\r\n\t}\r\n\r\n\tResetTable() {\r\n\t\tthis.CurrentPage = 1;\r\n\t\tthis.ExecuteSearch({});\r\n\t}\r\n\r\n\tExecuteSearch(event?: any): void {\r\n\t\tif (event?.fieldText !== undefined && event?.fieldText !== \"\") {\r\n\t\t\tthis.SearchInput = event;\r\n\t\t}\r\n\r\n\t\tif (this.SearchInput !== undefined && this.SearchInput !== \"\" && !this.IsPaginatorInputSearch) {\r\n\t\t\tthis.CurrentPage = 1;\r\n\t\t}\r\n\r\n\t\tconst newQueryParameters: QueryParametersModel = {\r\n\t\t\tFilterValue: this.SearchInput.trim(),\r\n\t\t\tOrderBy: this.SortField ? String(this.SortField) : undefined,\r\n\t\t\tSortDirection: this.SortOrder === 1 ? \"asc\" : \"desc\",\r\n\t\t\tPageNumber: this.CurrentPage,\r\n\t\t\tPageSize: this.RowsPerPage,\r\n\t\t};\r\n\r\n\t\tthis.EmitQueryParametersChange.emit(newQueryParameters);\r\n\t\tthis.UpdatePages();\r\n\t\tthis.IsPaginatorInputSearch = false;\r\n\t}\r\n\r\n\tOnRowsPerPageChange(value: number): void {\r\n\t\tthis.RowsPerPage = value;\r\n\t\tthis.CurrentPage = 1;\r\n\t\tthis.ExecuteSearch({});\r\n\t}\r\n\tClearSearch() {\r\n\t\tthis.SearchInput = \"\";\r\n\t}\r\n\tget TotalPages(): number {\r\n\t\treturn Math.ceil(this.TotalRecords / this.RowsPerPage);\r\n\t}\r\n\r\n\tget RenderPanel(): boolean {\r\n\t\treturn Boolean(this.AdditionalTemplate) || this.ShowSearch || Boolean(this.AdditionalCentralTemplate) || Boolean(this.AdditionalExtendedTemplate);\r\n\t}\r\n\r\n\tonChangeSelectPage(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.ExecuteSearch({});\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.ExecuteSearch({});\r\n\t}\r\n}\r\n","<div class=\"prTable\">\r\n\t@if (RenderPanel) {\r\n\t\t<div class=\"grPanel\">\r\n\t\t\t<div class=\"prCard__row justify-content-end\">\r\n\t\t\t\t<div class=\"prCard__actionflex\">\r\n\t\t\t\t\t@if (AdditionalTemplate) {\r\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"AdditionalTemplate\"></ng-container>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t@if (ShowSearch) {\r\n\t\t\t\t\t<div class=\"ptSearch\">\r\n\t\t\t\t\t\t<p-iconfield>\r\n\t\t\t\t\t\t\t<input type=\"text\" class=\"prInputText\" pInputText placeholder=\"{{ 'LBL_SEARCH_SELECT' | term: GlobalTermService.languageCode }}\" [(ngModel)]=\"SearchInput\" (keydown.enter)=\"ExecuteSearch()\" />\r\n\t\t\t\t\t\t\t<p-inputicon>\r\n\t\t\t\t\t\t\t\t<button class=\"ptSearch__icon ptSearch__icon--close\">\r\n\t\t\t\t\t\t\t\t\t<i class=\"icon icon-cancel\" *ngIf=\"SearchInput\" (click)=\"ClearSearch()\"></i>\r\n\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t<span class=\"ptSearch__icon ptSearch__icon--divider\" *ngIf=\"SearchInput\"></span>\r\n\t\t\t\t\t\t\t\t<button class=\"ptSearch__icon ptSearch__icon--search\">\r\n\t\t\t\t\t\t\t\t\t<i class=\"icon icon-search\"></i>\r\n\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t</p-inputicon>\r\n\t\t\t\t\t\t</p-iconfield>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t\t<!-- -->\r\n\t\t\t\t@if (AdditionalCentralTemplate) {\r\n\t\t\t\t\t<div class=\"prTableTools__new prTableTools__new--right\">\r\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"AdditionalCentralTemplate\"></ng-container>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t@if (AdditionalExtendedTemplate) {\r\n\t\t\t<div class=\"prTableTools justify-content-start\">\r\n\t\t\t\t<ng-container *ngTemplateOutlet=\"AdditionalExtendedTemplate\"></ng-container>\r\n\t\t\t</div>\r\n\t\t}\r\n\t}\r\n\t<p-table\r\n\t\tclass=\"prTable\"\r\n\t\t[ngClass]=\"ClassName\"\r\n\t\t[value]=\"FilteredList\"\r\n\t\tresponsiveLayout=\"scroll\"\r\n\t\t[sortField]=\"DefaultSortField\"\r\n\t\t[sortOrder]=\"SortOrder\"\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<!-- Cabecera con columnas agrupadas -->\r\n\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t@for (level of Levels; track $index) {\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t@for (col of ColumnGroupList; track $index) {\r\n\t\t\t\t\t\t@if (col.level === level) {\r\n\t\t\t\t\t\t\t<th [attr.colspan]=\"col.colspan\" [attr.rowspan]=\"col.rowspan\" [pSortableColumn]=\"col.sortable ? col.field : ''\" [style.min-width]=\"col.minWidth\" (click)=\"col.sortable && OnSort(col.field)\">\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span tooltipStyleClass=\"prTooltip\" F [pTooltip]=\"col.headerTooltip || col.header\" [tooltipPosition]=\"col.headerTooltipPosition || 'top'\">\r\n\t\t\t\t\t\t\t\t\t\t{{ col.header }}\r\n\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t<p-sortIcon *ngIf=\"col.sortable\" [field]=\"col.field\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</th>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t@if (ShowCheckbox && level === 0 && ColumnGroupList.length != 0) {\r\n\t\t\t\t\t\t<th class=\"text-center\" style=\"width: 4%\" [attr.rowspan]=\"MaxLevel === 1 ? 2 : MaxLevel\">\r\n\t\t\t\t\t\t\t<p-tableHeaderCheckbox class=\"prCheckbox\" />\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t}\r\n\t\t\t\t</tr>\r\n\t\t\t}\r\n\r\n\t\t\t<tr>\r\n\t\t\t\t@for (col of ColumnList; track $index) {\r\n\t\t\t\t\t@if (col.showHeader) {\r\n\t\t\t\t\t\t<th\r\n\t\t\t\t\t\t\t[class]=\"col.className\"\r\n\t\t\t\t\t\t\t[pSortableColumn]=\"!col.isChecboxColumn && col.sortable ? col.field : ''\"\r\n\t\t\t\t\t\t\t[style.width]=\"col.width\"\r\n\t\t\t\t\t\t\t[style.min-width]=\"col.minWidth\"\r\n\t\t\t\t\t\t\t(click)=\"!col.isChecboxColumn && col.sortable && OnSort(col.field)\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<div class=\"prTable__header\">\r\n\t\t\t\t\t\t\t\t<span tooltipStyleClass=\"prTooltip\" [pTooltip]=\"col.headerTooltip || col.header\" [tooltipPosition]=\"col.headerTooltipPosition || 'top'\">\r\n\t\t\t\t\t\t\t\t\t{{ col.header }}\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t@if (!col.showIndex) {\r\n\t\t\t\t\t\t\t\t\t<p-sortIcon *ngIf=\"col.sortable\" [field]=\"col.field\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t@if (ShowCheckbox && ColumnGroupList.length == 0) {\r\n\t\t\t\t\t<th class=\"text-center\" style=\"width: 4%\">\r\n\t\t\t\t\t\t<p-tableHeaderCheckbox class=\"prCheckbox\" />\r\n\t\t\t\t\t</th>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\r\n\t\t\t@if (FilteredList.length > 0 && RowResumenList.length > 0) {\r\n\t\t\t\t<tr class=\"fixedRow\">\r\n\t\t\t\t\t@for (col of RowResumenList; track $index) {\r\n\t\t\t\t\t\t<td [ngClass]=\"col.className\" [attr.colspan]=\"col.colspan\" [attr.rowspan]=\"col.rowspan\">\r\n\t\t\t\t\t\t\t@if (col.templateRef) {\r\n\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"col.templateRef\"></ng-container>\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t}\r\n\t\t\t\t</tr>\r\n\t\t\t}\r\n\t\t</ng-template>\r\n\r\n\t\t<!-- Cuerpo de la tabla -->\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 $index) {\r\n\t\t\t\t\t<td [ngClass]=\"col.className\">\r\n\t\t\t\t\t\t@if (col.showIndex) {\r\n\t\t\t\t\t\t\t{{ rowIndex + 1 + (CurrentPage - 1) * RowsPerPage }}\r\n\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t@if (col.templateRef) {\r\n\t\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"col.templateRef; context: { $implicit: rowData }\"></ng-container>\r\n\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t<span class=\"text-breakWord\" tooltipStyleClass=\"prTooltip\" pTooltip=\"{{ col.tooltip }}\" tooltipPosition=\"{{ col.tooltipPosition }}\">\r\n\t\t\t\t\t\t\t\t\t{{ rowData[col.field] | formatCell: col.formatType }}\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t\t@if (ShowCheckbox) {\r\n\t\t\t\t\t<td class=\"text-center\">\r\n\t\t\t\t\t\t<p-tableCheckbox [value]=\"rowData\" class=\"prCheckbox\" />\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t</ng-template>\r\n\r\n\t\t<!-- Mensaje cuando no hay datos -->\r\n\t\t<ng-template pTemplate=\"emptymessage\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td [attr.colspan]=\"ColumnList.length + (ShowCheckbox ? 1 : 0)\" 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\r\n\t<!-- <div class=\"prTableToolsBottom\"> -->\r\n\t<div class=\"d-flex justify-content-end\">\r\n\t\t@if (TotalRecords !== 0 && ShowPagination) {\r\n\t\t\t<div class=\"ptTablePaginator\">\r\n\t\t\t\t<p-paginator\r\n\t\t\t\t\tclass=\"prPaginator\"\r\n\t\t\t\t\t[first]=\"(CurrentPage - 1) * RowsPerPage\"\r\n\t\t\t\t\t[rows]=\"RowsPerPage\"\r\n\t\t\t\t\t[totalRecords]=\"TotalRecords\"\r\n\t\t\t\t\t(onPageChange)=\"OnPageChange($event)\"\r\n\t\t\t\t\t[showJumpToPageInput]=\"false\"\r\n\t\t\t\t\t[showCurrentPageReport]=\"false\"\r\n\t\t\t\t\t[showPageLinks]=\"false\"\r\n\t\t\t\t\t[showFirstLastIcon]=\"false\"\r\n\t\t\t\t\t[templateLeft]=\"templateLeft\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<ng-template #previouspagelinkicon>\r\n\t\t\t\t\t\t<i class=\"icon icon-arrow-left\"></i>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<ng-template #nextpagelinkicon>\r\n\t\t\t\t\t\t<i class=\"icon icon-arrow-right\"></i>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<ng-template pTemplate=\"templateLeft\" let-state #templateLeft>\r\n\t\t\t\t\t\t<span>{{ \"ROWS_PER_PAGE\" | term: GlobalTermService.languageCode }}</span>\r\n\t\t\t\t\t\t<p-select class=\"prSelect\" [options]=\"AllowedPageSizes\" [ngModel]=\"RowsPerPage\" appendTo=\"body\" (onChange)=\"OnRowsPerPageChange($event.value)\" />\r\n\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t{{ \"Page\" | term: GlobalTermService.languageCode }}\r\n\t\t\t\t\t\t\t<p-inputnumber class=\"p-paginator-jtp-input\" inputId=\"integeronly\" [(ngModel)]=\"CurrentPage\" [allowEmpty]=\"false\" [min]=\"1\" (keyup.enter)=\"onChangeSelectPage($event)\" />\r\n\t\t\t\t\t\t\t{{ \"Of\" | term: GlobalTermService.languageCode }} {{ TotalPages }}\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-paginator>\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n</div>\r\n","import { Component } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { ConfirmDialogModule } from \"primeng/confirmdialog\";\r\nimport { ButtonModule } from \"primeng/button\";\r\nimport { ConfirmationService } from \"primeng/api\";\r\n\r\n@Component({\r\n\tselector: \"intelica-alert\",\r\n\tstandalone: true,\r\n\timports: [CommonModule, ConfirmDialogModule, ButtonModule],\r\n\ttemplateUrl: './intelica-alert.component.html',\r\n})\r\nexport class IntelicaAlertComponent {\r\n\t// This component is now just a wrapper for the ConfirmDialog.\r\n\t// All logic is handled via the headless template and the data passed from AlertService.\r\n}\r\n","<!-- \r\n Clases Modificadoras para estados:\r\n prConfirmDialog--warning\r\n prConfirmDialog--danger\r\n prConfirmDialog--error\r\n prConfirmDialog--success\r\n prConfirmDialog--default\r\n-->\r\n<p-confirmDialog #cd\r\n [styleClass]=\"'prConfirmDialog ' + ($any(cd.confirmation)?.data?.config?.type ? ' prConfirmDialog--' + $any(cd.confirmation).data.config.type : ' prConfirmDialog--default')\"\r\n key=\"intelica-alert-dialog\" [closable]=\"false\" [visible]=\"undefined\">\r\n <!-- \r\n We use the headless template. \r\n 'message' contains the confirmation object.\r\n 'message.data' contains our custom 'presentationData' object from AlertService.\r\n -->\r\n <ng-template pTemplate=\"headless\" let-message let-onAccept=\"onAccept\" let-onReject=\"onReject\">\r\n <div class=\"prConfirmDialog__content\">\r\n <!-- Close Button -->\r\n @if (message.data.config.showCloseButton) {\r\n <div class=\"prConfirmDialog__close\">\r\n <p-button icon=\"pi pi-times\" class=\"prButton\" [rounded]=\"false\" [text]=\"true\" (onClick)=\"onReject()\"\r\n ariaLabel=\"Cerrar\"></p-button>\r\n </div>\r\n }\r\n\r\n <!-- Icon -->\r\n <div class=\"prConfirmDialog__icon\">\r\n @if (message.data.config.customImageUrl) {\r\n <img [src]=\"message.data.config.customImageUrl\" alt=\"Alert icon\" />\r\n } @else {\r\n <i [class]=\"$any(message).data.iconClass\"></i>\r\n }\r\n </div>\r\n <div class=\"prConfirmDialog__details\">\r\n <!-- Title -->\r\n <h2 class=\"prConfirmDialog__title\">{{ message.header }}</h2>\r\n\r\n <!-- Subtitle / Message -->\r\n @if (message.message) {\r\n <p class=\"prConfirmDialog__subtitle\"\r\n [style.color]=\"$any(message).data.config.styles?.subtitleColor ?? '#555'\">{{ message.message }}</p>\r\n }\r\n </div>\r\n\r\n <!-- HTML Content -->\r\n @if (message.data.config.htmlContent) {\r\n <div class=\"prConfirmDialog__text\" [innerHTML]=\"$any(message).data.config.htmlContent\"\r\n [style.color]=\"$any(message).data.config.styles?.subtitleColor ?? '#555'\"></div>\r\n }\r\n\r\n <!-- Buttons -->\r\n <div class=\"prConfirmDialog__footer\">\r\n <!-- Confirm Button -->\r\n <p-button class=\"prButton\" [label]=\"message.data.confirmText\" (onClick)=\"onAccept()\" />\r\n <!-- Cancel Button -->\r\n @if (message.data.showCancelButton) {\r\n <p-button class=\"prButton\" [label]=\"message.data.cancelText\" severity=\"secondary\" [outlined]=\"true\"\r\n (onClick)=\"onReject()\" />\r\n }\r\n </div>\r\n </div>\r\n </ng-template>\r\n</p-confirmDialog>","import { HttpClient } from \"@angular/common/http\";\r\nimport { inject, Injectable, signal } from \"@angular/core\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { fromEvent, map, Observable, of, startWith, tap } from \"rxjs\";\r\nimport { FavoritePageMaintenanceResponse, FavoritePageSimpleResponse } from \"../dto/favoriteResponses\";\r\nimport { ConfigService } from \"./config.service\";\r\n\r\ninterface FavoritesUpdatedEventDetail {\r\n\tfavorites: FavoritePageSimpleResponse[];\r\n}\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class GlobalFavoriteService {\r\n\tprivate configService = inject(ConfigService);\r\n\tprivate http = inject(HttpClient);\r\n\tprivate path = `${this.configService.environment?.securityPath}/favorite-page`;\r\n\tprivate readonly eventFavorites = \"FavoritesUpdatedEvent\";\r\n\tprivate _favorites = signal<FavoritePageSimpleResponse[]>([]);\r\n\r\n\tpublic favorites = this._favorites.asReadonly();\r\n\r\n\tconstructor() {\r\n\t\tthis.loadAllAndStore();\r\n\t\twindow.addEventListener(this.eventFavorites, this.onFavoritesUpdated);\r\n\t}\r\n\r\n\tpublic delete(guid: Guid): Observable<Guid> {\r\n\t\treturn this.http.delete<Guid>(`${this.path}/${guid}`).pipe(tap(() => this.loadAllAndStore()));\r\n\t}\r\n\r\n\tpublic getAll(): Observable<FavoritePageSimpleResponse[]> {\r\n\t\treturn this.http.get<FavoritePageSimpleResponse[]>(`${this.path}`);\r\n\t}\r\n\r\n\tpublic create(): Observable<FavoritePageMaintenanceResponse> {\r\n\t\treturn this.http.post<FavoritePageMaintenanceResponse>(`${this.path}`, {}).pipe(tap(() => this.loadAllAndStore()));\r\n\t}\r\n\r\n\tpublic loadAllAndStore() {\r\n\t\tthis.getAll()\r\n\t\t\t.pipe(tap(favorites => this.setFavorites(favorites)))\r\n\t\t\t.subscribe();\r\n\t}\r\n\r\n\tpublic setFavorites(favorites: FavoritePageSimpleResponse[]): void {\r\n\t\tthis._favorites.set([...favorites]);\r\n\t\tthis.emitFavoritesUpdatedEvent();\r\n\t}\r\n\r\n\tpublic removeFavoriteByPageUrl(pageUrl: string): void {\r\n\t\tconst normalizedPageUrl = pageUrl;\r\n\t\tconst filtered = this._favorites().filter(item => !this.matchesPage(item, normalizedPageUrl));\r\n\t\tthis._favorites.set(filtered);\r\n\t\tthis.emitFavoritesUpdatedEvent();\r\n\t}\r\n\r\n\tpublic isFavoriteByPageUrl(pageUrl: string): boolean {\r\n\t\tconst normalizedPageUrl = pageUrl;\r\n\t\treturn this._favorites().some(item => this.matchesPage(item, normalizedPageUrl));\r\n\t}\r\n\r\n\tpublic isFavoriteByPageRoot(pageRoot: string): boolean {\r\n\t\treturn this._favorites().some(item => item.pageRoot === pageRoot);\r\n\t}\r\n\r\n\tpublic removeFavoriteByPageRoot(pageRoot: string): Observable<void> {\r\n\t\tconst favorite = this._favorites().find(item => item.pageRoot === pageRoot);\r\n\t\tif (!favorite) return of(void 0);\r\n\t\treturn this.delete(Guid.parse(favorite.favoritePageID)).pipe(map(() => void 0));\r\n\t}\r\n\r\n\tpublic favoritesChanges(): Observable<FavoritePageSimpleResponse[]> {\r\n\t\treturn fromEvent<CustomEvent<FavoritesUpdatedEventDetail>>(window, this.eventFavorites).pipe(\r\n\t\t\tmap(event => event.detail.favorites),\r\n\t\t\tstartWith(this._favorites())\r\n\t\t);\r\n\t}\r\n\r\n\tprivate onFavoritesUpdated = (event: Event): void => {\r\n\t\tconst detail = (event as CustomEvent<FavoritesUpdatedEventDetail>).detail;\r\n\t\tif (!detail?.favorites) return;\r\n\t\tthis._favorites.set([...detail.favorites]);\r\n\t};\r\n\r\n\tprivate emitFavoritesUpdatedEvent(): void {\r\n\t\tconst event = new CustomEvent(this.eventFavorites, {\r\n\t\t\tdetail: { favorites: this._favorites() } satisfies FavoritesUpdatedEventDetail,\r\n\t\t});\r\n\t\twindow.dispatchEvent(event);\r\n\t}\r\n\r\n\tprivate matchesPage(item: FavoritePageSimpleResponse, value: string): boolean {\r\n\t\treturn item.pageUrl === value || item.pageRoot === value;\r\n\t}\r\n}\r\n","import { inject, Injectable } from \"@angular/core\";\r\nimport { distinctUntilChanged, map, Observable } from \"rxjs\";\r\nimport { GlobalFavoriteService } from \"../../services/globalFavorite.service\";\r\nimport { GlobalFeatureFlagService } from \"../../services/globalFeatureFlag.service\";\r\n\r\n@Injectable({\r\n\tprovidedIn: \"root\",\r\n})\r\nexport class AddFavoritesService {\r\n\tprivate readonly favoritesService = inject(GlobalFavoriteService);\r\n\tprivate readonly featureFlagService = inject(GlobalFeatureFlagService);\r\n\r\n\tpublic addPageToFavorites(): Observable<void> {\r\n\t\treturn this.favoritesService.create().pipe(map(() => void 0));\r\n\t}\r\n\r\n\tpublic isPageFavorite(pageRoot?: string): Observable<boolean> {\r\n\t\tconst resolvedPageRoot = this.resolvePageRoot(pageRoot);\r\n\t\treturn this.favoritesService.favoritesChanges().pipe(\r\n\t\t\tmap(() => this.favoritesService.isFavoriteByPageRoot(resolvedPageRoot)),\r\n\t\t\tdistinctUntilChanged()\r\n\t\t);\r\n\t}\r\n\r\n\tpublic watchPageFavorite(pageRoot?: string): Observable<boolean> {\r\n\t\tconst resolvedPageRoot = this.resolvePageRoot(pageRoot);\r\n\t\treturn this.favoritesService.favoritesChanges().pipe(\r\n\t\t\tmap(() => this.favoritesService.isFavoriteByPageRoot(resolvedPageRoot)),\r\n\t\t\tdistinctUntilChanged()\r\n\t\t);\r\n\t}\r\n\r\n\tpublic removeFromFavorites(pageRoot?: string): Observable<void> {\r\n\t\tconst resolvedPageRoot = this.resolvePageRoot(pageRoot);\r\n\t\treturn this.favoritesService.removeFavoriteByPageRoot(resolvedPageRoot);\r\n\t}\r\n\r\n\tprivate resolvePageRoot(pageRoot?: string): string {\r\n\t\treturn pageRoot?.trim() || this.featureFlagService.GetPageRoot();\r\n\t}\r\n}\r\n","import { NgClass } from \"@angular/common\";\r\nimport { Component, DestroyRef, inject, OnInit, output } from \"@angular/core\";\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\nimport { Button } from \"primeng/button\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\nimport { AddFavoritesService } from \"./add-favorites.service\";\r\n\r\nconst ICON_ON = \"icon-favorites-on\";\r\nconst ICON_OFF = \"icon-favorites-off\";\r\n\r\n@Component({\r\n\tselector: \"intelica-add-favorites\",\r\n\timports: [Button, TermPipe, NgClass],\r\n\ttemplateUrl: \"./add-favorites.component.html\",\r\n})\r\nexport class AddFavoritesComponent implements OnInit {\r\n\treadonly termService = inject(GlobalTermService);\r\n\tprivate readonly addFavoriteService = inject(AddFavoritesService);\r\n\tprivate readonly destroyRef = inject(DestroyRef);\r\n\r\n\treadonly favoriteChanged = output<boolean>();\r\n\r\n\tprivate isFavorite = false;\r\n\tpublic isToggling = false;\r\n\tpublic iconClass = ICON_OFF;\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.loadInitialState();\r\n\t}\r\n\r\n\ttoggleFavorite(): void {\r\n\t\tif (this.isToggling) return;\r\n\t\tthis.isToggling = true;\r\n\t\tconst nextFavorite = !this.isFavorite;\r\n\t\tconst action$ = this.isFavorite ? this.addFavoriteService.removeFromFavorites() : this.addFavoriteService.addPageToFavorites();\r\n\r\n\t\taction$.subscribe({\r\n\t\t\tnext: () => {\r\n\t\t\t\tthis.favoriteChanged.emit(nextFavorite);\r\n\t\t\t},\r\n\t\t\tcomplete: () => (this.isToggling = false),\r\n\t\t\terror: () => (this.isToggling = false),\r\n\t\t});\r\n\t}\r\n\r\n\tprivate loadInitialState(): void {\r\n\t\tthis.addFavoriteService\r\n\t\t\t.watchPageFavorite()\r\n\t\t\t.pipe(takeUntilDestroyed(this.destroyRef))\r\n\t\t\t.subscribe({\r\n\t\t\t\tnext: isFavorite => {\r\n\t\t\t\t\tthis.isFavorite = isFavorite;\r\n\t\t\t\t\tthis.updateIcon();\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t}\r\n\r\n\tprivate updateIcon(): void {\r\n\t\tthis.iconClass = this.isFavorite ? ICON_ON : ICON_OFF;\r\n\t}\r\n}\r\n","<p-button class=\"prButton\" severity=\"secondary\" [disabled]=\"isToggling\" (onClick)=\"toggleFavorite()\">\r\n\t<i class=\"icon p-button-icon-left\" [ngClass]=\"iconClass\" pButtonIcon></i>\r\n\t<span pButtonLabel>{{ \"ADD_TO_FAVORITES\" | term : termService.languageCode }}</span>\r\n</p-button>\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { Component, effect, inject, input, output } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { Button } from \"primeng/button\";\r\nimport { MultiSelect } from \"primeng/multiselect\";\r\nimport { Popover } from \"primeng/popover\";\r\nimport { Select } from \"primeng/select\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\nimport { ContextSelectorClientDto, ContextSelectorCountryDto, ContextSelectorRegionDto, ContextSelectorSelectionDto } from \"./context-selector.dto\";\r\n\r\n@Component({\r\n\tselector: \"itl-context-selector\",\r\n\timports: [CommonModule, FormsModule, Button, Popover, MultiSelect, Select, TermPipe],\r\n\ttemplateUrl: \"./context-selector.component.html\",\r\n})\r\nexport class ClientContextSelector {\r\n\treadonly regions = input<ContextSelectorRegionDto[]>([]);\r\n\treadonly countries = input<ContextSelectorCountryDto[]>([]);\r\n\treadonly clients = input<ContextSelectorClientDto[]>([]);\r\n\treadonly selection = input<Partial<ContextSelectorSelectionDto> | null>(null);\r\n\r\n\treadonly showRegion = input<boolean>(true);\r\n\treadonly showCountry = input<boolean>(true);\r\n\treadonly showClient = input<boolean>(true);\r\n\r\n\treadonly buttonTerm = input<string>(\"Select Context\");\r\n\treadonly popoverTerm = input<string>(\"Select Region, Country and Client\");\r\n\treadonly regionTerm = input<string>(\"Region\");\r\n\treadonly countryTerm = input<string>(\"Country\");\r\n\treadonly clientTerm = input<string>(\"Client / Bank\");\r\n\treadonly regionPlaceholderTerm = input<string>(\"Select Region\");\r\n\treadonly countryPlaceholderTerm = input<string>(\"Select Country\");\r\n\treadonly clientPlaceholderTerm = input<string>(\"Select Client / Bank\");\r\n\r\n\treadonly selectionChange = output<ContextSelectorSelectionDto>();\r\n\treadonly regionChange = output<number | null>();\r\n\treadonly countriesChange = output<number[]>();\r\n\treadonly clientChange = output<number | null>();\r\n\r\n\treadonly globalTermService = inject(GlobalTermService);\r\n\r\n\tselectedRegionId: number | null = null;\r\n\tselectedCountryIds: number[] = [];\r\n\tselectedClientId: number | null = null;\r\n\r\n\tconstructor() {\r\n\t\teffect(() => {\r\n\t\t\tconst incomingSelection = this.selection();\r\n\t\t\tif (!incomingSelection) return;\r\n\t\t\tthis.selectedRegionId = incomingSelection.regionId ?? null;\r\n\t\t\tthis.selectedCountryIds = [...(incomingSelection.countryIds ?? [])];\r\n\t\t\tthis.selectedClientId = incomingSelection.clientId ?? null;\r\n\t\t\tthis.ensureValidSelection();\r\n\t\t});\r\n\t}\r\n\r\n\tget filteredCountries(): ContextSelectorCountryDto[] {\r\n\t\tif (!this.showRegion() || !this.selectedRegionId) {\r\n\t\t\treturn this.countries();\r\n\t\t}\r\n\r\n\t\treturn this.countries().filter(country => !country.regionId || country.regionId === this.selectedRegionId);\r\n\t}\r\n\r\n\tget filteredClients(): ContextSelectorClientDto[] {\r\n\t\tlet items = this.clients();\r\n\r\n\t\tif (this.showRegion() && this.selectedRegionId) {\r\n\t\t\titems = items.filter(client => !client.regionId || client.regionId === this.selectedRegionId);\r\n\t\t}\r\n\r\n\t\tif (this.showCountry() && this.selectedCountryIds.length > 0) {\r\n\t\t\titems = items.filter(client => {\r\n\t\t\t\tif (!client.countryIds || client.countryIds.length === 0) return true;\r\n\t\t\t\treturn client.countryIds.some(countryId => this.selectedCountryIds.includes(countryId));\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn items;\r\n\t}\r\n\r\n\tonRegionChange(value: number | null): void {\r\n\t\tthis.selectedRegionId = value ?? null;\r\n\t\tthis.ensureValidSelection();\r\n\t\tthis.emitSelection(true, true, true);\r\n\t}\r\n\r\n\tonCountriesChange(value: number[] | null): void {\r\n\t\tthis.selectedCountryIds = value ?? [];\r\n\t\tthis.ensureValidSelection();\r\n\t\tthis.emitSelection(false, true, true);\r\n\t}\r\n\r\n\tonClientChange(value: number | null): void {\r\n\t\tthis.selectedClientId = value ?? null;\r\n\t\tthis.emitSelection(false, false, true);\r\n\t}\r\n\r\n\tprivate ensureValidSelection(): void {\r\n\t\tconst validCountryIds = new Set(this.filteredCountries.map(country => country.id));\r\n\t\tthis.selectedCountryIds = this.selectedCountryIds.filter(countryId => validCountryIds.has(countryId));\r\n\r\n\t\tconst selectedClientStillValid = this.filteredClients.some(client => client.id === this.selectedClientId);\r\n\t\tif (!selectedClientStillValid) {\r\n\t\t\tthis.selectedClientId = null;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate emitSelection(emitRegion: boolean, emitCountries: boolean, emitClient: boolean): void {\r\n\t\tif (emitRegion) this.regionChange.emit(this.selectedRegionId);\r\n\t\tif (emitCountries) this.countriesChange.emit(this.selectedCountryIds);\r\n\t\tif (emitClient) this.clientChange.emit(this.selectedClientId);\r\n\r\n\t\tthis.selectionChange.emit({\r\n\t\t\tregionId: this.selectedRegionId,\r\n\t\t\tcountryIds: [...this.selectedCountryIds],\r\n\t\t\tclientId: this.selectedClientId,\r\n\t\t});\r\n\t}\r\n}\r\n","<div class=\"lyFilterbar__wrap\">\r\n\t<p-button class=\"prButton u-hide-adjacent\" (click)=\"popoverFilterLayout.toggle($event)\" severity=\"secondary\" label=\"{{ buttonTerm() | term: globalTermService.languageCode }}\" />\r\n\t<p-popover styleClass=\"prPopover prPopover--compact\" [style]=\"{ '--custom-width': '20.5rem' }\" [focusOnShow]=\"false\" #popoverFilterLayout>\r\n\t\t<div class=\"prPopover__header\">{{ popoverTerm() | term: globalTermService.languageCode }}</div>\r\n\t\t<div class=\"prPopover__body\">\r\n\t\t\t<div class=\"u-display-flex u-flex-column u-gap-sm\">\r\n\t\t\t\t@if (showRegion()) {\r\n\t\t\t\t\t<p-select\r\n\t\t\t\t\t\tclass=\"prSelect\"\r\n\t\t\t\t\t\t[options]=\"regions()\"\r\n\t\t\t\t\t\t[ngModel]=\"selectedRegionId\"\r\n\t\t\t\t\t\t(ngModelChange)=\"onRegionChange($event)\"\r\n\t\t\t\t\t\toptionValue=\"id\"\r\n\t\t\t\t\t\toptionLabel=\"label\"\r\n\t\t\t\t\t\tplaceholder=\"{{ regionPlaceholderTerm() | term: globalTermService.languageCode }}\"\r\n\t\t\t\t\t\tshowClear=\"true\"\r\n\t\t\t\t\t\tdropdownIcon=\"icon icon-arrow-down\"\r\n\t\t\t\t\t\tfilter=\"false\"\r\n\t\t\t\t\t\tfiltericon=\"icon icon-cancel\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t}\r\n\r\n\t\t\t\t@if (showCountry()) {\r\n\t\t\t\t\t<p-multiselect\r\n\t\t\t\t\t\tclass=\"prMultiselect\"\r\n\t\t\t\t\t\t[options]=\"filteredCountries\"\r\n\t\t\t\t\t\t[ngModel]=\"selectedCountryIds\"\r\n\t\t\t\t\t\t(ngModelChange)=\"onCountriesChange($event)\"\r\n\t\t\t\t\t\t[maxSelectedLabels]=\"3\"\r\n\t\t\t\t\t\toptionLabel=\"label\"\r\n\t\t\t\t\t\toptionValue=\"id\"\r\n\t\t\t\t\t\tplaceholder=\"{{ countryPlaceholderTerm() | term: globalTermService.languageCode }}\"\r\n\t\t\t\t\t\tshowClear=\"true\"\r\n\t\t\t\t\t\tdropdownIcon=\"icon icon-arrow-down\"\r\n\t\t\t\t\t\tshowToggleAll=\"false\"\r\n\t\t\t\t\t\tfilter=\"false\"\r\n\t\t\t\t\t\tfiltericon=\"icon icon-cancel\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t}\r\n\r\n\t\t\t\t@if (showClient()) {\r\n\t\t\t\t\t<p-select\r\n\t\t\t\t\t\tclass=\"prSelect\"\r\n\t\t\t\t\t\t[options]=\"filteredClients\"\r\n\t\t\t\t\t\t[ngModel]=\"selectedClientId\"\r\n\t\t\t\t\t\t(ngModelChange)=\"onClientChange($event)\"\r\n\t\t\t\t\t\toptionValue=\"id\"\r\n\t\t\t\t\t\toptionLabel=\"label\"\r\n\t\t\t\t\t\t[placeholder]=\"clientPlaceholderTerm()\"\r\n\t\t\t\t\t\tshowClear=\"true\"\r\n\t\t\t\t\t\tdropdownIcon=\"icon icon-arrow-down\"\r\n\t\t\t\t\t\tfilter=\"false\"\r\n\t\t\t\t\t\tfiltericon=\"icon icon-cancel\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</p-popover>\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 { AlertButtonMode, AlertType } from \"../enums/alert-type.enum\";\r\n\r\n/**\r\n * Configuration options for alert buttons.\r\n */\r\nexport interface AlertButtonConfig {\r\n\t/** Text to display on the confirm/OK button */\r\n\tconfirmText?: string;\r\n\t/** Text to display on the cancel button */\r\n\tcancelText?: string;\r\n}\r\n\r\n/**\r\n * Style configuration for customizing alert appearance.\r\n */\r\nexport interface AlertStyleConfig {\r\n\t/** Background color of the icon container */\r\n\ticonBackgroundColor?: string;\r\n\t/** Color of the icon */\r\n\ticonColor?: string;\r\n\t/** Color of the title text */\r\n\ttitleColor?: string;\r\n\t/** Color of the subtitle/message text */\r\n\tsubtitleColor?: string;\r\n\t/** Background color of the confirm button */\r\n\tconfirmButtonColor?: string;\r\n\t/** Text color of the confirm button */\r\n\tconfirmButtonTextColor?: string;\r\n\t/** Background color of the cancel button */\r\n\tcancelButtonColor?: string;\r\n\t/** Text color of the cancel button */\r\n\tcancelButtonTextColor?: string;\r\n\t/** Width of the dialog (e.g., '400px', '30rem') */\r\n\twidth?: string;\r\n}\r\n\r\n/**\r\n * Complete configuration options for displaying an alert.\r\n */\r\nexport interface AlertConfig {\r\n\t/** The type of alert (warning, success, error) */\r\n\ttype: AlertType;\r\n\t/** Main title text displayed in the alert */\r\n\ttitle: string;\r\n\t/** Optional subtitle/message displayed below the title */\r\n\tsubtitle?: string;\r\n\t/** Button configuration mode */\r\n\tbuttonMode?: AlertButtonMode;\r\n\t/** Custom button text configuration */\r\n\tbuttons?: AlertButtonConfig;\r\n\t/** Whether to show the close (X) button */\r\n\tshowCloseButton?: boolean;\r\n\t/** Optional HTML content to display instead of subtitle */\r\n\thtmlContent?: string;\r\n\t/** Optional custom CSS class for the popup */\r\n\tcustomClass?: string;\r\n\t/** Custom style configuration */\r\n\tstyles?: AlertStyleConfig;\r\n\t/** PrimeIcon class for custom icon (e.g., 'pi pi-check') */\r\n\tcustomIcon?: string;\r\n\t/** Custom image URL for the icon */\r\n\tcustomImageUrl?: string;\r\n}\r\n\r\n/**\r\n * Result returned after an alert is closed.\r\n */\r\nexport interface AlertResult {\r\n\t/** Whether the user confirmed the alert */\r\n\tisConfirmed: boolean;\r\n\t/** Whether the user clicked cancel */\r\n\tisCancelled: boolean;\r\n\t/** Whether the alert was dismissed (closed via X button or clicking outside) */\r\n\tisDismissed: boolean;\r\n}\r\n\r\n/**\r\n * Default configuration values for alerts.\r\n */\r\nexport const ALERT_DEFAULTS: Partial<AlertConfig> = {\r\n\tbuttonMode: AlertButtonMode.OK_ONLY,\r\n\tshowCloseButton: true,\r\n\tbuttons: {\r\n\t\tconfirmText: \"Ok\",\r\n\t\tcancelText: \"Cancelar\",\r\n\t},\r\n};\r\n\r\n/**\r\n * Configuration for each alert type.\r\n * - `titleColor`: Color for the alert title\r\n * - `icon`: PrimeIcon class (e.g., 'pi pi-exclamation-triangle')\r\n * - `iconBackgroundColor`: Background color for the icon container\r\n * - `iconColor`: Color of the icon itself\r\n * - `imageUrl`: Custom image/SVG path (takes precedence over `icon` if defined)\r\n */\r\nexport interface AlertTypeConfig {\r\n\ttitleColor: string;\r\n\ticon?: string;\r\n\ticonBackgroundColor?: string;\r\n\ticonColor?: string;\r\n\timageUrl?: string;\r\n}\r\n\r\n/**\r\n * Paths to custom SVG icons for alerts.\r\n * Icons should be placed in: public/assets/icons/alerts/\r\n */\r\nexport const ALERT_ICON_PATHS = {\r\n\terror: \"/assets/icons/alerts/alert-error.svg\",\r\n\t// warning: \"/assets/icons/alerts/alert-warning.svg\",\r\n\t// success: \"/assets/icons/alerts/alert-success.svg\",\r\n};\r\n\r\n/**\r\n * Centralized configuration for each alert type using PrimeNG icons.\r\n */\r\nexport const ALERT_TYPE_CONFIG: Record<AlertType, AlertTypeConfig> = {\r\n\t[AlertType.WARNING]: {\r\n\t\ttitleColor: \"#f0ad4e\",\r\n\t\ticon: \"pi pi-exclamation-triangle\",\r\n\t\ticonBackgroundColor: \"#fff3cd\",\r\n\t\ticonColor: \"#f0ad4e\",\r\n\t},\r\n\t[AlertType.SUCCESS]: {\r\n\t\ttitleColor: \"#5cb85c\",\r\n\t\ticon: \"pi pi-check-circle\",\r\n\t\ticonBackgroundColor: \"#d4edda\",\r\n\t\ticonColor: \"#5cb85c\",\r\n\t},\r\n\t[AlertType.ERROR]: {\r\n\t\ttitleColor: \"#d9534f\",\r\n\t\ticon: \"pi pi-times-circle\",\r\n\t\ticonBackgroundColor: \"#f8d7da\",\r\n\t\ticonColor: \"#d9534f\",\r\n\t},\r\n};\r\n","export class PageInformation {\r\n\tpageTitle: string;\r\n\tpageRoot: string | undefined;\r\n\tconstructor(pageTitle: string, pageRoot: string | undefined) {\r\n\t\tthis.pageTitle = pageTitle;\r\n\t\tthis.pageRoot = pageRoot;\r\n\t}\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, { raw: false });\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\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\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 = false,\r\n\t\theaderGroups: IExcelHeaderGroup[] = []\r\n\t) {\r\n\t\tconst workbook = new Workbook();\r\n\t\tconst worksheet = workbook.addWorksheet(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(rowsSerializate, worksheet, columns, imageId, subtitles, showTotalRow, headerGroups);\r\n\t\tthis.SetTitle(worksheet, reportTitle);\r\n\t\tif (filters.length > 0) {\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\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: \"203764\" },\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) {\r\n\t\tlet columnsCell: string[] = [];\r\n\t\tlet rows = JSON.parse(rowsSerializate);\r\n\t\tlet isHeaderGood = 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 (isHeaderGood) {\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\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: \"17375e\" },\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}${isHeaderGood ? startRow + 1 : startRow}`;\r\n\t\t\tif (groupedIndices.has(i)) {\r\n\t\t\t\tcolumnsCell.push(bottomCell);\r\n\t\t\t\tworksheet.getCell(bottomCell).value = columns[i].displayColumnName;\r\n\t\t\t\tworksheet.getCell(bottomCell).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.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: \"17375e\" },\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (isHeaderGood) 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 ? { formula: `\"${col.totalRowValue}\"`, result: col.totalRowValue } : 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: \"FF7F00\" },\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 = { bottom: { style: \"thin\", color: { argb: \"FF7F00\" } } };\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: \"FF7F00\" },\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 = { bottom: { style: \"thin\", color: { argb: \"FF7F00\" } } };\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\tfor (let rowIndex = 0; rowIndex < numberRows; rowIndex++) {\r\n\t\t\tconst rowValues: string[] = [];\r\n\t\t\tfor (let colIndex = 0; colIndex < columns.length; colIndex++) {\r\n\t\t\t\trowValues.push(colIndex === 0 ? `${rowIndex + 1}` : rows[rowIndex][columns[colIndex].columnName] ?? \"\");\r\n\t\t\t}\r\n\t\t\tconst insertedRow = worksheet.addRow(rowValues);\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\tcell.numFmt = this.GetNumberFormat(col.formatNumber);\r\n\t\t\t\t\tcell.value = Number(cell.value);\r\n\t\t\t\t}\r\n\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\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: \"17375e\" },\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: \"D9D9D9\" },\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: \"203764\" },\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.5 },\r\n\t\t\text: { width: 218, height: 58 },\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\tbold: true,\r\n\t\t\t\titalic: true,\r\n\t\t\t\tsize: 10,\r\n\t\t\t\tcolor: { argb: \"203764\" },\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);\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 ? \"D9D9D9\" : \"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: \"203764\" },\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[]) {\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\tif (rowIndex === 1) return;\r\n\t\t\tlet maxLines = 1;\r\n\t\t\trow.eachCell((cell, colNumber) => {\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).toString();\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], { type: \"text/csv;charset=utf-8;\" });\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\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","import { Injectable, inject } from \"@angular/core\";\r\nimport { ConfirmationService, Confirmation } from \"primeng/api\";\r\nimport { AlertButtonMode, AlertType } from \"../enums/alert-type.enum\";\r\nimport { ALERT_DEFAULTS, ALERT_TYPE_CONFIG, AlertConfig, AlertResult, AlertStyleConfig, AlertTypeConfig } from \"../model/alert.model\";\r\n\r\n@Injectable({\r\n\tprovidedIn: \"root\",\r\n})\r\nexport class AlertService {\r\n\tprivate readonly confirmationService = inject(ConfirmationService);\r\n\tprivate readonly DIALOG_KEY = 'intelica-alert-dialog';\r\n\r\n\t/**\r\n\t * Displays a warning alert with yellow styling.\r\n\t * Can be called with (title, subtitle, buttonMode, buttons) OR (title, subtitle, buttons).\r\n\t */\r\n\twarning(\r\n\t\ttitle: string,\r\n\t\tsubtitle?: string,\r\n\t\tmodeOrButtons?: AlertButtonMode | { confirmText?: string; cancelText?: string },\r\n\t\tbuttons?: { confirmText?: string; cancelText?: string }\r\n\t): Promise<AlertResult> {\r\n\t\tconst { buttonMode, buttonConfig } = this.resolveArgs(modeOrButtons, buttons);\r\n\t\treturn this.show({\r\n\t\t\ttype: AlertType.WARNING,\r\n\t\t\ttitle,\r\n\t\t\tsubtitle,\r\n\t\t\tbuttonMode,\r\n\t\t\tbuttons: buttonConfig,\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Displays a success alert with green styling.\r\n\t * Can be called with (title, subtitle, buttonMode, buttons) OR (title, subtitle, buttons).\r\n\t */\r\n\tsuccess(\r\n\t\ttitle: string,\r\n\t\tsubtitle?: string,\r\n\t\tmodeOrButtons?: AlertButtonMode | { confirmText?: string; cancelText?: string },\r\n\t\tbuttons?: { confirmText?: string; cancelText?: string }\r\n\t): Promise<AlertResult> {\r\n\t\tconst { buttonMode, buttonConfig } = this.resolveArgs(modeOrButtons, buttons);\r\n\t\treturn this.show({\r\n\t\t\ttype: AlertType.SUCCESS,\r\n\t\t\ttitle,\r\n\t\t\tsubtitle,\r\n\t\t\tbuttonMode,\r\n\t\t\tbuttons: buttonConfig,\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Displays an error alert with red styling.\r\n\t * Can be called with (title, subtitle, buttonMode, buttons) OR (title, subtitle, buttons).\r\n\t */\r\n\terror(\r\n\t\ttitle: string,\r\n\t\tsubtitle?: string,\r\n\t\tmodeOrButtons?: AlertButtonMode | { confirmText?: string; cancelText?: string },\r\n\t\tbuttons?: { confirmText?: string; cancelText?: string }\r\n\t): Promise<AlertResult> {\r\n\t\tconst { buttonMode, buttonConfig } = this.resolveArgs(modeOrButtons, buttons);\r\n\t\treturn this.show({\r\n\t\t\ttype: AlertType.ERROR,\r\n\t\t\ttitle,\r\n\t\t\tsubtitle,\r\n\t\t\tbuttonMode,\r\n\t\t\tbuttons: buttonConfig,\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Helper to resolve flexible arguments.\r\n\t * If 3rd arg is object (not string enum), treat it as buttons config and default mode to OK_ONLY.\r\n\t * If 3rd arg is string (enum), treat it as mode and 4th as buttons config.\r\n\t */\r\n\tprivate resolveArgs(\r\n\t\tmodeOrButtons?: AlertButtonMode | { confirmText?: string; cancelText?: string },\r\n\t\tbuttons?: { confirmText?: string; cancelText?: string }\r\n\t): { buttonMode: AlertButtonMode; buttonConfig?: { confirmText?: string; cancelText?: string } } {\r\n\t\tif (modeOrButtons && typeof modeOrButtons === 'object') {\r\n\t\t\t// USAGE: success(title, subtitle, { confirmText: 'Ok', cancelText: 'Cancel' })\r\n\t\t\t// Auto-detect mode based on presence of cancelText\r\n\t\t\tconst hasCancel = !!(modeOrButtons as any).cancelText;\r\n\t\t\treturn {\r\n\t\t\t\tbuttonMode: hasCancel ? AlertButtonMode.CONFIRM_CANCEL : AlertButtonMode.OK_ONLY,\r\n\t\t\t\tbuttonConfig: modeOrButtons\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t// USAGE: success(title, subtitle, AlertButtonMode.CONFIRM_CANCEL, { ... })\r\n\t\t// OR default\r\n\t\treturn {\r\n\t\t\tbuttonMode: (modeOrButtons as AlertButtonMode) ?? AlertButtonMode.OK_ONLY,\r\n\t\t\tbuttonConfig: buttons\r\n\t\t};\r\n\t}\r\n\r\n\tmessage(message: string, type: AlertType = AlertType.WARNING): Promise<AlertResult> {\r\n\t\treturn this.show({\r\n\t\t\ttype,\r\n\t\t\ttitle: message,\r\n\t\t\tbuttonMode: AlertButtonMode.OK_ONLY,\r\n\t\t});\r\n\t}\r\n\r\n\tconfirm(\r\n\t\ttitle: string,\r\n\t\tsubtitle?: string,\r\n\t\tconfirmText: string = \"Confirmar\",\r\n\t\tcancelText: string = \"Cancelar\",\r\n\t\ttype: AlertType = AlertType.WARNING\r\n\t): Promise<AlertResult> {\r\n\t\treturn this.show({\r\n\t\t\ttype,\r\n\t\t\ttitle,\r\n\t\t\tsubtitle,\r\n\t\t\tbuttonMode: AlertButtonMode.CONFIRM_CANCEL,\r\n\t\t\tbuttons: { confirmText, cancelText },\r\n\t\t});\r\n\t}\r\n\r\n\tshowHtml(\r\n\t\ttitle: string,\r\n\t\thtmlContent: string,\r\n\t\ttype: AlertType = AlertType.WARNING,\r\n\t\tbuttonMode: AlertButtonMode = AlertButtonMode.OK_ONLY\r\n\t): Promise<AlertResult> {\r\n\t\treturn this.show({\r\n\t\t\ttype,\r\n\t\t\ttitle,\r\n\t\t\thtmlContent,\r\n\t\t\tbuttonMode,\r\n\t\t});\r\n\t}\r\n\r\n\tshowWithStyles(config: AlertConfig, styles: AlertStyleConfig): Promise<AlertResult> {\r\n\t\treturn this.show({\r\n\t\t\t...config,\r\n\t\t\tstyles,\r\n\t\t});\r\n\t}\r\n\r\n\tshow(config: AlertConfig): Promise<AlertResult> {\r\n\t\treturn new Promise<AlertResult>((resolve) => {\r\n\t\t\tconst mergedConfig = this.mergeWithDefaults(config);\r\n\t\t\tconst typeConfig = ALERT_TYPE_CONFIG[mergedConfig.type];\r\n\r\n\t\t\t// Prepare data object for the view\r\n\t\t\tconst data = {\r\n\t\t\t\tconfig: mergedConfig,\r\n\t\t\t\ttypeConfig: typeConfig,\r\n\t\t\t\ticonClass: this.getIconClass(mergedConfig, typeConfig),\r\n\t\t\t\ticonBackgroundColor: this.getIconBackgroundColor(mergedConfig, typeConfig),\r\n\t\t\t\ticonColor: this.getIconColor(mergedConfig, typeConfig),\r\n\t\t\t\ttitleColor: this.getTitleColor(mergedConfig, typeConfig),\r\n\t\t\t\tshowCancelButton: this.showCancelButton(mergedConfig),\r\n\t\t\t\tconfirmText: this.getConfirmText(mergedConfig),\r\n\t\t\t\tcancelText: this.getCancelText(mergedConfig),\r\n\t\t\t\tdialogStyle: {\r\n\t\t\t\t\twidth: mergedConfig.styles?.width ?? \"400px\",\r\n\t\t\t\t\tmaxWidth: \"90vw\",\r\n\t\t\t\t\tborderRadius: \"12px\",\r\n\t\t\t\t\toverflow: \"hidden\",\r\n\t\t\t\t},\r\n\t\t\t\tconfirmButtonStyle: this.getConfirmButtonStyle(mergedConfig),\r\n\t\t\t\tcancelButtonStyle: this.getCancelButtonStyle(mergedConfig),\r\n\t\t\t\t// Add manual dismiss handler to data so template can call it if needed, \r\n\t\t\t\t// though explicit close button in template can just use reject or logic.\r\n\t\t\t\t// For custom headers/X buttons usually we initiate close.\r\n\t\t\t};\r\n\r\n\t\t\tconst confirmation: Confirmation = {\r\n\t\t\t\tkey: this.DIALOG_KEY,\r\n\t\t\t\tmessage: mergedConfig.subtitle,\r\n\t\t\t\theader: mergedConfig.title,\r\n\t\t\t\ticon: data.iconClass,\r\n\t\t\t\tdismissableMask: true,\r\n\t\t\t\tcloseOnEscape: true,\r\n\t\t\t\taccept: () => {\r\n\t\t\t\t\tresolve({\r\n\t\t\t\t\t\tisConfirmed: true,\r\n\t\t\t\t\t\tisCancelled: false,\r\n\t\t\t\t\t\tisDismissed: false,\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\treject: (type?: number) => {\r\n\t\t\t\t\tresolve({\r\n\t\t\t\t\t\tisConfirmed: false,\r\n\t\t\t\t\t\tisCancelled: true,\r\n\t\t\t\t\t\tisDismissed: false,\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t};\r\n\r\n\t\t\t// Cast to any to allow 'data' property if it doesn't exist on type\r\n\t\t\t(confirmation as any).data = data;\r\n\r\n\t\t\tthis.confirmationService.confirm(confirmation);\r\n\t\t});\r\n\t}\r\n\r\n\t// Private Helper Methods (Presentation Logic)\r\n\r\n\tprivate mergeWithDefaults(config: AlertConfig): AlertConfig {\r\n\t\treturn {\r\n\t\t\t...ALERT_DEFAULTS,\r\n\t\t\t...config,\r\n\t\t\tbuttons: {\r\n\t\t\t\t...ALERT_DEFAULTS.buttons,\r\n\t\t\t\t...config.buttons,\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tprivate getIconClass(config: AlertConfig | null, typeConfig: AlertTypeConfig | null): string {\r\n\t\tif (config?.customIcon) {\r\n\t\t\treturn config.customIcon;\r\n\t\t}\r\n\t\treturn typeConfig?.icon ?? \"pi pi-info-circle\";\r\n\t}\r\n\r\n\tprivate getIconBackgroundColor(config: AlertConfig | null, typeConfig: AlertTypeConfig | null): string {\r\n\t\tif (config?.styles?.iconBackgroundColor) {\r\n\t\t\treturn config.styles.iconBackgroundColor;\r\n\t\t}\r\n\t\treturn typeConfig?.iconBackgroundColor ?? \"#e3f2fd\";\r\n\t}\r\n\r\n\tprivate getIconColor(config: AlertConfig | null, typeConfig: AlertTypeConfig | null): string {\r\n\t\tif (config?.styles?.iconColor) {\r\n\t\t\treturn config.styles.iconColor;\r\n\t\t}\r\n\t\treturn typeConfig?.iconColor ?? \"#1976d2\";\r\n\t}\r\n\r\n\tprivate getTitleColor(config: AlertConfig | null, typeConfig: AlertTypeConfig | null): string {\r\n\t\tif (config?.styles?.titleColor) {\r\n\t\t\treturn config.styles.titleColor;\r\n\t\t}\r\n\t\treturn typeConfig?.titleColor ?? \"#333\";\r\n\t}\r\n\r\n\tprivate showCancelButton(config: AlertConfig | null): boolean {\r\n\t\treturn config?.buttonMode === AlertButtonMode.CONFIRM_CANCEL;\r\n\t}\r\n\r\n\tprivate getConfirmText(config: AlertConfig | null): string {\r\n\t\treturn config?.buttons?.confirmText ?? \"Ok\";\r\n\t}\r\n\r\n\tprivate getCancelText(config: AlertConfig | null): string {\r\n\t\treturn config?.buttons?.cancelText ?? \"Cancelar\";\r\n\t}\r\n\r\n\tprivate getConfirmButtonStyle(config: AlertConfig | null): Record<string, string> {\r\n\t\tconst styles = config?.styles;\r\n\t\tconst baseStyle: Record<string, string> = {\r\n\t\t\tminWidth: \"120px\",\r\n\t\t};\r\n\t\tif (styles?.confirmButtonColor) {\r\n\t\t\tbaseStyle[\"backgroundColor\"] = styles.confirmButtonColor;\r\n\t\t\tbaseStyle[\"borderColor\"] = styles.confirmButtonColor;\r\n\t\t}\r\n\t\tif (styles?.confirmButtonTextColor) {\r\n\t\t\tbaseStyle[\"color\"] = styles.confirmButtonTextColor;\r\n\t\t}\r\n\t\treturn baseStyle;\r\n\t}\r\n\r\n\tprivate getCancelButtonStyle(config: AlertConfig | null): Record<string, string> {\r\n\t\tconst styles = config?.styles;\r\n\t\tconst baseStyle: Record<string, string> = {\r\n\t\t\tminWidth: \"120px\",\r\n\t\t};\r\n\t\tif (styles?.cancelButtonColor) {\r\n\t\t\tbaseStyle[\"backgroundColor\"] = styles.cancelButtonColor;\r\n\t\t\tbaseStyle[\"borderColor\"] = styles.cancelButtonColor;\r\n\t\t}\r\n\t\tif (styles?.cancelButtonTextColor) {\r\n\t\t\tbaseStyle[\"color\"] = styles.cancelButtonTextColor;\r\n\t\t}\r\n\t\treturn baseStyle;\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 { 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\tBarSeriesOption,\r\n\tDefaultLabelFormatterCallbackParams,\r\n\tEChartsOption,\r\n\tGridComponentOption,\r\n\tLabelFormatterCallback,\r\n\tLegendComponentOption,\r\n\tLineSeriesOption,\r\n\tPieSeriesOption,\r\n\tTooltipComponentFormatterCallback,\r\n\tTooltipComponentFormatterCallbackParams,\r\n\tYAXisComponentOption,\r\n} from \"echarts\";\r\nimport { Color, getColor } from \"../constants/color.constants\";\r\nimport { darkenColor } from \"../functions/echart.util\";\r\nimport { FormatAmountPipe } from \"../pipes/amount.pipe\";\r\n\r\n@Injectable({\r\n\tprovidedIn: \"root\",\r\n})\r\nexport class EchartService {\r\n\tprivate readonly _formatAmountPipe = inject(FormatAmountPipe);\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\t// lineStyle: {\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\tlineStyle: { width: 1, color: Color.gray, type: [5, 5], cap: \"round\" },\r\n\t\t\t},\r\n\t\t\taxisLabel: {\r\n\t\t\t\tfontFamily: \"Lato, sans-serif\",\r\n\t\t\t\tshow: true,\r\n\t\t\t\t// show: 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 = true, format: boolean = true, showAxisLines: boolean = true) {\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) => {\r\n\t\t\t\tconst formatted = this._formatAmountPipe.transform(value, true, 0, true);\r\n\t\t\t\treturn formatted === \"-\" ? 0 : formatted;\r\n\t\t\t};\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\t// left: \"0%\",\r\n\t\t\t// right: \"0%\",\r\n\t\t\t// //bottom: '0%',\r\n\t\t\t// containLabel: true,\r\n\t\t\tleft: 0,\r\n\t\t\tright: 0,\r\n\t\t\ttop: 20,\r\n\t\t\tbottom: 40,\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\t// orient: \"horizontal\", // 'horizontal | vertical'\r\n\t\t\t// icon: \"circle\",\r\n\t\t\t// bottom: 5,\r\n\t\t\t// align: \"auto\",\r\n\t\t\t// itemGap: 20,\r\n\t\t\t// textStyle: { color: Color.blue, fontSize: 14 },\r\n\t\t\tdata: [{ name: \"Expenses\", icon: \"circle\" }],\r\n\t\t\tbottom: 0,\r\n\t\t\ttextStyle: {\r\n\t\t\t\tcolor: \"#4E546F\",\r\n\t\t\t\tfontFamily: \"Lato, sans-serif\",\r\n\t\t\t\tfontSize: 12,\r\n\t\t\t\tlineHeight: 12,\r\n\t\t\t},\r\n\t\t\titemWidth: 10,\r\n\t\t\titemHeight: 10,\r\n\t\t\titemGap: 25,\r\n\t\t\talign: \"left\",\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\ttextStyle: { fontFamily: \"Lato, sans-serif\" },\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, borderRadius: 8 },\r\n\t\t\t\t\t\tdata: item.value,\r\n\t\t\t\t\t\tbarWidth: \"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\tappendTo: \"body\",\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(false, true, false);\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 = (serie.itemStyle as any)?.color ?? (series[idx] && series[idx].color) ?? \"#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}\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\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\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\r\n\t\t\t\tconst text = String(value ?? \"\");\r\n\t\t\t\tconst prefix = `${index + 1} - `;\r\n\r\n\t\t\t\tconst digitCount = String(index + 1).length;\r\n\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\r\n\t\t\t\tconst sangria = sangriaBase + \"\\u2008\".repeat(extraRepeat);\r\n\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\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 {\r\n\t\t\t\t\t\tif (current) lines.push(current);\r\n\t\t\t\t\t\tcurrent = w;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (current) lines.push(current);\r\n\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\r\n\t\t\t// y.inverse = true;\r\n\t\t\t// y.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\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\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\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\tappendTo: \"body\t\",\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\tappendTo: \"body\",\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\tappendTo: \"body\",\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\t/**\r\n\t * Semi doughnut gauge (half circle) with:\r\n\t * - Progress arc\r\n\t * - End dot\r\n\t * - Center letter\r\n\t *\r\n\t * @param letter - Text to show in the center\r\n\t * @param value - Current value\r\n\t * @param textSize - Center letter font size\r\n\t * @param color - Progress and end dot color\r\n\t * @param total - Max value (default 100)\r\n\t */\r\n\tgetRateSemiDoughnutOptions(letter: string, value: number, textSize: number, color: string, total: number = 100, bottomText?: string): EChartsOption {\r\n\t\tconst safeTotal = total > 0 ? total : 100;\r\n\t\tconst safeValue = Math.max(0, Math.min(value, safeTotal));\r\n\r\n\t\tconst START_ANGLE = 210;\r\n\t\tconst END_ANGLE = -30;\r\n\r\n\t\tconst THICKNESS = 11;\r\n\t\tconst BACKGROUND_COLOR = \"#D9D9E3\";\r\n\t\tconst TEXT_COLOR = \"#4F5470\";\r\n\r\n\t\tconst MIN_LABEL = \"0\";\r\n\t\tconst MAX_LABEL = String(safeTotal);\r\n\t\tconst MIN_MAX_FONT_SIZE = 15;\r\n\r\n\t\tconst RADIUS = \"96%\";\r\n\t\tconst CENTER: [string, string] = [\"50%\", \"50%\"];\r\n\r\n\t\tconst dotSizePx = THICKNESS + 5;\r\n\t\tconst POINTER_LENGTH = \"98%\";\r\n\r\n\t\tconst option: EChartsOption = {\r\n\t\t\ttooltip: { trigger: \"none\", appendTo: \"body\" },\r\n\t\t\tseries: [\r\n\t\t\t\t/* ================= GAUGE 1: PROGRESS ================= */\r\n\t\t\t\t{\r\n\t\t\t\t\ttype: \"gauge\",\r\n\t\t\t\t\tradius: RADIUS,\r\n\t\t\t\t\tcenter: CENTER,\r\n\t\t\t\t\tstartAngle: START_ANGLE,\r\n\t\t\t\t\tendAngle: END_ANGLE,\r\n\t\t\t\t\tmin: 0,\r\n\t\t\t\t\tmax: safeTotal,\r\n\r\n\t\t\t\t\tpointer: { show: false },\r\n\r\n\t\t\t\t\tprogress: {\r\n\t\t\t\t\t\tshow: true,\r\n\t\t\t\t\t\troundCap: true,\r\n\t\t\t\t\t\twidth: THICKNESS,\r\n\t\t\t\t\t\titemStyle: { color },\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\taxisLine: {\r\n\t\t\t\t\t\troundCap: true,\r\n\t\t\t\t\t\tlineStyle: {\r\n\t\t\t\t\t\t\twidth: THICKNESS,\r\n\t\t\t\t\t\t\tcolor: [[1, BACKGROUND_COLOR]],\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\taxisTick: { show: false },\r\n\t\t\t\t\tsplitLine: { show: false },\r\n\t\t\t\t\taxisLabel: { show: false },\r\n\r\n\t\t\t\t\tdetail: {\r\n\t\t\t\t\t\tshow: true,\r\n\t\t\t\t\t\toffsetCenter: [0, \"8%\"],\r\n\t\t\t\t\t\tformatter: () => (bottomText ? `{letter|${letter}}\\n{bottom|${bottomText}}` : `{letter|${letter}}`),\r\n\t\t\t\t\t\trich: {\r\n\t\t\t\t\t\t\tletter: {\r\n\t\t\t\t\t\t\t\tfontSize: textSize,\r\n\t\t\t\t\t\t\t\tfontWeight: 700,\r\n\t\t\t\t\t\t\t\tcolor: TEXT_COLOR,\r\n\t\t\t\t\t\t\t\tfontFamily: \"Lato, sans-serif\",\r\n\t\t\t\t\t\t\t\tlineHeight: textSize + 2,\r\n\t\t\t\t\t\t\t\talign: \"center\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tbottom: {\r\n\t\t\t\t\t\t\t\tfontSize: 16,\r\n\t\t\t\t\t\t\t\tfontWeight: 500,\r\n\t\t\t\t\t\t\t\tcolor: TEXT_COLOR,\r\n\t\t\t\t\t\t\t\tfontFamily: \"Lato, sans-serif\",\r\n\t\t\t\t\t\t\t\tlineHeight: 22,\r\n\t\t\t\t\t\t\t\talign: \"center\",\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\r\n\t\t\t\t\tdata: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvalue: safeValue,\r\n\t\t\t\t\t\t\tname: \"0\",\r\n\t\t\t\t\t\t\ttitle: {\r\n\t\t\t\t\t\t\t\tshow: true,\r\n\t\t\t\t\t\t\t\tformatter: () => MIN_LABEL,\r\n\t\t\t\t\t\t\t\toffsetCenter: [\"-80%\", \"66%\"],\r\n\t\t\t\t\t\t\t\tfontSize: MIN_MAX_FONT_SIZE,\r\n\t\t\t\t\t\t\t\tcolor: TEXT_COLOR,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvalue: safeValue,\r\n\t\t\t\t\t\t\tname: \"100\",\r\n\t\t\t\t\t\t\ttitle: {\r\n\t\t\t\t\t\t\t\tshow: true,\r\n\t\t\t\t\t\t\t\tformatter: () => MAX_LABEL,\r\n\t\t\t\t\t\t\t\toffsetCenter: [\"80%\", \"66%\"],\r\n\t\t\t\t\t\t\t\tfontSize: MIN_MAX_FONT_SIZE,\r\n\t\t\t\t\t\t\t\tcolor: TEXT_COLOR,\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} as any,\r\n\r\n\t\t\t\t/* ================= GAUGE 2: END DOT ================= */\r\n\t\t\t\t{\r\n\t\t\t\t\ttype: \"gauge\",\r\n\t\t\t\t\tradius: RADIUS,\r\n\t\t\t\t\tcenter: CENTER,\r\n\t\t\t\t\tstartAngle: START_ANGLE,\r\n\t\t\t\t\tendAngle: END_ANGLE,\r\n\t\t\t\t\tmin: 0,\r\n\t\t\t\t\tmax: safeTotal,\r\n\r\n\t\t\t\t\taxisLine: { show: false },\r\n\t\t\t\t\tprogress: { show: false },\r\n\t\t\t\t\tsplitLine: { show: false },\r\n\t\t\t\t\taxisTick: { show: false },\r\n\t\t\t\t\taxisLabel: { show: false },\r\n\t\t\t\t\tdetail: { show: false },\r\n\r\n\t\t\t\t\tpointer: {\r\n\t\t\t\t\t\tshow: true,\r\n\t\t\t\t\t\ticon: \"circle\",\r\n\t\t\t\t\t\tlength: POINTER_LENGTH,\r\n\t\t\t\t\t\twidth: dotSizePx,\r\n\t\t\t\t\t\titemStyle: {\r\n\t\t\t\t\t\t\tcolor,\r\n\t\t\t\t\t\t\tborderWidth: 0,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tdata: [{ value: safeValue }],\r\n\t\t\t\t} as any,\r\n\t\t\t],\r\n\t\t};\r\n\r\n\t\treturn option;\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 { ConfigService } from \"./config.service\";\r\n@Injectable({\r\n\tprovidedIn: \"root\",\r\n})\r\nexport class AuthenticationService {\r\n\tprivate readonly _http = inject(HttpClient);\r\n\tprivate readonly _configService = inject(ConfigService);\r\n\tGetPrivateValue(): Observable<string> {\r\n\t\treturn this._http.get<string>(`${this._configService.environment?.authenticationPath}/Authenticate/GetPrivateValue`);\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 { inject, Injectable, signal } from \"@angular/core\";\r\nimport { getCookie } from \"typescript-cookie\";\r\nimport { AuthenticationService } from \"./authentication.service\";\r\nimport { decryptData } from \"../functions/decryptRSA\";\r\n@Injectable({ providedIn: \"root\" })\r\nexport class ProfileService {\r\n\tprivate readonly AuthenticationService = inject(AuthenticationService);\r\n\tProfile?: any = null;\r\n\tPrivateKey: string = \"\";\r\n\tProfileReady = signal<boolean>(false);\r\n\tInitialize(): void {\r\n\t\tthis.AuthenticationService.GetPrivateValue().subscribe(response => {\r\n\t\t\tthis.PrivateKey = response;\r\n\t\t\tthis.SetProfile();\r\n\t\t});\r\n\t}\r\n\tSetProfile() {\r\n\t\tconst profileCookie = getCookie(\"profile\");\r\n\t\tif (profileCookie) {\r\n\t\t\tconst decrypted = decryptData(profileCookie, this.PrivateKey);\r\n\t\t\tthis.Profile = decrypted ? JSON.parse(decrypted) : null;\r\n\t\t} else this.Profile = null;\r\n\t\tthis.ProfileReady.set(true);\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, signal } from \"@angular/core\";\r\n\r\ninterface MenuVisibilityEventDetail {\r\n\tmenuIsVisible: boolean;\r\n}\r\n\r\nexport interface ProductEventDetail {\r\n\tproductId: string;\r\n\tproduct: string;\r\n\ticon: string;\r\n}\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class GlobalMenuService {\r\n\tprivate _isMenuVisible = signal<boolean>(true);\r\n\tprivate _selectedProduct = signal<ProductEventDetail>({ product: \"\", icon: \"\", productId: \"\" });\r\n\r\n\tpublic isMenuVisible = this._isMenuVisible.asReadonly();\r\n\tpublic selectedProduct = this._selectedProduct.asReadonly();\r\n\r\n\tprivate readonly eventMenu = \"MenuBarEvent\";\r\n\tprivate readonly eventProducts = \"SelectedProductMenuEvent\";\r\n\r\n\tinitialize() {\r\n\t\tthis.listenMenuEvents();\r\n\t}\r\n\r\n\tpublic setMenuVisibility(isVisible: boolean): void {\r\n\t\tthis.emitMenuEvent(isVisible);\r\n\t}\r\n\r\n\tpublic setSelectedProduct(product: ProductEventDetail): void {\r\n\t\tthis.emitSelectedProductEvent(product);\r\n\t}\r\n\r\n\tprivate listenMenuEvents(): void {\r\n\t\twindow.addEventListener(this.eventMenu, this.onMenuEvent);\r\n\t\twindow.addEventListener(this.eventProducts, this.onSelectedProductEvent);\r\n\t}\r\n\r\n\tprivate onMenuEvent = (event: Event): void => {\r\n\t\tconst { menuIsVisible } = (event as CustomEvent<MenuVisibilityEventDetail>).detail ?? {};\r\n\t\tif (typeof menuIsVisible === \"boolean\") this._isMenuVisible.set(menuIsVisible);\r\n\t};\r\n\r\n\tprivate onSelectedProductEvent = (event: Event): void => {\r\n\t\tconst detail = (event as CustomEvent<ProductEventDetail>).detail;\r\n\t\tif (!detail) return;\r\n\r\n\t\tconst { product, icon, productId: authClient } = detail;\r\n\t\tif (typeof product === \"string\" && typeof icon === \"string\" && typeof authClient === \"string\") {\r\n\t\t\tthis._selectedProduct.set({ product, icon, productId: authClient });\r\n\t\t}\r\n\t};\r\n\r\n\tprivate emitMenuEvent(isVisible: boolean): void {\r\n\t\tconst event = new CustomEvent(this.eventMenu, {\r\n\t\t\tdetail: { menuIsVisible: isVisible } satisfies MenuVisibilityEventDetail,\r\n\t\t});\r\n\t\twindow.dispatchEvent(event);\r\n\t}\r\n\r\n\tprivate emitSelectedProductEvent(selectedProduct: ProductEventDetail): void {\r\n\t\tconst event = new CustomEvent(this.eventProducts, {\r\n\t\t\tdetail: { product: selectedProduct.product, icon: selectedProduct.icon, productId: selectedProduct.productId } satisfies ProductEventDetail,\r\n\t\t});\r\n\t\twindow.dispatchEvent(event);\r\n\t}\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable, shareReplay, throwError } from \"rxjs\";\r\nimport { catchError } from \"rxjs/operators\";\r\n\r\ninterface CacheEntry<T> {\r\n\texpiresAt: number;\r\n\tvalue$: Observable<T>;\r\n}\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class RequestCacheService {\r\n\tprivate readonly cache = new Map<string, CacheEntry<unknown>>();\r\n\tprivate readonly maxEntries = 300;\r\n\tprivate readonly defaultTtlMs = 5 * 60 * 1000;\r\n\r\n\tpublic getOrSet<T>(key: string, factory: () => Observable<T>, ttlMs: number = this.defaultTtlMs): Observable<T> {\r\n\t\tthis.removeExpiredEntries();\r\n\t\tconst now = Date.now();\r\n\t\tconst cached = this.cache.get(key) as CacheEntry<T> | undefined;\r\n\r\n\t\tif (cached && cached.expiresAt > now) {\r\n\t\t\treturn cached.value$;\r\n\t\t}\r\n\r\n\t\tconst value$ = factory().pipe(\r\n\t\t\tshareReplay(1),\r\n\t\t\tcatchError(error => {\r\n\t\t\t\tthis.cache.delete(key);\r\n\t\t\t\treturn throwError(() => error);\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\tthis.cache.set(key, { value$, expiresAt: now + Math.max(ttlMs, 0) });\r\n\t\tthis.enforceCapacityLimit();\r\n\t\treturn value$;\r\n\t}\r\n\r\n\tpublic invalidate(prefix?: string): void {\r\n\t\tif (!prefix) {\r\n\t\t\tthis.cache.clear();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tfor (const key of this.cache.keys()) {\r\n\t\t\tif (key.startsWith(prefix)) {\r\n\t\t\t\tthis.cache.delete(key);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate removeExpiredEntries(): void {\r\n\t\tconst now = Date.now();\r\n\t\tfor (const [key, entry] of this.cache.entries()) {\r\n\t\t\tif (entry.expiresAt <= now) {\r\n\t\t\t\tthis.cache.delete(key);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate enforceCapacityLimit(): void {\r\n\t\twhile (this.cache.size > this.maxEntries) {\r\n\t\t\tconst oldestKey = this.cache.keys().next().value as string | undefined;\r\n\t\t\tif (!oldestKey) break;\r\n\t\t\tthis.cache.delete(oldestKey);\r\n\t\t}\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 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\t// brown: {\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// },//Change\r\n\t\t// beige: {\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// },//Change\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\t//transitionDuration: \"0.2s\",//Change\r\n\t\t//iconSize: \"1rem\",//Change\r\n\t\t//anchorGutter: \"2px\",//Change\r\n\t\t// list: {\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// },//change\r\n\t\t// content: {\r\n\t\t// \tborderRadius: \"{border.radius.md}\",\r\n\t\t// },\r\n\t\t// mask: {\r\n\t\t// \ttransitionDuration: \"0.15s\",\r\n\t\t// },\r\n\t\t// navigation: {\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\t//transparent: \"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\t// secondary: {\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\t// secondary: {\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\t//paddingX: \"1.0rem\", // change\r\n\t\t\t\t\t//paddingY: \"0.6rem\", // change\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\t//borderRadius: \"{border.radius.sm}\",//change\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\t//borderRadius: \"{border.radius.md}\",\r\n\t\t\t\t\t\t//shadow: \"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\t//borderRadius: \"{border.radius.md}\",\r\n\t\t\t\t\t\t//padding: \"0\",\r\n\t\t\t\t\t\t//shadow: \"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\t//borderRadius: \"{border.radius.xl}\",\r\n\t\t\t\t\t\t//padding: \"1.5rem\",\r\n\t\t\t\t\t\t//shadow: \"none\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\t// navigation: {\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\t// focusRing: {\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\t// borderRadius: {\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\t//disabledOpacity: \"1\",\r\n\t\t\t\tlist: {\r\n\t\t\t\t\t//padding: \"0rem\",\r\n\t\t\t\t\t//gap: \"0rem\",\r\n\t\t\t\t\toption: {\r\n\t\t\t\t\t\t//borderRadius: \"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\t// secondary: {\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\t//paddingX: \"1.0rem\", // added by CA\r\n\t\t\t\t\t//paddingY: \"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\t//borderRadius: \"{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\t//borderRadius: \"{border.radius.md}\",\r\n\t\t\t\t\t\t//shadow: \"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\t//borderRadius: \"{border.radius.md}\",\r\n\t\t\t\t\t\t//padding: \"0\",\r\n\t\t\t\t\t\t//shadow: \"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\t//borderRadius: \"{border.radius.xl}\",\r\n\t\t\t\t\t\t//padding: \"1.5rem\",\r\n\t\t\t\t\t\t//shadow: \"none\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\t// navigation: {\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\t// focusRing: {\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\t// borderRadius: {\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\t//disabledOpacity: \"1\",\r\n\t\t\t\tlist: {\r\n\t\t\t\t\t//padding: \"0rem\",\r\n\t\t\t\t\t//gap: \"0rem\",\r\n\t\t\t\t\toption: {\r\n\t\t\t\t\t\t//borderRadius: \"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\t// text: {\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\t// text: {\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\t//background: \"{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\t//hoverBorderColor: \"{gray.400}\",\r\n\t\t\t\t\t\t\t//activeBorderColor: \"{gray.400}\",\r\n\t\t\t\t\t\t\tcolor: \"{blue.700}\",\r\n\t\t\t\t\t\t\t//hoverColor: \"#ffffff\",\r\n\t\t\t\t\t\t\t//activeColor: \"#ffffff\",\r\n\t\t\t\t\t\t\t// focusRing: {\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\t// borderWidth: \"0px\" //Change\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\t//columnResizerWidth: \"0.5rem\",//Change\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\t// stepIcon: {\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// },//Change\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\t//borderRadius: \"1rem\",//Change\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\t//contentBackground: \"{content.border.color}\",//Change\r\n\t\t\t\t\t\t// range: {\r\n\t\t\t\t\t\t// \tbackground: \"{content.border.color}\",\r\n\t\t\t\t\t\t// },//Change\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\t//contentBackground: \"{content.border.color} \",//Change\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","// notification/dto/recipient-dispatch-error.dto.ts\r\n\r\n/**\r\n * Error mínimo de dispatch para campanas / UI.\r\n * - Fuente: progress (SignalR) + persistencia (rehidratación recipients)\r\n * - Key natural: recipientId\r\n * - Escalable: agrega campos opcionales sin romper consumers.\r\n */\r\nexport interface RecipientDispatchError {\r\n\trecipientId: string;\r\n\r\n\t/** Texto del último error (si el backend lo provee) */\r\n\tlastErrorMessage: string | null;\r\n\r\n\t/** Campos opcionales útiles (ya existen en progress) */\r\n\tnotificationId?: string;\r\n\tjobId?: string | null;\r\n\r\n\tchannelCode?: string;\r\n\tstatusCode?: string;\r\n\r\n\tattempts?: number;\r\n\tlastAttemptAt?: string | null;\r\n\r\n\t/** Identificadores de negocio si los quieres luego */\r\n\tuserId?: string | null;\r\n\tclientId?: string | null;\r\n\tgroupId?: string | null;\r\n}\r\n","import { inject, Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\nimport { NotificationRecipientSummaryResponse } from \"./dto/notification-response.dto\";\r\nimport { UserNotificationInboxItem } from \"./dto/notification-inbox-response.dto\";\r\nimport { ConfigService } from \"../services/config.service\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class NotificationService {\r\n\tprivate readonly configService = inject(ConfigService);\r\n\tprivate readonly path = `${this.configService.environment?.notificationsPath}/Notifications`;\r\n\tprivate readonly defaultHeaders = new HttpHeaders({\r\n\t\trefreshtoken: \"f06c110a-ea4e-44a9-896f-210f3b387e57\",\r\n\t\tlanguagecode: \"EN\",\r\n\t\tpageRoot: \"\",\r\n\t\tauthorization:\r\n\t\t\t\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwcmVmZXJyZWRfdXNlcm5hbWUiOiJBbGV4YW5kZXIiLCJmdWxsTmFtZSI6IkFsZXhhbmRlciBUb3JyZSIsInN1YiI6Ijg3ZTQxYzZlLWNmN2EtNDk4MC05YTQ1LThjZjllNWMwOGMzZCIsImVtYWlsIjoiam9oYW4uY2FyYm9uZWxAaW50ZWxpY2EuY29tIiwiYnVzaW5lc3NVc2VyQ2xpZW50R3JvdXBJRCI6ImNlMjE5NDAyLWQyMDAtNGU1Yy1iNzE0LWJkNDJiMjZhNzNkNSIsImJhbmtzSUQiOiJnUlZPUEt6V3BNbHQ2NFE3OWdDcUxlQ1pFeWp2RjVFQVo0TmNMVTQvZlhJMVlvbERPeEFOV0NWTUpFYkJYRDJQUHkvUi8xdDVQVHBFZ08vcFFPcnMwVnNNeWRONkVocEY5MzRCRDJFRXhlelVyakZWWVduWitrcCtObGRLOU56VWg4VjZaRjBVTzEyN0JIaG12aGhUNzZMRm51Zm9nSndUTHVuOW5qMFpEaSsxV3MxTHkzZytzWkNYSVdTelR3QjBEc1g5Y2tXSTJrWmFHeWhHVlFhTlliT3hGYzU5UU9xV0pxQUJqdmVBdFNEaGNQdFZta3RIOXFaaEJ5Tkphdkh5R1pkWWJScXovcUZPOW1HUC92NjVScFZ5djNwejhCZUtvMVlJVW5vSUFqSU9udzRTMEkzcmxaSTNrTExBRFFOdnhBSk81NjgvZTVvdWlVZFd3SDlJd2c9PSIsImlzSW50ZWxpY2EiOiIxIiwiY2xpZW50R3JvdXBJRCI6ImU5ZDc1ODY3LTZkMDQtNGNiMC1iZjMxLTE5MmI5Y2VjMzVkYSIsImNsaWVudElEIjoiMDYzMGU0MDEtMzk1Ny00OTU5LTljYTUtYjM1MGVkNmU5Yjk2IiwiYm5rR3JvdXBJRCI6IjAiLCJpbXJwUHJvamVjdElEIjoiMTAwNjMyIiwiZXhwIjoxNzY4ODU3MTUwLCJpc3MiOiJpbnRlbGljYS5jb20iLCJhdWQiOiJpbnRlbGljYS5jb20ifQ.n0BGAUHrp6BiA_XpgTw6WdresOk_C3aaON7V7AcF5uo\",\r\n\t});\r\n\r\n\tconstructor(private http: HttpClient) {}\r\n\r\n\tgetNotificacionsByUser(userId: string): Observable<UserNotificationInboxItem[]> {\r\n\t\treturn this.http.get<UserNotificationInboxItem[]>(`${this.path}/users/${encodeURIComponent(userId)}`, { headers: this.defaultHeaders });\r\n\t}\r\n\r\n\tmarkAsRead(recipientId: string): Observable<NotificationRecipientSummaryResponse> {\r\n\t\treturn this.http.post<NotificationRecipientSummaryResponse>(`${this.path}/users/recipients/${recipientId}/read`, {}, { headers: this.defaultHeaders });\r\n\t}\r\n\r\n\tmarkAsHidden(recipientId: string): Observable<NotificationRecipientSummaryResponse> {\r\n\t\treturn this.http.post<NotificationRecipientSummaryResponse>(`${this.path}/users/recipients/${recipientId}/hidden`, {}, { headers: this.defaultHeaders });\r\n\t}\r\n}\r\n","import { inject, Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { ConfigService } from \"../services/config.service\";\r\nimport { catchError, map, Observable, of } from \"rxjs\";\r\nimport { NotificationJobResponse, NotificationRecipientSummaryResponse, NotificationResponse } from \"./dto/notification-response.dto\";\r\nimport { CreateNotificationJobRequest, CreateNotificationsForJobRequest } from \"./dto/notification-request.dto\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class NotificationJobService {\r\n\tprivate readonly configService = inject(ConfigService);\r\n\tprivate readonly path = `${this.configService.environment?.notificationsPath}/NotificationJobs`;\r\n\tprivate readonly defaultHeaders = new HttpHeaders({\r\n\t\trefreshtoken: \"f06c110a-ea4e-44a9-896f-210f3b387e57\",\r\n\t\tlanguagecode: \"EN\",\r\n\t\tpageRoot: \"\",\r\n\t\tauthorization:\r\n\t\t\t\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwcmVmZXJyZWRfdXNlcm5hbWUiOiJBbGV4YW5kZXIiLCJmdWxsTmFtZSI6IkFsZXhhbmRlciBUb3JyZSIsInN1YiI6Ijg3ZTQxYzZlLWNmN2EtNDk4MC05YTQ1LThjZjllNWMwOGMzZCIsImVtYWlsIjoiam9oYW4uY2FyYm9uZWxAaW50ZWxpY2EuY29tIiwiYnVzaW5lc3NVc2VyQ2xpZW50R3JvdXBJRCI6ImNlMjE5NDAyLWQyMDAtNGU1Yy1iNzE0LWJkNDJiMjZhNzNkNSIsImJhbmtzSUQiOiJnUlZPUEt6V3BNbHQ2NFE3OWdDcUxlQ1pFeWp2RjVFQVo0TmNMVTQvZlhJMVlvbERPeEFOV0NWTUpFYkJYRDJQUHkvUi8xdDVQVHBFZ08vcFFPcnMwVnNNeWRONkVocEY5MzRCRDJFRXhlelVyakZWWVduWitrcCtObGRLOU56VWg4VjZaRjBVTzEyN0JIaG12aGhUNzZMRm51Zm9nSndUTHVuOW5qMFpEaSsxV3MxTHkzZytzWkNYSVdTelR3QjBEc1g5Y2tXSTJrWmFHeWhHVlFhTlliT3hGYzU5UU9xV0pxQUJqdmVBdFNEaGNQdFZta3RIOXFaaEJ5Tkphdkh5R1pkWWJScXovcUZPOW1HUC92NjVScFZ5djNwejhCZUtvMVlJVW5vSUFqSU9udzRTMEkzcmxaSTNrTExBRFFOdnhBSk81NjgvZTVvdWlVZFd3SDlJd2c9PSIsImlzSW50ZWxpY2EiOiIxIiwiY2xpZW50R3JvdXBJRCI6ImU5ZDc1ODY3LTZkMDQtNGNiMC1iZjMxLTE5MmI5Y2VjMzVkYSIsImNsaWVudElEIjoiMDYzMGU0MDEtMzk1Ny00OTU5LTljYTUtYjM1MGVkNmU5Yjk2IiwiYm5rR3JvdXBJRCI6IjAiLCJpbXJwUHJvamVjdElEIjoiMTAwNjMyIiwiZXhwIjoxNzY4ODU3MTUwLCJpc3MiOiJpbnRlbGljYS5jb20iLCJhdWQiOiJpbnRlbGljYS5jb20ifQ.n0BGAUHrp6BiA_XpgTw6WdresOk_C3aaON7V7AcF5uo\",\r\n\t});\r\n\r\n\tconstructor(private http: HttpClient) {}\r\n\r\n\tcreateJobNotifications(payload: CreateNotificationJobRequest): Observable<NotificationJobResponse> {\r\n\t\treturn this.http.post<NotificationJobResponse>(`${this.path}/notifications`, payload, {\r\n\t\t\theaders: this.defaultHeaders,\r\n\t\t});\r\n\t}\r\n\r\n\tcreateJob(payload: CreateNotificationJobRequest): Observable<NotificationJobResponse> {\r\n\t\treturn this.http.post<NotificationJobResponse>(`${this.path}`, payload, {\r\n\t\t\theaders: this.defaultHeaders,\r\n\t\t});\r\n\t}\r\n\r\n\tgetJob(jobId: string): Observable<NotificationJobResponse> {\r\n\t\treturn this.http.get<NotificationJobResponse>(`${this.path}/${jobId}`);\r\n\t}\r\n\r\n\tcreateNotifications(jobId: string, payload: CreateNotificationsForJobRequest[]): Observable<NotificationResponse> {\r\n\t\treturn this.http.post<NotificationResponse>(`${this.path}/${jobId}/notifications`, payload, { headers: this.defaultHeaders });\r\n\t}\r\n\r\n\tgetActiveJob(featureCode: string, origin?: string): Observable<NotificationJobResponse | null> {\r\n\t\tlet url = `${this.path}/active?featureCode=${encodeURIComponent(featureCode)}`;\r\n\t\tif (origin) {\r\n\t\t\turl += `&origin=${encodeURIComponent(origin)}`;\r\n\t\t}\r\n\r\n\t\treturn this.http.get<NotificationJobResponse[]>(url, { headers: this.defaultHeaders }).pipe(\r\n\t\t\tmap(list => (Array.isArray(list) && list.length > 0 ? list[0] : null)),\r\n\t\t\tcatchError(err => {\r\n\t\t\t\tconsole.error(\"Error obteniendo active jobs\", err);\r\n\t\t\t\treturn of(null);\r\n\t\t\t})\r\n\t\t);\r\n\t}\r\n\r\n\tgetRecipients(jobId: string): Observable<NotificationRecipientSummaryResponse[]> {\r\n\t\treturn this.http.get<NotificationRecipientSummaryResponse[]>(`${this.path}/${jobId}/recipients`, { headers: this.defaultHeaders });\r\n\t}\r\n}\r\n","import { inject, Injectable, NgZone } from \"@angular/core\";\r\nimport * as signalR from \"@microsoft/signalr\";\r\nimport { Subject } from \"rxjs\";\r\nimport { ConfigService } from \"../services/config.service\";\r\nimport { RecipientNotification } from \"./dto/notification-message-response.dto\";\r\nimport { RecipientProgressNotification } from \"./dto/notification-progress-message-response.dto\";\r\nimport { CallbackExecutionResult } from \"./dto/notification-callback-message-response.dto\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class NotificationSignalRService {\r\n\tprivate readonly configService = inject(ConfigService);\r\n\tprivate readonly path = `${this.configService.environment?.signalPath}/websocket`;\r\n\r\n\tprivate hubConnection?: signalR.HubConnection;\r\n\tprivate startPromise?: Promise<void>;\r\n\r\n\t// Mantiene los grupos a los que ya nos unimos (idempotencia + rejoin tras reconexión)\r\n\tprivate joinedGroups = new Set<string>();\r\n\r\n\tprivate notificationSendSubject = new Subject<RecipientNotification>();\r\n\tnotificationSend$ = this.notificationSendSubject.asObservable();\r\n\r\n\tprivate jobProgressSubject = new Subject<RecipientProgressNotification>();\r\n\tjobProgress$ = this.jobProgressSubject.asObservable();\r\n\r\n\tprivate callbackResultSubject = new Subject<CallbackExecutionResult>();\r\n\tcallbackResult$ = this.callbackResultSubject.asObservable();\r\n\r\n\tconstructor(private zone: NgZone) {}\r\n\r\n\t/**\r\n\t * Inicia la conexión una sola vez. Reutiliza la promesa para evitar carreras.\r\n\t */\r\n\tstartConnection(): Promise<void> {\r\n\t\tif (this.startPromise) return this.startPromise;\r\n\r\n\t\tthis.hubConnection = new signalR.HubConnectionBuilder().withUrl(this.path).withAutomaticReconnect().build();\r\n\t\tthis.hubConnection.keepAliveIntervalInMilliseconds = 15_000;\r\n\t\tthis.hubConnection.serverTimeoutInMilliseconds = 120_000;\r\n\r\n\t\tthis.registerListeners();\r\n\t\tthis.registerReconnectHandlers();\r\n\r\n\t\tthis.startPromise = this.hubConnection.start().catch(err => {\r\n\t\t\tconsole.error(\"Error starting SignalR connection\", err);\r\n\t\t\tthis.startPromise = undefined; // permitir reintentar\r\n\t\t\tthrow err;\r\n\t\t});\r\n\r\n\t\treturn this.startPromise;\r\n\t}\r\n\r\n\t/**\r\n\t * Se une a un grupo de forma idempotente.\r\n\t * Importante: esta función garantiza que la conexión esté iniciada.\r\n\t */\r\n\tasync joinScope(scopeType: string, scopeId: string): Promise<void> {\r\n\t\tawait this.startConnection();\r\n\t\tif (!this.hubConnection) return;\r\n\r\n\t\tconst groupName = `${scopeType}-${scopeId}`;\r\n\r\n\t\tif (this.joinedGroups.has(groupName)) return;\r\n\r\n\t\tawait this.hubConnection.invoke(\"Connect\", groupName);\r\n\t\tthis.joinedGroups.add(groupName);\r\n\t}\r\n\r\n\t/**\r\n\t * Sale de un grupo y actualiza el estado local.\r\n\t * Requiere que el Hub implemente el método Disconnect(groupName).\r\n\t */\r\n\tasync leaveScope(scopeType: string, scopeId: string): Promise<void> {\r\n\t\tif (!this.hubConnection) return;\r\n\r\n\t\tconst groupName = `${scopeType}-${scopeId}`;\r\n\r\n\t\tif (!this.joinedGroups.has(groupName)) return;\r\n\r\n\t\tawait this.hubConnection.invoke(\"Disconnect\", groupName);\r\n\t\tthis.joinedGroups.delete(groupName);\r\n\t}\r\n\r\n\t/**\r\n\t * Detiene la conexión y limpia estado local.\r\n\t * Útil si quieres liberar recursos al cerrar sesión.\r\n\t */\r\n\tasync stopConnection(): Promise<void> {\r\n\t\tif (!this.hubConnection) return;\r\n\r\n\t\ttry {\r\n\t\t\tawait this.hubConnection.stop();\r\n\t\t} finally {\r\n\t\t\tthis.joinedGroups.clear();\r\n\t\t\tthis.hubConnection = undefined;\r\n\t\t\tthis.startPromise = undefined;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate registerListeners(): void {\r\n\t\tif (!this.hubConnection) return;\r\n\r\n\t\tthis.hubConnection.on(\"NotificationSend\", (raw: string) => {\r\n\t\t\tthis.zone.run(() => {\r\n\t\t\t\tconst data = JSON.parse(raw) as RecipientNotification;\r\n\t\t\t\tthis.notificationSendSubject.next(data);\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.hubConnection.on(\"JobProgress\", (raw: string) => {\r\n\t\t\tthis.zone.run(() => {\r\n\t\t\t\tconst data = JSON.parse(raw) as RecipientProgressNotification;\r\n\t\t\t\tthis.jobProgressSubject.next(data);\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.hubConnection.on(\"CallbackResult\", (raw: string) => {\r\n\t\t\tthis.zone.run(() => {\r\n\t\t\t\tconst data = JSON.parse(raw) as CallbackExecutionResult;\r\n\t\t\t\tthis.callbackResultSubject.next(data);\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t// Opcional (tu hub lo emite): útil para debugging\r\n\t\tthis.hubConnection.on(\"Connect\", (_msg: string) => {});\r\n\t}\r\n\r\n\t/**\r\n\t * SignalR pierde pertenencia a grupos tras reconexión: re-join automático.\r\n\t */\r\n\tprivate registerReconnectHandlers(): void {\r\n\t\tif (!this.hubConnection) return;\r\n\r\n\t\tthis.hubConnection.onreconnected(async () => {\r\n\t\t\ttry {\r\n\t\t\t\tfor (const groupName of this.joinedGroups) {\r\n\t\t\t\t\tawait this.hubConnection!.invoke(\"Connect\", groupName);\r\n\t\t\t\t}\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.error(\"Error rejoining groups after reconnection\", e);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.hubConnection.onclose(() => {\r\n\t\t\t// Mantén joinedGroups para poder rejoin si el usuario vuelve a startConnection()\r\n\t\t\tthis.startPromise = undefined;\r\n\t\t});\r\n\t}\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject, Subject, firstValueFrom, Observable } from \"rxjs\";\r\nimport { NotificationJobService } from \"./notification-job.service\";\r\nimport { NotificationSignalRService } from \"./notification-signalr.service\";\r\nimport { JobState } from \"./dto/job-state.dto\";\r\nimport { NotificationDraft } from \"./dto/notification-draft.dto\";\r\nimport { RecipientNotification } from \"./dto/notification-message-response.dto\";\r\nimport { NotificationRecipientSummaryResponse } from \"./dto/notification-response.dto\";\r\nimport { CreateNotificationJobRequest, CreateNotificationsForJobRequest } from \"./dto/notification-request.dto\";\r\nimport { RecipientDispatchError } from \"./dto/recipient-dispatch-error.dto\";\r\nimport { NotificationService } from \"./notification.service\";\r\nimport { UserNotificationInboxItem } from \"./dto/notification-inbox-response.dto\";\r\nimport { RecipientProgressNotification } from \"./dto/notification-progress-message-response.dto\";\r\nimport { CallbackExecutionResult } from \"./dto/notification-callback-message-response.dto\";\r\nimport { JobStatusCode, Origin } from \"./dto/notification-type.dto\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class NotificationOrchestratorService {\r\n\t// Config actual (feature/origin) del “scope”\r\n\tprivate origin?: Origin;\r\n\tprivate featureCode?: string;\r\n\r\n\tprivate currentJobId?: string;\r\n\tprivate subscribedJobId?: string;\r\n\r\n\t// --- streams públicos (feature/origin job state)\r\n\tprivate readonly jobStateSubject = new BehaviorSubject<JobState>({\r\n\t\tstatus: \"pending\",\r\n\t\tprocessedCount: 0,\r\n\t\ttotalCount: 0,\r\n\t\tprocessedNotificationsCount: 0,\r\n\t\ttotalNotificationsCount: 0,\r\n\t});\r\n\treadonly jobState$ = this.jobStateSubject.asObservable();\r\n\r\n\tprivate readonly dispatchErrorsMapSubject = new BehaviorSubject<Map<string, RecipientDispatchError>>(new Map());\r\n\treadonly dispatchErrors$ = this.dispatchErrorsMapSubject.asObservable();\r\n\r\n\tprivate readonly callbackRawSubject = new Subject<CallbackExecutionResult>();\r\n\treadonly callbackRaw$ = this.callbackRawSubject.asObservable();\r\n\r\n\t/**\r\n\t * Router de progreso por jobId (para UIs multi-job).\r\n\t */\r\n\tprivate readonly jobProgressSubjects = new Map<string, Subject<RecipientProgressNotification>>();\r\n\tprivate readonly jobWatchRefCount = new Map<string, number>();\r\n\r\n\t/**\r\n\t * Router de NotificationSend por userId (campana/inbox).\r\n\t */\r\n\tprivate readonly userInboxSubjects = new Map<string, Subject<RecipientNotification>>();\r\n\tprivate readonly userWatchRefCount = new Map<string, number>();\r\n\r\n\t// Guard anti-carreras para rehidratación\r\n\tprivate initInFlight?: Promise<void>;\r\n\r\n\tconstructor(\r\n\t\tprivate jobService: NotificationJobService,\r\n\t\tprivate notificationService: NotificationService,\r\n\t\tprivate signalR: NotificationSignalRService\r\n\t) {\r\n\t\t// stream global SignalR => orquestador enruta\r\n\t\tthis.signalR.jobProgress$.subscribe(update => this.onJobProgress(update));\r\n\t\tthis.signalR.callbackResult$.subscribe(update => this.onCallbackResult(update));\r\n\t\tthis.signalR.notificationSend$.subscribe(update => this.onNotificationSend(update));\r\n\t}\r\n\r\n\t// ---------------------------------------------------------------------\r\n\t// API pública para UI: Inbox user-scoped (NotificationSend)\r\n\t// ---------------------------------------------------------------------\r\n\r\n\tasync watchUserInbox(userId: string): Promise<Observable<RecipientNotification>> {\r\n\t\tif (!userId) throw new Error(\"userId is required\");\r\n\r\n\t\tconst current = this.userWatchRefCount.get(userId) ?? 0;\r\n\t\tthis.userWatchRefCount.set(userId, current + 1);\r\n\r\n\t\tawait this.signalR.joinScope(\"user\", userId);\r\n\r\n\t\treturn this.userInbox$(userId);\r\n\t}\r\n\r\n\tasync unwatchUserInbox(userId: string): Promise<void> {\r\n\t\tif (!userId) return;\r\n\r\n\t\tconst current = this.userWatchRefCount.get(userId) ?? 0;\r\n\r\n\t\tif (current <= 1) {\r\n\t\t\tthis.userWatchRefCount.delete(userId);\r\n\r\n\t\t\tawait this.signalR.leaveScope(\"user\", userId);\r\n\r\n\t\t\tconst subj = this.userInboxSubjects.get(userId);\r\n\t\t\tif (subj) {\r\n\t\t\t\tsubj.complete();\r\n\t\t\t\tthis.userInboxSubjects.delete(userId);\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.userWatchRefCount.set(userId, current - 1);\r\n\t}\r\n\r\n\tuserInbox$(userId: string): Observable<RecipientNotification> {\r\n\t\tlet subj = this.userInboxSubjects.get(userId);\r\n\t\tif (!subj) {\r\n\t\t\tsubj = new Subject<RecipientNotification>();\r\n\t\t\tthis.userInboxSubjects.set(userId, subj);\r\n\t\t}\r\n\t\treturn subj.asObservable();\r\n\t}\r\n\r\n\t// ---------------------------------------------------------------------\r\n\t// API pública para UI: Job progress por jobId (PRG)\r\n\t// ---------------------------------------------------------------------\r\n\r\n\tasync watchJobProgress(jobId: string): Promise<Observable<RecipientProgressNotification>> {\r\n\t\tif (!jobId) throw new Error(\"jobId is required\");\r\n\r\n\t\tconst current = this.jobWatchRefCount.get(jobId) ?? 0;\r\n\t\tthis.jobWatchRefCount.set(jobId, current + 1);\r\n\r\n\t\tawait this.signalR.joinScope(\"job\", jobId);\r\n\r\n\t\treturn this.jobProgress$(jobId);\r\n\t}\r\n\r\n\tasync unwatchJobProgress(jobId: string): Promise<void> {\r\n\t\tif (!jobId) return;\r\n\r\n\t\tconst current = this.jobWatchRefCount.get(jobId) ?? 0;\r\n\r\n\t\tif (current <= 1) {\r\n\t\t\tthis.jobWatchRefCount.delete(jobId);\r\n\r\n\t\t\tawait this.signalR.leaveScope(\"job\", jobId);\r\n\r\n\t\t\tconst subj = this.jobProgressSubjects.get(jobId);\r\n\t\t\tif (subj) {\r\n\t\t\t\tsubj.complete();\r\n\t\t\t\tthis.jobProgressSubjects.delete(jobId);\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.jobWatchRefCount.set(jobId, current - 1);\r\n\t}\r\n\r\n\tjobProgress$(jobId: string): Observable<RecipientProgressNotification> {\r\n\t\tlet subj = this.jobProgressSubjects.get(jobId);\r\n\t\tif (!subj) {\r\n\t\t\tsubj = new Subject<RecipientProgressNotification>();\r\n\t\t\tthis.jobProgressSubjects.set(jobId, subj);\r\n\t\t}\r\n\t\treturn subj.asObservable();\r\n\t}\r\n\r\n\t// ---------------------------------------------------------------------\r\n\t// Scope feature/origin (tu lógica existente)\r\n\t// ---------------------------------------------------------------------\r\n\r\n\trehydrateScope(origin: Origin, featureCode: string): Promise<void> {\r\n\t\tthis.origin = origin;\r\n\t\tthis.featureCode = featureCode;\r\n\r\n\t\tif (this.initInFlight) return this.initInFlight;\r\n\r\n\t\tthis.initInFlight = (async () => {\r\n\t\t\ttry {\r\n\t\t\t\tawait this.rehydrateActiveJobInternal();\r\n\t\t\t} finally {\r\n\t\t\t\tthis.initInFlight = undefined;\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\treturn this.initInFlight;\r\n\t}\r\n\r\n\tgetCurrentJobId(): string | undefined {\r\n\t\treturn this.currentJobId;\r\n\t}\r\n\r\n\tgetJobStateSnapshot(): JobState {\r\n\t\treturn this.jobStateSubject.value;\r\n\t}\r\n\r\n\tasync ensureActiveOrCreateJobNotifications(notificationDraft: NotificationDraft[]): Promise<{ jobId: string; mode: \"active\" | \"created\" }> {\r\n\t\tif (!this.origin || !this.featureCode) throw new Error(\"Scope not initialized. Call rehydrateScope(featureCode, origin) first.\");\r\n\r\n\t\tif (this.currentJobId) {\r\n\t\t\treturn { jobId: this.currentJobId, mode: \"active\" };\r\n\t\t}\r\n\r\n\t\tconst jobPayload: CreateNotificationJobRequest = {\r\n\t\t\tfeatureCode: this.featureCode,\r\n\t\t\torigin: this.origin,\r\n\t\t\ttotalCount: notificationDraft?.length ?? 0,\r\n\t\t\ttotalNotificationsCount: notificationDraft?.filter(n => n.recipients?.some(r => r.isRequiredForProcessed)).length ?? 0,\r\n\t\t};\r\n\r\n\t\tconst job = await firstValueFrom(this.jobService.createJob(jobPayload));\r\n\t\tthis.currentJobId = job.jobId;\r\n\r\n\t\tthis.setJobState({\r\n\t\t\tjobId: this.currentJobId,\r\n\t\t\tstatus: \"pending\",\r\n\t\t\tprocessedCount: 0,\r\n\t\t\ttotalCount: jobPayload.totalCount,\r\n\t\t\tprocessedNotificationsCount: 0,\r\n\t\t\ttotalNotificationsCount: jobPayload.totalNotificationsCount,\r\n\t\t});\r\n\r\n\t\tawait this.subscribeToJob(this.currentJobId);\r\n\r\n\t\tconst notifications: CreateNotificationsForJobRequest[] = notificationDraft.map(draft => ({\r\n\t\t\toriginReference: `${draft.originReference}-${job.jobId}`,\r\n\t\t\tnotificationTypeCode: draft.notificationTypeCode,\r\n\t\t\tdestination: draft.destination,\r\n\t\t\tdestinationLabel: draft.destinationLabel,\r\n\t\t\tbucketName: draft.bucketName,\r\n\t\t\ttemplateName: draft.templateName,\r\n\t\t\ttemplateData: draft.templateData,\r\n\t\t\tpriorityCode: draft.priorityCode,\r\n\t\t\ttitle: draft.title,\r\n\t\t\tbody: draft.body,\r\n\t\t\tmetaData: draft.metaData,\r\n\t\t\trecipients: draft.recipients,\r\n\t\t\tactions: draft.actions,\r\n\t\t\tattachments: draft.attachments,\r\n\t\t\tcallbacks: draft.callbacks,\r\n\t\t}));\r\n\r\n\t\tawait firstValueFrom(this.jobService.createNotifications(job.jobId, notifications));\r\n\r\n\t\treturn { jobId: this.currentJobId, mode: \"created\" };\r\n\t}\r\n\r\n\tasync ensureCreateJobNotifications(origin: Origin, featureCode: string, notificationDraft: NotificationDraft[]): Promise<void> {\r\n\t\tif (!origin || !featureCode) throw new Error(\"Scope not initialized.\");\r\n\r\n\t\tconst jobPayload: CreateNotificationJobRequest = {\r\n\t\t\tfeatureCode: featureCode,\r\n\t\t\torigin: origin,\r\n\t\t\ttotalCount: 1,\r\n\t\t\ttotalNotificationsCount: 1,\r\n\t\t\tnotifications: notificationDraft.map(draft => ({\r\n\t\t\t\toriginReference: draft.originReference,\r\n\t\t\t\tnotificationTypeCode: draft.notificationTypeCode,\r\n\t\t\t\tdestination: draft.destination,\r\n\t\t\t\tdestinationLabel: draft.destinationLabel,\r\n\t\t\t\tbucketName: draft.bucketName,\r\n\t\t\t\ttemplateName: draft.templateName,\r\n\t\t\t\ttemplateData: draft.templateData,\r\n\t\t\t\tpriorityCode: draft.priorityCode,\r\n\t\t\t\ttitle: draft.title,\r\n\t\t\t\tbody: draft.body,\r\n\t\t\t\tmetaData: draft.metaData,\r\n\t\t\t\trecipients: draft.recipients,\r\n\t\t\t\tactions: draft.actions,\r\n\t\t\t\tattachments: draft.attachments,\r\n\t\t\t\tcallbacks: draft.callbacks,\r\n\t\t\t})),\r\n\t\t};\r\n\r\n\t\tawait firstValueFrom(this.jobService.createJobNotifications(jobPayload));\r\n\t}\r\n\r\n\tasync markAsRead(recipientId: string): Promise<NotificationRecipientSummaryResponse> {\r\n\t\tconst result = await firstValueFrom(this.notificationService.markAsRead(recipientId));\r\n\t\treturn result;\r\n\t}\r\n\r\n\tasync markAsHidden(recipientId: string): Promise<NotificationRecipientSummaryResponse> {\r\n\t\tconst result = await firstValueFrom(this.notificationService.markAsHidden(recipientId));\r\n\t\treturn result;\r\n\t}\r\n\r\n\tasync getNotificacionsByUser(userId: string): Promise<UserNotificationInboxItem[]> {\r\n\t\tconst items = await firstValueFrom(this.notificationService.getNotificacionsByUser(userId));\r\n\t\treturn items;\r\n\t}\r\n\r\n\tresetLocal(): void {\r\n\t\tthis.currentJobId = undefined;\r\n\t\tthis.setJobState({ status: \"pending\", processedCount: 0, totalCount: 0, processedNotificationsCount: 0, totalNotificationsCount: 0 });\r\n\t\tthis.dispatchErrorsMapSubject.next(new Map());\r\n\t}\r\n\r\n\tprivate async rehydrateActiveJobInternal(): Promise<void> {\r\n\t\tif (!this.featureCode || !this.origin) return;\r\n\r\n\t\tconst active = await firstValueFrom(this.jobService.getActiveJob(this.featureCode, this.origin));\r\n\r\n\t\tif (!active) {\r\n\t\t\t//this.currentJobId = undefined;\r\n\t\t\t//this.setJobState({ status: \"idle\", processedCount: 0, totalCount: 0, processedNotificationsCount: 0, totalNotificationsCount: 0 });\r\n\t\t\t//this.dispatchErrorsMapSubject.next(new Map());\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.currentJobId = active.jobId;\r\n\r\n\t\tthis.setJobState({\r\n\t\t\tjobId: active.jobId,\r\n\t\t\tstatus: (active.statusCode?.toLowerCase() as JobStatusCode) || \"running\",\r\n\t\t\tprocessedCount: active.processedCount ?? 0,\r\n\t\t\ttotalCount: active.totalCount ?? 0,\r\n\t\t\tprocessedNotificationsCount: active.processedNotificationsCount ?? 0,\r\n\t\t\ttotalNotificationsCount: active.totalNotificationsCount ?? 0,\r\n\t\t});\r\n\r\n\t\tconst recipients: NotificationRecipientSummaryResponse[] = await firstValueFrom(this.jobService.getRecipients(active.jobId));\r\n\t\tconst map = new Map<string, RecipientDispatchError>();\r\n\r\n\t\tfor (const r of recipients) {\r\n\t\t\tif (r.recipientId && r.statusCode === \"failed\") {\r\n\t\t\t\tmap.set(r.recipientId, {\r\n\t\t\t\t\trecipientId: r.recipientId,\r\n\t\t\t\t\tlastErrorMessage: r.lastErrorMessage ?? null,\r\n\t\t\t\t\tchannelCode: r.channelCode || undefined,\r\n\t\t\t\t\tstatusCode: r.statusCode,\r\n\t\t\t\t\tattempts: r.attempts,\r\n\t\t\t\t\tlastAttemptAt: r.lastAttemptAt ?? null,\r\n\t\t\t\t\tuserId: r.userId ?? null,\r\n\t\t\t\t\tclientId: r.clientId ?? null,\r\n\t\t\t\t\tgroupId: r.groupId ?? null,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.dispatchErrorsMapSubject.next(map);\r\n\r\n\t\tawait this.subscribeToJob(active.jobId);\r\n\t}\r\n\r\n\tprivate async subscribeToJob(jobId: string): Promise<void> {\r\n\t\tif (this.subscribedJobId && this.subscribedJobId !== jobId) {\r\n\t\t\tawait this.signalR.leaveScope(\"job\", this.subscribedJobId);\r\n\t\t\tawait this.signalR.leaveScope(\"callBack\", this.subscribedJobId);\r\n\t\t}\r\n\r\n\t\tthis.subscribedJobId = jobId;\r\n\r\n\t\tawait this.signalR.joinScope(\"job\", jobId);\r\n\t\tawait this.signalR.joinScope(\"callBack\", jobId);\r\n\t}\r\n\r\n\tprivate onNotificationSend(update: RecipientNotification): void {\r\n\t\t// Enrutado por userId para campana/inbox\r\n\t\tif (update.userId) {\r\n\t\t\tthis.userInboxSubjects.get(update.userId)?.next(update);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate onJobProgress(update: RecipientProgressNotification): void {\r\n\t\t// Enrutado por jobId para UIs multi-job\r\n\t\tif (update.jobId) {\r\n\t\t\tthis.jobProgressSubjects.get(update.jobId)?.next(update);\r\n\t\t}\r\n\r\n\t\t// Lógica existente: solo aplica al job \"actual\" (feature/origin)\r\n\t\tif (!this.currentJobId || update.jobId !== this.currentJobId) return;\r\n\r\n\t\tif (update.recipientId) {\r\n\t\t\tconst current = this.dispatchErrorsMapSubject.value;\r\n\t\t\tconst next = new Map(current);\r\n\r\n\t\t\tif ((update.jobStatusCode ?? \"\").toLowerCase() === \"failed\") {\r\n\t\t\t\tnext.set(update.recipientId, {\r\n\t\t\t\t\trecipientId: update.recipientId,\r\n\t\t\t\t\tlastErrorMessage: update.lastErrorMessage ?? null,\r\n\r\n\t\t\t\t\tnotificationId: update.notificationId,\r\n\t\t\t\t\tjobId: update.jobId ?? null,\r\n\r\n\t\t\t\t\tchannelCode: update.channelCode,\r\n\t\t\t\t\tstatusCode: update.jobStatusCode,\r\n\r\n\t\t\t\t\tattempts: update.attempts,\r\n\t\t\t\t\tlastAttemptAt: update.lastAttemptAt ?? null,\r\n\r\n\t\t\t\t\tuserId: update.userId ?? null,\r\n\t\t\t\t\tclientId: update.clientId ?? null,\r\n\t\t\t\t\tgroupId: update.groupId ?? null,\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tnext.delete(update.recipientId);\r\n\t\t\t}\r\n\r\n\t\t\tthis.dispatchErrorsMapSubject.next(next);\r\n\t\t}\r\n\r\n\t\tif (typeof update.jobProcessedCount === \"number\" && typeof update.jobTotalCount === \"number\") {\r\n\t\t\tthis.setJobState({\r\n\t\t\t\tjobId: update.jobId,\r\n\t\t\t\tstatus: update.jobStatusCode?.toLowerCase() as JobStatusCode,\r\n\t\t\t\tprocessedCount: update.jobProcessedCount,\r\n\t\t\t\ttotalCount: update.jobTotalCount,\r\n\t\t\t\tprocessedNotificationsCount: update.jobProcessedNotificationsCount,\r\n\t\t\t\ttotalNotificationsCount: update.jobTotalNotificationsCount,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (update.jobStatusCode?.toLowerCase() === \"completed\") {\r\n\t\t\tthis.setJobState({\r\n\t\t\t\tjobId: this.jobStateSubject.value.jobId,\r\n\t\t\t\tstatus: this.jobStateSubject.value.status,\r\n\t\t\t\tprocessedCount: this.jobStateSubject.value.processedCount,\r\n\t\t\t\ttotalCount: this.jobStateSubject.value.totalCount,\r\n\t\t\t\tprocessedNotificationsCount: this.jobStateSubject.value.processedNotificationsCount,\r\n\t\t\t\ttotalNotificationsCount: this.jobStateSubject.value.totalNotificationsCount,\r\n\t\t\t});\r\n\t\t} else if (this.jobStateSubject.value.status === \"pending\") {\r\n\t\t\tthis.setJobState({ ...this.jobStateSubject.value, status: \"pending\" });\r\n\t\t} else if (this.jobStateSubject.value.status === \"running\") {\r\n\t\t\tthis.setJobState({ ...this.jobStateSubject.value, status: \"running\" });\r\n\t\t}\r\n\t}\r\n\r\n\tprivate onCallbackResult(update: CallbackExecutionResult): void {\r\n\t\tupdate.payload = update.payload ? JSON.parse(update.payload) : null;\r\n\t\tupdate.responseBody = update.responseBody ? JSON.parse(update.responseBody) : null;\r\n\t\tthis.callbackRawSubject.next(update);\r\n\t}\r\n\r\n\tprivate setJobState(state: JobState): void {\r\n\t\tthis.jobStateSubject.next({\r\n\t\t\tjobId: state.jobId,\r\n\t\t\tstatus: state.status,\r\n\t\t\tprocessedCount: state.processedCount,\r\n\t\t\ttotalCount: state.totalCount,\r\n\t\t\tprocessedNotificationsCount: state.processedNotificationsCount,\r\n\t\t\ttotalNotificationsCount: state.totalNotificationsCount,\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\nexport * from \"./lib/interceptor/responseHeaders.interceptor\";\r\n//Enums\r\nexport * from \"./lib/enums/sort-order.enum\";\r\nexport * from \"./lib/enums/alert-type.enum\";\r\n//Guards\r\nexport * from \"./lib/guards/TermGuard\";\r\nexport * from \"./lib/guards/RouteGuard\";\r\nexport * from \"./lib/guards/PageRootChildGuard\";\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/datepicker/datepicker.component\";\r\nexport * from \"./lib/components/datepicker/datepicker-button-types.constants\";\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/intelica-alert/intelica-alert.component\";\r\nexport * from \"./lib/components/add-favorites/add-favorites.component\";\r\nexport * from \"./lib/components/context-selector/context-selector.component\";\r\nexport * from \"./lib/components/context-selector/context-selector.dto\";\r\n\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\r\n//Models\r\nexport * from \"./lib/model/filter.model\";\r\nexport * from \"./lib/model/alert.model\";\r\nexport * from \"./lib/model/pageInformation.model\";\r\n\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/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/profile.service\";\r\nexport * from \"./lib/services/skeleton.service\";\r\nexport * from \"./lib/services/element.service\";\r\nexport * from \"./lib/services/intelicaSession.service\";\r\nexport * from \"./lib/services/globalMenu.service\";\r\nexport * from \"./lib/services/globalFavorite.service\";\r\nexport * from \"./lib/services/request-cache.service\";\r\n\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\r\n//Notification\r\nexport * from \"./lib/notification/dto/job-state.dto\";\r\nexport * from \"./lib/notification/dto/notification-type.dto\";\r\nexport * from \"./lib/notification/dto/notification-draft.dto\";\r\nexport * from \"./lib/notification/dto/notification-inbox-response.dto\";\r\nexport * from \"./lib/notification/dto/notification-message-response.dto\";\r\nexport * from \"./lib/notification/dto/notification-progress-message-response.dto\";\r\nexport * from \"./lib/notification/dto/notification-callback-message-response.dto\";\r\nexport * from \"./lib/notification/dto/notification-request.dto\";\r\nexport * from \"./lib/notification/dto/notification-response.dto\";\r\nexport * from \"./lib/notification/dto/recipient-dispatch-error.dto\";\r\nexport * from \"./lib/notification/notification.service\";\r\nexport * from \"./lib/notification/notification-job.service\";\r\nexport * from \"./lib/notification/notification-signalr.service\";\r\nexport * from \"./lib/notification/notificacion-orchestrator.service\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.FeatureFlagService","i6","i7","i1","i2","i3","i4","i1.TermPipe","i1.FilterTypeEnum","i8","i5","tap","i1.TableComponent","catchError","i1.NotificationJobService","i2.NotificationService","i3.NotificationSignalRService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"intelica-library-components.mjs","sources":["../../../projects/intelica-library-components/src/lib/functions/cookie.ts","../../../projects/intelica-library-components/src/lib/services/config.service.ts","../../../projects/intelica-library-components/src/lib/services/term.service.ts","../../../projects/intelica-library-components/src/lib/services/globalTerm.service.ts","../../../projects/intelica-library-components/src/lib/pipes/term.pipes.ts","../../../projects/intelica-library-components/src/lib/pipes/amount.pipe.ts","../../../projects/intelica-library-components/src/lib/pipes/truncate.pipe.ts","../../../projects/intelica-library-components/src/lib/constants/cookieConfiguration.constants.ts","../../../projects/intelica-library-components/src/lib/constants/color.constants.ts","../../../projects/intelica-library-components/src/lib/constants/date-mode-options.constants.ts","../../../projects/intelica-library-components/src/lib/services/featureFlag.service.ts","../../../projects/intelica-library-components/src/lib/services/globalFeatureFlag.service.ts","../../../projects/intelica-library-components/src/lib/services/sweet-alert.service.ts","../../../projects/intelica-library-components/src/lib/services/spinner.service.ts","../../../projects/intelica-library-components/src/lib/interceptor/error.interceptor.ts","../../../projects/intelica-library-components/src/lib/services/intelicaSession.service.ts","../../../projects/intelica-library-components/src/lib/interceptor/refreshToken.interceptor.ts","../../../projects/intelica-library-components/src/lib/interceptor/responseHeaders.interceptor.ts","../../../projects/intelica-library-components/src/lib/enums/sort-order.enum.ts","../../../projects/intelica-library-components/src/lib/enums/alert-type.enum.ts","../../../projects/intelica-library-components/src/lib/guards/TermGuard.ts","../../../projects/intelica-library-components/src/lib/guards/RouteGuard.ts","../../../projects/intelica-library-components/src/lib/guards/PageRootChildGuard.ts","../../../projects/intelica-library-components/src/lib/components/spinner/spinner.component.ts","../../../projects/intelica-library-components/src/lib/components/spinner/spinner.component.html","../../../projects/intelica-library-components/src/lib/pipes/formatCell.pipe.ts","../../../projects/intelica-library-components/src/lib/constants/format-date.constants.ts","../../../projects/intelica-library-components/src/lib/services/shared.service.ts","../../../projects/intelica-library-components/src/lib/components/table/column.component.ts","../../../projects/intelica-library-components/src/lib/components/table/table.component.ts","../../../projects/intelica-library-components/src/lib/components/table/table.component.html","../../../projects/intelica-library-components/src/lib/directives/positive-number.directive.ts","../../../projects/intelica-library-components/src/lib/components/paginator/paginator.component.ts","../../../projects/intelica-library-components/src/lib/components/paginator/paginator.component.html","../../../projects/intelica-library-components/src/lib/components/search/enums/search.enum.ts","../../../projects/intelica-library-components/src/lib/components/search/search.component.ts","../../../projects/intelica-library-components/src/lib/components/search/search.component.html","../../../projects/intelica-library-components/src/lib/components/tree-table/column.component.ts","../../../projects/intelica-library-components/src/lib/components/tree-table/tree-table.component.ts","../../../projects/intelica-library-components/src/lib/components/tree-table/tree-table.component.html","../../../projects/intelica-library-components/src/lib/components/matrix-table/column.component.ts","../../../projects/intelica-library-components/src/lib/components/matrix-table/matrix-table.component.ts","../../../projects/intelica-library-components/src/lib/components/matrix-table/matrix-table.component.html","../../../projects/intelica-library-components/src/lib/components/actions-menu/action.directive.ts","../../../projects/intelica-library-components/src/lib/components/actions-menu/actions-menu.component.ts","../../../projects/intelica-library-components/src/lib/components/actions-menu/actions-menu.component.html","../../../projects/intelica-library-components/src/lib/components/filter-chips/filter-chips.component.ts","../../../projects/intelica-library-components/src/lib/components/filter-chips/filter-chips.component.html","../../../projects/intelica-library-components/src/lib/enums/filter-type.enum.ts","../../../projects/intelica-library-components/src/lib/directives/filters/filter.directive.ts","../../../projects/intelica-library-components/src/lib/components/multi-select/multi-select.component.ts","../../../projects/intelica-library-components/src/lib/components/multi-select/multi-select.component.html","../../../projects/intelica-library-components/src/lib/components/filters/filters.component.ts","../../../projects/intelica-library-components/src/lib/components/filters/filters.component.html","../../../projects/intelica-library-components/src/lib/components/modal-dialog/modal-dialog.component.ts","../../../projects/intelica-library-components/src/lib/components/modal-dialog/modal-dialog.component.html","../../../projects/intelica-library-components/src/lib/components/button-split/itemsplit.directive.ts","../../../projects/intelica-library-components/src/lib/components/button-split/button-split.component.ts","../../../projects/intelica-library-components/src/lib/components/button-split/button-split.component.html","../../../projects/intelica-library-components/src/lib/components/record-per-page/record-per-page.component.ts","../../../projects/intelica-library-components/src/lib/components/record-per-page/record-per-page.component.html","../../../projects/intelica-library-components/src/lib/components/sorting/model/order.constants.ts","../../../projects/intelica-library-components/src/lib/components/sorting/sorting.component.ts","../../../projects/intelica-library-components/src/lib/components/sorting/sorting.component.html","../../../projects/intelica-library-components/src/lib/components/popover/popover.component.ts","../../../projects/intelica-library-components/src/lib/components/popover/popover.component.html","../../../projects/intelica-library-components/src/lib/components/echart/echart.component.ts","../../../projects/intelica-library-components/src/lib/components/echart/echart.component.html","../../../projects/intelica-library-components/src/lib/components/template-menu/template-menu.component.ts","../../../projects/intelica-library-components/src/lib/components/template-menu/template-menu.component.html","../../../projects/intelica-library-components/src/lib/components/datepicker/datepicker-button-types.constants.ts","../../../projects/intelica-library-components/src/lib/components/datepicker/datepicker.component.ts","../../../projects/intelica-library-components/src/lib/components/datepicker/datepicker.component.html","../../../projects/intelica-library-components/src/lib/services/skeleton.service.ts","../../../projects/intelica-library-components/src/lib/components/skeleton/skeleton.component.ts","../../../projects/intelica-library-components/src/lib/components/skeleton/skeleton.component.html","../../../projects/intelica-library-components/src/lib/components/skeleton-table/skeleton-table.component.ts","../../../projects/intelica-library-components/src/lib/components/skeleton-table/skeleton-table.component.html","../../../projects/intelica-library-components/src/lib/components/skeleton-chart/data.directive.ts","../../../projects/intelica-library-components/src/lib/components/skeleton-chart/skeleton-chart.component.ts","../../../projects/intelica-library-components/src/lib/components/skeleton-chart/skeleton-chart.component.html","../../../projects/intelica-library-components/src/lib/components/table-fetch/table-fetch.component.ts","../../../projects/intelica-library-components/src/lib/components/table-fetch/table-fetch.component.html","../../../projects/intelica-library-components/src/lib/components/intelica-alert/intelica-alert.component.ts","../../../projects/intelica-library-components/src/lib/components/intelica-alert/intelica-alert.component.html","../../../projects/intelica-library-components/src/lib/services/globalFavorite.service.ts","../../../projects/intelica-library-components/src/lib/components/add-favorites/add-favorites.service.ts","../../../projects/intelica-library-components/src/lib/components/add-favorites/add-favorites.component.ts","../../../projects/intelica-library-components/src/lib/components/add-favorites/add-favorites.component.html","../../../projects/intelica-library-components/src/lib/components/context-selector/context-selector.component.ts","../../../projects/intelica-library-components/src/lib/components/context-selector/context-selector.component.html","../../../projects/intelica-library-components/src/lib/directives/filters/checkbox-filter.directive.ts","../../../projects/intelica-library-components/src/lib/directives/filters/date-filter.directive.ts","../../../projects/intelica-library-components/src/lib/directives/filters/select-detail-filter.directive.ts","../../../projects/intelica-library-components/src/lib/directives/filters/select-filter.directive.ts","../../../projects/intelica-library-components/src/lib/directives/filters/template.directive.ts","../../../projects/intelica-library-components/src/lib/directives/filters/text-area-filter.directive.ts","../../../projects/intelica-library-components/src/lib/directives/filters/text-filter.directive.ts","../../../projects/intelica-library-components/src/lib/directives/filters/text-range-filter.directive.ts","../../../projects/intelica-library-components/src/lib/directives/table/cell-checkbox.directive.ts","../../../projects/intelica-library-components/src/lib/model/alert.model.ts","../../../projects/intelica-library-components/src/lib/model/pageInformation.model.ts","../../../projects/intelica-library-components/src/lib/services/htmlToExcel.service.ts","../../../projects/intelica-library-components/src/lib/services/alert.service.ts","../../../projects/intelica-library-components/src/lib/services/language.service.ts","../../../projects/intelica-library-components/src/lib/functions/echart.util.ts","../../../projects/intelica-library-components/src/lib/services/echart.service.ts","../../../projects/intelica-library-components/src/lib/services/authentication.service.ts","../../../projects/intelica-library-components/src/lib/functions/decryptRSA.ts","../../../projects/intelica-library-components/src/lib/services/profile.service.ts","../../../projects/intelica-library-components/src/lib/services/pageElement.service.ts","../../../projects/intelica-library-components/src/lib/services/element.service.ts","../../../projects/intelica-library-components/src/lib/services/globalMenu.service.ts","../../../projects/intelica-library-components/src/lib/services/request-cache.service.ts","../../../projects/intelica-library-components/src/lib/functions/compareByField.ts","../../../projects/intelica-library-components/src/lib/functions/encryptRSA.ts","../../../projects/intelica-library-components/src/lib/functions/inputValidation.ts","../../../projects/intelica-library-components/src/lib/primeThemes/Intelica.theme.ts","../../../projects/intelica-library-components/src/lib/notification/dto/recipient-dispatch-error.dto.ts","../../../projects/intelica-library-components/src/lib/notification/notification.service.ts","../../../projects/intelica-library-components/src/lib/notification/notification-job.service.ts","../../../projects/intelica-library-components/src/lib/notification/notification-signalr.service.ts","../../../projects/intelica-library-components/src/lib/notification/notificacion-orchestrator.service.ts","../../../projects/intelica-library-components/src/public-api.ts","../../../projects/intelica-library-components/src/intelica-library-components.ts"],"sourcesContent":["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 { 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 { setCookie } from \"typescript-cookie\";\r\nimport { TermPageResponse } from \"../dto/term\";\r\nimport { GetCookieAttributes } from \"../functions/cookie\";\r\nimport { ConfigService } from \"./config.service\";\r\nimport { TermService } from \"./term.service\";\r\n@Injectable({ providedIn: \"root\" })\r\nexport class GlobalTermService {\r\n\tterms: TermPageResponse[] = [];\r\n\tpublic languageCode: string = \"\";\r\n\tTermsReady = signal<boolean>(false);\r\n\tPageRoot: string = \"\";\r\n\tprivate readonly termService = inject(TermService);\r\n\tprivate readonly configService = inject(ConfigService);\r\n\tpublic readonly languageEvent = \"languagechange\";\r\n\tpublic readonly languageCookie = \"language\";\r\n\r\n\tprivate readonly onBrowserLanguageChange = (): void => {\r\n\t\tconst languageCode = this.getLanguageFromBrowser();\r\n\t\tsetCookie(this.languageCookie, languageCode, GetCookieAttributes(this.configService.environment?.environment ?? \"\"));\r\n\t\tthis.refreshTerms(languageCode);\r\n\t};\r\n\r\n\tconstructor() {\r\n\t\twindow.addEventListener(this.languageEvent, this.onBrowserLanguageChange);\r\n\t}\r\n\r\n\tInitialize(pageRoot: string): void {\r\n\t\tthis.PageRoot = pageRoot;\r\n\t\tconst languageCode = this.getLanguageFromBrowser();\r\n\t\tsetCookie(this.languageCookie, languageCode, GetCookieAttributes(this.configService.environment?.environment ?? \"\"));\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.refreshTerms(languageCode);\r\n\t}\r\n\r\n\tprivate refreshTerms(languageCode: string): void {\r\n\t\tif (this.PageRoot == \"\") {\r\n\t\t\tthis.TermsReady.set(true);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.TermsReady.set(false);\r\n\t\tthis.termService.GetTerms(languageCode, this.PageRoot).subscribe(response => {\r\n\t\t\tthis.languageCode = languageCode;\r\n\t\t\tthis.terms = response;\r\n\t\t\tthis.TermsReady.set(true);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate getLanguageFromBrowser(): string {\r\n\t\tconst browserLanguage = (navigator.language || \"en\").toLowerCase();\r\n\t\tif (browserLanguage.startsWith(\"es\")) return \"ES\";\r\n\t\tif (browserLanguage.startsWith(\"en\")) return \"EN\";\r\n\t\treturn \"EN\";\r\n\t}\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\tprivate readonly globalTermService = inject(GlobalTermService);\r\n\ttransform(termName: string, language: string, mode: number = 1): string {\r\n\t\tlet term = this.globalTermService.terms.find(x => x.termName == termName)?.termValue ?? \"-\";\r\n\t\tif (mode == 2) term = term.substring(0, 1);\r\n\t\tif (mode == 3) term = term.toUpperCase();\r\n\t\treturn term;\r\n\t}\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, validNegative: boolean = false): string {\r\n\t\tif (value === null || value === undefined || value == 0) {\r\n\t\t\treturn \"-\";\r\n\t\t}\r\n\r\n\t\tconst numericValue = typeof value === \"string\" ? Number.parseFloat(value) : value;\r\n\r\n\t\tif (Number.isNaN(numericValue)) {\r\n\t\t\treturn \"-\";\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\tif (validNegative) {\r\n\t\t\tif (numericValue < 0) {\r\n\t\t\t\tformattedValue = `(${formattedValue})`;\r\n\t\t\t}\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 (absValue / limit).toFixed(decimalPlaces) + suffix;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn absValue.toFixed(decimalPlaces);\r\n\t}\r\n\r\n\tprivate formatWithThousandSeparators(value: number, decimalPlaces: number): string {\r\n\t\tconst absValue = Math.abs(value);\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(absValue);\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\tskyBlue: \"#7490E2\",\r\n\tblue: \"#17375E\",\r\n\tgray: \"#BABECF\",\r\n\tgray3: \"#4E546F\",\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\", error.status);\r\n\t\tspinnerService.hide();\r\n\t\tconst authenticationLocation = `${configService.environment?.authenticationWeb}?callback=${window.location.href}&clientID=${configService.environment?.clientID}`;\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\telse if (error.status == 405) sweetAlertService.messageBox(\"Los parametros enviados al servicio no coinciden.\");\r\n\t\telse if (error.status == 404) sweetAlertService.messageBox(\"Recurso no encontrado.\");\r\n\t\telse if (error.status == 401) {\r\n\t\t\tsweetAlertService.messageBox(error.error.Error);\r\n\t\t\twindow.location.href = authenticationLocation;\r\n\t\t} else if (error.status == 403) {\r\n\t\t\tsweetAlertService.messageBox(error.error.Error);\r\n\t\t\twindow.location.href = window.location.origin;\r\n\t\t} else sweetAlertService.messageBox(error.error.message);\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 { inject, Injectable } from \"@angular/core\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { ConfigService } from \"./config.service\";\r\n\r\nexport interface ItlSessionEnvelope<T> {\r\n\tsessionId: string;\r\n\tupdatedAt: number;\r\n\tvalue: T;\r\n}\r\n\r\nexport type ItlSessionScope = \"global\" | \"user\" | \"profile\" | \"user-profile\";\r\n\r\n@Injectable({\r\n\tprovidedIn: \"root\",\r\n})\r\nexport class IntelicaSessionService {\r\n\tprivate readonly configService = inject(ConfigService);\r\n\tprivate readonly prefix = \"itl.session.\";\r\n\tprivate readonly sessionIdKey = \"itl.session.__sessionId\";\r\n\tprivate pageRoot: string = \"\";\r\n\tprivate sessionId: string | null = null;\r\n\r\n\tconstructor() {\r\n\t\tthis.ensureSessionId();\r\n\t\tthis.cleanupForeignSessions();\r\n\t}\r\n\r\n\t/**\r\n\t * Actualiza el pageRoot actual, es necesario matricularlo en el app.component\r\n\t */\r\n\tsetPageRoot(pageRoot: string) {\r\n\t\tthis.pageRoot = pageRoot;\r\n\t}\r\n\r\n\t/**\r\n\t * Retorna la key de usuario con scope si necesitas reutilizarla manualmente.\r\n\t */\r\n\tgetUserKey(key: string): string {\r\n\t\treturn this.buildScopedKey(key, \"user\");\r\n\t}\r\n\r\n\tprivate ensureSessionId(): string {\r\n\t\tif (this.sessionId) return this.sessionId;\r\n\r\n\t\tconst stored = localStorage.getItem(this.sessionIdKey);\r\n\t\tif (stored) {\r\n\t\t\tthis.sessionId = stored;\r\n\t\t\treturn stored;\r\n\t\t}\r\n\r\n\t\tconst id = this.createGuid();\r\n\t\tthis.sessionId = id;\r\n\t\tlocalStorage.setItem(this.sessionIdKey, id);\r\n\t\treturn id;\r\n\t}\r\n\r\n\tprivate createGuid(): string {\r\n\t\treturn Guid.create().toString();\r\n\t}\r\n\r\n\tprivate buildScopedKey(key: string, scope: ItlSessionScope = \"user-profile\"): string {\r\n\t\tconst parts: string[] = [];\r\n\t\tif (this.pageRoot) parts.push(this.pageRoot);\r\n\t\tparts.push(key);\r\n\r\n\t\tconst userId = this.configService.SessionInformation?.businessUserID;\r\n\t\tconst profileId = this.configService.SessionInformation?.businessUserProfile;\r\n\r\n\t\tif (scope === \"user\" || scope === \"user-profile\") {\r\n\t\t\tif (userId) parts.push(`user:${userId}`);\r\n\t\t}\r\n\t\tif (scope === \"profile\" || scope === \"user-profile\") {\r\n\t\t\tif (profileId) parts.push(`profile:${profileId}`);\r\n\t\t}\r\n\r\n\t\treturn parts.join(\"|\");\r\n\t}\r\n\r\n\t/**\r\n\t * Guarda un valor serializable en localStorage con scope por pageRoot\r\n\t */\r\n\tset<T>(key: string, value: T): void;\r\n\t/**\r\n\t * Guarda un valor serializable en localStorage usando el scope indicado.\r\n\t */\r\n\tset<T>(key: string, value: T, scope: ItlSessionScope): void;\r\n\tset<T>(key: string, value: T, scope: ItlSessionScope = \"user-profile\"): void {\r\n\t\tthis.ensureSessionId();\r\n\t\tconst storageKey = this.buildScopedKey(key, scope);\r\n\t\tconst envelope: ItlSessionEnvelope<T> = {\r\n\t\t\tsessionId: this.sessionId as string,\r\n\t\t\tupdatedAt: Date.now(),\r\n\t\t\tvalue,\r\n\t\t};\r\n\t\tlocalStorage.setItem(this.prefix + storageKey, JSON.stringify(envelope));\r\n\t}\r\n\r\n\t/**\r\n\t * Obtiene un valor desde localStorage usando la misma composición de key\r\n\t * (pageRoot + usuario + perfil). Retorna null si no existe o la sesión no coincide.\r\n\t */\r\n\tget<T>(key: string): T | null;\r\n\t/**\r\n\t * Obtiene un valor desde localStorage usando el scope indicado.\r\n\t */\r\n\tget<T>(key: string, scope: ItlSessionScope): T | null;\r\n\tget<T>(key: string, scope: ItlSessionScope = \"user-profile\"): T | null {\r\n\t\tconst storageKey = this.buildScopedKey(key, scope);\r\n\t\tconst raw = localStorage.getItem(this.prefix + storageKey);\r\n\t\tif (!raw) return null;\r\n\r\n\t\ttry {\r\n\t\t\tconst env = JSON.parse(raw) as ItlSessionEnvelope<T>;\r\n\t\t\tif (!this.sessionId || env.sessionId !== this.sessionId) return null;\r\n\t\t\treturn env.value;\r\n\t\t} catch {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Limpia todo lo que haya en localStorage para este servicio (todas las sesiones).\r\n\t * Úsalo al iniciar sesión/cerrar sesión para evitar acumulación.\r\n\t */\r\n\tclearAll(): void {\r\n\t\tObject.keys(localStorage)\r\n\t\t\t.filter(k => k.startsWith(this.prefix))\r\n\t\t\t.forEach(k => localStorage.removeItem(k));\r\n\t\tlocalStorage.removeItem(this.sessionIdKey);\r\n\t\tthis.sessionId = null;\r\n\t}\r\n\r\n\t/**\r\n\t * Limpia los valores de la sesión actual para el pageRoot vigente.\r\n\t */\r\n\tclearCurrentPageRoot(): void {\r\n\t\tif (!this.pageRoot) return;\r\n\t\tthis.clearPageRoot(this.pageRoot);\r\n\t}\r\n\r\n\tprivate clearPageRoot(pageRoot: string): void {\r\n\t\tconst prefix = `${this.prefix}${pageRoot}|`;\r\n\t\tObject.keys(localStorage)\r\n\t\t\t.filter(k => k.startsWith(prefix))\r\n\t\t\t.forEach(k => {\r\n\t\t\t\tconst raw = localStorage.getItem(k);\r\n\t\t\t\tif (!raw) return;\r\n\t\t\t\tconst env = this.tryParseEnvelope(raw);\r\n\t\t\t\tif (!env || env.sessionId !== this.sessionId) return;\r\n\t\t\t\tlocalStorage.removeItem(k);\r\n\t\t\t});\r\n\t}\r\n\r\n\tprivate cleanupForeignSessions(): void {\r\n\t\tif (!this.sessionId) return;\r\n\t\tObject.keys(localStorage)\r\n\t\t\t.filter(k => k.startsWith(this.prefix))\r\n\t\t\t.forEach(k => {\r\n\t\t\t\tconst raw = localStorage.getItem(k);\r\n\t\t\t\tif (!raw) return;\r\n\t\t\t\tconst env = this.tryParseEnvelope(raw);\r\n\t\t\t\tif (!env) return;\r\n\t\t\t\tif (env.sessionId !== this.sessionId) {\r\n\t\t\t\t\tlocalStorage.removeItem(k);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\tprivate tryParseEnvelope(raw: string): ItlSessionEnvelope<unknown> | null {\r\n\t\ttry {\r\n\t\t\treturn JSON.parse(raw) as ItlSessionEnvelope<unknown>;\r\n\t\t} catch {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n}\r\n","import { HttpClient, HttpInterceptorFn } from \"@angular/common/http\";\r\nimport { inject } from \"@angular/core\";\r\nimport { from, switchMap } from \"rxjs\";\r\nimport { Cookies, getCookie, setCookie } from \"typescript-cookie\";\r\nimport { ValidateTokenQuery, ValidateTokenResponse } from \"../dto/authentication\";\r\nimport { GetCookieAttributes } from \"../functions/cookie\";\r\nimport { ConfigService } from \"../services/config.service\";\r\nimport { GlobalFeatureFlagService } from \"../services/globalFeatureFlag.service\";\r\nimport { IntelicaSessionService } from \"../services/intelicaSession.service\";\r\nexport const RefreshTokenInterceptor: 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 configService: ConfigService = inject(ConfigService);\r\n\tconst httpClient = inject(HttpClient);\r\n\tconst commonFeatureFlagService = inject(GlobalFeatureFlagService);\r\n\tconst intelicaSessionService = inject(IntelicaSessionService);\r\n\tconst cookieAttributesGeneral = GetCookieAttributes(configService.environment?.environment ?? \"\");\r\n\tlet _request = req.clone();\r\n\tlet authenticationLocation = `${configService.environment?.authenticationWeb}?callback=${window.location.href}&clientID=${configService.environment?.clientID}`;\r\n\tlet path = `${configService.environment?.authenticationPath ?? \"\"}/Authenticate/auth/token/validate`;\r\n\tvar authenticationClientID = configService.environment?.clientID ?? \"\";\r\n\tlet validateTokenQuery: ValidateTokenQuery = {\r\n\t\ttoken: getCookie(\"token\") ?? \"\",\r\n\t\trefreshToken: getCookie(\"refreshToken\") ?? \"\",\r\n\t\tip: req.url,\r\n\t\tclientID: configService.environment?.clientID ?? \"\",\r\n\t\tpageRoot: commonFeatureFlagService.GetPageRoot(),\r\n\t\tcontroller: \"\",\r\n\t\thttpVerb: \"GET\",\r\n\t\tbusinessUserClientGroupID: getCookie(\"businessUserClientGroupID\") ?? \"\",\r\n\t\taccess: authenticationClientID == \"\" ? \"\" : getCookie(authenticationClientID) ?? \"\",\r\n\t};\r\n\tif (!req.url.includes(\"ValidateToken\") && !req.url.includes(\"environment.json\") && !req.url.includes(\"auth/token/validate\"))\r\n\t\treturn from(httpClient.post<ValidateTokenResponse>(path, validateTokenQuery)).pipe(\r\n\t\t\tswitchMap((response: ValidateTokenResponse) => {\r\n\t\t\t\tif (response.expired) {\r\n\t\t\t\t\tintelicaSessionService.clearAll();\r\n\t\t\t\t\tCookies.remove(\"token\", cookieAttributesGeneral);\r\n\t\t\t\t\tCookies.remove(\"refreshToken\", cookieAttributesGeneral);\r\n\t\t\t\t\tCookies.remove(\"data\", cookieAttributesGeneral);\r\n\t\t\t\t\tCookies.remove(\"businessUserClientGroupID\", cookieAttributesGeneral);\r\n\t\t\t\t\tCookies.remove(\"defaultClientID\", cookieAttributesGeneral);\r\n\t\t\t\t\tCookies.remove(\"defaultClientGroupID\", cookieAttributesGeneral);\r\n\t\t\t\t\tCookies.remove(authenticationClientID, cookieAttributesGeneral);\r\n\t\t\t\t\twindow.location.href = authenticationLocation;\r\n\t\t\t\t\treturn next(_request);\r\n\t\t\t\t}\r\n\t\t\t\tif (response.unauthorized) {\r\n\t\t\t\t\twindow.location.href = window.location.origin;\r\n\t\t\t\t}\r\n\t\t\t\tif (response.newToken != \"\") setCookie(\"token\", response.newToken, cookieAttributesGeneral);\r\n\t\t\t\treturn next(_request);\r\n\t\t\t})\r\n\t\t);\r\n\telse return next(_request);\r\n};\r\n","import { HttpInterceptorFn, HttpResponse } from \"@angular/common/http\";\r\nimport { tap } from \"rxjs/operators\";\r\nimport { setCookie } from \"typescript-cookie\";\r\nimport { CookieAttributesGeneral } from \"../constants/cookieConfiguration.constants\";\r\n\r\nexport const ResponseHeadersInterceptor: HttpInterceptorFn = (req, next) => {\r\n\treturn next(req).pipe(\r\n\t\ttap(event => {\r\n\t\t\tif (event instanceof HttpResponse) {\r\n\t\t\t\tconst headers = event.headers;\r\n\t\t\t\tconst newToken = headers.get(\"TokenNew\");\r\n\t\t\t\tif (newToken != null && newToken != \"\") setCookie(\"token\", newToken, CookieAttributesGeneral);\r\n\t\t\t}\r\n\t\t})\r\n\t);\r\n};\r\n","export enum TableSortOrder {\r\n Asc = 1,\r\n Desc = -1,\r\n}\r\n","/**\r\n * Enum representing the different types of alerts available in the system.\r\n * Each type corresponds to a specific visual style and semantic meaning.\r\n */\r\nexport enum AlertType {\r\n\t/** Warning alert - Yellow icon and title, used for cautionary messages */\r\n\tWARNING = \"warning\",\r\n\t/** Success alert - Green icon and title, used for successful operations */\r\n\tSUCCESS = \"success\",\r\n\t/** Error alert - Red icon and title, used for error messages */\r\n\tERROR = \"error\",\r\n}\r\n\r\n/**\r\n * Enum representing the button configuration modes for alerts.\r\n * Determines which buttons are displayed in the alert dialog.\r\n */\r\nexport enum AlertButtonMode {\r\n\t/** Only shows a single OK/Confirm button */\r\n\tOK_ONLY = \"ok_only\",\r\n\t/** Shows both Confirm and Cancel buttons */\r\n\tCONFIRM_CANCEL = \"confirm_cancel\",\r\n\t/** Shows only a Confirm button (without cancel) */\r\n\tCONFIRM_ONLY = \"confirm_only\",\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\nimport { GetCookieAttributes } from \"../functions/cookie\";\r\nimport { ValidateTokenQuery, ValidateTokenResponse } from \"../dto/authentication\";\r\nimport { getCookie, Cookies, setCookie } from \"typescript-cookie\";\r\nimport { SpinnerService } from \"../services/spinner.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\tprivate readonly SpinnerService = inject(SpinnerService);\r\n\tconstructor() {}\r\n\tasync canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n\t\tthis.ChangeRoute(next.data[\"pageRoot\"]);\r\n\t\tthis.ValidateToken(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\tValidateToken(pageRoot: string) {\r\n\t\tconst cookieAttributesGeneral = GetCookieAttributes(this.ConfigService.environment?.environment ?? \"\");\r\n\t\tconst authenticationLocation = `${this.ConfigService.environment?.authenticationWeb}?callback=${window.location.href}&clientID=${this.ConfigService.environment?.clientID}`;\r\n\t\tconst path = `${this.ConfigService.environment?.authenticationPath ?? \"\"}/Authenticate/ValidateToken`;\r\n\t\tconst authenticationClientID = this.ConfigService.environment?.clientID ?? \"\";\r\n\t\tconst validateTokenQuery: ValidateTokenQuery = {\r\n\t\t\ttoken: getCookie(\"token\") ?? \"\",\r\n\t\t\trefreshToken: getCookie(\"refreshToken\") ?? \"\",\r\n\t\t\tip: \"\",\r\n\t\t\tclientID: this.ConfigService.environment?.clientID ?? \"\",\r\n\t\t\tpageRoot,\r\n\t\t\tcontroller: \"\",\r\n\t\t\thttpVerb: \"GET\",\r\n\t\t\tbusinessUserClientGroupID: getCookie(\"businessUserClientGroupID\") ?? \"\",\r\n\t\t\taccess: authenticationClientID == \"\" ? \"\" : getCookie(authenticationClientID) ?? \"\",\r\n\t\t};\r\n\t\tthis.SpinnerService.show();\r\n\t\tthis.HttpClient.post<ValidateTokenResponse>(path, validateTokenQuery).subscribe(response => {\r\n\t\t\tif (response.expired) {\r\n\t\t\t\tObject.keys(Cookies.get() ?? {}).forEach(cookieName => {\r\n\t\t\t\t\tCookies.remove(cookieName, GetCookieAttributes(this.ConfigService.environment?.environment ?? \"\"));\r\n\t\t\t\t});\r\n\t\t\t\twindow.location.href = authenticationLocation;\r\n\t\t\t\tthis.SpinnerService.hide();\r\n\t\t\t\treturn false;\r\n\t\t\t} else if (response.unauthorized) {\r\n\t\t\t\twindow.location.href = window.location.origin;\r\n\t\t\t\tthis.SpinnerService.hide();\r\n\t\t\t\treturn false;\r\n\t\t\t} else if (response.newToken != \"\") setCookie(\"token\", response.newToken, cookieAttributesGeneral);\r\n\t\t\tthis.SpinnerService.hide();\r\n\t\t\treturn true;\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 { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot, CanActivateChild, RouterStateSnapshot } from \"@angular/router\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class PageRootChildGuard implements CanActivateChild {\r\n\tcanActivateChild(child: ActivatedRouteSnapshot, parent: RouterStateSnapshot): boolean {\r\n\t\tconst parentData = child.parent?.data;\r\n\t\tif (parentData?.[\"pageRoot\"]) {\r\n\t\t\tchild.data = {\r\n\t\t\t\t...child.data,\r\n\t\t\t\tpageRoot: parentData[\"pageRoot\"],\r\n\t\t\t};\r\n\t\t}\r\n\t\treturn true;\r\n\t}\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","<div class=\"ptLoading\">\r\n\t<span class=\"ptLoading__svg\">\r\n\t\t@if (isLoading()) {\r\n\t\t\t<svg\r\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t\t\txmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n\t\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\r\n\t\t\t\twidth=\"540\"\r\n\t\t\t\theight=\"300\"\r\n\t\t\t\tviewBox=\"0 0 540 300\"\r\n\t\t\t\tstyle=\"width: 100%; height: 100%\"\r\n\t\t\t>\r\n\t\t\t\t<defs>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_12_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"1\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.04;1\"\r\n\t\t\t\t\t\tvalues=\"1;0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0.167 0.167 0.667 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateMotion\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_12_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.04;1\"\r\n\t\t\t\t\t\tpath=\"M173.5 300 C173.5,300 81.5,300 81.5,300 C81.5,300 81.5,300 81.5,300 \"\r\n\t\t\t\t\t\tkeyPoints=\"0;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.167 0.167 0 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_12_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"0.89062 0.89062\"\r\n\t\t\t\t\t\tto=\"0.89062 0.89062\"\r\n\t\t\t\t\t\ttype=\"scale\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"0.89062 0.89062;0.89062 0.89062\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_12_G_M\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"1\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.2333333;0.2333333;1\"\r\n\t\t\t\t\t\tvalues=\"1;1;0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 0 0;0 0 0 0;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateMotion\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_11_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.0733333;0.1066667;0.1333333;0.16;0.1866667;0.2;1\"\r\n\t\t\t\t\t\tpath=\"M300 300 C300,300 300,172 300,172 C300,172 300,347 300,347 C300,347 300,287 300,287 C300,287 300,306.5 300,306.5 C300,306.5 300,301.5 300,301.5 C300,301.5 300,300 300,300 C300,300 300,300 300,300 \"\r\n\t\t\t\t\t\tkeyPoints=\"0;0.33;0.78;0.93;0.98;1;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.333 0 0 1;0.167 0.167 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_11_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\tto=\"3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\ttype=\"scale\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"3.3000000000000003 3.3000000000000003;3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_11_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"-14.5 -14.5\"\r\n\t\t\t\t\t\tto=\"-14.5 -14.5\"\r\n\t\t\t\t\t\ttype=\"translate\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"-14.5 -14.5;-14.5 -14.5\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_11_G_M\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"1\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.2;0.2;1\"\r\n\t\t\t\t\t\tvalues=\"1;1;0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 0 0;0 0 0 0;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateMotion\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_10_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.2;0.2733333;0.3066667;0.3333333;0.36;0.3866667;0.4;1\"\r\n\t\t\t\t\t\tpath=\"M300 300 C300,300 300,300 300,300 C300,300 300,172 300,172 C300,172 300,347 300,347 C300,347 300,287 300,287 C300,287 300,306.5 300,306.5 C300,306.5 300,301.5 300,301.5 C300,301.5 300,300 300,300 C300,300 300,300 300,300 \"\r\n\t\t\t\t\t\tkeyPoints=\"0;0;0.33;0.78;0.93;0.98;1;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.333 0 0 1;0.333 0 0 1;0.167 0.167 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_10_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\tto=\"3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\ttype=\"scale\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"3.3000000000000003 3.3000000000000003;3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_10_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"-14.5 -14.5\"\r\n\t\t\t\t\t\tto=\"-14.5 -14.5\"\r\n\t\t\t\t\t\ttype=\"translate\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"-14.5 -14.5;-14.5 -14.5\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_10_G_M\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.2;0.2000007;0.4;0.4;1\"\r\n\t\t\t\t\t\tvalues=\"0;0;1;1;0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateMotion\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_9_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.4;0.4733333;0.5066667;0.5333333;0.56;0.5866667;0.6;1\"\r\n\t\t\t\t\t\tpath=\"M300 300 C300,300 300,300 300,300 C300,300 300,172 300,172 C300,172 300,347 300,347 C300,347 300,287 300,287 C300,287 300,306.5 300,306.5 C300,306.5 300,301.5 300,301.5 C300,301.5 300,300 300,300 C300,300 300,300 300,300 \"\r\n\t\t\t\t\t\tkeyPoints=\"0;0;0.33;0.78;0.93;0.98;1;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.333 0 0 1;0.333 0 0 1;0.167 0.167 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_9_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\tto=\"3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\ttype=\"scale\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"3.3000000000000003 3.3000000000000003;3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_9_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"-14.5 -14.5\"\r\n\t\t\t\t\t\tto=\"-14.5 -14.5\"\r\n\t\t\t\t\t\ttype=\"translate\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"-14.5 -14.5;-14.5 -14.5\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_9_G_M\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.4;0.4000007;0.6;0.6;1\"\r\n\t\t\t\t\t\tvalues=\"0;0;1;1;0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateMotion\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_8_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.6;0.6733333;0.7066667;0.7333333;0.76;0.7866667;0.8;1\"\r\n\t\t\t\t\t\tpath=\"M300 300 C300,300 300,300 300,300 C300,300 300,172 300,172 C300,172 300,347 300,347 C300,347 300,287 300,287 C300,287 300,306.5 300,306.5 C300,306.5 300,301.5 300,301.5 C300,301.5 300,300 300,300 C300,300 300,300 300,300 \"\r\n\t\t\t\t\t\tkeyPoints=\"0;0;0.33;0.78;0.93;0.98;1;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.333 0 0 1;0.333 0 0 1;0.167 0.167 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_8_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\tto=\"3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\ttype=\"scale\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"3.3000000000000003 3.3000000000000003;3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_8_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"-14.5 -14.5\"\r\n\t\t\t\t\t\tto=\"-14.5 -14.5\"\r\n\t\t\t\t\t\ttype=\"translate\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"-14.5 -14.5;-14.5 -14.5\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_8_G_M\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.6;0.6000007;0.8;0.8;1\"\r\n\t\t\t\t\t\tvalues=\"0;0;1;1;0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateMotion\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_7_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.8;0.8733333;0.9066667;0.9333333;0.96;0.9866667;1\"\r\n\t\t\t\t\t\tpath=\"M300 300 C300,300 300,300 300,300 C300,300 300,172 300,172 C300,172 300,347 300,347 C300,347 300,287 300,287 C300,287 300,306.5 300,306.5 C300,306.5 300,301.5 300,301.5 C300,301.5 300,300 300,300 \"\r\n\t\t\t\t\t\tkeyPoints=\"0;0;0.33;0.78;0.93;0.98;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.333 0 0 1;0.333 0 0 1;0.167 0.167 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1;0.333 0 0.667 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_7_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\tto=\"3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\ttype=\"scale\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"3.3000000000000003 3.3000000000000003;3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_7_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"-14.5 -14.5\"\r\n\t\t\t\t\t\tto=\"-14.5 -14.5\"\r\n\t\t\t\t\t\ttype=\"translate\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"-14.5 -14.5;-14.5 -14.5\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_7_G_M\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"1\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.8;0.8000007;1\"\r\n\t\t\t\t\t\tvalues=\"0;0;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 0 0;0 0 0 0;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateMotion\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_6_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tpath=\"M300 300 C300,300 300,300 300,300 \"\r\n\t\t\t\t\t\tkeyPoints=\"0;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.333 0 0 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_6_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\tto=\"3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\ttype=\"scale\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"3.3000000000000003 3.3000000000000003;3.3000000000000003 3.3000000000000003\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_6_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"-14.5 -14.5\"\r\n\t\t\t\t\t\tto=\"-14.5 -14.5\"\r\n\t\t\t\t\t\ttype=\"translate\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"-14.5 -14.5;-14.5 -14.5\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_6_G_M\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_5_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"1\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.2333333;0.2733333;1\"\r\n\t\t\t\t\t\tvalues=\"1;1;0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0.167 0.167 0.667 1;0.167 0.167 0.667 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateMotion\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_5_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.08;0.2333333;0.2733333;1\"\r\n\t\t\t\t\t\tpath=\"M427 300 C427,300 173.5,300 173.5,300 C173.5,300 173.5,300 173.5,300 C173.5,300 81.5,300 81.5,300 C81.5,300 81.5,300 81.5,300 \"\r\n\t\t\t\t\t\tkeyPoints=\"0;0.73;0.73;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.167 0.167 0.667 1;0.167 0.167 0.833 0.833;0.167 0.167 0 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_5_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"0.89062 0.89062\"\r\n\t\t\t\t\t\tto=\"0.89062 0.89062\"\r\n\t\t\t\t\t\ttype=\"scale\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"0.89062 0.89062;0.89062 0.89062\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_5_G_M\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"1\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.28;0.28;1\"\r\n\t\t\t\t\t\tvalues=\"1;1;0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 0 0;0 0 0 0;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_4_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.04;0.08;0.4666667;0.5066667;1\"\r\n\t\t\t\t\t\tvalues=\"0;0;1;1;0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0.333 0 0.833 0.833;0.333 0 0.833 0.833;0.167 0.167 0.833 0.833;0.167 0.167 0.667 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateMotion\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_4_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.04;0.08;0.2333333;0.3133333;0.4666667;0.5066667;1\"\r\n\t\t\t\t\t\tpath=\"M498 300 C498,300 498,300 498,300 C498,300 427,300 427,300 C427,300 427,300 427,300 C427,300 173.5,300 173.5,300 C173.5,300 173.5,300 173.5,300 C173.5,300 81.5,300 81.5,300 C81.5,300 81.5,300 81.5,300 \"\r\n\t\t\t\t\t\tkeyPoints=\"0;0;0.17;0.17;0.78;0.78;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.167 0.167 0.667 1;0.167 0.167 0.667 1;0.167 0.167 0.833 0.833;0.167 0.167 0.667 1;0.167 0.167 0.833 0.833;0.167 0.167 0 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_4_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"0.89062 0.89062\"\r\n\t\t\t\t\t\tto=\"0.89062 0.89062\"\r\n\t\t\t\t\t\ttype=\"scale\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"0.89062 0.89062;0.89062 0.89062\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_4_G_M\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.04;0.0400007;0.5133333;0.5133333;1\"\r\n\t\t\t\t\t\tvalues=\"0;0;1;1;0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_3_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.2333333;0.2733333;0.66;0.7;1\"\r\n\t\t\t\t\t\tvalues=\"0;0;1;1;0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0.333 0 0.833 0.833;0.333 0 0.833 0.833;0.167 0.167 0.833 0.833;0.167 0.167 0.667 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateMotion\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_3_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.2333333;0.2733333;0.4266667;0.5066667;0.66;0.7;1\"\r\n\t\t\t\t\t\tpath=\"M498 300 C498,300 498,300 498,300 C498,300 427,300 427,300 C427,300 427,300 427,300 C427,300 173.5,300 173.5,300 C173.5,300 173.5,300 173.5,300 C173.5,300 81.5,300 81.5,300 C81.5,300 81.5,300 81.5,300 \"\r\n\t\t\t\t\t\tkeyPoints=\"0;0;0.17;0.17;0.78;0.78;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.167 0.167 0.667 1;0.167 0.167 0.667 1;0.167 0.167 0.833 0.833;0.167 0.167 0.667 1;0.167 0.167 0.833 0.833;0.167 0.167 0 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_3_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"0.89062 0.89062\"\r\n\t\t\t\t\t\tto=\"0.89062 0.89062\"\r\n\t\t\t\t\t\ttype=\"scale\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"0.89062 0.89062;0.89062 0.89062\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_3_G_M\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.2333333;0.233334;0.7066667;0.7066667;1\"\r\n\t\t\t\t\t\tvalues=\"0;0;1;1;0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_2_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.4266667;0.4666667;0.8533333;0.8933333;1\"\r\n\t\t\t\t\t\tvalues=\"0;0;1;1;0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0.333 0 0.833 0.833;0.333 0 0.833 0.833;0.167 0.167 0.833 0.833;0.167 0.167 0.667 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateMotion\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_2_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.4266667;0.4666667;0.62;0.7;0.8533333;0.8933333;1\"\r\n\t\t\t\t\t\tpath=\"M498 300 C498,300 498,300 498,300 C498,300 427,300 427,300 C427,300 427,300 427,300 C427,300 173.5,300 173.5,300 C173.5,300 173.5,300 173.5,300 C173.5,300 81.5,300 81.5,300 C81.5,300 81.5,300 81.5,300 \"\r\n\t\t\t\t\t\tkeyPoints=\"0;0;0.17;0.17;0.78;0.78;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.167 0.167 0.667 1;0.167 0.167 0.667 1;0.167 0.167 0.833 0.833;0.167 0.167 0.667 1;0.167 0.167 0.833 0.833;0.167 0.167 0 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_2_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"0.89062 0.89062\"\r\n\t\t\t\t\t\tto=\"0.89062 0.89062\"\r\n\t\t\t\t\t\ttype=\"scale\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"0.89062 0.89062;0.89062 0.89062\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_2_G_M\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"0\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.4266667;0.4266673;0.9;0.9;1\"\r\n\t\t\t\t\t\tvalues=\"0;0;1;1;0;0\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_1_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"1\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.62;0.66;1\"\r\n\t\t\t\t\t\tvalues=\"0;0;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.333 0 0.833 0.833;0.333 0 0.833 0.833;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateMotion\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_1_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.62;0.66;0.8133333;0.8933333;1\"\r\n\t\t\t\t\t\tpath=\"M498 300 C498,300 498,300 498,300 C498,300 427,300 427,300 C427,300 427,300 427,300 C427,300 173.5,300 173.5,300 C173.5,300 173.5,300 173.5,300 \"\r\n\t\t\t\t\t\tkeyPoints=\"0;0;0.22;0.22;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.167 0.167 0.667 1;0.167 0.167 0.667 1;0.167 0.167 0.833 0.833;0.167 0.167 0.667 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_1_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"0.89062 0.89062\"\r\n\t\t\t\t\t\tto=\"0.89062 0.89062\"\r\n\t\t\t\t\t\ttype=\"scale\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"0.89062 0.89062;0.89062 0.89062\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_1_G_M\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"1\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.62;0.6200007;1\"\r\n\t\t\t\t\t\tvalues=\"0;0;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 0 0;0 0 0 0;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_0_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"1\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.8533333;0.8933333;1\"\r\n\t\t\t\t\t\tvalues=\"0;0;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.333 0 0.833 0.833;0.333 0 0.833 0.833;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateMotion\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_0_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.8533333;0.8933333;1\"\r\n\t\t\t\t\t\tpath=\"M498 300 C498,300 498,300 498,300 C498,300 427,300 427,300 C427,300 427,300 427,300 \"\r\n\t\t\t\t\t\tkeyPoints=\"0;0;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0.167 0.167 0.667 1;0.167 0.167 0.667 1;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animateTransform\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_0_G\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"transform\"\r\n\t\t\t\t\t\tfrom=\"0.89062 0.89062\"\r\n\t\t\t\t\t\tto=\"0.89062 0.89062\"\r\n\t\t\t\t\t\ttype=\"scale\"\r\n\t\t\t\t\t\tadditive=\"sum\"\r\n\t\t\t\t\t\tkeyTimes=\"0;1\"\r\n\t\t\t\t\t\tvalues=\"0.89062 0.89062;0.89062 0.89062\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 1 1\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate\r\n\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\tdur=\"5s\"\r\n\t\t\t\t\t\tbegin=\"0s\"\r\n\t\t\t\t\t\txlink:href=\"#_R_G_L_0_G_L_0_G_M\"\r\n\t\t\t\t\t\tfill=\"freeze\"\r\n\t\t\t\t\t\tattributeName=\"opacity\"\r\n\t\t\t\t\t\tfrom=\"0\"\r\n\t\t\t\t\t\tto=\"1\"\r\n\t\t\t\t\t\tkeyTimes=\"0;0.8533333;0.853334;1\"\r\n\t\t\t\t\t\tvalues=\"0;0;1;1\"\r\n\t\t\t\t\t\tkeySplines=\"0 0 0 0;0 0 0 0;0 0 0 0\"\r\n\t\t\t\t\t\tcalcMode=\"spline\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<animate attributeType=\"XML\" attributeName=\"opacity\" dur=\"5s\" from=\"0\" to=\"1\" xlink:href=\"#time_group\" />\r\n\t\t\t\t</defs>\r\n\t\t\t\t<g id=\"_R_G\">\r\n\t\t\t\t\t<g id=\"_R_G_L_0_G\" transform=\" translate(270, 196) translate(-300, -300)\">\r\n\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_12_G_M\">\r\n\t\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_12_G\">\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_12_G_D_0_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M0 -30 C16.56,-30 30,-16.56 30,0 C30,16.56 16.56,30 0,30 C-16.56,30 -30,16.56 -30,0 C-30,-16.56 -16.56,-30 0,-30z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_11_G_M\">\r\n\t\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_11_G\">\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_11_G_D_0_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M3.63 23.8 C3.63,23.8 8.05,27.83 24.33,20.28 C24.33,20.28 26.42,16.28 26.42,16.28 C26.42,16.28 27,14.81 27,14.81 C27,14.81 16.7,22.26 5.84,19.04 C2.26,17.97 3.63,23.8 3.63,23.8z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_11_G_D_1_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M9.41 27.76 C9.41,27.76 14.46,29.73 21.79,25.65 C21.79,25.65 23.71,24.43 23.71,24.43 C23.71,24.43 24.71,23.23 24.71,23.23 C24.71,23.23 17.24,26.84 10.74,24.91 C8.59,24.28 9.41,27.76 9.41,27.76z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_11_G_D_2_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M0.09 15.87 C0.09,15.87 11.11,22.24 26.48,10.22 C26.48,10.22 24.78,5.86 24.78,5.86 C24.78,5.86 15.46,14.09 3.98,10.46 C0.1,9.23 0.09,15.87 0.09,15.87z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_11_G_D_3_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M2.09 6.86 C2.09,6.86 10.72,10.88 22.35,3.43 C22.35,3.43 18.54,1.51 18.54,1.51 C18.54,1.51 15.04,5.07 5.34,3.53 C5.34,3.53 2.09,6.86 2.09,6.86z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_11_G_D_4_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M23.39 3.26 C22.15,2.23 20.73,1.42 19.19,0.86 C16.82,2.31 13.88,3.87 10.5,5.21 C6.5,6.81 3.12,8.7 0.55,10.37 C0.19,11.62 0,12.94 0,14.31 C0,14.84 0.03,15.36 0.09,15.87 C2.76,13.92 7.09,11.14 12.63,8.94 C17.07,7.17 20.74,5.04 23.39,3.26 C23.39,3.26 23.39,3.26 23.39,3.26z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_11_G_D_5_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M16.12 0.11 C15.52,0.04 14.92,0 14.31,0 C9.14,0 4.61,2.74 2.09,6.85 C4.2,5.65 6.65,4.41 9.41,3.31 C11.9,2.32 14.15,1.21 16.12,0.11z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_11_G_D_6_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M28.01 18.42 C28.4,17.12 28.61,15.74 28.61,14.31 C28.61,13.97 28.6,13.63 28.58,13.3 C25.91,15.1 22.2,17.28 17.68,19.08 C12.45,21.16 8.31,23.74 5.61,25.67 C6.79,26.57 8.12,27.3 9.56,27.81 C11.97,26.32 14.96,24.71 18.43,23.33 C22.25,21.82 25.49,20.03 28.01,18.42z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_11_G_D_7_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M28.08 10.43 C27.52,8.42 26.53,6.6 25.22,5.06 C22.53,6.9 18.67,9.21 13.93,11.1 C7.84,13.52 3.22,16.63 0.65,18.58 C1.26,20.55 2.29,22.33 3.63,23.83 C6.31,21.88 10.6,19.16 16.06,16.98 C21.25,14.92 25.38,12.35 28.08,10.43 C28.08,10.43 28.08,10.43 28.08,10.43z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_11_G_D_8_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M19.61 25.03 C16.91,26.1 14.51,27.31 12.44,28.49 C13.05,28.57 13.67,28.61 14.31,28.61 C19.5,28.61 24.05,25.84 26.56,21.7 C24.54,22.84 22.21,24 19.61,25.03 C19.61,25.03 19.61,25.03 19.61,25.03z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_10_G_M\">\r\n\t\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_10_G\">\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_10_G_D_0_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M3.63 23.8 C3.63,23.8 8.05,27.83 24.33,20.28 C24.33,20.28 26.42,16.28 26.42,16.28 C26.42,16.28 27,14.81 27,14.81 C27,14.81 16.7,22.26 5.84,19.04 C2.26,17.97 3.63,23.8 3.63,23.8z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_10_G_D_1_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M9.41 27.76 C9.41,27.76 14.46,29.73 21.79,25.65 C21.79,25.65 23.71,24.43 23.71,24.43 C23.71,24.43 24.71,23.23 24.71,23.23 C24.71,23.23 17.24,26.84 10.74,24.91 C8.59,24.28 9.41,27.76 9.41,27.76z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_10_G_D_2_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M0.09 15.87 C0.09,15.87 11.11,22.24 26.48,10.22 C26.48,10.22 24.78,5.86 24.78,5.86 C24.78,5.86 15.46,14.09 3.98,10.46 C0.1,9.23 0.09,15.87 0.09,15.87z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_10_G_D_3_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M2.09 6.86 C2.09,6.86 10.72,10.88 22.35,3.43 C22.35,3.43 18.54,1.51 18.54,1.51 C18.54,1.51 15.04,5.07 5.34,3.53 C5.34,3.53 2.09,6.86 2.09,6.86z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_10_G_D_4_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M23.39 3.26 C22.15,2.23 20.73,1.42 19.19,0.86 C16.82,2.31 13.88,3.87 10.5,5.21 C6.5,6.81 3.12,8.7 0.55,10.37 C0.19,11.62 0,12.94 0,14.31 C0,14.84 0.03,15.36 0.09,15.87 C2.76,13.92 7.09,11.14 12.63,8.94 C17.07,7.17 20.74,5.04 23.39,3.26 C23.39,3.26 23.39,3.26 23.39,3.26z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_10_G_D_5_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M16.12 0.11 C15.52,0.04 14.92,0 14.31,0 C9.14,0 4.61,2.74 2.09,6.85 C4.2,5.65 6.65,4.41 9.41,3.31 C11.9,2.32 14.15,1.21 16.12,0.11z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_10_G_D_6_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M28.01 18.42 C28.4,17.12 28.61,15.74 28.61,14.31 C28.61,13.97 28.6,13.63 28.58,13.3 C25.91,15.1 22.2,17.28 17.68,19.08 C12.45,21.16 8.31,23.74 5.61,25.67 C6.79,26.57 8.12,27.3 9.56,27.81 C11.97,26.32 14.96,24.71 18.43,23.33 C22.25,21.82 25.49,20.03 28.01,18.42z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_10_G_D_7_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M28.08 10.43 C27.52,8.42 26.53,6.6 25.22,5.06 C22.53,6.9 18.67,9.21 13.93,11.1 C7.84,13.52 3.22,16.63 0.65,18.58 C1.26,20.55 2.29,22.33 3.63,23.83 C6.31,21.88 10.6,19.16 16.06,16.98 C21.25,14.92 25.38,12.35 28.08,10.43 C28.08,10.43 28.08,10.43 28.08,10.43z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_10_G_D_8_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M19.61 25.03 C16.91,26.1 14.51,27.31 12.44,28.49 C13.05,28.57 13.67,28.61 14.31,28.61 C19.5,28.61 24.05,25.84 26.56,21.7 C24.54,22.84 22.21,24 19.61,25.03 C19.61,25.03 19.61,25.03 19.61,25.03z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_9_G_M\">\r\n\t\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_9_G\">\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_9_G_D_0_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M3.63 23.8 C3.63,23.8 8.05,27.83 24.33,20.28 C24.33,20.28 26.42,16.28 26.42,16.28 C26.42,16.28 27,14.81 27,14.81 C27,14.81 16.7,22.26 5.84,19.04 C2.26,17.97 3.63,23.8 3.63,23.8z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_9_G_D_1_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M9.41 27.76 C9.41,27.76 14.46,29.73 21.79,25.65 C21.79,25.65 23.71,24.43 23.71,24.43 C23.71,24.43 24.71,23.23 24.71,23.23 C24.71,23.23 17.24,26.84 10.74,24.91 C8.59,24.28 9.41,27.76 9.41,27.76z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_9_G_D_2_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M0.09 15.87 C0.09,15.87 11.11,22.24 26.48,10.22 C26.48,10.22 24.78,5.86 24.78,5.86 C24.78,5.86 15.46,14.09 3.98,10.46 C0.1,9.23 0.09,15.87 0.09,15.87z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_9_G_D_3_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M2.09 6.86 C2.09,6.86 10.72,10.88 22.35,3.43 C22.35,3.43 18.54,1.51 18.54,1.51 C18.54,1.51 15.04,5.07 5.34,3.53 C5.34,3.53 2.09,6.86 2.09,6.86z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_9_G_D_4_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M23.39 3.26 C22.15,2.23 20.73,1.42 19.19,0.86 C16.82,2.31 13.88,3.87 10.5,5.21 C6.5,6.81 3.12,8.7 0.55,10.37 C0.19,11.62 0,12.94 0,14.31 C0,14.84 0.03,15.36 0.09,15.87 C2.76,13.92 7.09,11.14 12.63,8.94 C17.07,7.17 20.74,5.04 23.39,3.26 C23.39,3.26 23.39,3.26 23.39,3.26z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_9_G_D_5_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M16.12 0.11 C15.52,0.04 14.92,0 14.31,0 C9.14,0 4.61,2.74 2.09,6.85 C4.2,5.65 6.65,4.41 9.41,3.31 C11.9,2.32 14.15,1.21 16.12,0.11z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_9_G_D_6_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M28.01 18.42 C28.4,17.12 28.61,15.74 28.61,14.31 C28.61,13.97 28.6,13.63 28.58,13.3 C25.91,15.1 22.2,17.28 17.68,19.08 C12.45,21.16 8.31,23.74 5.61,25.67 C6.79,26.57 8.12,27.3 9.56,27.81 C11.97,26.32 14.96,24.71 18.43,23.33 C22.25,21.82 25.49,20.03 28.01,18.42z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_9_G_D_7_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M28.08 10.43 C27.52,8.42 26.53,6.6 25.22,5.06 C22.53,6.9 18.67,9.21 13.93,11.1 C7.84,13.52 3.22,16.63 0.65,18.58 C1.26,20.55 2.29,22.33 3.63,23.83 C6.31,21.88 10.6,19.16 16.06,16.98 C21.25,14.92 25.38,12.35 28.08,10.43 C28.08,10.43 28.08,10.43 28.08,10.43z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_9_G_D_8_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M19.61 25.03 C16.91,26.1 14.51,27.31 12.44,28.49 C13.05,28.57 13.67,28.61 14.31,28.61 C19.5,28.61 24.05,25.84 26.56,21.7 C24.54,22.84 22.21,24 19.61,25.03 C19.61,25.03 19.61,25.03 19.61,25.03z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_8_G_M\">\r\n\t\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_8_G\">\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_8_G_D_0_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M3.63 23.8 C3.63,23.8 8.05,27.83 24.33,20.28 C24.33,20.28 26.42,16.28 26.42,16.28 C26.42,16.28 27,14.81 27,14.81 C27,14.81 16.7,22.26 5.84,19.04 C2.26,17.97 3.63,23.8 3.63,23.8z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_8_G_D_1_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M9.41 27.76 C9.41,27.76 14.46,29.73 21.79,25.65 C21.79,25.65 23.71,24.43 23.71,24.43 C23.71,24.43 24.71,23.23 24.71,23.23 C24.71,23.23 17.24,26.84 10.74,24.91 C8.59,24.28 9.41,27.76 9.41,27.76z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_8_G_D_2_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M0.09 15.87 C0.09,15.87 11.11,22.24 26.48,10.22 C26.48,10.22 24.78,5.86 24.78,5.86 C24.78,5.86 15.46,14.09 3.98,10.46 C0.1,9.23 0.09,15.87 0.09,15.87z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_8_G_D_3_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M2.09 6.86 C2.09,6.86 10.72,10.88 22.35,3.43 C22.35,3.43 18.54,1.51 18.54,1.51 C18.54,1.51 15.04,5.07 5.34,3.53 C5.34,3.53 2.09,6.86 2.09,6.86z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_8_G_D_4_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M23.39 3.26 C22.15,2.23 20.73,1.42 19.19,0.86 C16.82,2.31 13.88,3.87 10.5,5.21 C6.5,6.81 3.12,8.7 0.55,10.37 C0.19,11.62 0,12.94 0,14.31 C0,14.84 0.03,15.36 0.09,15.87 C2.76,13.92 7.09,11.14 12.63,8.94 C17.07,7.17 20.74,5.04 23.39,3.26 C23.39,3.26 23.39,3.26 23.39,3.26z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_8_G_D_5_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M16.12 0.11 C15.52,0.04 14.92,0 14.31,0 C9.14,0 4.61,2.74 2.09,6.85 C4.2,5.65 6.65,4.41 9.41,3.31 C11.9,2.32 14.15,1.21 16.12,0.11z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_8_G_D_6_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M28.01 18.42 C28.4,17.12 28.61,15.74 28.61,14.31 C28.61,13.97 28.6,13.63 28.58,13.3 C25.91,15.1 22.2,17.28 17.68,19.08 C12.45,21.16 8.31,23.74 5.61,25.67 C6.79,26.57 8.12,27.3 9.56,27.81 C11.97,26.32 14.96,24.71 18.43,23.33 C22.25,21.82 25.49,20.03 28.01,18.42z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_8_G_D_7_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M28.08 10.43 C27.52,8.42 26.53,6.6 25.22,5.06 C22.53,6.9 18.67,9.21 13.93,11.1 C7.84,13.52 3.22,16.63 0.65,18.58 C1.26,20.55 2.29,22.33 3.63,23.83 C6.31,21.88 10.6,19.16 16.06,16.98 C21.25,14.92 25.38,12.35 28.08,10.43 C28.08,10.43 28.08,10.43 28.08,10.43z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_8_G_D_8_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M19.61 25.03 C16.91,26.1 14.51,27.31 12.44,28.49 C13.05,28.57 13.67,28.61 14.31,28.61 C19.5,28.61 24.05,25.84 26.56,21.7 C24.54,22.84 22.21,24 19.61,25.03 C19.61,25.03 19.61,25.03 19.61,25.03z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_7_G_M\">\r\n\t\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_7_G\">\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_7_G_D_0_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M3.63 23.8 C3.63,23.8 8.05,27.83 24.33,20.28 C24.33,20.28 26.42,16.28 26.42,16.28 C26.42,16.28 27,14.81 27,14.81 C27,14.81 16.7,22.26 5.84,19.04 C2.26,17.97 3.63,23.8 3.63,23.8z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_7_G_D_1_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M9.41 27.76 C9.41,27.76 14.46,29.73 21.79,25.65 C21.79,25.65 23.71,24.43 23.71,24.43 C23.71,24.43 24.71,23.23 24.71,23.23 C24.71,23.23 17.24,26.84 10.74,24.91 C8.59,24.28 9.41,27.76 9.41,27.76z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_7_G_D_2_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M0.09 15.87 C0.09,15.87 11.11,22.24 26.48,10.22 C26.48,10.22 24.78,5.86 24.78,5.86 C24.78,5.86 15.46,14.09 3.98,10.46 C0.1,9.23 0.09,15.87 0.09,15.87z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_7_G_D_3_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M2.09 6.86 C2.09,6.86 10.72,10.88 22.35,3.43 C22.35,3.43 18.54,1.51 18.54,1.51 C18.54,1.51 15.04,5.07 5.34,3.53 C5.34,3.53 2.09,6.86 2.09,6.86z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_7_G_D_4_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M23.39 3.26 C22.15,2.23 20.73,1.42 19.19,0.86 C16.82,2.31 13.88,3.87 10.5,5.21 C6.5,6.81 3.12,8.7 0.55,10.37 C0.19,11.62 0,12.94 0,14.31 C0,14.84 0.03,15.36 0.09,15.87 C2.76,13.92 7.09,11.14 12.63,8.94 C17.07,7.17 20.74,5.04 23.39,3.26 C23.39,3.26 23.39,3.26 23.39,3.26z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_7_G_D_5_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M16.12 0.11 C15.52,0.04 14.92,0 14.31,0 C9.14,0 4.61,2.74 2.09,6.85 C4.2,5.65 6.65,4.41 9.41,3.31 C11.9,2.32 14.15,1.21 16.12,0.11z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_7_G_D_6_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M28.01 18.42 C28.4,17.12 28.61,15.74 28.61,14.31 C28.61,13.97 28.6,13.63 28.58,13.3 C25.91,15.1 22.2,17.28 17.68,19.08 C12.45,21.16 8.31,23.74 5.61,25.67 C6.79,26.57 8.12,27.3 9.56,27.81 C11.97,26.32 14.96,24.71 18.43,23.33 C22.25,21.82 25.49,20.03 28.01,18.42z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_7_G_D_7_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M28.08 10.43 C27.52,8.42 26.53,6.6 25.22,5.06 C22.53,6.9 18.67,9.21 13.93,11.1 C7.84,13.52 3.22,16.63 0.65,18.58 C1.26,20.55 2.29,22.33 3.63,23.83 C6.31,21.88 10.6,19.16 16.06,16.98 C21.25,14.92 25.38,12.35 28.08,10.43 C28.08,10.43 28.08,10.43 28.08,10.43z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_7_G_D_8_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M19.61 25.03 C16.91,26.1 14.51,27.31 12.44,28.49 C13.05,28.57 13.67,28.61 14.31,28.61 C19.5,28.61 24.05,25.84 26.56,21.7 C24.54,22.84 22.21,24 19.61,25.03 C19.61,25.03 19.61,25.03 19.61,25.03z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_6_G_M\">\r\n\t\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_6_G\">\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_6_G_D_0_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M3.63 23.8 C3.63,23.8 8.05,27.83 24.33,20.28 C24.33,20.28 26.42,16.28 26.42,16.28 C26.42,16.28 27,14.81 27,14.81 C27,14.81 16.7,22.26 5.84,19.04 C2.26,17.97 3.63,23.8 3.63,23.8z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_6_G_D_1_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M9.41 27.76 C9.41,27.76 14.46,29.73 21.79,25.65 C21.79,25.65 23.71,24.43 23.71,24.43 C23.71,24.43 24.71,23.23 24.71,23.23 C24.71,23.23 17.24,26.84 10.74,24.91 C8.59,24.28 9.41,27.76 9.41,27.76z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_6_G_D_2_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M0.09 15.87 C0.09,15.87 11.11,22.24 26.48,10.22 C26.48,10.22 24.78,5.86 24.78,5.86 C24.78,5.86 15.46,14.09 3.98,10.46 C0.1,9.23 0.09,15.87 0.09,15.87z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_6_G_D_3_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M2.09 6.86 C2.09,6.86 10.72,10.88 22.35,3.43 C22.35,3.43 18.54,1.51 18.54,1.51 C18.54,1.51 15.04,5.07 5.34,3.53 C5.34,3.53 2.09,6.86 2.09,6.86z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_6_G_D_4_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M23.39 3.26 C22.15,2.23 20.73,1.42 19.19,0.86 C16.82,2.31 13.88,3.87 10.5,5.21 C6.5,6.81 3.12,8.7 0.55,10.37 C0.19,11.62 0,12.94 0,14.31 C0,14.84 0.03,15.36 0.09,15.87 C2.76,13.92 7.09,11.14 12.63,8.94 C17.07,7.17 20.74,5.04 23.39,3.26 C23.39,3.26 23.39,3.26 23.39,3.26z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_6_G_D_5_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M16.12 0.11 C15.52,0.04 14.92,0 14.31,0 C9.14,0 4.61,2.74 2.09,6.85 C4.2,5.65 6.65,4.41 9.41,3.31 C11.9,2.32 14.15,1.21 16.12,0.11z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_6_G_D_6_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M28.01 18.42 C28.4,17.12 28.61,15.74 28.61,14.31 C28.61,13.97 28.6,13.63 28.58,13.3 C25.91,15.1 22.2,17.28 17.68,19.08 C12.45,21.16 8.31,23.74 5.61,25.67 C6.79,26.57 8.12,27.3 9.56,27.81 C11.97,26.32 14.96,24.71 18.43,23.33 C22.25,21.82 25.49,20.03 28.01,18.42z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_6_G_D_7_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M28.08 10.43 C27.52,8.42 26.53,6.6 25.22,5.06 C22.53,6.9 18.67,9.21 13.93,11.1 C7.84,13.52 3.22,16.63 0.65,18.58 C1.26,20.55 2.29,22.33 3.63,23.83 C6.31,21.88 10.6,19.16 16.06,16.98 C21.25,14.92 25.38,12.35 28.08,10.43 C28.08,10.43 28.08,10.43 28.08,10.43z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_6_G_D_8_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M19.61 25.03 C16.91,26.1 14.51,27.31 12.44,28.49 C13.05,28.57 13.67,28.61 14.31,28.61 C19.5,28.61 24.05,25.84 26.56,21.7 C24.54,22.84 22.21,24 19.61,25.03 C19.61,25.03 19.61,25.03 19.61,25.03z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_5_G_M\">\r\n\t\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_5_G\">\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_5_G_D_0_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M0 -30 C16.56,-30 30,-16.56 30,0 C30,16.56 16.56,30 0,30 C-16.56,30 -30,16.56 -30,0 C-30,-16.56 -16.56,-30 0,-30z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_4_G_M\">\r\n\t\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_4_G\">\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_4_G_D_0_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M0 -30 C16.56,-30 30,-16.56 30,0 C30,16.56 16.56,30 0,30 C-16.56,30 -30,16.56 -30,0 C-30,-16.56 -16.56,-30 0,-30z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_3_G_M\">\r\n\t\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_3_G\">\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_3_G_D_0_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M0 -30 C16.56,-30 30,-16.56 30,0 C30,16.56 16.56,30 0,30 C-16.56,30 -30,16.56 -30,0 C-30,-16.56 -16.56,-30 0,-30z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_2_G_M\">\r\n\t\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_2_G\">\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_2_G_D_0_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M0 -30 C16.56,-30 30,-16.56 30,0 C30,16.56 16.56,30 0,30 C-16.56,30 -30,16.56 -30,0 C-30,-16.56 -16.56,-30 0,-30z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_1_G_M\">\r\n\t\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_1_G\">\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_1_G_D_0_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#ff860d\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M0 -30 C16.56,-30 30,-16.56 30,0 C30,16.56 16.56,30 0,30 C-16.56,30 -30,16.56 -30,0 C-30,-16.56 -16.56,-30 0,-30z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_0_G_M\">\r\n\t\t\t\t\t\t\t<g id=\"_R_G_L_0_G_L_0_G\">\r\n\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\tid=\"_R_G_L_0_G_L_0_G_D_0_P_0\"\r\n\t\t\t\t\t\t\t\t\tfill=\"#21409a\"\r\n\t\t\t\t\t\t\t\t\tfill-opacity=\"1\"\r\n\t\t\t\t\t\t\t\t\tfill-rule=\"nonzero\"\r\n\t\t\t\t\t\t\t\t\td=\" M0 -30 C16.56,-30 30,-16.56 30,0 C30,16.56 16.56,30 0,30 C-16.56,30 -30,16.56 -30,0 C-30,-16.56 -16.56,-30 0,-30z \"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t</g>\r\n\t\t\t\t</g>\r\n\t\t\t\t<g id=\"time_group\" />\r\n\t\t\t</svg>\r\n\t\t}\r\n\t</span>\r\n</div>\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","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","import { 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 * as _ from \"lodash\";\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 constructor(private location: Location) {}\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","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 { CommonModule, DatePipe } from \"@angular/common\";\r\nimport { AfterContentInit, Component, ContentChild, ContentChildren, EventEmitter, inject, Input, OnChanges, Output, QueryList, TemplateRef } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { BadgeModule } from \"primeng/badge\";\r\nimport { CheckboxModule } from \"primeng/checkbox\";\r\nimport { IconFieldModule } from \"primeng/iconfield\";\r\nimport { InputIcon } from \"primeng/inputicon\";\r\nimport { InputNumber } from \"primeng/inputnumber\";\r\nimport { InputText, InputTextModule } from \"primeng/inputtext\";\r\nimport { Paginator } from \"primeng/paginator\";\r\nimport { Select } from \"primeng/select\";\r\nimport { TableModule } from \"primeng/table\";\r\nimport { TooltipModule } from \"primeng/tooltip\";\r\nimport { FormatCellPipe } from \"../../pipes/formatCell.pipe\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\nimport { SharedService } from \"../../services/shared.service\";\r\nimport { SearchInputModel } from \"../search/model/search.model\";\r\nimport { ColumnComponent, ColumnGroupComponent, RowResumenComponent } from \"./column.component\";\r\nimport { SortFieldModel } from \"./model/sort.model\";\r\n\r\n@Component({\r\n\tselector: \"intelica-table\",\r\n\tstandalone: true,\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tIconFieldModule,\r\n\t\tInputIcon,\r\n\t\tInputText,\r\n\t\tInputTextModule,\r\n\t\tInputNumber,\r\n\t\tPaginator,\r\n\t\tTableModule,\r\n\t\tSelect,\r\n\t\tBadgeModule,\r\n\t\tTooltipModule,\r\n\t\tTermPipe,\r\n\t\tCheckboxModule,\r\n\t\tFormsModule,\r\n\t\tFormatCellPipe,\r\n\t],\r\n\ttemplateUrl: \"./table.component.html\",\r\n\tproviders: [FormatCellPipe, DatePipe],\r\n})\r\nexport class TableComponent<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() ShowRowPerPage: boolean = true;\r\n\t@Input() ShowSearch: boolean = false;\r\n\t@Input() ShowPagination: boolean = false;\r\n\t@Input() RowsPerPage: number = 10;\r\n\t@Input() ShowCheckbox: boolean = false;\r\n\t@Input() ShowIndex: boolean = false;\r\n\t@Input() ListDataSelected: T[] = [];\r\n\t@Input() SelectedIdentifier: keyof T | null = null;\r\n\t@Input() ClassName: string = \"\";\r\n\t@Input() DefaultSortField: string = \"\";\r\n\t@Input() DefaultSortOrder: number = 1;\r\n\t@Input() scrollHeight: string = \"400px\";\r\n\t@Input() scrollable: boolean = false;\r\n\t@Input() AllowedPageSizes: number[] = [10, 25, 50, 100];\r\n\t@Input() tableStyle: { [klass: string]: any } = {};\r\n\tprivate _isTableDisabled = false;\r\n\tprivate _pendingUncheck = false;\r\n\tHeaderState: Record<string, { checked: boolean; indeterminate: boolean }> = {};\r\n\r\n\t@Input()\r\n\tset IsTableDisabled(val: boolean) {\r\n\t\tthis._isTableDisabled = val;\r\n\r\n\t\tif (val) {\r\n\t\t\tif (!this.ColumnList || this.ColumnList.length === 0) {\r\n\t\t\t\tthis._pendingUncheck = true;\r\n\t\t\t} else {\r\n\t\t\t\tthis.ListDataSelectedTemp = [];\r\n\t\t\t\tthis.ListDataSelectedFilter = [];\r\n\t\t\t\tthis.ExecuteSearch();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tget IsTableDisabled() {\r\n\t\treturn this._isTableDisabled;\r\n\t}\r\n\r\n\tpublic recomputeHeaderState(field: string) {\r\n\t\tconst total = this.ListDataFilter.length;\r\n\t\tif (total === 0) {\r\n\t\t\tthis.HeaderState[field] = { checked: false, indeterminate: false };\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst checked = this.ListDataFilter.filter(r => (r as any)[field] === true).length;\r\n\t\tthis.HeaderState[field] = {\r\n\t\t\tchecked: checked === total,\r\n\t\t\tindeterminate: checked > 0 && checked < total,\r\n\t\t};\r\n\t}\r\n\r\n\tonBodyCheckboxChange(field: string) {\r\n\t\tthis.recomputeHeaderState(field);\r\n\t}\r\n\r\n\tprivate refreshAllHeaderStates() {\r\n\t\tthis.ColumnList.filter(c => c.isChecboxColumn).forEach(c => this.recomputeHeaderState(c.field));\r\n\t}\r\n\t@Output() EmitSelectedItem = new EventEmitter<T[]>();\r\n\t@Output() EmitListDataFilter = new EventEmitter<T[]>();\r\n\t@Output() EmitSearchEvent = new EventEmitter<SearchInputModel>();\r\n\t@Output() EmitSortEvent = new EventEmitter<SortFieldModel[]>();\r\n\t@ContentChildren(ColumnComponent) Columns!: QueryList<ColumnComponent>;\r\n\t@ContentChildren(ColumnGroupComponent)\r\n\tColumnGroups!: QueryList<ColumnGroupComponent>;\r\n\t@ContentChildren(RowResumenComponent)\r\n\tRowResumenGroups!: QueryList<RowResumenComponent>;\r\n\t@ContentChild(\"additionalTemplate\") AdditionalTemplate?: TemplateRef<any>;\r\n\t@ContentChild(\"additionalExtendedTemplate\")\r\n\tAdditionalExtendedTemplate?: TemplateRef<any>;\r\n\t@ContentChild(\"additionalCentralTemplate\")\r\n\tAdditionalCentralTemplate?: TemplateRef<any>;\r\n\tColumnList: ColumnComponent[] = [];\r\n\tColumnGroupList: ColumnGroupComponent[] = [];\r\n\tRowResumenList: RowResumenComponent[] = [];\r\n\tListDataFilter: T[] = [];\r\n\tListDataTable: T[] = [];\r\n\tListDataSelectedFilter: T[] = [];\r\n\tListDataSelectedTemp: T[] = [];\r\n\tSearchInput: SearchInputModel = { searchText: \"\" } as SearchInputModel;\r\n\tTotalRecords: number = 0;\r\n\tCurrentPage: number = 1;\r\n\tSortOrder: number = 1;\r\n\tSortField: keyof T | null = null;\r\n\tMaxLevel: number = 0;\r\n\tLevels: number[] = [];\r\n\tngOnChanges(): void {\r\n\t\tif (!this.SortField && this.DefaultSortField) {\r\n\t\t\tthis.SortField = this.DefaultSortField as keyof T;\r\n\t\t\tthis.SortOrder = this.DefaultSortOrder;\r\n\t\t}\r\n\t\tthis.ExecuteSearch();\r\n\t\tthis.ValidateSelect();\r\n\t}\r\n\tngAfterContentInit() {\r\n\t\tthis.ColumnList = this.Columns?.toArray() ?? [];\r\n\t\tthis.ColumnGroupList = this.ColumnGroups?.toArray() ?? [];\r\n\t\tthis.RowResumenList = this.RowResumenGroups?.toArray() ?? [];\r\n\r\n\t\tconst levels = this.ColumnGroupList.map(c => c.level);\r\n\t\tthis.MaxLevel = levels.length ? Math.max(...levels) + 1 : 1;\r\n\t\tthis.Levels = Array.from({ length: this.MaxLevel }, (_, i) => i);\r\n\r\n\t\tthis.ColumnList.filter(c => c.isChecboxColumn).forEach(c => {\r\n\t\t\tif (!this.HeaderState[c.field]) {\r\n\t\t\t\tthis.HeaderState[c.field] = { checked: false, indeterminate: false };\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (this._isTableDisabled && this._pendingUncheck) {\r\n\t\t\tthis.ListDataSelectedTemp = [];\r\n\t\t\tthis.ListDataSelectedFilter = [];\r\n\t\t\tthis._pendingUncheck = false;\r\n\t\t\tthis.ExecuteSearch();\r\n\t\t} else {\r\n\t\t\tthis.refreshAllHeaderStates();\r\n\t\t}\r\n\t}\r\n\tOnSort(field: string) {\r\n\t\tif (this.SortField === field) {\r\n\t\t\tthis.SortOrder *= -1;\r\n\t\t} else {\r\n\t\t\tthis.SortField = field as keyof T;\r\n\t\t\tthis.SortOrder = 1;\r\n\t\t}\r\n\t\tthis.SortPages();\r\n\t}\r\n\tOnPageChange(event: { page?: number; rows?: number } | number) {\r\n\t\tif (typeof event === \"number\") {\r\n\t\t\tthis.CurrentPage = event;\r\n\t\t} else {\r\n\t\t\tif (typeof event?.rows === \"number\") {\r\n\t\t\t\tthis.RowsPerPage = event.rows;\r\n\t\t\t}\r\n\t\t\tif (typeof event?.page === \"number\") {\r\n\t\t\t\tthis.CurrentPage = event.page + 1;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.UpdatePages();\r\n\t}\r\n\tExecuteSearch(searchText?: string): void {\r\n\t\tif (typeof searchText === \"string\") {\r\n\t\t\tthis.SearchInput = { ...(this.SearchInput ?? {}), searchText };\r\n\t\t}\r\n\t\tthis.ListDataFilter = [...this.ListData];\r\n\t\tconst search = this.SearchInput?.searchText?.trim()?.toLowerCase();\r\n\t\tif (search) {\r\n\t\t\tthis.ListDataFilter = this.ListData.filter(item => {\r\n\t\t\t\tconst searchableText = Object.values(item as any)\r\n\t\t\t\t\t.filter(v => v !== null && v !== undefined)\r\n\t\t\t\t\t.join(\" \")\r\n\t\t\t\t\t.toLowerCase();\r\n\t\t\t\treturn searchableText.includes(search);\r\n\t\t\t});\r\n\t\t\tthis.CurrentPage = 1;\r\n\t\t}\r\n\t\tthis.SortPages();\r\n\t}\r\n\tSortPages() {\r\n\t\tif (!this.SortField) {\r\n\t\t\tthis.UpdatePages();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst order = this.SortOrder === 1 ? \"asc\" : \"desc\";\r\n\t\tconst field = this.SortField as keyof T;\r\n\r\n\t\tconst colConfig = this.ColumnList.find(c => c.field === field);\r\n\t\tif (!colConfig) {\r\n\t\t\tconsole.warn(\"Columna no encontrada:\", field);\r\n\t\t\tthis.UpdatePages();\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst formatType = colConfig.formatType;\r\n\t\tconst sampleValue = this.ListDataFilter.find(item => item[field] !== null && item[field] !== undefined)?.[field];\r\n\t\tif (typeof sampleValue === \"number\") {\r\n\t\t\tthis.ListDataFilter = this.SharedService.SortRecursiveNumber([...this.ListDataFilter], field, order);\r\n\t\t} else {\r\n\t\t\tif (formatType === \"date\") {\r\n\t\t\t\tthis.ListDataFilter = this.SharedService.SortRecursiveDate([...this.ListDataFilter], field, order);\r\n\t\t\t} else {\r\n\t\t\t\tthis.ListDataFilter = this.SharedService.SortRecursivePrimeNg([...this.ListDataFilter], field, order);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.UpdatePages();\r\n\t}\r\n\tUpdatePages() {\r\n\t\tif (this.ShowPagination) {\r\n\t\t\tthis.TotalRecords = this.ListDataFilter.length;\r\n\t\t\tconst start = (this.CurrentPage - 1) * this.RowsPerPage;\r\n\t\t\tconst end = start + this.RowsPerPage;\r\n\t\t\tthis.ListDataTable = this.ListDataFilter.slice(start, end);\r\n\t\t} else {\r\n\t\t\tthis.ListDataTable = this.ListDataFilter;\r\n\t\t}\r\n\t\tif (this.ShowCheckbox) this.ListDataSelectedFilter = [...this.ListDataSelectedTemp];\r\n\t\tthis.refreshAllHeaderStates();\r\n\t\tthis.EmitSearchValues();\r\n\t}\r\n\tValidateSelect() {\r\n\t\tif (!this.SelectedIdentifier && this.ShowCheckbox) {\r\n\t\t\tthis.ShowCheckbox = false;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst selectedIds = new Set(this.ListDataSelected.map(item => item[this.SelectedIdentifier as keyof T]));\r\n\t\tthis.ListDataSelectedTemp = this.ListData.filter(item => selectedIds.has(item[this.SelectedIdentifier as keyof T]));\r\n\t\tthis.ListDataSelectedFilter = [...this.ListDataSelectedTemp];\r\n\t}\r\n\tSelectAll(event: any) {\r\n\t\tif (!this.SelectedIdentifier && this.ShowCheckbox) return;\r\n\t\tif (event.checked) {\r\n\t\t\tconst idsSelected = new Set(this.ListDataSelectedTemp.map(item => item[this.SelectedIdentifier as keyof T]));\r\n\t\t\tthis.ListDataFilter.forEach(item => {\r\n\t\t\t\tif (!idsSelected.has(item[this.SelectedIdentifier as keyof T])) {\r\n\t\t\t\t\tthis.ListDataSelectedTemp.push(item);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tconst idsSelected = new Set(this.ListDataFilter.map(item => item[this.SelectedIdentifier as keyof T]));\r\n\t\t\tthis.ListDataSelectedTemp = this.ListDataSelectedTemp.filter(item => !idsSelected.has(item[this.SelectedIdentifier as keyof T]));\r\n\t\t}\r\n\t\tthis.ListDataSelectedFilter = [...this.ListDataSelectedTemp];\r\n\t\tthis.EmitSelectedItem.emit(this.ListDataSelectedTemp);\r\n\t}\r\n\tOnHeaderSelectionToggle(checked: boolean) {\r\n\t\tthis.SelectAll({ checked });\r\n\t}\r\n\tOnRowSelect(event: any) {\r\n\t\tif (!this.SelectedIdentifier && this.ShowCheckbox) return;\r\n\t\tconst selectedItem = event.data;\r\n\t\tconst exists = this.ListDataSelectedTemp.some(item => item[this.SelectedIdentifier as keyof T] === selectedItem[this.SelectedIdentifier as keyof T]);\r\n\t\tif (!exists) {\r\n\t\t\tthis.ListDataSelectedTemp.push(selectedItem);\r\n\t\t}\r\n\t\tthis.EmitSelectedItem.emit(this.ListDataSelectedTemp);\r\n\t}\r\n\tOnRowUnselect(event: any) {\r\n\t\tif (!this.SelectedIdentifier && this.ShowCheckbox) return;\r\n\t\tconst unselectedItem = event.data;\r\n\t\tthis.ListDataSelectedTemp = this.ListDataSelectedTemp.filter(item => item[this.SelectedIdentifier as keyof T] !== unselectedItem[this.SelectedIdentifier as keyof T]);\r\n\t\tthis.EmitSelectedItem.emit(this.ListDataSelectedTemp);\r\n\t}\r\n\tResetTable() {\r\n\t\tthis.CurrentPage = 1;\r\n\t\tthis.SearchInput = { ...(this.SearchInput ?? {}), searchText: \"\" };\r\n\t\tthis.ExecuteSearch();\r\n\t}\r\n\tEmitSearchValues() {\r\n\t\tthis.EmitListDataFilter.emit(this.ListDataFilter);\r\n\t\tthis.EmitSearchEvent.emit(this.SearchInput);\r\n\t\tthis.EmitSortEvent.emit([\r\n\t\t\t{\r\n\t\t\t\tsortOrder: this.SortOrder,\r\n\t\t\t\tsortField: this.SortField?.toString() ?? \"\",\r\n\t\t\t},\r\n\t\t]);\r\n\t}\r\n\tOnHeaderCheckboxChange(checked: boolean, field: string) {\r\n\t\tthis.ListDataFilter.forEach(r => ((r as any)[field] = checked));\r\n\r\n\t\tthis.HeaderState[field] = { checked, indeterminate: false };\r\n\t\tthis.UpdatePages();\r\n\t}\r\n\r\n\tprivate getFilteredSelectedCount(): number {\r\n\t\tif (!this.SelectedIdentifier || this.ListDataFilter.length === 0 || this.ListDataSelectedTemp.length === 0) return 0;\r\n\t\tconst selectedIds = new Set(this.ListDataSelectedTemp.map(item => item[this.SelectedIdentifier as keyof T]));\r\n\t\treturn this.ListDataFilter.filter(item => selectedIds.has(item[this.SelectedIdentifier as keyof T])).length;\r\n\t}\r\n\tget IsHeaderSelectionChecked(): boolean {\r\n\t\treturn this.ListDataFilter.length > 0 && this.getFilteredSelectedCount() === this.ListDataFilter.length;\r\n\t}\r\n\tget IsHeaderSelectionIndeterminate(): boolean {\r\n\t\tconst selectedCount = this.getFilteredSelectedCount();\r\n\t\treturn selectedCount > 0 && selectedCount < this.ListDataFilter.length;\r\n\t}\r\n\r\n\tFilterData(field: string) {\r\n\t\tlet c = this.ListData.filter(item => (item as Record<string, boolean>)[field]);\r\n\t}\r\n\tIsInderteminate(column: string) {\r\n\t\tconst rowsChek = this.ListData.filter(item => (item as Record<string, boolean>)[column]).length;\r\n\t\tconst element = [...document.querySelectorAll(\"[data-check]\")].find(x => x.getAttribute(\"data-check\") == column);\r\n\t\tif (element == undefined) return;\r\n\t\tif (rowsChek > 0 && rowsChek < this.ListData.length) {\r\n\t\t\telement.setAttribute(\"class\", \"prCheckbox--indeterminate\");\r\n\t\t} else {\r\n\t\t\telement.removeAttribute(\"class\");\r\n\t\t}\r\n\t}\r\n\tOnRowsPerPageChange(value: number) {\r\n\t\tthis.RowsPerPage = value;\r\n\t\tthis.CurrentPage = 1;\r\n\t\tthis.UpdatePages();\r\n\t}\r\n\tResetTableSelected() {\r\n\t\tthis.ListDataSelectedTemp = [];\r\n\t\tthis.ListDataSelectedFilter = [...this.ListDataSelectedTemp];\r\n\t}\r\n\tClearSearch() {\r\n\t\tthis.SearchInput.searchText = \"\";\r\n\t}\r\n\r\n\tget TotalPages(): number {\r\n\t\treturn Math.ceil(this.TotalRecords / this.RowsPerPage);\r\n\t}\r\n\tonChangeSelectPage(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.UpdatePages();\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.UpdatePages();\r\n\t}\r\n\tget RenderPanel(): boolean {\r\n\t\treturn Boolean(this.AdditionalTemplate) || this.ShowSearch || Boolean(this.AdditionalCentralTemplate) || Boolean(this.AdditionalExtendedTemplate);\r\n\t}\r\n}\r\n","<div class=\"prTable\">\r\n\t@if (RenderPanel) {\r\n\t\t<div class=\"grPanel\">\r\n\t\t\t<div class=\"prCard__row justify-content-end\">\r\n\t\t\t\t<div class=\"prCard__actionflex\">\r\n\t\t\t\t\t@if (AdditionalTemplate) {\r\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"AdditionalTemplate\"></ng-container>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t\t@if (ShowSearch) {\r\n\t\t\t\t\t<div class=\"ptSearch\">\r\n\t\t\t\t\t\t<p-iconfield>\r\n\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\tclass=\"prInputText\"\r\n\t\t\t\t\t\t\t\tpInputText\r\n\t\t\t\t\t\t\t\tplaceholder=\"{{ 'LBL_SEARCH_SELECT' | term: GlobalTermService.languageCode }}\"\r\n\t\t\t\t\t\t\t\t[(ngModel)]=\"SearchInput.searchText\"\r\n\t\t\t\t\t\t\t\t(keydown.enter)=\"ExecuteSearch()\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t<p-inputicon>\r\n\t\t\t\t\t\t\t\t<button class=\"ptSearch__icon ptSearch__icon--close\">\r\n\t\t\t\t\t\t\t\t\t<i class=\"icon icon-cancel\" *ngIf=\"SearchInput.searchText\" (click)=\"ClearSearch()\"></i>\r\n\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t<span class=\"ptSearch__icon ptSearch__icon--divider\" *ngIf=\"SearchInput.searchText\"></span>\r\n\t\t\t\t\t\t\t\t<button class=\"ptSearch__icon ptSearch__icon--search\">\r\n\t\t\t\t\t\t\t\t\t<i class=\"icon icon-search\"></i>\r\n\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t</p-inputicon>\r\n\t\t\t\t\t\t</p-iconfield>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t\t@if (AdditionalCentralTemplate) {\r\n\t\t\t\t\t<div class=\"prTableTools__new prTableTools__new--right\">\r\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"AdditionalCentralTemplate\"></ng-container>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\r\n\t\t\t@if (AdditionalExtendedTemplate) {\r\n\t\t\t\t<div class=\"prTableTools justify-content-start\">\r\n\t\t\t\t\t<ng-container *ngTemplateOutlet=\"AdditionalExtendedTemplate\"></ng-container>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t</div>\r\n\t}\r\n\t<p-table\r\n\t\tclass=\"prTable\"\r\n\t\t[ngClass]=\"ClassName\"\r\n\t\t[value]=\"ListDataTable\"\r\n\t\tresponsiveLayout=\"scroll\"\r\n\t\t[(selection)]=\"ListDataSelectedFilter\"\r\n\t\t(onRowSelect)=\"OnRowSelect($event)\"\r\n\t\t(onRowUnselect)=\"OnRowUnselect($event)\"\r\n\t\t[sortField]=\"DefaultSortField\"\r\n\t\t[scrollable]=\"scrollable\"\r\n\t\t[scrollHeight]=\"scrollable ? scrollHeight : 'auto'\"\r\n\t\t[tableStyle]=\"tableStyle\"\r\n\t\t[sortOrder]=\"DefaultSortOrder\"\r\n\t>\r\n\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t@for (level of Levels; track $index) {\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t@for (col of ColumnGroupList; track $index) {\r\n\t\t\t\t\t\t@if (col.level === level) {\r\n\t\t\t\t\t\t\t<th [attr.colspan]=\"col.colspan\" [attr.rowspan]=\"col.rowspan\" [pSortableColumn]=\"col.sortable ? col.field : ''\" [style.min-width]=\"col.minWidth\" (click)=\"col.sortable && OnSort(col.field)\">\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span tooltipStyleClass=\"prTooltip\" [pTooltip]=\"col.headerTooltip || col.header\" [tooltipPosition]=\"col.headerTooltipPosition || 'top'\">\r\n\t\t\t\t\t\t\t\t\t\t{{ col.header }}\r\n\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t<p-sortIcon *ngIf=\"col.sortable\" [field]=\"col.field\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</th>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t@if (ShowCheckbox && level === 0 && ColumnGroupList.length != 0) {\r\n\t\t\t\t\t\t<th class=\"text-center\" style=\"width: 4%\" [attr.rowspan]=\"MaxLevel === 1 ? 2 : MaxLevel\">\r\n\t\t\t\t\t\t\t<p-checkbox\r\n\t\t\t\t\t\t\t\tclass=\"prCheckbox\"\r\n\t\t\t\t\t\t\t\t[binary]=\"true\"\r\n\t\t\t\t\t\t\t\t(click)=\"$event.stopPropagation()\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"IsHeaderSelectionChecked\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"OnHeaderSelectionToggle($event)\"\r\n\t\t\t\t\t\t\t\t[disabled]=\"IsTableDisabled || ListDataFilter.length === 0\"\r\n\t\t\t\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\t\t\t\t'prCheckbox--indeterminate': IsHeaderSelectionIndeterminate,\r\n\t\t\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t\t></p-checkbox>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t}\r\n\t\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) {\r\n\t\t\t\t\t@if (col.showHeader) {\r\n\t\t\t\t\t\t<th\r\n\t\t\t\t\t\t\t[class]=\"col.className\"\r\n\t\t\t\t\t\t\t[pSortableColumn]=\"!col.isChecboxColumn && col.sortable ? col.field : ''\"\r\n\t\t\t\t\t\t\t[style.width]=\"col.width\"\r\n\t\t\t\t\t\t\t[style.min-width]=\"col.minWidth\"\r\n\t\t\t\t\t\t\t(click)=\"!col.isChecboxColumn && col.sortable && OnSort(col.field)\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<div class=\"prTable__header\">\r\n\t\t\t\t\t\t\t\t<span tooltipStyleClass=\"prTooltip\" [pTooltip]=\"col.headerTooltip || col.header\" [tooltipPosition]=\"col.headerTooltipPosition || 'top'\">\r\n\t\t\t\t\t\t\t\t\t{{ col.header }}\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t@if (!col.showIndex) {\r\n\t\t\t\t\t\t\t\t\t@if (col.isChecboxColumn) {\r\n\t\t\t\t\t\t\t\t\t\t<br />\r\n\t\t\t\t\t\t\t\t\t\t<p-checkbox\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"prCheckbox\"\r\n\t\t\t\t\t\t\t\t\t\t\t[binary]=\"true\"\r\n\t\t\t\t\t\t\t\t\t\t\t(click)=\"$event.stopPropagation()\"\r\n\t\t\t\t\t\t\t\t\t\t\t[(ngModel)]=\"HeaderState[col.field].checked\"\r\n\t\t\t\t\t\t\t\t\t\t\t(ngModelChange)=\"OnHeaderCheckboxChange($event, col.field)\"\r\n\t\t\t\t\t\t\t\t\t\t\t[attr.data-check]=\"col.field\"\r\n\t\t\t\t\t\t\t\t\t\t\t[disabled]=\"IsTableDisabled\"\r\n\t\t\t\t\t\t\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\t\t\t\t\t\t\t'prCheckbox--indeterminate': HeaderState[col.field].indeterminate,\r\n\t\t\t\t\t\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t\t\t\t\t></p-checkbox>\r\n\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t<p-sortIcon *ngIf=\"col.sortable\" [field]=\"col.field\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t@if (ShowCheckbox && ColumnGroupList.length == 0) {\r\n\t\t\t\t\t<th class=\"text-center\" style=\"width: 4%\">\r\n\t\t\t\t\t\t<p-checkbox\r\n\t\t\t\t\t\t\tclass=\"prCheckbox\"\r\n\t\t\t\t\t\t\t[binary]=\"true\"\r\n\t\t\t\t\t\t\t(click)=\"$event.stopPropagation()\"\r\n\t\t\t\t\t\t\t[ngModel]=\"IsHeaderSelectionChecked\"\r\n\t\t\t\t\t\t\t(ngModelChange)=\"OnHeaderSelectionToggle($event)\"\r\n\t\t\t\t\t\t\t[disabled]=\"IsTableDisabled || ListDataFilter.length === 0\"\r\n\t\t\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\t\t\t'prCheckbox--indeterminate': IsHeaderSelectionIndeterminate,\r\n\t\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t></p-checkbox>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t\t@if (ListDataFilter.length > 0) {\r\n\t\t\t\t<tr class=\"fixedRow\">\r\n\t\t\t\t\t@for (col of RowResumenList; track $index) {\r\n\t\t\t\t\t\t<td [ngClass]=\"col.className\" [attr.colspan]=\"col.colspan\" [attr.rowspan]=\"col.rowspan\">\r\n\t\t\t\t\t\t\t@if (col.templateRef) {\r\n\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"col.templateRef\"></ng-container>\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t<ng-template #defaultContent></ng-template>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t}\r\n\t\t\t\t</tr>\r\n\t\t\t}\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 $index) {\r\n\t\t\t\t\t<td [ngClass]=\"col.className\">\r\n\t\t\t\t\t\t@if (col.showIndex) {\r\n\t\t\t\t\t\t\t{{ rowIndex + 1 + (CurrentPage - 1) * RowsPerPage }}\r\n\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t@if (col.templateRef) {\r\n\t\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"col.templateRef; context: { $implicit: rowData }\"></ng-container>\r\n\t\t\t\t\t\t\t} @else if (col.isChecboxColumn) {\r\n\t\t\t\t\t\t\t\t<p-checkbox [binary]=\"true\" [(ngModel)]=\"rowData[col.field]\" (onChange)=\"onBodyCheckboxChange(col.field)\" [disabled]=\"IsTableDisabled\"></p-checkbox>\r\n\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t<span class=\"text-breakWord\" tooltipStyleClass=\"prTooltip\" [pTooltip]=\"col.tooltip\" [tooltipPosition]=\"col.tooltipPosition || 'top'\">\r\n\t\t\t\t\t\t\t\t\t{{ rowData[col.field] | formatCell: col.formatType }}\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t\t@if (ShowCheckbox) {\r\n\t\t\t\t\t<td class=\"text-center\">\r\n\t\t\t\t\t\t<p-tableCheckbox [value]=\"rowData\" class=\"prCheckbox\" />\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\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 + (ShowCheckbox ? 1 : 0)\" 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\t<div class=\"d-flex justify-content-end\">\r\n\t\t@if (TotalRecords !== 0 && ShowPagination) {\r\n\t\t\t<div class=\"ptTablePaginator\">\r\n\t\t\t\t<p-paginator\r\n\t\t\t\t\tclass=\"prPaginator\"\r\n\t\t\t\t\t[first]=\"(CurrentPage - 1) * RowsPerPage\"\r\n\t\t\t\t\t[rows]=\"RowsPerPage\"\r\n\t\t\t\t\t[totalRecords]=\"TotalRecords\"\r\n\t\t\t\t\t(onPageChange)=\"OnPageChange($event)\"\r\n\t\t\t\t\t[showJumpToPageInput]=\"false\"\r\n\t\t\t\t\t[showCurrentPageReport]=\"false\"\r\n\t\t\t\t\t[showPageLinks]=\"false\"\r\n\t\t\t\t\t[showFirstLastIcon]=\"false\"\r\n\t\t\t\t\t[templateLeft]=\"templateLeft\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<ng-template #previouspagelinkicon>\r\n\t\t\t\t\t\t<i class=\"icon icon-arrow-left\"></i>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<ng-template #nextpagelinkicon>\r\n\t\t\t\t\t\t<i class=\"icon icon-arrow-right\"></i>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<ng-template pTemplate=\"templateLeft\" let-state #templateLeft>\r\n\t\t\t\t\t\t<span>{{ \"ROWS_PER_PAGE\" | term: GlobalTermService.languageCode }}</span>\r\n\t\t\t\t\t\t<p-select class=\"prSelect\" [options]=\"AllowedPageSizes\" [ngModel]=\"RowsPerPage\" appendTo=\"body\" (onChange)=\"OnRowsPerPageChange($event.value)\" />\r\n\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t{{ \"Page\" | term: GlobalTermService.languageCode }}\r\n\t\t\t\t\t\t\t<p-inputnumber class=\"p-paginator-jtp-input\" inputId=\"integeronly\" [(ngModel)]=\"CurrentPage\" [allowEmpty]=\"false\" [min]=\"1\" (keyup.enter)=\"onChangeSelectPage($event)\" />\r\n\t\t\t\t\t\t\t{{ \"Of\" | term: GlobalTermService.languageCode }} {{ TotalPages }}\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-paginator>\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n</div>\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 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 @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() width?: string;\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\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\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\r\n ngOnChanges(): void {\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\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 this.MaxLevel = Math.max(...this.ColumnGroupList.map((c) => c.level)) + 1;\r\n this.Levels = Array.from({ length: this.MaxLevel }, (_, i) => i);\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 this.ListDataFilter = [...this.ListData];\r\n this.SortPages();\r\n }\r\n\r\n OnHeaderCheckboxChange(event: any, field: string) {\r\n const checked: boolean = event.checked;\r\n if (!this.SelectedIdentifier) return;\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.ListData.forEach((item) => {\r\n const id = item[this.SelectedIdentifier as keyof T];\r\n const exists = idsSelected.has(id);\r\n if (exists) {\r\n (item as Record<string, boolean>)[field] = checked;\r\n }\r\n });\r\n this.IsInderteminate(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 element.removeAttribute(\"class\");\r\n }\r\n\r\n getLetter(index: number): string {\r\n if (index < 0 || index > 25) return \"\";\r\n return String.fromCharCode(97 + index);\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.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\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\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\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 }\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]=\"dataKey\"\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=\"{{ col.header }}\">{{ col.header }}</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=\"{{ col.headerTooltip }}\"\r\n tooltipPosition=\"{{ col.headerTooltipPosition }}\"\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 [binary]=\"true\"\r\n (click)=\"$event.stopPropagation()\"\r\n (onChange)=\"OnHeaderCheckboxChange($event, col.field)\"\r\n [attr.data-check]=\"col.field\"\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 === 'name' && rowData.children &&\r\n rowData.children.length > 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)=\"IsInderteminate(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 <td\r\n *ngFor=\"let col of ColumnList; let j = index\"\r\n [ngClass]=\"col.className\"\r\n >\r\n <span\r\n class=\"text-breakWord\"\r\n pTooltip=\"{{ col.tooltip }}\"\r\n tooltipPosition=\"{{ col.tooltipPosition }}\"\r\n >\r\n <ng-container *ngIf=\"col.showIndex && j === 0; else normalCell\">\r\n {{ rowIndex + 1 + \".\" + getLetter(i) }}\r\n </ng-container>\r\n <ng-template #normalCell>\r\n @if (col.field === \"id\" && i < 26) {\r\n <span>{{ childRow[col.field] + \".\" + getLetter(i) }}</span>\r\n } @else {\r\n <ng-container *ngIf=\"col.templateRef; else defaultExpandedContent\">\r\n <ng-container *ngTemplateOutlet=\"col.templateRef; context: { $implicit: childRow }\"></ng-container>\r\n </ng-container>\r\n <ng-template #defaultExpandedContent>\r\n <span [class]=\"col.field === 'name' ? 'prTable__expandIdentText' : ''\">\r\n {{ childRow[col.field] | formatCell : col.formatType }}\r\n </span>\r\n </ng-template> \r\n }\r\n </ng-template>\r\n </span>\r\n </td>\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){\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]=\"ListDataFilter.length\"\r\n [ItemsPerPage]=\"RowsPerPage\"\r\n (PageChange)=\"OnPageChange($event)\"\r\n >\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 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 || col.header\" [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 || col.header\" [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\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","export class OrderConstants {\r\n\t//DESCRIPTION\r\n\tpublic static ORDER_BY_DESC = \"desc\";\r\n\tpublic static ORDER_BY_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","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","/**\r\n * Constants for DatePicker custom button types\r\n * Use these constants instead of string literals to maintain consistency\r\n * and facilitate future changes\r\n */\r\n\r\nexport const DATEPICKER_BUTTON_TYPES = {\r\n\tTODAY: 'TODAY',\r\n\tLAST_12_MONTHS: 'LAST_12_MONTHS',\r\n\tCURRENT_YEAR: 'CURRENT_YEAR',\r\n\tCURRENT_MONTH: 'CURRENT_MONTH',\r\n} as const;\r\n\r\n/**\r\n * Type derived from the constants object\r\n * This ensures type safety while using the constants\r\n */\r\nexport type CustomButtonType =\r\n\t(typeof DATEPICKER_BUTTON_TYPES)[keyof typeof DATEPICKER_BUTTON_TYPES];\r\n","import { AfterViewChecked, ChangeDetectorRef, Component, EventEmitter, forwardRef, Input, Output, ViewChild } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { DatePicker } from \"primeng/datepicker\";\r\nimport { SelectModule } from \"primeng/select\";\r\nimport { ButtonModule } from \"primeng/button\";\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\r\nimport { CustomButtonType, DATEPICKER_BUTTON_TYPES } from \"./datepicker-button-types.constants\";\r\n\r\n@Component({\r\n\tselector: \"intelica-datepicker\",\r\n\timports: [CommonModule, FormsModule, DatePicker, SelectModule, ButtonModule],\r\n\ttemplateUrl: \"./datepicker.component.html\",\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => DatepickerComponent),\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t],\r\n})\r\nexport class DatepickerComponent implements ControlValueAccessor, AfterViewChecked {\r\n\t// Expose constants to template\r\n\treadonly DATEPICKER_BUTTON_TYPES = DATEPICKER_BUTTON_TYPES;\r\n\r\n\t/**\r\n\t * @description Readonly input\r\n\t * @default\tfalse\r\n\t * @type {boolean}\r\n\t */\r\n\t@Input() readonlyInput: boolean = false;\r\n\r\n\t/**\r\n\t * @description Show icon\r\n\t * @default\tfalse\r\n\t * @type {boolean}\r\n\t */\r\n\t@Input() showIcon: boolean = false;\r\n\r\n\t/**\r\n\t * @description Number of months to display\r\n\t * @default\t2\r\n\t * @type {number}\r\n\t */\r\n\t@Input() numberOfMonths: number = 2;\r\n\r\n\t/**\r\n\t * @description Panel style class\r\n\t * @default\t\"prDatapicker prDatapicker--dropdown\"\r\n\t * @type {string}\r\n\t */\r\n\t@Input() panelStyleClass: string = \"prDatapicker prDatapicker--dropdown\";\r\n\r\n\t/**\r\n\t * @description Manual apply mode - requires Apply button click to confirm selection\r\n\t * @default\tfalse\r\n\t * @type {boolean}\r\n\t */\r\n\t@Input() manualApply: boolean = false;\r\n\r\n\t/**\r\n\t * @description Custom buttons to show in footer\r\n\t * @default\t[]\r\n\t * @type {CustomButtonType[]}\r\n\t */\r\n\t@Input() customButtons: CustomButtonType[] = [];\r\n\r\n\t/**\r\n\t * @description Date format for display in input\r\n\t * @default\t\"dd M, yy\" (e.g., \"08 Jan, 2026\")\r\n\t * @type {string}\r\n\t */\r\n\t@Input() dateFormat?: string;\r\n\r\n\t/**\r\n\t * @description View mode for the datepicker\r\n\t * @default\t\"date\"\r\n\t * @type {\"date\" | \"month\" | \"year\"}\r\n\t */\r\n\t@Input() view: \"date\" | \"month\" | \"year\" = \"date\";\r\n\r\n\t/**\r\n\t * @description Selection mode for the datepicker\r\n\t * @default\t\"range\"\r\n\t * @type {\"single\" | \"range\"}\r\n\t */\r\n\t@Input() selectionMode: \"single\" | \"range\" = \"range\";\r\n\r\n\t/**\r\n\t * @description Change event\r\n\t * @emits {(Date | null)[] | null}\r\n\t * @type {EventEmitter<(Date | null)[] | null>}\r\n\t */\r\n\t@Output(\"onChange\") onChangeEvent: EventEmitter<(Date | null)[] | null> =\r\n\t\tnew EventEmitter();\r\n\r\n\trangeDates: (Date | null)[] | null = null;\r\n\r\n\t// Temporary selection for manual apply mode\r\n\ttempSelection: (Date | null)[] | null = null;\r\n\r\n\tviewMonth!: number;\r\n\tviewYear!: number;\r\n\r\n\tcurrentYear = new Date().getFullYear();\r\n\tcurrentMonth = new Date().getMonth();\r\n\r\n\tdefaultDate!: Date;\r\n\r\n\tprivate navigatingWithArrows = false;\r\n\r\n\t// ViewChild to access datepicker instance\r\n\t@ViewChild('datepicker') datepickerRef: any;\r\n\r\n\t// Flag to control when closing is allowed\r\n\tprivate allowClose: boolean = true;\r\n\r\n\t// Flag to prevent auto-close immediately after date selection\r\n\tprivate preventAutoClose: boolean = false;\r\n\r\n\t// Track active button\r\n\tactiveButton: CustomButtonType | null = null;\r\n\r\n\tmonths = [\r\n\t\t{ label: \"Enero\", value: 0 },\r\n\t\t{ label: \"Febrero\", value: 1 },\r\n\t\t{ label: \"Marzo\", value: 2 },\r\n\t\t{ label: \"Abril\", value: 3 },\r\n\t\t{ label: \"Mayo\", value: 4 },\r\n\t\t{ label: \"Junio\", value: 5 },\r\n\t\t{ label: \"Julio\", value: 6 },\r\n\t\t{ label: \"Agosto\", value: 7 },\r\n\t\t{ label: \"Septiembre\", value: 8 },\r\n\t\t{ label: \"Octubre\", value: 9 },\r\n\t\t{ label: \"Noviembre\", value: 10 },\r\n\t\t{ label: \"Diciembre\", value: 11 },\r\n\t];\r\n\r\n\tyears: number[] = [];\r\n\r\n\tonChangeFn: any = () => {};\r\n\tonTouchedFn: any = () => {};\r\n\r\n\tconstructor(private cdr: ChangeDetectorRef) {\r\n\t\tconst today = new Date();\r\n\r\n\t\tthis.viewMonth = today.getMonth();\r\n\t\tthis.viewYear = today.getFullYear();\r\n\r\n\t\tthis.defaultDate = new Date(this.viewYear, this.viewMonth, 1);\r\n\r\n\t\tconst YEARS_BACK = 10;\r\n\r\n\t\tthis.years = [];\r\n\t\tfor (let y = this.viewYear - YEARS_BACK; y <= this.viewYear; y++) {\r\n\t\t\tthis.years.push(y);\r\n\t\t}\r\n\t}\r\n\r\n\tget filteredMonths() {\r\n\t\tif (this.navigatingWithArrows) {\r\n\t\t\treturn this.months;\r\n\t\t}\r\n\r\n\t\tif (this.viewYear === this.currentYear) {\r\n\t\t\treturn this.months.filter(m => m.value >= this.currentMonth);\r\n\t\t}\r\n\r\n\t\treturn this.months;\r\n\t}\r\n\r\n\tgetDateFormat(): string {\r\n\t\tif (this.dateFormat) {\r\n\t\t\treturn this.dateFormat;\r\n\t\t}\r\n\r\n\t\tswitch (this.view) {\r\n\t\t\tcase 'month':\r\n\t\t\t\treturn 'M, yy';\r\n\t\t\tcase 'year':\r\n\t\t\t\treturn 'yy';\r\n\t\t\tdefault:\r\n\t\t\t\treturn 'dd M, yy';\r\n\t\t}\r\n\t}\r\n\r\n\tprivate normalizeMonthYear(month: number, year: number) {\r\n\t\tif (month > 11) {\r\n\t\t\treturn { month: 0, year: year + 1 };\r\n\t\t}\r\n\r\n\t\tif (month < 0) {\r\n\t\t\treturn { month: 11, year: year - 1 };\r\n\t\t}\r\n\r\n\t\treturn { month, year };\r\n\t}\r\n\r\n\tonMonthChange(event: any) {\r\n\t\tthis.navigatingWithArrows = true;\r\n\t\tconst normalized = this.normalizeMonthYear(event.month, event.year);\r\n\t\tthis.viewMonth = normalized.month;\r\n\t\tthis.viewYear = normalized.year;\r\n\t}\r\n\r\n\tonYearChange(event: any) {\r\n\t\tthis.navigatingWithArrows = true;\r\n\t\tconst normalized = this.normalizeMonthYear(event.month, event.year);\r\n\t\tthis.viewMonth = normalized.month;\r\n\t\tthis.viewYear = normalized.year;\r\n\t}\r\n\r\n\tonViewChange() {\r\n\t\tthis.navigatingWithArrows = false;\r\n\t\tif (this.viewYear === this.currentYear && this.viewMonth < this.currentMonth) {\r\n\t\t\tthis.viewMonth = this.currentMonth;\r\n\t\t}\r\n\t\tthis.defaultDate = new Date(this.viewYear, this.viewMonth, 1);\r\n\t}\r\n\r\n\t// Internal model for the datepicker (handles manual apply mode)\r\n\tget internalModel(): (Date | null)[] | null {\r\n\t\t// In manual apply mode, show temp selection for the calendar\r\n\t\t// In normal mode, show the actual value\r\n\t\treturn this.manualApply ? this.tempSelection : this.rangeDates;\r\n\t}\r\n\r\n\t// Handle model changes from datepicker\r\n\tonModelChange(val: (Date | null)[] | null): void {\r\n\t\t// Reset active button when user manually selects dates\r\n\t\tthis.activeButton = null;\r\n\r\n\t\tif (this.manualApply) {\r\n\t\t\t// In manual apply mode, only store in temp selection\r\n\t\t\tthis.tempSelection = val;\r\n\r\n\t\t\t// Prevent auto-close immediately after date selection\r\n\t\t\tthis.preventAutoClose = true;\r\n\r\n\t\t\t// After a brief moment, allow closing by clicking outside\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis.preventAutoClose = false;\r\n\t\t\t}, 200);\r\n\t\t} else {\r\n\t\t\t// In normal mode, update the actual value immediately\r\n\t\t\tthis.rangeDates = val;\r\n\t\t\tthis.onChangeEvent.emit(this.rangeDates);\r\n\t\t\tthis.onChangeFn(this.rangeDates);\r\n\t\t\tthis.onTouchedFn();\r\n\t\t}\r\n\t}\r\n\r\n\twriteValue(value: (Date | null)[] | null): void {\r\n\t\tthis.rangeDates = value;\r\n\t\tif (this.manualApply) {\r\n\t\t\tthis.tempSelection = value;\r\n\t\t}\r\n\t}\r\n\r\n\tregisterOnChange(fn: any): void {\r\n\t\tthis.onChangeFn = fn;\r\n\t}\r\n\r\n\tregisterOnTouched(fn: any): void {\r\n\t\tthis.onTouchedFn = fn;\r\n\t}\r\n\r\n\tsetDisabledState?(isDisabled: boolean): void {\r\n\t\t/* opcional: implementar si necesitas deshabilitar el componente desde ngModel */\r\n\t}\r\n\r\n\tonDateChange() {\r\n\t\tthis.onChangeEvent.emit(this.rangeDates);\r\n\t\tthis.onChangeFn(this.rangeDates);\r\n\t\tthis.onTouchedFn();\r\n\t}\r\n\r\n\t// Event handlers for open/close\r\n\thandleOpen(): void {\r\n\t\tif (this.manualApply) {\r\n\t\t\t// Initialize temp selection with current value\r\n\t\t\tthis.tempSelection = this.rangeDates;\r\n\t\t\t// Reset flags\r\n\t\t\tthis.allowClose = false;\r\n\t\t\tthis.preventAutoClose = false;\r\n\r\n\t\t\t// Ensure hideOverlay is overridden every time the overlay opens\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis.setupHideOverlayOverride();\r\n\t\t\t}, 0);\r\n\t\t}\r\n\t}\r\n\r\n\thandleClose(): void {\r\n\t\tif (this.manualApply) {\r\n\t\t\t// Reset temp selection to current value (discards changes if not applied)\r\n\t\t\tthis.tempSelection = this.rangeDates;\r\n\t\t\t// Reset flags\r\n\t\t\tthis.allowClose = false;\r\n\t\t\tthis.preventAutoClose = false;\r\n\r\n\t\t\t// Force the datepicker to refresh its internal model to show the original value\r\n\t\t\t// Use setTimeout to ensure the change happens after the close animation\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tif (this.datepickerRef) {\r\n\t\t\t\t\t// Update the datepicker's internal value\r\n\t\t\t\t\tthis.datepickerRef.value = this.rangeDates;\r\n\t\t\t\t\t// Trigger change detection\r\n\t\t\t\t\tthis.cdr.detectChanges();\r\n\t\t\t\t}\r\n\t\t\t}, 0);\r\n\t\t}\r\n\t}\r\n\r\n\t// Apply button callback\r\n\tapplyCallback(event: any): void {\r\n\t\t// Apply the temporary selection to the actual value\r\n\t\tthis.rangeDates = this.tempSelection;\r\n\t\tthis.onChangeEvent.emit(this.rangeDates);\r\n\t\tthis.onChangeFn(this.rangeDates);\r\n\t\tthis.onTouchedFn();\r\n\r\n\t\t// Allow closing\r\n\t\tthis.allowClose = true;\r\n\t\tthis.preventAutoClose = false;\r\n\r\n\t\t// Close the datepicker overlay\r\n\t\tif (this.datepickerRef) {\r\n\t\t\tthis.datepickerRef.overlayVisible = false;\r\n\t\t}\r\n\t}\r\n\r\n\t// Clear button callback\r\n\tclearCallback(event: any): void {\r\n\t\t// Reset active button\r\n\t\tthis.activeButton = null;\r\n\r\n\t\tif (this.manualApply) {\r\n\t\t\t// In manual apply mode, clear both temp selection and actual value\r\n\t\t\tthis.tempSelection = null;\r\n\t\t\tthis.rangeDates = null;\r\n\t\t\tthis.onChangeEvent.emit(this.rangeDates);\r\n\t\t\tthis.onChangeFn(this.rangeDates);\r\n\t\t\tthis.onTouchedFn();\r\n\t\t\t// Allow closing\r\n\t\t\tthis.allowClose = true;\r\n\t\t\tthis.preventAutoClose = false;\r\n\t\t} else {\r\n\t\t\tthis.rangeDates = null;\r\n\t\t\tthis.onChangeEvent.emit(this.rangeDates);\r\n\t\t\tthis.onChangeFn(this.rangeDates);\r\n\t\t\tthis.onTouchedFn();\r\n\t\t}\r\n\r\n\t\t// Close the datepicker overlay\r\n\t\tif (this.datepickerRef) {\r\n\t\t\tthis.datepickerRef.overlayVisible = false;\r\n\t\t}\r\n\t}\r\n\r\n\t// Custom button callbacks\r\n\ttodayCallback(event: any): void {\r\n\t\tconst today = new Date();\r\n\t\tconst dateRange: (Date | null)[] = [today, today];\r\n\r\n\t\tthis.activeButton = DATEPICKER_BUTTON_TYPES.TODAY;\r\n\r\n\t\tif (this.manualApply) {\r\n\t\t\tthis.tempSelection = dateRange;\r\n\t\t} else {\r\n\t\t\tthis.rangeDates = dateRange;\r\n\t\t\tthis.onChangeEvent.emit(this.rangeDates);\r\n\t\t\tthis.onChangeFn(this.rangeDates);\r\n\t\t\tthis.onTouchedFn();\r\n\t\t}\r\n\t}\r\n\r\n\tlast12MonthsCallback(event: any): void {\r\n\t\tconst endDate = new Date();\r\n\t\tconst startDate = new Date();\r\n\t\tstartDate.setMonth(startDate.getMonth() - 12);\r\n\t\tconst dateRange: (Date | null)[] = [startDate, endDate];\r\n\r\n\t\tthis.activeButton = DATEPICKER_BUTTON_TYPES.LAST_12_MONTHS;\r\n\r\n\t\tif (this.manualApply) {\r\n\t\t\tthis.tempSelection = dateRange;\r\n\t\t} else {\r\n\t\t\tthis.rangeDates = dateRange;\r\n\t\t\tthis.onChangeEvent.emit(this.rangeDates);\r\n\t\t\tthis.onChangeFn(this.rangeDates);\r\n\t\t\tthis.onTouchedFn();\r\n\t\t}\r\n\t}\r\n\r\n\tcurrentYearCallback(event: any): void {\r\n\t\tconst today = new Date();\r\n\t\tconst startDate = new Date(today.getFullYear(), 0, 1); // January 1st\r\n\t\tconst endDate = new Date(today.getFullYear(), 11, 31); // December 31st\r\n\t\tconst dateRange: (Date | null)[] = [startDate, endDate];\r\n\r\n\t\tthis.activeButton = DATEPICKER_BUTTON_TYPES.CURRENT_YEAR;\r\n\r\n\t\tif (this.manualApply) {\r\n\t\t\tthis.tempSelection = dateRange;\r\n\t\t} else {\r\n\t\t\tthis.rangeDates = dateRange;\r\n\t\t\tthis.onChangeEvent.emit(this.rangeDates);\r\n\t\t\tthis.onChangeFn(this.rangeDates);\r\n\t\t\tthis.onTouchedFn();\r\n\t\t}\r\n\t}\r\n\r\n\tcurrentMonthCallback(event: any): void {\r\n\t\tconst today = new Date();\r\n\t\tconst startDate = new Date(today.getFullYear(), today.getMonth(), 1); // First day of month\r\n\t\tconst lastDay = new Date(today.getFullYear(), today.getMonth() + 1, 0).getDate();\r\n\t\tconst endDate = new Date(today.getFullYear(), today.getMonth(), lastDay); // Last day of month\r\n\t\tconst dateRange: (Date | null)[] = [startDate, endDate];\r\n\r\n\t\tthis.activeButton = DATEPICKER_BUTTON_TYPES.CURRENT_MONTH;\r\n\r\n\t\tif (this.manualApply) {\r\n\t\t\tthis.tempSelection = dateRange;\r\n\t\t} else {\r\n\t\t\tthis.rangeDates = dateRange;\r\n\t\t\tthis.onChangeEvent.emit(this.rangeDates);\r\n\t\t\tthis.onChangeFn(this.rangeDates);\r\n\t\t\tthis.onTouchedFn();\r\n\t\t}\r\n\t}\r\n\r\n\t// Helper method to check if a button should be shown\r\n\tshouldShowButton(buttonType: CustomButtonType): boolean {\r\n\t\treturn this.customButtons.includes(buttonType);\r\n\t}\r\n\r\n\t// Helper method to get button class\r\n\tgetButtonClass(buttonType: CustomButtonType): string {\r\n\t\treturn this.activeButton === buttonType ? 'btnActive' : 'btnSecond';\r\n\t}\r\n\r\n\tngAfterViewChecked(): void {\r\n\t\t// Sync viewYear with PrimeNG's internal year when in month view\r\n\t\tif (this.view === 'month' && this.datepickerRef && this.datepickerRef.currentYear !== undefined) {\r\n\t\t\tif (this.viewYear !== this.datepickerRef.currentYear) {\r\n\t\t\t\t// Use setTimeout to avoid ExpressionChangedAfterItHasBeenCheckedError\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.viewYear = this.datepickerRef.currentYear;\r\n\t\t\t\t}, 0);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate setupHideOverlayOverride(): void {\r\n\t\tif (!this.datepickerRef) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Check if hideOverlay method exists\r\n\t\tif (!this.datepickerRef.hideOverlay) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Save the original method only once\r\n\t\tif (!this.datepickerRef._hideOverlayOriginal) {\r\n\t\t\tthis.datepickerRef._hideOverlayOriginal = this.datepickerRef.hideOverlay.bind(this.datepickerRef);\r\n\t\t}\r\n\r\n\t\t// Override the hideOverlay method\r\n\t\tthis.datepickerRef.hideOverlay = () => {\r\n\t\t\t// In manual apply mode, prevent auto-close only immediately after date selection\r\n\t\t\tif (this.manualApply && this.preventAutoClose) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// In manual apply mode, if closing without Apply button (clicking outside)\r\n\t\t\t// Reset temp selection to original value BEFORE closing\r\n\t\t\tif (this.manualApply && !this.allowClose) {\r\n\t\t\t\t// Reset temp selection to discard changes\r\n\t\t\t\tthis.tempSelection = this.rangeDates;\r\n\t\t\t\t// Update datepicker's internal value\r\n\t\t\t\tthis.datepickerRef.value = this.rangeDates;\r\n\t\t\t}\r\n\r\n\t\t\t// Allow closing\r\n\t\t\tthis.datepickerRef._hideOverlayOriginal();\r\n\t\t};\r\n\t}\r\n}\r\n","<p-datepicker\r\n\t#datepicker\r\n\t[class]=\"panelStyleClass\"\r\n\t[ngModel]=\"internalModel\"\r\n\t(ngModelChange)=\"onModelChange($event)\"\r\n\t[selectionMode]=\"selectionMode\"\r\n\t[numberOfMonths]=\"numberOfMonths\"\r\n\t[readonlyInput]=\"readonlyInput\"\r\n\t[showIcon]=\"showIcon\"\r\n\t[view]=\"view\"\r\n\t[dateFormat]=\"getDateFormat()\"\r\n\t[defaultDate]=\"defaultDate\"\r\n\t(onMonthChange)=\"onMonthChange($event)\"\r\n\t(onYearChange)=\"onYearChange($event)\"\r\n\t(onShow)=\"handleOpen()\"\r\n\t(onHide)=\"handleClose()\"\r\n\t>\r\n\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"prDatapicker__header\">\r\n\t\t\t<div class=\"prDatapicker__content\">\r\n\r\n\t\t\t\t<!-- MES -->\r\n\t\t\t\t<p-select\r\n\t\t\t\t\t*ngIf=\"view === 'date'\"\r\n\t\t\t\t\tclass=\"prSelect\"\r\n\t\t\t\t\t[options]=\"filteredMonths\"\r\n\t\t\t\t\toptionLabel=\"label\"\r\n\t\t\t\t\toptionValue=\"value\"\r\n\t\t\t\t\t[(ngModel)]=\"viewMonth\"\r\n\t\t\t\t\t(ngModelChange)=\"onViewChange()\"\r\n\t\t\t\t\tdropdownIcon=\"icon icon-arrow-down\">\r\n\t\t\t\t</p-select>\r\n\r\n\t\t\t\t<!-- AÑO -->\r\n\t\t\t\t<p-select\r\n\t\t\t\t\t*ngIf=\"view === 'date' || view === 'month'\"\r\n\t\t\t\t\tclass=\"prSelect\"\r\n\t\t\t\t\t[options]=\"years\"\r\n\t\t\t\t\t[(ngModel)]=\"viewYear\"\r\n\t\t\t\t\t(ngModelChange)=\"onViewChange()\"\r\n\t\t\t\t\tdropdownIcon=\"icon icon-arrow-down\"\r\n\t\t\t\t\t[virtualScroll]=\"true\"\r\n\t\t\t\t\t[virtualScrollItemSize]=\"38\">\r\n\t\t\t\t</p-select>\r\n\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-template>\r\n\t<ng-template pTemplate=\"footer\" *ngIf=\"selectionMode === 'range'\">\r\n\t\t<div class=\"footerDatapicker footerDatapicker--range\">\r\n\t\t\t<div class=\"footerDatapicker__box\">\r\n\t\t\t\t<!-- TODAY button -->\r\n\t\t\t\t<p-button\r\n\t\t\t\t\t*ngIf=\"shouldShowButton(DATEPICKER_BUTTON_TYPES.TODAY)\"\r\n\t\t\t\t\t[class]=\"getButtonClass(DATEPICKER_BUTTON_TYPES.TODAY)\"\r\n\t\t\t\t\tlabel=\"Today\"\r\n\t\t\t\t\t(click)=\"todayCallback($event)\">\r\n\t\t\t\t</p-button>\r\n\t\t\t\t<!-- LAST 12 MONTHS button -->\r\n\t\t\t\t<p-button\r\n\t\t\t\t\t*ngIf=\"shouldShowButton(DATEPICKER_BUTTON_TYPES.LAST_12_MONTHS)\"\r\n\t\t\t\t\t[class]=\"getButtonClass(DATEPICKER_BUTTON_TYPES.LAST_12_MONTHS)\"\r\n\t\t\t\t\tlabel=\"Last 12 months\"\r\n\t\t\t\t\t(click)=\"last12MonthsCallback($event)\">\r\n\t\t\t\t</p-button>\r\n\t\t\t\t<!-- CURRENT YEAR button -->\r\n\t\t\t\t<p-button\r\n\t\t\t\t\t*ngIf=\"shouldShowButton(DATEPICKER_BUTTON_TYPES.CURRENT_YEAR)\"\r\n\t\t\t\t\t[class]=\"getButtonClass(DATEPICKER_BUTTON_TYPES.CURRENT_YEAR)\"\r\n\t\t\t\t\tlabel=\"Current year\"\r\n\t\t\t\t\t(click)=\"currentYearCallback($event)\">\r\n\t\t\t\t</p-button>\r\n\t\t\t\t<!-- CURRENT MONTH button -->\r\n\t\t\t\t<p-button\r\n\t\t\t\t\t*ngIf=\"shouldShowButton(DATEPICKER_BUTTON_TYPES.CURRENT_MONTH)\"\r\n\t\t\t\t\t[class]=\"getButtonClass(DATEPICKER_BUTTON_TYPES.CURRENT_MONTH)\"\r\n\t\t\t\t\tlabel=\"Current month\"\r\n\t\t\t\t\t(click)=\"currentMonthCallback($event)\">\r\n\t\t\t\t</p-button>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"footerDatapicker__box\">\r\n\t\t\t\t<!-- Apply button - shown only in manual apply mode -->\r\n\t\t\t\t<p-button\r\n\t\t\t\t\t*ngIf=\"manualApply\"\r\n\t\t\t\t\tclass=\"btnPrimary\"\r\n\t\t\t\t\tlabel=\"Apply\"\r\n\t\t\t\t\t(click)=\"applyCallback($event)\">\r\n\t\t\t\t</p-button>\r\n\t\t\t\t<!-- Clear button - always shown -->\r\n\t\t\t\t<p-button\r\n\t\t\t\t\tclass=\"btnSecond\"\r\n\t\t\t\t\tlabel=\"Clear\"\r\n\t\t\t\t\t(click)=\"clearCallback($event)\">\r\n\t\t\t\t</p-button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n</p-datepicker>\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 { AfterContentInit, ChangeDetectorRef, Component, ContentChild, ContentChildren, EventEmitter, inject, Input, OnChanges, Output, QueryList, SimpleChanges, TemplateRef } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { BadgeModule } from \"primeng/badge\";\r\nimport { CheckboxModule } from \"primeng/checkbox\";\r\nimport { IconField } from \"primeng/iconfield\";\r\nimport { InputIcon } from \"primeng/inputicon\";\r\nimport { InputNumber } from \"primeng/inputnumber\";\r\nimport { InputText, InputTextModule } from \"primeng/inputtext\";\r\nimport { Paginator } from \"primeng/paginator\";\r\nimport { Select } from \"primeng/select\";\r\nimport { TableModule } from \"primeng/table\";\r\nimport { TooltipModule } from \"primeng/tooltip\";\r\nimport { FormatCellPipe } from \"../../pipes/formatCell.pipe\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\nimport { ColumnComponent, ColumnGroupComponent, RowResumenComponent } from \"../table/column.component\";\r\nimport { SortFieldModel } from \"../table/model/sort.model\";\r\nimport { QueryParametersModel } from \"./model/query.model\";\r\n\r\n@Component({\r\n\tselector: \"intelica-table-fetch\",\r\n\tstandalone: true,\r\n\timports: [\r\n\t\tInputIcon,\r\n\t\tIconField,\r\n\t\tInputText,\r\n\t\tInputTextModule,\r\n\t\tInputNumber,\r\n\t\tPaginator,\r\n\t\tFormsModule,\r\n\t\tCommonModule,\r\n\t\tTableModule,\r\n\t\tSelect,\r\n\t\tBadgeModule,\r\n\t\tTooltipModule,\r\n\t\tTermPipe,\r\n\t\tCheckboxModule,\r\n\t\tFormsModule,\r\n\t\tFormatCellPipe,\r\n\t],\r\n\ttemplateUrl: \"./table-fetch.component.html\",\r\n\tproviders: [FormatCellPipe, DatePipe],\r\n})\r\nexport class TableFetchComponent<T> implements OnChanges, AfterContentInit {\r\n\treadonly GlobalTermService = inject(GlobalTermService);\r\n\r\n\t@Input() ComponentId: string = \"\";\r\n\t@Input() ShowRowPerPage: boolean = true;\r\n\t@Input() ShowSearch: boolean = false;\r\n\t@Input() ShowPagination: boolean = false;\r\n\t@Input() RowsPerPage: number = 10;\r\n\t@Input() ShowCheckbox: boolean = false;\r\n\t@Input() ShowIndex: boolean = false;\r\n\t@Input() ClassName: string = \"\";\r\n\t@Input() DefaultSortField: string = \"\";\r\n\t@Input() scrollHeight: string = \"400px\";\r\n\t@Input() scrollable: boolean = false;\r\n\t@Input() AllowedPageSizes: number[] = [10, 25, 50, 100];\r\n\t@Input() tableStyle: { [klass: string]: any } = {};\r\n\tLevels: number[] = [];\r\n\t@Input() FilteredList: T[] = [];\r\n\t@Input() TotalItems: number = 0;\r\n\tTotalRecords: number = 0;\r\n\tIsPaginatorInputSearch: boolean = false;\r\n\r\n\t@Output() EmitQueryParametersChange = new EventEmitter<QueryParametersModel>();\r\n\r\n\t@ContentChildren(ColumnComponent) Columns!: QueryList<ColumnComponent>;\r\n\t@ContentChildren(ColumnGroupComponent)\r\n\tColumnGroups!: QueryList<ColumnGroupComponent>;\r\n\t@ContentChildren(RowResumenComponent)\r\n\tRowResumenGroups!: QueryList<RowResumenComponent>;\r\n\r\n\t@ContentChild(\"additionalTemplate\") AdditionalTemplate?: TemplateRef<any>;\r\n\t@ContentChild(\"additionalCentralTemplate\")\r\n\tAdditionalCentralTemplate?: TemplateRef<any>;\r\n\t@ContentChild(\"additionalExtendedTemplate\")\r\n\tAdditionalExtendedTemplate?: TemplateRef<any>;\r\n\t@Output() EmitSortEvent = new EventEmitter<SortFieldModel[]>();\r\n\r\n\tColumnList: ColumnComponent[] = [];\r\n\tColumnGroupList: ColumnGroupComponent[] = [];\r\n\tRowResumenList: RowResumenComponent[] = [];\r\n\r\n\t@Input() CurrentPage: number = 1;\r\n\t@Input() SortOrder: number = 1;\r\n\t@Input() SortField: keyof T | null = null;\r\n\tMaxLevel: number = 0;\r\n\tListDataTable: T[] = [];\r\n\tSearchInput: string = \"\";\r\n\r\n\tconstructor(private cdr: ChangeDetectorRef) {}\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tif (changes[\"FilteredList\"] || changes[\"RowsPerPage\"] || changes[\"CurrentPage\"]) {\r\n\t\t\tthis.UpdatePages();\r\n\t\t}\r\n\r\n\t\tif (changes[\"SortField\"] || changes[\"SortOrder\"]) {\r\n\t\t\tthis.EmitSortEvent.emit([\r\n\t\t\t\t{\r\n\t\t\t\t\tsortOrder: this.SortOrder,\r\n\t\t\t\t\tsortField: this.SortField?.toString() ?? \"\",\r\n\t\t\t\t},\r\n\t\t\t]);\r\n\t\t}\r\n\t}\r\n\r\n\tngAfterContentInit() {\r\n\t\tthis.captureColumns();\r\n\t\tthis.captureGroups();\r\n\t\tthis.captureResumen();\r\n\r\n\t\tthis.Columns.changes.subscribe(() => {\r\n\t\t\tthis.captureColumns();\r\n\t\t\tthis.cdr.markForCheck();\r\n\t\t});\r\n\r\n\t\tthis.ColumnGroups.changes.subscribe(() => {\r\n\t\t\tthis.captureGroups();\r\n\t\t\tthis.cdr.markForCheck();\r\n\t\t});\r\n\r\n\t\tthis.RowResumenGroups.changes.subscribe(() => {\r\n\t\t\tthis.captureResumen();\r\n\t\t\tthis.cdr.markForCheck();\r\n\t\t});\r\n\t}\r\n\r\n\tprivate captureColumns() {\r\n\t\tthis.ColumnList = this.Columns?.toArray() ?? [];\r\n\t}\r\n\r\n\tprivate captureGroups() {\r\n\t\tthis.ColumnGroupList = this.ColumnGroups?.toArray() ?? [];\r\n\r\n\t\tconst levels = this.ColumnGroupList.map(c => c.level);\r\n\t\tthis.MaxLevel = levels.length ? Math.max(...levels) + 1 : 1;\r\n\t\tthis.Levels = Array.from({ length: this.MaxLevel }, (_, i) => i);\r\n\t}\r\n\r\n\tprivate captureResumen() {\r\n\t\tthis.RowResumenList = this.RowResumenGroups?.toArray() ?? [];\r\n\t}\r\n\r\n\tOnSort(field: string) {\r\n\t\tif (this.SortField === field) {\r\n\t\t\tthis.SortOrder *= -1;\r\n\t\t} else {\r\n\t\t\tthis.SortField = field as keyof T;\r\n\t\t\tthis.SortOrder = 1;\r\n\t\t}\r\n\t\tthis.ExecuteSearch({});\r\n\t}\r\n\tUpdatePages() {\r\n\t\tif (this.ShowPagination) {\r\n\t\t\tthis.TotalRecords = this.TotalItems;\r\n\r\n\t\t\tconst start = (this.CurrentPage - 1) * this.RowsPerPage;\r\n\t\t\tconst end = start + this.RowsPerPage;\r\n\t\t\tthis.ListDataTable = this.FilteredList.slice(start, end);\r\n\t\t} else {\r\n\t\t\tthis.ListDataTable = this.FilteredList;\r\n\t\t}\r\n\t}\r\n\r\n\tOnPageChange(event: { page?: number; rows?: number } | number): void {\r\n\t\tif (typeof event === \"number\") {\r\n\t\t\tthis.CurrentPage = event;\r\n\t\t} else {\r\n\t\t\tif (typeof event?.rows === \"number\") {\r\n\t\t\t\tthis.RowsPerPage = event.rows;\r\n\t\t\t}\r\n\t\t\tif (typeof event?.page === \"number\") {\r\n\t\t\t\tthis.CurrentPage = event.page + 1;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.IsPaginatorInputSearch = true;\r\n\t\tthis.ExecuteSearch({});\r\n\t}\r\n\r\n\tResetTable() {\r\n\t\tthis.CurrentPage = 1;\r\n\t\tthis.ExecuteSearch({});\r\n\t}\r\n\r\n\tExecuteSearch(event?: any): void {\r\n\t\tif (event?.fieldText !== undefined && event?.fieldText !== \"\") {\r\n\t\t\tthis.SearchInput = event;\r\n\t\t}\r\n\r\n\t\tif (this.SearchInput !== undefined && this.SearchInput !== \"\" && !this.IsPaginatorInputSearch) {\r\n\t\t\tthis.CurrentPage = 1;\r\n\t\t}\r\n\r\n\t\tconst newQueryParameters: QueryParametersModel = {\r\n\t\t\tFilterValue: this.SearchInput.trim(),\r\n\t\t\tOrderBy: this.SortField ? String(this.SortField) : undefined,\r\n\t\t\tSortDirection: this.SortOrder === 1 ? \"asc\" : \"desc\",\r\n\t\t\tPageNumber: this.CurrentPage,\r\n\t\t\tPageSize: this.RowsPerPage,\r\n\t\t};\r\n\r\n\t\tthis.EmitQueryParametersChange.emit(newQueryParameters);\r\n\t\tthis.UpdatePages();\r\n\t\tthis.IsPaginatorInputSearch = false;\r\n\t}\r\n\r\n\tOnRowsPerPageChange(value: number): void {\r\n\t\tthis.RowsPerPage = value;\r\n\t\tthis.CurrentPage = 1;\r\n\t\tthis.ExecuteSearch({});\r\n\t}\r\n\tClearSearch() {\r\n\t\tthis.SearchInput = \"\";\r\n\t}\r\n\tget TotalPages(): number {\r\n\t\treturn Math.ceil(this.TotalRecords / this.RowsPerPage);\r\n\t}\r\n\r\n\tget RenderPanel(): boolean {\r\n\t\treturn Boolean(this.AdditionalTemplate) || this.ShowSearch || Boolean(this.AdditionalCentralTemplate) || Boolean(this.AdditionalExtendedTemplate);\r\n\t}\r\n\r\n\tonChangeSelectPage(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.ExecuteSearch({});\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.ExecuteSearch({});\r\n\t}\r\n}\r\n","<div class=\"prTable\">\r\n\t@if (RenderPanel) {\r\n\t\t<div class=\"grPanel\">\r\n\t\t\t<div class=\"prCard__row justify-content-end\">\r\n\t\t\t\t<div class=\"prCard__actionflex\">\r\n\t\t\t\t\t@if (AdditionalTemplate) {\r\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"AdditionalTemplate\"></ng-container>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t@if (ShowSearch) {\r\n\t\t\t\t\t<div class=\"ptSearch\">\r\n\t\t\t\t\t\t<p-iconfield>\r\n\t\t\t\t\t\t\t<input type=\"text\" class=\"prInputText\" pInputText placeholder=\"{{ 'LBL_SEARCH_SELECT' | term: GlobalTermService.languageCode }}\" [(ngModel)]=\"SearchInput\" (keydown.enter)=\"ExecuteSearch()\" />\r\n\t\t\t\t\t\t\t<p-inputicon>\r\n\t\t\t\t\t\t\t\t<button class=\"ptSearch__icon ptSearch__icon--close\">\r\n\t\t\t\t\t\t\t\t\t<i class=\"icon icon-cancel\" *ngIf=\"SearchInput\" (click)=\"ClearSearch()\"></i>\r\n\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t<span class=\"ptSearch__icon ptSearch__icon--divider\" *ngIf=\"SearchInput\"></span>\r\n\t\t\t\t\t\t\t\t<button class=\"ptSearch__icon ptSearch__icon--search\">\r\n\t\t\t\t\t\t\t\t\t<i class=\"icon icon-search\"></i>\r\n\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t</p-inputicon>\r\n\t\t\t\t\t\t</p-iconfield>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t\t<!-- -->\r\n\t\t\t\t@if (AdditionalCentralTemplate) {\r\n\t\t\t\t\t<div class=\"prTableTools__new prTableTools__new--right\">\r\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"AdditionalCentralTemplate\"></ng-container>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t@if (AdditionalExtendedTemplate) {\r\n\t\t\t<div class=\"prTableTools justify-content-start\">\r\n\t\t\t\t<ng-container *ngTemplateOutlet=\"AdditionalExtendedTemplate\"></ng-container>\r\n\t\t\t</div>\r\n\t\t}\r\n\t}\r\n\t<p-table\r\n\t\tclass=\"prTable\"\r\n\t\t[ngClass]=\"ClassName\"\r\n\t\t[value]=\"FilteredList\"\r\n\t\tresponsiveLayout=\"scroll\"\r\n\t\t[sortField]=\"DefaultSortField\"\r\n\t\t[sortOrder]=\"SortOrder\"\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<!-- Cabecera con columnas agrupadas -->\r\n\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t@for (level of Levels; track $index) {\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t@for (col of ColumnGroupList; track $index) {\r\n\t\t\t\t\t\t@if (col.level === level) {\r\n\t\t\t\t\t\t\t<th [attr.colspan]=\"col.colspan\" [attr.rowspan]=\"col.rowspan\" [pSortableColumn]=\"col.sortable ? col.field : ''\" [style.min-width]=\"col.minWidth\" (click)=\"col.sortable && OnSort(col.field)\">\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span tooltipStyleClass=\"prTooltip\" F [pTooltip]=\"col.headerTooltip || col.header\" [tooltipPosition]=\"col.headerTooltipPosition || 'top'\">\r\n\t\t\t\t\t\t\t\t\t\t{{ col.header }}\r\n\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t<p-sortIcon *ngIf=\"col.sortable\" [field]=\"col.field\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</th>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t@if (ShowCheckbox && level === 0 && ColumnGroupList.length != 0) {\r\n\t\t\t\t\t\t<th class=\"text-center\" style=\"width: 4%\" [attr.rowspan]=\"MaxLevel === 1 ? 2 : MaxLevel\">\r\n\t\t\t\t\t\t\t<p-tableHeaderCheckbox class=\"prCheckbox\" />\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t}\r\n\t\t\t\t</tr>\r\n\t\t\t}\r\n\r\n\t\t\t<tr>\r\n\t\t\t\t@for (col of ColumnList; track $index) {\r\n\t\t\t\t\t@if (col.showHeader) {\r\n\t\t\t\t\t\t<th\r\n\t\t\t\t\t\t\t[class]=\"col.className\"\r\n\t\t\t\t\t\t\t[pSortableColumn]=\"!col.isChecboxColumn && col.sortable ? col.field : ''\"\r\n\t\t\t\t\t\t\t[style.width]=\"col.width\"\r\n\t\t\t\t\t\t\t[style.min-width]=\"col.minWidth\"\r\n\t\t\t\t\t\t\t(click)=\"!col.isChecboxColumn && col.sortable && OnSort(col.field)\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<div class=\"prTable__header\">\r\n\t\t\t\t\t\t\t\t<span tooltipStyleClass=\"prTooltip\" [pTooltip]=\"col.headerTooltip || col.header\" [tooltipPosition]=\"col.headerTooltipPosition || 'top'\">\r\n\t\t\t\t\t\t\t\t\t{{ col.header }}\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t@if (!col.showIndex) {\r\n\t\t\t\t\t\t\t\t\t<p-sortIcon *ngIf=\"col.sortable\" [field]=\"col.field\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t@if (ShowCheckbox && ColumnGroupList.length == 0) {\r\n\t\t\t\t\t<th class=\"text-center\" style=\"width: 4%\">\r\n\t\t\t\t\t\t<p-tableHeaderCheckbox class=\"prCheckbox\" />\r\n\t\t\t\t\t</th>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\r\n\t\t\t@if (FilteredList.length > 0 && RowResumenList.length > 0) {\r\n\t\t\t\t<tr class=\"fixedRow\">\r\n\t\t\t\t\t@for (col of RowResumenList; track $index) {\r\n\t\t\t\t\t\t<td [ngClass]=\"col.className\" [attr.colspan]=\"col.colspan\" [attr.rowspan]=\"col.rowspan\">\r\n\t\t\t\t\t\t\t@if (col.templateRef) {\r\n\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"col.templateRef\"></ng-container>\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t}\r\n\t\t\t\t</tr>\r\n\t\t\t}\r\n\t\t</ng-template>\r\n\r\n\t\t<!-- Cuerpo de la tabla -->\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 $index) {\r\n\t\t\t\t\t<td [ngClass]=\"col.className\">\r\n\t\t\t\t\t\t@if (col.showIndex) {\r\n\t\t\t\t\t\t\t{{ rowIndex + 1 + (CurrentPage - 1) * RowsPerPage }}\r\n\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t@if (col.templateRef) {\r\n\t\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"col.templateRef; context: { $implicit: rowData }\"></ng-container>\r\n\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t<span class=\"text-breakWord\" tooltipStyleClass=\"prTooltip\" pTooltip=\"{{ col.tooltip }}\" tooltipPosition=\"{{ col.tooltipPosition }}\">\r\n\t\t\t\t\t\t\t\t\t{{ rowData[col.field] | formatCell: col.formatType }}\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t\t@if (ShowCheckbox) {\r\n\t\t\t\t\t<td class=\"text-center\">\r\n\t\t\t\t\t\t<p-tableCheckbox [value]=\"rowData\" class=\"prCheckbox\" />\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t</ng-template>\r\n\r\n\t\t<!-- Mensaje cuando no hay datos -->\r\n\t\t<ng-template pTemplate=\"emptymessage\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td [attr.colspan]=\"ColumnList.length + (ShowCheckbox ? 1 : 0)\" 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\r\n\t<!-- <div class=\"prTableToolsBottom\"> -->\r\n\t<div class=\"d-flex justify-content-end\">\r\n\t\t@if (TotalRecords !== 0 && ShowPagination) {\r\n\t\t\t<div class=\"ptTablePaginator\">\r\n\t\t\t\t<p-paginator\r\n\t\t\t\t\tclass=\"prPaginator\"\r\n\t\t\t\t\t[first]=\"(CurrentPage - 1) * RowsPerPage\"\r\n\t\t\t\t\t[rows]=\"RowsPerPage\"\r\n\t\t\t\t\t[totalRecords]=\"TotalRecords\"\r\n\t\t\t\t\t(onPageChange)=\"OnPageChange($event)\"\r\n\t\t\t\t\t[showJumpToPageInput]=\"false\"\r\n\t\t\t\t\t[showCurrentPageReport]=\"false\"\r\n\t\t\t\t\t[showPageLinks]=\"false\"\r\n\t\t\t\t\t[showFirstLastIcon]=\"false\"\r\n\t\t\t\t\t[templateLeft]=\"templateLeft\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<ng-template #previouspagelinkicon>\r\n\t\t\t\t\t\t<i class=\"icon icon-arrow-left\"></i>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<ng-template #nextpagelinkicon>\r\n\t\t\t\t\t\t<i class=\"icon icon-arrow-right\"></i>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<ng-template pTemplate=\"templateLeft\" let-state #templateLeft>\r\n\t\t\t\t\t\t<span>{{ \"ROWS_PER_PAGE\" | term: GlobalTermService.languageCode }}</span>\r\n\t\t\t\t\t\t<p-select class=\"prSelect\" [options]=\"AllowedPageSizes\" [ngModel]=\"RowsPerPage\" appendTo=\"body\" (onChange)=\"OnRowsPerPageChange($event.value)\" />\r\n\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t{{ \"Page\" | term: GlobalTermService.languageCode }}\r\n\t\t\t\t\t\t\t<p-inputnumber class=\"p-paginator-jtp-input\" inputId=\"integeronly\" [(ngModel)]=\"CurrentPage\" [allowEmpty]=\"false\" [min]=\"1\" (keyup.enter)=\"onChangeSelectPage($event)\" />\r\n\t\t\t\t\t\t\t{{ \"Of\" | term: GlobalTermService.languageCode }} {{ TotalPages }}\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-paginator>\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n</div>\r\n","import { Component } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { ConfirmDialogModule } from \"primeng/confirmdialog\";\r\nimport { ButtonModule } from \"primeng/button\";\r\nimport { ConfirmationService } from \"primeng/api\";\r\n\r\n@Component({\r\n\tselector: \"intelica-alert\",\r\n\tstandalone: true,\r\n\timports: [CommonModule, ConfirmDialogModule, ButtonModule],\r\n\ttemplateUrl: './intelica-alert.component.html',\r\n})\r\nexport class IntelicaAlertComponent {\r\n\t// This component is now just a wrapper for the ConfirmDialog.\r\n\t// All logic is handled via the headless template and the data passed from AlertService.\r\n}\r\n","<!-- \r\n Clases Modificadoras para estados:\r\n prConfirmDialog--warning\r\n prConfirmDialog--danger\r\n prConfirmDialog--error\r\n prConfirmDialog--success\r\n prConfirmDialog--default\r\n-->\r\n<p-confirmDialog #cd\r\n [styleClass]=\"'prConfirmDialog ' + ($any(cd.confirmation)?.data?.config?.type ? ' prConfirmDialog--' + $any(cd.confirmation).data.config.type : ' prConfirmDialog--default')\"\r\n key=\"intelica-alert-dialog\" [closable]=\"false\" [visible]=\"undefined\">\r\n <!-- \r\n We use the headless template. \r\n 'message' contains the confirmation object.\r\n 'message.data' contains our custom 'presentationData' object from AlertService.\r\n -->\r\n <ng-template pTemplate=\"headless\" let-message let-onAccept=\"onAccept\" let-onReject=\"onReject\">\r\n <div class=\"prConfirmDialog__content\">\r\n <!-- Close Button -->\r\n @if (message.data.config.showCloseButton) {\r\n <div class=\"prConfirmDialog__close\">\r\n <p-button icon=\"pi pi-times\" class=\"prButton\" [rounded]=\"false\" [text]=\"true\" (onClick)=\"onReject()\"\r\n ariaLabel=\"Cerrar\"></p-button>\r\n </div>\r\n }\r\n\r\n <!-- Icon -->\r\n <div class=\"prConfirmDialog__icon\">\r\n @if (message.data.config.customImageUrl) {\r\n <img [src]=\"message.data.config.customImageUrl\" alt=\"Alert icon\" />\r\n } @else {\r\n <i [class]=\"$any(message).data.iconClass\"></i>\r\n }\r\n </div>\r\n <div class=\"prConfirmDialog__details\">\r\n <!-- Title -->\r\n <h2 class=\"prConfirmDialog__title\">{{ message.header }}</h2>\r\n\r\n <!-- Subtitle / Message -->\r\n @if (message.message) {\r\n <p class=\"prConfirmDialog__subtitle\"\r\n [style.color]=\"$any(message).data.config.styles?.subtitleColor ?? '#555'\">{{ message.message }}</p>\r\n }\r\n </div>\r\n\r\n <!-- HTML Content -->\r\n @if (message.data.config.htmlContent) {\r\n <div class=\"prConfirmDialog__text\" [innerHTML]=\"$any(message).data.config.htmlContent\"\r\n [style.color]=\"$any(message).data.config.styles?.subtitleColor ?? '#555'\"></div>\r\n }\r\n\r\n <!-- Buttons -->\r\n <div class=\"prConfirmDialog__footer\">\r\n <!-- Confirm Button -->\r\n <p-button class=\"prButton\" [label]=\"message.data.confirmText\" (onClick)=\"onAccept()\" />\r\n <!-- Cancel Button -->\r\n @if (message.data.showCancelButton) {\r\n <p-button class=\"prButton\" [label]=\"message.data.cancelText\" severity=\"secondary\" [outlined]=\"true\"\r\n (onClick)=\"onReject()\" />\r\n }\r\n </div>\r\n </div>\r\n </ng-template>\r\n</p-confirmDialog>","import { HttpClient } from \"@angular/common/http\";\r\nimport { inject, Injectable, signal } from \"@angular/core\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport { fromEvent, map, Observable, of, startWith, tap } from \"rxjs\";\r\nimport { FavoritePageMaintenanceResponse, FavoritePageSimpleResponse } from \"../dto/favoriteResponses\";\r\nimport { ConfigService } from \"./config.service\";\r\n\r\ninterface FavoritesUpdatedEventDetail {\r\n\tfavorites: FavoritePageSimpleResponse[];\r\n}\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class GlobalFavoriteService {\r\n\tprivate configService = inject(ConfigService);\r\n\tprivate http = inject(HttpClient);\r\n\tprivate path = `${this.configService.environment?.securityPath}/favorite-page`;\r\n\tprivate readonly eventFavorites = \"FavoritesUpdatedEvent\";\r\n\tprivate _favorites = signal<FavoritePageSimpleResponse[]>([]);\r\n\r\n\tpublic favorites = this._favorites.asReadonly();\r\n\r\n\tconstructor() {\r\n\t\tthis.loadAllAndStore();\r\n\t\twindow.addEventListener(this.eventFavorites, this.onFavoritesUpdated);\r\n\t}\r\n\r\n\tpublic delete(guid: Guid): Observable<Guid> {\r\n\t\treturn this.http.delete<Guid>(`${this.path}/${guid}`).pipe(tap(() => this.loadAllAndStore()));\r\n\t}\r\n\r\n\tpublic getAll(): Observable<FavoritePageSimpleResponse[]> {\r\n\t\treturn this.http.get<FavoritePageSimpleResponse[]>(`${this.path}`);\r\n\t}\r\n\r\n\tpublic create(): Observable<FavoritePageMaintenanceResponse> {\r\n\t\treturn this.http.post<FavoritePageMaintenanceResponse>(`${this.path}`, {}).pipe(tap(() => this.loadAllAndStore()));\r\n\t}\r\n\r\n\tpublic loadAllAndStore() {\r\n\t\tthis.getAll()\r\n\t\t\t.pipe(tap(favorites => this.setFavorites(favorites)))\r\n\t\t\t.subscribe();\r\n\t}\r\n\r\n\tpublic setFavorites(favorites: FavoritePageSimpleResponse[]): void {\r\n\t\tthis._favorites.set([...favorites]);\r\n\t\tthis.emitFavoritesUpdatedEvent();\r\n\t}\r\n\r\n\tpublic removeFavoriteByPageUrl(pageUrl: string): void {\r\n\t\tconst normalizedPageUrl = pageUrl;\r\n\t\tconst filtered = this._favorites().filter(item => !this.matchesPage(item, normalizedPageUrl));\r\n\t\tthis._favorites.set(filtered);\r\n\t\tthis.emitFavoritesUpdatedEvent();\r\n\t}\r\n\r\n\tpublic isFavoriteByPageUrl(pageUrl: string): boolean {\r\n\t\tconst normalizedPageUrl = pageUrl;\r\n\t\treturn this._favorites().some(item => this.matchesPage(item, normalizedPageUrl));\r\n\t}\r\n\r\n\tpublic isFavoriteByPageRoot(pageRoot: string): boolean {\r\n\t\treturn this._favorites().some(item => item.pageRoot === pageRoot);\r\n\t}\r\n\r\n\tpublic removeFavoriteByPageRoot(pageRoot: string): Observable<void> {\r\n\t\tconst favorite = this._favorites().find(item => item.pageRoot === pageRoot);\r\n\t\tif (!favorite) return of(void 0);\r\n\t\treturn this.delete(Guid.parse(favorite.favoritePageID)).pipe(map(() => void 0));\r\n\t}\r\n\r\n\tpublic favoritesChanges(): Observable<FavoritePageSimpleResponse[]> {\r\n\t\treturn fromEvent<CustomEvent<FavoritesUpdatedEventDetail>>(window, this.eventFavorites).pipe(\r\n\t\t\tmap(event => event.detail.favorites),\r\n\t\t\tstartWith(this._favorites())\r\n\t\t);\r\n\t}\r\n\r\n\tprivate onFavoritesUpdated = (event: Event): void => {\r\n\t\tconst detail = (event as CustomEvent<FavoritesUpdatedEventDetail>).detail;\r\n\t\tif (!detail?.favorites) return;\r\n\t\tthis._favorites.set([...detail.favorites]);\r\n\t};\r\n\r\n\tprivate emitFavoritesUpdatedEvent(): void {\r\n\t\tconst event = new CustomEvent(this.eventFavorites, {\r\n\t\t\tdetail: { favorites: this._favorites() } satisfies FavoritesUpdatedEventDetail,\r\n\t\t});\r\n\t\twindow.dispatchEvent(event);\r\n\t}\r\n\r\n\tprivate matchesPage(item: FavoritePageSimpleResponse, value: string): boolean {\r\n\t\treturn item.pageUrl === value || item.pageRoot === value;\r\n\t}\r\n}\r\n","import { inject, Injectable } from \"@angular/core\";\r\nimport { distinctUntilChanged, map, Observable } from \"rxjs\";\r\nimport { GlobalFavoriteService } from \"../../services/globalFavorite.service\";\r\nimport { GlobalFeatureFlagService } from \"../../services/globalFeatureFlag.service\";\r\n\r\n@Injectable({\r\n\tprovidedIn: \"root\",\r\n})\r\nexport class AddFavoritesService {\r\n\tprivate readonly favoritesService = inject(GlobalFavoriteService);\r\n\tprivate readonly featureFlagService = inject(GlobalFeatureFlagService);\r\n\r\n\tpublic addPageToFavorites(): Observable<void> {\r\n\t\treturn this.favoritesService.create().pipe(map(() => void 0));\r\n\t}\r\n\r\n\tpublic isPageFavorite(pageRoot?: string): Observable<boolean> {\r\n\t\tconst resolvedPageRoot = this.resolvePageRoot(pageRoot);\r\n\t\treturn this.favoritesService.favoritesChanges().pipe(\r\n\t\t\tmap(() => this.favoritesService.isFavoriteByPageRoot(resolvedPageRoot)),\r\n\t\t\tdistinctUntilChanged()\r\n\t\t);\r\n\t}\r\n\r\n\tpublic watchPageFavorite(pageRoot?: string): Observable<boolean> {\r\n\t\tconst resolvedPageRoot = this.resolvePageRoot(pageRoot);\r\n\t\treturn this.favoritesService.favoritesChanges().pipe(\r\n\t\t\tmap(() => this.favoritesService.isFavoriteByPageRoot(resolvedPageRoot)),\r\n\t\t\tdistinctUntilChanged()\r\n\t\t);\r\n\t}\r\n\r\n\tpublic removeFromFavorites(pageRoot?: string): Observable<void> {\r\n\t\tconst resolvedPageRoot = this.resolvePageRoot(pageRoot);\r\n\t\treturn this.favoritesService.removeFavoriteByPageRoot(resolvedPageRoot);\r\n\t}\r\n\r\n\tprivate resolvePageRoot(pageRoot?: string): string {\r\n\t\treturn pageRoot?.trim() || this.featureFlagService.GetPageRoot();\r\n\t}\r\n}\r\n","import { NgClass } from \"@angular/common\";\r\nimport { Component, DestroyRef, inject, OnInit, output } from \"@angular/core\";\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\nimport { Button } from \"primeng/button\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\nimport { AddFavoritesService } from \"./add-favorites.service\";\r\n\r\nconst ICON_ON = \"icon-favorites-on\";\r\nconst ICON_OFF = \"icon-favorites-off\";\r\n\r\n@Component({\r\n\tselector: \"intelica-add-favorites\",\r\n\timports: [Button, TermPipe, NgClass],\r\n\ttemplateUrl: \"./add-favorites.component.html\",\r\n})\r\nexport class AddFavoritesComponent implements OnInit {\r\n\treadonly termService = inject(GlobalTermService);\r\n\tprivate readonly addFavoriteService = inject(AddFavoritesService);\r\n\tprivate readonly destroyRef = inject(DestroyRef);\r\n\r\n\treadonly favoriteChanged = output<boolean>();\r\n\r\n\tprivate isFavorite = false;\r\n\tpublic isToggling = false;\r\n\tpublic iconClass = ICON_OFF;\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.loadInitialState();\r\n\t}\r\n\r\n\ttoggleFavorite(): void {\r\n\t\tif (this.isToggling) return;\r\n\t\tthis.isToggling = true;\r\n\t\tconst nextFavorite = !this.isFavorite;\r\n\t\tconst action$ = this.isFavorite ? this.addFavoriteService.removeFromFavorites() : this.addFavoriteService.addPageToFavorites();\r\n\r\n\t\taction$.subscribe({\r\n\t\t\tnext: () => {\r\n\t\t\t\tthis.favoriteChanged.emit(nextFavorite);\r\n\t\t\t},\r\n\t\t\tcomplete: () => (this.isToggling = false),\r\n\t\t\terror: () => (this.isToggling = false),\r\n\t\t});\r\n\t}\r\n\r\n\tprivate loadInitialState(): void {\r\n\t\tthis.addFavoriteService\r\n\t\t\t.watchPageFavorite()\r\n\t\t\t.pipe(takeUntilDestroyed(this.destroyRef))\r\n\t\t\t.subscribe({\r\n\t\t\t\tnext: isFavorite => {\r\n\t\t\t\t\tthis.isFavorite = isFavorite;\r\n\t\t\t\t\tthis.updateIcon();\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t}\r\n\r\n\tprivate updateIcon(): void {\r\n\t\tthis.iconClass = this.isFavorite ? ICON_ON : ICON_OFF;\r\n\t}\r\n}\r\n","<p-button class=\"prButton\" severity=\"secondary\" [disabled]=\"isToggling\" (onClick)=\"toggleFavorite()\">\r\n\t<i class=\"icon p-button-icon-left\" [ngClass]=\"iconClass\" pButtonIcon></i>\r\n\t<span pButtonLabel>{{ \"ADD_TO_FAVORITES\" | term : termService.languageCode }}</span>\r\n</p-button>\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { Component, effect, inject, input, output } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { Button } from \"primeng/button\";\r\nimport { MultiSelect } from \"primeng/multiselect\";\r\nimport { Popover } from \"primeng/popover\";\r\nimport { Select } from \"primeng/select\";\r\nimport { TermPipe } from \"../../pipes/term.pipes\";\r\nimport { GlobalTermService } from \"../../services/globalTerm.service\";\r\nimport { ContextSelectorClientDto, ContextSelectorCountryDto, ContextSelectorRegionDto, ContextSelectorSelectionDto } from \"./context-selector.dto\";\r\n\r\n@Component({\r\n\tselector: \"itl-context-selector\",\r\n\timports: [CommonModule, FormsModule, Button, Popover, MultiSelect, Select, TermPipe],\r\n\ttemplateUrl: \"./context-selector.component.html\",\r\n})\r\nexport class ClientContextSelector {\r\n\treadonly regions = input<ContextSelectorRegionDto[]>([]);\r\n\treadonly countries = input<ContextSelectorCountryDto[]>([]);\r\n\treadonly clients = input<ContextSelectorClientDto[]>([]);\r\n\treadonly selection = input<Partial<ContextSelectorSelectionDto> | null>(null);\r\n\r\n\treadonly showRegion = input<boolean>(true);\r\n\treadonly showCountry = input<boolean>(true);\r\n\treadonly showClient = input<boolean>(true);\r\n\r\n\treadonly buttonTerm = input<string>(\"Select Context\");\r\n\treadonly popoverTerm = input<string>(\"Select Region, Country and Client\");\r\n\treadonly regionTerm = input<string>(\"Region\");\r\n\treadonly countryTerm = input<string>(\"Country\");\r\n\treadonly clientTerm = input<string>(\"Client / Bank\");\r\n\treadonly regionPlaceholderTerm = input<string>(\"Select Region\");\r\n\treadonly countryPlaceholderTerm = input<string>(\"Select Country\");\r\n\treadonly clientPlaceholderTerm = input<string>(\"Select Client / Bank\");\r\n\r\n\treadonly selectionChange = output<ContextSelectorSelectionDto>();\r\n\treadonly regionChange = output<number | null>();\r\n\treadonly countriesChange = output<number[]>();\r\n\treadonly clientChange = output<number | null>();\r\n\r\n\treadonly globalTermService = inject(GlobalTermService);\r\n\r\n\tselectedRegionId: number | null = null;\r\n\tselectedCountryIds: number[] = [];\r\n\tselectedClientId: number | null = null;\r\n\r\n\tconstructor() {\r\n\t\teffect(() => {\r\n\t\t\tconst incomingSelection = this.selection();\r\n\t\t\tif (!incomingSelection) return;\r\n\t\t\tthis.selectedRegionId = incomingSelection.regionId ?? null;\r\n\t\t\tthis.selectedCountryIds = [...(incomingSelection.countryIds ?? [])];\r\n\t\t\tthis.selectedClientId = incomingSelection.clientId ?? null;\r\n\t\t\tthis.ensureValidSelection();\r\n\t\t});\r\n\t}\r\n\r\n\tget filteredCountries(): ContextSelectorCountryDto[] {\r\n\t\tif (!this.showRegion() || !this.selectedRegionId) {\r\n\t\t\treturn this.countries();\r\n\t\t}\r\n\r\n\t\treturn this.countries().filter(country => !country.regionId || country.regionId === this.selectedRegionId);\r\n\t}\r\n\r\n\tget filteredClients(): ContextSelectorClientDto[] {\r\n\t\tlet items = this.clients();\r\n\r\n\t\tif (this.showRegion() && this.selectedRegionId) {\r\n\t\t\titems = items.filter(client => !client.regionId || client.regionId === this.selectedRegionId);\r\n\t\t}\r\n\r\n\t\tif (this.showCountry() && this.selectedCountryIds.length > 0) {\r\n\t\t\titems = items.filter(client => {\r\n\t\t\t\tif (!client.countryIds || client.countryIds.length === 0) return true;\r\n\t\t\t\treturn client.countryIds.some(countryId => this.selectedCountryIds.includes(countryId));\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn items;\r\n\t}\r\n\r\n\tonRegionChange(value: number | null): void {\r\n\t\tthis.selectedRegionId = value ?? null;\r\n\t\tthis.ensureValidSelection();\r\n\t\tthis.emitSelection(true, true, true);\r\n\t}\r\n\r\n\tonCountriesChange(value: number[] | null): void {\r\n\t\tthis.selectedCountryIds = value ?? [];\r\n\t\tthis.ensureValidSelection();\r\n\t\tthis.emitSelection(false, true, true);\r\n\t}\r\n\r\n\tonClientChange(value: number | null): void {\r\n\t\tthis.selectedClientId = value ?? null;\r\n\t\tthis.emitSelection(false, false, true);\r\n\t}\r\n\r\n\tprivate ensureValidSelection(): void {\r\n\t\tconst validCountryIds = new Set(this.filteredCountries.map(country => country.id));\r\n\t\tthis.selectedCountryIds = this.selectedCountryIds.filter(countryId => validCountryIds.has(countryId));\r\n\r\n\t\tconst selectedClientStillValid = this.filteredClients.some(client => client.id === this.selectedClientId);\r\n\t\tif (!selectedClientStillValid) {\r\n\t\t\tthis.selectedClientId = null;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate emitSelection(emitRegion: boolean, emitCountries: boolean, emitClient: boolean): void {\r\n\t\tif (emitRegion) this.regionChange.emit(this.selectedRegionId);\r\n\t\tif (emitCountries) this.countriesChange.emit(this.selectedCountryIds);\r\n\t\tif (emitClient) this.clientChange.emit(this.selectedClientId);\r\n\r\n\t\tthis.selectionChange.emit({\r\n\t\t\tregionId: this.selectedRegionId,\r\n\t\t\tcountryIds: [...this.selectedCountryIds],\r\n\t\t\tclientId: this.selectedClientId,\r\n\t\t});\r\n\t}\r\n}\r\n","<div class=\"lyFilterbar__wrap\">\r\n\t<p-button class=\"prButton u-hide-adjacent\" (click)=\"popoverFilterLayout.toggle($event)\" severity=\"secondary\" label=\"{{ buttonTerm() | term: globalTermService.languageCode }}\" />\r\n\t<p-popover styleClass=\"prPopover prPopover--compact\" [style]=\"{ '--custom-width': '20.5rem' }\" [focusOnShow]=\"false\" #popoverFilterLayout>\r\n\t\t<div class=\"prPopover__header\">{{ popoverTerm() | term: globalTermService.languageCode }}</div>\r\n\t\t<div class=\"prPopover__body\">\r\n\t\t\t<div class=\"u-display-flex u-flex-column u-gap-sm\">\r\n\t\t\t\t@if (showRegion()) {\r\n\t\t\t\t\t<p-select\r\n\t\t\t\t\t\tclass=\"prSelect\"\r\n\t\t\t\t\t\t[options]=\"regions()\"\r\n\t\t\t\t\t\t[ngModel]=\"selectedRegionId\"\r\n\t\t\t\t\t\t(ngModelChange)=\"onRegionChange($event)\"\r\n\t\t\t\t\t\toptionValue=\"id\"\r\n\t\t\t\t\t\toptionLabel=\"label\"\r\n\t\t\t\t\t\tplaceholder=\"{{ regionPlaceholderTerm() | term: globalTermService.languageCode }}\"\r\n\t\t\t\t\t\tshowClear=\"true\"\r\n\t\t\t\t\t\tdropdownIcon=\"icon icon-arrow-down\"\r\n\t\t\t\t\t\tfilter=\"false\"\r\n\t\t\t\t\t\tfiltericon=\"icon icon-cancel\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t}\r\n\r\n\t\t\t\t@if (showCountry()) {\r\n\t\t\t\t\t<p-multiselect\r\n\t\t\t\t\t\tclass=\"prMultiselect\"\r\n\t\t\t\t\t\t[options]=\"filteredCountries\"\r\n\t\t\t\t\t\t[ngModel]=\"selectedCountryIds\"\r\n\t\t\t\t\t\t(ngModelChange)=\"onCountriesChange($event)\"\r\n\t\t\t\t\t\t[maxSelectedLabels]=\"3\"\r\n\t\t\t\t\t\toptionLabel=\"label\"\r\n\t\t\t\t\t\toptionValue=\"id\"\r\n\t\t\t\t\t\tplaceholder=\"{{ countryPlaceholderTerm() | term: globalTermService.languageCode }}\"\r\n\t\t\t\t\t\tshowClear=\"true\"\r\n\t\t\t\t\t\tdropdownIcon=\"icon icon-arrow-down\"\r\n\t\t\t\t\t\tshowToggleAll=\"false\"\r\n\t\t\t\t\t\tfilter=\"false\"\r\n\t\t\t\t\t\tfiltericon=\"icon icon-cancel\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t}\r\n\r\n\t\t\t\t@if (showClient()) {\r\n\t\t\t\t\t<p-select\r\n\t\t\t\t\t\tclass=\"prSelect\"\r\n\t\t\t\t\t\t[options]=\"filteredClients\"\r\n\t\t\t\t\t\t[ngModel]=\"selectedClientId\"\r\n\t\t\t\t\t\t(ngModelChange)=\"onClientChange($event)\"\r\n\t\t\t\t\t\toptionValue=\"id\"\r\n\t\t\t\t\t\toptionLabel=\"label\"\r\n\t\t\t\t\t\t[placeholder]=\"clientPlaceholderTerm()\"\r\n\t\t\t\t\t\tshowClear=\"true\"\r\n\t\t\t\t\t\tdropdownIcon=\"icon icon-arrow-down\"\r\n\t\t\t\t\t\tfilter=\"false\"\r\n\t\t\t\t\t\tfiltericon=\"icon icon-cancel\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</p-popover>\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 { AlertButtonMode, AlertType } from \"../enums/alert-type.enum\";\r\n\r\n/**\r\n * Configuration options for alert buttons.\r\n */\r\nexport interface AlertButtonConfig {\r\n\t/** Text to display on the confirm/OK button */\r\n\tconfirmText?: string;\r\n\t/** Text to display on the cancel button */\r\n\tcancelText?: string;\r\n}\r\n\r\n/**\r\n * Style configuration for customizing alert appearance.\r\n */\r\nexport interface AlertStyleConfig {\r\n\t/** Background color of the icon container */\r\n\ticonBackgroundColor?: string;\r\n\t/** Color of the icon */\r\n\ticonColor?: string;\r\n\t/** Color of the title text */\r\n\ttitleColor?: string;\r\n\t/** Color of the subtitle/message text */\r\n\tsubtitleColor?: string;\r\n\t/** Background color of the confirm button */\r\n\tconfirmButtonColor?: string;\r\n\t/** Text color of the confirm button */\r\n\tconfirmButtonTextColor?: string;\r\n\t/** Background color of the cancel button */\r\n\tcancelButtonColor?: string;\r\n\t/** Text color of the cancel button */\r\n\tcancelButtonTextColor?: string;\r\n\t/** Width of the dialog (e.g., '400px', '30rem') */\r\n\twidth?: string;\r\n}\r\n\r\n/**\r\n * Complete configuration options for displaying an alert.\r\n */\r\nexport interface AlertConfig {\r\n\t/** The type of alert (warning, success, error) */\r\n\ttype: AlertType;\r\n\t/** Main title text displayed in the alert */\r\n\ttitle: string;\r\n\t/** Optional subtitle/message displayed below the title */\r\n\tsubtitle?: string;\r\n\t/** Button configuration mode */\r\n\tbuttonMode?: AlertButtonMode;\r\n\t/** Custom button text configuration */\r\n\tbuttons?: AlertButtonConfig;\r\n\t/** Whether to show the close (X) button */\r\n\tshowCloseButton?: boolean;\r\n\t/** Optional HTML content to display instead of subtitle */\r\n\thtmlContent?: string;\r\n\t/** Optional custom CSS class for the popup */\r\n\tcustomClass?: string;\r\n\t/** Custom style configuration */\r\n\tstyles?: AlertStyleConfig;\r\n\t/** PrimeIcon class for custom icon (e.g., 'pi pi-check') */\r\n\tcustomIcon?: string;\r\n\t/** Custom image URL for the icon */\r\n\tcustomImageUrl?: string;\r\n}\r\n\r\n/**\r\n * Result returned after an alert is closed.\r\n */\r\nexport interface AlertResult {\r\n\t/** Whether the user confirmed the alert */\r\n\tisConfirmed: boolean;\r\n\t/** Whether the user clicked cancel */\r\n\tisCancelled: boolean;\r\n\t/** Whether the alert was dismissed (closed via X button or clicking outside) */\r\n\tisDismissed: boolean;\r\n}\r\n\r\n/**\r\n * Default configuration values for alerts.\r\n */\r\nexport const ALERT_DEFAULTS: Partial<AlertConfig> = {\r\n\tbuttonMode: AlertButtonMode.OK_ONLY,\r\n\tshowCloseButton: true,\r\n\tbuttons: {\r\n\t\tconfirmText: \"Ok\",\r\n\t\tcancelText: \"Cancelar\",\r\n\t},\r\n};\r\n\r\n/**\r\n * Configuration for each alert type.\r\n * - `titleColor`: Color for the alert title\r\n * - `icon`: PrimeIcon class (e.g., 'pi pi-exclamation-triangle')\r\n * - `iconBackgroundColor`: Background color for the icon container\r\n * - `iconColor`: Color of the icon itself\r\n * - `imageUrl`: Custom image/SVG path (takes precedence over `icon` if defined)\r\n */\r\nexport interface AlertTypeConfig {\r\n\ttitleColor: string;\r\n\ticon?: string;\r\n\ticonBackgroundColor?: string;\r\n\ticonColor?: string;\r\n\timageUrl?: string;\r\n}\r\n\r\n/**\r\n * Paths to custom SVG icons for alerts.\r\n * Icons should be placed in: public/assets/icons/alerts/\r\n */\r\nexport const ALERT_ICON_PATHS = {\r\n\terror: \"/assets/icons/alerts/alert-error.svg\",\r\n\t// warning: \"/assets/icons/alerts/alert-warning.svg\",\r\n\t// success: \"/assets/icons/alerts/alert-success.svg\",\r\n};\r\n\r\n/**\r\n * Centralized configuration for each alert type using PrimeNG icons.\r\n */\r\nexport const ALERT_TYPE_CONFIG: Record<AlertType, AlertTypeConfig> = {\r\n\t[AlertType.WARNING]: {\r\n\t\ttitleColor: \"#f0ad4e\",\r\n\t\ticon: \"pi pi-exclamation-triangle\",\r\n\t\ticonBackgroundColor: \"#fff3cd\",\r\n\t\ticonColor: \"#f0ad4e\",\r\n\t},\r\n\t[AlertType.SUCCESS]: {\r\n\t\ttitleColor: \"#5cb85c\",\r\n\t\ticon: \"pi pi-check-circle\",\r\n\t\ticonBackgroundColor: \"#d4edda\",\r\n\t\ticonColor: \"#5cb85c\",\r\n\t},\r\n\t[AlertType.ERROR]: {\r\n\t\ttitleColor: \"#d9534f\",\r\n\t\ticon: \"pi pi-times-circle\",\r\n\t\ticonBackgroundColor: \"#f8d7da\",\r\n\t\ticonColor: \"#d9534f\",\r\n\t},\r\n};\r\n","export class PageInformation {\r\n\tpageTitle: string;\r\n\tpageRoot: string | undefined;\r\n\tconstructor(pageTitle: string, pageRoot: string | undefined) {\r\n\t\tthis.pageTitle = pageTitle;\r\n\t\tthis.pageRoot = pageRoot;\r\n\t}\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, { raw: false });\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\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\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 = false,\r\n\t\theaderGroups: IExcelHeaderGroup[] = []\r\n\t) {\r\n\t\tconst workbook = new Workbook();\r\n\t\tconst worksheet = workbook.addWorksheet(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(rowsSerializate, worksheet, columns, imageId, subtitles, showTotalRow, headerGroups);\r\n\t\tthis.SetTitle(worksheet, reportTitle);\r\n\t\tif (filters.length > 0) {\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\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: \"203764\" },\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) {\r\n\t\tlet columnsCell: string[] = [];\r\n\t\tlet rows = JSON.parse(rowsSerializate);\r\n\t\tlet isHeaderGood = 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 (isHeaderGood) {\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\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: \"17375e\" },\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}${isHeaderGood ? startRow + 1 : startRow}`;\r\n\t\t\tif (groupedIndices.has(i)) {\r\n\t\t\t\tcolumnsCell.push(bottomCell);\r\n\t\t\t\tworksheet.getCell(bottomCell).value = columns[i].displayColumnName;\r\n\t\t\t\tworksheet.getCell(bottomCell).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.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: \"17375e\" },\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (isHeaderGood) 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 ? { formula: `\"${col.totalRowValue}\"`, result: col.totalRowValue } : 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: \"FF7F00\" },\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 = { bottom: { style: \"thin\", color: { argb: \"FF7F00\" } } };\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: \"FF7F00\" },\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 = { bottom: { style: \"thin\", color: { argb: \"FF7F00\" } } };\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\tfor (let rowIndex = 0; rowIndex < numberRows; rowIndex++) {\r\n\t\t\tconst rowValues: string[] = [];\r\n\t\t\tfor (let colIndex = 0; colIndex < columns.length; colIndex++) {\r\n\t\t\t\trowValues.push(colIndex === 0 ? `${rowIndex + 1}` : rows[rowIndex][columns[colIndex].columnName] ?? \"\");\r\n\t\t\t}\r\n\t\t\tconst insertedRow = worksheet.addRow(rowValues);\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\tcell.numFmt = this.GetNumberFormat(col.formatNumber);\r\n\t\t\t\t\tcell.value = Number(cell.value);\r\n\t\t\t\t}\r\n\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\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: \"17375e\" },\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: \"D9D9D9\" },\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: \"203764\" },\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.5 },\r\n\t\t\text: { width: 218, height: 58 },\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\tbold: true,\r\n\t\t\t\titalic: true,\r\n\t\t\t\tsize: 10,\r\n\t\t\t\tcolor: { argb: \"203764\" },\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);\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 ? \"D9D9D9\" : \"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: \"203764\" },\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[]) {\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\tif (rowIndex === 1) return;\r\n\t\t\tlet maxLines = 1;\r\n\t\t\trow.eachCell((cell, colNumber) => {\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).toString();\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], { type: \"text/csv;charset=utf-8;\" });\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\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","import { Injectable, inject } from \"@angular/core\";\r\nimport { ConfirmationService, Confirmation } from \"primeng/api\";\r\nimport { AlertButtonMode, AlertType } from \"../enums/alert-type.enum\";\r\nimport { ALERT_DEFAULTS, ALERT_TYPE_CONFIG, AlertConfig, AlertResult, AlertStyleConfig, AlertTypeConfig } from \"../model/alert.model\";\r\n\r\n@Injectable({\r\n\tprovidedIn: \"root\",\r\n})\r\nexport class AlertService {\r\n\tprivate readonly confirmationService = inject(ConfirmationService);\r\n\tprivate readonly DIALOG_KEY = 'intelica-alert-dialog';\r\n\r\n\t/**\r\n\t * Displays a warning alert with yellow styling.\r\n\t * Can be called with (title, subtitle, buttonMode, buttons) OR (title, subtitle, buttons).\r\n\t */\r\n\twarning(\r\n\t\ttitle: string,\r\n\t\tsubtitle?: string,\r\n\t\tmodeOrButtons?: AlertButtonMode | { confirmText?: string; cancelText?: string },\r\n\t\tbuttons?: { confirmText?: string; cancelText?: string }\r\n\t): Promise<AlertResult> {\r\n\t\tconst { buttonMode, buttonConfig } = this.resolveArgs(modeOrButtons, buttons);\r\n\t\treturn this.show({\r\n\t\t\ttype: AlertType.WARNING,\r\n\t\t\ttitle,\r\n\t\t\tsubtitle,\r\n\t\t\tbuttonMode,\r\n\t\t\tbuttons: buttonConfig,\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Displays a success alert with green styling.\r\n\t * Can be called with (title, subtitle, buttonMode, buttons) OR (title, subtitle, buttons).\r\n\t */\r\n\tsuccess(\r\n\t\ttitle: string,\r\n\t\tsubtitle?: string,\r\n\t\tmodeOrButtons?: AlertButtonMode | { confirmText?: string; cancelText?: string },\r\n\t\tbuttons?: { confirmText?: string; cancelText?: string }\r\n\t): Promise<AlertResult> {\r\n\t\tconst { buttonMode, buttonConfig } = this.resolveArgs(modeOrButtons, buttons);\r\n\t\treturn this.show({\r\n\t\t\ttype: AlertType.SUCCESS,\r\n\t\t\ttitle,\r\n\t\t\tsubtitle,\r\n\t\t\tbuttonMode,\r\n\t\t\tbuttons: buttonConfig,\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Displays an error alert with red styling.\r\n\t * Can be called with (title, subtitle, buttonMode, buttons) OR (title, subtitle, buttons).\r\n\t */\r\n\terror(\r\n\t\ttitle: string,\r\n\t\tsubtitle?: string,\r\n\t\tmodeOrButtons?: AlertButtonMode | { confirmText?: string; cancelText?: string },\r\n\t\tbuttons?: { confirmText?: string; cancelText?: string }\r\n\t): Promise<AlertResult> {\r\n\t\tconst { buttonMode, buttonConfig } = this.resolveArgs(modeOrButtons, buttons);\r\n\t\treturn this.show({\r\n\t\t\ttype: AlertType.ERROR,\r\n\t\t\ttitle,\r\n\t\t\tsubtitle,\r\n\t\t\tbuttonMode,\r\n\t\t\tbuttons: buttonConfig,\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Helper to resolve flexible arguments.\r\n\t * If 3rd arg is object (not string enum), treat it as buttons config and default mode to OK_ONLY.\r\n\t * If 3rd arg is string (enum), treat it as mode and 4th as buttons config.\r\n\t */\r\n\tprivate resolveArgs(\r\n\t\tmodeOrButtons?: AlertButtonMode | { confirmText?: string; cancelText?: string },\r\n\t\tbuttons?: { confirmText?: string; cancelText?: string }\r\n\t): { buttonMode: AlertButtonMode; buttonConfig?: { confirmText?: string; cancelText?: string } } {\r\n\t\tif (modeOrButtons && typeof modeOrButtons === 'object') {\r\n\t\t\t// USAGE: success(title, subtitle, { confirmText: 'Ok', cancelText: 'Cancel' })\r\n\t\t\t// Auto-detect mode based on presence of cancelText\r\n\t\t\tconst hasCancel = !!(modeOrButtons as any).cancelText;\r\n\t\t\treturn {\r\n\t\t\t\tbuttonMode: hasCancel ? AlertButtonMode.CONFIRM_CANCEL : AlertButtonMode.OK_ONLY,\r\n\t\t\t\tbuttonConfig: modeOrButtons\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t// USAGE: success(title, subtitle, AlertButtonMode.CONFIRM_CANCEL, { ... })\r\n\t\t// OR default\r\n\t\treturn {\r\n\t\t\tbuttonMode: (modeOrButtons as AlertButtonMode) ?? AlertButtonMode.OK_ONLY,\r\n\t\t\tbuttonConfig: buttons\r\n\t\t};\r\n\t}\r\n\r\n\tmessage(message: string, type: AlertType = AlertType.WARNING): Promise<AlertResult> {\r\n\t\treturn this.show({\r\n\t\t\ttype,\r\n\t\t\ttitle: message,\r\n\t\t\tbuttonMode: AlertButtonMode.OK_ONLY,\r\n\t\t});\r\n\t}\r\n\r\n\tconfirm(\r\n\t\ttitle: string,\r\n\t\tsubtitle?: string,\r\n\t\tconfirmText: string = \"Confirmar\",\r\n\t\tcancelText: string = \"Cancelar\",\r\n\t\ttype: AlertType = AlertType.WARNING\r\n\t): Promise<AlertResult> {\r\n\t\treturn this.show({\r\n\t\t\ttype,\r\n\t\t\ttitle,\r\n\t\t\tsubtitle,\r\n\t\t\tbuttonMode: AlertButtonMode.CONFIRM_CANCEL,\r\n\t\t\tbuttons: { confirmText, cancelText },\r\n\t\t});\r\n\t}\r\n\r\n\tshowHtml(\r\n\t\ttitle: string,\r\n\t\thtmlContent: string,\r\n\t\ttype: AlertType = AlertType.WARNING,\r\n\t\tbuttonMode: AlertButtonMode = AlertButtonMode.OK_ONLY\r\n\t): Promise<AlertResult> {\r\n\t\treturn this.show({\r\n\t\t\ttype,\r\n\t\t\ttitle,\r\n\t\t\thtmlContent,\r\n\t\t\tbuttonMode,\r\n\t\t});\r\n\t}\r\n\r\n\tshowWithStyles(config: AlertConfig, styles: AlertStyleConfig): Promise<AlertResult> {\r\n\t\treturn this.show({\r\n\t\t\t...config,\r\n\t\t\tstyles,\r\n\t\t});\r\n\t}\r\n\r\n\tshow(config: AlertConfig): Promise<AlertResult> {\r\n\t\treturn new Promise<AlertResult>((resolve) => {\r\n\t\t\tconst mergedConfig = this.mergeWithDefaults(config);\r\n\t\t\tconst typeConfig = ALERT_TYPE_CONFIG[mergedConfig.type];\r\n\r\n\t\t\t// Prepare data object for the view\r\n\t\t\tconst data = {\r\n\t\t\t\tconfig: mergedConfig,\r\n\t\t\t\ttypeConfig: typeConfig,\r\n\t\t\t\ticonClass: this.getIconClass(mergedConfig, typeConfig),\r\n\t\t\t\ticonBackgroundColor: this.getIconBackgroundColor(mergedConfig, typeConfig),\r\n\t\t\t\ticonColor: this.getIconColor(mergedConfig, typeConfig),\r\n\t\t\t\ttitleColor: this.getTitleColor(mergedConfig, typeConfig),\r\n\t\t\t\tshowCancelButton: this.showCancelButton(mergedConfig),\r\n\t\t\t\tconfirmText: this.getConfirmText(mergedConfig),\r\n\t\t\t\tcancelText: this.getCancelText(mergedConfig),\r\n\t\t\t\tdialogStyle: {\r\n\t\t\t\t\twidth: mergedConfig.styles?.width ?? \"400px\",\r\n\t\t\t\t\tmaxWidth: \"90vw\",\r\n\t\t\t\t\tborderRadius: \"12px\",\r\n\t\t\t\t\toverflow: \"hidden\",\r\n\t\t\t\t},\r\n\t\t\t\tconfirmButtonStyle: this.getConfirmButtonStyle(mergedConfig),\r\n\t\t\t\tcancelButtonStyle: this.getCancelButtonStyle(mergedConfig),\r\n\t\t\t\t// Add manual dismiss handler to data so template can call it if needed, \r\n\t\t\t\t// though explicit close button in template can just use reject or logic.\r\n\t\t\t\t// For custom headers/X buttons usually we initiate close.\r\n\t\t\t};\r\n\r\n\t\t\tconst confirmation: Confirmation = {\r\n\t\t\t\tkey: this.DIALOG_KEY,\r\n\t\t\t\tmessage: mergedConfig.subtitle,\r\n\t\t\t\theader: mergedConfig.title,\r\n\t\t\t\ticon: data.iconClass,\r\n\t\t\t\tdismissableMask: true,\r\n\t\t\t\tcloseOnEscape: true,\r\n\t\t\t\taccept: () => {\r\n\t\t\t\t\tresolve({\r\n\t\t\t\t\t\tisConfirmed: true,\r\n\t\t\t\t\t\tisCancelled: false,\r\n\t\t\t\t\t\tisDismissed: false,\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\treject: (type?: number) => {\r\n\t\t\t\t\tresolve({\r\n\t\t\t\t\t\tisConfirmed: false,\r\n\t\t\t\t\t\tisCancelled: true,\r\n\t\t\t\t\t\tisDismissed: false,\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t};\r\n\r\n\t\t\t// Cast to any to allow 'data' property if it doesn't exist on type\r\n\t\t\t(confirmation as any).data = data;\r\n\r\n\t\t\tthis.confirmationService.confirm(confirmation);\r\n\t\t});\r\n\t}\r\n\r\n\t// Private Helper Methods (Presentation Logic)\r\n\r\n\tprivate mergeWithDefaults(config: AlertConfig): AlertConfig {\r\n\t\treturn {\r\n\t\t\t...ALERT_DEFAULTS,\r\n\t\t\t...config,\r\n\t\t\tbuttons: {\r\n\t\t\t\t...ALERT_DEFAULTS.buttons,\r\n\t\t\t\t...config.buttons,\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tprivate getIconClass(config: AlertConfig | null, typeConfig: AlertTypeConfig | null): string {\r\n\t\tif (config?.customIcon) {\r\n\t\t\treturn config.customIcon;\r\n\t\t}\r\n\t\treturn typeConfig?.icon ?? \"pi pi-info-circle\";\r\n\t}\r\n\r\n\tprivate getIconBackgroundColor(config: AlertConfig | null, typeConfig: AlertTypeConfig | null): string {\r\n\t\tif (config?.styles?.iconBackgroundColor) {\r\n\t\t\treturn config.styles.iconBackgroundColor;\r\n\t\t}\r\n\t\treturn typeConfig?.iconBackgroundColor ?? \"#e3f2fd\";\r\n\t}\r\n\r\n\tprivate getIconColor(config: AlertConfig | null, typeConfig: AlertTypeConfig | null): string {\r\n\t\tif (config?.styles?.iconColor) {\r\n\t\t\treturn config.styles.iconColor;\r\n\t\t}\r\n\t\treturn typeConfig?.iconColor ?? \"#1976d2\";\r\n\t}\r\n\r\n\tprivate getTitleColor(config: AlertConfig | null, typeConfig: AlertTypeConfig | null): string {\r\n\t\tif (config?.styles?.titleColor) {\r\n\t\t\treturn config.styles.titleColor;\r\n\t\t}\r\n\t\treturn typeConfig?.titleColor ?? \"#333\";\r\n\t}\r\n\r\n\tprivate showCancelButton(config: AlertConfig | null): boolean {\r\n\t\treturn config?.buttonMode === AlertButtonMode.CONFIRM_CANCEL;\r\n\t}\r\n\r\n\tprivate getConfirmText(config: AlertConfig | null): string {\r\n\t\treturn config?.buttons?.confirmText ?? \"Ok\";\r\n\t}\r\n\r\n\tprivate getCancelText(config: AlertConfig | null): string {\r\n\t\treturn config?.buttons?.cancelText ?? \"Cancelar\";\r\n\t}\r\n\r\n\tprivate getConfirmButtonStyle(config: AlertConfig | null): Record<string, string> {\r\n\t\tconst styles = config?.styles;\r\n\t\tconst baseStyle: Record<string, string> = {\r\n\t\t\tminWidth: \"120px\",\r\n\t\t};\r\n\t\tif (styles?.confirmButtonColor) {\r\n\t\t\tbaseStyle[\"backgroundColor\"] = styles.confirmButtonColor;\r\n\t\t\tbaseStyle[\"borderColor\"] = styles.confirmButtonColor;\r\n\t\t}\r\n\t\tif (styles?.confirmButtonTextColor) {\r\n\t\t\tbaseStyle[\"color\"] = styles.confirmButtonTextColor;\r\n\t\t}\r\n\t\treturn baseStyle;\r\n\t}\r\n\r\n\tprivate getCancelButtonStyle(config: AlertConfig | null): Record<string, string> {\r\n\t\tconst styles = config?.styles;\r\n\t\tconst baseStyle: Record<string, string> = {\r\n\t\t\tminWidth: \"120px\",\r\n\t\t};\r\n\t\tif (styles?.cancelButtonColor) {\r\n\t\t\tbaseStyle[\"backgroundColor\"] = styles.cancelButtonColor;\r\n\t\t\tbaseStyle[\"borderColor\"] = styles.cancelButtonColor;\r\n\t\t}\r\n\t\tif (styles?.cancelButtonTextColor) {\r\n\t\t\tbaseStyle[\"color\"] = styles.cancelButtonTextColor;\r\n\t\t}\r\n\t\treturn baseStyle;\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 { 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\tBarSeriesOption,\r\n\tDefaultLabelFormatterCallbackParams,\r\n\tEChartsOption,\r\n\tGridComponentOption,\r\n\tLabelFormatterCallback,\r\n\tLegendComponentOption,\r\n\tLineSeriesOption,\r\n\tPieSeriesOption,\r\n\tTooltipComponentFormatterCallback,\r\n\tTooltipComponentFormatterCallbackParams,\r\n\tYAXisComponentOption,\r\n} from \"echarts\";\r\nimport { Color, getColor } from \"../constants/color.constants\";\r\nimport { darkenColor } from \"../functions/echart.util\";\r\nimport { FormatAmountPipe } from \"../pipes/amount.pipe\";\r\n\r\n@Injectable({\r\n\tprovidedIn: \"root\",\r\n})\r\nexport class EchartService {\r\n\tprivate readonly _formatAmountPipe = inject(FormatAmountPipe);\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\t// lineStyle: {\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\tlineStyle: { width: 1, color: Color.gray, type: [5, 5], cap: \"round\" },\r\n\t\t\t},\r\n\t\t\taxisLabel: {\r\n\t\t\t\tfontFamily: \"Lato, sans-serif\",\r\n\t\t\t\tshow: true,\r\n\t\t\t\t// show: 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 = true, format: boolean = true, showAxisLines: boolean = true) {\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) => {\r\n\t\t\t\tconst formatted = this._formatAmountPipe.transform(value, true, 0, true);\r\n\t\t\t\treturn formatted === \"-\" ? 0 : formatted;\r\n\t\t\t};\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\t// left: \"0%\",\r\n\t\t\t// right: \"0%\",\r\n\t\t\t// //bottom: '0%',\r\n\t\t\t// containLabel: true,\r\n\t\t\tleft: 0,\r\n\t\t\tright: 0,\r\n\t\t\ttop: 20,\r\n\t\t\tbottom: 40,\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\t// orient: \"horizontal\", // 'horizontal | vertical'\r\n\t\t\t// icon: \"circle\",\r\n\t\t\t// bottom: 5,\r\n\t\t\t// align: \"auto\",\r\n\t\t\t// itemGap: 20,\r\n\t\t\t// textStyle: { color: Color.blue, fontSize: 14 },\r\n\t\t\tdata: [{ name: \"Expenses\", icon: \"circle\" }],\r\n\t\t\tbottom: 0,\r\n\t\t\ttextStyle: {\r\n\t\t\t\tcolor: \"#4E546F\",\r\n\t\t\t\tfontFamily: \"Lato, sans-serif\",\r\n\t\t\t\tfontSize: 12,\r\n\t\t\t\tlineHeight: 12,\r\n\t\t\t},\r\n\t\t\titemWidth: 10,\r\n\t\t\titemHeight: 10,\r\n\t\t\titemGap: 25,\r\n\t\t\talign: \"left\",\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\ttextStyle: { fontFamily: \"Lato, sans-serif\" },\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, borderRadius: 8 },\r\n\t\t\t\t\t\tdata: item.value,\r\n\t\t\t\t\t\tbarWidth: \"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\tappendTo: \"body\",\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(false, true, false);\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 = (serie.itemStyle as any)?.color ?? (series[idx] && series[idx].color) ?? \"#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}\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\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\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\r\n\t\t\t\tconst text = String(value ?? \"\");\r\n\t\t\t\tconst prefix = `${index + 1} - `;\r\n\r\n\t\t\t\tconst digitCount = String(index + 1).length;\r\n\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\r\n\t\t\t\tconst sangria = sangriaBase + \"\\u2008\".repeat(extraRepeat);\r\n\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\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 {\r\n\t\t\t\t\t\tif (current) lines.push(current);\r\n\t\t\t\t\t\tcurrent = w;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (current) lines.push(current);\r\n\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\r\n\t\t\t// y.inverse = true;\r\n\t\t\t// y.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\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\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\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\tappendTo: \"body\t\",\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\tappendTo: \"body\",\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\tappendTo: \"body\",\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\t/**\r\n\t * Semi doughnut gauge (half circle) with:\r\n\t * - Progress arc\r\n\t * - End dot\r\n\t * - Center letter\r\n\t *\r\n\t * @param letter - Text to show in the center\r\n\t * @param value - Current value\r\n\t * @param textSize - Center letter font size\r\n\t * @param color - Progress and end dot color\r\n\t * @param total - Max value (default 100)\r\n\t */\r\n\tgetRateSemiDoughnutOptions(letter: string, value: number, textSize: number, color: string, total: number = 100, bottomText?: string): EChartsOption {\r\n\t\tconst safeTotal = total > 0 ? total : 100;\r\n\t\tconst safeValue = Math.max(0, Math.min(value, safeTotal));\r\n\r\n\t\tconst START_ANGLE = 210;\r\n\t\tconst END_ANGLE = -30;\r\n\r\n\t\tconst THICKNESS = 11;\r\n\t\tconst BACKGROUND_COLOR = \"#D9D9E3\";\r\n\t\tconst TEXT_COLOR = \"#4F5470\";\r\n\r\n\t\tconst MIN_LABEL = \"0\";\r\n\t\tconst MAX_LABEL = String(safeTotal);\r\n\t\tconst MIN_MAX_FONT_SIZE = 15;\r\n\r\n\t\tconst RADIUS = \"96%\";\r\n\t\tconst CENTER: [string, string] = [\"50%\", \"50%\"];\r\n\r\n\t\tconst dotSizePx = THICKNESS + 5;\r\n\t\tconst POINTER_LENGTH = \"98%\";\r\n\r\n\t\tconst option: EChartsOption = {\r\n\t\t\ttooltip: { trigger: \"none\", appendTo: \"body\" },\r\n\t\t\tseries: [\r\n\t\t\t\t/* ================= GAUGE 1: PROGRESS ================= */\r\n\t\t\t\t{\r\n\t\t\t\t\ttype: \"gauge\",\r\n\t\t\t\t\tradius: RADIUS,\r\n\t\t\t\t\tcenter: CENTER,\r\n\t\t\t\t\tstartAngle: START_ANGLE,\r\n\t\t\t\t\tendAngle: END_ANGLE,\r\n\t\t\t\t\tmin: 0,\r\n\t\t\t\t\tmax: safeTotal,\r\n\r\n\t\t\t\t\tpointer: { show: false },\r\n\r\n\t\t\t\t\tprogress: {\r\n\t\t\t\t\t\tshow: true,\r\n\t\t\t\t\t\troundCap: true,\r\n\t\t\t\t\t\twidth: THICKNESS,\r\n\t\t\t\t\t\titemStyle: { color },\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\taxisLine: {\r\n\t\t\t\t\t\troundCap: true,\r\n\t\t\t\t\t\tlineStyle: {\r\n\t\t\t\t\t\t\twidth: THICKNESS,\r\n\t\t\t\t\t\t\tcolor: [[1, BACKGROUND_COLOR]],\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\taxisTick: { show: false },\r\n\t\t\t\t\tsplitLine: { show: false },\r\n\t\t\t\t\taxisLabel: { show: false },\r\n\r\n\t\t\t\t\tdetail: {\r\n\t\t\t\t\t\tshow: true,\r\n\t\t\t\t\t\toffsetCenter: [0, \"8%\"],\r\n\t\t\t\t\t\tformatter: () => (bottomText ? `{letter|${letter}}\\n{bottom|${bottomText}}` : `{letter|${letter}}`),\r\n\t\t\t\t\t\trich: {\r\n\t\t\t\t\t\t\tletter: {\r\n\t\t\t\t\t\t\t\tfontSize: textSize,\r\n\t\t\t\t\t\t\t\tfontWeight: 700,\r\n\t\t\t\t\t\t\t\tcolor: TEXT_COLOR,\r\n\t\t\t\t\t\t\t\tfontFamily: \"Lato, sans-serif\",\r\n\t\t\t\t\t\t\t\tlineHeight: textSize + 2,\r\n\t\t\t\t\t\t\t\talign: \"center\",\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tbottom: {\r\n\t\t\t\t\t\t\t\tfontSize: 16,\r\n\t\t\t\t\t\t\t\tfontWeight: 500,\r\n\t\t\t\t\t\t\t\tcolor: TEXT_COLOR,\r\n\t\t\t\t\t\t\t\tfontFamily: \"Lato, sans-serif\",\r\n\t\t\t\t\t\t\t\tlineHeight: 22,\r\n\t\t\t\t\t\t\t\talign: \"center\",\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\r\n\t\t\t\t\tdata: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvalue: safeValue,\r\n\t\t\t\t\t\t\tname: \"0\",\r\n\t\t\t\t\t\t\ttitle: {\r\n\t\t\t\t\t\t\t\tshow: true,\r\n\t\t\t\t\t\t\t\tformatter: () => MIN_LABEL,\r\n\t\t\t\t\t\t\t\toffsetCenter: [\"-80%\", \"66%\"],\r\n\t\t\t\t\t\t\t\tfontSize: MIN_MAX_FONT_SIZE,\r\n\t\t\t\t\t\t\t\tcolor: TEXT_COLOR,\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvalue: safeValue,\r\n\t\t\t\t\t\t\tname: \"100\",\r\n\t\t\t\t\t\t\ttitle: {\r\n\t\t\t\t\t\t\t\tshow: true,\r\n\t\t\t\t\t\t\t\tformatter: () => MAX_LABEL,\r\n\t\t\t\t\t\t\t\toffsetCenter: [\"80%\", \"66%\"],\r\n\t\t\t\t\t\t\t\tfontSize: MIN_MAX_FONT_SIZE,\r\n\t\t\t\t\t\t\t\tcolor: TEXT_COLOR,\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} as any,\r\n\r\n\t\t\t\t/* ================= GAUGE 2: END DOT ================= */\r\n\t\t\t\t{\r\n\t\t\t\t\ttype: \"gauge\",\r\n\t\t\t\t\tradius: RADIUS,\r\n\t\t\t\t\tcenter: CENTER,\r\n\t\t\t\t\tstartAngle: START_ANGLE,\r\n\t\t\t\t\tendAngle: END_ANGLE,\r\n\t\t\t\t\tmin: 0,\r\n\t\t\t\t\tmax: safeTotal,\r\n\r\n\t\t\t\t\taxisLine: { show: false },\r\n\t\t\t\t\tprogress: { show: false },\r\n\t\t\t\t\tsplitLine: { show: false },\r\n\t\t\t\t\taxisTick: { show: false },\r\n\t\t\t\t\taxisLabel: { show: false },\r\n\t\t\t\t\tdetail: { show: false },\r\n\r\n\t\t\t\t\tpointer: {\r\n\t\t\t\t\t\tshow: true,\r\n\t\t\t\t\t\ticon: \"circle\",\r\n\t\t\t\t\t\tlength: POINTER_LENGTH,\r\n\t\t\t\t\t\twidth: dotSizePx,\r\n\t\t\t\t\t\titemStyle: {\r\n\t\t\t\t\t\t\tcolor,\r\n\t\t\t\t\t\t\tborderWidth: 0,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\tdata: [{ value: safeValue }],\r\n\t\t\t\t} as any,\r\n\t\t\t],\r\n\t\t};\r\n\r\n\t\treturn option;\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 { ConfigService } from \"./config.service\";\r\n@Injectable({\r\n\tprovidedIn: \"root\",\r\n})\r\nexport class AuthenticationService {\r\n\tprivate readonly _http = inject(HttpClient);\r\n\tprivate readonly _configService = inject(ConfigService);\r\n\tGetPrivateValue(): Observable<string> {\r\n\t\treturn this._http.get<string>(`${this._configService.environment?.authenticationPath}/Authenticate/GetPrivateValue`);\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 { inject, Injectable, signal } from \"@angular/core\";\r\nimport { getCookie } from \"typescript-cookie\";\r\nimport { AuthenticationService } from \"./authentication.service\";\r\nimport { decryptData } from \"../functions/decryptRSA\";\r\n@Injectable({ providedIn: \"root\" })\r\nexport class ProfileService {\r\n\tprivate readonly AuthenticationService = inject(AuthenticationService);\r\n\tProfile?: any = null;\r\n\tPrivateKey: string = \"\";\r\n\tProfileReady = signal<boolean>(false);\r\n\tInitialize(): void {\r\n\t\tthis.AuthenticationService.GetPrivateValue().subscribe(response => {\r\n\t\t\tthis.PrivateKey = response;\r\n\t\t\tthis.SetProfile();\r\n\t\t});\r\n\t}\r\n\tSetProfile() {\r\n\t\tconst profileCookie = getCookie(\"profile\");\r\n\t\tif (profileCookie) {\r\n\t\t\tconst decrypted = decryptData(profileCookie, this.PrivateKey);\r\n\t\t\tthis.Profile = decrypted ? JSON.parse(decrypted) : null;\r\n\t\t} else this.Profile = null;\r\n\t\tthis.ProfileReady.set(true);\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, signal } from \"@angular/core\";\r\n\r\ninterface MenuVisibilityEventDetail {\r\n\tmenuIsVisible: boolean;\r\n}\r\n\r\nexport interface ProductEventDetail {\r\n\tproductId: string;\r\n\tproduct: string;\r\n\ticon: string;\r\n}\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class GlobalMenuService {\r\n\tprivate _isMenuVisible = signal<boolean>(true);\r\n\tprivate _selectedProduct = signal<ProductEventDetail>({ product: \"\", icon: \"\", productId: \"\" });\r\n\r\n\tpublic isMenuVisible = this._isMenuVisible.asReadonly();\r\n\tpublic selectedProduct = this._selectedProduct.asReadonly();\r\n\r\n\tprivate readonly eventMenu = \"MenuBarEvent\";\r\n\tprivate readonly eventProducts = \"SelectedProductMenuEvent\";\r\n\r\n\tinitialize() {\r\n\t\tthis.listenMenuEvents();\r\n\t}\r\n\r\n\tpublic setMenuVisibility(isVisible: boolean): void {\r\n\t\tthis.emitMenuEvent(isVisible);\r\n\t}\r\n\r\n\tpublic setSelectedProduct(product: ProductEventDetail): void {\r\n\t\tthis.emitSelectedProductEvent(product);\r\n\t}\r\n\r\n\tprivate listenMenuEvents(): void {\r\n\t\twindow.addEventListener(this.eventMenu, this.onMenuEvent);\r\n\t\twindow.addEventListener(this.eventProducts, this.onSelectedProductEvent);\r\n\t}\r\n\r\n\tprivate onMenuEvent = (event: Event): void => {\r\n\t\tconst { menuIsVisible } = (event as CustomEvent<MenuVisibilityEventDetail>).detail ?? {};\r\n\t\tif (typeof menuIsVisible === \"boolean\") this._isMenuVisible.set(menuIsVisible);\r\n\t};\r\n\r\n\tprivate onSelectedProductEvent = (event: Event): void => {\r\n\t\tconst detail = (event as CustomEvent<ProductEventDetail>).detail;\r\n\t\tif (!detail) return;\r\n\r\n\t\tconst { product, icon, productId: authClient } = detail;\r\n\t\tif (typeof product === \"string\" && typeof icon === \"string\" && typeof authClient === \"string\") {\r\n\t\t\tthis._selectedProduct.set({ product, icon, productId: authClient });\r\n\t\t}\r\n\t};\r\n\r\n\tprivate emitMenuEvent(isVisible: boolean): void {\r\n\t\tconst event = new CustomEvent(this.eventMenu, {\r\n\t\t\tdetail: { menuIsVisible: isVisible } satisfies MenuVisibilityEventDetail,\r\n\t\t});\r\n\t\twindow.dispatchEvent(event);\r\n\t}\r\n\r\n\tprivate emitSelectedProductEvent(selectedProduct: ProductEventDetail): void {\r\n\t\tconst event = new CustomEvent(this.eventProducts, {\r\n\t\t\tdetail: { product: selectedProduct.product, icon: selectedProduct.icon, productId: selectedProduct.productId } satisfies ProductEventDetail,\r\n\t\t});\r\n\t\twindow.dispatchEvent(event);\r\n\t}\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable, shareReplay, throwError } from \"rxjs\";\r\nimport { catchError } from \"rxjs/operators\";\r\n\r\ninterface CacheEntry<T> {\r\n\texpiresAt: number;\r\n\tvalue$: Observable<T>;\r\n}\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class RequestCacheService {\r\n\tprivate readonly cache = new Map<string, CacheEntry<unknown>>();\r\n\tprivate readonly maxEntries = 300;\r\n\tprivate readonly defaultTtlMs = 5 * 60 * 1000;\r\n\r\n\tpublic getOrSet<T>(key: string, factory: () => Observable<T>, ttlMs: number = this.defaultTtlMs): Observable<T> {\r\n\t\tthis.removeExpiredEntries();\r\n\t\tconst now = Date.now();\r\n\t\tconst cached = this.cache.get(key) as CacheEntry<T> | undefined;\r\n\r\n\t\tif (cached && cached.expiresAt > now) {\r\n\t\t\treturn cached.value$;\r\n\t\t}\r\n\r\n\t\tconst value$ = factory().pipe(\r\n\t\t\tshareReplay(1),\r\n\t\t\tcatchError(error => {\r\n\t\t\t\tthis.cache.delete(key);\r\n\t\t\t\treturn throwError(() => error);\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\tthis.cache.set(key, { value$, expiresAt: now + Math.max(ttlMs, 0) });\r\n\t\tthis.enforceCapacityLimit();\r\n\t\treturn value$;\r\n\t}\r\n\r\n\tpublic invalidate(prefix?: string): void {\r\n\t\tif (!prefix) {\r\n\t\t\tthis.cache.clear();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tfor (const key of this.cache.keys()) {\r\n\t\t\tif (key.startsWith(prefix)) {\r\n\t\t\t\tthis.cache.delete(key);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate removeExpiredEntries(): void {\r\n\t\tconst now = Date.now();\r\n\t\tfor (const [key, entry] of this.cache.entries()) {\r\n\t\t\tif (entry.expiresAt <= now) {\r\n\t\t\t\tthis.cache.delete(key);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate enforceCapacityLimit(): void {\r\n\t\twhile (this.cache.size > this.maxEntries) {\r\n\t\t\tconst oldestKey = this.cache.keys().next().value as string | undefined;\r\n\t\t\tif (!oldestKey) break;\r\n\t\t\tthis.cache.delete(oldestKey);\r\n\t\t}\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 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\t// brown: {\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// },//Change\r\n\t\t// beige: {\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// },//Change\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\t//transitionDuration: \"0.2s\",//Change\r\n\t\t//iconSize: \"1rem\",//Change\r\n\t\t//anchorGutter: \"2px\",//Change\r\n\t\t// list: {\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// },//change\r\n\t\t// content: {\r\n\t\t// \tborderRadius: \"{border.radius.md}\",\r\n\t\t// },\r\n\t\t// mask: {\r\n\t\t// \ttransitionDuration: \"0.15s\",\r\n\t\t// },\r\n\t\t// navigation: {\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\t//transparent: \"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\t// secondary: {\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\t// secondary: {\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\t//paddingX: \"1.0rem\", // change\r\n\t\t\t\t\t//paddingY: \"0.6rem\", // change\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\t//borderRadius: \"{border.radius.sm}\",//change\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\t//borderRadius: \"{border.radius.md}\",\r\n\t\t\t\t\t\t//shadow: \"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\t//borderRadius: \"{border.radius.md}\",\r\n\t\t\t\t\t\t//padding: \"0\",\r\n\t\t\t\t\t\t//shadow: \"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\t//borderRadius: \"{border.radius.xl}\",\r\n\t\t\t\t\t\t//padding: \"1.5rem\",\r\n\t\t\t\t\t\t//shadow: \"none\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\t// navigation: {\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\t// focusRing: {\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\t// borderRadius: {\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\t//disabledOpacity: \"1\",\r\n\t\t\t\tlist: {\r\n\t\t\t\t\t//padding: \"0rem\",\r\n\t\t\t\t\t//gap: \"0rem\",\r\n\t\t\t\t\toption: {\r\n\t\t\t\t\t\t//borderRadius: \"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\t// secondary: {\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\t//paddingX: \"1.0rem\", // added by CA\r\n\t\t\t\t\t//paddingY: \"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\t//borderRadius: \"{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\t//borderRadius: \"{border.radius.md}\",\r\n\t\t\t\t\t\t//shadow: \"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\t//borderRadius: \"{border.radius.md}\",\r\n\t\t\t\t\t\t//padding: \"0\",\r\n\t\t\t\t\t\t//shadow: \"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\t//borderRadius: \"{border.radius.xl}\",\r\n\t\t\t\t\t\t//padding: \"1.5rem\",\r\n\t\t\t\t\t\t//shadow: \"none\",\r\n\t\t\t\t\t},\r\n\t\t\t\t\t// navigation: {\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\t// focusRing: {\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\t// borderRadius: {\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\t//disabledOpacity: \"1\",\r\n\t\t\t\tlist: {\r\n\t\t\t\t\t//padding: \"0rem\",\r\n\t\t\t\t\t//gap: \"0rem\",\r\n\t\t\t\t\toption: {\r\n\t\t\t\t\t\t//borderRadius: \"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\t// text: {\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\t// text: {\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\t//background: \"{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\t//hoverBorderColor: \"{gray.400}\",\r\n\t\t\t\t\t\t\t//activeBorderColor: \"{gray.400}\",\r\n\t\t\t\t\t\t\tcolor: \"{blue.700}\",\r\n\t\t\t\t\t\t\t//hoverColor: \"#ffffff\",\r\n\t\t\t\t\t\t\t//activeColor: \"#ffffff\",\r\n\t\t\t\t\t\t\t// focusRing: {\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\t// borderWidth: \"0px\" //Change\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\t//columnResizerWidth: \"0.5rem\",//Change\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\t// stepIcon: {\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// },//Change\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\t//borderRadius: \"1rem\",//Change\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\t//contentBackground: \"{content.border.color}\",//Change\r\n\t\t\t\t\t\t// range: {\r\n\t\t\t\t\t\t// \tbackground: \"{content.border.color}\",\r\n\t\t\t\t\t\t// },//Change\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\t//contentBackground: \"{content.border.color} \",//Change\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","// notification/dto/recipient-dispatch-error.dto.ts\r\n\r\n/**\r\n * Error mínimo de dispatch para campanas / UI.\r\n * - Fuente: progress (SignalR) + persistencia (rehidratación recipients)\r\n * - Key natural: recipientId\r\n * - Escalable: agrega campos opcionales sin romper consumers.\r\n */\r\nexport interface RecipientDispatchError {\r\n\trecipientId: string;\r\n\r\n\t/** Texto del último error (si el backend lo provee) */\r\n\tlastErrorMessage: string | null;\r\n\r\n\t/** Campos opcionales útiles (ya existen en progress) */\r\n\tnotificationId?: string;\r\n\tjobId?: string | null;\r\n\r\n\tchannelCode?: string;\r\n\tstatusCode?: string;\r\n\r\n\tattempts?: number;\r\n\tlastAttemptAt?: string | null;\r\n\r\n\t/** Identificadores de negocio si los quieres luego */\r\n\tuserId?: string | null;\r\n\tclientId?: string | null;\r\n\tgroupId?: string | null;\r\n}\r\n","import { inject, Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\nimport { NotificationRecipientSummaryResponse } from \"./dto/notification-response.dto\";\r\nimport { UserNotificationInboxItem } from \"./dto/notification-inbox-response.dto\";\r\nimport { ConfigService } from \"../services/config.service\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class NotificationService {\r\n\tprivate readonly configService = inject(ConfigService);\r\n\tprivate readonly path = `${this.configService.environment?.notificationsPath}/Notifications`;\r\n\tprivate readonly defaultHeaders = new HttpHeaders({\r\n\t\trefreshtoken: \"f06c110a-ea4e-44a9-896f-210f3b387e57\",\r\n\t\tlanguagecode: \"EN\",\r\n\t\tpageRoot: \"\",\r\n\t\tauthorization:\r\n\t\t\t\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwcmVmZXJyZWRfdXNlcm5hbWUiOiJBbGV4YW5kZXIiLCJmdWxsTmFtZSI6IkFsZXhhbmRlciBUb3JyZSIsInN1YiI6Ijg3ZTQxYzZlLWNmN2EtNDk4MC05YTQ1LThjZjllNWMwOGMzZCIsImVtYWlsIjoiam9oYW4uY2FyYm9uZWxAaW50ZWxpY2EuY29tIiwiYnVzaW5lc3NVc2VyQ2xpZW50R3JvdXBJRCI6ImNlMjE5NDAyLWQyMDAtNGU1Yy1iNzE0LWJkNDJiMjZhNzNkNSIsImJhbmtzSUQiOiJnUlZPUEt6V3BNbHQ2NFE3OWdDcUxlQ1pFeWp2RjVFQVo0TmNMVTQvZlhJMVlvbERPeEFOV0NWTUpFYkJYRDJQUHkvUi8xdDVQVHBFZ08vcFFPcnMwVnNNeWRONkVocEY5MzRCRDJFRXhlelVyakZWWVduWitrcCtObGRLOU56VWg4VjZaRjBVTzEyN0JIaG12aGhUNzZMRm51Zm9nSndUTHVuOW5qMFpEaSsxV3MxTHkzZytzWkNYSVdTelR3QjBEc1g5Y2tXSTJrWmFHeWhHVlFhTlliT3hGYzU5UU9xV0pxQUJqdmVBdFNEaGNQdFZta3RIOXFaaEJ5Tkphdkh5R1pkWWJScXovcUZPOW1HUC92NjVScFZ5djNwejhCZUtvMVlJVW5vSUFqSU9udzRTMEkzcmxaSTNrTExBRFFOdnhBSk81NjgvZTVvdWlVZFd3SDlJd2c9PSIsImlzSW50ZWxpY2EiOiIxIiwiY2xpZW50R3JvdXBJRCI6ImU5ZDc1ODY3LTZkMDQtNGNiMC1iZjMxLTE5MmI5Y2VjMzVkYSIsImNsaWVudElEIjoiMDYzMGU0MDEtMzk1Ny00OTU5LTljYTUtYjM1MGVkNmU5Yjk2IiwiYm5rR3JvdXBJRCI6IjAiLCJpbXJwUHJvamVjdElEIjoiMTAwNjMyIiwiZXhwIjoxNzY4ODU3MTUwLCJpc3MiOiJpbnRlbGljYS5jb20iLCJhdWQiOiJpbnRlbGljYS5jb20ifQ.n0BGAUHrp6BiA_XpgTw6WdresOk_C3aaON7V7AcF5uo\",\r\n\t});\r\n\r\n\tconstructor(private http: HttpClient) {}\r\n\r\n\tgetNotificacionsByUser(userId: string): Observable<UserNotificationInboxItem[]> {\r\n\t\treturn this.http.get<UserNotificationInboxItem[]>(`${this.path}/users/${encodeURIComponent(userId)}`, { headers: this.defaultHeaders });\r\n\t}\r\n\r\n\tmarkAsRead(recipientId: string): Observable<NotificationRecipientSummaryResponse> {\r\n\t\treturn this.http.post<NotificationRecipientSummaryResponse>(`${this.path}/users/recipients/${recipientId}/read`, {}, { headers: this.defaultHeaders });\r\n\t}\r\n\r\n\tmarkAsHidden(recipientId: string): Observable<NotificationRecipientSummaryResponse> {\r\n\t\treturn this.http.post<NotificationRecipientSummaryResponse>(`${this.path}/users/recipients/${recipientId}/hidden`, {}, { headers: this.defaultHeaders });\r\n\t}\r\n}\r\n","import { inject, Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { ConfigService } from \"../services/config.service\";\r\nimport { catchError, map, Observable, of } from \"rxjs\";\r\nimport { NotificationJobResponse, NotificationRecipientSummaryResponse, NotificationResponse } from \"./dto/notification-response.dto\";\r\nimport { CreateNotificationJobRequest, CreateNotificationsForJobRequest } from \"./dto/notification-request.dto\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class NotificationJobService {\r\n\tprivate readonly configService = inject(ConfigService);\r\n\tprivate readonly path = `${this.configService.environment?.notificationsPath}/NotificationJobs`;\r\n\tprivate readonly defaultHeaders = new HttpHeaders({\r\n\t\trefreshtoken: \"f06c110a-ea4e-44a9-896f-210f3b387e57\",\r\n\t\tlanguagecode: \"EN\",\r\n\t\tpageRoot: \"\",\r\n\t\tauthorization:\r\n\t\t\t\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwcmVmZXJyZWRfdXNlcm5hbWUiOiJBbGV4YW5kZXIiLCJmdWxsTmFtZSI6IkFsZXhhbmRlciBUb3JyZSIsInN1YiI6Ijg3ZTQxYzZlLWNmN2EtNDk4MC05YTQ1LThjZjllNWMwOGMzZCIsImVtYWlsIjoiam9oYW4uY2FyYm9uZWxAaW50ZWxpY2EuY29tIiwiYnVzaW5lc3NVc2VyQ2xpZW50R3JvdXBJRCI6ImNlMjE5NDAyLWQyMDAtNGU1Yy1iNzE0LWJkNDJiMjZhNzNkNSIsImJhbmtzSUQiOiJnUlZPUEt6V3BNbHQ2NFE3OWdDcUxlQ1pFeWp2RjVFQVo0TmNMVTQvZlhJMVlvbERPeEFOV0NWTUpFYkJYRDJQUHkvUi8xdDVQVHBFZ08vcFFPcnMwVnNNeWRONkVocEY5MzRCRDJFRXhlelVyakZWWVduWitrcCtObGRLOU56VWg4VjZaRjBVTzEyN0JIaG12aGhUNzZMRm51Zm9nSndUTHVuOW5qMFpEaSsxV3MxTHkzZytzWkNYSVdTelR3QjBEc1g5Y2tXSTJrWmFHeWhHVlFhTlliT3hGYzU5UU9xV0pxQUJqdmVBdFNEaGNQdFZta3RIOXFaaEJ5Tkphdkh5R1pkWWJScXovcUZPOW1HUC92NjVScFZ5djNwejhCZUtvMVlJVW5vSUFqSU9udzRTMEkzcmxaSTNrTExBRFFOdnhBSk81NjgvZTVvdWlVZFd3SDlJd2c9PSIsImlzSW50ZWxpY2EiOiIxIiwiY2xpZW50R3JvdXBJRCI6ImU5ZDc1ODY3LTZkMDQtNGNiMC1iZjMxLTE5MmI5Y2VjMzVkYSIsImNsaWVudElEIjoiMDYzMGU0MDEtMzk1Ny00OTU5LTljYTUtYjM1MGVkNmU5Yjk2IiwiYm5rR3JvdXBJRCI6IjAiLCJpbXJwUHJvamVjdElEIjoiMTAwNjMyIiwiZXhwIjoxNzY4ODU3MTUwLCJpc3MiOiJpbnRlbGljYS5jb20iLCJhdWQiOiJpbnRlbGljYS5jb20ifQ.n0BGAUHrp6BiA_XpgTw6WdresOk_C3aaON7V7AcF5uo\",\r\n\t});\r\n\r\n\tconstructor(private http: HttpClient) {}\r\n\r\n\tcreateJobNotifications(payload: CreateNotificationJobRequest): Observable<NotificationJobResponse> {\r\n\t\treturn this.http.post<NotificationJobResponse>(`${this.path}/notifications`, payload, {\r\n\t\t\theaders: this.defaultHeaders,\r\n\t\t});\r\n\t}\r\n\r\n\tcreateJob(payload: CreateNotificationJobRequest): Observable<NotificationJobResponse> {\r\n\t\treturn this.http.post<NotificationJobResponse>(`${this.path}`, payload, {\r\n\t\t\theaders: this.defaultHeaders,\r\n\t\t});\r\n\t}\r\n\r\n\tgetJob(jobId: string): Observable<NotificationJobResponse> {\r\n\t\treturn this.http.get<NotificationJobResponse>(`${this.path}/${jobId}`);\r\n\t}\r\n\r\n\tcreateNotifications(jobId: string, payload: CreateNotificationsForJobRequest[]): Observable<NotificationResponse> {\r\n\t\treturn this.http.post<NotificationResponse>(`${this.path}/${jobId}/notifications`, payload, { headers: this.defaultHeaders });\r\n\t}\r\n\r\n\tgetActiveJob(featureCode: string, origin?: string): Observable<NotificationJobResponse | null> {\r\n\t\tlet url = `${this.path}/active?featureCode=${encodeURIComponent(featureCode)}`;\r\n\t\tif (origin) {\r\n\t\t\turl += `&origin=${encodeURIComponent(origin)}`;\r\n\t\t}\r\n\r\n\t\treturn this.http.get<NotificationJobResponse[]>(url, { headers: this.defaultHeaders }).pipe(\r\n\t\t\tmap(list => (Array.isArray(list) && list.length > 0 ? list[0] : null)),\r\n\t\t\tcatchError(err => {\r\n\t\t\t\tconsole.error(\"Error obteniendo active jobs\", err);\r\n\t\t\t\treturn of(null);\r\n\t\t\t})\r\n\t\t);\r\n\t}\r\n\r\n\tgetRecipients(jobId: string): Observable<NotificationRecipientSummaryResponse[]> {\r\n\t\treturn this.http.get<NotificationRecipientSummaryResponse[]>(`${this.path}/${jobId}/recipients`, { headers: this.defaultHeaders });\r\n\t}\r\n}\r\n","import { inject, Injectable, NgZone } from \"@angular/core\";\r\nimport * as signalR from \"@microsoft/signalr\";\r\nimport { Subject } from \"rxjs\";\r\nimport { ConfigService } from \"../services/config.service\";\r\nimport { RecipientNotification } from \"./dto/notification-message-response.dto\";\r\nimport { RecipientProgressNotification } from \"./dto/notification-progress-message-response.dto\";\r\nimport { CallbackExecutionResult } from \"./dto/notification-callback-message-response.dto\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class NotificationSignalRService {\r\n\tprivate readonly configService = inject(ConfigService);\r\n\tprivate readonly path = `${this.configService.environment?.signalPath}/websocket`;\r\n\r\n\tprivate hubConnection?: signalR.HubConnection;\r\n\tprivate startPromise?: Promise<void>;\r\n\r\n\t// Mantiene los grupos a los que ya nos unimos (idempotencia + rejoin tras reconexión)\r\n\tprivate joinedGroups = new Set<string>();\r\n\r\n\tprivate notificationSendSubject = new Subject<RecipientNotification>();\r\n\tnotificationSend$ = this.notificationSendSubject.asObservable();\r\n\r\n\tprivate jobProgressSubject = new Subject<RecipientProgressNotification>();\r\n\tjobProgress$ = this.jobProgressSubject.asObservable();\r\n\r\n\tprivate callbackResultSubject = new Subject<CallbackExecutionResult>();\r\n\tcallbackResult$ = this.callbackResultSubject.asObservable();\r\n\r\n\tconstructor(private zone: NgZone) {}\r\n\r\n\t/**\r\n\t * Inicia la conexión una sola vez. Reutiliza la promesa para evitar carreras.\r\n\t */\r\n\tstartConnection(): Promise<void> {\r\n\t\tif (this.startPromise) return this.startPromise;\r\n\r\n\t\tthis.hubConnection = new signalR.HubConnectionBuilder().withUrl(this.path).withAutomaticReconnect().build();\r\n\t\tthis.hubConnection.keepAliveIntervalInMilliseconds = 15_000;\r\n\t\tthis.hubConnection.serverTimeoutInMilliseconds = 120_000;\r\n\r\n\t\tthis.registerListeners();\r\n\t\tthis.registerReconnectHandlers();\r\n\r\n\t\tthis.startPromise = this.hubConnection.start().catch(err => {\r\n\t\t\tconsole.error(\"Error starting SignalR connection\", err);\r\n\t\t\tthis.startPromise = undefined; // permitir reintentar\r\n\t\t\tthrow err;\r\n\t\t});\r\n\r\n\t\treturn this.startPromise;\r\n\t}\r\n\r\n\t/**\r\n\t * Se une a un grupo de forma idempotente.\r\n\t * Importante: esta función garantiza que la conexión esté iniciada.\r\n\t */\r\n\tasync joinScope(scopeType: string, scopeId: string): Promise<void> {\r\n\t\tawait this.startConnection();\r\n\t\tif (!this.hubConnection) return;\r\n\r\n\t\tconst groupName = `${scopeType}-${scopeId}`;\r\n\r\n\t\tif (this.joinedGroups.has(groupName)) return;\r\n\r\n\t\tawait this.hubConnection.invoke(\"Connect\", groupName);\r\n\t\tthis.joinedGroups.add(groupName);\r\n\t}\r\n\r\n\t/**\r\n\t * Sale de un grupo y actualiza el estado local.\r\n\t * Requiere que el Hub implemente el método Disconnect(groupName).\r\n\t */\r\n\tasync leaveScope(scopeType: string, scopeId: string): Promise<void> {\r\n\t\tif (!this.hubConnection) return;\r\n\r\n\t\tconst groupName = `${scopeType}-${scopeId}`;\r\n\r\n\t\tif (!this.joinedGroups.has(groupName)) return;\r\n\r\n\t\tawait this.hubConnection.invoke(\"Disconnect\", groupName);\r\n\t\tthis.joinedGroups.delete(groupName);\r\n\t}\r\n\r\n\t/**\r\n\t * Detiene la conexión y limpia estado local.\r\n\t * Útil si quieres liberar recursos al cerrar sesión.\r\n\t */\r\n\tasync stopConnection(): Promise<void> {\r\n\t\tif (!this.hubConnection) return;\r\n\r\n\t\ttry {\r\n\t\t\tawait this.hubConnection.stop();\r\n\t\t} finally {\r\n\t\t\tthis.joinedGroups.clear();\r\n\t\t\tthis.hubConnection = undefined;\r\n\t\t\tthis.startPromise = undefined;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate registerListeners(): void {\r\n\t\tif (!this.hubConnection) return;\r\n\r\n\t\tthis.hubConnection.on(\"NotificationSend\", (raw: string) => {\r\n\t\t\tthis.zone.run(() => {\r\n\t\t\t\tconst data = JSON.parse(raw) as RecipientNotification;\r\n\t\t\t\tthis.notificationSendSubject.next(data);\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.hubConnection.on(\"JobProgress\", (raw: string) => {\r\n\t\t\tthis.zone.run(() => {\r\n\t\t\t\tconst data = JSON.parse(raw) as RecipientProgressNotification;\r\n\t\t\t\tthis.jobProgressSubject.next(data);\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.hubConnection.on(\"CallbackResult\", (raw: string) => {\r\n\t\t\tthis.zone.run(() => {\r\n\t\t\t\tconst data = JSON.parse(raw) as CallbackExecutionResult;\r\n\t\t\t\tthis.callbackResultSubject.next(data);\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t// Opcional (tu hub lo emite): útil para debugging\r\n\t\tthis.hubConnection.on(\"Connect\", (_msg: string) => {});\r\n\t}\r\n\r\n\t/**\r\n\t * SignalR pierde pertenencia a grupos tras reconexión: re-join automático.\r\n\t */\r\n\tprivate registerReconnectHandlers(): void {\r\n\t\tif (!this.hubConnection) return;\r\n\r\n\t\tthis.hubConnection.onreconnected(async () => {\r\n\t\t\ttry {\r\n\t\t\t\tfor (const groupName of this.joinedGroups) {\r\n\t\t\t\t\tawait this.hubConnection!.invoke(\"Connect\", groupName);\r\n\t\t\t\t}\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.error(\"Error rejoining groups after reconnection\", e);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.hubConnection.onclose(() => {\r\n\t\t\t// Mantén joinedGroups para poder rejoin si el usuario vuelve a startConnection()\r\n\t\t\tthis.startPromise = undefined;\r\n\t\t});\r\n\t}\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject, Subject, firstValueFrom, Observable } from \"rxjs\";\r\nimport { NotificationJobService } from \"./notification-job.service\";\r\nimport { NotificationSignalRService } from \"./notification-signalr.service\";\r\nimport { JobState } from \"./dto/job-state.dto\";\r\nimport { NotificationDraft } from \"./dto/notification-draft.dto\";\r\nimport { RecipientNotification } from \"./dto/notification-message-response.dto\";\r\nimport { NotificationRecipientSummaryResponse } from \"./dto/notification-response.dto\";\r\nimport { CreateNotificationJobRequest, CreateNotificationsForJobRequest } from \"./dto/notification-request.dto\";\r\nimport { RecipientDispatchError } from \"./dto/recipient-dispatch-error.dto\";\r\nimport { NotificationService } from \"./notification.service\";\r\nimport { UserNotificationInboxItem } from \"./dto/notification-inbox-response.dto\";\r\nimport { RecipientProgressNotification } from \"./dto/notification-progress-message-response.dto\";\r\nimport { CallbackExecutionResult } from \"./dto/notification-callback-message-response.dto\";\r\nimport { JobStatusCatalog, OriginCatalog } from \"./dto/notification-catalog.dto\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class NotificationOrchestratorService {\r\n\t// Config actual (feature/origin) del “scope”\r\n\tprivate origin?: OriginCatalog;\r\n\tprivate featureCode?: string;\r\n\r\n\tprivate currentJobId?: string;\r\n\tprivate subscribedJobId?: string;\r\n\r\n\t// --- streams públicos (feature/origin job state)\r\n\tprivate readonly jobStateSubject = new BehaviorSubject<JobState>({\r\n\t\tstatus: \"pending\",\r\n\t\tprocessedCount: 0,\r\n\t\ttotalCount: 0,\r\n\t\tprocessedNotificationsCount: 0,\r\n\t\ttotalNotificationsCount: 0,\r\n\t});\r\n\treadonly jobState$ = this.jobStateSubject.asObservable();\r\n\r\n\tprivate readonly dispatchErrorsMapSubject = new BehaviorSubject<Map<string, RecipientDispatchError>>(new Map());\r\n\treadonly dispatchErrors$ = this.dispatchErrorsMapSubject.asObservable();\r\n\r\n\tprivate readonly callbackRawSubject = new Subject<CallbackExecutionResult>();\r\n\treadonly callbackRaw$ = this.callbackRawSubject.asObservable();\r\n\r\n\t/**\r\n\t * Router de progreso por jobId (para UIs multi-job).\r\n\t */\r\n\tprivate readonly jobProgressSubjects = new Map<string, Subject<RecipientProgressNotification>>();\r\n\tprivate readonly jobWatchRefCount = new Map<string, number>();\r\n\r\n\t/**\r\n\t * Router de NotificationSend por userId (campana/inbox).\r\n\t */\r\n\tprivate readonly userInboxSubjects = new Map<string, Subject<RecipientNotification>>();\r\n\tprivate readonly userWatchRefCount = new Map<string, number>();\r\n\r\n\t// Guard anti-carreras para rehidratación\r\n\tprivate initInFlight?: Promise<void>;\r\n\r\n\tconstructor(\r\n\t\tprivate jobService: NotificationJobService,\r\n\t\tprivate notificationService: NotificationService,\r\n\t\tprivate signalR: NotificationSignalRService\r\n\t) {\r\n\t\t// stream global SignalR => orquestador enruta\r\n\t\tthis.signalR.jobProgress$.subscribe(update => this.onJobProgress(update));\r\n\t\tthis.signalR.callbackResult$.subscribe(update => this.onCallbackResult(update));\r\n\t\tthis.signalR.notificationSend$.subscribe(update => this.onNotificationSend(update));\r\n\t}\r\n\r\n\t// ---------------------------------------------------------------------\r\n\t// API pública para UI: Inbox user-scoped (NotificationSend)\r\n\t// ---------------------------------------------------------------------\r\n\r\n\tasync watchUserInbox(userId: string): Promise<Observable<RecipientNotification>> {\r\n\t\tif (!userId) throw new Error(\"userId is required\");\r\n\r\n\t\tconst current = this.userWatchRefCount.get(userId) ?? 0;\r\n\t\tthis.userWatchRefCount.set(userId, current + 1);\r\n\r\n\t\tawait this.signalR.joinScope(\"user\", userId);\r\n\r\n\t\treturn this.userInbox$(userId);\r\n\t}\r\n\r\n\tasync unwatchUserInbox(userId: string): Promise<void> {\r\n\t\tif (!userId) return;\r\n\r\n\t\tconst current = this.userWatchRefCount.get(userId) ?? 0;\r\n\r\n\t\tif (current <= 1) {\r\n\t\t\tthis.userWatchRefCount.delete(userId);\r\n\r\n\t\t\tawait this.signalR.leaveScope(\"user\", userId);\r\n\r\n\t\t\tconst subj = this.userInboxSubjects.get(userId);\r\n\t\t\tif (subj) {\r\n\t\t\t\tsubj.complete();\r\n\t\t\t\tthis.userInboxSubjects.delete(userId);\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.userWatchRefCount.set(userId, current - 1);\r\n\t}\r\n\r\n\tuserInbox$(userId: string): Observable<RecipientNotification> {\r\n\t\tlet subj = this.userInboxSubjects.get(userId);\r\n\t\tif (!subj) {\r\n\t\t\tsubj = new Subject<RecipientNotification>();\r\n\t\t\tthis.userInboxSubjects.set(userId, subj);\r\n\t\t}\r\n\t\treturn subj.asObservable();\r\n\t}\r\n\r\n\t// ---------------------------------------------------------------------\r\n\t// API pública para UI: Job progress por jobId (PRG)\r\n\t// ---------------------------------------------------------------------\r\n\r\n\tasync watchJobProgress(jobId: string): Promise<Observable<RecipientProgressNotification>> {\r\n\t\tif (!jobId) throw new Error(\"jobId is required\");\r\n\r\n\t\tconst current = this.jobWatchRefCount.get(jobId) ?? 0;\r\n\t\tthis.jobWatchRefCount.set(jobId, current + 1);\r\n\r\n\t\tawait this.signalR.joinScope(\"job\", jobId);\r\n\r\n\t\treturn this.jobProgress$(jobId);\r\n\t}\r\n\r\n\tasync unwatchJobProgress(jobId: string): Promise<void> {\r\n\t\tif (!jobId) return;\r\n\r\n\t\tconst current = this.jobWatchRefCount.get(jobId) ?? 0;\r\n\r\n\t\tif (current <= 1) {\r\n\t\t\tthis.jobWatchRefCount.delete(jobId);\r\n\r\n\t\t\tawait this.signalR.leaveScope(\"job\", jobId);\r\n\r\n\t\t\tconst subj = this.jobProgressSubjects.get(jobId);\r\n\t\t\tif (subj) {\r\n\t\t\t\tsubj.complete();\r\n\t\t\t\tthis.jobProgressSubjects.delete(jobId);\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.jobWatchRefCount.set(jobId, current - 1);\r\n\t}\r\n\r\n\tjobProgress$(jobId: string): Observable<RecipientProgressNotification> {\r\n\t\tlet subj = this.jobProgressSubjects.get(jobId);\r\n\t\tif (!subj) {\r\n\t\t\tsubj = new Subject<RecipientProgressNotification>();\r\n\t\t\tthis.jobProgressSubjects.set(jobId, subj);\r\n\t\t}\r\n\t\treturn subj.asObservable();\r\n\t}\r\n\r\n\t// ---------------------------------------------------------------------\r\n\t// Scope feature/origin (tu lógica existente)\r\n\t// ---------------------------------------------------------------------\r\n\r\n\trehydrateScope(origin: OriginCatalog, featureCode: string): Promise<void> {\r\n\t\tthis.origin = origin;\r\n\t\tthis.featureCode = featureCode;\r\n\r\n\t\tif (this.initInFlight) return this.initInFlight;\r\n\r\n\t\tthis.initInFlight = (async () => {\r\n\t\t\ttry {\r\n\t\t\t\tawait this.rehydrateActiveJobInternal();\r\n\t\t\t} finally {\r\n\t\t\t\tthis.initInFlight = undefined;\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\treturn this.initInFlight;\r\n\t}\r\n\r\n\tgetCurrentJobId(): string | undefined {\r\n\t\treturn this.currentJobId;\r\n\t}\r\n\r\n\tgetJobStateSnapshot(): JobState {\r\n\t\treturn this.jobStateSubject.value;\r\n\t}\r\n\r\n\tasync ensureActiveOrCreateJobNotifications(notificationDraft: NotificationDraft[]): Promise<{ jobId: string; mode: \"active\" | \"created\" }> {\r\n\t\tif (!this.origin || !this.featureCode) throw new Error(\"Scope not initialized. Call rehydrateScope(featureCode, origin) first.\");\r\n\r\n\t\tif (this.currentJobId) {\r\n\t\t\treturn { jobId: this.currentJobId, mode: \"active\" };\r\n\t\t}\r\n\r\n\t\tconst jobPayload: CreateNotificationJobRequest = {\r\n\t\t\tfeatureCode: this.featureCode,\r\n\t\t\torigin: this.origin,\r\n\t\t\ttotalCount: notificationDraft?.length ?? 0,\r\n\t\t\ttotalNotificationsCount: notificationDraft?.filter(n => n.recipients?.some(r => r.isRequiredForProcessed)).length ?? 0,\r\n\t\t};\r\n\r\n\t\tconst job = await firstValueFrom(this.jobService.createJob(jobPayload));\r\n\t\tthis.currentJobId = job.jobId;\r\n\r\n\t\tthis.setJobState({\r\n\t\t\tjobId: this.currentJobId,\r\n\t\t\tstatus: \"pending\",\r\n\t\t\tprocessedCount: 0,\r\n\t\t\ttotalCount: jobPayload.totalCount,\r\n\t\t\tprocessedNotificationsCount: 0,\r\n\t\t\ttotalNotificationsCount: jobPayload.totalNotificationsCount,\r\n\t\t});\r\n\r\n\t\tawait this.subscribeToJob(this.currentJobId);\r\n\r\n\t\tconst notifications: CreateNotificationsForJobRequest[] = notificationDraft.map(draft => ({\r\n\t\t\toriginReference: `${draft.originReference}-${job.jobId}`,\r\n\t\t\tnotificationTypeCode: draft.notificationTypeCode,\r\n\t\t\tdestination: draft.destination,\r\n\t\t\tdestinationLabel: draft.destinationLabel,\r\n\t\t\tbucketName: draft.bucketName,\r\n\t\t\ttemplateName: draft.templateName,\r\n\t\t\ttemplateData: draft.templateData,\r\n\t\t\tpriorityCode: draft.priorityCode,\r\n\t\t\ttitle: draft.title,\r\n\t\t\tbody: draft.body,\r\n\t\t\tmetaData: draft.metaData,\r\n\t\t\trecipients: draft.recipients,\r\n\t\t\tactions: draft.actions,\r\n\t\t\tattachments: draft.attachments,\r\n\t\t\tcallbacks: draft.callbacks,\r\n\t\t}));\r\n\r\n\t\tawait firstValueFrom(this.jobService.createNotifications(job.jobId, notifications));\r\n\r\n\t\treturn { jobId: this.currentJobId, mode: \"created\" };\r\n\t}\r\n\r\n\tasync ensureCreateJobNotifications(origin: OriginCatalog, featureCode: string, notificationDraft: NotificationDraft[]): Promise<void> {\r\n\t\tif (!origin || !featureCode) throw new Error(\"Scope not initialized.\");\r\n\r\n\t\tconst jobPayload: CreateNotificationJobRequest = {\r\n\t\t\tfeatureCode: featureCode,\r\n\t\t\torigin: origin,\r\n\t\t\ttotalCount: 1,\r\n\t\t\ttotalNotificationsCount: 1,\r\n\t\t\tnotifications: notificationDraft.map(draft => ({\r\n\t\t\t\toriginReference: draft.originReference,\r\n\t\t\t\tnotificationTypeCode: draft.notificationTypeCode,\r\n\t\t\t\tdestination: draft.destination,\r\n\t\t\t\tdestinationLabel: draft.destinationLabel,\r\n\t\t\t\tbucketName: draft.bucketName,\r\n\t\t\t\ttemplateName: draft.templateName,\r\n\t\t\t\ttemplateData: draft.templateData,\r\n\t\t\t\tpriorityCode: draft.priorityCode,\r\n\t\t\t\ttitle: draft.title,\r\n\t\t\t\tbody: draft.body,\r\n\t\t\t\tmetaData: draft.metaData,\r\n\t\t\t\trecipients: draft.recipients,\r\n\t\t\t\tactions: draft.actions,\r\n\t\t\t\tattachments: draft.attachments,\r\n\t\t\t\tcallbacks: draft.callbacks,\r\n\t\t\t})),\r\n\t\t};\r\n\r\n\t\tawait firstValueFrom(this.jobService.createJobNotifications(jobPayload));\r\n\t}\r\n\r\n\tasync markAsRead(recipientId: string): Promise<NotificationRecipientSummaryResponse> {\r\n\t\tconst result = await firstValueFrom(this.notificationService.markAsRead(recipientId));\r\n\t\treturn result;\r\n\t}\r\n\r\n\tasync markAsHidden(recipientId: string): Promise<NotificationRecipientSummaryResponse> {\r\n\t\tconst result = await firstValueFrom(this.notificationService.markAsHidden(recipientId));\r\n\t\treturn result;\r\n\t}\r\n\r\n\tasync getNotificacionsByUser(userId: string): Promise<UserNotificationInboxItem[]> {\r\n\t\tconst items = await firstValueFrom(this.notificationService.getNotificacionsByUser(userId));\r\n\t\treturn items;\r\n\t}\r\n\r\n\tresetLocal(): void {\r\n\t\tthis.currentJobId = undefined;\r\n\t\tthis.setJobState({ status: \"pending\", processedCount: 0, totalCount: 0, processedNotificationsCount: 0, totalNotificationsCount: 0 });\r\n\t\tthis.dispatchErrorsMapSubject.next(new Map());\r\n\t}\r\n\r\n\tprivate async rehydrateActiveJobInternal(): Promise<void> {\r\n\t\tif (!this.featureCode || !this.origin) return;\r\n\r\n\t\tconst active = await firstValueFrom(this.jobService.getActiveJob(this.featureCode, this.origin));\r\n\r\n\t\tif (!active) {\r\n\t\t\t//this.currentJobId = undefined;\r\n\t\t\t//this.setJobState({ status: \"idle\", processedCount: 0, totalCount: 0, processedNotificationsCount: 0, totalNotificationsCount: 0 });\r\n\t\t\t//this.dispatchErrorsMapSubject.next(new Map());\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.currentJobId = active.jobId;\r\n\r\n\t\tthis.setJobState({\r\n\t\t\tjobId: active.jobId,\r\n\t\t\tstatus: (active.statusCode?.toLowerCase() as JobStatusCatalog) || \"running\",\r\n\t\t\tprocessedCount: active.processedCount ?? 0,\r\n\t\t\ttotalCount: active.totalCount ?? 0,\r\n\t\t\tprocessedNotificationsCount: active.processedNotificationsCount ?? 0,\r\n\t\t\ttotalNotificationsCount: active.totalNotificationsCount ?? 0,\r\n\t\t});\r\n\r\n\t\tconst recipients: NotificationRecipientSummaryResponse[] = await firstValueFrom(this.jobService.getRecipients(active.jobId));\r\n\t\tconst map = new Map<string, RecipientDispatchError>();\r\n\r\n\t\tfor (const r of recipients) {\r\n\t\t\tif (r.recipientId && r.statusCode === \"failed\") {\r\n\t\t\t\tmap.set(r.recipientId, {\r\n\t\t\t\t\trecipientId: r.recipientId,\r\n\t\t\t\t\tlastErrorMessage: r.lastErrorMessage ?? null,\r\n\t\t\t\t\tchannelCode: r.channelCode || undefined,\r\n\t\t\t\t\tstatusCode: r.statusCode,\r\n\t\t\t\t\tattempts: r.attempts,\r\n\t\t\t\t\tlastAttemptAt: r.lastAttemptAt ?? null,\r\n\t\t\t\t\tuserId: r.userId ?? null,\r\n\t\t\t\t\tclientId: r.clientId ?? null,\r\n\t\t\t\t\tgroupId: r.groupId ?? null,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.dispatchErrorsMapSubject.next(map);\r\n\r\n\t\tawait this.subscribeToJob(active.jobId);\r\n\t}\r\n\r\n\tprivate async subscribeToJob(jobId: string): Promise<void> {\r\n\t\tif (this.subscribedJobId && this.subscribedJobId !== jobId) {\r\n\t\t\tawait this.signalR.leaveScope(\"job\", this.subscribedJobId);\r\n\t\t\tawait this.signalR.leaveScope(\"callBack\", this.subscribedJobId);\r\n\t\t}\r\n\r\n\t\tthis.subscribedJobId = jobId;\r\n\r\n\t\tawait this.signalR.joinScope(\"job\", jobId);\r\n\t\tawait this.signalR.joinScope(\"callBack\", jobId);\r\n\t}\r\n\r\n\tprivate onNotificationSend(update: RecipientNotification): void {\r\n\t\t// Enrutado por userId para campana/inbox\r\n\t\tif (update.userId) {\r\n\t\t\tthis.userInboxSubjects.get(update.userId)?.next(update);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate onJobProgress(update: RecipientProgressNotification): void {\r\n\t\t// Enrutado por jobId para UIs multi-job\r\n\t\tif (update.jobId) {\r\n\t\t\tthis.jobProgressSubjects.get(update.jobId)?.next(update);\r\n\t\t}\r\n\r\n\t\t// Lógica existente: solo aplica al job \"actual\" (feature/origin)\r\n\t\tif (!this.currentJobId || update.jobId !== this.currentJobId) return;\r\n\r\n\t\tif (update.recipientId) {\r\n\t\t\tconst current = this.dispatchErrorsMapSubject.value;\r\n\t\t\tconst next = new Map(current);\r\n\r\n\t\t\tif ((update.jobStatusCode ?? \"\").toLowerCase() === \"failed\") {\r\n\t\t\t\tnext.set(update.recipientId, {\r\n\t\t\t\t\trecipientId: update.recipientId,\r\n\t\t\t\t\tlastErrorMessage: update.lastErrorMessage ?? null,\r\n\r\n\t\t\t\t\tnotificationId: update.notificationId,\r\n\t\t\t\t\tjobId: update.jobId ?? null,\r\n\r\n\t\t\t\t\tchannelCode: update.channelCode,\r\n\t\t\t\t\tstatusCode: update.jobStatusCode,\r\n\r\n\t\t\t\t\tattempts: update.attempts,\r\n\t\t\t\t\tlastAttemptAt: update.lastAttemptAt ?? null,\r\n\r\n\t\t\t\t\tuserId: update.userId ?? null,\r\n\t\t\t\t\tclientId: update.clientId ?? null,\r\n\t\t\t\t\tgroupId: update.groupId ?? null,\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tnext.delete(update.recipientId);\r\n\t\t\t}\r\n\r\n\t\t\tthis.dispatchErrorsMapSubject.next(next);\r\n\t\t}\r\n\r\n\t\tif (typeof update.jobProcessedCount === \"number\" && typeof update.jobTotalCount === \"number\") {\r\n\t\t\tthis.setJobState({\r\n\t\t\t\tjobId: update.jobId,\r\n\t\t\t\tstatus: update.jobStatusCode?.toLowerCase() as JobStatusCatalog,\r\n\t\t\t\tprocessedCount: update.jobProcessedCount,\r\n\t\t\t\ttotalCount: update.jobTotalCount,\r\n\t\t\t\tprocessedNotificationsCount: update.jobProcessedNotificationsCount,\r\n\t\t\t\ttotalNotificationsCount: update.jobTotalNotificationsCount,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (update.jobStatusCode?.toLowerCase() === \"completed\") {\r\n\t\t\tthis.setJobState({\r\n\t\t\t\tjobId: this.jobStateSubject.value.jobId,\r\n\t\t\t\tstatus: this.jobStateSubject.value.status,\r\n\t\t\t\tprocessedCount: this.jobStateSubject.value.processedCount,\r\n\t\t\t\ttotalCount: this.jobStateSubject.value.totalCount,\r\n\t\t\t\tprocessedNotificationsCount: this.jobStateSubject.value.processedNotificationsCount,\r\n\t\t\t\ttotalNotificationsCount: this.jobStateSubject.value.totalNotificationsCount,\r\n\t\t\t});\r\n\t\t} else if (this.jobStateSubject.value.status === \"pending\") {\r\n\t\t\tthis.setJobState({ ...this.jobStateSubject.value, status: \"pending\" });\r\n\t\t} else if (this.jobStateSubject.value.status === \"running\") {\r\n\t\t\tthis.setJobState({ ...this.jobStateSubject.value, status: \"running\" });\r\n\t\t}\r\n\t}\r\n\r\n\tprivate onCallbackResult(update: CallbackExecutionResult): void {\r\n\t\tupdate.payload = update.payload ? JSON.parse(update.payload) : null;\r\n\t\tupdate.responseBody = update.responseBody ? JSON.parse(update.responseBody) : null;\r\n\t\tthis.callbackRawSubject.next(update);\r\n\t}\r\n\r\n\tprivate setJobState(state: JobState): void {\r\n\t\tthis.jobStateSubject.next({\r\n\t\t\tjobId: state.jobId,\r\n\t\t\tstatus: state.status,\r\n\t\t\tprocessedCount: state.processedCount,\r\n\t\t\ttotalCount: state.totalCount,\r\n\t\t\tprocessedNotificationsCount: state.processedNotificationsCount,\r\n\t\t\ttotalNotificationsCount: state.totalNotificationsCount,\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\nexport * from \"./lib/interceptor/responseHeaders.interceptor\";\r\n//Enums\r\nexport * from \"./lib/enums/sort-order.enum\";\r\nexport * from \"./lib/enums/alert-type.enum\";\r\n//Guards\r\nexport * from \"./lib/guards/TermGuard\";\r\nexport * from \"./lib/guards/RouteGuard\";\r\nexport * from \"./lib/guards/PageRootChildGuard\";\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/datepicker/datepicker.component\";\r\nexport * from \"./lib/components/datepicker/datepicker-button-types.constants\";\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/intelica-alert/intelica-alert.component\";\r\nexport * from \"./lib/components/add-favorites/add-favorites.component\";\r\nexport * from \"./lib/components/context-selector/context-selector.component\";\r\nexport * from \"./lib/components/context-selector/context-selector.dto\";\r\n\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\r\n//Models\r\nexport * from \"./lib/model/filter.model\";\r\nexport * from \"./lib/model/alert.model\";\r\nexport * from \"./lib/model/pageInformation.model\";\r\n\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/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/profile.service\";\r\nexport * from \"./lib/services/skeleton.service\";\r\nexport * from \"./lib/services/element.service\";\r\nexport * from \"./lib/services/intelicaSession.service\";\r\nexport * from \"./lib/services/globalMenu.service\";\r\nexport * from \"./lib/services/globalFavorite.service\";\r\nexport * from \"./lib/services/request-cache.service\";\r\n\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\r\n//Notification\r\nexport * from \"./lib/notification/dto/job-state.dto\";\r\nexport * from \"./lib/notification/dto/notification-catalog.dto\";\r\nexport * from \"./lib/notification/dto/notification-draft.dto\";\r\nexport * from \"./lib/notification/dto/notification-inbox-response.dto\";\r\nexport * from \"./lib/notification/dto/notification-message-response.dto\";\r\nexport * from \"./lib/notification/dto/notification-progress-message-response.dto\";\r\nexport * from \"./lib/notification/dto/notification-callback-message-response.dto\";\r\nexport * from \"./lib/notification/dto/notification-request.dto\";\r\nexport * from \"./lib/notification/dto/notification-response.dto\";\r\nexport * from \"./lib/notification/dto/recipient-dispatch-error.dto\";\r\nexport * from \"./lib/notification/notification.service\";\r\nexport * from \"./lib/notification/notification-job.service\";\r\nexport * from \"./lib/notification/notification-signalr.service\";\r\nexport * from \"./lib/notification/notificacion-orchestrator.service\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.FeatureFlagService","i6","i7","i1","i2","i3","i4","i1.TermPipe","i1.FilterTypeEnum","i8","i5","tap","i1.TableComponent","catchError","i1.NotificationJobService","i2.NotificationService","i3.NotificationSignalRService"],"mappings":"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"}
|