intelica-library-ui 0.1.29 → 0.1.30

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.
@@ -25,6 +25,9 @@ import * as i3 from 'primeng/api';
25
25
  import { InputGroupAddonModule } from 'primeng/inputgroupaddon';
26
26
  import * as i3$1 from 'primeng/ripple';
27
27
  import { RippleModule } from 'primeng/ripple';
28
+ import * as XLSX from 'xlsx';
29
+ import { Workbook } from 'exceljs';
30
+ import { saveAs } from 'file-saver';
28
31
 
29
32
  class IntelicaLibraryUiComponent {
30
33
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: IntelicaLibraryUiComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -1802,9 +1805,206 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
1802
1805
  args: [ActionDirective]
1803
1806
  }] } });
1804
1807
 
1808
+ class HtmlToExcelService {
1809
+ ExportTOExcel(idTabla, html, filename, tabname, extension) {
1810
+ let Table = document.getElementById(idTabla);
1811
+ if (Table == null)
1812
+ return;
1813
+ Table.innerHTML = "";
1814
+ Table.innerHTML += html;
1815
+ const ws = XLSX.utils.table_to_sheet(Table, { raw: false });
1816
+ const wb = XLSX.utils.book_new();
1817
+ XLSX.utils.book_append_sheet(wb, ws, tabname);
1818
+ XLSX.writeFile(wb, filename + "." + extension);
1819
+ }
1820
+ Logo = "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";
1821
+ ColumnAligment = {
1822
+ vertical: "middle",
1823
+ horizontal: "center",
1824
+ wrapText: true,
1825
+ };
1826
+ async ExportToExcel(excelName, reportTitle, filterTitle, rowsSerializate, columns, filters) {
1827
+ const workbook = new Workbook();
1828
+ const worksheet = workbook.addWorksheet(reportTitle);
1829
+ worksheet.views = [{ showGridLines: false }];
1830
+ const imageId = workbook.addImage({
1831
+ base64: this.Logo,
1832
+ extension: "png",
1833
+ });
1834
+ this.SetReportPage(rowsSerializate, worksheet, columns, imageId);
1835
+ this.SetTitle(worksheet, reportTitle);
1836
+ if (filters.length > 0) {
1837
+ const worksheetFilter = workbook.addWorksheet(filterTitle);
1838
+ worksheetFilter.views = [{ showGridLines: false }];
1839
+ this.SetFilterPage(filterTitle, worksheetFilter, filters);
1840
+ }
1841
+ const buffer = await workbook.xlsx.writeBuffer();
1842
+ saveAs(new Blob([buffer]), excelName);
1843
+ }
1844
+ SetTitle(worksheet, reportTitle) {
1845
+ worksheet.mergeCells("D1:I5");
1846
+ const titleCell = worksheet.getCell("D1");
1847
+ titleCell.value = reportTitle;
1848
+ titleCell.font = {
1849
+ name: "Arial",
1850
+ bold: true,
1851
+ size: 20,
1852
+ color: { argb: "203764" },
1853
+ };
1854
+ titleCell.alignment = { vertical: "middle", horizontal: "center" };
1855
+ }
1856
+ SetReportPage(rowsSerializate, worksheet, columns, imageId) {
1857
+ let columnsCell = [];
1858
+ let cells = [];
1859
+ let rows = JSON.parse(rowsSerializate);
1860
+ const numberRows = rows.length;
1861
+ worksheet.addRow([""]);
1862
+ worksheet.addRow([""]);
1863
+ worksheet.addRow([""]);
1864
+ worksheet.addRow([""]);
1865
+ worksheet.addRow([""]);
1866
+ let columnsNames = [];
1867
+ for (let i = 0; i < columns.length; i++) {
1868
+ let cell = `${String.fromCharCode(65 + i)}6`;
1869
+ columnsNames.push(columns[i].displayColumnName);
1870
+ columnsCell.push(cell);
1871
+ }
1872
+ worksheet.addRow(columnsNames);
1873
+ for (let rowIndex = 0; rowIndex < numberRows; rowIndex++) {
1874
+ let rowCells = [];
1875
+ let rowValues = [];
1876
+ let index = rowIndex + 7;
1877
+ for (let columIndex = 0; columIndex < columns.length; columIndex++) {
1878
+ let cell = `${String.fromCharCode(65 + columIndex)}${index}`;
1879
+ rowCells.push(cell);
1880
+ if (columIndex == 0) {
1881
+ rowValues.push(`${rowIndex + 1}`);
1882
+ continue;
1883
+ }
1884
+ rowValues.push(rows[rowIndex][columns[columIndex].columnName]);
1885
+ }
1886
+ worksheet.addRow(rowValues);
1887
+ cells.push({ index: index, cells: rowCells });
1888
+ }
1889
+ columnsCell.map(key => {
1890
+ worksheet.getCell(key).fill = {
1891
+ type: "pattern",
1892
+ pattern: "solid",
1893
+ fgColor: { argb: "17375e" },
1894
+ bgColor: { argb: "17375e" },
1895
+ };
1896
+ worksheet.getCell(key).font = {
1897
+ name: "Arial",
1898
+ bold: true,
1899
+ size: 10,
1900
+ color: { argb: "FFFFFF" },
1901
+ };
1902
+ worksheet.getCell(key).alignment = this.ColumnAligment;
1903
+ });
1904
+ cells.forEach(element => {
1905
+ element.cells.map(key => {
1906
+ if (element.index % 2 !== 1) {
1907
+ worksheet.getCell(key).fill = {
1908
+ type: "pattern",
1909
+ pattern: "solid",
1910
+ fgColor: { argb: "D9D9D9" },
1911
+ bgColor: { argb: "D9D9D9" },
1912
+ };
1913
+ }
1914
+ worksheet.getCell(key).font = {
1915
+ name: "Arial",
1916
+ bold: false,
1917
+ size: 10,
1918
+ color: { argb: "203764" },
1919
+ };
1920
+ });
1921
+ });
1922
+ worksheet.addImage(imageId, {
1923
+ tl: { col: 0.5, row: 1.5 },
1924
+ ext: { width: 218, height: 58 },
1925
+ editAs: "absolute",
1926
+ });
1927
+ this.AdjustColumnWidth(worksheet, columns);
1928
+ }
1929
+ SetFilterPage(filterTitle, worksheetFilter, filters) {
1930
+ let widtFilter = 30;
1931
+ worksheetFilter.addRow([filterTitle]);
1932
+ worksheetFilter.mergeCells(["A1", "B2"]);
1933
+ worksheetFilter.columns.forEach(column => {
1934
+ column.width = widtFilter;
1935
+ column.alignment = this.ColumnAligment;
1936
+ widtFilter *= 3;
1937
+ });
1938
+ ["A1", "B1"].map(key => {
1939
+ worksheetFilter.getCell(key).fill = {
1940
+ type: "pattern",
1941
+ pattern: "solid",
1942
+ fgColor: { argb: "FF7F00" },
1943
+ bgColor: { argb: "FF7F00" },
1944
+ };
1945
+ worksheetFilter.getCell(key).font = {
1946
+ name: "Arial",
1947
+ bold: true,
1948
+ size: 12,
1949
+ color: { argb: "FFFFFF" },
1950
+ };
1951
+ });
1952
+ filters.forEach((element, index) => {
1953
+ let row = worksheetFilter.addRow([element.key, element.value]);
1954
+ let color = index % 2 === 1 ? "D9D9D9" : "FFFFFF";
1955
+ row.eachCell(cell => {
1956
+ cell.fill = {
1957
+ type: "pattern",
1958
+ pattern: "solid",
1959
+ fgColor: { argb: color },
1960
+ bgColor: { argb: color },
1961
+ };
1962
+ cell.font = {
1963
+ name: "Arial",
1964
+ bold: false,
1965
+ size: 10,
1966
+ color: { argb: "203764" },
1967
+ };
1968
+ });
1969
+ });
1970
+ }
1971
+ AdjustColumnWidth(worksheet, columns) {
1972
+ worksheet.columns.forEach((column, index) => {
1973
+ if (!column.values)
1974
+ return;
1975
+ let columnWidth = columns[index].width ?? Math.max(...column.values.map(v => (v ? v.toString().length : 0)).filter(v => typeof v === "number"), columns[index].displayColumnName.length) + 2;
1976
+ column.width = Math.min(Math.max(columnWidth, 5), 100);
1977
+ column.alignment = columns[index].isNumber ? { vertical: "middle", horizontal: "right", wrapText: true } : { vertical: "middle", horizontal: "left", wrapText: true };
1978
+ });
1979
+ worksheet.eachRow((row, rowIndex) => {
1980
+ if (rowIndex === 1)
1981
+ return;
1982
+ let maxLines = 1;
1983
+ row.eachCell((cell, colNumber) => {
1984
+ if (cell.value) {
1985
+ let text = typeof cell.value === "object" ? cell.text : cell.value.toString();
1986
+ let columnWidth = worksheet.getColumn(colNumber).width ?? 10;
1987
+ let charsPerLine = columnWidth * 1.2;
1988
+ let estimatedLines = Math.ceil(text.length / charsPerLine);
1989
+ maxLines = Math.max(maxLines, estimatedLines);
1990
+ }
1991
+ });
1992
+ row.height = Math.min(Math.max(15 * maxLines, 15), 30);
1993
+ });
1994
+ }
1995
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: HtmlToExcelService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1996
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: HtmlToExcelService, providedIn: "root" });
1997
+ }
1998
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: HtmlToExcelService, decorators: [{
1999
+ type: Injectable,
2000
+ args: [{
2001
+ providedIn: "root",
2002
+ }]
2003
+ }] });
2004
+
1805
2005
  /**
1806
2006
  * Generated bundle index. Do not edit.
1807
2007
  */
1808
2008
 
1809
- export { ActionDirective, ActionsMenuComponent, ColumnComponent, ConfigService, CookieAttributesGeneral, ErrorInterceptor, FeatureFlagService, GlobalFeatureFlagService, GlobalTermService, InitializeConfigService, IntelicaLibraryUiComponent, LanguageService, RefreshTokenInterceptor, SpinnerComponent, SpinnerService, SweetAlertService, TableComponent, TermPipe, TermService };
2009
+ export { ActionDirective, ActionsMenuComponent, ColumnComponent, ConfigService, CookieAttributesGeneral, ErrorInterceptor, FeatureFlagService, GlobalFeatureFlagService, GlobalTermService, HtmlToExcelService, InitializeConfigService, IntelicaLibraryUiComponent, LanguageService, RefreshTokenInterceptor, SpinnerComponent, SpinnerService, SweetAlertService, TableComponent, TermPipe, TermService };
1810
2010
  //# sourceMappingURL=intelica-library-ui.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"intelica-library-ui.mjs","sources":["../../../projects/intelica-library-ui/src/lib/intelica-library-ui.component.ts","../../../projects/intelica-library-ui/src/lib/services/config.service.ts","../../../projects/intelica-library-ui/src/lib/services/term.service.ts","../../../projects/intelica-library-ui/src/lib/services/globalTerm.service.ts","../../../projects/intelica-library-ui/src/lib/pipes/term.pipes.ts","../../../projects/intelica-library-ui/src/lib/services/spinner.service.ts","../../../projects/intelica-library-ui/src/lib/services/sweet-alert.service.ts","../../../projects/intelica-library-ui/src/lib/constants/cookieConfiguration.constants.ts","../../../projects/intelica-library-ui/src/lib/services/featureFlag.service.ts","../../../projects/intelica-library-ui/src/lib/services/globalFeatureFlag.service.ts","../../../projects/intelica-library-ui/src/lib/interceptor/error.interceptor.ts","../../../projects/intelica-library-ui/src/lib/interceptor/refreshToken.interceptor.ts","../../../projects/intelica-library-ui/src/lib/services/language.service.ts","../../../projects/intelica-library-ui/src/lib/components/spinner/spinner.component.ts","../../../projects/intelica-library-ui/src/lib/components/spinner/spinner.component.html","../../../projects/intelica-library-ui/src/lib/components/table/column.component.ts","../../../projects/intelica-library-ui/src/lib/components/search/enums/search.enum.ts","../../../projects/intelica-library-ui/src/lib/components/search/search.component.ts","../../../projects/intelica-library-ui/src/lib/components/search/search.component.html","../../../projects/intelica-library-ui/src/lib/directives/positive-number.directive.ts","../../../projects/intelica-library-ui/src/lib/components/paginator/paginator.component.ts","../../../projects/intelica-library-ui/src/lib/components/paginator/paginator.component.html","../../../projects/intelica-library-ui/src/lib/constants/format-date.constants.ts","../../../projects/intelica-library-ui/src/lib/services/shared.service.ts","../../../projects/intelica-library-ui/src/lib/components/table/table.component.ts","../../../projects/intelica-library-ui/src/lib/components/table/table.component.html","../../../projects/intelica-library-ui/src/lib/components/actions-menu/action.directive.ts","../../../projects/intelica-library-ui/src/lib/components/actions-menu/actions-menu.component.ts","../../../projects/intelica-library-ui/src/lib/components/actions-menu/actions-menu.component.html","../../../projects/intelica-library-ui/src/intelica-library-ui.ts"],"sourcesContent":["import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-intelica-library-ui',\r\n imports: [],\r\n template: `\r\n <p>\r\n intelica-library-ui works!\r\n </p>\r\n `,\r\n styles: ``\r\n})\r\nexport class IntelicaLibraryUiComponent {\r\n\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\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 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\" ? \":9000\" : \"\"}/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\tconsole.log(\"getCookie('data')\", getCookie(\"data\"));\r\n\t\tconsole.log(\"this.environment\", this.environment);\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\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?.configurationPath}/TermPage/GetPageTerm/${languageCode}/${pageRoot}`);\r\n\t}\r\n}\r\n","import { inject, Injectable, signal } from \"@angular/core\";\r\nimport { getCookie } from \"typescript-cookie\";\r\nimport { TermPageResponse } from \"../dto/term\";\r\nimport { TermService } from \"./term.service\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class GlobalTermService {\r\n\tterms: TermPageResponse[] = [];\r\n\tlanguageCode: string = \"\";\r\n\tTermsReady = signal<boolean>(false);\r\n\tPageRoot: string = \"\";\r\n\tprivate readonly termService = inject(TermService);\r\n\r\n\tInitialize(pageRoot: string): void {\r\n\t\tlet languageCode = getCookie(\"language\") ?? \"EN\";\r\n\t\tthis.PageRoot = pageRoot;\r\n\t\tif (pageRoot == \"\") {\r\n\t\t\tthis.TermsReady.set(true);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.termService.GetTerms(languageCode, pageRoot).subscribe(response => {\r\n\t\t\tthis.terms = response;\r\n\t\t\tthis.TermsReady.set(true);\r\n\t\t\tthis.SetTerms();\r\n\t\t\tthis.languageCode = languageCode;\r\n\t\t});\r\n\t}\r\n\r\n\tasync SetTerms() {\r\n\t\twhile (true) {\r\n\t\t\tawait sleep(10);\r\n\t\t\tif (document.querySelectorAll(\"[data-term]\").length > 1) break;\r\n\t\t}\r\n\t\tlet textsToChange = document.querySelectorAll(\"[data-term]\");\r\n\t\ttextsToChange.forEach(async element => {\r\n\t\t\tlet dataValue = element.getAttribute(\"data-term\");\r\n\t\t\tlet newText = this.terms.find(x => x.termName == dataValue)?.termValue ?? \"\";\r\n\t\t\telement.innerHTML = newText;\r\n\t\t\telement.setAttribute(\"placeholder\", newText);\r\n\t\t});\r\n\t}\r\n}\r\n\r\nfunction sleep(ms: number): Promise<void> {\r\n\treturn new Promise(resolve => setTimeout(resolve, ms));\r\n}\r\n","import { inject, Injectable, Pipe, PipeTransform } from \"@angular/core\";\r\nimport { GlobalTermService } from \"../services/globalTerm.service\";\r\n// import GlobalTermService from \"../services/globalTerm.service\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\n@Pipe({ name: \"term\" })\r\nexport class TermPipe implements PipeTransform {\r\n\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, 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 { Injectable } from \"@angular/core\";\r\nimport Swal, { SweetAlertOptions, SweetAlertResult } from \"sweetalert2\";\r\n\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 { CookieAttributes } from \"typescript-cookie/dist/types\";\r\nconst 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\n\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","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\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\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 { 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\n\r\nexport const ErrorInterceptor: HttpInterceptorFn = (req, next) => {\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\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}\r\n\r\n\tlet _request = req.clone({ headers: new HttpHeaders(HeaderSettings) });\r\n\treturn next(_request).pipe(catchError(handleErrorResponse));\r\n\r\n\tfunction handleErrorResponse(error: HttpErrorResponse) {\r\n\t\tconsole.log(error, \"error\");\r\n\t\tspinnerService.hide();\r\n\t\tif (error.status == 500) sweetAlertService.messageBox(error.error.message);\r\n\t\tif (error.status == 400) sweetAlertService.messageBox(error.error.message);\r\n\t\tif (error.status == 409) sweetAlertService.messageBox(error.error.message);\r\n\t\tif (error.status == 401) sweetAlertService.messageBox(\"No tiene acceso al recurso solicitado\");\r\n\t\tif (error.status == 503 || error.status == 0) sweetAlertService.messageBox(\"El servicio que se necesita consumir no esta activo o no responde.\");\r\n\t\tif (error.status == 405) sweetAlertService.messageBox(\"Los parametros enviados al servicio no coinciden.\");\r\n\t\tif (error.status == 404) sweetAlertService.messageBox(\"Recurso no encontrado.\");\r\n\t\treturn throwError(() => {\r\n\t\t\terror.error, error.message;\r\n\t\t});\r\n\t}\r\n};\r\n","import { GlobalFeatureFlagService } from \"../services/globalFeatureFlag.service\";\r\nimport { HttpClient, HttpInterceptorFn } from \"@angular/common/http\";\r\nimport { inject } from \"@angular/core\";\r\nimport { from, switchMap } from \"rxjs\";\r\nimport { getCookie, setCookie, Cookies } from \"typescript-cookie\";\r\nimport { ConfigService } from \"../services/config.service\";\r\nimport { ValidateTokenQuery, ValidateTokenResponse } from \"../dto/authentication\";\r\nimport { CookieAttributesGeneral } from \"../constants/cookieConfiguration.constants\";\r\n\r\nexport const RefreshTokenInterceptor: HttpInterceptorFn = (req, next) => {\r\n\tconst configService: ConfigService = inject(ConfigService);\r\n\tconst httpClient = inject(HttpClient);\r\n\tconst commonFeatureFlagService = inject(GlobalFeatureFlagService);\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/ValidateToken`;\r\n\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};\r\n\r\n\tif (!req.url.includes(\"ValidateToken\") && !req.url.includes(\"environment.json\") && !req.url.includes(\"GetAuthenticationFromCache\"))\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\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\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) window.location.href = window.location.origin;\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 { 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\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","import { Component, inject } from \"@angular/core\";\r\nimport { SpinnerService } from \"../../services/spinner.service\";\r\n@Component({\r\n\tselector: \"app-spinner\",\r\n\timports: [],\r\n\ttemplateUrl: \"./spinner.component.html\",\r\n\tstyleUrl: \"./spinner.component.css\",\r\n})\r\nexport class SpinnerComponent {\r\n\tprivate readonly spinerService = inject(SpinnerService);\r\n\tisLoading = this.spinerService.isLoading;\r\n\tLoadingLogo: string = `${window.location.origin}/assets/images/loading_intelica.gif`;\r\n}\r\n","@if (isLoading()){\r\n<div id=\"overlay\">\r\n\t<div class=\"loading\">\r\n\t\t<div class=\"content-center\">\r\n\t\t\t<img alt=\"Intelica\" [src]=\"LoadingLogo\" />\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n}\r\n","import { ContentChild, Directive, Input, TemplateRef } from \"@angular/core\";\r\n\r\n@Directive({ selector: \"intelica-column\" })\r\nexport class ColumnComponent<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() tooltip: string = \"\";\r\n\t@Input() tooltipPosition: \"top\" | \"bottom\" | \"left\" | \"right\" = \"top\";\r\n\t@Input() showIndex: boolean = false;\r\n\t@ContentChild(TemplateRef) templateRef?: TemplateRef<any>;\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\r\n// isGrouped: boolean = false;\r\n// isGroup: boolean = false;\r\n// colspan: number = 1;\r\n// columnsForCompare: string = '';\r\n// @ContentChild('detail') detail!: any;\r\n// @ContentChild('content') content!: any;\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\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}\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)\">\r\n\t\t\t<div\r\n\t\t\t\tclass=\"prSearchBar__dropdown--label\"\r\n\t\t\t\t[pTooltip]=\"(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 { Directive, ElementRef, HostListener } from \"@angular/core\";\r\n\r\n@Directive({\r\n\tselector: \"[positiveNumber]\",\r\n})\r\nexport class PositiveNumberDirective {\r\n\tconstructor(private el: ElementRef) {}\r\n\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\n\r\n@Component({\r\n\tselector: \"intelica-paginator\",\r\n\timports: [FormsModule, ButtonModule, PositiveNumberDirective, TermPipe],\r\n\ttemplateUrl: \"./paginator.component.html\",\r\n\t// styleUrl: './paginator.component.css'\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 class=\"prPaginator\">\r\n\t<span class=\"prPaginator__info\">{{ TotalItems }} {{ \"Records\" | term : GlobalTermService.languageCode }}</span>\r\n\t<div class=\"prPaginator__controls\">\r\n\t\t<button pButton type=\"button\" class=\"prPaginator__btn prPaginator__btn--first\" [disabled]=\"CurrentPage === 1\" (click)=\"GoToFirstPage()\"></button>\r\n\t\t<button pButton type=\"button\" class=\"prPaginator__btn prPaginator__btn--previous\" [disabled]=\"CurrentPage === 1\" (click)=\"GoToPreviousPage()\"></button>\r\n\t\t<input pInputText type=\"text\" (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<button pButton type=\"button\" class=\"prPaginator__btn prPaginator__btn--next\" [disabled]=\"CurrentPage === TotalPages\" (click)=\"GoToNextPage()\"></button>\r\n\t\t<button pButton type=\"button\" class=\"prPaginator__btn prPaginator__btn--last\" [disabled]=\"CurrentPage === TotalPages\" (click)=\"GoToLastPage()\"></button>\r\n\t</div>\r\n</div>\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\ndeclare var require: any;\r\nimport moment from \"moment\";\r\nimport * as _ from \"lodash\";\r\n@Injectable({\r\n\tprovidedIn: \"root\",\r\n})\r\nexport class SharedService {\r\n\tpublic configObservable = new Subject<boolean>();\r\n\tisLoading = new BehaviorSubject(false);\r\n\tisLoadingHeader = new BehaviorSubject(true);\r\n\tisExpandedContent = new BehaviorSubject(false);\r\n\tisLoadingPageInfo = new BehaviorSubject(true);\r\n\tnotifyProfileType = new Subject<string>();\r\n\tcharges = 0;\r\n\tshowHelper = new BehaviorSubject(false);\r\n\theaderPathName = new BehaviorSubject<string[]>([]);\r\n\tpageId: number | undefined = 0;\r\n\topenActionMenu$: Subject<boolean> = new Subject<boolean>();\r\n\tmonths = {\r\n\t\ten: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\r\n\t\tes: [\"Enero\", \"Febrero\", \"Marzo\", \"Abril\", \"Mayo\", \"Junio\", \"Julio\", \"Agosto\", \"Septiembre\", \"Octubre\", \"Noviembre\", \"Diciembre\"],\r\n\t};\r\n\tsubtitleDescriptionNotification$!: Observable<string>;\r\n\tconstructor(private location: Location) {}\r\n\t///METODOS GLOBALS.\r\n\tIsNumberRate(n: any) {\r\n\t\treturn !isNaN(parseFloat(n)) && !isNaN(n - 0);\r\n\t}\r\n\tRemovePercentage(string: string) {\r\n\t\tif (string.length > 0) {\r\n\t\t\tif (string.startsWith(\"%\")) string = string.substring(1);\r\n\t\t\tlet last = string.length - 1;\r\n\t\t\tif (string.endsWith(\"%\")) string = string.substring(0, last);\r\n\t\t}\r\n\t\treturn string;\r\n\t}\r\n\tGetTotalAmountByCrncy(col: string, listGeneral: any): number {\r\n\t\treturn listGeneral.reduce((a: any, b: any) => a + (b[col] || 0), 0);\r\n\t}\r\n\tGetTotalAverageByColumn(col: string, listGeneral: any): number {\r\n\t\treturn listGeneral.reduce((a: any, b: any) => a + (b[col] || 0), 0) / (listGeneral.length || 1);\r\n\t}\r\n\tGetTotalByGroup(col: string, listGeneral: any[], groupBy: string[] | undefined): any[] {\r\n\t\tif (!groupBy?.length) return [listGeneral.reduce((a: any, b: any) => a + (b[col] || 0), 0)];\r\n\r\n\t\tlet result: { [key: string]: any } = listGeneral.reduce((acc: { [key: string]: any }, item: any) => {\r\n\t\t\tconst groupKey = groupBy.map(prop => item[prop]).join(\"||\");\r\n\t\t\tacc[groupKey] = (acc[groupKey] || 0) + item[col];\r\n\t\t\treturn acc;\r\n\t\t}, {});\r\n\t\tconst propiedades = Object.keys(result).sort();\r\n\t\tconst indexGroup = groupBy.indexOf(col);\r\n\t\tif (indexGroup != -1) return propiedades.map(propiedad => propiedad.split(\"||\")[indexGroup]);\r\n\t\treturn propiedades.map(propiedad => result[propiedad]);\r\n\t}\r\n\tTransformNegative(value: string): string {\r\n\t\tvalue = value?.toString() ?? \"0.00\";\r\n\t\tif (value?.indexOf(\"-\") > -1) return \"(\" + value.replace(\"-\", \"\") + \")\";\r\n\t\telse return value.toString();\r\n\t}\r\n\tFormatNumber(value: number, decimalMax: number, decimalMin: number) {\r\n\t\treturn value.toLocaleString(\"en-US\", { maximumFractionDigits: decimalMax, minimumFractionDigits: decimalMin });\r\n\t}\r\n\tClickOutSideValidator(event: any): boolean {\r\n\t\tlet res = false;\r\n\t\tif (event !== undefined) {\r\n\t\t\tconst src = (event as Event).srcElement as Element;\r\n\t\t\tres = src.id !== \"button-alignment\" && !this.CheckParents(src, 0);\r\n\t\t}\r\n\t\treturn res;\r\n\t}\r\n\tCheckParents(src: Element, c: number): boolean {\r\n\t\tvar ids = [];\r\n\t\tids.push(\"HamburgerMenu\");\r\n\t\tvar strings = [];\r\n\t\tstrings.push(\"swal2-container\");\r\n\t\tif (src.className.includes(\"backdrop-visible\")) return false;\r\n\t\tvar res = ids.some(function (v) {\r\n\t\t\treturn src.id === v;\r\n\t\t});\r\n\t\tif (!res && (src.tagName === \"BODY\" || src.parentElement === null) && c === 0) {\r\n\t\t\tres = true;\r\n\t\t}\r\n\t\tif (\r\n\t\t\t!res &&\r\n\t\t\tstrings.some(function (v) {\r\n\t\t\t\treturn src.classList.contains(v);\r\n\t\t\t})\r\n\t\t)\r\n\t\t\tres = true;\r\n\t\tif (src.parentElement && !res) {\r\n\t\t\tc++;\r\n\t\t\tres = this.CheckParents(src.parentElement, c);\r\n\t\t}\r\n\t\treturn res;\r\n\t}\r\n\tGetTitleByRegionOrCountry(CurrentGroup: any, Current: any, field: string) {\r\n\t\treturn CurrentGroup ? CurrentGroup.groupName + \" - \" + Current[field] : Current[field];\r\n\t}\r\n\tGetTitleByBank(ListGeneralCountryAll: any[], CurrentBank: any) {\r\n\t\treturn ListGeneralCountryAll.length > 1 ? CurrentBank.groupName + \" - \" + CurrentBank.countryName + \" - \" + CurrentBank.bankNameCommercial : CurrentBank.bankNameCommercial;\r\n\t}\r\n\tRoundgen(value: any, precision: any) {\r\n\t\tvar multiplier = Math.pow(10, precision || 0);\r\n\t\treturn Math.round(value * multiplier) / multiplier;\r\n\t}\r\n\tReturnAmountPercen(amount: any): string {\r\n\t\tif (isNaN(amount)) amount = 0;\r\n\t\tlet resultado: string = \"\";\r\n\t\tlet AmountStr = amount === 0 ? \"0\" : amount.toLocaleString(\"en-US\", { maximumFractionDigits: 1, minimumFractionDigits: 1 });\r\n\t\tif (AmountStr.indexOf(\".0\") !== -1) AmountStr = amount.toLocaleString(\"en-US\", { maximumFractionDigits: 0, minimumFractionDigits: 0 });\r\n\t\tif (amount < 0 && parseInt(amount.toString()) * -1 === 0) {\r\n\t\t\tresultado = amount.toLocaleString(\"en-US\", { maximumFractionDigits: 1, minimumFractionDigits: 1 }).replace(\"-\", \"(\") + \"%)\";\r\n\t\t} else if (amount < 0) resultado = AmountStr.replace(\"-\", \"(\") + \"%)\";\r\n\t\telse resultado = AmountStr + \"%\";\r\n\t\tif (Number.NEGATIVE_INFINITY === amount || Number.POSITIVE_INFINITY === amount) resultado = \"\";\r\n\t\treturn resultado;\r\n\t}\r\n\tReturAmountFormat(amount: any): string {\r\n\t\tif (isNaN(amount)) amount = 0;\r\n\t\tamount = this.Roundgen(amount, 2);\r\n\t\tlet resultado: string = \"\";\r\n\t\tif (amount < 0 && parseInt(amount.toString()) * -1 === 0) resultado = amount.toString().replace(\"-\", \"(\") + \")\";\r\n\t\telse if (amount < 0 && amount > -1000) {\r\n\t\t\tresultado = this.Roundgen(amount, 0).toString().replace(\"-\", \"(\") + \")\";\r\n\t\t} else if (amount < 0 && -1000000000 >= amount) {\r\n\t\t\tresultado =\r\n\t\t\t\tthis.Roundgen(amount / 1000000000, 1)\r\n\t\t\t\t\t.toString()\r\n\t\t\t\t\t.replace(\"-\", \"(\") + \" B)\";\r\n\t\t} else if (amount < 0 && -1000000 >= amount) {\r\n\t\t\tresultado =\r\n\t\t\t\tthis.Roundgen(amount / 1000000, 1)\r\n\t\t\t\t\t.toString()\r\n\t\t\t\t\t.replace(\"-\", \"(\") + \" M)\";\r\n\t\t} else if (amount < 0) {\r\n\t\t\tresultado =\r\n\t\t\t\tthis.Roundgen(amount / 1000, 1)\r\n\t\t\t\t\t.toString()\r\n\t\t\t\t\t.replace(\"-\", \"(\") + \" K)\";\r\n\t\t} else if (amount < 1000) resultado = this.Roundgen(amount, 1).toString();\r\n\t\telse if (1000000000 < amount) resultado = this.Roundgen(amount / 1000000000, 1).toString() + \" B\";\r\n\t\telse if (1000000 < amount) resultado = this.Roundgen(amount / 1000000, 1).toString() + \" M\";\r\n\t\telse resultado = this.Roundgen(amount / 1000, 1).toString() + \" K\";\r\n\t\tif (resultado.indexOf(\".\") === -1 && amount !== 0) {\r\n\t\t\tlet a = resultado;\r\n\t\t\tlet b = \".0\";\r\n\t\t\tlet output = a + b;\r\n\r\n\t\t\tif (resultado.indexOf(\" \") !== -1) {\r\n\t\t\t\tlet position = resultado.indexOf(\" \");\r\n\t\t\t\toutput = [a.slice(0, position), b, a.slice(position)].join(\"\");\r\n\t\t\t} else if (resultado.indexOf(\" \") === -1 && resultado.indexOf(\")\") !== -1) {\r\n\t\t\t\tlet position = resultado.indexOf(\")\");\r\n\t\t\t\toutput = [a.slice(0, position), b, a.slice(position)].join(\"\");\r\n\t\t\t}\r\n\r\n\t\t\tresultado = output;\r\n\t\t}\r\n\t\treturn resultado;\r\n\t}\r\n\tDownloadFile(fileName: string, blob: any): void {\r\n\t\tconst nav = window.navigator as any;\r\n\t\tif (nav.msSaveOrOpenBlob) {\r\n\t\t\tnav.msSaveOrOpenBlob(blob, fileName);\r\n\t\t} else {\r\n\t\t\tconst link = document.createElement(\"a\");\r\n\t\t\tlink.setAttribute(\"type\", \"hidden\");\r\n\t\t\tlink.download = fileName;\r\n\t\t\tlink.href = window.URL.createObjectURL(blob.body);\r\n\t\t\tdocument.body.appendChild(link);\r\n\t\t\tlink.click();\r\n\t\t}\r\n\t}\r\n\tViewFile(response: any) {\r\n\t\tconst a = document.createElement(\"a\");\r\n\t\ta.setAttribute(\"style\", \"display:none;\");\r\n\t\tdocument.body.appendChild(a);\r\n\t\ta.href = URL.createObjectURL(response.body);\r\n\t\ta.target = \"_blank\";\r\n\t\ta.click();\r\n\t\tdocument.body.removeChild(a);\r\n\t}\r\n\tGetNumberCurrency(amount: number): string {\r\n\t\treturn amount === 0 ? \"0\" : amount.toLocaleString(\"en-US\", { maximumFractionDigits: 2, minimumFractionDigits: 2 });\r\n\t}\r\n\tCountDecimals(param: number) {\r\n\t\tif (Math.floor(param) === param) return 0;\r\n\t\treturn param.toString().split(\".\")[1].length || 0;\r\n\t}\r\n\tIsEmpty(value: any) {\r\n\t\treturn value === null || value === \"\" || value === undefined;\r\n\t}\r\n\tGroupByColumn(data: any[], columnGroup: string): any[] {\r\n\t\tlet colUnique = [];\r\n\t\tif (columnGroup != \"\") {\r\n\t\t\tcolUnique = [\r\n\t\t\t\t...new Set(\r\n\t\t\t\t\tdata.map(item => {\r\n\t\t\t\t\t\treturn item[columnGroup];\r\n\t\t\t\t\t})\r\n\t\t\t\t),\r\n\t\t\t].filter(unique => !this.IsEmpty(unique));\r\n\t\t} else {\r\n\t\t\tcolUnique = [\r\n\t\t\t\t...new Set(\r\n\t\t\t\t\tdata.map(item => {\r\n\t\t\t\t\t\treturn item;\r\n\t\t\t\t\t})\r\n\t\t\t\t),\r\n\t\t\t].filter(unique => !this.IsEmpty(unique));\r\n\t\t}\r\n\t\treturn colUnique;\r\n\t}\r\n\tGetRoswpanbyData(column: string, index: number, data: Array<any>): number {\r\n\t\tlet ValOfAgruppated = null;\r\n\t\tlet rowspanI = 1;\r\n\t\tfor (let i: number = index - 1; i < data.length; i++) {\r\n\t\t\tlet val = data[i][column];\r\n\t\t\tif (ValOfAgruppated == null) {\r\n\t\t\t\tValOfAgruppated = val;\r\n\t\t\t} else if (val !== null && ValOfAgruppated == val) {\r\n\t\t\t\trowspanI++;\r\n\t\t\t} else if (val !== null && ValOfAgruppated != val) {\r\n\t\t\t\tValOfAgruppated = null;\r\n\t\t\t\treturn rowspanI;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn rowspanI;\r\n\t}\r\n\tFormatterStringJsonByKey(data: any[], key: string, separador: string): string {\r\n\t\tlet result = \"\";\r\n\t\tlet colUnique: string[] = [];\r\n\t\tdata.forEach(element => {\r\n\t\t\tcolUnique.push(element[key]);\r\n\t\t});\r\n\t\tresult = colUnique.join(separador);\r\n\t\treturn result;\r\n\t}\r\n\tGroupByKey(xs: any, key: any) {\r\n\t\treturn xs.reduce(function (rv: any, x: any) {\r\n\t\t\t(rv[x[key]] = rv[x[key]] || []).push(x);\r\n\t\t\treturn rv;\r\n\t\t}, {});\r\n\t}\r\n\tLoadProjectsCss(route: string) {\r\n\t\tconst elements = this.CheckProjectsCss(route);\r\n\t\tif (elements.length === 0) {\r\n\t\t\tconst node = document.createElement(\"link\");\r\n\t\t\tnode.href = \"./assets/css/projects/\" + route + \".css\";\r\n\t\t\tnode.rel = \"stylesheet\";\r\n\t\t\tdocument.getElementsByTagName(\"head\")[0].appendChild(node);\r\n\t\t}\r\n\t}\r\n\tRemoveProjectsCss(route: string) {\r\n\t\tconst elements = this.CheckProjectsCss(route);\r\n\t\telements.forEach(element => {\r\n\t\t\tdocument.getElementsByTagName(\"head\")[0].removeChild(element);\r\n\t\t});\r\n\t}\r\n\tCheckProjectsCss(route: string): any[] {\r\n\t\tconst parent = document.getElementsByTagName(\"head\")[0];\r\n\t\tconst elements: any[] = [];\r\n\t\tparent.childNodes.forEach((element: any) => {\r\n\t\t\tvar a = element as object;\r\n\r\n\t\t\tif (element.nodeName === \"LINK\") {\r\n\t\t\t\tvar elemethref = element[\"href\"];\r\n\t\t\t\tif (elemethref && elemethref.indexOf(route) > 0) {\r\n\t\t\t\t\telements.push(element);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn elements;\r\n\t}\r\n\tCountDecimalsDigits(numero: any) {\r\n\t\tif (this.IsEmpty(numero)) return 0;\r\n\t\tnumero = parseFloat(numero);\r\n\t\tlet arrayNumero = numero.toString().split(\".\");\r\n\t\tnumero = arrayNumero.length > 1 ? arrayNumero[1] : \"\";\r\n\t\treturn numero.length;\r\n\t}\r\n\tGetMaxNumberDecimals(data: any[], key: string): number {\r\n\t\tlet arrCountDecimals: number[] = [];\r\n\t\tdata.forEach(element => {\r\n\t\t\tlet decimals = this.CountDecimalsDigits(element[key]);\r\n\t\t\tarrCountDecimals.push(decimals);\r\n\t\t});\r\n\t\tvar maxDecimal = Math.max(...arrCountDecimals);\r\n\t\treturn maxDecimal;\r\n\t}\r\n\tSetHeaderPathName(name: string[]) {\r\n\t\tthis.headerPathName.next(name);\r\n\t}\r\n\tFormatDate(date: string, format: string): string {\r\n\t\treturn moment(date).format(format);\r\n\t}\r\n\tCopyTo(src: any, dest: any) {\r\n\t\tObject.keys(src).forEach(property => {\r\n\t\t\tdest[property] = src[property];\r\n\t\t});\r\n\t}\r\n\tIsValidEmail(email: string): boolean {\r\n\t\tconst emailPattern = /^\\w+([.-]?\\w+)*@\\w+([.-]?\\w+)*(\\.\\w{2,3})+$/;\r\n\t\treturn emailPattern.test(email);\r\n\t}\r\n\tIsGuid(str: string): boolean {\r\n\t\tconst guidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;\r\n\t\treturn guidRegex.test(str);\r\n\t}\r\n\tContainsSpecialCharacters(str: string): boolean {\r\n\t\tconst specialCharacter = /^[^\\\\/?%*:|\"<>]+$/;\r\n\t\treturn !specialCharacter.test(str);\r\n\t}\r\n\tIsNumber(value: any): boolean {\r\n\t\treturn /^-?\\d+(\\.\\d+)?$/.test(value);\r\n\t}\r\n\tCalculatePreviousDate(date: Date, monthsAgo: number) {\r\n\t\tdate.setMonth(date.getMonth() - monthsAgo);\r\n\t\tconst newDate = moment(date).format(FormatDateConstants.DMYY_MOMENT);\r\n\r\n\t\treturn newDate;\r\n\t}\r\n\tGetFilteredSearchKey(listTempAll: any[], key: string, value: any, operatorId: number) {\r\n\t\tlet listFilter = [];\r\n\t\tswitch (operatorId) {\r\n\t\t\tcase 0: //'Contains'\r\n\t\t\t\tlet word = value.split(\"&\", 100);\r\n\t\t\t\tlet count: number = 0;\r\n\t\t\t\tlet listTemp: any;\r\n\t\t\t\tif (word.length > 1) {\r\n\t\t\t\t\tword.forEach((element: any) => {\r\n\t\t\t\t\t\tif (count === 0) {\r\n\t\t\t\t\t\t\tlistTemp = listTempAll.filter(a => a[key]?.toString()?.toLowerCase().includes(element.toLowerCase()));\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tlistTemp = listTemp.filter((a: any) => a[key]?.toString()?.toLowerCase().includes(element.toLowerCase()));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcount++;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tlistFilter = listTemp;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlistFilter = listTempAll.filter(a => a[key]?.toString()?.toLowerCase().includes(value));\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase 1: //'Exact'\r\n\t\t\t\tlistFilter = value ? listTempAll.filter(a => a[key]?.toString()?.toLowerCase() === value) : listTempAll;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 2: //'Begin'\r\n\t\t\t\tlistFilter = listTempAll.filter(a => a[key]?.toString()?.toLowerCase().startsWith(value));\r\n\t\t\t\tbreak;\r\n\t\t\tcase 3: //'Ends'\r\n\t\t\t\tlistFilter = listTempAll.filter(a => a[key]?.toString()?.toLowerCase().endsWith(value));\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tlistFilter = listTempAll.filter(a => a[key]?.toString()?.toLowerCase().includes(value));\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\treturn listFilter;\r\n\t}\r\n\tGetFilteredSearchKeyV2(listTempAll: any[], key: string, value: any, operatorId: number, subKey: any = null) {\r\n\t\tif (value.length == 0) return listTempAll;\r\n\t\tif (!listTempAll || !key || value == null) return [];\r\n\t\tlet listFilter = listTempAll;\r\n\t\tvalue = value.toString().toLowerCase();\r\n\t\tconst words = value.includes(\"&\") ? value.split(\"&\").filter(Boolean) : [value];\r\n\t\tconst filterFunction = (item: any) => {\r\n\t\t\tconst itemValue = item[key]?.toString()?.toLowerCase();\r\n\t\t\tswitch (operatorId) {\r\n\t\t\t\tcase 0: // 'Contains'\r\n\t\t\t\t\treturn words.every((word: any) => itemValue?.includes(word));\r\n\t\t\t\tcase 1: // 'Exact'\r\n\t\t\t\t\treturn itemValue === value;\r\n\t\t\t\tcase 2: // 'Begin'\r\n\t\t\t\t\treturn itemValue?.startsWith(value);\r\n\t\t\t\tcase 3: // 'Ends'\r\n\t\t\t\t\treturn itemValue?.endsWith(value);\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn itemValue?.includes(value);\r\n\t\t\t}\r\n\t\t};\r\n\t\tif (subKey) {\r\n\t\t\t// Filtrar primero a nivel de sublista\r\n\t\t\tlistFilter = listFilter.map(filter => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\t...filter,\r\n\t\t\t\t\t[subKey]: filter[subKey]?.filter((item: any) => filterFunction(item)),\r\n\t\t\t\t};\r\n\t\t\t});\r\n\t\t\t// Filtrar luego la lista principal basado en si la sublista contiene elementos\r\n\t\t\tlistFilter = listFilter.filter(filter => filter[subKey].length > 0);\r\n\t\t} else {\r\n\t\t\t// Filtrar solo la lista principal\r\n\t\t\tlistFilter = listFilter.filter(filterFunction);\r\n\t\t}\r\n\t\treturn listFilter;\r\n\t}\r\n\tpublic TransformArrayToHashTable<T, TypeKey extends string | number>(arr: T[], getKey: (p: T) => TypeKey): { [key in TypeKey]: T } {\r\n\t\t//example of Use:\r\n\t\t// this.transformArrayToHashTable<any,string>([{id:1,prop1:\"prop1Value\"}],(o)=>o.id.toString())\r\n\t\tconst hashTable: { [key in TypeKey]: T } = {} as { [key in TypeKey]: T };\r\n\t\tarr.forEach((object: T) => (hashTable[getKey(object)] = object));\r\n\t\treturn hashTable;\r\n\t}\r\n\tpublic TransformArrayToMap<TypeKey, T>(arr: T[], getKey: (p: T) => TypeKey): Map<TypeKey, T> {\r\n\t\t//example of Use:\r\n\t\t// this.transformArrayToMap<string,any>([{id:1,prop1:\"prop1Value\"}],(o)=>o.id.toString())\r\n\t\treturn new Map(arr.map(obj => [getKey(obj), obj]));\r\n\t}\r\n\tUrlHasQaUatSubdomain() {\r\n\t\tconst { hostname } = new URL(window.location.href);\r\n\t\tconst [subdomain] = hostname.split(\".\");\r\n\t\treturn [\"qa\", \"uat\"].includes(subdomain);\r\n\t}\r\n\tUrlHasQaSubdomain() {\r\n\t\tconst { hostname } = new URL(window.location.href);\r\n\t\tconst [subdomain] = hostname.split(\".\");\r\n\t\treturn [\"qa\"].includes(subdomain);\r\n\t}\r\n\tGetLastSegmentUrl(): string {\r\n\t\tconst segments = this.location.path().split(\"/\");\r\n\t\tconst lastSegment = segments[segments.length - 1];\r\n\t\tconst numberMappings: { [key: string]: string } = {\r\n\t\t\t\"0\": \"intelica-allocated\",\r\n\t\t\t\"1\": \"penalty-summary\",\r\n\t\t};\r\n\t\t// Verifica si lastSegment es un número y si tiene un mapeo correspondiente\r\n\t\tif (!isNaN(Number(lastSegment)) && numberMappings.hasOwnProperty(lastSegment)) return numberMappings[lastSegment];\r\n\t\telse return lastSegment;\r\n\t}\r\n\tOnChangeMultiple($event: any, selectDescription: string): void {\r\n\t\tlet select = $event != null ? $event.element.ej2_instances[0] : null;\r\n\t\tif (select?.value.length > 0) {\r\n\t\t\tselect.viewWrapper.innerHTML = `${select.value.length} ${selectDescription}`;\r\n\t\t}\r\n\t}\r\n\tRemoveParamsAndSegments(url: string): string {\r\n\t\t// Remover parámetros de consultanom\r\n\t\tconst urlWithoutParams = url.split(\"?\")[0];\r\n\t\t// Remover segmentos de ruta dinámicos\r\n\t\tconst regex = /\\/\\d+(?=\\/|$)(?!$)/g; // Encuentra segmentos de ruta que consisten en números\r\n\t\treturn urlWithoutParams.replace(regex, \"\");\r\n\t}\r\n\tOpenActionMenu() {\r\n\t\tthis.openActionMenu$.next(true);\r\n\t}\r\n\tAbbreviateNumber(number: number, fixed: number = 2): string {\r\n\t\tif (number == 0.0 || number == 0 || number == 0.0) {\r\n\t\t\treturn \"0\";\r\n\t\t}\r\n\t\tlet formatCant = \"\";\r\n\t\tlet numberOriginal = number;\r\n\t\tif (number < 0) {\r\n\t\t\tnumber = Math.abs(number);\r\n\t\t}\r\n\t\tif (number >= 1000 && number < 1000000) {\r\n\t\t\tnumber = parseFloat((number / 1000).toFixed(fixed));\r\n\t\t\tformatCant = \" K\";\r\n\t\t} else if (number >= 1000000 && number < 1000000000) {\r\n\t\t\tnumber = parseFloat((number / 1000000).toFixed(fixed));\r\n\t\t\tformatCant = \" M\";\r\n\t\t} else if (number >= 1000000000 && number <= 1000000000000) {\r\n\t\t\tnumber = parseFloat((number / 1000000000).toFixed(fixed));\r\n\t\t\tformatCant = \" B\";\r\n\t\t} else {\r\n\t\t\tnumber = this.NumberFormatByNumberCriteria(number, fixed);\r\n\t\t}\r\n\t\treturn numberOriginal < 0 ? `(${number}${formatCant})` : `${number}${formatCant}`;\r\n\t}\r\n\tNumberFormatByNumberCriteria(number: number, fixed: number = 4): any {\r\n\t\tconst rounded = (Math.round(number * Math.pow(10, fixed)) / Math.pow(10, fixed)).toFixed(fixed);\r\n\t\treturn rounded;\r\n\t}\r\n\tFormatPercentage(number: number, decimal: number = 2) {\r\n\t\tlet numberInit = number;\r\n\t\tif (number < 0) number = Math.abs(number);\r\n\t\tnumber = parseFloat(number.toFixed(decimal));\r\n\t\tlet finalNumber = `${number.toLocaleString(\"en-US\")}%`;\r\n\t\treturn numberInit < 0 ? `(${finalNumber})` : `${finalNumber}`;\r\n\t}\r\n\tGetMonthName(monthIndex: number, lang: \"en\" | \"es\" = \"en\"): string {\r\n\t\treturn this.months[lang][monthIndex];\r\n\t}\r\n\tFormatNumberWithSuffix(number: number, decimalPlaces: number = 0): string {\r\n\t\tif (number === 0) {\r\n\t\t\treturn \"0\";\r\n\t\t}\r\n\t\tconst isNegative = number < 0;\r\n\t\tconst absoluteValue = Math.abs(number);\r\n\t\tconst scaledNumber = parseFloat((absoluteValue / 1000).toFixed(decimalPlaces)).toLocaleString(\"en-US\");\r\n\t\tconst suffix = \" K\";\r\n\r\n\t\treturn isNegative ? `(${scaledNumber}${suffix})` : `${scaledNumber}${suffix}`;\r\n\t}\r\n\t//SYNFCUNTION\r\n\tGenerateGUID(): string {\r\n\t\tlet uuid = \"\",\r\n\t\t\ti,\r\n\t\t\trandom;\r\n\t\tfor (i = 0; i < 32; i++) {\r\n\t\t\trandom = (Math.random() * 16) | 0;\r\n\t\t\tif (i === 8 || i === 12 || i === 16 || i === 20) {\r\n\t\t\t\tuuid += \"-\";\r\n\t\t\t}\r\n\t\t\tuuid += (i === 12 ? 4 : i === 16 ? (random & 3) | 8 : random).toString(16);\r\n\t\t}\r\n\t\treturn uuid;\r\n\t}\r\n\tAttachDataLabelClickEvent(chartElementId: string, dataArray: any[], onClickCallback: (clickedData: any) => void): void {\r\n\t\tconst chartElement = document.getElementById(chartElementId);\r\n\t\tif (!chartElement) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst dataLabels = chartElement.querySelectorAll('[id*=\"_DataLabel_\"]');\r\n\t\tconst dataLabelsArray = Array.prototype.slice.call(dataLabels) as HTMLElement[];\r\n\t\tdataLabelsArray.forEach((label, index) => {\r\n\t\t\t// Calcula el índice ajustado para obtener el dato correcto\r\n\t\t\tconst adjustedIndex = index % dataArray.length;\r\n\r\n\t\t\tlabel.addEventListener(\"click\", () => {\r\n\t\t\t\tconst clickedData = dataArray[adjustedIndex];\r\n\t\t\t\tif (clickedData) {\r\n\t\t\t\t\tonClickCallback(clickedData);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\tFormatNumberAbsolute(number: number) {\r\n\t\tconst isNegative = number < 0;\r\n\t\tif (number < 0) {\r\n\t\t\tnumber = Math.abs(number);\r\n\t\t}\r\n\r\n\t\tlet finalNumber = `${number.toLocaleString(\"en-US\")}`;\r\n\t\treturn isNegative ? `(${finalNumber})` : `${finalNumber}`;\r\n\t}\r\n\tSortRecursive(data: any[], column: any, criteria: string) {\r\n\t\treturn _.orderBy(\r\n\t\t\tdata.map(item => {\r\n\t\t\t\tObject.keys(item).forEach(key => {\r\n\t\t\t\t\tif (Array.isArray(item[key])) {\r\n\t\t\t\t\t\titem[key] = this.SortRecursive(item[key], column, criteria);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn item;\r\n\t\t\t}),\r\n\t\t\t[(elm: any) => (typeof elm[column] === \"string\" ? elm[column].toLowerCase() : elm[column])],\r\n\t\t\t[criteria as \"asc\" | \"desc\"]\r\n\t\t);\r\n\t}\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { AfterContentInit, Component, ContentChildren, EventEmitter, inject, Input, NO_ERRORS_SCHEMA, OnChanges, Output, QueryList, SimpleChanges, ViewChild } from \"@angular/core\";\r\nimport { TableModule } from \"primeng/table\";\r\nimport { BadgeModule } from \"primeng/badge\";\r\nimport { Popover } from \"primeng/popover\";\r\nimport { ColumnComponent } from \"./column.component\";\r\nimport { SearchFieldModel } from \"./model/search.model\";\r\nimport { TooltipModule } from \"primeng/tooltip\";\r\nimport { SearchComponent } from \"../search/search.component\";\r\nimport { PaginatorComponent } from \"../paginator/paginator.component\";\r\nimport { SharedService } from \"../../services/shared.service\";\r\n\r\n@Component({\r\n\tselector: \"intelica-table\",\r\n\tstandalone: true,\r\n\timports: [CommonModule, SearchComponent, PaginatorComponent, TableModule, BadgeModule, Popover, ColumnComponent, TooltipModule],\r\n\ttemplateUrl: \"./table.component.html\",\r\n})\r\nexport class TableComponent<T> implements OnChanges, AfterContentInit {\r\n\tprivate readonly SharedService = inject(SharedService);\r\n\t@Input() ComponentId: string = \"\";\r\n\t@Input() ListData: T[] = [];\r\n\t@Input() ShowSearch: boolean = false;\r\n\t@Input() ListSearchOptions: SearchFieldModel[] = [];\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() ListDataSelected: T[] = [];\r\n\t@Input() SelectedIdentifier: keyof T | null = null;\r\n\tColumnList: ColumnComponent[] = [];\r\n\tListDataFilter: T[] = [];\r\n\tListDataTable: T[] = [];\r\n\tListDataSelectedFilter: T[] = [];\r\n\tListDataSelectedTemp: T[] = [];\r\n\tListSearchOptionsSimple: { id: number; value: string }[] = [];\r\n\tTotalRecords: number = 0;\r\n\tCurrentPage: number = 1;\r\n\tSortOrder: number = 1;\r\n\tSortField: keyof T | null = null;\r\n\t@Output() EmmitSelectedItem = new EventEmitter<T[]>();\r\n\t@ViewChild(\"paginatorTable\") PaginatorTable?: PaginatorComponent;\r\n\t@ViewChild(\"searchTable\") SearchTable?: SearchComponent;\r\n\t@ContentChildren(ColumnComponent) Columns!: QueryList<ColumnComponent>;\r\n\tconstructor() {}\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tthis.LoadSearchOptions();\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}\r\n\tLoadSearchOptions() {\r\n\t\tthis.ListSearchOptionsSimple = this.ListSearchOptions.map(item => ({\r\n\t\t\tid: item.id,\r\n\t\t\tvalue: item.name,\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(pageIndex: number) {\r\n\t\tthis.CurrentPage = pageIndex;\r\n\t\tthis.UpdatePages();\r\n\t}\r\n\tExecuteSearch(event: any): void {\r\n\t\tthis.ListDataFilter = [...this.ListData];\r\n\t\tif (event?.searchText !== undefined && event?.searchText !== \"\" && this.ListSearchOptions.length > 0) {\r\n\t\t\tlet Search = event.searchText?.trim()?.toLowerCase();\r\n\t\t\tlet searchValue = this.ListSearchOptions.find(item => item.id === event.fieldId)?.field || \"code\";\r\n\t\t\tthis.ListDataFilter = this.SharedService.GetFilteredSearchKey([...this.ListData], searchValue, Search, event.operatorId);\r\n\t\t\tif (this.PaginatorTable) {\r\n\t\t\t\tthis.PaginatorTable.CurrentPage = 1;\r\n\t\t\t\tthis.CurrentPage = 1;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.SortPages();\r\n\t}\r\n\tSortPages() {\r\n\t\tconst order = this.SortOrder === 1 ? \"asc\" : \"desc\";\r\n\t\tconst field = this.SortField as keyof T;\r\n\t\tthis.ListDataFilter = this.SharedService.SortRecursive([...this.ListDataFilter], field, order);\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}\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.EmmitSelectedItem.emit(this.ListDataSelectedTemp);\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.EmmitSelectedItem.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.EmmitSelectedItem.emit(this.ListDataSelectedTemp);\r\n\t}\r\n}\r\n","<div class=\"prTable\">\r\n\t<div class=\"prTableTools\">\r\n\t\t<intelica-search\r\n\t\t\t#searchTable\r\n\t\t\t*ngIf=\"ShowSearch\"\r\n\t\t\t[ComponentId]=\"ComponentId + 'Search'\"\r\n\t\t\t(OnSearch)=\"ExecuteSearch($event)\"\r\n\t\t\t[SearchFieldOptions]=\"ListSearchOptionsSimple\"\r\n\t\t\t[SearchOnKeyup]=\"false\"\r\n\t\t\t[SimpleSearchInput]=\"false\"\r\n\t\t></intelica-search>\r\n\t\t<intelica-paginator #paginatorTable *ngIf=\"ShowPagination\" [TotalItems]=\"ListDataFilter.length\" [ItemsPerPage]=\"RowsPerPage\" (PageChange)=\"OnPageChange($event)\"></intelica-paginator>\r\n\t</div>\r\n\t<p-table\r\n\t\tclass=\"prTableBasic\"\r\n\t\t[value]=\"ListDataTable\"\r\n\t\tresponsiveLayout=\"scroll\"\r\n\t\t[(selection)]=\"ListDataSelectedFilter\"\r\n\t\t(onHeaderCheckboxToggle)=\"SelectAll($event)\"\r\n\t\t(onRowSelect)=\"OnRowSelect($event)\"\r\n\t\t(onRowUnselect)=\"OnRowUnselect($event)\"\r\n\t>\r\n\t\t<!-- Encabezados -->\r\n\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t<tr>\r\n\t\t\t\t<th *ngFor=\"let col of ColumnList\" [class]=\"col.className\" [pSortableColumn]=\"col.sortable ? col.field : ''\" [style.width]=\"col.width\" (click)=\"OnSort(col.field)\">\r\n\t\t\t\t\t<span pTooltip=\"{{ col.headerTooltip }}\" tooltipPosition=\"{{ col.headerTooltipPosition }}\">{{ col.header }}</span>\r\n\t\t\t\t\t<p-sortIcon *ngIf=\"col.sortable\" [field]=\"col.field\"></p-sortIcon>\r\n\t\t\t\t</th>\r\n\t\t\t\t<th *ngIf=\"ShowCheckbox\" class=\"text-center\" style=\"width: 4%\">\r\n\t\t\t\t\t<p-tableHeaderCheckbox class=\"prCheckbox\" [ngClass]=\"{ 'prCheckbox--indeterminate': ListDataSelectedTemp.length > 0 && ListDataSelectedTemp.length < ListDataFilter.length }\" />\r\n\t\t\t\t</th>\r\n\t\t\t</tr>\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<td *ngFor=\"let col of ColumnList; let i = index\" [ngClass]=\"col.className\">\r\n\t\t\t\t\t<ng-container *ngIf=\"col.showIndex; else columnContent\">\r\n\t\t\t\t\t\t{{ rowIndex + 1 + (CurrentPage - 1) * RowsPerPage }}\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t<ng-template #columnContent>\r\n\t\t\t\t\t\t<ng-container *ngIf=\"col.templateRef; else defaultContent\">\r\n\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</ng-container>\r\n\t\t\t\t\t\t<ng-template #defaultContent>\r\n\t\t\t\t\t\t\t<span pTooltip=\"{{ rowData[col.tooltip] }}\" tooltipPosition=\"{{ col.tooltipPosition }}\">\r\n\t\t\t\t\t\t\t\t{{ rowData[col.field] }}\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</td>\r\n\t\t\t\t<td *ngIf=\"ShowCheckbox\" class=\"text-center\">\r\n\t\t\t\t\t<p-tableCheckbox [value]=\"rowData\" class=\"prCheckbox\" />\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 } 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\t// styleUrl: './actions-menu.component.css'\r\n})\r\nexport class ActionsMenuComponent implements OnInit {\r\n\treadonly GlobalTermService = inject(GlobalTermService);\r\n\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\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}\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\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}\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 #popoverContainer class=\"grPopoverContainer\">\r\n\t<button #menuButton class=\"grMenuAction\" (click)=\"togglePopover($event)\">\r\n\t\t<i class=\"icon icon-bars\"></i>\r\n\t</button>\r\n\t<div class=\"grPopover\" #popover>\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.FeatureFlagService","i3","i2","i1","i1.TermPipe"],"mappings":"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"}
1
+ {"version":3,"file":"intelica-library-ui.mjs","sources":["../../../projects/intelica-library-ui/src/lib/intelica-library-ui.component.ts","../../../projects/intelica-library-ui/src/lib/services/config.service.ts","../../../projects/intelica-library-ui/src/lib/services/term.service.ts","../../../projects/intelica-library-ui/src/lib/services/globalTerm.service.ts","../../../projects/intelica-library-ui/src/lib/pipes/term.pipes.ts","../../../projects/intelica-library-ui/src/lib/services/spinner.service.ts","../../../projects/intelica-library-ui/src/lib/services/sweet-alert.service.ts","../../../projects/intelica-library-ui/src/lib/constants/cookieConfiguration.constants.ts","../../../projects/intelica-library-ui/src/lib/services/featureFlag.service.ts","../../../projects/intelica-library-ui/src/lib/services/globalFeatureFlag.service.ts","../../../projects/intelica-library-ui/src/lib/interceptor/error.interceptor.ts","../../../projects/intelica-library-ui/src/lib/interceptor/refreshToken.interceptor.ts","../../../projects/intelica-library-ui/src/lib/services/language.service.ts","../../../projects/intelica-library-ui/src/lib/components/spinner/spinner.component.ts","../../../projects/intelica-library-ui/src/lib/components/spinner/spinner.component.html","../../../projects/intelica-library-ui/src/lib/components/table/column.component.ts","../../../projects/intelica-library-ui/src/lib/components/search/enums/search.enum.ts","../../../projects/intelica-library-ui/src/lib/components/search/search.component.ts","../../../projects/intelica-library-ui/src/lib/components/search/search.component.html","../../../projects/intelica-library-ui/src/lib/directives/positive-number.directive.ts","../../../projects/intelica-library-ui/src/lib/components/paginator/paginator.component.ts","../../../projects/intelica-library-ui/src/lib/components/paginator/paginator.component.html","../../../projects/intelica-library-ui/src/lib/constants/format-date.constants.ts","../../../projects/intelica-library-ui/src/lib/services/shared.service.ts","../../../projects/intelica-library-ui/src/lib/components/table/table.component.ts","../../../projects/intelica-library-ui/src/lib/components/table/table.component.html","../../../projects/intelica-library-ui/src/lib/components/actions-menu/action.directive.ts","../../../projects/intelica-library-ui/src/lib/components/actions-menu/actions-menu.component.ts","../../../projects/intelica-library-ui/src/lib/components/actions-menu/actions-menu.component.html","../../../projects/intelica-library-ui/src/lib/services/htmlToExcel.service.ts","../../../projects/intelica-library-ui/src/intelica-library-ui.ts"],"sourcesContent":["import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-intelica-library-ui',\r\n imports: [],\r\n template: `\r\n <p>\r\n intelica-library-ui works!\r\n </p>\r\n `,\r\n styles: ``\r\n})\r\nexport class IntelicaLibraryUiComponent {\r\n\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\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 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\" ? \":9000\" : \"\"}/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\tconsole.log(\"getCookie('data')\", getCookie(\"data\"));\r\n\t\tconsole.log(\"this.environment\", this.environment);\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\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?.configurationPath}/TermPage/GetPageTerm/${languageCode}/${pageRoot}`);\r\n\t}\r\n}\r\n","import { inject, Injectable, signal } from \"@angular/core\";\r\nimport { getCookie } from \"typescript-cookie\";\r\nimport { TermPageResponse } from \"../dto/term\";\r\nimport { TermService } from \"./term.service\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class GlobalTermService {\r\n\tterms: TermPageResponse[] = [];\r\n\tlanguageCode: string = \"\";\r\n\tTermsReady = signal<boolean>(false);\r\n\tPageRoot: string = \"\";\r\n\tprivate readonly termService = inject(TermService);\r\n\r\n\tInitialize(pageRoot: string): void {\r\n\t\tlet languageCode = getCookie(\"language\") ?? \"EN\";\r\n\t\tthis.PageRoot = pageRoot;\r\n\t\tif (pageRoot == \"\") {\r\n\t\t\tthis.TermsReady.set(true);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.termService.GetTerms(languageCode, pageRoot).subscribe(response => {\r\n\t\t\tthis.terms = response;\r\n\t\t\tthis.TermsReady.set(true);\r\n\t\t\tthis.SetTerms();\r\n\t\t\tthis.languageCode = languageCode;\r\n\t\t});\r\n\t}\r\n\r\n\tasync SetTerms() {\r\n\t\twhile (true) {\r\n\t\t\tawait sleep(10);\r\n\t\t\tif (document.querySelectorAll(\"[data-term]\").length > 1) break;\r\n\t\t}\r\n\t\tlet textsToChange = document.querySelectorAll(\"[data-term]\");\r\n\t\ttextsToChange.forEach(async element => {\r\n\t\t\tlet dataValue = element.getAttribute(\"data-term\");\r\n\t\t\tlet newText = this.terms.find(x => x.termName == dataValue)?.termValue ?? \"\";\r\n\t\t\telement.innerHTML = newText;\r\n\t\t\telement.setAttribute(\"placeholder\", newText);\r\n\t\t});\r\n\t}\r\n}\r\n\r\nfunction sleep(ms: number): Promise<void> {\r\n\treturn new Promise(resolve => setTimeout(resolve, ms));\r\n}\r\n","import { inject, Injectable, Pipe, PipeTransform } from \"@angular/core\";\r\nimport { GlobalTermService } from \"../services/globalTerm.service\";\r\n// import GlobalTermService from \"../services/globalTerm.service\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\n@Pipe({ name: \"term\" })\r\nexport class TermPipe implements PipeTransform {\r\n\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, 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 { Injectable } from \"@angular/core\";\r\nimport Swal, { SweetAlertOptions, SweetAlertResult } from \"sweetalert2\";\r\n\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 { CookieAttributes } from \"typescript-cookie/dist/types\";\r\nconst 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\n\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","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\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\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 { 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\n\r\nexport const ErrorInterceptor: HttpInterceptorFn = (req, next) => {\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\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}\r\n\r\n\tlet _request = req.clone({ headers: new HttpHeaders(HeaderSettings) });\r\n\treturn next(_request).pipe(catchError(handleErrorResponse));\r\n\r\n\tfunction handleErrorResponse(error: HttpErrorResponse) {\r\n\t\tconsole.log(error, \"error\");\r\n\t\tspinnerService.hide();\r\n\t\tif (error.status == 500) sweetAlertService.messageBox(error.error.message);\r\n\t\tif (error.status == 400) sweetAlertService.messageBox(error.error.message);\r\n\t\tif (error.status == 409) sweetAlertService.messageBox(error.error.message);\r\n\t\tif (error.status == 401) sweetAlertService.messageBox(\"No tiene acceso al recurso solicitado\");\r\n\t\tif (error.status == 503 || error.status == 0) sweetAlertService.messageBox(\"El servicio que se necesita consumir no esta activo o no responde.\");\r\n\t\tif (error.status == 405) sweetAlertService.messageBox(\"Los parametros enviados al servicio no coinciden.\");\r\n\t\tif (error.status == 404) sweetAlertService.messageBox(\"Recurso no encontrado.\");\r\n\t\treturn throwError(() => {\r\n\t\t\terror.error, error.message;\r\n\t\t});\r\n\t}\r\n};\r\n","import { GlobalFeatureFlagService } from \"../services/globalFeatureFlag.service\";\r\nimport { HttpClient, HttpInterceptorFn } from \"@angular/common/http\";\r\nimport { inject } from \"@angular/core\";\r\nimport { from, switchMap } from \"rxjs\";\r\nimport { getCookie, setCookie, Cookies } from \"typescript-cookie\";\r\nimport { ConfigService } from \"../services/config.service\";\r\nimport { ValidateTokenQuery, ValidateTokenResponse } from \"../dto/authentication\";\r\nimport { CookieAttributesGeneral } from \"../constants/cookieConfiguration.constants\";\r\n\r\nexport const RefreshTokenInterceptor: HttpInterceptorFn = (req, next) => {\r\n\tconst configService: ConfigService = inject(ConfigService);\r\n\tconst httpClient = inject(HttpClient);\r\n\tconst commonFeatureFlagService = inject(GlobalFeatureFlagService);\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/ValidateToken`;\r\n\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};\r\n\r\n\tif (!req.url.includes(\"ValidateToken\") && !req.url.includes(\"environment.json\") && !req.url.includes(\"GetAuthenticationFromCache\"))\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\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\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) window.location.href = window.location.origin;\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 { 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\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","import { Component, inject } from \"@angular/core\";\r\nimport { SpinnerService } from \"../../services/spinner.service\";\r\n@Component({\r\n\tselector: \"app-spinner\",\r\n\timports: [],\r\n\ttemplateUrl: \"./spinner.component.html\",\r\n\tstyleUrl: \"./spinner.component.css\",\r\n})\r\nexport class SpinnerComponent {\r\n\tprivate readonly spinerService = inject(SpinnerService);\r\n\tisLoading = this.spinerService.isLoading;\r\n\tLoadingLogo: string = `${window.location.origin}/assets/images/loading_intelica.gif`;\r\n}\r\n","@if (isLoading()){\r\n<div id=\"overlay\">\r\n\t<div class=\"loading\">\r\n\t\t<div class=\"content-center\">\r\n\t\t\t<img alt=\"Intelica\" [src]=\"LoadingLogo\" />\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n}\r\n","import { ContentChild, Directive, Input, TemplateRef } from \"@angular/core\";\r\n\r\n@Directive({ selector: \"intelica-column\" })\r\nexport class ColumnComponent<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() tooltip: string = \"\";\r\n\t@Input() tooltipPosition: \"top\" | \"bottom\" | \"left\" | \"right\" = \"top\";\r\n\t@Input() showIndex: boolean = false;\r\n\t@ContentChild(TemplateRef) templateRef?: TemplateRef<any>;\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\r\n// isGrouped: boolean = false;\r\n// isGroup: boolean = false;\r\n// colspan: number = 1;\r\n// columnsForCompare: string = '';\r\n// @ContentChild('detail') detail!: any;\r\n// @ContentChild('content') content!: any;\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\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}\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)\">\r\n\t\t\t<div\r\n\t\t\t\tclass=\"prSearchBar__dropdown--label\"\r\n\t\t\t\t[pTooltip]=\"(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 { Directive, ElementRef, HostListener } from \"@angular/core\";\r\n\r\n@Directive({\r\n\tselector: \"[positiveNumber]\",\r\n})\r\nexport class PositiveNumberDirective {\r\n\tconstructor(private el: ElementRef) {}\r\n\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\n\r\n@Component({\r\n\tselector: \"intelica-paginator\",\r\n\timports: [FormsModule, ButtonModule, PositiveNumberDirective, TermPipe],\r\n\ttemplateUrl: \"./paginator.component.html\",\r\n\t// styleUrl: './paginator.component.css'\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 class=\"prPaginator\">\r\n\t<span class=\"prPaginator__info\">{{ TotalItems }} {{ \"Records\" | term : GlobalTermService.languageCode }}</span>\r\n\t<div class=\"prPaginator__controls\">\r\n\t\t<button pButton type=\"button\" class=\"prPaginator__btn prPaginator__btn--first\" [disabled]=\"CurrentPage === 1\" (click)=\"GoToFirstPage()\"></button>\r\n\t\t<button pButton type=\"button\" class=\"prPaginator__btn prPaginator__btn--previous\" [disabled]=\"CurrentPage === 1\" (click)=\"GoToPreviousPage()\"></button>\r\n\t\t<input pInputText type=\"text\" (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<button pButton type=\"button\" class=\"prPaginator__btn prPaginator__btn--next\" [disabled]=\"CurrentPage === TotalPages\" (click)=\"GoToNextPage()\"></button>\r\n\t\t<button pButton type=\"button\" class=\"prPaginator__btn prPaginator__btn--last\" [disabled]=\"CurrentPage === TotalPages\" (click)=\"GoToLastPage()\"></button>\r\n\t</div>\r\n</div>\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\ndeclare var require: any;\r\nimport moment from \"moment\";\r\nimport * as _ from \"lodash\";\r\n@Injectable({\r\n\tprovidedIn: \"root\",\r\n})\r\nexport class SharedService {\r\n\tpublic configObservable = new Subject<boolean>();\r\n\tisLoading = new BehaviorSubject(false);\r\n\tisLoadingHeader = new BehaviorSubject(true);\r\n\tisExpandedContent = new BehaviorSubject(false);\r\n\tisLoadingPageInfo = new BehaviorSubject(true);\r\n\tnotifyProfileType = new Subject<string>();\r\n\tcharges = 0;\r\n\tshowHelper = new BehaviorSubject(false);\r\n\theaderPathName = new BehaviorSubject<string[]>([]);\r\n\tpageId: number | undefined = 0;\r\n\topenActionMenu$: Subject<boolean> = new Subject<boolean>();\r\n\tmonths = {\r\n\t\ten: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\r\n\t\tes: [\"Enero\", \"Febrero\", \"Marzo\", \"Abril\", \"Mayo\", \"Junio\", \"Julio\", \"Agosto\", \"Septiembre\", \"Octubre\", \"Noviembre\", \"Diciembre\"],\r\n\t};\r\n\tsubtitleDescriptionNotification$!: Observable<string>;\r\n\tconstructor(private location: Location) {}\r\n\t///METODOS GLOBALS.\r\n\tIsNumberRate(n: any) {\r\n\t\treturn !isNaN(parseFloat(n)) && !isNaN(n - 0);\r\n\t}\r\n\tRemovePercentage(string: string) {\r\n\t\tif (string.length > 0) {\r\n\t\t\tif (string.startsWith(\"%\")) string = string.substring(1);\r\n\t\t\tlet last = string.length - 1;\r\n\t\t\tif (string.endsWith(\"%\")) string = string.substring(0, last);\r\n\t\t}\r\n\t\treturn string;\r\n\t}\r\n\tGetTotalAmountByCrncy(col: string, listGeneral: any): number {\r\n\t\treturn listGeneral.reduce((a: any, b: any) => a + (b[col] || 0), 0);\r\n\t}\r\n\tGetTotalAverageByColumn(col: string, listGeneral: any): number {\r\n\t\treturn listGeneral.reduce((a: any, b: any) => a + (b[col] || 0), 0) / (listGeneral.length || 1);\r\n\t}\r\n\tGetTotalByGroup(col: string, listGeneral: any[], groupBy: string[] | undefined): any[] {\r\n\t\tif (!groupBy?.length) return [listGeneral.reduce((a: any, b: any) => a + (b[col] || 0), 0)];\r\n\r\n\t\tlet result: { [key: string]: any } = listGeneral.reduce((acc: { [key: string]: any }, item: any) => {\r\n\t\t\tconst groupKey = groupBy.map(prop => item[prop]).join(\"||\");\r\n\t\t\tacc[groupKey] = (acc[groupKey] || 0) + item[col];\r\n\t\t\treturn acc;\r\n\t\t}, {});\r\n\t\tconst propiedades = Object.keys(result).sort();\r\n\t\tconst indexGroup = groupBy.indexOf(col);\r\n\t\tif (indexGroup != -1) return propiedades.map(propiedad => propiedad.split(\"||\")[indexGroup]);\r\n\t\treturn propiedades.map(propiedad => result[propiedad]);\r\n\t}\r\n\tTransformNegative(value: string): string {\r\n\t\tvalue = value?.toString() ?? \"0.00\";\r\n\t\tif (value?.indexOf(\"-\") > -1) return \"(\" + value.replace(\"-\", \"\") + \")\";\r\n\t\telse return value.toString();\r\n\t}\r\n\tFormatNumber(value: number, decimalMax: number, decimalMin: number) {\r\n\t\treturn value.toLocaleString(\"en-US\", { maximumFractionDigits: decimalMax, minimumFractionDigits: decimalMin });\r\n\t}\r\n\tClickOutSideValidator(event: any): boolean {\r\n\t\tlet res = false;\r\n\t\tif (event !== undefined) {\r\n\t\t\tconst src = (event as Event).srcElement as Element;\r\n\t\t\tres = src.id !== \"button-alignment\" && !this.CheckParents(src, 0);\r\n\t\t}\r\n\t\treturn res;\r\n\t}\r\n\tCheckParents(src: Element, c: number): boolean {\r\n\t\tvar ids = [];\r\n\t\tids.push(\"HamburgerMenu\");\r\n\t\tvar strings = [];\r\n\t\tstrings.push(\"swal2-container\");\r\n\t\tif (src.className.includes(\"backdrop-visible\")) return false;\r\n\t\tvar res = ids.some(function (v) {\r\n\t\t\treturn src.id === v;\r\n\t\t});\r\n\t\tif (!res && (src.tagName === \"BODY\" || src.parentElement === null) && c === 0) {\r\n\t\t\tres = true;\r\n\t\t}\r\n\t\tif (\r\n\t\t\t!res &&\r\n\t\t\tstrings.some(function (v) {\r\n\t\t\t\treturn src.classList.contains(v);\r\n\t\t\t})\r\n\t\t)\r\n\t\t\tres = true;\r\n\t\tif (src.parentElement && !res) {\r\n\t\t\tc++;\r\n\t\t\tres = this.CheckParents(src.parentElement, c);\r\n\t\t}\r\n\t\treturn res;\r\n\t}\r\n\tGetTitleByRegionOrCountry(CurrentGroup: any, Current: any, field: string) {\r\n\t\treturn CurrentGroup ? CurrentGroup.groupName + \" - \" + Current[field] : Current[field];\r\n\t}\r\n\tGetTitleByBank(ListGeneralCountryAll: any[], CurrentBank: any) {\r\n\t\treturn ListGeneralCountryAll.length > 1 ? CurrentBank.groupName + \" - \" + CurrentBank.countryName + \" - \" + CurrentBank.bankNameCommercial : CurrentBank.bankNameCommercial;\r\n\t}\r\n\tRoundgen(value: any, precision: any) {\r\n\t\tvar multiplier = Math.pow(10, precision || 0);\r\n\t\treturn Math.round(value * multiplier) / multiplier;\r\n\t}\r\n\tReturnAmountPercen(amount: any): string {\r\n\t\tif (isNaN(amount)) amount = 0;\r\n\t\tlet resultado: string = \"\";\r\n\t\tlet AmountStr = amount === 0 ? \"0\" : amount.toLocaleString(\"en-US\", { maximumFractionDigits: 1, minimumFractionDigits: 1 });\r\n\t\tif (AmountStr.indexOf(\".0\") !== -1) AmountStr = amount.toLocaleString(\"en-US\", { maximumFractionDigits: 0, minimumFractionDigits: 0 });\r\n\t\tif (amount < 0 && parseInt(amount.toString()) * -1 === 0) {\r\n\t\t\tresultado = amount.toLocaleString(\"en-US\", { maximumFractionDigits: 1, minimumFractionDigits: 1 }).replace(\"-\", \"(\") + \"%)\";\r\n\t\t} else if (amount < 0) resultado = AmountStr.replace(\"-\", \"(\") + \"%)\";\r\n\t\telse resultado = AmountStr + \"%\";\r\n\t\tif (Number.NEGATIVE_INFINITY === amount || Number.POSITIVE_INFINITY === amount) resultado = \"\";\r\n\t\treturn resultado;\r\n\t}\r\n\tReturAmountFormat(amount: any): string {\r\n\t\tif (isNaN(amount)) amount = 0;\r\n\t\tamount = this.Roundgen(amount, 2);\r\n\t\tlet resultado: string = \"\";\r\n\t\tif (amount < 0 && parseInt(amount.toString()) * -1 === 0) resultado = amount.toString().replace(\"-\", \"(\") + \")\";\r\n\t\telse if (amount < 0 && amount > -1000) {\r\n\t\t\tresultado = this.Roundgen(amount, 0).toString().replace(\"-\", \"(\") + \")\";\r\n\t\t} else if (amount < 0 && -1000000000 >= amount) {\r\n\t\t\tresultado =\r\n\t\t\t\tthis.Roundgen(amount / 1000000000, 1)\r\n\t\t\t\t\t.toString()\r\n\t\t\t\t\t.replace(\"-\", \"(\") + \" B)\";\r\n\t\t} else if (amount < 0 && -1000000 >= amount) {\r\n\t\t\tresultado =\r\n\t\t\t\tthis.Roundgen(amount / 1000000, 1)\r\n\t\t\t\t\t.toString()\r\n\t\t\t\t\t.replace(\"-\", \"(\") + \" M)\";\r\n\t\t} else if (amount < 0) {\r\n\t\t\tresultado =\r\n\t\t\t\tthis.Roundgen(amount / 1000, 1)\r\n\t\t\t\t\t.toString()\r\n\t\t\t\t\t.replace(\"-\", \"(\") + \" K)\";\r\n\t\t} else if (amount < 1000) resultado = this.Roundgen(amount, 1).toString();\r\n\t\telse if (1000000000 < amount) resultado = this.Roundgen(amount / 1000000000, 1).toString() + \" B\";\r\n\t\telse if (1000000 < amount) resultado = this.Roundgen(amount / 1000000, 1).toString() + \" M\";\r\n\t\telse resultado = this.Roundgen(amount / 1000, 1).toString() + \" K\";\r\n\t\tif (resultado.indexOf(\".\") === -1 && amount !== 0) {\r\n\t\t\tlet a = resultado;\r\n\t\t\tlet b = \".0\";\r\n\t\t\tlet output = a + b;\r\n\r\n\t\t\tif (resultado.indexOf(\" \") !== -1) {\r\n\t\t\t\tlet position = resultado.indexOf(\" \");\r\n\t\t\t\toutput = [a.slice(0, position), b, a.slice(position)].join(\"\");\r\n\t\t\t} else if (resultado.indexOf(\" \") === -1 && resultado.indexOf(\")\") !== -1) {\r\n\t\t\t\tlet position = resultado.indexOf(\")\");\r\n\t\t\t\toutput = [a.slice(0, position), b, a.slice(position)].join(\"\");\r\n\t\t\t}\r\n\r\n\t\t\tresultado = output;\r\n\t\t}\r\n\t\treturn resultado;\r\n\t}\r\n\tDownloadFile(fileName: string, blob: any): void {\r\n\t\tconst nav = window.navigator as any;\r\n\t\tif (nav.msSaveOrOpenBlob) {\r\n\t\t\tnav.msSaveOrOpenBlob(blob, fileName);\r\n\t\t} else {\r\n\t\t\tconst link = document.createElement(\"a\");\r\n\t\t\tlink.setAttribute(\"type\", \"hidden\");\r\n\t\t\tlink.download = fileName;\r\n\t\t\tlink.href = window.URL.createObjectURL(blob.body);\r\n\t\t\tdocument.body.appendChild(link);\r\n\t\t\tlink.click();\r\n\t\t}\r\n\t}\r\n\tViewFile(response: any) {\r\n\t\tconst a = document.createElement(\"a\");\r\n\t\ta.setAttribute(\"style\", \"display:none;\");\r\n\t\tdocument.body.appendChild(a);\r\n\t\ta.href = URL.createObjectURL(response.body);\r\n\t\ta.target = \"_blank\";\r\n\t\ta.click();\r\n\t\tdocument.body.removeChild(a);\r\n\t}\r\n\tGetNumberCurrency(amount: number): string {\r\n\t\treturn amount === 0 ? \"0\" : amount.toLocaleString(\"en-US\", { maximumFractionDigits: 2, minimumFractionDigits: 2 });\r\n\t}\r\n\tCountDecimals(param: number) {\r\n\t\tif (Math.floor(param) === param) return 0;\r\n\t\treturn param.toString().split(\".\")[1].length || 0;\r\n\t}\r\n\tIsEmpty(value: any) {\r\n\t\treturn value === null || value === \"\" || value === undefined;\r\n\t}\r\n\tGroupByColumn(data: any[], columnGroup: string): any[] {\r\n\t\tlet colUnique = [];\r\n\t\tif (columnGroup != \"\") {\r\n\t\t\tcolUnique = [\r\n\t\t\t\t...new Set(\r\n\t\t\t\t\tdata.map(item => {\r\n\t\t\t\t\t\treturn item[columnGroup];\r\n\t\t\t\t\t})\r\n\t\t\t\t),\r\n\t\t\t].filter(unique => !this.IsEmpty(unique));\r\n\t\t} else {\r\n\t\t\tcolUnique = [\r\n\t\t\t\t...new Set(\r\n\t\t\t\t\tdata.map(item => {\r\n\t\t\t\t\t\treturn item;\r\n\t\t\t\t\t})\r\n\t\t\t\t),\r\n\t\t\t].filter(unique => !this.IsEmpty(unique));\r\n\t\t}\r\n\t\treturn colUnique;\r\n\t}\r\n\tGetRoswpanbyData(column: string, index: number, data: Array<any>): number {\r\n\t\tlet ValOfAgruppated = null;\r\n\t\tlet rowspanI = 1;\r\n\t\tfor (let i: number = index - 1; i < data.length; i++) {\r\n\t\t\tlet val = data[i][column];\r\n\t\t\tif (ValOfAgruppated == null) {\r\n\t\t\t\tValOfAgruppated = val;\r\n\t\t\t} else if (val !== null && ValOfAgruppated == val) {\r\n\t\t\t\trowspanI++;\r\n\t\t\t} else if (val !== null && ValOfAgruppated != val) {\r\n\t\t\t\tValOfAgruppated = null;\r\n\t\t\t\treturn rowspanI;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn rowspanI;\r\n\t}\r\n\tFormatterStringJsonByKey(data: any[], key: string, separador: string): string {\r\n\t\tlet result = \"\";\r\n\t\tlet colUnique: string[] = [];\r\n\t\tdata.forEach(element => {\r\n\t\t\tcolUnique.push(element[key]);\r\n\t\t});\r\n\t\tresult = colUnique.join(separador);\r\n\t\treturn result;\r\n\t}\r\n\tGroupByKey(xs: any, key: any) {\r\n\t\treturn xs.reduce(function (rv: any, x: any) {\r\n\t\t\t(rv[x[key]] = rv[x[key]] || []).push(x);\r\n\t\t\treturn rv;\r\n\t\t}, {});\r\n\t}\r\n\tLoadProjectsCss(route: string) {\r\n\t\tconst elements = this.CheckProjectsCss(route);\r\n\t\tif (elements.length === 0) {\r\n\t\t\tconst node = document.createElement(\"link\");\r\n\t\t\tnode.href = \"./assets/css/projects/\" + route + \".css\";\r\n\t\t\tnode.rel = \"stylesheet\";\r\n\t\t\tdocument.getElementsByTagName(\"head\")[0].appendChild(node);\r\n\t\t}\r\n\t}\r\n\tRemoveProjectsCss(route: string) {\r\n\t\tconst elements = this.CheckProjectsCss(route);\r\n\t\telements.forEach(element => {\r\n\t\t\tdocument.getElementsByTagName(\"head\")[0].removeChild(element);\r\n\t\t});\r\n\t}\r\n\tCheckProjectsCss(route: string): any[] {\r\n\t\tconst parent = document.getElementsByTagName(\"head\")[0];\r\n\t\tconst elements: any[] = [];\r\n\t\tparent.childNodes.forEach((element: any) => {\r\n\t\t\tvar a = element as object;\r\n\r\n\t\t\tif (element.nodeName === \"LINK\") {\r\n\t\t\t\tvar elemethref = element[\"href\"];\r\n\t\t\t\tif (elemethref && elemethref.indexOf(route) > 0) {\r\n\t\t\t\t\telements.push(element);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn elements;\r\n\t}\r\n\tCountDecimalsDigits(numero: any) {\r\n\t\tif (this.IsEmpty(numero)) return 0;\r\n\t\tnumero = parseFloat(numero);\r\n\t\tlet arrayNumero = numero.toString().split(\".\");\r\n\t\tnumero = arrayNumero.length > 1 ? arrayNumero[1] : \"\";\r\n\t\treturn numero.length;\r\n\t}\r\n\tGetMaxNumberDecimals(data: any[], key: string): number {\r\n\t\tlet arrCountDecimals: number[] = [];\r\n\t\tdata.forEach(element => {\r\n\t\t\tlet decimals = this.CountDecimalsDigits(element[key]);\r\n\t\t\tarrCountDecimals.push(decimals);\r\n\t\t});\r\n\t\tvar maxDecimal = Math.max(...arrCountDecimals);\r\n\t\treturn maxDecimal;\r\n\t}\r\n\tSetHeaderPathName(name: string[]) {\r\n\t\tthis.headerPathName.next(name);\r\n\t}\r\n\tFormatDate(date: string, format: string): string {\r\n\t\treturn moment(date).format(format);\r\n\t}\r\n\tCopyTo(src: any, dest: any) {\r\n\t\tObject.keys(src).forEach(property => {\r\n\t\t\tdest[property] = src[property];\r\n\t\t});\r\n\t}\r\n\tIsValidEmail(email: string): boolean {\r\n\t\tconst emailPattern = /^\\w+([.-]?\\w+)*@\\w+([.-]?\\w+)*(\\.\\w{2,3})+$/;\r\n\t\treturn emailPattern.test(email);\r\n\t}\r\n\tIsGuid(str: string): boolean {\r\n\t\tconst guidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;\r\n\t\treturn guidRegex.test(str);\r\n\t}\r\n\tContainsSpecialCharacters(str: string): boolean {\r\n\t\tconst specialCharacter = /^[^\\\\/?%*:|\"<>]+$/;\r\n\t\treturn !specialCharacter.test(str);\r\n\t}\r\n\tIsNumber(value: any): boolean {\r\n\t\treturn /^-?\\d+(\\.\\d+)?$/.test(value);\r\n\t}\r\n\tCalculatePreviousDate(date: Date, monthsAgo: number) {\r\n\t\tdate.setMonth(date.getMonth() - monthsAgo);\r\n\t\tconst newDate = moment(date).format(FormatDateConstants.DMYY_MOMENT);\r\n\r\n\t\treturn newDate;\r\n\t}\r\n\tGetFilteredSearchKey(listTempAll: any[], key: string, value: any, operatorId: number) {\r\n\t\tlet listFilter = [];\r\n\t\tswitch (operatorId) {\r\n\t\t\tcase 0: //'Contains'\r\n\t\t\t\tlet word = value.split(\"&\", 100);\r\n\t\t\t\tlet count: number = 0;\r\n\t\t\t\tlet listTemp: any;\r\n\t\t\t\tif (word.length > 1) {\r\n\t\t\t\t\tword.forEach((element: any) => {\r\n\t\t\t\t\t\tif (count === 0) {\r\n\t\t\t\t\t\t\tlistTemp = listTempAll.filter(a => a[key]?.toString()?.toLowerCase().includes(element.toLowerCase()));\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tlistTemp = listTemp.filter((a: any) => a[key]?.toString()?.toLowerCase().includes(element.toLowerCase()));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcount++;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tlistFilter = listTemp;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlistFilter = listTempAll.filter(a => a[key]?.toString()?.toLowerCase().includes(value));\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase 1: //'Exact'\r\n\t\t\t\tlistFilter = value ? listTempAll.filter(a => a[key]?.toString()?.toLowerCase() === value) : listTempAll;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 2: //'Begin'\r\n\t\t\t\tlistFilter = listTempAll.filter(a => a[key]?.toString()?.toLowerCase().startsWith(value));\r\n\t\t\t\tbreak;\r\n\t\t\tcase 3: //'Ends'\r\n\t\t\t\tlistFilter = listTempAll.filter(a => a[key]?.toString()?.toLowerCase().endsWith(value));\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tlistFilter = listTempAll.filter(a => a[key]?.toString()?.toLowerCase().includes(value));\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\treturn listFilter;\r\n\t}\r\n\tGetFilteredSearchKeyV2(listTempAll: any[], key: string, value: any, operatorId: number, subKey: any = null) {\r\n\t\tif (value.length == 0) return listTempAll;\r\n\t\tif (!listTempAll || !key || value == null) return [];\r\n\t\tlet listFilter = listTempAll;\r\n\t\tvalue = value.toString().toLowerCase();\r\n\t\tconst words = value.includes(\"&\") ? value.split(\"&\").filter(Boolean) : [value];\r\n\t\tconst filterFunction = (item: any) => {\r\n\t\t\tconst itemValue = item[key]?.toString()?.toLowerCase();\r\n\t\t\tswitch (operatorId) {\r\n\t\t\t\tcase 0: // 'Contains'\r\n\t\t\t\t\treturn words.every((word: any) => itemValue?.includes(word));\r\n\t\t\t\tcase 1: // 'Exact'\r\n\t\t\t\t\treturn itemValue === value;\r\n\t\t\t\tcase 2: // 'Begin'\r\n\t\t\t\t\treturn itemValue?.startsWith(value);\r\n\t\t\t\tcase 3: // 'Ends'\r\n\t\t\t\t\treturn itemValue?.endsWith(value);\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn itemValue?.includes(value);\r\n\t\t\t}\r\n\t\t};\r\n\t\tif (subKey) {\r\n\t\t\t// Filtrar primero a nivel de sublista\r\n\t\t\tlistFilter = listFilter.map(filter => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\t...filter,\r\n\t\t\t\t\t[subKey]: filter[subKey]?.filter((item: any) => filterFunction(item)),\r\n\t\t\t\t};\r\n\t\t\t});\r\n\t\t\t// Filtrar luego la lista principal basado en si la sublista contiene elementos\r\n\t\t\tlistFilter = listFilter.filter(filter => filter[subKey].length > 0);\r\n\t\t} else {\r\n\t\t\t// Filtrar solo la lista principal\r\n\t\t\tlistFilter = listFilter.filter(filterFunction);\r\n\t\t}\r\n\t\treturn listFilter;\r\n\t}\r\n\tpublic TransformArrayToHashTable<T, TypeKey extends string | number>(arr: T[], getKey: (p: T) => TypeKey): { [key in TypeKey]: T } {\r\n\t\t//example of Use:\r\n\t\t// this.transformArrayToHashTable<any,string>([{id:1,prop1:\"prop1Value\"}],(o)=>o.id.toString())\r\n\t\tconst hashTable: { [key in TypeKey]: T } = {} as { [key in TypeKey]: T };\r\n\t\tarr.forEach((object: T) => (hashTable[getKey(object)] = object));\r\n\t\treturn hashTable;\r\n\t}\r\n\tpublic TransformArrayToMap<TypeKey, T>(arr: T[], getKey: (p: T) => TypeKey): Map<TypeKey, T> {\r\n\t\t//example of Use:\r\n\t\t// this.transformArrayToMap<string,any>([{id:1,prop1:\"prop1Value\"}],(o)=>o.id.toString())\r\n\t\treturn new Map(arr.map(obj => [getKey(obj), obj]));\r\n\t}\r\n\tUrlHasQaUatSubdomain() {\r\n\t\tconst { hostname } = new URL(window.location.href);\r\n\t\tconst [subdomain] = hostname.split(\".\");\r\n\t\treturn [\"qa\", \"uat\"].includes(subdomain);\r\n\t}\r\n\tUrlHasQaSubdomain() {\r\n\t\tconst { hostname } = new URL(window.location.href);\r\n\t\tconst [subdomain] = hostname.split(\".\");\r\n\t\treturn [\"qa\"].includes(subdomain);\r\n\t}\r\n\tGetLastSegmentUrl(): string {\r\n\t\tconst segments = this.location.path().split(\"/\");\r\n\t\tconst lastSegment = segments[segments.length - 1];\r\n\t\tconst numberMappings: { [key: string]: string } = {\r\n\t\t\t\"0\": \"intelica-allocated\",\r\n\t\t\t\"1\": \"penalty-summary\",\r\n\t\t};\r\n\t\t// Verifica si lastSegment es un número y si tiene un mapeo correspondiente\r\n\t\tif (!isNaN(Number(lastSegment)) && numberMappings.hasOwnProperty(lastSegment)) return numberMappings[lastSegment];\r\n\t\telse return lastSegment;\r\n\t}\r\n\tOnChangeMultiple($event: any, selectDescription: string): void {\r\n\t\tlet select = $event != null ? $event.element.ej2_instances[0] : null;\r\n\t\tif (select?.value.length > 0) {\r\n\t\t\tselect.viewWrapper.innerHTML = `${select.value.length} ${selectDescription}`;\r\n\t\t}\r\n\t}\r\n\tRemoveParamsAndSegments(url: string): string {\r\n\t\t// Remover parámetros de consultanom\r\n\t\tconst urlWithoutParams = url.split(\"?\")[0];\r\n\t\t// Remover segmentos de ruta dinámicos\r\n\t\tconst regex = /\\/\\d+(?=\\/|$)(?!$)/g; // Encuentra segmentos de ruta que consisten en números\r\n\t\treturn urlWithoutParams.replace(regex, \"\");\r\n\t}\r\n\tOpenActionMenu() {\r\n\t\tthis.openActionMenu$.next(true);\r\n\t}\r\n\tAbbreviateNumber(number: number, fixed: number = 2): string {\r\n\t\tif (number == 0.0 || number == 0 || number == 0.0) {\r\n\t\t\treturn \"0\";\r\n\t\t}\r\n\t\tlet formatCant = \"\";\r\n\t\tlet numberOriginal = number;\r\n\t\tif (number < 0) {\r\n\t\t\tnumber = Math.abs(number);\r\n\t\t}\r\n\t\tif (number >= 1000 && number < 1000000) {\r\n\t\t\tnumber = parseFloat((number / 1000).toFixed(fixed));\r\n\t\t\tformatCant = \" K\";\r\n\t\t} else if (number >= 1000000 && number < 1000000000) {\r\n\t\t\tnumber = parseFloat((number / 1000000).toFixed(fixed));\r\n\t\t\tformatCant = \" M\";\r\n\t\t} else if (number >= 1000000000 && number <= 1000000000000) {\r\n\t\t\tnumber = parseFloat((number / 1000000000).toFixed(fixed));\r\n\t\t\tformatCant = \" B\";\r\n\t\t} else {\r\n\t\t\tnumber = this.NumberFormatByNumberCriteria(number, fixed);\r\n\t\t}\r\n\t\treturn numberOriginal < 0 ? `(${number}${formatCant})` : `${number}${formatCant}`;\r\n\t}\r\n\tNumberFormatByNumberCriteria(number: number, fixed: number = 4): any {\r\n\t\tconst rounded = (Math.round(number * Math.pow(10, fixed)) / Math.pow(10, fixed)).toFixed(fixed);\r\n\t\treturn rounded;\r\n\t}\r\n\tFormatPercentage(number: number, decimal: number = 2) {\r\n\t\tlet numberInit = number;\r\n\t\tif (number < 0) number = Math.abs(number);\r\n\t\tnumber = parseFloat(number.toFixed(decimal));\r\n\t\tlet finalNumber = `${number.toLocaleString(\"en-US\")}%`;\r\n\t\treturn numberInit < 0 ? `(${finalNumber})` : `${finalNumber}`;\r\n\t}\r\n\tGetMonthName(monthIndex: number, lang: \"en\" | \"es\" = \"en\"): string {\r\n\t\treturn this.months[lang][monthIndex];\r\n\t}\r\n\tFormatNumberWithSuffix(number: number, decimalPlaces: number = 0): string {\r\n\t\tif (number === 0) {\r\n\t\t\treturn \"0\";\r\n\t\t}\r\n\t\tconst isNegative = number < 0;\r\n\t\tconst absoluteValue = Math.abs(number);\r\n\t\tconst scaledNumber = parseFloat((absoluteValue / 1000).toFixed(decimalPlaces)).toLocaleString(\"en-US\");\r\n\t\tconst suffix = \" K\";\r\n\r\n\t\treturn isNegative ? `(${scaledNumber}${suffix})` : `${scaledNumber}${suffix}`;\r\n\t}\r\n\t//SYNFCUNTION\r\n\tGenerateGUID(): string {\r\n\t\tlet uuid = \"\",\r\n\t\t\ti,\r\n\t\t\trandom;\r\n\t\tfor (i = 0; i < 32; i++) {\r\n\t\t\trandom = (Math.random() * 16) | 0;\r\n\t\t\tif (i === 8 || i === 12 || i === 16 || i === 20) {\r\n\t\t\t\tuuid += \"-\";\r\n\t\t\t}\r\n\t\t\tuuid += (i === 12 ? 4 : i === 16 ? (random & 3) | 8 : random).toString(16);\r\n\t\t}\r\n\t\treturn uuid;\r\n\t}\r\n\tAttachDataLabelClickEvent(chartElementId: string, dataArray: any[], onClickCallback: (clickedData: any) => void): void {\r\n\t\tconst chartElement = document.getElementById(chartElementId);\r\n\t\tif (!chartElement) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst dataLabels = chartElement.querySelectorAll('[id*=\"_DataLabel_\"]');\r\n\t\tconst dataLabelsArray = Array.prototype.slice.call(dataLabels) as HTMLElement[];\r\n\t\tdataLabelsArray.forEach((label, index) => {\r\n\t\t\t// Calcula el índice ajustado para obtener el dato correcto\r\n\t\t\tconst adjustedIndex = index % dataArray.length;\r\n\r\n\t\t\tlabel.addEventListener(\"click\", () => {\r\n\t\t\t\tconst clickedData = dataArray[adjustedIndex];\r\n\t\t\t\tif (clickedData) {\r\n\t\t\t\t\tonClickCallback(clickedData);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\tFormatNumberAbsolute(number: number) {\r\n\t\tconst isNegative = number < 0;\r\n\t\tif (number < 0) {\r\n\t\t\tnumber = Math.abs(number);\r\n\t\t}\r\n\r\n\t\tlet finalNumber = `${number.toLocaleString(\"en-US\")}`;\r\n\t\treturn isNegative ? `(${finalNumber})` : `${finalNumber}`;\r\n\t}\r\n\tSortRecursive(data: any[], column: any, criteria: string) {\r\n\t\treturn _.orderBy(\r\n\t\t\tdata.map(item => {\r\n\t\t\t\tObject.keys(item).forEach(key => {\r\n\t\t\t\t\tif (Array.isArray(item[key])) {\r\n\t\t\t\t\t\titem[key] = this.SortRecursive(item[key], column, criteria);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn item;\r\n\t\t\t}),\r\n\t\t\t[(elm: any) => (typeof elm[column] === \"string\" ? elm[column].toLowerCase() : elm[column])],\r\n\t\t\t[criteria as \"asc\" | \"desc\"]\r\n\t\t);\r\n\t}\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { AfterContentInit, Component, ContentChildren, EventEmitter, inject, Input, NO_ERRORS_SCHEMA, OnChanges, Output, QueryList, SimpleChanges, ViewChild } from \"@angular/core\";\r\nimport { TableModule } from \"primeng/table\";\r\nimport { BadgeModule } from \"primeng/badge\";\r\nimport { Popover } from \"primeng/popover\";\r\nimport { ColumnComponent } from \"./column.component\";\r\nimport { SearchFieldModel } from \"./model/search.model\";\r\nimport { TooltipModule } from \"primeng/tooltip\";\r\nimport { SearchComponent } from \"../search/search.component\";\r\nimport { PaginatorComponent } from \"../paginator/paginator.component\";\r\nimport { SharedService } from \"../../services/shared.service\";\r\n\r\n@Component({\r\n\tselector: \"intelica-table\",\r\n\tstandalone: true,\r\n\timports: [CommonModule, SearchComponent, PaginatorComponent, TableModule, BadgeModule, Popover, ColumnComponent, TooltipModule],\r\n\ttemplateUrl: \"./table.component.html\",\r\n})\r\nexport class TableComponent<T> implements OnChanges, AfterContentInit {\r\n\tprivate readonly SharedService = inject(SharedService);\r\n\t@Input() ComponentId: string = \"\";\r\n\t@Input() ListData: T[] = [];\r\n\t@Input() ShowSearch: boolean = false;\r\n\t@Input() ListSearchOptions: SearchFieldModel[] = [];\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() ListDataSelected: T[] = [];\r\n\t@Input() SelectedIdentifier: keyof T | null = null;\r\n\tColumnList: ColumnComponent[] = [];\r\n\tListDataFilter: T[] = [];\r\n\tListDataTable: T[] = [];\r\n\tListDataSelectedFilter: T[] = [];\r\n\tListDataSelectedTemp: T[] = [];\r\n\tListSearchOptionsSimple: { id: number; value: string }[] = [];\r\n\tTotalRecords: number = 0;\r\n\tCurrentPage: number = 1;\r\n\tSortOrder: number = 1;\r\n\tSortField: keyof T | null = null;\r\n\t@Output() EmmitSelectedItem = new EventEmitter<T[]>();\r\n\t@ViewChild(\"paginatorTable\") PaginatorTable?: PaginatorComponent;\r\n\t@ViewChild(\"searchTable\") SearchTable?: SearchComponent;\r\n\t@ContentChildren(ColumnComponent) Columns!: QueryList<ColumnComponent>;\r\n\tconstructor() {}\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tthis.LoadSearchOptions();\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}\r\n\tLoadSearchOptions() {\r\n\t\tthis.ListSearchOptionsSimple = this.ListSearchOptions.map(item => ({\r\n\t\t\tid: item.id,\r\n\t\t\tvalue: item.name,\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(pageIndex: number) {\r\n\t\tthis.CurrentPage = pageIndex;\r\n\t\tthis.UpdatePages();\r\n\t}\r\n\tExecuteSearch(event: any): void {\r\n\t\tthis.ListDataFilter = [...this.ListData];\r\n\t\tif (event?.searchText !== undefined && event?.searchText !== \"\" && this.ListSearchOptions.length > 0) {\r\n\t\t\tlet Search = event.searchText?.trim()?.toLowerCase();\r\n\t\t\tlet searchValue = this.ListSearchOptions.find(item => item.id === event.fieldId)?.field || \"code\";\r\n\t\t\tthis.ListDataFilter = this.SharedService.GetFilteredSearchKey([...this.ListData], searchValue, Search, event.operatorId);\r\n\t\t\tif (this.PaginatorTable) {\r\n\t\t\t\tthis.PaginatorTable.CurrentPage = 1;\r\n\t\t\t\tthis.CurrentPage = 1;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.SortPages();\r\n\t}\r\n\tSortPages() {\r\n\t\tconst order = this.SortOrder === 1 ? \"asc\" : \"desc\";\r\n\t\tconst field = this.SortField as keyof T;\r\n\t\tthis.ListDataFilter = this.SharedService.SortRecursive([...this.ListDataFilter], field, order);\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}\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.EmmitSelectedItem.emit(this.ListDataSelectedTemp);\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.EmmitSelectedItem.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.EmmitSelectedItem.emit(this.ListDataSelectedTemp);\r\n\t}\r\n}\r\n","<div class=\"prTable\">\r\n\t<div class=\"prTableTools\">\r\n\t\t<intelica-search\r\n\t\t\t#searchTable\r\n\t\t\t*ngIf=\"ShowSearch\"\r\n\t\t\t[ComponentId]=\"ComponentId + 'Search'\"\r\n\t\t\t(OnSearch)=\"ExecuteSearch($event)\"\r\n\t\t\t[SearchFieldOptions]=\"ListSearchOptionsSimple\"\r\n\t\t\t[SearchOnKeyup]=\"false\"\r\n\t\t\t[SimpleSearchInput]=\"false\"\r\n\t\t></intelica-search>\r\n\t\t<intelica-paginator #paginatorTable *ngIf=\"ShowPagination\" [TotalItems]=\"ListDataFilter.length\" [ItemsPerPage]=\"RowsPerPage\" (PageChange)=\"OnPageChange($event)\"></intelica-paginator>\r\n\t</div>\r\n\t<p-table\r\n\t\tclass=\"prTableBasic\"\r\n\t\t[value]=\"ListDataTable\"\r\n\t\tresponsiveLayout=\"scroll\"\r\n\t\t[(selection)]=\"ListDataSelectedFilter\"\r\n\t\t(onHeaderCheckboxToggle)=\"SelectAll($event)\"\r\n\t\t(onRowSelect)=\"OnRowSelect($event)\"\r\n\t\t(onRowUnselect)=\"OnRowUnselect($event)\"\r\n\t>\r\n\t\t<!-- Encabezados -->\r\n\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t<tr>\r\n\t\t\t\t<th *ngFor=\"let col of ColumnList\" [class]=\"col.className\" [pSortableColumn]=\"col.sortable ? col.field : ''\" [style.width]=\"col.width\" (click)=\"OnSort(col.field)\">\r\n\t\t\t\t\t<span pTooltip=\"{{ col.headerTooltip }}\" tooltipPosition=\"{{ col.headerTooltipPosition }}\">{{ col.header }}</span>\r\n\t\t\t\t\t<p-sortIcon *ngIf=\"col.sortable\" [field]=\"col.field\"></p-sortIcon>\r\n\t\t\t\t</th>\r\n\t\t\t\t<th *ngIf=\"ShowCheckbox\" class=\"text-center\" style=\"width: 4%\">\r\n\t\t\t\t\t<p-tableHeaderCheckbox class=\"prCheckbox\" [ngClass]=\"{ 'prCheckbox--indeterminate': ListDataSelectedTemp.length > 0 && ListDataSelectedTemp.length < ListDataFilter.length }\" />\r\n\t\t\t\t</th>\r\n\t\t\t</tr>\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<td *ngFor=\"let col of ColumnList; let i = index\" [ngClass]=\"col.className\">\r\n\t\t\t\t\t<ng-container *ngIf=\"col.showIndex; else columnContent\">\r\n\t\t\t\t\t\t{{ rowIndex + 1 + (CurrentPage - 1) * RowsPerPage }}\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t<ng-template #columnContent>\r\n\t\t\t\t\t\t<ng-container *ngIf=\"col.templateRef; else defaultContent\">\r\n\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</ng-container>\r\n\t\t\t\t\t\t<ng-template #defaultContent>\r\n\t\t\t\t\t\t\t<span pTooltip=\"{{ rowData[col.tooltip] }}\" tooltipPosition=\"{{ col.tooltipPosition }}\">\r\n\t\t\t\t\t\t\t\t{{ rowData[col.field] }}\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</td>\r\n\t\t\t\t<td *ngIf=\"ShowCheckbox\" class=\"text-center\">\r\n\t\t\t\t\t<p-tableCheckbox [value]=\"rowData\" class=\"prCheckbox\" />\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 } 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\t// styleUrl: './actions-menu.component.css'\r\n})\r\nexport class ActionsMenuComponent implements OnInit {\r\n\treadonly GlobalTermService = inject(GlobalTermService);\r\n\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\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}\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\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}\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 #popoverContainer class=\"grPopoverContainer\">\r\n\t<button #menuButton class=\"grMenuAction\" (click)=\"togglePopover($event)\">\r\n\t\t<i class=\"icon icon-bars\"></i>\r\n\t</button>\r\n\t<div class=\"grPopover\" #popover>\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 * 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(excelName: string, reportTitle: string, filterTitle: string, rowsSerializate: string, columns: IExcelColumnName[], filters: IFilter[]) {\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);\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\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 = { vertical: \"middle\", horizontal: \"center\" };\r\n\t}\r\n\tprivate SetReportPage(rowsSerializate: string, worksheet: Worksheet, columns: IExcelColumnName[], imageId: number) {\r\n\t\tlet columnsCell: string[] = [];\r\n\t\tlet cells: ICell[] = [];\r\n\t\tlet rows = JSON.parse(rowsSerializate);\r\n\t\tconst numberRows = rows.length;\r\n\t\tworksheet.addRow([\"\"]);\r\n\t\tworksheet.addRow([\"\"]);\r\n\t\tworksheet.addRow([\"\"]);\r\n\t\tworksheet.addRow([\"\"]);\r\n\t\tworksheet.addRow([\"\"]);\r\n\t\tlet columnsNames: string[] = [];\r\n\t\tfor (let i = 0; i < columns.length; i++) {\r\n\t\t\tlet cell = `${String.fromCharCode(65 + i)}6`;\r\n\t\t\tcolumnsNames.push(columns[i].displayColumnName);\r\n\t\t\tcolumnsCell.push(cell);\r\n\t\t}\r\n\t\tworksheet.addRow(columnsNames);\r\n\t\tfor (let rowIndex = 0; rowIndex < numberRows; rowIndex++) {\r\n\t\t\tlet rowCells: string[] = [];\r\n\t\t\tlet rowValues: string[] = [];\r\n\t\t\tlet index = rowIndex + 7;\r\n\t\t\tfor (let columIndex = 0; columIndex < columns.length; columIndex++) {\r\n\t\t\t\tlet cell = `${String.fromCharCode(65 + columIndex)}${index}`;\r\n\t\t\t\trowCells.push(cell);\r\n\t\t\t\tif (columIndex == 0) {\r\n\t\t\t\t\trowValues.push(`${rowIndex + 1}`);\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\trowValues.push(rows[rowIndex][columns[columIndex].columnName]);\r\n\t\t\t}\r\n\t\t\tworksheet.addRow(rowValues);\r\n\t\t\tcells.push({ index: index, cells: rowCells });\r\n\t\t}\r\n\t\tcolumnsCell.map(key => {\r\n\t\t\tworksheet.getCell(key).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\tbgColor: { argb: \"17375e\" },\r\n\t\t\t};\r\n\t\t\tworksheet.getCell(key).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\tworksheet.getCell(key).alignment = this.ColumnAligment;\r\n\t\t});\r\n\t\tcells.forEach(element => {\r\n\t\t\telement.cells.map(key => {\r\n\t\t\t\tif (element.index % 2 !== 1) {\r\n\t\t\t\t\tworksheet.getCell(key).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\tbgColor: { argb: \"D9D9D9\" },\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t\tworksheet.getCell(key).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\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\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\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) + 2;\r\n\t\t\tcolumn.width = Math.min(Math.max(columnWidth, 5), 100);\r\n\t\t\tcolumn.alignment = columns[index].isNumber ? { vertical: \"middle\", horizontal: \"right\", wrapText: true } : { vertical: \"middle\", horizontal: \"left\", wrapText: true };\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}\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\tisNumber: boolean;\r\n\twidth?: number;\r\n}\r\nexport interface IFilter {\r\n\tkey: string;\r\n\tvalue: string;\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.FeatureFlagService","i3","i2","i1","i1.TermPipe"],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class HtmlToExcelService {
3
+ ExportTOExcel(idTabla: string, html: string, filename: string, tabname: string, extension: string): void;
4
+ private readonly Logo;
5
+ private readonly ColumnAligment;
6
+ ExportToExcel(excelName: string, reportTitle: string, filterTitle: string, rowsSerializate: string, columns: IExcelColumnName[], filters: IFilter[]): Promise<void>;
7
+ private SetTitle;
8
+ private SetReportPage;
9
+ private SetFilterPage;
10
+ private AdjustColumnWidth;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<HtmlToExcelService, never>;
12
+ static ɵprov: i0.ɵɵInjectableDeclaration<HtmlToExcelService>;
13
+ }
14
+ export interface ICell {
15
+ index: number;
16
+ cells: string[];
17
+ }
18
+ export interface IExcelColumnName {
19
+ columnName: string;
20
+ displayColumnName: string;
21
+ isNumber: boolean;
22
+ width?: number;
23
+ }
24
+ export interface IFilter {
25
+ key: string;
26
+ value: string;
27
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "intelica-library-ui",
3
- "version": "0.1.29",
3
+ "version": "0.1.30",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^19.2.0",
6
6
  "@angular/core": "^19.2.0"
package/public-api.d.ts CHANGED
@@ -17,3 +17,4 @@ export * from "./lib/components/table/column.component";
17
17
  export * from "./lib/components/table/model/search.model";
18
18
  export * from "./lib/components/actions-menu/actions-menu.component";
19
19
  export * from "./lib/components/actions-menu/action.directive";
20
+ export * from "./lib/services/htmlToExcel.service";