{"version":3,"file":"ng-pli-commons.mjs","sources":["../../../projects/ng-pli-commons/src/lib/ng-pli-commons.service.ts","../../../projects/ng-pli-commons/src/lib/utils/form-util.ts","../../../projects/ng-pli-commons/src/lib/services/tasa.cambio.service.ts","../../../projects/ng-pli-commons/src/lib/services/common.service.ts","../../../projects/ng-pli-commons/src/lib/components/common.lists.component.ts","../../../projects/ng-pli-commons/src/lib/utils/formio-util.ts","../../../projects/ng-pli-commons/src/lib/services/form.service.ts","../../../projects/ng-pli-commons/src/lib/services/token.service.ts","../../../projects/ng-pli-commons/src/lib/services/ppp.service.ts","../../../projects/ng-pli-commons/src/lib/services/hash.service.ts","../../../projects/ng-pli-commons/src/lib/services/authentication.service.ts","../../../projects/ng-pli-commons/src/lib/services/budget.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-snapshot-token.service.ts","../../../projects/ng-pli-commons/src/lib/services/configuration-document.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-evaluation-task.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-guarantee-token.service.ts","../../../projects/ng-pli-commons/src/lib/components/configuration-token/configuration-token-subject.service.ts","../../../projects/ng-pli-commons/src/lib/components/configuration-token/snapshot-token/snapshot-token.component.ts","../../../projects/ng-pli-commons/src/lib/components/configuration-token/snapshot-token/snapshot-token.component.html","../../../projects/ng-pli-commons/src/lib/components/configuration-token/guarantee-token/guarantee-token.component.ts","../../../projects/ng-pli-commons/src/lib/components/configuration-token/guarantee-token/guarantee-token.component.html","../../../projects/ng-pli-commons/src/lib/components/configuration-token/configuration-token.component.ts","../../../projects/ng-pli-commons/src/lib/components/configuration-token/configuration-token.component.html","../../../projects/ng-pli-commons/src/lib/components/dynamic-filter/dynamic-filter.component.ts","../../../projects/ng-pli-commons/src/lib/components/dynamic-filter/dynamic-filter.component.html","../../../projects/ng-pli-commons/src/lib/components/excel-to-json/excel-to-json.component.ts","../../../projects/ng-pli-commons/src/lib/components/excel-to-json/excel-to-json.component.html","../../../projects/ng-pli-commons/src/lib/components/configuration.commons.component.ts","../../../projects/ng-pli-commons/src/lib/components/pdf-config/pdf-config.component.ts","../../../projects/ng-pli-commons/src/lib/components/pdf-config/pdf-config.component.html","../../../projects/ng-pli-commons/src/lib/services/data-form.service.ts","../../../projects/ng-pli-commons/src/lib/services/application.service.ts","../../../projects/ng-pli-commons/src/lib/services/token-transformation.service.ts","../../../projects/ng-pli-commons/src/lib/components/pdf-generator/pdf-generator.component.ts","../../../projects/ng-pli-commons/src/lib/components/pdf-generator/pdf-generator.component.html","../../../projects/ng-pli-commons/src/lib/services/file.service.ts","../../../projects/ng-pli-commons/src/lib/components/pdf-visualizer/pdf-visualizer.component.ts","../../../projects/ng-pli-commons/src/lib/components/pdf-visualizer/pdf-visualizer.component.html","../../../projects/ng-pli-commons/src/lib/components/pdf-merge-visualizer/pdf-merge-visualizer.component.ts","../../../projects/ng-pli-commons/src/lib/components/pdf-merge-visualizer/pdf-merge-visualizer.component.html","../../../projects/ng-pli-commons/src/lib/components/select-ppp/select-ppp.component.ts","../../../projects/ng-pli-commons/src/lib/components/select-ppp/select-ppp.component.html","../../../projects/ng-pli-commons/src/lib/components/show-hide-columns/show-hide-columns-table.component.ts","../../../projects/ng-pli-commons/src/lib/components/show-hide-columns/show-hide-columns-table.component.html","../../../projects/ng-pli-commons/src/lib/services/sesion.service.ts","../../../projects/ng-pli-commons/src/lib/components/token/token.component.ts","../../../projects/ng-pli-commons/src/lib/components/token/token.component.html","../../../projects/ng-pli-commons/src/lib/pipes/currency-colfuturo.pipe.ts","../../../projects/ng-pli-commons/src/lib/directives/currency-colfuturo-formatter.directive.ts","../../../projects/ng-pli-commons/src/lib/pipes/currency-decimal-colfuturo.pipe.ts","../../../projects/ng-pli-commons/src/lib/directives/currency-decimal-colfuturo-formatter.directive.ts","../../../projects/ng-pli-commons/src/lib/pipes/currency-print-colfuturo.pipe.ts","../../../projects/ng-pli-commons/src/lib/pipes/thousands.pipe.ts","../../../projects/ng-pli-commons/src/lib/services/application-tag.service.ts","../../../projects/ng-pli-commons/src/lib/services/tag-management.service.ts","../../../projects/ng-pli-commons/src/lib/services/spinner.service.ts","../../../projects/ng-pli-commons/src/lib/services/budget-application.service.ts","../../../projects/ng-pli-commons/src/lib/services/document-management.service.ts","../../../projects/ng-pli-commons/src/lib/services/document.service.ts","../../../projects/ng-pli-commons/src/lib/services/documentary.type.service.ts","../../../projects/ng-pli-commons/src/lib/services/email.service.ts","../../../projects/ng-pli-commons/src/lib/services/cube.service.ts","../../../projects/ng-pli-commons/src/lib/services/evaluation.service.ts","../../../projects/ng-pli-commons/src/lib/services/export-excel.service.ts","../../../projects/ng-pli-commons/src/lib/services/global.show.task.service.ts","../../../projects/ng-pli-commons/src/lib/services/import-data.service.ts","../../../projects/ng-pli-commons/src/lib/services/interaction-application-user.service.ts","../../../projects/ng-pli-commons/src/lib/services/keys-assignation.service.ts","../../../projects/ng-pli-commons/src/lib/services/letter-campaing.service.ts","../../../projects/ng-pli-commons/src/lib/services/log.service.ts","../../../projects/ng-pli-commons/src/lib/services/page.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-page-sub-process.service.ts","../../../projects/ng-pli-commons/src/lib/services/permission.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-app-card-filter.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-committee-visualization-mode.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-evaluation-template.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-header.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-indicator.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-interaction.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-look-and-feel.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-profile-user.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-scenario.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-segmentation.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-status-flow-interaction.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-status-flow.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-support-document.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-text.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-user-workspace.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-valpro-keys.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-workspace-segmentation.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-multiple-value-filter.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-promocion-username.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-segmentation.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-tag.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-user.service.ts","../../../projects/ng-pli-commons/src/lib/services/profile.service.ts","../../../projects/ng-pli-commons/src/lib/services/segmentation-user-service.service.ts","../../../projects/ng-pli-commons/src/lib/services/openkm-document.service.ts","../../../projects/ng-pli-commons/src/lib/services/segmentation.service.ts","../../../projects/ng-pli-commons/src/lib/services/send-application.service.ts","../../../projects/ng-pli-commons/src/lib/services/sesion-form.service.ts","../../../projects/ng-pli-commons/src/lib/services/sponsorship-letter.service.ts","../../../projects/ng-pli-commons/src/lib/services/status.service.ts","../../../projects/ng-pli-commons/src/lib/services/user.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-budget.service.ts","../../../projects/ng-pli-commons/src/lib/services/configuration.service.ts","../../../projects/ng-pli-commons/src/lib/services/budget-simulation.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-acuity-fields.service.ts","../../../projects/ng-pli-commons/src/lib/services/guarantee.service.ts","../../../projects/ng-pli-commons/src/lib/services/credit-study.service.ts","../../../projects/ng-pli-commons/src/lib/services/guarantee-document.service.ts","../../../projects/ng-pli-commons/src/lib/services/common-info.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-menu-form.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-guarantee-documents-template.service.ts","../../../projects/ng-pli-commons/src/lib/services/integration-ado.service.ts","../../../projects/ng-pli-commons/src/lib/services/guarantee-enrollment.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-text-option.service.ts","../../../projects/ng-pli-commons/src/lib/services/configuration-minisite.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-tag-assignment.service.ts","../../../projects/ng-pli-commons/src/lib/services/university.service.ts","../../../projects/ng-pli-commons/src/lib/services/progress-bar.service.ts","../../../projects/ng-pli-commons/src/lib/components/progress-bar/progress-bar.component.ts","../../../projects/ng-pli-commons/src/lib/components/progress-bar/progress-bar.component.html","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-survey-pdf.service.ts","../../../projects/ng-pli-commons/src/lib/services/segmentation-tokens.service.ts","../../../projects/ng-pli-commons/src/lib/components/tokens-calculator/tokens-calculator.component.ts","../../../projects/ng-pli-commons/src/lib/components/tokens-calculator/tokens-calculator.component.html","../../../projects/ng-pli-commons/src/lib/components/segmentation-tokens/segmentation-tokens.component.ts","../../../projects/ng-pli-commons/src/lib/components/segmentation-tokens/segmentation-tokens.component.html","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-project-summary.service.ts","../../../projects/ng-pli-commons/src/lib/services/partner.service.ts","../../../projects/ng-pli-commons/src/lib/services/partner-system.service.ts","../../../projects/ng-pli-commons/src/lib/services/pdf-analyzer.service.ts","../../../projects/ng-pli-commons/src/lib/components/pdf-analyzer/pdf-analyzer.component.ts","../../../projects/ng-pli-commons/src/lib/components/pdf-analyzer/pdf-analyzer.component.html","../../../projects/ng-pli-commons/src/lib/services/pli-message-type.service.ts","../../../projects/ng-pli-commons/src/lib/services/assign-task.service.ts","../../../projects/ng-pli-commons/src/lib/ng-pli-commons.module.ts","../../../projects/ng-pli-commons/src/lib/components/backoffice.commons.component.ts","../../../projects/ng-pli-commons/src/lib/components/dashboard.commons.component.ts","../../../projects/ng-pli-commons/src/lib/components/frontoffice.commons.component.ts","../../../projects/ng-pli-commons/src/lib/services/document-process.service.ts","../../../projects/ng-pli-commons/src/lib/services/upload-documents.service.ts","../../../projects/ng-pli-commons/src/lib/services/application-pdf-form.service.ts","../../../projects/ng-pli-commons/src/lib/services/application-fill-percentage.service.ts","../../../projects/ng-pli-commons/src/lib/services/blocked-beneficiary.service.ts","../../../projects/ng-pli-commons/src/lib/services/budget-setup.service.ts","../../../projects/ng-pli-commons/src/lib/services/codebtors.service.ts","../../../projects/ng-pli-commons/src/lib/services/closure-wallet.service.ts","../../../projects/ng-pli-commons/src/lib/services/committee-assistant.service.ts","../../../projects/ng-pli-commons/src/lib/services/committee-pdf.service.ts","../../../projects/ng-pli-commons/src/lib/services/committee-money.service.ts","../../../projects/ng-pli-commons/src/lib/services/committee-snapshot.service.ts","../../../projects/ng-pli-commons/src/lib/services/credit-score.service.ts","../../../projects/ng-pli-commons/src/lib/services/data-form-history.service.ts","../../../projects/ng-pli-commons/src/lib/services/data-letter-segmentation.service.ts","../../../projects/ng-pli-commons/src/lib/services/document-analysis-auto.service.ts","../../../projects/ng-pli-commons/src/lib/services/document-validation-attempt.service.ts","../../../projects/ng-pli-commons/src/lib/services/gic-client-disbursement-metadata.service.ts","../../../projects/ng-pli-commons/src/lib/services/gic-cnf-bankvision-transaction.service.ts","../../../projects/ng-pli-commons/src/lib/services/gic-cnf-closing-date.service.ts","../../../projects/ng-pli-commons/src/lib/services/gic-client.service.ts","../../../projects/ng-pli-commons/src/lib/services/gic-disbursement.service.ts","../../../projects/ng-pli-commons/src/lib/services/gic-collection.service.ts","../../../projects/ng-pli-commons/src/lib/services/gic-extract.service.ts","../../../projects/ng-pli-commons/src/lib/services/gic-log.service.ts","../../../projects/ng-pli-commons/src/lib/services/gic-trm.service.ts","../../../projects/ng-pli-commons/src/lib/services/gic-payment-application.service.ts","../../../projects/ng-pli-commons/src/lib/services/initial-configuration-gic-parameters.service.ts","../../../projects/ng-pli-commons/src/lib/services/initial-record.service.ts","../../../projects/ng-pli-commons/src/lib/services/letter-task-mapping.service.ts","../../../projects/ng-pli-commons/src/lib/services/legalization.service.ts","../../../projects/ng-pli-commons/src/lib/services/migration-plis.service.ts","../../../projects/ng-pli-commons/src/lib/services/migration-survey-queue.service.ts","../../../projects/ng-pli-commons/src/lib/services/summary-budget.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-appointment-type.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-budget-program-type.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-config-minisite.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-committee-pdf-config-table-config.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-committee-pdf-gen-status.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-committee.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-committee-valpro-columns.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-dynamic-keys-assign.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-document-management.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-evaluation-task-template.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-information-system.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-letter-template.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-letter-template-type.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-migration-status-plis.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-migration-plis-field.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-page-section-form.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-pdfs.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-form-edit.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-form-multiaplicacion.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-profile-form.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-survey.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-survey-document.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-task-group.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-text-category.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-type-text.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-user-calendar.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-migration-plis-field-budget.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-seg-action-user.service.ts","../../../projects/ng-pli-commons/src/lib/services/plis-beneficiario.service.ts","../../../projects/ng-pli-commons/src/lib/services/promotion-score.service.ts","../../../projects/ng-pli-commons/src/lib/services/survey.service.ts","../../../projects/ng-pli-commons/src/lib/services/survey-metadata.service.ts","../../../projects/ng-pli-commons/src/lib/services/survey-queue.service.ts","../../../projects/ng-pli-commons/src/lib/services/registry-identifier.service.ts","../../../projects/ng-pli-commons/src/lib/services/visualization-committee.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-configuration-credit-study.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-university-article.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-cloning.service.ts","../../../projects/ng-pli-commons/src/lib/utils/custom-validator.ts","../../../projects/ng-pli-commons/src/version.ts","../../../projects/ng-pli-commons/src/lib/utils/version-commons.ts","../../../projects/ng-pli-commons/src/lib/services/document-history.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-support-document-category.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-evaluation-task-mailing.service.ts","../../../projects/ng-pli-commons/src/lib/services/return-refund.service.ts","../../../projects/ng-pli-commons/src/lib/services/interest-adjustment.service.ts","../../../projects/ng-pli-commons/src/lib/services/import-excel-gic.service.ts","../../../projects/ng-pli-commons/src/lib/services/gic-cnf-maintenance.service.ts","../../../projects/ng-pli-commons/src/lib/services/gic-payment-plan-cube.service.ts","../../../projects/ng-pli-commons/src/lib/services/maintenance.service.ts","../../../projects/ng-pli-commons/src/lib/services/gic-payment-plan.service.ts","../../../projects/ng-pli-commons/src/lib/services/plis-estatus-change.service.ts","../../../projects/ng-pli-commons/src/lib/services/pli-cnf-mail.service.ts","../../../projects/ng-pli-commons/src/lib/services/master-university.service.ts","../../../projects/ng-pli-commons/src/lib/services/master-program.service.ts","../../../projects/ng-pli-commons/src/lib/services/master-category.service.ts","../../../projects/ng-pli-commons/src/lib/services/people-master.service.ts","../../../projects/ng-pli-commons/src/lib/services/correspondence-manager.service.ts","../../../projects/ng-pli-commons/src/lib/services/correspondence-document-category.service.ts","../../../projects/ng-pli-commons/src/lib/services/cnf-correspondence-document-manager.service.ts","../../../projects/ng-pli-commons/src/lib/services/post-selection.service.ts","../../../projects/ng-pli-commons/src/lib/services/guarantees-summary-service.ts","../../../projects/ng-pli-commons/src/public-api.ts","../../../projects/ng-pli-commons/src/ng-pli-commons.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class NgPliCommonsService {\n\n  constructor() { }\n}\n","import { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\n\nexport class FormUtil {\n\t/** It triggers the validation of every form-control from a formGroup */\n\tstatic validateFormFields(formGroup: UntypedFormGroup) {\n\t\tObject.keys(formGroup.controls).forEach((field) => {\n\t\t\tvar control = formGroup.get(field);\n\t\t\tif (control instanceof UntypedFormControl) {\n\t\t\t\tcontrol.markAsTouched({ onlySelf: true });\n\t\t\t} else if (control instanceof UntypedFormGroup) {\n\t\t\t\tFormUtil.validateFormFields(control);\n\t\t\t}\n\t\t});\n\t}\n\n\t/** It returns a set of invalid controls */\n\tstatic getInvalidControls(formGroup: UntypedFormGroup) {\n\t\tconst invalid = [];\n\t\tconst controls = formGroup.controls;\n\t\tfor (const name in controls) {\n\t\t\tif (controls[name].invalid) {\n\t\t\t\tinvalid.push(name);\n\t\t\t}\n\t\t}\n\t\treturn invalid;\n\t}\n\n\t/** It validates if a formcontrol has any error */\n\tstatic hasErrors(formControl: UntypedFormControl) {\n\t\treturn formControl && formControl.errors && (formControl.dirty || formControl.touched);\n\t}\n\n\t/** It validates if a formcontrol has a specific error */\n\tstatic hasError(formControl: UntypedFormControl, error: string) {\n\t\treturn FormUtil.hasErrors(formControl) && formControl.errors[error];\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { TasaCambio } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class TasaCambioService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** Search list of exchange rates */\n\tgetAllTasaCambioLightInDate(date: string): Observable<any> {\n\t\treturn this.httpClient.get<TasaCambio[]>(\n\t\t\tthis.environment.host.backend.plis + 'tasacambio/getAllTasaCambioLightInDate',\n\t\t\t{ params: new HttpParams().set('date', date) }\n\t\t);\n\t}\n\n\tgetAllTasaCambioLightInDateByMonOrigenDestino(\n\t\tdate: string,\n\t\tmonOrigen: number,\n\t\tmonDestino: number\n\t) {\n\t\treturn this.httpClient.get<TasaCambio>(\n\t\t\tthis.environment.host.backend.plis +\n\t\t\t\t'tasacambio/getAllTasaCambioLightInDateByMonOrigenDestino',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('date', date)\n\t\t\t\t\t.set('monOrigen', monOrigen)\n\t\t\t\t\t.set('monDestino', monDestino)\n\t\t\t}\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { Moneda, Rubro, TasaCambio, DateUtil, Idioma, Proceso, RequestPdf } from 'ng-pli-util';\nimport { TasaCambioService } from './tasa.cambio.service';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class CommonService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\t/** Notify when the currencies info change */\n\tcurrencyChanged = new BehaviorSubject<Moneda[]>(undefined);\n\t/** List of currency */\n\tprivate lCurrency: Moneda[];\n\t/** Notify when the categories info change */\n\tcategoryChanged = new BehaviorSubject<Rubro[]>(undefined);\n\t/** List of currency */\n\tprivate lCategory: Rubro[];\n\t/** Notify when the exchange rate info change */\n\texchangeRateChanged = new BehaviorSubject<TasaCambio[]>(undefined);\n\t/** List of exchange rate */\n\tprivate lExchangeRate: TasaCambio[];\n\t/** Notify when the idioma has changed */\n\tlanguageChanged = new BehaviorSubject<Idioma[]>(undefined);\n\t/** List of exchange rate */\n\tprivate lLanguage: Idioma[];\n\t/** Notify when the process info change */\n\tprocessChanged = new BehaviorSubject<Proceso[]>(undefined);\n\t/** List of process */\n\tprivate lProcess: Proceso[];\n\n\tconstructor(\n\t\t@Inject('environment') private environment: any,\n\t\tprivate httpClient: HttpClient,\n\t\tprivate tasaCambioService: TasaCambioService\n\t) {\n\t\tthis.initValues();\n\t}\n\n\t/**  It has an observable to notify if the language is changed */\n\tonLanguageChanged(): Observable<Idioma[]> {\n\t\treturn this.languageChanged.asObservable();\n\t}\n\n\t/**  It has an observable to notify if the cateogry is changed */\n\tonCurrencyChanged(): Observable<Moneda[]> {\n\t\treturn this.currencyChanged.asObservable();\n\t}\n\n\t/**  It has an observable to notify if the category is changed */\n\tonCategoryChanged(): Observable<Rubro[]> {\n\t\treturn this.categoryChanged.asObservable();\n\t}\n\n\t/**  It has an observable to notify if the exchange rate is changed */\n\tonExchangeRateChanged(): Observable<TasaCambio[]> {\n\t\treturn this.exchangeRateChanged.asObservable();\n\t}\n\n\t/**  It has an observable to notify if the list of process is changed */\n\tonProcessChanged(): Observable<Proceso[]> {\n\t\treturn this.processChanged.asObservable();\n\t}\n\n\t/**\n\t * Search the info of the variables, first try to search in the local storage,\n\t * if not find info, get the info from the services\n\t */\n\tinitValues() {\n\t\tthis.searchLCurrency();\n\t\tthis.searchLCategory();\n\t\tthis.searchLExchangeRate();\n\t\tthis.searchLLanguage();\n\t\tthis.searchLProcess();\n\t}\n\n\t/**\n\t * Remove all variables of the local storage\n\t */\n\treloadValues() {\n\t\tlocalStorage.removeItem('lCurrency');\n\t\tlocalStorage.removeItem('lCategory');\n\t\tlocalStorage.removeItem('lExchangeRate');\n\t\tlocalStorage.removeItem('lLanguage');\n\t\tlocalStorage.removeItem('lProcess');\n\t}\n\n\t/** Search list of currencies */\n\tgetLanguages() {\n\t\tthis.httpClient\n\t\t\t.get<Idioma[]>(this.environment.host.backend.plis + 'idioma/getAll')\n\t\t\t.subscribe(\n\t\t\t\t(lLanguage: Idioma[]) => {\n\t\t\t\t\tthis.setLLanguage(lLanguage);\n\t\t\t\t},\n\t\t\t\t(error) => {\n\t\t\t\t\tconsole.error('Error - getListCurrencies -El sistema no responde', error);\n\t\t\t\t}\n\t\t\t);\n\t}\n\n\t/** Search list of currencies */\n\tgetCurrencies() {\n\t\tthis.httpClient\n\t\t\t.get<Moneda[]>(this.environment.host.backend.plis + 'moneda/getAll')\n\t\t\t.subscribe(\n\t\t\t\t(lCurrency: Moneda[]) => {\n\t\t\t\t\tthis.setLCurrencies(lCurrency);\n\t\t\t\t},\n\t\t\t\t(error) => {\n\t\t\t\t\tconsole.error('Error - getListCurrencies -El sistema no responde', error);\n\t\t\t\t}\n\t\t\t);\n\t}\n\n\t/** Search list of categories */\n\tgetCategories() {\n\t\tthis.httpClient\n\t\t\t.get<Rubro[]>(this.environment.host.backend.plis + 'rubro/getAll', {\n\t\t\t\tparams: new HttpParams().set('cargarListas', 'true')\n\t\t\t})\n\t\t\t.subscribe(\n\t\t\t\t(lCategory: Rubro[]) => {\n\t\t\t\t\tthis.setLCategory(lCategory);\n\t\t\t\t},\n\t\t\t\t(error) => {\n\t\t\t\t\tconsole.error('Error - getCategories -El sistema no responde', error);\n\t\t\t\t}\n\t\t\t);\n\t}\n\n\t/** Search list of exchange rates */\n\tgetExchangeRate(date: string) {\n\t\tthis.tasaCambioService.getAllTasaCambioLightInDate(date).subscribe(\n\t\t\t(lExchangeRate: TasaCambio[]) => {\n\t\t\t\tthis.setLExchangeRate(lExchangeRate);\n\t\t\t},\n\t\t\t(error) => {\n\t\t\t\tconsole.error('Error - getExchangeRate -El sistema no responde', error);\n\t\t\t}\n\t\t);\n\t}\n\n\t/** Search list of exchange rates */\n\tgetProcess() {\n\t\tthis.httpClient\n\t\t\t.get<Proceso[]>(this.environment.host.backend.plis + 'common/getAllProcesos')\n\t\t\t.subscribe(\n\t\t\t\t(lProcess: Proceso[]) => {\n\t\t\t\t\tthis.setLProcess(lProcess);\n\t\t\t\t},\n\t\t\t\t(error) => {\n\t\t\t\t\tconsole.error('Error - getProcess -El sistema no responde', error);\n\t\t\t\t}\n\t\t\t);\n\t}\n\n\tsetLCurrencies(lCurrency: Moneda[]) {\n\t\tfor (let key in lCurrency) {\n\t\t\tlet currency: Moneda = Object.assign(new Moneda(), lCurrency[key]);\n\t\t\tlCurrency[key] = currency;\n\t\t}\n\t\tthis.lCurrency = lCurrency;\n\t\tlet lCurrencySlice = this.lCurrency.slice();\n\t\tlocalStorage.setItem('lCurrency', JSON.stringify(lCurrencySlice));\n\t\tthis.currencyChanged.next(lCurrencySlice);\n\t}\n\n\tsetLCategory(lCategory: Rubro[]) {\n\t\tfor (let key in lCategory) {\n\t\t\tlet category: Rubro = Object.assign(new Rubro(), lCategory[key]);\n\t\t\tlCategory[key] = category;\n\t\t}\n\t\tthis.lCategory = lCategory;\n\t\tlet lCategorySlice = this.lCategory.slice();\n\t\tlocalStorage.setItem('lCategory', JSON.stringify(lCategorySlice));\n\t\tthis.categoryChanged.next(lCategorySlice);\n\t}\n\n\tsetLLanguage(lLanguage: Idioma[]) {\n\t\tthis.lLanguage = lLanguage;\n\t\tlet lLanguageSlice = this.lLanguage ? this.lLanguage.slice() : this.lLanguage;\n\t\tlocalStorage.setItem('lLanguage', JSON.stringify(lLanguageSlice));\n\t\tthis.languageChanged.next(lLanguageSlice);\n\t}\n\n\tsetLExchangeRate(lExchangeRate: TasaCambio[]) {\n\t\tfor (let key in lExchangeRate) {\n\t\t\tlet exchangeRate: TasaCambio = Object.assign(new TasaCambio(), lExchangeRate[key]);\n\t\t\tlExchangeRate[key] = exchangeRate;\n\t\t}\n\t\tthis.lExchangeRate = lExchangeRate;\n\t\tlet lExchangeRateSlice = this.lExchangeRate\n\t\t\t? this.lExchangeRate.slice()\n\t\t\t: this.lExchangeRate;\n\t\tlocalStorage.setItem('lExchangeRate', JSON.stringify(lExchangeRateSlice));\n\t\tthis.exchangeRateChanged.next(lExchangeRateSlice);\n\t}\n\n\tsetLProcess(lProcess: Proceso[]) {\n\t\tfor (let key in lProcess) {\n\t\t\tlet process: Proceso = Object.assign(new Proceso(), lProcess[key]);\n\t\t\tlProcess[key] = process;\n\t\t}\n\t\tthis.lProcess = lProcess;\n\t\tlet lProcessSlice = this.lProcess ? this.lProcess.slice() : this.lProcess;\n\t\tlocalStorage.setItem('lProcess', JSON.stringify(lProcessSlice));\n\t\tthis.processChanged.next(lProcessSlice);\n\t}\n\n\tsearchLCurrency() {\n\t\tlet lCurrency = localStorage.getItem('lCurrency');\n\t\tif (!lCurrency || lCurrency === 'undefined') {\n\t\t\tthis.getCurrencies();\n\t\t} else {\n\t\t\tthis.setLCurrencies(JSON.parse(lCurrency));\n\t\t}\n\t}\n\n\tsearchLLanguage() {\n\t\tlet lLanguage = localStorage.getItem('lLanguage');\n\t\tif (!lLanguage || lLanguage === 'undefined') {\n\t\t\tthis.getLanguages();\n\t\t} else {\n\t\t\tthis.setLLanguage(JSON.parse(lLanguage));\n\t\t}\n\t}\n\n\tsearchLCategory() {\n\t\tlet lCategory = localStorage.getItem('lCategory');\n\t\tif (!lCategory || lCategory === 'undefined') {\n\t\t\tthis.getCategories();\n\t\t} else {\n\t\t\tthis.setLCategory(JSON.parse(lCategory));\n\t\t}\n\t}\n\n\tsearchLExchangeRate() {\n\t\tlet searchER: boolean = false;\n\t\tlet searchDate = DateUtil.getMomentTimeZone();\n\t\t// let searchDay = searchDate.date();\n\t\tlet lExchangeRateString: string = localStorage.getItem('lExchangeRate');\n\t\tlet lExchangeRate: TasaCambio[] = [];\n\t\tif (\n\t\t\tlExchangeRateString &&\n\t\t\tlExchangeRateString != 'undefined' &&\n\t\t\tlExchangeRateString.length > 0\n\t\t) {\n\t\t\tlExchangeRate = JSON.parse(lExchangeRateString);\n\t\t\tif (lExchangeRate && lExchangeRate.length > 0) {\n\t\t\t\tlet dayER: string = DateUtil.getFormatDateTimeZone(lExchangeRate[0].tcamFecha);\n\t\t\t\tif (!DateUtil.isDayEqualString(searchDate.format(), dayER)) {\n\t\t\t\t\tsearchER = true;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tsearchER = true;\n\t\t}\n\t\tif (searchER || !lExchangeRate || lExchangeRate.length == 0) {\n\t\t\tthis.getExchangeRate(searchDate.format('YYYY-MM-DD') + ' 00:00:00');\n\t\t} else {\n\t\t\tthis.setLExchangeRate(lExchangeRate);\n\t\t}\n\t}\n\n\tsearchLProcess() {\n\t\tlet lProcess = localStorage.getItem('lProcess');\n\t\tif (!lProcess || lProcess === 'undefined') {\n\t\t\tthis.getProcess();\n\t\t} else {\n\t\t\tthis.setLProcess(JSON.parse(lProcess));\n\t\t}\n\t}\n\n\t/**\n\t * It returns\n\t * @param html\n\t */\n\tgetBase64Pdf(requestPdf: RequestPdf): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'pdf/getBase64Pdf',\n\t\t\trequestPdf,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/**\n\t * It returns a pdf\n\t * @param lPdfRequest\n\t */\n\tgetBase64PdfList(lPdfRequest: RequestPdf[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'pdf/getBase64PdfList',\n\t\t\tlPdfRequest,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/**\n\t * It returns\n\t * @param html\n\t */\n\tgetBase64PdfByUrl(urlFile: string): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'pdf/getBase64PdfByUrl',\n\t\t\turlFile,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/**\n\t * It returns\n\t * @param urlFile\n\t */\n\tgetBase64ImageByUrl(urlFile: string): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'pdf/getBase64ImageByUrl',\n\t\t\turlFile,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** Get the actual date */\n\tgetActualDate(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'configuration/getActualDate'\n\t\t);\n\t}\n\n\t/** Get the actual date */\n\tvalidateCloseApplicationProcess(\n\t\tpromCodigo: number,\n\t\tappStateId: number,\n\t\tcnfIniStateId?: number\n\t): Observable<any> {\n\t\tlet params = new HttpParams()\n\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t.set('appStateId', appStateId.toString());\n\t\tif (cnfIniStateId != undefined) {\n\t\t\tparams.set('cnfIniStateId', cnfIniStateId.toString());\n\t\t}\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'configuration/validateCloseApplicationProcess',\n\t\t\t{\n\t\t\t\tparams\n\t\t\t}\n\t\t);\n\t}\n}\n","import { OnInit, Inject, LOCALE_ID, Component, ChangeDetectorRef } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport {\n\tUtilString,\n\tMoneda,\n\tTasaCambio,\n\tSelectItem,\n\tRubro,\n\tprimeLocaleEs,\n\tIdioma,\n\tProceso,\n\tEPermission,\n\tDateUtil\n} from 'ng-pli-util';\nimport { CommonService } from '../services/common.service';\nimport { FormUtil } from '../utils/form-util';\n\n@Component({\n    selector: 'app-administration',\n    template: '',\n    standalone: false\n})\nexport abstract class CommonListsComponent implements OnInit {\n\t/** Static per page label */\n\tstatic LABEL_RECORDS_PER_PAGE: string = 'Registros por página';\n\n\t/** */\n\t@Inject(LOCALE_ID) public locale: string;\n\t/** List of currency */\n\tlCurrency: Moneda[];\n\t/** List of currency */\n\tlSICurrency: SelectItem[];\n\t/** The subscription of the currencies */\n\n\t/** List of categories */\n\tlCategory: Rubro[];\n\t/** List of category */\n\tlSICategory: SelectItem[];\n\t/** The subscription of the categories */\n\n\t/** List of categories */\n\tlExchangeRate: TasaCambio[];\n\t/** List of exchange rate by ISO origin - destiny: USD-COP */\n\tlIsoExchangeRate: any;\n\t/** */\n\tprimeLocaleEs: any;\n\n\t/** List of language */\n\tlLanguage: Idioma[];\n\n\t/** List of Process */\n\tlProcess: Proceso[];\n\t/** List of process */\n\tlSIProcess: SelectItem[];\n\t/** getMoment moment instance */\n\tactualDate: any;\n\n\tconstructor(protected commonService: CommonService, protected cdRef: ChangeDetectorRef) {}\n\n\tngOnInit() {\n\t\tthis.onCurrencyInit();\n\t\tthis.primeLocaleEs = primeLocaleEs;\n\t}\n\n\t/** It prints the monCode */\n\tprivate printCurrencyCode(currency: Moneda): string {\n\t\treturn currency.monCodigoIso + '-' + currency.monMoneda;\n\t}\n\n\t/**\n\t * Init the info of currencies\n\t */\n\tonCurrencyInit() {\n\t\t// Subcription to the currency Subject\n\t\tthis.commonService.onCurrencyChanged().subscribe((lCurrency: Moneda[]) => {\n\t\t\tif (lCurrency) {\n\t\t\t\tthis.lCurrency = lCurrency;\n\t\t\t\tthis.lSICurrency = [];\n\t\t\t\tfor (let key in this.lCurrency) {\n\t\t\t\t\tlet currency: Moneda = this.lCurrency[key];\n\t\t\t\t\tthis.lSICurrency.push({\n\t\t\t\t\t\tlabel: this.printCurrencyCode(currency),\n\t\t\t\t\t\tvalue: currency\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\t// Subcription to the category Subject\n\t\tthis.commonService.onCategoryChanged().subscribe((lCategory: Rubro[]) => {\n\t\t\tif (lCategory) {\n\t\t\t\tthis.lCategory = lCategory;\n\t\t\t\tthis.lSICategory = [];\n\t\t\t\tfor (let key in this.lCategory) {\n\t\t\t\t\tlet category: Rubro = this.lCategory[key];\n\t\t\t\t\tthis.lSICategory.push({\n\t\t\t\t\t\tlabel: category.rubRubro,\n\t\t\t\t\t\tvalue: category\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\t// Subcription to the language Subject\n\t\tthis.commonService.onLanguageChanged().subscribe((lLanguage: Idioma[]) => {\n\t\t\tif (lLanguage) {\n\t\t\t\tthis.lLanguage = lLanguage;\n\t\t\t}\n\t\t});\n\n\t\t// Subcription to the category Subject\n\t\tthis.commonService.onExchangeRateChanged().subscribe((lExchangeRate: TasaCambio[]) => {\n\t\t\tif (lExchangeRate) {\n\t\t\t\tthis.lExchangeRate = lExchangeRate;\n\t\t\t\tthis.adjustmentIsoExchange();\n\t\t\t}\n\t\t});\n\n\t\t// Subcription to the category Subject\n\t\tthis.commonService.onProcessChanged().subscribe((lProcess: Proceso[]) => {\n\t\t\tif (lProcess) {\n\t\t\t\tthis.lProcess = lProcess;\n\t\t\t\tthis.lSIProcess = [];\n\t\t\t\tfor (let key in this.lProcess) {\n\t\t\t\t\tlet process: Proceso = this.lProcess[key];\n\t\t\t\t\tthis.lSIProcess.push({\n\t\t\t\t\t\tlabel: process.proNombre,\n\t\t\t\t\t\tvalue: process\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tthis.commonService.initValues();\n\t}\n\n\tadjustmentIsoExchange() {\n\t\t// let i = 0;\n\t\tlet lIsoExchage = [];\n\t\tfor (let key in this.lExchangeRate) {\n\t\t\tlet exchangeRate: TasaCambio = this.lExchangeRate[key];\n\t\t\tlet isoExchage = [];\n\t\t\tif (lIsoExchage[exchangeRate.monedaOrigen.monCodigoIso] !== undefined) {\n\t\t\t\tisoExchage = lIsoExchage[exchangeRate.monedaOrigen.monCodigoIso];\n\t\t\t}\n\t\t\tisoExchage[exchangeRate.monedaDestino.monCodigoIso] = exchangeRate;\n\t\t\tlIsoExchage[exchangeRate.monedaOrigen.monCodigoIso] = isoExchage;\n\t\t\t// console.log(i);\n\t\t\t// i++;\n\t\t}\n\t\tif (lIsoExchage) {\n\t\t\tthis.lIsoExchangeRate = [];\n\t\t\tfor (let key in lIsoExchage) {\n\t\t\t\tfor (let keyIso in lIsoExchage[key]) {\n\t\t\t\t\tlet exchangeRate: TasaCambio = lIsoExchage[key][keyIso];\n\t\t\t\t\tthis.lIsoExchangeRate[key + '-' + keyIso] = exchangeRate.tcamTasaCambio;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/** It returns a boolean if the control has any error */\n\thasErrors(formControl: UntypedFormControl): boolean {\n\t\treturn FormUtil.hasErrors(formControl);\n\t}\n\t/** It returns a boolean if the control has a specific error */\n\thasError(formControl: UntypedFormControl, error: string): boolean {\n\t\treturn FormUtil.hasError(formControl, error);\n\t}\n\n\t/** It validates if form is valid */\n\tisFormValid(formGroup: UntypedFormGroup): boolean {\n\t\tFormUtil.validateFormFields(formGroup);\n\t\tif (formGroup.valid) {\n\t\t\treturn true;\n\t\t} else {\n\t\t\tconsole.log('Invalid controls: ', FormUtil.getInvalidControls(formGroup));\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tcopyMessage(val: string) {\n\t\tUtilString.copyMessage(val);\n\t}\n\n\tp(x) {\n\t\treturn EPermission[x];\n\t}\n\n\tcloneObject(obj) {\n\t\tif (null == obj || 'object' != typeof obj) return obj;\n\t\tvar copy = obj.constructor();\n\t\tfor (var attr in obj) {\n\t\t\tif (obj.hasOwnProperty(attr)) copy[attr] = this.cloneObject(obj[attr]);\n\t\t}\n\t\treturn copy;\n\t}\n\n\tgetActualDate(reload: boolean = false): Promise<string> {\n\t\treload = reload === undefined ? !UtilString.isValid(this.actualDate) : reload;\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (reload) {\n\t\t\t\tthis.commonService.getActualDate().subscribe(\n\t\t\t\t\t(actualDate: string) => {\n\t\t\t\t\t\tthis.actualDate = actualDate;\n\t\t\t\t\t\tresolve(actualDate);\n\t\t\t\t\t},\n\t\t\t\t\t(error) => {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tresolve(this.actualDate);\n\t\t\t}\n\t\t});\n\t}\n\n\tget timeZoneBogota(): string {\n\t\treturn DateUtil.UTC_AMERICA_BOGOTA;\n\t}\n\n\tget utcBogota(): string {\n\t\treturn DateUtil.UTC_AMERICA_BOGOTA;\n\t}\n}\n","// import * as utils_ from 'formiojs-proyectoscolfuturo/utils/utils';\nimport * as utils_ from 'formiojs-colfuturo/utils';\nimport { IfStmt } from '@angular/compiler';\nimport { TokenService } from '../services/token.service';\nimport { EFormioKey } from 'ng-pli-util';\nconst utils = utils_;\n\nexport class FormioUtil {\n\t/**\n\t * It returns the components formated by panel\n\t * @param components\n\t * @return the object is [{panel: , items: [{ value: , label: }]}]\n\t */\n\tstatic getFormattedComponentsByPanel(components): any[] {\n\t\tlet result = [];\n\t\tif (components) {\n\t\t\tlet group = null;\n\t\t\tlet object = null;\n\t\t\tfor (const component of components) {\n\t\t\t\tif (component[EFormioKey.TITLE_PANEL] !== group) {\n\t\t\t\t\tif (group !== null) {\n\t\t\t\t\t\tresult.push(object);\n\t\t\t\t\t}\n\t\t\t\t\tobject = { label: component[EFormioKey.TITLE_PANEL], items: [], toggle: false };\n\t\t\t\t\tgroup = component[EFormioKey.TITLE_PANEL];\n\t\t\t\t}\n\t\t\t\tobject.items.push({\n\t\t\t\t\tlabel: component[EFormioKey.LABEL],\n\t\t\t\t\tvalue: component[EFormioKey.KEY]\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (group !== null) result.push(object);\n\t\t}\n\t\treturn result;\n\t}\n\tstatic getSelectBoxes(selectBoxe) {\n\t\tvar istrue = false;\n\n\t\tif (selectBoxe != undefined && selectBoxe != null && typeof selectBoxe === 'object') {\n\t\t\tlet dataHasTrue = Object.values(selectBoxe);\n\n\t\t\tdataHasTrue.forEach(function (value) {\n\t\t\t\tif (typeof value === 'boolean' && value) {\n\t\t\t\t\tistrue = value;\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// Expected output: Array [\"somestring\", 42, false]\n\n\t\treturn istrue;\n\t}\n\n\t/**\n\t * It returns the components are required according with data\n\t * @param components array of components\n\t * @param data\n\t */\n\tstatic getRequiredComponentsByData(components, data) {\n\t\t// get the required components\n\n\t\tlet array = FormioUtil.getRequiredComponents(components);\n\n\t\t// if not data then return components\n\t\tif (data && array) {\n\t\t\tfor (let i = 0; i < array.length; i++) {\n\t\t\t\tconst component = array[i];\n\t\t\t\t// use formio to check condition according with data\n\t\t\t\tif (utils.Utils.checkCondition(component, null, data, null, null)) {\n\t\t\t\t\tconst key = component[EFormioKey.KEY];\n\n\t\t\t\t\tif (Array.isArray(data[key]) && data[key].length > 0) {\n\t\t\t\t\t\t// remove item from array\n\t\t\t\t\t\tarray.splice(i, 1);\n\t\t\t\t\t\ti--;\n\t\t\t\t\t} else if (\n\t\t\t\t\t\ttypeof data[key] === 'object' &&\n\t\t\t\t\t\t!Object.prototype.hasOwnProperty.call(data[key], 'formatted_address') &&\n\t\t\t\t\t\t!Object.prototype.hasOwnProperty.call(data[key], 'callingCodes') &&\n\t\t\t\t\t\t!Object.prototype.hasOwnProperty.call(data[key], 'nativeName') &&\n\t\t\t\t\t\t!Object.prototype.hasOwnProperty.call(data[key], 'original_name') &&\n\t\t\t\t\t\t!Object.prototype.hasOwnProperty.call(data[key], 'fullName') && \n\t\t\t\t\t\t!Object.prototype.hasOwnProperty.call(data[key], 'fullname') &&\n\t\t\t\t\t\tFormioUtil.getSelectBoxes(data[key])\n\t\t\t\t\t) {\n\t\t\t\t\t\t// remove item from array\n\t\t\t\t\t\tarray.splice(i, 1);\n\t\t\t\t\t\ti--;\n\t\t\t\t\t} else if (\n\t\t\t\t\t\ttypeof data[key] === 'object' &&\n\t\t\t\t\t\t!Object.prototype.hasOwnProperty.call(data[key], 'formatted_address') &&\n\t\t\t\t\t\t!Object.prototype.hasOwnProperty.call(data[key], 'callingCodes') &&\n\t\t\t\t\t\t!Object.prototype.hasOwnProperty.call(data[key], 'nativeName') &&\n\t\t\t\t\t\t!Object.prototype.hasOwnProperty.call(data[key], 'original_name') &&\n\t\t\t\t\t\t!Object.prototype.hasOwnProperty.call(data[key], 'fullName') && \n\t\t\t\t\t\t!Object.prototype.hasOwnProperty.call(data[key], 'fullname') &&\n\t\t\t\t\t\t!FormioUtil.getSelectBoxes(data[key])\n\t\t\t\t\t) {\n\t\t\t\t\t} else if (data[key] != undefined && data[key] != null && data[key] != '') {\n\t\t\t\t\t\t// remove item from array\n\t\t\t\t\t\tarray.splice(i, 1);\n\t\t\t\t\t\ti--;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcomponent.customConditional &&\n\t\t\t\t\t\t\tcomponent.customConditional.includes('show')\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// remove item from array\n\t\t\t\t\t\t\tarray.splice(i, 1);\n\t\t\t\t\t\t\ti--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// remove item from array\n\t\t\t\t\tarray.splice(i, 1);\n\t\t\t\t\ti--;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn array;\n\t}\n\n\t/**\n\t * It returns the components that are required\n\t * @param components array of components\n\t */\n\tstatic getUniqueComponents(components) {\n\t\treturn FormioUtil.getComponentsByFeature(components, [EFormioKey.UNIQUE], true);\n\t}\n\n\t/**\n\t * It returns the components that are required\n\t * @param components array of components\n\t */\n\tstatic getRequiredComponents(components) {\n\t\treturn FormioUtil.getComponentsByFeature(\n\t\t\tcomponents,\n\t\t\t[EFormioKey.VALIDATE, EFormioKey.REQUIRED],\n\t\t\ttrue\n\t\t);\n\t}\n\n\t/**\n\t * It returns the components that have a specific feature defined by properties and value\n\t * @param components array of components\n\t * @param properties path of properties example [validate, required] or [unique]\n\t * @param value the value that should have the property\n\t */\n\tprivate static getComponentsByFeature(components: any[], properties: string[], value: any) {\n\t\tlet result = [];\n\t\tif (properties && properties.length > 0) {\n\t\t\t// get components\n\t\t\tconst fields: any[] = FormioUtil.getComponents(components);\n\n\t\t\t// get first and last property\n\t\t\tconst firstProperty = properties[0];\n\t\t\tconst lastProperty = properties[properties.length - 1];\n\n\t\t\tif (fields) {\n\t\t\t\t// iterate the fields\n\t\t\t\tfor (let i = 0; i < fields.length; i++) {\n\t\t\t\t\t// it contains the entire object field\n\t\t\t\t\tconst field = fields[i];\n\t\t\t\t\t// it contains the current component and it is gonna be the component of every property\n\t\t\t\t\tlet component = field;\n\t\t\t\t\tif (field[firstProperty]) {\n\t\t\t\t\t\tfor (let j = 0; j < properties.length; j++) {\n\t\t\t\t\t\t\tconst property = properties[j];\n\t\t\t\t\t\t\t// if component.property doesnt exist then break\n\t\t\t\t\t\t\tif (!component[property]) break;\n\t\t\t\t\t\t\tif (property === lastProperty) {\n\t\t\t\t\t\t\t\t// it is the last property so if the value is equals to component.lastproperty then it is added to result\n\t\t\t\t\t\t\t\tif (component[property] == value) result.push(field);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// otherwise component will be equal to the component.property\n\t\t\t\t\t\t\t\tcomponent = component[property];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * It returns the components\n\t * @param components\n\t */\n\tstatic getComponents(components: any[]): any[] {\n\t\treturn FormioUtil.getComponentsByRecursion(components, '', null);\n\t}\n\n\t/**\n\t * It returns the components array of the form by recursion\n\t * @param components array of components\n\t * @param titlePanel name of parent panel, so children components will inherit the panelName\n\t * @param conditionalObject conditional object it will be inherited from panel {conditional: { eq: , value: , when: , json: }, customConditional: }\n\t */\n\tprivate static getComponentsByRecursion(\n\t\tcomponents: any[],\n\t\ttitlePanel: string,\n\t\tconditionalParent: any\n\t): any[] {\n\t\t// it contains the result array\n\t\tlet result = [];\n\t\tif (components) {\n\t\t\t// iterate over components\n\t\t\tfor (const component of components) {\n\t\t\t\t// avoid the editgrid component ot if it has a different behavior it should have an else statement\n\t\t\t\tif (component[EFormioKey.TYPE] !== EFormioKey.EDITGRID) {\n\t\t\t\t\t// if component is panel then titlePanel variable is changed, and it is gonna be inherited\n\t\t\t\t\tif (component[EFormioKey.TYPE] === EFormioKey.PANEL) {\n\t\t\t\t\t\ttitlePanel = component[EFormioKey.TITLE];\n\t\t\t\t\t}\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t(typeof component[EFormioKey.COMPONENTS] !== 'undefined' ||\n\t\t\t\t\t\t\ttypeof component[EFormioKey.COLUMNS] !== 'undefined') &&\n\t\t\t\t\t\t(typeof component[EFormioKey.TYPE] == 'undefined' ||\n\t\t\t\t\t\t\tcomponent[EFormioKey.TYPE] !== EFormioKey.TYPE_ADDRESS)\n\t\t\t\t\t) {\n\t\t\t\t\t\tif (component['type'] !== 'address') {\n\t\t\t\t\t\t\t// resolve conditional parent conditional\n\t\t\t\t\t\t\tconst conditional = this.resolveInheritanceConditional(\n\t\t\t\t\t\t\t\tconditionalParent,\n\t\t\t\t\t\t\t\tcomponent[EFormioKey.CONDITIONAL],\n\t\t\t\t\t\t\t\tcomponent[EFormioKey.CUSTOM_CONDITIONAL],\n\t\t\t\t\t\t\t\tcomponent[EFormioKey.ID]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t// change condition\n\t\t\t\t\t\t\tif (conditional) conditionalParent = conditional;\n\t\t\t\t\t\t\t// it contains the subcomponents depending on the value of component if it has components or columns\n\t\t\t\t\t\t\tlet subComponents =\n\t\t\t\t\t\t\t\ttypeof component[EFormioKey.COMPONENTS] !== 'undefined'\n\t\t\t\t\t\t\t\t\t? component[EFormioKey.COMPONENTS]\n\t\t\t\t\t\t\t\t\t: component[EFormioKey.COLUMNS];\n\t\t\t\t\t\t\t// if component has subComponents, then execute the recursion function to get the recursionnResult\n\t\t\t\t\t\t\tconst recursionResult = FormioUtil.getComponentsByRecursion(\n\t\t\t\t\t\t\t\tsubComponents,\n\t\t\t\t\t\t\t\ttitlePanel,\n\t\t\t\t\t\t\t\tconditionalParent\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t// if recursion result then result concats the recursionResult\n\t\t\t\t\t\t\tif (recursionResult) result = result.concat(recursionResult);\n\t\t\t\t\t\t\t// reset conditional Parent\n\t\t\t\t\t\t\tif (component[EFormioKey.ID] == conditionalParent.id)\n\t\t\t\t\t\t\t\tconditionalParent = undefined;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.push(component);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// avoid the component type button\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcomponent[EFormioKey.TYPE] !== EFormioKey.BUTTON &&\n\t\t\t\t\t\t\tcomponent[EFormioKey.KEY] &&\n\t\t\t\t\t\t\tcomponent[EFormioKey.LABEL]\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// resolve conditional conditional object\n\t\t\t\t\t\t\tlet conditional = this.resolveInheritanceConditional(\n\t\t\t\t\t\t\t\tconditionalParent,\n\t\t\t\t\t\t\t\tcomponent[EFormioKey.CONDITIONAL],\n\t\t\t\t\t\t\t\tcomponent[EFormioKey.CUSTOM_CONDITIONAL],\n\t\t\t\t\t\t\t\tcomponent[EFormioKey.ID]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (!conditional) conditional = conditionalParent;\n\t\t\t\t\t\t\tcomponent[EFormioKey.CONDITIONAL] = conditional[EFormioKey.CONDITIONAL];\n\t\t\t\t\t\t\tcomponent[EFormioKey.CUSTOM_CONDITIONAL] =\n\t\t\t\t\t\t\t\tconditional[EFormioKey.CUSTOM_CONDITIONAL];\n\t\t\t\t\t\t\t// add namPanel as property\n\t\t\t\t\t\t\tcomponent[EFormioKey.TITLE_PANEL] = titlePanel;\n\t\t\t\t\t\t\t// add component to the result\n\t\t\t\t\t\t\tresult.push(component);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (component[EFormioKey.TYPE] === EFormioKey.EDITGRID) {\n\t\t\t\t\tif (component.validate.required) {\n\t\t\t\t\t\tresult.push(component);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * It returns the components\n\t * @param components\n\t * @param keepEditGrids\n\t */\n\tstatic getComponentsWithEditGrids(components: any[]): any[] {\n\t\treturn FormioUtil.getComponentsByRecursionWithEditGrids(components, '', null);\n\t}\n\n\t/**\n\t * It returns the components array of the form by recursion\n\t * @param components array of components\n\t * @param titlePanel name of parent panel, so children components will inherit the panelName\n\t * @param conditionalObject conditional object it will be inherited from panel {conditional: { eq: , value: , when: , json: }, customConditional: }\n\t */\n\tprivate static getComponentsByRecursionWithEditGrids(\n\t\tcomponents: any[],\n\t\ttitlePanel: string,\n\t\tconditionalParent: any\n\t): any[] {\n\t\t// it contains the result array\n\t\tlet result = [];\n\t\tif (components) {\n\t\t\t// iterate over components\n\t\t\tfor (const component of components) {\n\t\t\t\t// avoid the editgrid component ot if it has a different behavior it should have an else statement\n\n\t\t\t\t// if component is panel then titlePanel variable is changed, and it is gonna be inherited\n\t\t\t\tif (component[EFormioKey.TYPE] === EFormioKey.PANEL) {\n\t\t\t\t\ttitlePanel = component[EFormioKey.TITLE];\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(typeof component[EFormioKey.COMPONENTS] !== 'undefined' ||\n\t\t\t\t\t\ttypeof component[EFormioKey.COLUMNS] !== 'undefined') &&\n\t\t\t\t\t(typeof component[EFormioKey.TYPE] == 'undefined' ||\n\t\t\t\t\t\tcomponent[EFormioKey.TYPE] !== EFormioKey.TYPE_ADDRESS)\n\t\t\t\t) {\n\t\t\t\t\t// resolve conditional parent conditional\n\t\t\t\t\tconst conditional = this.resolveInheritanceConditional(\n\t\t\t\t\t\tconditionalParent,\n\t\t\t\t\t\tcomponent[EFormioKey.CONDITIONAL],\n\t\t\t\t\t\tcomponent[EFormioKey.CUSTOM_CONDITIONAL],\n\t\t\t\t\t\tcomponent[EFormioKey.ID]\n\t\t\t\t\t);\n\t\t\t\t\t// change condition\n\t\t\t\t\tif (conditional) conditionalParent = conditional;\n\t\t\t\t\t// it contains the subcomponents depending on the value of component if it has components or columns\n\t\t\t\t\tlet subComponents =\n\t\t\t\t\t\ttypeof component[EFormioKey.COMPONENTS] !== 'undefined'\n\t\t\t\t\t\t\t? component[EFormioKey.COMPONENTS]\n\t\t\t\t\t\t\t: component[EFormioKey.COLUMNS];\n\n\t\t\t\t\tif (component[EFormioKey.TYPE] === EFormioKey.EDITGRID) {\n\t\t\t\t\t\tcomponent[EFormioKey.TITLE_PANEL] = titlePanel;\n\t\t\t\t\t\tresult.push(component);\n\t\t\t\t\t}\n\t\t\t\t\t// if component has subComponents, then execute the recursion function to get the recursionnResult\n\t\t\t\t\tconst recursionResult = FormioUtil.getComponentsByRecursionWithEditGrids(\n\t\t\t\t\t\tsubComponents,\n\t\t\t\t\t\ttitlePanel,\n\t\t\t\t\t\tconditionalParent\n\t\t\t\t\t);\n\t\t\t\t\t// if recursion result then result concats the recursionResult\n\t\t\t\t\tif (recursionResult) result = result.concat(recursionResult);\n\t\t\t\t\t// reset conditional Parent\n\t\t\t\t\tif (component[EFormioKey.ID] == conditionalParent.id)\n\t\t\t\t\t\tconditionalParent = undefined;\n\t\t\t\t} else {\n\t\t\t\t\t// avoid the component type button\n\t\t\t\t\tif (\n\t\t\t\t\t\tcomponent[EFormioKey.TYPE] !== EFormioKey.BUTTON &&\n\t\t\t\t\t\tcomponent[EFormioKey.KEY] &&\n\t\t\t\t\t\tcomponent[EFormioKey.LABEL]\n\t\t\t\t\t) {\n\t\t\t\t\t\t// resolve conditional conditional object\n\t\t\t\t\t\tlet conditional = this.resolveInheritanceConditional(\n\t\t\t\t\t\t\tconditionalParent,\n\t\t\t\t\t\t\tcomponent[EFormioKey.CONDITIONAL],\n\t\t\t\t\t\t\tcomponent[EFormioKey.CUSTOM_CONDITIONAL],\n\t\t\t\t\t\t\tcomponent[EFormioKey.ID]\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (!conditional) conditional = conditionalParent;\n\t\t\t\t\t\tcomponent[EFormioKey.CONDITIONAL] = conditional[EFormioKey.CONDITIONAL];\n\t\t\t\t\t\tcomponent[EFormioKey.CUSTOM_CONDITIONAL] =\n\t\t\t\t\t\t\tconditional[EFormioKey.CUSTOM_CONDITIONAL];\n\t\t\t\t\t\t// add namPanel as property\n\t\t\t\t\t\tcomponent[EFormioKey.TITLE_PANEL] = titlePanel;\n\t\t\t\t\t\t// add component to the result\n\t\t\t\t\t\tresult.push(component);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * It resolve the inheritance conditional\n\t * @param conditionalObject\n\t * @param conditional\n\t * @param customConditional\n\t */\n\tprivate static resolveInheritanceConditional(\n\t\tconditionalObject,\n\t\tconditional,\n\t\tcustomConditional,\n\t\tparentId\n\t): any {\n\t\t// validate if there is a condition with the new fields\n\t\tif (\n\t\t\t!conditionalObject ||\n\t\t\tcustomConditional ||\n\t\t\t(conditional && conditional[EFormioKey.WHEN] && conditional[EFormioKey.EQ]) ||\n\t\t\t(conditional && conditional[EFormioKey.JSON])\n\t\t) {\n\t\t\treturn { conditional: conditional, customConditional: customConditional, id: parentId };\n\t\t}\n\t\treturn null;\n\t}\n\n\t/**\n\t * It returns the edit grid components\n\t * @param components\n\t */\n\tstatic getEditGridKeyLabels(components: any[]): any[] {\n\t\treturn FormioUtil.getEditGridKeyLabelsByRecursion(components, '', null);\n\t}\n\n\t/**\n\t * It returns the components edit grid array of the form by recursion\n\t * @param components array of components\n\t * @param titlePanel name of parent panel, so children components will inherit the panelName\n\t * @param conditionalObject conditional object it will be inherited from panel {conditional: { eq: , value: , when: , json: }, customConditional: }\n\t */\n\tprivate static getEditGridKeyLabelsByRecursion(\n\t\tcomponents: any[],\n\t\ttitlePanel: string,\n\t\tconditionalParent: any\n\t): any[] {\n\t\t// it contains the result array\n\t\tlet result = [];\n\t\tif (components) {\n\t\t\t// iterate over components\n\t\t\tfor (const component of components) {\n\t\t\t\t// if component is panel then titlePanel variable is changed, and it is gonna be inherited\n\t\t\t\tif (component[EFormioKey.TYPE] === EFormioKey.PANEL) {\n\t\t\t\t\ttitlePanel = component[EFormioKey.TITLE];\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(typeof component[EFormioKey.COMPONENTS] !== 'undefined' ||\n\t\t\t\t\t\ttypeof component[EFormioKey.COLUMNS] !== 'undefined') &&\n\t\t\t\t\t(typeof component[EFormioKey.TYPE] == 'undefined' ||\n\t\t\t\t\t\tcomponent[EFormioKey.TYPE] !== EFormioKey.TYPE_ADDRESS)\n\t\t\t\t) {\n\t\t\t\t\t// resolve conditional parent conditional\n\t\t\t\t\tconst conditional = this.resolveInheritanceConditional(\n\t\t\t\t\t\tconditionalParent,\n\t\t\t\t\t\tcomponent[EFormioKey.CONDITIONAL],\n\t\t\t\t\t\tcomponent[EFormioKey.CUSTOM_CONDITIONAL],\n\t\t\t\t\t\tcomponent[EFormioKey.ID]\n\t\t\t\t\t);\n\t\t\t\t\t// change condition\n\t\t\t\t\tif (conditional) conditionalParent = conditional;\n\t\t\t\t\t// it contains the subcomponents depending on the value of component if it has components or columns\n\t\t\t\t\tlet subComponents =\n\t\t\t\t\t\ttypeof component[EFormioKey.COMPONENTS] !== 'undefined'\n\t\t\t\t\t\t\t? component[EFormioKey.COMPONENTS]\n\t\t\t\t\t\t\t: component[EFormioKey.COLUMNS];\n\t\t\t\t\tif (component[EFormioKey.TYPE] == EFormioKey.EDITGRID) {\n\t\t\t\t\t\t// add namPanel as property\n\t\t\t\t\t\tcomponent[EFormioKey.TITLE_PANEL] = titlePanel;\n\t\t\t\t\t\t// add component to the result\n\t\t\t\t\t\tresult.push(component);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// if component has subComponents, then execute the recursion function to get the recursionnResult\n\t\t\t\t\t\tconst recursionResult = FormioUtil.getEditGridKeyLabelsByRecursion(\n\t\t\t\t\t\t\tsubComponents,\n\t\t\t\t\t\t\ttitlePanel,\n\t\t\t\t\t\t\tconditionalParent\n\t\t\t\t\t\t);\n\t\t\t\t\t\t// if recursion result then result concats the recursionResult\n\t\t\t\t\t\tif (recursionResult) result = result.concat(recursionResult);\n\t\t\t\t\t\t// reset conditional Parent\n\t\t\t\t\t\tif (component[EFormioKey.ID] == conditionalParent.id)\n\t\t\t\t\t\t\tconditionalParent = undefined;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * It returns the components\n\t * @param components\n\t * @param keepEditGrids\n\t */\n\tstatic getComponentsIntoEditGrids(components: any[], editGridName: string): any[] {\n\t\treturn FormioUtil.getComponentsByRecursionIntoEditGrids(\n\t\t\tcomponents,\n\t\t\t'',\n\t\t\tnull,\n\t\t\teditGridName,\n\t\t\tfalse\n\t\t);\n\t}\n\n\t/**\n\t * It returns the components array of the form by recursion\n\t * @param components array of components\n\t * @param titlePanel name of parent panel, so children components will inherit the panelName\n\t * @param conditionalObject conditional object it will be inherited from panel {conditional: { eq: , value: , when: , json: }, customConditional: }\n\t */\n\tprivate static getComponentsByRecursionIntoEditGrids(\n\t\tcomponents: any[],\n\t\ttitlePanel: string,\n\t\tconditionalParent: any,\n\t\teditGridName: string,\n\t\texistEditGrid: boolean\n\t): any[] {\n\t\t// it contains the result array\n\t\tlet result = [];\n\t\tif (components) {\n\t\t\t// iterate over components\n\t\t\tfor (const component of components) {\n\t\t\t\t// avoid the editgrid component ot if it has a different behavior it should have an else statement\n\n\t\t\t\t// if component is panel then titlePanel variable is changed, and it is gonna be inherited\n\t\t\t\tif (component[EFormioKey.TYPE] === EFormioKey.PANEL) {\n\t\t\t\t\ttitlePanel = component[EFormioKey.TITLE];\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(typeof component[EFormioKey.COMPONENTS] !== 'undefined' ||\n\t\t\t\t\t\ttypeof component[EFormioKey.COLUMNS] !== 'undefined') &&\n\t\t\t\t\t(typeof component[EFormioKey.TYPE] == 'undefined' ||\n\t\t\t\t\t\tcomponent[EFormioKey.TYPE] !== EFormioKey.TYPE_ADDRESS)\n\t\t\t\t) {\n\t\t\t\t\t// resolve conditional parent conditional\n\t\t\t\t\tconst conditional = this.resolveInheritanceConditional(\n\t\t\t\t\t\tconditionalParent,\n\t\t\t\t\t\tcomponent[EFormioKey.CONDITIONAL],\n\t\t\t\t\t\tcomponent[EFormioKey.CUSTOM_CONDITIONAL],\n\t\t\t\t\t\tcomponent[EFormioKey.ID]\n\t\t\t\t\t);\n\t\t\t\t\t// change condition\n\t\t\t\t\tif (conditional) conditionalParent = conditional;\n\t\t\t\t\t// it contains the subcomponents depending on the value of component if it has components or columns\n\t\t\t\t\tlet subComponents =\n\t\t\t\t\t\ttypeof component[EFormioKey.COMPONENTS] !== 'undefined'\n\t\t\t\t\t\t\t? component[EFormioKey.COMPONENTS]\n\t\t\t\t\t\t\t: component[EFormioKey.COLUMNS];\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tcomponent[EFormioKey.TYPE] === EFormioKey.EDITGRID &&\n\t\t\t\t\t\tcomponent['key'] == editGridName\n\t\t\t\t\t) {\n\t\t\t\t\t\texistEditGrid = true;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t(typeof component[EFormioKey.COMPONENTS] !== 'undefined' ||\n\t\t\t\t\t\t\t\ttypeof component[EFormioKey.COLUMNS] !== 'undefined') &&\n\t\t\t\t\t\t\t(typeof component[EFormioKey.TYPE] == 'undefined' ||\n\t\t\t\t\t\t\t\tcomponent[EFormioKey.TYPE] !== EFormioKey.TYPE_ADDRESS)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// resolve conditional parent conditional\n\t\t\t\t\t\t\tconst conditional = this.resolveInheritanceConditional(\n\t\t\t\t\t\t\t\tconditionalParent,\n\t\t\t\t\t\t\t\tcomponent[EFormioKey.CONDITIONAL],\n\t\t\t\t\t\t\t\tcomponent[EFormioKey.CUSTOM_CONDITIONAL],\n\t\t\t\t\t\t\t\tcomponent[EFormioKey.ID]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t// change condition\n\t\t\t\t\t\t\tif (conditional) conditionalParent = conditional;\n\t\t\t\t\t\t\t// it contains the subcomponents depending on the value of component if it has components or columns\n\t\t\t\t\t\t\tlet subComponents =\n\t\t\t\t\t\t\t\ttypeof component[EFormioKey.COMPONENTS] !== 'undefined'\n\t\t\t\t\t\t\t\t\t? component[EFormioKey.COMPONENTS]\n\t\t\t\t\t\t\t\t\t: component[EFormioKey.COLUMNS];\n\n\t\t\t\t\t\t\t// if component has subComponents, then execute the recursion function to get the recursionnResult\n\t\t\t\t\t\t\tconst recursionResult =\n\t\t\t\t\t\t\t\tFormioUtil.getComponentsByRecursionIntoEditGrids(\n\t\t\t\t\t\t\t\t\tsubComponents,\n\t\t\t\t\t\t\t\t\ttitlePanel,\n\t\t\t\t\t\t\t\t\tconditionalParent,\n\t\t\t\t\t\t\t\t\teditGridName,\n\t\t\t\t\t\t\t\t\texistEditGrid\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t// if recursion result then result concats the recursionResult\n\t\t\t\t\t\t\tif (recursionResult) result = result.concat(recursionResult);\n\t\t\t\t\t\t\t// reset conditional Parent\n\t\t\t\t\t\t\tif (component && conditionalParent) {\n\t\t\t\t\t\t\t\tif (component[EFormioKey.ID] == conditionalParent.id)\n\t\t\t\t\t\t\t\t\tconditionalParent = undefined;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// avoid the component type button\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tcomponent[EFormioKey.TYPE] !== EFormioKey.BUTTON &&\n\t\t\t\t\t\t\t\tcomponent[EFormioKey.KEY] &&\n\t\t\t\t\t\t\t\tcomponent[EFormioKey.LABEL] &&\n\t\t\t\t\t\t\t\texistEditGrid\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t// resolve conditional conditional object\n\t\t\t\t\t\t\t\tlet conditional = this.resolveInheritanceConditional(\n\t\t\t\t\t\t\t\t\tconditionalParent,\n\t\t\t\t\t\t\t\t\tcomponent[EFormioKey.CONDITIONAL],\n\t\t\t\t\t\t\t\t\tcomponent[EFormioKey.CUSTOM_CONDITIONAL],\n\t\t\t\t\t\t\t\t\tcomponent[EFormioKey.ID]\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif (!conditional) conditional = conditionalParent;\n\t\t\t\t\t\t\t\tcomponent[EFormioKey.CONDITIONAL] =\n\t\t\t\t\t\t\t\t\tconditional[EFormioKey.CONDITIONAL];\n\t\t\t\t\t\t\t\tcomponent[EFormioKey.CUSTOM_CONDITIONAL] =\n\t\t\t\t\t\t\t\t\tconditional[EFormioKey.CUSTOM_CONDITIONAL];\n\t\t\t\t\t\t\t\t// add namPanel as property\n\t\t\t\t\t\t\t\tcomponent[EFormioKey.TITLE_PANEL] = titlePanel;\n\t\t\t\t\t\t\t\t// add component to the result\n\t\t\t\t\t\t\t\tresult.push(component);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// if component has subComponents, then execute the recursion function to get the recursionnResult\n\t\t\t\t\tconst recursionResult = FormioUtil.getComponentsByRecursionIntoEditGrids(\n\t\t\t\t\t\tsubComponents,\n\t\t\t\t\t\ttitlePanel,\n\t\t\t\t\t\tconditionalParent,\n\t\t\t\t\t\teditGridName,\n\t\t\t\t\t\texistEditGrid\n\t\t\t\t\t);\n\t\t\t\t\t// if recursion result then result concats the recursionResult\n\t\t\t\t\tif (recursionResult) result = result.concat(recursionResult);\n\t\t\t\t\t// reset conditional Parent\n\t\t\t\t\tif (component && conditionalParent) {\n\t\t\t\t\t\tif (component[EFormioKey.ID] == conditionalParent.id)\n\t\t\t\t\t\t\tconditionalParent = undefined;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// avoid the component type button\n\t\t\t\t\tif (\n\t\t\t\t\t\tcomponent[EFormioKey.TYPE] !== EFormioKey.BUTTON &&\n\t\t\t\t\t\tcomponent[EFormioKey.KEY] &&\n\t\t\t\t\t\tcomponent[EFormioKey.LABEL] &&\n\t\t\t\t\t\texistEditGrid\n\t\t\t\t\t) {\n\t\t\t\t\t\t// resolve conditional conditional object\n\t\t\t\t\t\tlet conditional = this.resolveInheritanceConditional(\n\t\t\t\t\t\t\tconditionalParent,\n\t\t\t\t\t\t\tcomponent[EFormioKey.CONDITIONAL],\n\t\t\t\t\t\t\tcomponent[EFormioKey.CUSTOM_CONDITIONAL],\n\t\t\t\t\t\t\tcomponent[EFormioKey.ID]\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (!conditional) conditional = conditionalParent;\n\t\t\t\t\t\tcomponent[EFormioKey.CONDITIONAL] = conditional[EFormioKey.CONDITIONAL];\n\t\t\t\t\t\tcomponent[EFormioKey.CUSTOM_CONDITIONAL] =\n\t\t\t\t\t\t\tconditional[EFormioKey.CUSTOM_CONDITIONAL];\n\t\t\t\t\t\t// add namPanel as property\n\t\t\t\t\t\tcomponent[EFormioKey.TITLE_PANEL] = titlePanel;\n\t\t\t\t\t\t// add component to the result\n\t\t\t\t\t\tresult.push(component);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * Create 2 jason objects of data form by component key and other by component key and title form key\n\t * @param dataForm dataForm model object\n\t * @returns Object of 2 element\n\t */\n\tstatic createListDataByDataFormList(dataForm: any, listForm: any[]): any {\n\t\tlet listData: any = {};\n\t\tlet listDataByForm: any = {};\n\t\tif (dataForm && dataForm.length > 0) {\n\t\t\tlistData = {};\n\t\t\tlistDataByForm = {};\n\t\t\tlet dForm: any;\n\t\t\tfor (dForm of dataForm) {\n\t\t\t\tif (!dForm.data) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst form = listForm.find(function (formTmp) {\n\t\t\t\t\treturn formTmp.id == dForm.formId;\n\t\t\t\t});\n\t\t\t\tif (!form) {\n\t\t\t\t\t//console.error('No se encontró el formulario con id ' + dForm.formId);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst keyFormTitle = TokenService.getKeyFormulario(form.title) + '_';\n\t\t\t\tfor (const key in dForm.data) {\n\t\t\t\t\tlistData[key] = dForm.data[key];\n\t\t\t\t\tlistDataByForm[keyFormTitle + key] = dForm.data[key];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tlistData: listData,\n\t\t\tlistDataByForm: listDataByForm\n\t\t};\n\t}\n\n\t/**\n\t * It returns the components\n\t * @param components\n\t */\n\tstatic getPanelComponents(components: any[]): any[] {\n\t\treturn FormioUtil.getComponentsByPanel(components);\n\t}\n\n\t/**\n\t * It returns the components array of the form\n\t * @param components array of components\n\t */\n\tprivate static getComponentsByPanel(components: any[]): any[] {\n\t\t// it contains the result array\n\t\tlet result = [];\n\t\tif (components) {\n\t\t\t// iterate over components\n\t\t\tfor (const component of components) {\n\t\t\t\t// avoid the editgrid component ot if it has a different behavior it should have an else statement\n\t\t\t\tif (component[EFormioKey.TYPE] !== EFormioKey.EDITGRID) {\n\t\t\t\t\t// if component is panel then titlePanel variable is changed, and it is gonna be inherited\n\t\t\t\t\tif (component[EFormioKey.TYPE] === EFormioKey.PANEL) {\n\t\t\t\t\t\tresult.push(component);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class FormService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/** It returns the list of form by prom codigo */\n\tgetByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'form/getByPromCodigo',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCodigo.toString()) }\n\t\t);\n\t}\n\n\t/** It returns the list of form by prom codigo */\n\tgetAll(): Observable<any> {\n\t\treturn this.httpClient.get(this.environment.host.backend.configuration + 'form/getAll');\n\t}\n\n\t/** It returns a form by id */\n\tgetById(id): Observable<any> {\n\t\treturn this.httpClient.get(this.environment.host.backend.configuration + 'form/getById', {\n\t\t\tparams: new HttpParams().set('id', id)\n\t\t});\n\t}\n\t/** It saves a form */\n\tsave(form: any): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'form/save',\n\t\t\tform,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tsaveFormMultiPromCodigo(reMultPromCodDto: any): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'form/saveMultiaplicacionPromCod',\n\t\t\treMultPromCodDto,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It deletes a form by id */\n\tdelete(id): Observable<any> {\n\t\treturn this.httpClient.delete(this.environment.host.backend.configuration + 'form/delete', {\n\t\t\tparams: new HttpParams().set('id', id)\n\t\t});\n\t}\n\n\t/** It returns the form according to profile have been setting up in form */\n\tgetByPromCodigoAccordingToProfile(\n\t\tpromCodigo: number,\n\t\tpatCodigo: number,\n\t\tformId?: string\n\t): Observable<any> {\n\t\tlet params = new HttpParams()\n\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t.set('patCodigo', patCodigo.toString())\n\t\t\t.set('formId', formId !== undefined ? formId : '');\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'form/getByPromCodigoAndProfile',\n\t\t\t{ params: params }\n\t\t);\n\t}\n\n\t/** It returns the form according to list of prom codigo */\n\tgetByListPromCodigo(listPromCod: Array<number>): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'form/getByListPromCodigo',\n\t\t\t{ params: new HttpParams().set('listPromCodigo', listPromCod.toString()) }\n\t\t);\n\t}\n\n\t/** It remove the redis cache of the form by prom codigo */\n\tremoveFromCacheByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'form/removeFromCacheByPromCodigo',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('promCodigo', promCodigo.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It remove the redis cache of the form by prom codigo */\n\tremoveFromCacheByPromCodigoAndTitle(promCodigo: number, title: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'form/removeFromCacheByPromCodigoAndTitle',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t.set('title', title)\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It remove the redis cache of the form by prom codigo */\n\tremoveFromCacheByPromCodigoAndProfile(\n\t\tpromCodigo: number,\n\t\tpatCodigo: number,\n\t\tformId: string,\n\t\tusername: string\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'form/removeFromCacheByPromCodigoAndProfile',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t.set('patCodigo', patCodigo.toString())\n\t\t\t\t\t.set('formId', formId)\n\t\t\t\t\t.set('username', username)\n\t\t\t}\n\t\t);\n\t}\n\n\t/**\n\t * Get  form by Id\n\t * @param statusId\n\t */\n\tgetByStateId(statusId: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'form/getByStateId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('statusId', statusId)\n\t\t\t}\n\t\t);\n\t}\n\n\tgetConfigCloningFormMap(oldFormPPP: number, newFormPPP: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'form/getConfigCloningFormMap',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('oldFormPPP', oldFormPPP.toString())\n\t\t\t\t\t.set('newFormPPP', newFormPPP.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tgetListFormProjectSummaryConfigByPromCodigo(\n\t\tpromCodigo: number,\n\t\tpatCodigo: number\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'form/getListFormProjectSummaryConfigByPromCodigo',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t.set('patCodigo', patCodigo.toString())\n\t\t\t}\n\t\t);\n\t}\n}\n","import { CurrencyPipe } from '@angular/common';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable, LOCALE_ID } from '@angular/core';\nimport { DateUtil, HEADER_JSON, PliCnfGuaranteeToken, Token, UtilString } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\nimport { FormioUtil } from '../utils/formio-util';\nimport { FormService } from './form.service';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class TokenService {\n\t/** */\n\tstatic SIGN_LETTER_TAG_ID: string = '_sign-letter-tag-id';\n\n\t/** */\n\t@Inject(LOCALE_ID) public locale: string;\n\n\t/** */\n\tstatic TOKEN_LABEL_FORM: string = 'Frm';\n\t/** */\n\tstatic TOKEN_LABEL_BUDGET: string = 'Presupuesto';\n\t/** */\n\tstatic TOKEN_LABEL_CALCULATED: string = 'Calculado';\n\t/** */\n\tstatic TOKEN_LABEL_SNAPSHOT: string = 'Snapshot';\n\t/** */\n\tstatic TOKEN_LABEL_STATIC: string = 'Estático';\n\t/** */\n\tstatic TOKEN_LABEL_DOCUMENTO: string = 'Documento';\n\t/** */\n\tstatic TOKEN_LABEL_DOCUMENTO_ANALISIS_AUTOMATICO: string = 'Análisis automático de documentos';\n\t/** */\n\tstatic TOKEN_DOCUMENTO_ANALYSIS_TYPE: string = 'document_analysis';\n\t/** */\n\tstatic TOKEN_LABEL_TASK: string = 'Tarea';\n\t/** */\n\tstatic TOKEN_LABEL_TASKL: string = 'task';\n\t/** */\n\tstatic TOKEN_LABEL_GUARANTEE: string = 'Garantia';\n\t/** */\n\tstatic BUDGET_TOKENS_KEY_TOTAL_AMOUNT: string = 'totalAmount';\n\t/** */\n\tstatic BUDGET_TOKENS_KEY_APPLICATION_PROCESS_TOTAL_AMOUNT: string = 'applicationTotal';\n\t/** */\n\tstatic BUDGET_TOKENS_KEY_APPLICATION_PROCESS_TOTAL_OWN_FOUNDS: string = 'applicationOwnFounds';\n\t/** */\n\tstatic BUDGET_TOKENS_KEY_APPLICATION_PROCESS_TOTAL_FINANCING: string = 'applicationFinancing';\n\t/** */\n\tstatic BUDGET_TOKENS_KEY_LEGALIZATION_PROCESS_TOTAL_AMOUNT: string = 'legalizationTotal';\n\t/** */\n\tstatic BUDGET_TOKENS_KEY_LEGALIZATION_PROCESS_TOTAL_OWN_FOUNDS: string =\n\t\t'legalizationOwnFounds';\n\t/** */\n\tstatic BUDGET_TOKENS_KEY_LEGALIZATION_PROCESS_TOTAL_FINANCING: string = 'legalizationFinancing';\n\t/** */\n\tstatic BUDGET_TOKENS_KEY_INSURANCE_AMOUNT: string = 'insuranceAmount';\n\t/** */\n\tstatic LEGALIZATION_OR_APPLICATION_TOTAL_FINANCING: string =\n\t\t'leglizationOrApplicationTotalFinancing';\n\t/** */\n\tstatic BUDGET_TOKENS_KEY_RESUME_CATEGORY_YEAR: string = 'resumeCategoryYear';\n\t/** */\n\tstatic BUDGET_TOKENS_KEY_FECHA_FINANCING_START: string = 'fechaInicioFinanciacion';\n\t/** */\n\tstatic BUDGET_TOKENS_KEY_FECHA_FINANCING_END: string = 'fechaFinFinanciacion';\n\t/** */\n\tstatic BUDGET_TOKENS_DURATION_STUDIES: string = 'duracionEstudios';\n\t/** */\n\tstatic BUDGET_TOKENS_FINANCING_DURATION: string = 'duracionFinanciacion';\n\t/** */\n\tstatic STATIC_TOKENS_KEY_CODIGO_VERIFICACION: string = 'codigoVerificacion';\n\t/** */\n\tstatic STATIC_TOKENS_KEY_A_QUIEN_VA_DIRIGIDO: string = 'aQuienVaDirigido';\n\t/** */\n\tstatic STATIC_TOKENS_KEY_FECHA_ACTUAL: string = 'fechaActual';\n\t/** */\n\tstatic STATIC_TOKENS_KEY_STATUS_NAME: string = 'statusName';\n\t/** */\n\tstatic STATIC_TOKENS_KEY_PATROCINADOR: string = 'pliPatrocinador';\n\t/** */\n\tstatic STATIC_TOKENS_KEY_PATROCINADOR_CORTO: string = 'pliPatrocinadorCorto';\n\t/** */\n\tstatic STATIC_TOKENS_KEY_PROGRAMA: string = 'pliPrograma';\n\t/** */\n\tstatic STATIC_TOKENS_KEY_PROGRAMA_CORTO: string = 'pliProgramaCorto';\n\t/** */\n\tstatic STATIC_TOKENS_KEY_PROMOCION: string = 'pliPromocion';\n\t/** */\n\tstatic STATIC_TOKENS_KEY_PROMOCION_CORTO: string = 'pliPromocionCorto';\n\t/** */\n\tstatic STATIC_TOKENS_KEY_ANIO_PROMOCION: string = 'anioPromocion';\n\t/** */\n\tstatic STATIC_TOKENS_KEY_ISO_MONEDA_BASE: string = 'isoMonedaBase';\n\t/** */\n\tstatic STATIC_TOKENS_KEY_SALUDO_COMPLEMENTARIO: string = 'saludoComplementario';\n\t/** */\n\tstatic STATIC_TOKENS_KEY_NUMBER_APPLICATION: string = 'numeroRadicado';\n\t/** */\n\tstatic STATIC_TOKENS_KEY_USER_INITIALS: string = 'inicialesUsuario';\n\t/** */\n\tstatic STATIC_TOKENS_KEY_LETTER_SIGN: string = 'firmaCarta';\n\t/** */\n\tstatic STATIC_TOKENS_COMMITTEE_NAME: string = 'comiteNombre';\n\t/** */\n\tstatic STATIC_TOKENS_COMMITTEE_SEGMENTATION: string = 'comiteSegmentacion';\n\t/** */\n\tstatic STATIC_TOKENS_COMMITTEE_AGGRUPATION: string = 'comiteAgrupacion';\n\t/** */\n\tstatic STATIC_TOKENS_COMMITTEE_CUTLINE_DATE: string = 'comiteFechaLinea';\n\t/** */\n\tstatic STATIC_TOKENS_CONFIRM_LEGALIZATION_APPOINTMENT: string = 'confirmacionCita';\n\t/** */\n\tstatic STATIC_TOKENS_CODEBTOR_DOCUMENT_NUMBER: string = 'numeroDocumentoCodeudor';\n\t/** */\n\tstatic STATIC_TOKENS_CODEBTOR_DOCUMENT_TYPE: string = 'tipoDocumentoCodeudor';\n\t/** */\n\tstatic STATIC_TOKENS_CODEBTOR_NAME: string = 'nombresCodeudor';\n\t/** */\n\tstatic STATIC_TOKENS_CODEBTOR_LASTNAME: string = 'apellidosCodeudor';\n\t/** */\n\tstatic STATIC_TOKENS_TYPE_CODEBTOR: string = 'tipoPersonaCodeudor';\n\t/** */\n\tstatic STATIC_TOKENS_CODEBTOR_REVIEWER: string = 'revisorCodeudores';\n\t/** */\n\tstatic STATIC_TOKENS_TOTAL_WEIGHTED: string = 'ponderadoTotal';\n\t/** */\n\tstatic STATIC_TOKENS_CONSECUTIVE_GUARANTEE: string = 'consecutivoGarantias';\n\t/** */\n\tstatic STATIC_TOKENS_DAY: string = 'dia';\n\t/** */\n\tstatic STATIC_TOKENS_MONTH: string = 'mes';\n\t/** */\n\tstatic STATIC_TOKENS_YEAR: string = 'ano';\n\t/** */\n\tstatic STATIC_TOKENS_REPRESENTATIVE_NAME: string = 'nombresRepresentante';\n\t/** */\n\tstatic STATIC_TOKENS_REPRESENTATIVE_LASTNAME: string = 'apellidosRepresentante';\n\t/** */\n\tstatic STATIC_TOKENS_REPRESENTATIVE_DOCUMENT_NUMBER: string = 'cedulaRepresentante';\n\t/** */\n\tstatic STATIC_TOKENS_CITY_SIGNATURE: string = 'ciudadFirma';\n\t/** */\n\tstatic STATIC_TOKENS_USER_TYPE_CREDIT_STUDY: string = 'tipoUsuarioEstudioCredito';\n\t/** */\n\tstatic STATIC_TOKENS_CODEBTOR_VEHICLES_QUANTITY: string = 'cantidadVehiculosCodeudor';\n\t/** */\n\tstatic STATIC_TOKENS_CODEBTOR_ASSETS_QUANTITY: string = 'cantidadBienesCodeudor';\n\t/** */\n\tstatic STATIC_TOKENS_LIST_CODEBTORS: string = 'listaCodeudores';\n\t/** */\n\tstatic STATIC_TOKEN_INGRESO_CODEUDOR_HABEAS_DATA: string = 'ingresoCodeudorHabeasData';\n\t/** */\n\tstatic STATIC_TOKEN_PDF_RESUMEN_CODEUDOR: string = 'pdfResumenCodeudor';\n\t/** */\n\tstatic STATIC_TOKENS_QUANTITY_VEHICLE_BENEFICIARY: string = 'cantidadVehiculosSeleccionado';\n\t/** */\n\tstatic STATIC_TOKENS_QUANTITY_ASSETS_BENEFICIARY: string = 'cantidadBienesSeleccionado';\n\t/** */\n\tstatic STATIC_TOKENS_BEN_CODIGO: string = 'benCodigo';\n\t/** */\n\tstatic STATIC_TOKEN_CREDIT_REVIEWER_OBSERVATIONS_CODEBTOR: string =\n\t\t'creditReviewerObservationsCodebtor';\n\t/** */\n\tstatic STATIC_TOKEN_CREDIT_REVIEWER_OBSERVATIONS: string = 'creditReviewerObservations';\n\tstatic STATIC_TOKEN_TAG_NAME: string = 'tagName';\n\tstatic STATIC_TOKEN_NAME_REVIEWER_TASK = 'nameReviwerTask';\n\tstatic STATIC_TOKEN_LAST_NAME_REVIEWER_TASK = 'lastNameReviwerTask';\n\tstatic STATIC_TOKEN_TASK_TOTAL_ASSIGNED_TO_REVIEWER = 'taskTotalAssignedToReviewer';\n\tstatic STATIC_TOKEN_SURNAME = 'surname';\n\tstatic STATIC_TOKENS: any[] = [\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_KEY_PATROCINADOR,\n\t\t\tlabel: 'Patrocinador'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_KEY_PROGRAMA,\n\t\t\tlabel: 'Programa'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_KEY_PROMOCION,\n\t\t\tlabel: 'Promoción'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_KEY_ANIO_PROMOCION,\n\t\t\tlabel: 'Año promoción'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_KEY_ISO_MONEDA_BASE,\n\t\t\tlabel: 'ISO Moneda base'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_KEY_SALUDO_COMPLEMENTARIO,\n\t\t\tlabel: 'Saludo complementario'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_KEY_CODIGO_VERIFICACION,\n\t\t\tlabel: 'Código de verificación'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_KEY_A_QUIEN_VA_DIRIGIDO,\n\t\t\tlabel: 'A quien va dirigido'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_KEY_FECHA_ACTUAL,\n\t\t\tlabel: 'Fecha actual'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_KEY_STATUS_NAME,\n\t\t\tlabel: 'Estado actual'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_KEY_NUMBER_APPLICATION,\n\t\t\tlabel: 'Número radicado'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_KEY_USER_INITIALS,\n\t\t\tlabel: 'Iniciales de usuario'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_KEY_LETTER_SIGN,\n\t\t\tlabel: 'Firma de cartas'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_COMMITTEE_NAME,\n\t\t\tlabel: 'Nombre comité'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_COMMITTEE_SEGMENTATION,\n\t\t\tlabel: 'Segmentación comité'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_COMMITTEE_AGGRUPATION,\n\t\t\tlabel: 'Agrupación comité'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_COMMITTEE_CUTLINE_DATE,\n\t\t\tlabel: 'Fecha Línea de corte'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_CONFIRM_LEGALIZATION_APPOINTMENT,\n\t\t\tlabel: 'Confirmación de cita'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_CODEBTOR_DOCUMENT_NUMBER,\n\t\t\tlabel: 'Número de documento de codeudor'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_CODEBTOR_DOCUMENT_TYPE,\n\t\t\tlabel: 'Tipo de documento de codeudor'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_CODEBTOR_NAME,\n\t\t\tlabel: 'Nombres codeudor'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_CODEBTOR_LASTNAME,\n\t\t\tlabel: 'Apellidos codeudor'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_TYPE_CODEBTOR,\n\t\t\tlabel: 'Tipo de persona codeudor'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_CODEBTOR_VEHICLES_QUANTITY,\n\t\t\tlabel: 'Cantidad vehiculos codeudor'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_CODEBTOR_ASSETS_QUANTITY,\n\t\t\tlabel: 'Cantidad bienes codeudor'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_CODEBTOR_REVIEWER,\n\t\t\tlabel: 'Revisor de codeudores'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_TOTAL_WEIGHTED,\n\t\t\tlabel: 'Ponderado total'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_CONSECUTIVE_GUARANTEE,\n\t\t\tlabel: 'Consecutivo de garantias'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_REPRESENTATIVE_NAME,\n\t\t\tlabel: 'Nombres representante legal'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_REPRESENTATIVE_LASTNAME,\n\t\t\tlabel: 'Apellidos representante legal'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_REPRESENTATIVE_DOCUMENT_NUMBER,\n\t\t\tlabel: 'Cedula representante legal'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_USER_TYPE_CREDIT_STUDY,\n\t\t\tlabel: 'Tipo usuario estudio crédito'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_DAY,\n\t\t\tlabel: 'Dia'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_MONTH,\n\t\t\tlabel: 'Mes'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_YEAR,\n\t\t\tlabel: 'Año'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_CITY_SIGNATURE,\n\t\t\tlabel: 'Ciudad de la firma'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_LIST_CODEBTORS,\n\t\t\tlabel: 'Lista de codeudores'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKEN_INGRESO_CODEUDOR_HABEAS_DATA,\n\t\t\tlabel: 'Ingreso Codeudor Habeas Data'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKEN_PDF_RESUMEN_CODEUDOR,\n\t\t\tlabel: 'Pdf codeudor'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_QUANTITY_VEHICLE_BENEFICIARY,\n\t\t\tlabel: 'Cantidad de vehículos del seleccionado'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_QUANTITY_ASSETS_BENEFICIARY,\n\t\t\tlabel: 'Cantidad bienes del seleccionado'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKENS_BEN_CODIGO,\n\t\t\tlabel: 'Código beneficiario'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKEN_CREDIT_REVIEWER_OBSERVATIONS,\n\t\t\tlabel: 'Observaciones revisor financiero seleccionado'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKEN_CREDIT_REVIEWER_OBSERVATIONS_CODEBTOR,\n\t\t\tlabel: 'Observaciones revisor financiero codeudores'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKEN_TAG_NAME,\n\t\t\tlabel: 'Nombre del tag'\n\t\t},\n\t\t{ key: TokenService.STATIC_TOKEN_NAME_REVIEWER_TASK, label: 'Nombre revisor tareas' },\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKEN_LAST_NAME_REVIEWER_TASK,\n\t\t\tlabel: 'Apellido revisor tareas'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKEN_TASK_TOTAL_ASSIGNED_TO_REVIEWER,\n\t\t\tlabel: 'Total tareas asignadas a revisor'\n\t\t},\n\t\t{\n\t\t\tkey: TokenService.STATIC_TOKEN_SURNAME,\n\t\t\tlabel: 'Apellidos candidato'\n\t\t}\n\t];\n\n\tstatic excludedToken = [\n\t\tTokenService.STATIC_TOKENS_USER_TYPE_CREDIT_STUDY.toLowerCase(),\n\t\tTokenService.STATIC_TOKENS_CODEBTOR_VEHICLES_QUANTITY.toLowerCase(),\n\t\tTokenService.STATIC_TOKENS_CODEBTOR_ASSETS_QUANTITY.toLowerCase()\n\t];\n\n\tconstructor(\n\t\t@Inject('environment') private environment,\n\t\tprivate httpClient: HttpClient,\n\t\tprivate formService: FormService,\n\t\tprivate currencyPipe: CurrencyPipe\n\t) {}\n\n\t/** This promise allows to execute a function when consulting the form fields. */\n\tgetFormFieldsByPromCode(promCodigo): Promise<any[]> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\t// Search the dynamic form\n\t\t\tlet lFormFieldsToken: any[] = null;\n\t\t\tthis.formService.getByPromCodigo(promCodigo).subscribe({\n\t\t\t\tnext: (arrayForms: any) => {\n\t\t\t\t\tif (arrayForms.length > 0) {\n\t\t\t\t\t\tfor (const forms of arrayForms) {\n\t\t\t\t\t\t\tlet components = [];\n\n\t\t\t\t\t\t\tcomponents.push(...FormioUtil.getComponents(forms.components));\n\n\t\t\t\t\t\t\tif (forms.components && forms.components.length > 0) {\n\t\t\t\t\t\t\t\tfor (const components of forms.components) {\n\t\t\t\t\t\t\t\t\tif (components.components && components.components.length > 0) {\n\t\t\t\t\t\t\t\t\t\tfor (const component of components.components) {\n\t\t\t\t\t\t\t\t\t\t\tif (component.columns && component.columns.length > 0) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor (const cComponents of component.columns) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcComponents.components &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcComponents.components.length > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor (const iterator of cComponents.components) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (iterator.type === 'address') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete iterator.components;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tlet form: any = arrayForms;\n\t\t\t\t\tif (\n\t\t\t\t\t\t!form ||\n\t\t\t\t\t\t!form[0] ||\n\t\t\t\t\t\t!form[0].promCodigo ||\n\t\t\t\t\t\tform[0].promCodigo != promCodigo\n\t\t\t\t\t) {\n\t\t\t\t\t\t// this.router.navigate(['404']);\n\t\t\t\t\t\tresolve(lFormFieldsToken);\n\t\t\t\t\t}\n\t\t\t\t\tlFormFieldsToken = [];\n\t\t\t\t\tfor (let formComp of form) {\n\t\t\t\t\t\tlet newComponents: any;\n\t\t\t\t\t\tlet components: any[] = [];\n\t\t\t\t\t\tif (formComp.components) {\n\t\t\t\t\t\t\tnewComponents = formComp.components;\n\t\t\t\t\t\t} else if (formComp.columns) {\n\t\t\t\t\t\t\tnewComponents = formComp.columns;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (newComponents && UtilString.isValid(formComp.title)) {\n\t\t\t\t\t\t\tlFormFieldsToken.push({\n\t\t\t\t\t\t\t\ttitle: {\n\t\t\t\t\t\t\t\t\tkey: TokenService.getKeyFormulario(formComp.title),\n\t\t\t\t\t\t\t\t\tvalue: formComp.title,\n\t\t\t\t\t\t\t\t\tobject: formComp\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tvalue: []\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tlFormFieldsToken[lFormFieldsToken.length - 1].value =\n\t\t\t\t\t\t\t\tthis.getComponenetForm(\n\t\t\t\t\t\t\t\t\tcomponents,\n\t\t\t\t\t\t\t\t\tnewComponents,\n\t\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tresolve(lFormFieldsToken);\n\t\t\t\t},\n\t\t\t\terror: (error) => {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tgetFormFieldsByPromCodeWithEditGrids(promCodigo): Promise<any[]> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\t// Search the dynamic form\n\t\t\tlet lFormFieldsToken: any[] = null;\n\t\t\tthis.formService.getByPromCodigo(promCodigo).subscribe({\n\t\t\t\tnext: (arrayForms: any) => {\n\t\t\t\t\tif (arrayForms.length > 0) {\n\t\t\t\t\t\tfor (const forms of arrayForms) {\n\t\t\t\t\t\t\tlet components = [];\n\n\t\t\t\t\t\t\tcomponents.push(\n\t\t\t\t\t\t\t\t...FormioUtil.getComponentsWithEditGrids(forms.components)\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif (forms.components && forms.components.length > 0) {\n\t\t\t\t\t\t\t\tfor (const components of forms.components) {\n\t\t\t\t\t\t\t\t\tif (components.components && components.components.length > 0) {\n\t\t\t\t\t\t\t\t\t\tfor (const component of components.components) {\n\t\t\t\t\t\t\t\t\t\t\tif (component.columns && component.columns.length > 0) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor (const cComponents of component.columns) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcComponents.components &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcComponents.components.length > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor (const iterator of cComponents.components) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (iterator.type === 'address') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdelete iterator.components;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tlet form: any = arrayForms;\n\t\t\t\t\tif (\n\t\t\t\t\t\t!form ||\n\t\t\t\t\t\t!form[0] ||\n\t\t\t\t\t\t!form[0].promCodigo ||\n\t\t\t\t\t\tform[0].promCodigo != promCodigo\n\t\t\t\t\t) {\n\t\t\t\t\t\t// this.router.navigate(['404']);\n\t\t\t\t\t\tresolve(lFormFieldsToken);\n\t\t\t\t\t}\n\t\t\t\t\tlFormFieldsToken = [];\n\t\t\t\t\tfor (let formComp of form) {\n\t\t\t\t\t\tlet newComponents: any;\n\t\t\t\t\t\tlet components: any[] = [];\n\t\t\t\t\t\tif (formComp.components) {\n\t\t\t\t\t\t\tnewComponents = formComp.components;\n\t\t\t\t\t\t} else if (formComp.columns) {\n\t\t\t\t\t\t\tnewComponents = formComp.columns;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (newComponents && UtilString.isValid(formComp.title)) {\n\t\t\t\t\t\t\tlFormFieldsToken.push({\n\t\t\t\t\t\t\t\ttitle: {\n\t\t\t\t\t\t\t\t\tkey: TokenService.getKeyFormulario(formComp.title),\n\t\t\t\t\t\t\t\t\tvalue: formComp.title,\n\t\t\t\t\t\t\t\t\tobject: formComp\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tvalue: []\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tlFormFieldsToken[lFormFieldsToken.length - 1].value =\n\t\t\t\t\t\t\t\tthis.getComponenetForm(\n\t\t\t\t\t\t\t\t\tcomponents,\n\t\t\t\t\t\t\t\t\tnewComponents,\n\t\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tresolve(lFormFieldsToken);\n\t\t\t\t},\n\t\t\t\terror: (error) => {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tgetFormFieldsByFormId(formId: string): Promise<any[]> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\t// Search the dynamic form\n\t\t\tlet lFormFieldsToken: any[] = null;\n\t\t\tthis.formService.getById(formId).subscribe(\n\t\t\t\t(result: any) => {\n\t\t\t\t\tlet form: any = result;\n\t\t\t\t\tif (!form || !form[0]) {\n\t\t\t\t\t\tresolve(lFormFieldsToken);\n\t\t\t\t\t}\n\t\t\t\t\tlFormFieldsToken = [];\n\t\t\t\t\tfor (let formComp of form) {\n\t\t\t\t\t\tlet newComponents: any;\n\t\t\t\t\t\tlet components: any[] = [];\n\t\t\t\t\t\tif (formComp.components) {\n\t\t\t\t\t\t\tnewComponents = formComp.components;\n\t\t\t\t\t\t} else if (formComp.columns) {\n\t\t\t\t\t\t\tnewComponents = formComp.columns;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (newComponents && UtilString.isValid(formComp.title)) {\n\t\t\t\t\t\t\tlFormFieldsToken.push({\n\t\t\t\t\t\t\t\ttitle: {\n\t\t\t\t\t\t\t\t\tkey: TokenService.getKeyFormulario(formComp.title),\n\t\t\t\t\t\t\t\t\tvalue: formComp.title,\n\t\t\t\t\t\t\t\t\tobject: formComp\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tvalue: []\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tlFormFieldsToken[lFormFieldsToken.length - 1].value =\n\t\t\t\t\t\t\t\tthis.getComponenetForm(\n\t\t\t\t\t\t\t\t\tcomponents,\n\t\t\t\t\t\t\t\t\tnewComponents,\n\t\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tresolve(lFormFieldsToken);\n\t\t\t\t},\n\t\t\t\t(error) => {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t);\n\t\t});\n\t}\n\n\t/** This promise allows to execute a function when consulting the form fields. */\n\tgetFormPanelsByPromCode(promCodigo): Promise<any[]> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\t// Search the dynamic form\n\t\t\tlet lFormPannelsToken: any[] = null;\n\t\t\tthis.formService.getByPromCodigo(promCodigo).subscribe(\n\t\t\t\t(result: any) => {\n\t\t\t\t\tlet form: any = result;\n\t\t\t\t\tif (\n\t\t\t\t\t\t!form ||\n\t\t\t\t\t\t!form[0] ||\n\t\t\t\t\t\t!form[0].promCodigo ||\n\t\t\t\t\t\tform[0].promCodigo != promCodigo\n\t\t\t\t\t) {\n\t\t\t\t\t\t// this.router.navigate(['404']);\n\t\t\t\t\t\tresolve(lFormPannelsToken);\n\t\t\t\t\t}\n\t\t\t\t\tlFormPannelsToken = [];\n\t\t\t\t\tfor (let formComp of form) {\n\t\t\t\t\t\tlet newComponents: any;\n\t\t\t\t\t\tlet components: any[] = [];\n\t\t\t\t\t\tif (formComp.components) {\n\t\t\t\t\t\t\tnewComponents = formComp.components;\n\t\t\t\t\t\t} else if (formComp.columns) {\n\t\t\t\t\t\t\tnewComponents = formComp.columns;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (newComponents && UtilString.isValid(formComp.title)) {\n\t\t\t\t\t\t\tlFormPannelsToken.push({\n\t\t\t\t\t\t\t\ttitle: {\n\t\t\t\t\t\t\t\t\tkey: TokenService.getKeyFormulario(formComp.title),\n\t\t\t\t\t\t\t\t\tvalue: formComp.title,\n\t\t\t\t\t\t\t\t\tobject: formComp\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tvalue: []\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tlFormPannelsToken[lFormPannelsToken.length - 1].value =\n\t\t\t\t\t\t\t\tthis.getPanelComponenet(components, newComponents, null);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tresolve(lFormPannelsToken);\n\t\t\t\t},\n\t\t\t\t(error) => {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t);\n\t\t});\n\t}\n\n\t/**\n\t * A recursive method to get all the information of the editGrid dynamic form\n\t * @param components\n\t * @param form\n\t */\n\tgetPanelComponenet(components: any[], form: any, panelName: string): any[] {\n\t\tfor (let formComp of form) {\n\t\t\tif (formComp.type === 'panel') {\n\t\t\t\tcomponents.push(formComp);\n\t\t\t} else if (formComp.components || formComp.columns) {\n\t\t\t\tlet newComponents: any;\n\t\t\t\tif (formComp.components) {\n\t\t\t\t\tnewComponents = formComp.components;\n\t\t\t\t} else if (formComp.columns) {\n\t\t\t\t\tnewComponents = formComp.columns;\n\t\t\t\t}\n\t\t\t\tcomponents = this.getPanelComponenet(components, newComponents, panelName);\n\t\t\t}\n\t\t}\n\t\treturn components;\n\t}\n\n\t/**\n\t * A recursive method to get all the information of the components a columns of the dynamic form\n\t * @param components\n\t * @param form\n\t */\n\tgetComponenetForm(\n\t\tcomponents: any[],\n\t\tform: any,\n\t\tpanelName: string,\n\t\teditgrid: boolean,\n\t\teditGridKey: string\n\t): any[] {\n\t\tfor (let formComp of form) {\n\t\t\t//MO-  mantis 8743 fix address token\n\t\t\tif (\n\t\t\t\t(formComp.components || formComp.columns) &&\n\t\t\t\tformComp.type !== 'address' &&\n\t\t\t\tformComp.type !== 'editgrid'\n\t\t\t) {\n\t\t\t\tlet newComponents: any;\n\t\t\t\tif (formComp.components) {\n\t\t\t\t\tnewComponents = formComp.components;\n\t\t\t\t\tif (formComp.type === 'editgrid') {\n\t\t\t\t\t\teditgrid = true;\n\t\t\t\t\t\teditGridKey = formComp.key;\n\t\t\t\t\t}\n\t\t\t\t} else if (formComp.columns) {\n\t\t\t\t\tnewComponents = formComp.columns;\n\t\t\t\t}\n\t\t\t\tif (formComp.type && formComp.type === 'panel') {\n\t\t\t\t\tpanelName = formComp.title;\n\t\t\t\t}\n\t\t\t\tcomponents = this.getComponenetForm(\n\t\t\t\t\tcomponents,\n\t\t\t\t\tnewComponents,\n\t\t\t\t\tpanelName,\n\t\t\t\t\teditgrid,\n\t\t\t\t\teditGridKey\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tformComp.panelName = panelName;\n\t\t\t\tformComp.editgrid = editgrid;\n\t\t\t\tformComp.editGridKey = editGridKey;\n\t\t\t\tcomponents.push(formComp);\n\t\t\t}\n\t\t}\n\t\treturn components;\n\t}\n\n\t/** This promise allows to execute a function when consulting the form fields. */\n\tgetFormEditGridFieldsByPromCode(promCodigo): Promise<any[]> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\t// Search the dynamic form\n\t\t\tlet lFormFieldsToken: any[] = null;\n\t\t\tthis.formService.getByPromCodigo(promCodigo).subscribe(\n\t\t\t\t(result: any) => {\n\t\t\t\t\tlet form: any = result;\n\t\t\t\t\tif (\n\t\t\t\t\t\t!form ||\n\t\t\t\t\t\t!form[0] ||\n\t\t\t\t\t\t!form[0].promCodigo ||\n\t\t\t\t\t\tform[0].promCodigo != promCodigo\n\t\t\t\t\t) {\n\t\t\t\t\t\t// this.router.navigate(['404']);\n\t\t\t\t\t\tresolve(lFormFieldsToken);\n\t\t\t\t\t}\n\t\t\t\t\tlFormFieldsToken = [];\n\t\t\t\t\tfor (let formComp of form) {\n\t\t\t\t\t\tlet newComponents: any;\n\t\t\t\t\t\tlet components: any[] = [];\n\t\t\t\t\t\tif (formComp.components) {\n\t\t\t\t\t\t\tnewComponents = formComp.components;\n\t\t\t\t\t\t} else if (formComp.columns) {\n\t\t\t\t\t\t\tnewComponents = formComp.columns;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (newComponents && UtilString.isValid(formComp.title)) {\n\t\t\t\t\t\t\tlFormFieldsToken.push({\n\t\t\t\t\t\t\t\ttitle: {\n\t\t\t\t\t\t\t\t\tkey: TokenService.getKeyFormulario(formComp.title),\n\t\t\t\t\t\t\t\t\tvalue: formComp.title,\n\t\t\t\t\t\t\t\t\tobject: formComp\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tvalue: []\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tlFormFieldsToken[lFormFieldsToken.length - 1].value =\n\t\t\t\t\t\t\t\tthis.getEditGridComponenet(components, newComponents, null);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tresolve(lFormFieldsToken);\n\t\t\t\t},\n\t\t\t\t(error) => {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t);\n\t\t});\n\t}\n\n\t/**\n\t * A recursive method to get all the information of the editGrid dynamic form\n\t * @param components\n\t * @param form\n\t */\n\tgetEditGridComponenet(components: any[], form: any, panelName: string): any[] {\n\t\tfor (let formComp of form) {\n\t\t\tif (formComp.type === 'editgrid') {\n\t\t\t\tformComp.panelName = panelName;\n\t\t\t\tcomponents.push(formComp);\n\t\t\t} else if (formComp.components || formComp.columns) {\n\t\t\t\tlet newComponents: any;\n\t\t\t\tif (formComp.components) {\n\t\t\t\t\tnewComponents = formComp.components;\n\t\t\t\t} else if (formComp.columns) {\n\t\t\t\t\tnewComponents = formComp.columns;\n\t\t\t\t}\n\t\t\t\tif (formComp.type && formComp.type === 'panel') {\n\t\t\t\t\tpanelName = formComp.title;\n\t\t\t\t}\n\t\t\t\tcomponents = this.getEditGridComponenet(components, newComponents, panelName);\n\t\t\t}\n\t\t}\n\t\treturn components;\n\t}\n\n\t/** It returns the tokens by promCodigo */\n\tgetListByPromCodigo(promCode: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'token/getByPromCodigo',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCode.toString()) }\n\t\t);\n\t}\n\n\t/** It returns the token by id */\n\tgetById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(this.environment.host.backend.configuration + 'token/getById', {\n\t\t\tparams: new HttpParams().set('id', id.toString())\n\t\t});\n\t}\n\n\t/** It deletes a form by id */\n\tdelete(id): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + 'token/delete',\n\t\t\t{ params: new HttpParams().set('id', id) }\n\t\t);\n\t}\n\n\t/** It saves the token */\n\tsave(token: Token): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'token/save',\n\t\t\ttoken,\n\t\t\tHEADER_JSON\n\t\t);\n\t}\n\n\tstatic getKeyFormulario(formTitle: string): string {\n\t\tif (UtilString.isValid(formTitle)) {\n\t\t\treturn (\n\t\t\t\tUtilString.replaceAccentSpacesOthers(TokenService.TOKEN_LABEL_FORM) +\n\t\t\t\tUtilString.replaceAccentSpacesOthers(formTitle).replace(/_/g, '-')\n\t\t\t);\n\t\t}\n\t\treturn '';\n\t}\n\n\t/** It returns the unique verification code */\n\tgetUniqueVerificationCode(login: string, token: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.documentsRepository +\n\t\t\t\t'documento/consultarCodigoUnico/' +\n\t\t\t\tlogin +\n\t\t\t\t'/' +\n\t\t\t\ttoken,\n\t\t\t{ params: new HttpParams() }\n\t\t);\n\t}\n\n\t/** It send the information to copy the Document viewer */\n\tcopyDocumentInformationViewer(\n\t\tlogin: string,\n\t\ttoken: string,\n\t\tuniqueCode: string,\n\t\tdocumentURL: string,\n\t\tdocumentName: string\n\t): Observable<any> {\n\t\tlet infoDocumento = {\n\t\t\tcodigoUnico: uniqueCode,\n\t\t\trutaDocumento: documentURL,\n\t\t\tdocumentName: documentName\n\t\t};\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.documentsRepository +\n\t\t\t\t'documento/adicionarDocumento/' +\n\t\t\t\tlogin +\n\t\t\t\t'/' +\n\t\t\t\ttoken,\n\t\t\tinfoDocumento,\n\t\t\tHEADER_JSON\n\t\t);\n\t}\n\n\tstatic getKeyBudget(): string {\n\t\treturn UtilString.replaceAccentSpacesOthers(TokenService.TOKEN_LABEL_BUDGET);\n\t}\n\n\tstatic getKeyDocument(): string {\n\t\treturn UtilString.replaceAccentSpacesOthers(TokenService.TOKEN_LABEL_DOCUMENTO);\n\t}\n\n\tstatic getKeyDocumentAnalysis(): string {\n\t\treturn UtilString.replaceAccentSpacesOthers(TokenService.TOKEN_DOCUMENTO_ANALYSIS_TYPE);\n\t}\n\n\tstatic getKeyTask(): string {\n\t\treturn UtilString.replaceAccentSpacesOthers(TokenService.TOKEN_LABEL_TASKL);\n\t}\n\n\tstatic getKeyStatic(): string {\n\t\treturn UtilString.replaceAccentSpacesOthers(TokenService.TOKEN_LABEL_STATIC);\n\t}\n\n\tstatic getKeyCalculated(token: Token): string {\n\t\treturn (\n\t\t\tUtilString.replaceAccentSpacesOthers(TokenService.TOKEN_LABEL_CALCULATED) +\n\t\t\t'_' +\n\t\t\tUtilString.replaceAccentSpacesOthers(token.name)\n\t\t);\n\t}\n\n\tstatic getKeySnapshot(token: Token): string {\n\t\treturn (\n\t\t\tUtilString.replaceAccentSpacesOthers(TokenService.TOKEN_LABEL_SNAPSHOT) +\n\t\t\t'_' +\n\t\t\tUtilString.replaceAccentSpacesOthers(token.name)\n\t\t);\n\t}\n\n\tstatic getKeyGuarantee(token: PliCnfGuaranteeToken): string {\n\t\treturn (\n\t\t\tUtilString.replaceAccentSpacesOthers(TokenService.TOKEN_LABEL_GUARANTEE) +\n\t\t\t'_' +\n\t\t\tUtilString.replaceAccentSpacesOthers(token.name)\n\t\t);\n\t}\n\n\t/**\n\t * Return a value that represent the type of label: 1=Form, 2=Budget, 3=Static, 4=Calculated\n\t * @param key Value to evalueate\n\t */\n\tstatic getKeyType(key: string): number {\n\t\tkey = key.replace('{', '').replace('}', '');\n\t\tkey = key.substring(1, key.indexOf('_'));\n\t\tif (key.startsWith(UtilString.replaceAccentSpacesOthers(TokenService.TOKEN_LABEL_FORM))) {\n\t\t\treturn 1;\n\t\t} else if (\n\t\t\tkey.startsWith(UtilString.replaceAccentSpacesOthers(TokenService.TOKEN_LABEL_BUDGET))\n\t\t) {\n\t\t\treturn 2;\n\t\t} else if (\n\t\t\tkey.startsWith(UtilString.replaceAccentSpacesOthers(TokenService.TOKEN_LABEL_STATIC))\n\t\t) {\n\t\t\treturn 3;\n\t\t} else if (\n\t\t\tkey.startsWith(\n\t\t\t\tUtilString.replaceAccentSpacesOthers(TokenService.TOKEN_LABEL_CALCULATED)\n\t\t\t)\n\t\t) {\n\t\t\treturn 4;\n\t\t} else if (\n\t\t\tkey.startsWith(UtilString.replaceAccentSpacesOthers(TokenService.TOKEN_LABEL_TASKL))\n\t\t) {\n\t\t\treturn 5;\n\t\t} else if (\n\t\t\tkey.startsWith(\n\t\t\t\tUtilString.replaceAccentSpacesOthers(TokenService.TOKEN_DOCUMENTO_ANALYSIS_TYPE)\n\t\t\t)\n\t\t) {\n\t\t\treturn 6;\n\t\t}\n\t\treturn null;\n\t}\n\n\t/**\n\t * Depends of the type of formFieldToken return de value of the valueData\n\t * @param formFieldToken\n\t * @param valueData\n\t */\n\tgetValueFromFormField(formFieldToken: any, valueData: any): any {\n\t\tif (typeof valueData == 'object') {\n\t\t\tif (formFieldToken.type) {\n\t\t\t\tif (formFieldToken.type == 'address') {\n\t\t\t\t\treturn valueData.formatted_address;\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\tformFieldToken.type == 'select' &&\n\t\t\t\t\tvalueData.hasOwnProperty(formFieldToken.searchField)\n\t\t\t\t) {\n\t\t\t\t\tif (valueData.hasOwnProperty('original_name') !== '') {\n\t\t\t\t\t\treturn valueData.original_name;\n\t\t\t\t\t} else if (valueData.hasOwnProperty('nativeName') !== '') {\n\t\t\t\t\t\treturn valueData.nativeName;\n\t\t\t\t\t} else if (valueData.hasOwnProperty('formatted_address')) {\n\t\t\t\t\t\treturn valueData.formatted_address;\n\t\t\t\t\t} else if (formFieldToken.searchField) {\n\t\t\t\t\t\treturn valueData[formFieldToken.searchField];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (formFieldToken.type == 'select') {\n\t\t\t\t\tif (valueData.hasOwnProperty('formatted_address')) {\n\t\t\t\t\t\treturn valueData.formatted_address;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn valueData;\n\t}\n\tformatDate(value: Date, locale: string): string {\n\t\tconst date = new Date(value);\n\n\t\tconst months = {\n\t\t\tes: [\n\t\t\t\t'enero',\n\t\t\t\t'febrero',\n\t\t\t\t'marzo',\n\t\t\t\t'abril',\n\t\t\t\t'mayo',\n\t\t\t\t'junio',\n\t\t\t\t'julio',\n\t\t\t\t'agosto',\n\t\t\t\t'septiembre',\n\t\t\t\t'octubre',\n\t\t\t\t'noviembre',\n\t\t\t\t'diciembre'\n\t\t\t],\n\t\t\ten: [\n\t\t\t\t'January',\n\t\t\t\t'February',\n\t\t\t\t'March',\n\t\t\t\t'April',\n\t\t\t\t'May',\n\t\t\t\t'June',\n\t\t\t\t'July',\n\t\t\t\t'August',\n\t\t\t\t'September',\n\t\t\t\t'October',\n\t\t\t\t'November',\n\t\t\t\t'December'\n\t\t\t],\n\t\t\tfr: [\n\t\t\t\t'janvier',\n\t\t\t\t'février',\n\t\t\t\t'mars',\n\t\t\t\t'avril',\n\t\t\t\t'mai',\n\t\t\t\t'juin',\n\t\t\t\t'juillet',\n\t\t\t\t'août',\n\t\t\t\t'septembre',\n\t\t\t\t'octobre',\n\t\t\t\t'novembre',\n\t\t\t\t'décembre'\n\t\t\t],\n\t\t\tde: [\n\t\t\t\t'Januar',\n\t\t\t\t'Februar',\n\t\t\t\t'März',\n\t\t\t\t'April',\n\t\t\t\t'Mai',\n\t\t\t\t'Juni',\n\t\t\t\t'Juli',\n\t\t\t\t'August',\n\t\t\t\t'September',\n\t\t\t\t'Oktober',\n\t\t\t\t'November',\n\t\t\t\t'Dezember'\n\t\t\t],\n\t\t\tit: [\n\t\t\t\t'gennaio',\n\t\t\t\t'febbraio',\n\t\t\t\t'marzo',\n\t\t\t\t'aprile',\n\t\t\t\t'maggio',\n\t\t\t\t'giugno',\n\t\t\t\t'luglio',\n\t\t\t\t'agosto',\n\t\t\t\t'settembre',\n\t\t\t\t'ottobre',\n\t\t\t\t'novembre',\n\t\t\t\t'dicembre'\n\t\t\t]\n\t\t};\n\n\t\tconst localeMonths = months[locale];\n\n\t\tconst month = localeMonths[date.getMonth()];\n\t\tconst year = date.getFullYear();\n\n\t\treturn `${month} ${year}`;\n\t}\n\t/**\n\t * Try to find the token in the stringText and replace with dataValue. If detect format of number or date try to format the dataValue\n\t * @param stringText\n\t * @param token\n\t * @param dataValue\n\t */\n\treplaceToken(stringText: string, token: any, dataValue: any, locale?: string): string {\n\t\tlet valueReplace: string = null;\n\t\tif (token && token[0] == '#') {\n\t\t\tlet typeToken = token.substring(1, token.indexOf('('));\n\t\t\tif (typeToken == 'date') {\n\t\t\t\tlet dateFormat: string = token.substring(\n\t\t\t\t\ttoken.indexOf('}') + 1,\n\t\t\t\t\ttoken.indexOf(')')\n\t\t\t\t);\n\t\t\t\tdateFormat = dateFormat.trim().replace(/\\\"/g, '').replace(/\\'/g, '');\n\t\t\t\tlet dateValue = DateUtil.getDate(dataValue);\n\t\t\t\tif (locale != null && locale) {\n\t\t\t\t\tvalueReplace = this.formatDate(dateValue, locale);\n\t\t\t\t} else if (dateValue) {\n\t\t\t\t\tvalueReplace = DateUtil.getMoment(dateValue).format(dateFormat);\n\t\t\t\t} else {\n\t\t\t\t\tvalueReplace = '';\n\t\t\t\t}\n\t\t\t} else if (typeToken == 'number') {\n\t\t\t\tlet numberValue: number = Number(dataValue);\n\t\t\t\tif (numberValue != undefined && !isNaN(numberValue)) {\n\t\t\t\t\tlet numberFormat: string = token.substring(\n\t\t\t\t\t\ttoken.indexOf('}') + 1,\n\t\t\t\t\t\ttoken.indexOf(')')\n\t\t\t\t\t);\n\t\t\t\t\tnumberFormat = numberFormat.trim().replace(/\\\"/g, '').replace(/\\'/g, '');\n\t\t\t\t\tvalueReplace = this.currencyPipe.transform(\n\t\t\t\t\t\tnumberValue,\n\t\t\t\t\t\tthis.locale,\n\t\t\t\t\t\t'',\n\t\t\t\t\t\tnumberFormat\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tconsole.log(\n\t\t\t\t\t\t'El dato [' +\n\t\t\t\t\t\t\tdataValue +\n\t\t\t\t\t\t\t'] para el token [' +\n\t\t\t\t\t\t\ttoken +\n\t\t\t\t\t\t\t'] tipo númerico no es valido'\n\t\t\t\t\t);\n\t\t\t\t\tvalueReplace = '';\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconsole.log('tipo de token indefinido. [typeToken[' + typeToken + ']]');\n\t\t\t}\n\t\t} else if (token && token[0] == '$') {\n\t\t\tif (\n\t\t\t\tdataValue !== null &&\n\t\t\t\tdataValue !== undefined &&\n\t\t\t\tdataValue.original_name !== undefined &&\n\t\t\t\tdataValue.original_name !== null\n\t\t\t) {\n\t\t\t\tvalueReplace = dataValue.original_name;\n\t\t\t} else {\n\t\t\t\tvalueReplace = dataValue;\n\t\t\t}\n\t\t\t// valueReplace = dataValue;\n\t\t} else {\n\t\t\tconsole.log('El token no es valido. [token[' + token + ']]');\n\t\t}\n\t\tif (stringText && valueReplace !== null) {\n\t\t\tif (token && token === '${estatico_' + TokenService.STATIC_TOKEN_SURNAME + '}') {\n\t\t\t\tvalueReplace = dataValue;\n\t\t\t\tstringText = stringText.split(token).join(valueReplace);\n\t\t\t} else {\n\t\t\t\t// replace text in a more efficient way\n\t\t\t\tstringText = stringText.split(token).join(valueReplace);\n\t\t\t\t//stringText = stringText.replace(token, valueReplace);\n\t\t\t}\n\t\t}\n\t\treturn stringText;\n\t}\n\n\tgetListTokensByStringSegmentation(stringText: string): any[] {\n\t\tconst arrayToken = stringText.match(/\\${([^}]+)\\}/g);\n\t\tconst arrayTokenFormattedDate = stringText.match(/\\#date[^)]+\\)/g);\n\t\tconst arrayTokenFormattedNumber = stringText.match(/\\#number[^)]+\\)/g);\n\t\tlet arrayTokenFormatted = [];\n\t\tif (\n\t\t\tarrayTokenFormattedDate &&\n\t\t\tarrayTokenFormattedDate.length > 0 &&\n\t\t\tarrayTokenFormattedNumber &&\n\t\t\tarrayTokenFormattedNumber.length > 0\n\t\t) {\n\t\t\tarrayTokenFormatted = arrayTokenFormattedDate.concat(arrayTokenFormattedNumber);\n\t\t} else if (arrayTokenFormattedDate && arrayTokenFormattedDate.length > 0) {\n\t\t\tarrayTokenFormatted = arrayTokenFormattedDate.slice();\n\t\t} else if (arrayTokenFormattedNumber && arrayTokenFormattedNumber.length > 0) {\n\t\t\tarrayTokenFormatted = arrayTokenFormattedNumber.slice();\n\t\t}\n\t\tconst result: any[] = [];\n\n\t\tif (arrayToken) {\n\t\t\tfor (const token of arrayToken) {\n\t\t\t\tconst infoToken = { key: token, value: token };\n\t\t\t\tif (arrayTokenFormatted) {\n\t\t\t\t\tfor (const tokenFormatted of arrayTokenFormatted) {\n\t\t\t\t\t\tconst index = tokenFormatted.indexOf(token);\n\t\t\t\t\t\tif (index >= 0) {\n\t\t\t\t\t\t\tinfoToken.value = tokenFormatted;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tresult.push(infoToken);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tchangeIdPropertiesOfObject(normalizationColumns: any[], listData: any[]): any[] {\n\t\tconst newData = [];\n\t\tlistData.forEach((data) => {\n\t\t\tconst objData = {};\n\t\t\tObject.keys(data).forEach((property) => {\n\t\t\t\tif (data.hasOwnProperty(property)) {\n\t\t\t\t\tnormalizationColumns.forEach((column) => {\n\t\t\t\t\t\tif (column.idColumn.toString() === property) {\n\t\t\t\t\t\t\tobjData[column.key] = data[property];\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (objData) {\n\t\t\t\tnewData.push(objData);\n\t\t\t}\n\t\t});\n\t\treturn newData;\n\t}\n\n\tgenerateHtmlByTokensAndData(html: string, listData: any[], listTokens: any[]): string[] {\n\t\tconst translatedCards: any[] = [];\n\t\tlistData.forEach((data) => {\n\t\t\tconst objToken = {};\n\t\t\tconst htmlTranslated = { html: html };\n\t\t\tObject.keys(data).forEach((property) => {\n\t\t\t\tlistTokens.forEach((token) => {\n\t\t\t\t\tif (property == token.key.replace('${', '').replace('}', '')) {\n\t\t\t\t\t\tobjToken[token.key] = data[property];\n\t\t\t\t\t\thtmlTranslated.html = htmlTranslated.html.replace(\n\t\t\t\t\t\t\ttoken.key,\n\t\t\t\t\t\t\tdata[property]\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t\ttranslatedCards.push(htmlTranslated);\n\t\t});\n\t\treturn translatedCards;\n\t}\n\n\tgetListTokensByString(stringText: string): any[] {\n\t\tvar arrayToken = stringText.match(/\\${([^}]+)\\}/g);\n\t\tvar arrayTokenFormattedDate = stringText.match(/\\#date[^)]+\\)/g);\n\t\tvar arrayTokenFormattedNumber = stringText.match(/\\#number[^)]+\\)/g);\n\t\tvar arrayTokenFormatted = [];\n\t\tif (\n\t\t\tarrayTokenFormattedDate &&\n\t\t\tarrayTokenFormattedDate.length > 0 &&\n\t\t\tarrayTokenFormattedNumber &&\n\t\t\tarrayTokenFormattedNumber.length > 0\n\t\t) {\n\t\t\tarrayTokenFormatted = arrayTokenFormattedDate.concat(arrayTokenFormattedNumber);\n\t\t} else if (arrayTokenFormattedDate && arrayTokenFormattedDate.length > 0) {\n\t\t\tarrayTokenFormatted = arrayTokenFormattedDate.slice();\n\t\t} else if (arrayTokenFormattedNumber && arrayTokenFormattedNumber.length > 0) {\n\t\t\tarrayTokenFormatted = arrayTokenFormattedNumber.slice();\n\t\t}\n\t\tvar result: any[] = [];\n\n\t\tif (arrayToken) {\n\t\t\tfor (const token of arrayToken) {\n\t\t\t\tlet keyType: number = TokenService.getKeyType(token);\n\t\t\t\tif (keyType === null) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tvar infoToken = { key: token, value: token };\n\t\t\t\tif (arrayTokenFormatted) {\n\t\t\t\t\tfor (const tokenFormatted of arrayTokenFormatted) {\n\t\t\t\t\t\tvar index = tokenFormatted.indexOf(token);\n\t\t\t\t\t\tif (index >= 0) {\n\t\t\t\t\t\t\tinfoToken.value = tokenFormatted;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tresult.push(infoToken);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\n\t\t// let tokens: any[] = [];\n\t\t// let i = this.nextValidPositionTokens(stringText, 0);\n\t\t// let count = 0;\n\t\t// while (i >= 0 && count <= 10) {\n\t\t//   let infoToken: {} = null;\n\t\t//   let nextI: number = i;\n\t\t//   let character = stringText.substring(i, (i + 1));\n\t\t//   if (character == \"$\") {\n\t\t//     let nextCharacter = stringText.substring((i + 1), (i + 2));\n\t\t//     // The next character need to be a { sign\n\t\t//     if (nextCharacter != \"{\") {\n\t\t//       i = this.nextValidPositionTokens(stringText, nextI + 1);\n\t\t//       continue;\n\t\t//     }\n\t\t//     let keyToken: string = stringText.substring(i, stringText.indexOf(\"}\", i) + 1);\n\t\t//     // If the token have a valid key type\n\t\t//     let keyType: number = TokenService.getKeyType(keyToken.replace(\"{\", \"\").replace(\"}\", \"\"));\n\t\t//     if (keyType === null) {\n\t\t//       i = this.nextValidPositionTokens(stringText, nextI + 1);\n\t\t//       continue;\n\t\t//     }\n\t\t//     infoToken = {\n\t\t//       key: keyToken,\n\t\t//       value: keyToken\n\t\t//     };\n\t\t//     nextI = stringText.indexOf(\"}\", i);\n\t\t//   } else {\n\t\t//     let nextSign: number = stringText.indexOf(\"$\", i);\n\t\t//     // We inly support #date($ and #number($ in this 2 scenarios the lenght can't be more than 10 characters\n\t\t//     if (nextSign < 0 || (nextSign - i) > 10) {\n\t\t//       i = this.nextValidPositionTokens(stringText, nextI + 1);\n\t\t//       continue;\n\t\t//     }\n\t\t//     let keyToken: string = stringText.substring(stringText.indexOf(\"$\", i), stringText.indexOf(\"}\", i) + 1);\n\t\t//     let valueToken: string = stringText.substring(i, stringText.indexOf(\")\", i) + 1);\n\t\t//     infoToken = {\n\t\t//       key: keyToken,\n\t\t//       value: valueToken\n\t\t//     };\n\t\t//     nextI = stringText.indexOf(\")\", i);\n\t\t//   }\n\t\t//   tokens.push(infoToken);\n\t\t//   i = this.nextValidPositionTokens(stringText, nextI);\n\t\t//   count++;\n\t\t// }\n\t\t// return tokens;\n\t}\n\n\tnextValidPositionTokens(stringText: string, nextI: number): number {\n\t\tlet tokenDollarSign: number = stringText.indexOf('$', nextI);\n\t\tlet tokenNumSign: number = stringText.indexOf('#', nextI);\n\t\tlet i: number =\n\t\t\ttokenDollarSign < 0 && tokenNumSign >= 0\n\t\t\t\t? tokenNumSign\n\t\t\t\t: tokenNumSign < 0 && tokenDollarSign >= 0\n\t\t\t\t? tokenDollarSign\n\t\t\t\t: tokenDollarSign < tokenNumSign\n\t\t\t\t? tokenDollarSign\n\t\t\t\t: tokenNumSign;\n\t\treturn i;\n\t}\n\n\t/**\n\t * It reuses replaceTokensFromListObjectPublic but set all keys lobjecttokens as lowercase\n\t * @param tokenName\n\t * @param formula\n\t * @param lObjectTokens\n\t */\n\treplaceTokensFromListObjectPublic(\n\t\ttokenName: string,\n\t\tformula: string,\n\t\tlObjectTokens: any[]\n\t): string {\n\t\tlet lDataOrg: any[] = [];\n\t\tif (lObjectTokens) {\n\t\t\tfor (let dataForm in lObjectTokens) {\n\t\t\t\tlDataOrg[dataForm.toLowerCase()] = lObjectTokens[dataForm];\n\t\t\t}\n\t\t}\n\t\treturn this.replaceTokensFromListObject(tokenName, formula, lDataOrg);\n\t}\n\t/**\n\t * @param tokenName token name\n\t * @param formula String with the formula to execute\n\t * @param lObjectTokens List of tokens with the values to replace\n\t */\n\treplaceTokensFromListObject(tokenName: string, formula: string, lObjectTokens: any): string {\n\t\tif (!formula || formula.length == 0) {\n\t\t\tthrow {\n\t\t\t\tmessage: 'La formula del token ' + tokenName + ' esta vacía',\n\t\t\t\ttitle: 'Alerta!',\n\t\t\t\terror:\n\t\t\t\t\t'La formula del token ' + tokenName + ' esta vacía. [formula[' + formula + ']]'\n\t\t\t};\n\t\t}\n\t\tlet replacedTokens: string = formula.toString();\n\t\tif (replacedTokens.startsWith('file://')) {\n\t\t\treturn replacedTokens;\n\t\t}\n\t\t// Find the tokens in the formula\n\t\tlet tokensArray: any[] = this.getListTokensByString(replacedTokens);\n\t\tif (tokensArray.length == 0) {\n\t\t\treturn replacedTokens;\n\t\t}\n\t\t// If there any token, try to replace\n\t\tfor (let i = 0; i < tokensArray.length; i++) {\n\t\t\tlet objectToken =\n\t\t\t\tlObjectTokens[tokensArray[i].key] !== undefined\n\t\t\t\t\t? lObjectTokens[tokensArray[i].key]\n\t\t\t\t\t: null;\n\t\t\tlet clearKey;\n\t\t\tif (objectToken == null) {\n\t\t\t\tclearKey = tokensArray[i].key.replace('${', '').replace('}', '').toLowerCase();\n\t\t\t\tobjectToken =\n\t\t\t\t\tlObjectTokens[clearKey] !== undefined ? lObjectTokens[clearKey] : null;\n\n\t\t\t\tif (objectToken == null) {\n\t\t\t\t\tclearKey = tokensArray[i].key\n\t\t\t\t\t\t.replace('{', '')\n\t\t\t\t\t\t.replace('}', '')\n\t\t\t\t\t\t.split('_')[1]\n\t\t\t\t\t\t.toLowerCase();\n\t\t\t\t\tobjectToken =\n\t\t\t\t\t\tlObjectTokens[clearKey] !== undefined ? lObjectTokens[clearKey] : null;\n\t\t\t\t\tif (objectToken === null || objectToken === undefined) {\n\t\t\t\t\t\tconst arrayKey = tokensArray[i].key\n\t\t\t\t\t\t\t.replace('{', '')\n\t\t\t\t\t\t\t.replace('}', '')\n\t\t\t\t\t\t\t.split('_')[1]\n\t\t\t\t\t\t\t.split('.');\n\t\t\t\t\t\tif (arrayKey.length > 0) {\n\t\t\t\t\t\t\tlet value = lObjectTokens;\n\t\t\t\t\t\t\tfor (let index = 0; index < arrayKey.length; index++) {\n\t\t\t\t\t\t\t\tlet element = arrayKey[index];\n\t\t\t\t\t\t\t\tif (index == 0) {\n\t\t\t\t\t\t\t\t\telement = element.toLowerCase();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tvalue = value[element];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tobjectToken = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (objectToken == null) {\n\t\t\t\t// If not find the token, by default put an empty string\n\t\t\t\t/*if (TokenService.excludedToken.indexOf(clearKey) === -1) {\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t'El token ' + tokensArray[i].value + ' no fue encontrado.',\n\t\t\t\t\t\tlObjectTokens,\n\t\t\t\t\t\ttokensArray\n\t\t\t\t\t);\n\t\t\t\t}*/\n\t\t\t\tobjectToken = '';\n\t\t\t}\n\t\t\tif (objectToken != null) {\n                // let value: any = Number(objectToken)\n                // \t? objectToken\n                // \t: Array.isArray(objectToken)\n                // \t? JSON.stringify(objectToken)\n                // \t: \"'\" + objectToken + \"'\";\n                const tokenLiteral = tokensArray[i].value;\n                const pos = replacedTokens.indexOf(tokenLiteral);\n                //Mantis  11649\n                const quoteCtx = this.getQuoteContext(replacedTokens, pos);\n                const escapeForJs = (s, ctx) => {\n                    let t = String(s ?? '');\n                    t = t.replace(/\\\\/g, '\\\\\\\\'); // backslashes\n                    if (ctx === 'double')\n                        t = t.replace(/\"/g, '\\\\\"');\n                    if (ctx === 'single')\n                        t = t.replace(/'/g, \"\\\\'\");\n                    return t;\n                };\n                if (quoteCtx) {\n                    const raw = escapeForJs(objectToken, quoteCtx);\n                    replacedTokens = this.replaceToken(replacedTokens, tokenLiteral, raw);\n                }\n                else {\n                    let value;\n                    if (Number(objectToken)) {\n                        value = Number(objectToken);\n                    }\n                    else if (Array.isArray(objectToken)) {\n                        value = Array.isArray(objectToken);\n                    }\n                    else if (JSON.stringify(objectToken)) {\n                        value = objectToken.original_name\n                            ? '\"' + objectToken.original_name + '\"'\n                            : JSON.stringify(objectToken);\n                    }\n                    else {\n                        value = '\"' + objectToken + '\"';\n                    }\n                    replacedTokens = this.replaceToken(replacedTokens, tokenLiteral, value);\n                }\n                // } else {\n                //   console.error(lObjectTokens, tokensArray);\n                //   throw {\n                //     message: \"No se encontró valor para un token\",\n                //     title: \"Alerta!\",\n                //     error: \"El token \" + tokensArray[i].value + \" no fue encontrado.\"\n                //   };\n                //\n                // Si es la ultima iteracion y la formula tiene [ es porque tiene un array en el valor que resolvio el token\n                if (i == tokensArray.length - 1 && replacedTokens.includes('[')) {\n                    // Se ponen todos los operandos como elementos en un array ['expresion a', '&&', 'Expresion B']\n                    let formExpressions = replacedTokens.split(/ (\\|\\||&&) /);\n                    let lAuxformExpression = [];\n                    formExpressions.forEach((expression) => {\n                        if (expression.charAt(0) == '[') {\n                            let isTagFound = '';\n                            isTagFound = this.findTag(expression);\n                            lAuxformExpression.push(isTagFound);\n                        }\n                        else {\n                            lAuxformExpression.push(expression);\n                        }\n                    });\n                    replacedTokens = lAuxformExpression.join(' ');\n                }\n            }\n        }\n        return replacedTokens;\n\t}\n\n\tgetQuoteContext(src, idx) {\n        let inDouble = false, inSingle = false, esc = false;\n        for (let k = 0; k < idx; k++) {\n            const ch = src[k];\n            if (esc) {\n                esc = false;\n                continue;\n            }\n            if (ch === '\\\\') {\n                esc = true;\n                continue;\n            }\n            if (ch === '\"' && !inSingle)\n                inDouble = !inDouble;\n            else if (ch === \"'\" && !inDouble)\n                inSingle = !inSingle;\n        }\n        return inDouble ? 'double' : inSingle ? 'single' : null;\n    }\n\n\t/**\n\t * MEtodo que teniendo una expresion de la forma ['tag1', 'tag2']==tag3\n\t * evalua si tag3 hace parte del array si tiene el operador ==.\n\t * Si tiene el operador != examina que tag3 no haga parte del array+\n\t *\n\t * @param expression Operando que evalua tag. Es de la forma ['tag1', 'tag2']==tag3\n\t * @returns Retorna 'true' o 'false' en string que despues sera pasado a un eval()\n\t * mas adelante en el flujo\n\t */\n\tfindTag(expression: string): string {\n\t\tlet regexOperator = new RegExp('(===|==|!==|!=)');\n\t\t// Retorna el operador\n\t\tlet operator: string[] = expression.match(regexOperator);\n\t\t// Si no encuentra un operador segun el patron retorna 'false'\n\t\t// para evitar resultados inesperados\n\t\tif (operator == null) {\n\t\t\tconsole.error('No se encontro un operador permitido para la expresion');\n\t\t\treturn 'false';\n\t\t}\n\t\t// Separa la sentencia por el operador\n\t\t// La primera parte es el valor por el cual se remplaza el token que es un array en string \"['a', 'b']\"\n\t\t// El segundo es el valor con el cual se va a comparar\n\t\tlet valueToken, valueToCompare;\n\t\t[valueToken, valueToCompare] = expression.split(operator[0]);\n\t\t// Se limpia el string correspondiente al array para que los elementos queden separados por \",\"\n\t\tvalueToken = valueToken.replace(/[^a-zA-Z0-9 ,]/g, '');\n\t\t// Si no hay tags asociados al registro se devuelve 'false'\n\t\tif (!valueToken) {\n\t\t\tconsole.error('No hay tags asociados a esta aplicación');\n\t\t\treturn 'false';\n\t\t}\n\t\t// Se limpia el string correspondiente al valor por comparar\n\t\tvalueToCompare = valueToCompare.replace(/[^a-zA-Z0-9 ]/g, '');\n\t\t// El string correspondiente al array pasa a ser tipo array\n\t\tvalueToken = valueToken.split(',');\n\n\t\t// Se trata de constatar si el valor a comparar se encuetra o no dentro\n\t\t// Si el operador que se encontro == returna true si lo encuentra\n\t\tlet isTagFound: boolean = true;\n\t\tswitch (operator[0]) {\n\t\t\tcase '==':\n\t\t\t\tisTagFound = valueToken.some((tag) => tag == valueToCompare);\n\t\t\t\tbreak;\n\t\t\tcase '===':\n\t\t\t\tisTagFound = valueToken.some((tag) => tag === valueToCompare);\n\t\t\t\tbreak;\n\t\t\tcase '!==':\n\t\t\t\tisTagFound = valueToken.some((tag) => tag !== valueToCompare);\n\t\t\t\tbreak;\n\t\t\tcase '!=':\n\t\t\t\tisTagFound = valueToken.some((tag) => tag != valueToCompare);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t\texpression = isTagFound ? 'true' : 'false';\n\t\treturn expression;\n\t}\n\n\t/**\n\t * Try to eval the formula depend of the type of fields.\n\t * @param lStaticToken\n\t * @param formulaName\n\t * @param formula\n\t */\n\tvalidateFormula(lStaticToken: any, formulaName: string, formula: string): boolean {\n\t\tlet evalFormula: boolean = false;\n\t\t// To validate the formula, first organize the info to key - value array\n\t\tlet objectTokens: any[] = [];\n\t\tfor (let panel of lStaticToken) {\n\t\t\tfor (let groupToken of panel.value) {\n\t\t\t\tfor (let staticToken of groupToken.value) {\n\t\t\t\t\tfor (let arrayTokenInfo of staticToken) {\n\t\t\t\t\t\tobjectTokens[arrayTokenInfo.key] = arrayTokenInfo.object\n\t\t\t\t\t\t\t? arrayTokenInfo.object.type == 'number'\n\t\t\t\t\t\t\t\t? '0'\n\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t: '';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\ttry {\n\t\t\tformula = this.replaceTokensFromListObject(formulaName, formula, objectTokens);\n\t\t} catch (error) {\n\t\t\t//console.error(error);\n\t\t\tthrow error;\n\t\t}\n\t\tif (formula !== null) {\n\t\t\ttry {\n\t\t\t\tlet result = formula.startsWith('file://') ? formula : eval(formula);\n\t\t\t\tevalFormula = true;\n\t\t\t} catch (e) {\n\t\t\t\t//console.error(\"Error evaluating the formula\", e);\n\t\t\t\tthrow {\n\t\t\t\t\tmessage: 'La formula no fue posible evaluar',\n\t\t\t\t\ttitle: 'Alerta!',\n\t\t\t\t\terror: e\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\treturn evalFormula;\n\t}\n\n\tgetConfigCloningTokenMap(oldPPP: number, newPPP: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'token/getConfigCloningTokenMap',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('oldPPP', oldPPP.toString())\n\t\t\t\t\t.set('newPPP', newPPP.toString())\n\t\t\t}\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { Observable, BehaviorSubject } from 'rxjs';\n\nimport {\n\tPliPatrocinador,\n\tPliPrograma,\n\tPliPromocion,\n\tPliCnfConfiguracion,\n\tJwtUtil,\n\tNumberUtil,\n\tAuthenticationUtil,\n\tPppRequest\n} from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PppService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\t/** It contains the key of the json web token */\n\tstatic TOKEN_PPP = 'tokenPpp';\n\n\t/** This observable allows to verify if ppp is created */\n\tprivate subjectPpp = new BehaviorSubject<number>(undefined);\n\n\t/** This observable allows to verify if list ppp is generated */\n\tprivate subjectListPpp = new BehaviorSubject<Array<any>>(undefined);\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/**  It has an observable to notify if the ppp is changed */\n\tonChangePpp(): Observable<number> {\n\t\treturn this.subjectPpp.asObservable();\n\t}\n\n\t/** It sets the new ppp */\n\tsetPpp(ppp: number) {\n\t\tif (ppp) {\n\t\t\tif (typeof ppp === 'string') {\n\t\t\t\tif (NumberUtil.isNumber(ppp)) {\n\t\t\t\t\tppp = parseInt(ppp);\n\t\t\t\t} else {\n\t\t\t\t\tppp = 0;\n\t\t\t\t}\n\t\t\t} else if (typeof ppp !== 'number') {\n\t\t\t\tppp = 0;\n\t\t\t}\n\t\t}\n\t\tthis.subjectPpp.next(ppp);\n\t}\n\n\t/** It returns a list of patrocinador */\n\tgetListPatrocinador() {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.plis + 'config/patrocinador/getAll'\n\t\t);\n\t}\n\n\t/** It returns a patrocinador by id */\n\tgetPatrocinadorById(id: number) {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.plis + 'config/patrocinador/getById',\n\t\t\t{ params: new HttpParams().set('patCodigo', id.toString()) }\n\t\t);\n\t}\n\n\t/** It saves a patrocinador */\n\tsavePatrocinador(oldPatrocinador: PliPatrocinador, patrocinador: PliPatrocinador) {\n\t\t//pliUsuario: {usuLogin : AuthenticationUtil.getUsername()};\n\t\tlet object = {\n\t\t\tpliPatrocinadorBefore: oldPatrocinador,\n\t\t\tpliPatrocinador: patrocinador,\n\t\t\tpliUsuario: { usuLogin: AuthenticationUtil.getUsername() }\n\t\t};\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.plis + 'config/patrocinador/save',\n\t\t\tobject,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It returns the list of tipo patrocinador */\n\tgetListTipoPatrocinador() {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.plis + 'config/tipo-patrocinador/getAll'\n\t\t);\n\t}\n\n\t/** It returns the list of tipo programa */\n\tgetListTipoPrograma() {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.plis + 'config/tipo-programa/getAll'\n\t\t);\n\t}\n\n\t/** It returns the list of paises */\n\tgetPaises() {\n\t\treturn this.httpClient.get(this.environment.host.backend.plis + 'pais/getAll');\n\t}\n\n\t/** It returns the list of programas by patrocinador id */\n\tgetListProgramasBypatCodigo(patCodigo: number) {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.plis + 'config/programa/getAllByPatrocinador',\n\t\t\t{ params: new HttpParams().set('patCodigo', patCodigo.toString()) }\n\t\t);\n\t}\n\n\t/** It returns programa by id */\n\tgetProgramaById(id: number) {\n\t\treturn this.httpClient.get(this.environment.host.backend.plis + 'config/programa/getById', {\n\t\t\tparams: new HttpParams().set('progCodigo', id.toString())\n\t\t});\n\t}\n\n\t/** It saves a programa */\n\tsavePrograma(oldPrograma: PliPrograma, programa: PliPrograma) {\n\t\tlet object = {\n\t\t\tpliProgramaBefore: oldPrograma,\n\t\t\tpliPrograma: programa,\n\t\t\tpliUsuario: { usuLogin: AuthenticationUtil.getUsername() }\n\t\t};\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.plis + 'config/programa/save',\n\t\t\tobject,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It returns the list of programas by programa id */\n\tgetListPromocionesByprogCodigo(progCodigo: number) {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.plis + 'config/promocion/getAllByPrograma',\n\t\t\t{ params: new HttpParams().set('progCodigo', progCodigo.toString()) }\n\t\t);\n\t}\n\n\t/** It returns the list of programas by patrocinador id */\n\tgetListPromocionesBypatCodigo(patCodigo: number) {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.plis + 'config/promocion/getAllByPatrocinador',\n\t\t\t{ params: new HttpParams().set('patCodigo', patCodigo.toString()) }\n\t\t);\n\t}\n\n\t/** It returns the list of programas by patrocinador id and without configuracion */\n\tgetListPromocionesBypatCodigoWithoutConfiguracion(patCodigo: number) {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.plis +\n\t\t\t\t'config/promocion/getByPatrocinador/withoutConfiguracion',\n\t\t\t{ params: new HttpParams().set('patCodigo', patCodigo.toString()) }\n\t\t);\n\t}\n\n\t/** It returns promocion by id */\n\tgetPromocionById(id: number) {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.plis + 'config/promocion/getById',\n\t\t\t{ params: new HttpParams().set('promCodigo', id.toString()) }\n\t\t);\n\t}\n\n\t/** It saves a promocion */\n\tsavePromocion(oldPromocion: PliPromocion, promocion: PliPromocion) {\n\t\tlet object = {\n\t\t\tpliPromocionBefore: oldPromocion,\n\t\t\tpliPromocion: promocion,\n\t\t\tpliUsuario: { usuLogin: AuthenticationUtil.getUsername() }\n\t\t};\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.plis + 'config/promocion/save',\n\t\t\tobject,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It returns a list of pliCnfConfiguracion by patCodigo */\n\tgetConfiguracionBypatCodigo(patCodigo: number, cargarListas: boolean) {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.plis + 'config/configuracion/getAllByPatrocinador',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('patCodigo', patCodigo.toString())\n\t\t\t\t\t.set('cargarListas', cargarListas.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It returns configuracion by id */\n\tgetConfiguracionById(id: number, cargarListas: boolean) {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.plis + 'config/configuracion/getById',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('cconCodigo', id.toString())\n\t\t\t\t\t.set('cargarListas', cargarListas.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It saves a configuracion */\n\tsaveConfiguracion(oldConfiguracion: PliCnfConfiguracion, configuracion: PliCnfConfiguracion) {\n\t\tlet object = {\n\t\t\tpliCnfConfiguracionBefore: oldConfiguracion,\n\t\t\tpliCnfConfiguracion: configuracion,\n\t\t\tpliUsuario: { usuLogin: AuthenticationUtil.getUsername() }\n\t\t};\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.plis + 'config/configuracion/save',\n\t\t\tobject,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It updates de code of configuracion to a list of codes of promocion */\n\tupdateConfiguracionPliPromocion(cconCodigo: number, listaPromCodigo: Array<number>) {\n\t\tlet object = {\n\t\t\tcconCodigo: cconCodigo,\n\t\t\tlistaPromCodigo: listaPromCodigo\n\t\t};\n\t\treturn this.httpClient.put(\n\t\t\tthis.environment.host.backend.plis + 'config/promocion/updateConfigurationMassive',\n\t\t\tobject,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It has an observable to notify if the list ppp is generated*/\n\tgetListPpp(): Observable<Array<any>> {\n\t\tsetTimeout(() => {\n\t\t\tthis.generate();\n\t\t}, 300);\n\t\treturn this.subjectListPpp.asObservable();\n\t}\n\n\t/** It returns a list of available pliPromocion by patCodigo */\n\tgetAvailablePromocion(patCodigo: number) {\n\t\tif (!patCodigo) {\n\t\t\tpatCodigo = 0;\n\t\t}\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.plis + 'config/promocion/getAvailableByPatCodigo',\n\t\t\t{ params: new HttpParams().set('patCodigo', patCodigo.toString()) }\n\t\t);\n\t}\n\n\t/** It returns a list of pliPromocion */\n\tgetAll() {\n\t\treturn this.httpClient.get(this.environment.host.backend.plis + 'config/promocion/getAll');\n\t}\n\n\t/** it returns list of patrocinador depends of token info*/\n\tgetlPatrocinadorByToken(): PliPatrocinador[] {\n\t\tlet tokenPpp = localStorage.getItem(PppService.TOKEN_PPP);\n\t\tif (tokenPpp && tokenPpp.length) {\n\t\t\tconst ppp = JwtUtil.parseJwt(tokenPpp);\n\t\t\tif (ppp && ppp.ppp) {\n\t\t\t\tlet lPliPatrocinador = Array<PliPatrocinador>();\n\t\t\t\tfor (let pat of ppp.ppp) {\n\t\t\t\t\tlet pliPat = new PliPatrocinador();\n\t\t\t\t\tpliPat.patCodigo = pat.patCodigo;\n\t\t\t\t\tpliPat.patNombre = pat.patNombre;\n\t\t\t\t\tpliPat.patNombreCorto = pat.patNombreCorto;\n\t\t\t\t\tif (pat.listaPliPrograma && pat.listaPliPrograma.length > 0) {\n\t\t\t\t\t\tpliPat.lPliPrograma = Array<PliPrograma>();\n\t\t\t\t\t\tfor (let prog of pat.listaPliPrograma) {\n\t\t\t\t\t\t\tlet pliProg = new PliPrograma();\n\t\t\t\t\t\t\tpliProg.progCodigo = prog.progCodigo;\n\t\t\t\t\t\t\tpliProg.progNombre = prog.progNombre;\n\t\t\t\t\t\t\tpliProg.progNombreCorto = prog.progNombreCorto;\n\t\t\t\t\t\t\tif (prog.listaPliPromocion && prog.listaPliPromocion.length > 0) {\n\t\t\t\t\t\t\t\tpliProg.lPliPromocion = Array<PliPromocion>();\n\t\t\t\t\t\t\t\tfor (let prom of prog.listaPliPromocion) {\n\t\t\t\t\t\t\t\t\tlet pliProm = new PliPromocion();\n\t\t\t\t\t\t\t\t\tpliProm.promCodigo = prom.promCodigo;\n\t\t\t\t\t\t\t\t\tpliProm.promNombre = prom.promNombre;\n\t\t\t\t\t\t\t\t\tpliProm.promNombreCorto = prom.promNombreCorto;\n\t\t\t\t\t\t\t\t\tpliProm.promFechaCreacion = prom.promFechaCreacion;\n\t\t\t\t\t\t\t\t\tpliProg.lPliPromocion.push(pliProm);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tpliPat.lPliPrograma.push(pliProg);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tlPliPatrocinador.push(pliPat);\n\t\t\t\t}\n\t\t\t\treturn lPliPatrocinador;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tgetAllPromociones(): PliPromocion[] {\n\t\tlet lPromociones: PliPromocion[] = [];\n\t\tlet tokenPpp = localStorage.getItem(PppService.TOKEN_PPP);\n\t\tif (tokenPpp && tokenPpp.length) {\n\t\t\tconst ppp = JwtUtil.parseJwt(tokenPpp);\n\t\t\tif (ppp && ppp.ppp) {\n\t\t\t\tfor (let pat of ppp.ppp) {\n\t\t\t\t\tlet pliPat = new PliPatrocinador();\n\t\t\t\t\tpliPat.patCodigo = pat.patCodigo;\n\t\t\t\t\tpliPat.patNombre = pat.patNombre;\n\t\t\t\t\tpliPat.patNombreCorto = pat.patNombreCorto;\n\t\t\t\t\tif (pat.listaPliPrograma && pat.listaPliPrograma.length > 0) {\n\t\t\t\t\t\tpliPat.lPliPrograma = Array<PliPrograma>();\n\t\t\t\t\t\tfor (let prog of pat.listaPliPrograma) {\n\t\t\t\t\t\t\tlet pliProg = new PliPrograma();\n\t\t\t\t\t\t\tpliProg.progCodigo = prog.progCodigo;\n\t\t\t\t\t\t\tpliProg.progNombre = prog.progNombre;\n\t\t\t\t\t\t\tpliProg.progNombreCorto = prog.progNombreCorto;\n\t\t\t\t\t\t\tif (prog.listaPliPromocion && prog.listaPliPromocion.length > 0) {\n\t\t\t\t\t\t\t\tpliProg.lPliPromocion = Array<PliPromocion>();\n\t\t\t\t\t\t\t\tfor (let prom of prog.listaPliPromocion) {\n\t\t\t\t\t\t\t\t\tlet pliProm = new PliPromocion();\n\t\t\t\t\t\t\t\t\tpliProm.promCodigo = prom.promCodigo;\n\t\t\t\t\t\t\t\t\tpliProm.promNombre = prom.promNombre;\n\t\t\t\t\t\t\t\t\tpliProm.promNombreCorto = prom.promNombreCorto;\n\t\t\t\t\t\t\t\t\tpliProm.promFechaCreacion = prom.promFechaCreacion;\n\t\t\t\t\t\t\t\t\tlPromociones.push(pliProm);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn lPromociones;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\t/** it returns the patcodigo by promCodigo */\n\tgetPatCodigoByPromCodigo(promCodigo): number {\n\t\tlet tokenPpp = localStorage.getItem(PppService.TOKEN_PPP);\n\t\tif (tokenPpp && tokenPpp.length) {\n\t\t\tconst ppp = JwtUtil.parseJwt(tokenPpp);\n\t\t\tif (ppp && ppp.ppp)\n\t\t\t\tfor (const patrocinador of ppp.ppp)\n\t\t\t\t\tfor (const programa of patrocinador.listaPliPrograma)\n\t\t\t\t\t\tfor (const promocion of programa.listaPliPromocion)\n\t\t\t\t\t\t\tif (promocion.promCodigo == promCodigo) return patrocinador.patCodigo;\n\t\t\treturn undefined;\n\t\t}\n\t}\n\n\t/** it returns the patcodigo by promCodigo */\n\tgetProgCodigoByPromCodigo(promCodigo): number {\n\t\tlet tokenPpp = localStorage.getItem(PppService.TOKEN_PPP);\n\t\tif (tokenPpp && tokenPpp.length) {\n\t\t\tconst ppp = JwtUtil.parseJwt(tokenPpp);\n\t\t\tif (ppp && ppp.ppp)\n\t\t\t\tfor (const patrocinador of ppp.ppp)\n\t\t\t\t\tfor (const programa of patrocinador.listaPliPrograma)\n\t\t\t\t\t\tfor (const promocion of programa.listaPliPromocion)\n\t\t\t\t\t\t\tif (promocion.promCodigo == promCodigo) return programa.progCodigo;\n\t\t\treturn undefined;\n\t\t}\n\t}\n\t/** It generated a light list of ppp */\n\tprivate generate() {\n\t\t// 1. it verifies tokenPpp\n\t\tlet tokenPpp = localStorage.getItem(PppService.TOKEN_PPP);\n\t\tif (tokenPpp && tokenPpp.length) {\n\t\t\tconst ppp = JwtUtil.parseJwt(tokenPpp);\n\t\t\tif (ppp && ppp.ppp) this.subjectListPpp.next(ppp.ppp);\n\t\t} else {\n\t\t\t// 2. it retrieves the list ppp\n\t\t\tlet authorities = AuthenticationUtil.getAuthorities();\n\t\t\tif (authorities && authorities.length > 0) {\n\t\t\t\tlet listPatCodigo = [];\n\t\t\t\tfor (const authority of authorities) listPatCodigo.push(authority.patCodigo);\n\n\t\t\t\tif (listPatCodigo)\n\t\t\t\t\tthis.httpClient\n\t\t\t\t\t\t.get(\n\t\t\t\t\t\t\tthis.environment.host.backend.plis +\n\t\t\t\t\t\t\t\t'config/patrocinador/getLightByListPatrocinador',\n\t\t\t\t\t\t\t{ params: new HttpParams().set('patCodigos', listPatCodigo.toString()) }\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.subscribe(\n\t\t\t\t\t\t\t(result: any) => {\n\t\t\t\t\t\t\t\tif (result && result.tokenPpp) {\n\t\t\t\t\t\t\t\t\tlocalStorage.setItem(PppService.TOKEN_PPP, result.tokenPpp);\n\t\t\t\t\t\t\t\t\tthis.generate();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tthis.subjectListPpp.next([]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t(error) => {\n\t\t\t\t\t\t\t\tconsole.error('ERROR consulting ppp', error);\n\t\t\t\t\t\t\t\tthis.subjectListPpp.next([]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\t/** it returns the PPP from the token */\n\tgetPPPInfoFromToken(): PliPatrocinador[] {\n\t\tlet tokenPpp = localStorage.getItem(PppService.TOKEN_PPP);\n\t\tconst lPliPatrocinador: PliPatrocinador[] = [];\n\t\tif (tokenPpp && tokenPpp.length) {\n\t\t\tconst ppp = JwtUtil.parseJwt(tokenPpp);\n\t\t\tif (ppp && ppp.ppp)\n\t\t\t\tfor (const patrocinador of ppp.ppp) {\n\t\t\t\t\tconst pliPatrocinador = new PliPatrocinador();\n\t\t\t\t\tconst lPliPrograma: PliPrograma[] = [];\n\t\t\t\t\tfor (const programa of patrocinador.listaPliPrograma) {\n\t\t\t\t\t\tconst pliPrograma = new PliPrograma();\n\t\t\t\t\t\tpliPrograma.progCodigo = programa.progCodigo;\n\t\t\t\t\t\tpliPrograma.progNombreCorto = programa.progNombreCorto;\n\t\t\t\t\t\tpliPrograma.progNombre = programa.progNombre;\n\t\t\t\t\t\tconst lPliPromocion: PliPromocion[] = [];\n\t\t\t\t\t\tfor (const promocion of programa.listaPliPromocion) {\n\t\t\t\t\t\t\tconst pliPromocion = new PliPromocion();\n\t\t\t\t\t\t\tpliPromocion.promCodigo = promocion.promCodigo;\n\t\t\t\t\t\t\tpliPromocion.promNombreCorto = promocion.promNombreCorto;\n\t\t\t\t\t\t\tpliPromocion.promNombre = promocion.promNombre;\n\t\t\t\t\t\t\tpliPromocion.promAnio = promocion.promAnio;\n\t\t\t\t\t\t\tlPliPromocion.push(pliPromocion);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpliPrograma.lPliPromocion = lPliPromocion;\n\t\t\t\t\t\tlPliPrograma.push(pliPrograma);\n\t\t\t\t\t}\n\t\t\t\t\tpliPatrocinador.lPliPrograma = lPliPrograma;\n\t\t\t\t\tlPliPatrocinador.push(pliPatrocinador);\n\t\t\t\t}\n\t\t}\n\t\treturn lPliPatrocinador;\n\t}\n\n\tpppRollback(pppRequest: PppRequest) {\n\t\t\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pppRollback',\n\t\t\tpppRequest,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tdeleteBudgetByProm(promCodigo: number) {\n\t\tlet object = {\n\t\t\tpromCodigo: promCodigo\n\t\t};\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.plis + 'config/promocion/deleteBudgetByProm',\n\t\t\tobject,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class HashService {\n\n  constructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n  /**\n   * Create the hash with idPatrocinador, idPlataforma and the idPatrocinadorPLIC optional param\n   * @param idPatrocinador \n   * @param idPlataforma \n   * @param idPatrocinadorPLIC \n   * @returns generated hash\n   */\n\tgetHash(idPatrocinador: string, idPlataforma: string, idPatrocinadorPLIC?: string): Observable<any> {\n    const params = new HttpParams()\n      .set('idPatrocinador', idPatrocinador)\n      .set('idPlataforma', idPlataforma)\n      .set('idPatrocinadorPLIC', idPatrocinadorPLIC);\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}hash`,\n\t\t\t{ params }\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { HEADER_JSON, AuthenticationUtil, User } from 'ng-pli-util';\nimport { HashService } from './hash.service';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class AuthenticationService {\n\t/** This observable allows to verify if the user is authenticated */\n\tprivate isLoginSubject = new BehaviorSubject<boolean>(AuthenticationUtil.hasToken());\n\n\tconstructor(\n\t\t@Inject('environment') private environment: any,\n\t\tprivate httpClient: HttpClient,\n\t\tprivate hashService: HashService) {}\n\n\t/**\n\t * It allows to login with the app with username and password\n\t * @param user It\n\t */\n\tlogin(user: any) {\n\t\tlocalStorage.clear();\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'sesion/getByLoginAndSesion',\n\t\t\tuser,\n\t\t\tHEADER_JSON\n\t\t);\n\t}\n\n\t/*_login(user: any) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'sesion/getByLoginAndSesion',\n\t\t\tuser,\n\t\t\tHEADER_JSON\n\t\t);\n\t}*/\n\n\tgetUserByLogin(user: any) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'sesion/getByLogin',\n\t\t\tuser,\n\t\t\tHEADER_JSON\n\t\t);\n\t}\n\n\t/** It returns the session info */\n\tgetTokenByLogin(login: string): Observable<any> {\n\t\treturn this.httpClient.get(this.environment.host.backend.plis + 'login/getSession', {\n\t\t\tparams: new HttpParams().set('login', login)\n\t\t});\n\t}\n\n\t/**\n\t * It allows to logout\n\t */\n\tlogout(redirectURL?: string) {\n\t\tthis.removeTokens();\n\t\twindow.location.href = redirectURL ? redirectURL : this.environment.host.frontend.login;\n\t}\n\n\t/**\n\t * It allows to assign a new value to the token\n\t * @param token\n\t */\n\tsetToken(token_request: string) {\n\t\tAuthenticationUtil.setToken(token_request);\n\t\tthis.isLoginSubject.next(true);\n\t}\n\n\t/** it verifies if there is token */\n\tverifyToken() {\n\t\tthis.isLoginSubject.next(AuthenticationUtil.verifyToken());\n\t}\n\n\t/**\n\t * It allows to remove the token\n\t */\n\tprivate removeTokens() {\n\t\tlocalStorage.clear();\n\t\tthis.isLoginSubject.next(false);\n\t}\n\n\t/**\n\t * It has a observable to notify if the user is authenticated\n\t */\n\tisAuthenticated(): Observable<boolean> {\n\t\treturn this.isLoginSubject.asObservable();\n\t}\n\n\tprivate getHash(\n\t\tidPatrocinador: string,\n\t\tidPlataforma: string,\n\t\tidPatrocinadorPLIC: string\n\t): Promise<string> {\n\t\tconst errorMessage = 'No se pudo generar el hash';\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis.hashService.getHash(idPatrocinador, idPlataforma, idPatrocinadorPLIC).subscribe(\n\t\t\t\t(response) => {\n\t\t\t\t\tif (response && response.hash) {\n\t\t\t\t\t\tresolve(response.hash);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treject(errorMessage);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t(error) => reject(errorMessage)\n\t\t\t);\n\t\t});\n\t}\n\n\tasync getLink(patCodigo: string) {\n\t\t//https://dev.colfuturo.org/plic/frontoffice/registro-multiaplicacion/create/74\n\t\tlet loginMultiUrl = '';\n\t\tlet registerForm = 'registro-multiaplicacion/create/' + patCodigo;\n\t\tconst loginUrl = new URL(this.environment.host.frontend.frontoffice + registerForm);\n\t\ttry {\n\t\t\tloginMultiUrl = loginUrl.href;\n\t\t} catch (error) {}\n\t\treturn loginMultiUrl;\n\t}\n\n\tasync getLinkMono(promCodigo: string) {\n\t\t// https://dev.colfuturo.org/plic/frontoffice/term/362/-1\n\t\tlet loginMultiUrl = '';\n\t\tlet termsLink = 'term/' + promCodigo + '/-1';\n\t\tconst loginUrl = new URL(this.environment.host.frontend.frontoffice + termsLink);\n\t\ttry {\n\t\t\tloginMultiUrl = loginUrl.href;\n\t\t} catch (error) {}\n\t\treturn loginMultiUrl;\n\t}\n\n\tasync getLinkOld(patCodigo: string) {\n\t\tlet logoutUrl = '';\n\t\tconst loginUrl = new URL(this.environment.host.frontend.login);\n\t\tconst idPatrocinador = loginUrl.searchParams.get('idPatrocinador');\n\t\tconst idPlataforma = loginUrl.searchParams.get('idPlataforma');\n\t\tloginUrl.searchParams.append('idPatrocinadorPLIC', patCodigo);\n\t\ttry {\n\t\t\tlet hash = await this.getHash(idPatrocinador, idPlataforma, patCodigo);\n\t\t\tloginUrl.searchParams.set('hash', hash);\n\t\t\tlogoutUrl = loginUrl.href;\n\t\t} catch (error) {}\n\t\treturn logoutUrl;\n\t}\n\n}\n","import { map, catchError } from 'rxjs/operators';\nimport { Injectable, Inject } from '@angular/core';\nimport { Subject, Observable } from 'rxjs';\n// import * as Rx from 'rxjs';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { AuthenticationService } from './authentication.service';\nimport { ToastrService } from 'ngx-toastr';\nimport {\n\tHEADER_JSON,\n\tPliCnfPresupuestoGlobal,\n\tPliCnfPresupuestoGlobalRubro,\n\tPliCnfPresupuestoAsistente,\n\tPliTipoPeriodo,\n\tPliTipoPresupuesto,\n\tPliTipoGeneracionPresupuesto,\n\tPliTipoCuentaDestino,\n\tAuthenticationUtil\n} from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class BudgetService {\n\t/** Notify when a global budget change */\n\tlGlobalBudgetChanged = new Subject<PliCnfPresupuestoGlobal[]>();\n\t/** List of global budget */\n\tprivate lGlobalBudget!: PliCnfPresupuestoGlobal[];\n\t/** Notify when a global budget by category change */\n\tlGlobalBudgetCategoryChanged = new Subject<PliCnfPresupuestoGlobalRubro[]>();\n\t/** List of global budget by category */\n\tprivate lGlobalBudgetCategory!: PliCnfPresupuestoGlobalRubro[];\n\t/** Notify when a global budget by category change */\n\tlGlobalBudgetWizardChanged = new Subject<PliCnfPresupuestoAsistente[]>();\n\t/** List of global budget by category */\n\tprivate lGlobalBudgetWizard!: PliCnfPresupuestoAsistente[];\n\n\tconstructor(\n\t\t@Inject('environment') private environment: any,\n\t\tprivate httpClient: HttpClient,\n\t\tprivate authService: AuthenticationService,\n\t\tprivate toastr: ToastrService\n\t) {}\n\n\t/** Returns a list of PliCnfPresupuestoGlobal */\n\tgetListPresupuestoGlobal(promCodigo: number) {\n\t\tthis.httpClient\n\t\t\t.get<PliCnfPresupuestoGlobal[]>(\n\t\t\t\tthis.environment.host.backend.plis + 'config/presupuesto/getAllPresupuestoGlobal',\n\t\t\t\t{\n\t\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t\t.set('cargarListas', 'false')\n\t\t\t\t}\n\t\t\t)\n\t\t\t.pipe(\n\t\t\t\tmap((lGlobalBudget: PliCnfPresupuestoGlobal[]) => {\n\t\t\t\t\tif (lGlobalBudget && lGlobalBudget.length > 0) {\n\t\t\t\t\t\tfor (var key in lGlobalBudget) {\n\t\t\t\t\t\t\tlet globalBudget: PliCnfPresupuestoGlobal = Object.assign(\n\t\t\t\t\t\t\t\tnew PliCnfPresupuestoGlobal(),\n\t\t\t\t\t\t\t\tlGlobalBudget[key]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tlGlobalBudget[key] = globalBudget.fieldsValidation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tthis.setListGlobalBudget(lGlobalBudget);\n\t\t\t\t}),\n\t\t\t\tcatchError((error) => {\n\t\t\t\t\tconsole.log('El sistema no responde', error);\n\t\t\t\t\tthrow this.toastr.error('El sistema no responde', 'Error!');\n\t\t\t\t})\n\t\t\t)\n\t\t\t.subscribe();\n\t}\n\n\t_getListPresupuestoGlobal(promCodigo: number) {\n\t\treturn this.httpClient.get<PliCnfPresupuestoGlobal[]>(\n\t\t\tthis.environment.host.backend.plis + 'config/presupuesto/getAllPresupuestoGlobal',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t.set('cargarListas', 'false')\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It saves a pliCnfPresupuestoGlobal */\n\tsavePresupuestoGlobal(\n\t\tpliCnfPresupuestoGlobalBefore: PliCnfPresupuestoGlobal,\n\t\tpliCnfPresupuestoGlobal: PliCnfPresupuestoGlobal,\n\t\tpatCodigo: number\n\t): Observable<any> {\n\t\tlet object = {\n\t\t\tpliCnfPresupuestoGlobal: pliCnfPresupuestoGlobal,\n\t\t\tpliCnfPresupuestoGlobalBefore: pliCnfPresupuestoGlobalBefore,\n\t\t\tpliUsuario: AuthenticationUtil.getPliUsuario(),\n\t\t\tpatCodigo: patCodigo\n\t\t};\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.plis + 'config/presupuesto/save',\n\t\t\tobject,\n\t\t\tHEADER_JSON\n\t\t);\n\t}\n\n\tsetListGlobalBudget(lGlobalBudget: PliCnfPresupuestoGlobal[]) {\n\t\tthis.lGlobalBudget = lGlobalBudget;\n\t\tthis.lGlobalBudgetChanged.next(lGlobalBudget.slice());\n\t}\n\n\tgetListGlobalBudget(): PliCnfPresupuestoGlobal[] {\n\t\treturn this.lGlobalBudget.slice();\n\t}\n\n\tgetListTipoPeriodo(): Observable<any> {\n\t\treturn this.httpClient.get<PliTipoPeriodo[]>(\n\t\t\tthis.environment.host.backend.plis + 'config/presupuesto/getAllTipoPeriodo'\n\t\t);\n\t}\n\n\tgetListTipoPresupuesto(): Observable<any> {\n\t\treturn this.httpClient.get<PliTipoPresupuesto[]>(\n\t\t\tthis.environment.host.backend.plis + 'config/presupuesto/getAllTipoPresupuesto'\n\t\t);\n\t}\n\n\tgetAllTipoGeneracionPresupuesto(): Observable<any> {\n\t\treturn this.httpClient.get<PliTipoGeneracionPresupuesto[]>(\n\t\t\tthis.environment.host.backend.plis +\n\t\t\t\t'config/presupuesto/getAllTipoGeneracionPresupuesto'\n\t\t);\n\t}\n\n\tgetAllTipoCuentaDestino(): Observable<any> {\n\t\treturn this.httpClient.get<PliTipoCuentaDestino[]>(\n\t\t\tthis.environment.host.backend.plis + 'config/presupuesto/getAllTipoCuentaDestino'\n\t\t);\n\t}\n\n\t/** Returns a list of PliCnfPresupuestoGlobalRubro */\n\tgetListPresupuestoGlobalCategory(cpreCodigo: number) {\n\t\tthis.httpClient\n\t\t\t.get<PliCnfPresupuestoGlobalRubro[]>(\n\t\t\t\tthis.environment.host.backend.plis + 'config/presupuesto/getAllPresupuestoRubro',\n\t\t\t\t{ params: new HttpParams().set('cpreCodigo', cpreCodigo.toString()) }\n\t\t\t)\n\t\t\t.pipe(\n\t\t\t\tmap((lGlobalBudgetCategory: PliCnfPresupuestoGlobalRubro[]) => {\n\t\t\t\t\tif (lGlobalBudgetCategory && lGlobalBudgetCategory.length > 0) {\n\t\t\t\t\t\tfor (var key in lGlobalBudgetCategory) {\n\t\t\t\t\t\t\tlet globalBudgeCategory: PliCnfPresupuestoGlobalRubro = Object.assign(\n\t\t\t\t\t\t\t\tnew PliCnfPresupuestoGlobalRubro(),\n\t\t\t\t\t\t\t\tlGlobalBudgetCategory[key]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tlGlobalBudgetCategory[key] = globalBudgeCategory.fieldsValidation();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.setListGlobalBudgetCategory(lGlobalBudgetCategory);\n\t\t\t\t\t\treturn lGlobalBudgetCategory;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tcatchError((error) => {\n\t\t\t\t\tconsole.log('El sistema no responde', error);\n\t\t\t\t\tthrow this.toastr.error('El sistema no responde', 'Error!');\n\t\t\t\t})\n\t\t\t).subscribe();\n\t}\n\n\t/** It saves a globalBudgetCategory */\n\tsavePresupuestoGlobalCategory(\n\t\tglobalBudgetCategoryBefore: PliCnfPresupuestoGlobalRubro,\n\t\tglobalBudgetCategory: PliCnfPresupuestoGlobalRubro,\n\t\tpatCodigo: number\n\t): Observable<any> {\n\t\tlet object = {\n\t\t\tpliCnfPresupuestoGlobalRubro: globalBudgetCategory,\n\t\t\tpliCnfPresupuestoGlobalRubroBefore: globalBudgetCategoryBefore,\n\t\t\tpliUsuario: AuthenticationUtil.getPliUsuario(),\n\t\t\tpatCodigo: patCodigo\n\t\t};\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.plis + 'config/presupuesto/saveByRubro',\n\t\t\tobject,\n\t\t\tHEADER_JSON\n\t\t);\n\t}\n\n\t/** It delete the globalBudgetCategory */\n\tdeletePresupuestoGlobalCategory(\n\t\tglobalBudgetCategory: PliCnfPresupuestoGlobalRubro\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.plis + 'config/presupuesto/deleteByRubro',\n\t\t\tglobalBudgetCategory,\n\t\t\tHEADER_JSON\n\t\t);\n\t}\n\n\tsetListGlobalBudgetCategory(lGlobalBudgetCategory: PliCnfPresupuestoGlobalRubro[]) {\n\t\tthis.lGlobalBudgetCategory = lGlobalBudgetCategory;\n\t\tthis.lGlobalBudgetCategoryChanged.next(lGlobalBudgetCategory);\n\t}\n\n\tgetListGlobalBudgetCategory(): PliCnfPresupuestoGlobalRubro[] {\n\t\treturn this.lGlobalBudgetCategory;\n\t}\n\n\t/** Returns a list of PliCnfPresupuestoAsistente */\n\tgetListPresupuestoGlobalWizard(cpreCodigo: number) {\n\t\tthis.httpClient\n\t\t\t.get<PliCnfPresupuestoAsistente[]>(\n\t\t\t\tthis.environment.host.backend.plis +\n\t\t\t\t\t'config/presupuesto/getAllPresupuestoAsistente',\n\t\t\t\t{ params: new HttpParams().set('cpreCodigo', cpreCodigo.toString()) }\n\t\t\t)\n\t\t\t.pipe(\n\t\t\t\tmap((lGlobalBudgetWizard: PliCnfPresupuestoAsistente[]) => {\n\t\t\t\t\tif (lGlobalBudgetWizard && lGlobalBudgetWizard.length > 0) {\n\t\t\t\t\t\tfor (var key in lGlobalBudgetWizard) {\n\t\t\t\t\t\t\tlet globalBudgeWizard: PliCnfPresupuestoAsistente = Object.assign(\n\t\t\t\t\t\t\t\tnew PliCnfPresupuestoAsistente(),\n\t\t\t\t\t\t\t\tlGlobalBudgetWizard[key]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tlGlobalBudgetWizard[key] = globalBudgeWizard.fieldsValidation();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.setListGlobalBudgetWizard(lGlobalBudgetWizard);\n\t\t\t\t\t\treturn lGlobalBudgetWizard;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tcatchError((error) => {\n\t\t\t\t\tconsole.log('El sistema no responde', error);\n\t\t\t\t\tthrow this.toastr.error('El sistema no responde', 'Error!');\n\t\t\t\t})\n\t\t\t).subscribe();\n\t}\n\n\t/** Returns a list of PliCnfPresupuestoAsistente */\n\tgetAllPresupuestoAsistente(cpreCodigo: number) {\n\t\treturn this.httpClient.get<PliCnfPresupuestoAsistente[]>(\n\t\t\tthis.environment.host.backend.plis + 'config/presupuesto/getAllPresupuestoAsistente',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('cpreCodigo', cpreCodigo.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It saves a globalBudgetWizard */\n\tsavePresupuestoGlobalWizard(\n\t\tglobalBudgetWizardBefore: PliCnfPresupuestoAsistente,\n\t\tglobalBudgetWizard: PliCnfPresupuestoAsistente,\n\t\tpatCodigo: number\n\t): Observable<any> {\n\t\tlet object = {\n\t\t\tpliCnfPresupuestoAsistente: globalBudgetWizard,\n\t\t\tpliCnfPresupuestoAsistenteBefore: globalBudgetWizardBefore,\n\t\t\tpliUsuario: AuthenticationUtil.getPliUsuario(),\n\t\t\tpatCodigo: patCodigo\n\t\t};\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.plis + 'config/presupuesto/saveAsistenteByRubro',\n\t\t\tobject,\n\t\t\tHEADER_JSON\n\t\t);\n\t}\n\n\tsetListGlobalBudgetWizard(lGlobalBudgetWizard: PliCnfPresupuestoAsistente[]) {\n\t\tthis.lGlobalBudgetWizard = lGlobalBudgetWizard;\n\t\tthis.lGlobalBudgetWizardChanged.next(lGlobalBudgetWizard);\n\t}\n\n\tgetListGlobalBudgetWizard(): PliCnfPresupuestoAsistente[] {\n\t\treturn this.lGlobalBudgetWizard;\n\t}\n\n\t/**\n\t * Validate if the category of the budget wizard is used by any beneficiary (only PLIS)\n\t */\n\tgetBudgetWizardCategoryById(cpreasiCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get<PliCnfPresupuestoAsistente>(\n\t\t\tthis.environment.host.backend.plis + 'config/presupuesto/getPresupuestoAsistenteById',\n\t\t\t{ params: new HttpParams().set('cpreasiCodigo', cpreasiCodigo.toString()) }\n\t\t);\n\t}\n\n\t/**\n\t * Validate if the category of the budget wizard is used by any beneficiary (only PLIS)\n\t */\n\tisBudgetWizardUseCategory(cpreasiCodigo: number, rubCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get<Boolean>(\n\t\t\tthis.environment.host.backend.plis + 'config/presupuesto/validarUsoRubroEnPromocion',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('cpreasiCodigo', cpreasiCodigo.toString())\n\t\t\t\t\t.set('rubCodigo', rubCodigo.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tupdateAsistenteOrden(\n\t\tlPliCnfPresupuestoAsistente: PliCnfPresupuestoAsistente[]\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.plis + 'config/presupuesto/updateAsistenteOrden',\n\t\t\tlPliCnfPresupuestoAsistente,\n\t\t\tHEADER_JSON\n\t\t);\n\t}\n\t/**Returns PliCnfPresupuestoGlobalRubro */\n\t_getListPresupuestoGlobalCategory(cpreCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get<PliCnfPresupuestoGlobalRubro[]>(\n\t\t\tthis.environment.host.backend.plis + 'config/presupuesto/getAllPresupuestoRubro',\n\t\t\t{ params: new HttpParams().set('cpreCodigo', cpreCodigo.toString()) }\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliCnfCommittee, PliCnfSnapshotToken } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfSnapshotTokenServices {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tpublic getAllByPromCode(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}snapshot-token/getByPromCodigo?promCodigo=${promCodigo}`\n\t\t);\n\t}\n\n\tpublic getAllType(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}snapshot-token/getAllType`\n\t\t);\n\t}\n\n\tpublic save(pliCnfSnapshotToken: PliCnfSnapshotToken): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'snapshot-token/save',\n\t\t\tpliCnfSnapshotToken\n\t\t);\n\t}\n\n\tpublic getConfigCloningTokenSnapshotMap(oldPPP: number, newPPP: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'snapshot-token/getConfigCloningTokenSnapshotMap',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('oldPPP', oldPPP.toString())\n\t\t\t\t\t.set('newPPP', newPPP.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic delete(id: number): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\t`${this.environment.host.backend.configuration}snapshot-token/delete?id=${id}`\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { AuthenticationService } from './authentication.service';\nimport { Observable } from 'rxjs';\nimport { ConfigurationDocument, JwtUtil, TipoDocumental, UtilString } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class ConfigurationDocumentService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\t/** */\n\tstatic STATIC_TOKEN_DOCUMENTARY_KEY_ESPACIO: string = 'espacio';\n\t/** */\n\tstatic STATIC_TOKEN_DOCUMENTARY_KEY_ESPACIO_1: string = 'espacio1';\n\t/** */\n\tstatic STATIC_TOKEN_DOCUMENTARY_KEY_ESPACIO_2: string = 'espacio2';\n\t/** */\n\tstatic STATIC_TOKEN_DOCUMENTARY_KEY_ESPACIO_3: string = 'espacio3';\n\t/** */\n\tstatic STATIC_TOKEN_DOCUMENTARY_KEY_ESPACIO_4: string = 'espacio4';\n\t/** */\n\tstatic STATIC_TOKEN_DOCUMENTARY_KEY_PROGRAMA_ORIGEN: string = 'PCBProgramaOrigen';\n\t/** */\n\tstatic STATIC_TOKEN_DOCUMENTARY_KEY_TIPO_DOCUMENTAL: string = 'tipoDocumental';\n\t/** */\n\tstatic STATIC_TOKEN_DOCUMENTARY_KEY_NOMBRES_APELLIDOS: string = 'nombresApellidos';\n\t/** */\n\tstatic STATIC_TOKEN_DOCUMENTARY_KEY_NUMERO_DOCUMENTO: string = 'numeroDocumento';\n\t/** */\n\tstatic STATIC_TOKEN_DOCUMENTARY_KEY_ANO_PROMOCION: string = 'anoPromocion';\n\t/** */\n\tstatic STATIC_TOKEN_DOCUMENTARY_KEY_PROMOCION: string = 'promocion';\n\t/** */\n\tstatic STATIC_TOKEN_DOCUMENTARY_KEY_PROGRAMA: string = 'programa';\n\t/** */\n\tstatic STATIC_TOKEN_DOCUMENTARY_KEY_PATROCINADOR: string = 'patrocinador';\n\t/** */\n\tstatic STATIC_TOKEN_DOCUMENTARY_KEY_FECHA_ACTUAL: string = 'fechaActual';\n\t/** */\n\tstatic STATIC_TOKEN_DOCUMENTARY_KEY_RUTA_DOCUMENTO: string = 'rutaDocumento';\n\t/** */\n\tstatic STATIC_TOKEN_DOCUMENTARY_KEY_CONSECUTIVO: string = 'consecutivo';\n\t/** */\n\tstatic STATIC_TOKEN_DOCUMENTARY_KEY_TIPO_ARCHIVO: string = 'tipoArchivo';\n\t/** */\n\tstatic STATIC_TOKEN_DOCUMENTARY_KEY_EMAIL: string = 'email';\n\n\t/** */\n\tstatic STATIC_TOKEN_DOCUMENTARY: any[] = [\n\t\t{\n\t\t\tkey: ConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY_KEY_TIPO_DOCUMENTAL,\n\t\t\tlabel: 'Tipo documental',\n\t\t\tknowSource: true\n\t\t},\n\t\t{\n\t\t\tkey: ConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY_KEY_NOMBRES_APELLIDOS,\n\t\t\tlabel: 'Nombres apellidos',\n\t\t\tknowSource: false\n\t\t},\n\t\t{\n\t\t\tkey: ConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY_KEY_NUMERO_DOCUMENTO,\n\t\t\tlabel: 'Número documento',\n\t\t\tknowSource: false\n\t\t},\n\t\t{\n\t\t\tkey: ConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY_KEY_ESPACIO,\n\t\t\tlabel: 'Espacio 1',\n\t\t\tknowSource: true\n\t\t},\n\t\t{\n\t\t\tkey: ConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY_KEY_ANO_PROMOCION,\n\t\t\tlabel: 'Año promoción',\n\t\t\tknowSource: true\n\t\t},\n\t\t{\n\t\t\tkey: ConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY_KEY_FECHA_ACTUAL,\n\t\t\tlabel: 'Fecha actual',\n\t\t\tknowSource: true\n\t\t},\n\t\t{\n\t\t\tkey: ConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY_KEY_RUTA_DOCUMENTO,\n\t\t\tlabel: 'Ruta documento',\n\t\t\tknowSource: true\n\t\t},\n\t\t{\n\t\t\tkey: ConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY_KEY_CONSECUTIVO,\n\t\t\tlabel: 'Consecutivo',\n\t\t\tknowSource: true\n\t\t},\n\t\t{\n\t\t\tkey: ConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY_KEY_TIPO_ARCHIVO,\n\t\t\tlabel: 'Tipo archivo',\n\t\t\tknowSource: true\n\t\t},\n\t\t{\n\t\t\tkey: ConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY_KEY_EMAIL,\n\t\t\tlabel: 'Email',\n\t\t\tknowSource: false\n\t\t},\n\t\t{\n\t\t\tkey: ConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY_KEY_PROGRAMA_ORIGEN,\n\t\t\tlabel: 'Programa origen PCB',\n\t\t\tknowSource: true\n\t\t},\n\t\t{\n\t\t\tkey: ConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY_KEY_PROGRAMA,\n\t\t\tlabel: 'Programa',\n\t\t\tknowSource: true\n\t\t},\n\t\t{\n\t\t\tkey: ConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY_KEY_PATROCINADOR,\n\t\t\tlabel: 'Patrocinador',\n\t\t\tknowSource: true\n\t\t},\n\t\t{\n\t\t\tkey: ConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY_KEY_PROMOCION,\n\t\t\tlabel: 'Promoción',\n\t\t\tknowSource: true\n\t\t},\n\t\t{\n\t\t\tkey: ConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY_KEY_ESPACIO_1,\n\t\t\tlabel: 'Espacio 2',\n\t\t\tknowSource: true\n\t\t},\n\t\t{\n\t\t\tkey: ConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY_KEY_ESPACIO_2,\n\t\t\tlabel: 'Espacio 3',\n\t\t\tknowSource: true\n\t\t},\n\t\t{\n\t\t\tkey: ConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY_KEY_ESPACIO_3,\n\t\t\tlabel: 'Espacio 4',\n\t\t\tknowSource: true\n\t\t},\n\t\t{\n\t\t\tkey: ConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY_KEY_ESPACIO_4,\n\t\t\tlabel: 'Espacio 5',\n\t\t\tknowSource: true\n\t\t}\n\t];\n\n\tstatic DOCUMENT_STORAGE = 'tokenDocuments';\n\n\tconstructor(\n\t\t@Inject('environment') private environment,\n\t\tprivate httpClient: HttpClient,\n\t\tprivate authService: AuthenticationService\n\t) {}\n\n\t/** It returns the list documents by promCodigo and tgdocCodigo */\n\tgeListByPromCodigoAndTgdocCodigo(promCodigo: number, tgdocCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'configuration-document/getByPromCodigoAndTgdocCodigo',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t.set('tgdocCodigo', tgdocCodigo.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It returns the list documents by prom codigo */\n\tgetListByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'configuration-document/getByPromCodigo',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCodigo.toString()) }\n\t\t);\n\t}\n\n\t/** It returns the configuration document by id */\n\tgetById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'configuration-document/getById',\n\t\t\t{ params: new HttpParams().set('id', id.toString()) }\n\t\t);\n\t}\n\n\t/** It saves a configuration-document */\n\tsave(configurationDocument: ConfigurationDocument): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'configuration-document/save',\n\t\t\tconfigurationDocument,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tgetConfigCloningConDocumentMap(oldPPP: number, newPPP: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'configuration-document/getConfigCloningConDocumentMap',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('oldPPP', oldPPP.toString())\n\t\t\t\t\t.set('newPPP', newPPP.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It updates a configuration-document list */\n\tupdatePosition(lConfigurationDocument: ConfigurationDocument[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'configuration-document/updatePosition',\n\t\t\tlConfigurationDocument,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It returns the list documents by tdl codigo */\n\tgetByTdlCodigo(tdlCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'configuration-document/getByTdlCodigo',\n\t\t\t{ params: new HttpParams().set('tdlCodigo', tdlCodigo.toString()) }\n\t\t);\n\t}\n\n\t/** It returns the list documents by promCodigo and tdlCodigo */\n\tgetByPromCodigoAndTdlCodigo(promCodigo: number, tdlCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'configuration-document/getByPromCodigoAndTdlCodigo',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t.set('tdlCodigo', tdlCodigo.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It returns the list of tipo grupo documental */\n\tgetListTipoGrupoDocumental(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.plis + 'config/documento/getTipoGrupoDocumental'\n\t\t);\n\t}\n\n\tcreateDocumentName(\n\t\tdocumentaryType: TipoDocumental,\n\t\tidPerson: string,\n\t\tfileName: string\n\t): string {\n\t\tlet tdlNombreConc =\n\t\t\tdocumentaryType && documentaryType.tdlNombre\n\t\t\t\t? UtilString.replaceAccentSpacesOthers(documentaryType.tdlNombre)\n\t\t\t\t: null;\n\t\tlet idPersonaConc = idPerson ? UtilString.replaceAccentSpacesOthers(idPerson) : null;\n\t\tlet fileNameConc = fileName ? UtilString.replaceAccentSpacesOthers(fileName) : null;\n\t\tlet contcat = tdlNombreConc ? '_' + tdlNombreConc : '';\n\t\tcontcat += idPersonaConc ? '_' + idPersonaConc : '';\n\t\tcontcat += fileNameConc ? '_' + fileNameConc : '';\n\t\tcontcat = contcat.length > 0 ? contcat.substring(1) : '';\n\t\treturn contcat;\n\t}\n\n\t/** It returns the cnf document according to profile have been setting up */\n\tgetByPromCodigoAndProfile(promCodigo: number, patCodigo: number): Observable<any> {\n\t\tlet params = new HttpParams()\n\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t.set('patCodigo', patCodigo.toString());\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'configuration-document/getByPromCodigoAndProfile',\n\t\t\t{ params: params }\n\t\t);\n\t}\n\n\t/** It returns the cnf document according to profile have been setting up */\n\tgetDocumentProfiles(configurationDocumentId: number): Observable<any> {\n\t\tconst params = new HttpParams().set(\n\t\t\t'configurationDocumentId',\n\t\t\tconfigurationDocumentId.toString()\n\t\t);\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'configuration-document/getDocumentProfiles',\n\t\t\t{ params }\n\t\t);\n\t}\n\n\tgetDocumentsEncrypted(patCodigo: string, promCodigo: string): Promise<any> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlet documentStorage = localStorage.getItem(\n\t\t\t\tConfigurationDocumentService.DOCUMENT_STORAGE\n\t\t\t);\n\t\t\tlet mapTmp;\n\t\t\tif (documentStorage) {\n\t\t\t\tmapTmp = JSON.parse(documentStorage);\n\t\t\t\tif (mapTmp[promCodigo]) {\n\t\t\t\t\tresolve(mapTmp[promCodigo]);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.getEncryptedByPromCodigoProfile(patCodigo, promCodigo).subscribe(\n\t\t\t\t(documentsByProfile) => {\n\t\t\t\t\tif (documentsByProfile) {\n\t\t\t\t\t\tlet decrypt = JwtUtil.parseJwt(documentsByProfile['encrypt']);\n\t\t\t\t\t\tif (decrypt && decrypt.documents) {\n\t\t\t\t\t\t\tif (mapTmp) mapTmp[promCodigo] = decrypt.documents;\n\t\t\t\t\t\t\telse mapTmp = {};\n\n\t\t\t\t\t\t\tlocalStorage.setItem(\n\t\t\t\t\t\t\t\tConfigurationDocumentService.DOCUMENT_STORAGE,\n\t\t\t\t\t\t\t\tJSON.stringify(mapTmp)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tresolve(decrypt.documents);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treject('No se logro generar token de tareas por perfil');\n\t\t\t\t},\n\t\t\t\t(error) => {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t);\n\t\t});\n\t}\n\n\tpublic getEncryptedByPromCodigoProfile(patCodigo: string, promCodigo: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'configuration-document/getEncryptedByPromCodigoAndProfile',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('patCodigo', patCodigo).set('promCodigo', promCodigo)\n\t\t\t}\n\t\t);\n\t}\n\n\tsaveProfiles(lProfileDocument: any[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'configuration-document/saveProfiles',\n\t\t\tlProfileDocument\n\t\t);\n\t}\n\n\tdeleteProfileByIdAndFormId(\n\t\tprofileId: number,\n\t\tconfigurationDocumentId: number\n\t): Observable<any> {\n\t\tconst params = new HttpParams()\n\t\t\t.set('configurationDocumentId', configurationDocumentId.toString())\n\t\t\t.set('profileId', profileId.toString());\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'configuration-document/deleteProfileByIdAndFormId',\n\t\t\t{ params }\n\t\t);\n\t}\n\n\tdeleteByListId(lProfileDocument: any[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'configuration-document/deleteByListId',\n\t\t\tlProfileDocument\n\t\t);\n\t}\n\n\t/** It saves a configuration-document */\n\tsaveAll(lConfigurationDocument: ConfigurationDocument[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'configuration-document/saveAll',\n\t\t\tlConfigurationDocument,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tgetByFormAssociationFormId(formId: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'configuration-document/getByFormAssociationFormId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('formId', formId.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tgetByPromCodigoAndAutomaticValidation(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'configuration-document/getByPromCodigoAndAutomaticValidation',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('promCodigo', promCodigo.toString())\n\t\t\t}\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { JwtUtil, PliCnfEvaluationTask, PliUser } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfEvaluationTaskService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tstatic TASK_STORAGE = 'tokenTask';\n\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tpublic getByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfEvaluationTask/getByPromCodigo/${promCodigo}`\n\t\t);\n\t}\n\n\tpublic getById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfEvaluationTask/getById/${id}`\n\t\t);\n\t}\n\n\tpublic getByPromCodeAndId(promCode: number, id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfEvaluationTask/promCode/${promCode}/id/${id}`\n\t\t);\n\t}\n\n\tpublic save(pliCnfEvaluationTask: PliCnfEvaluationTask): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfEvaluationTask/save',\n\t\t\tpliCnfEvaluationTask\n\t\t);\n\t}\n\n\tpublic delete(id: number) {\n\t\treturn this.httpClient.delete(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfEvaluationTask/${id}`\n\t\t);\n\t}\n\n\t/** It returns a list of tasks according to list of prom codigo */\n\tpublic getByPromCodigoAndNoSegmentation(listPromCod: Array<number>): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfEvaluationTask/getByPromCodigoAndNoSegmentation',\n\t\t\t{ params: new HttpParams().set('listPromCodigo', listPromCod.toString()) }\n\t\t);\n\t}\n\n\tpublic getByPromCodigoAndEvaluator(promCod: number, evaluator: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfEvaluationTask/getByPromCodigoAndEvaluator',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCod.toString())\n\t\t\t\t\t.set('evaluator', evaluator)\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic getByPromCodigoAndTypeAndVisible(promCodigo: number, type: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfEvaluationTask/getByPromCodigoAndTypeAndVisible',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t.set('type', type.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/***\n\t * Unencript the information from local Storage\n\t * @author Jkatz\n\t */\n\tgetEncryptedTasks(username: string, patCodigo: string, promCodigo: string): Promise<any> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlet taskStorage = localStorage.getItem(PliCnfEvaluationTaskService.TASK_STORAGE);\n\t\t\tlet map;\n\t\t\tif (taskStorage) {\n\t\t\t\tmap = JSON.parse(taskStorage);\n\t\t\t\tif (map[promCodigo]) {\n\t\t\t\t\tresolve(map[promCodigo]);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.getByProfile(username, patCodigo, promCodigo).subscribe(\n\t\t\t\t(taskByProfile) => {\n\t\t\t\t\tif (taskByProfile) {\n\t\t\t\t\t\tlet decrypt = JwtUtil.parseJwt(taskByProfile['encrypt']);\n\t\t\t\t\t\tif (decrypt && decrypt.tasks) {\n\t\t\t\t\t\t\tif (map) map[promCodigo] = decrypt.tasks;\n\t\t\t\t\t\t\telse map = {};\n\t\t\t\t\t\t\tlocalStorage.setItem(\n\t\t\t\t\t\t\t\tPliCnfEvaluationTaskService.TASK_STORAGE,\n\t\t\t\t\t\t\t\tJSON.stringify(map)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tresolve(decrypt.tasks);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treject('No se logro generar token de tareas por perfil');\n\t\t\t\t},\n\t\t\t\t(error) => {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t);\n\t\t});\n\t}\n\n\t/**\n\t * get task by profile encrypted\n\t * @param username\n\t * @param patCodigo\n\t */\n\tpublic getByProfile(username: string, patCodigo: string, promCodigo: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfEvaluationTask/getByUserProfiles',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('username', username)\n\t\t\t\t\t.set('patCodigo', patCodigo)\n\t\t\t\t\t.set('promCodigo', promCodigo)\n\t\t\t}\n\t\t);\n\t}\n\n\t/** Saves a task array with its associated document and form records */\n\tsaveAll(pliCnfEvaluationTask: PliCnfEvaluationTask[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfEvaluationTask/saveAll',\n\t\t\tpliCnfEvaluationTask\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliCnfGuaranteeToken } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfGuaranteeTokenService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tgetAllByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfGuaranteeToken/getAllByPromCodigo',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCodigo.toString()) }\n\t\t);\n\t}\n\n\tsave(token: PliCnfGuaranteeToken): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfGuaranteeToken/save',\n\t\t\ttoken\n\t\t);\n\t}\n\n\tgetConfigCloningGuaranteeTokenMap(oldPPP: number, newPPP: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfGuaranteeToken/getConfigCloningGuaranteeTokenMap',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('oldPPP', oldPPP.toString())\n\t\t\t\t\t.set('newPPP', newPPP.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tdelete(id: number): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfGuaranteeToken/delete',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('id', id.toString())\n\t\t\t}\n\t\t);\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { Subject, Observable } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root',\n })\nexport class ConfigurationTokenSubjectService {\n\n  private subjectConfigurationToken = new Subject<any[]>();\n\n  constructor() { }\n\n  getSubjectConfigurationTokens(): Observable<any[]> {\n    return this.subjectConfigurationToken.asObservable();\n  }\n\n  setSubjectConfigurationTokens(tokens: any[]) {\n    return this.subjectConfigurationToken.next(tokens);\n  }\n  \n}\n","import {ChangeDetectorRef, Component, Input, OnInit} from '@angular/core';\nimport {PliCnfSnapshotToken, PliCnfTSnapshotTokenType, UtilString} from \"ng-pli-util\";\nimport {CommonListsComponent} from \"../../common.lists.component\";\nimport {CommonService} from \"../../../services/common.service\";\nimport {TokenService} from \"../../../services/token.service\";\nimport {UntypedFormControl, UntypedFormGroup, Validators} from \"@angular/forms\";\nimport {ToastrService} from \"ngx-toastr\";\nimport {PliCnfSnapshotTokenServices} from \"../../../services/pli-cnf-snapshot-token.service\";\n\n@Component({\n    selector: 'pli-snapshot-token',\n    templateUrl: './snapshot-token.component.html',\n    standalone: false\n})\nexport class SnapshotTokenComponent extends CommonListsComponent implements OnInit {\n\n  @Input() promCodigo: number;\n\n  showModal: boolean;\n  tokens: PliCnfSnapshotToken[];\n  types: PliCnfTSnapshotTokenType[];\n  tokenSelected: PliCnfSnapshotToken;\n  frmToken: UntypedFormGroup;\n  controlName: UntypedFormControl;\n  controlFormula: UntypedFormControl;\n  controlType: UntypedFormControl;\n\n  constructor(protected cdRef: ChangeDetectorRef,\n              protected commonService: CommonService,\n              private toastrService: ToastrService,\n              private tokenService: PliCnfSnapshotTokenServices) {\n    super(commonService, cdRef);\n  }\n\n  /** Tet the label to calculated tokens */\n  labelSnapshot(token: PliCnfSnapshotToken): string {\n    return '${' + TokenService.getKeySnapshot(token) + '}';\n  }\n\n  async ngOnInit() {\n    super.ngOnInit();\n    this.getTokens();\n    this.types = await this.tokenService.getAllType().toPromise();\n  }\n\n  initForm(tokenSelected: PliCnfSnapshotToken) {\n    this.tokenSelected =\n      tokenSelected == null\n        ? new PliCnfSnapshotToken()\n        : Object.assign(new PliCnfSnapshotToken(), JSON.parse(JSON.stringify(tokenSelected)));\n    if (!this.tokenSelected.promCodigo) {\n      this.tokenSelected.promCodigo = this.promCodigo;\n    }\n\n    this.controlName = new UntypedFormControl(this.tokenSelected.name, Validators.required);\n    this.controlFormula = new UntypedFormControl(this.tokenSelected.formula, Validators.required);\n    this.controlType = new UntypedFormControl(this.tokenSelected.type, Validators.required);\n\n    this.frmToken = new UntypedFormGroup({\n      controlName: this.controlName,\n      controlFormula: this.controlFormula,\n      controlType: this.controlType\n    });\n\n    this.showModal = true;\n  }\n\n  /** It deletes a sponsor */\n  delete(token: PliCnfSnapshotToken) {\n    if (confirm('¿Está seguro que desea eliminar el token ' + token.name + '?')) {\n      this.tokenService.delete(token.id).subscribe(\n        (result) => {\n          this.toastrService.success('El token fué eliminada exitosamente');\n          this.getTokens();\n        },\n        (error) => {\n          this.toastrService.error('Error al intentar eliminar el token');\n        }\n      );\n    }\n  }\n\n  getTokens() {\n    this.tokenService.getAllByPromCode(this.promCodigo).subscribe(\n      (lToken: PliCnfSnapshotToken[]) => {\n        this.tokens = lToken;\n      },\n      (error) => {\n        console.log('Error getTokenCalculated -getListByPromCodigo', error);\n        this.toastrService.error('Error el formulario');\n      }\n    );\n  }\n\n  resolveKeyCalculatedToken() {\n    return UtilString.replaceAccentSpacesOthers(this.tokenSelected.name);\n  }\n\n  onCloseModal() {\n    this.showModal = false;\n  }\n\n  save() {\n    if (this.isFormValid(this.frmToken) && this.isValid()) {\n      this.tokenService.save(this.tokenSelected).subscribe((tokenSave: any) => {\n          this.toastrService.success('Se ha guardado exitosamente ', 'Guardado exitoso!');\n          this.tokenSelected = null;\n          this.getTokens();\n          this.onCloseModal();\n        }, (error) => {\n          console.error(error);\n          this.toastrService.error('Error al intentar guardar el token', 'Error!');\n        }\n      );\n    }\n  }\n\n  isValid() {\n    const token = this.tokens.find(token =>\n      UtilString.replaceAccentSpacesOthers(token.name) ===\n      UtilString.replaceAccentSpacesOthers(this.tokenSelected.name) &&\n      (!this.tokenSelected.id || this.tokenSelected.id !== token.id));\n    if(token) {\n      this.toastrService.error(\n        'El token ' + token.name + ' ya existe',\n        'Alerta!'\n      );\n      return false;\n    }\n    return true;\n  }\n}\n","<h4 class=\"no-margin-top\">\n  Tokens Snapshot\n</h4>\n<p-table [value]=\"tokens\" [responsive]=\"true\">\n  <ng-template pTemplate=\"header\">\n    <tr class=\"text-align-center\">\n      <th class=\"text-align-center\" width=\"40%\">Nombre</th>\n      <th class=\"text-align-center\">Formula</th>\n      <th class=\"text-align-center\">Tipo</th>\n      <th class=\"text-align-center\">Creado</th>\n      <th class=\"text-align-center\">Modificado</th>\n      <th class=\"text-align-center\">Acciones</th>\n    </tr>\n  </ng-template>\n  <ng-template pTemplate=\"body\" let-token>\n    <tr>\n      <td>\n        <button\n          type=\"button\"\n          (click)=\"copyMessage(labelSnapshot(token))\"\n          style=\"margin-right: 8px;\"\n          title=\"{{ labelSnapshot(token) }}\"\n        >\n          <span class=\"fa fa-clipboard\"></span>\n        </button>\n        {{ token.name }}\n      </td>\n      <td class=\"cut-line\">{{ token.formula }}</td>\n      <td class=\"cut-line\">{{ token.type.name }}</td>\n      <td>{{ token.createdAt | date: 'dd MMM yyyy' | lowercase }}</td>\n      <td>{{ token.modifiedAt | date: 'dd MMM yyyy' | lowercase }}</td>\n      <td>\n        <div class=\"btn-group\" role=\"group\">\n          <button\n            type=\"button\"\n            class=\"btn btn-default\"\n            (click)=\"initForm(token)\"\n            pliAuthorityDirective\n            [externalAllowed]=\"false\"\n          >\n            Editar\n          </button>\n          <button\n            type=\"button\"\n            class=\"btn btn-default dropdown-toggle\"\n            data-toggle=\"dropdown\"\n            aria-haspopup=\"true\"\n            aria-expanded=\"false\"\n          >\n            <span class=\"caret\"></span>\n          </button>\n          <ul class=\"dropdown-menu\">\n            <li>\n              <a\n                href=\"Javascript:;\"\n                (click)=\"delete(token)\"\n                pliAuthorityDirective\n                [authorities]=\"[p('ROLE_TOKENS_ELIMINAR')]\"\n                [externalAllowed]=\"false\"\n              >Eliminar</a\n              >\n            </li>\n          </ul>\n        </div>\n      </td>\n    </tr>\n  </ng-template>\n</p-table>\n<div class=\"text-align-right\" style=\"padding: .75rem 1.25rem;\">\n  <button\n    type=\"button\"\n    class=\"btn btn-primary\"\n    (click)=\"initForm(null)\"\n  >\n    Agregar nuevo\n  </button>\n</div>\n\n<p-dialog\n  header=\"Snapshot Token\"\n  [(visible)]=\"showModal\"\n  [modal]=\"true\"\n  (onHide)=\"onCloseModal()\"\n  [contentStyle]=\"{\n\t\twidth: '400px',\n\t\t'overflow-y': 'auto',\n\t\t'min-height': '500px',\n\t\t'max-height': '500px',\n\t\t'text-align': 'left'\n\t}\"\n  height=\"500px\"\n  width=\"400px\"\n  dismissableMask=\"true\"\n>\n  <form [formGroup]=\"frmToken\" (ngSubmit)=\"save()\" *ngIf=\"tokenSelected\">\n    <div class=\"row\">\n      <div class=\"col-md-12\">\n        <div class=\"row\">\n          <div class=\"col-sm-12 col-md-12\">\n            <div class=\"form-group required\">\n              <label for=\"name\" class=\"form-control-label\">Nombre</label>\n              <input\n                type=\"input\"\n                class=\"form-control\"\n                name=\"name\"\n                id=\"name\"\n                placeholder=\"Nombre\"\n                formControlName=\"controlName\"\n                [(ngModel)]=\"tokenSelected.name\"/>\n              <div class=\"form-control-error\">\n                <small *ngIf=\"hasError(controlName, 'required')\">Nombre es requerido</small>\n              </div>\n            </div>\n          </div>\n          <div class=\"col-sm-12 col-md-12\">\n            <div class=\"form-group required\">\n              <label for=\"type\" class=\"form-control-label\">Tipo</label>\n              <select\n                name=\"type\"\n                id=\"type\"\n                class=\"form-control\"\n                formControlName=\"controlType\"\n                [(ngModel)]=\"tokenSelected.type.id\">\n                <option value=\"\">-- Seleccione opción</option>\n                <option *ngFor=\"let type of types\" [value]=\"type.id\">{{ type.name }}</option>\n              </select>\n              <div class=\"form-control-error\">\n                <small *ngIf=\"hasError(controlType, 'required')\">Tipo de token requerido</small>\n              </div>\n            </div>\n          </div>\n          <div class=\"col-sm-12 col-md-12\">\n            <div class=\"form-group required\">\n              <label class=\"form-control-label\">Llave:</label>&nbsp;&nbsp;\n              <span style=\"font-weight: bold;\"> {{resolveKeyCalculatedToken()}}</span>\n            </div>\n          </div>\n          <div class=\"col-sm-12 col-md-12\">\n            <div class=\"form-group required\">\n              <label for=\"formula\" class=\"form-control-label\"\n              >Formula</label\n              >\n              <textarea\n                cols=\"150\"\n                rows=\"4\"\n                class=\"form-control\"\n                name=\"formula\"\n                id=\"formula\"\n                formControlName=\"controlFormula\"\n                [(ngModel)]=\"tokenSelected.formula\"\n              ></textarea>\n              <div class=\"form-control-error\">\n                <small *ngIf=\"hasError(controlFormula, 'required')\"\n                >Fórmula es requerida</small\n                >\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class=\"card-footer text-align-right\">\n          <button type=\"button\" (click)=\"onCloseModal()\" class=\"btn btn-link\">\n            Cancelar\n          </button>\n          <button\n            type=\"submit\"\n            class=\"btn btn-success\"\n          >\n            Guardar\n          </button>\n        </div>\n      </div>\n    </div>\n  </form>\n</p-dialog>\n\n\n","import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\nimport { CommonListsComponent } from '../../common.lists.component';\nimport { CommonService } from '../../../services/common.service';\nimport { TokenService } from '../../../services/token.service';\nimport { PliCnfGuaranteeToken, UtilString } from 'ng-pli-util';\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { ToastrService } from 'ngx-toastr';\nimport { PliCnfGuaranteeTokenService } from '../../../services/pli-cnf-guarantee-token.service';\n\n@Component({\n    selector: 'pli-guarantee-token',\n    templateUrl: './guarantee-token.component.html',\n    standalone: false\n})\nexport class GuaranteeTokenComponent extends CommonListsComponent implements OnInit {\n\t@Input() promCodigo: number;\n\n\tlGuaranteeTokens: PliCnfGuaranteeToken[] = [];\n\ttokenSelected: PliCnfGuaranteeToken;\n\tfrmToken: UntypedFormGroup;\n\tcontrolName: UntypedFormControl;\n\tcontrolFormula: UntypedFormControl;\n\n\tshowModal: boolean;\n\n\tconstructor(\n\t\tprotected cdRef: ChangeDetectorRef,\n\t\tprotected commonService: CommonService,\n\t\tprivate toastrService: ToastrService,\n\t\tprivate pliCnfGuaranteeTokenService: PliCnfGuaranteeTokenService\n\t) {\n\t\tsuper(commonService, cdRef);\n\t}\n\n\tngOnInit() {\n\t\tsuper.ngOnInit();\n\t\tthis.getTokenGuarantee();\n\t}\n\n\t/* The label to guarantee tokens */\n\tlabelGuarantee(token: PliCnfGuaranteeToken): string {\n\t\treturn '${' + TokenService.getKeyGuarantee(token) + '}';\n\t}\n\n\tgetTokenGuarantee() {\n\t\tthis.pliCnfGuaranteeTokenService.getAllByPromCodigo(this.promCodigo).subscribe(\n\t\t\t(result: PliCnfGuaranteeToken[]) => {\n\t\t\t\tthis.lGuaranteeTokens = result;\n\t\t\t},\n\t\t\t(error) => {\n\t\t\t\tthis.toastrService.error('Error al obtener los token de garantias', 'Error');\n\t\t\t}\n\t\t);\n\t}\n\n\tinitForm(tokenSelected: PliCnfGuaranteeToken) {\n\t\tthis.tokenSelected =\n\t\t\ttokenSelected == null\n\t\t\t\t? new PliCnfGuaranteeToken()\n\t\t\t\t: Object.assign(\n\t\t\t\t\t\tnew PliCnfGuaranteeToken(),\n\t\t\t\t\t\tJSON.parse(JSON.stringify(tokenSelected))\n\t\t\t\t  );\n\t\tif (!this.tokenSelected.promCodigo) {\n\t\t\tthis.tokenSelected.promCodigo = this.promCodigo;\n\t\t}\n\n\t\tthis.controlName = new UntypedFormControl(this.tokenSelected.name, Validators.required);\n\t\tthis.controlFormula = new UntypedFormControl(this.tokenSelected.formula, Validators.required);\n\n\t\tthis.frmToken = new UntypedFormGroup({\n\t\t\tcontrolName: this.controlName,\n\t\t\tcontrolFormula: this.controlFormula\n\t\t});\n\n\t\tthis.showModal = true;\n\t}\n\n\tsave() {\n\t\tif (this.isFormValid(this.frmToken) && this.isValid()) {\n\t\t\tthis.pliCnfGuaranteeTokenService.save(this.tokenSelected).subscribe(\n\t\t\t\t(result) => {\n\t\t\t\t\tthis.getTokenGuarantee();\n\t\t\t\t\tthis.onCloseModal();\n\t\t\t\t\tthis.toastrService.success('Se ha guardado exitosamente ', 'Guardado exitoso!');\n\t\t\t\t\tthis.tokenSelected = null;\n\t\t\t\t},\n\t\t\t\t(error) => {\n\t\t\t\t\tthis.toastrService.error('Error al intentar guardar el token', 'Error');\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n\n\tisValid() {\n\t\tconst token = this.lGuaranteeTokens.find(\n\t\t\t(token) =>\n\t\t\t\tUtilString.replaceAccentSpacesOthers(token.name) ===\n\t\t\t\t\tUtilString.replaceAccentSpacesOthers(this.tokenSelected.name) &&\n\t\t\t\t(!this.tokenSelected.id || this.tokenSelected.id !== token.id)\n\t\t);\n\t\tif (token) {\n\t\t\tthis.toastrService.error('El token ' + token.name + ' ya existe', 'Alerta!');\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\n\tonCloseModal() {\n\t\tthis.showModal = false;\n\t}\n\n\tdelete(token: PliCnfGuaranteeToken) {\n\t\tif (confirm('¿Está seguro que desea eliminar el token ' + token.name + '?')) {\n\t\t\tthis.pliCnfGuaranteeTokenService.delete(token.id).subscribe(\n\t\t\t\t(result) => {\n\t\t\t\t\tthis.getTokenGuarantee();\n\t\t\t\t\tthis.toastrService.success('El token fué eliminada exitosamente', 'Exito!');\n\t\t\t\t},\n\t\t\t\t(error) => {\n\t\t\t\t\tthis.toastrService.error('Error al intentar eliminar el token', 'Error');\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n\n\tresolveKeyCalculatedToken() {\n\t\treturn UtilString.replaceAccentSpacesOthers(this.tokenSelected.name);\n\t}\n}\n","<h4 class=\"no-margin-top\">\n\tTokens Garantias\n</h4>\n<p-table [value]=\"lGuaranteeTokens\" [responsive]=\"true\">\n\t<ng-template pTemplate=\"header\">\n\t\t<tr class=\"text-align-center\">\n\t\t\t<th class=\"text-align-center\" width=\"40%\">Nombre</th>\n\t\t\t<th class=\"text-align-center\">Formula</th>\n\t\t\t<th class=\"text-align-center\">Creado</th>\n\t\t\t<th class=\"text-align-center\">Modificado</th>\n\t\t\t<th class=\"text-align-center\">Acciones</th>\n\t\t</tr>\n\t</ng-template>\n\t<ng-template pTemplate=\"body\" let-token>\n\t\t<tr>\n\t\t\t<td>\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t(click)=\"copyMessage(labelGuarantee(token))\"\n\t\t\t\t\tstyle=\"margin-right: 8px;\"\n\t\t\t\t\ttitle=\"{{ labelGuarantee(token) }}\"\n\t\t\t\t>\n\t\t\t\t\t<span class=\"fa fa-clipboard\"></span>\n\t\t\t\t</button>\n\t\t\t\t{{ token.name }}\n\t\t\t</td>\n\t\t\t<td class=\"cut-line\">{{ token.formula }}</td>\n\t\t\t<td>{{ token.createdAt | date: 'dd MMM yyyy' | lowercase }}</td>\n\t\t\t<td>{{ token.modifiedAt | date: 'dd MMM yyyy' | lowercase }}</td>\n\t\t\t<td>\n\t\t\t\t<div class=\"btn-group\" role=\"group\">\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclass=\"btn btn-default\"\n\t\t\t\t\t\t(click)=\"initForm(token)\"\n\t\t\t\t\t\tpliAuthorityDirective\n\t\t\t\t\t\t[externalAllowed]=\"false\"\n\t\t\t\t\t>\n\t\t\t\t\t\tEditar\n\t\t\t\t\t</button>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclass=\"btn btn-default dropdown-toggle\"\n\t\t\t\t\t\tdata-toggle=\"dropdown\"\n\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\taria-expanded=\"false\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span class=\"caret\"></span>\n\t\t\t\t\t</button>\n\t\t\t\t\t<ul class=\"dropdown-menu\">\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref=\"Javascript:;\"\n\t\t\t\t\t\t\t\t(click)=\"delete(token)\"\n\t\t\t\t\t\t\t\tpliAuthorityDirective\n\t\t\t\t\t\t\t\t[authorities]=\"[p('ROLE_TOKENS_ELIMINAR')]\"\n\t\t\t\t\t\t\t\t[externalAllowed]=\"false\"\n\t\t\t\t\t\t\t\t>Eliminar</a\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</div>\n\t\t\t</td>\n\t\t</tr>\n\t</ng-template>\n</p-table>\n<div class=\"text-align-right\" style=\"padding: 0.75rem 1.25rem;\">\n\t<button type=\"button\" class=\"btn btn-primary\" (click)=\"initForm(null)\">\n\t\tAgregar nuevo\n\t</button>\n</div>\n<p-dialog\n\theader=\"Token Garantias\"\n\t[(visible)]=\"showModal\"\n\t[modal]=\"true\"\n\t(onHide)=\"onCloseModal()\"\n\t[contentStyle]=\"{\n\t\twidth: '400px',\n\t\t'overflow-y': 'auto',\n\t\t'min-height': '500px',\n\t\t'max-height': '500px',\n\t\t'text-align': 'left'\n\t}\"\n\theight=\"500px\"\n\twidth=\"500px\"\n\tdismissableMask=\"true\"\n>\n\t<form [formGroup]=\"frmToken\" (ngSubmit)=\"save()\" *ngIf=\"tokenSelected\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-sm-12 col-md-12 col-lg-12\">\n\t\t\t\t<div class=\"form-group required\">\n\t\t\t\t\t<label for=\"name\" class=\"form-control-label\">Nombre</label>\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"input\"\n\t\t\t\t\t\tclass=\"form-control\"\n\t\t\t\t\t\tname=\"name\"\n\t\t\t\t\t\tid=\"name\"\n\t\t\t\t\t\tplaceholder=\"Nombre\"\n\t\t\t\t\t\tformControlName=\"controlName\"\n\t\t\t\t\t\t[(ngModel)]=\"tokenSelected.name\"\n\t\t\t\t\t/>\n\t\t\t\t\t<div class=\"form-control-error\">\n\t\t\t\t\t\t<small *ngIf=\"hasError(controlName, 'required')\"\n\t\t\t\t\t\t\t>El nombre es requerido</small\n\t\t\t\t\t\t>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<label class=\"form-control-label\">Llave: </label>\n\t\t\t\t\t<p style=\"font-weight: bold; margin-bottom: 25px;\">\n\t\t\t\t\t\t{{ resolveKeyCalculatedToken() }}\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"form-group required\">\n\t\t\t\t\t<label for=\"formula\" class=\"form-control-label\">Formula</label>\n\t\t\t\t\t<textarea\n\t\t\t\t\t\trows=\"3\"\n\t\t\t\t\t\tclass=\"form-control\"\n\t\t\t\t\t\tname=\"formula\"\n\t\t\t\t\t\tid=\"formula\"\n\t\t\t\t\t\tformControlName=\"controlFormula\"\n\t\t\t\t\t\t[(ngModel)]=\"tokenSelected.formula\"\n\t\t\t\t\t></textarea>\n\t\t\t\t\t<div class=\"form-control-error\">\n\t\t\t\t\t\t<small *ngIf=\"hasError(controlFormula, 'required')\"\n\t\t\t\t\t\t\t>La fórmula es requerida</small\n\t\t\t\t\t\t>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div class=\"card-footer text-align-right\">\n\t\t\t\t\t<button type=\"button\" (click)=\"onCloseModal()\" class=\"btn btn-link\">\n\t\t\t\t\t\tCancelar\n\t\t\t\t\t</button>\n\t\t\t\t\t<button type=\"submit\" class=\"btn btn-success\">\n\t\t\t\t\t\tGuardar\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</form>\n</p-dialog>\n","import { PliCnfEvaluationTaskService } from './../../services/pli-cnf-evaluation-task.service';\nimport {\n\tComponent,\n\tOnInit,\n\tInput,\n\tLOCALE_ID,\n\tInject,\n\tChangeDetectorRef,\n\tOutput,\n\tEventEmitter\n} from '@angular/core';\nimport { CommonListsComponent } from '../common.lists.component';\nimport { UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms';\nimport {\n\tToken,\n\tPliCnfPresupuestoGlobal,\n\tUtilString,\n\tETipoPresupuesto,\n\tPliCnfSnapshotToken,\n\tConfigurationDocument,\n\tPliCnfEvaluationTask,\n\tPliCnfGuaranteeToken\n} from 'ng-pli-util';\nimport { CurrencyPipe } from '@angular/common';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonService } from '../../services/common.service';\nimport { PppService } from '../../services/ppp.service';\nimport { Router } from '@angular/router';\nimport { BudgetService } from '../../services/budget.service';\nimport { TokenService } from '../../services/token.service';\nimport { PliCnfSnapshotTokenServices } from '../../services/pli-cnf-snapshot-token.service';\nimport { ConfigurationDocumentService } from '../../services/configuration-document.service';\nimport { PliCnfGuaranteeTokenService } from '../../services/pli-cnf-guarantee-token.service';\nimport { ConfigurationTokenSubjectService } from './configuration-token-subject.service';\n\n@Component({\n    selector: 'pli-configuration-token',\n    templateUrl: './configuration-token.component.html',\n    styleUrls: ['./configuration-token.component.css'],\n    standalone: false\n})\nexport class ConfigurationTokenComponent extends CommonListsComponent implements OnInit {\n\t/** it contains the prom codigo */\n\t@Input() promCodigo: number;\n\t/** It contains if visible frm tokens */\n\t@Input() showFrm: boolean = false;\n\t/** It contains if visible frm tokens */\n\t@Input() showFrmMultiple: boolean = false;\n\t/** It contains if visible static tokens */\n\t@Input() showStatic: boolean = false;\n\t/** It contains if visible budget tokens */\n\t@Input() showBudget: boolean = false;\n\t/** It contains if visible calculated tokens */\n\t@Input() showCalculated: boolean = false;\n\t/** It contains if visible calculated form */\n\t@Input() showCalculatedForm: boolean = false;\n\t/** It contains if visible calculated tokens */\n\t@Input() showSnapshot: boolean = false;\n\t/** It contains if visible calculated form */\n\t@Input() showSnapshotForm: boolean = false;\n\t/** It contains if visible budget tokens */\n\t@Input() showDocument: boolean = true;\n\t/** It contains if visible budget tokens */\n\t@Input() showTask: boolean = true;\n\t/* It contains if visible guarantee tokens*/\n\t@Input() showGuatantee: boolean = false;\n\t/* It contains if visible guarantee-form tokens*/\n\t@Input() showDocumentAutoAnalysis: boolean = false;\n\t/* It contains if visible guarantee-form tokens*/\n\t@Input() showGuatanteeForm: boolean = false;\n\t/** It returns the list token */\n\t@Output() onStaticToken = new EventEmitter<any>();\n\t/** it contains the pat codigo */\n\tpatCodigo: number;\n\t/** it contains the snapShot tokens */\n\tsnapShotTokens: PliCnfSnapshotToken[];\n\t/*It contains the guarantee token */\n\tlGuaranteeTokens: PliCnfGuaranteeToken[] = [];\n\n\t@Input() showAsTitle: boolean = false;\n\n\t/** Valida si finalizo  */\n\tready: boolean = false;\n\t/** List of tokens static and dynamic form */\n\tlStaticToken: any = [];\n\t/** List of calculated tokens */\n\tlCalculatedToken: any = [];\n\t/** It contains the form group of Token */\n\tfrmToken: UntypedFormGroup;\n\tcontrolName: UntypedFormControl;\n\tcontrolFormula: UntypedFormControl;\n\n\t/** Object Token new or selected to edit */\n\ttokenSelected: Token;\n\t/** */\n\tcallBudgetService: boolean = false;\n\t/** */\n\tprivate currencyPipe: CurrencyPipe;\n\t@Inject(LOCALE_ID) public locale: string;\n\treadyAccordeon: boolean = false;\n\tconstructor(\n\t\tprivate toastrService: ToastrService,\n\t\tprotected cdRef: ChangeDetectorRef,\n\t\tprotected commonService: CommonService,\n\t\tprivate pppService: PppService,\n\t\tprivate router: Router,\n\t\tprivate budgetService: BudgetService,\n\t\tprivate tokenService: TokenService,\n\t\tprivate snapshotTokenService: PliCnfSnapshotTokenServices,\n\t\tprivate configurationDocumentService: ConfigurationDocumentService,\n\t\tprivate pliCnfTaskService: PliCnfEvaluationTaskService,\n\t\tprivate pliCnfGuaranteeTokenService: PliCnfGuaranteeTokenService,\n\t\tprivate configurationTokenSubjectService: ConfigurationTokenSubjectService\n\t) {\n\t\tsuper(commonService, cdRef);\n\t\tthis.currencyPipe = new CurrencyPipe(this.locale);\n\t}\n\n\tngOnInit() {\n\t\tsuper.ngOnInit();\n\t\tthis.ready = false;\n\t\tthis.getTokenSnapshot();\n\t\tthis.getTokenGuarantee();\n\t\tif (\n\t\t\tthis.showFrm ||\n\t\t\tthis.showFrmMultiple ||\n\t\t\tthis.showStatic ||\n\t\t\tthis.showBudget ||\n\t\t\tthis.showCalculated\n\t\t)\n\t\t\tthis.initListTokens();\n\t}\n\n\t/**\n\t * Get the info of tokens from dynamic form, static tokens and calculated.\n\t */\n\tinitListTokens() {\n\t\tif (!this.promCodigo) {\n\t\t\treturn;\n\t\t}\n\t\tthis.patCodigo = this.pppService.getPatCodigoByPromCodigo(this.promCodigo);\n\t\tthis.lStaticToken = [];\n\t\tthis.lCalculatedToken = [];\n\t\tthis.initListTokenForm();\n\t}\n\n\tinitListTokenForm() {\n\t\tthis.tokenService.getFormFieldsByPromCodeWithEditGrids(this.promCodigo).then(\n\t\t\t(lStaticToken: any[]) => {\n\t\t\t\tif (lStaticToken) {\n\t\t\t\t\tfor (let staticToken of lStaticToken) {\n\t\t\t\t\t\tstaticToken.tokenType = TokenService.TOKEN_LABEL_FORM;\n\t\t\t\t\t\tlet staticTokenValue = [];\n\t\t\t\t\t\tfor (let formField of staticToken.value) {\n\t\t\t\t\t\t\tstaticTokenValue.push(formField);\n\t\t\t\t\t\t\t// Validation to add the country token País\n\t\t\t\t\t\t\t//\"http://servicioslocales.colfuturo.org:32151/data/getUniversitiesByName\"\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tformField.type &&\n\t\t\t\t\t\t\t\tformField.type === 'select' &&\n\t\t\t\t\t\t\t\tformField.data &&\n\t\t\t\t\t\t\t\tformField.data.url &&\n\t\t\t\t\t\t\t\tformField.data.url.indexOf('getUniversitiesByName') >= 0\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tstaticTokenValue.push({\n\t\t\t\t\t\t\t\t\ttype: 'select-attribute',\n\t\t\t\t\t\t\t\t\tlabel: 'País',\n\t\t\t\t\t\t\t\t\tkey: formField.key + '_level1'\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstaticToken.value = staticTokenValue;\n\t\t\t\t\t}\n\t\t\t\t\tArray.prototype.push.apply(this.lStaticToken, lStaticToken);\n\t\t\t\t}\n\t\t\t\tthis.initListTokenDocuments();\n\t\t\t\t//this.initListTokenPresupuesto();\n\t\t\t\t// this.initListTokenTasks();\n\t\t\t},\n\t\t\t(error) => {\n\t\t\t\tconsole.log('Error initListTokenForm-getFormFieldsByPromCode', error);\n\t\t\t\tthis.toastrService.error('Error consultando tokens de formulario');\n\t\t\t}\n\t\t);\n\t}\n\n\tinitListTokenDocuments() {\n\t\tthis.configurationDocumentService.getListByPromCodigo(this.promCodigo).subscribe(\n\t\t\t(lConfigurationDocument: ConfigurationDocument[]) => {\n\t\t\t\tif (lConfigurationDocument) {\n\t\t\t\t\tthis.lStaticToken[this.lStaticToken.length] = {\n\t\t\t\t\t\ttitle: {\n\t\t\t\t\t\t\tkey: TokenService.getKeyDocument(),\n\t\t\t\t\t\t\tvalue: TokenService.TOKEN_LABEL_DOCUMENTO\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttokenType: TokenService.TOKEN_LABEL_DOCUMENTO,\n\t\t\t\t\t\tvalue: []\n\t\t\t\t\t};\n\t\t\t\t\tlConfigurationDocument.forEach((cDocument) => {\n\t\t\t\t\t\tthis.lStaticToken[this.lStaticToken.length - 1].value.push({\n\t\t\t\t\t\t\tkey: cDocument.id + '_info',\n\t\t\t\t\t\t\tlabel: cDocument.name\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tthis.initListDocumentAnalysis();\n\t\t\t},\n\t\t\t(error) => this.toastrService.error('Error consultando la información de documentos')\n\t\t);\n\t}\n\n\tinitListDocumentAnalysis() {\n\t\tthis.configurationDocumentService\n\t\t\t.getByPromCodigoAndAutomaticValidation(this.promCodigo)\n\t\t\t.subscribe({\n\t\t\t\tnext: (lConfigurationDocument: ConfigurationDocument[]) => {\n\t\t\t\t\tif (lConfigurationDocument) {\n\t\t\t\t\t\tthis.lStaticToken[this.lStaticToken.length] = {\n\t\t\t\t\t\t\ttitle: {\n\t\t\t\t\t\t\t\tkey: TokenService.getKeyDocumentAnalysis(),\n\t\t\t\t\t\t\t\tvalue: TokenService.TOKEN_LABEL_DOCUMENTO_ANALISIS_AUTOMATICO\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttokenType: TokenService.TOKEN_DOCUMENTO_ANALYSIS_TYPE,\n\t\t\t\t\t\t\tvalue: []\n\t\t\t\t\t\t};\n\t\t\t\t\t\tlConfigurationDocument.forEach((cDocument) => {\n\t\t\t\t\t\t\tthis.lStaticToken[this.lStaticToken.length - 1].value.push({\n\t\t\t\t\t\t\t\tkey: cDocument.id + '_partial',\n\t\t\t\t\t\t\t\tlabel: cDocument.name + ' - Análisis parcial'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tthis.lStaticToken[this.lStaticToken.length - 1].value.push({\n\t\t\t\t\t\t\t\tkey: cDocument.id + '_total',\n\t\t\t\t\t\t\t\tlabel: cDocument.name + ' - Análisis total'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tthis.initListTokenPresupuesto();\n\t\t\t\t},\n\t\t\t\terror: (err) => {\n\t\t\t\t\tthis.toastrService.error(\n\t\t\t\t\t\t'Error consultando la información de análisis automático de documentos'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tinitListTokenPresupuesto() {\n\t\tthis.budgetService.lGlobalBudgetChanged.subscribe({\n\t\t\tnext: (lGlobalBudget: PliCnfPresupuestoGlobal[]) => {\n\t\t\t\tif (!this.callBudgetService) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.callBudgetService = false;\n\t\t\t\tif (lGlobalBudget) {\n\t\t\t\t\tlet budgetType: PliCnfPresupuestoGlobal[] = [];\n\t\t\t\t\tfor (let globalBudget of lGlobalBudget) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tglobalBudget.pliTipoPresupuesto.tpresCodigo === ETipoPresupuesto.PRIMARY\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tbudgetType.push(globalBudget);\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\tglobalBudget.pliTipoPresupuesto.tpresCodigo ===\n\t\t\t\t\t\t\tETipoPresupuesto.SECONDARY\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tbudgetType.push(globalBudget);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (budgetType && Object.keys(budgetType).length > 0) {\n\t\t\t\t\t\tthis.lStaticToken[this.lStaticToken.length] = {\n\t\t\t\t\t\t\ttitle: {\n\t\t\t\t\t\t\t\tkey: TokenService.getKeyBudget(),\n\t\t\t\t\t\t\t\tvalue: TokenService.TOKEN_LABEL_BUDGET\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttokenType: TokenService.TOKEN_LABEL_BUDGET,\n\t\t\t\t\t\t\tvalue: []\n\t\t\t\t\t\t};\n\t\t\t\t\t\tfor (let budget of budgetType) {\n\t\t\t\t\t\t\tconst tpresCodigo = budget.pliTipoPresupuesto.tpresCodigo;\n\t\t\t\t\t\t\t// Add date of financing\n\t\t\t\t\t\t\tthis.lStaticToken[this.lStaticToken.length - 1].value.push({\n\t\t\t\t\t\t\t\tkey:\n\t\t\t\t\t\t\t\t\ttpresCodigo +\n\t\t\t\t\t\t\t\t\t'_' +\n\t\t\t\t\t\t\t\t\tTokenService.BUDGET_TOKENS_KEY_FECHA_FINANCING_START,\n\t\t\t\t\t\t\t\tlabel: budget.cpreNombre + ' fecha inicio financiación'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tthis.lStaticToken[this.lStaticToken.length - 1].value.push({\n\t\t\t\t\t\t\t\tkey:\n\t\t\t\t\t\t\t\t\ttpresCodigo +\n\t\t\t\t\t\t\t\t\t'_' +\n\t\t\t\t\t\t\t\t\tTokenService.BUDGET_TOKENS_KEY_FECHA_FINANCING_END,\n\t\t\t\t\t\t\t\tlabel: budget.cpreNombre + ' fecha fin financiación'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t// Add the total amount\n\t\t\t\t\t\t\t// this.lStaticToken[this.lStaticToken.length - 1].value.push({\n\t\t\t\t\t\t\t// \tkey:\n\t\t\t\t\t\t\t// \t\ttpresCodigo + '_' + TokenService.BUDGET_TOKENS_KEY_TOTAL_AMOUNT,\n\t\t\t\t\t\t\t// \tlabel: budget.cpreNombre + ' total'\n\t\t\t\t\t\t\t// });\n\t\t\t\t\t\t\t// Add the Convocatoria process total amount\n\t\t\t\t\t\t\tthis.lStaticToken[this.lStaticToken.length - 1].value.push({\n\t\t\t\t\t\t\t\tkey:\n\t\t\t\t\t\t\t\t\ttpresCodigo +\n\t\t\t\t\t\t\t\t\t'_' +\n\t\t\t\t\t\t\t\t\tTokenService.BUDGET_TOKENS_KEY_APPLICATION_PROCESS_TOTAL_AMOUNT,\n\t\t\t\t\t\t\t\tlabel: 'Convocatoria- ' + budget.cpreNombre + ' total'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t// Add the Convocatoria process own founds\n\t\t\t\t\t\t\tthis.lStaticToken[this.lStaticToken.length - 1].value.push({\n\t\t\t\t\t\t\t\tkey:\n\t\t\t\t\t\t\t\t\ttpresCodigo +\n\t\t\t\t\t\t\t\t\t'_' +\n\t\t\t\t\t\t\t\t\tTokenService.BUDGET_TOKENS_KEY_APPLICATION_PROCESS_TOTAL_OWN_FOUNDS,\n\t\t\t\t\t\t\t\tlabel: 'Convocatoria- ' + budget.cpreNombre + ' fondos propios'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t// Add the Convocatoria process financing\n\t\t\t\t\t\t\tthis.lStaticToken[this.lStaticToken.length - 1].value.push({\n\t\t\t\t\t\t\t\tkey:\n\t\t\t\t\t\t\t\t\ttpresCodigo +\n\t\t\t\t\t\t\t\t\t'_' +\n\t\t\t\t\t\t\t\t\tTokenService.BUDGET_TOKENS_KEY_APPLICATION_PROCESS_TOTAL_FINANCING,\n\t\t\t\t\t\t\t\tlabel: 'Convocatoria- ' + budget.cpreNombre + ' financiación'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t// Add the Convocatoria process total amount\n\t\t\t\t\t\t\tthis.lStaticToken[this.lStaticToken.length - 1].value.push({\n\t\t\t\t\t\t\t\tkey:\n\t\t\t\t\t\t\t\t\ttpresCodigo +\n\t\t\t\t\t\t\t\t\t'_' +\n\t\t\t\t\t\t\t\t\tTokenService.BUDGET_TOKENS_KEY_LEGALIZATION_PROCESS_TOTAL_AMOUNT,\n\t\t\t\t\t\t\t\tlabel: 'Legalización- ' + budget.cpreNombre + ' total'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t// Add the Convocatoria process own founds\n\t\t\t\t\t\t\tthis.lStaticToken[this.lStaticToken.length - 1].value.push({\n\t\t\t\t\t\t\t\tkey:\n\t\t\t\t\t\t\t\t\ttpresCodigo +\n\t\t\t\t\t\t\t\t\t'_' +\n\t\t\t\t\t\t\t\t\tTokenService.BUDGET_TOKENS_KEY_LEGALIZATION_PROCESS_TOTAL_OWN_FOUNDS,\n\t\t\t\t\t\t\t\tlabel: 'Legalización- ' + budget.cpreNombre + ' fondos propios'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t// Add the Convocatoria process financing\n\t\t\t\t\t\t\tthis.lStaticToken[this.lStaticToken.length - 1].value.push({\n\t\t\t\t\t\t\t\tkey:\n\t\t\t\t\t\t\t\t\ttpresCodigo +\n\t\t\t\t\t\t\t\t\t'_' +\n\t\t\t\t\t\t\t\t\tTokenService.BUDGET_TOKENS_KEY_LEGALIZATION_PROCESS_TOTAL_FINANCING,\n\t\t\t\t\t\t\t\tlabel: 'Legalización- ' + budget.cpreNombre + ' financiación'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t// Add the Convocatoria process financing\n\t\t\t\t\t\t\tthis.lStaticToken[this.lStaticToken.length - 1].value.push({\n\t\t\t\t\t\t\t\tkey:\n\t\t\t\t\t\t\t\t\ttpresCodigo +\n\t\t\t\t\t\t\t\t\t'_' +\n\t\t\t\t\t\t\t\t\tTokenService.BUDGET_TOKENS_KEY_INSURANCE_AMOUNT,\n\t\t\t\t\t\t\t\tlabel:\n\t\t\t\t\t\t\t\t\t'Legalización- ' + budget.cpreNombre + ' financiación + seguro'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t// JMP - Mantis 6674 - add token legalization or application total financing\n\t\t\t\t\t\t\tthis.lStaticToken[this.lStaticToken.length - 1].value.push({\n\t\t\t\t\t\t\t\tkey:\n\t\t\t\t\t\t\t\t\ttpresCodigo +\n\t\t\t\t\t\t\t\t\t'_' +\n\t\t\t\t\t\t\t\t\tTokenService.LEGALIZATION_OR_APPLICATION_TOTAL_FINANCING,\n\t\t\t\t\t\t\t\tlabel:\n\t\t\t\t\t\t\t\t\t'Financiación - ' +\n\t\t\t\t\t\t\t\t\tbudget.cpreNombre +\n\t\t\t\t\t\t\t\t\t' legalización (+ seguro) o Convocatoria '\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tthis.lStaticToken[this.lStaticToken.length - 1].value.push({\n\t\t\t\t\t\t\t\tkey:\n\t\t\t\t\t\t\t\t\ttpresCodigo +\n\t\t\t\t\t\t\t\t\t'_' +\n\t\t\t\t\t\t\t\t\tTokenService.BUDGET_TOKENS_KEY_RESUME_CATEGORY_YEAR,\n\t\t\t\t\t\t\t\tlabel: budget.cpreNombre + ' resumen rubro y año'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tthis.lStaticToken[this.lStaticToken.length - 1].value.push({\n\t\t\t\t\t\t\t\tkey:\n\t\t\t\t\t\t\t\t\ttpresCodigo + '_' + TokenService.BUDGET_TOKENS_DURATION_STUDIES,\n\t\t\t\t\t\t\t\tlabel: budget.cpreNombre + ' duración de estudios en meses'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tthis.lStaticToken[this.lStaticToken.length - 1].value.push({\n\t\t\t\t\t\t\t\tkey:\n\t\t\t\t\t\t\t\t\ttpresCodigo +\n\t\t\t\t\t\t\t\t\t'_' +\n\t\t\t\t\t\t\t\t\tTokenService.BUDGET_TOKENS_FINANCING_DURATION,\n\t\t\t\t\t\t\t\tlabel: budget.cpreNombre + ' duración de financiación en meses'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tthis.initListTokenTasks();\n\t\t\t\t}\n\t\t\t},\n\t\t\terror: (error) => {\n\t\t\t\tconsole.error('ERROR del servicio: ', error);\n\t\t\t}\n\t\t});\n\t\tthis.budgetService.getListPresupuestoGlobal(this.promCodigo);\n\t\tthis.callBudgetService = true;\n\t}\n\n\tinitListTokenTasks() {\n\t\tthis.pliCnfTaskService\n\t\t\t.getByPromCodigo(this.promCodigo)\n\t\t\t.subscribe((listTask: PliCnfEvaluationTask[]) => {\n\t\t\t\tif (listTask) {\n\t\t\t\t\tlet tokenTaskArr = [];\n\t\t\t\t\tfor (let i = 0; i < listTask.length; i++) {\n\t\t\t\t\t\ttokenTaskArr.push(listTask[i]);\n\t\t\t\t\t\ttokenTaskArr[i]['formulaToken'] =\n\t\t\t\t\t\t\tthis.camelize(this.eliminarDiacriticos(listTask[i].name)) +\n\t\t\t\t\t\t\t'_' +\n\t\t\t\t\t\t\tlistTask[i].id;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.lStaticToken[this.lStaticToken.length] = {\n\t\t\t\t\t\ttitle: {\n\t\t\t\t\t\t\tkey: TokenService.TOKEN_LABEL_TASKL,\n\t\t\t\t\t\t\tvalue: TokenService.TOKEN_LABEL_TASK\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttokenType: TokenService.TOKEN_LABEL_TASK,\n\t\t\t\t\t\tvalue: []\n\t\t\t\t\t};\n\t\t\t\t\ttokenTaskArr.forEach((cTask) => {\n\t\t\t\t\t\tthis.lStaticToken[this.lStaticToken.length - 1].value.push({\n\t\t\t\t\t\t\tkey: cTask.formulaToken,\n\t\t\t\t\t\t\tlabel: cTask.name\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t\tthis.adjustStaticTokensInfo();\n\t\t\t\t\tthis.getTokenCalculated();\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tadjustStaticTokensInfo() {\n\t\t// Add the static tokens\n\t\tthis.lStaticToken[this.lStaticToken.length] = {\n\t\t\ttitle: {\n\t\t\t\tkey: TokenService.getKeyStatic(),\n\t\t\t\tvalue: TokenService.TOKEN_LABEL_STATIC\n\t\t\t},\n\t\t\ttokenType: TokenService.TOKEN_LABEL_STATIC,\n\t\t\tvalue: TokenService.STATIC_TOKENS\n\t\t};\n\t\tthis.readyAccordeon = true;\n\t\tlet colMax = 4;\n\t\t//Organize depends of the panels\n\t\tfor (let groupToken of this.lStaticToken) {\n\t\t\tlet panel: any = [];\n\t\t\tif (groupToken.tokenType == TokenService.TOKEN_LABEL_FORM) {\n\t\t\t\tlet panelName: string = null;\n\t\t\t\tlet lastPanelName: string = null;\n\t\t\t\tfor (let staticToken of groupToken.value) {\n\t\t\t\t\tif (\n\t\t\t\t\t\t!this.showFrmMultiple &&\n\t\t\t\t\t\tstaticToken.editgrid &&\n\t\t\t\t\t\tstaticToken.editgrid === true\n\t\t\t\t\t) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif (staticToken.panelName) {\n\t\t\t\t\t\tpanelName = staticToken.panelName;\n\t\t\t\t\t}\n\t\t\t\t\tif (panelName !== null && panelName != lastPanelName) {\n\t\t\t\t\t\tpanel.push({\n\t\t\t\t\t\t\ttitle: {\n\t\t\t\t\t\t\t\tvalue: panelName\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tvalue: []\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if (panelName === null && panel.length === 0) {\n\t\t\t\t\t\tpanel.push({\n\t\t\t\t\t\t\ttitle: {\n\t\t\t\t\t\t\t\tvalue: groupToken.title.value\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tvalue: []\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tpanel[panel.length - 1].value.push(staticToken);\n\t\t\t\t\tlastPanelName = panelName;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tpanel.push({\n\t\t\t\t\ttitle: {\n\t\t\t\t\t\tvalue: groupToken.title.value\n\t\t\t\t\t},\n\t\t\t\t\tvalue: []\n\t\t\t\t});\n\t\t\t\tfor (let staticToken of groupToken.value) {\n\t\t\t\t\tpanel[panel.length - 1].value.push(staticToken);\n\t\t\t\t}\n\t\t\t}\n\t\t\tgroupToken.value = panel;\n\t\t}\n\t\tfor (let panel of this.lStaticToken) {\n\t\t\tfor (let groupToken of panel.value) {\n\t\t\t\tlet iCol = 0;\n\t\t\t\tlet iRow = 0;\n\t\t\t\tlet lStaticTokenTmp = [];\n\t\t\t\tlStaticTokenTmp[iRow] = [];\n\t\t\t\tfor (let staticToken of groupToken.value) {\n\t\t\t\t\tif (staticToken.type && staticToken.type === 'button') {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif (!lStaticTokenTmp[iRow]) {\n\t\t\t\t\t\tlStaticTokenTmp[iRow] = [];\n\t\t\t\t\t}\n\t\t\t\t\tif (panel.tokenType === TokenService.TOKEN_LABEL_TASK) {\n\t\t\t\t\t\tlStaticTokenTmp[iRow].push({\n\t\t\t\t\t\t\tkey: '${' + panel.title.key + '_' + staticToken.key + '}',\n\t\t\t\t\t\t\tvalue: staticToken.label,\n\t\t\t\t\t\t\tobject: staticToken\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlStaticTokenTmp[iRow].push({\n\t\t\t\t\t\t\tkey: '${' + panel.title.key + '_' + staticToken.key + '}',\n\t\t\t\t\t\t\tvalue: staticToken.label,\n\t\t\t\t\t\t\tobject: staticToken\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tiCol++;\n\t\t\t\t\tif (iCol == colMax) {\n\t\t\t\t\t\tiRow++;\n\t\t\t\t\t\tiCol = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (iCol > 0) {\n\t\t\t\t\tfor (let i = iCol; i < colMax; i++) {\n\t\t\t\t\t\tlStaticTokenTmp[iRow].push({\n\t\t\t\t\t\t\tkey: null,\n\t\t\t\t\t\t\tvalue: null\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tgroupToken.value = lStaticTokenTmp;\n\t\t\t}\n\t\t}\n\t\tthis.onStaticToken.emit(this.lStaticToken);\n\t\tthis.configurationTokenSubjectService.setSubjectConfigurationTokens(this.lStaticToken);\n\t}\n\n\tgetTokenCalculated() {\n\t\tthis.tokenService.getListByPromCodigo(this.promCodigo).subscribe(\n\t\t\t(lToken: Token[]) => {\n\t\t\t\tthis.lCalculatedToken = lToken;\n\t\t\t\tthis.ready = true;\n\t\t\t},\n\t\t\t(error) => {\n\t\t\t\tconsole.log('Error getTokenCalculated -getListByPromCodigo', error);\n\t\t\t\tthis.toastrService.error('Error el formulario');\n\t\t\t}\n\t\t);\n\t}\n\n\tgetTokenSnapshot() {\n\t\tif (this.showSnapshot) {\n\t\t\tthis.snapshotTokenService.getAllByPromCode(this.promCodigo).subscribe((tokens) => {\n\t\t\t\tthis.snapShotTokens = tokens;\n\t\t\t\tthis.ready = true;\n\t\t\t});\n\t\t}\n\t}\n\n\tgetTokenGuarantee() {\n\t\tif (this.showGuatantee) {\n\t\t\tthis.pliCnfGuaranteeTokenService.getAllByPromCodigo(this.promCodigo).subscribe({\n\t\t\t\tnext: (result: PliCnfGuaranteeToken[]) => {\n\t\t\t\t\tthis.lGuaranteeTokens = result;\n\t\t\t\t\tthis.ready = true;\n\t\t\t\t},\n\t\t\t\terror: (error) => {\n\t\t\t\t\tthis.toastrService.error('Error al obtener los token de garantias', 'Error');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\teliminarDiacriticos(texto) {\n\t\treturn texto.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n\t}\n\n\tcamelize(str) {\n\t\treturn str\n\t\t\t.trim()\n\t\t\t.split(/\\s+/)\n\t\t\t.map((a) => a.trim())\n\t\t\t.filter((a) => a.length > 0)\n\t\t\t.map((a) => a[0].toUpperCase() + a.substring(1))\n\t\t\t.join('');\n\t}\n\n\t/** It deletes a sponsor */\n\tdelete(token: Token) {\n\t\tif (confirm('¿Está seguro que desea eliminar el token ' + token.name + '?')) {\n\t\t\tthis.tokenService.delete(token.id).subscribe(\n\t\t\t\t(result) => {\n\t\t\t\t\tthis.toastrService.success('El token fué eliminada exitosamente');\n\t\t\t\t\tthis.getTokenCalculated();\n\t\t\t\t},\n\t\t\t\t(error) => {\n\t\t\t\t\tthis.toastrService.error('Error al intentar eliminar el token');\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n\n\t/** Tet the label to calculated tokens */\n\tlabelCalculated(token: Token): string {\n\t\treturn '${' + TokenService.getKeyCalculated(token) + '}';\n\t}\n\n\t/** Tet the label to calculated tokens */\n\tlabelSnapshot(token: PliCnfSnapshotToken): string {\n\t\treturn '${' + TokenService.getKeySnapshot(token) + '}';\n\t}\n\n\t/* The label to guarantee tokens */\n\tlabelGuarantee(token: PliCnfGuaranteeToken): string {\n\t\treturn '${' + TokenService.getKeyGuarantee(token) + '}';\n\t}\n\n\tinitForm(tokenSelected: Token) {\n\t\tthis.tokenSelected =\n\t\t\ttokenSelected == null\n\t\t\t\t? new Token()\n\t\t\t\t: Object.assign(new Token(), JSON.parse(JSON.stringify(tokenSelected)));\n\t\tif (!this.tokenSelected.promCodigo) {\n\t\t\tthis.tokenSelected.promCodigo = this.promCodigo;\n\t\t}\n\n\t\tthis.controlName = new UntypedFormControl(this.tokenSelected.name, Validators.required);\n\t\tthis.controlFormula = new UntypedFormControl(\n\t\t\tthis.tokenSelected.formula,\n\t\t\tValidators.required\n\t\t);\n\n\t\tthis.frmToken = new UntypedFormGroup({\n\t\t\tcontrolName: this.controlName,\n\t\t\tcontrolFormula: this.controlFormula\n\t\t});\n\t}\n\n\tresolveKeyCalculatedToken() {\n\t\treturn UtilString.replaceAccentSpacesOthers(this.tokenSelected.name);\n\t}\n\n\tsave() {\n\t\tif (this.isFormValid(this.frmToken)) {\n\t\t\t// Validate if the name is unique\n\t\t\tif (this.lCalculatedToken && this.lCalculatedToken.length > 0) {\n\t\t\t\tfor (let calToken of this.lCalculatedToken) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tUtilString.replaceAccentSpacesOthers(calToken.name) ===\n\t\t\t\t\t\t\tUtilString.replaceAccentSpacesOthers(this.tokenSelected.name) &&\n\t\t\t\t\t\t(!this.tokenSelected.id || this.tokenSelected.id !== calToken.id)\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.toastrService.warning(\n\t\t\t\t\t\t\t'El token ' + calToken.name + ' tiene la misma llave',\n\t\t\t\t\t\t\t'Alerta!'\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet evalFormula: boolean = false;\n\t\t\ttry {\n\t\t\t\tevalFormula = this.tokenService.validateFormula(\n\t\t\t\t\tthis.lStaticToken,\n\t\t\t\t\tthis.tokenSelected.name,\n\t\t\t\t\tthis.tokenSelected.formula\n\t\t\t\t);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error.error);\n\t\t\t\tthis.toastrService.error(error.message, error.title);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!evalFormula) {\n\t\t\t\tthis.toastrService.error('No se logro evaluar la formular', 'Error!');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Save the tokenSelected\n\t\t\tthis.tokenService.save(this.tokenSelected).subscribe(\n\t\t\t\t(tokenSave: any) => {\n\t\t\t\t\tthis.toastrService.success('Se ha guardado exitosamente ', 'Guardado exitoso!');\n\t\t\t\t\tthis.tokenSelected = null;\n\t\t\t\t\tthis.getTokenCalculated();\n\t\t\t\t},\n\t\t\t\t(error) => {\n\t\t\t\t\tconsole.error(error);\n\t\t\t\t\tthis.toastrService.error('Error al intentar guardar el token', 'Error!');\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n\n\tcancel() {\n\t\tthis.tokenSelected = null;\n\t}\n\n\t/** It validates if type is frm */\n\tisGroupFrm(type: string): boolean {\n\t\treturn type === TokenService.TOKEN_LABEL_FORM;\n\t}\n\n\t/** It validates if type is static */\n\tisGroupStatic(type: string): boolean {\n\t\treturn type === TokenService.TOKEN_LABEL_STATIC;\n\t}\n\n\t/** It validates if type is budget */\n\tisGroupBudget(type: string): boolean {\n\t\treturn type === TokenService.TOKEN_LABEL_BUDGET;\n\t}\n\n\t/** It validates if type is document */\n\tisGroupDocument(type: string): boolean {\n\t\treturn type === TokenService.TOKEN_LABEL_DOCUMENTO;\n\t}\n\n\tisGroupDocumentAnalysis(type: string): boolean {\n\t\treturn type === TokenService.TOKEN_DOCUMENTO_ANALYSIS_TYPE;\n\t}\n\n\t/** It validates if type is task */\n\tisGroupTask(type: string): boolean {\n\t\treturn type === TokenService.TOKEN_LABEL_TASK;\n\t}\n\n\t/** It validates visibility to all tokens mixed */\n\tvalidateVisibility(type: string): boolean {\n\t\treturn (\n\t\t\t(this.isGroupFrm(type) && this.showFrm) ||\n\t\t\t(this.isGroupStatic(type) && this.showStatic) ||\n\t\t\t(this.isGroupBudget(type) && this.showBudget) ||\n\t\t\t(this.isGroupDocument(type) && this.showDocument) ||\n\t\t\t(this.isGroupTask(type) && this.showTask) ||\n\t\t\t(this.isGroupDocumentAnalysis(type) && this.showDocumentAutoAnalysis)\n\t\t);\n\t}\n}\n","<div\n\t*ngIf=\"readyAccordeon && ready\"\n\tpliAuthorityDirective\n\t[authorities]=\"[p('ROLE_TOKENS_CONSULTAR')]\"\n\t[patCodigo]=\"patCodigo\"\n\t[externalAllowed]=\"false\"\n>\n\t<div class=\"row\">\n\t\t<div class=\"col-md-12\">\n\t\t\t<h4 class=\"no-margin-top\" *ngIf=\"!showAsTitle\">\n\t\t\t\tTokens formulario, documentos, presupuesto, tareas y estáticos\n\t\t\t</h4>\n\t\t\t<label class=\"no-margin-top form-control-label\" *ngIf=\"showAsTitle\">\n\t\t\t\tTokens formulario, documentos, presupuesto, tareas y estáticos\n\t\t\t</label>\n\t\t\t<p-accordion [multiple]=\"true\">\n\t\t\t\t<ng-container *ngFor=\"let groupToken of lStaticToken\">\n\t\t\t\t\t<p-accordionTab\n\t\t\t\t\t\t*ngIf=\"validateVisibility(groupToken.tokenType)\"\n\t\t\t\t\t\theader=\"{{ groupToken.title.value }}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div *ngFor=\"let panel of groupToken.value\">\n\t\t\t\t\t\t\t<h4 *ngIf=\"groupToken.value && groupToken.value.length > 1\">\n\t\t\t\t\t\t\t\t{{ panel.title.value }}\n\t\t\t\t\t\t\t</h4>\n\t\t\t\t\t\t\t<hr\n\t\t\t\t\t\t\t\t*ngIf=\"groupToken.value && groupToken.value.length > 1\"\n\t\t\t\t\t\t\t\tstyle=\"margin: 5px 0\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<div *ngFor=\"let staticToken of panel.value\" class=\"ui-g\">\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t*ngIf=\"staticToken[0] && staticToken[0].key\"\n\t\t\t\t\t\t\t\t\tclass=\"ui-g-12 ui-md-6 ui-lg-3 cut-line\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t(click)=\"copyMessage(staticToken[0].key)\"\n\t\t\t\t\t\t\t\t\t\ttitle=\"{{ staticToken[0].key }}\"\n\t\t\t\t\t\t\t\t\t\tstyle=\"margin-right: 8px\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<span class=\"fa fa-clipboard\"></span>\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t<span title=\"{{ staticToken[0].value }}\">{{\n\t\t\t\t\t\t\t\t\t\tstaticToken[0].value\n\t\t\t\t\t\t\t\t\t}}</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t*ngIf=\"staticToken[1] && staticToken[1].key\"\n\t\t\t\t\t\t\t\t\tclass=\"ui-g-12 ui-md-6 ui-lg-3 cut-line\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t(click)=\"copyMessage(staticToken[1].key)\"\n\t\t\t\t\t\t\t\t\t\ttitle=\"{{ staticToken[1].key }}\"\n\t\t\t\t\t\t\t\t\t\tstyle=\"margin-right: 8px\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<span class=\"fa fa-clipboard\"></span>\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t<span title=\"{{ staticToken[1].value }}\">{{\n\t\t\t\t\t\t\t\t\t\tstaticToken[1].value\n\t\t\t\t\t\t\t\t\t}}</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t*ngIf=\"staticToken[2] && staticToken[2].key\"\n\t\t\t\t\t\t\t\t\tclass=\"ui-g-12 ui-md-6 ui-lg-3 cut-line\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t(click)=\"copyMessage(staticToken[2].key)\"\n\t\t\t\t\t\t\t\t\t\ttitle=\"{{ staticToken[2].key }}\"\n\t\t\t\t\t\t\t\t\t\tstyle=\"margin-right: 8px\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<span class=\"fa fa-clipboard\"></span>\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t<span title=\"{{ staticToken[2].value }}\">{{\n\t\t\t\t\t\t\t\t\t\tstaticToken[2].value\n\t\t\t\t\t\t\t\t\t}}</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t*ngIf=\"staticToken[3] && staticToken[3].key\"\n\t\t\t\t\t\t\t\t\tclass=\"ui-g-12 ui-md-6 ui-lg-3 cut-line\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t(click)=\"copyMessage(staticToken[3].key)\"\n\t\t\t\t\t\t\t\t\t\ttitle=\"{{ staticToken[3].key }}\"\n\t\t\t\t\t\t\t\t\t\tstyle=\"margin-right: 8px\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<span class=\"fa fa-clipboard\"></span>\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t<span title=\"{{ staticToken[3].value }}\">{{\n\t\t\t\t\t\t\t\t\t\tstaticToken[3].value\n\t\t\t\t\t\t\t\t\t}}</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</p-accordionTab>\n\t\t\t\t</ng-container>\n\t\t\t\t<p-accordionTab\n\t\t\t\t\t*ngIf=\"\n\t\t\t\t\t\tlCalculatedToken && showCalculatedForm === false && showCalculated === true\n\t\t\t\t\t\"\n\t\t\t\t\theader=\"Tokens calculados\"\n\t\t\t\t>\n\t\t\t\t\t<div *ngFor=\"let token of lCalculatedToken\" class=\"ui-g\">\n\t\t\t\t\t\t<div class=\"ui-g-12 ui-md-6 ui-lg-3 cut-line\">\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t(click)=\"copyMessage(labelCalculated(token))\"\n\t\t\t\t\t\t\t\ttitle=\"{{ labelCalculated(token) }}\"\n\t\t\t\t\t\t\t\tstyle=\"margin-right: 8px\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span class=\"fa fa-clipboard\"></span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t<span title=\"{{ token.name }}\">{{ token.name }}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</p-accordionTab>\n\t\t\t\t<p-accordionTab *ngIf=\"snapShotTokens && showSnapshot\" header=\"Tokens snapshot\">\n\t\t\t\t\t<div *ngFor=\"let token of snapShotTokens\" class=\"ui-g\">\n\t\t\t\t\t\t<div class=\"ui-g-12 ui-md-6 ui-lg-3 cut-line\">\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t(click)=\"copyMessage(labelSnapshot(token))\"\n\t\t\t\t\t\t\t\ttitle=\"{{ labelSnapshot(token) }}\"\n\t\t\t\t\t\t\t\tstyle=\"margin-right: 8px\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span class=\"fa fa-clipboard\"></span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t<span title=\"{{ token.name }}\">{{ token.name }}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</p-accordionTab>\n\t\t\t\t<p-accordionTab *ngIf=\"lGuaranteeTokens && showGuatantee\" header=\"Tokens Garantias\">\n\t\t\t\t\t<div *ngFor=\"let token of lGuaranteeTokens\" class=\"ui-g\">\n\t\t\t\t\t\t<div class=\"ui-g-12 ui-md-6 ui-lg-3 cut-line\">\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t(click)=\"copyMessage(labelGuarantee(token))\"\n\t\t\t\t\t\t\t\ttitle=\"{{ labelGuarantee(token) }}\"\n\t\t\t\t\t\t\t\tstyle=\"margin-right: 8px\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span class=\"fa fa-clipboard\"></span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t<span title=\"{{ token.name }}\">{{ token.name }}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</p-accordionTab>\n\t\t\t</p-accordion>\n\t\t</div>\n\t\t<div\n\t\t\tclass=\"col-md-12\"\n\t\t\t*ngIf=\"lCalculatedToken && showCalculatedForm === true && showCalculated === true\"\n\t\t>\n\t\t\t<span style=\"width: 1px; height: 10px\">&nbsp;</span>\n\t\t\t<h4 class=\"no-margin-top\">Tokens calculados</h4>\n\t\t\t<p-table [value]=\"lCalculatedToken\" [responsive]=\"true\">\n\t\t\t\t<ng-template pTemplate=\"header\">\n\t\t\t\t\t<tr class=\"text-align-center\">\n\t\t\t\t\t\t<th class=\"text-align-center\" width=\"40%\">Nombre</th>\n\t\t\t\t\t\t<th class=\"text-align-center\">Formula</th>\n\t\t\t\t\t\t<th class=\"text-align-center\">Creado</th>\n\t\t\t\t\t\t<th class=\"text-align-center\">Modificado</th>\n\t\t\t\t\t\t<th class=\"text-align-center\">Acciones</th>\n\t\t\t\t\t</tr>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template pTemplate=\"body\" let-token>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t(click)=\"copyMessage(labelCalculated(token))\"\n\t\t\t\t\t\t\t\tstyle=\"margin-right: 8px\"\n\t\t\t\t\t\t\t\ttitle=\"{{ labelCalculated(token) }}\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span class=\"fa fa-clipboard\"></span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t{{ token.name }}\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td class=\"cut-line\">{{ token.formula }}</td>\n\t\t\t\t\t\t<td>{{ token.createdAt | date: 'dd MMM yyyy' | lowercase }}</td>\n\t\t\t\t\t\t<td>{{ token.modifiedAt | date: 'dd MMM yyyy' | lowercase }}</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<div class=\"btn-group\" role=\"group\">\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tclass=\"btn btn-default\"\n\t\t\t\t\t\t\t\t\t(click)=\"initForm(token)\"\n\t\t\t\t\t\t\t\t\tpliAuthorityDirective\n\t\t\t\t\t\t\t\t\t[authorities]=\"[p('ROLE_TOKENS_CREAR_EDITAR')]\"\n\t\t\t\t\t\t\t\t\t[patCodigo]=\"patCodigo\"\n\t\t\t\t\t\t\t\t\t[externalAllowed]=\"false\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tEditar\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tclass=\"btn btn-default dropdown-toggle\"\n\t\t\t\t\t\t\t\t\tdata-toggle=\"dropdown\"\n\t\t\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\t\t\taria-expanded=\"false\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span class=\"caret\"></span>\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t<ul class=\"dropdown-menu\">\n\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\thref=\"Javascript:;\"\n\t\t\t\t\t\t\t\t\t\t\t(click)=\"delete(token)\"\n\t\t\t\t\t\t\t\t\t\t\tpliAuthorityDirective\n\t\t\t\t\t\t\t\t\t\t\t[authorities]=\"[p('ROLE_TOKENS_ELIMINAR')]\"\n\t\t\t\t\t\t\t\t\t\t\t[patCodigo]=\"patCodigo\"\n\t\t\t\t\t\t\t\t\t\t\t[externalAllowed]=\"false\"\n\t\t\t\t\t\t\t\t\t\t\t>Eliminar</a\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</ng-template>\n\t\t\t</p-table>\n\t\t\t<div class=\"text-align-right\" style=\"padding: 0.75rem 1.25rem\">\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclass=\"btn btn-primary\"\n\t\t\t\t\t(click)=\"initForm(null)\"\n\t\t\t\t\tpliAuthorityDirective\n\t\t\t\t\t[authorities]=\"[p('ROLE_TOKENS_CREAR_EDITAR')]\"\n\t\t\t\t\t[patCodigo]=\"patCodigo\"\n\t\t\t\t\t[externalAllowed]=\"false\"\n\t\t\t\t>\n\t\t\t\t\tAgregar nuevo\n\t\t\t\t</button>\n\t\t\t</div>\n\n\t\t\t<div>\n\t\t\t\t<form [formGroup]=\"frmToken\" (ngSubmit)=\"save()\" *ngIf=\"tokenSelected\">\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<div class=\"col-md-12\">\n\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t<div class=\"col-sm-6 col-md-6\">\n\t\t\t\t\t\t\t\t\t<div class=\"form-group required\">\n\t\t\t\t\t\t\t\t\t\t<label for=\"name\" class=\"form-control-label\">Nombre</label>\n\n\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\ttype=\"input\"\n\t\t\t\t\t\t\t\t\t\t\tclass=\"form-control\"\n\t\t\t\t\t\t\t\t\t\t\tname=\"name\"\n\t\t\t\t\t\t\t\t\t\t\tid=\"name\"\n\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"Nombre\"\n\t\t\t\t\t\t\t\t\t\t\tformControlName=\"controlName\"\n\t\t\t\t\t\t\t\t\t\t\t[(ngModel)]=\"tokenSelected.name\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<br /><br />\n\t\t\t\t\t\t\t\t\t\t<label class=\"form-control-label\">Llave:</label\n\t\t\t\t\t\t\t\t\t\t>&nbsp;&nbsp;<span style=\"font-weight: bold\">{{\n\t\t\t\t\t\t\t\t\t\t\tresolveKeyCalculatedToken()\n\t\t\t\t\t\t\t\t\t\t}}</span>\n\t\t\t\t\t\t\t\t\t\t<div class=\"form-control-error\">\n\t\t\t\t\t\t\t\t\t\t\t<small *ngIf=\"hasError(controlName, 'required')\"\n\t\t\t\t\t\t\t\t\t\t\t\t>Nombre es requerido</small\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t<div class=\"col-sm-6 col-md-6\">\n\t\t\t\t\t\t\t\t\t<div class=\"form-group required\">\n\t\t\t\t\t\t\t\t\t\t<label for=\"formula\" class=\"form-control-label\"\n\t\t\t\t\t\t\t\t\t\t\t>Formula</label\n\t\t\t\t\t\t\t\t\t\t>\n\n\t\t\t\t\t\t\t\t\t\t<!-- <input type=\"input\" class=\"form-control\" name=\"formula\" id=\"formula\" placeholder=\"Fórmula\"\n                        formControlName=\"formula\" [(ngModel)]=\"tokenSelected.formula\" /> -->\n\t\t\t\t\t\t\t\t\t\t<textarea\n\t\t\t\t\t\t\t\t\t\t\tcols=\"50\"\n\t\t\t\t\t\t\t\t\t\t\trows=\"4\"\n\t\t\t\t\t\t\t\t\t\t\tclass=\"form-control\"\n\t\t\t\t\t\t\t\t\t\t\tname=\"formula\"\n\t\t\t\t\t\t\t\t\t\t\tid=\"formula\"\n\t\t\t\t\t\t\t\t\t\t\tformControlName=\"controlFormula\"\n\t\t\t\t\t\t\t\t\t\t\t[(ngModel)]=\"tokenSelected.formula\"\n\t\t\t\t\t\t\t\t\t\t></textarea>\n\t\t\t\t\t\t\t\t\t\t<div class=\"form-control-error\">\n\t\t\t\t\t\t\t\t\t\t\t<small *ngIf=\"hasError(controlFormula, 'required')\"\n\t\t\t\t\t\t\t\t\t\t\t\t>Fórmula es requerida</small\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"card-footer text-align-right\">\n\t\t\t\t\t\t\t\t<button type=\"button\" (click)=\"cancel()\" class=\"btn btn-link\">\n\t\t\t\t\t\t\t\t\tCancelar\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t\tclass=\"btn btn-success\"\n\t\t\t\t\t\t\t\t\tpliAuthorityDirective\n\t\t\t\t\t\t\t\t\t[authorities]=\"[p('ROLE_TOKENS_CREAR_EDITAR')]\"\n\t\t\t\t\t\t\t\t\t[patCodigo]=\"patCodigo\"\n\t\t\t\t\t\t\t\t\t[externalAllowed]=\"false\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tGuardar\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</form>\n\t\t\t</div>\n\t\t\t<pli-snapshot-token\n\t\t\t\t[promCodigo]=\"promCodigo\"\n\t\t\t\t*ngIf=\"showSnapshotForm\"\n\t\t\t></pli-snapshot-token>\n\t\t</div>\n\t</div>\n\t<div class=\"row\">\n\t\t<div class=\"col-sm-12 col-md-12 col-lg-12\">\n\t\t\t<pli-guarantee-token [promCodigo]=\"promCodigo\" *ngIf=\"showGuatanteeForm\">\n\t\t\t</pli-guarantee-token>\n\t\t</div>\n\t</div>\n</div>\n","import {\n\tComponent,\n\tOnInit,\n\tChangeDetectorRef,\n\tEventEmitter,\n\tInput,\n\tOutput,\n\tOnChanges,\n\tSimpleChanges,\n\tSimpleChange\n} from '@angular/core';\nimport { ETypeColumn, SegFilter, SegColumn } from 'ng-pli-util';\nimport { CommonService } from '../../services/common.service';\n\ndeclare var $: any;\n@Component({\n    selector: 'app-dynamic-filter',\n    templateUrl: './dynamic-filter.component.html',\n    styleUrls: ['./dynamic-filter.component.css'],\n    standalone: false\n})\nexport class DynamicFilterComponent implements OnInit, OnChanges {\n\t/** */\n\tactive: boolean;\n\t/** List of filter */\n\t@Input() lSegFilter: SegFilter[];\n\t/** List of columns */\n\t@Input() lSegColumn: SegColumn[];\n\t/** List of columns */\n\t@Input() comboColumnWork: any[];\n\n\tdisplayDialog: boolean;\n\n\tmapSegColumnById: Map<string, SegColumn>;\n\n\t@Output() searchFilter: EventEmitter<SegFilter[]> = new EventEmitter();\n\n\tconstructor(protected cdRef: ChangeDetectorRef, protected commonService: CommonService) {}\n\n\tngOnInit() {}\n\n\t/** It manages the change of the every @Input */\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tconst comboColumnWork: SimpleChange = changes.comboColumnWork;\n\t\tif (comboColumnWork && comboColumnWork.currentValue) {\n\t\t\tthis.comboColumnWork = comboColumnWork.currentValue;\n\t\t\tthis.active = true;\n\t\t\tif (!this.lSegFilter || this.lSegFilter.length == 0) {\n\t\t\t\tthis.addFilter();\n\t\t\t}\n\t\t}\n\t\tconst lSegColumn: SimpleChange = changes.lSegColumn;\n\t\tif (lSegColumn && lSegColumn.currentValue) {\n\t\t\tthis.lSegColumn = lSegColumn.currentValue;\n\t\t\tthis.loadMapColumn();\n\t\t}\n\t\t// console.log(this.comboColumnWork);\n\t}\n\n\tloadMapColumn() {\n\t\tthis.mapSegColumnById = new Map<string, SegColumn>();\n\t\tfor (const segColumn of this.lSegColumn) {\n\t\t\tthis.mapSegColumnById.set(segColumn.idColumn.toString(), segColumn);\n\t\t}\n\t}\n\n\t/** it fires when select column */\n\tonSelectColumn(filter: SegFilter) {\n\t\tif (filter.idColumn) {\n\t\t\tlet column = this.getColumnById(filter.idColumn.toString());\n\t\t\tif (column) {\n\t\t\t\tfilter.idColumn = column.idColumn;\n\t\t\t\tfilter.type = column.type;\n\t\t\t\tfilter.label = column.label;\n\t\t\t\tfilter.key = column.key;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tNumber(filter.type) == this.getTypeNumber() ||\n\t\t\t\tNumber(filter.type) == this.getTypeDate()\n\t\t\t)\n\t\t\t\tfilter.operator = '1';\n\t\t\telse filter.operator = '3';\n\t\t\tconsole.log('filter', filter);\n\t\t}\n\t}\n\n\t/** It returns the type text */\n\tgetTypeText() {\n\t\treturn ETypeColumn.TEXTO;\n\t}\n\t/** It returns the type number */\n\tgetTypeNumber() {\n\t\treturn ETypeColumn.NUMERICO;\n\t}\n\t/** It returns the type date */\n\tgetTypeDate() {\n\t\treturn ETypeColumn.FECHA;\n\t}\n\n\t/** it deletes filter */\n\tdeleteFilter(i) {\n\t\tconsole.log('Eliminar ', i);\n\t\tif (this.lSegFilter) this.lSegFilter.splice(i, 1);\n\t\tif (!this.lSegFilter || !this.lSegFilter.length) this.addFilter();\n\t}\n\t/** it defines the conjunction */\n\tsetConjunction(filter: SegFilter, conjunction) {\n\t\tfilter.conjunction = conjunction;\n\t}\n\n\t/** it adds new filter */\n\taddFilter() {\n\t\tif (!this.lSegFilter) {\n\t\t\tthis.lSegFilter = [];\n\t\t}\n\t\tlet filter = new SegFilter();\n\t\tfilter.conjunction = 'Y';\n\t\tthis.lSegFilter.push(filter);\n\t}\n\n\t/** clean all filters */\n\tclean() {\n\t\tthis.lSegFilter = [];\n\t\tthis.addFilter();\n\t}\n\n\t/** clean all filters */\n\tdeleteAll() {\n\t\tif (this.lSegFilter) for (const filter of this.lSegFilter) filter.value = undefined;\n\t}\n\n\t/** it searches  */\n\tsearch() {\n\t\tthis.searchFilter.emit(this.lSegFilter);\n\t}\n\n\t/** return type input */\n\tgetTypeInput(type) {\n\t\tif (type == this.getTypeDate()) return 'date';\n\t\tif (type == this.getTypeNumber()) return 'text';\n\t\treturn 'text';\n\t}\n\n\t/** it returns the column by id */\n\tgetColumnById(id: string): SegColumn {\n\t\treturn this.mapSegColumnById.get(id);\n\t}\n}\n","<div class=\"flex flow-row-wrap\" style=\"margin:10px 0 0;justify-content: normal\" *ngIf=\"active\">\n\t<div class=\"segmentation-filter\" *ngFor=\"let filter of lSegFilter; let i = index\">\n\t\t<div *ngIf=\"filter.idColumn == undefined\">\n\t\t\t<div class=\"ml-sm\">\n\t\t\t\t<p-dropdown\n\t\t\t\t\t[autoWidth]=\"false\"\n\t\t\t\t\t[style]=\"{ width: '100%' }\"\n\t\t\t\t\tplaceholder=\"-- Seleccione opción\"\n\t\t\t\t\t[options]=\"comboColumnWork\"\n\t\t\t\t\t[group]=\"true\"\n\t\t\t\t\t[(ngModel)]=\"filter.idColumn\"\n\t\t\t\t\t(onChange)=\"onSelectColumn(filter)\"\n\t\t\t\t\t[filter]=\"true\"\n\t\t\t\t>\n\t\t\t\t</p-dropdown>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"flex align-items-center\" *ngIf=\"filter.idColumn != undefined\">\n\t\t\t<div class=\"ml-sm mr-sm\">\n\t\t\t\t<span class=\"input-group-btn conector\" *ngIf=\"i != 0\">\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclass=\"btn btn-info btn-sm br-5\"\n\t\t\t\t\t\t*ngIf=\"filter.conjunction == 'Y'\"\n\t\t\t\t\t\t(click)=\"setConjunction(filter, 'O')\"\n\t\t\t\t\t>\n\t\t\t\t\t\tY\n\t\t\t\t\t</button>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclass=\"btn btn-warning btn-sm br-5\"\n\t\t\t\t\t\t*ngIf=\"filter.conjunction == 'O'\"\n\t\t\t\t\t\t(click)=\"setConjunction(filter, 'Y')\"\n\t\t\t\t\t>\n\t\t\t\t\t\tO\n\t\t\t\t\t</button>\n\t\t\t\t</span>\n\t\t\t\t<span class=\"ml-sm\" *ngIf=\"i == 0\">\n\t\t\t\t\t<span class=\"btn btn-sm br-5\" style=\"cursor:auto;\">&nbsp;</span>\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t\t<div class=\"mr-sm\">\n\t\t\t\t<select\n\t\t\t\t\tclass=\"form-control input-sm select-operation\"\n\t\t\t\t\tstyle=\"width: 125px;\"\n\t\t\t\t\t[(ngModel)]=\"filter.operator\"\n\t\t\t\t>\n\t\t\t\t\t<option value=\"1\">Igual a</option>\n\t\t\t\t\t<option value=\"2\">Diferente a</option>\n\t\t\t\t\t<option value=\"3\" *ngIf=\"filter.type == getTypeText()\">Contiene</option>\n\t\t\t\t\t<option value=\"4\" *ngIf=\"filter.type == getTypeText()\">No contiene</option>\n\t\t\t\t\t<option\n\t\t\t\t\t\tvalue=\"5\"\n\t\t\t\t\t\t*ngIf=\"filter.type == getTypeNumber() || filter.type == getTypeDate()\"\n\t\t\t\t\t>\n\t\t\t\t\t\tMayor a</option\n\t\t\t\t\t>\n\t\t\t\t\t<option\n\t\t\t\t\t\tvalue=\"6\"\n\t\t\t\t\t\t*ngIf=\"filter.type == getTypeNumber() || filter.type == getTypeDate()\"\n\t\t\t\t\t>\n\t\t\t\t\t\tMayor o igual a</option\n\t\t\t\t\t>\n\t\t\t\t\t<option\n\t\t\t\t\t\tvalue=\"7\"\n\t\t\t\t\t\t*ngIf=\"filter.type == getTypeNumber() || filter.type == getTypeDate()\"\n\t\t\t\t\t>\n\t\t\t\t\t\tMenor a</option\n\t\t\t\t\t>\n\t\t\t\t\t<option\n\t\t\t\t\t\tvalue=\"8\"\n\t\t\t\t\t\t*ngIf=\"filter.type == getTypeNumber() || filter.type == getTypeDate()\"\n\t\t\t\t\t>\n\t\t\t\t\t\tMenor o igual a</option\n\t\t\t\t\t>\n\t\t\t\t\t<option value=\"9\">Es vacío</option>\n\t\t\t\t</select>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<input\n\t\t\t\t\t[type]=\"getTypeInput(filter.type)\"\n\t\t\t\t\t[disabled]=\"filter.operator == 9\"\n\t\t\t\t\tclass=\"form-control input-value input-sm\"\n\t\t\t\t\t[(ngModel)]=\"filter.value\"\n\t\t\t\t\t[placeholder]=\"filter.label\"\n\t\t\t\t\tstyle=\"width: 165px;\"\n\t\t\t\t\t(keyup.enter)=\"search()\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div class=\"flex ml-sm button_filter\">\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclass=\"btn btn-danger btn-sm btn-rounded\"\n\t\t\t\t\t(click)=\"deleteFilter(i)\"\n\t\t\t\t>\n\t\t\t\t\t<span class=\"fa fa-minus\"></span>\n\t\t\t\t</button>\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclass=\"btn btn-success btn-sm btn-rounded ml-sm\"\n\t\t\t\t\t(click)=\"addFilter()\"\n\t\t\t\t\t*ngIf=\"i + 1 == lSegFilter.length\"\n\t\t\t\t>\n\t\t\t\t\t<span class=\"fa fa-plus\"></span>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n<div class=\"row\" style=\"margin:0 0 10px\" *ngIf=\"active\">\n\t<div class=\"col-sm-12 panel-button\">\n\t\t<div class=\"btn-toolbar\">\n\t\t\t<div class=\"btn-group\">\n\t\t\t\t<button type=\"button\" class=\"btn btn-primary btn-sm btn-consult\" (click)=\"search()\">\n\t\t\t\t\tConsultar\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t\t<div class=\"btn-group\">\n\t\t\t\t<button type=\"button\" class=\"btn btn-danger btn-sm btn-delete\" (click)=\"clean()\">\n\t\t\t\t\tBorrar filtros\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t\t<div class=\"btn-group\">\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclass=\"btn btn-warning btn-sm btn-clear\"\n\t\t\t\t\t(click)=\"deleteAll()\"\n\t\t\t\t>\n\t\t\t\t\tlimpiar datos\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport * as XLSX from 'xlsx';\n\n@Component({\n    selector: 'pli-excel-to-json',\n    templateUrl: './excel-to-json.component.html',\n    styleUrls: ['./excel-to-json.component.css'],\n    standalone: false\n})\nexport class ExcelToJsonComponent implements OnInit {\n\texcelWorkbook: Array<any>;\n\tdisableButton = false;\n\n\t@Output() onLoadFile: EventEmitter<any> = new EventEmitter<any>();\n\n\tconstructor() {}\n\n\tngOnInit() {}\n\n\tonFileChange(event: any) {\n\t\tthis.excelWorkbook = [];\n\n\t\t/* wire up file reader */\n\t\tconst target: DataTransfer = <DataTransfer>event.target;\n\n\t\tif (target.files.length !== 1) {\n\t\t\tthrow new Error('Cannot use multiple files');\n\t\t}\n\n\t\tthis.disableButton = true;\n\t\tconst reader: FileReader = new FileReader();\n\n\t\treader.onload = (e: any) => {\n\t\t\t/* read workbook */\n\t\t\tconst bstr: string = e.target.result;\n\t\t\tconst wb: XLSX.WorkBook = XLSX.read(bstr, { type: 'binary', cellDates: true });\n\n\t\t\t/* read sheets */\n\t\t\tfor (let i = 0; i < wb.SheetNames.length; i++) {\n\t\t\t\t/* grab sheet */\n\t\t\t\tconst wsname: string = wb.SheetNames[i];\n\t\t\t\tconst ws: XLSX.WorkSheet = wb.Sheets[wsname];\n\n\t\t\t\t/* save data */\n\t\t\t\tconst sheet = {\n\t\t\t\t\tsheet: {\n\t\t\t\t\t\tlabel: wsname,\n\t\t\t\t\t\tcontent: <any>(\n\t\t\t\t\t\t\tXLSX.utils.sheet_to_json(ws, { raw: true, defval: '', header: 1 })\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.excelWorkbook.push(sheet);\n\t\t\t}\n\n\t\t\t/* emit data to suscribers*/\n\t\t\tthis.onLoadFile.emit({\n\t\t\t\tdata: this.excelWorkbook\n\t\t\t});\n\n\t\t\tthis.disableButton = false;\n\t\t};\n\n\t\treader.readAsBinaryString(target.files[0]);\n\t}\n}\n","<input type=\"file\" [disabled]=\"disableButton\" (change)=\"onFileChange($event)\" multiple=\"false\" />\n","import { OnInit, OnDestroy, Component, ChangeDetectorRef } from '@angular/core';\nimport { CommonService } from '../services/common.service';\nimport { CommonListsComponent } from './common.lists.component';\n\n@Component({\n    selector: 'app-configuration-commons',\n    template: '',\n    standalone: false\n})\nexport abstract class ConfigurationCommonsComponent\n\textends CommonListsComponent\n\timplements OnInit, OnDestroy\n{\n\t/** */\n\tfullWidth: boolean = false;\n\n\tconstructor(protected commonService: CommonService, protected cdRef: ChangeDetectorRef) {\n\t\tsuper(commonService, cdRef);\n\t}\n\n\tngOnInit() {\n\t\tsuper.ngOnInit();\n\t\tif (this.fullWidth) {\n\t\t\tconst element = document.getElementById('mainContainer');\n\t\t\tif (element) {\n\t\t\t\telement.classList.remove('container');\n\t\t\t}\n\t\t}\n\t}\n\n\tngOnDestroy() {\n\t\tif (this.fullWidth) {\n\t\t\tconst element = document.getElementById('mainContainer');\n\t\t\tif (element) {\n\t\t\t\telement.classList.add('container');\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Component, OnInit, Input, ChangeDetectorRef, EventEmitter, Output } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { ConfigurationCommonsComponent } from '../configuration.commons.component';\nimport { CommonService } from '../../services/common.service';\nimport { ConfigurationDocumentService } from '../../services/configuration-document.service';\nimport { Idioma, PdfConfig, EPdfOrientation, EPdfSize } from 'ng-pli-util';\n@Component({\n    selector: 'pli-pdf-config',\n    templateUrl: './pdf-config.component.html',\n    styleUrls: ['./pdf-config.component.css'],\n    standalone: false\n})\nexport class PdfConfigComponent extends ConfigurationCommonsComponent implements OnInit {\n\t/** it contains the prom codigo */\n\t@Input() promCodigo: number;\n\t/** Inputs to show the fields */\n\n\t@Input() showFormula: boolean = true;\n\t@Input() showSnapshot: boolean = false;\n\t@Input() showSnapshotForm: boolean = false;\n\t@Input() showName: boolean = false;\n\t@Input() showIdiCodigo: boolean = false;\n\t@Input() showCdocCodigo: boolean = false;\n\t@Input() showTemplate: boolean = false;\n\t@Input() showVisibles: boolean = false;\n\t@Input() showVisiblesDirectTo: boolean = false;\n\t@Input() showMargins: boolean = false;\n\t@Input() showHeader: boolean = false;\n\t@Input() showFooter: boolean = false;\n\t@Input() showFont: boolean = false;\n\t@Input() showTokens: boolean = false;\n\t/** It contains if visible frm tokens */\n\t@Input() showFrm: boolean = true;\n\t/** It contains if visible static tokens */\n\t@Input() showStatic: boolean = true;\n\t/** It contains if visible budget tokens */\n\t@Input() showBudget: boolean = true;\n\t/** It contains if visible calculated tokens */\n\t@Input() showCalculated: boolean = true;\n\t/** It contains if visible calculated form */\n\t@Input() showCalculatedForm: boolean = false;\n\t@Input() showSize: boolean = false;\n\t@Input() showOrientation: boolean = false;\n\t@Input() showRepeatHeader: boolean = false;\n\t@Input() showRepeatFooter: boolean = false;\n\t@Input() showPager: boolean = false;\n\t@Input() showHeaderFooterHeight: boolean = false;\n\t/** it contains the gropup document */\n\t@Input() tgdocCodigo: number = 10;\n\t/** it contains the pdf config */\n\t@Input() pdfConfig: PdfConfig;\n\t@Output() pdfConfigChange: EventEmitter<PdfConfig> = new EventEmitter<PdfConfig>();\n\n\t/** it contains the list language */\n\tlistLanguage: Idioma[];\n\t/** it contains the list documents */\n\tlistDocument: Array<any>;\n\t/** it contains the list fonts */\n\tlistFont: Array<any>;\n\t/** it contains the orientations list */\n\tlistOrientation: Array<EPdfOrientation>;\n\t/** it contains the sizes list */\n\tlistSizes: Array<EPdfSize>;\n\t/** it handles the space between margins and checks */\n\tshowBr: boolean;\n\t/** */\n\tconfigurationPdf: PdfConfig;\n\t/** It contians the list of token */\n\tlistStaticToken: any;\n\n\t/** Optional input for rich text toolbar */\n\t@Input()\n\ttoolbar: string;\n\n\t/** It contains the custom options for rich text*/\n\toptions: any;\n\n\tconstructor(\n\t\tprotected cdRef: ChangeDetectorRef,\n\t\tprotected commonService: CommonService,\n\t\tprotected configurationDocumentService: ConfigurationDocumentService\n\t) {\n\t\tsuper(commonService, cdRef);\n\t\tthis.options = { branding: false };\n\t}\n\n\tngOnInit() {\n\t\tthis.handleOptions();\n\t\tthis.initLists();\n\t}\n\n\thandleOptions() {\n\t\tif (this.toolbar) {\n\t\t\tthis.options.toolbar = this.toolbar;\n\t\t}\n\t}\n\n\t/** it initialiazes the lists */\n\tprivate initLists() {\n\t\t// list of font\n\t\tthis.listFont = [\n\t\t\t{ value: 'Arial', label: 'Arial' },\n\t\t\t{ value: 'Calibri', label: 'Calibri' },\n\t\t\t{ value: 'Georgia', label: 'Georgia' },\n\t\t\t{ value: 'Times', label: 'Times New Roman' },\n\t\t\t{ value: 'Verdana', label: 'Verdana' }\n\t\t];\n\n\t\t// It initializes orientation and size lists and value\n\t\tthis.listSizes = [EPdfSize.LETTER, EPdfSize.LEGAL];\n\t\tthis.listOrientation = [EPdfOrientation.PORTRAIT, EPdfOrientation.LANDSCAPE];\n\n\t\t// Default values\n\t\tthis.pdfConfig.size = this.pdfConfig.size || EPdfSize.LETTER.id;\n\t\tthis.pdfConfig.orientation = this.pdfConfig.orientation || EPdfOrientation.PORTRAIT.id;\n\t\tthis.pdfConfig.showPager =\n\t\t\ttypeof this.pdfConfig.showPager === 'undefined' ? true : this.pdfConfig.showPager;\n\t\tthis.pdfConfig.repeatHeader =\n\t\t\ttypeof this.pdfConfig.repeatHeader === 'undefined' ? true : this.pdfConfig.repeatHeader;\n\t\tthis.pdfConfig.repeatFooter =\n\t\t\ttypeof this.pdfConfig.repeatFooter === 'undefined' ? true : this.pdfConfig.repeatFooter;\n\n\t\t// it initializes languagelist\n\t\tif (this.showIdiCodigo)\n\t\t\tthis.commonService.onLanguageChanged().subscribe((result) => {\n\t\t\t\tif (result) this.listLanguage = result;\n\t\t\t});\n\n\t\t// it inializes the document\n\t\tif (this.showCdocCodigo)\n\t\t\tthis.configurationDocumentService\n\t\t\t\t.geListByPromCodigoAndTgdocCodigo(this.promCodigo, this.tgdocCodigo)\n\t\t\t\t.subscribe((result) => {\n\t\t\t\t\tthis.listDocument = result;\n\t\t\t\t});\n\t\tthis.showBr = this.showRepeatHeader || this.showRepeatFooter || this.showPager;\n\t}\n\t/** It sets the list of token */\n\tsetListToken(listToken: any) {\n\t\tthis.listStaticToken = listToken;\n\t}\n}\n","<div class=\"row\">\n\t<div class=\"col-md-3\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-sm-12\" *ngIf=\"showName\">\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<label for=\"name\" class=\"form-control-label\">Nombre *</label>\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tname=\"name\"\n\t\t\t\t\t\tid=\"name\"\n\t\t\t\t\t\tclass=\"form-control\"\n\t\t\t\t\t\t[(ngModel)]=\"pdfConfig.name\"\n\t\t\t\t\t\tplaceholder=\"Nombre\"\n\t\t\t\t\t/>\n\t\t\t\t\t<div class=\"form-control-error\"></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"col-sm-12\" *ngIf=\"showFormula\">\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<label for=\"formula\" class=\"form-control-label\"\n\t\t\t\t\t\t>Fórmula de la visibilidad del documento</label\n\t\t\t\t\t>\n\t\t\t\t\t<textarea\n\t\t\t\t\t\tstyle=\"resize: vertical\"\n\t\t\t\t\t\trows=\"2\"\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tname=\"formula\"\n\t\t\t\t\t\tid=\"formula\"\n\t\t\t\t\t\tclass=\"form-control\"\n\t\t\t\t\t\t[(ngModel)]=\"pdfConfig.formula\"\n\t\t\t\t\t\tplaceholder=\"Formula de la visibilidad del documento\"\n\t\t\t\t\t>\n\t\t\t\t\t</textarea>\n\t\t\t\t\t<div class=\"form-control-error\"></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=\"col-sm-12\" *ngIf=\"showIdiCodigo\">\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<label for=\"idiCodigo\" class=\"form-control-label\">Idioma *</label>\n\t\t\t\t\t<select\n\t\t\t\t\t\tname=\"idiCodigo\"\n\t\t\t\t\t\tid=\"idiCodigo\"\n\t\t\t\t\t\tclass=\"form-control\"\n\t\t\t\t\t\t[(ngModel)]=\"pdfConfig.idiCodigo\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<option value=\"\">-- Seleccione opción</option>\n\t\t\t\t\t\t<option *ngFor=\"let language of listLanguage\" [value]=\"language.idiCodigo\">\n\t\t\t\t\t\t\t{{ language.idiIdioma }}\n\t\t\t\t\t\t</option>\n\t\t\t\t\t</select>\n\t\t\t\t\t<div class=\"form-control-error\"></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=\"col-sm-12\" *ngIf=\"showCdocCodigo\">\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<label for=\"cdocCodigo\" class=\"form-control-label\">Tipo documento *</label>\n\t\t\t\t\t<select\n\t\t\t\t\t\tname=\"cdocCodigo\"\n\t\t\t\t\t\tid=\"cdocCodigo\"\n\t\t\t\t\t\tclass=\"form-control\"\n\t\t\t\t\t\t[(ngModel)]=\"pdfConfig.cdocCodigo\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<option value=\"\">-- Seleccione opción</option>\n\t\t\t\t\t\t<option *ngFor=\"let document of listDocument\" [value]=\"document.id\">\n\t\t\t\t\t\t\t{{ document.name }}\n\t\t\t\t\t\t</option>\n\t\t\t\t\t</select>\n\t\t\t\t\t<div class=\"form-control-error\"></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=\"col-sm-12\" *ngIf=\"showVisibles\">\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<label for=\"name\" class=\"form-control-label\">Visibilidad usuario</label>\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<div class=\"col-xs-12\">\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\tid=\"visibleInternal\"\n\t\t\t\t\t\t\t\tname=\"visibleInternal\"\n\t\t\t\t\t\t\t\tvalue=\"1\"\n\t\t\t\t\t\t\t\t[(ngModel)]=\"pdfConfig.visibleInternal\"\n\t\t\t\t\t\t\t/>&nbsp; <label for=\"visibleInternal\">Interno</label> &nbsp;&nbsp;&nbsp;\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\tid=\"visibleExternal\"\n\t\t\t\t\t\t\t\tname=\"visibleExternal\"\n\t\t\t\t\t\t\t\tvalue=\"1\"\n\t\t\t\t\t\t\t\t[(ngModel)]=\"pdfConfig.visibleExternal\"\n\t\t\t\t\t\t\t/>&nbsp;\n\t\t\t\t\t\t\t<label for=\"visibleExternal\">Externo</label>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"form-control-error\"></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=\"col-sm-12\"  *ngIf=\"showVisiblesDirectTo\" >\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<label for=\"name\" class=\"form-control-label\">Visibilidad de Dirigido a</label>\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<div class=\"col-xs-12\">\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\tid=\"notVisibleDirectTo\"\n\t\t\t\t\t\t\tname=\"notVisibleDirectTo\"\n\t\t\t\t\t\t\tvalue=\"1\"\n\t\t\t\t\t\t\t[(ngModel)]=\"pdfConfig.notVisibleDirectTo\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"form-control-error\"></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=\"col-sm-12\" *ngIf=\"showFont\">\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<label for=\"font\" class=\"form-control-label\">Tipo de letra</label>\n\t\t\t\t\t<select name=\"font\" id=\"font\" class=\"form-control\" [(ngModel)]=\"pdfConfig.font\">\n\t\t\t\t\t\t<option *ngFor=\"let font of listFont\" [value]=\"font.value\">\n\t\t\t\t\t\t\t{{ font.label }}\n\t\t\t\t\t\t</option>\n\t\t\t\t\t</select>\n\t\t\t\t\t<div class=\"form-control-error\"></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=\"col-sm-12\" *ngIf=\"showSize\">\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<label for=\"size\" class=\"form-control-label\">Tamaño de hoja</label>\n\t\t\t\t\t<select name=\"size\" id=\"size\" class=\"form-control\" [(ngModel)]=\"pdfConfig.size\">\n\t\t\t\t\t\t<option *ngFor=\"let size of listSizes\" [value]=\"size.id\">\n\t\t\t\t\t\t\t{{ size.name }}\n\t\t\t\t\t\t</option>\n\t\t\t\t\t</select>\n\t\t\t\t\t<div class=\"form-control-error\"></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=\"col-sm-12\" *ngIf=\"showOrientation\">\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<label for=\"orientation\" class=\"form-control-label\">Orientación</label>\n\t\t\t\t\t<select\n\t\t\t\t\t\tname=\"orientation\"\n\t\t\t\t\t\tid=\"orientation\"\n\t\t\t\t\t\tclass=\"form-control\"\n\t\t\t\t\t\t[(ngModel)]=\"pdfConfig.orientation\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<option\n\t\t\t\t\t\t\t*ngFor=\"let orientation of listOrientation\"\n\t\t\t\t\t\t\t[value]=\"orientation.id\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{ orientation.name }}\n\t\t\t\t\t\t</option>\n\t\t\t\t\t</select>\n\t\t\t\t\t<div class=\"form-control-error\"></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=\"col-sm-12\" *ngIf=\"showPager\">\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\tclass=\"check-space\"\n\t\t\t\t\t\t[(ngModel)]=\"pdfConfig.showPager\"\n\t\t\t\t\t\tid=\"showPager\"\n\t\t\t\t\t/>\n\t\t\t\t\t<label for=\"showPager\" class=\"form-control-label\"> Ver paginador</label>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=\"col-sm-12\" *ngIf=\"showRepeatHeader\">\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\tclass=\"check-space\"\n\t\t\t\t\t\t[(ngModel)]=\"pdfConfig.repeatHeader\"\n\t\t\t\t\t\tid=\"repeatHeader\"\n\t\t\t\t\t/>\n\t\t\t\t\t<label for=\"repeatHeader\" class=\"form-control-label\"> Repetir encabezado</label>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=\"col-sm-12\" *ngIf=\"showRepeatFooter\">\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\tclass=\"check-space\"\n\t\t\t\t\t\t[(ngModel)]=\"pdfConfig.repeatFooter\"\n\t\t\t\t\t\tid=\"repeatFooter\"\n\t\t\t\t\t/>\n\t\t\t\t\t<label for=\"repeatFooter\" class=\"form-control-label\">\n\t\t\t\t\t\tRepetir pie de página</label\n\t\t\t\t\t>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=\"col-md-12\" *ngIf=\"showMargins\" [ngClass]=\"{ 'top-space': showBr }\">\n\t\t\t\tMárgenes (cm)\n\t\t\t</div>\n\n\t\t\t<div class=\"col-sm-6\" *ngIf=\"showMargins\">\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<div class=\"col-xs-12\">\n\t\t\t\t\t\t\t<label for=\"pdfConfig.marginTop\" class=\"form-control-label\"\n\t\t\t\t\t\t\t\t>Arriba</label\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\tname=\"pdfConfig.marginTop\"\n\t\t\t\t\t\t\t\tid=\"pdfConfig.marginTop\"\n\t\t\t\t\t\t\t\tclass=\"form-control\"\n\t\t\t\t\t\t\t\tplaceholder=\"Arriba\"\n\t\t\t\t\t\t\t\t[(ngModel)]=\"pdfConfig.marginTop\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=\"col-sm-6\" *ngIf=\"showMargins\">\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<div class=\"col-xs-12\">\n\t\t\t\t\t\t\t<label for=\"pdfConfig.marginRight\" class=\"form-control-label\"\n\t\t\t\t\t\t\t\t>Derecha</label\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\tname=\"pdfConfig.marginRight\"\n\t\t\t\t\t\t\t\tid=\"pdfConfig.marginRight\"\n\t\t\t\t\t\t\t\tclass=\"form-control\"\n\t\t\t\t\t\t\t\tplaceholder=\"Derecha\"\n\t\t\t\t\t\t\t\t[(ngModel)]=\"pdfConfig.marginRight\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=\"col-sm-6\" *ngIf=\"showMargins\">\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<div class=\"col-xs-12\">\n\t\t\t\t\t\t\t<label for=\"pdfConfig.marginBottom\" class=\"form-control-label\"\n\t\t\t\t\t\t\t\t>Abajo</label\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\tname=\"pdfConfig.marginBottom\"\n\t\t\t\t\t\t\t\tid=\"pdfConfig.marginBottom\"\n\t\t\t\t\t\t\t\tclass=\"form-control\"\n\t\t\t\t\t\t\t\tplaceholder=\"Abajo\"\n\t\t\t\t\t\t\t\t[(ngModel)]=\"pdfConfig.marginBottom\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=\"col-sm-6\" *ngIf=\"showMargins\">\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<div class=\"col-xs-12\">\n\t\t\t\t\t\t\t<label for=\"pdfConfig.marginLeft\" class=\"form-control-label\"\n\t\t\t\t\t\t\t\t>Izquierda</label\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\tname=\"pdfConfig.marginLeft\"\n\t\t\t\t\t\t\t\tid=\"pdfConfig.marginLeft\"\n\t\t\t\t\t\t\t\tclass=\"form-control\"\n\t\t\t\t\t\t\t\tplaceholder=\"Izquierda\"\n\t\t\t\t\t\t\t\t[(ngModel)]=\"pdfConfig.marginLeft\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tclass=\"col-md-12\"\n\t\t\t\t*ngIf=\"showHeaderFooterHeight\"\n\t\t\t\t[ngClass]=\"{ 'top-space': showBr }\"\n\t\t\t>\n\t\t\t\tAlturas (cm)\n\t\t\t</div>\n\n\t\t\t<div class=\"col-sm-6\" *ngIf=\"showHeaderFooterHeight\">\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<div class=\"col-xs-12\">\n\t\t\t\t\t\t\t<label for=\"pdfConfig.marginTop\" class=\"form-control-label\"\n\t\t\t\t\t\t\t\t>Cabecera</label\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\tname=\"pdfConfig.headerHeight\"\n\t\t\t\t\t\t\t\tid=\"pdfConfig.headerHeight\"\n\t\t\t\t\t\t\t\tclass=\"form-control\"\n\t\t\t\t\t\t\t\tplaceholder=\"Cabecera\"\n\t\t\t\t\t\t\t\t[(ngModel)]=\"pdfConfig.headerHeight\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"col-sm-6\" *ngIf=\"showHeaderFooterHeight\">\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<div class=\"col-xs-12\">\n\t\t\t\t\t\t\t<label for=\"pdfConfig.marginTop\" class=\"form-control-label\"\n\t\t\t\t\t\t\t\t>Pie de página</label\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\tname=\"pdfConfig.footerHeight\"\n\t\t\t\t\t\t\t\tid=\"pdfConfig.footerHeight\"\n\t\t\t\t\t\t\t\tclass=\"form-control\"\n\t\t\t\t\t\t\t\tplaceholder=\"Pie de pág\"\n\t\t\t\t\t\t\t\t[(ngModel)]=\"pdfConfig.footerHeight\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=\"col-sm-12 margin-top\" *ngIf=\"showTokens\">\n\t\t\t\t<pli-configuration-token\n\t\t\t\t\t[promCodigo]=\"promCodigo\"\n\t\t\t\t\t[showFrm]=\"showFrm\"\n\t\t\t\t\t[showStatic]=\"showStatic\"\n\t\t\t\t\t[showBudget]=\"showBudget\"\n\t\t\t\t\t[showCalculated]=\"showCalculated\"\n\t\t\t\t\t[showCalculatedForm]=\"showCalculatedForm\"\n\t\t\t\t\t[showSnapshotForm]=\"showSnapshotForm\"\n\t\t\t\t\t[showSnapshot]=\"showSnapshot\"\n\t\t\t\t></pli-configuration-token>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"col-md-9\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-12\" *ngIf=\"showHeader\">\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<label for=\"header\" class=\"form-control-label\">Encabezado</label>\n\t\t\t\t\t<editor\n\t\t\t\t\t\t[(ngModel)]=\"pdfConfig.header\"\n\t\t\t\t\t\t[init]=\"{\n\t\t\t\t\t\t\tbranding: false,\n\t\t\t\t\t\t\tbase_url: '/tinymce',\n\t\t\t\t\t\t\tsuffix: '.min',\n\t\t\t\t\t\t\tplugins: [\n\t\t\t\t\t\t\t\t'code preview autoresize paste colorpicker textcolor link table lists advlist image'\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\ttoolbar:\n\t\t\t\t\t\t\t\t'undo redo | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | forecolor backcolor fontsizeselect | code preview image link'\n\t\t\t\t\t\t}\"\n\t\t\t\t\t></editor>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"row margin-top\" *ngIf=\"showTemplate\">\n\t\t\t<div class=\"col-md-12\">\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<label for=\"template\" class=\"form-control-label\">Cuerpo</label>\n\t\t\t\t\t<editor\n\t\t\t\t\t\t[(ngModel)]=\"pdfConfig.template\"\n\t\t\t\t\t\t[init]=\"{\n\t\t\t\t\t\t\tbranding: false,\n\t\t\t\t\t\t\tbase_url: '/tinymce',\n\t\t\t\t\t\t\tsuffix: '.min',\n\t\t\t\t\t\t\tplugins: [\n\t\t\t\t\t\t\t\t'code preview autoresize paste colorpicker textcolor link table lists advlist image'\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\ttoolbar:\n\t\t\t\t\t\t\t\t'undo redo | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | forecolor backcolor fontsizeselect | code preview image link'\n\t\t\t\t\t\t}\"\n\t\t\t\t\t></editor>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"row margin-top\" *ngIf=\"showFooter\">\n\t\t\t<div class=\"col-md-12\">\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<label for=\"footer\" class=\"form-control-label\">Pie de página</label>\n\t\t\t\t\t<editor\n\t\t\t\t\t\t[(ngModel)]=\"pdfConfig.footer\"\n\t\t\t\t\t\t[init]=\"{\n\t\t\t\t\t\t\tbranding: false,\n\t\t\t\t\t\t\tbase_url: '/tinymce',\n\t\t\t\t\t\t\tsuffix: '.min',\n\t\t\t\t\t\t\tplugins: [\n\t\t\t\t\t\t\t\t'code preview autoresize paste colorpicker textcolor link table lists advlist image'\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\ttoolbar:\n\t\t\t\t\t\t\t\t'undo redo | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | forecolor backcolor fontsizeselect | code preview image link'\n\t\t\t\t\t\t}\"\n\t\t\t\t\t></editor>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpParams, HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { DataTableParameters } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class DataFormService {\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\t/** It returns the list of data form by prom codigo */\n\tgetByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'data/getByPromCodigo',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCodigo.toString()) }\n\t\t);\n\t}\n\n\t/** It returns the list of data form by application id */\n\tgetByApplicationId(applicationId: string): Observable<any> {\n\t\t//\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'data/getByApplicationId',\n\t\t\t{ params: new HttpParams().set('applicationId', applicationId) }\n\t\t);\n\t}\n\n\t/** It returns a data form by applciationId and FormId */\n\tgetByApplicationIdAndFormId(applicationId: string, formId: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'data/getByApplicationIdAndFormId',\n\t\t\t{ params: new HttpParams().set('applicationId', applicationId).set('formId', formId) }\n\t\t);\n\t}\n\n\t/** It returns if there is any field unique that is repeated */\n\tuniqueFieldsByFormId(data: any, formId: string, dataId: string): Observable<any> {\n\t\tlet url =\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t'data/uniqueFieldsByFormId?formId=' +\n\t\t\tformId;\n\t\tif (dataId) url += '&dataId=' + dataId;\n\t\treturn this.httpClient.post(url, data, this.headerJson);\n\t}\n\n\t/** it validates the document leaders and members */\n\tvalidateNumberDocumentLeadersAndMembers(applicationId: string, formId: string, data: any) {\n\t\tlet url =\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t'data/validateNumberDocumentLeadersAndMembers?formId=' +\n\t\t\tformId +\n\t\t\t'&applicationId=' +\n\t\t\tapplicationId;\n\t\treturn this.httpClient.post(url, data, this.headerJson);\n\t}\n\n\t/**\n\t * It returns an object with the fields that are required and dont have value\n\t * @param applicationId\n\t * @param formId\n\t */\n\trequiredFieldsByAppIdAndFormId(applicationId: string, formId: string) {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'data/getRequiredFields',\n\t\t\t{ params: new HttpParams().set('applicationId', applicationId).set('formId', formId) }\n\t\t);\n\t}\n\n\t/**\n\t * It saves a data-form\n\t * @param formId\n\t * @param data\n\t * @param applicationId\n\t * @param promCodigo\n\t * @param id\n\t */\n\tsave(formId: string, data: any, applicationId: string, promCodigo: number) {\n\t\tlet src =\n\t\t\t'data/getForm/submission?formId=' +\n\t\t\tformId +\n\t\t\t'&promCodigo=' +\n\t\t\tpromCodigo +\n\t\t\t'&applicationId=' +\n\t\t\tapplicationId;\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + src,\n\t\t\tdata,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tsaveMultiaplicacion(data: any) {\n\t\treturn this.httpClient.post(this.environment.host.backend.frontoffice + 'data/save', data);\n\t}\n\n\tgetDataForm(formId: string, applicationId: string, promCodigo: number) {\n\t\tconst src = this.getDataFormUrl(formId, applicationId, promCodigo);\n\t\treturn this.httpClient.get(src, this.headerJson);\n\t}\n\n\tgetDataFormUrl(formId: string, applicationId: string, promCodigo: number): string {\n\t\t// tslint:disable-next-line:max-line-length\n\t\treturn `${this.environment.host.backend.frontoffice}data/getForm?formId=${formId}&promCodigo=${promCodigo}&applicationId=${applicationId}`;\n\t}\n\n\t/**\n\t * Updates a data-form\n\t *\n\t * @param dataForm\n\t */\n\tupdate(dataForm: any) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'data/save',\n\t\t\tdataForm,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/**\n\t * Updates a data-form\n\t *\n\t * @param dataForm\n\t */\n\tupdateCell(applicationId: string, formId: string, cellName: string, cellValue: any) {\n\t\tlet options = new HttpParams()\n\t\t\t.set('applicationId', applicationId)\n\t\t\t.set('formId', formId)\n\t\t\t.set('cellName', cellName)\n\t\t\t.set('cellValue', cellValue);\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'data/update_cell?formId=' +\n\t\t\t\tformId +\n\t\t\t\t'&applicationId=' +\n\t\t\t\tapplicationId +\n\t\t\t\t'&cellName=' +\n\t\t\t\tcellName +\n\t\t\t\t'&cellValue=' +\n\t\t\t\tcellValue,\n\t\t\t{\n\t\t\t\tparams: options\n\t\t\t},\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/**\n\t * Updates a data-form\n\t *\n\t * @param dataForm\n\t */\n\tupdateFields(applicationId: string, forms: any, keysByForm: any, fields: any) {\n\t\tlet body = {\n\t\t\tforms: forms,\n\t\t\tkeysByForm: keysByForm,\n\t\t\tfields: fields\n\t\t};\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'data/update_fields?applicationId=' +\n\t\t\t\tapplicationId,\n\t\t\tbody,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tsaveDataHistory(applicationId: string, formId: string) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'data/saveDataHistory?applicationId=' +\n\t\t\t\tapplicationId +\n\t\t\t\t'&formId=' +\n\t\t\t\tformId,\n\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/**\n\t * Updates a data-form\n\t *\n\t * @param dataForm\n\t */\n\tupdateKeyValByAppIdAndFormId(data) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'data/updateColumn',\n\t\t\tdata,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/**\n\t * save multiple records\n\t * @param listData +\n\t */\n\tsaveMultiple(listData: any[]) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'data/saveMultiple',\n\t\t\tlistData,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/**\n\t * save multiple records for multi-application\n\t * @param listData +\n\t */\n\tsaveMultiSubmission(listData: any[]) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'data/save-multiSubmission',\n\t\t\tlistData,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/**\n\t * save multiple records\n\t * @param listData +\n\t */\n\tgetByDataTablesParameters(dataTableParameters: DataTableParameters) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'data/getByDataTablesParameters',\n\t\t\tdataTableParameters,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It returns the list of application with the dataform */\n\tgetByApplicationIdList(lApplicationId: string[]): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'data/getByApplicationIdList',\n\t\t\t{ params: new HttpParams().set('lApplicationId', lApplicationId.toString()) }\n\t\t);\n\t}\n}\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport {\n\tApplication,\n\tApplicationCnfStatusRequestTO,\n\tApplicationDataFormRequest,\n\tApplicationFormTO,\n\tApplicationValueRequestTO,\n\tChangeStatusByCategoryDto,\n\tChangeStatusDocumenValidationRequest,\n\tDataTableParameters,\n\tInitialRecord,\n\tNewCommitteeSelectedTO,\n\tSendDocAnalysisAutoDto\n} from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class ApplicationService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/** It returns an application by id */\n\tgetById(id: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'application/getById',\n\t\t\t{ params: new HttpParams().set('id', id) }\n\t\t);\n\t}\n\n\t/** It returns an application by id with basic properties */\n\tgetByIdLight(id: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'application/getByIdLight',\n\t\t\t{ params: new HttpParams().set('id', id) }\n\t\t);\n\t}\n\n\t/** It returns an application by id with the Budget Simulation */\n\tgetBudgetSimulationById(id: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'application/getBudgetSimulationById',\n\t\t\t{ params: new HttpParams().set('id', id) }\n\t\t);\n\t}\n\n\t/** It returns an application by id with basic properties */\n\tgetByIdLightIn(idList: string[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'application/getByIdLightIn',\n\t\t\tidList\n\t\t);\n\t}\n\n\t/** It returns the list of application by dataTableParameters */\n\tgetApplicationsByDataTableParameters(\n\t\tdataTableParameters: DataTableParameters\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'application/getApplicationsByDataTableParameters',\n\t\t\tdataTableParameters\n\t\t);\n\t}\n\n\t/** It returns the list of application by prom codigo */\n\tgetByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'application/getByPromCodigo',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCodigo.toString()) }\n\t\t);\n\t}\n\n\t/** It returns the list of application by username */\n\tgetByUsername(username: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'application/getByUsername',\n\t\t\t{ params: new HttpParams().set('username', username) }\n\t\t);\n\t}\n\n\t/** It saves an application */\n\tsave(application: Application): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'application/save',\n\t\t\tapplication,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** it returns the last number */\n\tgetLastNumber(promCodigo: number) {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'application/getLastNumber',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCodigo.toString()) }\n\t\t);\n\t}\n\n\t/** it changes the status */\n\tchangeStatusByCategory(\n\t\tlChangeStatusByCategoryDto: ChangeStatusByCategoryDto[]\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'application/changeStatusByCategory',\n\t\t\tlChangeStatusByCategoryDto,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** it changes the status */\n\tchangeMassiveStatus(lApplication: Application[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'application/changeMassiveStatus',\n\t\t\tlApplication,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tpublic changeColor(applicationList: string[], color: number): Observable<any> {\n\t\tconst params = { applicationId: applicationList, color: color };\n\t\treturn this.httpClient.put(\n\t\t\t`${this.environment.host.backend.backoffice}application/changeColor`,\n\t\t\tparams\n\t\t);\n\t}\n\n\t/** it gets the history state */\n\tgetHistoryState(applicationId: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'application/getHistoryState',\n\t\t\t{ params: new HttpParams().set('applicationId', applicationId.toString()) }\n\t\t);\n\t}\n\n\t/** it saves massively */\n\tsaveMassive(\n\t\tlistApplicationDataFormRequest: ApplicationDataFormRequest[],\n\t\tapplicationsToVerifyDocument: String[],\n\t\tpromCodigo: number,\n\t\tstatusRadicado: boolean\n\t) {\n\t\tlet listDataApplication = {\n\t\t\tlistApplicationDataFormRequest: listApplicationDataFormRequest,\n\t\t\tapplicationsToVerifyDocument: applicationsToVerifyDocument,\n\t\t\tpromCodigo: promCodigo,\n\t\t\tstatusRadicado: statusRadicado\n\t\t};\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'application-dataform/saveMultiple',\n\t\t\tlistDataApplication,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/**\n\t * save multiple records\n\t * @param listData +\n\t */\n\tgetByDataTablesParameters(dataTableParameters: DataTableParameters) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'application/getByDataTablesParameters',\n\t\t\tdataTableParameters,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/**\n\t * It gets the basic information of the application to show in assign task\n\t * @param taskId\n\t * @param promCodigo\n\t * @param reviewer\n\t */\n\tgetByTaskIdPromCodigoAndReviewer(dataTableParameters: DataTableParameters): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'application/getByTaskPromCodigoAndReviewer',\n\t\t\tdataTableParameters,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/**\n\t * It gets applications by datatable parameters from backoffice\n\t * @param dataTableParameters\n\t */\n\tgetBackAppByDataTablesParameters(dataTableParameters: DataTableParameters) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'application/getByDataTablesParameters',\n\t\t\tdataTableParameters,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/**\n\t * save multiple records\n\t * @param listData +\n\t */\n\tgetByDataTablesParametersApp(dataTableParameters: DataTableParameters) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'application/getByDataTablesParametersApp',\n\t\t\tdataTableParameters,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It returns the list of application by prom codigo */\n\tgetByNumberAndPromCodigo(promCodigo: number, number: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'application/getByNumberAndPromCodigo',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t.set('number', number.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tacceptCredit(application: Application): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'application/acceptCredit',\n\t\t\tapplication,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tconfirmBudgetAppointment(application: Application): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'application/confirmBudgetAppointment',\n\t\t\tapplication,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tinitGuaranteeProcess(application: Application): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'application/initGuaranteeProcess',\n\t\t\tapplication,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tgetLegalizationAndEnsuranceByApplicationId(applicationId: String[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'application/getLegalizationAndEnsuranceByApplicationId',\n\t\t\tapplicationId,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tgenerateBankVisionFiles(applicationId: String[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'application/generateBankVisionFiles',\n\t\t\tapplicationId,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tsaveAcceptDataProcessing(application: Application): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'application/saveAcceptDataProcessing',\n\t\t\tapplication,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/**\n\t * Save total budget amounts, the creditAccepted could be null, the service search this.\n\t * @param applicationBudgetTotalAmount An json object with: applicationBudgetTotal, applicationId:string, creditAccepted:boolean\n\t */\n\tsaveBudgetTotalAmount(applicationBudgetTotalAmount: any): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'application/saveBudgetTotalAmount',\n\t\t\tapplicationBudgetTotalAmount,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/**\n\t * Save financing observation in budget application.\n\t * @param ApplicationBudgetObservation An json object with: observation:string, applicationId:string\n\t */\n\tsaveObservationFinancingBudget(ApplicationBudgetObservation: any): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'application/saveObservationFinancingBudget',\n\t\t\tApplicationBudgetObservation,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tblockBudget(applicationId: String) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'application/blockBudget',\n\t\t\tapplicationId,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tunblockBudget(applicationId: String, observation: String) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'application/unblockBudget',\n\t\t\t{ applicationId: applicationId, observation: observation },\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tisBlockBudget(applicationId: String) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'application/isBlockBudget',\n\t\t\tapplicationId,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tsendCodebtorResponseByStaticInteraction(\n\t\tapplicationId: string,\n\t\tinteraction: number,\n\t\tpromCodigo: number,\n\t\tresponse: boolean,\n\t\tcodebtor: string,\n\t\tchangeStatusByCategoryDto: ChangeStatusByCategoryDto,\n\t\tsendEmailToCodebtor: boolean\n\t) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'application/sendCodebtorResponseByStaticInteraction',\n\t\t\tchangeStatusByCategoryDto,\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', applicationId)\n\t\t\t\t\t.set('codebtor', codebtor)\n\t\t\t\t\t.set('response', response.toString())\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t.set('interaction', interaction.toString())\n\t\t\t\t\t.set('sendEmailToCodebtor', sendEmailToCodebtor.toString()),\n\t\t\t\theaders: this.headerJson.headers\n\t\t\t}\n\t\t);\n\t}\n\n\t/**\n\t * Get unsent applications\n\t * @param promCodigo\n\t * @param budgetTypeId\n\t * @param formIds\n\t */\n\tgetFullNotSubmittedByPromCodigo(\n\t\tpromCodigo: string,\n\t\tbudgetTypeId: string,\n\t\tformIds: string[],\n\t\tstateId: number,\n\t\tatLeastOneDocument = false\n\t) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'application/getFullNotSubmittedByPromCodigo',\n\t\t\tformIds,\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo)\n\t\t\t\t\t.set('budgetTypeId', budgetTypeId)\n\t\t\t\t\t.set('stateId', String(stateId))\n\t\t\t\t\t.set('atLeastOneDocument', String(atLeastOneDocument)),\n\t\t\t\theaders: this.headerJson.headers\n\t\t\t}\n\t\t);\n\t}\n\n\tgetNotSubmittedByFullDocuments(promCodigo: string, stateId: number) {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'application/getNotSubmittedByFullDocuments',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo)\n\t\t\t\t\t.set('stateId', String(stateId))\n\t\t\t}\n\t\t);\n\t}\n\n\t/**\n\t *\n\t * @param applicationId\n\t */\n\tgetMassiveDataByApplicationId(applicationId: string) {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'budget/getMassiveDataByApplicationId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('applicationId', applicationId)\n\t\t\t}\n\t\t);\n\t}\n\n\tgetByUsernameAndPromCodigo(username: string, promCodigos: number[]): Observable<Application[]> {\n\t\tconst applicationRequest = { username, promCodigos };\n\t\treturn this.httpClient.post<Application[]>(\n\t\t\tthis.environment.host.backend.frontoffice + 'application/getByUsernameAndPromCodigos',\n\t\t\tapplicationRequest\n\t\t);\n\t}\n\n\tupdateAllInitialRecord(initialRecord: InitialRecord): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'application/updateAllInitialRecord',\n\t\t\tinitialRecord,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tupdateSingleApplicationValue(\n\t\tapplicationValueRequestTO: ApplicationValueRequestTO\n\t): Observable<any> {\n\t\treturn this.httpClient.put(\n\t\t\t`${this.environment.host.backend.frontoffice}application/updateSingleApplicationValue`,\n\t\t\tapplicationValueRequestTO\n\t\t);\n\t}\n\n\t/** It returns the list by dataTableParameters for automatic document analysis*/\n\tgetByByDocumentValidation(dataTableParameters: DataTableParameters): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'application/getByByDocumentValidation',\n\t\t\tdataTableParameters\n\t\t);\n\t}\n\n\t/** Change document status manually.*/\n\tupdateStatusValidationDocument(\n\t\tchangeStatusDocumenValidationRequest: ChangeStatusDocumenValidationRequest\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'application/updateStatusValidationDocument',\n\t\t\tchangeStatusDocumenValidationRequest\n\t\t);\n\t}\n\n\tupdateAnalysisDocumentInfo(applicationFormTO: ApplicationFormTO): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'application/updateAnalysisDocumentInfo',\n\t\t\tapplicationFormTO\n\t\t);\n\t}\n\n\tverifyAutoAnalysisDoc(sendDocAnalysisAutoDto: SendDocAnalysisAutoDto): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'application/verifyAutoAnalysisDoc',\n\t\t\tsendDocAnalysisAutoDto\n\t\t);\n\t}\n\n\tgetAppCountByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'application/getAppCountByPromCodigo',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCodigo) }\n\t\t);\n\t}\n\n\tgetPeaceAndSafetyRiskCentersByApplicationId(\n\t\tapplicationId: String[],\n\t\tpromCodigo: number\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'application/getPeaceAndSafetyRiskCentersByApplicationId',\n\t\t\tapplicationId,\n\t\t\t{\n\t\t\t\theaders: this.headerJson.headers,\n\t\t\t\tparams: new HttpParams().set('promCodigo', promCodigo)\n\t\t\t}\n\t\t);\n\t}\n\n\tvalidateApplicationStatus(\n\t\tapplicationCnfStatusRequestTO: ApplicationCnfStatusRequestTO\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'application/validateApplicationStatus',\n\t\t\tapplicationCnfStatusRequestTO,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tupdateAllStatusAndColor(newCommitteeSelectedTo: NewCommitteeSelectedTO): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'application/updateAllStatusAndColor',\n\t\t\tnewCommitteeSelectedTo,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class TokenTransformationService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It returns a string witn tokens transforms  */\n\ttransform(txt: string, promCodigo: number, applicationId: string): Observable<any> {\n\t\tlet data = {\n\t\t\ttxt: txt,\n\t\t\tpromCodigo: promCodigo,\n\t\t\tapplicationId: applicationId\n\t\t};\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'token-transformation/',\n\t\t\tdata,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It returns a string witn tokens transforms  */\n\ttransformAndKeepToken(\n\t\ttxt: string,\n\t\tpromCodigo: number,\n\t\tapplicationId: string,\n\t\tkeepToken: boolean,\n\t\tlocale: string\n\t): Observable<any> {\n\t\tconst data = { txt, promCodigo, applicationId, keepToken, locale };\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'token-transformation/transformAndKeepToken',\n\t\t\tdata,\n\t\t\tthis.headerJson\n\t\t\t// {\n\t\t\t// \tparams: new HttpParams().set('keepToken', keepToken.toString()),\n\t\t\t// \theaders: this.headerJson.headers\n\t\t\t// }\n\t\t);\n\t}\n\n\t/** It returns a string witn tokens transforms  */\n\ttransformByUsername(txt: string, promCodigo: number, username: string): Observable<any> {\n\t\tlet data = {\n\t\t\ttxt: txt,\n\t\t\tpromCodigo: promCodigo,\n\t\t\tusername: username\n\t\t};\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'token-transformation/transformByUsername',\n\t\t\tdata,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It returns a string with formula result */\n\tresolveFormula(formula: string, promCodigo: number, applicationId: string): Observable<any> {\n\t\tlet data = {\n\t\t\tformula: formula,\n\t\t\tpromCodigo: promCodigo,\n\t\t\tapplicationId: applicationId\n\t\t};\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'token-transformation/resolveFormula',\n\t\t\tdata,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import {\n\tComponent,\n\tElementRef,\n\tHostListener,\n\tInput,\n\tViewChild,\n\tOutput,\n\tEventEmitter\n} from '@angular/core';\nimport { SafeUrl } from '@angular/platform-browser';\nimport { DataFormApplication, PdfDocument, PliCnfLookAndFeel, RequestPdf } from 'ng-pli-util';\nimport { PliCnfPdf } from 'ng-pli-util/lib/models/pli-cnf-pdf';\nimport { MenuItem } from 'primeng/api';\n\nimport { ApplicationService } from '../../services/application.service';\nimport { DataFormService } from '../../services/data-form.service';\nimport { PppService } from '../../services/ppp.service';\nimport { CommonService } from '../../services/common.service';\nimport { TokenTransformationService } from '../../services/token-transformation.service';\n\n@Component({\n    selector: 'pli-pdf-generator',\n    templateUrl: './pdf-generator.component.html',\n    styleUrls: ['./pdf-generator.component.scss'],\n    standalone: false\n})\nexport class PdfGeneratorComponent {\n\t@Input()\n\tset configurations(cnfPdf: PliCnfPdf[]) {\n\t\tthis.items = cnfPdf.map((c) => ({\n\t\t\tlabel: c.name,\n\t\t\tcommand: async () => {\n\t\t\t\tthis.configuration = c;\n\t\t\t\tawait this.htmltoPDF();\n\t\t\t}\n\t\t}));\n\t}\n\n\t@Input()\n\tset applicationId(value: string) {\n\t\tthis._applicationId = value;\n\t}\n\n\t@ViewChild('content') contentElement: ElementRef<any>;\n\t@Input() showLabel = false;\n\t@Input() actionClass = 'referenceClass';\n\t@Input() promCode: number;\n\n\tdisplay: boolean = true;\n\titems: MenuItem[] = [];\n\tconfiguration: PliCnfPdf;\n\theaderHtml: string;\n\tfooterHtml: string;\n\tBodyHtml: string;\n\turlLogo: SafeUrl;\n\t_applicationId: string;\n\tpdfDocument: PdfDocument;\n\tlookAndFeelModel: PliCnfLookAndFeel;\n\tdataForms: DataFormApplication[] = [];\n\tallDataForms: DataFormApplication[] = [];\n\tforms: any[] = [];\n\t/** base64 as result of html 2 pdf */\n\tbase64: string;\n\n\t/** it contains the id of canvas */\n\tid_canvas: string = 'pdf-canvas';\n\n\tready: boolean = false;\n\t@Output() onDownload: EventEmitter<any> = new EventEmitter<any>();\n\t@HostListener('click', ['$event'])\n\tonClick(event: MouseEvent): void {\n\t\tif (!this._applicationId) {\n\t\t\tthis._applicationId = this.getElementIdFromEvent(event.composedPath());\n\t\t}\n\t}\n\n\tconstructor(\n\t\tprivate readonly dataFormService: DataFormService,\n\t\tprivate readonly applicationService: ApplicationService,\n\t\tprivate readonly pppService: PppService,\n\t\tprivate readonly commonService: CommonService,\n\t\tprivate tokenTransformationService: TokenTransformationService\n\t) {}\n\n\tprivate getElementIdFromEvent(path: any[]): string {\n\t\tconst element = this.getElement(path);\n\t\treturn element ? element.getAttribute('data-element-id') : '';\n\t}\n\n\tprivate getElement(pathList: any[]) {\n\t\treturn pathList.find(\n\t\t\t(element) => element.classList && element.classList.contains(this.actionClass)\n\t\t);\n\t}\n\n\tasync htmltoPDF() {\n\t\tconst applicationData = await this.applicationService\n\t\t\t.getById(this._applicationId)\n\t\t\t.toPromise();\n\n\t\tconst promCodigo = applicationData.promCodigo;\n\n\t\tthis.allDataForms = await this.dataFormService\n\t\t\t.getByApplicationId(this._applicationId)\n\t\t\t.toPromise();\n\t\t//get patCode\n\t\tconst patCode = this.pppService.getPatCodigoByPromCodigo(this.promCode);\n\t\t//get header\n\n\t\tif (this.configuration.header) {\n\t\t\t/*const header: any = await this.pliCnfHeaderService\n\t\t\t\t.getByPromCodigo(this.promCode)\n\t\t\t\t.toPromise();*/\n\t\t\tconst text = await this.tokenTransformationService\n\t\t\t\t.transformAndKeepToken(\n\t\t\t\t\tthis.configuration.header,\n\t\t\t\t\tpromCodigo,\n\t\t\t\t\tthis._applicationId,\n\t\t\t\t\ttrue,\n\t\t\t\t\t'es'\n\t\t\t\t)\n\t\t\t\t.toPromise();\n\t\t\tthis.headerHtml = text.txt;\n\t\t}\n\n\t\t//get footer\n\t\tif (this.configuration.footer) {\n\t\t\tconst text = await this.tokenTransformationService\n\t\t\t\t.transformAndKeepToken(\n\t\t\t\t\tthis.configuration.footer,\n\t\t\t\t\tpromCodigo,\n\t\t\t\t\tthis._applicationId,\n\t\t\t\t\ttrue,\n\t\t\t\t\t'es'\n\t\t\t\t)\n\t\t\t\t.toPromise();\n\t\t\tthis.footerHtml = text.txt;\n\t\t}\n\n\t\tif (this.configuration.body) {\n\t\t\tconst text = await this.tokenTransformationService\n\t\t\t\t.transformAndKeepToken(\n\t\t\t\t\tthis.configuration.body,\n\t\t\t\t\tpromCodigo,\n\t\t\t\t\tthis._applicationId,\n\t\t\t\t\ttrue,\n\t\t\t\t\t'es'\n\t\t\t\t)\n\t\t\t\t.toPromise();\n\t\t\tthis.BodyHtml = text.txt;\n\t\t}\n\n\t\tawait this.exportAsPDF();\n\t}\n\n\tasync exportAsPDF() {\n\t\t// if html was changed\n\t\tlet requestPdf: RequestPdf = new RequestPdf();\n\t\trequestPdf.html = this.BodyHtml;\n\t\trequestPdf.header = this.headerHtml;\n\t\trequestPdf.footer = this.footerHtml;\n\t\trequestPdf.lang = 'es';\n\t\trequestPdf.marginTop = this.configuration.marginTop;\n\t\trequestPdf.marginRight = this.configuration.marginRight;\n\t\trequestPdf.marginBottom = this.configuration.marginBottom;\n\t\trequestPdf.marginLeft = this.configuration.marginLeft;\n\n\t\trequestPdf.repeatHeader = true;\n\t\trequestPdf.repeatFooter = true;\n\t\trequestPdf.showPager = true;\n\n\t\tthis.commonService.getBase64Pdf(requestPdf).subscribe(\n\t\t\t(result) => {\n\t\t\t\tthis.showBase64Pdf(result);\n\t\t\t},\n\t\t\t(error) => {\n\t\t\t\tconsole.log('Error trying to render PDF', error);\n\t\t\t}\n\t\t);\n\t}\n\n\tdownload() {\n\t\tconst contentType = 'application/pdf';\n\t\tconst b64Data = this.base64;\n\t\tconst blob = this.b64toBlob(b64Data, contentType);\n\t\tconst blobUrl = URL.createObjectURL(blob);\n\n\t\tvar a = document.createElement('a');\n\t\tdocument.body.appendChild(a);\n\t\ta.style.display = 'none';\n\t\ta.href = blobUrl;\n\t\ta.download = 'resumenPdf';\n\t\ta.click();\n\t\tsetTimeout(() => {\n\t\t\twindow.URL.revokeObjectURL(blobUrl);\n\t\t\tdocument.body.removeChild(a);\n\t\t\tthis.onDownload.emit({\n\t\t\t\tbase64: this.base64\n\t\t\t});\n\t\t}, 200);\n\t}\n\n\tb64toBlob(b64Data, contentType = '', sliceSize = 512) {\n\t\tconst byteArrays = [];\n\t\tconst byteCharacters = atob(b64Data);\n\t\tfor (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\n\t\t\tconst slice = byteCharacters.slice(offset, offset + sliceSize);\n\t\t\tconst byteNumbers = new Array(slice.length);\n\t\t\tfor (let i = 0; i < slice.length; i++) {\n\t\t\t\tbyteNumbers[i] = slice.charCodeAt(i);\n\t\t\t}\n\t\t\tconst byteArray = new Uint8Array(byteNumbers);\n\t\t\tbyteArrays.push(byteArray);\n\t\t}\n\t\tconst blob = new Blob(byteArrays, { type: contentType });\n\t\treturn blob;\n\t}\n\n\trenderPage(num) {\n\t\tthis.pdfDocument.pageRendering = true;\n\t\t// assign variables out of scope\n\t\tlet selfPdfDocument: PdfDocument = this.pdfDocument;\n\t\tlet self = this;\n\t\t// Using promise to fetch the page\n\t\tthis.pdfDocument.pdfDoc.getPage(num).then(function (page) {\n\t\t\tvar scale = selfPdfDocument.scale ? selfPdfDocument.scale : 1.5;\n\t\t\tvar viewport = page.getViewport({ scale: scale });\n\t\t\tselfPdfDocument.canvas.height = viewport.height;\n\t\t\tselfPdfDocument.canvas.width = viewport.width;\n\n\t\t\t// Render PDF page into canvas context\n\t\t\tvar renderContext = {\n\t\t\t\tcanvasContext: selfPdfDocument.canvas.getContext('2d'),\n\t\t\t\tviewport: viewport\n\t\t\t};\n\t\t\tvar renderTask = page.render(renderContext);\n\n\t\t\t// Wait for rendering to finish\n\t\t\trenderTask.promise.then(function () {\n\t\t\t\tselfPdfDocument.pageRendering = false;\n\t\t\t\tif (selfPdfDocument.pageNumPending !== null) {\n\t\t\t\t\t// New page rendering is pending\n\t\t\t\t\tthis.renderPage(selfPdfDocument.pageNumPending);\n\t\t\t\t\tselfPdfDocument.pageNumPending = null;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tshowBase64Pdf(result) {\n\t\tthis.base64 = result.base64;\n\t\tthis.download();\n\t}\n\tdeleteButtons(doc) {\n\t\tconst buttons = doc.querySelectorAll('button');\n\t\tfor (let i = 0; i < buttons.length; i++) {\n\t\t\tbuttons[i].style.display = 'none';\n\t\t}\n\t}\n}\n","<div #content id=\"content\" class=\"main-content\" [class.main-content--show]=\"display\">\n\t<div class=\"header\">\n\t\t<div class=\"header-item\">\n\t\t\t<img [src]=\"urlLogo\" alt=\"logo\" class=\"img-logo\" />\n\t\t</div>\n\t\t<div class=\"header-item\">\n\t\t\t<div [innerHTML]=\"headerHtml\"></div>\n\t\t</div>\n\t</div>\n\t<div *ngFor=\"let f of dataForms; index as i\">\n\t\t<formio [form]=\"forms[i]\" [submission]=\"dataForms[i]\"></formio>\n\t\t<div class=\"html2pdf__page-break\"></div>\n\t</div>\n\t<div [innerHTML]=\"footerHtml\"></div>\n</div>\n<div class=\"btn btn-default\">\n\t<button type=\"button\" class=\"fa fa-file-pdf btn-sm\" (click)=\"menu.toggle($event)\" title=\"PDF\">\n\t\t{{ showLabel ? 'Generar PDF' : '' }}\n\t</button>\n</div>\n<p-tieredMenu #menu [model]=\"items\" appendTo=\"body\" [popup]=\"true\"></p-tieredMenu>\n","import { Injectable, Inject } from '@angular/core';\n// import { AngularFireStorage } from 'angularfire2/storage';\n// import { AngularFireAuth } from 'angularfire2/auth';\nimport { Observable, BehaviorSubject } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { EProceso, UtilString } from 'ng-pli-util';\nimport { AngularFireStorage } from '@angular/fire/compat/storage';\nimport { AngularFireAuth } from '@angular/fire/compat/auth';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class FileService {\n\t\n\tconstructor(\n\t\t@Inject('environment') private environment,\n\t\tprivate afAuth: AngularFireAuth,\n\t\tprivate angularFireStorage: AngularFireStorage,\n\t\tprivate httpClient: HttpClient\n\t) {\n\t\tthis.afAuth.signInAnonymously().then((result) => {});\n\t}\n\n\t/**\n\t * It uploads file to google cloud storage\n\t * @param filePath path will be uploaded the file\n\t * @param file\n\t */\n\tupload(filePath, file): Observable<string> {\n\t\tlet subject = new BehaviorSubject<string>(undefined);\n\n\t\tthis.angularFireStorage\n\t\t\t.upload(filePath, file)\n\t\t\t.then((result) => {\n\t\t\t\tresult.ref.getDownloadURL().then(function (url) {\n\t\t\t\t\tsubject.next(url);\n\t\t\t\t});\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tconsole.error('Error trying to upload file', error);\n\t\t\t\tsubject.error(error);\n\t\t\t});\n\t\treturn subject.asObservable();\n\t}\n\n\tuploadWithPercentage(filePath, file): Object {\n\t\tlet subject = new BehaviorSubject<string>(undefined);\n\n\t\tlet task = this.angularFireStorage.upload(filePath, file);\n\t\ttask.then((result) => {\n\t\t\tresult.ref.getDownloadURL().then(function (url) {\n\t\t\t\tsubject.next(url);\n\t\t\t});\n\t\t}).catch((error) => {\n\t\t\tconsole.error('Error trying to upload file', error);\n\t\t\tsubject.error(error);\n\t\t});\n\n\t\treturn { UrlObs: subject.asObservable(), PercentageObs: task.percentageChanges() };\n\t}\n\n\tdownload(path: string): Promise<any> {\n\t\treturn this.angularFireStorage.storage.ref().child(path).getDownloadURL();\n\t}\n\n\t/**\n\t * It deletes a file depending on url download\n\t * @param urlDownload\n\t */\n\tdelete(urlDownload: string) {\n\t\tthis.angularFireStorage.storage.refFromURL(urlDownload).delete();\n\t}\n\n\t/**\n\t * It returns the path according to the params\n\t * @param process\n\t * @param patCodigo\n\t * @param progCodigo\n\t * @param promCodigo\n\t * @param applicationId\n\t * @param filename\n\t */\n\tgetPath(\n\t\tprocess: EProceso,\n\t\tpatCodigo: number,\n\t\tprogCodigo: number,\n\t\tpromCodigo: number,\n\t\tapplicationId: string,\n\t\tfilename: string,\n\t\tusername?: string\n\t): string {\n\t\tlet arrayPath: Array<string> = [];\n\n\t\t// build array with the tree of the structure\n\t\tarrayPath.push('documents');\n\t\tif (process === EProceso.CONVOCATORIA) arrayPath.push('convocatoria');\n\t\tif (process === EProceso.LEGALIZACION) arrayPath.push('legalizacion');\n\t\tif (process === EProceso.SEGUIMIENTO) arrayPath.push('seguimiento');\n\t\tarrayPath.push(patCodigo.toString());\n\t\tarrayPath.push(progCodigo.toString());\n\t\tarrayPath.push(promCodigo.toString());\n\t\tarrayPath.push(applicationId);\n\n\t\t// build the name of the file\n\t\tif (username) {\n\t\t\tlet filename2 = filename.split('.');\n\t\t\tarrayPath.push(\n\t\t\t\t`${username}_${filename2[0]}_${UtilString.createRandomFilename(filename)}`\n\t\t\t);\n\t\t} else {\n\t\t\tarrayPath.push(UtilString.createRandomFilename(filename));\n\t\t}\n\t\treturn arrayPath.join('/');\n\t}\n\n\t/**\n\t * It returns the survey document path according to the params\n\t * @param surveyId\n\t * @param filename\n\t * @param username\n\t */\n\t getSurveyDocumentPath(\n\t\tsurveyId: string,\n\t\tfilename: string,\n\t\tusername?: string\n\t): string {\n\t\tlet arrayPath: Array<string> = [];\n\n\t\t// build array with the tree of the structure\n\t\tarrayPath.push('documents');\n\t\tarrayPath.push(surveyId);\n\n\t\t// build the name of the file\n\t\tif (username) {\n\t\t\tlet filename2 = filename.split('.');\n\t\t\tarrayPath.push(\n\t\t\t\t`${username}_${filename2[0]}_${UtilString.createRandomFilename(filename)}`\n\t\t\t);\n\t\t} else {\n\t\t\tarrayPath.push(UtilString.createRandomFilename(filename));\n\t\t}\n\t\treturn arrayPath.join('/');\n\t}\n\n\t/**\n\t * It returns file of type blob that get from url\n\t * @param url\n\t * @returns blob observable\n\t */\n\tgetFromUrl(url: string): Observable<Blob> {\n\t\treturn this.httpClient.get(url, { responseType: 'blob' });\n\t}\n\n\t/**\n\t * It returns file of type blob that get from url\n\t * @param url\n\t * @returns blob observable\n\t */\n\tgetMetadataFromPath(path: string): Observable<Blob> {\n\t\tconst ref = this.angularFireStorage.ref(path);\n\t\treturn ref.getMetadata();\n\t}\n\n\t/**\n\t * It returns file of type blob that get from url\n\t * @param url\n\t * @returns blob observable\n\t */\n\tgetDownloadURLFromPath(path: string): Observable<string | null> {\n\t\tconst ref = this.angularFireStorage.ref(path);\n\t\treturn ref.getDownloadURL();\n\t}\n}\n","import {\n\tComponent,\n\tOnInit,\n\tOnChanges,\n\tSimpleChanges,\n\tInput,\n\tSimpleChange,\n\tEventEmitter,\n\tOutput,\n\tElementRef,\n\tHostListener\n} from '@angular/core';\nimport * as PDFJS_ from 'pdfjs-dist/build/pdf.min.mjs';\nimport Panzoom from 'panzoom/dist/panzoom';\nimport { CommonService } from '../../services/common.service';\nimport { PdfDocument, UtilString, EProceso, RequestPdf } from 'ng-pli-util';\nimport { FileService } from '../../services/file.service';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { ToastrService } from 'ngx-toastr';\n\nconst PDFJS = PDFJS_;\n// const panzoom = panzoom_;\n\n@Component({\n    selector: 'pli-pdf-visualizer',\n    templateUrl: './pdf-visualizer.component.html',\n    styleUrls: ['./pdf-visualizer.component.css'],\n    standalone: false\n})\nexport class PdfVisualizerComponent implements OnInit, OnChanges {\n\tstatic DEFAULT_HEIGHT = 500;\n\t/** text html will become pdf */\n\t@Input() html: string;\n\t/** text header will become pdf */\n\t@Input() header: string;\n\t/** text footer will become pdf */\n\t@Input() footer: string;\n\t/** it contains the marginTop will be applied to the pdf */\n\t@Input() marginTop: number;\n\t/** it contains the marginRight will be applied to the pdf */\n\t@Input() marginRight: number;\n\t/** it contains the marginBottom will be applied to the pdf */\n\t@Input() marginBottom: number;\n\t/** it contains the marginLeft will be applied to the pdf */\n\t@Input() marginLeft: number;\n\t/** It contains the font of the html */\n\t@Input() font: string;\n\t/** It contains the pdf orientation */\n\t@Input() orientation: number;\n\t/** It contains the pdf size */\n\t@Input() size: number;\n\t/** show pager */\n\t@Input() showPager: boolean = true;\n\t/** repeat header */\n\t@Input() repeatHeader: boolean = true;\n\t/** repeat footer*/\n\t@Input() repeatFooter: boolean = true;\n\t/** Header height */\n\t@Input() headerHeight: number;\n\t/** Footer height */\n\t@Input() footerHeight: number;\n\n\t/** It verifies if is possible to edit html */\n\t@Input() enableEdit: boolean;\n\t/** title of the pdf */\n\t@Input() title: string;\n\t/** the height of the pdf canvas */\n\t@Input() height: number;\n\t/** The filename of the pdf */\n\t@Input() filename: string;\n\t/** It verifies if it allows to send the email */\n\t@Input() enableEmail: boolean;\n\t/** It fires when the file has been downloaded */\n\t@Output() onDownload: EventEmitter<any> = new EventEmitter<any>();\n\t/** It fires when the name has been sent */\n\t@Output() onSendEmail: EventEmitter<any> = new EventEmitter<any>();\n\t/** It fires when the html has been modified */\n\t@Output() onChange: EventEmitter<string> = new EventEmitter<string>();\n\t/** It contains the lang of the pdf */\n\t@Input() lang: string;\n\t/** The url of the pdf */\n\t@Input() urlFile: string;\n\n\temail: string;\n\n\t/** base64 as result of html 2 pdf */\n\tbase64: string;\n\t/** it verifies if component is ready */\n\tready: boolean = false;\n\t/** It continas the abstraction of pdf document */\n\tpdfDocument: PdfDocument;\n\n\t/** it contains the id of canvas */\n\tid_canvas: string = 'pdf-canvas';\n\n\t/** It allows to edit html */\n\tedit: boolean = false;\n\n\tisFullscreen: boolean = false;\n\n\tconstructor(\n\t\tprotected commonService: CommonService,\n\t\tpublic sanitization: DomSanitizer,\n\t\tprivate taostrService: ToastrService,\n\t\tprivate fileService: FileService\n\t) {}\n\n\t// it resolves when the html is changed\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tconst html: SimpleChange = changes.html;\n\t\tconst urlFile: SimpleChange = changes.urlFile;\n\t\tif (html && html.currentValue) {\n\t\t\tthis.html = html.currentValue;\n\t\t\tthis.generatePDF();\n\t\t} else if (urlFile && urlFile.currentValue) {\n\t\t\tthis.urlFile = urlFile.currentValue;\n\t\t\tthis.generatePDF();\n\t\t} else {\n\t\t\tthis.ready = false;\n\t\t\tif (this.pdfDocument && this.pdfDocument.canvas) {\n\t\t\t\tlet canvas = this.pdfDocument.canvas;\n\t\t\t\tvar ctx = this.pdfDocument.canvas.getContext('2d');\n\t\t\t\tctx.clearRect(0, 0, canvas.width, canvas.height);\n\t\t\t\tthis.pdfDocument = undefined;\n\t\t\t}\n\t\t}\n\t}\n\n\t/** It generates the pdf */\n\tgeneratePDF() {\n\t\tif (!UtilString.isValid(this.html) && UtilString.isValid(this.urlFile)) {\n\t\t\tthis.commonService.getBase64PdfByUrl(this.urlFile).subscribe(\n\t\t\t\t(result) => {\n\t\t\t\t\tthis.showBase64Pdf(result);\n\t\t\t\t},\n\t\t\t\t(error) => {\n\t\t\t\t\tconsole.log('Error trying to render PDF', error);\n\t\t\t\t}\n\t\t\t);\n\t\t} else {\n\t\t\t// if html was changed\n\t\t\tlet requestPdf: RequestPdf = new RequestPdf();\n\t\t\trequestPdf.html = this.html;\n\t\t\trequestPdf.header = this.header;\n\t\t\trequestPdf.footer = this.footer;\n\t\t\trequestPdf.lang = this.lang;\n\t\t\trequestPdf.marginTop = this.marginTop;\n\t\t\trequestPdf.marginRight = this.marginRight;\n\t\t\trequestPdf.marginBottom = this.marginBottom;\n\t\t\trequestPdf.marginLeft = this.marginLeft;\n\t\t\trequestPdf.orientation = this.orientation;\n\t\t\trequestPdf.size = this.size;\n\t\t\trequestPdf.font = this.font;\n\t\t\trequestPdf.repeatHeader = this.repeatHeader;\n\t\t\trequestPdf.repeatFooter = this.repeatFooter;\n\t\t\trequestPdf.showPager = this.showPager;\n\t\t\trequestPdf.headerHeight = this.headerHeight;\n\t\t\trequestPdf.footerHeight = this.footerHeight;\n\n\t\t\tthis.commonService.getBase64Pdf(requestPdf).subscribe(\n\t\t\t\t(result) => {\n\t\t\t\t\tthis.showBase64Pdf(result);\n\t\t\t\t},\n\t\t\t\t(error) => {\n\t\t\t\t\tconsole.log('Error trying to render PDF', error);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n\n\tshowBase64Pdf(result) {\n\t\tthis.base64 = result.base64;\n\t\tvar data = atob(this.base64);\n\t\tPDFJS.workerSrc = 'https://cdn.jsdelivr.net/npm/pdfjs-dist@4.6.82/build/pdf.worker.min.mjs';\n\t\tif (PDFJS.GlobalWorkerOptions)\n\t\t\tPDFJS.GlobalWorkerOptions.workerSrc =\n\t\t\t\t'https://cdn.jsdelivr.net/npm/pdfjs-dist@4.6.82/build/pdf.worker.min.mjs';\n\t\t// create instance of PdfDocument with the id of canvas\n\t\t// create instance of PdfDocument with the id of canvas\n\t\tthis.pdfDocument = new PdfDocument(this.id_canvas);\n\n\t\t// assign variables out of scope\n\t\tlet pdfdocument: PdfDocument = this.pdfDocument;\n\t\tPanzoom(this.pdfDocument.canvas, {\n\t\t\tsmoothScroll: false\n\t\t});\n\t\tlet self = this;\n\t\tlet ready = this.ready;\n\n\t\tconst pdfLoadingTask = PDFJS.getDocument({ data: data });\n\t\t// JP - here we ask if the promise supports the new version pdfLoadingTask.promise\n\t\tconst promise = pdfLoadingTask.promise ? pdfLoadingTask.promise : pdfLoadingTask;\n\t\tpromise.then(function (pdfDoc_) {\n\t\t\tpdfdocument.pdfDoc = pdfDoc_;\n\t\t\tself.renderPage(1);\n\t\t\tready = true;\n\t\t});\n\t}\n\n\ttestBase64ToFile2() {\n\t\t// let dataurl = this.base64;\n\t\tlet fileName = 'TestOPrada2.pdf';\n\t\t// var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],\n\t\tvar bstr = atob(this.base64),\n\t\t\tn = bstr.length,\n\t\t\tu8arr = new Uint8Array(n);\n\t\twhile (n--) {\n\t\t\tu8arr[n] = bstr.charCodeAt(n);\n\t\t}\n\t\tlet fileReturn = new File([u8arr], fileName, { type: 'application/pdf' });\n\t\tthis.testEnvioDoc(fileReturn, fileName);\n\t}\n\n\ttestEnvioDoc(fileReturn: any, fileName: string) {\n\t\tconst filePath = this.fileService.getPath(\n\t\t\tEProceso.CONVOCATORIA,\n\t\t\t500,\n\t\t\t2,\n\t\t\t1,\n\t\t\t'aaaa',\n\t\t\tfileName\n\t\t);\n\t\tthis.fileService.upload(filePath, fileReturn).subscribe(\n\t\t\t(url) => {\n\t\t\t\tconsole.log('Finalizo envío documento', url);\n\t\t\t},\n\t\t\t(error) => {\n\t\t\t\tconsole.log('Error trying to upload: ', error);\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It returns the height  */\n\tgetHeight(): string {\n\n\t\tif (this.isFullscreen) {\n\t\t\treturn 'calc(100vh - 120px)'; // ajusta 120px según la altura de tu toolbar/título\n\t\t}\n\n\t\tif (this.height) return this.height + 'px';\n\t\treturn PdfVisualizerComponent.DEFAULT_HEIGHT + 'px';\n\t}\n\n\t/** Get page info from document, resize canvas accordingly, and render page. */\n\trenderPage(num) {\n\t\tthis.pdfDocument.pageRendering = true;\n\t\t// assign variables out of scope\n\t\tlet selfPdfDocument: PdfDocument = this.pdfDocument;\n\t\tlet self = this;\n\t\t// Using promise to fetch the page\n\t\tthis.pdfDocument.pdfDoc.getPage(num).then(function (page) {\n\t\t\tvar scale = selfPdfDocument.scale ? selfPdfDocument.scale : 1.5;\n\t\t\tvar viewport = page.getViewport({ scale: scale });\n\t\t\tselfPdfDocument.canvas.height = viewport.height;\n\t\t\tselfPdfDocument.canvas.width = viewport.width;\n\n\t\t\t// Render PDF page into canvas context\n\t\t\tvar renderContext = {\n\t\t\t\tcanvasContext: selfPdfDocument.canvas.getContext('2d'),\n\t\t\t\tviewport: viewport\n\t\t\t};\n\t\t\tvar renderTask = page.render(renderContext);\n\n\t\t\t// Wait for rendering to finish\n\t\t\trenderTask.promise.then(function () {\n\t\t\t\tselfPdfDocument.pageRendering = false;\n\t\t\t\tif (selfPdfDocument.pageNumPending !== null) {\n\t\t\t\t\t// New page rendering is pending\n\t\t\t\t\tself.renderPage(selfPdfDocument.pageNumPending);\n\t\t\t\t\tselfPdfDocument.pageNumPending = null;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * If another page rendering in progress, waits until the rendering is\n\t * finised. Otherwise, executes rendering immediately.\n\t */\n\tqueueRenderPage(num) {\n\t\tif (this.pdfDocument.pageRendering) {\n\t\t\tthis.pdfDocument.pageNumPending = num;\n\t\t} else {\n\t\t\tthis.renderPage(num);\n\t\t}\n\t}\n\n\t/**\n\t * Displays previous page.\n\t */\n\tonPrevPage() {\n\t\tif (!this.pdfDocument || this.pdfDocument.pageNum <= 1) {\n\t\t\treturn;\n\t\t}\n\t\tthis.pdfDocument.pageNum--;\n\t\tthis.queueRenderPage(this.pdfDocument.pageNum);\n\t}\n\n\t/**\n\t * Displays next page.\n\t */\n\tonNextPage() {\n\t\tif (!this.pdfDocument) {\n\t\t\treturn;\n\t\t\n\t\t}\n\t\tif (this.pdfDocument.pageNum >= this.pdfDocument.pdfDoc.numPages) {\n\t\t\tif (this.isFullscreen) {\n\t\t\t\tthis.isFullscreen = false;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tthis.pdfDocument.pageNum++;\n\t\tthis.queueRenderPage(this.pdfDocument.pageNum);\n\t}\n\n\t/**\n\t * Displays Zoom In.\n\t */\n\tonZoomIn() {\n\t\tif (!this.pdfDocument || this.pdfDocument.scale >= 3) {\n\t\t\treturn;\n\t\t}\n\t\tthis.pdfDocument.scale = this.pdfDocument.scale + 0.2;\n\t\tthis.queueRenderPage(this.pdfDocument.pageNum);\n\t}\n\n\t/**\n\t * Displays Zoom Out.\n\t */\n\tonZoomOut() {\n\t\tif (!this.pdfDocument || this.pdfDocument.scale <= 0.4) {\n\t\t\treturn;\n\t\t}\n\t\tthis.pdfDocument.scale = this.pdfDocument.scale - 0.2;\n\t\tthis.queueRenderPage(this.pdfDocument.pageNum);\n\t}\n\n\tngOnInit() {}\n\n\t/** It sends the document by email */\n\tsendEmail() {\n\t\tif (this.email && UtilString.validateEmail(this.email)) {\n\t\t\tthis.onSendEmail.emit({\n\t\t\t\tto: this.email,\n\t\t\t\tbase64: this.base64\n\t\t\t});\n\t\t\tthis.email = '';\n\t\t\treturn;\n\t\t}\n\t\tthis.taostrService.warning('Correo electrónico es incorrecto');\n\t}\n\n\t/** It fires the event download */\n\tdownload() {\n\t\tconst contentType = 'application/pdf';\n\t\tconst b64Data = this.base64;\n\t\tconst blob = this.b64toBlob(b64Data, contentType);\n\t\tconst blobUrl = URL.createObjectURL(blob);\n\t\tvar a = document.createElement('a');\n\t\tdocument.body.appendChild(a);\n\t\ta.style.display = 'none';\n\t\ta.href = blobUrl;\n\t\ta.download = this.filename;\n\t\ta.click();\n\t\tsetTimeout(() => {\n\t\t\twindow.URL.revokeObjectURL(blobUrl);\n\t\t\tdocument.body.removeChild(a);\n\t\t\tthis.onDownload.emit({\n\t\t\t\tbase64: this.base64\n\t\t\t});\n\t\t}, 200);\n\t}\n\n\t/** It fires when the html is changed */\n\tchange() {\n\t\tthis.generatePDF();\n\t\tthis.onChange.emit(this.html);\n\t}\n\n\t/** it allows to edit */\n\ttoggleEdit() {\n\t\tthis.edit = !this.edit;\n\t}\n\n\t/**\n\t * it returns if is PdfDocument\n\t */\n\tisPdfDocument(): boolean {\n\t\treturn this.pdfDocument !== undefined;\n\t}\n\n\t/**\n\t * it returns if is Title\n\t */\n\tisTitle(): boolean {\n\t\treturn this.title !== undefined;\n\t}\n\n\t/**\n\t * it returns if is isPdfDoc\n\t */\n\tisPdfDoc(): boolean {\n\t\treturn (\n\t\t\tthis.pdfDocument &&\n\t\t\tthis.pdfDocument.pdfDoc != undefined &&\n\t\t\tthis.pdfDocument.pdfDoc != null\n\t\t);\n\t}\n\n\t/**\n\t * it returns if is filename\n\t */\n\tisFilename(): boolean {\n\t\treturn this.filename !== undefined;\n\t}\n\n\t/**\n\t * it returns if is enableEdit\n\t */\n\tisEnableEdit(): boolean {\n\t\treturn this.enableEdit == true;\n\t}\n\n\t/**\n\t * it returns if is edit\n\t */\n\tisEdit(): boolean {\n\t\treturn this.edit == true;\n\t}\n\n\t/**\n\t * it returns if is enableEmail\n\t */\n\tisEnableEmail(): boolean {\n\t\treturn this.enableEmail == true;\n\t}\n\n\tb64toBlob(b64Data, contentType = '', sliceSize = 512) {\n\t\tconst byteArrays = [];\n\t\tconst byteCharacters = atob(b64Data);\n\t\tfor (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\n\t\t\tconst slice = byteCharacters.slice(offset, offset + sliceSize);\n\t\t\tconst byteNumbers = new Array(slice.length);\n\t\t\tfor (let i = 0; i < slice.length; i++) {\n\t\t\t\tbyteNumbers[i] = slice.charCodeAt(i);\n\t\t\t}\n\t\t\tconst byteArray = new Uint8Array(byteNumbers);\n\t\t\tbyteArrays.push(byteArray);\n\t\t}\n\t\tconst blob = new Blob(byteArrays, { type: contentType });\n\t\treturn blob;\n\t}\n\n\ttoggleFullscreen(): void {\n\t\tthis.isFullscreen = !this.isFullscreen;\n\t  }\n\t  \n}\n","<h3 class=\"pdf-visualizer-title\">{{ title }}</h3>\n<div class=\"pdf-visualizer-container\" [ngClass]=\"{ 'fullscreen': isFullscreen }\">\n\t<div class=\"pdf-visualizer-controls\" *ngIf=\"isPdfDocument() === true\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-7\">\n\t\t\t\t<div class=\"btn-toolbar\" role=\"toolbar\" aria-label=\"Toolbar with button groups\">\n\t\t\t\t\t<div class=\"btn-group btn-group-sm mr-2\" role=\"group\" aria-label=\"Second group\">\n\t\t\t\t\t\t<!-- zoom in-->\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref=\"Javascript:;\"\n\t\t\t\t\t\t\ttitle=\"Acercar\"\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\n\t\t\t\t\t\t\tdata-placement=\"top\"\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\n\t\t\t\t\t\t\t(click)=\"onZoomIn()\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"fa fa-search-plus\"></span>\n\t\t\t\t\t\t</a>\n\n\t\t\t\t\t\t<!-- zoom out-->\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref=\"Javascript:;\"\n\t\t\t\t\t\t\ttitle=\"Alejar\"\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\n\t\t\t\t\t\t\tdata-placement=\"top\"\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\n\t\t\t\t\t\t\t(click)=\"onZoomOut()\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"fa fa-search-minus\"></span>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"btn-group btn-group-sm mr-2\" role=\"group\" aria-label=\"Third group\">\n\t\t\t\t\t\t<!--prev -->\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref=\"Javascript:;\"\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\n\t\t\t\t\t\t\t(click)=\"onPrevPage()\"\n\t\t\t\t\t\t\ttitle=\"Anterior\"\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\n\t\t\t\t\t\t\tdata-placement=\"top\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"fa fa-chevron-left\"></span>\n\t\t\t\t\t\t</a>\n\n\t\t\t\t\t\t<!-- pagination-->\n\t\t\t\t\t\t<span class=\"btn btn-outline-secondary\" *ngIf=\"isPdfDoc() === true\">\n\t\t\t\t\t\t\tPágina: {{ pdfDocument.pageNum }} / {{ pdfDocument.pdfDoc.numPages }}\n\t\t\t\t\t\t</span>\n\n\t\t\t\t\t\t<!--next -->\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref=\"Javascript:;\"\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\n\t\t\t\t\t\t\t(click)=\"onNextPage()\"\n\t\t\t\t\t\t\ttitle=\"Siguiente\"\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\n\t\t\t\t\t\t\tdata-placement=\"top\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"fa fa-chevron-right\"></span>\n\t\t\t\t\t\t</a>\n\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref=\"Javascript:;\"\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\n\t\t\t\t\t\t\t(click)=\"toggleFullscreen()\"\n\t\t\t\t\t\t\ttitle=\"{{ isFullscreen ? 'Salir de pantalla completa' : 'Pantalla completa' }}\"\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\n\t\t\t\t\t\t\tdata-placement=\"top\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span [ngClass]=\"isFullscreen ? 'fa fa-compress' : 'fa fa-expand'\"></span>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"btn-group btn-group-sm\" role=\"group\" aria-label=\"First group\">\n\t\t\t\t\t\t<!-- download-->\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t[download]=\"filename\"\n\t\t\t\t\t\t\t*ngIf=\"isFilename() === true\"\n\t\t\t\t\t\t\t(click)=\"download()\"\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\n\t\t\t\t\t\t\ttitle=\"Descargar\"\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\n\t\t\t\t\t\t\tdata-placement=\"top\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<!-- [href]=\"\n\t\t\t\t\t\t\tsanitization.bypassSecurityTrustUrl(\n\t\t\t\t\t\t\t\t'data:application/pdf;base64,' + this.base64\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\" -->\n\t\t\t\t\t\t\t<span class=\"fa fa-download\"></span>\n\t\t\t\t\t\t</a>\n\n\t\t\t\t\t\t<!-- toggle edit--\n            <a href=\"Javascript:;\" *ngIf=\"isEnableEdit() === true\" class=\"btn btn-outline-secondary\" title=\"Editar\"\n              data-toggle=\"tooltip\" data-placement=\"top\" (click)=\"toggleEdit()\">\n              <span class=\"fa fa-edit\"></span>\n            </a>\n\n            <!-- generate pdf-->\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref=\"Javascript:;\"\n\t\t\t\t\t\t\t*ngIf=\"isEdit() === true\"\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\n\t\t\t\t\t\t\ttitle=\"Generar\"\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\n\t\t\t\t\t\t\tdata-placement=\"top\"\n\t\t\t\t\t\t\t(click)=\"change()\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"fa fa-play\"></span>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=\"col-md-5 pull-right\" *ngIf=\"isEnableEmail() === true\">\n\t\t\t\t<div class=\"input-group input-group-sm\">\n\t\t\t\t\t<label for=\"pdf-visualizer-email\" class=\"pdf\">\n\t\t\t\t\t\tEnviar mensaje a\n\t\t\t\t\t</label>\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"email\"\n\t\t\t\t\t\tid=\"pdf-visualizer-email\"\n\t\t\t\t\t\tname=\"pdf-visualizer-email\"\n\t\t\t\t\t\trequired=\"true\"\n\t\t\t\t\t\tclass=\"form-control\"\n\t\t\t\t\t\tplaceholder=\"Correo electrónico\"\n\t\t\t\t\t\t[(ngModel)]=\"email\"\n\t\t\t\t\t/>\n\t\t\t\t\t<div class=\"input-group-append\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t(click)=\"sendEmail()\"\n\t\t\t\t\t\t\ttitle=\"Enviar\"\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\n\t\t\t\t\t\t\tdata-placement=\"top\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\tsrc=\"http://giro360.co/zona360/colfuturo/PLIC/img/export.svg\"\n\t\t\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\t\t\twidth=\"16\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\n\t<div class=\"pdf-visualizer-dashboard\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-5\" *ngIf=\"isEdit() === true\">\n\t\t\t\t<textarea\n\t\t\t\t\tclass=\"form-control\"\n\t\t\t\t\t[style.height]=\"getHeight()\"\n\t\t\t\t\tstyle=\"resize:vertical;\"\n\t\t\t\t\t[(ngModel)]=\"html\"\n\t\t\t\t></textarea>\n\t\t\t</div>\n\t\t\t<div [ngClass]=\"{ 'col-md-7': edit === true, 'col-md-12': !edit }\" class=\"pdf-visualizer-canvas-wrapper\">\n        <button\n\t\t\t\t\t*ngIf=\"isFullscreen\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclass=\"btn btn-outline-secondary btn-sm pdf-fullscreen-close\"\n\t\t\t\t\t(click)=\"toggleFullscreen()\"\n\t\t\t\t\ttitle=\"Cerrar pantalla completa\"\n\t\t\t\t>\n\t\t\t\t\t<span class=\"fa fa-times\"></span>\n\t\t\t\t</button>\n\t\t\t\t<div\n\t\t\t\t\tid=\"pdf-scrollable\"\n\t\t\t\t\tclass=\"pdf-visualizer-scrollable\"\n\t\t\t\t\t[style.height]=\"getHeight()\"\n\t\t\t\t>\n\t\t\t\t\t<canvas id=\"pdf-canvas\" class=\"pdf-visualizer-canvas\"> </canvas>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n","import {\n\tComponent,\n\tOnChanges,\n\tSimpleChanges,\n\tInput,\n\tSimpleChange,\n\tEventEmitter,\n\tOutput\n} from '@angular/core';\nimport * as PDFJS_ from 'pdfjs-dist/build/pdf.min.mjs';\nimport * as panzoom_ from 'panzoom/dist/panzoom';\nimport { CommonService } from '../../services/common.service';\nimport { PdfDocument, UtilString, RequestPdf } from 'ng-pli-util';\nimport { FileService } from '../../services/file.service';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { ToastrService } from 'ngx-toastr';\n\nconst PDFJS = PDFJS_;\nconst panzoom = panzoom_;\n/** Pdf visualizer Refactor - TODO improve logic and check the edit functionality */\n@Component({\n    selector: 'pli-pdf-merge-visualizer',\n    templateUrl: './pdf-merge-visualizer.component.html',\n    styleUrls: ['./pdf-merge-visualizer.component.css'],\n    standalone: false\n})\nexport class PdfMergeVisualizerComponent implements OnChanges {\n\t/** Default visualizer height */\n\tstatic DEFAULT_HEIGHT = 500;\n\n\t/** Pdfs to be generated and merged */\n\t@Input() lPdfRequest: RequestPdf[];\n\t/** It verifies if is possible to edit html */\n\t@Input() enableEdit: boolean = false; // TODO - Check functionality\n\t/** title of the pdf */\n\t@Input() title: string;\n\t/** the height of the pdf canvas */\n\t@Input() height: number;\n\t/** The filename of the pdf */\n\t@Input() filename: string;\n\t/** It verifies if it allows to send the email */\n\t@Input() enableEmail: boolean;\n\t/** The url of the pdf */\n\t@Input() urlFile: string;\n\t/** It fires when the file has been downloaded */\n\t@Output() onDownload: EventEmitter<any> = new EventEmitter<any>();\n\t/** It fires when the name has been sent */\n\t@Output() onSendEmail: EventEmitter<any> = new EventEmitter<any>(); // TODO - Check functionality\n\t/** It fires when the name has been sent */\n\t@Output() onPdfRendered: EventEmitter<any> = new EventEmitter<any>();\n\t/** It fires when the html has been modified */\n\t// @Output() onChange: EventEmitter<string> = new EventEmitter<string>();\n\n\t/** Email that will be sended */\n\temail: string;\n\t/** base64 as result of html 2 pdf */\n\tbase64: string; // TODO - Check functionality\n\t/** It allows to edit html */ edit: boolean = false;\n\t/** it verifies if component is ready */\n\tready: boolean = false;\n\t/** It continas the abstraction of pdf document */\n\tpdfDocument: PdfDocument;\n\t/** it contains the id of canvas */\n\tid_canvas: string = 'pdf-canvas';\n\n\tconstructor(\n\t\tprotected commonService: CommonService,\n\t\tprivate taostrService: ToastrService,\n\t\tpublic sanitization: DomSanitizer\n\t) {}\n\n\t// it resolves when the html is changed\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tconst lPdfRequest: SimpleChange = changes.lPdfRequest;\n\t\tconst urlFile: SimpleChange = changes.urlFile;\n\t\tif (lPdfRequest && lPdfRequest.currentValue) {\n\t\t\tthis.generatePDF();\n\t\t} else if (urlFile && urlFile.currentValue) {\n\t\t\tthis.urlFile = urlFile.currentValue;\n\t\t\tthis.generatePDF();\n\t\t} else {\n\t\t\tthis.ready = false;\n\t\t\tif (this.pdfDocument && this.pdfDocument.canvas) {\n\t\t\t\tlet canvas = this.pdfDocument.canvas;\n\t\t\t\tvar ctx = this.pdfDocument.canvas.getContext('2d');\n\t\t\t\tctx.clearRect(0, 0, canvas.width, canvas.height);\n\t\t\t\tthis.pdfDocument = undefined;\n\t\t\t}\n\t\t}\n\t}\n\n\t/** It generates the pdf */\n\tgeneratePDF() {\n\t\tif (UtilString.isValid(this.urlFile)) {\n\t\t\tthis.commonService.getBase64PdfByUrl(this.urlFile).subscribe(\n\t\t\t\t(result) => {\n\t\t\t\t\tthis.showBase64Pdf(result);\n\t\t\t\t},\n\t\t\t\t(error) => {\n\t\t\t\t\tconsole.error('Error trying to render PDF', error);\n\t\t\t\t}\n\t\t\t);\n\t\t} else if (this.lPdfRequest) {\n\t\t\t// if html was changed\n\t\t\tthis.commonService.getBase64PdfList(this.lPdfRequest).subscribe(\n\t\t\t\t(result) => {\n\t\t\t\t\tthis.showBase64Pdf(result);\n\t\t\t\t},\n\t\t\t\t(error) => {\n\t\t\t\t\tconsole.error('Error trying to render PDF', error);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n\n\tshowBase64Pdf(result) {\n\t\tthis.base64 = result.base64;\n\t\tvar data = atob(this.base64);\n\t\tPDFJS.workerSrc = 'https://cdn.jsdelivr.net/npm/pdfjs-dist@4.6.82/build/pdf.worker.min.mjs';\n\t\t// create instance of PdfDocument with the id of canvas\n\t\tthis.pdfDocument = new PdfDocument(this.id_canvas);\n\n\t\t// assign variables out of scope\n\t\tlet pdfdocument: PdfDocument = this.pdfDocument;\n\t\tpanzoom(this.pdfDocument.canvas, {\n\t\t\tsmoothScroll: false\n\t\t});\n\t\tlet self = this;\n\t\tlet ready = this.ready;\n\t\tPDFJS.getDocument({ data: data }).then(function (pdfDoc_) {\n\t\t\tpdfdocument.pdfDoc = pdfDoc_;\n\t\t\tself.renderPage(1);\n\t\t\tready = true;\n\t\t\tself.onPdfRendered.emit(true);\n\t\t});\n\t}\n\t/** It returns the height  */\n\tgetHeight(): string {\n\t\tif (this.height) return this.height + 'px';\n\t\treturn PdfMergeVisualizerComponent.DEFAULT_HEIGHT + 'px';\n\t}\n\n\t/** Get page info from document, resize canvas accordingly, and render page. */\n\trenderPage(num) {\n\t\tthis.pdfDocument.pageRendering = true;\n\t\t// assign variables out of scope\n\t\tlet selfPdfDocument: PdfDocument = this.pdfDocument;\n\t\tlet self = this;\n\t\t// Using promise to fetch the page\n\t\tthis.pdfDocument.pdfDoc.getPage(num).then(function (page) {\n\t\t\tvar viewport = page.getViewport(selfPdfDocument.scale);\n\t\t\tselfPdfDocument.canvas.height = viewport.height;\n\t\t\tselfPdfDocument.canvas.width = viewport.width;\n\n\t\t\t// Render PDF page into canvas context\n\t\t\tvar renderContext = {\n\t\t\t\tcanvasContext: selfPdfDocument.canvas.getContext('2d'),\n\t\t\t\tviewport: viewport\n\t\t\t};\n\t\t\tvar renderTask = page.render(renderContext);\n\n\t\t\t// Wait for rendering to finish\n\t\t\trenderTask.promise.then(function () {\n\t\t\t\tselfPdfDocument.pageRendering = false;\n\t\t\t\tif (selfPdfDocument.pageNumPending !== null) {\n\t\t\t\t\t// New page rendering is pending\n\t\t\t\t\tself.renderPage(selfPdfDocument.pageNumPending);\n\t\t\t\t\tselfPdfDocument.pageNumPending = null;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * If another page rendering in progress, waits until the rendering is\n\t * finised. Otherwise, executes rendering immediately.\n\t */\n\tqueueRenderPage(num) {\n\t\tif (this.pdfDocument.pageRendering) {\n\t\t\tthis.pdfDocument.pageNumPending = num;\n\t\t} else {\n\t\t\tthis.renderPage(num);\n\t\t}\n\t}\n\n\t/**\n\t * Displays previous page.\n\t */\n\tonPrevPage() {\n\t\tif (!this.pdfDocument || this.pdfDocument.pageNum <= 1) {\n\t\t\treturn;\n\t\t}\n\t\tthis.pdfDocument.pageNum--;\n\t\tthis.queueRenderPage(this.pdfDocument.pageNum);\n\t}\n\n\t/**\n\t * Displays next page.\n\t */\n\tonNextPage() {\n\t\tif (!this.pdfDocument || this.pdfDocument.pageNum >= this.pdfDocument.pdfDoc.numPages) {\n\t\t\treturn;\n\t\t}\n\t\tthis.pdfDocument.pageNum++;\n\t\tthis.queueRenderPage(this.pdfDocument.pageNum);\n\t}\n\n\t/**\n\t * Displays Zoom In.\n\t */\n\tonZoomIn() {\n\t\tif (!this.pdfDocument || this.pdfDocument.scale >= 3) {\n\t\t\treturn;\n\t\t}\n\t\tthis.pdfDocument.scale = this.pdfDocument.scale + 0.2;\n\t\tthis.queueRenderPage(this.pdfDocument.pageNum);\n\t}\n\n\t/**\n\t * Displays Zoom Out.\n\t */\n\tonZoomOut() {\n\t\tif (!this.pdfDocument || this.pdfDocument.scale <= 0.4) {\n\t\t\treturn;\n\t\t}\n\t\tthis.pdfDocument.scale = this.pdfDocument.scale - 0.2;\n\t\tthis.queueRenderPage(this.pdfDocument.pageNum);\n\t}\n\n\t/** It sends the document by email */\n\tsendEmail() {\n\t\tif (this.email && UtilString.validateEmail(this.email)) {\n\t\t\tthis.onSendEmail.emit({\n\t\t\t\tto: this.email,\n\t\t\t\tbase64: this.base64\n\t\t\t});\n\t\t\tthis.email = '';\n\t\t\treturn;\n\t\t}\n\t\tthis.taostrService.warning('Correo electrónico es incorrecto');\n\t}\n\n\t/** It fires the event download */\n\tdownload() {\n\t\tconst contentType = 'application/pdf';\n\t\tconst b64Data = this.base64;\n\t\tconst blob = this.b64toBlob(b64Data, contentType);\n\t\tconst blobUrl = URL.createObjectURL(blob);\n\t\tvar a = document.createElement('a');\n\t\tdocument.body.appendChild(a);\n\t\ta.style.display = 'none';\n\t\ta.href = blobUrl;\n\t\ta.download = this.filename;\n\t\ta.click();\n\t\tsetTimeout(() => {\n\t\t\twindow.URL.revokeObjectURL(blobUrl);\n\t\t\tdocument.body.removeChild(a);\n\t\t\tthis.onDownload.emit({\n\t\t\t\tbase64: this.base64\n\t\t\t});\n\t\t}, 200);\n\t}\n\n\t/** It fires when the html is changed */\n\t// change() {\n\t// \tthis.generatePDF();\n\t// \tthis.onChange.emit(this.html);\n\t// }\n\n\t/** it allows to edit */\n\ttoggleEdit() {\n\t\tthis.edit = !this.edit;\n\t}\n\n\t/**\n\t * it returns if is PdfDocument\n\t */\n\tisPdfDocument(): boolean {\n\t\treturn this.pdfDocument !== undefined;\n\t}\n\n\t/**\n\t * it returns if is Title\n\t */\n\tisTitle(): boolean {\n\t\treturn this.title !== undefined;\n\t}\n\n\t/**\n\t * it returns if is isPdfDoc\n\t */\n\tisPdfDoc(): boolean {\n\t\treturn (\n\t\t\tthis.pdfDocument &&\n\t\t\tthis.pdfDocument.pdfDoc != undefined &&\n\t\t\tthis.pdfDocument.pdfDoc != null\n\t\t);\n\t}\n\n\t/**\n\t * it returns if is filename\n\t */\n\tisFilename(): boolean {\n\t\treturn this.filename !== undefined;\n\t}\n\n\t/**\n\t * it returns if is enableEdit\n\t */\n\tisEnableEdit(): boolean {\n\t\treturn this.enableEdit == true;\n\t}\n\n\t/**\n\t * it returns if is edit\n\t */\n\tisEdit(): boolean {\n\t\treturn this.edit == true;\n\t}\n\n\t/**\n\t * it returns if is enableEmail\n\t */\n\tisEnableEmail(): boolean {\n\t\treturn this.enableEmail == true;\n\t}\n\n\tb64toBlob(b64Data, contentType = '', sliceSize = 512) {\n\t\tconst byteArrays = [];\n\t\tconst byteCharacters = atob(b64Data);\n\t\tfor (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\n\t\t\tconst slice = byteCharacters.slice(offset, offset + sliceSize);\n\t\t\tconst byteNumbers = new Array(slice.length);\n\t\t\tfor (let i = 0; i < slice.length; i++) {\n\t\t\t\tbyteNumbers[i] = slice.charCodeAt(i);\n\t\t\t}\n\t\t\tconst byteArray = new Uint8Array(byteNumbers);\n\t\t\tbyteArrays.push(byteArray);\n\t\t}\n\t\tconst blob = new Blob(byteArrays, { type: contentType });\n\t\treturn blob;\n\t}\n}\n","<h3 class=\"pdf-visualizer-title\">{{ title }}</h3>\n<div class=\"pdf-visualizer-container\">\n\t<div class=\"pdf-visualizer-controls\" *ngIf=\"isPdfDocument() === true\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-7\">\n\t\t\t\t<div class=\"btn-toolbar\" role=\"toolbar\" aria-label=\"Toolbar with button groups\">\n\t\t\t\t\t<div class=\"btn-group btn-group-sm mr-2\" role=\"group\" aria-label=\"Second group\">\n\t\t\t\t\t\t<!-- zoom in-->\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref=\"Javascript:;\"\n\t\t\t\t\t\t\ttitle=\"Acercar\"\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\n\t\t\t\t\t\t\tdata-placement=\"top\"\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\n\t\t\t\t\t\t\t(click)=\"onZoomIn()\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"fa fa-search-plus\"></span>\n\t\t\t\t\t\t</a>\n\n\t\t\t\t\t\t<!-- zoom out-->\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref=\"Javascript:;\"\n\t\t\t\t\t\t\ttitle=\"Alejar\"\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\n\t\t\t\t\t\t\tdata-placement=\"top\"\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\n\t\t\t\t\t\t\t(click)=\"onZoomOut()\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"fa fa-search-minus\"></span>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"btn-group btn-group-sm mr-2\" role=\"group\" aria-label=\"Third group\">\n\t\t\t\t\t\t<!--prev -->\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref=\"Javascript:;\"\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\n\t\t\t\t\t\t\t(click)=\"onPrevPage()\"\n\t\t\t\t\t\t\ttitle=\"Anterior\"\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\n\t\t\t\t\t\t\tdata-placement=\"top\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"fa fa-chevron-left\"></span>\n\t\t\t\t\t\t</a>\n\n\t\t\t\t\t\t<!-- pagination-->\n\t\t\t\t\t\t<span class=\"btn btn-outline-secondary\" *ngIf=\"isPdfDoc() === true\">\n\t\t\t\t\t\t\tPágina: {{ pdfDocument.pageNum }} / {{ pdfDocument.pdfDoc.numPages }}\n\t\t\t\t\t\t</span>\n\n\t\t\t\t\t\t<!--next -->\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref=\"Javascript:;\"\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\n\t\t\t\t\t\t\t(click)=\"onNextPage()\"\n\t\t\t\t\t\t\ttitle=\"Siguiente\"\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\n\t\t\t\t\t\t\tdata-placement=\"top\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"fa fa-chevron-right\"></span>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"btn-group btn-group-sm\" role=\"group\" aria-label=\"First group\">\n\t\t\t\t\t\t<!-- download-->\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t[download]=\"filename\"\n\t\t\t\t\t\t\t*ngIf=\"isFilename() === true\"\n\t\t\t\t\t\t\t(click)=\"download()\"\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\n\t\t\t\t\t\t\ttitle=\"Descargar\"\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\n\t\t\t\t\t\t\tdata-placement=\"top\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<!-- [href]=\"\n\t\t\t\t\t\t\t\tsanitization.bypassSecurityTrustUrl(\n\t\t\t\t\t\t\t\t\t'data:application/pdf;base64,' + this.base64\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\" -->\n\t\t\t\t\t\t\t<span class=\"fa fa-download\"></span>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t\t<!-- TODO - Check functionality -->\n\t\t\t\t\t\t<!-- toggle edit-->\n\t\t\t\t\t\t<!-- <a\n\t\t\t\t\t\t\thref=\"Javascript:;\"\n\t\t\t\t\t\t\t*ngIf=\"isEnableEdit() === true\"\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\n\t\t\t\t\t\t\ttitle=\"Editar\"\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\n\t\t\t\t\t\t\tdata-placement=\"top\"\n\t\t\t\t\t\t\t(click)=\"toggleEdit()\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"fa fa-edit\"></span>\n\t\t\t\t\t\t</a> -->\n\n\t\t\t\t\t\t<!-- generate pdf-->\n\t\t\t\t\t\t<!-- <a\n\t\t\t\t\t\t\thref=\"Javascript:;\"\n\t\t\t\t\t\t\t*ngIf=\"isEdit() === true\"\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\n\t\t\t\t\t\t\ttitle=\"Generar\"\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\n\t\t\t\t\t\t\tdata-placement=\"top\"\n\t\t\t\t\t\t\t(click)=\"change()\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"fa fa-play\"></span>\n\t\t\t\t\t\t</a> -->\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div class=\"col-md-5 pull-right\" *ngIf=\"isEnableEmail() === true\">\n\t\t\t\t<div class=\"input-group input-group-sm\">\n\t\t\t\t\t<label for=\"pdf-visualizer-email\" class=\"pdf\">\n\t\t\t\t\t\tEnviar mensaje a\n\t\t\t\t\t</label>\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"email\"\n\t\t\t\t\t\tid=\"pdf-visualizer-email\"\n\t\t\t\t\t\tname=\"pdf-visualizer-email\"\n\t\t\t\t\t\trequired=\"true\"\n\t\t\t\t\t\tclass=\"form-control\"\n\t\t\t\t\t\tplaceholder=\"Correo electrónico\"\n\t\t\t\t\t\t[(ngModel)]=\"email\"\n\t\t\t\t\t/>\n\t\t\t\t\t<div class=\"input-group-append\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclass=\"btn btn-outline-secondary\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t(click)=\"sendEmail()\"\n\t\t\t\t\t\t\ttitle=\"Enviar\"\n\t\t\t\t\t\t\tdata-toggle=\"tooltip\"\n\t\t\t\t\t\t\tdata-placement=\"top\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\tsrc=\"http://giro360.co/zona360/colfuturo/PLIC/img/export.svg\"\n\t\t\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\t\t\twidth=\"16\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\n\t<div class=\"pdf-visualizer-dashboard\">\n\t\t<div class=\"row\">\n\t\t\t<!-- <div class=\"col-md-5\" *ngIf=\"isEdit() === true\">\n\t\t\t\t<textarea\n\t\t\t\t\tclass=\"form-control\"\n\t\t\t\t\t[style.height]=\"getHeight()\"\n\t\t\t\t\tstyle=\"resize:vertical;\"\n\t\t\t\t\t[(ngModel)]=\"html\"\n\t\t\t\t></textarea>\n\t\t\t</div> -->\n\t\t\t<div [ngClass]=\"{ 'col-md-7': edit === true, 'col-md-12': !edit }\">\n\t\t\t\t<div\n\t\t\t\t\tid=\"pdf-scrollable\"\n\t\t\t\t\tclass=\"pdf-visualizer-scrollable\"\n\t\t\t\t\t[style.height]=\"getHeight()\"\n\t\t\t\t>\n\t\t\t\t\t<canvas id=\"pdf-canvas\" class=\"pdf-visualizer-canvas\"> </canvas>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n","import {\n\tComponent,\n\tOnInit,\n\tEventEmitter,\n\tOutput,\n\tChangeDetectorRef,\n\tAfterContentInit\n} from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { PliPromocion, PliPatrocinador } from 'ng-pli-util';\nimport { PppService } from '../../services/ppp.service';\n\n@Component({\n    selector: 'pli-select-ppp',\n    templateUrl: './select-ppp.component.html',\n    styleUrls: ['./select-ppp.component.css'],\n    standalone: false\n})\nexport class SelectPppComponent implements OnInit, AfterContentInit {\n\t/** Lists ppp */\n\tlistPatrocinador: Array<any>;\n\tlistPrograma: Array<any>;\n\tlistPromocion: Array<any>;\n\n\tlistPatrocinadorDr: Array<any>;\n\tlistProgramaDr: Array<any>;\n\tlistPromocionDr: Array<any>;\n\n\t/** Variables ppp */\n\tpatCodigo: number = 0;\n\tprogCodigo: number = 0;\n\tpromCodigo: number = 0;\n\tpromCodigoTmp: number = 0;\n\n\tformPPP: UntypedFormGroup;\n\n\t/** It is used when promcodigo is changed */\n\t@Output() onPromCodigoSelected = new EventEmitter<any>();\n\n\tconstructor(\n\t\tprivate pppService: PppService,\n\t\tprivate rf: UntypedFormBuilder,\n\t\tprivate activatedRoute: ActivatedRoute,\n\t\tprotected cdRef: ChangeDetectorRef\n\t) {\n\t\t// subscribe list ppp\n\t\tthis.getListPatrocinador();\n\n\t\t// subscribe to change ppp\n\t\tthis.pppService.onChangePpp().subscribe((result: number) => {\n\t\t\tif (result) {\n\t\t\t\tthis.promCodigo = result;\n\t\t\t\tthis.initPpp();\n\t\t\t}\n\t\t});\n\n\t\tif (!this.promCodigo) {\n\t\t\tlet promocionList: PliPromocion[] = this.pppService.getAllPromociones();\n\t\t\tif (promocionList && promocionList.length) {\n\t\t\t\tpromocionList.sort((a, b) =>\n\t\t\t\t\ta.promFechaCreacion < b.promFechaCreacion\n\t\t\t\t\t\t? 1\n\t\t\t\t\t\t: a.promFechaCreacion > b.promFechaCreacion\n\t\t\t\t\t\t? -1\n\t\t\t\t\t\t: 0\n\t\t\t\t);\n\t\t\t\t//this.promCodigo = promocionList[0].promCodigo;\n\t\t\t\tthis.initPpp();\n\t\t\t}\n\t\t}\n\t\tthis.pppService.setPpp(this.promCodigo);\n\t}\n\n\tngOnInit() {\n\t\tthis.activatedRoute.params.subscribe((params) => {\n\t\t\tthis.promCodigo = params['promCodigo'];\n\t\t\tthis.promCodigoTmp = params['promCodigo'];\n\t\t\tif (this.promCodigo > 0) {\n\t\t\t\tthis.patCodigo = this.pppService.getPatCodigoByPromCodigo(this.promCodigo);\n\t\t\t\tthis.progCodigo = this.pppService.getProgCodigoByPromCodigo(this.promCodigo);\n\t\t\t}\n\t\t});\n\t\tthis.formPPP = this.rf.group({\n\t\t\tsponsor: [this.patCodigo],\n\t\t\tprogram: [this.progCodigo],\n\t\t\tpromotion: [this.promCodigo]\n\t\t});\n\t}\n\n\tgetListPatrocinador() {\n\t\tthis.pppService.getListPpp().subscribe((result: Array<any>) => {\n\t\t\tif (result) {\n\t\t\t\tthis.listPatrocinador = result;\n\t\t\t\tthis.listPatrocinadorDr = [];\n\t\t\t\tresult.forEach((patrocinador) => {\n\t\t\t\t\tlet patrocinadorTmp = {\n\t\t\t\t\t\tvalue: patrocinador.patCodigo,\n\t\t\t\t\t\tlabel: patrocinador.patNombreCorto\n\t\t\t\t\t};\n\t\t\t\t\tthis.listPatrocinadorDr.push(patrocinadorTmp);\n\t\t\t\t});\n\t\t\t\tthis.initPpp();\n\t\t\t}\n\t\t});\n\t}\n\n\t/** It initializes the variables when they are assigned */\n\tprivate initPpp() {\n\t\tif (this.listPatrocinador && this.listPatrocinador.length && this.promCodigo) {\n\t\t\tfor (const patrocinador of this.listPatrocinador)\n\t\t\t\tfor (const programa of patrocinador.listaPliPrograma)\n\t\t\t\t\tfor (const promocion of programa.listaPliPromocion)\n\t\t\t\t\t\tif (promocion.promCodigo == this.promCodigo) {\n\t\t\t\t\t\t\tthis.patCodigo = patrocinador.patCodigo;\n\t\t\t\t\t\t\tthis.progCodigo = programa.progCodigo;\n\t\t\t\t\t\t\tthis.promCodigo = promocion.promCodigo;\n\t\t\t\t\t\t\tthis.listPrograma = patrocinador.listaPliPrograma;\n\t\t\t\t\t\t\tthis.listPromocion = programa.listaPliPromocion;\n\t\t\t\t\t\t}\n\t\t}\n\t}\n\n\tgetPatrocinador(patCodigo: number) {\n\t\tif (patCodigo > 0 && this.promCodigo > 0) {\n\t\t\tthis.getListPatrocinador();\n\t\t\t//this.initPpp();\n\t\t}\n\t}\n\n\t/** It fires when patrocinador is changed */\n\tasync onPliPatrocinadorChanged() {\n\t\tthis.patCodigo = this.formPPP.get('sponsor').value;\n\t\tif (this.patCodigo) {\n\t\t\tfor (const patrocinador of this.listPatrocinador) {\n\t\t\t\tif (patrocinador.patCodigo == this.patCodigo) {\n\t\t\t\t\tthis.patCodigo = patrocinador.patCodigo;\n\t\t\t\t\tthis.progCodigo = 0;\n\t\t\t\t\tthis.promCodigo = 0;\n\t\t\t\t\tthis.listPrograma = patrocinador.listaPliPrograma;\n\t\t\t\t\tthis.listPromocion = [];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.listPrograma && this.listPrograma.length > 0) {\n\t\t\t\tthis.listProgramaDr = [];\n\t\t\t\tthis.listPrograma.forEach((programa) => {\n\t\t\t\t\tlet programaTmp = {\n\t\t\t\t\t\tvalue: programa.progCodigo,\n\t\t\t\t\t\tlabel: programa.progNombreCorto\n\t\t\t\t\t};\n\t\t\t\t\tthis.listProgramaDr.push(programaTmp);\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tthis.progCodigo = 0;\n\t\t\tthis.promCodigo = 0;\n\t\t\tthis.listPrograma = [];\n\t\t\tthis.listPromocion = [];\n\t\t}\n\t}\n\n\t/** It fires when programa is changed */\n\tonPliProgramaChanged() {\n\t\tthis.progCodigo = this.formPPP.get('program').value;\n\t\tif (this.progCodigo) {\n\t\t\tfor (const programa of this.listPrograma)\n\t\t\t\tif (programa.progCodigo == this.progCodigo) {\n\t\t\t\t\tthis.promCodigo = 0;\n\t\t\t\t\tthis.listPromocion = programa.listaPliPromocion;\n\t\t\t\t}\n\t\t\tif (this.listPromocion && this.listPromocion.length > 0) {\n\t\t\t\tthis.listPromocionDr = [];\n\t\t\t\tthis.listPromocion.forEach((promocion) => {\n\t\t\t\t\tlet promocionTmp = {\n\t\t\t\t\t\tvalue: promocion.promCodigo,\n\t\t\t\t\t\tlabel: promocion.promNombreCorto\n\t\t\t\t\t};\n\t\t\t\t\tthis.listPromocionDr.push(promocionTmp);\n\t\t\t\t\tthis.listPromocionDr.sort((a, b) => {\n\t\t\t\t\t\treturn b.value - a.value;\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tthis.promCodigo = 0;\n\t\t\tthis.listPromocion = [];\n\t\t}\n\t}\n\n\t/** It fires when programa is changed */\n\tonPliPromocionChanged(promocion: any) {\n\t\tthis.progCodigo = promocion.value;\n\t\tthis.pppService.setPpp(this.promCodigo);\n\t\tthis.onPromCodigoSelected.emit(this.promCodigo);\n\t\tthis.setPromocion();\n\t}\n\n\tsetPromocion() {\n\t\tsetTimeout(() => {\n\t\t\tif (this.formPPP.get('sponsor').value > 0) {\n\t\t\t\tthis.onPliPatrocinadorChanged();\n\t\t\t\tthis.progCodigo = this.formPPP.get('program').value;\n\t\t\t\tthis.onPliProgramaChanged();\n\t\t\t\tif (this.formPPP.get('promotion').value > 0) {\n\t\t\t\t\tthis.formPPP.get('promotion').markAsDirty();\n\t\t\t\t\tthis.promCodigo = parseInt(this.formPPP.get('promotion').value);\n\t\t\t\t\tthis.formPPP.get('promotion').setValue(this.promCodigo);\n\t\t\t\t}\n\t\t\t}\n\t\t}, 100);\n\t\tthis.cdRef.detectChanges();\n\t}\n\n\tngAfterContentInit() {\n\t\tsetTimeout(() => {\n\t\t\tif (this.formPPP.get('sponsor').value > 0) {\n\t\t\t\tthis.onPliPatrocinadorChanged();\n\t\t\t\tthis.progCodigo = this.formPPP.get('program').value;\n\t\t\t\tthis.onPliProgramaChanged();\n\t\t\t\tif (this.formPPP.get('promotion').value > 0) {\n\t\t\t\t\tthis.formPPP.get('promotion').markAsDirty();\n\t\t\t\t\tthis.promCodigo = parseInt(this.formPPP.get('promotion').value);\n\t\t\t\t\tthis.formPPP.get('promotion').setValue(this.promCodigo);\n\t\t\t\t}\n\t\t\t}\n\t\t}, 2000);\n\t\tthis.cdRef.detectChanges();\n\t}\n}\n","<!-- <div class=\"row\">\n\t<div class=\"col-md-4\">\n\t\t<div class=\"form-group\">\n\t\t\t<label for=\"patCodigo\" class=\"form-control-label\">Patrocinador</label>\n\t\t\t<p-dropdown\n\t\t\t\t[style]=\"{ minWidth: '100%' }\"\n\t\t\t\t[options]=\"listPatrocinadorDr\"\n\t\t\t\t[(ngModel)]=\"patCodigo\"\n\t\t\t\tplaceholder=\"-- Seleccione opción\"\n\t\t\t\t(ngModelChange)=\"onPliPatrocinadorChanged()\"\n\t\t\t></p-dropdown>\n\t\t</div>\n\t</div>\n\t<div class=\"col-md-4\">\n\t\t<div class=\"form-group\">\n\t\t\t<label for=\"progCodigo\" class=\"form-control-label\">Programa</label>\n\t\t\t<p-dropdown\n\t\t\t\t[style]=\"{ minWidth: '100%' }\"\n\t\t\t\t[options]=\"listProgramaDr\"\n\t\t\t\t[(ngModel)]=\"progCodigo\"\n\t\t\t\tplaceholder=\"-- Seleccione opción\"\n\t\t\t\t(onChange)=\"onPliProgramaChanged()\"\n\t\t\t></p-dropdown>\n\t\t</div>\n\t</div>\n\t<div class=\"col-md-4\">\n\t\t<div class=\"form-group\">\n\t\t\t<label for=\"promCodigo\" class=\"form-control-label\">Promocion</label>\n\t\t\t<p-dropdown\n\t\t\t\t[style]=\"{ minWidth: '100%' }\"\n\t\t\t\t[options]=\"listPromocionDr\"\n\t\t\t\t[(ngModel)]=\"promCodigo\"\n\t\t\t\tplaceholder=\"-- Seleccione opción\"\n\t\t\t\t(onChange)=\"onPliPromocionChanged($event)\"\n\t\t\t></p-dropdown>\n\t\t</div>\n\t</div>\n</div> -->\n<form [formGroup]=\"formPPP\">\n\t<div class=\"row\">\n\t\t<div class=\"col-md-4\">\n\t\t\t<div class=\"form-group\">\n\t\t\t\t<label for=\"patCodigo\" class=\"form-control-label\">Patrocinador</label>\n\t\t\t\t<p-dropdown\n\t\t\t\t\t[style]=\"{ minWidth: '100%' }\"\n\t\t\t\t\t[options]=\"listPatrocinadorDr\"\n\t\t\t\t\tformControlName=\"sponsor\"\n\t\t\t\t\t[(ngModel)]=\"patCodigo\"\n\t\t\t\t\tplaceholder=\"-- Seleccione opción\"\n\t\t\t\t\t(ngModelChange)=\"onPliPatrocinadorChanged()\"\n\t\t\t\t></p-dropdown>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"col-md-4\">\n\t\t\t<div class=\"form-group\">\n\t\t\t\t<label for=\"progCodigo\" class=\"form-control-label\">Programa</label>\n\t\t\t\t<p-dropdown\n\t\t\t\t\t[style]=\"{ minWidth: '100%' }\"\n\t\t\t\t\t[options]=\"listProgramaDr\"\n\t\t\t\t\tformControlName=\"program\"\n\t\t\t\t\t[(ngModel)]=\"progCodigo\"\n\t\t\t\t\tplaceholder=\"-- Seleccione opción\"\n\t\t\t\t\t(onChange)=\"onPliProgramaChanged()\"\n\t\t\t\t></p-dropdown>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"col-md-4\">\n\t\t\t<div class=\"form-group\">\n\t\t\t\t<label for=\"promCodigo\" class=\"form-control-label\">Promocion</label>\n\t\t\t\t<p-dropdown\n\t\t\t\t\t[style]=\"{ minWidth: '100%' }\"\n\t\t\t\t\t[options]=\"listPromocionDr\"\n\t\t\t\t\tformControlName=\"promotion\"\n\t\t\t\t\t[(ngModel)]=\"promCodigo\"\n\t\t\t\t\tplaceholder=\"-- Seleccione opción\"\n\t\t\t\t\t(onChange)=\"onPliPromocionChanged($event)\"\n\t\t\t\t></p-dropdown>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</form>","import {\n\tComponent,\n\tOnInit,\n\tChangeDetectorRef,\n\tOnChanges,\n\tSimpleChanges,\n\tInput,\n\tSimpleChange,\n\tOutput,\n\tEventEmitter,\n\tHostListener\n} from '@angular/core';\nimport { ToastrService } from 'ngx-toastr';\nimport { CommonListsComponent } from '../common.lists.component';\nimport { SegColumn, UtilString } from 'ng-pli-util';\nimport { CommonService } from '../../services/common.service';\n\n@Component({\n    selector: 'app-show-hide-columns-table',\n    templateUrl: './show-hide-columns-table.component.html',\n    styleUrls: ['./show-hide-columns-table.component.css'],\n    standalone: false\n})\nexport class ShowHideColumnsTableComponent extends CommonListsComponent implements OnInit {\n\t/** Title  of component */\n\t@Input() title: string;\n\t/** Columns */\n\t@Input() listColumnWork: SegColumn[];\n\t/** List of columns */\n\t@Input() comboColumnWork: any[];\n\t/** To show the dialog columns selected */\n\tdisplayDialog: boolean;\n\t/** it contains all columns  no grouping */\n\tlistTotalSegColumn: SegColumn[];\n\t/** */\n\tready: boolean = false;\n\t/** */\n\tcolumnSearch: string;\n\t/** */\n\t@Output() listColumnSelected: EventEmitter<SegColumn[]> = new EventEmitter();\n\n\tconstructor(\n\t\tprotected commonService: CommonService,\n\t\tprotected cdRef: ChangeDetectorRef,\n\t\tprivate toastrService: ToastrService\n\t) {\n\t\tsuper(commonService, cdRef);\n\t}\n\n\tngOnInit() {\n\t\tsuper.ngOnInit();\n\t\tthis.ready = true;\n\n\t\tif (this.comboColumnWork) {\n\t\t\t// sort by category\n\t\t\tthis.comboColumnWork.sort((a, b) => {\n\t\t\t\tconst labelA = UtilString.accentsTidy(a.label).toLowerCase();\n\t\t\t\tconst labelB = UtilString.accentsTidy(b.label).toLowerCase();\n\t\t\t\tif (labelA > labelB) return 1;\n\t\t\t\tif (labelB > labelA) return -1;\n\t\t\t\treturn 0;\n\t\t\t});\n\t\t\t// sort by columns\n\t\t\tthis.comboColumnWork.forEach((category) => {\n\t\t\t\tif (category.items)\n\t\t\t\t\tcategory.items.sort((a, b) => {\n\t\t\t\t\t\tconst labelA = UtilString.accentsTidy(a.label).toLowerCase();\n\t\t\t\t\t\tconst labelB = UtilString.accentsTidy(b.label).toLowerCase();\n\t\t\t\t\t\tif (labelA > labelB) return 1;\n\t\t\t\t\t\tif (labelB > labelA) return -1;\n\t\t\t\t\t\treturn 0;\n\t\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}\n\n\t/** it executes when the check of category has changed */\n\tchangeCategory(isChecked, category) {\n\t\tif (category) {\n\t\t\tif (isChecked) for (const column of category.items) column.selected = true;\n\t\t\telse for (const column of category.items) column.selected = false;\n\t\t}\n\t}\n\n\t/** it validates if it is visible or not */\n\tisVisibleCategory(category) {\n\t\tfor (const column of category.items) if (this.isVisibleColumn(column.label)) return true;\n\t\treturn false;\n\t}\n\n\t/** it validates if it is visible or not */\n\tisVisibleColumn(label) {\n\t\tif (!this.columnSearch) return true;\n\t\tif (label && label.toLowerCase().indexOf(this.columnSearch.toLowerCase()) >= 0) return true;\n\t\treturn false;\n\t}\n\n\t/** it sends to subject */\n\tsendSubject() {\n\t\tlet ids: number[] = [];\n\t\tfor (const category of this.comboColumnWork) {\n\t\t\tfor (const column of category.items) {\n\t\t\t\tif (column.selected) ids.push(column.value);\n\t\t\t}\n\t\t}\n\t\tlet lColumnSelected = [];\n\t\tfor (let work of this.listColumnWork) {\n\t\t\tfor (const category of this.comboColumnWork) {\n\t\t\t\tfor (const column of category.items) {\n\t\t\t\t\tif (column.value == work.idColumn) {\n\t\t\t\t\t\tif (column.selected) work.visible = true;\n\t\t\t\t\t\telse work.visible = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tlColumnSelected.push(this.cloneObject(work));\n\t\t}\n\t\tthis.listColumnSelected.emit(lColumnSelected);\n\t}\n}\n","<button\n\ttype=\"button\"\n\tclass=\"btn btn-default btn-sm \"\n\t(click)=\"displayDialog = !displayDialog\"\n\t*ngIf=\"ready\"\n>\n\t{{ title }}\n</button>\n\n<p-dialog\n\t*ngIf=\"ready\"\n\theader=\"Ocultar o mostrar columnas\"\n\t[(visible)]=\"displayDialog\"\n\t[modal]=\"true\"\n\t[contentStyle]=\"{\n\t\t'text-align': 'left',\n\t\twidth: '1100px',\n\t\t'overflow-y': 'auto'\n\t}\"\n\tdismissableMask=\"true\"\n\t(onHide)=\"sendSubject()\"\n>\n\t<div class=\"row\">\n\t\t<div class=\"col-md-4\">\n\t\t\t<input\n\t\t\t\ttype=\"input\"\n\t\t\t\tclass=\"form-control\"\n\t\t\t\tplaceholder=\"Busqueda de columnas\"\n\t\t\t\t[(ngModel)]=\"columnSearch\"\n\t\t\t/>\n\t\t</div>\n\t</div>\n\n\t<ng-container *ngFor=\"let category of comboColumnWork\">\n\t\t<div class=\"row\" *ngIf=\"isVisibleCategory(category)\" style=\"margin-top:2rem;\">\n\t\t\t<div class=\"col-md-12\">\n\t\t\t\t<div class=\"checkbox\" style=\"margin:0 !important;\">\n\t\t\t\t\t<label\n\t\t\t\t\t\t><input\n\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t(change)=\"changeCategory($event.currentTarget.checked, category)\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<strong>{{ category.label }}</strong>\n\t\t\t\t\t</label>\n\t\t\t\t\t&nbsp;<span\n\t\t\t\t\t\tclass=\"fa\"\n\t\t\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t\t\t'fa-chevron-down': !category.collapsed,\n\t\t\t\t\t\t\t'fa-chevron-right': category.collapsed\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\tstyle=\"cursor:pointer;\"\n\t\t\t\t\t\t(click)=\"category.collapsed = !category.collapsed\"\n\t\t\t\t\t></span>\n\t\t\t\t</div>\n\n\t\t\t\t<div class=\"row\" *ngIf=\"!category.collapsed\">\n\t\t\t\t\t<div class=\"col-md-12\">\n\t\t\t\t\t\t<div style=\"margin-left:2rem;margin-top:1rem;\">\n\t\t\t\t\t\t\t<ng-container *ngFor=\"let column of category.items\">\n\t\t\t\t\t\t\t\t<div class=\"col-md-3\" *ngIf=\"isVisibleColumn(column.label)\">\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t*ngIf=\"column.value != null\"\n\t\t\t\t\t\t\t\t\t\tclass=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\tstyle=\"margin:0 !important;\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<label class=\"adjust-text-size\" title=\"{{ column.label }}\"\n\t\t\t\t\t\t\t\t\t\t\t><input\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\t\t\t[(ngModel)]=\"column.selected\"\n\t\t\t\t\t\t\t\t\t\t\t/>{{ column.label }}</label\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div *ngIf=\"column.value == null\">&nbsp;</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</ng-container>\n</p-dialog>\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { sesion } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class SesionService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It returns the list of sesion by login */\n\tgetByLogin(login: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'sesion/getByLogin',\n\t\t\t{ params: new HttpParams().set('login', login) }\n\t\t);\n\t}\n\n\tgetEmailByLogin(login: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'sesion/getEmailByLogin',\n\t\t\t{ params: new HttpParams().set('login', login) }\n\t\t);\n\t}\n\n\tgetIngresoExterno(login: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'sesion/getIngresoExterno',\n\t\t\t{ params: new HttpParams().set('login', login) }\n\t\t);\n\t}\n\n\t/**\n\t * @description if login has a session returns true else false\n\t * @param login identification number\n\t * @return Boolean\n\t */\n\tgetHasSession(login: string) {\n\t\treturn this.httpClient.get<Boolean>(\n\t\t\t`${this.environment.host.backend.configuration}sesion/hasSession`,\n\t\t\t{ params: new HttpParams().set('login', login) }\n\t\t);\n\t}\n\n\t/**\n\t * It returns list of inactive users\n\t * @return list of sesions\n\t */\n\tgetInactiveUsers(): Observable<sesion[]> {\n\t\treturn this.httpClient.get<sesion[]>(\n\t\t\t`${this.environment.host.backend.configuration}sesion/inactive-users`\n\t\t);\n\t}\n}\n","import {\n\tComponent,\n\tOnInit,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tOnChanges,\n\tSimpleChanges,\n\tSimpleChange\n} from '@angular/core';\nimport {\n\tUtilString,\n\tDataToTranslateToken,\n\tToken,\n\tBudgetDto,\n\tETipoPresupuesto,\n\tPliUsuario,\n\tsesion,\n\tAuthenticationUtil,\n\tPliUser,\n\tApplicationBudgetTotal,\n\tDateUtil,\n\tEvaluation\n} from 'ng-pli-util';\nimport { CurrencyPipe } from '@angular/common';\nimport { TokenService } from '../../services/token.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { AuthenticationService } from '../../services/authentication.service';\nimport 'jquery';\nimport { SesionService } from '../../services/sesion.service';\nimport { TokenTransformationService } from '../../services/token-transformation.service';\n\n@Component({\n    selector: 'pli-token',\n    templateUrl: './token.component.html',\n    styleUrls: ['./token.component.css'],\n    standalone: false\n})\nexport class TokenComponent implements OnInit, OnChanges {\n\t/** It contains the template html to translate */\n\t@Input() template: string;\n\t@Input() istemplate: boolean = false;\n\t/** It contains the data to implement */\n\t@Input() data: DataToTranslateToken;\n\t/** It notifies the html is generated*/\n\t@Output() onGenerate: EventEmitter<any> = new EventEmitter<any>();\n\n\t/** It enables the visualization of destination */\n\tenableDestination: boolean = false;\n\n\t/** It contains the prom code */\n\tpromCodigo: number;\n\n\tapplicationId: string;\n\n\t/** */\n\tlTokenCalculated: Token[];\n\t/** */\n\tlFormFieldsToken: any[];\n\t/** */\n\tuniqueVerificationCode: string;\n\t/** */\n\tbudgetDtoPrimary: BudgetDto;\n\t/** */\n\tbudgetDtoSecundary: BudgetDto;\n\t/** As the list of token are loaded dynamically, this manage that only replace the info once. */\n\talreadyCallReplaceTokens: boolean;\n\n\tevaluation: Evaluation;\n\tdebtorInsurance: number;\n\n\tconstructor(\n\t\tprivate currencyPipe: CurrencyPipe,\n\t\tprivate tokenService: TokenService,\n\t\tprivate toastrService: ToastrService,\n\t\tprivate authenticationService: AuthenticationService,\n\t\tprivate tokenTransformationService: TokenTransformationService,\n\t\tprivate sesionService: SesionService\n\t) {}\n\n\tngOnInit() {\n\t\tthis.lTokenCalculated = null;\n\t\tthis.lFormFieldsToken = null;\n\t\tthis.budgetDtoPrimary = null;\n\t\tthis.budgetDtoSecundary = null;\n\t\tthis.evaluation = null;\n\t}\n\n\t/** It manages the change of the every @Input */\n\tngOnChanges(changes: SimpleChanges): void {\n\t\t// Every time that input values change, call new verification code\n\t\tthis.uniqueVerificationCode = null;\n\t\tconst template: SimpleChange = changes.template;\n\t\tconst data: SimpleChange = changes.data;\n\n\t\tif (template && template.currentValue) {\n\t\t\tthis.template = template.currentValue;\n\t\t}\n\t\tif (data && data.currentValue) {\n\t\t\tthis.data = data.currentValue;\n\t\t\tthis.promCodigo = this.data.promCodigo;\n\t\t\tthis.applicationId = this.data.applicationId;\n\t\t}\n\t\tif (this.data) {\n\t\t\tthis.budgetDtoPrimary = this.data.budgetDtoPrimary ? this.data.budgetDtoPrimary : null;\n\t\t\tthis.budgetDtoSecundary = this.data.budgetDtoSecundary\n\t\t\t\t? this.data.budgetDtoSecundary\n\t\t\t\t: null;\n\t\t\tthis.evaluation = this.data.evaluation;\n\t\t}\n\t\tif (this.data && this.template && this.promCodigo) {\n\t\t\tconst self = this;\n\t\t\tsetTimeout(() => {\n\t\t\t\tself.init();\n\t\t\t}, 300);\n\t\t}\n\t}\n\t/** It initializes the process of translation */\n\tprivate init() {\n\t\tif (this.istemplate) {\n\t\t\tthis.onGenerate.emit({\n\t\t\t\thtml: this.template,\n\t\t\t\ttokenTypeTranslated: null\n\t\t\t});\n\t\t} else {\n\t\t\tthis.translateTokens(this.template, this.data.dataFormByForm);\n\t\t}\n\t}\n\n\ttranslateCategory(categoryName: string): string {\n\t\tconst languageByDefault = 'en';\n\t\t// If don't find the lang, get in en.\n\t\tlet categoryNameByDef: string = categoryName;\n\t\tif (categoryName && this.data.categories && this.data.idioma) {\n\t\t\t// If the locale select is es, this is the dafult category language\n\t\t\tif (this.data.idioma.locale === 'es') {\n\t\t\t\treturn categoryName;\n\t\t\t}\n\t\t\tfor (const category of this.data.categories) {\n\t\t\t\tif (category.listaRubroIdioma && category.rubRubro === categoryName) {\n\t\t\t\t\tfor (const language of category.listaRubroIdioma) {\n\t\t\t\t\t\tif (language.rubiIdioma === this.data.idioma.locale) {\n\t\t\t\t\t\t\treturn language.rubiTraduccion;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (language.rubiIdioma === languageByDefault) {\n\t\t\t\t\t\t\tcategoryNameByDef = language.rubiTraduccion;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn categoryNameByDef;\n\t}\n\n\ttranslateTokens(html: string, listData: any) {\n\t\tthis.alreadyCallReplaceTokens = false;\n\t\tconst lTokens: any[] = this.getListTokens(html);\n\t\tif (!lTokens || Object.keys(lTokens).length === 0) {\n\t\t\tthis.template = html;\n\t\t}\n\t\tthis.callListTokens(lTokens, html, listData);\n\t}\n\n\tcallListTokens(lTokens: any[], html: string, listData: any) {\n\t\tif (\n\t\t\tlTokens[TokenService.TOKEN_LABEL_CALCULATED] &&\n\t\t\tObject.keys(lTokens[TokenService.TOKEN_LABEL_CALCULATED]).length > 0\n\t\t) {\n\t\t\tif (this.lTokenCalculated) {\n\t\t\t\tthis.validateListTokens(lTokens, html, listData);\n\t\t\t} else {\n\t\t\t\tthis.tokenService.getListByPromCodigo(this.promCodigo).subscribe(\n\t\t\t\t\t(lTokenCalculated: Token[]) => {\n\t\t\t\t\t\tthis.lTokenCalculated = lTokenCalculated;\n\t\t\t\t\t\tthis.validateListTokens(lTokens, html, listData);\n\t\t\t\t\t},\n\t\t\t\t\t(error) => {\n\t\t\t\t\t\tconsole.error('Error callListTokens -getListByPromCodigo', error);\n\t\t\t\t\t\tthis.toastrService.error('Error generando carta');\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.validateListTokens(lTokens, html, listData);\n\t\t}\n\t\tif (\n\t\t\tlTokens[TokenService.TOKEN_LABEL_FORM] &&\n\t\t\tObject.keys(lTokens[TokenService.TOKEN_LABEL_FORM]).length > 0\n\t\t) {\n\t\t\tif (this.lFormFieldsToken) {\n\t\t\t\tthis.validateListTokens(lTokens, html, listData);\n\t\t\t} else {\n\t\t\t\tthis.tokenService.getFormFieldsByPromCode(this.promCodigo).then(\n\t\t\t\t\t(lFormFieldsToken: any[]) => {\n\t\t\t\t\t\tthis.lFormFieldsToken = lFormFieldsToken;\n\t\t\t\t\t\tthis.validateListTokens(lTokens, html, listData);\n\t\t\t\t\t},\n\t\t\t\t\t(error) => {\n\t\t\t\t\t\tconsole.error('Error callListTokens -getFormFieldsByPromCode', error);\n\t\t\t\t\t\tthis.toastrService.error('Error generando carta');\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.validateListTokens(lTokens, html, listData);\n\t\t}\n\t\tif (\n\t\t\tlTokens[TokenService.TOKEN_LABEL_STATIC] &&\n\t\t\tObject.keys(lTokens[TokenService.TOKEN_LABEL_STATIC]).length > 0\n\t\t) {\n\t\t\tif (this.uniqueVerificationCode !== null) {\n\t\t\t\tthis.validateListTokens(lTokens, html, listData);\n\t\t\t} else {\n\t\t\t\tconst tokenVerificationCode: any[] = lTokens[TokenService.TOKEN_LABEL_STATIC].find(\n\t\t\t\t\t(token) => {\n\t\t\t\t\t\tconst subToken: string[] = token.key\n\t\t\t\t\t\t\t.replace('{', '')\n\t\t\t\t\t\t\t.replace('}', '')\n\t\t\t\t\t\t\t.split('_');\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\tsubToken[1].toLowerCase() ==\n\t\t\t\t\t\t\tTokenService.STATIC_TOKENS_KEY_CODIGO_VERIFICACION.toLowerCase()\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\t// Only if the static token is the unique verification code\n\t\t\t\tif (tokenVerificationCode && Object.keys(tokenVerificationCode).length > 0) {\n\t\t\t\t\tlet pliUsuarioObject = AuthenticationUtil.getPliUsuario();\n\t\t\t\t\tif (!pliUsuarioObject) {\n\t\t\t\t\t\tthis.uniqueVerificationCode = '';\n\t\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t\t'No se logro consultar el usuario para consultar el token',\n\t\t\t\t\t\t\tpliUsuarioObject\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.validateListTokens(lTokens, html, listData);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst pliUsuario: PliUsuario = Object.assign(\n\t\t\t\t\t\t\tnew PliUsuario(),\n\t\t\t\t\t\t\tJSON.parse(JSON.stringify(pliUsuarioObject))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.authenticationService.getTokenByLogin(pliUsuario.usuLogin).subscribe(\n\t\t\t\t\t\t\t(sesion: sesion) => {\n\t\t\t\t\t\t\t\t// Try to get the unique verification code with the default value of sesion if is not a valid value\n\t\t\t\t\t\t\t\tconst sesionValue = sesion ? sesion.sesion : '1';\n\t\t\t\t\t\t\t\tthis.getUniqueVerificationCode(\n\t\t\t\t\t\t\t\t\tpliUsuario.usuLogin,\n\t\t\t\t\t\t\t\t\tsesionValue,\n\t\t\t\t\t\t\t\t\tlTokens,\n\t\t\t\t\t\t\t\t\thtml,\n\t\t\t\t\t\t\t\t\tlistData\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t(error) => {\n\t\t\t\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t\t\t\t'Error consultando el login en PLIS, getTokenByLogin',\n\t\t\t\t\t\t\t\t\terror\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t// Try to get the unique verification code with the default value of sesion\n\t\t\t\t\t\t\t\tthis.getUniqueVerificationCode(\n\t\t\t\t\t\t\t\t\tpliUsuario.usuLogin,\n\t\t\t\t\t\t\t\t\t'1',\n\t\t\t\t\t\t\t\t\tlTokens,\n\t\t\t\t\t\t\t\t\thtml,\n\t\t\t\t\t\t\t\t\tlistData\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t//this.toastrService.error(\"Error generando carta\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.uniqueVerificationCode = '';\n\t\t\t\t\tthis.validateListTokens(lTokens, html, listData);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthis.validateListTokens(lTokens, html, listData);\n\t\t}\n\t}\n\n\t/**\n\t * Get the unique verification code and call validateListTokens method\n\t */\n\tgetUniqueVerificationCode(\n\t\tusuLogin: string,\n\t\tsesion: string,\n\t\tlTokens: any[],\n\t\thtml: string,\n\t\tlistData: any\n\t) {\n\t\tthis.tokenService.getUniqueVerificationCode(usuLogin, sesion).subscribe(\n\t\t\t(uniqueCodeValue: any) => {\n\t\t\t\tconst uniqueCode: string = uniqueCodeValue.codigoUnico;\n\t\t\t\tthis.uniqueVerificationCode =\n\t\t\t\t\tuniqueCode.substring(0, 4) + ' ' + uniqueCode.substring(4, 8);\n\t\t\t\tthis.validateListTokens(lTokens, html, listData);\n\t\t\t},\n\t\t\t(error) => {\n\t\t\t\tconsole.error('Error callListTokens -getListByPromCodigo', error);\n\t\t\t\tthis.toastrService.error('Error generando carta');\n\t\t\t}\n\t\t);\n\t}\n\n\tvalidateListTokens(lTokens: any[], html: string, listData: any) {\n\t\tlet finishLoadListForm: boolean = false;\n\t\tlet finishLoadListCalculated: boolean = false;\n\t\tlet finishLoadListStatic: boolean = false;\n\t\tconst finishLoadListBudget: boolean = true;\n\t\tif (\n\t\t\tlTokens[TokenService.TOKEN_LABEL_FORM] &&\n\t\t\tlTokens[TokenService.TOKEN_LABEL_FORM].length > 0\n\t\t) {\n\t\t\tfinishLoadListForm = this.lFormFieldsToken ? true : false;\n\t\t} else {\n\t\t\tfinishLoadListForm = true;\n\t\t}\n\t\tif (\n\t\t\tlTokens[TokenService.TOKEN_LABEL_CALCULATED] &&\n\t\t\tlTokens[TokenService.TOKEN_LABEL_CALCULATED].length > 0\n\t\t) {\n\t\t\tfinishLoadListCalculated = this.lTokenCalculated ? true : false;\n\t\t} else {\n\t\t\tfinishLoadListCalculated = true;\n\t\t}\n\t\tif (\n\t\t\tlTokens[TokenService.TOKEN_LABEL_STATIC] &&\n\t\t\tlTokens[TokenService.TOKEN_LABEL_STATIC].length > 0\n\t\t) {\n\t\t\tfinishLoadListStatic = this.uniqueVerificationCode !== null ? true : false;\n\t\t} else {\n\t\t\tfinishLoadListStatic = true;\n\t\t}\n\t\tif (\n\t\t\tfinishLoadListForm &&\n\t\t\tfinishLoadListBudget &&\n\t\t\tfinishLoadListStatic &&\n\t\t\tfinishLoadListCalculated &&\n\t\t\t!this.alreadyCallReplaceTokens\n\t\t) {\n\t\t\tthis.alreadyCallReplaceTokens = true;\n\t\t\tthis.replaceTokensWithData(lTokens, html, listData);\n\t\t}\n\t}\n\n\tasync replaceTokensWithData(lTokens: any[], html: string, listData: any) {\n\t\tconst lDataOrg: any[] = [];\n\t\tconst lFormFieldsTokenOrg: any[] = [];\n\t\tif (\n\t\t\t(lTokens[TokenService.TOKEN_LABEL_FORM] ||\n\t\t\t\tlTokens[TokenService.TOKEN_LABEL_CALCULATED]) &&\n\t\t\tlistData\n\t\t) {\n\t\t\tfor (const dataForm in listData) {\n\t\t\t\tlDataOrg[dataForm.toLowerCase()] = listData[dataForm];\n\t\t\t}\n\t\t\tif (this.lFormFieldsToken) {\n\t\t\t\tfor (const formFieldToken of this.lFormFieldsToken) {\n\t\t\t\t\tfor (const valuesField of formFieldToken.value) {\n\t\t\t\t\t\tconst keyToken: string =\n\t\t\t\t\t\t\t'${' + formFieldToken.title.key + '_' + valuesField.key + '}';\n\t\t\t\t\t\tlFormFieldsTokenOrg[keyToken] = valuesField;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst lTokensCalculated: any[] = [];\n\t\tif (lTokens[TokenService.TOKEN_LABEL_CALCULATED]) {\n\t\t\tif (this.lTokenCalculated) {\n\t\t\t\tfor (const tokenCal of this.lTokenCalculated) {\n\t\t\t\t\tlTokensCalculated[UtilString.replaceAccentSpacesOthers(tokenCal.name)] =\n\t\t\t\t\t\ttokenCal;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tlet typeToken: any;\n\t\tconst tokenTypeTranslated: any = [];\n\t\tfor (typeToken in lTokens) {\n\t\t\tif (!lTokens[typeToken]) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst tokensType: any[] = lTokens[typeToken];\n\t\t\ttokenTypeTranslated[typeToken] = [];\n\t\t\tfor (const token of tokensType) {\n\t\t\t\tlet tokenTranslated = null;\n\t\t\t\tconst subToken: string[] = token.key.replace('{', '').replace('}', '').split('_');\n\t\t\t\tswitch (typeToken) {\n\t\t\t\t\tcase TokenService.TOKEN_LABEL_FORM: // Form\n\t\t\t\t\t\tlet valueData = null;\n\t\t\t\t\t\tconst dataOrgKey = subToken[1].toLowerCase();\n\t\t\t\t\t\t// Put this key because there no other way to differentiate the same key in differents forms\n\t\t\t\t\t\tconst dataOrgKeyByForm =\n\t\t\t\t\t\t\tsubToken[0].substring(1) + '_' + subToken[1].toLowerCase();\n\t\t\t\t\t\tconst dataOrgValue = lDataOrg.hasOwnProperty(dataOrgKey)\n\t\t\t\t\t\t\t? lDataOrg[dataOrgKey]\n\t\t\t\t\t\t\t: lDataOrg.hasOwnProperty(dataOrgKeyByForm)\n\t\t\t\t\t\t\t? lDataOrg[dataOrgKeyByForm]\n\t\t\t\t\t\t\t: null;\n\t\t\t\t\t\t// const dataOrgValueByForm = lDataOrg[dataOrgKeyByForm];\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tsubToken.length === 3 &&\n\t\t\t\t\t\t\ttypeof dataOrgValue !== 'undefined' &&\n\t\t\t\t\t\t\tdataOrgValue !== null &&\n\t\t\t\t\t\t\tdataOrgValue.hasOwnProperty(subToken[2])\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tvalueData = dataOrgValue[subToken[2]];\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\tsubToken.length === 2 &&\n\t\t\t\t\t\t\ttypeof dataOrgValue !== 'undefined' &&\n\t\t\t\t\t\t\tdataOrgValue !== null\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tvalueData = dataOrgValue;\n\t\t\t\t\t\t\tif (lFormFieldsTokenOrg[token.key]) {\n\t\t\t\t\t\t\t\tvalueData = this.tokenService.getValueFromFormField(\n\t\t\t\t\t\t\t\t\tlFormFieldsTokenOrg[token.key],\n\t\t\t\t\t\t\t\t\tvalueData\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalueData = valueData ? valueData : '';\n\t\t\t\t\t\ttokenTranslated = valueData;\n\t\t\t\t\t\thtml = this.tokenService.replaceToken(html, token.value, valueData);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase TokenService.TOKEN_LABEL_BUDGET: //Budget\n\t\t\t\t\t\tconst budgetResolveToken = this.resolveBudgetToken(html, token, subToken);\n\t\t\t\t\t\thtml = budgetResolveToken.html;\n\t\t\t\t\t\ttokenTranslated = budgetResolveToken.value;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase TokenService.TOKEN_LABEL_TASKL: //Task\n\t\t\t\t\t\tconst taskResolveToken = this.resolveTaskoken(html, token, subToken);\n\t\t\t\t\t\thtml = taskResolveToken.html;\n\t\t\t\t\t\ttokenTranslated = taskResolveToken.value;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase TokenService.TOKEN_LABEL_STATIC: //Static\n\t\t\t\t\t\tconst staticResolveToken = await this.resolveStaticToken(\n\t\t\t\t\t\t\thtml,\n\t\t\t\t\t\t\ttoken,\n\t\t\t\t\t\t\tsubToken\n\t\t\t\t\t\t);\n\t\t\t\t\t\thtml = staticResolveToken.html;\n\t\t\t\t\t\ttokenTranslated = staticResolveToken.value;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase TokenService.TOKEN_LABEL_CALCULATED: //Calculated\n\t\t\t\t\t\t// Replaces de tokens of the formula\n\t\t\t\t\t\tconst tokenName: string = lTokensCalculated[subToken[1]].name;\n\t\t\t\t\t\tlet formula: string = lTokensCalculated[subToken[1]].formula;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t//AQUI\n\t\t\t\t\t\t\tformula = this.tokenService.replaceTokensFromListObject(\n\t\t\t\t\t\t\t\ttokenName,\n\t\t\t\t\t\t\t\tformula,\n\t\t\t\t\t\t\t\tlDataOrg\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tformula = null;\n\t\t\t\t\t\t\tconsole.error(error.error ? error.error : error);\n\t\t\t\t\t\t\tthis.toastrService.warning(error.message, error.tittle);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Try to evaluate the formula\n\t\t\t\t\t\tlet result: any = null;\n\t\t\t\t\t\tif (formula !== null) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tresult = formula.startsWith('file://')\n\t\t\t\t\t\t\t\t\t? \"<img width='250px' height='auto' src='\" + formula + \"'/>\"\n\t\t\t\t\t\t\t\t\t: eval(formula);\n\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t\t\t\t'Error evaluating the formula.',\n\t\t\t\t\t\t\t\t\tlTokensCalculated,\n\t\t\t\t\t\t\t\t\tsubToken,\n\t\t\t\t\t\t\t\t\te\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tthis.toastrService.error(\n\t\t\t\t\t\t\t\t\t'No se logro evaluar la formular del token ' + tokenName,\n\t\t\t\t\t\t\t\t\t'Error!'\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (result !== null) {\n\t\t\t\t\t\t\t\thtml = this.tokenService.replaceToken(html, token.value, result);\n\t\t\t\t\t\t\t\ttokenTranslated = result;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\ttokenTypeTranslated[typeToken][token.key] = tokenTranslated;\n\t\t\t}\n\t\t}\n\t\tthis.onGenerate.emit({\n\t\t\thtml: html,\n\t\t\ttokenTypeTranslated: tokenTypeTranslated\n\t\t});\n\t\t// }\n\t}\n\n\t/**\n\t * Try to find the budget info to translate the token.\n\t * @param html\n\t * @param token\n\t * @param subToken\n\t */\n\tresolveBudgetToken(html: string, token: any, subToken: string[]): any {\n\t\tlet tpresCodigo: number = Number(subToken[1]);\n\t\tlet tokenValue: string = subToken[2];\n\t\tlet budgetDto: BudgetDto = null;\n\t\tlet idTotalBudget: string = null;\n\t\tif (\n\t\t\tthis.budgetDtoPrimary &&\n\t\t\tthis.budgetDtoPrimary.budget &&\n\t\t\ttpresCodigo == ETipoPresupuesto.PRIMARY\n\t\t) {\n\t\t\tbudgetDto = this.budgetDtoPrimary;\n\t\t\tidTotalBudget = 'pli-token-principal-budget-total-summary';\n\t\t} else if (\n\t\t\tthis.budgetDtoSecundary &&\n\t\t\tthis.budgetDtoSecundary.budget &&\n\t\t\ttpresCodigo == ETipoPresupuesto.SECONDARY\n\t\t) {\n\t\t\tbudgetDto = this.budgetDtoSecundary;\n\t\t\tidTotalBudget = 'pli-token-secundary-budget-total-summary';\n\t\t}\n\t\tif (budgetDto === null || !budgetDto.budget) {\n\t\t\tconsole.error(\n\t\t\t\t'No se logro encontrar el presupuesto del token.',\n\t\t\t\ttoken,\n\t\t\t\tthis.budgetDtoPrimary,\n\t\t\t\tthis.budgetDtoSecundary\n\t\t\t);\n\t\t\treturn {\n\t\t\t\thtml: html,\n\t\t\t\tvalue: null\n\t\t\t};\n\t\t}\n\t\tlet valueData = null;\n\t\tconst applicationProcess =\n\t\t\ttokenValue == TokenService.BUDGET_TOKENS_KEY_APPLICATION_PROCESS_TOTAL_AMOUNT ||\n\t\t\ttokenValue == TokenService.BUDGET_TOKENS_KEY_APPLICATION_PROCESS_TOTAL_OWN_FOUNDS ||\n\t\t\ttokenValue == TokenService.BUDGET_TOKENS_KEY_APPLICATION_PROCESS_TOTAL_FINANCING;\n\t\tconst legalizationProcess =\n\t\t\ttokenValue == TokenService.BUDGET_TOKENS_KEY_LEGALIZATION_PROCESS_TOTAL_AMOUNT ||\n\t\t\ttokenValue == TokenService.BUDGET_TOKENS_KEY_LEGALIZATION_PROCESS_TOTAL_OWN_FOUNDS ||\n\t\t\ttokenValue == TokenService.BUDGET_TOKENS_KEY_LEGALIZATION_PROCESS_TOTAL_FINANCING;\n\n\t\tif (tokenValue == TokenService.BUDGET_TOKENS_KEY_TOTAL_AMOUNT) {\n\t\t\tvalueData =\n\t\t\t\tbudgetDto.budget && budgetDto.budget.summary\n\t\t\t\t\t? this.currencyPipe.transform(\n\t\t\t\t\t\t\tbudgetDto.budget.summary.budgetTotal,\n\t\t\t\t\t\t\t'default',\n\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t'1.0-0'\n\t\t\t\t\t  )\n\t\t\t\t\t: 0;\n\t\t} else if (tokenValue == TokenService.BUDGET_TOKENS_KEY_RESUME_CATEGORY_YEAR) {\n\t\t\t// this.addInfoTokenResumeCategoryYear(tpresCodigo, idTotalBudget, budgetDto);\n\t\t\tthis.addInfoTokenResumeCategoryYear(tpresCodigo, idTotalBudget, budgetDto);\n\t\t\tconst pliTokenTotalBudget = document.getElementById(idTotalBudget);\n\t\t\tif (pliTokenTotalBudget) {\n\t\t\t\tvalueData = this.removeCommentsHtml(pliTokenTotalBudget.innerHTML);\n\t\t\t} else {\n\t\t\t\tconsole.log('pliTokenTotalBudget - NULL', pliTokenTotalBudget);\n\t\t\t}\n\t\t} else if (tokenValue == TokenService.BUDGET_TOKENS_KEY_FECHA_FINANCING_START) {\n\t\t\tvalueData =\n\t\t\t\tbudgetDto.budget && budgetDto.budget.financingStart\n\t\t\t\t\t? budgetDto.budget.financingStart\n\t\t\t\t\t: '';\n\n\t\t\thtml = this.tokenService.replaceToken(\n\t\t\t\thtml,\n\t\t\t\ttoken.value,\n\t\t\t\tvalueData,\n\t\t\t\tthis.data?.idioma?.locale\n\t\t\t);\n\t\t} else if (tokenValue == TokenService.BUDGET_TOKENS_KEY_FECHA_FINANCING_END) {\n\t\t\tvalueData =\n\t\t\t\tbudgetDto.budget && budgetDto.budget.financingEnd\n\t\t\t\t\t? budgetDto.budget.financingEnd\n\t\t\t\t\t: '';\n\n\t\t\thtml = this.tokenService.replaceToken(\n\t\t\t\thtml,\n\t\t\t\ttoken.value,\n\t\t\t\tvalueData,\n\t\t\t\tthis.data?.idioma?.locale\n\t\t\t);\n\t\t} else if (tokenValue == TokenService.BUDGET_TOKENS_DURATION_STUDIES) {\n\t\t\tvalueData =\n\t\t\t\tbudgetDto.budget && budgetDto.budget.studyStart && budgetDto.budget.studyEnd\n\t\t\t\t\t? DateUtil.elapsedMonths(\n\t\t\t\t\t\t\tbudgetDto.budget.studyStart,\n\t\t\t\t\t\t\tbudgetDto.budget.studyEnd\n\t\t\t\t\t  ) + 1\n\t\t\t\t\t: '';\n\t\t} else if (tokenValue == TokenService.BUDGET_TOKENS_FINANCING_DURATION) {\n\t\t\tvalueData =\n\t\t\t\tbudgetDto.budget && budgetDto.budget.financingEnd && budgetDto.budget.financingStart\n\t\t\t\t\t? DateUtil.elapsedMonths(\n\t\t\t\t\t\t\tbudgetDto.budget.financingStart,\n\t\t\t\t\t\t\tbudgetDto.budget.financingEnd\n\t\t\t\t\t  ) + 1\n\t\t\t\t\t: '';\n\t\t} else if (tokenValue == TokenService.LEGALIZATION_OR_APPLICATION_TOTAL_FINANCING) {\n\t\t\t// JMP - Mantis 6674 - Add logic to legalization or application total financing\n\t\t\tif (\n\t\t\t\tthis.data &&\n\t\t\t\tthis.data.dataFormApplication &&\n\t\t\t\tthis.data.dataFormApplication.budget\n\t\t\t) {\n\t\t\t\tconst budget = this.data.dataFormApplication.budget;\n\n\t\t\t\tif (budget.legalizationProcess && budget.legalizationProcess.totalFinancing) {\n\t\t\t\t\tconst totalFinancing = Number(budget.legalizationProcess.totalFinancing);\n\t\t\t\t\tvalueData = totalFinancing * 1.003;\n\t\t\t\t} else if (budget.applicationProcess && budget.applicationProcess.totalFinancing) {\n\t\t\t\t\tvalueData = Number(budget.applicationProcess.totalFinancing);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (\n\t\t\t(applicationProcess || legalizationProcess) &&\n\t\t\tthis.data &&\n\t\t\tthis.data.dataFormApplication &&\n\t\t\tthis.data.dataFormApplication.budget\n\t\t) {\n\t\t\t// Get the total budget amount depend of the process\n\t\t\tconst appBudgetTotal: ApplicationBudgetTotal = applicationProcess\n\t\t\t\t? this.data.dataFormApplication.budget.applicationProcess\n\t\t\t\t: this.data.dataFormApplication.budget.legalizationProcess;\n\t\t\tif (appBudgetTotal != undefined && appBudgetTotal != null) {\n\t\t\t\t// no matter the process, the class is the same\n\t\t\t\tswitch (tokenValue) {\n\t\t\t\t\tcase TokenService.BUDGET_TOKENS_KEY_APPLICATION_PROCESS_TOTAL_AMOUNT:\n\t\t\t\t\tcase TokenService.BUDGET_TOKENS_KEY_LEGALIZATION_PROCESS_TOTAL_AMOUNT:\n\t\t\t\t\t\tvalueData = appBudgetTotal.totalAmount;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase TokenService.BUDGET_TOKENS_KEY_APPLICATION_PROCESS_TOTAL_OWN_FOUNDS:\n\t\t\t\t\tcase TokenService.BUDGET_TOKENS_KEY_LEGALIZATION_PROCESS_TOTAL_OWN_FOUNDS:\n\t\t\t\t\t\tvalueData = appBudgetTotal.totalOwnFunds;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase TokenService.BUDGET_TOKENS_KEY_APPLICATION_PROCESS_TOTAL_FINANCING:\n\t\t\t\t\tcase TokenService.BUDGET_TOKENS_KEY_LEGALIZATION_PROCESS_TOTAL_FINANCING:\n\t\t\t\t\t\tvalueData = appBudgetTotal.totalFinancing;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (tokenValue == TokenService.BUDGET_TOKENS_KEY_INSURANCE_AMOUNT) {\n\t\t\tlet totalFinancing =\n\t\t\t\tthis.data.dataFormApplication.budget.legalizationProcess &&\n\t\t\t\tthis.data.dataFormApplication.budget.legalizationProcess.totalFinancing;\n\t\t\ttotalFinancing =\n\t\t\t\ttotalFinancing == undefined || totalFinancing == null ? 0 : Number(totalFinancing);\n\t\t\t// let totalInsuranceAmount = this.data.dataFormApplication.totalInsuranceAmount;\n\t\t\t// totalInsuranceAmount =\n\t\t\t// \ttotalInsuranceAmount == undefined || totalInsuranceAmount == null\n\t\t\t// \t\t? 0\n\t\t\t// \t\t: Number(totalInsuranceAmount);\n\t\t\tvalueData = totalFinancing * 1.003;\n\t\t} else {\n\t\t\t// When the token can't be resolve\n\t\t\tconsole.error('resolveBudgetToken -No se logro resolver el token de tipo presupuesto');\n\t\t}\n\t\tvalueData = valueData === null ? '' : valueData;\n\t\thtml = this.tokenService.replaceToken(html, token.value, valueData);\n\t\treturn {\n\t\t\thtml: html,\n\t\t\tvalue: valueData\n\t\t};\n\t}\n\tresolveTaskoken(html: string, token: any, subToken: string[]): any {\n\t\tlet valueTask = null;\n\t\tif (subToken.length > 2) {\n\t\t\tlet taskId = Number(subToken[2]);\n\t\t\tlet task = this.evaluation.tasks.find((t) => t.idTask == taskId);\n\t\t\tvalueTask = task.result;\n\t\t}\n\t\thtml = this.tokenService.replaceToken(html, token.value, valueTask);\n\t\treturn {\n\t\t\thtml: html,\n\t\t\tvalue: valueTask\n\t\t};\n\t}\n\n\tasync resolveStaticToken(html: string, token: any, subToken: string[]): Promise<any> {\n\t\tlet valueReplace: any = null;\n\t\tif (\n\t\t\tsubToken[1].toLowerCase() ==\n\t\t\tTokenService.STATIC_TOKENS_KEY_CODIGO_VERIFICACION.toLowerCase()\n\t\t) {\n\t\t\tvalueReplace = this.uniqueVerificationCode;\n\t\t\thtml = this.tokenService.replaceToken(html, token.value, this.uniqueVerificationCode);\n\t\t} else if (\n\t\t\tsubToken[1].toLowerCase() ==\n\t\t\tTokenService.STATIC_TOKENS_KEY_A_QUIEN_VA_DIRIGIDO.toLowerCase()\n\t\t) {\n\t\t\t// if (this.data.dataDestination) {\n\t\t\thtml = this.resolveStaticTokensKeyAQuienVaDirigido(html, token.value);\n\t\t\tvalueReplace = '';\n\t\t\t// }\n\t\t} else if (\n\t\t\tsubToken[1].toLowerCase() == TokenService.STATIC_TOKENS_KEY_LETTER_SIGN.toLowerCase()\n\t\t) {\n\t\t\thtml = this.resolveStaticTokensKeySign(html, token.value, subToken);\n\t\t\tvalueReplace = '';\n\t\t} else if (\n\t\t\tsubToken[1].toLowerCase() ==\n\t\t\tTokenService.STATIC_TOKENS_KEY_SALUDO_COMPLEMENTARIO.toLowerCase()\n\t\t) {\n\t\t\t// if (this.data.dataDestination) {\n\t\t\thtml = this.resolveStaticTokensKeySaludoComplementario(html, token.value);\n\t\t\tvalueReplace = '';\n\t\t\t// }\n\t\t} else if (\n\t\t\tsubToken[1].toLowerCase() == TokenService.STATIC_TOKENS_KEY_FECHA_ACTUAL.toLowerCase()\n\t\t) {\n\t\t\tvalueReplace = new Date();\n\t\t\thtml = this.tokenService.replaceToken(html, token.value, new Date());\n\t\t} else if (\n\t\t\tsubToken[1].toLowerCase() == TokenService.STATIC_TOKENS_KEY_PATROCINADOR.toLowerCase()\n\t\t) {\n\t\t\tconst patNombre =\n\t\t\t\tthis.data.pliPromocion &&\n\t\t\t\tthis.data.pliPromocion.pliPrograma &&\n\t\t\t\tthis.data.pliPromocion.pliPrograma.pliPatrocinador\n\t\t\t\t\t? this.data.pliPromocion.pliPrograma.pliPatrocinador.patNombre\n\t\t\t\t\t: '';\n\t\t\tvalueReplace = patNombre;\n\t\t\thtml = this.tokenService.replaceToken(html, token.value, patNombre);\n\t\t} else if (\n\t\t\tsubToken[1].toLowerCase() == TokenService.STATIC_TOKENS_KEY_PROGRAMA.toLowerCase()\n\t\t) {\n\t\t\tconst progNombre =\n\t\t\t\tthis.data.pliPromocion && this.data.pliPromocion.pliPrograma\n\t\t\t\t\t? this.data.pliPromocion.pliPrograma.progNombre\n\t\t\t\t\t: '';\n\t\t\tvalueReplace = progNombre;\n\t\t\thtml = this.tokenService.replaceToken(html, token.value, progNombre);\n\t\t} else if (\n\t\t\tsubToken[1].toLowerCase() == TokenService.STATIC_TOKENS_KEY_PROMOCION.toLowerCase()\n\t\t) {\n\t\t\tconst promNombre = this.data.pliPromocion ? this.data.pliPromocion.promNombre : '';\n\t\t\tvalueReplace = promNombre;\n\t\t\thtml = this.tokenService.replaceToken(html, token.value, promNombre);\n\t\t} else if (\n\t\t\tsubToken[1].toLowerCase() == TokenService.STATIC_TOKENS_KEY_ANIO_PROMOCION.toLowerCase()\n\t\t) {\n\t\t\tconst anioPromocion =\n\t\t\t\tthis.data.pliPromocion && this.data.pliPromocion.promAnio\n\t\t\t\t\t? this.data.pliPromocion.promAnio\n\t\t\t\t\t: 0;\n\t\t\tvalueReplace = anioPromocion;\n\t\t\thtml = this.tokenService.replaceToken(html, token.value, anioPromocion);\n\t\t} else if (\n\t\t\tsubToken[1].toLowerCase() ==\n\t\t\tTokenService.STATIC_TOKENS_KEY_ISO_MONEDA_BASE.toLowerCase()\n\t\t) {\n\t\t\tconst baseCurrency =\n\t\t\t\tthis.data.budgetDtoPrimary && this.data.budgetDtoPrimary.budget\n\t\t\t\t\t? this.data.budgetDtoPrimary.budget.baseCurrency\n\t\t\t\t\t: this.data.budgetDtoSecundary && this.data.budgetDtoSecundary.budget\n\t\t\t\t\t? this.data.budgetDtoSecundary.budget.baseCurrency\n\t\t\t\t\t: '';\n\t\t\tvalueReplace = baseCurrency;\n\t\t\thtml = this.tokenService.replaceToken(html, token.value, baseCurrency);\n\t\t} else if (\n\t\t\tsubToken[1].toLowerCase() == TokenService.STATIC_TOKENS_KEY_STATUS_NAME.toLowerCase()\n\t\t) {\n\t\t\tconst statusName =\n\t\t\t\tthis.data.dataFormApplication &&\n\t\t\t\tUtilString.isValid(this.data.dataFormApplication.stateName)\n\t\t\t\t\t? this.data.dataFormApplication.stateName\n\t\t\t\t\t: '';\n\t\t\tvalueReplace = statusName;\n\t\t\thtml = this.tokenService.replaceToken(html, token.value, statusName);\n\t\t} else if (\n\t\t\tsubToken[1].toLowerCase() == TokenService.STATIC_TOKENS_KEY_USER_INITIALS.toLowerCase()\n\t\t) {\n\t\t\tconst pliUser: PliUser = AuthenticationUtil.getPliUser();\n\t\t\tvalueReplace = UtilString.initialLetters(pliUser.firstname + ' ' + pliUser.lastname);\n\t\t\thtml = this.tokenService.replaceToken(html, token.value, valueReplace);\n\t\t} else if (\n\t\t\tsubToken[1].toLowerCase() ==\n\t\t\tTokenService.STATIC_TOKENS_KEY_NUMBER_APPLICATION.toLowerCase()\n\t\t) {\n\t\t\tconst number =\n\t\t\t\tthis.data.dataFormApplication && this.data.dataFormApplication.number\n\t\t\t\t\t? this.data.dataFormApplication.number\n\t\t\t\t\t: null;\n\t\t\tvalueReplace = number;\n\t\t\thtml = this.tokenService.replaceToken(html, token.value, number);\n\t\t} else if (\n\t\t\tsubToken[1].toLowerCase() == TokenService.STATIC_TOKENS_COMMITTEE_NAME.toLowerCase()\n\t\t) {\n\t\t\tconst comiteNombre =\n\t\t\t\tthis.data.dataFormByForm && this.data.dataFormByForm.comiteNombre\n\t\t\t\t\t? this.data.dataFormByForm.comiteNombre\n\t\t\t\t\t: null;\n\t\t\tvalueReplace = comiteNombre;\n\t\t\thtml = this.tokenService.replaceToken(html, token.value, comiteNombre);\n\t\t} else if (\n\t\t\tsubToken[1].toLowerCase() ==\n\t\t\tTokenService.STATIC_TOKENS_COMMITTEE_SEGMENTATION.toLowerCase()\n\t\t) {\n\t\t\tconst comiteSegmentacion =\n\t\t\t\tthis.data.dataFormByForm &&\n\t\t\t\tthis.data.dataFormByForm[TokenService.STATIC_TOKENS_COMMITTEE_SEGMENTATION]\n\t\t\t\t\t? this.data.dataFormByForm[TokenService.STATIC_TOKENS_COMMITTEE_SEGMENTATION]\n\t\t\t\t\t: null;\n\t\t\tvalueReplace = comiteSegmentacion;\n\t\t\thtml = this.tokenService.replaceToken(html, token.value, comiteSegmentacion);\n\t\t} else if (\n\t\t\tsubToken[1].toLowerCase() ==\n\t\t\tTokenService.STATIC_TOKENS_COMMITTEE_AGGRUPATION.toLowerCase()\n\t\t) {\n\t\t\tconst comiteAgrupacion =\n\t\t\t\tthis.data.dataFormByForm &&\n\t\t\t\tthis.data.dataFormByForm[TokenService.STATIC_TOKENS_COMMITTEE_AGGRUPATION]\n\t\t\t\t\t? this.data.dataFormByForm[TokenService.STATIC_TOKENS_COMMITTEE_AGGRUPATION]\n\t\t\t\t\t: null;\n\t\t\tvalueReplace = comiteAgrupacion;\n\t\t\thtml = this.tokenService.replaceToken(html, token.value, comiteAgrupacion);\n\t\t} else if (\n\t\t\tsubToken[1].toLowerCase() ==\n\t\t\tTokenService.STATIC_TOKENS_COMMITTEE_CUTLINE_DATE.toLowerCase()\n\t\t) {\n\t\t\tlet cutLineDate =\n\t\t\t\tthis.data.dataFormByForm &&\n\t\t\t\tthis.data.dataFormByForm[TokenService.STATIC_TOKENS_COMMITTEE_CUTLINE_DATE]\n\t\t\t\t\t? this.data.dataFormByForm[TokenService.STATIC_TOKENS_COMMITTEE_CUTLINE_DATE]\n\t\t\t\t\t: null;\n\t\t\tif (cutLineDate instanceof Date) {\n\t\t\t\tcutLineDate = cutLineDate.toString();\n\t\t\t}\n\t\t\tvalueReplace = cutLineDate;\n\t\t\thtml = this.tokenService.replaceToken(html, token.value, cutLineDate);\n\t\t} else if (\n\t\t\tsubToken[1].toLowerCase() == TokenService.STATIC_TOKENS_TOTAL_WEIGHTED.toLowerCase()\n\t\t) {\n\t\t\tlet bestScenarioValue: any = '';\n\t\t\tif (this.evaluation && this.evaluation.scenarios) {\n\t\t\t\tlet bestScenario = this.evaluation.scenarios.filter((s) => s.best)[0];\n\t\t\t\tif (bestScenario) {\n\t\t\t\t\tbestScenarioValue = bestScenario.result;\n\t\t\t\t}\n\t\t\t}\n\t\t\thtml = this.tokenService.replaceToken(html, token.value, bestScenarioValue);\n\t\t} else if (\n\t\t\tsubToken[1].toLowerCase() ==\n\t\t\tTokenService.STATIC_TOKENS_USER_TYPE_CREDIT_STUDY.toLowerCase()\n\t\t) {\n\t\t\tconst userTypeCreditStudy =\n\t\t\t\tthis.data.dataFormByForm &&\n\t\t\t\tthis.data.dataFormByForm[TokenService.STATIC_TOKENS_USER_TYPE_CREDIT_STUDY]\n\t\t\t\t\t? this.data.dataFormByForm[TokenService.STATIC_TOKENS_USER_TYPE_CREDIT_STUDY]\n\t\t\t\t\t: null;\n\t\t\tvalueReplace = userTypeCreditStudy;\n\t\t\thtml = this.tokenService.replaceToken(html, token.value, userTypeCreditStudy);\n\t\t} else if (\n\t\t\tsubToken[1].toLowerCase() == TokenService.STATIC_TOKENS_BEN_CODIGO.toLowerCase()\n\t\t) {\n\t\t\tvalueReplace = this.data.dataFormApplication.benCodigo;\n\t\t\thtml = this.tokenService.replaceToken(\n\t\t\t\thtml,\n\t\t\t\ttoken.value,\n\t\t\t\tthis.data.dataFormApplication.benCodigo\n\t\t\t);\n\t\t} else if (subToken[1].toLowerCase() == TokenService.STATIC_TOKEN_SURNAME.toLowerCase()) {\n\t\t\tif (\n\t\t\t\tthis.data.dataFormApplication.username &&\n\t\t\t\tthis.data.dataFormApplication.username !== null\n\t\t\t) {\n\t\t\t\ttry {\n\t\t\t\t\tconst sesion = await this.sesionService\n\t\t\t\t\t\t.getByLogin(this.data.dataFormApplication.username)\n\t\t\t\t\t\t.toPromise();\n\t\t\t\t\tconst surnames =\n\t\t\t\t\t\tsesion.surname !== '' && sesion.surname !== null\n\t\t\t\t\t\t\t? sesion.surname + ' ' + sesion.lastname\n\t\t\t\t\t\t\t: sesion.lastname;\n\t\t\t\t\thtml = this.tokenService.replaceToken(html, token.value, surnames);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.error('Error consultando el login en PLIS, getByLogin', error);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t// Don't find the token\n\t\t\tconsole.error('No se encontro el token', token);\n\t\t\thtml = this.tokenService.replaceToken(html, token.value, '');\n\t\t}\n\t\treturn {\n\t\t\thtml: html,\n\t\t\tvalue: valueReplace\n\t\t};\n\t}\n\n\tasync findSesionByLogin(html: string, token: any) {}\n\n\t/**\n\t * Find all the tokens present in the HTML text. Organize this tokens in four categories.\n\t * @param html Text of the html\n\t */\n\tgetListTokens(html: string): any[] {\n\t\t// let strings: string[] = html.split(\" \");\n\t\tlet tokens: any[] = this.tokenService.getListTokensByString(html);\n\t\tlet tokensCategory: any[] = [];\n\t\tfor (let infoToken of tokens) {\n\t\t\tif (infoToken) {\n\t\t\t\tconst keyType: number = TokenService.getKeyType(\n\t\t\t\t\tinfoToken.key.replace('{', '').replace('}', '')\n\t\t\t\t);\n\t\t\t\tif (keyType) {\n\t\t\t\t\tswitch (keyType) {\n\t\t\t\t\t\tcase 1: // Form\n\t\t\t\t\t\t\tif (!tokensCategory[TokenService.TOKEN_LABEL_FORM]) {\n\t\t\t\t\t\t\t\ttokensCategory[TokenService.TOKEN_LABEL_FORM] = [];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttokensCategory[TokenService.TOKEN_LABEL_FORM].push(infoToken);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 2: //Budget\n\t\t\t\t\t\t\tif (!tokensCategory[TokenService.TOKEN_LABEL_BUDGET]) {\n\t\t\t\t\t\t\t\ttokensCategory[TokenService.TOKEN_LABEL_BUDGET] = [];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttokensCategory[TokenService.TOKEN_LABEL_BUDGET].push(infoToken);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 3: //Static\n\t\t\t\t\t\t\tif (!tokensCategory[TokenService.TOKEN_LABEL_STATIC]) {\n\t\t\t\t\t\t\t\ttokensCategory[TokenService.TOKEN_LABEL_STATIC] = [];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttokensCategory[TokenService.TOKEN_LABEL_STATIC].push(infoToken);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 4: //Calculated\n\t\t\t\t\t\t\tif (!tokensCategory[TokenService.TOKEN_LABEL_CALCULATED]) {\n\t\t\t\t\t\t\t\ttokensCategory[TokenService.TOKEN_LABEL_CALCULATED] = [];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttokensCategory[TokenService.TOKEN_LABEL_CALCULATED].push(infoToken);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 5: //Task\n\t\t\t\t\t\t\tif (!tokensCategory[TokenService.TOKEN_LABEL_TASKL]) {\n\t\t\t\t\t\t\t\ttokensCategory[TokenService.TOKEN_LABEL_TASKL] = [];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttokensCategory[TokenService.TOKEN_LABEL_TASKL].push(infoToken);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn tokensCategory;\n\t}\n\n\t/**\n\t * It resolves the static token destination\n\t * @param stringText\n\t * @param token\n\t * @param dataValue\n\t */\n\tresolveStaticTokensKeyAQuienVaDirigido(stringText: string, tokenValue: any): string {\n\t\t// if (this.data.dataDestination) {\n\t\tthis.enableDestination = true;\n\t\tthis.addInfoTokenDestination();\n\t\tconst pliTokenDestination = document.getElementById('pli-token-destination');\n\t\tlet html = '';\n\t\tif (pliTokenDestination && pliTokenDestination.innerHTML.length > 0) {\n\t\t\thtml = this.removeCommentsHtml(pliTokenDestination.innerHTML);\n\t\t}\n\t\treturn this.tokenService.replaceToken(stringText, tokenValue, html);\n\t\t// }\n\t\t// return stringText;\n\t}\n\n\t/**\n\t *\n\t */\n\taddInfoTokenDestination() {\n\t\tlet pliTokenDestination = $('#pli-token-destination');\n\t\tpliTokenDestination.empty();\n\t\tif (this.data.dataDestination) {\n\t\t\tlet destinationInfo = $('<div></div>');\n\t\t\tif (this.data.dataDestination.text) {\n\t\t\t\tlet valueInfo = $('<div></div>').text(this.data.dataDestination.text);\n\t\t\t\tdestinationInfo.append(valueInfo);\n\t\t\t}\n\t\t\tif (this.data.dataDestination.title) {\n\t\t\t\tlet valueInfo = $('<div></div>').text(this.data.dataDestination.title);\n\t\t\t\tdestinationInfo.append(valueInfo);\n\t\t\t}\n\t\t\tif (this.data.dataDestination.name || this.data.dataDestination.lastName) {\n\t\t\t\tlet valueInfoName = this.data.dataDestination.name\n\t\t\t\t\t? this.data.dataDestination.name + ' '\n\t\t\t\t\t: '';\n\t\t\t\tvalueInfoName += this.data.dataDestination.lastName\n\t\t\t\t\t? this.data.dataDestination.lastName\n\t\t\t\t\t: '';\n\t\t\t\tlet valueInfo = $('<div></div>').append('<strong>' + valueInfoName + '</strong>');\n\t\t\t\tdestinationInfo.append(valueInfo);\n\t\t\t}\n\t\t\tif (this.data.dataDestination.cargo) {\n\t\t\t\tlet valueInfo = $('<div></div>').text(this.data.dataDestination.cargo);\n\t\t\t\tdestinationInfo.append(valueInfo);\n\t\t\t}\n\t\t\tif (this.data.dataDestination.occupation) {\n\t\t\t\tlet valueInfo = $('<div></div>').text(this.data.dataDestination.occupation);\n\t\t\t\tdestinationInfo.append(valueInfo);\n\t\t\t}\n\t\t\tif (this.data.dataDestination.company) {\n\t\t\t\tlet valueInfo = $('<div></div>').text(this.data.dataDestination.company);\n\t\t\t\tdestinationInfo.append(valueInfo);\n\t\t\t}\n\t\t\tif (this.data.dataDestination.address || this.data.dataDestination.addressDetails) {\n\t\t\t\tlet valueInfoName = this.data.dataDestination.address\n\t\t\t\t\t? this.data.dataDestination.address + ' '\n\t\t\t\t\t: '';\n\t\t\t\tvalueInfoName += this.data.dataDestination.addressDetails\n\t\t\t\t\t? this.data.dataDestination.addressDetails\n\t\t\t\t\t: '';\n\t\t\t\tlet valueInfo = $('<div></div>').text(valueInfoName);\n\t\t\t\tdestinationInfo.append(valueInfo);\n\t\t\t}\n\t\t\tif (this.data.dataDestination.city || this.data.dataDestination.country) {\n\t\t\t\tlet valueInfoName = this.data.dataDestination.city\n\t\t\t\t\t? this.data.dataDestination.city\n\t\t\t\t\t: '';\n\t\t\t\tvalueInfoName +=\n\t\t\t\t\tthis.data.dataDestination.city && this.data.dataDestination.country ? ', ' : '';\n\t\t\t\tvalueInfoName += this.data.dataDestination.country\n\t\t\t\t\t? this.data.dataDestination.country\n\t\t\t\t\t: '';\n\t\t\t\tlet valueInfo = $('<div></div>').text(valueInfoName);\n\t\t\t\tdestinationInfo.append(valueInfo);\n\t\t\t}\n\t\t\tpliTokenDestination.append(destinationInfo);\n\t\t}\n\t}\n\n\t/**\n\t * It resolves the static token destination\n\t * @param stringText\n\t * @param token\n\t * @param dataValue\n\t */\n\tresolveStaticTokensKeySaludoComplementario(stringText: string, tokenValue: any): string {\n\t\t// if (this.data.dataDestination) {\n\t\tthis.enableDestination = true;\n\t\tthis.addInfoTokenSaludoComplementario();\n\t\tconst pliTokenDestination = document.getElementById('pli-token-complementary-greeting');\n\t\tlet html = '';\n\t\tif (pliTokenDestination) {\n\t\t\thtml = this.removeCommentsHtml(pliTokenDestination.innerHTML);\n\t\t}\n\t\treturn this.tokenService.replaceToken(stringText, tokenValue, html);\n\t\t// }\n\t\t// return stringText;\n\t}\n\n\t/**\n\t *\n\t */\n\taddInfoTokenSaludoComplementario() {\n\t\tlet pliTokenDestination = $('#pli-token-complementary-greeting');\n\t\tpliTokenDestination.empty();\n\t\tif (this.data.dataDestination) {\n\t\t\tlet destinationInfo = $('<div></div>');\n\t\t\tif (this.data.dataDestination.greeting) {\n\t\t\t\tdestinationInfo.html(this.data.dataDestination.greeting);\n\t\t\t}\n\t\t\tif (this.data.dataDestination.title) {\n\t\t\t\tconst valueText =\n\t\t\t\t\t(destinationInfo.html().length == 0 ? '' : ' ') +\n\t\t\t\t\tthis.data.dataDestination.title;\n\t\t\t\tdestinationInfo.html(destinationInfo.html() + valueText);\n\t\t\t}\n\t\t\tif (this.data.dataDestination.lastName) {\n\t\t\t\tlet valueInfoName = this.data.dataDestination.lastName\n\t\t\t\t\t? this.data.dataDestination.lastName\n\t\t\t\t\t: '';\n\t\t\t\tconst valueText =\n\t\t\t\t\t(destinationInfo.html().length == 0 ? '' : ' ') +\n\t\t\t\t\t'<strong>' +\n\t\t\t\t\tvalueInfoName +\n\t\t\t\t\t'</strong>';\n\t\t\t\tdestinationInfo.html(destinationInfo.html() + valueText);\n\t\t\t}\n\t\t\tpliTokenDestination.append(destinationInfo);\n\t\t}\n\t}\n\n\tprivate removeCommentsHtml(html: string): string {\n\t\treturn html ? html.replace(/<!--[\\s\\S]*?-->/g, '') : html;\n\t}\n\n\tresolveStaticTokensKeySign(html, tokenValue: any, subToken: string[]): string {\n\t\tlet container = $('<div></div>');\n\t\tlet img = $('<img id=\"' + TokenService.SIGN_LETTER_TAG_ID + '\">');\n\t\timg.attr('src', '');\n\t\tif (subToken.length > 2) {\n\t\t\timg.attr('width', subToken[2].toString());\n\t\t}\n\t\tif (subToken.length > 3) {\n\t\t\timg.attr('height', subToken[3].toString());\n\t\t}\n\t\tif (subToken.length > 4) {\n\t\t\timg.attr('name', subToken[4].toString());\n\t\t}\n\t\tcontainer.append(img);\n\t\t// return container.html();\n\t\treturn this.tokenService.replaceToken(html, tokenValue, container.html());\n\t}\n\n\tprivate getRubroLabel(): string {\n\t\treturn this.data.idioma.locale === 'es'\n\t\t\t? 'Rubro'\n\t\t\t: this.data.idioma.locale === 'de'\n\t\t\t? 'Posten'\n\t\t\t: 'Item';\n\t}\n\n\tprivate getTotalLabel(): string {\n\t\treturn this.data.idioma.locale === 'es'\n\t\t\t? 'Total'\n\t\t\t: this.data.idioma.locale === 'de'\n\t\t\t? 'Gesamt'\n\t\t\t: this.data.idioma.locale === 'fr'\n\t\t\t? 'Total'\n\t\t\t: this.data.idioma.locale === 'it'\n\t\t\t? 'Totale'\n\t\t\t: 'Item';\n\t}\n\n\tprivate getYearLabel(): string {\n\t\treturn this.data.idioma.locale === 'es'\n\t\t\t? 'Año'\n\t\t\t: this.data.idioma.locale === 'de'\n\t\t\t? 'Jahr'\n\t\t\t: this.data.idioma.locale === 'fr'\n\t\t\t? 'Année'\n\t\t\t: this.data.idioma.locale === 'it'\n\t\t\t? 'Anno'\n\t\t\t: 'Year';\n\t}\n\n\t/**\n\t *\n\t */\n\taddInfoTokenResumeCategoryYear(\n\t\ttpresCodigo: number,\n\t\tidTotalBudget: string,\n\t\tbudgetDto: BudgetDto\n\t) {\n\t\tif (tpresCodigo == ETipoPresupuesto.PRIMARY) {\n\t\t} else {\n\t\t}\n\t\tlet resumeCategoryYearContent = $('#' + idTotalBudget);\n\t\tresumeCategoryYearContent.empty();\n\t\tif (budgetDto && budgetDto.budget && budgetDto.budget.summary) {\n\t\t\tconst summary = budgetDto.budget.summary;\n\t\t\tconst table = $('<table></table>');\n\t\t\ttable.css('border-spacing', '2px');\n\t\t\ttable.css('border-collapse', 'collapse');\n\t\t\t//thead\n\t\t\tconst thead = $('<thead>').appendTo(table);\n\t\t\tconst thRubro = $('<th>', { html: this.getRubroLabel() }).appendTo(thead);\n\t\t\tthRubro.css('text-align', 'center');\n\t\t\tthRubro.css('border', '1px solid black');\n\t\t\tthRubro.css('color', 'white');\n\t\t\tthRubro.css('background-color', 'grey');\n\t\t\tlet iteracionAnio = 0;\n\t\t\tfor (const year of summary.years) {\n\t\t\t\tconst thYear = $('<th>', { html: this.getYearLabel() + ++iteracionAnio }).appendTo(\n\t\t\t\t\tthead\n\t\t\t\t);\n\t\t\t\tthYear.css('text-align', 'center');\n\t\t\t\tthYear.css('border', '1px solid black');\n\t\t\t\tthYear.css('color', 'white');\n\t\t\t\tthYear.css('background-color', 'grey');\n\t\t\t\tthYear.css('width', '80px');\n\t\t\t}\n\t\t\tconst totalLabel = '&nbsp;' + this.getTotalLabel() + summary.baseCurrency + '&nbsp;';\n\t\t\tconst thTotal = $('<th>', { html: totalLabel }).appendTo(thead);\n\t\t\tthTotal.css('text-align', 'center');\n\t\t\tthTotal.css('border', '1px solid black');\n\t\t\tthTotal.css('color', 'white');\n\t\t\tthTotal.css('background-color', 'grey');\n\t\t\tthTotal.css('width', '80px');\n\t\t\t//tbody\n\t\t\tlet tbody = $('<tbody>').appendTo(table);\n\t\t\tfor (let iCat = 0; iCat < summary.categories.length; iCat++) {\n\t\t\t\tconst tr = $('<tr>').appendTo(tbody);\n\t\t\t\tconst category = summary.categories[iCat];\n\t\t\t\tconst isSeguro = category.category.toLowerCase() === 'seguro deudores y otros';\n\t\t\t\tconst rubroLabel =\n\t\t\t\t\t'&nbsp;&nbsp;' +\n\t\t\t\t\tthis.translateCategory(category.category) +\n\t\t\t\t\t'&nbsp;&nbsp;&nbsp;&nbsp;';\n\t\t\t\tconst tdRubro = $('<td>', { html: rubroLabel }).appendTo(tr);\n\t\t\t\ttdRubro.css('text-align', 'left');\n\t\t\t\ttdRubro.css('border', '1px solid black');\n\t\t\t\ttdRubro.css('font-weight', 'bold');\n\t\t\t\tfor (const year of category.years) {\n\t\t\t\t\tconst yearTotal =\n\t\t\t\t\t\tyear.total == 0\n\t\t\t\t\t\t\t? '-'\n\t\t\t\t\t\t\t: this.currencyPipe.transform(year.total, 'default', '', '1.0-0');\n\t\t\t\t\tconst yearLabelTotal = isSeguro \n\t\t\t\t\t? '&nbsp;&nbsp;-&nbsp;&nbsp;'\n\t\t\t\t\t: '&nbsp;&nbsp;' + yearTotal + '&nbsp;&nbsp;';\n\t\t\t\t\tconst tdYear = $('<td>', { html: yearLabelTotal }).appendTo(tr);\n\t\t\t\t\ttdYear.css('text-align', 'right');\n\t\t\t\t\ttdYear.css('border', '1px solid black');\n\t\t\t\t}\n\t\t\t\tconst categoryTotal =\n\t\t\t\t\tcategory.total == 0\n\t\t\t\t\t\t? '-'\n\t\t\t\t\t\t: this.currencyPipe.transform(category.total, 'default', '', '1.0-0');\n\t\t\t\tconst categoryLabelTotal = '&nbsp;&nbsp;' + categoryTotal + '&nbsp;&nbsp;';\n\t\t\t\tconst tdTotal = $('<td>', { html: categoryLabelTotal }).appendTo(tr);\n\t\t\t\ttdTotal.css('text-align', 'right');\n\t\t\t\ttdTotal.css('border', '1px solid black');\n\t\t\t\ttdTotal.css('font-weight', 'bold');\n\n\t\t\t\tif (isSeguro) {\n\t\t\t\t\tthis.debtorInsurance = category.total;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst trFinal = $('<tr>').appendTo(tbody);\n\t\t\tconst baseCurrency = this.getTotalLabel() + ' ' + summary.baseCurrency + '&nbsp;&nbsp;';\n\t\t\tconst tdFinalTotalBC = $('<td>', { html: baseCurrency }).appendTo(trFinal);\n\t\t\ttdFinalTotalBC.css('text-align', 'right');\n\t\t\ttdFinalTotalBC.css('border', '1px solid black');\n\t\t\ttdFinalTotalBC.css('color', 'white');\n\t\t\ttdFinalTotalBC.css('background-color', 'grey');\n\t\t\tlet budgetTotal = 0;\n\t\t\tfor (const year of summary.years) {\n\t\t\t\tconst yearTotal =\n\t\t\t\t\tyear.total == 0\n\t\t\t\t\t\t? '-'\n\t\t\t\t\t\t: this.currencyPipe.transform(year.total, 'default', '', '1.0-0');\n\t\t\t\tconst yearLabelTotal = yearTotal + '&nbsp;&nbsp;';\n\t\t\t\tconst tdYear = $('<td>', { html: yearLabelTotal }).appendTo(trFinal);\n\t\t\t\ttdYear.css('text-align', 'right');\n\t\t\t\ttdYear.css('border', '1px solid black');\n\t\t\t\ttdYear.css('color', 'white');\n\t\t\t\ttdYear.css('background-color', 'grey');\n\t\t\t\tbudgetTotal += year.total;\n\t\t\t}\n\t\t\tconst tbWithDebtorInsurance = this.debtorInsurance + summary.budgetTotal;\n\t\t\tconst totalBaseCurrency =\n\t\t\t\tbudgetTotal == 0\n\t\t\t\t\t? '-'\n\t\t\t\t\t: this.currencyPipe.transform(tbWithDebtorInsurance, 'default', '', '1.0-0');\t\t\t\t\n\t\t\tconst totalLabelBaseCurrency = '&nbsp;&nbsp;' + totalBaseCurrency + '&nbsp;&nbsp;';\n\t\t\tconst tdFinalTotal = $('<td>', { html: totalLabelBaseCurrency }).appendTo(trFinal);\n\t\t\ttdFinalTotal.css('text-align', 'right');\n\t\t\ttdFinalTotal.css('border', '1px solid black');\n\t\t\ttdFinalTotal.css('color', 'white');\n\t\t\ttdFinalTotal.css('background-color', 'grey');\n\t\t\tresumeCategoryYearContent.append(table);\n\t\t}\n\t}\n}\n","<div style=\"display: none;\" id=\"pli-token-destination\">\n\t<!-- <div *ngIf=\"data != undefined && data.dataDestination != undefined\">\n\n        <div *ngIf=\"data.dataDestination.text != undefined\">\n            {{data.dataDestination.text}}\n        </div>\n        <div *ngIf=\"data.dataDestination.title != undefined\">\n            {{data.dataDestination.title}}\n        </div>\n        <div *ngIf=\"data.dataDestination.name != undefined || data.dataDestination.lastName != undefined\">\n            <strong>{{data.dataDestination.name}} {{data.dataDestination.lastName}}</strong>\n        </div>\n        <div *ngIf=\"data.dataDestination.cargo != undefined\">\n            {{data.dataDestination.cargo}}\n        </div>\n        <div *ngIf=\"data.dataDestination.occupation != undefined\">\n            {{data.dataDestination.occupation}}\n        </div>\n        <div *ngIf=\"data.dataDestination.company != undefined\">\n            {{data.dataDestination.company}}\n        </div>\n        <div *ngIf=\"data.dataDestination.address != undefined || data.dataDestination.addressDetails != undefined \">\n            {{data.dataDestination.address}} {{data.dataDestination.addressDetails}}\n        </div>\n        <div *ngIf=\"data.dataDestination.city != undefined || data.dataDestination.country != undefined \">\n            {{data.dataDestination.city}}<span *ngIf=\"data.dataDestination.city != undefined && data.dataDestination.country != undefined\">,</span>{{data.dataDestination.country}}\n        </div>\n\n    </div> -->\n</div>\n<!-- Complementary greeting-->\n<div style=\"display: none;\" id=\"pli-token-complementary-greeting\">\n\t<!-- <div\n\t\t*ngIf=\"\n\t\t\tdata != undefined &&\n\t\t\tdata.dataDestination != undefined &&\n\t\t\tdata.dataDestination.targetId == 2 &&\n\t\t\tdata.dataDestination.greeting != undefined\n\t\t\"\n\t>\n\t\t{{ data.dataDestination.greeting\n\t\t}}<span *ngIf=\"data.dataDestination.title != undefined\"\n\t\t\t>&nbsp;{{ data.dataDestination.title }}</span\n\t\t><span *ngIf=\"data.dataDestination.lastName != undefined\"\n\t\t\t>&nbsp;{{ data.dataDestination.lastName }}</span\n\t\t>:\n\t</div>-->\n</div>\n\n<!-- Primary budget total summary ${presupuesto_288_resumeCategoryYear} -->\n<div style=\"display: none;\" id=\"pli-token-principal-budget-total-summary\">\n\t<!-- <div>\n\t\t<table\n\t\t\t*ngIf=\"\n\t\t\t\tbudgetDtoPrimary !== null &&\n\t\t\t\tbudgetDtoPrimary.budget &&\n\t\t\t\tbudgetDtoPrimary.budget.summary\n\t\t\t\"\n\t\t\tstyle=\"border-spacing: 2px;border-collapse: collapse;\"\n\t\t>\n\t\t\t<thead>\n\t\t\t\t<tr style=\"font-weight: bold;\">\n\t\t\t\t\t<td\n\t\t\t\t\t\tstyle=\"text-align: center;border: 1px solid black; color: white;background-color: grey;\"\n\t\t\t\t\t>\n\t\t\t\t\t\tRubro\n\t\t\t\t\t</td>\n\t\t\t\t\t<td\n\t\t\t\t\t\t*ngFor=\"let year of budgetDtoPrimary.budget.summary.years\"\n\t\t\t\t\t\tstyle=\"text-align: center;border: 1px solid black; color: white;background-color: grey; width:80px;\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ year.yearNumber }}\n\t\t\t\t\t</td>\n\t\t\t\t\t<td\n\t\t\t\t\t\tstyle=\"text-align: center;border: 1px solid black; color: white;background-color: grey; width: 110px;\"\n\t\t\t\t\t>\n\t\t\t\t\t\tTotal ({{ budgetDtoPrimary.budget.summary.baseCurrency }})\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<tbody>\n\t\t\t\t<tr\n\t\t\t\t\t*ngFor=\"\n\t\t\t\t\t\tlet category of budgetDtoPrimary.budget.summary.categories;\n\t\t\t\t\t\tlet iCat = index\n\t\t\t\t\t\"\n\t\t\t\t>\n\t\t\t\t\t<td style=\"font-weight: bold;text-align: left;border: 1px solid black;\">\n\t\t\t\t\t\t&nbsp;&nbsp;{{\n\t\t\t\t\t\t\ttranslateCategory(category.category)\n\t\t\t\t\t\t}}&nbsp;&nbsp;&nbsp;&nbsp;\n\t\t\t\t\t</td>\n\t\t\t\t\t<td\n\t\t\t\t\t\t*ngFor=\"let year of category.years\"\n\t\t\t\t\t\tstyle=\"text-align: right;border: 1px solid black; \"\n\t\t\t\t\t>\n\t\t\t\t\t\t&nbsp;&nbsp;{{\n\t\t\t\t\t\t\tyear.total == 0 ? '-' : (year.total | currency: 'default':'':'1.0-0')\n\t\t\t\t\t\t}}&nbsp;&nbsp;\n\t\t\t\t\t</td>\n\t\t\t\t\t<td style=\"font-weight: bold; text-align: right;border: 1px solid black;\">\n\t\t\t\t\t\t&nbsp;&nbsp;{{\n\t\t\t\t\t\t\tcategory.total == 0\n\t\t\t\t\t\t\t\t? '-'\n\t\t\t\t\t\t\t\t: (category.total | currency: 'default':'':'1.0-0')\n\t\t\t\t\t\t}}&nbsp;&nbsp;\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr style=\"font-weight: bold;\">\n\t\t\t\t\t<td\n\t\t\t\t\t\tstyle=\"text-align: right;border: 1px solid black; color: white;background-color: grey;\"\n\t\t\t\t\t>\n\t\t\t\t\t\tTotal ({{ budgetDtoPrimary.budget.summary.baseCurrency }})&nbsp;&nbsp;\n\t\t\t\t\t</td>\n\t\t\t\t\t<td\n\t\t\t\t\t\t*ngFor=\"let year of budgetDtoPrimary.budget.summary.years\"\n\t\t\t\t\t\tstyle=\"text-align: right;border: 1px solid black; color: white;background-color: grey; \"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\tyear.total == 0 ? '-' : (year.total | currency: 'default':'':'1.0-0')\n\t\t\t\t\t\t}}&nbsp;&nbsp;\n\t\t\t\t\t</td>\n\t\t\t\t\t<td\n\t\t\t\t\t\tstyle=\"text-align: right;border: 1px solid black; color: white;background-color: grey;\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\tbudgetDtoPrimary.budget.summary.budgetTotal == 0\n\t\t\t\t\t\t\t\t? '-'\n\t\t\t\t\t\t\t\t: (budgetDtoPrimary.budget.summary.budgetTotal\n\t\t\t\t\t\t\t\t  | currency: 'default':'':'1.0-0')\n\t\t\t\t\t\t}}&nbsp;&nbsp;\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</tbody>\n\t\t</table>\n\t</div> -->\n</div>\n<!-- Secundary budget total summary ${presupuesto_288_resumeCategoryYear} -->\n<div style=\"display: none;\" id=\"pli-token-secundary-budget-total-summary\">\n\t<div>\n\t\t<table\n\t\t\t*ngIf=\"\n\t\t\t\tbudgetDtoSecundary !== null &&\n\t\t\t\tbudgetDtoSecundary.budget &&\n\t\t\t\tbudgetDtoSecundary.budget.summary\n\t\t\t\"\n\t\t\tstyle=\"border-spacing: 2px; border-collapse: collapse; width: 100%;\"\n\t\t>\n\t\t\t<thead>\n\t\t\t\t<tr style=\"font-weight: bold;\">\n\t\t\t\t\t<td\n\t\t\t\t\t\tstyle=\"\n\t\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t\t\tborder: 1px solid black;\n\t\t\t\t\t\t\tcolor: white;\n\t\t\t\t\t\t\tbackground-color: grey;\n\t\t\t\t\t\t\"\n\t\t\t\t\t>\n\t\t\t\t\t\tRubro\n\t\t\t\t\t</td>\n\t\t\t\t\t<td\n\t\t\t\t\t\t*ngFor=\"let year of budgetDtoSecundary.budget.summary.years\"\n\t\t\t\t\t\tstyle=\"\n\t\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t\t\tborder: 1px solid black;\n\t\t\t\t\t\t\tcolor: white;\n\t\t\t\t\t\t\tbackground-color: grey;\n\t\t\t\t\t\t\twidth: 80px;\n\t\t\t\t\t\t\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ year.yearNumber }}\n\t\t\t\t\t</td>\n\t\t\t\t\t<td\n\t\t\t\t\t\tstyle=\"\n\t\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t\t\tborder: 1px solid black;\n\t\t\t\t\t\t\tcolor: white;\n\t\t\t\t\t\t\tbackground-color: grey;\n\t\t\t\t\t\t\twidth: 110px;\n\t\t\t\t\t\t\"\n\t\t\t\t\t>\n\t\t\t\t\t\tTotal ({{ budgetDtoSecundary.budget.summary.baseCurrency }})\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<tbody>\n\t\t\t\t<tr\n\t\t\t\t\t*ngFor=\"\n\t\t\t\t\t\tlet category of budgetDtoSecundary.budget.summary.categories;\n\t\t\t\t\t\tlet iCat = index\n\t\t\t\t\t\"\n\t\t\t\t>\n\t\t\t\t\t<td style=\"font-weight: bold; text-align: left; border: 1px solid black;\">\n\t\t\t\t\t\t&nbsp;&nbsp;{{\n\t\t\t\t\t\t\ttranslateCategory(category.category)\n\t\t\t\t\t\t}}&nbsp;&nbsp;&nbsp;&nbsp;\n\t\t\t\t\t</td>\n\t\t\t\t\t<td\n\t\t\t\t\t\t*ngFor=\"let year of category.years\"\n\t\t\t\t\t\tstyle=\"text-align: right; border: 1px solid black;\"\n\t\t\t\t\t>\n\t\t\t\t\t\t&nbsp;&nbsp;{{\n\t\t\t\t\t\t\tyear.total == 0 ? '-' : (year.total | currency: 'default':'':'1.0-0')\n\t\t\t\t\t\t}}&nbsp;&nbsp;\n\t\t\t\t\t</td>\n\t\t\t\t\t<td style=\"font-weight: bold; text-align: right; border: 1px solid black;\">\n\t\t\t\t\t\t&nbsp;&nbsp;{{\n\t\t\t\t\t\t\tcategory.total == 0\n\t\t\t\t\t\t\t\t? '-'\n\t\t\t\t\t\t\t\t: (category.total | currency: 'default':'':'1.0-0')\n\t\t\t\t\t\t}}&nbsp;&nbsp;\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr style=\"font-weight: bold;\">\n\t\t\t\t\t<td\n\t\t\t\t\t\tstyle=\"\n\t\t\t\t\t\t\ttext-align: right;\n\t\t\t\t\t\t\tborder: 1px solid black;\n\t\t\t\t\t\t\tcolor: white;\n\t\t\t\t\t\t\tbackground-color: grey;\n\t\t\t\t\t\t\"\n\t\t\t\t\t>\n\t\t\t\t\t\tTotal ({{ budgetDtoSecundary.budget.summary.baseCurrency }})&nbsp;&nbsp;\n\t\t\t\t\t</td>\n\t\t\t\t\t<td\n\t\t\t\t\t\t*ngFor=\"let year of budgetDtoSecundary.budget.summary.years\"\n\t\t\t\t\t\tstyle=\"\n\t\t\t\t\t\t\ttext-align: right;\n\t\t\t\t\t\t\tborder: 1px solid black;\n\t\t\t\t\t\t\tcolor: white;\n\t\t\t\t\t\t\tbackground-color: grey;\n\t\t\t\t\t\t\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\tyear.total == 0 ? '-' : (year.total | currency: 'default':'':'1.0-0')\n\t\t\t\t\t\t}}&nbsp;&nbsp;\n\t\t\t\t\t</td>\n\t\t\t\t\t<td\n\t\t\t\t\t\tstyle=\"\n\t\t\t\t\t\t\ttext-align: right;\n\t\t\t\t\t\t\tborder: 1px solid black;\n\t\t\t\t\t\t\tcolor: white;\n\t\t\t\t\t\t\tbackground-color: grey;\n\t\t\t\t\t\t\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\tbudgetDtoSecundary.budget.summary.budgetTotal == 0\n\t\t\t\t\t\t\t\t? '-'\n\t\t\t\t\t\t\t\t: (budgetDtoSecundary.budget.summary.budgetTotal\n\t\t\t\t\t\t\t\t  | currency: 'default':'':'1.0-0')\n\t\t\t\t\t\t}}&nbsp;&nbsp;\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</tbody>\n\t\t</table>\n\t</div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\nconst PADDING = '000000';\n\n@Pipe({\n    name: 'currencyColfuturo',\n    standalone: false\n})\nexport class CurrencyColfuturoPipe implements PipeTransform {\n\tprivate DECIMAL_SEPARATOR: string;\n\tprivate THOUSANDS_SEPARATOR: string;\n\tprivate ZERO: string;\n\n\tconstructor() {\n\t\t// TODO comes from configuration settings\n\t\tthis.DECIMAL_SEPARATOR = ',';\n\t\tthis.THOUSANDS_SEPARATOR = '.';\n\t\tthis.ZERO = '-';\n\t}\n\n\ttransform(value: number | string, fractionSize: number = 0): string {\n\t\tif (value) {\n\t\t\tlet integer = value + '';\n\t\t\tinteger = integer.replace(/\\B(?=(\\d{3})+(?!\\d))/g, this.THOUSANDS_SEPARATOR);\n\t\t\treturn integer;\n\t\t}\n\t\treturn this.ZERO;\n\t}\n\n\tparse(value: string, fractionSize: number = 0): string {\n\t\tif (!value || value == this.ZERO) {\n\t\t\treturn '0';\n\t\t}\n\t\tlet integer = value.replace(/\\./g, '');\n\t\treturn integer;\n\t}\n}\n","import { Directive, HostListener, ElementRef, OnInit } from '@angular/core';\nimport { CurrencyColfuturoPipe } from '../pipes/currency-colfuturo.pipe';\n\n@Directive({\n    selector: '[currencyColfuturoFormatter]',\n    standalone: false\n})\nexport class CurrencyColfuturoFormatterDirective implements OnInit {\n\tprivate el: HTMLInputElement;\n\n\tprivate currencyPipe: CurrencyColfuturoPipe;\n\n\tconstructor(private elementRef: ElementRef) {\n\t\tthis.el = this.elementRef.nativeElement;\n\t\tthis.currencyPipe = new CurrencyColfuturoPipe();\n\t}\n\n\tngOnInit() {\n\t\tif (this.el.value) this.el.value = this.currencyPipe.transform(this.el.value);\n\t}\n\n\t@HostListener('focus', ['$event.target.value'])\n\tonFocus(value) {\n\t\tif (value) this.el.value = this.currencyPipe.parse(value); // opossite of transform\n\t}\n\n\t@HostListener('blur', ['$event.target.value'])\n\tonBlur(value) {\n\t\tif (value) this.el.value = this.currencyPipe.transform(value);\n\t}\n\n\t@HostListener('keypress', ['$event'])\n\tonkeypress(event) {\n\t\tconst charCode = event.which ? event.which : event.keyCode;\n\t\tif (charCode > 31 && (charCode < 48 || charCode > 57)) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nconst PADDING = '000000';\n\n@Pipe({\n    name: 'currencyDecimalColfuturo',\n    standalone: false\n})\nexport class CurrencyDecimalColfuturoPipe implements PipeTransform {\n\tprivate DECIMAL_SEPARATOR: string;\n\tprivate THOUSANDS_SEPARATOR: string;\n\n\tconstructor() {\n\t\t// TODO comes from configuration settings\n\t\tthis.DECIMAL_SEPARATOR = ',';\n\t\tthis.THOUSANDS_SEPARATOR = '.';\n\t}\n\n\ttransform(value: number | string, fractionSize: number = 2): string {\n\t\tlet [integer, fraction = ''] = (value || '').toString().split(this.DECIMAL_SEPARATOR);\n\n\t\tfraction =\n\t\t\tfractionSize > 0\n\t\t\t\t? this.DECIMAL_SEPARATOR + (fraction + PADDING).substring(0, fractionSize)\n\t\t\t\t: '';\n\n\t\tinteger = integer.replace(/\\B(?=(\\d{3})+(?!\\d))/g, this.THOUSANDS_SEPARATOR);\n\n\t\treturn integer + fraction;\n\t}\n\n\tparse(value: string, fractionSize: number = 2): string {\n\t\tlet [integer, fraction = ''] = (value || '').split(this.DECIMAL_SEPARATOR);\n\n\t\t//integer = integer.replace(new RegExp(this.THOUSANDS_SEPARATOR, \"g\"), \"\");\n\t\tinteger = integer.replace(/\\./g, '');\n\n\t\tfraction =\n\t\t\tparseInt(fraction, 10) > 0 && fractionSize > 0\n\t\t\t\t? this.DECIMAL_SEPARATOR + (fraction + PADDING).substring(0, fractionSize)\n\t\t\t\t: '';\n\n\t\treturn integer + fraction;\n\t}\n}\n","import { Directive, HostListener, ElementRef, OnInit } from '@angular/core';\nimport { CurrencyDecimalColfuturoPipe } from '../pipes/currency-decimal-colfuturo.pipe';\n\n@Directive({\n    selector: '[currencyDecimalColfuturoFormatter]',\n    standalone: false\n})\nexport class CurrencyDecimalColfuturoFormatterDirective implements OnInit {\n\tprivate el: HTMLInputElement;\n\n\tprivate currencyDecimalPipe: CurrencyDecimalColfuturoPipe;\n\n\tconstructor(private elementRef: ElementRef) {\n\t\tthis.el = this.elementRef.nativeElement;\n\t\tthis.currencyDecimalPipe = new CurrencyDecimalColfuturoPipe();\n\t}\n\n\tngOnInit() {\n\t\tthis.el.value = this.currencyDecimalPipe.transform(this.el.value);\n\t}\n\n\t@HostListener('focus', ['$event.target.value'])\n\tonFocus(value) {\n\t\tthis.el.value = this.currencyDecimalPipe.parse(value); // opossite of transform\n\t}\n\n\t@HostListener('blur', ['$event.target.value'])\n\tonBlur(value) {\n\t\tthis.el.value = this.currencyDecimalPipe.transform(value);\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nconst PADDING = '000000';\n\n@Pipe({\n    name: 'currencyPrintColfuturo',\n    standalone: false\n})\nexport class CurrencyPrintColfuturoPipe implements PipeTransform {\n\tprivate DECIMAL_SEPARATOR: string;\n\tprivate THOUSANDS_SEPARATOR: string;\n\n\tconstructor() {\n\t\t// TODO comes from configuration settings\n\t\tthis.DECIMAL_SEPARATOR = ',';\n\t\tthis.THOUSANDS_SEPARATOR = '.';\n\t}\n\n\ttransform(value: number | string, fractionSize: number = 0): string {\n\t\tlet integer = (value || '').toString().replace(/ /g, '');\n\t\tinteger = integer.replace(/\\B(?=(\\d{3})+(?!\\d))/g, this.THOUSANDS_SEPARATOR);\n\t\t/* It's a character that present, must be change to accept onle number and separators */\n\t\tinteger = integer.replace(String.fromCharCode(160), '');\n\t\treturn integer == '0' ? '-' : integer;\n\t}\n\n\tparse(value: string, fractionSize: number = 0): string {\n\t\tlet integer = (value || '').replace(/ /g, '');\n\t\tinteger = integer.replace(/\\./g, '');\n\t\t/* It's a character that present, must be change to accept onle number and separators */\n\t\tinteger = integer.replace(String.fromCharCode(160), '');\n\t\treturn integer == '0' ? '-' : integer;\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'thousands',\n    standalone: false\n})\nexport class ThousandsPipe implements PipeTransform {\n\ttransform(value: any, args?: any): any {\n\t\tif (isNaN(value) || value === '' || value === null) return 0;\n\t\telse {\n\t\t\t// define args if it doesn't exist\n\t\t\tif (!args) args = {};\n\t\t\t// set default decimals\n\t\t\tif (\n\t\t\t\targs.decimals === undefined ||\n\t\t\t\targs.decimals === null ||\n\t\t\t\tisNaN(args.decimals) ||\n\t\t\t\targs.decimals < 0\n\t\t\t)\n\t\t\t\targs.decimals = 2;\n\n\t\t\t// get the number according to the decimals defined\n\t\t\tlet numberValue = typeof value === 'number' ? value : Number(value);\n\n\t\t\t// if not format then return the formatlocale number\n\t\t\tif (!args.format) return this.returnResult(numberValue, args);\n\n\t\t\t// less than 1000 then return the number\n\t\t\tif (numberValue < 1000) {\n\t\t\t\treturn this.returnResult(numberValue, args);\n\t\t\t}\n\n\t\t\t// between 1000 and 1000000 then it should be divided by 1000\n\t\t\tif (numberValue >= 1000 && numberValue < 1000000) {\n\t\t\t\targs.prefix = 'K';\n\t\t\t\treturn this.returnResult(numberValue / 1000, args);\n\t\t\t}\n\n\t\t\t// between 1000000 and 1000000000 then it should be divided by 1000000\n\t\t\tif (numberValue >= 1000000 && numberValue <= 1000000000) {\n\t\t\t\targs.prefix = 'M';\n\t\t\t\treturn this.returnResult(numberValue / 1000000, args);\n\t\t\t}\n\n\t\t\t// between 1000000000 and 1000000000000 then it should be divided by 1000000000\n\t\t\tif (numberValue >= 1000000000 && numberValue <= 1000000000000) {\n\t\t\t\targs.prefix = 'B';\n\t\t\t\treturn this.returnResult(numberValue / 1000000000, args);\n\t\t\t}\n\t\t}\n\t}\n\n\t/** it returns the result according to the number */\n\treturnResult(numberValue: number, args?: any): string {\n\t\tlet strValue = args ? numberValue.toFixed(args.decimals) : numberValue.toString();\n\t\tstrValue = Number(strValue).toLocaleString('de-DE');\n\t\tif (args && args.format == 1 && args.prefix) strValue += args.prefix;\n\t\treturn strValue;\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpParams, HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { ApplicationTag } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class ApplicationTagService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tprivate serviceName = 'application-tag';\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/** It returns an array of applicationTag by promCod */\n\tfindByPromCod(promCod: number): Observable<any> {\n\t\treturn this.httpClient.get(this.environment.host.backend.backoffice + this.serviceName, {\n\t\t\tparams: new HttpParams().set('promCod', promCod.toString())\n\t\t});\n\t}\n\n\tgetTagByNameLike(promCod: number, name: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + this.serviceName + '/get-tag-by-name',\n\t\t\t{ params: new HttpParams().set('promCod', promCod.toString()).set('nameTag', name) }\n\t\t);\n\t}\n\n\tfindByIdApp(idApp: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + this.serviceName + '/get-by-id-app',\n\t\t\t{ params: new HttpParams().set('idApp', idApp) }\n\t\t);\n\t}\n\n\tsave(tag: ApplicationTag): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + this.serviceName,\n\t\t\ttag\n\t\t);\n\t}\n\n\tedit(tag: ApplicationTag): Observable<any> {\n\t\treturn this.httpClient.put(\n\t\t\tthis.environment.host.backend.backoffice + this.serviceName,\n\t\t\ttag\n\t\t);\n\t}\n\n\tdelete(id: string): Observable<any> {\n\t\treturn this.httpClient.delete(this.environment.host.backend.backoffice + this.serviceName, {\n\t\t\tparams: new HttpParams().set('id', id)\n\t\t});\n\t}\n\n\tassign(applications: string[], idTag: string): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + this.serviceName + '/assign',\n\t\t\tapplications,\n\t\t\t{ params: new HttpParams().set('idTag', idTag) }\n\t\t);\n\t}\n\n\tremoveTag(idApp: string, idTag: string): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + this.serviceName + '/remove-tag',\n\t\t\t{},\n\t\t\t{ params: new HttpParams().set('idApp', idApp).set('idTag', idTag) }\n\t\t);\n\t}\n\n\tremoveTags(idApp: string, idTags: string[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + this.serviceName + '/remove-tags',\n\t\t\tidTags,\n\t\t\t{ params: new HttpParams().set('idApp', idApp) }\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpParams, HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { ApplicationTag } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class TagManagementService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tprivate serviceName = 'application-tag';\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/** It returns an array of applicationTag by CategoryId */\n\tfindByCategoryId(categoryId: number): Observable<any> {\n\t\treturn this.httpClient.get(this.environment.host.backend.configuration + this.serviceName, {\n\t\t\tparams: new HttpParams().set('categoryId', categoryId)\n\t\t});\n\t}\n\n\tgetTagByNameLike(categoryId: number, name: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + this.serviceName + '/get-tag-by-name',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('categoryId', categoryId).set('nameTag', name)\n\t\t\t}\n\t\t);\n\t}\n\n\tfindByIdApp(idApp: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + this.serviceName + '/get-by-id-app',\n\t\t\t{ params: new HttpParams().set('idApp', idApp) }\n\t\t);\n\t}\n\n\tsave(tag: ApplicationTag): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + this.serviceName,\n\t\t\ttag\n\t\t);\n\t}\n\n\tedit(tag: ApplicationTag): Observable<any> {\n\t\treturn this.httpClient.put(\n\t\t\tthis.environment.host.backend.configuration + this.serviceName,\n\t\t\ttag\n\t\t);\n\t}\n\n\tdelete(id: string): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + this.serviceName,\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('id', id)\n\t\t\t}\n\t\t);\n\t}\n\n\tassign(applications: string[], idTag: string): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + this.serviceName + '/assign',\n\t\t\tapplications,\n\t\t\t{ params: new HttpParams().set('idTag', idTag) }\n\t\t);\n\t}\n\n\tremoveTag(idApp: string, idTag: string): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + this.serviceName + '/remove-tag',\n\t\t\t{},\n\t\t\t{ params: new HttpParams().set('idApp', idApp).set('idTag', idTag) }\n\t\t);\n\t}\n\n\tremoveTags(idApp: string, idTags: string[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + this.serviceName + '/remove-tags',\n\t\t\tidTags,\n\t\t\t{ params: new HttpParams().set('idApp', idApp) }\n\t\t);\n\t}\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class SpinnerService {\n\tshowSpinner: boolean = true;\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { throwError, Observable, Subject } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { HttpClient, HttpParams, HttpErrorResponse } from '@angular/common/http';\nimport { HttpHeaders } from '@angular/common/http';\nimport {\n\tBudgetDto,\n\tBudgetWizard,\n\tBudgetData,\n\tNewBudgetDto,\n\tBudgetMenu,\n\tBudgetOwnFund,\n\tBudgetSetup,\n\tPliCnfPresupuestoAsistente,\n} from 'ng-pli-util';\n\nconst URLS = {\n\tmenu: 'budget/menu',\n\tgetById: 'budget/getById',\n\tgetByApplicationId: 'budget/getByApplicationId',\n\tgetByPromCodigo: 'budget/getByPromCodigo',\n\tgetByPromCodigoRubro: 'budget/getByPromCodigoRubro',\n\tsave: 'budget/save',\n\tsummarizedSave: 'budget/summarizedSave',\n\tsummarizedReset: 'budget/summarizedReset',\n\tdelete: 'budget/delete',\n\tupdate: 'budget/update',\n\tmybudget: 'budget/mybudget',\n\tmysimplebudget: 'budget/mysimplebudget',\n\twizard: 'budget/wizard',\n\tgenerate: 'budget/generate',\n\tdeleteWizard: 'budget/deleteWizard',\n\tbudgetsByProm: 'budget/getBudgetsByProm',\n\tupdateWizard: 'budget/updateWizard',\n\tgetConfiguredCurrency: 'budget_setup/getConfiguredCurrency'\n};\nconst httpOptions = {\n\theaders: new HttpHeaders({\n\t\t'Content-Type': 'application/json'\n\t\t// 'Authorization': 'my-auth-token'\n\t})\n};\n\n@Injectable() //({providedIn: 'root'})\nexport class BudgetApplicationService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tprivate subjectValidateBudgetCheck = new Subject<boolean>();\n\n\t//private lGlobalBudgetWizard!: PliCnfPresupuestoAsistente[];\n\n\tconstructor(@Inject('environment') private environment: any, private http: HttpClient) {}\n\n\t//https://angular.io/guide/http#error-handling\n\tprivate handleError(error: HttpErrorResponse) {\n\t\tif (error.error instanceof ErrorEvent) {\n\t\t\t// A client-side or network error occurred. Handle it accordingly.\n\t\t\t// console.error('A client-side error occurred:', error.error.message);\n\t\t} else {\n\t\t\t// The backend returned an unsuccessful response code.\n\t\t\t// The response body may contain clues as to what went wrong,\n\t\t\t// console.error(\n\t\t\t//   `Backend returned code ${error.status}, ` +\n\t\t\t//   `body was: ${error.error}`);\n\t\t}\n\t\t// return an observable with a user-facing error message\n\t\treturn throwError(error);\n\t}\n\n\tgetBudget(budgetId: string): Observable<any> {\n\t\tlet options = new HttpParams().set('budgetId', budgetId);\n\t\treturn this.http\n\t\t\t.get<BudgetDto>(this.environment.host.backend.frontoffice + URLS.getById, {\n\t\t\t\theaders: httpOptions.headers,\n\t\t\t\tparams: options\n\t\t\t})\n\t\t\t.pipe(catchError(this.handleError));\n\t}\n\n\tupdateBudget(budget: BudgetData): Observable<any> {\n\t\treturn this.http\n\t\t\t.post<BudgetData>(this.environment.host.backend.frontoffice + URLS.update, budget, {\n\t\t\t\theaders: httpOptions.headers\n\t\t\t})\n\t\t\t.pipe(catchError(this.handleError));\n\t}\n\n\tsummarizedSave(budget: BudgetData): Observable<any> {\n\t\treturn this.http\n\t\t\t.post<BudgetData>(\n\t\t\t\tthis.environment.host.backend.frontoffice + URLS.summarizedSave,\n\t\t\t\tbudget,\n\t\t\t\t{\n\t\t\t\t\theaders: httpOptions.headers\n\t\t\t\t}\n\t\t\t)\n\t\t\t.pipe(catchError(this.handleError));\n\t}\n\n\tsummarizedReset(programTypeId: number, applicationId: string): Observable<any> {\n\t\tlet options = new HttpParams()\n\t\t\t.set('applicationId', applicationId)\n\t\t\t.set('programTypeId', String(programTypeId));\n\t\treturn this.http\n\t\t\t.post(this.environment.host.backend.frontoffice + URLS.summarizedReset, null, {\n\t\t\t\theaders: httpOptions.headers,\n\t\t\t\tparams: options\n\t\t\t})\n\t\t\t.pipe(catchError(this.handleError));\n\t}\n\n\tgetMyBudgetsList(applicationId: string): Observable<any> {\n\t\tlet options = new HttpParams().set('applicationId', applicationId);\n\t\treturn this.http\n\t\t\t.get<BudgetData[]>(this.environment.host.backend.frontoffice + URLS.menu, {\n\t\t\t\theaders: httpOptions.headers,\n\t\t\t\tparams: options\n\t\t\t})\n\t\t\t.pipe(catchError(this.handleError));\n\t}\n\n\tgetMyBudget(\n\t\tapplicationId: string,\n\t\tbudgetSetupId: string,\n\t\tpromCode: number,\n\t\ttag: string\n\t): Observable<any> {\n\t\tlet options = new HttpParams()\n\t\t\t.set('applicationId', applicationId)\n\t\t\t.set('promCode', promCode + '')\n\t\t\t.set('budgetSetupId', budgetSetupId)\n\t\t\t.set('tag', tag);\n\t\treturn this.http\n\t\t\t.get<BudgetDto>(this.environment.host.backend.frontoffice + URLS.mybudget, {\n\t\t\t\theaders: httpOptions.headers,\n\t\t\t\tparams: options\n\t\t\t})\n\t\t\t.pipe(catchError(this.handleError));\n\t}\n\n\tgetMySimpleBudget(applicationId: string, tag: string): Observable<any> {\n\t\tlet options = new HttpParams().set('applicationId', applicationId).set('tag', tag);\n\t\treturn this.http\n\t\t\t.get<BudgetData>(this.environment.host.backend.frontoffice + URLS.mysimplebudget, {\n\t\t\t\theaders: httpOptions.headers,\n\t\t\t\tparams: options\n\t\t\t})\n\t\t\t.pipe(catchError(this.handleError));\n\t}\n\n\tgetBudgetsByProm(applicationId: string, promCode: number, tag: string): Observable<any> {\n\t\tlet options = new HttpParams()\n\t\t\t.set('applicationId', applicationId)\n\t\t\t.set('promCode', promCode + '')\n\t\t\t.set('tag', tag);\n\t\treturn this.http\n\t\t\t.get<BudgetDto[]>(this.environment.host.backend.frontoffice + URLS.budgetsByProm, {\n\t\t\t\theaders: httpOptions.headers,\n\t\t\t\tparams: options\n\t\t\t})\n\t\t\t.pipe(catchError(this.handleError));\n\t}\n\n\t/**@deprecated */\n\tnewWizard(request: NewBudgetDto): Observable<any> {\n\t\treturn this.http\n\t\t\t.post<BudgetWizard>(this.environment.host.backend.frontoffice + URLS.wizard, request, {\n\t\t\t\theaders: httpOptions.headers\n\t\t\t})\n\t\t\t.pipe(catchError(this.handleError));\n\t}\n\n\tgenerate(wizard: BudgetWizard): Observable<any> {\n\t\treturn this.http\n\t\t\t.post<BudgetData>(this.environment.host.backend.frontoffice + URLS.generate, wizard, {\n\t\t\t\theaders: httpOptions.headers\n\t\t\t})\n\t\t\t.pipe(catchError(this.handleError));\n\t}\n\n\t/**@deprecated */\n\tmenu(promCode: number): Observable<any> {\n\t\tlet options = new HttpParams().set('promCode', promCode + '');\n\t\treturn this.http\n\t\t\t.get<BudgetMenu>(this.environment.host.backend.frontoffice + URLS.menu, {\n\t\t\t\theaders: httpOptions.headers,\n\t\t\t\tparams: options\n\t\t\t})\n\t\t\t.pipe(catchError(this.handleError));\n\t}\n\n\tdeleteWizard(wizardId: string): Observable<any> {\n\t\tlet options = new HttpParams().set('wizardId', wizardId);\n\t\treturn this.http\n\t\t\t.delete(this.environment.host.backend.frontoffice + URLS.deleteWizard, {\n\t\t\t\theaders: httpOptions.headers,\n\t\t\t\tparams: options\n\t\t\t})\n\t\t\t.pipe(catchError(this.handleError));\n\t}\n\n\t/** It returns the observable of budget own fund by application Id*/\n\tgetBudgetOwnFundByApplicationId(applicationId: string): Observable<any> {\n\t\treturn this.http.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'budgetOwnFund/getByApplicationId',\n\t\t\t{ params: new HttpParams().set('applicationId', applicationId) }\n\t\t);\n\t}\n\n\t/** It saves the budget own fund */\n\tsaveBudgetOwnFund(budgetOwnFund: BudgetOwnFund): Observable<any> {\n\t\treturn this.http.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'budgetOwnFund/save',\n\t\t\tbudgetOwnFund,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It returns the observable of other budget info different of the budgetSetupId send */\n\tgetOtherBudgetByPromCodigo(\n\t\tpromCode: number,\n\t\tbudgetSetupId: string,\n\t\tapplicationId: string\n\t): Observable<any> {\n\t\treturn this.http.get(this.environment.host.backend.frontoffice + 'budget/otherBudget', {\n\t\t\tparams: new HttpParams()\n\t\t\t\t.set('promCode', promCode.toString())\n\t\t\t\t.set('budgetSetupId', budgetSetupId)\n\t\t\t\t.set('applicationId', applicationId)\n\t\t});\n\t}\n\n\t/** It returns the observable of budget setup by prom codigo */\n\tgetBudgetSetupPliCnfByPromCodigo(promCodigo: number, cargarListas: boolean): Observable<any> {\n\t\treturn this.http.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'budget_setup/getPliCnfByPromCodigo',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t.set('cargarListas', cargarListas.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It returns the observable of budget setup by prom codigo */\n\tgetBudgetSetupByPromCodigo(promCode: number): Observable<any> {\n\t\treturn this.http.get<BudgetSetup[]>(\n\t\t\tthis.environment.host.backend.frontoffice + 'budget_setup/getByPromCodigo',\n\t\t\t{ params: new HttpParams().set('promCode', promCode.toString()) }\n\t\t);\n\t}\n\n\t\n\t/** It returns the observable of PliCnfPresupuestoAsistente setup by prom codigo */\n\tgetBudgetSetupByPromCodigoRubro(rubCodigo: number, promCode: number): Observable<any> {\n\t\treturn this.http.get<PliCnfPresupuestoAsistente[]>(\n\t\t\tthis.environment.host.backend.frontoffice + 'budget_setup/getByPromCodigoRubro',\n\t\t\t{ params: new HttpParams()\n\t\t\t\t.set('rubCodigo', rubCodigo.toString())\n\t\t\t\t.set('promCode', promCode.toString()) }\n\t\t);\n\t}\n\n\tupdateWizard(wizard: BudgetWizard): Observable<any> {\n\t\treturn this.http\n\t\t\t.post<BudgetWizard>(\n\t\t\t\tthis.environment.host.backend.frontoffice + URLS.updateWizard,\n\t\t\t\twizard,\n\t\t\t\t{\n\t\t\t\t\theaders: httpOptions.headers\n\t\t\t\t}\n\t\t\t)\n\t\t\t.pipe(catchError(this.handleError));\n\t}\n\n\t/** It returns the list of budget by application id */\n\tgetByApplicationId(applicationId: string): Observable<any> {\n\t\treturn this.http.get(this.environment.host.backend.frontoffice + URLS.getByApplicationId, {\n\t\t\tparams: new HttpParams().set('applicationId', applicationId)\n\t\t});\n\t}\n\n\t/** It returns the list of budget by promCOdigo id */\n\tgetByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.http.get(this.environment.host.backend.frontoffice + URLS.getByPromCodigo, {\n\t\t\tparams: new HttpParams().set('promCodigo', promCodigo.toString())\n\t\t});\n\t}\n\n\t/** It returns the list of budget by promCOdigo id */\n\t/*\n\tgetByPromCodigoRubro(rubCodigo: number, promCodigo: number): Observable<any> {\n\t\treturn this.http.get(this.environment.host.backend.frontoffice + URLS.getByPromCodigoRubro, {\n\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('rubCodigo', rubCodigo.toString())\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\n\t\t});\n\t}\n\t*/\n\n\t\n\n\t/** It returns the configured currency of the budget */\n\tgetConfiguredCurrency(promCodigo: number): Observable<any> {\n\t\treturn this.http.get(\n\t\t\tthis.environment.host.backend.frontoffice + URLS.getConfiguredCurrency,\n\t\t\t{ params: new HttpParams().set('promCode', promCodigo.toString()) }\n\t\t);\n\t}\n\n\tgetSubjectValidateBudgetCheck(): Observable<boolean> {\n\t\treturn this.subjectValidateBudgetCheck.asObservable();\n\t}\n\n\tsetSubjectValidateBudgetCheck(subjectValidateBudgetCheck: boolean = true) {\n\t\tthis.subjectValidateBudgetCheck.next(subjectValidateBudgetCheck);\n\t}\n\n\tisFullBudget(applicationId: string): Observable<any> {\n\t\treturn this.http.get(this.environment.host.backend.frontoffice + 'budget/isFullBudget', {\n\t\t\tparams: new HttpParams().set('applicationId', applicationId)\n\t\t});\n\t}\n\n\tupdateCompletedFlag(applicationId: string, completed: boolean): Observable<any> {\n\t\treturn this.http.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'budget/updateCompletedFlag',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', applicationId)\n\t\t\t\t\t.set('completed', completed.toString())\n\t\t\t}\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { DocumentManagement } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class DocumentManagementService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/** It send the email */\n\tqueue(documentManagement: DocumentManagement): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.queue + 'document-management/queue',\n\t\t\tdocumentManagement,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It send the email of multiple DocumentManagement */\n\tqueueMultiple(lDocumentManagement: DocumentManagement[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.queue + 'document-management/queueMultiple',\n\t\t\tlDocumentManagement,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It send the email */\n\tqueueViews(applicationId: string, promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.queue + 'document-management/queue-views',\n\t\t\t{\n\t\t\t\tapplicationId: applicationId,\n\t\t\t\tpromCodigo: promCodigo\n\t\t\t},\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It send the email */\n\tqueueViewsListApplication(lApplicationId: string[], promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.queue + 'document-management/queue-views',\n\t\t\t{\n\t\t\t\tlApplicationId: lApplicationId,\n\t\t\t\tpromCodigo: promCodigo\n\t\t\t},\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tgetCreditStudyDocuments(promCodigo: number, amount: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'document-management/getCreditStudyDocuments',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t.set('amount', amount.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\ttotalCreditStudyDocuments(promCodigo: number): Observable<number> {\n\t\treturn this.httpClient.get<number>(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'document-management/totalCreditStudyDocuments',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCodigo.toString()) }\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { AuthenticationService } from './authentication.service';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { Observable, Subject } from 'rxjs';\nimport {\n\tDocument,\n\tDataTableParameters,\n\tCheckProgramQualification,\n\tUpdateSelectionInformation,\n\tDocumentAnalysisIAStResponse\n} from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class DocumentService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tprivate subjectValidateDocumentsCheck = new Subject<boolean>();\n\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It returns the document by id */\n\tgetById(id: string): Observable<any> {\n\t\treturn this.httpClient.get(this.environment.host.backend.frontoffice + 'document/getById', {\n\t\t\tparams: new HttpParams().set('id', id.toString())\n\t\t});\n\t}\n\n\t/** It returns the document by id */\n\tgetByApplicationId(applicationId: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'document/getByApplicationId',\n\t\t\t{ params: new HttpParams().set('applicationId', applicationId.toString()) }\n\t\t);\n\t}\n\n\t/** It returns the document by configurationDocumentId */\n\tgetByConfigurationDocumentId(configurationDocumentId: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'document/getByConfigurationDocumentId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set(\n\t\t\t\t\t'configurationDocumentId',\n\t\t\t\t\tconfigurationDocumentId.toString()\n\t\t\t\t)\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It returns the document by configurationDocumentId */\n\tgetByListStateInConfigurationDocumentId(\n\t\tlistState: Array<number>,\n\t\tconfigurationDocumentId: number\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'document/getByListStateInConfigurationDocumentId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('configurationDocumentId', configurationDocumentId.toString())\n\t\t\t\t\t.set('listState', listState.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It returns the document by prom code */\n\tgetByPromCode(promCode: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'document/getByPromCode',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCode.toString()) }\n\t\t);\n\t}\n\n\t/** It saves a document */\n\tsave(document: Document): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'document/save',\n\t\t\tdocument,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It checks an admission letter document */\n\tcheckAdmissionLetter(document: Document): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'document/checkAdmissionLetter',\n\t\t\tdocument,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It saves a document */\n\tupdateState(lDocument: Document[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'document/updateState',\n\t\t\tlDocument,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It saves a document */\n\tupdateArchiveProcess(lDocument: Document[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'document/updateArchiveProcess',\n\t\t\tlDocument,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It returns the document by prom code */\n\tgetByDataTablesParameters(dataTableParameters: DataTableParameters) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'document/getByDataTablesParameters',\n\t\t\tdataTableParameters,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tgetListDocumentsByPromCodigoAndRevisor(\n\t\tpromCodigo: number,\n\t\trevisorLogin: string,\n\t\tconfigurationDocumentId: number,\n\t\ttaskId: number\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'document/getListDocumentsByPromCodigoAndRevisor',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t.set('revisorLogin', revisorLogin)\n\t\t\t\t\t.set('configurationDocumentId', configurationDocumentId.toString())\n\t\t\t\t\t.set('taskId', taskId.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It returns documents by app Id and configDoc Id */\n\tgetByApplicationIdAndConfigurationDocumentId(\n\t\tapplicationId: string,\n\t\tconfigurationDocumentId: number\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'document/getByApplicationIdAndConfigurationDocumentId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', applicationId.toString())\n\t\t\t\t\t.set('configurationDocumentId', configurationDocumentId.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tupdateDocumentManagementProcess(applicationId: string): Observable<any> {\n\t\tlet body = {\n\t\t\tapplicationId: applicationId\n\t\t};\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'document/updateDocumentManagementProcess',\n\t\t\tbody\n\t\t);\n\t}\n\n\tgetSubjectValidateDocumentsCheck(): Observable<boolean> {\n\t\treturn this.subjectValidateDocumentsCheck.asObservable();\n\t}\n\n\tsetSubjectValidateDocumentsCheck(subjectValidateDocumentsCheck: boolean = true) {\n\t\tthis.subjectValidateDocumentsCheck.next(subjectValidateDocumentsCheck);\n\t}\n\n\t/** It upload a document */\n\tuploadDocument(uploadDocument: any): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'document/uploadDocument',\n\t\t\tuploadDocument,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\t/** It upload a Slice document */\n\tuploadDocumentSlice(uploadDocument: any): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'document/uploadDocumentSlice',\n\t\t\tuploadDocument,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\t/** It upload a document */\n\tdeleteDocument(deleteDocument: any): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'document/deleteDocument',\n\t\t\tdeleteDocument,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It upload a document */\n\tgetDocumentByConfigIdByCase(\n\t\tuserCallTypeId: number,\n\t\tdocument: any,\n\t\tcodebtorIdentification: string\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'document/getDocumentByConfigIdByCase',\n\t\t\t{\n\t\t\t\tuserCallTypeId: userCallTypeId,\n\t\t\t\tdocument: document,\n\t\t\t\tcodebtorIdentification: codebtorIdentification\n\t\t\t},\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It checks an admission letter document */\n\tcheckProgramQualification(\n\t\tcheckProgramQualification: CheckProgramQualification\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'document/checkProgramQualification',\n\t\t\tcheckProgramQualification,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tdocumentAnalysisWithIA(file: File, prompt: string): Observable<Boolean> {\n\t\tconst formData = new FormData();\n\t\tformData.append('file', file);\n\t\tformData.append('prompt', prompt);\n\t\treturn this.httpClient.post<Boolean>(\n\t\t\tthis.environment.host.backend.frontoffice + 'document/documentAnalysisWithIA',\n\t\t\tformData\n\t\t);\n\t}\n\n\tdocumentAnalysisWithIASt(file: File, prompt: string): Observable<DocumentAnalysisIAStResponse> {\n\t\tconst formData = new FormData();\n\t\tformData.append('file', file);\n\t\tformData.append('prompt', prompt);\n\t\treturn this.httpClient.post<DocumentAnalysisIAStResponse>(\n\t\t\tthis.environment.host.backend.frontoffice + 'document/v2/documentAnalysisWithIA',\n\t\t\tformData\n\t\t);\n\t}\n\n\tupdateSelectionInformation(updateSelectionInformation: UpdateSelectionInformation) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'document/updateSelectionInformation',\n\t\t\tupdateSelectionInformation,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { AuthenticationService } from './authentication.service';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { TipoDocumental, HEADER_JSON, AuthenticationUtil } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class DocumentaryTypeService {\n\tconstructor(\n\t\t@Inject('environment') private environment,\n\t\tprivate httpClient: HttpClient,\n\t\tprivate authService: AuthenticationService\n\t) {}\n\n\t/** It returns the list of documental type by process code */\n\tgetById(tdlCodigo: number, active: boolean): Observable<any> {\n\t\tlet httpParams = new HttpParams()\n\t\t\t.set('tdlCodigo', tdlCodigo.toString())\n\t\t\t.set('cargarListas', active.toString());\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.plis + 'config/tipo-documental/getById',\n\t\t\t{ params: httpParams }\n\t\t);\n\t}\n\n\t/** It returns the list of documental type by process code */\n\tgetAllByProceso(active: boolean, proCodigo: number): Observable<any> {\n\t\tlet httpParams = new HttpParams();\n\n\t\tif (proCodigo) {\n\t\t\thttpParams.set('proCodigo', proCodigo.toString());\n\n\t\t\tif (active !== null) {\n\t\t\t\thttpParams = new HttpParams()\n\t\t\t\t\t.set('proCodigo', proCodigo.toString())\n\t\t\t\t\t.set('cargarListas', active.toString());\n\t\t\t}\n\t\t}\n\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.plis + 'config/tipo-documental/getAllByProceso',\n\t\t\t{ params: httpParams }\n\t\t);\n\t}\n\n\t/** It returns the list of documental type by process code */\n\tgetAllActiveByProceso(proCodigo: number): Observable<any> {\n\t\treturn this.getAllByProceso(true, proCodigo);\n\t}\n\n\t/** It saves a documental type */\n\tsave(\n\t\ttipoDocumentalBefore: TipoDocumental,\n\t\ttipoDocumental: TipoDocumental,\n\t\tpatCodigo: number\n\t): Observable<any> {\n\t\tlet object = {\n\t\t\ttipoDocumental: tipoDocumental,\n\t\t\ttipoDocumentalBefore: tipoDocumentalBefore,\n\t\t\tpliUsuario: AuthenticationUtil.getPliUsuario(),\n\t\t\tpatCodigo: patCodigo\n\t\t};\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.plis + 'config/tipo-documental/save',\n\t\t\tobject,\n\t\t\tHEADER_JSON\n\t\t);\n\t}\n\n\t/** It saves a documental type */\n\tdelete(tipoDocumental: TipoDocumental, patCodigo: number): Observable<any> {\n\t\tlet object = {\n\t\t\ttipoDocumental: tipoDocumental,\n\t\t\ttipoDocumentalBefore: null,\n\t\t\tpliUsuario: AuthenticationUtil.getPliUsuario(),\n\t\t\tpatCodigo: patCodigo\n\t\t};\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.plis + 'config/tipo-documental/delete',\n\t\t\tobject,\n\t\t\tHEADER_JSON\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { Email } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class EmailService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/** It send the email */\n\tsend(email: Email): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.queue + 'email/send',\n\t\t\temail,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tsendApplicationNotification(noification: any): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.queue + 'email/sendApplicationNotification',\n\t\t\tnoification,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { Observable } from 'rxjs';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Inject } from '@angular/core';\nimport { CubeRequestTO } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class CubeService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It sends a request to migration quueue */\n\tsend(lCubeRequestTO: CubeRequestTO): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.queue + 'cube/send',\n\t\t\tlCubeRequestTO,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport {\n\tEvaluation,\n\tApplication,\n\tEvaluationRequest,\n\tApplicationBasicInfo,\n\tDataTableParameters,\n\tProgramGrade\n} from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class EvaluationService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It saves a entity */\n\tsave(evaluation: Evaluation): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'evaluation/save',\n\t\t\tevaluation,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t// /** It returns by prom codigo*/\n\tgetByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'evaluation/getByPromCodigo',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('promCodigo', promCodigo.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/**\n\t * Get reviews by evaluator\n\t * @param dataTableParameters\n\t * @return list of reviews per evaluator\n\t */\n\tgetByPromCodigoAndEvaluator(dataTableParameters: DataTableParameters): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.backoffice}evaluation/findByEvaluator`,\n\t\t\tdataTableParameters\n\t\t);\n\t}\n\n\t/** Get Grouped data */\n\tgetGroupingFormFieldsTask(promCodigo: number): Observable<any> {\n\t\tlet httpParams = new HttpParams();\n\t\thttpParams = httpParams.set('promCodigo', String(promCodigo));\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'evaluation/getGroupingFormFieldsTask',\n\t\t\t'',\n\t\t\t{ params: httpParams }\n\t\t);\n\t}\n\n\t/** Get Grouped data */\n\tgetGroupedByDataTasksParameters(\n\t\tdataTableParameters: DataTableParameters,\n\t\tpromCodigo: number,\n\t\tevaluator: string\n\t): Observable<any> {\n\t\tlet httpParams = new HttpParams()\n\t\t\t.set('promCodigo', String(promCodigo))\n\t\t\t.set('evaluator', String(evaluator));\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'evaluation/getGroupedByDataTasksParameters',\n\t\t\tdataTableParameters,\n\t\t\t{ params: httpParams }\n\t\t);\n\t}\n\n\t/**\n\t * Get list task ids\n\t * @param evaluator\n\t * @param promCodigo\n\t * @return list task ids\n\t */\n\tgetGroupedTasksByEvaluatorAndPromCodigo(\n\t\tevaluator: string,\n\t\tpromCodigo: number\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.backoffice}evaluation/evaluator/${evaluator}/promCodigo/${promCodigo}`\n\t\t);\n\t}\n\n\t/**\n\t * Get list indicators\n\t * @param dataTableParameters\n\t * @return list indicators\n\t */\n\tgenerateIndicators(dataTableParameters: DataTableParameters): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.backoffice}evaluation/generateIndicators`,\n\t\t\tdataTableParameters\n\t\t);\n\t}\n\n\t// /** It returns total assigned and pending tasks of the reviewer*/\n\tgetTotalTaskReviewerByTaskIdAndPromCodigo(taskId: number, promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'evaluation/reviewerByTaskIdAndPromCodigo',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('taskId', taskId.toString())\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It assigns the task for the reviewer */\n\tassignTaskReviwer(\n\t\tlistApplication: Array<Application>,\n\t\tlistEvaluator: Array<string>,\n\t\tlistEvaluatorMails: Array<string>,\n\t\ttaskId: number\n\t): Observable<any> {\n\t\tlet assignTaskRequest = {\n\t\t\tlistApplication: listApplication,\n\t\t\tlistEvaluator: listEvaluator,\n\t\t\tlistEvaluatorMails: listEvaluatorMails,\n\t\t\ttaskId: taskId\n\t\t};\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'evaluation/assignTask',\n\t\t\tassignTaskRequest,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It unAssign the task for the reviewer */\n\tunAssignTaskReviwer(\n\t\tlistApplication: Array<ApplicationBasicInfo>,\n\t\ttaskId: number\n\t): Observable<any> {\n\t\tlet unAssignTaskRequest = {\n\t\t\tlistApplication: listApplication,\n\t\t\ttaskId: taskId\n\t\t};\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'evaluation/unAssignTaskReviwer',\n\t\t\tunAssignTaskRequest,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tgetByApplicationIdIn(lApplicationId: string[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'evaluation/getByApplicationIdIn',\n\t\t\tlApplicationId,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tsendEvaluationQueue(evaluationRequest: EvaluationRequest) {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.queue}evaluation/send`,\n\t\t\tevaluationRequest\n\t\t);\n\t}\n\n\tsetTemplateOutputs(\n\t\tapplicationId: string,\n\t\ttaskId: number,\n\t\tevaluatorId: string,\n\t\ttemplateId: number,\n\t\tisComplete: boolean,\n\t\tisAllTemplatesComplete: boolean,\n\t\toutputs: any\n\t): Observable<any> {\n\t\tconst path =\n\t\t\t'evaluation/application/' +\n\t\t\tapplicationId +\n\t\t\t'/task/' +\n\t\t\ttaskId +\n\t\t\t'/evaluator/' +\n\t\t\tevaluatorId +\n\t\t\t'/template/' +\n\t\t\ttemplateId +\n\t\t\t'/isComplete/' +\n\t\t\tisComplete +\n\t\t\t'/isAllTemplatesComplete/' +\n\t\t\tisAllTemplatesComplete;\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + path,\n\t\t\toutputs,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** The first communication with VALPRO, this return the URL where PLIC redirect */\n\tgradingJob(sendInfoValpro: any): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.valpro + 'grading-job/',\n\t\t\tsendInfoValpro,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** Synchronous method for program grade updating */\n\tupdateProgramGrade(\n\t\tprogramGrade: ProgramGrade,\n\t\tneedToEditComment: boolean,\n\t\tcolor: number,\n\t\tneedToEditColor: boolean,\n\t\tsendToEvaluationQueue: boolean\n\t): Observable<any> {\n\t\treturn this.httpClient.put(\n\t\t\tthis.environment.host.backend.backoffice + 'evaluation/updateProgramGrade',\n\t\t\tprogramGrade,\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('needToEditComment', String(needToEditComment))\n\t\t\t\t\t.set('color', String(color))\n\t\t\t\t\t.set('needToEditColor', String(needToEditColor))\n\t\t\t\t\t.set('sendToEvaluationQueue', String(sendToEvaluationQueue))\n\t\t\t}\n\t\t);\n\t}\n\n\tgetTemplateOutputsByReviewer(\n\t\tapplicationId: string,\n\t\ttaskId: number,\n\t\treviewer: string,\n\t\ttemplateId: number\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'evaluation/getTemplateOutputsByReviewer',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', applicationId)\n\t\t\t\t\t.set('taskId', taskId.toString())\n\t\t\t\t\t.set('reviewer', reviewer)\n\t\t\t\t\t.set('templateId', templateId.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tgetTemplatesByReviewer(\n\t\tapplicationId: string,\n\t\ttaskId: number,\n\t\treviewer: string\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'evaluation/getTemplatesByReviewer',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', applicationId)\n\t\t\t\t\t.set('taskId', taskId.toString())\n\t\t\t\t\t.set('reviewer', reviewer)\n\t\t\t}\n\t\t);\n\t}\n\n\tgetValproTemplateOutputs(applicationId: string, taskId: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'evaluation/getValproTemplateOutputs',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', applicationId)\n\t\t\t\t\t.set('taskId', taskId.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tgetValproTemplateOutputsByNumberAndPromCode(\n\t\tpromCodigo: number,\n\t\tnumberApplication: number,\n\t\ttaskId: number\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'evaluation/getValproTemplateOutputsByNumberAndPromCode',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t.set('numberApplication', numberApplication.toString())\n\t\t\t\t\t.set('taskId', taskId.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tcheckValproTaskExistsIn(listTasksId: number[]): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'evaluation/checkValproTaskExists',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('listTasksId', listTasksId.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tchangeStateMassiveToComplete(listApplicationsId: string[], taskId: number) {\n\t\treturn this.httpClient.put(\n\t\t\tthis.environment.host.backend.backoffice + 'evaluation/changeStateMassiveToComplete',\n\t\t\tlistApplicationsId,\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('taskId', taskId.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tgetEssayOutputsByReviewer(essayMetadata): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.backoffice}evaluation/getEssayOutputsByReviewer`,\n\t\t\tessayMetadata\n\t\t);\n\t}\n\n\tsaveEssayOutputsByReviewer(essayScores): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.backoffice}evaluation/saveEssayOutputsByReviewer`,\n\t\t\tessayScores\n\t\t);\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport * as FileSaver from 'file-saver';\nimport * as XLSX from 'xlsx';\n\nconst EXCEL_TYPE =\n\t'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\nconst EXCEL_EXTENSION = '.xlsx';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class ExportExcelService {\n\tconstructor() {}\n\n\tpublic exportAsExcelFile(json: any[], excelFileName: string): void {\n\t\tconst worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);\n\t\t// console.log('worksheet', worksheet);\n\t\tconst workbook: XLSX.WorkBook = { Sheets: { data: worksheet }, SheetNames: ['data'] };\n\t\tconst excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\n\t\t//const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'buffer' });\n\t\tthis.saveAsExcelFile(excelBuffer, excelFileName);\n\t}\n\n\tprivate saveAsExcelFile(buffer: any, fileName: string): void {\n\t\tconst data: Blob = new Blob([buffer], {\n\t\t\ttype: EXCEL_TYPE\n\t\t});\n\t\tFileSaver.saveAs(data, fileName + '_export_' + new Date().getTime() + EXCEL_EXTENSION);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { DataTableParameters } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class GlobalShowTaskService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/**\n\t * save multiple records\n\t * @param listData\n\t */\n\tgetByDataTablesParameters(dataTableParameters: DataTableParameters) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'global-show-task/getByDataTablesParameters',\n\t\t\tdataTableParameters,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It returns the user by id */\n\tgetEvaluatorByPromCodigo(promCodigo: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'global-show-task/getEvaluatorByPromCodigo',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCodigo) }\n\t\t);\n\t}\n\n\tpublic getByReviwerAndTemplateWithDataTablesParameters(dataTableParameters: DataTableParameters): Observable<any>{\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'global-show-task/getByReviwerAndTemplateWithDataTablesParameters',\n\t\t\tdataTableParameters,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { Application } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class ImportDataService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** Saves an application to back-end */\n\tsave(application: Application): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'importData/saveApplication',\n\t\t\tapplication,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { InteractionApplicationUser } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class InteractionApplicationUserService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It returns the interactionApplicationUser by id */\n\tgetByApplicationId(applicationId: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'interactionApplicationUser/getByApplicationId',\n\t\t\t{ params: new HttpParams().set('applicationId', applicationId) }\n\t\t);\n\t}\n\n\t/** It returns the interactionApplicationUser by prom code */\n\tgetByPromCode(promCode: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'interactionApplicationUser/getByPromCode',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCode.toString()) }\n\t\t);\n\t}\n\n\t/** It saves a interactionApplicationUser */\n\tsave(InteractionApplicationUser: InteractionApplicationUser): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'interactionApplicationUser/save',\n\t\t\tInteractionApplicationUser,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It returns the interactionApplicationUser by id */\n\tgetByApplicationIdAndPliCnfStatusFlowId(\n\t\tapplicationId: string,\n\t\tpliCnfStatusFlowId: number\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'interactionApplicationUser/getByApplicationIdAndPliCnfStatusFlowId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', applicationId)\n\t\t\t\t\t.set('pliCnfStatusFlowId', pliCnfStatusFlowId.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It returns the interactionApplicationUser by id */\n\tgetByApplicationIdAndPliCnfInteractionId(\n\t\tapplicationId: string,\n\t\tpliCnfInteractionId: number\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'interactionApplicationUser/getByApplicationIdAndPliCnfInteractionId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', applicationId)\n\t\t\t\t\t.set('pliCnfInteractionId', pliCnfInteractionId.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It returns the list of interaction app user by promCodigo and list of pliCnfInteractionId */\n\tgetByPromCodigoAndPliCnfInteractionIdIn(\n\t\tpromCodigo: number,\n\t\tpliCnfInteractionId: number[]\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'interactionApplicationUser/getByPromCodigoAndPliCnfInteractionIdIn',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t.set('pliCnfInteractionId', pliCnfInteractionId.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It returns the list of interaction app user by promCodigo and pliCnfInteractionId */\n\tgetByPromCodigoAndInteractionStaticId(\n\t\tpromCodigo: number,\n\t\tinteractionStaticId: number\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'interactionApplicationUser/getByPromCodigoAndInteractionStaticId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t.set('interactionStaticId', interactionStaticId.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It returns the list of interaction app user by applicationId and pliCnfInteractionId */\n\tgetByApplicationIdAndInteractionStaticId(\n\t\tapplicationId: string,\n\t\tinteractionStaticId: number\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'interactionApplicationUser/getByApplicationIdAndInteractionStaticId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', applicationId.toString())\n\t\t\t\t\t.set('interactionStaticId', interactionStaticId.toString())\n\t\t\t}\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { ConfigurationDocumentService } from './configuration-document.service';\nimport { HEADER_JSON, KeysAssignation, UtilString, DataFormApplication } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class KeysAssignationService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It returns the list of keys assignation by documentary type and prom code */\n\tgetByTdlCodigoAndPromCodigo(tdlCodigo: number, promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'keys-assignation/getByTdlCodigoAndPromCodigo',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('tdlCodigo', tdlCodigo.toString())\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It returns the list of keys assignation by prom code */\n\tgetByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'keys-assignation/getByPromCodigo',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCodigo.toString()) }\n\t\t);\n\t}\n\n\t/** It saves the KeysAssignation object */\n\tsave(keysAssignation: KeysAssignation): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'keys-assignation/save',\n\t\t\tkeysAssignation,\n\t\t\tHEADER_JSON\n\t\t);\n\t}\n\n\t/** It saves a documental type */\n\tdelete(keysAssignation: KeysAssignation): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'keys-assignation/delete',\n\t\t\tkeysAssignation,\n\t\t\tHEADER_JSON\n\t\t);\n\t}\n\n\t/** Create the HTML of the keys of the keysAssignation object */\n\tgetTemplateFromKeyAssignation(keysAssignation: KeysAssignation) {\n\t\tlet template = '';\n\t\tlet lKeysValues: any = [];\n\t\tlet lKeysDocType = keysAssignation.keys.split(',');\n\t\tlet lValuesDocType = keysAssignation.values.split('<br/>');\n\t\tfor (let keyDoc in lKeysDocType) {\n\t\t\tlet keysDocType = lKeysDocType[keyDoc];\n\t\t\tlet tokenDocumentary = ConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY.find(\n\t\t\t\tfunction (tokenDoc) {\n\t\t\t\t\treturn tokenDoc.key === keysDocType;\n\t\t\t\t}\n\t\t\t);\n\t\t\tlet valuesDocType = null;\n\t\t\t// Only if the source don't know, search in tokens. If change need to change when search the result of tokens translate\n\t\t\tif (tokenDocumentary && !tokenDocumentary.knowSource) {\n\t\t\t\tvaluesDocType = lValuesDocType[keyDoc];\n\t\t\t\ttemplate += '<br>' + keysDocType + ':' + valuesDocType;\n\t\t\t}\n\t\t\tlKeysValues.push({\n\t\t\t\tkey: keysDocType,\n\t\t\t\tvalue: valuesDocType,\n\t\t\t\tknowSource: tokenDocumentary.knowSource\n\t\t\t});\n\t\t}\n\t\ttemplate = keysAssignation.tdlCodigo + '<br>' + template.substring(4);\n\t\treturn {\n\t\t\tlKeysValues: lKeysValues,\n\t\t\tkeysAssignation: keysAssignation,\n\t\t\ttemplate: template\n\t\t};\n\t}\n\n\t/**\n\t *\n\t * @param tokenDocumentaryKey The key of the documentary key token\n\t * @param infoDocument Object with info of the document\n\t */\n\tgetValueKnowSource(\n\t\tdataFormApplication: DataFormApplication,\n\t\ttokenDocumentaryKey: string,\n\t\tinfoDocument: any\n\t) {\n\t\tif (!UtilString.isValid(tokenDocumentaryKey)) {\n\t\t\treturn '';\n\t\t}\n\t\tif (\n\t\t\ttokenDocumentaryKey ===\n\t\t\tConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY_KEY_TIPO_DOCUMENTAL\n\t\t) {\n\t\t\treturn infoDocument.documentaryType.tdlTipoDocumentalOnbase;\n\t\t} else if (\n\t\t\ttokenDocumentaryKey ===\n\t\t\tConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY_KEY_ESPACIO\n\t\t) {\n\t\t\treturn '';\n\t\t} else if (\n\t\t\ttokenDocumentaryKey ===\n\t\t\tConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY_KEY_ANO_PROMOCION\n\t\t) {\n\t\t\treturn dataFormApplication.pliPromocion.promAnio;\n\t\t} else if (\n\t\t\ttokenDocumentaryKey ===\n\t\t\tConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY_KEY_PROMOCION\n\t\t) {\n\t\t\treturn dataFormApplication.pliPromocion.promNombreCorto;\n\t\t} else if (\n\t\t\ttokenDocumentaryKey ===\n\t\t\tConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY_KEY_PROGRAMA\n\t\t) {\n\t\t\treturn dataFormApplication.pliPromocion.pliPrograma.progNombreCorto;\n\t\t} else if (\n\t\t\ttokenDocumentaryKey ===\n\t\t\tConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY_KEY_PATROCINADOR\n\t\t) {\n\t\t\treturn dataFormApplication.pliPromocion.pliPrograma.pliPatrocinador.patNombreCorto;\n\t\t} else if (\n\t\t\ttokenDocumentaryKey ===\n\t\t\t\tConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY_KEY_FECHA_ACTUAL ||\n\t\t\ttokenDocumentaryKey ===\n\t\t\t\tConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY_KEY_RUTA_DOCUMENTO ||\n\t\t\ttokenDocumentaryKey ===\n\t\t\t\tConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY_KEY_CONSECUTIVO ||\n\t\t\ttokenDocumentaryKey ===\n\t\t\t\tConfigurationDocumentService.STATIC_TOKEN_DOCUMENTARY_KEY_TIPO_ARCHIVO\n\t\t) {\n\t\t\treturn tokenDocumentaryKey;\n\t\t}\n\t}\n\n\t/** It clones the KeysAssignation via PPP */\n\tsaveClonning(promCodigoInit: number, promCodigoFinal: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'keys-assignation/saveClonning',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigoInit', promCodigoInit.toString())\n\t\t\t\t\t.set('promCodigoFinal', promCodigoFinal.toString())\n\t\t\t}\n\t\t);\n\t}\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { AuthenticationService } from './authentication.service';\nimport { Observable } from 'rxjs';\nimport { PliCnfLetterCampaing } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class LetterCampaingService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(\n\t\t@Inject('environment') private environment,\n\t\tprivate httpClient: HttpClient,\n\t\tprivate authService: AuthenticationService\n\t) {}\n\n\t/** It saves a letter-template */\n\tsave(letterCampaing: PliCnfLetterCampaing): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'letter-campaing',\n\t\t\tletterCampaing,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It returns the letter campaign types */\n\tgetTypes(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'letter-campaing/getTypes'\n\t\t);\n\t}\n\n\t/** It returns the letter campaign by promCodigo */\n\tfindAllByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'letter-campaing/findAllByPromCodigo',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCodigo.toString()) }\n\t\t);\n\t}\n\n\t/*It returns a letter campaign by Id*/\n\tgetById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'letter-campaing/getById',\n\t\t\t{ params: new HttpParams().set('id', id.toString()) }\n\t\t);\n\t}\n\n\tgetLetterCampaignRulesByIdCampaign(idCampaign: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'letter-campaing/getLetterCampaignRulesByIdCampaign',\n\t\t\t{ params: new HttpParams().set('idCampaign', idCampaign.toString()) }\n\t\t);\n\t}\n\n\t/** It deletes a form by id */\n\tdelete(id): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.backoffice + 'letter-campaing',\n\t\t\t{ params: new HttpParams().set('id', id) }\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class LogService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/** It returns all list of log */\n\tgetAll(): Observable<any> {\n\t\treturn this.httpClient.get(this.environment.host.backend.backoffice + 'log/getAll');\n\t}\n\n\t/** It returns all list of log by promCodigo */\n\tgetByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'log/getByPromCodigo',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('promCodigo', promCodigo.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It returns all list of log by promCodigo */\n\tgetByPromCodigoAndProNombre(promCodigo: number, proNombre: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'log/getByPromCodigoAndProNombre',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t.set('proNombre', proNombre.toString())\n\t\t\t}\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PageService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It returns the list of pages */\n\tgetAll(): Observable<any> {\n\t\treturn this.httpClient.get(this.environment.host.backend.configuration + 'page/getAll');\n\t}\n\n\t/** It returns the list of pages sections */\n\tgetAllSection(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'page/getAllSection'\n\t\t);\n\t}\n\n\t/** It returns list of page permission ordered */\n\tgetAllPagePermissionOrder(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'page/getAllPagePermissionOrder'\n\t\t);\n\t}\n\n\t/** Get name page */\n\tgetPageNameByPageKey(pageKey: String): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'page/getPageNameByPageKey',\n\t\t\t{ params: new HttpParams().set('pageKey', pageKey.toString()) }\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfPageSubProcessService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It returns the list of pages */\n\tgetAll(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'PliCnfPageSubProcess/getAll'\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PermissionService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It returns the list of permissions */\n\tgetAll(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'permission/getAll'\n\t\t);\n\t}\n\n\t/** It returns the list of type permissions */\n\tgetAllTypePermission(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'permission/getAllTypePermission'\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliCnfAppCardFilter } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfAppCardFilterService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It returns all dimension */\n\tgetAllCardFilterDimension(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfCardFilterDimension/getAllCardFilterDimension'\n\t\t);\n\t}\n\n\t/** It returns all Card filter sets */\n\tgetAllAppCardFilter(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfAppCardFilter/getAllAppCardFilter'\n\t\t);\n\t}\n\n\t/** It saves a entity */\n\tsave(pliCnfAppCardFilter: PliCnfAppCardFilter): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfAppCardFilter/save',\n\t\t\tpliCnfAppCardFilter,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It deletes a entity by id */\n\tdelete(id): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfAppCardFilter/delete',\n\t\t\t{ params: new HttpParams().set('id', id) }\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliCnfCommitteeVisualizationMode } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfCommitteeVisualizationModeService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tpublic getByPromCode(promCode: number): Observable<any> {\n\t\tlet httpParams = new HttpParams();\n\t\thttpParams = httpParams.set('promCode', String(promCode));\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCommitteeVisualizationMode/getByPromCode`,\n\t\t\t{ params: (httpParams = httpParams) }\n\t\t);\n\t}\n\n\tpublic getByCommittee(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCommitteeVisualizationMode/getByCommittee?idCommittee=${id}`\n\t\t);\n\t}\n\n\tpublic save(\n\t\tpliCnfCommitteeVisualizationMode: PliCnfCommitteeVisualizationMode\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfCommitteeVisualizationMode/save',\n\t\t\tpliCnfCommitteeVisualizationMode\n\t\t);\n\t}\n\n\tpublic getById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCommitteeVisualizationMode/getById?id=${id}`\n\t\t);\n\t}\n\n\tpublic delete(id: number): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCommitteeVisualizationMode/delete?id=${id}`\n\t\t);\n\t}\n\n\tpublic getConfigCloningCVisualization(\n\t\tlVisualCommitte: PliCnfCommitteeVisualizationMode[]\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCommitteeVisualizationMode/getConfigCloningCVisualization`,\n\t\t\tlVisualCommitte\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliCnfEvaluationTemplate } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfEvaluationTemplateService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/** Returns a PliCnfEvaluationTemplate by id */\n\tgetById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'evaluationtemplate/getById',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('id', id.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** Returns a list of PliCnfEvaluationTemplate by ids\n\t * @param ids id per template\n\t */\n\tgetByIds(ids: number[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'evaluationtemplate/getByIdIn',\n\t\t\tids\n\t\t);\n\t}\n\n\t/** Returns a list of PliCnfEvaluationTemplate by promCode */\n\tgetAllByPromCode(promCode: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'evaluationtemplate/getAllByPromCode',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('promCode', promCode.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/**\n\t * Returns a list of PliCnfEvaluationTemplate by promCode and active\n\t * @param promCode\n\t * @param active define if get templates actives or inactives\n\t */\n\tgetAllByPromCodeAndActve(promCode: number, active: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'evaluationtemplate/getAllByPromCodeAndActive',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('promCode', promCode.toString()).set('active', active)\n\t\t\t}\n\t\t);\n\t}\n\n\t/**\n\t * Returns a valpro PliCnfEvaluationTemplate by promCode\n\t * @param promCode\n\t */\n\tgetByPromCodeAndisValpro(promCode: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'evaluationtemplate/getByPromCodeAndIsValpro',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('promCode', promCode.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** Saves a template with its associated document and form records */\n\tsave(pliCnfEvaluationTemplate: PliCnfEvaluationTemplate): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'evaluationtemplate/save',\n\t\t\tpliCnfEvaluationTemplate,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** Deletes a template with its associated document and form records,\n\t * unless there is another configuration using the specified evaluation template */\n\tdelete(id: number): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + 'evaluationtemplate/delete',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('id', id.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** Returns a list of mongo forms by promCode */\n\tgetMongoFormByEvaluationTemplateId(evaluationTemplateId: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'evaluationtemplate/mongoForm/getByEvaluationTemplateId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set(\n\t\t\t\t\t'evaluationTemplateId',\n\t\t\t\t\tevaluationTemplateId.toString()\n\t\t\t\t)\n\t\t\t}\n\t\t);\n\t}\n\n\t/** Returns a list of mongo forms by promCode */\n\tgetAllMongoFormsByPromCode(promCode: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'evaluationtemplate/mongoForm/getAllByPromCode',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('promCode', promCode.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** Saves a template with its associated document and form records */\n\tsaveMongoForm(mongoForm: any): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'evaluationtemplate/mongoForm/save',\n\t\t\tmongoForm,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** Saves a template array with its associated document and form records */\n\tsaveAll(lEvaluationTemplate: PliCnfEvaluationTemplate[], promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'evaluationtemplate/saveAll',\n\t\t\t{ lEvaluationTemplate, promCodigo },\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliCnfHeader } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfHeaderService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It returns header by promCodigo */\n\tgetByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pli-cnf-header/getByPromCodigo',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCodigo.toString()) }\n\t\t);\n\t}\n\n\t/** It saves a entity */\n\tsave(pliCnfHeader: PliCnfHeader): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pli-cnf-header/save',\n\t\t\tpliCnfHeader,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It clones the headers via PPP, old and new */\n\tsaveClonning(promCodigoInit: number, promCodigoFinal: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pli-cnf-header/saveClonning',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigoInit', promCodigoInit.toString())\n\t\t\t\t\t.set('promCodigoFinal', promCodigoFinal.toString())\n\t\t\t}\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliCnfIndicator } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfIndicatorService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** get by username */\n\tpublic getByUsername(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfIndicator/getByUsername'\n\t\t);\n\t}\n\n\t/** save */\n\tpublic save(pliCnfIndicator: PliCnfIndicator): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfIndicator/save',\n\t\t\tpliCnfIndicator,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** save multiple */\n\tsaveMultiple(listPliCnfIndicator: PliCnfIndicator[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfIndicator/saveMultiple',\n\t\t\tlistPliCnfIndicator,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** delete a record */\n\tpublic delete(id: number): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfIndicator/delete',\n\t\t\t{ params: new HttpParams().set('id', id.toString()) }\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliCnfInteraction } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfInteractionService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It returns the list by prom codigo */\n\tgetByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfInteraction/getByPromCodigo',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCodigo.toString()) }\n\t\t);\n\t}\n\n\t/** It saves a entity */\n\tsave(pliCnfInteraction: PliCnfInteraction): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfInteraction/save',\n\t\t\tpliCnfInteraction,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It returns the entity */\n\tgetById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfInteraction/getById',\n\t\t\t{ params: new HttpParams().set('id', id.toString()) }\n\t\t);\n\t}\n\n\t/** It returns the list */\n\tgetAllTypeInteraction(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfInteraction/getAllTypeInteraction'\n\t\t);\n\t}\n\n\t/** It returns the list */\n\tgetAllTypeStaticInteraction(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfInteraction/getAllTypeStaticInteraction'\n\t\t);\n\t}\n\n\tgetUnUsedStaticInteractions(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfInteraction/getUnUsedStaticInteractions',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('promCodigo', promCodigo.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It returns the list of interaction by promcodigo and type statci interaction id */\n\tgetByPromCodigoAndTypeStaticInteractionId(\n\t\tpromCodigo: number,\n\t\tIdTypeInteraction: number\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfInteraction/getByPromCodigoAndTypeStaticInteractionId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t.set('IdTypeInteraction', IdTypeInteraction.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It returns the list of interaction by promcodigo and type statci interaction id */\n\tgetByPromCodigoAndTypeStaticInteractionIdAndCommitteeId(\n\t\tpromCodigo: number,\n\t\tIdTypeInteraction: number,\n\t\tcommitteeId: number\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfInteraction/getByPromCodigoAndTypeStaticInteractionIdAndCommitteeId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t.set('IdTypeInteraction', IdTypeInteraction.toString())\n\t\t\t\t\t.set('committeeId', committeeId.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It returns the list of interaction by promcodigo and no status flow */\n\tgetByPromCodigoAndStatusFlowNull(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfInteraction/getByPromCodigoAndStatusFlowNull',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCodigo.toString()) }\n\t\t);\n\t}\n\n\t/** It saves a entity */\n\tsaveAll(pliCnfInteraction: PliCnfInteraction[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfInteraction/saveAll',\n\t\t\tpliCnfInteraction,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliViewConfiguration } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfLookAndFeelService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tgetById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.plis + 'config/lookAndFeel/getById',\n\t\t\t{ params: new HttpParams().set('idPatrocinador', id.toString()) }\n\t\t);\n\t}\n\n\tsave(pliViewConfiguration: PliViewConfiguration): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.plis + 'config/lookAndFeel/save',\n\t\t\tpliViewConfiguration\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { PliCnfProfileUser } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfProfileUserService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It returns the user by id */\n\tgetByUserLogin(userLogin: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfProfileUser/getByUserLogin',\n\t\t\t{ params: new HttpParams().set('userLogin', userLogin) }\n\t\t);\n\t}\n\n\t/** It saves a profile */\n\tsave(listProfileUser: PliCnfProfileUser[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfProfileUser/save',\n\t\t\tlistProfileUser,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It saves the profile to the user accorfint to patCodigo */\n\tsaveProfileByPatrocinador(patCodigo: number): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfProfileUser/saveProfileByPatrocinador',\n\t\t\t{ patCodigo: patCodigo },\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It deletes a form by id */\n\tdeleteById(id): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfProfileUser/deleteById',\n\t\t\t{ params: new HttpParams().set('id', id) }\n\t\t);\n\t}\n\n\t/** It deletes a form by id */\n\tdeleteByListId(listProfileUserId): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfProfileUser/deleteByListId',\n\t\t\t{ params: new HttpParams().set('listProfileUserId', listProfileUserId) }\n\t\t);\n\t}\n\n\t/** It deletes a form by userId, patCodigo, idProfile */\n\tdeleteByUserIdAndPatCodigoAndProfileId(listProfileUser: PliCnfProfileUser[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfProfileUser/deleteByUserIdAndPatCodigoAndProfileId',\n\t\t\tlistProfileUser,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliCnfScenario } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfScenarioService {\n\tservice_path = 'pli-cnf-scenario';\n\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/** Returns a PliCnfScenario by id */\n\tgetById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + this.service_path + '/' + id.toString()\n\t\t);\n\t}\n\n\t/** Returns a list of PliCnfScenario by promCode */\n\tgetAllByPromCode(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\tthis.service_path +\n\t\t\t\t'/prom-codigo/' +\n\t\t\t\tpromCodigo\n\t\t);\n\t}\n\n\t/** Saves a PliCnfScenario */\n\tsave(pliCnfScenario: PliCnfScenario): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + this.service_path,\n\t\t\tpliCnfScenario,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** Deletes a PliCnfScenario with its associated task records (except tasks themselves)  */\n\tdelete(id: number): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + this.service_path + '/' + id.toString()\n\t\t);\n\t}\n\n\t/** Saves a PliCnfScenario array */\n\tsaveAll(pliCnfScenario: PliCnfScenario[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + this.service_path + '/saveAll',\n\t\t\tpliCnfScenario,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliCnfSegmentation, PliCnfSegmentationCategory, PliPromocion } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfSegmentationService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It returns all PliCnfSegmentation*/\n\tgetAll(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfSegmentation/getAll'\n\t\t);\n\t}\n\n\t/** It returns all PliCnfSegmentation*/\n\tgetAllByPatCodigo(patCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfSegmentation/getAllByPatCodigo',\n\t\t\t{ params: new HttpParams().set('patCodigo', patCodigo.toString()) }\n\t\t);\n\t}\n\n\t/** It returns PliCnfSegmentation by key field*/\n\tgetByKey(key: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfSegmentation/getByKey',\n\t\t\t{ params: new HttpParams().set('key', key) }\n\t\t);\n\t}\n\n\t/** It saves a entity */\n\tsave(pliCnfSegmentation: PliCnfSegmentation): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfSegmentation/save',\n\t\t\tpliCnfSegmentation,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It saves a list of entities */\n\tsaveAll(lPliCnfSegmentation: PliCnfSegmentation[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfSegmentation/saveAll',\n\t\t\tlPliCnfSegmentation,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It saves a list of entities */\n\tconfigCloningSegmentation(\n\t\tmapForms: any,\n\t\tmapBudgets: any,\n\t\tmapTask: any,\n\t\tpromCodigoOld: number,\n\t\tpromocion: PliPromocion\n\t): Observable<any> {\n\t\tlet request = {\n\t\t\tmapForms,\n\t\t\tmapBudgets,\n\t\t\tmapTask,\n\t\t\toldPPP: promCodigoOld,\n\t\t\tpromocion\n\t\t};\n\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfSegmentation/configCloningSegmentation',\n\t\t\trequest,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It returns all PliCnfTypeInput*/\n\tgetAllTypeInput(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfTypeInput/getAll'\n\t\t);\n\t}\n\n\t/** It returns all PliCnfSegmentationCategory*/\n\tgetAllSegmentationCategory(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfSegmentation/category/getAll'\n\t\t);\n\t}\n\n\t/** It saves a entity of category */\n\tsaveCategory(pliCnfSegmentationCategory: PliCnfSegmentationCategory): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfSegmentation/category/save',\n\t\t\tpliCnfSegmentationCategory,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It returns a list of segmentation tasks with valpro values or best scenario conditions ,according to list of prom codigo */\n\tgetSegTasksByValproValuesAndBestSegmentation(listPromCod: Array<number>): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfSegmentation/task/getValproValuesAndBestSegmentationTasks',\n\t\t\t{ params: new HttpParams().set('listPromCodigo', listPromCod.toString()) }\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { HEADER_JSON, PliCnfStatusFlowInteraction } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfStatusFlowInteractionService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/** It returns all list of status by prom code */\n\tgetByStatusFlowId(statusFlowId: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfStatusFlowInteraction/getByStatusFlowId',\n\t\t\t{ params: new HttpParams().set('statusFlowId', statusFlowId.toString()) }\n\t\t);\n\t}\n\n\t/** It returns all list of status by prom code */\n\tgetByInteractionPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfStatusFlowInteraction/getByInteractionPromCodigo',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCodigo.toString()) }\n\t\t);\n\t}\n\n\tsave(lPliCnfStatusFlowInteraction: PliCnfStatusFlowInteraction[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfStatusFlowInteraction/save',\n\t\t\tlPliCnfStatusFlowInteraction,\n\t\t\tHEADER_JSON\n\t\t);\n\t}\n\n\t/** It delete all status flow interaction by ids */\n\tdeleteByStatusFlowIdAndInteractionIdAndPositive(\n\t\tstatusFlowId,\n\t\tinteractionId,\n\t\tpositive\n\t): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfStatusFlowInteraction/deleteByStatusFlowIdAndInteractionIdAndPositive',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('statusFlowId', statusFlowId)\n\t\t\t\t\t.set('interactionId', interactionId)\n\t\t\t\t\t.set('positive', positive)\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It delete a status flow interaction by list id */\n\tdeleteByListId(lPliCnfStatusFlowInteraction: PliCnfStatusFlowInteraction[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfStatusFlowInteraction/deleteByListId',\n\t\t\tlPliCnfStatusFlowInteraction,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It delete a status flow interaction by id */\n\tdeleteById(statusFlowInteractionId): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfStatusFlowInteraction/deleteById',\n\t\t\t{ params: new HttpParams().set('statusFlowInteractionId', statusFlowInteractionId) }\n\t\t);\n\t}\n\n\t/** It returns all list of status by prom code, status id and list of profile id */\n\tgetByPromCodigoAndStatusIdAndProfileIdIn(\n\t\tpliCnfStatusFlowInteraction: PliCnfStatusFlowInteraction\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfStatusFlowInteraction/getByPromCodigoAndStatusIdAndProfileIdIn',\n\t\t\tpliCnfStatusFlowInteraction,\n\t\t\tHEADER_JSON\n\t\t);\n\t}\n\n\t/** It returns all list of status by prom code, status id and list of profile id */\n\tgetByStatusStarIdAndInteractionId(\n\t\tstatusStartId: number,\n\t\tinteractionId: number,\n\t\tpositive: boolean\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfStatusFlowInteraction/getByStatusStarIdAndInteractionId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('statusStartId', statusStartId.toString())\n\t\t\t\t\t.set('interactionId', interactionId.toString())\n\t\t\t\t\t.set('positive', positive.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tsaveAll(lPliCnfStatusFlowInteraction: PliCnfStatusFlowInteraction[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfStatusFlowInteraction/saveAll',\n\t\t\tlPliCnfStatusFlowInteraction,\n\t\t\tHEADER_JSON\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { AuthenticationService } from './authentication.service';\nimport { HEADER_JSON, PliCnfStatusFlow, PliCnfStatusEmail } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfStatusFlowService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(\n\t\t@Inject('environment') private environment: any,\n\t\tprivate httpClient: HttpClient,\n\t\tprivate authService: AuthenticationService\n\t) {}\n\n\t/** It returns all list of status by prom code */\n\tgetById(statusFlowId: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfStatusFlow/getById',\n\t\t\t{ params: new HttpParams().set('statusFlowId', statusFlowId.toString()) }\n\t\t);\n\t}\n\n\t/** It returns all list of status by prom code */\n\tgetAllByPromCode(promCode: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfStatusFlow/getAllByPromCode',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCode.toString()) }\n\t\t);\n\t}\n\n\t/** It returns all list of status by prom code */\n\tgetAllActiveByPromCode(promCode: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfStatusFlow/getAllActiveByPromCode',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCode.toString()) }\n\t\t);\n\t}\n\n\tgetMailConfiguration(statusFlow: number): Observable<PliCnfStatusEmail> {\n\t\treturn this.httpClient.get<PliCnfStatusEmail>(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfStatusFlowMailing/getByStatusFlow/${statusFlow}`\n\t\t);\n\t}\n\n\tsaveMailConfiguration(conf: PliCnfStatusEmail): Observable<PliCnfStatusEmail> {\n\t\treturn this.httpClient.post<PliCnfStatusEmail>(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfStatusFlowMailing`,\n\t\t\tconf\n\t\t);\n\t}\n\n\tsave(cnfStatusFlow: PliCnfStatusFlow): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfStatusFlow/save',\n\t\t\tcnfStatusFlow,\n\t\t\tHEADER_JSON\n\t\t);\n\t}\n\n\tsaveAll(cnfStatusFlow: PliCnfStatusFlow[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfStatusFlow/saveAll',\n\t\t\tcnfStatusFlow,\n\t\t\tHEADER_JSON\n\t\t);\n\t}\n\n  getAllActiveByStatusEndId(statusEnd: number): Observable<any> {\n    return this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfStatusFlow/getAllActiveByStatusEnd',\n\t\t\t{ params: new HttpParams().set('statusEndId', statusEnd.toString()) }\n\t\t);\n  }\n\n  sendEmail(statusFlowId: number, listApplicationId: Array<String>) {\n    return this.httpClient.post(\n      this.environment.host.backend.configuration + 'pliCnfStatusFlowMailing/sendEmail/' + statusFlowId,\n\t\t\tlistApplicationId,\n\t\t\tHEADER_JSON\n    );\n  }\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliCnfSupportDocument } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfSupportDocumentService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tprivate urlBase = this.environment.host.backend.configuration;\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It returns all by prom codigo */\n\tgetByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(this.urlBase + 'pliCnfSupportDocument/getByPromCodigo', {\n\t\t\tparams: new HttpParams().set('promCodigo', promCodigo.toString())\n\t\t});\n\t}\n\n\t/** It returns all actives by prom codigo */\n\tgetActivesByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.urlBase + 'pliCnfSupportDocument/getByPromCodigoAndActive',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCodigo.toString()) }\n\t\t);\n\t}\n\n\t/** It saves a entity */\n\tsave(pliCnfSupportDocument: PliCnfSupportDocument): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.urlBase + 'pliCnfSupportDocument/save',\n\t\t\tpliCnfSupportDocument,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It deletes a entity by id */\n\tdelete(id): Observable<any> {\n\t\treturn this.httpClient.delete(this.urlBase + 'pliCnfSupportDocument/delete', {\n\t\t\tparams: new HttpParams().set('id', id)\n\t\t});\n\t}\n\n\tgetConfigClonedSupportDocument(oldPPP: number, newPPP: number) {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.urlBase}pliCnfSupportDocument/getConfigClonedSupportDocument`,\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('oldPPP', oldPPP.toString())\n\t\t\t\t\t.set('newPPP', newPPP.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tfindTagsByApplications(applicationId: string) {\n\t\treturn this.httpClient.get(this.urlBase + 'pliCnfSupportDocument/getTagsByApplication', {\n\t\t\tparams: new HttpParams().set('applicationId', applicationId)\n\t\t});\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliCnfText } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfTextService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It returns by prom codigo and id type text*/\n\tgetByPromCodigoAndidTypeText(promCodigo: number, idTypeText: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfText/getByPromCodigoAndidTypeText',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t.set('idTypeText', idTypeText.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It returns by prom codigo and id type text*/\n\tgetByPromCodigoAndidTypeTextIn(promCodigo: number, idTypeTextList: number[]): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfText/getByPromCodigoAndidTypeTextIn',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t.set('idTypeTextList', idTypeTextList.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tgetByPromCodigoInAndidTypeText(promCodigos: number[], idTypeText: number): Observable<any> {\n\t\tconst params = new HttpParams()\n\t\t\t.set('promCodigos', promCodigos.toString())\n\t\t\t.set('idTypeText', idTypeText.toString());\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfText/getByPromCodigoInAndidTypeText`,\n\t\t\t{ params }\n\t\t);\n\t}\n\n\tgetByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfText/getByPromCodigo',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('promCodigo', promCodigo.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It saves a entity */\n\tsave(pliCnfText: PliCnfText): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfText/save',\n\t\t\tpliCnfText,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tgetConfigCloningText(oldPPP: number, newPPP: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfText/getConfigCloningText',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('oldPPP', oldPPP.toString())\n\t\t\t\t\t.set('newPPP', newPPP.toString())\n\t\t\t}\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliCnfUserWorkspace } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfUserWorkspaceService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It returns all by userName */\n\tgetByUserName(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfUserWorkspace/getByUserName'\n\t\t);\n\t}\n\n\t/** It saves a entity */\n\tsave(pliCnfUserWorkspace: PliCnfUserWorkspace): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfUserWorkspace/save',\n\t\t\tpliCnfUserWorkspace,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It deletes a entity by id */\n\tdelete(id): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + 'PliCnfUserWorkspace/delete',\n\t\t\t{ params: new HttpParams().set('id', id) }\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliCnfValproKeys } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfValproKeysService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It returns the list of configuration by prom codigo */\n\tgetByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfValProKeys/getByPromCodigo',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCodigo.toString()) }\n\t\t);\n\t}\n\n\t/** It saves the configuration */\n\tsave(pliCnfValproKeys: PliCnfValproKeys): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfValProKeys/save',\n\t\t\tpliCnfValproKeys,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\t/** It saves an array of valpro keys*/\n\tsaveAll(pliCnfValproKeys: PliCnfValproKeys[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfValProKeys/saveAll',\n\t\t\tpliCnfValproKeys,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliCnfWorkspaceSegmentation } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfWorkspaceSegmentationService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It saves a entity */\n\tsave(pliCnfWorkspaceSegmentation: PliCnfWorkspaceSegmentation): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfWorkspaceSegmentation/save',\n\t\t\tpliCnfWorkspaceSegmentation,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It returns the unique configuration*/\n\tgetFirst(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfWorkspaceSegmentation/getFirst'\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { AuthenticationService } from './authentication.service';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { Observable, Subject } from 'rxjs';\nimport { Document, DataTableParameters } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliMultipleValueFilterService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It returns the config filter by id */\n\tgetById(id: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation + 'pliMultipleValueFilter/getById',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('id', id.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It returns the filter by the keyField specified */\n\tgetByKeyField(keyField: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation + 'pliMultipleValueFilter/getByKeyField',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('keyField', keyField.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It returns All the filter configured */\n\tgetAll(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation + 'pliMultipleValueFilter/getAll'\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliPromocionUsername } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliPromocionUsernameService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** get by promcodigo */\n\tpublic getByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliPromocionUsername/getByPromCodigo',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCodigo.toString()) }\n\t\t);\n\t}\n\n\t/** get by promcodigo */\n\tpublic getByUsernameAndPromCodigoIn(listIds: Array<number>): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliPromocionUsername/getByUsernameAndPromCodigoIn',\n\t\t\t{ params: new HttpParams().set('listIds', listIds.toString()) }\n\t\t);\n\t}\n\n\t/** get usernames not in promCodigo */\n\tpublic getUsernamesNotInPromCodigo(\n\t\tlistUsername: Array<String>,\n\t\tpromCodigo: number\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliPromocionUsername/getUsernamesNotInPromCodigo',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('listUsername', listUsername.toString())\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** save */\n\tpublic save(pliPromocionUsername: PliPromocionUsername): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliPromocionUsername/save',\n\t\t\tpliPromocionUsername,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** save multiple */\n\tpublic saveMultiple(listPliPromocionUsername: PliPromocionUsername[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliPromocionUsername/saveMultiple',\n\t\t\tlistPliPromocionUsername,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** delete by id */\n\tpublic delete(id: number): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + 'pliPromocionUsername/delete',\n\t\t\t{ params: new HttpParams().set('id', id.toString()) }\n\t\t);\n\t}\n\n\t/** delete by list id */\n\tpublic deleteMultiple(listId: number[]): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + 'pliPromocionUsername/deleteMultiple',\n\t\t\t{ params: new HttpParams().set('listId', listId.toString()) }\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\n\nimport { AuthenticationService } from './authentication.service';\nimport { Observable } from 'rxjs';\nimport {\n\tDataTableParameters,\n\tPliSegSearch,\n\tPliSegList,\n\tIndicatorRequest,\n\tStatisticRequest,\n\tSegmentationColorRequestDto\n} from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliSegmentationService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(\n\t\t@Inject('environment') private environment: any,\n\t\tprivate httpClient: HttpClient,\n\t\tprivate authService: AuthenticationService\n\t) {}\n\n\t/** It returns all list of status by prom code */\n\tgetByDataTablesParameters(dataTableParameters: DataTableParameters): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationTableController/getByDataTablesParameters',\n\t\t\tdataTableParameters,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It returns all list of status by prom code */\n\tgenerateIndicator(indicatorRequest: IndicatorRequest): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationTableController/generateIndicator',\n\t\t\tindicatorRequest,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It returns an indicator response for pli-datatable component */\n\tgenerateGenericIndicator(indicatorRequest: IndicatorRequest[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationTableController/generateGenericIndicator',\n\t\t\tindicatorRequest,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It returns all list of status by prom code */\n\tgenerateStatistic(statisticRequest: StatisticRequest): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationTableController/generateStatistic',\n\t\t\tstatisticRequest,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It returns list columns by pat code */\n\tgetColumnsByPatCodigo(patCodigo: number): Observable<any> {\n\t\tlet patCodigoS = patCodigo ? patCodigo.toString() : '';\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationTableController/getColumnsByPatCodigo',\n\t\t\t{ params: new HttpParams().set('patCodigo', patCodigoS) }\n\t\t);\n\t}\n\n\tgetCards(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation + 'PlicSegmentationCard/getCards'\n\t\t);\n\t}\n\n\t/*******************/\n\t/* SEARCH Services */\n\t/*******************/\n\tgetSearchByUserTopFive(userId: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationTableController/getSearchByUserTopFive',\n\t\t\t{ params: new HttpParams().set('userId', userId.toString()) }\n\t\t);\n\t}\n\n\tupdatePositionSearch(lPliSegSearch: PliSegSearch[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationTableController/updatePositionSearch',\n\t\t\tlPliSegSearch,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tsaveAllSearch(lPliSegSearch: PliSegSearch[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationTableController/saveAllSearch',\n\t\t\tlPliSegSearch,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It deletes a search object by id */\n\tdeleteSearch(id): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationTableController/deleteSearch',\n\t\t\t{ params: new HttpParams().set('id', id) }\n\t\t);\n\t}\n\n\tchangeTopFiveSearch(userId: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationTableController/changeTopFiveSearch',\n\t\t\t{ params: new HttpParams().set('userId', userId.toString()) }\n\t\t);\n\t}\n\n\tshowEllipsisSearchByUser(userId: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationTableController/showEllipsisSearchByUser',\n\t\t\t{ params: new HttpParams().set('userId', userId.toString()) }\n\t\t);\n\t}\n\n\tgetSearchByIdOrderByName(userId: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationTableController/getSearchByIdOrderByName',\n\t\t\t{ params: new HttpParams().set('userId', userId.toString()) }\n\t\t);\n\t}\n\n\tgetPublicSearch(lastNHours: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationTableController/getPublicSearch',\n\t\t\t{ params: new HttpParams().set('lastNHours', lastNHours.toString()) }\n\t\t);\n\t}\n\n\t/*****************/\n\t/* LIST Services */\n\t/*****************/\n\tgetListByUserTopFive(userId: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationTableController/getListByUserTopFive',\n\t\t\t{ params: new HttpParams().set('userId', userId.toString()) }\n\t\t);\n\t}\n\n\tupdatePositionList(lPliSegList: PliSegList[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationTableController/updatePositionList',\n\t\t\tlPliSegList,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tsaveAllList(lPliSegList: PliSegList[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationTableController/saveAllList',\n\t\t\tlPliSegList,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It deletes a List object by id */\n\tdeleteList(id): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationTableController/deleteList',\n\t\t\t{ params: new HttpParams().set('id', id) }\n\t\t);\n\t}\n\n\tchangeTopFiveList(userId: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationTableController/changeTopFiveList',\n\t\t\t{ params: new HttpParams().set('userId', userId.toString()) }\n\t\t);\n\t}\n\n\tshowEllipsisListByUser(userId: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationTableController/showEllipsisListByUser',\n\t\t\t{ params: new HttpParams().set('userId', userId.toString()) }\n\t\t);\n\t}\n\n\tgetListByIdOrderByName(userId: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationTableController/getListByIdOrderByName',\n\t\t\t{ params: new HttpParams().set('userId', userId.toString()) }\n\t\t);\n\t}\n\n\tgetPublicList(lastNHours: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationTableController/getPublicList',\n\t\t\t{ params: new HttpParams().set('lastNHours', lastNHours.toString()) }\n\t\t);\n\t}\n\n\tchangeColor(segmentationColorRequestDto: SegmentationColorRequestDto): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationTableController/changeColor',\n\t\t\tsegmentationColorRequestDto,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliTag, TagTo } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliTagService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/** It returns a list of tag by name */\n\tgetTagByNameLike(nameLike: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation + 'plicSegmentationTag/getByNameLike',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('name', nameLike)\n\t\t\t}\n\t\t);\n\t}\n\n\t/** Saves a tag with its associated segmentation records */\n\tsave(tag: PliTag, applicationIds: string[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.segmentation + 'plicSegmentationTag/save',\n\t\t\t{\n\t\t\t\ttag: tag,\n\t\t\t\tapplicationIds: applicationIds\n\t\t\t}\n\t\t);\n\t}\n\n\tsaveTagQueue(tag: TagTo): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.queue + 'tag/save',\n\t\t\ttag,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** Deletes a tag from its associated segmentation records */\n\tdeleteTagFromSegmentationList(tagName: string, applicationIds: string[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'plicSegmentationTag/deleteTagFromSegmentationList',\n\t\t\t{\n\t\t\t\ttagName: tagName,\n\t\t\t\tapplicationIds: applicationIds\n\t\t\t}\n\t\t);\n\t}\n\n\t/** Deletes a list of tags from an associated segmentation record */\n\tdeleteTagsFromSegmentation(applicationId: string, tagNames: string[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'plicSegmentationTag/deleteTagsFromSegmentation',\n\t\t\t{\n\t\t\t\tapplicationId: applicationId,\n\t\t\t\ttagNames: tagNames\n\t\t\t}\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { PliUser } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliUserService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It returns the list */\n\tgetAll(): Observable<any> {\n\t\treturn this.httpClient.get(this.environment.host.backend.configuration + 'pliUser/getAll');\n\t}\n\n\t/** It deletes a form by id */\n\tdelete(id): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + 'pliUser/delete',\n\t\t\t{ params: new HttpParams().set('id', id) }\n\t\t);\n\t}\n\n\t/** It returns the user by id */\n\tgetById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliUser/getById',\n\t\t\t{ params: new HttpParams().set('id', id.toString()) }\n\t\t);\n\t}\n\n\t/** It returns the user by id */\n\tgetByLogin(login: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliUser/getByLogin',\n\t\t\t{ params: new HttpParams().set('login', login) }\n\t\t);\n\t}\n\n\t/** It saves a user */\n\tsave(user: PliUser): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliUser/save',\n\t\t\tuser,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It returns the list of users by patCodigo and list of profiles id */\n\tgetByPatCodigoAndProfileIdList(patCodigo: number, listProfileId: number[]): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliUser/getByPatCodigoAndProfileIdList',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('patCodigo', patCodigo.toString())\n\t\t\t\t\t.set('listProfileId', listProfileId.toString())\n\t\t\t}\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { PliCnfProfile } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class ProfileService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It returns the profile by id */\n\tgetAll(): Observable<any> {\n\t\treturn this.httpClient.get(this.environment.host.backend.configuration + 'profile/getAll');\n\t}\n\n\t/** It returns the profile by id */\n\tgetById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'profile/getById',\n\t\t\t{ params: new HttpParams().set('id', id.toString()) }\n\t\t);\n\t}\n\n\t/** It returns the profile by userId and patCodigo */\n\tgetByUserIdAndPatCodigo(\n\t\tuserId: number,\n\t\tpatCodigo: number,\n\t\tcargarListas: boolean\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'profile/getByUserIdAndPatCodigo',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('userId', userId.toString())\n\t\t\t\t\t.set('patCodigo', patCodigo.toString())\n\t\t\t\t\t.set('cargarListas', cargarListas.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It returns the profile by patCodigo */\n\tgetByPatCodigo(patCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'profile/getByPatCodigo',\n\t\t\t{ params: new HttpParams().set('patCodigo', patCodigo.toString()) }\n\t\t);\n\t}\n\n\t/** It returns the profile by form id */\n\tgetByFormId(formId: string, cargarListas: boolean): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'profile/getByFormId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('formId', formId)\n\t\t\t\t\t.set('cargarListas', cargarListas.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It saves a profile */\n\tsave(profile: PliCnfProfile): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'profile/save',\n\t\t\tprofile,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It deletes a form by id */\n\tdelete(id): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + 'profile/delete',\n\t\t\t{ params: new HttpParams().set('id', id) }\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { SegmentationUser } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class SegmentationUserService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tgetSegmentationByUserTopFive(username: string, type: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationUserController/getSegmentationByUserTopFive',\n\t\t\t{ params: new HttpParams().set('username', username).set('type', type.toString()) }\n\t\t);\n\t}\n\n\tupdatePositionSegmentation(lSegmentationUser: SegmentationUser[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationUserController/updatePositionSegmentation',\n\t\t\tlSegmentationUser,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tsaveAllSegmentation(lSegmentationUser: SegmentationUser[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationUserController/saveAllSegmentation',\n\t\t\tlSegmentationUser,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It deletes a search object by id */\n\tdeleteSegmentation(id): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationUserController/deleteSegmentation',\n\t\t\t{ params: new HttpParams().set('id', id) }\n\t\t);\n\t}\n\n\tchangeTopFiveSegmentation(username: string, type: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationUserController/changeTopFiveSegmentation',\n\t\t\t{ params: new HttpParams().set('username', username).set('type', type.toString()) }\n\t\t);\n\t}\n\n\tshowEllipsisSegmentationByUser(username: string, type: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationUserController/showEllipsisSegmentationByUser',\n\t\t\t{ params: new HttpParams().set('username', username).set('type', type.toString()) }\n\t\t);\n\t}\n\n\tgetSegmentationGreaterThanPosition(\n\t\tusername: string,\n\t\ttype: number,\n\t\tposition: number\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationUserController/getSegmentationGreaterThanPosition',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('username', username)\n\t\t\t\t\t.set('type', type.toString())\n\t\t\t\t\t.set('position', position.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tgetSegmentationByIdOrderByName(username: string, type: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationUserController/getSegmentationByIdOrderByName',\n\t\t\t{ params: new HttpParams().set('username', username).set('type', type.toString()) }\n\t\t);\n\t}\n\n\tgetSegmentationById(segmentationId: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationUserController/getSegmentationById',\n\t\t\t{ params: new HttpParams().set('segmentationId', segmentationId) }\n\t\t);\n\t}\n\n\tgetAllSegmentationByLoginAndType(username: string, type: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationUserController/getAllSegmentationByLoginAndType',\n\t\t\t{ params: new HttpParams().set('username', username).set('type', type.toString()) }\n\t\t);\n\t}\n\n\tgetPublicSegmentation(lastNHours: number, type: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationUserController/getPublicSegmentation',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('lastNHours', lastNHours.toString())\n\t\t\t\t\t.set('type', type.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tgetSegColumn(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationUserController/getSegColumn',\n\t\t\t{ params: new HttpParams() }\n\t\t);\n\t}\n\n\tgetSegmentationByName(username: string, type: number, name: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationUserController/getSegmentationByName',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('username', username)\n\t\t\t\t\t.set('type', type.toString())\n\t\t\t\t\t.set('name', name)\n\t\t\t}\n\t\t);\n\t}\n\n\tgetDataCutOff(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationUserController/getDataCutOff',\n\t\t\t{ params: new HttpParams() }\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class OpenKMDocumentService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\ttransferIdNumber(lIdNumber: string[]) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.pliOpenkmDocumentSegmentation +\n\t\t\t\t'pli-openkm-document-segmentation/transferIdNumber',\n\t\t\tlIdNumber,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { SegmentationTO } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class SegmentationService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/** It send the email */\n\tsend(segmentation: SegmentationTO): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.queue + 'segmentation/send',\n\t\t\tsegmentation,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\t/** It send the email */\n\tsendMultiple(listSegmentation: SegmentationTO[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.queue + 'segmentation/sendMassive',\n\t\t\tlistSegmentation,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { TokenService } from './token.service';\nimport { EmailService } from './email.service';\nimport { InteractionApplicationUserService } from './interaction-application-user.service';\nimport {\n\tApplication,\n\tBudgetData,\n\tConfigurationDocument,\n\tSendApplication,\n\tETipoPresupuesto,\n\tEBudgetBuildType,\n\tEBudgetError,\n\tDocument,\n\tEDocumentState,\n\tEmail,\n\tInteractionApplicationUser,\n\tPliCnfStatusFlowInteraction,\n\tETypeStaticInteraction,\n\tPliCnfStatus,\n\tPliCnfStatusPageSection,\n\tAuthenticationUtil,\n\tECnfPageSection\n} from 'ng-pli-util';\nimport { FormioUtil } from '../utils/formio-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class SendApplicationService {\n\t/** This observable allows to get the porcentage */\n\tprivate percentageSubject = new BehaviorSubject<number>(0);\n\n\tconstructor(\n\t\t@Inject('environment') private environment,\n\t\tprivate tokenService: TokenService,\n\t\tprivate emailService: EmailService,\n\t\tprivate interactionApplicationUserService: InteractionApplicationUserService\n\t) {}\n\n\t/**  It has an observable to notify if the percentage is changed */\n\tpublic onChangePercentage(): Observable<number> {\n\t\treturn this.percentageSubject.asObservable();\n\t}\n\n\t/** it defines the value for percentage */\n\tpublic setPercentage(current: number, total: number) {\n\t\tif (current && total) {\n\t\t\tconst percentage = (current / total) * 100;\n\t\t\tthis.percentageSubject.next(percentage);\n\t\t} else {\n\t\t\tthis.resetPercentage();\n\t\t}\n\t}\n\n\t/** it resets the percentage */\n\tpublic resetPercentage() {\n\t\tthis.percentageSubject.next(0);\n\t}\n\n\t/**\n\t * It send email masively\n\t * @param application\n\t * @param i current idnex\n\t * @param length length\n\t * @param sendApplication\n\t */\n\tsendEmailMassively(application: Application) {\n\t\tlet email: Email = new Email();\n\t\temail.addTo('pruebaconvo@ben.colfuturo.org');\n\t\t// uncomment when the environment\n\t\temail.setSubject('Envío de solicitud ' + application.id);\n\t\temail.setBody('Cordial saludo, <br/>Hemos enviado la solicitud ' + application.id);\n\t\treturn this.emailService.send(email);\n\t}\n\n\t/** Send email application */\n\tsendEmail(application: Application) {\n\t\tlet email: Email = new Email();\n\t\temail.addTo('pruebaconvo@ben.colfuturo.org');\n\t\t// uncomment when the environment\n\t\temail.setSubject('Envío de solicitud ' + application.id);\n\t\temail.setBody('Cordial saludo, <br/>Has enviado la solicitud ' + application.id);\n\t\treturn this.emailService.send(email);\n\t}\n\n\t/** It saves the interaction */\n\tsaveInteraction(\n\t\tapplicationId: string,\n\t\tpromCodigo: number,\n\t\tpliCnfStatusFlowInteraction: PliCnfStatusFlowInteraction,\n\t\tobservation?: string\n\t): Observable<any> {\n\t\tlet interactionAppUser: InteractionApplicationUser = new InteractionApplicationUser();\n\t\tinteractionAppUser.applicationId = applicationId;\n\t\tinteractionAppUser.promCodigo = promCodigo;\n\n\t\tif (\n\t\t\tpliCnfStatusFlowInteraction.pliCnfInteraction &&\n\t\t\tpliCnfStatusFlowInteraction.pliCnfInteraction.id\n\t\t)\n\t\t\tinteractionAppUser.pliCnfInteractionId =\n\t\t\t\tpliCnfStatusFlowInteraction.pliCnfInteraction.id;\n\t\tif (\n\t\t\tpliCnfStatusFlowInteraction.pliCnfStatusFlow &&\n\t\t\tpliCnfStatusFlowInteraction.pliCnfStatusFlow.id\n\t\t)\n\t\t\tinteractionAppUser.pliCnfStatusFlowId = pliCnfStatusFlowInteraction.pliCnfStatusFlow.id;\n\t\tif (pliCnfStatusFlowInteraction.id)\n\t\t\tinteractionAppUser.pliCnfStatusFlowInteractionId = pliCnfStatusFlowInteraction.id;\n\n\t\tinteractionAppUser.interactionStaticId = ETypeStaticInteraction.SEND_APPLICATION;\n\t\tinteractionAppUser.pliUserId = AuthenticationUtil.getPliUsuario()\n\t\t\t? AuthenticationUtil.getPliUsuario().usuCodigo\n\t\t\t: null;\n\t\tinteractionAppUser.positive = true;\n\t\tinteractionAppUser.observation = observation ? observation : 'Envío de solicitud';\n\t\treturn this.interactionApplicationUserService.save(interactionAppUser);\n\t}\n\n\t/**\n\t * It validates the data\n\t * @param listApplication\n\t * @param listForm\n\t * @param listDataForm\n\t * @param listBudgetSetting\n\t * @param listBudget\n\t * @param listConfigurationDocument\n\t * @param listDocument\n\t * @param validateJustRequired eg. when the screern require get just require documents (send application)\n\t */\n\tpublic validate(\n\t\tlistTotalStatus: PliCnfStatus[],\n\t\tlistApplication: Application[],\n\t\tlistForm: any[],\n\t\tlistDataForm: any[],\n\t\tlistBudgetSetting: any[],\n\t\tlistBudget: BudgetData[],\n\t\tlistConfigurationDocument: ConfigurationDocument[],\n\t\tlistDocument: Document[],\n\t\tcallback: any,\n\t\tvalidateJustRequired: boolean,\n\t\tvalidateSummarizedBudget?: boolean\n\t): Array<SendApplication> {\n\t\tlet listSendApplication: Array<SendApplication> = [];\n\t\t// reset percentage\n\t\t// this.resetPercentage();\n\t\tif (listApplication && listApplication.length > 0) {\n\t\t\t// iterate over listApplication\n\t\t\tfor (let i = 0; i < listApplication.length; i++) {\n\t\t\t\t// define application\n\t\t\t\tconst application = listApplication[i];\n\t\t\t\t// create send application object\n\t\t\t\tlet sendApplication: SendApplication = new SendApplication();\n\t\t\t\t// define applicationId\n\t\t\t\tsendApplication.applicationId = application.id;\n\n\t\t\t\tlet currentStatus: any = [];\n\t\t\t\tif (\n\t\t\t\t\tlistTotalStatus &&\n\t\t\t\t\tlistTotalStatus.length &&\n\t\t\t\t\tapplication.stateId &&\n\t\t\t\t\tlistForm &&\n\t\t\t\t\tlistForm.length\n\t\t\t\t)\n\t\t\t\t\t// get the list page section according to statusId\n\t\t\t\t\tfor (const status of listTotalStatus)\n\t\t\t\t\t\tif (status.id == application.stateId) {\n\t\t\t\t\t\t\tcurrentStatus = status;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t// define the listForm that can be valdiated according to status\n\t\t\t\tconst listFormActivated = this.getListFormsByStatus(currentStatus, listForm);\n\t\t\t\t// get validated list form\n\t\t\t\tsendApplication.listValidatedForm = this.getValidatedFormList(\n\t\t\t\t\tlistFormActivated,\n\t\t\t\t\tlistDataForm,\n\t\t\t\t\tsendApplication.applicationId\n\t\t\t\t);\n\n\t\t\t\t// get validated list budget\n\t\t\t\tif (!validateSummarizedBudget) {\n\t\t\t\t\tsendApplication.listValidatedBudget = this.getValidatedBudget(\n\t\t\t\t\t\tlistBudgetSetting,\n\t\t\t\t\t\tlistBudget,\n\t\t\t\t\t\tsendApplication.applicationId,\n\t\t\t\t\t\tcurrentStatus\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tsendApplication.listValidatedBudget = this.getValidatedBudgetSummarized(\n\t\t\t\t\t\tlistBudgetSetting,\n\t\t\t\t\t\tlistBudget,\n\t\t\t\t\t\tsendApplication.applicationId,\n\t\t\t\t\t\tcurrentStatus\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// get validated list document\n\t\t\t\tsendApplication.listValidatedDocument = this.getValidatedDocument(\n\t\t\t\t\tcurrentStatus,\n\t\t\t\t\tlistConfigurationDocument,\n\t\t\t\t\tlistDocument,\n\t\t\t\t\tapplication,\n\t\t\t\t\tlistDataForm,\n\t\t\t\t\tvalidateJustRequired\n\t\t\t\t);\n\n\t\t\t\t// resolve validation - no listValidatedDoc -  listValidatedBudget - listValidatedForm\n\t\t\t\tsendApplication.validation =\n\t\t\t\t\t!sendApplication.listValidatedDocument.length &&\n\t\t\t\t\t!sendApplication.listValidatedBudget.length &&\n\t\t\t\t\t!sendApplication.listValidatedForm.length;\n\t\t\t\t// add to array\n\t\t\t\tlistSendApplication.push(sendApplication);\n\t\t\t\t// call callback\n\t\t\t\tif (callback) callback(sendApplication, application, i, listApplication.length);\n\t\t\t}\n\t\t}\n\t\treturn listSendApplication;\n\t}\n\n\t/** it returns the forms that are activated according to status */\n\tgetListFormsByStatus(currentStatus: PliCnfStatus, listForm: any[]): any[] {\n\t\tlet listActivatedForm: any[] = [];\n\t\tlet listPliCnfStatusPageSection: PliCnfStatusPageSection[] =\n\t\t\tcurrentStatus.listPliCnfStatusPageSection;\n\t\tif (listPliCnfStatusPageSection && listPliCnfStatusPageSection.length)\n\t\t\t// fill the list activated form\n\t\t\tfor (const form of listForm)\n\t\t\t\tfor (const section of listPliCnfStatusPageSection)\n\t\t\t\t\tif (section.idForm == form.id) {\n\t\t\t\t\t\tlistActivatedForm.push(form);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\treturn listActivatedForm;\n\t}\n\n\t/** it returns the validated document list */\n\tgetValidatedDocument(\n\t\tcurrentStatus: any,\n\t\tlistConfigurationDocument,\n\t\tlistDocument,\n\t\tapplication: Application,\n\t\tlistDataForm,\n\t\tvalidateJustRequired: boolean\n\t): any[] {\n\t\tlet listValidatedDocument = [];\n\t\tif (listConfigurationDocument) {\n\t\t\t// it contains the documents that are visible\n\t\t\tlet listConfigurationDocumentVisible = [];\n\n\t\t\t//checkIfShouldValidate\n\t\t\tlet shouldValidateDocuments: boolean = false;\n\t\t\tlet listPliCnfStatusPageSection: PliCnfStatusPageSection[] =\n\t\t\t\tcurrentStatus.listPliCnfStatusPageSection;\n\t\t\tif (listPliCnfStatusPageSection && listPliCnfStatusPageSection.length)\n\t\t\t\tfor (const section of listPliCnfStatusPageSection)\n\t\t\t\t\tif (section.pliCnfPageSection)\n\t\t\t\t\t\tswitch (section.pliCnfPageSection.keyLabel) {\n\t\t\t\t\t\t\tcase 'documentos': {\n\t\t\t\t\t\t\t\tshouldValidateDocuments = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\tif (!shouldValidateDocuments) return listValidatedDocument;\n\n\t\t\t// resolve the configuration that is visible\n\t\t\tif (listConfigurationDocument) {\n\t\t\t\tfor (const configurationDocument of listConfigurationDocument) {\n\t\t\t\t\tlet visible: boolean = true;\n\t\t\t\t\tif (configurationDocument.formula && configurationDocument.formula.length) {\n\t\t\t\t\t\tlet formula = '';\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tlet data = { statusname: application.stateName };\n\t\t\t\t\t\t\tif (listDataForm)\n\t\t\t\t\t\t\t\tfor (const dataForm of listDataForm)\n\t\t\t\t\t\t\t\t\tfor (const property in dataForm.data)\n\t\t\t\t\t\t\t\t\t\tdata[property.toLowerCase()] = dataForm.data[property];\n\t\t\t\t\t\t\tformula = this.tokenService.replaceTokensFromListObject(\n\t\t\t\t\t\t\t\tconfigurationDocument.name,\n\t\t\t\t\t\t\t\tconfigurationDocument.formula,\n\t\t\t\t\t\t\t\tdata\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tlet result = eval(formula);\n\t\t\t\t\t\t\tif (result !== true) {\n\t\t\t\t\t\t\t\tvisible = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tvisible = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (visible) {\n\t\t\t\t\t\tlistConfigurationDocumentVisible.push(configurationDocument);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// resolve the list of documents\n\t\t\tif (listConfigurationDocumentVisible) {\n\t\t\t\tfor (let i = 0; i < listConfigurationDocumentVisible.length; i++) {\n\t\t\t\t\tlet configurationDocument = listConfigurationDocumentVisible[i];\n\t\t\t\t\tlet document: Document = this.getDocumentByConfigurationId(\n\t\t\t\t\t\tconfigurationDocument.id,\n\t\t\t\t\t\tlistDocument,\n\t\t\t\t\t\tapplication.id\n\t\t\t\t\t);\n\n\t\t\t\t\tif (validateJustRequired) {\n\t\t\t\t\t\t// Validate the deactivation date\n\t\t\t\t\t\tconst isActiveByDesactivacionDate =\n\t\t\t\t\t\t\tthis.isConfigActiveByDeactivationDate(configurationDocument);\n\t\t\t\t\t\tconst isRequired = !!configurationDocument.required;\n\n\t\t\t\t\t\t// The document is missing.\n\t\t\t\t\t\tconst isMissing =\n\t\t\t\t\t\t\t!document ||\n\t\t\t\t\t\t\t(document && document.listArchive.length === 0) ||\n\t\t\t\t\t\t\tthis.automaticDocumentsValidated(\n\t\t\t\t\t\t\t\tconfigurationDocument,\n\t\t\t\t\t\t\t\tlistDataForm,\n\t\t\t\t\t\t\t\tdocument\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t// Validation for required document and active or deactivation date depending on the case\n\t\t\t\t\t\tif (isRequired && isMissing && isActiveByDesactivacionDate) {\n\t\t\t\t\t\t\tthis.fillListValidateDocumentDefault(\n\t\t\t\t\t\t\t\tlistValidatedDocument,\n\t\t\t\t\t\t\t\tapplication,\n\t\t\t\t\t\t\t\tconfigurationDocument\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (document) {\n\t\t\t\t\t\t\tif (document.state == EDocumentState.PENDIENTE) {\n\t\t\t\t\t\t\t\tlistValidatedDocument.push(document);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.fillListValidateDocumentDefault(\n\t\t\t\t\t\t\t\tlistValidatedDocument,\n\t\t\t\t\t\t\t\tapplication,\n\t\t\t\t\t\t\t\tconfigurationDocument\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn listValidatedDocument;\n\t}\n\n\tprivate isConfigActiveByDeactivationDate(\n\t\tconfigurationDocument: ConfigurationDocument\n\t): boolean {\n\t\t// If there is no date, it is ACTIVE\n\t\tif (!configurationDocument || !configurationDocument.deactivationDate) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst raw = configurationDocument.deactivationDate as any;\n\t\tlet deact: Date;\n\n\t\tif (raw instanceof Date) {\n\t\t\tdeact = new Date(raw.getFullYear(), raw.getMonth(), raw.getDate());\n\t\t} else {\n\t\t\tconst s = String(raw).trim();\n\n\t\t\tif (/^\\d{4}-\\d{2}-\\d{2}/.test(s)) {\n\t\t\t\tdeact = new Date(s.includes('T') ? s : `${s}T00:00:00`);\n\t\t\t} else if (/^\\d{2}\\/\\d{2}\\/\\d{4}$/.test(s)) {\n\t\t\t\tconst [dd, mm, yyyy] = s.split('/').map(Number);\n\t\t\t\tdeact = new Date(yyyy, mm - 1, dd);\n\t\t\t} else {\n\t\t\t\tdeact = new Date(s);\n\t\t\t}\n\t\t}\n\n\t\tconst today = new Date();\n\t\ttoday.setHours(0, 0, 0, 0);\n\t\tdeact.setHours(0, 0, 0, 0);\n\n\t\t// true  => ACTIVE if today is BEFORE or EQUAL to the deactivation date\n\t\t// false => DEFEATED if today is LATER\n\t\treturn today.getTime() <= deact.getTime();\n\t}\n\n\tprivate fillListValidateDocumentDefault(\n\t\tlistValidatedDocument,\n\t\tapplication,\n\t\tconfigurationDocument\n\t) {\n\t\tlet document = new Document();\n\t\tdocument.applicationId = application.id;\n\t\tdocument.promCodigo = configurationDocument.promCodigo;\n\t\tdocument.state = EDocumentState.PENDIENTE;\n\t\tdocument.configurationDocumentId = configurationDocument.id;\n\t\tdocument.listArchive = [];\n\t\tlistValidatedDocument.push(document);\n\t}\n\n\t/** It gets document by configuration Id */\n\tprivate getDocumentByConfigurationId(\n\t\tconfigurationDocumentId: number,\n\t\tlist: Array<Document>,\n\t\tapplicationId: string\n\t): Document {\n\t\tif (list)\n\t\t\tfor (const document of list)\n\t\t\t\tif (\n\t\t\t\t\tdocument.configurationDocumentId === configurationDocumentId &&\n\t\t\t\t\tdocument.applicationId === applicationId\n\t\t\t\t)\n\t\t\t\t\treturn document;\n\n\t\treturn null;\n\t}\n\n\t/** get the budget application by type budget and budget setup id */\n\tprivate getValidatedBudgetApplication(\n\t\tbudgetSetting: any,\n\t\ttypeBudget: any,\n\t\tlistBudget: BudgetData[],\n\t\tapplicationId\n\t): any {\n\t\tif (listBudget)\n\t\t\tfor (const budget of listBudget)\n\t\t\t\tif (\n\t\t\t\t\tbudget.tag == typeBudget &&\n\t\t\t\t\tbudgetSetting.cpreCodigo == budget.budgetSetupId &&\n\t\t\t\t\tbudget.applicationId == applicationId\n\t\t\t\t) {\n\t\t\t\t\treturn this.validateBudget(budget, budgetSetting, typeBudget);\n\t\t\t\t}\n\n\t\treturn this.validateBudget(null, budgetSetting, typeBudget);\n\t}\n\n\t/** It validates the budget */\n\tprivate validateBudget(budget: any, budgetSetting: any, type: any) {\n\t\tif (!budget || !budget.summary || !budget.summary.budgetTotal)\n\t\t\t// validate if there is a budget object\n\t\t\treturn {\n\t\t\t\tbudget: budget,\n\t\t\t\ttype: type,\n\t\t\t\tbudgetSetting: budgetSetting,\n\t\t\t\terror: EBudgetError.NO_OBJECT\n\t\t\t};\n\t\telse if (\n\t\t\t(type === EBudgetBuildType.financing || type === EBudgetBuildType.mixed) &&\n\t\t\tbudget.summary.budgetTotal > budgetSetting.cpreMontoTotal\n\t\t)\n\t\t\t// validate if amount total overcomes the maximum\n\t\t\treturn {\n\t\t\t\tbudget: budget,\n\t\t\t\ttype: type,\n\t\t\t\tbudgetSetting: budgetSetting,\n\t\t\t\terror: EBudgetError.OVERCOME_MAXIMUM_AMOUNT\n\t\t\t};\n\t\telse if (\n\t\t\ttype === EBudgetBuildType.financing &&\n\t\t\t(!budget.financingStart || !budget.financingEnd)\n\t\t)\n\t\t\t// validate if financing dates are defined\n\t\t\treturn {\n\t\t\t\tbudget: budget,\n\t\t\t\ttype: type,\n\t\t\t\tbudgetSetting: budgetSetting,\n\t\t\t\terror: EBudgetError.FINANCING_DATES\n\t\t\t};\n\t\treturn null;\n\t}\n\n\tprivate validateSummarizedBudget(budgetSetting: any, type: any, budget: any) {\n\t\tif (!budget || !budget.summary || !budget.summary.budgetTotal) {\n\t\t\t// validate if there is a budget object\n\t\t\treturn {\n\t\t\t\tbudget: budget,\n\t\t\t\ttype: type,\n\t\t\t\tbudgetSetting: budgetSetting,\n\t\t\t\terror: EBudgetError.NO_OBJECT\n\t\t\t};\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tvalidateCompleteBudget(listBudgetSetting, listBudget, applicationId): any[] {\n\t\treturn this.getValidatedBudget(listBudgetSetting, listBudget, applicationId);\n\t}\n\n\t/** it returns the validated budget list */\n\tprivate getValidatedBudget(\n\t\tlistBudgetSetting,\n\t\tlistBudget,\n\t\tapplicationId,\n\t\tcurrentStatus?\n\t): any[] {\n\t\tlet listValidatedBudget: any[] = [];\n\t\tif (listBudgetSetting) {\n\t\t\tlet shouldValidateTotalBudget: boolean = false;\n\t\t\tlet shouldValidateFinancingBudget: boolean = false;\n\t\t\tif (currentStatus) {\n\t\t\t\tlet listPliCnfStatusPageSection: PliCnfStatusPageSection[] =\n\t\t\t\t\tcurrentStatus.listPliCnfStatusPageSection;\n\t\t\t\tif (listPliCnfStatusPageSection && listPliCnfStatusPageSection.length)\n\t\t\t\t\tfor (const section of listPliCnfStatusPageSection)\n\t\t\t\t\t\tif (section.pliCnfPageSection)\n\t\t\t\t\t\t\tswitch (section.pliCnfPageSection.keyLabel) {\n\t\t\t\t\t\t\t\tcase 'presupuesto.total': {\n\t\t\t\t\t\t\t\t\tshouldValidateTotalBudget = true;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase 'presupuesto.financiacion': {\n\t\t\t\t\t\t\t\t\tshouldValidateFinancingBudget = true;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tshouldValidateTotalBudget = true;\n\t\t\t\tshouldValidateFinancingBudget = true;\n\t\t\t}\n\n\t\t\t// iterate over listBudgetSetting\n\t\t\tfor (const budgetSetting of listBudgetSetting) {\n\t\t\t\t// skip general budget\n\t\t\t\tif (budgetSetting.pliTipoPresupuesto.tpresCodigo == ETipoPresupuesto.GENERAL)\n\t\t\t\t\tcontinue;\n\t\t\t\t// budget total\n\t\t\t\tconst budgetDataTotal = this.getValidatedBudgetApplication(\n\t\t\t\t\tbudgetSetting,\n\t\t\t\t\tEBudgetBuildType.total,\n\t\t\t\t\tlistBudget,\n\t\t\t\t\tapplicationId\n\t\t\t\t);\n\t\t\t\tif (budgetDataTotal && shouldValidateTotalBudget)\n\t\t\t\t\tlistValidatedBudget.push(budgetDataTotal);\n\t\t\t\t// if it has own funds, so it validates total and financing\n\t\t\t\tif (budgetSetting.cpreEsFondosPropios) {\n\t\t\t\t\tconst budgetDataFinancing = this.getValidatedBudgetApplication(\n\t\t\t\t\t\tbudgetSetting,\n\t\t\t\t\t\tEBudgetBuildType.financing,\n\t\t\t\t\t\tlistBudget,\n\t\t\t\t\t\tapplicationId\n\t\t\t\t\t);\n\t\t\t\t\tif (budgetDataFinancing && shouldValidateFinancingBudget)\n\t\t\t\t\t\tlistValidatedBudget.push(budgetDataFinancing);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn listValidatedBudget;\n\t}\n\n\t/** It returns the validated form list */\n\tprivate getValidatedFormList(listForm, listDataForm, applicationId): any[] {\n\t\tlet listValidatedForm: any[] = [];\n\t\tif (listForm) {\n\t\t\t// iterate over listform\n\t\t\tfor (const form of listForm) {\n\t\t\t\t// get errors by formId and ApplicationId\n\t\t\t\tconst errors = this.getErrorsByFormIdAndApplicationId(\n\t\t\t\t\tlistDataForm,\n\t\t\t\t\tform.id,\n\t\t\t\t\tapplicationId\n\t\t\t\t);\n\n\t\t\t\tif (errors && errors.length) {\n\t\t\t\t\tconst components = FormioUtil.getComponents(form.components);\n\n\t\t\t\t\t// generate the error components according to errors\n\t\t\t\t\tlet errorComponent = [];\n\t\t\t\t\tfor (const error of errors) {\n\t\t\t\t\t\tif (error && error.component && error.component.key && components) {\n\t\t\t\t\t\t\tfor (const component of components) {\n\t\t\t\t\t\t\t\tif (component.key == error.component.key) {\n\t\t\t\t\t\t\t\t\terrorComponent.push(component);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (errorComponent && errorComponent.length) {\n\t\t\t\t\t\t// organizing by panels\n\t\t\t\t\t\tconst panels = FormioUtil.getFormattedComponentsByPanel(errorComponent);\n\t\t\t\t\t\t// add to listValidatedForm\n\t\t\t\t\t\tlistValidatedForm.push({\n\t\t\t\t\t\t\tid: form.id,\n\t\t\t\t\t\t\tname: form.title,\n\t\t\t\t\t\t\tpanels: panels,\n\t\t\t\t\t\t\ttoggle: false\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// verify if data is completed\n\t\t\t\t\t// get data by form id and app id\n\t\t\t\t\tconst data = this.getDataByFormIdAndApplicationId(\n\t\t\t\t\t\tlistDataForm,\n\t\t\t\t\t\tform.id,\n\t\t\t\t\t\tapplicationId\n\t\t\t\t\t);\n\t\t\t\t\t// get components are required according to data\n\t\t\t\t\tconst components = FormioUtil.getRequiredComponentsByData(\n\t\t\t\t\t\tform.components,\n\t\t\t\t\t\tdata\n\t\t\t\t\t);\n\n\t\t\t\t\t// INICIO: Corrección para campos de tipo 'day'\n\t\t\t\t\t// Busca todos los componentes del formulario, incluidos los anidados.\n\t\t\t\t\tconst allComponents = FormioUtil.getComponents(form.components);\n\t\t\t\t\tfor (const component of allComponents) {\n\t\t\t\t\t\t// Verifica si el componente es de tipo 'day', es requerido y no tiene un valor válido.\n\t\t\t\t\t\t// La validación de 'required' en un campo 'day' es a nivel de sus sub-campos (day, month, year).\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcomponent.type === 'day' &&\n\t\t\t\t\t\t\tcomponent.fields &&\n\t\t\t\t\t\t\t((component.fields.day && component.fields.day.required) ||\n\t\t\t\t\t\t\t\t(component.fields.month && component.fields.month.required) ||\n\t\t\t\t\t\t\t\t(component.fields.year && component.fields.year.required))\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst dayValue = data ? data[component.key] : null;\n\t\t\t\t\t\t\t// Un campo 'day' vacío puede ser null, '', o '00/00/0000'.\n\t\t\t\t\t\t\tif (!dayValue || dayValue === '00/00/0000') {\n\t\t\t\t\t\t\t\t// Si el componente aún no está en la lista de errores, lo agregamos.\n\t\t\t\t\t\t\t\tif (!components.find((c) => c.key === component.key)) {\n\t\t\t\t\t\t\t\t\tcomponents.push(component);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// FIN: Corrección para campos de tipo 'day'\n\n\t\t\t\t\tif (components && components.length) {\n\t\t\t\t\t\t// organizing by panels\n\t\t\t\t\t\tconst panels = FormioUtil.getFormattedComponentsByPanel(components);\n\t\t\t\t\t\t// add to listValidatedForm\n\t\t\t\t\t\tlistValidatedForm.push({\n\t\t\t\t\t\t\tid: form.id,\n\t\t\t\t\t\t\tname: form.title,\n\t\t\t\t\t\t\tpanels: panels,\n\t\t\t\t\t\t\ttoggle: false\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn listValidatedForm;\n\t}\n\n\t/** It returns the data by formId and ApplicationId */\n\tprivate getErrorsByFormIdAndApplicationId(listDataForm, formId, applicationId): any {\n\t\tif (listDataForm && formId && applicationId)\n\t\t\tfor (const data of listDataForm)\n\t\t\t\tif (data.formId == formId && data.applicationId == applicationId)\n\t\t\t\t\treturn data.errors;\n\t\treturn null;\n\t}\n\n\t/** It returns the data by formId and ApplicationId */\n\tprivate getDataByFormIdAndApplicationId(listDataForm, formId, applicationId): any {\n\t\tif (listDataForm && formId && applicationId)\n\t\t\tfor (const data of listDataForm)\n\t\t\t\tif (data.formId == formId && data.applicationId == applicationId) return data.data;\n\t\treturn null;\n\t}\n\n\tgetValidatedBudgetSummarized(\n\t\tlistBudgetSetting,\n\t\tlistBudget,\n\t\tapplicationId,\n\t\tcurrentStatus\n\t): any[] {\n\t\tlet listValidatedBudget: any[] = [];\n\t\tif (listBudgetSetting) {\n\t\t\tlet shouldValidateTotalBudget: boolean = false;\n\t\t\tif (currentStatus) {\n\t\t\t\tlet listPliCnfStatusPageSection: PliCnfStatusPageSection[] =\n\t\t\t\t\tcurrentStatus.listPliCnfStatusPageSection;\n\t\t\t\tif (listPliCnfStatusPageSection && listPliCnfStatusPageSection.length)\n\t\t\t\t\tfor (const section of listPliCnfStatusPageSection)\n\t\t\t\t\t\tif (section.pliCnfPageSection)\n\t\t\t\t\t\t\tswitch (section.pliCnfPageSection.keyLabel) {\n\t\t\t\t\t\t\t\tcase ECnfPageSection.presupuestoResumido: {\n\t\t\t\t\t\t\t\t\tshouldValidateTotalBudget = true;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tshouldValidateTotalBudget = true;\n\t\t\t}\n\t\t\tconst budgetDataTotal = this.validateSummarizedBudget(\n\t\t\t\tlistBudgetSetting[0],\n\t\t\t\tEBudgetBuildType.total,\n\t\t\t\tlistBudget[0]\n\t\t\t);\n\t\t\tif (budgetDataTotal && shouldValidateTotalBudget)\n\t\t\t\tlistValidatedBudget.push(budgetDataTotal);\n\t\t}\n\t\treturn listValidatedBudget;\n\t}\n\n\tautomaticDocumentsValidated(\n\t\tconfigDocument: ConfigurationDocument,\n\t\tlistDataForm: any[],\n\t\tdocument: Document\n\t) {\n\t\tif (\n\t\t\tconfigDocument.formulaValidateMultiple &&\n\t\t\tconfigDocument.formulaValidateMultiple.length > 0\n\t\t) {\n\t\t\tlet data = { statusname: '' };\n\t\t\tif (listDataForm)\n\t\t\t\tfor (const dataForm of listDataForm)\n\t\t\t\t\tfor (const property in dataForm.data)\n\t\t\t\t\t\tdata[property.toLowerCase()] = dataForm.data[property];\n\t\t\tlet formula = this.tokenService.replaceTokensFromListObject(\n\t\t\t\tconfigDocument.name,\n\t\t\t\tconfigDocument.formulaValidateMultiple,\n\t\t\t\tdata\n\t\t\t);\n\t\t\tlet result = eval(formula);\n\t\t\tif (result) {\n\t\t\t\tlet resultArray = JSON.parse(result);\n\n\t\t\t\tif (resultArray && resultArray.length > 0) {\n\t\t\t\t\t//Then document must have archives\n\t\t\t\t\tif (!document || document.listArchive.length !== resultArray.length) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { SesionForm } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class SesionFormService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It returns the list of form by prom codigo */\n\tgetByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'sesionForm/getByPromCodigo',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCodigo.toString()) }\n\t\t);\n\t}\n\n\t/** It saves a form */\n\tsave(sesionForm: SesionForm): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'sesionForm/save',\n\t\t\tsesionForm,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\nimport { AuthenticationService } from './authentication.service';\nimport { Observable, Subject } from 'rxjs';\nimport { SponsorshipLetter } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class SponsorshipLetterService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(\n\t\t@Inject('environment') private environment,\n\t\tprivate httpClient: HttpClient,\n\t\tprivate authService: AuthenticationService\n\t) {}\n\n\tprivate subjectValidateSponsorshipLetter = new Subject<boolean>();\n\n\t/** It returns the sponsorship letter by promCodigo */\n\tgetListByPromCodigo(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'sponsorship-letter/getByPromCodigo',\n\t\t\t{ params: new HttpParams().set('promCodigo', id.toString()) }\n\t\t);\n\t}\n\n\t/** It returns the sponsorship letter by id */\n\tgetById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'sponsorship-letter/getById',\n\t\t\t{ params: new HttpParams().set('id', id.toString()) }\n\t\t);\n\t}\n\n\t/** It deletes a form by id */\n\tdelete(id): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + 'sponsorship-letter/delete',\n\t\t\t{ params: new HttpParams().set('id', id) }\n\t\t);\n\t}\n\n\t/** It saves a sponsorship-letter */\n\tsave(sponsorshipLetter: SponsorshipLetter): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'sponsorship-letter/save',\n\t\t\tsponsorshipLetter,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\t/**\n\t * It returns the html by combination of number, promCodigo and id sponsorshipletter {html : '<html>..</html>'}\n\t * @param promCodigo prom code\n\t * @param number number of the applicationthis is NOT the application id\n\t * @param id sponsorship-letter id\n\t */\n\tgetHtmlByNumberAndPromCodigo(promCodigo: number, number: string, id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'sponsorship-letter/getHtmlByNumberAndPromCodigo',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t.set('id', id.toString())\n\t\t\t\t\t.set('number', number)\n\t\t\t}\n\t\t);\n\t}\n\n\tgetSubjectValidateSponsorshipLetter(): Observable<boolean> {\n\t\treturn this.subjectValidateSponsorshipLetter.asObservable();\n\t}\n\n\tsetSubjectValidateSponsorshipLetter(getSubjectValidateSponsorshipLetter: boolean = false) {\n\t\tthis.subjectValidateSponsorshipLetter.next(getSubjectValidateSponsorshipLetter);\n\t}\n\n\t/** It saves a sponsorship-letter array */\n\tsaveAll(sponsorshipLetter: SponsorshipLetter[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'sponsorship-letter/saveAll',\n\t\t\tsponsorshipLetter,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { AuthenticationService } from './authentication.service';\nimport { HEADER_JSON, PliCnfStatus } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class StatusService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(\n\t\t@Inject('environment') private environment: any,\n\t\tprivate httpClient: HttpClient,\n\t\tprivate authService: AuthenticationService\n\t) {}\n\n\t/** It returns all list of status by prom code */\n\tgetById(statusId: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfStatus/getById',\n\t\t\t{ params: new HttpParams().set('statusId', statusId.toString()) }\n\t\t);\n\t}\n\n\t/** It returns all list of status by prom code */\n\tgetAllByPromCode(promCode: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfStatus/getAllByPromCode',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCode.toString()) }\n\t\t);\n\t}\n\n\tgetAllByPromCodeLight(promCode: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfStatus/getAllByPromCodeLight',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCode.toString()) }\n\t\t);\n\t}\n\n\t/** It returns all list of status by prom code */\n\tgetAllByPromCodeAndName(promCode: number, name: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfStatus/getAllByPromCodeAndName',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCode.toString()).set('name', name) }\n\t\t);\n\t}\n\n\tgetFinalStatusByStaticInteraction(\n\t\tpromCode: number,\n\t\tstaticInteractionId: number\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfStatus/getFinalStatusByStaticInteraction',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCode.toString())\n\t\t\t\t\t.set('staticInteractionId', staticInteractionId.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It returns all list of status by prom code */\n\tgetInitialStatusByPromCode(promCode: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfStatus/getInitialStatusByPromCode',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCode.toString()) }\n\t\t);\n\t}\n\n\tsave(cnfStatus: PliCnfStatus): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfStatus/save',\n\t\t\tcnfStatus,\n\t\t\tHEADER_JSON\n\t\t);\n\t}\n\n\tgetStatusByPromcodigoAndPageSection(promCodigo: number, pageId: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfStatus/getStatusByPromcodigoAndPageSection',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t.set('pageId', pageId.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tgetStatusByPromCodigoAndCategoryId(promCodigo: number, categoryId: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfStatus/getStatusByPromCodigoAndCategoryId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t.set('categoryId', categoryId.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tgetByInitialStatusAndPromCodigoAndCategoryId(\n\t\tinitialStatus: boolean,\n\t\tpromCodigo: number,\n\t\tcategoryId: number\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfStatus/getByInitialStatusAndPromCodigoAndCategoryId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('initialStatus', initialStatus.toString())\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t.set('categoryId', categoryId.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tgetByPromCodigoAndFinalStatus(promCodigo: number, finalStatus: boolean): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfStatus/getByPromCodigoAndFinalStatus',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t.set('finalStatus', finalStatus.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tgetInitialStatusByStaticInteraction(promCodigo: string, staticInteractionId: string) {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfStatus/getInitialStatusByStaticInteraction',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo)\n\t\t\t\t\t.set('staticInteractionId', staticInteractionId)\n\t\t\t}\n\t\t);\n\t}\n\n\tgetConfigCloningStatusMap(lStatus: PliCnfStatus[]): Observable<any> {\n\t\treturn this.httpClient.post<PliCnfStatus[]>(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfStatus/getConfigCloningStatusMap',\n\t\t\tlStatus\n\t\t);\n\t}\n\n\tputStatusAfterApplicationFinished(lPliCnfStatus: PliCnfStatus[]): Observable<any> {\n\t\treturn this.httpClient.put<PliCnfStatus[]>(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfStatus/putStatusAfterApplicationFinished',\n\t\t\tlPliCnfStatus,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { HttpClient, HttpParams } from '@angular/common/http';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class UserService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It returns the list of users */\n\tgetAll(cargarListas: boolean): Observable<any> {\n\t\treturn this.httpClient.get(this.environment.host.backend.plis + 'config/usuario/getAll', {\n\t\t\tparams: new HttpParams().set('cargarListas', cargarListas.toString())\n\t\t});\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliCnfText } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfBudgetService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It remove the redis cache of budget by cpreCode and promCode */\n\tremoveFromCache(cpreCode: number, promCode: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfBudget/removeFromCache',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('cpreCode', cpreCode.toString())\n\t\t\t\t\t.set('promCode', promCode.toString())\n\t\t\t}\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { HEADER_JSON, AuthenticationUtil } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class ConfigurationService {\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/** Get the actual date */\n\tgetActualDate(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'configuration/getActualDate'\n\t\t);\n\t}\n\n\t/** Get the actual date */\n\tgetDate(date: string = undefined): Observable<any> {\n\t\tdate = date === undefined ? null : date;\n\t\t// if (date !== undefined) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'configuration/getDate',\n\t\t\tdate,\n\t\t\tHEADER_JSON\n\t\t);\n\t\t// } else {\n\t\t// \treturn this.httpClient.post(\n\t\t// \t\tthis.environment.host.backend.configuration + 'configuration/getDate',\n\t\t// \t\tnull,\n\t\t// \t\tHEADER_JSON\n\t\t// \t);\n\t\t// }\n\t\t// return this.httpClient.get(\n\t\t// \tthis.environment.host.backend.configuration + 'configuration/getActualDate'\n\t\t// );\n\t}\n\n\tgetFileByUrl(url, name): Observable<any> {\n\t\tlet headers = new HttpHeaders();\n\t\theaders.set('Accept', 'application/pdf');\n\t\theaders.set('Authorization', 'Bearer ' + AuthenticationUtil.getToken());\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'configuration/getFileByUrl',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('url', url).set('name', name),\n\t\t\t\theaders: headers,\n\t\t\t\tresponseType: 'blob'\n\t\t\t}\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { BudgetSimulation, BudgetSimulatorCalculationInput } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class BudgetSimulationService {\n\treadonly PREFIX = 'budget_simulation/';\n\treadonly PREFIX_BUDGET = 'budget/';\n\treadonly URLS = {\n\t\tfindByPromCodigo: this.PREFIX + 'find/prom_codigo',\n\t\tfindByApplicationId: this.PREFIX + 'find/application',\n\t\tsave: this.PREFIX + 'save',\n\t\tsaveAll: this.PREFIX + 'save_all',\n\t\tfindById: this.PREFIX + 'find',\n\t\tfindByApplications: this.PREFIX + 'find/applications',\n\t\tgetBudgetSimulatorCalculation: this.PREFIX_BUDGET + 'getBudgetSimulatorCalculation',\n\t\tgetTotalInsuranceAmount: this.PREFIX_BUDGET + 'getTotalInsuranceAmount'\n\t};\n\treadonly headerJson = {\n\t\theaders: new HttpHeaders({\n\t\t\t'Content-Type': 'application/json'\n\t\t})\n\t};\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tgetByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + this.URLS.findByPromCodigo,\n\t\t\t{ params: new HttpParams().set('promCodigo', promCodigo.toString()) }\n\t\t);\n\t}\n\n\tgetByApplicationId(applicationId: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + this.URLS.findByApplicationId,\n\t\t\t{ params: new HttpParams().set('applicationId', applicationId) }\n\t\t);\n\t}\n\n\tgetById(id: string): Observable<any> {\n\t\treturn this.httpClient.get(this.environment.host.backend.frontoffice + this.URLS.findById, {\n\t\t\tparams: new HttpParams().set('id', id)\n\t\t});\n\t}\n\n\tgetByApplications(lApplicationId: string[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + this.URLS.findByApplications,\n\t\t\tlApplicationId,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tsave(budgetSimulation: BudgetSimulation): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + this.URLS.save,\n\t\t\tbudgetSimulation,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tsaveAll(budgetSimulations: BudgetSimulation[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + this.URLS.saveAll,\n\t\t\tbudgetSimulations,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tgetBudgetSimulatorCalculation(\n\t\tbudgetSimulations: BudgetSimulatorCalculationInput\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + this.URLS.getBudgetSimulatorCalculation,\n\t\t\tbudgetSimulations,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tgetTotalInsuranceAmount(\n\t\tbudgetSimulations: BudgetSimulatorCalculationInput\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + this.URLS.getTotalInsuranceAmount,\n\t\t\tbudgetSimulations,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { PliCnfAcuityFields } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfAcuityFieldsService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tget(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfAcuityFields/get`\n\t\t);\n\t}\n\n\tgetPliCnfAcuityFieldsByOwnerId(ownerId: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfAcuityFields/getPliCnfAcuityFieldsByOwnerId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('ownerId', String(ownerId))\n\t\t\t}\n\t\t);\n\t}\n\n\tsave(pliCnfAcuityFields: PliCnfAcuityFields): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfAcuityFields/save`,\n\t\t\tpliCnfAcuityFields\n\t\t);\n\t}\n\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable, Subject } from 'rxjs';\nimport { Application, Codebtor, Guarantee } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class GuaranteeService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tprivate subjectValidateSignDocument = new Subject<boolean>();\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tsendNotificationToCodebtors(application: Application, codebtor: Codebtor): Observable<any> {\n\t\tlet body = { application: application, codebtor: codebtor };\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'guarantee/sendNotificationToCodebtor',\n\t\t\tbody,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tsaveGuaranteeDocumentsGenerated(applicationId: string, guarantee: Guarantee): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'guarantee/saveGuaranteeDocumentsGenerated?applicationId=' +\n\t\t\t\tapplicationId,\n\t\t\tguarantee\n\t\t);\n\t}\n\n\tverifyTransaction(transactionId: string) {\n\t\tlet headers = {\n\t\t\theaders: new HttpHeaders({\n\t\t\t\tapiKey: this.environment.ado.key,\n\t\t\t\treturnDocuments: 'true'\n\t\t\t})\n\t\t};\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.ado.url +\n\t\t\t\t'api/' +\n\t\t\t\tthis.environment.ado.projectName +\n\t\t\t\t'/Validation/' +\n\t\t\t\ttransactionId +\n\t\t\t\t'?returnImages=false',\n\t\t\theaders\n\t\t);\n\t}\n\n\tgetSubjectValidateSignDocument(): Observable<boolean> {\n\t\treturn this.subjectValidateSignDocument.asObservable();\n\t}\n\n\tsetSubjectValidateSignDocument(getSubjectValidateSignDocument: boolean = false) {\n\t\tthis.subjectValidateSignDocument.next(getSubjectValidateSignDocument);\n\t}\n\n\tsave(applicationId: string, guarantee: Guarantee): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'guarantee/save',\n\t\t\tguarantee,\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('applicationId', String(applicationId))\n\t\t\t}\n\t\t);\n\t}\n\n\tsaveInitGuarantee(applicationId: string): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'guarantee/saveInitGuarantee',\n\t\t\tnull,\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('applicationId', String(applicationId))\n\t\t\t}\n\t\t);\n\t}\n\n\tsaveGuaranteeCalculated(applicationId: string, guarantee: Guarantee): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'guarantee/saveGuaranteeCalculated',\n\t\t\tguarantee,\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('applicationId', String(applicationId))\n\t\t\t}\n\t\t);\n\t}\n\n\tsaveGuaranteeCalculatedByAppList(\n\t\tlApplicationId: string[],\n\t\tguarantee: Guarantee\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'guarantee/saveGuaranteeCalculatedByAppList',\n\t\t\t{\n\t\t\t\tguarantee: guarantee,\n\t\t\t\tlApplicationId: lApplicationId\n\t\t\t}\n\t\t);\n\t}\n\n\tdelete(applicationId: string): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.frontoffice + 'guarantee/delete',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('applicationId', String(applicationId))\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It returns the new status by transactionId */\n\tverifyStatusTransactionId(transactionId: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'integrationADO/verifyStatus',\n\t\t\t{ params: new HttpParams().set('transactionId', transactionId) }\n\t\t);\n\t}\n\n\t/**\n\t * Create a form and call ADO with the applications Id\n\t * @param applicationIds\n\t * @param keyAdo\n\t * @param projectNameAdo\n\t * @param callbackAdo\n\t * @param urlAdo\n\t */\n\tsendFormWithSignDocuments(\n\t\tapplicationIds: string,\n\t\tpromCodigo: number,\n\t\tkeyAdo: string,\n\t\tprojectNameAdo: string,\n\t\tcallbackAdo: string,\n\t\turlAdo: string\n\t): Promise<any> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\ttry {\n\t\t\t\tconst form = document.createElement('form');\n\t\t\t\tform.method = 'post';\n\t\t\t\tform.action = urlAdo + 'validar-persona';\n\t\t\t\tlet params = {\n\t\t\t\t\tcallback: callbackAdo,\n\t\t\t\t\tkey: keyAdo,\n\t\t\t\t\tprojectName: projectNameAdo,\n\t\t\t\t\tproduct: 2,\n\t\t\t\t\tParameters:\n\t\t\t\t\t\t'{\"applicationId\":\"' +\n\t\t\t\t\t\tapplicationIds +\n\t\t\t\t\t\t'\",\"promCodigo\":\"' +\n\t\t\t\t\t\tpromCodigo +\n\t\t\t\t\t\t'\"}'\n\t\t\t\t};\n\n\t\t\t\tfor (let key in params) {\n\t\t\t\t\tif (params.hasOwnProperty(key)) {\n\t\t\t\t\t\tconst hiddenField = document.createElement('input');\n\t\t\t\t\t\thiddenField.type = 'hidden';\n\t\t\t\t\t\thiddenField.name = key;\n\t\t\t\t\t\thiddenField.value = params[key];\n\n\t\t\t\t\t\tform.appendChild(hiddenField);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tdocument.body.appendChild(form);\n\t\t\t\tform.submit();\n\t\t\t\tresolve(applicationIds);\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t}\n\t\t});\n\t}\n}\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport {\n\tApplication,\n\tChangeStatusByCategoryDto,\n\tCodebtor,\n\tCreditReviewerObservation,\n\tDocument\n} from 'ng-pli-util';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class CreditStudyService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tprivate creditStudySubjectValidation = new Subject<any>();\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tgetCreditStudySubjectValidation(): Observable<any> {\n\t\treturn this.creditStudySubjectValidation.asObservable();\n\t}\n\n\tsetCreditStudySubjectValidation(isComplete: boolean, pageSectionKey: string) {\n\t\tthis.creditStudySubjectValidation.next({ isComplete, pageSectionKey });\n\t}\n\n\tgetCreditStudyByApplicationId(applicationId: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'creditStudy/getCreditStudy',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('applicationId', applicationId)\n\t\t\t}\n\t\t);\n\t}\n\n\tgetListCodebtors(applicationId: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'creditStudy/getCodebtors',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('applicationId', applicationId)\n\t\t\t}\n\t\t);\n\t}\n\n\tgetCodebtorByIdentification(applicationId: string, identification: string) {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'creditStudy/getCodebtorByIdentification',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', applicationId)\n\t\t\t\t\t.set('identification', identification)\n\t\t\t}\n\t\t);\n\t}\n\n\tgetCodebtorByApplicationIdAndIdentification(\n\t\tapplicationId: string,\n\t\tidentification: string\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'creditStudy/getCodebtorByApplicationIdAndIdentification',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', applicationId)\n\t\t\t\t\t.set('identification', identification)\n\t\t\t}\n\t\t);\n\t}\n\n\tsaveCodebtorDocument(applicationId: string, identification: string, doc: Document) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'creditStudy/saveCodebtorDocument',\n\t\t\tdoc,\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', applicationId)\n\t\t\t\t\t.set('identification', identification),\n\t\t\t\theaders: this.headerJson.headers\n\t\t\t}\n\t\t);\n\t}\n\n\tsaveSelectedReviewerDocument(applicationId: string, doc: Document) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'creditStudy/saveSelectedReviewerDocument',\n\t\t\tdoc,\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('applicationId', applicationId),\n\t\t\t\theaders: this.headerJson.headers\n\t\t\t}\n\t\t);\n\t}\n\n\tsaveCodebtorResponsabilitiesAnswer(\n\t\tapplicationId: string,\n\t\tidentification: string,\n\t\tanswer: boolean\n\t) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'creditStudy/saveCodebtorResponsabilitiesAnswer',\n\t\t\t{},\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', applicationId)\n\t\t\t\t\t.set('identification', identification)\n\t\t\t\t\t.set('answer', answer.toString()),\n\t\t\t\theaders: this.headerJson.headers\n\t\t\t}\n\t\t);\n\t}\n\n\tremoveCodebtorResponsabilitiesAnswer(applicationId: string, identification: string) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'creditStudy/removeCodebtorResponsabilitiesAnswer',\n\t\t\t{},\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', applicationId)\n\t\t\t\t\t.set('identification', identification),\n\t\t\t\theaders: this.headerJson.headers\n\t\t\t}\n\t\t);\n\t}\n\n\tsaveCodebtorHabeasDataAnswer(applicationId: string, identification: string, answer: boolean) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'creditStudy/saveCodebtorHabeasDataAnswer',\n\t\t\t{},\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', applicationId)\n\t\t\t\t\t.set('identification', identification)\n\t\t\t\t\t.set('answer', answer.toString()),\n\t\t\t\theaders: this.headerJson.headers\n\t\t\t}\n\t\t);\n\t}\n\n\tsaveCreditReviewerDocument(applicationId: string, identification: string, doc: Document) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'creditStudy/saveCreditReviewerDocument',\n\t\t\tdoc,\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', applicationId)\n\t\t\t\t\t.set('identification', identification),\n\t\t\t\theaders: this.headerJson.headers\n\t\t\t}\n\t\t);\n\t}\n\n\tgetSelectedCreditReviewerDocuments(applicationId: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'creditStudy/getSelectedCreditReviewerDocuments',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('applicationId', applicationId.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tgetSelectedCreditReviewerDocumentByConfigurationDocumentId(\n\t\tapplicationId: string,\n\t\tconfigurationDocumentId: number\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'creditStudy/getSelectedCreditReviewerDocumentByConfigurationDocumentId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', applicationId.toString())\n\t\t\t\t\t.set('configurationDocumentId', configurationDocumentId.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tgetCodebtorDocuments(applicationId: string, identification: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'creditStudy/getCodebtorDocuments',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', applicationId.toString())\n\t\t\t\t\t.set('identification', identification.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tgetCodebtorDocumentByConfigurationDocumentId(\n\t\tapplicationId: string,\n\t\tidentification: string,\n\t\tconfigurationDocumentId: number\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'creditStudy/getCodebtorDocumentByConfigurationDocumentId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', applicationId.toString())\n\t\t\t\t\t.set('identification', identification.toString())\n\t\t\t\t\t.set('configurationDocumentId', configurationDocumentId.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tgetCodebtorCreditReviewerDocuments(\n\t\tapplicationId: string,\n\t\tidentification: string\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'creditStudy/getCodebtorCreditReviewerDocuments',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', applicationId.toString())\n\t\t\t\t\t.set('identification', identification.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tgetCodebtorCreditReviewerDocumentByConfigurationDocumentId(\n\t\tapplicationId: string,\n\t\tidentification: string,\n\t\tconfigurationDocumentId: number\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'creditStudy/getCodebtorCreditReviewerDocumentByConfigurationDocumentId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', applicationId.toString())\n\t\t\t\t\t.set('identification', identification.toString())\n\t\t\t\t\t.set('configurationDocumentId', configurationDocumentId.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tsaveCodebtorCreditReviewerObservation(\n\t\tapplicationId: string,\n\t\tidentification: string,\n\t\tcodebtor: Codebtor\n\t) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'creditStudy/saveCodebtorCreditReviewerObservation',\n\t\t\tcodebtor,\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', applicationId)\n\t\t\t\t\t.set('identification', identification),\n\t\t\t\theaders: this.headerJson.headers\n\t\t\t}\n\t\t);\n\t}\n\n\tsaveCodebtorFormData(applicationId: string, codebtor: Codebtor) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'creditStudy/saveCodebtorFormData',\n\t\t\tcodebtor,\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('applicationId', applicationId),\n\t\t\t\theaders: this.headerJson.headers\n\t\t\t}\n\t\t);\n\t}\n\n\tupdateCodebtorState(applicationId: string, codebtor: Codebtor) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'creditStudy/updateCodebtorState',\n\t\t\tcodebtor,\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('applicationId', applicationId),\n\t\t\t\theaders: this.headerJson.headers\n\t\t\t}\n\t\t);\n\t}\n\n\tupdateCompletedFlag(application: Application, completed: boolean, idFlag: number) {\n\t\treturn this.httpClient.put(\n\t\t\tthis.environment.host.backend.frontoffice + 'creditStudy/updateCompletedFlag',\n\t\t\tapplication,\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('completed', completed.toString())\n\t\t\t\t\t.set('idFlag', idFlag.toString()),\n\t\t\t\theaders: this.headerJson.headers\n\t\t\t}\n\t\t);\n\t}\n\n\tacceptConsultation(application: Application, response: boolean) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'creditStudy/acceptConsultation',\n\t\t\tapplication,\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('response', response.toString()),\n\t\t\t\theaders: this.headerJson.headers\n\t\t\t}\n\t\t);\n\t}\n\n\tsaveCodebtor(applicationId: string, codebtor: Codebtor) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'creditStudy/saveCodebtor',\n\t\t\tcodebtor,\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('applicationId', applicationId),\n\t\t\t\theaders: this.headerJson.headers\n\t\t\t}\n\t\t);\n\t}\n\n\tremoveCodebtor(applicationId: string, identification: string) {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.frontoffice + 'creditStudy/removeCodebtor',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', applicationId)\n\t\t\t\t\t.set('identification', identification.toString()),\n\t\t\t\theaders: this.headerJson.headers\n\t\t\t}\n\t\t);\n\t}\n\n\tsaveCodebtorCheckSum(applicationId: string, codebtor: Codebtor) {\n\t\treturn this.httpClient.put(\n\t\t\tthis.environment.host.backend.frontoffice + 'creditStudy/saveCodebtorCheckSum',\n\t\t\tcodebtor,\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('applicationId', applicationId),\n\t\t\t\theaders: this.headerJson.headers\n\t\t\t}\n\t\t);\n\t}\n\n\tupdateCodebtorDateForm(applicationId: string, codebtor: Codebtor) {\n\t\treturn this.httpClient.put(\n\t\t\tthis.environment.host.backend.frontoffice + 'creditStudy/updateCodebtorDateForm',\n\t\t\tcodebtor,\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('applicationId', applicationId),\n\t\t\t\theaders: this.headerJson.headers\n\t\t\t}\n\t\t);\n\t}\n\n\tsaveAllCodebtors(applicationId: string, lCodebtor: Codebtor[]) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'creditStudy/saveAllCodebtors',\n\t\t\tlCodebtor,\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('applicationId', applicationId),\n\t\t\t\theaders: this.headerJson.headers\n\t\t\t}\n\t\t);\n\t}\n\n\tcodebtorsSendInitialEmail(applicationId: string) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'creditStudy/codebtorsSendInitialEmail',\n\t\t\tnull,\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('applicationId', applicationId),\n\t\t\t\theaders: this.headerJson.headers\n\t\t\t}\n\t\t);\n\t}\n\n\tsaveBeneficiaryCreditReviewerObservation(\n\t\tapplicationId: string,\n\t\tlObservations: CreditReviewerObservation[]\n\t) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'creditStudy/saveBeneficiaryCreditReviewerObservation',\n\t\t\tlObservations,\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('applicationId', applicationId),\n\t\t\t\theaders: this.headerJson.headers\n\t\t\t}\n\t\t);\n\t}\n\n\tgetBeneficiaryCreditReviewerObservation(applicationId: string) {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'creditStudy/getBeneficiaryCreditReviewerObservation',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('applicationId', applicationId),\n\t\t\t\theaders: this.headerJson.headers\n\t\t\t}\n\t\t);\n\t}\n\tacceptConsultationCodebtor(\n\t\tapplication: Application,\n\t\tcodebtorIdentification: string,\n\t\tresponse: boolean\n\t) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'creditStudy/acceptConsultationCodebtor',\n\t\t\tapplication,\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('response', response.toString())\n\t\t\t\t\t.set('codebtorIdentification', codebtorIdentification.toString()),\n\t\t\t\theaders: this.headerJson.headers\n\t\t\t}\n\t\t);\n\t}\n\n\tenableCodebtor(\n\t\tapplicationId: string,\n\t\tcodebtor: string,\n\t\tchangeStatusByCategoryDto: ChangeStatusByCategoryDto\n\t) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'creditStudy/enableCodebtor',\n\t\t\tchangeStatusByCategoryDto,\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', applicationId)\n\t\t\t\t\t.set('codebtor', codebtor),\n\t\t\t\theaders: this.headerJson.headers\n\t\t\t}\n\t\t);\n\t}\n\n\tcompleteCreditStudyInfo(applicationId: string) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'creditStudy/completeCreditStudyInfo',\n\t\t\tnull,\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('applicationId', applicationId),\n\t\t\t\theaders: this.headerJson.headers\n\t\t\t}\n\t\t);\n\t}\n\n\tgetApprovedCodebtors(applicationId: string, promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'creditStudy/getApprovedCodebtors',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', String(applicationId))\n\t\t\t\t\t.set('promCodigo', String(promCodigo))\n\t\t\t}\n\t\t);\n\t}\n\n\tgetApprovedCodebtorsByAppId(lAppId: string[], promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'creditStudy/getApprovedCodebtorsByAppId',\n\t\t\tlAppId,\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('promCodigo', promCodigo.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tcheckCreditStudyFinalStatus(applicationId: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'creditStudy/checkCreditStudyFinalStatus',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('applicationId', applicationId)\n\t\t\t}\n\t\t);\n\t}\n\n\tupdateCreditStudyDocuments(lCreditStudyDocumentTO: any[]): Observable<any> {\n\t\treturn this.httpClient.put(\n\t\t\tthis.environment.host.backend.frontoffice + 'creditStudy/updateCreditStudyDocuments',\n\t\t\tlCreditStudyDocumentTO,\n\t\t\t{\n\t\t\t\theaders: this.headerJson.headers\n\t\t\t}\n\t\t);\n\t}\n\n\texternalReviewerRejectCreditStudy(\n\t\tapplicationId: string,\n\t\tpromCodigo: number,\n\t\tchangeStatusByCategoryDto: ChangeStatusByCategoryDto\n\t) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'creditStudy/externalReviewerRejectCreditStudy',\n\t\t\tchangeStatusByCategoryDto,\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', applicationId)\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t}\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { GuaranteeDocument, ResponsableGuarantee } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class GuaranteeDocumentService {\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tgenerateDocument(guaranteeDocument: GuaranteeDocument[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'guaranteeDocument/generateDocument',\n\t\t\tguaranteeDocument\n\t\t);\n\t}\n\n\tupdateDocuments(guaranteeDocument: GuaranteeDocument[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'guaranteeDocument/updateDocuments',\n\t\t\tguaranteeDocument\n\t\t);\n\t}\n\n\tgetDocuments(applicationId: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'guaranteeDocument/getDocuments',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('applicationId', String(applicationId))\n\t\t\t}\n\t\t);\n\t}\n\n\tgetStatusNameByIdentification(applicationId: string, identification: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'guaranteeDocument/getStatusNameByApplicationIdAndIdentification',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', String(applicationId))\n\t\t\t\t\t.set('identification', String(identification))\n\t\t\t}\n\t\t);\n\t}\n\n\tdeleteDocuments(applicationId: string): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.frontoffice + 'guaranteeDocument/deleteDocuments',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('applicationId', String(applicationId))\n\t\t\t}\n\t\t);\n\t}\n\n\tsaveSignatureProcessStarted(\n\t\tapplicationId: string,\n\t\tresponsableGuarantee: ResponsableGuarantee\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'guaranteeDocument/saveSignatureProcessStarted',\n\t\t\tresponsableGuarantee,\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('applicationId', String(applicationId))\n\t\t\t}\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { HEADER_JSON } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class CommonInfoService {\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/**\n\t * Get properties info\n\t */\n\tgetBackofficePropertyNames(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'common-info/getPropertyNames'\n\t\t);\n\t}\n\n\t/**\n\t * Get properties info\n\t */\n\tgetConfigurationPropertyNames(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'common-info/getPropertyNames'\n\t\t);\n\t}\n\n\t/**\n\t * Get properties info\n\t */\n\tgetFrontofficePropertyNames(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'common-info/getPropertyNames'\n\t\t);\n\t}\n\n\t/**\n\t * Get properties info\n\t */\n\tgetSegmentationPropertyNames(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation + 'common-info/getPropertyNames'\n\t\t);\n\t}\n\n\t/**\n\t * Get properties info\n\t */\n\tgetCommunicationPropertyNames(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.communication + 'common-info/getPropertyNames'\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { HEADER_JSON, PliCnfMenuForm } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfMenuFormService {\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/** It returns all list of status by prom code */\n\tgetById(statusId: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfMenuForm/getById',\n\t\t\t{ params: new HttpParams().set('statusId', statusId.toString()) }\n\t\t);\n\t}\n\n\t/** It returns all list of status by prom code */\n\tgetAllByPromCode(promCode: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfMenuForm/getAllByPromCode',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCode.toString()) }\n\t\t);\n\t}\n\n\tsave(lPliCnfMenuForm: PliCnfMenuForm[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfMenuForm/save',\n\t\t\tlPliCnfMenuForm,\n\t\t\tHEADER_JSON\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliCnfGuaranteeDocumentsTemplate } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfGuaranteeDocumentsTemplateService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tgetAllByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfGuaranteeDocumentsTemplate/getAllByPromCodigo',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCodigo.toString()) }\n\t\t);\n\t}\n\n\tsave(pliCnfGuaranteeDocumentsTemplate: PliCnfGuaranteeDocumentsTemplate): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfGuaranteeDocumentsTemplate/save',\n\t\t\tpliCnfGuaranteeDocumentsTemplate,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tdelete(id: number): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfGuaranteeDocumentsTemplate/delete',\n\t\t\t{ params: new HttpParams().set('id', id.toString()) }\n\t\t);\n\t}\n\n\tgetById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfGuaranteeDocumentsTemplate/getById',\n\t\t\t{ params: new HttpParams().set('id', id.toString()) }\n\t\t);\n\t}\n\n\tconfigCloningGDocuments(lGdocs: PliCnfGuaranteeDocumentsTemplate[]) {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfGuaranteeDocumentsTemplate/configCloningGDocuments`,\n\t\t\tlGdocs\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { ResponsableGuarantee } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class IntegrationADOService {\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tsaveTransactionAndState(\n\t\tapplicationId: string,\n\t\tresponsableGuarantee: ResponsableGuarantee\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'integrationADO/saveTransactionAndState',\n\t\t\tresponsableGuarantee,\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('applicationId', String(applicationId))\n\t\t\t}\n\t\t);\n\t}\n\n\tsaveTransactionAndStateByAppList(\n\t\tlApplicationId: string[],\n\t\tresponsableGuarantee: ResponsableGuarantee\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'integrationADO/saveTransactionAndStateByAppList',\n\t\t\t{\n\t\t\t\tresponsableGuarantee: responsableGuarantee,\n\t\t\t\tlApplicationId: lApplicationId\n\t\t\t}\n\t\t);\n\t}\n\n\tsaveSignedDocuments(\n\t\tapplicationId: string,\n\t\tcarta: string,\n\t\tcontrato: string,\n\t\tpagare: string\n\t): Observable<any> {\n\t\tlet body = {\n\t\t\tapplicationId: applicationId,\n\t\t\tcarta: carta,\n\t\t\tcontrato: contrato,\n\t\t\tpagare: pagare\n\t\t};\n\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'integrationADO/saveSignedDocuments',\n\t\t\tbody\n\t\t);\n\t}\n\n\tsaveTransactionAndStateManual(\n\t\tapplicationId: string,\n\t\tcarta: string,\n\t\tcontrato: string,\n\t\tpagare: string,\n\t\tconfigurationDocumentId: number\n\t): Observable<any> {\n\t\tlet body = {\n\t\t\tapplicationId: applicationId,\n\t\t\tcarta: carta,\n\t\t\tcontrato: contrato,\n\t\t\tpagare: pagare,\n\t\t\tconfigurationDocumentId: configurationDocumentId\n\t\t};\n\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'integrationADO/saveTransactionAndStateManual',\n\t\t\tbody\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { GuaranteeEnrollment } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class GuaranteeEnrollmentService {\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tsave(guaranteeEnrollment: GuaranteeEnrollment): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'guaranteeEnrollment/save',\n\t\t\tguaranteeEnrollment\n\t\t);\n\t}\n\n\tgetGuaranteeEnrollmentByIdentificationAndPatCodigo(\n\t\tidentification: string,\n\t\tpatCodigo: number\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'guaranteeEnrollment/getGuaranteeEnrollmentByIdentificationAndPatCodigo',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('identification', String(identification))\n\t\t\t\t\t.set('patCodigo', String(patCodigo))\n\t\t\t}\n\t\t);\n\t}\n\n\tupdateGuaranteeEnrollment(guaranteeEnrollment: GuaranteeEnrollment): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice +\n\t\t\t\t'guaranteeEnrollment/updateGuaranteeEnrollment',\n\t\t\tguaranteeEnrollment\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliCnfTextOption } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfTextOptionService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tsave(pliCnfTextOption: PliCnfTextOption[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfTextOption/save',\n\t\t\tpliCnfTextOption\n\t\t);\n\t}\n\n\tgetOptionsByPliCnfTextId(pliCnfTextId: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfTextOption/getOptionsByPliCnfTextId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('pliCnfTextId', pliCnfTextId.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tdeleteOptionList(deletePliCnfTextOptions: PliCnfTextOption[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfTextOption/deleteOptionList',\n\t\t\tdeletePliCnfTextOptions\n\t\t);\n\t}\n\n\tdeleteById(id: number): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfTextOption/deleteById',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('id', id.toString())\n\t\t\t}\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { ConfigurationMinisiteTo } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class ConfigurationMinisiteService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tsaveMinisiteData(configurationMinisiteTo: ConfigurationMinisiteTo): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.queue + 'configuration-minisite/saveMinisiteData',\n\t\t\tconfigurationMinisiteTo,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliTagAssignment } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliTagAssignmentService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tsave(pliTagAssignment: PliTagAssignment): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.segmentation + 'pliTagAssignment/save',\n\t\t\tpliTagAssignment\n\t\t);\n\t}\n\n\tgetByUsernameAndActive(username: string, active: boolean): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation + 'pliTagAssignment/getByUsernameAndActive',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('username', username.toString())\n\t\t\t\t\t.set('active', active.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tchangeToDisabled(pliTagAssignment: PliTagAssignment): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.segmentation + 'pliTagAssignment/changeToDisabled',\n\t\t\tpliTagAssignment\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { DataTableParameters, HEADER_JSON, University } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class UniversityService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/** It returns the university by id */\n\tgetById(id: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'university/getById',\n\t\t\t{ params: new HttpParams().set('id', id) }\n\t\t);\n\t}\n\n\t/** It returns the university by fullname */\n\tgetUniversitiesByFullname(fullname: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'university/getUniversitiesByFullname',\n\t\t\t{ params: new HttpParams().set('fullname', fullname) }\n\t\t);\n\t}\n\n\t/** It returns the university by nativeName */\n\tgetUniversitiesByNativeName(nativeName: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'university/getUniversitiesByNativeName',\n\t\t\t{ params: new HttpParams().set('nativeName', nativeName) }\n\t\t);\n\t}\n\n\t/**\n\t * Save the university\n\t * @param university\n\t */\n\tsave(university: University): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'university/save',\n\t\t\tuniversity,\n\t\t\tHEADER_JSON\n\t\t);\n\t}\n\n\t/**\n\t * get multiple records\n\t * @param dataTableParameters\n\t */\n\tgetByDataTablesParameters(dataTableParameters: DataTableParameters) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'university/getByDataTablesParameters',\n\t\t\tdataTableParameters,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { Injectable, Inject } from '@angular/core';\nimport { ProgressBar, HEADER_JSON, EProjectFrom } from 'ng-pli-util';\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class ProgressBarService {\n\turlBase: string = this.environment.host.backend.configuration;\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tsaveProgress(data: ProgressBar, projectFrom: number = EProjectFrom.PLI): Observable<any> {\n\t\tif (projectFrom == EProjectFrom.GIC) {\n\t\t\tthis.urlBase = this.environment.host.backend.gicConfiguration;\n\t\t}\n\t\treturn this.httpClient.post(this.urlBase + 'progressBar/saveProgress', data, HEADER_JSON);\n\t}\n\n\tgetProgress(\n\t\tprocessId: number,\n\t\tprocessType: number,\n\t\tprojectFrom: number = EProjectFrom.PLI\n\t): Observable<any> {\n\t\tif (projectFrom == EProjectFrom.GIC) {\n\t\t\tthis.urlBase = this.environment.host.backend.gicConfiguration;\n\t\t}\n\t\treturn this.httpClient.get(\n\t\t\tthis.urlBase + 'progressBar/getProgressByProcessIdAndProcessType',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('processId', processId.toString())\n\t\t\t\t\t.set('processType', processType.toString())\n\t\t\t}\n\t\t);\n\t}\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { EProjectFrom, ProgressBar } from 'ng-pli-util';\nimport { ToastrService } from 'ngx-toastr';\nimport { ProgressBarService } from '../../services/progress-bar.service';\n\n@Component({\n    selector: 'pli-progress-bar',\n    templateUrl: './progress-bar.component.html',\n    styleUrls: ['./progress-bar.component.css'],\n    standalone: false\n})\nexport class ProgressBarComponent implements OnInit, OnDestroy {\n\t/** */\n\t@Input() processId: number;\n\t/** */\n\t@Input() processType: number;\n\t/** */\n\t@Input() percentage: number;\n\t/** */\n\t@Input() current: number;\n\t/** */\n\t@Input() end: number;\n\n\t// Desde que proyecto se consulta a la barra. 1 Para PLI, 2 GIC\n\t@Input() projectFrom: number = EProjectFrom.PLI; // Enumerado\n\n\t@Output() finishProcess = new EventEmitter<any>();\n\n\tsetTimeOutValue: any;\n\n\tconstructor(\n\t\tprivate toastrService: ToastrService,\n\t\tprivate progressBarService: ProgressBarService\n\t) {\n\t\tthis.setTimeOutValue = 0;\n\t}\n\n\tngOnInit() {\n\t\twindow.addEventListener('beforeunload', this.closeTabCallback);\n\t\tthis.setTimeOutValue = setTimeout(() => {\n\t\t\tthis.initNoIn();\n\t\t}, 1000);\n\t}\n\n\tasync initNoIn() {\n\t\tlet processActual;\n\t\tif (typeof this.processType !== 'undefined') {\n\t\t\tprocessActual = await this.handleProgress();\n\t\t}\n\t\tif (this.percentage === 100) {\n\t\t\tthis.toastrService.success('El proceso se completó con éxito!', 'Proceso completado');\n\t\t\tthis.clearActualTimeout();\n\t\t\tthis.finishProcess.emit(processActual);\n\t\t} else {\n\t\t\tthis.setTimeOutValue = setTimeout(() => {\n\t\t\t\tthis.initNoIn();\n\t\t\t}, 500);\n\t\t}\n\t}\n\n\tasync handleProgress() {\n\t\tlet processActual = await this.progressBarService\n\t\t\t.getProgress(this.processId, this.processType, this.projectFrom)\n\t\t\t.toPromise();\n\t\tlet process: ProgressBar;\n\t\tif (processActual == null) {\n\t\t\tprocess.processId = null;\n\t\t\tprocess.processType = this.processType;\n\t\t\tprocess.percentage = 0;\n\t\t\tprocess.state = '';\n\t\t\tprocess.current = this.current;\n\t\t\tprocess.end = this.end;\n\t\t\tprocessActual = await this.progressBarService\n\t\t\t\t.saveProgress(process, this.projectFrom)\n\t\t\t\t.toPromise();\n\t\t}\n\t\tthis.processId = processActual.processId;\n\t\tthis.percentage = processActual.percentage;\n\n\t\treturn processActual;\n\t}\n\n\tclearActualTimeout() {\n\t\twindow.removeEventListener('beforeunload', this.closeTabCallback);\n\t\tclearTimeout(this.setTimeOutValue);\n\t\tthis.setTimeOutValue = null;\n\t}\n\n\tcloseTabCallback(e) {\n\t\tconst confirmationMessage = 'o/';\n\t\te.returnValue = confirmationMessage; // Gecko, Trident, Chrome 34+\n\t\treturn confirmationMessage; // Gecko, WebKit, Chrome <34\n\t}\n\n\tngOnDestroy() {\n\t\tthis.clearActualTimeout();\n\t}\n}\n","<div class=\"progress\">\n    <div class=\"progress-bar progress-bar-striped active\" role=\"progressbar\" aria-valuemin=\"0\" aria-valuemax=\"100\" [ngStyle]=\"{ width: percentage + '%' }\">\n        {{ percentage }}%\n    </div>\n</div>","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { PliCnfSurveyPdf } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfSurveyPdfService {\n  constructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n  \n  save(pliCnfSurveyPdf: PliCnfSurveyPdf): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfSurveyPdf/save',\n\t\t\tpliCnfSurveyPdf\n\t\t);\n\t}\n\n  getBySurveyId(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfSurveyPdf/getBySurveyId',\n\t\t\t{ params: new HttpParams().set('id', String(id)) }\n\t\t);\n\t}\n\n\tgetById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfSurveyPdf/getById',\n\t\t\t{ params: new HttpParams().set('id', String(id)) }\n\t\t);\n\t}\n\n\tclone(pliCnfSurveyPdf: PliCnfSurveyPdf): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfSurveyPdf/clone',\n\t\t\tpliCnfSurveyPdf\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { SegmentationTokenTO } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class SegmentationTokensService {\n\tcontrollerName = 'segmentation-token';\n\tstatic SURVEY_TOKENS_CATEGORY = 'Encuesta estáticos';\n\tstatic FORM_TOKENS_CATEGORY = 'Encuesta formulario - ';\n\tstatic SEGMENTATION_TOKENS_PREFIX = 'seg_';\n\tstatic STATIC_TOKENS_PREFIX = 'estatico_';\n\tstatic FORM_TOKENS_PREFIX = 'frm_';\n\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tgetTokenSintax(key) {\n\t\treturn '${' + key + '}';\n\t}\n\n\tgetLogicalTokenSintax(key) {\n\t\treturn '$[[' + key + ']]';\n\t}\n\n\tgetHierarchicalTokenSintax(key) {\n\t\treturn '$((' + key + '))';\n\t}\n\n\tgetSurveyStaticTokens(): Observable<any[]> {\n\t\treturn this.httpClient.get<any[]>(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t`${this.controllerName}/getSurveyStaticTokens`\n\t\t);\n\t}\n\n\ttransform(sTokenTO: SegmentationTokenTO): Observable<SegmentationTokenTO> {\n\t\treturn this.httpClient.post<SegmentationTokenTO>(\n\t\t\tthis.environment.host.backend.configuration + `${this.controllerName}/transform`,\n\t\t\tsTokenTO\n\t\t);\n\t}\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { UtilString } from 'ng-pli-util';\nimport { ToastrService } from 'ngx-toastr';\nimport { SegmentationTokensService } from '../../services/segmentation-tokens.service';\n// import { SegmentationTokensService } from 'ng-pli-commons';\n\n@Component({\n    selector: 'app-tokens-calculator',\n    templateUrl: './tokens-calculator.component.html',\n    styleUrls: ['./tokens-calculator.component.css'],\n    standalone: false\n})\nexport class TokensCalculatorComponent implements OnInit {\n\t// Required input (array of visible columns)\n\t@Input() comboColumnWorkInput: any[];\n\tcomboColumnWork: any[];\n\n\tEQ_OPERATOR = '==';\n\tNEQ_OPERATOR = '!=';\n\n\tsource: any[];\n\ttarget: any[];\n\n\tstatic CONDITIONAL_TOKEN_TYPE = 1;\n\tstatic HIERARCHICAL_TOKEN_TYPE = 2;\n\tstatic HIERARCHICAL_CATEGORY = 'Jerárquicos';\n\n\tkeyToCalculate: string;\n\tvalueToCompare: string;\n\tpositiveValue: string;\n\tnegativeValue: string;\n\thierarchicalName: string;\n\ttokenType: string;\n\toperator: string;\n\n\tconstructor(private sTokensService: SegmentationTokensService, private toastr: ToastrService) {\n\t\tthis.tokenType = this.conditionalTokenType;\n\t\tthis.operator = this.EQ_OPERATOR;\n\t\tthis.hierarchicalName = '';\n\t\tthis.positiveValue = '';\n\t\tthis.negativeValue = '';\n\t\tthis.source = [];\n\t\tthis.target = [];\n\t}\n\n\tget conditionalTokenType() {\n\t\treturn TokensCalculatorComponent.CONDITIONAL_TOKEN_TYPE.toString();\n\t}\n\tget hierarchicalTokenType() {\n\t\treturn TokensCalculatorComponent.HIERARCHICAL_TOKEN_TYPE.toString();\n\t}\n\n\tget isConditionalToken() {\n\t\treturn this.conditionalTokenType == this.tokenType;\n\t}\n\n\tngOnInit() {\n\t\tif (!Array.isArray(this.comboColumnWorkInput)) return;\n\t\tconst categories = JSON.parse(JSON.stringify(this.comboColumnWorkInput));\n\t\tcategories.forEach((cat) =>\n\t\t\tcat.items.forEach((c) => (c.value = this.sTokensService.getTokenSintax(c.value)))\n\t\t);\n\t\tthis.comboColumnWork = categories;\n\t\tthis.buildSource();\n\t}\n\n\tbuildSource() {\n\t\tconst options = [];\n\t\tfor (const category of this.comboColumnWorkInput) {\n\t\t\tfor (const field of category.items) {\n\t\t\t\toptions.push({\n\t\t\t\t\tcategory: category.label,\n\t\t\t\t\tlabel: field.label,\n\t\t\t\t\tvalue: this.sTokensService.getTokenSintax(field.value)\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tthis.source = options;\n\t}\n\n\tgenerateConditionalToken() {\n\t\tlet calculatedToken = `'${this.keyToCalculate}' ${this.operator} '${this.valueToCompare}'`;\n\t\tcalculatedToken += ` ? '${this.positiveValue}' : '${this.negativeValue}'`;\n\n\t\tcalculatedToken = this.sTokensService.getLogicalTokenSintax(calculatedToken);\n\t\tUtilString.copyMessage(calculatedToken);\n\t}\n\n\tgenerateHierarchicalTokenType() {\n\t\tif (this.target.length < 2) {\n\t\t\tthis.toastr.error('Es necesario al menos dos campos a evaluar');\n\t\t\treturn;\n\t\t}\n\t\tlet calculatedToken = this.target.map((t) => `'${t.value}'`).join(' || ');\n\t\tcalculatedToken = this.sTokensService.getHierarchicalTokenSintax(calculatedToken);\n\t\tUtilString.copyMessage(calculatedToken);\n\t\treturn calculatedToken;\n\t}\n\n\tuseCondition() {\n\t\tif (this.hierarchicalName.length < 1) {\n\t\t\tthis.toastr.error('Para usar como condición es necesario un nombre');\n\t\t\treturn;\n\t\t}\n\t\tconst item = {\n\t\t\tlabel: this.hierarchicalName,\n\t\t\tvalue: this.generateHierarchicalTokenType()\n\t\t};\n\t\tconst category = this.comboColumnWork.find(\n\t\t\t(cw) => cw.label == TokensCalculatorComponent.HIERARCHICAL_CATEGORY\n\t\t);\n\t\tthis.hierarchicalToConditional(category, item);\n\t\tthis.resetValues(true);\n\t\tthis.tokenType = this.conditionalTokenType.toString();\n\t\tthis.keyToCalculate = item.value;\n\t}\n\n\thierarchicalToConditional(category, item) {\n\t\tif (category) {\n\t\t\tconst it = category.items.find((i) => i.label == item.label);\n\t\t\tif (it) {\n\t\t\t\tit.value = item.value;\n\t\t\t} else {\n\t\t\t\tcategory.items.push(item);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.comboColumnWork.push({\n\t\t\t\tlabel: TokensCalculatorComponent.HIERARCHICAL_CATEGORY,\n\t\t\t\titems: [item]\n\t\t\t});\n\t\t}\n\t}\n\n\tresetValues(resetPickList = false) {\n\t\tthis.hierarchicalName = '';\n\t\tthis.keyToCalculate = '';\n\t\tthis.valueToCompare = '';\n\t\tthis.positiveValue = '';\n\t\tthis.negativeValue = '';\n\n\t\tif (resetPickList) {\n\t\t\tconst el = document.querySelector(\n\t\t\t\t\"button[icon='pi pi-angle-double-left']\"\n\t\t\t) as HTMLElement;\n\t\t\tif (el) el.click();\n\t\t}\n\t}\n}\n","<div class=\"flex\" style=\"margin-bottom: 11px; width: fit-content\">\n\t<label class=\"radio-inline\">\n\t\t<input\n\t\t\ttype=\"radio\"\n\t\t\t[(ngModel)]=\"tokenType\"\n\t\t\t[value]=\"conditionalTokenType\"\n\t\t\t(click)=\"resetValues(true)\"\n\t\t/>\n\t\tCondicional\n\t</label>\n\t<label class=\"radio-inline\">\n\t\t<input\n\t\t\ttype=\"radio\"\n\t\t\t[(ngModel)]=\"tokenType\"\n\t\t\t[value]=\"hierarchicalTokenType\"\n\t\t\t(click)=\"resetValues()\"\n\t\t/>\n\t\tJerárquico\n\t</label>\n</div>\n\n<ng-container *ngIf=\"isConditionalToken\">\n\t<div class=\"flex align-items-center\" style=\"margin-top: 15px\">\n\t\t<div class=\"mr-sm\">\n\t\t\t<label for=\"field\">Campo a evaluar</label>\n\t\t\t<p-dropdown\n\t\t\t\tid=\"field\"\n\t\t\t\tplaceholder=\"-- Seleccione opción\"\n\t\t\t\t[options]=\"comboColumnWork\"\n\t\t\t\t[group]=\"true\"\n\t\t\t\t[(ngModel)]=\"keyToCalculate\"\n\t\t\t\t[filter]=\"true\"\n\t\t\t\t[style]=\"{ width: '250px' }\"\n\t\t\t>\n\t\t\t</p-dropdown>\n\t\t</div>\n\n\t\t<div class=\"mr-sm\">\n\t\t\t<label for=\"operator\">Operador</label>\n\t\t\t<select\n\t\t\t\tid=\"operator\"\n\t\t\t\tclass=\"form-control input-sm select-operation\"\n\t\t\t\tstyle=\"width: 80px\"\n\t\t\t\t[(ngModel)]=\"operator\"\n\t\t\t>\n\t\t\t\t<option [value]=\"EQ_OPERATOR\">Igual a</option>\n\t\t\t\t<option [value]=\"NEQ_OPERATOR\">Diferente a</option>\n\t\t\t</select>\n\t\t</div>\n\n\t\t<div class=\"mr-sm\">\n\t\t\t<label for=\"compare\">Valor a comparar</label>\n\t\t\t<input\n\t\t\t\tid=\"compare\"\n\t\t\t\ttype=\"text\"\n\t\t\t\tclass=\"form-control input-value input-sm\"\n\t\t\t\t[(ngModel)]=\"valueToCompare\"\n\t\t\t\tplaceholder=\"valor\"\n\t\t\t\tstyle=\"width: 156px\"\n\t\t\t/>\n\t\t</div>\n\t</div>\n\n\t<div class=\"flex align-items-center\" style=\"margin-top: 15px\">\n\t\t<div class=\"mr-sm\">\n\t\t\t<label for=\"positive\">Valor positivo</label>\n\t\t\t<input\n\t\t\t\tid=\"positive\"\n\t\t\t\ttype=\"text\"\n\t\t\t\tclass=\"form-control input-value input-sm\"\n\t\t\t\t[(ngModel)]=\"positiveValue\"\n\t\t\t\tplaceholder=\"valor\"\n\t\t\t\tstyle=\"width: 250px\"\n\t\t\t/>\n\t\t</div>\n\t\t<div class=\"mr-sm\">\n\t\t\t<label for=\"negative\">Valor negativo</label>\n\t\t\t<input\n\t\t\t\tid=\"negative\"\n\t\t\t\ttype=\"text\"\n\t\t\t\tclass=\"form-control input-value input-sm\"\n\t\t\t\t[(ngModel)]=\"negativeValue\"\n\t\t\t\tplaceholder=\"valor\"\n\t\t\t\tstyle=\"width: 250px\"\n\t\t\t/>\n\t\t</div>\n\t</div>\n\n\t<div class=\"flex align-items-center\" style=\"margin-top: 15px\" *ngIf=\"valueToCompare\">\n\t\t<div class=\"mr-sm\">\n\t\t\t<label for=\"generate\">Resultado</label>\n\t\t\t<button\n\t\t\t\tid=\"generate\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t(click)=\"generateConditionalToken()\"\n\t\t\t\ttitle=\"Copiar\"\n\t\t\t\tstyle=\"margin-left: 2px; width: 30px\"\n\t\t\t>\n\t\t\t\t<span class=\"fa fa-clipboard\"></span>\n\t\t\t</button>\n\t\t</div>\n\t</div>\n</ng-container>\n\n<ng-container *ngIf=\"!isConditionalToken\">\n\t<div class=\"flex align-items-center\" style=\"margin-top: 13px; margin-bottom: 20px\">\n\t\t<div style=\"margin-right: 10px\">\n\t\t\t<label for=\"hierarchicalName\">Nombre</label>\n\t\t\t<input\n\t\t\t\tid=\"hierarchicalName\"\n\t\t\t\ttype=\"text\"\n\t\t\t\tclass=\"form-control input-value input-sm\"\n\t\t\t\t[(ngModel)]=\"hierarchicalName\"\n\t\t\t\tplaceholder=\"Nombre\"\n\t\t\t\tstyle=\"width: 226px\"\n\t\t\t/>\n\t\t</div>\n\t\t<div style=\"margin-right: 10px\">\n\t\t\t<label for=\"generate\">Acciones</label>\n\t\t\t<button\n\t\t\t\tid=\"generate\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t(click)=\"generateHierarchicalTokenType()\"\n\t\t\t\ttitle=\"Copiar\"\n\t\t\t\tstyle=\"width: 30px\"\n\t\t\t>\n\t\t\t\t<span class=\"fa fa-clipboard\"></span>\n\t\t\t</button>\n\t\t\t&nbsp;\n\t\t\t<button\n\t\t\t\tid=\"generate\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t(click)=\"useCondition()\"\n\t\t\t\ttitle=\"Volver condicional\"\n\t\t\t\tstyle=\"margin-left: -5px; width: 30px\"\n\t\t\t>\n\t\t\t\t<span class=\"fa fa-plus\"></span>\n\t\t\t</button>\n\t\t</div>\n\t\t<div class=\"mr-sm\"></div>\n\t</div>\n\t<div class=\"flex align-items-center\" style=\"margin-top: 13px; margin-bottom: 20px\">\n\t\t<p-pickList\n\t\t\t[dragdrop]=\"true\"\n\t\t\tngDefaultControl\n\t\t\t[source]=\"source\"\n\t\t\t[target]=\"target\"\n\t\t\t[responsive]=\"true\"\n\t\t\tfilterBy=\"category,label\"\n\t\t\t[showSourceControls]=\"false\"\n\t\t\ttargetFilterPlaceholder=\" Buscar...\"\n\t\t\tsourceFilterPlaceholder=\" Buscar...\"\n\t\t>\n\t\t\t<!-- [sourceStyle]=\"{ width: '234px' }\"\n\t\t\t[targetStyle]=\"{ width: '234px' }\" -->\n\t\t\t<ng-template let-field pTemplate=\"item\">\n\t\t\t\t<div class=\"ui-helper-clearfix\">\n\t\t\t\t\t{{ field.label }} <br />\n\t\t\t\t\t<small>\n\t\t\t\t\t\t<b> {{ field.category }} </b>\n\t\t\t\t\t</small>\n\t\t\t\t</div>\n\t\t\t</ng-template>\n\t\t</p-pickList>\n\t</div>\n</ng-container>\n","import { Component, OnInit, Input, OnChanges, SimpleChanges } from '@angular/core';\n// import { FormioUtil, SegmentationTokensService } from 'ng-pli-commons';\nimport { SegColumn, UtilString, DatatableUtil } from 'ng-pli-util';\nimport { SegmentationTokensService } from '../../services/segmentation-tokens.service';\nimport { FormioUtil } from '../../utils/formio-util';\n\n@Component({\n    selector: 'app-segmentation-tokens',\n    templateUrl: './segmentation-tokens.component.html',\n    styleUrls: ['./segmentation-tokens.component.css'],\n    standalone: false\n})\nexport class SegmentationTokensComponent implements OnInit, OnChanges {\n\tshowSegmentationTokens: boolean;\n\tshowTokensCalculator: boolean;\n\tshowCalculatedTokens: boolean;\n\tdisplayDialog: boolean;\n\tready: boolean;\n\n\tvarDisplayDiv: string;\n\tcolumnSearch: string;\n\n\t// Buttons\n\t@Input() showTokenCalculatorButton = false;\n\t@Input() showCalculatedTokenButton = true;\n\n\t// Optional input\n\t@Input() showSurveyTokens = false;\n\n\t// Optional input (transformed columns)\n\t@Input() comboColumnWorkInput: any[];\n\t// Optional input (formio object)\n\t@Input() surveyFormio: any;\n\t// Required input\n\t@Input() lSegColumn: SegColumn[];\n\n\t// Contains the transformed columns\n\tcomboColumnWork: any[];\n\n\t// Adittional columns\n\tsegColSurveyFormioTokens: SegColumn[];\n\tsegColSurveyTokens: SegColumn[];\n\tfullLSegColumn: SegColumn[];\n\n\tconstructor(private sTokensService: SegmentationTokensService) {\n\t\tthis.segColSurveyFormioTokens = [];\n\t\tthis.segColSurveyTokens = [];\n\t\tthis.fullLSegColumn = [];\n\t}\n\n\tasync ngOnInit() {\n\t\tthis.ready = false;\n\t\tthis.showSegmentationTokens = false;\n\t\tthis.showCalculatedTokens = false;\n\t\tthis.showTokensCalculator = false;\n\t\tthis.varDisplayDiv = 'overflow: auto;min-height: 600px; display: none;';\n\t}\n\n\tinitSurveyTokens() {\n\t\treturn new Promise<void>(async (resolve, reject) => {\n\t\t\ttry {\n\t\t\t\t// Static tokens\n\t\t\t\tif (this.showSurveyTokens && this.segColSurveyTokens.length < 1) {\n\t\t\t\t\tthis.segColSurveyTokens = await this.getSegColSurveyTokens();\n\t\t\t\t}\n\t\t\t\t// Formio logic\n\t\t\t\tif (typeof this.surveyFormio !== 'undefined') {\n\t\t\t\t\tthis.segColSurveyFormioTokens = this.getSegColSurveyFormioTokens();\n\t\t\t\t}\n\t\t\t\tresolve();\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t}\n\t\t});\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tif (changes.lSegColumn) {\n\t\t\tif (changes.lSegColumn.currentValue) {\n\t\t\t\tconst lSegColumn = this.handleSegColumns();\n\t\t\t\tthis.initComboColumnWork(lSegColumn);\n\t\t\t}\n\t\t}\n\t\tif (changes.surveyFormio) {\n\t\t\tif (changes.surveyFormio.currentValue) {\n\t\t\t\tthis.surveyFormio = changes.surveyFormio.currentValue;\n\t\t\t\tconst lSegColumn = this.handleSegColumns();\n\t\t\t\tthis.initComboColumnWork(lSegColumn);\n\t\t\t}\n\t\t}\n\t}\n\n\thandleSegColumns() {\n\t\tconst lSegColumn = JSON.parse(JSON.stringify(this.lSegColumn));\n\t\tconst filteredColumns = lSegColumn.reduce(\n\t\t\t(acc, el) => ({\n\t\t\t\t...acc,\n\t\t\t\t[`${el.category}-${el.key}`]: el\n\t\t\t}),\n\t\t\t{}\n\t\t);\n\t\tconst columns = [];\n\t\tfor (const key in filteredColumns) {\n\t\t\tif (filteredColumns.hasOwnProperty(key)) {\n\t\t\t\tconst col = filteredColumns[key];\n\t\t\t\tcol.key = SegmentationTokensService.SEGMENTATION_TOKENS_PREFIX + col.key;\n\t\t\t\tcolumns.push(col);\n\t\t\t}\n\t\t}\n\t\treturn columns;\n\t}\n\n\tasync initComboColumnWork(lSegColumns) {\n\t\tif (Array.isArray(this.comboColumnWorkInput) && this.comboColumnWorkInput.length > 0) {\n\t\t\tthis.comboColumnWork = JSON.parse(JSON.stringify(this.comboColumnWorkInput));\n\t\t\tthis.ready = true;\n\t\t} else {\n\t\t\tif (Array.isArray(lSegColumns) && lSegColumns.length > 0) {\n\t\t\t\tawait this.initSurveyTokens();\n\t\t\t\tlSegColumns = [\n\t\t\t\t\t...lSegColumns,\n\t\t\t\t\t...this.segColSurveyFormioTokens,\n\t\t\t\t\t...this.segColSurveyTokens\n\t\t\t\t];\n\t\t\t\tthis.fullLSegColumn = lSegColumns.slice();\n\t\t\t\tthis.comboColumnWork = DatatableUtil.buildCombo(lSegColumns);\n\t\t\t\tthis.ready = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tgetSegColSurveyFormioTokens() {\n\t\tconst cols = [];\n\t\tif (this.surveyFormio.components) {\n\t\t\tconst surveyFormioTokens = FormioUtil.getFormattedComponentsByPanel(\n\t\t\t\tFormioUtil.getComponents(this.surveyFormio.components)\n\t\t\t);\n\t\t\tfor (const panel of surveyFormioTokens) {\n\t\t\t\tfor (const field of panel.items) {\n\t\t\t\t\tcols.push({\n\t\t\t\t\t\tlabel: field.label,\n\t\t\t\t\t\tkey: SegmentationTokensService.FORM_TOKENS_PREFIX + field.value,\n\t\t\t\t\t\tcategory: SegmentationTokensService.FORM_TOKENS_CATEGORY + ' ' + panel.label\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn cols;\n\t}\n\n\tasync getSegColSurveyTokens() {\n\t\tconst category = SegmentationTokensService.SURVEY_TOKENS_CATEGORY;\n\t\tconst surveyTokens = await this.sTokensService.getSurveyStaticTokens().toPromise();\n\t\treturn surveyTokens.map((st) => {\n\t\t\tst.key = SegmentationTokensService.STATIC_TOKENS_PREFIX + st.key;\n\t\t\tst.category = category;\n\t\t\treturn st;\n\t\t});\n\t}\n\n\tdisplaySegmentationTokensDiv() {\n\t\tthis.showSegmentationTokens = !this.showSegmentationTokens;\n\t\tthis.showCalculatedTokens = false;\n\t\tthis.showTokensCalculator = false;\n\t}\n\n\tdisplayCalculatedTokensDiv() {\n\t\tthis.showCalculatedTokens = !this.showCalculatedTokens;\n\t\tthis.showSegmentationTokens = false;\n\t\tthis.showTokensCalculator = false;\n\t}\n\n\tdisplayTokenCalculatorDiv() {\n\t\tthis.showTokensCalculator = !this.showCalculatedTokens;\n\t\tthis.showSegmentationTokens = false;\n\t\tthis.showCalculatedTokens = false;\n\t}\n\n\t/** it executes when the check of category has changed */\n\tchangeCategory(isChecked, category) {\n\t\tif (category) category.items.forEach((c) => (c.selected = isChecked));\n\t}\n\n\t/** it validates if it is visible or not */\n\tisVisibleCategory(category) {\n\t\tfor (const column of category.items) if (this.isVisibleColumn(column.label)) return true;\n\t\treturn false;\n\t}\n\n\t/** it validates if it is visible or not */\n\tisVisibleColumn(label) {\n\t\tif (!this.columnSearch) return true;\n\t\tif (label && label.toLowerCase().includes(this.columnSearch.toLowerCase())) return true;\n\t\treturn false;\n\t}\n\n\tcopyToken(idColumn) {\n\t\tconst column = this.getColumn(idColumn.toString());\n\t\tif (column) this.copyMessage(this.sTokensService.getTokenSintax(column.key));\n\t}\n\n\tcopyTokenCalc(value) {\n\t\tthis.copyMessage(value);\n\t}\n\n\tgetTitleToken(idColumn): string {\n\t\tconst column = this.getColumn(idColumn.toString());\n\t\tif (column) return '${' + column.key + '}';\n\t\treturn '';\n\t}\n\n\tgetColumn(searchVal) {\n\t\treturn this.fullLSegColumn.find((c) => c.idColumn == searchVal || c.key == searchVal);\n\t}\n\n\tcopyMessage(val: string) {\n\t\tUtilString.copyMessage(val);\n\t}\n}\n","<div *ngIf=\"ready\">\n\t<div class=\"panel panel-default\" class=\"overflow: auto;min-height: 600px; display: block;\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-12 row-margin\">\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t(click)=\"displayTokenCalculatorDiv()\"\n\t\t\t\t\tclass=\"btn btn-primary pull-right\"\n\t\t\t\t>\n\t\t\t\t\tCalculadora de tokens\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t\t<div class=\"col-md-12\">\n\t\t\t\t<input\n\t\t\t\t\ttype=\"input\"\n\t\t\t\t\tclass=\"form-control\"\n\t\t\t\t\tstyle=\"margin-bottom: 8px\"\n\t\t\t\t\tplaceholder=\"Busqueda de columnas\"\n\t\t\t\t\t[(ngModel)]=\"columnSearch\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<p-accordion [multiple]=\"true\">\n\t\t\t<ng-container *ngFor=\"let category of comboColumnWork\">\n\t\t\t\t<p-accordionTab *ngIf=\"isVisibleCategory(category)\" header=\"{{ category.label }}\">\n\t\t\t\t\t<div *ngFor=\"let column of category.items\" class=\"ui-g\">\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass=\"ui-g-12 ui-md-6 ui-lg-3 cut-line\"\n\t\t\t\t\t\t\t*ngIf=\"isVisibleColumn(column.label)\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t(click)=\"copyToken(column.value)\"\n\t\t\t\t\t\t\t\t[title]=\"getTitleToken(column.value)\"\n\t\t\t\t\t\t\t\tstyle=\"margin-right: 8px\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span class=\"fa fa-clipboard\"></span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t<span title=\"{{ column.label }}\">{{ column.label }}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</p-accordionTab>\n\t\t\t</ng-container>\n\t\t</p-accordion>\n\t</div>\n\n\t<p-dialog\n\t\tappendTo=\"body\"\n\t\theader=\"Calculadora de tokens\"\n\t\t[(visible)]=\"showTokensCalculator\"\n\t\t[modal]=\"true\"\n\t\t[contentStyle]=\"{\n\t\t\t'min-width': '600px',\n\t\t\t'max-width': '600px',\n\t\t\t'min-height': '420px',\n\t\t\t'max-height': '420px',\n\t\t\tbackground: 'white',\n\t\t\t'overflow-y': 'auto',\n\t\t\t'text-align': 'left'\n\t\t}\"\n\t\theight=\"420\"\n\t\twidth=\"600\"\n\t\tdismissableMask=\"true\"\n\t>\n\t\t<div class=\"container-fluid\">\n\t\t\t<app-tokens-calculator\n\t\t\t\t*ngIf=\"showTokensCalculator\"\n\t\t\t\t[comboColumnWorkInput]=\"comboColumnWork\"\n\t\t\t></app-tokens-calculator>\n\t\t</div>\n\t</p-dialog>\n</div>\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliCnfProjectSummary } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfProjectSummaryService {\n\tprivate service_path = 'project-summary/configuration';\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) { }\n\n\tgetByPatCodigoAndPromCodigo(patCodigo: number, promCodigo: number): Observable<PliCnfProjectSummary> {\n\t\tconst params = new HttpParams()\n\t\t\t.set('patCodigo', patCodigo.toString())\n\t\t\t.set('promCodigo', promCodigo.toString());\n\t\treturn this.httpClient.get<PliCnfProjectSummary>(\n\t\t\t`${this.environment.host.backend.configuration}${this.service_path}`,\n\t\t\t{ params }\n\t\t);\n\t}\n\n\tgetByPatCodigoAndPromCodigoIn(patCodigo: number, promCodigos: number[]): Observable<PliCnfProjectSummary[]> {\n\t\tconst request = { patCodigo, promCodigos };\n\t\treturn this.httpClient.post<PliCnfProjectSummary[]>(\n\t\t\t`${this.environment.host.backend.configuration}${this.service_path}/search-by-patCodigo-and-promCodigos`,\n\t\t\trequest\n\t\t);\n\t}\n\n\tsave(pliCnfProjectSummary: PliCnfProjectSummary): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.configuration}${this.service_path}`,\n\t\t\tpliCnfProjectSummary\n\t\t);\n\t}\n\n\tupdate(id: number, pliCnfProjectSummary: PliCnfProjectSummary): Observable<any> {\n\t\treturn this.httpClient.patch(\n\t\t\t`${this.environment.host.backend.configuration}${this.service_path}/${id}`,\n\t\t\tpliCnfProjectSummary\n\t\t);\n\t}\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { PartnerTO } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PartnerService {\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/**\n\t * Obtiene la informacion del patrocinador a partir de un patCodigo\n\t * @param patCodigo El parametro es un numero en formato string\n\t */\n\tgetPartenerById(patCodigo: string): Observable<PartnerTO> {\n\t\treturn this.httpClient.get<PartnerTO>(\n\t\t\tthis.environment.host.backend.loginWSRest + 'patrocinador/getById',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('patCodigo', patCodigo)\n\t\t\t}\n\t\t);\n\t}\n\n\tsave(partner): Observable<PartnerTO> {\n\t\treturn this.httpClient.post<PartnerTO>(\n\t\t\tthis.environment.host.backend.loginWSRest + 'patrocinador/save',\n\t\t\tpartner\n\t\t);\n\t}\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { PartnerSystemTO } from 'ng-pli-util';\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PartnerSystemService {\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tgetByPatAndSystem(patCodigo: string, sysCodigo: string): Observable<PartnerSystemTO> {\n\t\treturn this.httpClient.get<PartnerSystemTO>(\n\t\t\tthis.environment.host.backend.loginWSRest + 'patrocinadorSistema/getByPatAndSystem',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('patCodigo', patCodigo).set('sysCodigo', sysCodigo)\n\t\t\t}\n\t\t);\n\t}\n\n\tsave(partnerSystem): Observable<PartnerSystemTO> {\n\t\treturn this.httpClient.post<PartnerSystemTO>(\n\t\t\tthis.environment.host.backend.loginWSRest + 'patrocinadorSistema/save',\n\t\t\tpartnerSystem\n\t\t);\n\t}\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n//import { GoogleVisionParameters } from 'ng-pli-util';\n\nconst httpOptions = {\n  headers: new HttpHeaders({\n    'Content-Type': 'application/json',\n  })\n}\n@Injectable({\n  providedIn: 'root'\n})\nexport class PdfAnalyzerService {\n\n\n  constructor(@Inject('environment') private environment, private httpClient: HttpClient) { }\n\n  getTextOfImage(parameters: any): Observable<any> {\n    return this.httpClient.post(\n      this.environment.googleVision.url + '?key=' + this.environment.googleVision.key,\n      parameters, {\n      headers: httpOptions.headers\n    }\n    );\n  }\n}\n","import {\n  Component, OnInit, Input,\n  Output,\n  EventEmitter\n} from '@angular/core';\n//import { PDFDocumentProxy } from 'ng2-pdf-viewer';\n// import {\n//   GoogleVisionParameters,\n//   GoogleVisionRequest,\n//   GoogleVisionResponse,\n//   GoogleVisionResponseData\n// } from 'ng-pli-util';\nimport Cropper from 'cropperjs';\nimport html2canvas from 'html2canvas';\nimport \"jquery\";\nimport { PdfAnalyzerService } from '../../services/pdf-analyzer.service';\n\n@Component({\n    selector: 'pli-pdf-analyzer',\n    templateUrl: './pdf-analyzer.component.html',\n    styleUrls: ['./pdf-analyzer.component.scss'],\n    standalone: false\n})\nexport class PdfAnalyzerComponent implements OnInit {\n\n\n  public totalPages: number = 0;\n  public currentpage: number = 1;\n  private cropper!: Cropper;\n  public isCropImage: boolean = false;\n  public capture: any;\n\n  public instructivo: boolean = true;\n\n  render_text: boolean = true;\n  show_all: boolean = false;\n  original_size: boolean = true;\n  fit_to_page: boolean = false;\n\n  @Input()\n  pdfSrc: any = \"\";\n\n  @Input()\n  textToCompare: String = \"\";\n\n  @Input()\n  labelToCompare: String = \"\";\n\n  // @Input()\n  // textToCompare: String = \"\";\n\n  // @Input()\n  // textToCompare: String = \"\";\n\n  @Output()\n  documentAnalyzed: EventEmitter<any> = new EventEmitter<any>();\n\n  constructor(private pdfAnalyzerService: PdfAnalyzerService) { }\n\n  ngOnInit(): void {\n  }\n\n  // Zoom Out Image\n  public zoomOut() {\n    this.cropper.zoom(0.1)\n  }\n\n  // Zoom In Image\n  public zoomIn() {\n    this.cropper.zoom(-0.1)\n  }\n\n  // Range slider for zooming the image\n  public onRange(event: any) {\n    this.cropper.zoomTo(event.target.value)\n  }\n\n  // perform the rotate functionality on image\n  public onRotate() {\n    this.cropper.rotate(-90)\n  }\n\n  // show the previous page\n  public previous() {\n    if (this.currentpage > 0) {\n      if (this.currentpage == 1) {\n        this.currentpage = this.totalPages;\n      } else {\n        this.currentpage--;\n      }\n    }\n  }\n\n  // show the next page\n  public next() {\n    if (this.totalPages > this.currentpage) {\n      this.currentpage++;\n    } else {\n      this.currentpage = 1;\n    }\n  }\n\n  public crop() {\n    html2canvas(document.querySelector(\".pdf-container\") as HTMLElement).then((canvas: any) => {\n      let ctx = canvas.getContext('2d');\n      ctx.scale(3, 3);\n      let image = canvas.toDataURL(\"image/png\").replace(\"image/png\", \"image/png\");\n      $(\"#cropper-img\").attr('src', image);\n      $('#cropper-img').addClass('ready');\n      this.isCropImage = true\n      let cropImg: any = document.getElementById('cropper-img');\n      this.cropper = new Cropper(cropImg, {\n        zoomable: true,\n        background: false,\n        guides: false,\n        highlight: false,\n        movable: false,\n        aspectRatio: 4 / 3,\n        ready: (e) => {\n          let cropper = this.cropper;\n        },\n        crop: (e) => {\n        }\n      });\n    })\n  }\n\n  public saveCapture() {\n    if (this.isCropImage) {\n      let canvas = this.cropper.getCroppedCanvas();\n      this.getCanvasToImage(canvas)\n    } else {\n      html2canvas(document.querySelector(\".pdf-container\") as HTMLElement).then((canvas: any) => {\n        this.getCanvasToImage(canvas)\n      })\n    }\n  }\n\n  private getCanvasToImage(canvas: any) {\n    let ctx = canvas.getContext('2d');\n    ctx.scale(3, 3);\n    let image = canvas.toDataURL(\"image/png\").replace(\"image/png\", \"image/png\");\n    this.capture = image;\n    console.log(image);\n  }\n\n  public reset() {\n    this.isCropImage = false;\n    this.capture = null;\n    this.cropper.clear();\n    this.cropper.destroy();\n  }\n\n  // afterLoadComplete(pdf: PDFDocumentProxy) {\n  //   this.totalPages = pdf.numPages;\n  // }\n\n  public validateImage() {\n    let base64: String = (this.capture as String).substring(22, (this.capture as String).length);\n\n    this.documentAnalyzed.emit(base64);\n    // let parameters: any = {\n    //   requests: [\n    //     {\n    //       image: {\n    //         content: base64\n    //       },\n    //       features: [\n    //         {\n    //           type: \"TEXT_DETECTION\"\n    //         }\n    //       ]\n    //     }\n    //   ]\n    // }\n\n    // this.pdfAnalyzerService.getTextOfImage(parameters).subscribe((response: any) => {\n    //   let textDetected = response[0].fullTextAnnotation.text;\n\n    //   console.log(textDetected);\n    // });\n\n  }\n\n}\n\n","<div>\n\n    <div class=\"checkInstructivo\">\n        <label>\n            <input type=\"checkbox\" [(ngModel)]=\"instructivo\" />Instructivo\n        </label>\n    </div>\n    <div *ngIf=\"!instructivo\" class=\"description\">\n        Seleccionar la parte del documento donde se encuentra <strong>{{labelToCompare}}</strong>\n\n    </div>\n    <div *ngIf=\"instructivo\" class=\"description\">\n        1. Darle clic en el botón <span class=\"fa fa-crop\"></span>\n        <br> 2. Seleccionar la parte del documento donde se encuentra <strong>{{labelToCompare}}</strong> con el mouse dando clic y arrastrando hasta completar la selección o cambiando de tamaño el recuadro que aparece en pantalla\n        <br> 3. Una vez seleccionado dar clic en el botón <span class=\"fa fa-camera\"></span> para previsualizarlo mejor\n        <br> 4. En caso de haberse equivocado puede darle clic al botón rojo \"Reintentar\" o al botón <span class=\"fa fa-undo\"></span> para volver al paso 1\n        <br> 5. Cuando ya este correcta la selección darle clic al botón verde \"Guardar Captura\" para proceder con el proceso\n    </div>\n    <div class=\"pdf-visualizer-controls\">\n        <a href=\"Javascript:;\" title=\"Anterior\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" (click)=\"previous()\">\n            <span class=\"fa fa-angle-left\"></span>\n        </a>\n        <span class=\"btn btn-outline-secondary\">Página: {{currentpage}} / {{totalPages}}</span>\n        <a href=\"Javascript:;\" title=\"Siguiente\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" (click)=\"next()\">\n            <span class=\"fa fa-angle-right\"></span>\n        </a>\n\n        <a href=\"Javascript:;\" title=\"Acercar\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" *ngIf=\"isCropImage && !capture\" (click)=\"zoomOut()\">\n            <span class=\"fa fa-search-plus\"></span>\n        </a>\n\n\n        <a href=\"Javascript:;\" title=\"Alejar\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" *ngIf=\"isCropImage && !capture\" (click)=\"zoomIn()\">\n            <span class=\"fa fa-search-minus\"></span>\n        </a>\n    </div>\n    <div class=\"pdf-visualizer-controls\">\n        <a href=\"Javascript:;\" title=\"Capturar\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" *ngIf=\"!isCropImage\" (click)=\"crop()\">\n            <span class=\"fa fa-crop fa-2x\"></span>\n        </a>\n        <a href=\"Javascript:;\" title=\"Guardar Captura\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" *ngIf=\"isCropImage && !capture\" (click)=\"saveCapture()\">\n            <span class=\"fa fa-camera fa-2x\"></span>\n        </a>\n        <a href=\"Javascript:;\" title=\"Deshacer\" data-toggle=\"tooltip\" data-placement=\"top\" class=\"btn btn-outline-secondary\" *ngIf=\"isCropImage\" (click)=\"reset()\">\n            <span class=\"fa fa-undo fa-2x\"></span>\n        </a>\n    </div>\n\n\n    <div class=\"pdf-visualizer-dashboard\" *ngIf=\"!capture\">\n        <div class=\"pdf-container pdf-visualizer-canvas top-margin\" [hidden]=\"isCropImage\">\n            <!-- <pdf-viewer [(src)]=\"pdfSrc\" [(render-text)]=\"render_text\" [(page)]=\"currentpage\" [(show-all)]=\"show_all\" [(original-size)]=\"original_size\" [(fit-to-page)]=\"fit_to_page\" (after-load-complete)=\"afterLoadComplete($event)\" style=\"display: block;\">\n            </pdf-viewer> -->\n        </div>\n\n        <div class=\"img-container\" [hidden]=\"!isCropImage\">\n            <img #image src=\"\" id=\"cropper-img\" crossorigin>\n        </div>\n    </div>\n\n    <div class=\"img-visualizer-dashboard\" *ngIf=\"capture\">\n        <img [src]=\"capture\">\n    </div>\n    <div class=\"img-visualizer-dashboard\" *ngIf=\"capture\">\n        <button class=\"btns btn-success btn-lg\" (click)=\"validateImage()\" lang=\"es\">Guardar Captura</button>\n\n        <button class=\"btnr btn-success btn-lg\" (click)=\"reset()\" lang=\"es\">Reintentar</button>\n    </div>\n</div>","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { MessageTO } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliMessageTypeService {\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tgetAll(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliMessageType/getAll'\n\t\t);\n\t}\n\n\tsave(messageTO: MessageTO): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliMessageType/save',\n\t\t\tmessageTO\n\t\t);\n\t}\n\n\tdelete(id: number) {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + 'pliMessageType/delete',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('id', id)\n\t\t\t}\n\t\t);\n\t}\n\n\tgetById(id: number, promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliMessageType/getById',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('id', id.toString())\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t}\n\t\t);\n\t}\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { DataTableParameters } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class AssignTaskService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/**\n\t * It gets applications by datatable parameters from backoffice\n\t * @param dataTableParameters\n\t */\n\tgetBackAppByDataTablesParameters(dataTableParameters: DataTableParameters) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'assign-task/getByDataTablesParameters',\n\t\t\tdataTableParameters,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { CommonModule, CurrencyPipe } from '@angular/common';\nimport { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\nimport { FirebaseAppModule } from '@angular/fire/app';\nimport { FirestoreModule } from '@angular/fire/firestore';\nimport { AuthModule } from '@angular/fire/auth';\nimport { FIREBASE_OPTIONS } from '@angular/fire/compat';\nimport { AngularFireModule } from '@angular/fire/compat';\nimport { AngularFireStorageModule } from '@angular/fire/compat/storage';\n\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n// import { FormioModule, FormioComponent } from 'angular-formio-proyectoscolfuturo';\nimport { FormioModule, FormioComponent } from 'formioangular-colfuturo';\n// import { TinymceModule } from 'angular2-tinymce';\nimport { EditorModule } from '@tinymce/tinymce-angular';\n// import { AngularFireAuthModule } from 'angularfire2/auth';\n// import { AngularFireStorageModule } from 'angularfire2/storage';\nimport { NgPliUtilModule } from 'ng-pli-util';\nimport { DialogModule } from 'primeng/dialog';\nimport { DropdownModule } from 'primeng/dropdown';\n// import { SharedModule } from 'primeng/primeng';\nimport { AccordionModule } from 'primeng/accordion';\nimport { TableModule } from 'primeng/table';\nimport { TieredMenuModule } from 'primeng/tieredmenu';\nimport { PickListModule } from 'primeng/picklist';\n\nimport { ConfigurationTokenComponent } from './components/configuration-token/configuration-token.component';\nimport { DynamicFilterComponent } from './components/dynamic-filter/dynamic-filter.component';\nimport { ExcelToJsonComponent } from './components/excel-to-json/excel-to-json.component';\nimport { PdfConfigComponent } from './components/pdf-config/pdf-config.component';\nimport { PdfGeneratorComponent } from './components/pdf-generator/pdf-generator.component';\nimport { PdfVisualizerComponent } from './components/pdf-visualizer/pdf-visualizer.component';\nimport { PdfMergeVisualizerComponent } from './components/pdf-merge-visualizer/pdf-merge-visualizer.component';\nimport { SelectPppComponent } from './components/select-ppp/select-ppp.component';\nimport { ShowHideColumnsTableComponent } from './components/show-hide-columns/show-hide-columns-table.component';\nimport { TokenComponent } from './components/token/token.component';\nimport { CurrencyColfuturoFormatterDirective } from './directives/currency-colfuturo-formatter.directive';\nimport { CurrencyDecimalColfuturoFormatterDirective } from './directives/currency-decimal-colfuturo-formatter.directive';\nimport { CurrencyColfuturoPipe } from './pipes/currency-colfuturo.pipe';\nimport { CurrencyDecimalColfuturoPipe } from './pipes/currency-decimal-colfuturo.pipe';\nimport { CurrencyPrintColfuturoPipe } from './pipes/currency-print-colfuturo.pipe';\nimport { ThousandsPipe } from './pipes/thousands.pipe';\nimport { ApplicationTagService } from './services/application-tag.service';\nimport { TagManagementService } from './services/tag-management.service';\nimport { SpinnerService } from './services/spinner.service';\nimport { ApplicationService } from './services/application.service';\nimport { AuthenticationService } from './services/authentication.service';\nimport { BudgetApplicationService } from './services/budget-application.service';\nimport { BudgetService } from './services/budget.service';\nimport { ConfigurationDocumentService } from './services/configuration-document.service';\nimport { DataFormService } from './services/data-form.service';\nimport { DocumentManagementService } from './services/document-management.service';\nimport { DocumentService } from './services/document.service';\nimport { DocumentaryTypeService } from './services/documentary.type.service';\nimport { EmailService } from './services/email.service';\nimport { CubeService } from './services/cube.service';\nimport { EvaluationService } from './services/evaluation.service';\nimport { ExportExcelService } from './services/export-excel.service';\nimport { FileService } from './services/file.service';\nimport { FormService } from './services/form.service';\nimport { GlobalShowTaskService } from './services/global.show.task.service';\nimport { ImportDataService } from './services/import-data.service';\nimport { InteractionApplicationUserService } from './services/interaction-application-user.service';\nimport { KeysAssignationService } from './services/keys-assignation.service';\nimport { LetterCampaingService } from './services/letter-campaing.service';\nimport { LogService } from './services/log.service';\nimport { PageService } from './services/page.service';\nimport { PliCnfPageSubProcessService } from './services/pli-cnf-page-sub-process.service';\nimport { PermissionService } from './services/permission.service';\nimport { PliCnfAppCardFilterService } from './services/pli-cnf-app-card-filter.service';\nimport { PliCnfCommitteeVisualizationModeService } from './services/pli-cnf-committee-visualization-mode.service';\nimport { PliCnfEvaluationTemplateService } from './services/pli-cnf-evaluation-template.service';\nimport { PliCnfHeaderService } from './services/pli-cnf-header.service';\nimport { PliCnfIndicatorService } from './services/pli-cnf-indicator.service';\nimport { PliCnfInteractionService } from './services/pli-cnf-interaction.service';\nimport { PliCnfLookAndFeelService } from './services/pli-cnf-look-and-feel.service';\nimport { PliCnfProfileUserService } from './services/pli-cnf-profile-user.service';\nimport { PliCnfScenarioService } from './services/pli-cnf-scenario.service';\nimport { PliCnfSegmentationService } from './services/pli-cnf-segmentation.service';\nimport { PliCnfStatusFlowInteractionService } from './services/pli-cnf-status-flow-interaction.service';\nimport { PliCnfStatusFlowService } from './services/pli-cnf-status-flow.service';\nimport { PliCnfSupportDocumentService } from './services/pli-cnf-support-document.service';\nimport { PliCnfTextService } from './services/pli-cnf-text.service';\nimport { PliCnfUserWorkspaceService } from './services/pli-cnf-user-workspace.service';\nimport { PliCnfValproKeysService } from './services/pli-cnf-valpro-keys.service';\nimport { PliCnfWorkspaceSegmentationService } from './services/pli-cnf-workspace-segmentation.service';\nimport { PliMultipleValueFilterService } from './services/pli-multiple-value-filter.service';\nimport { PliPromocionUsernameService } from './services/pli-promocion-username.service';\nimport { PliSegmentationService } from './services/pli-segmentation.service';\nimport { PliTagService } from './services/pli-tag.service';\nimport { PliUserService } from './services/pli-user.service';\nimport { PppService } from './services/ppp.service';\nimport { ProfileService } from './services/profile.service';\nimport { SegmentationUserService } from './services/segmentation-user-service.service';\nimport { OpenKMDocumentService } from './services/openkm-document.service';\nimport { SegmentationService } from './services/segmentation.service';\nimport { SendApplicationService } from './services/send-application.service';\nimport { SesionFormService } from './services/sesion-form.service';\nimport { SesionService } from './services/sesion.service';\nimport { SponsorshipLetterService } from './services/sponsorship-letter.service';\nimport { StatusService } from './services/status.service';\nimport { TasaCambioService } from './services/tasa.cambio.service';\nimport { TokenService } from './services/token.service';\nimport { TokenTransformationService } from './services/token-transformation.service';\nimport { UserService } from './services/user.service';\nimport { PliCnfBudgetService } from './services/pli-cnf-budget.service';\nimport { ConfigurationService } from './services/configuration.service';\nimport { SnapshotTokenComponent } from './components/configuration-token/snapshot-token/snapshot-token.component';\nimport { BudgetSimulationService } from './services/budget-simulation.service';\nimport { PliCnfAcuityFieldsService } from './services/pli-cnf-acuity-fields.service';\nimport { GuaranteeService } from './services/guarantee.service';\nimport { CreditStudyService } from './services/credit-study.service';\nimport { GuaranteeDocumentService } from './services/guarantee-document.service';\nimport { GuaranteeTokenComponent } from './components/configuration-token/guarantee-token/guarantee-token.component';\nimport { PliCnfGuaranteeTokenService } from './services/pli-cnf-guarantee-token.service';\nimport { CommonInfoService } from './services/common-info.service';\nimport { PliCnfMenuFormService } from './services/pli-cnf-menu-form.service';\nimport { PliCnfGuaranteeDocumentsTemplateService } from './services/pli-cnf-guarantee-documents-template.service';\nimport { IntegrationADOService } from './services/integration-ado.service';\nimport { GuaranteeEnrollmentService } from './services/guarantee-enrollment.service';\nimport { PliCnfTextOptionService } from './services/pli-cnf-text-option.service';\nimport { ConfigurationMinisiteService } from './services/configuration-minisite.service';\nimport { PliTagAssignmentService } from './services/pli-tag-assignment.service';\nimport { UniversityService } from './services/university.service';\nimport { ProgressBarComponent } from './components/progress-bar/progress-bar.component';\nimport { ProgressBarService } from './services/progress-bar.service';\nimport { PliCnfSurveyPdfService } from './services/pli-cnf-survey-pdf.service';\nimport { SegmentationTokensComponent } from './components/segmentation-tokens/segmentation-tokens.component';\nimport { TokensCalculatorComponent } from './components/tokens-calculator/tokens-calculator.component';\nimport { PliCnfProjectSummaryService } from './services/pli-cnf-project-summary.service';\nimport { HashService } from './services/hash.service';\n\nimport { PartnerService } from './services/partner.service';\nimport { PartnerSystemService } from './services/partner-system.service';\nimport { PdfAnalyzerComponent } from './components/pdf-analyzer/pdf-analyzer.component';\nimport { PdfAnalyzerService } from './services/pdf-analyzer.service';\nimport { PliMessageTypeService } from './services/pli-message-type.service';\nimport { AssignTaskService } from './services/assign-task.service';\n//import { PdfViewerModule } from 'ng2-pdf-viewer';\n\n@NgModule({ declarations: [\n        SelectPppComponent,\n        CurrencyColfuturoPipe,\n        CurrencyPrintColfuturoPipe,\n        CurrencyDecimalColfuturoPipe,\n        CurrencyColfuturoFormatterDirective,\n        CurrencyDecimalColfuturoFormatterDirective,\n        PdfVisualizerComponent,\n        PdfMergeVisualizerComponent,\n        PdfGeneratorComponent,\n        TokenComponent,\n        SegmentationTokensComponent,\n        TokensCalculatorComponent,\n        ConfigurationTokenComponent,\n        ExcelToJsonComponent,\n        ThousandsPipe,\n        DynamicFilterComponent,\n        ShowHideColumnsTableComponent,\n        PdfConfigComponent,\n        SnapshotTokenComponent,\n        GuaranteeTokenComponent,\n        ProgressBarComponent,\n        PdfAnalyzerComponent\n    ],\n    exports: [\n        SelectPppComponent,\n        PdfVisualizerComponent,\n        PdfMergeVisualizerComponent,\n        PdfGeneratorComponent,\n        TokenComponent,\n        SegmentationTokensComponent,\n        TokensCalculatorComponent,\n        CurrencyColfuturoPipe,\n        CurrencyPrintColfuturoPipe,\n        CurrencyDecimalColfuturoPipe,\n        CurrencyColfuturoFormatterDirective,\n        CurrencyDecimalColfuturoFormatterDirective,\n        ConfigurationTokenComponent,\n        ThousandsPipe,\n        ExcelToJsonComponent,\n        DynamicFilterComponent,\n        ShowHideColumnsTableComponent,\n        PdfConfigComponent,\n        ProgressBarComponent,\n        PdfAnalyzerComponent\n    ], imports: [CommonModule,\n        AngularFireModule,\n        AngularFireStorageModule,\n        EditorModule,\n        FormioModule,\n        FormsModule,\n        AccordionModule,\n        TableModule,\n        TieredMenuModule,\n        PickListModule,\n        ReactiveFormsModule,\n        FirebaseAppModule,\n        FirestoreModule,\n        AuthModule,\n        DropdownModule,\n        DialogModule,\n        NgPliUtilModule.forRoot()], providers: [provideHttpClient(withInterceptorsFromDi())] })\nexport class NgPliCommonsModule {\n\tstatic forRoot(environment: any): ModuleWithProviders<NgPliCommonsModule> {\n\t\treturn {\n\t\t\tngModule: NgPliCommonsModule,\n\t\t\tproviders: [\n\t\t\t\tCurrencyPipe,\n\t\t\t\tPppService,\n\t\t\t\tAuthenticationService,\n\t\t\t\tDataFormService,\n\t\t\t\tFormService,\n\t\t\t\tLogService,\n\t\t\t\tLetterCampaingService,\n\t\t\t\tApplicationService,\n\t\t\t\tApplicationTagService,\n\t\t\t\tTagManagementService,\n\t\t\t\tAssignTaskService,\n\t\t\t\tSpinnerService,\n\t\t\t\tSponsorshipLetterService,\n\t\t\t\tBudgetService,\n\t\t\t\tBudgetApplicationService,\n\t\t\t\tTokenService,\n\t\t\t\tTokenTransformationService,\n\t\t\t\tUserService,\n\t\t\t\tEmailService,\n\t\t\t\tCubeService,\n\t\t\t\tPliCnfInteractionService,\n\t\t\t\tPliCnfIndicatorService,\n\t\t\t\tPliCnfHeaderService,\n\t\t\t\tDocumentManagementService,\n\t\t\t\tDocumentService,\n\t\t\t\tSegmentationService,\n\t\t\t\tPliCnfLookAndFeelService,\n\t\t\t\tFileService,\n\t\t\t\tPliUserService,\n\t\t\t\tPliCnfProfileUserService,\n\t\t\t\tDocumentaryTypeService,\n\t\t\t\tSendApplicationService,\n\t\t\t\tKeysAssignationService,\n\t\t\t\tConfigurationDocumentService,\n\t\t\t\tPermissionService,\n\t\t\t\tProfileService,\n\t\t\t\tPageService,\n\t\t\t\tPliCnfPageSubProcessService,\n\t\t\t\tStatusService,\n\t\t\t\tUniversityService,\n\t\t\t\tPliCnfMenuFormService,\n\t\t\t\tConfigurationService,\n\t\t\t\tCommonInfoService,\n\t\t\t\tPliCnfStatusFlowService,\n\t\t\t\tPliCnfStatusFlowInteractionService,\n\t\t\t\tSesionFormService,\n\t\t\t\tPliCnfTextService,\n\t\t\t\tPliCnfBudgetService,\n\t\t\t\tPliCnfSupportDocumentService,\n\t\t\t\tInteractionApplicationUserService,\n\t\t\t\tSesionService,\n\t\t\t\tPliCnfSegmentationService,\n\t\t\t\tPliCnfUserWorkspaceService,\n\t\t\t\tPliCnfAppCardFilterService,\n\t\t\t\tPliSegmentationService,\n\t\t\t\tPliTagService,\n\t\t\t\tSegmentationUserService,\n\t\t\t\tOpenKMDocumentService,\n\t\t\t\tImportDataService,\n\t\t\t\tPliPromocionUsernameService,\n\t\t\t\tPliCnfWorkspaceSegmentationService,\n\t\t\t\tPliMultipleValueFilterService,\n\t\t\t\tEvaluationService,\n\t\t\t\tBudgetSimulationService,\n\t\t\t\tExportExcelService,\n\t\t\t\tGlobalShowTaskService,\n\t\t\t\tGuaranteeService,\n\t\t\t\tCreditStudyService,\n\t\t\t\tGuaranteeDocumentService,\n\t\t\t\tPliCnfEvaluationTemplateService,\n\t\t\t\tPliCnfCommitteeVisualizationModeService,\n\t\t\t\tPliCnfScenarioService,\n\t\t\t\tPliCnfValproKeysService,\n\t\t\t\tTasaCambioService,\n\t\t\t\tPliCnfAcuityFieldsService,\n\t\t\t\tPliCnfGuaranteeTokenService,\n\t\t\t\tPliCnfGuaranteeDocumentsTemplateService,\n\t\t\t\tIntegrationADOService,\n\t\t\t\tGuaranteeEnrollmentService,\n\t\t\t\tPliCnfTextOptionService,\n\t\t\t\tConfigurationMinisiteService,\n\t\t\t\tProgressBarService,\n\t\t\t\tPliCnfSurveyPdfService,\n\t\t\t\tPliTagAssignmentService,\n\t\t\t\tPliCnfProjectSummaryService,\n\t\t\t\tHashService,\n\t\t\t\tPartnerService,\n\t\t\t\tPartnerSystemService,\n\t\t\t\tPdfAnalyzerService,\n\t\t\t\tPliMessageTypeService,\n\t\t\t\t{\n\t\t\t\t\tprovide: 'environment',\n\t\t\t\t\tuseValue: environment\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tprovide: FIREBASE_OPTIONS,\n\t\t\t\t\tuseValue: environment.firebase\n\t\t\t\t}\n\t\t\t]\n\t\t};\n\t}\n}\n","import { OnInit, OnDestroy, Component, ChangeDetectorRef } from '@angular/core';\nimport { CommonService } from '../services/common.service';\nimport { CommonListsComponent } from './common.lists.component';\n\n@Component({\n    selector: 'app-backoffice-commons',\n    template: '',\n    standalone: false\n})\nexport abstract class BackofficeCommonsComponent\n\textends CommonListsComponent\n\timplements OnInit, OnDestroy\n{\n\tstatic readonly BEST_SCENARIO_COLUMN_ID = '-6';\n\tfullWidth: boolean = false;\n\n\tconstructor(protected commonService: CommonService, protected cdRef: ChangeDetectorRef) {\n\t\tsuper(commonService, cdRef);\n\t}\n\n\tngOnInit() {\n\t\tsuper.ngOnInit();\n\t\tif (this.fullWidth) {\n\t\t\tconst element = document.getElementById('mainContainer');\n\t\t\tif (element) {\n\t\t\t\telement.classList.remove('container');\n\t\t\t}\n\t\t}\n\t}\n\n\tngOnDestroy() {\n\t\tif (this.fullWidth) {\n\t\t\tconst element = document.getElementById('mainContainer');\n\t\t\tif (element) {\n\t\t\t\telement.classList.add('container');\n\t\t\t}\n\t\t}\n\t}\n}\n","import { OnInit, ChangeDetectorRef, Component } from '@angular/core';\nimport { CommonService } from '../services/common.service';\nimport { DateUtil } from 'ng-pli-util';\nimport { CommonInfoService } from '../services/common-info.service';\n\n@Component({\n    selector: 'app-dashboard-commons',\n    template: '',\n    standalone: false\n})\nexport abstract class DashboardCommonsComponent implements OnInit {\n\t/** */\n\tversion: string;\n\t/** */\n\tbuildTimestamp: string;\n\t/** */\n\tcommonsVersion: string;\n\t/** */\n\tcommonsBuildTimestamp: string;\n\t/** */\n\tsecurityVersion: string;\n\t/** */\n\tsecurityBuildTimestamp: string;\n\t/** */\n\tutilVersion: string;\n\t/** */\n\tutilBuildTimestamp: string;\n\t/** */\n\tlProperties: any[];\n\t/** */\n\tlVersionInfo: any[];\n\n\tconstructor(\n\t\tprotected commonService: CommonService,\n\t\tprotected cdRef: ChangeDetectorRef,\n\t\tprotected commonInfoService: CommonInfoService\n\t) {}\n\n\tngOnInit() {\n\t\tthis.lVersionInfo = [];\n\t}\n\n\taddVersionProjectInfo() {\n\t\tthis.lVersionInfo.push({\n\t\t\tname: 'Proyecto Commons',\n\t\t\tversion: this.commonsVersion,\n\t\t\tbuild: this.commonsBuildTimestamp\n\t\t});\n\t\tthis.lVersionInfo.push({\n\t\t\tname: 'Proyecto Security',\n\t\t\tversion: this.securityVersion,\n\t\t\tbuild: this.securityBuildTimestamp\n\t\t});\n\t\tthis.lVersionInfo.push({\n\t\t\tname: 'Proyecto Util',\n\t\t\tversion: this.utilVersion,\n\t\t\tbuild: this.utilBuildTimestamp\n\t\t});\n\t}\n\n\tcreateVersionAndBuildTimeProject(version, buildTimestamp) {\n\t\tlet result = this.createVersionAndBuildTime(version, buildTimestamp);\n\t\tconsole.log('VersionAndBuildTime-Project', result);\n\t\tthis.version = result.version;\n\t\tthis.buildTimestamp = result.buildTimes;\n\t}\n\n\tcreateVersionAndBuildTimeCommons(version, buildTimestamp) {\n\t\tlet result = this.createVersionAndBuildTime(version, buildTimestamp);\n\t\tconsole.log('VersionAndBuildTime-Commons', result);\n\t\tthis.commonsVersion = result.version;\n\t\tthis.commonsBuildTimestamp = result.buildTimes;\n\t}\n\n\tcreateVersionAndBuildTimeSecurity(version, buildTimestamp) {\n\t\tlet result = this.createVersionAndBuildTime(version, buildTimestamp);\n\t\tconsole.log('VersionAndBuildTime-Security', result);\n\t\tthis.securityVersion = result.version;\n\t\tthis.securityBuildTimestamp = result.buildTimes;\n\t}\n\n\tcreateVersionAndBuildTimeUtil(version, buildTimestamp) {\n\t\tlet result = this.createVersionAndBuildTime(version, buildTimestamp);\n\t\tconsole.log('VersionAndBuildTime-Util', result);\n\t\tthis.utilVersion = result.version;\n\t\tthis.utilBuildTimestamp = result.buildTimes;\n\t}\n\n\tcreateVersionAndBuildTime(showVersion: string, showBuildTime: string): any {\n\t\tlet version: string, buildTimes: string;\n\t\tversion = null;\n\t\tif (showVersion) {\n\t\t\tversion = showVersion;\n\t\t}\n\t\tbuildTimes = null;\n\t\tif (showBuildTime) {\n\t\t\tlet momentValue = DateUtil.getMoment(showBuildTime).utcOffset(0, true);\n\t\t\tbuildTimes = momentValue\n\t\t\t\t.utcOffset(DateUtil.UTC_AMERICA_BOGOTA)\n\t\t\t\t.format('DD MMM YYYY HH:mm');\n\t\t}\n\t\treturn {\n\t\t\tversion: version,\n\t\t\tbuildTimes: buildTimes\n\t\t};\n\t}\n}\n","import { OnInit, Component, ChangeDetectorRef } from '@angular/core';\nimport { CommonService } from '../services/common.service';\nimport { CommonListsComponent } from './common.lists.component';\nimport { ApplicationBudget, ApplicationBudgetTotal } from 'ng-pli-util';\n\n@Component({\n    selector: 'app-frontoffice-commons',\n    template: '',\n    standalone: false\n})\nexport abstract class FrontofficeCommonsComponent extends CommonListsComponent implements OnInit {\n\ttoastDuration: number = 10000;\n\t// True If actual date is before than end application date\n\tdateClose: boolean;\n\tpromCodigo: number;\n\tstateId: number;\n\tstateName: string;\n\n\tconstructor(protected commonService: CommonService, protected cdRef: ChangeDetectorRef) {\n\t\tsuper(commonService, cdRef);\n\t}\n\n\tngOnInit() {\n\t\tsuper.ngOnInit();\n\t}\n\n\tcreateApplicationBudgetTotalAmount(\n\t\tapplicationId: string,\n\t\tbudget: ApplicationBudget,\n\t\tcreditAccepted: boolean,\n\t\ttotalAmount: number = undefined,\n\t\ttotalOwnFunds: number = undefined,\n\t\ttotalFinancing: number = undefined\n\t): any {\n\t\tconst budgetApp = this.createBudgetApplication(\n\t\t\tbudget,\n\t\t\tcreditAccepted,\n\t\t\ttotalAmount,\n\t\t\ttotalOwnFunds,\n\t\t\ttotalFinancing\n\t\t);\n\t\tbudget = budgetApp.budget;\n\t\tconst applicationBudgetTotalAmount = {\n\t\t\tapplicationBudgetTotal: budgetApp.applicationBudgetTotal,\n\t\t\tapplicationId: applicationId,\n\t\t\tcreditAccepted: creditAccepted\n\t\t};\n\t\treturn {\n\t\t\tapplicationBudgetTotalAmount: applicationBudgetTotalAmount,\n\t\t\tbudget: budget\n\t\t};\n\t}\n\n\tcreateBudgetApplication(\n\t\tbudget: ApplicationBudget,\n\t\tcreditAccepted: boolean,\n\t\ttotalAmount: number = undefined,\n\t\ttotalOwnFunds: number = undefined,\n\t\ttotalFinancing: number = undefined\n\t): any {\n\t\t// Choose if the total budget is from application or legalization process\n\t\tconst isApplicationProcess = creditAccepted == undefined || creditAccepted == false;\n\t\tlet appProcessBudgetTotal = isApplicationProcess\n\t\t\t? budget.applicationProcess\n\t\t\t: budget.legalizationProcess;\n\t\t// Init the amount or add new values\n\t\tif (appProcessBudgetTotal == undefined || appProcessBudgetTotal == null) {\n\t\t\ttotalAmount = totalAmount == undefined ? 0 : totalAmount;\n\t\t\ttotalOwnFunds = totalOwnFunds == undefined ? 0 : totalOwnFunds;\n\t\t\ttotalFinancing = totalFinancing == undefined ? 0 : totalFinancing;\n\t\t\tappProcessBudgetTotal = new ApplicationBudgetTotal();\n\t\t} else {\n\t\t\ttotalAmount =\n\t\t\t\ttotalAmount == undefined ? appProcessBudgetTotal.totalAmount : totalAmount;\n\t\t\ttotalOwnFunds =\n\t\t\t\ttotalOwnFunds == undefined ? appProcessBudgetTotal.totalOwnFunds : totalOwnFunds;\n\t\t\ttotalFinancing =\n\t\t\t\ttotalFinancing == undefined ? appProcessBudgetTotal.totalFinancing : totalFinancing;\n\t\t}\n\t\tappProcessBudgetTotal.totalAmount = totalAmount;\n\t\tappProcessBudgetTotal.totalOwnFunds = totalOwnFunds;\n\t\tappProcessBudgetTotal.totalFinancing = totalFinancing;\n\t\tif (isApplicationProcess) {\n\t\t\tbudget.applicationProcess = appProcessBudgetTotal;\n\t\t} else {\n\t\t\tbudget.legalizationProcess = appProcessBudgetTotal;\n\t\t}\n\t\treturn {\n\t\t\tapplicationBudgetTotal: appProcessBudgetTotal,\n\t\t\tbudget: budget\n\t\t};\n\t}\n\n\t/**\n\t * Call the validataion service\n\t * @param cnfIniStateId Initial config status id, if not exist, get the config status id from the service\n\t * @returns True if actual date is before than end application date and the stateAppId is equals of the cnfIniStateId\n\t */\n\tasync validateCloseApplicationProcess(cnfIniStateId?: number): Promise<any> {\n\t\tlet response = await this.commonService\n\t\t\t.validateCloseApplicationProcess(this.promCodigo, this.stateId, cnfIniStateId)\n\t\t\t.toPromise();\n\t\tthis.dateClose = response.closeApplicationDate;\n\t\treturn new Promise((resolve) => {\n\t\t\tresolve(response.userAllowSave);\n\t\t});\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { DocProcessResponse } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class DocumentProcessService {\n\tconstructor(@Inject('environment') private environment, private http: HttpClient) {}\n\n\tprocesarDocumento(file: File): Observable<DocProcessResponse> {\n\n\t\tconst apiUrl = this.environment.host.backend.backoffice + 'docapi/procesar';\n\t\tconst formData = new FormData();\n\t\tformData.append('file', file, file.name);\n\n\t\treturn this.http.post<DocProcessResponse>(apiUrl, formData);\n\t}\n  \n}\n","import { Observable } from 'rxjs';\nimport { PliPromocion, DataFormApplication, EProceso, Archive } from 'ng-pli-util';\nimport { PppService } from './ppp.service';\nimport { FileService } from './file.service';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class UploadDocumentsService {\n\t/** It contains the prom codigo */\n\tresult: number;\n\tpromCodigo: number;\n\tpatCodigo: number;\n\tprogCodigo: number;\n\texecuteSubscribeApplication: boolean;\n\tdataFormApplication: DataFormApplication;\n\n\tconstructor(private fileService: FileService, private pppService: PppService) {}\n\n\tinitPpp(dataFormApplication: DataFormApplication): Observable<any> {\n\t\treturn Observable.create((initObserver) => {\n\t\t\tif (dataFormApplication.promCodigo) {\n\t\t\t\tthis.dataFormApplication = dataFormApplication;\n\t\t\t\tthis.promCodigo = dataFormApplication.promCodigo;\n\t\t\t\tthis.pppService\n\t\t\t\t\t.getPromocionById(this.promCodigo)\n\t\t\t\t\t.subscribe((prom: PliPromocion) => {\n\t\t\t\t\t\tif (prom) {\n\t\t\t\t\t\t\tthis.patCodigo = prom.pliPrograma.pliPatrocinador.patCodigo;\n\t\t\t\t\t\t\tthis.progCodigo = prom.pliPrograma.progCodigo;\n\t\t\t\t\t\t\tinitObserver.next();\n\t\t\t\t\t\t\tinitObserver.complete();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t}\n\t\t\treturn { unsubscribe() {} };\n\t\t});\n\t}\n\n\tuploading(fileReturn: any, dataFormApplication: DataFormApplication): Observable<any> {\n\t\treturn Observable.create((observer) => {\n\t\t\tthis.initPpp(dataFormApplication).subscribe(() => {\n\t\t\t\tconst filePath = this.fileService.getPath(\n\t\t\t\t\tEProceso.CONVOCATORIA,\n\t\t\t\t\tthis.patCodigo,\n\t\t\t\t\tthis.progCodigo,\n\t\t\t\t\tthis.promCodigo,\n\t\t\t\t\tthis.dataFormApplication.applicationId,\n\t\t\t\t\tfileReturn.name\n\t\t\t\t);\n\t\t\t\tthis.fileService.upload(filePath, fileReturn).subscribe(\n\t\t\t\t\t(url) => {\n\t\t\t\t\t\tif (url) {\n\t\t\t\t\t\t\tlet archive = new Archive();\n\t\t\t\t\t\t\tarchive.name = fileReturn.name;\n\t\t\t\t\t\t\tarchive.url = url;\n\t\t\t\t\t\t\tarchive.documentManagementProcess = false;\n\t\t\t\t\t\t\tobserver.next(archive);\n\t\t\t\t\t\t\tobserver.complete();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t(error) => {\n\t\t\t\t\t\tconsole.error('Error trying to upload: ', error);\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t});\n\t\t\treturn { unsubscribe() {} };\n\t\t});\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { ApplicationPdfFormRequestTO } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class ApplicationPdfFormService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/** It send the email */\n\tgenerate(applicationPdfFormRequestTO: ApplicationPdfFormRequestTO): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'applicationPdfForm/generate-pdf-form',\n\t\t\tapplicationPdfFormRequestTO,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { ApplicationFillPercentageTO } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class ApplicationFillPercentageService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/** It send the email */\n\tsend(applicationFillPercentageTO: ApplicationFillPercentageTO): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.queue + 'applicationFillPercentage/send',\n\t\t\tapplicationFillPercentageTO,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tsendMultiple(applicationFillPercentageTO: ApplicationFillPercentageTO[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.queue + 'applicationFillPercentage/sendMultiple',\n\t\t\tapplicationFillPercentageTO,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { BlockedBeneficiary, DataTableParameters } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class BlockedBeneficiaryService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tgetByDataTablesParameters(dataTableParameters: DataTableParameters) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'blocked_beneficiary/getByDataTablesParameters',\n\t\t\tdataTableParameters,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It saves a BlockedBeneficiary */\n\tsave(blockedBeneficiary: BlockedBeneficiary): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'blocked_beneficiary/save',\n\t\t\tblockedBeneficiary,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tenableBeneficiary(blockedBeneficiary: BlockedBeneficiary): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'blocked_beneficiary/enableBeneficiary',\n\t\t\tblockedBeneficiary,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tgetByIdentificationAndPromCodigo(identification: string, promCodigo: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'blocked_beneficiary/getByIdentificationAndPromCodigo',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo)\n\t\t\t\t\t.set('identification', identification)\n\t\t\t}\n\t\t);\n\t}\n}\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { BudgetSetup, PliCnfPresupuestoGlobal } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class BudgetSetupService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tBudgetSetup(\n\t\tpresupuestoList: PliCnfPresupuestoGlobal[],\n\t\tcpreCodigo: number\n\t): Observable<BudgetSetup> {\n\t\tconst params = new HttpParams().set('cpreCodigo', cpreCodigo.toString());\n\n\t\treturn this.httpClient.post<BudgetSetup>(\n\t\t\tthis.environment.host.backend.backoffice + 'budget_setup',\n\t\t\tpresupuestoList,\n\t\t\t{ params }\n\t\t);\n\t}\n}\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { ApplicationCodebtorTO, DataTableParameters } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class CodebtorService {\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/** It returns the list of application by dataTableParameters */\n\tgetApplicationsByDataTableParameters(\n\t\tdataTableParameters: DataTableParameters\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'codebtors/getByDataTablesParameters',\n\t\t\tdataTableParameters\n\t\t);\n\t}\n\n\tupdateEmailAndPhoneCodebtor(applicationCodebtorTO: ApplicationCodebtorTO): Observable<any> {\n\t\treturn this.httpClient.put(\n\t\t\tthis.environment.host.backend.backoffice + 'codebtors/updateEmailAndPhoneCodebtor',\n\t\t\tapplicationCodebtorTO\n\t\t);\n\t}\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { DataTableParameters, UpdateBankvisionRequestTO } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class ClosureWalletService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tgetTransactionsByDataTablesParameters(\n\t\tdataTableParameters: DataTableParameters\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice +\n\t\t\t\t'closure-wallet/transactions/getByDataTablesParameters',\n\t\t\tdataTableParameters,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tgetDetailTransactionsByDataTablesParameters(\n\t\tdataTableParameters: DataTableParameters\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice +\n\t\t\t\t'closure-wallet/detail-transactions/getByDataTablesParameters',\n\t\t\tdataTableParameters,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tgetMonthlyCausationByDataTablesParameters(\n\t\tdataTableParameters: DataTableParameters\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice +\n\t\t\t\t'closure-wallet/monthlyCausation/getByDataTablesParameters',\n\t\t\tdataTableParameters,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tgetByDataTablesParameters(dataTableParameters: DataTableParameters): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice +\n\t\t\t\t'closure-wallet/creditBalance/getByDataTablesParameters',\n\t\t\tdataTableParameters,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { CommitteeAssistant } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class CommitteeAssistantService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/** It send the email */\n\tsave(committeeAssistant: CommitteeAssistant): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'committee-assistance/save',\n\t\t\tcommitteeAssistant,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tsaveAll(committeeAssistantList: CommitteeAssistant[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'committee-assistance/saveAll',\n\t\t\tcommitteeAssistantList,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tgetByPliCnfCommitteeId(pliCnfCommitteeId: number): Observable<any> {\n\t\tlet httpParams = new HttpParams();\n\t\thttpParams = httpParams.set('pliCnfCommitteeId', String(pliCnfCommitteeId));\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'committee-assistance/findByPliCnfCommitteeId',\n\t\t\t{ params: httpParams }\n\t\t);\n\t}\n\n\tgetBySegmentationDimension(\n\t\tpliCnfCommitteeId: number,\n\t\tsegmentationDimension: string\n\t): Observable<any> {\n\t\tlet httpParams = new HttpParams();\n\t\thttpParams = httpParams.set('pliCnfCommitteeId', String(pliCnfCommitteeId));\n\t\thttpParams = httpParams.set('segmentationDimension', segmentationDimension);\n\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'committee-assistance/findBySegmentation',\n\t\t\t{ params: httpParams }\n\t\t);\n\t}\n\n\tgetBySegmentationDimensionAndAssistanceType(\n\t\tpliCnfCommitteeId: number,\n\t\tattendanceTypeId: number,\n\t\tsegmentationDimension: string\n\t): Observable<any> {\n\t\tlet httpParams = new HttpParams();\n\t\thttpParams = httpParams.set('pliCnfCommitteeId', String(pliCnfCommitteeId));\n\t\thttpParams = httpParams.set('attendanceTypeId', String(attendanceTypeId));\n\t\thttpParams = httpParams.set('segmentationDimension', segmentationDimension);\n\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'committee-assistance/findBySegmentationAndAttendanceType',\n\t\t\t{ params: httpParams }\n\t\t);\n\t}\n\n\tdelete(id: string): Observable<any> {\n\t\tlet httpParams = new HttpParams();\n\t\thttpParams = httpParams.set('id', String(id));\n\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.backoffice + 'committee-assistance',\n\t\t\t{ params: httpParams }\n\t\t);\n\t}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { CommitteePdfDeedTO } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class CommitteePdfService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tsend(lCommitteePdfDeedTO: CommitteePdfDeedTO[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.queue + 'committee-pdf/send',\n\t\t\tlCommitteePdfDeedTO\n\t\t);\n\t}\n\n\tsendBackoffice(lCommitteePdfDeedTO: CommitteePdfDeedTO[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'pdf/getBase64CommitteePdf',\n\t\t\tlCommitteePdfDeedTO\n\t\t);\n\t}\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class CommitteMoneyServiceService {\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tgetByOneCommittee(promCode: number, idCommittee: number, ...keysAndValues): Observable<any> {\n\t\tlet httpParams = new HttpParams();\n\t\thttpParams = httpParams.set('promCode', String(promCode));\n\t\thttpParams = httpParams.set('idCommittee', String(idCommittee));\n\t\thttpParams = httpParams.set('keyGroupDimension', keysAndValues[0]);\n\t\thttpParams = httpParams.set('keySegmentationDimension', keysAndValues[1]);\n\t\thttpParams = httpParams.set('valueSegmentationDimension', keysAndValues[2]);\n\t\thttpParams = httpParams.set('groupDimensionFormId', keysAndValues[2]);\n\t\thttpParams = httpParams.set('segmentationDimensionFormId', keysAndValues[3]);\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'committe-money/getByOneCommittee',\n\t\t\t{ params: (httpParams = httpParams) }\n\t\t);\n\t}\n\n\tgetByAllCommittee(\n\t\tpromCode: number,\n\t\tselectedStatusId: String,\n\t\tnegativeStatusId: String,\n\t\t...keysAndValues\n\t): Observable<any> {\n\t\tlet httpParams = new HttpParams();\n\t\thttpParams = httpParams.set('promCode', String(promCode));\n\t\thttpParams = httpParams.set('keyGroupDimension', keysAndValues[0]);\n\t\thttpParams = httpParams.set('keySegmentationDimension', keysAndValues[1]);\n\t\thttpParams = httpParams.set('groupDimensionFormId', keysAndValues[2]);\n\t\thttpParams = httpParams.set('segmentationDimensionFormId', keysAndValues[3]);\n\t\thttpParams = httpParams.set('selectedStatusId', String(selectedStatusId));\n\t\thttpParams = httpParams.set('negativeStatusId', String(negativeStatusId));\n\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'committe-money/getByAllCommittee',\n\t\t\t{ params: (httpParams = httpParams) }\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { CommitteeSnapshot } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class CommitteeSnapshotService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n  public getSnapshotMetadata(committeeId: number, segmentation?: string, aggrupation?: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.backoffice}committee-snapshot/getSnapshotMetadata?committeeId=${committeeId}&segmentation=${segmentation}&aggrupation=${aggrupation}`\n\t\t);\n  }\n\n  public getSnapshotMetadataFindOne(committeeId: number): Observable<any> {\n\treturn this.httpClient.get(\n\t\t`${this.environment.host.backend.backoffice}committee-snapshot/getSnapshotMetadataFindOne?committeeId=${committeeId}`\n\t);\n}\n\n  public getListByPromCode(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.backoffice}committee-snapshot/getListByPromCode?promCodigo=${promCodigo}`\n\t\t);\n\t}\n\n\tpublic getAll(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.backoffice}committee-snapshot/getAll`\n\t\t);\n\t}\n\n\tpublic getById(id: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.backoffice}committee-snapshot/getById?id=${id}`\n\t\t);\n\t}\n\n\tpublic getByName(name: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.backoffice}committee-snapshot/getByName?name=${name}`\n\t\t);\n\t}\n\n\tpublic getByPromCode(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.backoffice}committee-snapshot/getByPromCode?promCodigo=${promCodigo}`\n\t\t);\n\t}\n\n\tpublic getByCommitteeId(committeeId: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.backoffice}committee-snapshot/getByCommitteeId?committeeId=${committeeId}`\n\t\t);\n\t}\n\n\tpublic getByCommitteeType(committeeType: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.backoffice}committee-snapshot/getByCommitteeType?committeeType=${committeeType}`\n\t\t);\n\t}\n\n\tpublic save(cs: CommitteeSnapshot): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.backoffice}committee-snapshot/save`,\n\t\t\tcs\n\t\t);\n  }\n\n  public deleteByName(name: string): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\t`${this.environment.host.backend.backoffice}committee-snapshot/deleteByName?name=${name}`\n\t\t);\n  }\n\n  public deleteByPromCode(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\t`${this.environment.host.backend.backoffice}committee-snapshot/deleteByPromCode?promCodigo=${promCodigo}`\n\t\t);\n  }\n\n  public deleteByCommitteeId(committeeId: number): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\t`${this.environment.host.backend.backoffice}committee-snapshot/deleteByCommitteeId?committeeId=${committeeId}`\n\t\t);\n  }\n\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class CreditScoreService {\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tcalculateCodebtorsScore(\n\t\tpromCodigo: number,\n\t\tapplicationId: string,\n\t\tcccodebtor: string\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'credit-score/calculateCodebtorsScore',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', applicationId)\n\t\t\t\t\t.set('cccodebtor', cccodebtor)\n\t\t\t\t\t.set('promCodigo', String(promCodigo))\n\t\t\t}\n\t\t);\n\t}\n\n\tcalculateScore(promCodigo: number, lApplicationId: string[]) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'credit-score/calculateScore',\n\t\t\tlApplicationId,\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('promCodigo', String(promCodigo))\n\t\t\t}\n\t\t);\n\t}\n\n\tgetCreditScoreDate(identification: string[], promCodigo: number) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'credit-score/getCreditScoreDate',\n\t\t\tidentification,\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('promCodigo', String(promCodigo))\n\t\t\t}\n\t\t);\n\t}\n\n\tgetByIdentificationAndPromCodigo(identification: string, promCodigo: number) {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'credit-score/getByIdentificationAndPromCodigo',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', String(promCodigo))\n\t\t\t\t\t.set('identification', identification)\n\t\t\t}\n\t\t);\n\t}\n}\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport {\n\tApplication,\n\tApplicationDataFormRequest,\n\tDataTableParameters,\n\tChangeStatusByCategoryDto,\n\tInitialRecord,\n\tApplicationValueRequestTO,\n\tChangeStatusDocumenValidationRequest,\n\tSendDocAnalysisAutoDto,\n\tApplicationFormTO\n} from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class DataFormHistoryService {\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/** It returns the list of application by dataTableParameters */\n\tgetApplicationsByDataTableParameters(\n\t\tdataTableParameters: DataTableParameters\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'data-form-history/getByDataTableParameters',\n\t\t\tdataTableParameters\n\t\t);\n\t}\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class DataLetterSegmentationService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tgenerateDataLetterFromSnapshot(idCampaign: number): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'data-letter/generateDataLetterFromSnapshot',\n\t\t\tidCampaign,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tsegment(idCampaign: number): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'data-letter/segment',\n\t\t\tidCampaign,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tfindSegmentationByCommitteeIdAndCampaignIdAndActive(\n\t\tidCommittee: number,\n\t\tidCampaign: number,\n\t\tactive: boolean\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'data-letter/findSegmentationByCommitteeIdAndCampaignIdAndActive',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('idCommittee', idCommittee.toString())\n\t\t\t\t\t.set('idCampaign', idCampaign.toString())\n\t\t\t\t\t.set('active', active.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tfindDataLetterByCampaignId(idCampaign: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'data-letter/findByCampaignId',\n\t\t\t{ params: new HttpParams().set('idCampaign', idCampaign.toString()) }\n\t\t);\n\t}\n\n\tgenerateLetter(promCodigo, campaignId, filter): Observable<any> {\n\t\tvar params = { promCodigo, campaignId, filter };\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'data-letter/generateLetter',\n\t\t\tparams,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tsendLetters(\n\t\ttest: boolean,\n\t\tcampaignId: number,\n\t\temailTest: string,\n\t\tradicados: string,\n\t\tfilter\n\t): Observable<any> {\n\t\tvar params = { test, campaignId, emailTest, radicados, filter };\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.queue + 'letterCampaing',\n\t\t\tparams,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tfindLogs(campaignId: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'data-letter/findLogs?idCampaign=' +\n\t\t\t\tcampaignId\n\t\t);\n\t}\n\n\tgetUniversities(campaignId: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'data-letter/universities?idCampaign=' +\n\t\t\t\tcampaignId\n\t\t);\n\t}\n\n\tgetParagraphs(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'data-letter/paragraphs?promCodigo=' +\n\t\t\t\tpromCodigo\n\t\t);\n\t}\n}\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { PliCnfDocumentManagement, SendDocAnalysisAutoDto } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class DocumentAnalysisAutoService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/** It send All applications for automatic document analysis */\n\tsend(sendDocAnalysisAutoDto: SendDocAnalysisAutoDto): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.queue + 'docAnalysisAuto/send',\n\t\t\tsendDocAnalysisAutoDto\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { DocumentValidationAttempt } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class DocumentValidationAttemptService {\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tgetByApplicationIdAndDocumentId(\n\t\tapplicationId: string,\n\t\tconfigurationDocumentId: number\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'getByApplicationIdAndDocumentId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', applicationId)\n\t\t\t\t\t.set('configurationDocumentId', configurationDocumentId.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tsave(documentValidationAttempt: DocumentValidationAttempt): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'save',\n\t\t\tdocumentValidationAttempt\n\t\t);\n\t}\n}\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { DataTableParameters } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class GicClientDisbursementMetadataService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tgetClientDisbursementMetadata(promCodigo: number, identification: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.gicBackoffice +\n\t\t\t\t'gic-client-metadata/getClientDisbursementMetadata',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', String(promCodigo))\n\t\t\t\t\t.set('identification', String(identification))\n\t\t\t}\n\t\t);\n\t}\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { GicCnfBankvisionTransaction } from 'ng-pli-util';\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class GicCnfBankvisionTransactionService {\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tgetByPromCodigo(promCode: number): Observable<any> {\n\t\tlet httpParams = new HttpParams();\n\t\thttpParams = httpParams.set('promCodigo', String(promCode));\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.gicConfiguration +\n\t\t\t\t'gic_cnf_bankvision_transaction/getByPromCodigo',\n\t\t\t{ params: (httpParams = httpParams) }\n\t\t);\n\t}\n\n\tsave(gicCnfBankvisionTransaction: GicCnfBankvisionTransaction): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicConfiguration + 'gic_cnf_bankvision_transaction/save',\n\t\t\tgicCnfBankvisionTransaction\n\t\t);\n\t}\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { GicCnfClosingDate } from 'ng-pli-util';\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class GicCnfClosingDateService {\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tgetAll(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.gicConfiguration + 'gic_cnf_closing_date/getAll'\n\t\t);\n\t}\n\n\tsave(gicCnfClosingDate: GicCnfClosingDate): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicConfiguration + 'gic_cnf_closing_date/save',\n\t\t\tgicCnfClosingDate\n\t\t);\n\t}\n\n\tdelete(id: number): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.gicConfiguration + 'gic_cnf_closing_date',\n\t\t\t{ params: new HttpParams().set('id', String(id)) }\n\t\t);\n\t}\n\n\tgetClosingDate() {\n\t\treturn this.httpClient.get(\n\t\t\t\tthis.environment.host.backend.gicConfiguration + 'gic_cnf_closing_date/getClosingDate');\n\t}\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { DataTableParameters } from 'ng-pli-util';\nimport { GicClientRequestTO } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class GicClientService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) { }\n\n\tgetByDataTablesParameters(dataTableParameters: DataTableParameters): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'gic-client/getByDataTablesParameters',\n\t\t\tdataTableParameters,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tsendToGic(gicClientRequestTO: GicClientRequestTO): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'gic-client/send',\n\t\t\tgicClientRequestTO,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tsavePaymentDay(identification: String, promCodigo: number, paymentDay: number): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'gic-client/savePaymentDay?identification=' + identification + '&promCodigo=' + promCodigo + '&paymentDay=' + paymentDay,\n\t\t\tnull\n\t\t);\n\t}\n\n  saveSurplus(identification: String, promCodigo: number, surplus: number): Observable<any> {\n    return this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'gic-client/saveSurplusType?identification=' + identification + '&promCodigo=' + promCodigo + '&surplusType=' + surplus,\n\t\t\tnull\n\t\t);\n  }\n\n  saveRegularFee(identification: String, promCodigo: number, regularFee: number, typeCredit: number): Observable<any> {\n    return this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'gic-client/saveRegularFee?identification=' + identification + '&promCodigo=' + promCodigo + '&regularFee=' + regularFee + '&typeCredit=' + typeCredit,\n\t\t\tnull\n\t\t);\n  }\n\n  getCeaMonths(promCodigo: number, identification: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.gicBackoffice +\n\t\t\t\t'gic-client/getCeaMonthsByPromCodigoAndIdentification',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', String(promCodigo))\n\t\t\t\t\t.set('identification', String(identification))\n\t\t\t}\n\t\t);\n  }\n\n  saveCeaMonths(identification: String, promCodigo: number, ceaMonths: number): Observable<any> {\n    return this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'gic-client/saveCeaMonths?identification=' + identification + '&promCodigo=' + promCodigo + '&ceaMonths=' + ceaMonths,\n\t\t\tnull\n\t\t);\n  }\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { DataTableParameters, UpdateBankvisionRequestTO } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class GicDisbursementService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) { }\n\n\tgetByDataTablesParameters(dataTableParameters: DataTableParameters): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice +\n\t\t\t'gic-disbursement/getByDataTablesParameters',\n\t\t\tdataTableParameters,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tupdateBankvisionState(updateBankvisionRequestTO: UpdateBankvisionRequestTO): Observable<any> {\n\t\treturn this.httpClient.put(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'gic-disbursement/updateBankvisionState',\n\t\t\tupdateBankvisionRequestTO\n\t\t);\n\t}\n\n\tsendDisbursementToBV(listIds: Array<String>) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice +\n\t\t\t'gic-disbursement/sendDisbursementToBV',\n\t\t\tlistIds\n\t\t);\n\t}\n\n\tdeleteDisbursements(listIds: Array<String>) {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'gic-disbursement/deleteDisbursements',\n\t\t\t{\n\t\t\t\tbody: listIds\n\t\t\t}\n\t\t);\n\t}\n}\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { DataTableParameters, GicPaymentApplication, UpdateBankvisionRequestTO } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class GicCollectionService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tgetByDataTablesParameters(dataTableParameters: DataTableParameters): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice +\n\t\t\t\t'gic-collection/getByDataTablesParameters',\n\t\t\tdataTableParameters,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tupdateBankvisionState(updateBankvisionRequestTO: UpdateBankvisionRequestTO): Observable<any> {\n\t\treturn this.httpClient.put(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'gic-collection/updateBankvisionState',\n\t\t\tupdateBankvisionRequestTO\n\t\t);\n\t}\n\n\tupdateGicPaymentApplication(gicPaymentApplication: GicPaymentApplication) {\n\t\treturn this.httpClient.put(\n\t\t\tthis.environment.host.backend.gicBackoffice +\n\t\t\t\t'gic-collection/updateGicPaymentApplication',\n\t\t\tgicPaymentApplication\n\t\t);\n\t}\n\n\tdelete(gicPaymentApplicationId: string, isFromCollection = false) {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.gicBackoffice +\n\t\t\t\t'gic-payment-application/delete?isFromCollection=' +\n\t\t\t\tisFromCollection,\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('gicPaymentApplicationId', gicPaymentApplicationId)\n\t\t\t}\n\t\t);\n\t}\n\n\tdeletedeletePaymentApplications(gicPaymentApplicationIds: string[], isFromCollection = false) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice +\n\t\t\t\t'gic-payment-application/deletePaymentApplications?isFromCollection=' +\n\t\t\t\tisFromCollection,\n\t\t\tgicPaymentApplicationIds,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tsendToBankVision(listIds: any): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice +\n\t\t\t\t'gic-payment-application/sendToBankVision',\n\t\t\tlistIds,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tqueueSendToBankVision(listIds: any): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicQueuePublisher + 'collection/sendCollectionsToBv',\n\t\t\tlistIds,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { GicBeneficiaryInterest } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class GicExtractService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) { }\n\n\tgetGicBeneficiaryInterest(identification: string, disbursementCode: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.gicBackoffice +\n\t\t\t'gic-extract/interestDetailed',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('disbursementCode', String(disbursementCode))\n\t\t\t\t\t.set('identification', String(identification))\n\t\t\t}\n\t\t);\n\t}\n\n\tsaveGicBeneficiaryInterest(gicBeneficiaryInterest: GicBeneficiaryInterest): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'gic-extract/saveGicBeneficiaryInterest',\n\t\t\tgicBeneficiaryInterest\n\t\t);\n\t}\n\n\tgetExchageRatesByProm(anio: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.gicBackoffice +\n\t\t\t'gic-extract/getExchageRatesByProm',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('anio', anio)\n\t\t\t}\n\t\t);\n\t}\n\n\n}\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport {\n\tApplication,\n\tApplicationDataFormRequest,\n\tDataTableParameters,\n\tChangeStatusByCategoryDto,\n\tInitialRecord,\n\tApplicationValueRequestTO,\n\tChangeStatusDocumenValidationRequest,\n\tSendDocAnalysisAutoDto,\n\tApplicationFormTO\n} from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class GicLogService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/** It returns an application by id */\n\tgetById(id: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'gic-log/getById',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('id', id)\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It returns the list of application by dataTableParameters */\n\tgetByDataTableParameters(dataTableParameters: DataTableParameters): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'gic-log/getByDataTableParameters',\n\t\t\tdataTableParameters\n\t\t);\n\t}\n\n\tgetByTypeEventAndUser(typeEventId: number, identification: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.gicBackoffice +\n\t\t\t\t'gic-log/last-by-type-event-and-editing-user',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('identification', identification)\n\t\t\t\t\t.set('typeEventId', String(typeEventId))\n\t\t\t}\n\t\t);\n\t}\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { tasaCambioToList } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class GicTRMService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/** It returns the list of trms by date list */\n\tgetByDateList(dateList: string[]): Observable<tasaCambioToList> {\n\t\treturn this.httpClient.post<tasaCambioToList>(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'gic-trm/getByDateList',\n\t\t\tdateList\n\t\t);\n\t}\n}\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { DataTableParameters, GicPaymentApplication, UpdateBankvisionRequestTO } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class GicPaymentApplicationService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tgetByDataTablesParameters(dataTableParameters: DataTableParameters): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice +\n\t\t\t\t'gic-payment-application/getByDataTablesParameters',\n\t\t\tdataTableParameters,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tupdateBankvisionState(updateBankvisionRequestTO: UpdateBankvisionRequestTO): Observable<any> {\n\t\treturn this.httpClient.put(\n\t\t\tthis.environment.host.backend.gicBackoffice +\n\t\t\t\t'gic-payment-application/updateBankvisionState',\n\t\t\tupdateBankvisionRequestTO\n\t\t);\n\t}\n\n\tupdateGicPaymentApplication(gicPaymentApplication: GicPaymentApplication) {\n\t\treturn this.httpClient.put(\n\t\t\tthis.environment.host.backend.gicBackoffice +\n\t\t\t\t'gic-payment-application/updateGicPaymentApplication',\n\t\t\tgicPaymentApplication\n\t\t);\n\t}\n\n\t// delete(gicPaymentApplicationId: string) {\n\t// \treturn this.httpClient.delete(\n\t// \t\tthis.environment.host.backend.gicBackoffice + 'gic-payment-application/delete',\n\t// \t\t{\n\t// \t\t\tparams: new HttpParams().set('gicPaymentApplicationId', gicPaymentApplicationId)\n\t// \t\t}\n\t// \t);\n\t// }\n\n\t// sendToBankVision(listIds: any): Observable<any> {\n\t// \treturn this.httpClient.post(\n\t// \t\tthis.environment.host.backend.gicBackoffice +\n\t// \t\t'gic-payment-application/sendToBankVision',\n\t// \t\tlistIds,\n\t// \t\tthis.headerJson\n\t// \t);\n\t// }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { GicParametersConfiguration } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class InitialConfigurationGicParametersService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tsaveConfiguration(gicParametersConfiguration: GicParametersConfiguration): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicConfiguration +\n\t\t\t\t'gic-initial-configuration/saveConfiguration',\n\t\t\tgicParametersConfiguration,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tgetAllConfigurationByPromCodigo(promCodigo: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.gicConfiguration +\n\t\t\t\t'gic-initial-configuration/getAllConfigurationByPromCodigo',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCodigo.toString()) }\n\t\t);\n\t}\n\n\tgetConfigurationById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.gicConfiguration +\n\t\t\t\t'gic-initial-configuration/getConfigurationById',\n\t\t\t{ params: new HttpParams().set('id', id.toString()) }\n\t\t);\n\t}\n\n\tupdateGicParametersConfiguration(\n\t\tgicParametersConfiguration: GicParametersConfiguration\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicConfiguration +\n\t\t\t\t'gic-initial-configuration/updateGicParametersConfiguration',\n\t\t\tgicParametersConfiguration\n\t\t);\n\t}\n\n\tdeleteConfigurationById(id: number, promCodigo: string): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.gicConfiguration +\n\t\t\t\t'gic-initial-configuration/deleteConfigurationById',\n\t\t\t{ params: new HttpParams().set('id', id.toString()).set('promCodigo', promCodigo) }\n\t\t);\n\t}\n\n\tgetLPromCodigos(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.gicConfiguration +\n\t\t\t\t'gic-initial-configuration/getLPromCodigos'\n\t\t);\n\t}\n\n\tcloningConfigByPromCodigo(\n\t\tpromCodigoOfCloning: any,\n\t\tpromCodigoOfCloningDestination: any\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicConfiguration +\n\t\t\t\t`gic-initial-configuration/cloningConfigByPromCodigo?promCodigoOfCloning=${promCodigoOfCloning}&promCodigoOfCloningDestination=${promCodigoOfCloningDestination}`,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { InitialRecord } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class InitialRecordService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'initial-record/json' }) };\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/** It returns an application by id */\n\tgetById(id: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'initialRecord/getById',\n\t\t\t{ params: new HttpParams().set('id', id) }\n\t\t);\n\t}\n\n\t/** It returns an application by id with basic properties */\n\tgetByIdLight(id: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'initialRecord/getByIdLight',\n\t\t\t{ params: new HttpParams().set('id', id) }\n\t\t);\n\t}\n\n\t/** It returns the list of application by prom codigo */\n\tgetByPatCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'initialRecord/getByPatCodigo',\n\t\t\t{ params: new HttpParams().set('patCodigo', promCodigo.toString()) }\n\t\t);\n\t}\n\n\t/** It returns the list of application by username */\n\tgetByUsername(username: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'initialRecord/getByUsername',\n\t\t\t{ params: new HttpParams().set('username', username) }\n\t\t);\n\t}\n\n\t/** It returns the list of application by username and patCodigo */\n\tgetByUsernameAndPatCodigo(username: string, patCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'initialRecord/getByUsernameAndPatCodigo',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('username', username)\n\t\t\t\t\t.set('patCodigo', patCodigo.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It saves an application */\n\tsave(initialRecord: InitialRecord): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'initialRecord/save',\n\t\t\tinitialRecord\n\t\t);\n\t}\n\n\t/** it returns the last number */\n\t/*\n\tgetLastNumber(promCodigo: number) {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'initialRecord/getLastNumber',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCodigo.toString()) }\n\t\t);\n\t}*/\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliCnfLetterTaskMapping } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class LetterTaskMappingService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It returns the letter task campaign by promCodigo */\n\tfindAllByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfLetterTaskMapping/getAllByPromCode',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCodigo.toString()) }\n\t\t);\n\t}\n\n\t/**\n\t *\n\t * @param letterTaskCampaing\n\t * @returns\n\t */\n\tsave(letterTaskCampaing: PliCnfLetterTaskMapping): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfLetterTaskMapping/save',\n\t\t\tletterTaskCampaing,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It saves multiple letter task campaign by promCodigo */\n\tsaveAll(letterTaskCampaing: PliCnfLetterTaskMapping[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfLetterTaskMapping/saveAll',\n\t\t\tletterTaskCampaing,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import {\n\tAppointmentObservation,\n\tSection,\n\tGuarantee,\n\tHEADER_JSON,\n\tCodebtor,\n\tDocument\n} from 'ng-pli-util';\nimport { Observable, Subject } from 'rxjs';\nimport { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class LegalizationService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tprivate subjectValidateConfirmAppoiment = new Subject<boolean>();\n\n\tgetLegalizationSection(applicationId: string): Observable<any> {\n\t\tlet httpParams = new HttpParams();\n\t\thttpParams = httpParams.set('applicationId', String(applicationId));\n\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'application/getLegalizationSection',\n\t\t\t{ params: httpParams }\n\t\t);\n\t}\n\n\tupdateLegalizationSection(section: Section, applicationId: string): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'application/updateLegalizationSection?applicationId=' +\n\t\t\t\tapplicationId,\n\t\t\tsection\n\t\t);\n\t}\n\n\tgetBudgetAppointment(applicationId: string): Observable<any> {\n\t\tlet httpParams = new HttpParams();\n\t\thttpParams = httpParams.set('applicationId', String(applicationId));\n\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'legalization/getBudgetAppointment',\n\t\t\t{ params: httpParams }\n\t\t);\n\t}\n\n\tgetLegalization(applicationId: string): Observable<any> {\n\t\tlet httpParams = new HttpParams();\n\t\thttpParams = httpParams.set('applicationId', String(applicationId));\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'legalization/getLegalization',\n\t\t\t{ params: httpParams }\n\t\t);\n\t}\n\n\tgetEnsurance(applicationId: string): Observable<any> {\n\t\tlet httpParams = new HttpParams();\n\t\thttpParams = httpParams.set('applicationId', String(applicationId));\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'legalization/getEnsurance',\n\t\t\t{ params: httpParams }\n\t\t);\n\t}\n\n\tsaveAppointmentClosingAndStateUpdate({\n\t\tapplicationId,\n\t\tpromCodigo,\n\t\tIdInteractionType,\n\t\tisPositiveState,\n\t\tpliUserUsername,\n\t\tsurvey,\n\t\tobservations,\n\t\tformId\n\t}): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'legalization/saveAppointmentClosingAndStateUpdate',\n\t\t\t{\n\t\t\t\tapplicationId,\n\t\t\t\tpromCodigo,\n\t\t\t\tIdInteractionType,\n\t\t\t\tisPositiveState,\n\t\t\t\tsurvey,\n\t\t\t\tobservations,\n\t\t\t\tpliUserUsername,\n\t\t\t\tformId\n\t\t\t}\n\t\t);\n\t}\n\n\tsaveAppointmentObservations(applicationId: string, observations: AppointmentObservation[]) {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.backoffice}legalization/saveAppointmentObservations?applicationId=${applicationId}`,\n\t\t\tobservations\n\t\t);\n\t}\n\n\tgetLegalizationSectionBySectionKey(applicationId: string, sectionKey: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'application/getLegalizationSectionBySectionKey',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('applicationId', String(applicationId))\n\t\t\t\t\t.set('sectionKey', String(sectionKey))\n\t\t\t}\n\t\t);\n\t}\n\n\tgetSubjectValidateConfirmAppoiment(): Observable<boolean> {\n\t\treturn this.subjectValidateConfirmAppoiment.asObservable();\n\t}\n\n\tsetSubjectValidateConfirmAppoiment(getSubjectValidateConfirmAppoiment: boolean = false) {\n\t\tthis.subjectValidateConfirmAppoiment.next(getSubjectValidateConfirmAppoiment);\n\t}\n\n\tupdateErrorsConfirmAppoiment(applicationId: string, errors: any): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'legalization/saveErrorsAppointment?applicationId=' +\n\t\t\t\tapplicationId,\n\t\t\terrors\n\t\t);\n\t}\n\n\tupdateInfoLogginCodebtor(applicationId: string, guarantee: Guarantee): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'legalization/saveInfoLogginCodebtor?applicationId=' +\n\t\t\t\tapplicationId,\n\t\t\tguarantee\n\t\t);\n\t}\n\n\tsaveUniversidadRecibeSeguro(applicationId: string, universidadRecibeSeguro: boolean) {\n\t\tlet saveParams = {\n\t\t\tapplicationId: applicationId,\n\t\t\tuniversidadRecibeSeguro: universidadRecibeSeguro\n\t\t};\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'legalization/saveUniversidadRecibeSeguro',\n\t\t\tsaveParams,\n\t\t\tHEADER_JSON\n\t\t);\n\t}\n\n\tgetGuarantees(applicationId: string): Observable<any> {\n\t\tlet httpParams = new HttpParams();\n\t\thttpParams = httpParams.set('applicationId', String(applicationId));\n\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'legalization/getGuarantee',\n\t\t\t{ params: httpParams }\n\t\t);\n\t}\n\n\tgetCodebtorByIdentification(applicationId: string, identification: string): Observable<any> {\n\t\tlet httpParams = new HttpParams();\n\t\thttpParams = httpParams.set('applicationId', String(applicationId));\n\t\thttpParams = httpParams.set('identification', String(identification));\n\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.backend.frontoffice + 'legalization/getCodebtorByIdentification',\n\t\t\t{ params: httpParams }\n\t\t);\n\t}\n\n\tgetCodebtorDocuments(applicationId: string, identification: string): Observable<any> {\n\t\tlet httpParams = new HttpParams();\n\t\thttpParams = httpParams.set('applicationId', String(applicationId));\n\t\thttpParams = httpParams.set('identification', String(identification));\n\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.backend.frontoffice + 'legalization/getCodebtorDocuments',\n\t\t\t{ params: httpParams }\n\t\t);\n\t}\n\n\tgetCodebtorDocumentByConfigurationDocumentId(\n\t\tapplicationId: string,\n\t\tidentification: string,\n\t\tconfigurationDocumentId: number\n\t): Observable<any> {\n\t\tlet httpParams = new HttpParams();\n\t\thttpParams = httpParams.set('applicationId', String(applicationId));\n\t\thttpParams = httpParams.set('identification', String(identification));\n\t\thttpParams = httpParams.set('configurationDocumentId', String(configurationDocumentId));\n\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.backend.frontoffice +\n\t\t\t\t'legalization/getCodebtorDocumentByConfigurationDocumentId',\n\t\t\t{ params: httpParams }\n\t\t);\n\t}\n\n\tgetCodebtorCreditReviewerObservations(\n\t\tapplicationId: string,\n\t\tidentification: string\n\t): Observable<any> {\n\t\tlet httpParams = new HttpParams();\n\t\thttpParams = httpParams.set('applicationId', String(applicationId));\n\t\thttpParams = httpParams.set('identification', String(identification));\n\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.backend.frontoffice +\n\t\t\t\t'legalization/getCodebtorCreditReviewerObservations',\n\t\t\t{ params: httpParams }\n\t\t);\n\t}\n\n\tsaveCodebtor(applicationId: string, codebtor: Codebtor) {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.backoffice}legalization/saveCodebtor?applicationId=${applicationId}`,\n\t\t\tcodebtor\n\t\t);\n\t}\n\n\tsaveCodebtorFormData(applicationId: string, codebtor: Codebtor) {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.backoffice}legalization/saveCodebtorFormData?applicationId=${applicationId}`,\n\t\t\tcodebtor\n\t\t);\n\t}\n\n\tsaveCodebtorCreditReviewerObservation(\n\t\tapplicationId: string,\n\t\tidentification: string,\n\t\tcodebtor: Codebtor\n\t) {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.backoffice}legalization/saveCodebtorCreditReviewerObservation?applicationId=${applicationId}?identification=${identification}`,\n\t\t\tcodebtor\n\t\t);\n\t}\n\n\tsaveCodebtorDocument(applicationId: string, identification: string, document: Document) {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.backoffice}legalization/saveCodebtorDocument?applicationId=${applicationId}?identification=${identification}`,\n\t\t\tdocument\n\t\t);\n\t}\n\n\tsaveCreditReviewerDocument(applicationId: string, identification: string, document: Document) {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.backoffice}legalization/saveCreditReviewerDocument?applicationId=${applicationId}?identification=${identification}`,\n\t\t\tdocument\n\t\t);\n\t}\n\n\tupdateCompletedFlag(applicationId: string, completed: boolean) {\n\t\treturn this.httpClient.put(\n\t\t\t`${this.environment.host.backend.backoffice}legalization/updateCompletedFlag?completed=${completed}`,\n\t\t\tapplicationId\n\t\t);\n\t}\n\n\tacceptConsultation(applicationId: string, response: boolean) {\n\t\treturn this.httpClient.put(\n\t\t\t`${this.environment.host.backend.backoffice}legalization/acceptConsultation?response=${response}`,\n\t\t\tapplicationId\n\t\t);\n\t}\n}\n","import { Observable } from 'rxjs';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Inject } from '@angular/core';\nimport { MigrationPlisRequestTo } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class MigrationPlisService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It sends a request to migration quueue */\n\tsend(arrMigrationPlisRequestTo: MigrationPlisRequestTo): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.queue + 'migration-plis/send',\n\t\t\tarrMigrationPlisRequestTo,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { SurveyTO } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class MigrationSurveyQueueService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tsend(lSurveyTO: SurveyTO[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.queue + 'migration-segmentation-survey/send',\n\t\t\tlSurveyTO\n\t\t);\n\t}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class SummaryBudgetService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tsendSummaryBudgetQueue(budgetRequest: any): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.queue}summary-budget/send`,\n\t\t\tbudgetRequest\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { PliCnfAppointmentType } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfAppointmentTypeService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tgetById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfAppointmentType/getById?id=${id}`\n\t\t);\n\t}\n\n\tgetByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfAppointmentType/getByPromCodigo?promCodigo=${promCodigo}`\n\t\t);\n\t}\n\n\tgetByAppointmentTypeId(appointmentTypeId: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfAppointmentType/getByAppointmentTypeId?appointmentTypeId=${appointmentTypeId}`\n\t\t);\n\t}\n\n\tsave(pliCnfAppointmentType: PliCnfAppointmentType): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfAppointmentType/save`,\n\t\t\tpliCnfAppointmentType\n\t\t);\n\t}\n\n\tgetConfigCloningAppointment(oldPPP: number, newPPP: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfAppointmentType/getConfigCloningAppointment`,\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('oldPPP', oldPPP.toString())\n\t\t\t\t\t.set('newPPP', newPPP.toString())\n\t\t\t}\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { PliCnfBudgetProgramType } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfBudgetProgramTypeService {\n\tprivate url: string;\n\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {\n\t\tthis.url = `${this.environment.host.backend.configuration}budgetProgramType/`;\n\t}\n\n\tpublic getAllByPromCodigo(promCodigo: number): Observable<PliCnfBudgetProgramType[]> {\n\t\tconst params = new HttpParams().set('promCodigo', String(promCodigo));\n\t\treturn this.httpClient.get<PliCnfBudgetProgramType[]>(this.url + 'getAllByPromCodigo', {\n\t\t\tparams\n\t\t});\n\t}\n\n\tpublic getAllByPromCodigoLight(promCodigo: number): Observable<PliCnfBudgetProgramType[]> {\n\t\tconst params = new HttpParams().set('promCodigo', String(promCodigo));\n\t\treturn this.httpClient.get<PliCnfBudgetProgramType[]>(\n\t\t\tthis.url + 'getAllByPromCodigoLight',\n\t\t\t{\n\t\t\t\tparams\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic save(budgetProgramType: PliCnfBudgetProgramType): Observable<PliCnfBudgetProgramType> {\n\t\treturn this.httpClient.post<PliCnfBudgetProgramType>(this.url + 'save', budgetProgramType);\n\t}\n\n\tpublic getById(id: number): Observable<PliCnfBudgetProgramType> {\n\t\tconst params = new HttpParams().set('id', String(id));\n\t\treturn this.httpClient.get<PliCnfBudgetProgramType>(this.url + 'getById', {\n\t\t\tparams\n\t\t});\n\t}\n\n\tpublic delete(id: number): Observable<PliCnfBudgetProgramType> {\n\t\tconst params = new HttpParams().set('id', String(id));\n\t\treturn this.httpClient.delete<PliCnfBudgetProgramType>(this.url + 'delete', {\n\t\t\tparams\n\t\t});\n\t}\n\n\tpublic getConfigCloningBudgetProgramMap(\n\t\toldPPP: number,\n\t\tnewPPP: number\n\t): Observable<PliCnfBudgetProgramType[]> {\n\t\tconst params = new HttpParams().set('oldPPP', String(oldPPP)).set('newPPP', String(newPPP));\n\t\treturn this.httpClient.get<PliCnfBudgetProgramType[]>(\n\t\t\t`${this.url}getConfigCloningBudgetProgram`,\n\t\t\t{ params }\n\t\t);\n\t}\n}\n","import { map } from 'rxjs/operators';\nimport { Observable } from 'rxjs';\nimport { PliCnfConfigMinisite, DatatableSearchList, DataTableParameters } from 'ng-pli-util';\nimport { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfConfigMinisiteService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tsave(pliCnfConfigMinisite: PliCnfConfigMinisite): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfConfigMiniSite/save',\n\t\t\tpliCnfConfigMinisite,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tsaveMinisiteData({ configMiniSiteId, searchListId }): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.segmentation +\n\t\t\t\t'PlicSegmentationTableController/saveMinisiteData',\n\t\t\t{ configMiniSiteId, searchListId },\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tsaveHeaderFooter(headerFooter: any): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfConfigMiniSite/saveHeaderFooter',\n\t\t\theaderFooter,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tfindById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfConfigMiniSite/findById',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('id', id.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tfindHeaderFooter(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfConfigMiniSite/findHeaderFooter'\n\t\t);\n\t}\n\n\tfindAllByUserId(idUser: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfConfigMiniSite/findAllByUserId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('idUser', idUser.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t// findAllByPromCodigo(promCodigo: number): Observable<any> {\n\t//   return this.httpClient.get(\n\t//     this.environment.host.backend.configuration +\n\t//     'pliCnfConfigMiniSite/findAllByPromCodigo',\n\t//     {\n\t//       params: new HttpParams()\n\t//         .set('promCodigo', promCodigo.toString())\n\t//     }\n\t//   );\n\t// }\n\n\tdelete(id: number): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfConfigMiniSite/delete?id=${id}`\n\t\t);\n\t}\n\n\tgetDatatableSearchListByDtblSearchListId(\n\t\tdtblSearchListId: string,\n\t\ttype: number\n\t): Observable<any> {\n\t\treturn (\n\t\t\tthis.httpClient\n\t\t\t\t.get<DatatableSearchList[]>(\n\t\t\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t\t\t'PliDatatableSearchListController/getDatatableSearchListByDtblSearchListId',\n\t\t\t\t\t{\n\t\t\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t\t\t.set('dtblSearchListId', dtblSearchListId)\n\t\t\t\t\t\t\t.set('type', type.toString())\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\t// DJ - Committee sorting requirement\n\t\t\t\t.pipe(\n\t\t\t\t\tmap((lDatatableSearchList: DatatableSearchList[]) => {\n\t\t\t\t\t\tlDatatableSearchList.sort((a, b) => {\n\t\t\t\t\t\t\tconst textA = a['recordSize'];\n\t\t\t\t\t\t\tconst textB = b['recordSize'];\n\t\t\t\t\t\t\treturn textA < textB ? 1 : textA > textB ? -1 : 0;\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn lDatatableSearchList;\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t);\n\t}\n\n\tgetByDataTablesParameters(dataTablesParameters: DataTableParameters): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfConfigMiniSite/getByDataTablesParameters',\n\t\t\tdataTablesParameters,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tsaveAllDatatableSearchList(lDatatableSearchList: DatatableSearchList[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'PliDatatableSearchListController/saveAllDatatableSearchList',\n\t\t\tlDatatableSearchList,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tgetDatatableSearchListById(id: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'PliDatatableSearchListController/getDatatableSearchListById',\n\t\t\t{ params: new HttpParams().set('id', id) }\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliCnfCommitteePdfConfig, PliCnfCommitteePdfConfigTableConfig } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfCommitteePdfConfigTableConfigService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tpublic getAll(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCommitteePdfConfigTableConfig/getAll`\n\t\t);\n\t}\n\n\tpublic save(\n\t\tpliCnfCommitteePdfConfigTableConfig: PliCnfCommitteePdfConfigTableConfig\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfCommitteePdfConfigTableConfig/save',\n\t\t\tpliCnfCommitteePdfConfigTableConfig\n\t\t);\n\t}\n\n\tpublic getById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCommitteePdfConfigTableConfig/getById?id=${id}`\n\t\t);\n\t}\n\n\tpublic getByPliCnfCommitteePdfConfig(pdfConfigId: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCommitteePdfConfigTableConfig/getByPliCnfCommitteePdfConfig?pdfConfigId=${pdfConfigId}`\n\t\t);\n\t}\n\n\tpublic getPdfConfigById(pdfConfigId: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCommitteePdfConfigTableConfig/getPdfConfigById?pdfConfigId=${pdfConfigId}`\n\t\t);\n\t}\n\n\tpublic delete(id: number): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCommitteePdfConfigTableConfig/delete?id=${id}`\n\t\t);\n\t}\n\n\tpublic getPdfConfigForApplicationByPromCode(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCommitteePdfConfigTableConfig/getPdfConfigForApplicationByPromCode?promCodigo=${promCodigo}`\n\t\t);\n\t}\n\n\tpublic updatePdfConfigForApplication(pdfConfig: PliCnfCommitteePdfConfig): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfCommitteePdfConfigTableConfig/updatePdfConfigForApplication',\n\t\t\tpdfConfig\n\t\t);\n\t}\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { PliCnfCommitteePdfGenerationStatus } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfCommitteePdfGenStatusService {\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tpublic getByPdfConfigId(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}committee-pdf-generation-status/getByPdfConfigId`,\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('id', String(id))\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic save(\n\t\tpliCnfCommitteePdfGenerationStatus: PliCnfCommitteePdfGenerationStatus\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'committee-pdf-generation-status/save',\n\t\t\tpliCnfCommitteePdfGenerationStatus\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliCnfCommittee } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfCommitteeService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tpublic getAll(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCommittee/getAll`\n\t\t);\n\t}\n\n\tpublic getAllByPromCode(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCommittee/getAllByPromCode?promCodigo=${promCodigo}`\n\t\t);\n\t}\n\n\tpublic getAllByPromCodeLight(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCommittee/getAllByPromCodeLight?promCodigo=${promCodigo}`\n\t\t);\n\t}\n\n\tpublic getAllTypeCommittee(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfCommittee/getAllTypeCommittee'\n\t\t);\n\t}\n\n\tpublic getAllByHavingVisualizationMode(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCommittee/getAllByHavingVisualizationMode?promCodigo=${promCodigo}`\n\t\t);\n\t}\n\n\tpublic getAllWithNoInteraction(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCommittee/getAllWithNoInteraction?promCodigo=${promCodigo}`\n\t\t);\n\t}\n\n\tpublic save(pliCnfCommittee: PliCnfCommittee): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfCommittee/save',\n\t\t\tpliCnfCommittee\n\t\t);\n\t}\n\n\tpublic getById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCommittee/getById?id=${id}`\n\t\t);\n\t}\n\n\tpublic delete(id: number): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCommittee/delete?id=${id}`\n\t\t);\n\t}\n\n\tpublic saveAll(pliCnfCommittee: PliCnfCommittee[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfCommittee/saveAll',\n\t\t\tpliCnfCommittee\n\t\t);\n\t}\n\n\tpublic getByPromCodigoAndBoardDirectorsType(\n\t\tpromCodigo: number,\n\t\tboardDirectorsType: boolean\n\t): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfCommittee/getByPromCodigoAndBoardDirectorsType',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t.set('boardDirectorsType', boardDirectorsType)\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic getByPromCodigoAndPostSelectionType(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfCommittee/getByPromCodigoAndPostSelectionType',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('promCodigo', promCodigo.toString())\n\t\t\t}\n\t\t);\n\t}\n}\n","import { PliCnfCommitteeValproColumns } from 'ng-pli-util';\nimport { Injectable, Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { HttpClient, HttpParams } from '@angular/common/http';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfCommitteeValproColumnsService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tgetByPliCnfCommitteeId(pliCnfCommitteeId: number) {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCommitteeValproColumns/getByPliCnfCommitteeId`,\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('pliCnfCommitteeId', pliCnfCommitteeId.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tsaveAll(pliCnfCommitteeValproColumns: PliCnfCommitteeValproColumns[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCommitteeValproColumns/saveAll`,\n\t\t\tpliCnfCommitteeValproColumns\n\t\t);\n\t}\n\n\tgetByGroupedAndPliCnfCommitteeId(grouped: boolean, pliCnfCommitteeId: number) {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCommitteeValproColumns/getByGroupedAndPliCnfCommitteeId`,\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('grouped', grouped.toString())\n\t\t\t\t\t.set('pliCnfCommitteeId', pliCnfCommitteeId.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tdelete(pliCnfColumnId: number) {\n\t\treturn this.httpClient.delete(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCommitteeValproColumns`,\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('pliCnfColumnId', pliCnfColumnId.toString())\n\t\t\t}\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfDynamicKeysAssignService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tpublic getByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfDynamicKeysAssign/getByPromCodigo?promCodigo=${promCodigo}`\n\t\t);\n\t}\n\n\tpublic getByPromCodigoAndCategoryId(promCodigo: number, categoryId: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfDynamicKeysAssign/getByPromCodigoAndCategoryId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t.set('categoryId', categoryId.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic getByPromCodigoAndListStaticKeyId(\n\t\tpromCodigo: number,\n\t\tlStaticKeyId: number[]\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfDynamicKeysAssign/getByPromCodigoAndListStaticKeyId',\n\t\t\t{\n\t\t\t\tpromCodigo: promCodigo,\n\t\t\t\tlStaticKeyId: lStaticKeyId\n\t\t\t},\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tpublic save(dynamicKeysAssignData: any[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfDynamicKeysAssign/save`,\n\t\t\tdynamicKeysAssignData\n\t\t);\n\t}\n\t/**\n\t *\n\t * @param dynamicKeysAssignData\n\t * @returns dynamicKeysAssignDataClonned Map key old Id, value new Object.\n\t */\n\tpublic saveAll(dynamicKeysAssignData: any[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfDynamicKeysAssign/saveAll`,\n\t\t\tdynamicKeysAssignData\n\t\t);\n\t}\n}\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { PliCnfDocumentManagement } from 'ng-pli-util';\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfDocumentManagementService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tgetByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfDocumentManagement/getByPromCodigo',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('promCodigo', promCodigo.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tsave(pliCnfFormMultiaplicacion: PliCnfDocumentManagement): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfDocumentManagement/save',\n\t\t\tpliCnfFormMultiaplicacion,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tconfigCloningDocumentManagement(oldPromCodigo: number, newPromCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfDocumentManagement/configCloningDocumentManagement',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('oldPromCodigo', oldPromCodigo.toString())\n\t\t\t\t\t.set('newPromCodigo', newPromCodigo.toString())\n\t\t\t}\n\t\t);\n\t}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { PliCnfEvaluationTaskTemplate } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfEvaluationTaskTemplateService {\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/** Returns a list of PliCnfEvaluationTaskTemplate */\n\tgetAll(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'evaluationTaskTemplate/getAll'\n\t\t);\n\t}\n\n\t/** Returns a list of PliCnfEvaluationTaskTemplate by ids\n\t * @param ids id per template\n\t */\n\tgetByIds(ids: number[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'evaluationTaskTemplate/getByTaskIdIn',\n\t\t\tids\n\t\t);\n\t}\n\n\t// Método para actualizar el orden basado en taskIds\n\tupdateOrder(taskIds: number[]): Observable<PliCnfEvaluationTaskTemplate[]> {\n\t\treturn this.httpClient.put<PliCnfEvaluationTaskTemplate[]>(\n\t\t\tthis.environment.host.backend.configuration + 'evaluationTaskTemplate/updateOrder',\n\t\t\ttaskIds\n\t\t);\n\t}\n\n\t/** Saves a task template array with its associated document and form records */\n\tsaveAll(pliCnfEvaluationTaskTemplate: PliCnfEvaluationTaskTemplate[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'evaluationTaskTemplate/saveAll',\n\t\t\tpliCnfEvaluationTaskTemplate\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliCnfInformationSystem } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfInformationSystemService {\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tgetAll(): Observable<PliCnfInformationSystem[]> {\n\t\treturn this.httpClient.get<PliCnfInformationSystem[]>(\n\t\t\t`${this.environment.host.backend.configuration}pli_cnf_information_system/getAll`\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\nimport { AuthenticationService } from './authentication.service';\nimport { Observable } from 'rxjs';\nimport { PliCnfLetterTemplate } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfLetterTemplateService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(\n\t\t@Inject('environment') private environment,\n\t\tprivate httpClient: HttpClient,\n\t\tprivate authService: AuthenticationService\n\t) {}\n\n\t/** It returns the template letter by promCodigo */\n\tgetListByPromCodigo(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfLetterTemplate/getAllByPromCodigo',\n\t\t\t{ params: new HttpParams().set('promCodigo', id.toString()) }\n\t\t);\n\t}\n\n\tgetById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfLetterTemplate/getById',\n\t\t\t{ params: new HttpParams().set('id', id.toString()) }\n\t\t);\n\t}\n\n\t/** It saves a letter-template */\n\tsave(letterTemplate: PliCnfLetterTemplate): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfLetterTemplate/save',\n\t\t\tletterTemplate,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It deletes a template by id */\n\tdelete(id: number): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfLetterTemplate',\n\t\t\t{ params: new HttpParams().set('id', id.toString()) }\n\t\t);\n\t}\n\n\tgetConfigCloningLetterTemplate(oldPPP: number, newPPP: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfLetterTemplate/getConfigCloningLetterTemplate',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('oldPPP', oldPPP.toString())\n\t\t\t\t\t.set('newPPP', newPPP.toString())\n\t\t\t}\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\nimport { AuthenticationService } from './authentication.service';\nimport { Observable } from 'rxjs';\nimport { PliCnfLetterTemplateType } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfLetterTemplateTypeService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(\n\t\t@Inject('environment') private environment,\n\t\tprivate httpClient: HttpClient,\n\t\tprivate authService: AuthenticationService\n\t) {}\n\n\t/** It returns the letter template types */\n\tgetAll(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfLetterTemplateType/getAll'\n\t\t);\n\t}\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { Injectable, Inject } from '@angular/core';\nimport { PliCnfMigrationStatusPlis, HEADER_JSON } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfMigrationStatusPlisService {\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tsave(data: PliCnfMigrationStatusPlis): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'pliCnfMigrationStatusPlis/save',\n\t\t\tdata,\n\t\t\tHEADER_JSON\n\t\t);\n\t}\n\n\tgetAll(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'pliCnfMigrationStatusPlis/getAll'\n\t\t);\n\t}\n\n\tgetByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'pliCnfMigrationStatusPlis/getByPromCodigo',\n\t\t\t{ params: new HttpParams().set('promCodigo', promCodigo.toString()) }\n\t\t);\n\t}\n\n\tgetAllNotIn(listStatusIdNotIn: any): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'pliCnfMigrationStatusPlis/getAllNotIn',\n\t\t\tlistStatusIdNotIn,\n\t\t\tHEADER_JSON\n\t\t);\n\t}\n\n\tgetByApplicationId(applicationId: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'pliCnfMigrationStatusPlis/getByApplicationId',\n\t\t\t{ params: new HttpParams().set('applicationId', applicationId) }\n\t\t);\n\t}\n\n\tdelete(id: number): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.backoffice + 'pliCnfMigrationStatusPlis/delete',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('id', id.toString())\n\t\t\t}\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliCnfMigrationPlisField } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfMigrationPlisFieldService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tpublic getByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfMigrationPlisField/getByPromCodigo?promCodigo=${promCodigo}`\n\t\t);\n\t}\n\n\tpublic getByPromCodigoAndCategoryId(promCodigo: number, categoryId: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfMigrationPlisField/getByPromCodigoAndCategoryId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo.toString())\n\t\t\t\t\t.set('categoryId', categoryId.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic getByPromCodigoAndListStaticKeyId(\n\t\tpromCodigo: number,\n\t\tlStaticKeyId: number[]\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfMigrationPlisField/getByPromCodigoAndListStaticKeyId',\n\t\t\t{\n\t\t\t\tpromCodigo: promCodigo,\n\t\t\t\tlStaticKeyId: lStaticKeyId\n\t\t\t},\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tpublic save(migrationPlisFiedData: any[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfMigrationPlisField/save`,\n\t\t\tmigrationPlisFiedData\n\t\t);\n\t}\n\n\tpublic configCloningMigrationConf(lMigration: PliCnfMigrationPlisField[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfMigrationPlisField/configCloningMigrationConf`,\n\t\t\tlMigration\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { PliCnfPageSectionForm } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfPageSectionFormService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tfindByPromCodigoAndPageSectionId(promCodigo, pageSectionId) {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfPageSectionForm/findByPromCodigoAndPageSectionId`,\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo)\n\t\t\t\t\t.set('pageSectionId', pageSectionId)\n\t\t\t}\n\t\t);\n\t}\n\n\tfindByPromCodigoAndformId(promCodigo, formId) {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfPageSectionForm/findByPromCodigoAndformId`,\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('promCodigo', promCodigo).set('formId', formId)\n\t\t\t}\n\t\t);\n\t}\n\n\tfindByPromCodigoAndPageSectionKey(promCodigo, pageSectionKey) {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfPageSectionForm/findByPromCodigoAndPageSectionKey`,\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo)\n\t\t\t\t\t.set('pageSectionKey', pageSectionKey)\n\t\t\t}\n\t\t);\n\t}\n\n\tgetAllByPromCode(promCodigo) {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfPageSectionForm/getAllByPromCode`,\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('promCodigo', promCodigo)\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It saves a pliCnfPageSectionForm */\n\tsave(pliCnfPageSectionForm: PliCnfPageSectionForm): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfPageSectionForm/save',\n\t\t\tpliCnfPageSectionForm,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It deletes by promCodigo and pageSectionId */\n\tdeleteByPromCodigoAndPageSectionId(promCodigo, pageSectionId): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfPageSectionForm/deleteByPromCodigoAndPageSectionId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo)\n\t\t\t\t\t.set('pageSectionId', pageSectionId)\n\t\t\t}\n\t\t);\n\t}\n\n\t/** It saves array of pliCnfPageSectionForm for clonning propouse\n\t * @author jkatz\n\t */\n\tsaveAll(pliCnfPageSectionForm: PliCnfPageSectionForm[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfPageSectionForm/saveAll',\n\t\t\tpliCnfPageSectionForm,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { HEADER_JSON, PliCnfPdf } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfPdfsService {\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tgetAll(promCode: number): Observable<PliCnfPdf[]> {\n\t\treturn this.httpClient.get<PliCnfPdf[]>(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfFormsPdf/getByPromCodigo/${promCode}`\n\t\t);\n\t}\n\n\tgetById(statusFlowId: number): Observable<PliCnfPdf> {\n\t\treturn this.httpClient.get<PliCnfPdf>(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfFormsPdf/findById/${statusFlowId}`\n\t\t);\n\t}\n\n\tsave(pdfCnf: PliCnfPdf): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfFormsPdf`,\n\t\t\tpdfCnf,\n\t\t\tHEADER_JSON\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliCnfFormEdit } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfFormEditService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/** Returns a PliCnfEvaluationTemplate by id */\n\tgetById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'formEdit/getById',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('id', id.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** Returns a list of PliCnfEvaluationTemplate by ids\n\t * @param ids id per template\n\t */\n\tgetByIds(ids: number[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'formEdit/getByIdIn',\n\t\t\tids\n\t\t);\n\t}\n\n\t/** Returns a list of PliCnfEvaluationTemplate by promCode */\n\tgetAllByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'formEdit/getAllByPromCodigo',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('promCodigo', promCodigo.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** Saves a template with its associated document and form records */\n\tsave(pliCnfFormEdit: PliCnfFormEdit): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'formEdit/save',\n\t\t\tpliCnfFormEdit,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** Deletes a template with its associated document and form records,\n\t * unless there is another configuration using the specified evaluation template */\n\tdelete(id: number): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + 'formEdit/delete',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('id', id.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tgetByPageSection(pageSection: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'formEdit/getByPageSection',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('pageSection', pageSection)\n\t\t\t}\n\t\t);\n\t}\n\n\tgetByPageSectionAndPromCode(pageSection: string, promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'formEdit/getByPageSectionAndPromCodigo',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('pageSection', pageSection)\n\t\t\t\t\t.set('promCodigo', String(promCodigo))\n\t\t\t}\n\t\t);\n\t}\n\n\t/** Saves arrays template with its associated document and form records */\n\tsaveAll(pliCnfFormEdit: PliCnfFormEdit[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'formEdit/saveAll',\n\t\t\tpliCnfFormEdit,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Injectable, Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { PliCnfFormMultiaplicacion } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfFormMultiaplicacionService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\t/** Returns a PliCnfEvaluationTemplate by id */\n\tgetById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'formMulti/getById',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('id', id.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** Returns a PliCnfEvaluationTemplate by patCodigo */\n\tgetByPatCodigo(patCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'formMulti/getByPatCodigo',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('patCodigo', patCodigo.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\t/** Saves a template with its associated document and form records */\n\tsave(pliCnfFormMultiaplicacion: PliCnfFormMultiaplicacion): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'formMulti/save',\n\t\t\tpliCnfFormMultiaplicacion,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** Deletes a template with its associated document and form records,\n\t * unless there is another configuration using the specified evaluation template */\n\tdelete(id: number): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + 'formMulti/delete',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('id', id.toString())\n\t\t\t}\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { PliCnfProfileForm } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfProfileFormService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It saves a profile */\n\tsave(listProfileUser: PliCnfProfileForm[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfProfileForm/save',\n\t\t\tlistProfileUser,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/** It deletes a form by id */\n\tdeleteByProfileIdAndFormId(profileId, formId): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfProfileForm/deleteByProfileIdAndFormId',\n\t\t\t{ params: new HttpParams().set('profileId', profileId).set('formId', formId) }\n\t\t);\n\t}\n\n\t/** It deletes a form by id */\n\tdeleteById(profileUserId): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfProfileForm/deleteById',\n\t\t\t{ params: new HttpParams().set('profileUserId', profileUserId) }\n\t\t);\n\t}\n\n\t/** It deletes a form by userId, patCodigo, idProfile */\n\tdeleteByListId(lProfileForm: PliCnfProfileForm[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfProfileForm/deleteByListId',\n\t\t\tlProfileForm,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { PliCnfSurvey } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfSurveyService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tsave(pliCnfSurvey: PliCnfSurvey): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfSurvey/save',\n\t\t\tpliCnfSurvey\n\t\t);\n\t}\n\n\tclone(pliCnfSurvey: PliCnfSurvey): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfSurvey/clone',\n\t\t\tpliCnfSurvey\n\t\t);\n\t}\n\n\tgetAll(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfSurvey/getAll'\n\t\t);\n\t}\n\n\tgetAllEnable(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfSurvey/getAllEnable'\n\t\t);\n\t}\n\n\tgetAllSent(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfSurvey/getAllSent'\n\t\t);\n\t}\n\n\tgetEnableByUsername(username: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfSurvey/getEnableByUsername',\n\t\t\t{ params: new HttpParams().set('username', username) }\n\t\t);\n\t}\n\n\tgetById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfSurvey/getById',\n\t\t\t{ params: new HttpParams().set('id', String(id)) }\n\t\t);\n\t}\n\n\tdelete(id: number): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfSurvey',\n\t\t\t{ params: new HttpParams().set('id', String(id)) }\n\t\t);\n\t}\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { PliCnfSurveyDocument } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfSurveyDocumentService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tsave(pliCnfSurveyDocument: PliCnfSurveyDocument): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfSurveyDocument/save',\n\t\t\tpliCnfSurveyDocument\n\t\t);\n\t}\n\n\tsaveAll(lPliCnfSurveyDocument: PliCnfSurveyDocument[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfSurveyDocument/saveAll',\n\t\t\tlPliCnfSurveyDocument\n\t\t);\n\t}\n\n\tgetBySurveyId(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfSurveyDocument/getBySurveyId',\n\t\t\t{ params: new HttpParams().set('id', String(id)) }\n\t\t);\n\t}\n\n\tgetById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfSurveyDocument/getById',\n\t\t\t{ params: new HttpParams().set('id', String(id)) }\n\t\t);\n\t}\n\n\tdelete(id: number): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfSurveyDocument',\n\t\t\t{ params: new HttpParams().set('id', String(id)) }\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { PliCnfTaskGroup } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfTaskGroupService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tpublic getAll(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfTaskGroup/getAll`\n\t\t);\n\t}\n\n\tpublic getAllByPromCode(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfTaskGroup/getAllByPromCode?promCodigo=${promCodigo}`\n\t\t);\n\t}\n\n\tpublic save(pliCnfTaskGroup: PliCnfTaskGroup[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfTaskGroup/save`,\n\t\t\tpliCnfTaskGroup\n\t\t);\n\t}\n\n\tpublic deleteAllByPromCode(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfTaskGroup/deleteAllByPromCode?promCodigo=${promCodigo}`\n\t\t);\n\t}\n}\n","import { Observable } from 'rxjs';\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable, Inject } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class PliCnfTextCategoryService {\n\n  private headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n  constructor(@Inject('environment') private environment, private httpClient: HttpClient) { }\n\n  /** It saves a entity */\n  save(pliCnfTextCategory: any): Observable<any> {\n    return this.httpClient.post(\n      this.environment.host.backend.configuration + 'pliCnfTextCategory/save',\n      pliCnfTextCategory,\n      this.headerJson\n    );\n  }\n\n  findById(id: number): Observable<any> {\n    return this.httpClient.get(\n      this.environment.host.backend.configuration +\n      'pliCnfTextCategory/findById',\n      {\n        params: new HttpParams()\n          .set('id', id.toString())\n      }\n    );\n  }\n\n  findAll(): Observable<any> {\n    return this.httpClient.get(\n      this.environment.host.backend.configuration +\n      'pliCnfTextCategory/findAll'\n    );\n  }\n\n  // findAllByPromCodigo(promCodigo: number): Observable<any> {\n  //   return this.httpClient.get(\n  //     this.environment.host.backend.configuration +\n  //     'pliCnfTextCategory/findAllByPromCodigo',\n  //     {\n  //       params: new HttpParams()\n  //         .set('promCodigo', promCodigo.toString())\n  //     }\n  //   );\n  // }\n\n}\n","import { Observable } from 'rxjs';\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable, Inject } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class PliCnfTypeTextService {\n\n  private headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n  constructor(@Inject('environment') private environment, private httpClient: HttpClient) { }\n\n  /** It saves a entity */\n  save(pliCnfTypeText: any): Observable<any> {\n    return this.httpClient.post(\n      this.environment.host.backend.configuration + 'pliCnfTypeText/save',\n      pliCnfTypeText,\n      this.headerJson\n    );\n  }\n\n  findById(id: number): Observable<any> {\n    return this.httpClient.get(\n      this.environment.host.backend.configuration +\n      'pliCnfTypeText/findById',\n      {\n        params: new HttpParams()\n          .set('id', id.toString())\n      }\n    );\n  }\n\n  findAllByCategoryId(categoryId: number): Observable<any> {\n    return this.httpClient.get(\n      this.environment.host.backend.configuration +\n      'pliCnfTypeText/findAllByCategoryId',\n      {\n        params: new HttpParams()\n          .set('categoryId', categoryId.toString())\n      }\n    );\n  }\n\n  findAll(): Observable<any> {\n    return this.httpClient.get(\n      this.environment.host.backend.configuration +\n      'pliCnfTypeText/findAll'\n    );\n  }\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { PliCnfUserCalendar } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfUserCalendarService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tgetById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfUserCalendar/getById?id=${id}`\n\t\t);\n\t}\n\n\tgetByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfUserCalendar/getByPromCodigo?promCodigo=${promCodigo}`\n\t\t);\n\t}\n\n\tgetByUsername(username: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfUserCalendar/getByUsername?username=${username}`\n\t\t);\n\t}\n\n\tgetByCalendarId(calendarId: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfUserCalendar/getByCalendarId?calendarId=${calendarId}`\n\t\t);\n\t}\n\n\tsave(pliCnfUserCalendar: PliCnfUserCalendar): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfUserCalendar/save`,\n\t\t\tpliCnfUserCalendar\n\t\t);\n\t}\n\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { PliCnfCommittee } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfMigrationPlisFieldBudgetService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tpublic saveBudget(migrationPlisBudgetData: any[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'pliCnfMigrationPlisFieldBudget/saveBudget',\n\t\t\tmigrationPlisBudgetData\n\t\t);\n\t}\n\n\tpublic getBudgetByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`\n\t\t\t${this.environment.host.backend.configuration}pliCnfMigrationPlisFieldBudget/getBudgetByPromCodigo?promCodigo=${promCodigo}`\n\t\t);\n\t}\n\n\tpublic saveEquivalencePLICtoPLIS(equivalences: any[]) {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfMigrationPlisFieldBudget/saveEquivalencePlicToPlis`,\n\t\t\tequivalences\n\t\t);\n\t}\n}\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { AuthenticationService } from './authentication.service';\nimport { PliSegActionUser } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliSegActionUserService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(\n\t\t@Inject('environment') private environment: any,\n\t\tprivate httpClient: HttpClient,\n\t\tprivate authService: AuthenticationService\n\t) {}\n\n\t/** search actions by user **/\n\tgetActions(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.segmentation + 'PlicMassiveAction/getActions'\n\t\t);\n\t}\n\n\t/** save action **/\n\tsave(pliSegActionUse: PliSegActionUser): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.segmentation + 'PlicMassiveAction/save',\n\t\t\tpliSegActionUse\n\t\t);\n\t}\n\n\t/** save actions **/\n\tsaveAll(pliSegActionsUse: PliSegActionUser[]): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.segmentation + 'PlicMassiveAction/saveAll',\n\t\t\tpliSegActionsUse\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PlisBeneficiarioService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tgetByNumeroDocumentoAndPatCodigo(identification: string, patCodigo: number) {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.plis + 'beneficiario/getByNumeroDocumentoAndPatCodigo',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('identification', identification)\n\t\t\t\t\t.set('patCodigo', patCodigo)\n\t\t\t}\n\t\t);\n\t}\n}\n","import { map } from 'rxjs/operators';\nimport { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { IndicatorRequest, DataTableParameters, CommitteeConsult } from 'ng-pli-util';\nimport { Observable, BehaviorSubject, Subject } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PromotionScoreService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tcalculateScoresByApplicationIdList(applicationIdList: string[], promCodigo): Observable<any> {\n\t\tconst params = new HttpParams().set('promCodigo', String(promCodigo));\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'promotionScoreController/calculateScoresByApplicationIdList',\n\t\t\tapplicationIdList,\n\t\t\t{ params }\n\t\t);\n\t}\n\n\tcalculatePromotionScoreByApplicationIdList(\n\t\tapplicationIdList: string[],\n\t\tpromCodigo\n\t): Observable<any> {\n\t\tconst params = new HttpParams().set('promCodigo', String(promCodigo));\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'promotionScoreController/calculatePromotionScoreByApplicationIdList',\n\t\t\tapplicationIdList,\n\t\t\t{ params }\n\t\t);\n\t}\n\n\tcreditStudyClassification(applicationIdList: string[], promCodigo): Observable<any> {\n\t\tconst params = new HttpParams().set('promCodigo', String(promCodigo));\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'promotionScoreController/creditStudyClassification',\n\t\t\tapplicationIdList,\n\t\t\t{ params }\n\t\t);\n\t}\n\n\tgetCreditStudyGroup(applicationId: string, promCodigo): Observable<any> {\n\t\tconst params = new HttpParams()\n\t\t\t.set('promCodigo', String(promCodigo))\n\t\t\t.set('applicationId', applicationId);\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'promotionScoreController/getCreditStudyGroup',\n\t\t\t{ params }\n\t\t);\n\t}\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Document, Survey, SegmentationReactivationSurveyTO } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class SurveyService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) { }\n\n\tsave(survey: Survey): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'survey/save',\n\t\t\tsurvey\n\t\t);\n\t}\n\n\tupdateState(surveyId: string, stateId: number): Observable<any> {\n\t\treturn this.httpClient.put(\n\t\t\tthis.environment.host.backend.frontoffice + 'survey/updateState',\n\t\t\tnull,\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('stateId', String(stateId)).set('surveyId', surveyId)\n\t\t\t}\n\t\t);\n\t}\n\n\tgetById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(this.environment.host.backend.frontoffice + 'survey/getById', {\n\t\t\tparams: new HttpParams().set('id', String(id))\n\t\t});\n\t}\n\n\tsaveDocument(document: Document, pliCnfSurveyId: number, username: string): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'survey/saveDocument',\n\t\t\tdocument,\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('pliCnfSurveyId', String(pliCnfSurveyId))\n\t\t\t\t\t.set('username', username)\n\t\t\t}\n\t\t);\n\t}\n\n\tgetByUsernameAndPliCnfSurveyId(pliCnfSurveyId: number, username: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'survey/getByUsernameAndPliCnfSurveyId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('pliCnfSurveyId', String(pliCnfSurveyId))\n\t\t\t\t\t.set('username', username)\n\t\t\t}\n\t\t);\n\t}\n\n\treactivateSurvey(parameters: SegmentationReactivationSurveyTO): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'survey/reactivateSurvey',\n\t\t\tparameters\n\t\t);\n\t}\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { SurveyMetadata } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class SurveyMetadataService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tsave(surveyMetadata: SurveyMetadata): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'survey-metadata/save',\n\t\t\tsurveyMetadata\n\t\t);\n\t}\n\n\tgetById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'survey-metadata/getByPliCnfSurveyId',\n\t\t\t{ params: new HttpParams().set('id', String(id)) }\n\t\t);\n\t}\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { SegmentationSurveyTO } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class SurveyQueueService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tsend(segmentationSurveyTO: SegmentationSurveyTO): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.queue + 'survey/send',\n\t\t\tsegmentationSurveyTO\n\t\t);\n\t}\n}\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { MasterPerson, Person } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class RegistryIdentifierService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** Persona natural */\n\tgetByListIdNumber(args: string) {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'application/getByListIdNumber',\n\t\t\t{ params: new HttpParams().set('args', args), headers: this.headerJson.headers }\n\t\t);\n\t}\n\n\t/** Persona jurídica */\n\tgetByListNit(args: string) {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'application/getByListNit',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('args', args),\n\t\t\t\theaders: this.headerJson.headers\n\t\t\t}\n\t\t);\n\t}\n\n\tupdateNamesPerson(person: MasterPerson) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'interaction/updateNamesPerson',\n\t\t\tperson,\n\t\t\t{\n\t\t\t\theaders: this.headerJson.headers\n\t\t\t}\n\t\t);\n\t}\n\n\t// saveInteraction(lInteraction: InteractionTO[]) {\n\t// \treturn this.httpClient.post(environment.loginBackend + 'interaction/save', lInteraction, {\n\t// \t\tresponseType: 'text'\n\t// \t});\n\t// }\n\n\tsavePerson(person: Person) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'application/savePerson',\n\t\t\tperson,\n\t\t\t{\n\t\t\t\theaders: this.headerJson.headers\n\t\t\t}\n\t\t);\n\t}\n}\n","import { map } from 'rxjs/operators';\nimport { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport {\n\tIndicatorRequest,\n\tDataTableParameters,\n\tCommitteeConsult,\n\tCommitteeOrdinalTO,\n\tInicatorGrouped\n} from 'ng-pli-util';\nimport { Observable, BehaviorSubject, Subject } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class VisualizationCommitteeService {\n\tprivate subjectCutlineName = new Subject<any>();\n\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tgetByDataTablesParameters(\n\t\tdataTableParameters: DataTableParameters,\n\t\tidCommittee: number,\n\t\tstatusIdList: number[]\n\t): Observable<any> {\n\t\tlet httpParams = new HttpParams();\n\t\thttpParams = httpParams.set('idCommittee', String(idCommittee));\n\t\thttpParams = httpParams.set('statusIdList', String(statusIdList));\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'visualization-committee/getByDataTablesParameters',\n\t\t\tdataTableParameters,\n\t\t\t{ params: httpParams }\n\t\t);\n\t}\n\n\t/** Get Grouped data */\n\tgetGroupedByDataTablesParameters(\n\t\tdataTableParameters: DataTableParameters,\n\t\tidCommittee: number,\n\t\tstatusIdList: number[]\n\t): Observable<any> {\n\t\tlet httpParams = new HttpParams();\n\t\thttpParams = httpParams.set('idCommittee', String(idCommittee));\n\t\thttpParams = httpParams.set('statusIdList', String(statusIdList));\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'visualization-committee/getGroupedByDataTablesParameters',\n\t\t\tdataTableParameters,\n\t\t\t{ params: httpParams }\n\t\t);\n\t}\n\n\t/** It returns an IndicatorResponse */\n\tgenerateIndicator(\n\t\tlIndicatorRequest: IndicatorRequest[],\n\t\tidCommittee: number,\n\t\tpromCodigo: number,\n\t\tstatusIdList: number[]\n\t): Observable<any> {\n\t\tlet httpParams = new HttpParams();\n\t\thttpParams = httpParams.set('idCommittee', String(idCommittee));\n\t\thttpParams = httpParams.set('promCodigo', String(promCodigo));\n\t\thttpParams = httpParams.set('statusIdList', String(statusIdList));\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'visualization-committee/generateGenericIndicator',\n\t\t\tlIndicatorRequest,\n\t\t\t{ params: httpParams }\n\t\t);\n\t}\n\n\tgenerateGroupedIndicator(indicatorGroup: InicatorGrouped): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'visualization-committee/generateGroupedIndicator',\n\t\t\tindicatorGroup\n\t\t);\n\t}\n\n\t/**\n\t * Get Segmentation values by committee\n\t * @param segmentationDimensionFormId FormId segmentation dimension\n\t * @param segmentationDimensionKey Key segmentation Dimension\n\t */\n\tgetSegmentationValues(segmentationDimensionFormId: string, segmentationDimensionKey: string) {\n\t\tlet httpParams = new HttpParams();\n\t\thttpParams = httpParams.set('formId', String(segmentationDimensionFormId));\n\t\thttpParams = httpParams.set('keyField', String(segmentationDimensionKey));\n\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'visualization-committee/getSegmentationValues',\n\t\t\t{ params: httpParams }\n\t\t);\n\t}\n\n\tgetByCommitteeId(committeeId: number) {\n\t\tlet httpParams = new HttpParams();\n\t\thttpParams = httpParams.set('committeeId', String(committeeId));\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'committee-consult/getByCommitteeId',\n\t\t\t{ params: httpParams }\n\t\t);\n\t}\n\n\tsaveCommitteeConsult(lCommitteConsult: CommitteeConsult) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'committee-consult/save',\n\t\t\tlCommitteConsult\n\t\t);\n\t}\n\n\tsaveOrdinal(committeeOrdinalTO: CommitteeOrdinalTO) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'visualization-committee/saveOrdinal',\n\t\t\tcommitteeOrdinalTO\n\t\t);\n\t}\n\n\tcloneCommitteeConsult(committeeIdOrigin: number, committeeIdTarget: number) {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.backoffice}committee-consult/cloneCommitteeConsult?committeeOrigin=${committeeIdOrigin}&committeeTarget=${committeeIdTarget}`,\n\t\t\t{}\n\t\t);\n\t}\n\n\tprivate subjectCommitteeName: BehaviorSubject<any> = new BehaviorSubject<any>(null);\n\n\tgetDataCommitteeName() {\n\t\treturn this.subjectCommitteeName.asObservable();\n\t}\n\n\tdataCommitteeName(name: string) {\n\t\treturn this.subjectCommitteeName.next(name);\n\t}\n\n\tgetDataCutlineName() {\n\t\treturn this.subjectCutlineName.asObservable();\n\t}\n\n\tsetDataCutlineName(name: string) {\n\t\treturn this.subjectCutlineName.next(name);\n\t}\n}\n","import { PliCnfConfigCreditStudy } from 'ng-pli-util';\nimport { Injectable, Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { HttpClient, HttpParams } from '@angular/common/http';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfConfigurationCreditStudyService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tgetById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCreditStudyConfig/getById?id=${id}`\n\t\t);\n\t}\n\n\tgetByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCreditStudyConfig/getByPromCodigo?promCodigo=${promCodigo}`\n\t\t);\n\t}\n\n\tsave(pliCnfConfigCreditStudy: PliCnfConfigCreditStudy): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCreditStudyConfig/save`,\n\t\t\tpliCnfConfigCreditStudy\n\t\t);\n\t}\n\n\tdelete(id: number) {\n\t\treturn this.httpClient.delete(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCreditStudyConfig/${id}`\n\t\t);\n\t}\n\n\tgetConfigCloningCreditStudy(oldPPP: number, newPPP: number) {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCreditStudyConfig/getConfigCloningCreditStudy`,\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('oldPPP', oldPPP.toString())\n\t\t\t\t\t.set('newPPP', newPPP.toString())\n\t\t\t}\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { PliCnfUniversityArticle } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfUniversityArticleService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/** It returns the list */\n\tgetAll(): Observable<any> {\n\t\treturn this.httpClient.get(this.environment.host.backend.configuration + 'pliCnfUniversityArticle');\n\t}\n\n\t/** It deletes a form by id */\n\tdelete(id): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfUniversityArticle/'+id,\n\t\t);\n\t}\n\n\t/** It returns the PliCnfUniversityArticle by id */\n\tgetById(id: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfUniversityArticle/'+id,\n\t\t);\n\t}\n\n\t/** It saves a PliCnfUniversityArticle */\n\tsave(article: PliCnfUniversityArticle): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfUniversityArticle/',\n\t\t\tarticle,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfCloningService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tgetCloningIdsByPromCodeDestiny(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCloning/getCloningIdsByPromCodeDestiny?promCodigo=${promCodigo}`\n\t\t);\n\t}\n\n\tvalidateFormsAndStatusForCloning(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\t`${this.environment.host.backend.configuration}pliCnfCloning/validateFormsAndStatusForCloning?promCodigo=${promCodigo}`\n\t\t);\n\t}\n}\n","import { UntypedFormControl, AbstractControl, ValidatorFn, ValidationErrors } from '@angular/forms';\nimport { DateUtil, NumberUtil } from 'ng-pli-util';\n\n\nexport class CustomValidator {\n\n    /** It validates if a formcontrol value matches with another one */\n    static match(controlToCompare: UntypedFormControl): ValidatorFn {\n        const validator = (control: AbstractControl): { [key: string]: boolean } => {\n            if (control.value === controlToCompare.value)\n                return null;\n            return { 'match': true };\n        }\n        return validator;\n    }\n\n    /** It validates if a controlToCompare value is presented in values and the control value is valid */\n    static matchValues(controlToCompare: UntypedFormControl, values: Array<number>): ValidatorFn {\n        const validator = (control: AbstractControl): { [key: string]: boolean } => {\n            if (values.indexOf(Number(controlToCompare.value)) >= 0 && !control.value)\n                return { 'matchvalues': true };\n            return null;\n        }\n        return validator;\n    }\n\n    /** It validates required if the control has the value  */\n    static requiredIf(controlToCompare: UntypedFormControl, value: any): ValidatorFn {\n        const validator = (control: AbstractControl): { [key: string]: boolean } => {\n            if (controlToCompare != null && controlToCompare != undefined) {\n                let valueControl = control.value;\n                let valueControlToCompare = controlToCompare.value;\n                if (valueControlToCompare == value && !valueControl)\n                    return { 'requiredIf': true };\n            }\n\n            return null;\n        }\n        return validator;\n    }\n\n    /** It validates if the control date value is older than another one */\n    static mindate(controlToCompare: UntypedFormControl): ValidatorFn {\n        const validator = (control: AbstractControl): { [key: string]: boolean } => {\n            if (controlToCompare != null && controlToCompare != undefined) {\n                let value = control.value;\n                let valueToCompare = controlToCompare.value;\n                let date = DateUtil.getDate(value);\n                let dateToCompare = DateUtil.getDate(valueToCompare);\n\n                if (date != null && dateToCompare != null)\n                    if (date.getTime() < dateToCompare.getTime())\n                        return { 'mindate': true };\n            }\n\n            return null;\n        }\n        return validator;\n    }\n\n\n    /** It validates if the control date value is younger than another one */\n    static maxdate(controlToCompare: UntypedFormControl): ValidatorFn {\n        const validator = (control: AbstractControl): { [key: string]: boolean } => {\n            if (controlToCompare != null && controlToCompare != undefined) {\n                let value = control.value;\n                let valueToCompare = controlToCompare.value;\n                let date = DateUtil.getDate(value);\n                let dateToCompare = DateUtil.getDate(valueToCompare);\n\n                if (date != null && dateToCompare != null)\n                    if (date.getTime() > dateToCompare.getTime())\n                        return { 'maxdate': true };\n            }\n            return null;\n        }\n        return validator;\n    }\n\n    /** It validates if a formcontrol value matches with another one */\n    static number(): ValidatorFn {\n        const validator = (control: AbstractControl): { [key: string]: boolean } => {\n            if (!control.value || NumberUtil.isNumber(control.value))\n                return null;\n            return { 'number': true };\n        }\n        return validator;\n    }\n\n  static validNumberByCheck(controlCheckCompare: UntypedFormControl): ValidatorFn {\n    const validator = (\n      control: AbstractControl\n    ): { [key: string]: boolean } => {\n      return controlCheckCompare.value != null &&\n        controlCheckCompare.value === true &&\n        (!control.value || !NumberUtil.isNumber(control.value))\n        ? { validnumberbycheck: true }\n        : null;\n    };\n    return validator;\n  }\n\n  static emailValidator(control) {\n    // RFC 2822 compliant regex\n    if (\n      control.value.match(\n        /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/\n      )\n    ) {\n      return null;\n    } else {\n      return { invalidEmailAddress: true };\n    }\n  }\n}\n","// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\n/* tslint:disable */\nexport const VERSION = {\n    \"dirty\": true,\n    \"raw\": \"v1.0.140-0-g8e3c1126-dirty\",\n    \"hash\": \"g8e3c1126\",\n    \"distance\": 0,\n    \"tag\": \"v1.0.140\",\n    \"semver\": {\n        \"options\": {\n            \"loose\": false,\n            \"includePrerelease\": false\n        },\n        \"loose\": false,\n        \"raw\": \"v1.0.140\",\n        \"major\": 1,\n        \"minor\": 0,\n        \"patch\": 140,\n        \"prerelease\": [],\n        \"build\": [],\n        \"version\": \"1.0.140\"\n    },\n    \"suffix\": \"0-g8e3c1126-dirty\",\n    \"semverString\": \"1.0.140\",\n    \"version\": \"1.0.140\",\n    \"buildTimestamp\": \"2026-01-20T19:23:16.363Z\"\n};\n/* tslint:enable */\n","import { VERSION } from '../../version';\n\nexport class VersionCommons {\n\tstatic showVersion(): string {\n\t\treturn VERSION.version;\n\t}\n\n\tstatic showBuildTimestamp(): string {\n\t\treturn VERSION.buildTimestamp;\n\t}\n}\n","import { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { Injectable, Inject} from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { DocumentHistory } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class DocumentHistoryService {\n  private headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n  constructor(\n    @Inject('environment') private environment,\n\t\tprivate httpClient: HttpClient\n  ) {}\n\n  /** It returns the document history by documentId and applicationId  */\n\tgetByDocumentIdAndApplicationId(documentId: string, applicationId: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'documentHistory/getByDocumentIdAndApplicationId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n          .set('documentId', documentId)\n          .set('applicationId', applicationId)\n\t\t\t}\n\t\t);\n\t}\n\n  /** It returns the document history by list documentId and applicationId  */\n\tgetByDocumentIdInAndApplicationId(listDocumentId: Array<string>, applicationId: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.frontoffice + 'documentHistory/getByDocumentIdInAndApplicationId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n          .set('listDocumentId', listDocumentId.toString())\n          .set('applicationId', applicationId)\n\t\t\t}\n\t\t);\n\t}\n\n  /** It saves a document history */\n\tsave(documentHistory: DocumentHistory): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.frontoffice + 'documentHistory/save',\n\t\t\tdocumentHistory,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { PliCnfSupportDocumentCategory } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfSupportDocumentCategoryService {\n\tprivate urlBase: string =\n\t\tthis.environment.host.backend.configuration + 'pliCnfSupportDocumentCategory';\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tfindAll(): Observable<any> {\n\t\treturn this.httpClient.get(this.urlBase + '/findAll');\n\t}\n\n\tfindByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(this.urlBase + '/findByPromCodigo', {\n\t\t\tparams: new HttpParams().set('promCodigo', promCodigo.toString())\n\t\t});\n\t}\n\n\tsave(pliCnfSupportDocumentCategory: PliCnfSupportDocumentCategory): Observable<any> {\n\t\treturn this.httpClient.post(this.urlBase + '/save', pliCnfSupportDocumentCategory);\n\t}\n\n\tdeleteById(id: number) {\n\t\treturn this.httpClient.delete(this.urlBase + '/deleteById', {\n\t\t\tparams: new HttpParams().set('id', id.toString())\n\t\t});\n\t}\n\n\tcloningSupportDocsCategories(oldPPP: number, newPPP: number, idCategory?: number) {\n\t\treturn this.httpClient.get(this.urlBase + '/cloningCategories', {\n\t\t\tparams: new HttpParams()\n\t\t\t\t.set('oldPPP', oldPPP.toString())\n\t\t\t\t.set('newPPP', newPPP.toString())\n\t\t\t\t.set('idCategory', idCategory.toString())\n\t\t});\n\t}\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { PliCnfEvaluationTaskMailing } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfEvaluationTaskMailingService {\n\turlBase: string = this.environment.host.backend.configuration;\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tgetByTaskId(taskId: number) {\n\t\treturn this.httpClient.get(this.urlBase + 'pliCnfEvaluationTaskMailing/getByTaskId', {\n\t\t\tparams: new HttpParams().set('taskId', taskId.toString())\n\t\t});\n\t}\n\n\tsave(pliCnfEvaluationTaskMailing: PliCnfEvaluationTaskMailing) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.urlBase + 'pliCnfEvaluationTaskMailing/save',\n\t\t\tpliCnfEvaluationTaskMailing\n\t\t);\n\t}\n}\n","import { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { Injectable, Inject} from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { DataTableParameters, TransactionForm, UpdateBankvisionRequestTO } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class ReturnRefundService {\n  private headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n  constructor(\n    @Inject('environment') private environment,\n\t\tprivate httpClient: HttpClient\n  ) {}\n\n  /** It save a return or refund */\n\tsave(returnRefund: TransactionForm): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'gic-return-refund/save',\n\t\t\treturnRefund,\n      this.headerJson\n\t\t);\n\t}\n\n  validateIdentification(promCodigo: number, identification: string): Observable<any> {\n    return this.httpClient.get(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'gic-return-refund/validate-identification', {\n        params: new HttpParams().set('promCodigo', promCodigo).set('identification', identification)\n      });\n  }\n\n  getCreditCreilingAvailable(promCodigo: number, fund: number, identification: string) {\n    return this.httpClient.get(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'gic-return-refund/getCreditCeilingAvailable', {\n        params: new HttpParams().set('promCodigo', promCodigo).set('identification', identification).set('fund', fund)\n      });\n  }\n\n  delete(disbursementDatatableId: string) {\n    return this.httpClient.delete(\n      this.environment.host.backend.gicBackoffice + 'gic-return-refund/delete', {\n        params: new HttpParams().set('disbursementDatatableId', disbursementDatatableId)\n      });\n  }\n\n  getBankvisionCode(disbursementDatatableId: string) {\n    return this.httpClient.get(this.environment.host.backend.gicBackoffice + 'gic-return-refund/getRubCode', {\n      params: new HttpParams().set('disbursementDatatableId', disbursementDatatableId)\n    });\n  }\n\n  getByDataTablesParameters(dataTableParameters: DataTableParameters): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'gic-return-refund/getByDataTablesParameters',\n\t\t\tdataTableParameters,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n  updateBankvisionState(updateBankvisionRequestTO: UpdateBankvisionRequestTO): Observable<any> {\n\t\treturn this.httpClient.put(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'gic-return-refund/updateBankvisionState',\n\t\t\tupdateBankvisionRequestTO\n\t\t);\n\t}\n\n}\n","import { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { Injectable, Inject} from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { DataTableParameters, InterestAdjustment, UpdateBankvisionRequestTO } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class InterestAdjustmentService {\n  private headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n  constructor(\n    @Inject('environment') private environment,\n\t\tprivate httpClient: HttpClient\n  ) {}\n\n  /** It save a return or refund */\n\tsave(interestAdjustment: InterestAdjustment): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'interest_adjustment/save',\n\t\t\tinterestAdjustment,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n  getByDataTablesParameters(dataTableParameters: DataTableParameters): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice +\n\t\t\t\t'interest_adjustment/getByDataTablesParameters',\n\t\t\tdataTableParameters,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tupdateBankvisionState(updateBankvisionRequestTO: UpdateBankvisionRequestTO): Observable<any> {\n\t\treturn this.httpClient.put(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'interest_adjustment/updateBankvisionState',\n\t\t\tupdateBankvisionRequestTO\n\t\t);\n\t}\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class ImportExcelGICService {\n\tprivate urlBase: string = this.environment.host.backend.gicQueuePublisher + 'import-excel';\n\tprivate urlBaseBackoffice: string =\n\t\tthis.environment.host.backend.gicBackoffice + 'gic-disbursement';\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tsendInitials(clients: any[]): Observable<any> {\n\t\treturn this.httpClient.post(this.urlBase + '/initials', clients);\n\t}\n\n\tsendDisbursments(disbursments: any[]) {\n\t\tlet aux: any = { disbursementList: disbursments };\n\t\treturn this.httpClient.post(this.urlBase + '/disbursments', aux, this.headerJson);\n\t}\n\n\tsendDisbursmentsBackoffice(disbursments: any[]) {\n\t\tlet aux: any = { disbursementList: disbursments };\n\t\treturn this.httpClient.post(this.urlBaseBackoffice + '/disbursments', aux, this.headerJson);\n\t}\n\n\t/**\n\t * Send collections\n\t * @param collections\n\t * @return observable<any>\n\t */\n\tsendCollections(collections: any[]): Observable<any> {\n\t\tlet aux: any = { gicCollectionList: collections };\n\t\treturn this.httpClient.post(this.urlBase + '/collections', aux, this.headerJson);\n\t}\n\n\tsendMaintenances(maintenances: any[]): Observable<any> {\n\t\tlet aux: any = { listPlisEstatusChange: maintenances };\n\t\treturn this.httpClient.post(this.urlBase + '/maintenances', aux, this.headerJson);\n\t}\n\n\tsendMaintenancesFromPlis(): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice +\n\t\t\t\t'/plis-status-change/savePlisEstatusChangeFromPlis',\n\t\t\tnull,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { GicCnfMaintenance } from 'ng-pli-util';\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class GicCnfMaintenaceService {\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tgetByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.gicConfiguration + 'gic-cnf-maintenance/getByPromCodigo',\n      {\n        params: new HttpParams().set('promCodigo', promCodigo)\n      }\n\t\t);\n\t}\n\n\tsave(gicCnfMaintenance: GicCnfMaintenance): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicConfiguration + 'gic-cnf-maintenance/save',\n\t\t\tgicCnfMaintenance\n\t\t);\n\t}\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { DataTableParameters, UpdateBankvisionRequestTO } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class GicPaymentPlanCubeService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tgetTransactionsByDataTablesParameters(\n\t\tdataTableParameters: DataTableParameters\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice +\n\t\t\t\t'gic-payment-plan-cube/getByDataTablesParameters',\n\t\t\tdataTableParameters,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Injectable, Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { CondonationMaintenance, DataTableParameters, MaintenanceForm } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class MaintenanceService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tgetByDataTablesParameters(dataTableParameters: DataTableParameters): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'maintenance/getByDataTablesParameters',\n\t\t\tdataTableParameters,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tgetByDataTablesParametersForCondonation(\n\t\tdataTableParameters: DataTableParameters\n\t): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice +\n\t\t\t\t'maintenance/getByDataTablesParametersForCondonation',\n\t\t\tdataTableParameters,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tupdate(maintenanceForm: MaintenanceForm) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'maintenance/update',\n\t\t\tmaintenanceForm,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tdownloadFlatFile(maintenanceIds: string[]) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'maintenance/downloadFlatFile',\n\t\t\t{ data: maintenanceIds },\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tdelete(maintenanceId: string) {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'maintenance/delete',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('maintenanceId', maintenanceId)\n\t\t\t}\n\t\t);\n\t}\n\n\tdeleteCondonationMaintenance(maintenanceId: string) {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'maintenance/deleteCondonationMaintenace',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('maintenanceId', maintenanceId)\n\t\t\t}\n\t\t);\n\t}\n\n\tdeleteByIdIn(maintenanceIdList: string[]) {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'maintenance/deleteByIdIn',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('maintenanceIdList', maintenanceIdList.toString())\n\t\t\t}\n\t\t);\n\t}\n\n\tdownloadCondonationFile() {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'maintenance/downloadCondonationFile',\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tupdateCondonationMaintenace(maintenanceForm: CondonationMaintenance) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice +\n\t\t\t\t'maintenance/updateCondonationMaintenance',\n\t\t\tmaintenanceForm,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tgenerateCondonationMaintenance(dateGenerate: string) {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.gicBackoffice +\n\t\t\t\t'maintenance/generateCondonationMaintenace',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('dateGenerate', dateGenerate)\n\t\t\t}\n\t\t);\n\t}\n\n\tgetEstatusChangeByPlisUuid(uuidList: string[]) {\n\t\tlet request = {\n\t\t\tuuidList: uuidList\n\t\t};\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'plis-status-change/findByPlisUuid',\n\t\t\trequest,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tdeleteCondonationMaintenaceByIdIn(maintenanceIdList: string[]) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice +\n\t\t\t\t'maintenance/deleteCondonationMaintenaceByIdIn',\n\t\t\tmaintenanceIdList\n\t\t);\n\t}\n\n\tgetEstatusChangePendCount() {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.plis + 'plisEstatusChange/getEstatusChangePendCount'\n\t\t);\n\t}\n\n\tgetEstatusChangePendSkipUpdate() {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.plis + 'plisEstatusChange/getEstatusChangePendSkipUpdate'\n\t\t);\n\t}\n\n\tupdateStatusChangeByUiuid(uuidList: string[]) {\n\t\tlet request = {\n\t\t\tuuidList: uuidList\n\t\t};\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.plis + 'plisEstatusChange/updateByUuid',\n\t\t\trequest,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class GicPaymentPlanService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tgeneratePaymentPlants(data: {\n\t\tidentification: string;\n\t\trefinancedFee?: number;\n\t\trefinancedFeeNumber?: number;\n\t\tminPaymentToCapital?: number;\n\t}): Observable<Object> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'payment-plan/generatePaymentPlants',\n\t\t\tdata,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tgeneratePaymentPlantsByIdentifications(identifications: string[]): Observable<Object> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'payment-plan/generatePaymentPlantsByIdentifications',\n\t\t\tidentifications,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\tgeneratePaymentPlansCubos(dateGenerate: string): Observable<Object> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.gicBackoffice + 'payment-plan/generatePaymentPlansCubos',\n\t\t\tdateGenerate,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { GicParametersConfiguration } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PlisEstatusChangeService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tprivate urlBase: string =\n\t\tthis.environment.host.backend.gicQueuePublisher + 'plis-estatus-change';\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tgenerateCondonationMaintenance(dateGenerate: string): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.urlBase + '/generateCondonationMaintenance',\n\t\t\t{},\n\t\t\t{\n\t\t\t\t...this.headerJson,\n\t\t\t\tparams: new HttpParams().set('dateGenerate', dateGenerate)\n\t\t\t}\n\t\t);\n\t}\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { PliCnfMail } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PliCnfMailService {\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tsave(pliCnfMail: PliCnfMail): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfMail/save',\n\t\t\tpliCnfMail\n\t\t);\n\t}\n\n\tgetByPromCodigo(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration + 'pliCnfMail/getByPromCodigo',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('promCodigo', promCodigo.toString())\n\t\t\t}\n\t\t);\n\t}\n}\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { MasterUniversity, MasterUniversityResponseApi } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class MasterUniversityService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/**\n\t * MasterUniversity[] returns a list of MasterUniversity\n\t * @returns MasterUniversity[]\n\t */\n\tgetAll(): Observable<MasterUniversity[]> {\n\t\treturn this.httpClient.get<MasterUniversity[]>(\n\t\t\tthis.environment.host.backend.configuration + 'master-university/getAll'\n\t\t);\n\t}\n\n\t/**\n\t * MasterUniversityResponseApi returns a MasterUniversityResponseApi\n\t * @returns MasterUniversityResponseApi\n\t */\n\tgetAllResponseApi(\n\t\tpage_size: number,\n\t\tpage?: number,\n\t\tname?: string,\n\t\tenglish_name?: string,\n\t\tcountry?: string\n\t): Observable<MasterUniversityResponseApi> {\n\t\treturn this.httpClient.get<MasterUniversityResponseApi>(\n\t\t\tthis.environment.host.backend.configuration + 'master-university/getAllResponseApi',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('page_size', page_size)\n\t\t\t\t\t.set('page', page)\n\t\t\t\t\t.set('name', name)\n\t\t\t\t\t.set('english_name', english_name)\n\t\t\t\t\t.set('country', country)\n\t\t\t}\n\t\t);\n\t}\n\n\t/**\n\t * MasterUniversityResponseApi returns a MasterUniversityResponseApi\n\t * @param page_size number of registered pages\n\t * @param country_abb string name of the country of search\n\t * @returns MasterUniversityResponseApi\n\t */\n\tgetAllUniversities(\n\t\tpage_size: number,\n\t\tcountry_abb?: string\n\t): Observable<MasterUniversityResponseApi> {\n\t\treturn this.httpClient.get<MasterUniversityResponseApi>(\n\t\t\tthis.environment.host.backend.configuration + 'master-university/getAllUniversities',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('page_size', page_size).set('country_abb', country_abb)\n\t\t\t}\n\t\t);\n\t}\n\n\t/**\n\t * Return university by id\n\t * @param id id university\n\t * @returns MasterUniversity university\n\t */\n\tgetById(id: number): Observable<MasterUniversity> {\n\t\treturn this.httpClient.get<MasterUniversity>(\n\t\t\tthis.environment.host.backend.configuration + 'master-university/getById',\n\t\t\t{ params: new HttpParams().set('id', id) }\n\t\t);\n\t}\n\t/**\n\t * Create University\n\t * @param university\n\t * @returns MasterUniversity university create\n\t */\n\tsave(university: MasterUniversity): Observable<MasterUniversity> {\n\t\treturn this.httpClient.post<MasterUniversity>(\n\t\t\tthis.environment.host.backend.configuration + 'master-university/save',\n\t\t\tuniversity,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/**\n\t * Delete university by id\n\t * @param id\n\t * @returns empty\n\t */\n\tdelete(id: number): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + 'master-university/' + id\n\t\t);\n\t}\n}\n","import { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable, Inject } from '@angular/core';\nimport { MasterProgram, MasterProgramResponseApi, MasterProgramType } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class MasterProgramService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/**\n\t * MasterProgram[] returns a list of MasterProgram\n\t * @returns MasterProgram[]\n\t */\n\tgetAll(): Observable<MasterProgram[]> {\n\t\treturn this.httpClient.get<MasterProgram[]>(\n\t\t\tthis.environment.host.backend.configuration + 'master-program/getAll'\n\t\t);\n\t}\n\n\t/**\n\t * MasterProgramResponseApi returns a MasterProgramResponseApi\n\t * @returns MasterProgramResponseApi\n\t */\n\tgetAllResponseApi(\n\t\tpage_size: number,\n\t\tpage?: number,\n\t\tname?: string,\n\t\tenglish_name?: string,\n\t\ttype?: string,\n\t\tstudy_area?: string,\n\t\tfaculty?: string,\n\t\tuniversity_name?: string\n\t): Observable<MasterProgramResponseApi> {\n\t\treturn this.httpClient.get<MasterProgramResponseApi>(\n\t\t\tthis.environment.host.backend.configuration + 'master-program/getAllResponseApi',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('page_size', page_size)\n\t\t\t\t\t.set('page', page)\n\t\t\t\t\t.set('name', name)\n\t\t\t\t\t.set('english_name', english_name)\n\t\t\t\t\t.set('type', type)\n\t\t\t\t\t.set('study_area', study_area)\n\t\t\t\t\t.set('faculty', faculty)\n\t\t\t\t\t.set('university_name', university_name)\n\t\t\t}\n\t\t);\n\t}\n\n\t/**\n\t * Return program by id\n\t * @param id id program\n\t * @returns MasterProgram program\n\t */\n\tgetById(id: number): Observable<MasterProgram> {\n\t\treturn this.httpClient.get<MasterProgram>(\n\t\t\tthis.environment.host.backend.configuration + 'master-program/getById',\n\t\t\t{ params: new HttpParams().set('id', id) }\n\t\t);\n\t}\n\t/**\n\t * Create program\n\t * @param program\n\t * @returns MasterProgram program create\n\t */\n\tsave(program: MasterProgram): Observable<MasterProgram> {\n\t\treturn this.httpClient.post<MasterProgram>(\n\t\t\tthis.environment.host.backend.configuration + 'master-program/save',\n\t\t\tprogram,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/**\n\t * Delete program by id\n\t * @param id\n\t * @returns empty\n\t */\n\tdelete(id: number): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + 'master-program/' + id\n\t\t);\n\t}\n\n\t/**\n\t * MasterProgramType[] returns a list of MasterProgramType\n\t * @returns MasterProgramType[]\n\t */\n\tgetAllProgramType(): Observable<MasterProgramType[]> {\n\t\treturn this.httpClient.get<MasterProgramType[]>(\n\t\t\tthis.environment.host.backend.configuration + 'master-program/getAllProgramType'\n\t\t);\n\t}\n}\n","import { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable, Inject } from '@angular/core';\nimport { MasterCategory, MasterCategoryResponseApi } from 'ng-pli-util';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class MasterCategoryService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\t/**\n\t * MasterCategory[] returns a list of MasterCategory\n\t * @returns MasterCategory[]\n\t */\n\tgetAll(): Observable<MasterCategory[]> {\n\t\treturn this.httpClient.get<MasterCategory[]>(\n\t\t\tthis.environment.host.backend.configuration + 'master-category/getAll'\n\t\t);\n\t}\n\n\t/**\n\t * return MasterCategoryResponseApi with list MasterCategory\n\t * @returns MasterCategoryResponseApi\n\t */\n\tgetAllResponseApi(\n\t\tpage_size: number,\n\t\tpage?: number,\n\t\tname?: string\n\t): Observable<MasterCategoryResponseApi> {\n\t\treturn this.httpClient.get<MasterCategoryResponseApi>(\n\t\t\tthis.environment.host.backend.configuration + 'master-category/getAllResponseApi',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('page_size', page_size)\n\t\t\t\t\t.set('page', page)\n\t\t\t\t\t.set('name', name)\n\t\t\t}\n\t\t);\n\t}\n\n\t/**\n\t * Return category by id\n\t * @param id id category\n\t * @returns MasterCategory category\n\t */\n\tgetById(id: number): Observable<MasterCategory> {\n\t\treturn this.httpClient.get<MasterCategory>(\n\t\t\tthis.environment.host.backend.configuration + 'master-category/getById',\n\t\t\t{ params: new HttpParams().set('id', id) }\n\t\t);\n\t}\n\t/**\n\t * Create category\n\t * @param category\n\t * @returns MasterCategory category create\n\t */\n\tsave(category: MasterCategory): Observable<MasterCategory> {\n\t\treturn this.httpClient.post<MasterCategory>(\n\t\t\tthis.environment.host.backend.configuration + 'master-category/save',\n\t\t\tcategory,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n\n\t/**\n\t * Delete category by id\n\t * @param id\n\t * @returns empty\n\t */\n\tdelete(id: number): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.configuration + 'master-category/' + id\n\t\t);\n\t}\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class PeopleMasterService {\n    constructor(@Inject('environment') private environment: any, private httpClient: HttpClient) { }\n\n    getPerson(find: string): Observable<any> {\n        return this.httpClient.get(\n            this.environment.host.backend.backoffice + 'people-master/getPerson',\n            {\n                params: new HttpParams().set('find', find)\n            }\n        );\n    }\n\n    getEmployee(find: string): Observable<any> {\n        return this.httpClient.get(\n            this.environment.host.backend.backoffice + 'people-master/getEmployee',\n            {\n                params: new HttpParams().set('find', find)\n            }\n        );\n    }\n\n    getStudent(find: string): Observable<any> {\n        return this.httpClient.get(\n            this.environment.host.backend.backoffice + 'people-master/getStudent',\n            {\n                params: new HttpParams().set('find', find)\n            }\n        );\n    }\n\n    getNotStudent(find: string): Observable<any> {\n        return this.httpClient.get(\n            this.environment.host.backend.backoffice + 'people-master/getNotStudent',\n            {\n                params: new HttpParams().set('find', find)\n            }\n        );\n    }\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport {\n\tCorrespondenceManager,\n\tCorrespondenceManagerTO,\n\tCorrespondenceTranslateTokensTO,\n\tDataTableParameters\n} from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class CorrespondenceManagerService {\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tsave(correspondenceManager: CorrespondenceManager): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'correspondence-manager/save',\n\t\t\tcorrespondenceManager\n\t\t);\n\t}\n\n\tsaveEdit(correspondenceManager: CorrespondenceManagerTO): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'correspondence-manager/saveEdit',\n\t\t\tcorrespondenceManager\n\t\t);\n\t}\n\n\tresendNotification(correspondenceId: string, promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'correspondence-manager/resendNotification',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('correspondenceId', correspondenceId)\n\t\t\t\t\t.set('promCodigo', promCodigo)\n\t\t\t}\n\t\t);\n\t}\n\n\tdeleteAttatchment(correspondenceManagerId: string, index: number): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.backoffice + 'correspondence-manager/deleteAttatchment',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('correspondenceManagerId', correspondenceManagerId)\n\t\t\t\t\t.set('index', index)\n\t\t\t}\n\t\t);\n\t}\n\n\tdeleteDocument(correspondenceManagerId: string): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.backoffice + 'correspondence-manager/deleteDocument',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('correspondenceManagerId', correspondenceManagerId)\n\t\t\t}\n\t\t);\n\t}\n\n\tgetDocument(urlDocument: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'correspondence-manager/getDocument',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('urlDocument', urlDocument)\n\t\t\t}\n\t\t);\n\t}\n\n\tuploadDocument(uploadDocument: any): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'correspondence-manager/uploadDocument',\n\t\t\tuploadDocument\n\t\t);\n\t}\n\n\ttranslateTokens(translateTokens: CorrespondenceTranslateTokensTO): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'correspondence-manager/translateTokens',\n\t\t\ttranslateTokens\n\t\t);\n\t}\n\n\tdeleteArchive(urlArchive: string): Observable<any> {\n\t\treturn this.httpClient.delete(\n\t\t\tthis.environment.host.backend.backoffice + 'correspondence-manager/deleteArchive',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('urlArchive', urlArchive)\n\t\t\t}\n\t\t);\n\t}\n\n\tgetById(correspondenceId: string, promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'correspondence-manager/getById',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('correspondenceId', correspondenceId)\n\t\t\t\t\t.set('promCodigo', promCodigo)\n\t\t\t}\n\t\t);\n\t}\n\n\tgetByDataTableParameters(dataTableParameters: DataTableParameters) {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'correspondence-manager/getByDatatableParameters',\n\t\t\tdataTableParameters\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class CorrespondenceDocumentCategoryService {\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tgetAll(): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice + 'correspondence-document-category/getAll'\n\t\t);\n\t}\n\n\tfindByNameContaining(find: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.backoffice +\n\t\t\t\t'correspondence-document-category/findByNameContaining',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('find', find)\n\t\t\t}\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { CnfCorrespondenceDocumentManager } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class CnfCorrespondenceDocumentManagerService {\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tsave(cnfCorrespondenceDocumentManager: CnfCorrespondenceDocumentManager): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.configuration + 'cnf-correspondence-doc-manager/save',\n\t\t\tcnfCorrespondenceDocumentManager\n\t\t);\n\t}\n\n\tgetByPromCodigoAndCategoryId(promCodigo: number, categoryId: number): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'cnf-correspondence-doc-manager/getByPromCodigoAndCategoryId',\n\t\t\t{\n\t\t\t\tparams: new HttpParams().set('promCodigo', promCodigo).set('categoryId', categoryId)\n\t\t\t}\n\t\t);\n\t}\n\n\tgetByPromCodigoAndCategoryName(promCodigo: number, categoryName: string): Observable<any> {\n\t\treturn this.httpClient.get(\n\t\t\tthis.environment.host.backend.configuration +\n\t\t\t\t'cnf-correspondence-doc-manager/getByPromCodigoAndCategoryName',\n\t\t\t{\n\t\t\t\tparams: new HttpParams()\n\t\t\t\t\t.set('promCodigo', promCodigo)\n\t\t\t\t\t.set('categoryName', categoryName)\n\t\t\t}\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { HttpClient, HttpParams } from '@angular/common/http';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PostSelectionService {\n\tconstructor(@Inject('environment') private environment, private httpClient: HttpClient) {}\n\n\tsendMail(promCodigo: number): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'post-selection/sendMail',\n\t\t\tnull,\n\t\t\t{ params: new HttpParams().set('promCodigo', promCodigo) }\n\t\t);\n\t}\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Observable, Subject } from 'rxjs';\nimport { Application, Codebtor, Guarantee, GuaranteesSummaryTO } from 'ng-pli-util';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class GuaranteesSummaryService {\n\tprivate headerJson = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n\tconstructor(@Inject('environment') private environment: any, private httpClient: HttpClient) {}\n\n\tupdateGuaranteeFlags(guaranteesSummaryTO: GuaranteesSummaryTO): Observable<any> {\n\t\treturn this.httpClient.post(\n\t\t\tthis.environment.host.backend.backoffice + 'guarantees-summary/updateGuaranteeFlags',\n\t\t\tguaranteesSummaryTO,\n\t\t\tthis.headerJson\n\t\t);\n\t}\n}\n","/*\n * Public API Surface of ng-pli-commons\n */\n\nexport * from './lib/ng-pli-commons.service';\n// export * from './lib/ng-pli-commons.component';\nexport * from './lib/ng-pli-commons.module';\nexport * from './lib/components/backoffice.commons.component';\nexport * from './lib/components/dashboard.commons.component';\nexport * from './lib/components/common.lists.component';\nexport * from './lib/components/pdf-config/pdf-config.component';\nexport * from './lib/components/configuration-token/configuration-token.component';\nexport * from './lib/components/configuration.commons.component';\nexport * from './lib/components/dynamic-filter/dynamic-filter.component';\nexport * from './lib/components/excel-to-json/excel-to-json.component';\nexport * from './lib/components/frontoffice.commons.component';\nexport * from './lib/components/pdf-visualizer/pdf-visualizer.component';\nexport * from './lib/components/pdf-merge-visualizer/pdf-merge-visualizer.component';\nexport * from './lib/components/pdf-generator/pdf-generator.component';\nexport * from './lib/components/select-ppp/select-ppp.component';\nexport * from './lib/components/show-hide-columns/show-hide-columns-table.component';\nexport * from './lib/components/token/token.component';\nexport * from './lib/components/segmentation-tokens/segmentation-tokens.component';\nexport * from './lib/components/tokens-calculator/tokens-calculator.component';\nexport * from './lib/components/configuration-token/guarantee-token/guarantee-token.component';\nexport * from './lib/components/progress-bar/progress-bar.component';\nexport * from './lib/components/pdf-analyzer/pdf-analyzer.component';\nexport * from './lib/directives/currency-colfuturo-formatter.directive';\nexport * from './lib/directives/currency-decimal-colfuturo-formatter.directive';\nexport * from './lib/services/document-process.service';\nexport * from './lib/services/upload-documents.service';\nexport * from './lib/pipes/currency-colfuturo.pipe';\nexport * from './lib/pipes/currency-decimal-colfuturo.pipe';\nexport * from './lib/pipes/currency-print-colfuturo.pipe';\nexport * from './lib/pipes/thousands.pipe';\nexport * from './lib/services/application.service';\nexport * from './lib/services/application-pdf-form.service';\nexport * from './lib/services/assign-task.service';\nexport * from './lib/services/application-fill-percentage.service';\nexport * from './lib/services/application-tag.service';\nexport * from './lib/services/authentication.service';\nexport * from './lib/services/blocked-beneficiary.service';\nexport * from './lib/services/budget-application.service';\nexport * from './lib/services/budget-simulation.service';\nexport * from './lib/services/budget.service';\nexport * from './lib/services/budget-setup.service';\nexport * from './lib/services/codebtors.service';\nexport * from './lib/services/closure-wallet.service';\nexport * from './lib/services/committee-assistant.service';\nexport * from './lib/services/common.service';\nexport * from './lib/services/committee-pdf.service';\nexport * from './lib/services/committee-money.service';\nexport * from './lib/services/committee-snapshot.service';\nexport * from './lib/services/configuration.service';\nexport * from './lib/services/common-info.service';\nexport * from './lib/services/credit-study.service';\nexport * from './lib/services/configuration-document.service';\nexport * from './lib/services/credit-score.service';\nexport * from './lib/services/cube.service';\nexport * from './lib/services/data-form.service';\nexport * from './lib/services/data-form-history.service';\nexport * from './lib/services/data-letter-segmentation.service';\nexport * from './lib/services/document-analysis-auto.service';\nexport * from './lib/services/document-management.service';\nexport * from './lib/services/document-validation-attempt.service';\nexport * from './lib/services/document.service';\nexport * from './lib/services/documentary.type.service';\nexport * from './lib/services/email.service';\nexport * from './lib/services/evaluation.service';\nexport * from './lib/services/export-excel.service';\nexport * from './lib/services/file.service';\nexport * from './lib/services/form.service';\nexport * from './lib/services/gic-client-disbursement-metadata.service';\nexport * from './lib/services/gic-cnf-bankvision-transaction.service';\nexport * from './lib/services/gic-cnf-closing-date.service';\nexport * from './lib/services/hash.service';\nexport * from './lib/services/gic-client.service';\nexport * from './lib/services/gic-disbursement.service';\nexport * from './lib/services/gic-collection.service';\nexport * from './lib/services/gic-extract.service';\nexport * from './lib/services/gic-log.service';\nexport * from './lib/services/gic-trm.service';\nexport * from './lib/services/gic-payment-application.service';\nexport * from './lib/services/global.show.task.service';\nexport * from './lib/services/guarantee.service';\nexport * from './lib/services/import-data.service';\nexport * from './lib/services/initial-configuration-gic-parameters.service';\nexport * from './lib/services/initial-record.service';\nexport * from './lib/services/interaction-application-user.service';\nexport * from './lib/services/keys-assignation.service';\nexport * from './lib/services/letter-campaing.service';\nexport * from './lib/services/letter-task-mapping.service';\nexport * from './lib/services/legalization.service';\nexport * from './lib/services/log.service';\nexport * from './lib/services/page.service';\nexport * from './lib/services/migration-plis.service';\nexport * from './lib/services/migration-survey-queue.service';\nexport * from './lib/services/summary-budget.service';\nexport * from './lib/services/pli-cnf-page-sub-process.service';\nexport * from './lib/services/permission.service';\nexport * from './lib/services/pli-cnf-acuity-fields.service';\nexport * from './lib/services/pli-cnf-app-card-filter.service';\nexport * from './lib/services/pli-cnf-appointment-type.service';\nexport * from './lib/services/pli-cnf-budget-program-type.service';\nexport * from './lib/services/pli-cnf-budget.service';\nexport * from './lib/services/pli-cnf-config-minisite.service';\nexport * from './lib/services/pli-cnf-committee-pdf-config-table-config.service';\nexport * from './lib/services/pli-cnf-committee-pdf-gen-status.service';\nexport * from './lib/services/pli-cnf-committee-visualization-mode.service';\nexport * from './lib/services/pli-cnf-committee.service';\nexport * from './lib/services/pli-cnf-committee-valpro-columns.service';\nexport * from './lib/services/pli-cnf-dynamic-keys-assign.service';\nexport * from './lib/services/pli-cnf-document-management.service';\nexport * from './lib/services/pli-cnf-evaluation-task.service';\nexport * from './lib/services/pli-cnf-evaluation-template.service';\nexport * from './lib/services/pli-cnf-evaluation-task-template.service';\nexport * from './lib/services/pli-cnf-header.service';\nexport * from './lib/services/pli-cnf-indicator.service';\nexport * from './lib/services/pli-cnf-information-system.service';\nexport * from './lib/services/pli-cnf-interaction.service';\nexport * from './lib/services/pli-cnf-letter-template.service';\nexport * from './lib/services/pli-cnf-letter-template-type.service';\nexport * from './lib/services/pli-cnf-look-and-feel.service';\nexport * from './lib/services/pli-cnf-migration-status-plis.service';\nexport * from './lib/services/pli-cnf-menu-form.service';\nexport * from './lib/services/pli-cnf-migration-plis-field.service';\nexport * from './lib/services/pli-cnf-page-section-form.service';\nexport * from './lib/services/pli-cnf-pdfs.service';\nexport * from './lib/services/pli-cnf-project-summary.service';\nexport * from './lib/services/pli-cnf-form-edit.service';\nexport * from './lib/services/pli-cnf-form-multiaplicacion.service';\nexport * from './lib/services/pli-cnf-profile-form.service';\nexport * from './lib/services/pli-cnf-profile-user.service';\nexport * from './lib/services/pli-cnf-scenario.service';\nexport * from './lib/services/pli-cnf-snapshot-token.service';\nexport * from './lib/services/pli-cnf-segmentation.service';\nexport * from './lib/services/pli-cnf-status-flow-interaction.service';\nexport * from './lib/services/pli-cnf-status-flow.service';\nexport * from './lib/services/pli-cnf-support-document.service';\nexport * from './lib/services/pli-cnf-survey.service';\nexport * from './lib/services/pli-cnf-survey-document.service';\nexport * from './lib/services/pli-cnf-survey-pdf.service';\nexport * from './lib/services/pli-cnf-task-group.service';\nexport * from './lib/services/pli-cnf-text.service';\nexport * from './lib/services/pli-cnf-text-category.service';\nexport * from './lib/services/pli-cnf-type-text.service';\nexport * from './lib/services/pli-cnf-user-calendar.service';\nexport * from './lib/services/pli-cnf-user-workspace.service';\nexport * from './lib/services/pli-cnf-valpro-keys.service';\nexport * from './lib/services/pli-cnf-workspace-segmentation.service';\nexport * from './lib/services/pli-cnf-migration-plis-field-budget.service';\nexport * from './lib/services/pli-multiple-value-filter.service';\nexport * from './lib/services/pli-promocion-username.service';\nexport * from './lib/services/pli-seg-action-user.service';\nexport * from './lib/services/pli-segmentation.service';\nexport * from './lib/services/pli-tag.service';\nexport * from './lib/services/pli-user.service';\nexport * from './lib/services/plis-beneficiario.service';\nexport * from './lib/services/ppp.service';\nexport * from './lib/services/profile.service';\nexport * from './lib/services/promotion-score.service';\nexport * from './lib/services/segmentation-user-service.service';\nexport * from './lib/services/openkm-document.service';\nexport * from './lib/services/segmentation.service';\nexport * from './lib/services/send-application.service';\nexport * from './lib/services/sesion-form.service';\nexport * from './lib/services/sesion.service';\nexport * from './lib/services/spinner.service';\nexport * from './lib/services/sponsorship-letter.service';\nexport * from './lib/services/status.service';\nexport * from './lib/services/survey.service';\nexport * from './lib/services/survey-metadata.service';\nexport * from './lib/services/survey-queue.service';\nexport * from './lib/services/tag-management.service';\nexport * from './lib/services/tasa.cambio.service';\nexport * from './lib/services/token.service';\nexport * from './lib/services/token-transformation.service';\nexport * from './lib/services/user.service';\nexport * from './lib/services/registry-identifier.service';\nexport * from './lib/services/visualization-committee.service';\nexport * from './lib/services/pli-cnf-acuity-fields.service';\nexport * from './lib/services/pli-cnf-configuration-credit-study.service';\nexport * from './lib/services/pli-cnf-guarantee-documents-template.service';\nexport * from './lib/services/guarantee-document.service';\nexport * from './lib/services/pli-cnf-guarantee-token.service';\nexport * from './lib/services/integration-ado.service';\nexport * from './lib/services/guarantee-enrollment.service';\nexport * from './lib/services/pli-cnf-text-option.service';\nexport * from './lib/services/configuration-minisite.service';\nexport * from './lib/services/pli-tag-assignment.service';\nexport * from './lib/services/university.service';\nexport * from './lib/services/pli-cnf-university-article.service';\nexport * from './lib/services/pli-cnf-cloning.service';\nexport * from './lib/services/progress-bar.service';\nexport * from './lib/services/segmentation-tokens.service';\nexport * from './lib/services/pdf-analyzer.service';\nexport * from './lib/utils/custom-validator';\nexport * from './lib/utils/form-util';\nexport * from './lib/utils/formio-util';\nexport * from './lib/utils/version-commons';\nexport * from './lib/services/partner.service';\nexport * from './lib/services/partner-system.service';\nexport * from './lib/services/document-history.service';\nexport * from './lib/services/pli-cnf-support-document-category.service';\nexport * from './lib/services/pli-cnf-evaluation-task-mailing.service';\nexport * from './lib/components/configuration-token/configuration-token-subject.service';\nexport * from './lib/services/return-refund.service';\nexport * from './lib/services/interest-adjustment.service';\nexport * from './lib/services/import-excel-gic.service';\nexport * from './lib/services/gic-cnf-maintenance.service';\nexport * from './lib/services/gic-payment-plan-cube.service';\nexport * from './lib/services/maintenance.service';\nexport * from './lib/components/configuration-token/configuration-token-subject.service';\nexport * from './lib/services/gic-payment-plan.service';\nexport * from './lib/services/plis-estatus-change.service';\nexport * from './lib/services/pli-message-type.service';\nexport * from './lib/services/pli-cnf-mail.service';\nexport * from './lib/services/master-university.service';\nexport * from './lib/services/master-program.service';\nexport * from './lib/services/master-category.service';\nexport * from './lib/services/people-master.service';\nexport * from './lib/services/correspondence-manager.service';\nexport * from './lib/services/correspondence-document-category.service';\nexport * from './lib/services/cnf-correspondence-document-manager.service';\nexport * from './lib/services/post-selection.service';\nexport * from './lib/services/guarantees-summary-service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.TasaCambioService","i1.CommonService","i2.FormService","i2.HashService","i2.AuthenticationService","i3","i3.PliCnfSnapshotTokenServices","i4","i3.PliCnfGuaranteeTokenService","i1","i2.CommonService","i3.PppService","i5.BudgetService","i6.TokenService","i7.PliCnfSnapshotTokenServices","i8.ConfigurationDocumentService","i9.PliCnfEvaluationTaskService","i10.PliCnfGuaranteeTokenService","i11.ConfigurationTokenSubjectService","i12","i13","i15","i16","i17","i18.SnapshotTokenComponent","i19.GuaranteeTokenComponent","i2","i2.ConfigurationDocumentService","i6.ConfigurationTokenComponent","i1.DataFormService","i2.ApplicationService","i4.CommonService","i5.TokenTransformationService","i6","i7","i8","PDFJS","Panzoom","i4.FileService","i5","panzoom_","i1.PppService","i2.TokenService","i4.AuthenticationService","i6.SesionService","PADDING","httpOptions","i1.TokenService","i2.EmailService","i3.InteractionApplicationUserService","i2.ProgressBarService","i1.SegmentationTokensService","i6.TokensCalculatorComponent","i1.PdfAnalyzerService","i2.CommonInfoService","i1.FileService","i2.PppService"],"mappings":"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"}