{"version":3,"file":"main.js","mappings":"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,MAAM;IACN,KAAK;IACL,OAAO;IACP,OAAO;IACP,MAAM;CACP,CAAC;AACF;;;;;;GAMG;AACH,sEAAsE;;;;;;;;;;;;;;;;;;ACnHvB;AAGF;AACY;AAEzD,IAAI,6EAAsB,EAAE;IAC1B,6DAAc,EAAE,CAAC;CAClB;AAED,wEAAwB;KACrB,eAAe,CAAC,sDAAS,CAAC;KAC1B,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;ACZtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACnSA","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/components/car-features/car-features.component.ts","./src/app/components/car-features/car-features.component.v2.html","./src/app/components/car-specs/car-specs.component.ts","./src/app/components/car-specs/car-specs.component.v2.html","./src/app/components/car-specs/modal-specs/modal-specs.component.ts","./src/app/components/car-specs/modal-specs/modal-specs.component.html","./src/app/components/car-specs/table-specs/table-specs.component.ts","./src/app/components/car-specs/table-specs/table-specs.component.html","./src/app/components/card-car-home/card-car-home.component.ts","./src/app/components/card-car-home/card-car-home.component.v2.html","./src/app/components/card-car-home/card-car-home.module.ts","./src/app/components/components.module.ts","./src/app/components/configuration-panel-credit/configuration-panel-credit.component.ts","./src/app/components/configuration-panel-credit/configuration-panel-credit.component.html","./src/app/components/configuration-panel/configuration-panel.component.ts","./src/app/components/configuration-panel/configuration-panel.component.v2.html","./src/app/components/configuration-panel/helpers/Utils.ts","./src/app/components/configuration-panel/helpers/catchErrorCotizador.ts","./src/app/components/configuration-panel/helpers/catchErrorProduct.ts","./src/app/components/configuration-panel/helpers/constants.ts","./src/app/components/configuration-panel/interfaces/aseguradoras.ts","./src/app/components/configuration-panel/modal/modal.component.ts","./src/app/components/configuration-panel/modal/modal.component.html","./src/app/components/credit-dialog/credit-dialog.component.ts","./src/app/components/credit-dialog/credit-dialog.component.html","./src/app/components/credit-type-dialog/credit-type-dialog.component.ts","./src/app/components/credit-type-dialog/credit-type-dialog.component.html","./src/app/components/deadline-table-credit/deadline-table-credit.component.ts","./src/app/components/deadline-table-credit/deadline-table-credit.component.html","./src/app/components/deadline-table/deadline-table.component.ts","./src/app/components/deadline-table/deadline-table.component.v2.html","./src/app/components/faq/faq.component.ts","./src/app/components/faq/faq.component.html","./src/app/components/footer/footer.component.ts","./src/app/components/footer/footer.component.v2.html","./src/app/components/images-presenter/images-presenter.component.ts","./src/app/components/images-presenter/images-presenter.component.v2.html","./src/app/components/lease-process/lease-process.component.ts","./src/app/components/loading-spinner/loading-spinner.component.ts","./src/app/components/loading-spinner/loading-spinner.component.html","./src/app/components/main-header/main-header.component.ts","./src/app/components/main-header/main-header.component.v2.html","./src/app/components/missing-data-register/missing-data-register.component.ts","./src/app/components/missing-data-register/missing-data-register.component.html","./src/app/components/modal-alert/enums.ts","./src/app/components/modal-alert/modal-alert.component.ts","./src/app/components/modal-alert/modal-alert.component.html","./src/app/components/modal-process/modal-process.component.ts","./src/app/components/modal-process/modal-process.component.html","./src/app/components/modal-signatory/modal-signatory.component.ts","./src/app/components/modal-signatory/modal-signatory.component.html","./src/app/components/msg-color-car/msg-color-car.component.ts","./src/app/components/msg-color-car/msg-color-car.component.html","./src/app/components/pdf-credit/pdf-credit.component.ts","./src/app/components/pdf-credit/pdf-credit.component.v2.html","./src/app/components/pdf-credit/txts.ts","./src/app/components/pdf-ford/helpers.ts","./src/app/components/pdf-ford/pdf-ford.component.ts","./src/app/components/pdf-ford/pdf-ford.component.v2.html","./src/app/components/pdf-ford/txts.ts","./src/app/components/pdf/helpers.ts","./src/app/components/pdf/pdf.component.ts","./src/app/components/pdf/pdf.component.v2.html","./src/app/components/pdf/txts.ts","./src/app/components/quotercomponents.module.ts","./src/app/components/related-cars/related-cars.component.ts","./src/app/components/resume-quoter/resume-quoter.component.ts","./src/app/components/resume-quoter/resume-quoter.component.v2.html","./src/app/components/share-link-credit/share-link-credit.component.ts","./src/app/components/share-link-credit/share-link-credit.component.html","./src/app/components/share-link/share-link.component.ts","./src/app/components/share-link/share-link.component.html","./src/app/components/sidenav-list/sidenav-list.component.ts","./src/app/components/sidenav-list/sidenav-list.component.v2.html","./src/app/components/whats/whats.component.ts","./src/app/components/whats/whats.component.html","./src/app/constants/app-config.ts","./src/app/constants/defaultValues.ts","./src/app/constants/logger.ts","./src/app/directives/directives.module.ts","./src/app/directives/lazy-img.directive.ts","./src/app/pages/buro/components/address-creditrequest/address-creditrequest.component.ts","./src/app/pages/buro/components/address-creditrequest/address-creditrequest.component.html","./src/app/pages/buro/components/address-creditrequest/listener.ts","./src/app/pages/buro/components/address/address.component.ts","./src/app/pages/buro/components/address/address.component.html","./src/app/pages/buro/components/address/listener.ts","./src/app/pages/buro/components/btn-upload-files/btn-upload-files.component.ts","./src/app/pages/buro/components/btn-upload-files/btn-upload-files.component.html","./src/app/pages/buro/components/components.module.ts","./src/app/pages/buro/components/counter/counter.component.ts","./src/app/pages/buro/components/counter/counter.component.html","./src/app/pages/buro/components/err-sse/err-sse.component.ts","./src/app/pages/buro/components/err-sse/err-sse.component.html","./src/app/pages/buro/components/identity-verification/identity-options/identity-options.component.ts","./src/app/pages/buro/components/identity-verification/identity-options/identity-options.component.html","./src/app/pages/buro/components/identity-verification/identity-verification.component.ts","./src/app/pages/buro/components/identity-verification/identity-verification.component.html","./src/app/pages/buro/components/mifiel/mifiel.component.ts","./src/app/pages/buro/components/mifiel/mifiel.component.html","./src/app/pages/buro/components/modal-take-photos/modal-take-photos.component.ts","./src/app/pages/buro/components/modal-take-photos/modal-take-photos.component.html","./src/app/pages/buro/components/modal/modal.component.ts","./src/app/pages/buro/components/modal/modal.component.html","./src/app/pages/buro/components/signature-status/signature-status.component.ts","./src/app/pages/buro/components/signature-status/signature-status.component.html","./src/app/pages/buro/components/status-title/status-title.component.ts","./src/app/pages/buro/components/status-title/status-title.component.html","./src/app/pages/buro/components/stepper/stepper.component.ts","./src/app/pages/buro/components/stepper/stepper.component.html","./src/app/pages/buro/components/tabs/tabs.component.ts","./src/app/pages/buro/components/tabs/tabs.component.html","./src/app/pages/buro/components/titulo-section/titulo-section.component.ts","./src/app/pages/buro/components/titulo-section/titulo-section.component.html","./src/app/pages/buro/components/unidad-detail-modal/unidad-detail-modal.component.ts","./src/app/pages/buro/components/unidad-detail-modal/unidad-detail-modal.component.html","./src/app/pages/buro/components/unidad-detail-options/unidad-detail-options.component.ts","./src/app/pages/buro/components/unidad-detail-options/unidad-detail-options.component.html","./src/app/pages/buro/components/unidad-detail/unidad-detail.component.ts","./src/app/pages/buro/components/unidad-detail/unidad-detail.component.html","./src/app/pages/buro/components/update-contacts/update-contacts.component.ts","./src/app/pages/buro/components/update-contacts/update-contacts.component.html","./src/app/pages/buro/helpers/code-helper.ts","./src/app/pages/buro/helpers/colors.ts","./src/app/pages/buro/helpers/defaults.ts","./src/app/pages/buro/helpers/formBuilders.ts","./src/app/pages/buro/helpers/inputsHelpers.ts","./src/app/pages/buro/helpers/inputsTranforms.ts","./src/app/pages/buro/interfaces/enums.ts","./src/app/pages/buro/interfaces/journeyDataDefault.ts","./src/app/pages/buro/pages/identidad/constants.ts","./src/app/pages/buro/pipes/ingreso.pipe.ts","./src/app/pages/buro/services/step.service.ts","./src/app/pages/buro/shared/states.ts","./src/app/pages/buro/shared/tabs.ts","./src/app/pages/buro/shared/textos.ts","./src/app/pages/cotiza/cotiza-components/dialog-afin/dialog-afin.component.ts","./src/app/pages/cotiza/cotiza-components/dialog-afin/dialog-afin.component.html","./src/app/pages/cotiza/cotiza-components/dialog-video/dialog-video.component.ts","./src/app/pages/cotiza/cotiza-components/dialog-video/dialog-video.component.html","./src/app/pages/landing-general/landing-content/landing-content.component.ts","./src/app/pages/landing-general/landing-content/landing-content.component.html","./src/app/pages/landing-general/landing-general-routing.module.ts","./src/app/pages/landing-general/landing-general.component.ts","./src/app/pages/landing-general/landing-general.component.html","./src/app/pages/landing-general/landing-general.module.ts","./src/app/services/bitly.service.ts","./src/app/services/buro.service.ts","./src/app/services/car-manager.service.ts","./src/app/services/catalogs.service.ts","./src/app/services/consume.service.ts","./src/app/services/cotizador-credito.service.ts","./src/app/services/cotizador.service.ts","./src/app/services/data.service.ts","./src/app/services/final-status.service.ts","./src/app/services/guard.service.ts","./src/app/services/jwt-helper.service.ts","./src/app/services/keycloak-custom.service.ts","./src/app/services/log.service.ts","./src/app/services/login-guard.guard.ts","./src/app/services/modal-service.service.ts","./src/app/services/register.service.ts","./src/app/services/security.service.ts","./src/app/services/seo.service.ts","./src/app/services/sse.service.ts","./src/app/services/strappi.service.ts","./src/app/services/summary.service.ts","./src/app/services/theme-switcher.service.ts","./src/app/utils/keycloak.init.ts","./src/app/utils/token.custom.interceptor.ts","./src/app/utils/token.init.ts","./src/app/utils/token.interceptor.ts","./src/app/utils/tour-product.ts","./src/app/utils/user.interceptor.ts","./src/app/utils/utils.ts","./src/app/utils/window.ts","./src/environments/endpoints.ts","./src/environments/environment.dev.v2.ts","./src/main.ts","/usr/src/app/node_modules/moment/locale|sync|/^\\.\\/.*$/","ignored|/usr/src/app/node_modules/crypto-js|crypto"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { GuardService } from './services/guard.service';\nimport { LoginGuard } from './services/login-guard.guard';\n\n\n\n\nconst routes: Routes = [\n {\n path: 'buscador',\n loadChildren: () =>\n import('./pages/cotiza/cotiza.module').then((m) => m.CotizaModule),\n },\n {\n path: 'buscador/:marca',\n loadChildren: () =>\n import('./pages/cotiza/cotiza.module').then((m) => m.CotizaModule),\n },\n {\n path: 'buscador/:marca/:submarca',\n loadChildren: () =>\n import('./pages/cotiza/cotiza.module').then((m) => m.CotizaModule),\n },\n {\n path: 'buscador/:marca/:submarca/:version',\n loadChildren: () =>\n import('./pages/cotiza/cotiza.module').then((m) => m.CotizaModule),\n },\n {\n path: 'buscador/:marca/:submarca/:version/:anio',\n loadChildren: () =>\n import('./pages/cotiza/cotiza.module').then((m) => m.CotizaModule),\n },\n {\n path: 'planes',\n loadChildren: () =>\n import('./pages/planes/planes.module').then((m) => m.PlanesModule),\n },\n {\n path: 'home',\n loadChildren: () =>\n import('./pages/home/home.module').then((m) => m.HomeModule),\n },\n {\n path: 'landing',\n loadChildren: () =>\n import('./pages/landing-general/landing-general.module').then(\n (m) => m.LandingGeneralModule\n ),\n },\n {\n path: 'comunicados',\n loadChildren: () =>\n import('./pages/boletin/boletin.module').then(\n (m) => m.BoletinModule\n ),\n },\n {\n path: 'profile',\n canActivate: [GuardService],\n loadChildren: () =>\n import('./pages/profile/profile.module').then((m) => m.ProfileModule),\n },\n {\n path: 'cotizador',\n loadChildren: () =>\n import('./pages/quoter/quoter.module').then((m) => m.QuoterModule),\n },\n {\n path: 'cotizador/:marca/:submarca/:version/:anio/:producto',\n loadChildren: () =>\n import('./pages/quoter/quoter.module').then((m) => m.QuoterModule),\n },\n {\n path: 'cotizador-credito/:marca/:submarca/:version/:anio/:producto',\n loadChildren: () =>\n import('./pages/quoter-credit/quoter-credit.module').then((m) => m.QuoterCreditModule),\n },\n {\n path: 'genera-oportunidad',\n canActivate: [LoginGuard],\n canLoad: [LoginGuard],\n loadChildren: () =>\n import('./pages/buro/buro.module').then((m) => m.BuroModule),\n },\n {\n path: 'comparar-unidad',\n canActivate: [LoginGuard],\n canLoad: [LoginGuard],\n loadChildren: () =>\n import('./pages/comparator/comparator.module').then((m) => m.ComparatorModule),\n },\n {\n path: 'read-qr',\n loadChildren: () =>\n import('./pages/read-qr/read-qr.module').then((m) => m.ReadQrModule),\n },\n {\n path: 'download',\n loadChildren: () => \n import('./pages/download-files/download-files.module').then((m) => m.DownloadFilesModule)\n },\n {\n path: '**',\n pathMatch: 'full',\n redirectTo: '/home',\n }\n];\n\n@NgModule({\n imports: [\n RouterModule.forRoot(routes, {\n anchorScrolling: 'enabled',\n scrollPositionRestoration: 'enabled'\n }),\n ],\n exports: [RouterModule],\n})\nexport class AppRoutingModule { }\n","import {\n ChangeDetectorRef,\n Component,\n AfterViewInit,\n Injector,\n HostListener,\n OnInit,\n OnDestroy,\n Inject\n} from '@angular/core';\nimport { interval, Observable, firstValueFrom, Subscription } from 'rxjs';\nimport { DataService } from './services/data.service';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { AppConfig } from './constants/app-config';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { ThemeSwitcherService } from './services/theme-switcher.service';\nimport { CotizadorService } from './services/cotizador.service';\nimport { KeycloakService } from 'keycloak-angular';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { ModalService } from './services/modal-service.service';\nimport { Icons } from './components/modal-alert/enums';\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\nimport { NgcCookieConsentService, NgcStatusChangeEvent } from 'ngx-cookieconsent';\nimport { SeoService } from './services/seo.service';\nimport { environment } from 'src/environments/environment';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MissingDataRegisterComponent } from './components/missing-data-register/missing-data-register.component';\nimport { LogService } from './services/log.service';\nimport { MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular/material-moment-adapter';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport * as _moment from 'moment';\n// tslint:disable-next-line:no-duplicate-imports\nimport { default as _rollupMoment } from 'moment';\nimport dataConfig from './../assets/config.json';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { DOCUMENT } from '@angular/common'\nimport { WINDOW } from './utils/window';\nimport { KeycloakCustomService } from './services/keycloak-custom.service';\nimport { KeyclockProfile } from './model/http/keyclock.model'\nimport { ErrorBuro } from './utils/utils';\nconst moment = _rollupMoment || _moment;\nimport { datadogRum, DefaultPrivacyLevel } from '@datadog/browser-rum'\nimport { RegisterService } from './services/register.service';\n\n\n// See the Moment.js docs for the meaning of these formats:\n// https://momentjs.com/docs/#/displaying/format/\nexport const MY_FORMATS = {\n parse: {\n dateInput: 'DD/MM/YYYY',\n },\n display: {\n dateInput: 'DD/MM/YYYY',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'],\n providers: [\n // `MomentDateAdapter` can be automatically provided by importing `MomentDateModule` in your\n // application's root module. We provide it at the component level here, due to limitations of\n // our example generation script.\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS]\n },\n\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\n ],\n})\nexport class AppComponent implements OnInit, AfterViewInit, OnDestroy {\n title = 'my-app';\n now = new Date();\n isLoading!: Observable;\n\n userObject!: KeyclockProfile;\n idKeycloak: any;\n processActive: boolean = false;\n storage: any;\n //injectors\n matIcon: MatIconRegistry;\n dom: DomSanitizer;\n themeSwitcher: ThemeSwitcherService;\n translate: TranslateService;\n router: Router;\n modalService!: ModalService;\n\n screenSize = this.window.innerWidth;\n gtmService: GoogleTagManagerService;\n source = interval(1000);\n ccService: NgcCookieConsentService;\n keycloackService: KeycloakService;\n keycloackCustomService: KeycloakCustomService;\n seoService: SeoService;\n logService: LogService;\n dialog: MatDialog;\n httpClient: HttpClient;\n snackBar: MatSnackBar;\n registerService: RegisterService;\n\n templateSuffix = environment.templateSuffix;\n isBlocked = false;\n config!: string;\n storageType: string | null = null;\n\n gclid: string | null = null; // Variable para almacenar el valor\n\n\n private statusChangeSubscription!: Subscription;\n\n constructor(\n public dataService: DataService,\n private cdRef: ChangeDetectorRef,\n private cotizadorService: CotizadorService,\n @Inject(DOCUMENT) private document: any,\n @Inject(WINDOW) private window: Window,\n private injector: Injector,\n ) {\n this.httpClient = this.injector.get(HttpClient);\n this.gtmService = this.injector.get(\n GoogleTagManagerService\n );\n this.matIcon = this.injector.get(MatIconRegistry);\n this.dom = this.injector.get(DomSanitizer);\n this.themeSwitcher =\n this.injector.get(ThemeSwitcherService);\n this.translate = this.injector.get(TranslateService);\n this.router = this.injector.get(Router);\n this.modalService = this.injector.get(ModalService);\n this.ccService = this.injector.get(\n NgcCookieConsentService\n );\n this.dialog = this.injector.get(MatDialog);\n this.seoService = this.injector.get(SeoService);\n this.logService = this.injector.get(LogService);\n this.keycloackService = this.injector.get(KeycloakService);\n this.keycloackCustomService = this.injector.get(KeycloakCustomService);\n this.snackBar = this.injector.get(MatSnackBar);\n this.registerService = this.injector.get(RegisterService);\n\n this.logService.disableConsoleInProduction();\n\n this.setupCustomIcons();\n this.translate.setDefaultLang('es');\n\n this.seoService.updateMetaTag({\n property: 'og:url',\n content: environment.keycloak.redirectUri,\n });\n this.seoService.updateMetaTag({\n name: 'twitter:url',\n content: environment.keycloak.redirectUri,\n });\n\n if (!environment.production) {\n this.seoService.updateMetaTag({\n name: 'robots',\n content: 'noindex, nofollow',\n });\n }\n\n this.dataService.getGeneralNotificationMessage().subscribe((msg) => {\n this.snackBar.open(msg, 'OK', {\n duration: AppConfig.generalMessageTimeout,\n });\n });\n\n this.dataService\n .getIsBlockedForContracts()\n .subscribe((res) => (this.isBlocked = res));\n\n this.getUser();\n\n this.initDataDog(environment.production);\n\n localStorage.setItem('flowType', environment.templateSuffix !== '' ? 'B' : 'A');\n }\n\n async ngOnInit() {\n\n this.storageType = localStorage.getItem('flowType');\n if (this.getCookie('cookieconsent_status') !== null) {\n this.ccService.destroy();\n this.ccService.fadeOut();\n }\n\n this.statusChangeSubscription = this.ccService.statusChange$.subscribe(\n (event: NgcStatusChangeEvent) => {\n let now = new Date();\n let time = now.getTime();\n let expireTime = time + 3600000 * 24 * 59;\n now.setTime(expireTime);\n this.document.cookie = `cookieconsent_status=ok;expires=${now.toUTCString()};path=/`;\n });\n\n this.config = dataConfig[0].version;\n\n this.router.events.subscribe((ev: any) => {\n if (ev instanceof NavigationEnd) {\n this.window.scrollTo(0, 0);\n this.window.scrollTo(0, 0);\n if(environment.production){\n const gtmTag = {\n event: 'page',\n pageName: ev.url,\n };\n this.gtmService.pushTag(gtmTag);\n }\n if (\n ev.url !== '/genera-oportunidad' &&\n this.idKeycloak &&\n !this.processActive\n )\n this.getProcess(this.idKeycloak, false);\n\n const headers = new HttpHeaders()\n .set('Cache-Control', 'no-cache, no-store, must-revalidate, post-check=0, pre-check=0')\n .set('Pragma', 'no-cache')\n .set('Expires', '0');\n\n const obs = this.httpClient\n .get<{ version: string }>(\"assets/config.json\", { headers })\n .subscribe((config: any) => {\n if (config[0].version !== this.config) {\n location.reload();\n }\n\n obs.unsubscribe();\n });\n }\n });\n\n // Obtener el parámetro \"gclid\" de la URL\n const urlParams = new URLSearchParams(window.location.search);\n this.gclid = urlParams.get('gclid');\n\n // Si existe en la URL, guardarlo en localStorage\n if (this.gclid) {\n window.localStorage.setItem('gclid', this.gclid);\n console.log('Valor de gclid:', this.gclid); // Verificar en la consola\n }\n }\n\n ngAfterViewInit(): void {\n this.cdRef.detectChanges();\n }\n\n changeLanguage(lang: string): void {\n this.translate.use(lang);\n }\n\n changeTheme(theme: string): void {\n this.themeSwitcher.loadTheme(theme);\n }\n\n private setupCustomIcons(): void {\n this.matIcon.addSvgIcon(\n 'mex',\n this.dom.bypassSecurityTrustResourceUrl('./assets/img/lang/mex.svg')\n );\n this.matIcon.addSvgIcon(\n 'usa',\n this.dom.bypassSecurityTrustResourceUrl('./assets/img/lang/usa.svg')\n );\n }\n\n\n getCookie(name: string) {\n let dc = this.document.cookie;\n let prefix = name + \"=\";\n let begin = dc.indexOf(\"; \" + prefix);\n let end;\n if (begin == -1) {\n begin = dc.indexOf(prefix);\n if (begin != 0) return null;\n }\n else {\n begin += 2;\n end = this.document.cookie.indexOf(\";\", begin);\n if (end == -1) {\n end = dc.length;\n }\n }\n\n return decodeURI(dc.substring(begin + prefix.length, end));\n }\n\n async getUser() {\n const isLoggedInSalesforce = this.keycloackCustomService.isLoggin();\n if (isLoggedInSalesforce) {\n this.keycloackCustomService.loadSalesforceUserProfile().subscribe(async (user) => {\n try {\n if (!user.enabled || !user.emailVerified) {\n this.keycloackCustomService.logout();\n await this.modalService.showAlertWithoutIds('Usuario inactivo', Icons.error, false, '');\n return;\n }\n const isSalesforce = await firstValueFrom(this.keycloackCustomService.isUserSalesforce(user.id));\n if (!isSalesforce) {\n this.keycloackCustomService.logout();\n await this.modalService.showAlertWithoutIds('Usuario no permitido', Icons.error, false, '');\n return;\n }\n\n const email = this.keycloackCustomService.clientEmailSupport!;\n await this.getProcess(email, true, true, true);\n if (!this.processActive) {\n this.keycloackCustomService.logout();\n await this.modalService.showAlertWithoutIds(`No hay proceso para ${email}`, Icons.error, false, '');\n return;\n }\n this.dataService.setIsLoged(isLoggedInSalesforce);\n this.userObject = user;\n this.dataService.setIdKeycloak(email);\n this.idKeycloak = email;\n } catch (error) {\n this.keycloackCustomService.logout();\n }\n\n });\n } else {\n const logged = await this.keycloackService.isLoggedIn();//.then((logged) => {\n this.dataService.setIsLoged(logged);\n if (!logged) {\n return;\n }\n this.keycloackService.loadUserProfile().then((user) => {\n\n this.userObject = user;\n this.dataService.setIdKeycloak(this.userObject.email);\n this.dataService.setPersontype(this.userObject?.attributes?.persontype !== undefined ? this.userObject?.attributes?.persontype[0] : '');\n if (!this.userObject?.attributes?.persontype && this.storageType === 'B') {\n this.updateUserAttributesB(user);\n this.dataService.setPersontype(\"PFA\");\n }\n this.idKeycloak = this.userObject.email;\n this.checkAttributesUser(user);\n\n this.getProcess(this.idKeycloak, true);\n });\n }\n }\n\n alertProcess(res: any) {\n if (\n this.router.url.includes('genera-oportunidad') ||\n this.router.url.includes('landing') ||\n this.router.url.includes('read-qr') ||\n this.router.url.includes('download') ||\n this.router.url.includes('comparar-unidad')\n ) {\n return;\n }\n\n if (res.client?.E7?.data?.errors && res.client?.E7?.data?.errors[0]?.cveError === ErrorBuro.NO_HISTORIAL) {\n return;\n }\n\n const msg = `¡Tienes un proceso de ${res.client.product.concept} para tu ${res.car.brand} - ${res.car.subBrand} en curso! `;\n this.modalService\n .openAlert(\n {\n title: '¡Aviso!',\n content: msg,\n btnAction1: 'Revisar su estatus',\n btnAction2: 'Cancelar',\n icon: Icons.none,\n idBtnAction1: `boton-aviso-revisar-estatus${this.templateSuffix !== '' ? '-b' : ''\n }`,\n idBtnAction2: `boton-aviso-cancelar-revisar-status${this.templateSuffix !== '' ? '-b' : ''\n }`,\n },\n true\n )\n .afterClosed()\n .subscribe((result) => {\n if (result) {\n this.router.navigate(['/genera-oportunidad']);\n sessionStorage.setItem('aceptProcess', 'true');\n }\n });\n }\n\n cancelProcessModalNoti(msg: string) {\n this.modalService\n .openAlert(\n {\n title: '¡Aviso!',\n content: msg,\n btnAction1: 'Aceptar',\n btnAction2: null,\n icon: Icons.none,\n idBtnAction1: '',\n idBtnAction2: '',\n },\n true\n )\n .afterClosed()\n .subscribe((result) => {\n if (result) {\n this.router.navigate(['/buscador']);\n sessionStorage.setItem('aceptProcess', 'true');\n }\n });\n }\n\n async getProcess(idKeycloak: any, showAlert: boolean, forceRedirect: boolean = false, validate: boolean = false) {\n const res = await firstValueFrom(this.cotizadorService.existingProcesses(idKeycloak));\n\n let active = this.finishProcessAndQuoter(res);\n if (active.carInactive && active.beforeStepToSearchCar) {\n this.cancelProcessModalNoti(\n `Lamentablemente el ${res.car.brand} - ${res.car.subBrand} - ${res.car.version} ya no es parte de nuestro catálogo.
Te invitamos a seleccionar un nuevo vehículo.`\n );\n this.processActive = false;\n } else if (res.step > 0) {\n if (forceRedirect) {\n this.router.navigate(['/genera-oportunidad']);\n sessionStorage.setItem('aceptProcess', 'true');\n } else if (showAlert) {\n this.alertProcess(res);\n }\n this.processActive = true;\n }\n }\n\n finishProcessAndQuoter(res: any) {\n let obj = {\n carInactive: false,\n beforeStepToSearchCar: false,\n };\n\n // verificar si el auto esta activado y si el estado es inferior a E23 busqueda de auto\n if (\n res.car !== undefined &&\n res.car.isActive !== undefined &&\n !res.car.isActive &&\n res.step < 23\n ) {\n let ofDesactiveCar = true;\n let id = res.client.id;\n this.cotizadorService\n .finishProccesAndQuoter(id, ofDesactiveCar)\n .subscribe((resonse: any) => console.log(resonse));\n obj.carInactive = true;\n obj.beforeStepToSearchCar = true;\n }\n return obj;\n }\n\n async checkAttributesUser(user: any) {\n let isFlowB = false;\n let storageType = localStorage.getItem('flowType');\n isFlowB = storageType === 'B' ? true : false;\n if (user.attributes.flowType) {\n if (user.attributes.flowType[0] === 'B') this.redirectB();\n else this.redirectA();\n } else {\n\n if (this.storageType === 'B') this.redirectB();\n else this.redirectA();\n }\n this.checkMissingData(user, isFlowB);\n }\n\n /**\n * Revisa si el usuario tiene todos los datos completos de registro\n * Esto es por si inicia a travez de redes sociales.\n * Si es Flujo A solicitara cargar los datos faltantes\n * Si es Flujo B los cargara automaticamente el dato faltante que es el persontype (FORD: Campaign)\n * @param {*} user\n * @param {boolean} isFlowB\n * @return {*}\n * @memberof AppComponent\n * @author victor.mendez\n */\n async checkMissingData(user: any, isFlowB: boolean) {\n const isCompleteData = user.attributes.hasOwnProperty('persontype');\n if (isFlowB) {\n if (!isCompleteData) {\n await this.updateUserAttributesB(user);\n }\n } else {\n if (!isCompleteData) {\n await this.fillMissingData(user.id);\n }\n }\n }\n\n /**\n * Actualiza el atributo persontype del usuario\n * Solo Aplica para Flujo B y Campaña FORD\n * @private\n * @param {*} user\n * @memberof AppComponent\n */\n private updateUserAttributesB(user: any): void {\n\n const body = { ...user.attributes, \"persontype\": \"PFA\" };\n this.registerService.updateUserAttributes(body, user.id).subscribe({\n next: () => console.log(\"se ejecuto el update Atributos B\")\n });\n }\n\n async fillMissingData(idUser: string) {\n const dialog = this.dialog.open(MissingDataRegisterComponent, {\n data: { idUser },\n disableClose: true,\n });\n\n const resp = await firstValueFrom(dialog.afterClosed());\n return resp.persontype;\n }\n\n redirectA() {\n if (this.templateSuffix !== '')\n this.redirectTo(`${environment.baseUrl}/v1`, false);\n }\n\n redirectB() {\n if (this.templateSuffix === '')\n this.redirectTo(`${environment.baseUrl}/v2`, false);\n }\n\n redirectTo(url: string, logoout: boolean) {\n if (logoout) {\n sessionStorage.clear();\n localStorage.clear();\n this.keycloackService.logout(url);\n } else {\n let pathName = location.pathname.replace('/v1', '').replace('/v2', '');\n let queryParams = location.search;\n location.replace(url + pathName + queryParams);\n }\n }\n\n @HostListener('window:resize')\n onResize() {\n this.dataService.setInteractionUserPanel(false);\n this.dataService.setScreenSize(this.window.innerWidth);\n this.dataService.setScreenSize(this.window.innerWidth);\n }\n\n\n initDataDog(prod: boolean) {\n if (prod) {\n datadogRum.init({\n applicationId: environment.dataDog.applicationId,\n clientToken: environment.dataDog.clientToken,\n site: environment.dataDog.site,\n service: environment.dataDog.service,\n env: environment.dataDog.env,\n // version: environment.dataDog.version,\n sessionSampleRate: environment.dataDog.sessionSampleRate,\n sessionReplaySampleRate: environment.dataDog.sessionReplaySampleRate,\n trackUserInteractions: environment.dataDog.trackUserInteractions,\n trackResources: environment.dataDog.trackResources,\n trackLongTasks: environment.dataDog.trackLongTasks,\n defaultPrivacyLevel: environment.dataDog.defaultPrivacyLevel as DefaultPrivacyLevel\n });\n }\n }\n\n\n ngOnDestroy(): void {\n this.statusChangeSubscription.unsubscribe();\n }\n}\n","
\n \n \n \n \n \n \n \n \n \n \n \n
\n\n
\n\n","import { APP_INITIALIZER, NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport {\n HttpClient,\n HttpClientModule,\n HTTP_INTERCEPTORS,\n} from '@angular/common/http';\nimport { LogService } from './services/log.service';\nimport { KeycloakAngularModule, KeycloakService } from 'keycloak-angular';\nimport { MainHeaderComponent } from './components/main-header/main-header.component';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { SidenavListComponent } from './components/sidenav-list/sidenav-list.component';\nimport { MatListModule } from '@angular/material/list';\nimport { LandingGeneralModule } from './pages/landing-general/landing-general.module';\nimport { FooterComponent } from './components/footer/footer.component';\nimport { initializeKeycloak } from './utils/keycloak.init';\nimport { ModalProcessComponent } from './components/modal-process/modal-process.component';\nimport { ComponentsModule } from './pages/buro/components/components.module';\nimport { environment } from 'src/environments/environment';\nimport { WhatsComponent } from './components/whats/whats.component';\nimport { DEBUG_MODE } from '@angular/fire/compat/analytics';\nimport { TokenInterceptor } from './utils/token.interceptor';\nimport { DirectivesModule } from './directives/directives.module';\nimport { NgcCookieConsentModule, NgcCookieConsentConfig } from 'ngx-cookieconsent';\n\nimport { MissingDataRegisterComponent } from './components/missing-data-register/missing-data-register.component';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MAT_DATE_LOCALE } from '@angular/material/core';\nimport { TokenCustomInterceptor } from './utils/token.custom.interceptor';\nimport { checkInitToken } from './utils/token.init';\nimport { UserModifiedInterceptor } from './utils/user.interceptor';\nimport { TourMatMenuModule } from 'ngx-ui-tour-md-menu';\nimport { MatGridListModule } from '@angular/material/grid-list';\n\n\n\n\n\nconst cookieConfig: NgcCookieConsentConfig = {\n cookie: {\n domain: environment.cookies.domain,\n },\n position: 'bottom',\n theme: 'classic',\n palette: {\n popup: {\n background: '#75787b',\n text: '#ffffff',\n link: '#ffffff',\n },\n button: {\n background: '#fe5000',\n text: '#ffffff',\n border: 'transparent',\n },\n },\n type: 'info',\n content: {\n message:\n 'Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrar publicidad relacionada con tus preferencias. Si continuas navegando, consideramos que aceptas su uso.',\n dismiss: 'Acepto',\n link: 'Leer más',\n href: `${environment.keycloak.redirectUri}/landing#politica-cookies`,\n },\n};\n\n@NgModule({\n declarations: [\n AppComponent,\n MainHeaderComponent,\n SidenavListComponent,\n FooterComponent,\n ModalProcessComponent,\n WhatsComponent,\n MissingDataRegisterComponent\n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n BrowserAnimationsModule,\n HttpClientModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: (http: HttpClient) => {\n return new TranslateHttpLoader(http, \"./assets/i18n/\", \".json\");\n },\n deps: [HttpClient],\n },\n }),\n KeycloakAngularModule,\n MatToolbarModule,\n MatButtonModule,\n MatSnackBarModule,\n MatIconModule,\n MatMenuModule,\n MatSidenavModule,\n FlexLayoutModule,\n MatListModule,\n LandingGeneralModule,\n ComponentsModule,\n DirectivesModule,\n MatGridListModule,\n NgcCookieConsentModule.forRoot(cookieConfig),\n ReactiveFormsModule,\n MatDialogModule,\n TourMatMenuModule.forRoot(),\n ],\n providers: [\n LogService,\n { provide: MAT_DATE_LOCALE, useValue: 'es-MX' },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: TokenCustomInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: TokenInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: UserModifiedInterceptor,\n multi: true,\n },\n {\n provide: APP_INITIALIZER,\n useFactory: checkInitToken,\n multi: true\n },\n {\n provide: APP_INITIALIZER,\n useFactory: initializeKeycloak,\n multi: true,\n deps: [KeycloakService],\n },\n {\n provide: 'googleTagManagerId',\n useValue: environment.gtm.googleTagManagerId,\n },\n // MODO DEBUG SOLO PARA DESARROLLO, ELIMINAR EN PROYECTO REAL\n { \n provide: DEBUG_MODE, \n useValue: !environment.production \n }\n ],\n bootstrap: [AppComponent],\n})\nexport class AppModule { }\n","import { Component, Input, OnInit, Output, EventEmitter, OnChanges } from '@angular/core';\nimport { IAllSpecs } from 'src/app/model/http/specs.model';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-car-features',\n templateUrl: `./car-features.component${environment.templateSuffix}.html`,\n styleUrls: ['./car-features.component.scss']\n})\nexport class CarFeaturesComponent implements OnInit, OnChanges {\n @Output() public scrollToSpecs = new EventEmitter();\n @Input() specs: any;\n car!: any;\n features!: IAllSpecs;\n carPower: string = '';\n carAceleration: string = '';\n carTorque: string = '';\n carTransmition: string = '';\n carMotor: string = '0';\n carLitros: string = '0'\n carVelocidades: string = '0';\n templateSuffix: string = '';\n\n constructor() {\n this.templateSuffix = environment.templateSuffix;\n }\n\n\n ngOnInit(): void {\n this.initProps();\n }\n\n ngOnChanges() {\n this.initProps();\n }\n\n initProps() {\n this.carMotor = this.specs.motor.especificaciones[0].split(':')[1] || '0';\n this.carVelocidades = this.specs.transmision.especificaciones[1].split(':')[1] || '0';\n this.carPower = this.specs.motor.especificaciones[1].split(':')[1] || '0';\n this.carTransmition = this.specs.transmision.especificaciones[0].split(':')[1] || '-'\n }\n\n}\n","
\n

Características

\n
\n
\n

Potencia

\n 5}\" class=\"value\">{{carPower}}\n Hp\n
\n
\n

Motor

\n {{carMotor}} Lts\n
\n
\n

Núm. Velocidades

\n {{carVelocidades}}\n
\n
\n

Transmisión

\n {{carTransmition | titlecase }}\n
\n
\n
","import { Component, Input, OnChanges,} from '@angular/core';\nimport { IImagesJato } from 'src/app/model/http/images.model';\nimport { ISearchCars, ITopCars } from 'src/app/model/http/cars.model';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ModalSpecsComponent } from './modal-specs/modal-specs.component';\nimport { SummaryService } from 'src/app/services/summary.service';\nimport { environment } from 'src/environments/environment';\n@Component({\n selector: 'app-car-specs',\n templateUrl: `./car-specs.component${environment.templateSuffix}.html`,\n styleUrls: ['./car-specs.component.scss']\n})\nexport class CarSpecsComponent implements OnChanges {\n @Input() specs: any;\n @Input() car!: ITopCars | ISearchCars;\n @Input() images!: IImagesJato;\n\n arraObject: any = []\n fisrtColumnSpecs: any =[]\n secondColumnSpecs: any = []\n panelOpenState = true;\n templateSuffix: string = '';\n\n\n constructor(public dialog: MatDialog, public summaryService: SummaryService) {\n this.templateSuffix = environment.templateSuffix;\n }\n\n ngOnChanges(changes: any): void {\n this.getSpecs();\n }\n\n getSpecs() {\n for(const [key, value] of Object.entries(this.specs) as any){\n if(value.especificaciones.length > 0){\n let object = {\n title : key,\n specs : value\n }\n\n this.arraObject.push(object)\n }\n }\n \n let halfArray = (Math.floor(this.arraObject.length/2));\n\n this.fisrtColumnSpecs = this.arraObject.slice(0, halfArray);\n this.secondColumnSpecs = this.arraObject.slice(halfArray, this.arraObject.length); \n\n }\n\n generateFicha(){\n this.dialog.open(ModalSpecsComponent, {\n data: {\n title: `${this.car.brand} ${this.car.subBrand}`,\n subtitle: `${this.car.version} ${this.car.year}`,\n imgCar: this.images.imagenes[0],\n fisrtColumnSpecs: this.fisrtColumnSpecs,\n secondColumnSpecs: this.secondColumnSpecs,\n allSpecs: this.arraObject\n },\n panelClass: 'modal-specs-car',\n });\n }\n\n\n}\n","
\n \n
","import { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-modal-specs',\n templateUrl: './modal-specs.component.html',\n styleUrls: ['./modal-specs.component.scss']\n})\nexport class ModalSpecsComponent {\n panelOpenState: boolean = true;\n constructor(@Inject(MAT_DIALOG_DATA) public specs: any) { }\n\n}\n","
\n
\n \n
\n

{{specs.title}}

\n

{{specs.subtitle}}

\n
\n
\n
\n \"car\n
\n
\n \n \n \n
\n
\n
\n \n \n \n
\n
\n
\n
\n \"car\n
\n
\n \n \n \n
\n
\n
\n","import { Component, Input } from '@angular/core';\nimport { SummaryService } from 'src/app/services/summary.service';\n\n@Component({\n selector: 'app-table-specs',\n templateUrl: './table-specs.component.html',\n styleUrls: ['./table-specs.component.scss']\n})\nexport class TableSpecsComponent {\n @Input() data: any;\n panelOpenState: boolean = true;\n \n constructor(public summaryService: SummaryService) { }\n\n}\n"," 0\">\n \n \n \n \n \"icon_{{data.title}\"/\n \n {{ summaryService.getTitleSpecs(data.title) | titlecase }}\n \n \n

\n \n

\n
\n
\n","import { Component, EventEmitter, HostListener, Inject, Injector, Input, Output } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Router } from '@angular/router';\nimport { environment } from 'src/environments/environment';\nimport { SecurityService } from 'src/app/services/security.service';\nimport { DataService } from 'src/app/services/data.service'\nimport { SummaryService } from 'src/app/services/summary.service'\nimport { DialogAfinComponent } from 'src/app/pages/cotiza/cotiza-components/dialog-afin/dialog-afin.component';\nimport { DecimalPipe } from '@angular/common'\nimport { WINDOW } from 'src/app/utils/window';\nimport { Platform } from '@angular/cdk/platform';\nimport { CreditDialogComponent } from '../credit-dialog/credit-dialog.component';\nimport { CreditTypeDialogComponent } from '../credit-type-dialog/credit-type-dialog.component';\nimport { TypeProduct, TypeQuote, TypeQuoter } from 'src/app/utils/utils';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n selector: 'app-card-car-home',\n templateUrl: `./card-car-home.component${environment.templateSuffix}.html`,\n styleUrls: ['./card-car-home.component.scss']\n})\nexport class CardCarHomeComponent {\n @Output() public destroyQuoter = new EventEmitter();\n @Input() car!: any;\n @Input() ofPage!: string;\n @Input() isAfin: any;\n @Input() closeSide!: boolean;\n @Input() topCar!: boolean;\n @Input() productType: string = \"\";\n\n urlStrapiBase = `${environment.strappiUrl}`;\n public screenWidth: any = this.window.innerWidth;\n public screenHeight: any = this.window.innerHeight;\n private platform: Platform;\n private dialog: MatDialog;\n private router: Router;\n templateSuffix: string = '';\n private domSanitizer: DomSanitizer;\n private matIconRegistry: MatIconRegistry;\n\n\n\n constructor(\n private security: SecurityService,\n private dataService: DataService,\n public summaryService: SummaryService,\n private decimalPipe: DecimalPipe,\n @Inject(WINDOW) private window: Window,\n private injector: Injector,\n ) {\n\n this.platform = this.injector.get(Platform);\n this.dialog = this.injector.get(MatDialog);\n this.router = this.injector.get(Router);\n\n this.domSanitizer = this.injector.get(DomSanitizer);\n this.matIconRegistry = this.injector.get(MatIconRegistry);\n\n\n this.matIconRegistry.addSvgIcon('spec-automatica', this.domSanitizer.bypassSecurityTrustResourceUrl(\"./assets/img/v3/leasing-icono-especs-automatica.svg\"));\n this.matIconRegistry.addSvgIcon('spec-electrico', this.domSanitizer.bypassSecurityTrustResourceUrl(\"./assets/img/v3/leasing-icono-especs-electrico.svg\"));\n this.matIconRegistry.addSvgIcon('spec-gasolina', this.domSanitizer.bypassSecurityTrustResourceUrl(\"./assets/img/v3/leasing-icono-especs-gasolina.svg\"));\n this.matIconRegistry.addSvgIcon('spec-manual', this.domSanitizer.bypassSecurityTrustResourceUrl(\"./assets/img/v3/leasing-icono-especs-manual.svg\"));\n this.matIconRegistry.addSvgIcon('spec-hibrido', this.domSanitizer.bypassSecurityTrustResourceUrl(\"./assets/img/v3/leasing-icono-especs-hibrido.svg\"));\n this.matIconRegistry.addSvgIcon('spec-kilometraje', this.domSanitizer.bypassSecurityTrustResourceUrl(\"./assets/img/v3/leasing-icono-especs-kilometraje.svg\"));\n \n\n this.templateSuffix = environment.templateSuffix;\n\n }\n\n navigateTo(car: any) {\n localStorage.removeItem('dataQuote');\n if (this.ofPage === 'seminuevos') {\n this.window.open(car.link, '_blank');\n } else if (this.isAfin === undefined) {\n this.validateFlow(car);\n } else {\n switch (this.productType) {\n case TypeProduct.LeasingRenting:\n this.goNextPage(car, this.isAfin);\n break;\n case TypeProduct.Rent2buy:\n this.goNextPage(car, this.isAfin);\n break;\n case TypeProduct.Ballon:\n this.goNextPage(car, true, true);\n break;\n case TypeProduct.Traditional:\n this.goNextPage(car, false, true);\n break;\n default:\n this.validateFlow(car);\n break;\n }\n }\n }\n\n\n /**\n * Validates the flow based on the template suffix.\n * If the template suffix is not empty, it redirects to the cotizador page for RR for FORD Campaign.\n * Otherwise, it opens the dialog for Afin.\n *\n * @param car - The car object to be processed.\n * @returns void\n * @memberof CardCarHomeComponent\n * @author victor.mendez\n */\n validateFlow(car:any) {\n if(this.templateSuffix !== ''){\n this.goNextPage(car, true);\n } else {\n this.opendDialogAfin(car);\n }\n }\n\n opendDialogAfin(car: any) {\n let dialogAfin = this.dialog.open(\n CreditDialogComponent,\n {\n disableClose: false\n }\n );\n\n dialogAfin.afterClosed().subscribe(res => {\n switch (res) {\n case TypeQuote.Leasing:\n this.goLeasing(car); \n break;\n case TypeQuote.credit:\n this.goCredit(car); \n break;\n default:\n break;\n }\n })\n }\n\n public goLeasing(car: any){\n let dialogAfin = this.dialog.open(DialogAfinComponent,{\n disableClose: false\n });\n dialogAfin.afterClosed().subscribe(res => {\n if (res !== undefined)\n this.goNextPage(car, res)\n })\n }\n\n /* TODO: FASE 2 */\n public goCredit(car: any){\n let dialogAfin = this.dialog.open(CreditTypeDialogComponent,{\n disableClose: false\n });\n dialogAfin.afterClosed().subscribe(res => {\n if (res !== undefined)\n this.goNextPage(car, res, true); \n })\n }\n\n\n getHyphenatedUrl(urlFriendly: string) {\n return urlFriendly.replace(\",\", \"\").replace(/[^\\w\\s]/gi, '').replace(/[()]/g, '').replace(/\\s+/g, '-').toLowerCase();\n }\n\n goNextPage(car: any, type: boolean, isCredit:boolean = false) {\n if (this.ofPage === 'cotizador')\n this.destroyQuoter.emit();\n\n const carId = car.idLeaseTech!\n this.dataService.setCarIdQuoter(carId);\n\n let urlHash = this.security.encryptData({ carId, isAfin:type }, false)\n\n let producto = isCredit ? (type ? TypeProduct.Ballon : TypeProduct.Traditional) : (type ? TypeProduct.Rent2buy : TypeProduct.LeasingRenting);\n let queryParams: any = {\n quote: urlHash,\n share_title: `${car.brand} ${car.subBrand} en BitCar`,\n share_desc: `${car.brand} ${car.subBrand} ${car.version} ${car.year} desde ${this.decimalPipe.transform(car.rentingMin, \"1.2\")} mensuales`,\n slashed_url: `${this.getHyphenatedUrl(car.brand)}/${this.getHyphenatedUrl(car.subBrand)}/${this.getHyphenatedUrl(car.version)}/${car.year.toString()}/${producto}`\n }\n\n if (car.imagenes?.length > 0)\n queryParams.share_img = this.summaryService.imgCarCard(car);\n\n const typeQuoter = isCredit ? TypeQuoter.Credit : TypeQuoter.Quoter;\n this.router.navigate([`/${typeQuoter}/${this.getHyphenatedUrl(car.brand)}/${this.getHyphenatedUrl(car.subBrand)}/${this.getHyphenatedUrl(car.version)}/${car.year.toString()}/${producto}`], { queryParams, replaceUrl: this.ofPage === 'cotizador' })\n }\n\n\n isMobile() {\n return this.screenWidth < 768 || this.platform.ANDROID || this.platform.IOS\n }\n\n @HostListener('window:resize', ['$event'])\n onWindowResize(): void {\n this.screenWidth = this.window.innerWidth;\n this.screenHeight = this.window.innerHeight;\n this.isMobile();\n }\n\n}\n","\n\n
\n\n \"car\n \n\n
\n\n
\n
{{car.brand }} {{car.subBrand }} | {{car.version}}\n {{car.year}}
\n
\n\n
\n

Desde

\n ${{(car.rentingMin) | number : '1.2'}} MXN mensuales\n * \n
\n\n\n
\n\n
\n
\n {{car.powerTrain}}
\n
\n {{car.powerTrain}}
\n
{{car.powerTrain}}
\n
\n
\n
{{car.transmission}}
\n
\n {{car.transmission}}
\n
\n\n
\n\n
","import { NgModule } from '@angular/core';\nimport { CommonModule, DecimalPipe } from '@angular/common';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatButtonModule } from '@angular/material/button';\nimport { CardCarHomeComponent } from './card-car-home.component';\nimport { DirectivesModule } from 'src/app/directives/directives.module';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatDividerModule } from '@angular/material/divider';\n\n\n@NgModule({\n declarations: [CardCarHomeComponent],\n imports: [\n CommonModule,\n MatCardModule,\n MatButtonModule,\n DirectivesModule,\n MatIconModule,\n MatDividerModule\n ],\n exports: [\n CardCarHomeComponent,\n ],\n providers: [DecimalPipe]\n})\nexport class CardCarHomeModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { LeaseProcessComponent } from './lease-process/lease-process.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatCardModule } from '@angular/material/card';\nimport { FaqComponent } from './faq/faq.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { IvyCarouselModule } from 'angular-responsive-carousel';\nimport { DirectivesModule } from '../directives/directives.module';\nimport { TourMatMenuModule } from 'ngx-ui-tour-md-menu';\n\n\n@NgModule({\n declarations: [LeaseProcessComponent, FaqComponent],\n imports: [\n CommonModule,\n MatIconModule,\n MatCardModule,\n MatButtonModule,\n IvyCarouselModule,\n TranslateModule.forChild({\n extend: true,\n }),\n DirectivesModule,\n TourMatMenuModule\n ],\n exports: [\n LeaseProcessComponent,\n FaqComponent\n ],\n})\nexport class ComponentsModule { }\n","import { LabelType, Options } from '@angular-slider/ngx-slider';\nimport { Component, ElementRef, Inject, Injector, Input, OnChanges, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { IInsurance, IInsuranceDic, IInsuranceRequest, IInsuranceSelected, InsurancesDic, InsurancesEnum, IInsuranceRequestCredit } from '../configuration-panel/interfaces/aseguradoras';\nimport { Subscription, firstValueFrom } from 'rxjs';\nimport { emailTip, emailTipTo, whatsTip } from '../configuration-panel/helpers/constants';\nimport { SummaryService } from 'src/app/services/summary.service';\nimport { ModalService } from 'src/app/services/modal-service.service';\nimport { StrappiService } from 'src/app/services/strappi.service';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { KeycloakService } from 'keycloak-angular';\nimport { environment } from 'src/environments/environment';\nimport { SecurityService } from 'src/app/services/security.service';\nimport { CatalogsService } from 'src/app/services/catalogs.service';\nimport { CotizadorService } from 'src/app/services/cotizador.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { DataService } from 'src/app/services/data.service';\nimport { DOCUMENT } from '@angular/common';\nimport { Icons } from '../modal-alert/enums';\nimport { ModalComponent } from '../configuration-panel/modal/modal.component';\nimport { IResponse } from '../configuration-panel/interfaces/IResponse';\nimport { canNotPreauth } from '../configuration-panel/helpers/Utils';\nimport { CotizadorCreditoService } from 'src/app/services/cotizador-credito.service';\nimport { BINARY_OBJ, INSURANCE_PAYMENT_TYPE_OPTS, MAINTENANCE_RANGE, TypeQuoterCredit, KEY_MONTHS, INSURANCE_PAYMENT_TYPE_OPTS_MAP, ErrorBuro } from 'src/app/utils/utils';\nimport { SUSTITUECAROPTS } from 'src/app/utils/utils';\nimport { State } from 'src/app/pages/buro/interfaces/states.model';\nimport moment from 'moment';\nimport { ResponsePlusCredit } from 'src/app/model/http/servicesPlus.model';\nimport { TourService } from \"ngx-ui-tour-md-menu\";\nimport { BALLON_TOUR, TRADITION_TOUR } from 'src/app/utils/tour-product';\n\n\n@Component({\n selector: 'app-configuration-panel-credit',\n templateUrl: './configuration-panel-credit.component.html',\n styleUrls: ['./configuration-panel-credit.component.scss']\n})\nexport class ConfigurationPanelCreditComponent implements OnInit, OnDestroy, OnChanges {\n @ViewChild('contentResume') private contentResume!: ElementRef;\n @ViewChild('notInsurances') private notInsurances!: ElementRef;\n @ViewChild('inputCodigoPostal') private zipContent!: ElementRef;\n @Input() car!: any;\n @Input() metaUrl!: any;\n @Input() slashedUrl:string = '';\n private totalInsuranceResponses = 2;\n /* Catalogo estados */\n private states: State[] = [];\n /* Enganche */\n public hitchPriceFloor: number = 0;\n public hitchPriceCeil: number = 0;\n public valueHitch: number = 0;\n public optionsHitch: Options = {\n floor: this.hitchPriceFloor,\n ceil: this.hitchPriceCeil,\n translate: (value: number, label: LabelType): string => {\n return '$' + value.toLocaleString('en');\n },\n };\n\n /* Ballon */\n public ballonFloor: number = 0;\n public ballonCeil: number = 0;\n public valueBallon: number = 10;\n public optionsBallon: Options = {\n floor: this.ballonFloor,\n ceil: this.ballonCeil,\n translate: (value: number, label: LabelType): string => {\n return value.toLocaleString('en') + '%';\n },\n };\n\n /* Anualidad */\n public annuityFloor: number = 0;\n public annuityCeil: number = 0;\n public annuityValue: number = 0;\n public optionsAnnuity: Options = {\n floor: this.hitchPriceFloor,\n ceil: this.hitchPriceCeil,\n translate: (value: number, label: LabelType): string => {\n return '$' + value.toLocaleString('en');\n },\n };\n\n dataKm: any[] = [];\n defaultValueKm = 20000;\n KmArray: any[] = [];\n defaultKm = '0';\n\n private customerTypeId: string = 'B';\n /* Estado */\n private defaultState!: State;\n public stateSelected?: State;\n /* Seguro */\n public insurances: IInsurance[][] = [];\n public insuranceSelected: IInsuranceSelected = {\n data: [],\n insurance: InsurancesDic[3],\n };\n private insuranceRequest!: IInsuranceRequestCredit;\n public completedResponses = 0;\n private insuranceBetter: IInsuranceDic = InsurancesDic[3];\n private suma: number = 0;\n\n private qualitas!: any;\n private atlas!: any;\n private gnp!: any;\n\n public flagProtectionPlus: boolean = false;\n public flagSubstituteCar: boolean = true;\n public flagMaintenance: boolean = false;\n public flagAnual: boolean = false;\n public flagGps: boolean = true;\n public flagGpsRequired: boolean = false;\n public loadingServicesPlus: boolean = true; // Check Service protection plus\n public optionsInsuranceType = INSURANCE_PAYMENT_TYPE_OPTS_MAP;\n public valueInsuranceType: number = INSURANCE_PAYMENT_TYPE_OPTS_MAP[1].id;\n public valueAnnuityPaymentMonth: number;\n public optionsSubstituteCar = SUSTITUECAROPTS;\n public valueSubstituteCar: number = SUSTITUECAROPTS[0].value;\n\n public dataQuoter: any;\n public deadlineSelect: any;\n private subscriptionDeadlineSelect!: Subscription;\n public subscriptionInteraction!: Subscription;\n public subscriptionTour!: Subscription;\n \n private userId: string = '';\n\n public emailTip = emailTip;\n public whatsTip = whatsTip;\n public emailTipTo = emailTipTo;\n \n public showDetails = false;\n public showDetailsSecure = false;\n public disable = true;\n\n\n public screenWidth = window.innerWidth;\n public subscriptionScreen!: Subscription;\n private subscriptionUrlParams!: Subscription;\n private actionSubscriptionBalloon!: Subscription;\n\n\n public summaryService!: SummaryService;\n private modalService: ModalService;\n private strappiService: StrappiService;\n private route: ActivatedRoute;\n private keycloakService: KeycloakService;\n public personalizaStrappi: any;\n\n public codePromo: string = '';\n public codePostal: string = '';\n public codeStatus: string = '';\n public showCode: boolean = false;\n\n private templateSuffix = environment.templateSuffix;\n private clickEventsubscription!: Subscription;\n\n private securityService: SecurityService;\n\n public months = KEY_MONTHS;\n public checkIncomes = BINARY_OBJ;\n public checkIncomeValue = true;\n public hasDefaultUserType = false;\n public hasMaintenance: boolean = true;\n public firtsCharge:boolean = true;\n public loadZip:boolean = false;\n public cpStorage:any;\n public servicesPlusData:ResponsePlusCredit | null = null;\n public secureLoad:boolean = true;\n\n public stepsTourTraditional:any = TRADITION_TOUR;\n public stepsTourBallon:any = BALLON_TOUR\n public flagAutoSuRequired: boolean = true;\n public flagAutoSusRequired: boolean = true;\n\n constructor(\n private activatedRoute: ActivatedRoute,\n private catalogsService: CatalogsService,\n private cotizadorService: CotizadorService,\n private cotizadorCreditoService: CotizadorCreditoService,\n public dialog: MatDialog,\n private dataService: DataService,\n private router: Router,\n @Inject(DOCUMENT) private document:any,\n private injector: Injector,\n private readonly tourService: TourService,\n ) {\n this.userId = this.dataService.getIdKeycloak();\n this.summaryService = this.injector.get(SummaryService);\n this.modalService = this.injector.get(ModalService);\n this.strappiService = this.injector.get(StrappiService);\n this.route = this.injector.get(ActivatedRoute);\n this.keycloakService = this.injector.get(KeycloakService);\n this.securityService = this.injector.get(SecurityService);\n this.clickEventsubscription = this.dataService.getSharedFunction().subscribe((data) => {\n if (data === 'preauthorize') {\n this.preauthorize();\n }\n });\n\n // Se deshabilita el mes siguiente al actual, para evitar el bug del Excel de la calculadora.\n let monthTruncate = ((moment().month() + 1) === 12) ? 0 : (moment().month() + 1);\n this.months = KEY_MONTHS.filter((month) => monthTruncate !== month.id);\n this.valueAnnuityPaymentMonth = moment().month();\n }\n\n\n checkHasMaintenance() {\n let hasMaintenance = true;\n for (let maintenanceKMIndex = MAINTENANCE_RANGE.MIN; maintenanceKMIndex <= MAINTENANCE_RANGE.MAX; maintenanceKMIndex+= 10) {\n if (this.car[`amountRenting${maintenanceKMIndex}k`] === 0) {\n hasMaintenance = false;\n break;\n }\n }\n this.hasMaintenance = hasMaintenance;\n }\n\n get costProtectionPlus() {\n if (!this.servicesPlusData) {\n return 0;\n }\n\n if (!this.deadlineSelect?.period) {\n return 0;\n }\n\n return this.servicesPlusData.data[this.deadlineSelect.period].protectionPlus;\n }\n\n get costSubstituteCar() {\n if (!this.servicesPlusData) {\n return 0;\n }\n\n if (!this.deadlineSelect?.period) {\n return 0;\n }\n\n return this.servicesPlusData.data[this.deadlineSelect.period].sustituteCar;\n }\n\n ngOnInit(): void {\n\n this.tourService.initialize(this.productType===TypeQuoterCredit.ballon?this.stepsTourBallon:this.stepsTourTraditional);\n\n\n this.subscriptionTour = this.tourService.events$.subscribe(x => {\n if (x.name==='end') {\n localStorage.setItem(\n 'tourProduct',\n this.securityService.encryptData(true, false)\n );\n }\n });\n\n \n\n this.checkHasMaintenance();\n setTimeout(() => {\n this.getUrlParams();\n }, 1500);\n\n this.subscriptionDeadlineSelect = this.dataService\n .getDeadlineSelect()\n .subscribe((resSelect: object) => {\n try {\n this.deadlineSelect = resSelect;\n this.dataService.setShowShareLink(false);\n if (this.deadlineSelect.isSelected) {\n setTimeout(() => {\n this.scrollToResume();\n }, 100);\n }\n } catch (error) { }\n });\n\n this.subscriptionInteraction = this.dataService\n .getInteractionUserPanel()\n .subscribe((resp) => (this.disable = resp));\n this.subscriptionScreen = this.dataService\n .getScreenSize()\n .subscribe((resp) => (this.screenWidth = resp));\n\n this.strappiService.getPlanPage().subscribe((res: any) => {\n this.personalizaStrappi = res.panel_config;\n });\n\n this.actionSubscriptionBalloon = this.dataService.getBalloonMax().subscribe(data => {\n this.executeAction(data);\n });\n }\n\n async ngOnChanges(changes: any) {\n if (\n changes.car &&\n changes.car.currentValue?.id !== changes.car.previousValue?.id\n ) {\n this.dataQuoter = null;\n this.interactionUser();\n this.getUrlParams();\n this.getState();\n this.getCreditRangesKM();\n this.getHitchRange();\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptionDeadlineSelect?.unsubscribe();\n this.subscriptionInteraction?.unsubscribe();\n this.subscriptionScreen?.unsubscribe();\n this.destroyObservableUrlParams();\n this.clickEventsubscription.unsubscribe();\n this.subscriptionTour.unsubscribe();\n this.actionSubscriptionBalloon.unsubscribe();\n }\n\n private async getUrlParams() {\n this.subscriptionUrlParams = this.route.queryParams.subscribe(async (params) => {\n let paramsQuote = params['quote'] ? this.securityService.decryptData(params['quote']) : null;\n\n let _idkeycloak = await this.dataService.getIdKeycloak();\n if (paramsQuote?.origin === 'A' && (_idkeycloak.includes('hunnur') || _idkeycloak.includes('ford'))) {\n paramsQuote = null;\n this.router.navigate(['/buscador'], { queryParams: {} });\n return;\n }\n if (paramsQuote?.origin === 'B' && !(_idkeycloak.includes('hunnur') || _idkeycloak.includes('ford'))) {\n paramsQuote = null;\n this.router.navigate(['/buscador'], { queryParams: {} });\n return;\n }\n\n\n if (paramsQuote.typeSustituteCar) {\n this.substituteCarSelect(paramsQuote.typeSustituteCar);\n }\n\n if (paramsQuote.stateId) {\n this.defaultState = this.states.find(\n (ele) => ele.id === paramsQuote.stateId\n )!;\n }\n \n if (paramsQuote.customerTypeId) {\n this.hasDefaultUserType = true;\n this.customerTypeId = paramsQuote.customerTypeId;\n }\n\n if (paramsQuote.insurance) {\n this.insuranceSelected.insurance = InsurancesDic.find(\n (ele) => ele.value === paramsQuote.insurance\n );\n this.setDataDeadline(\n [\n {\n key: 'insurance',\n value: this.insuranceSelected.insurance?.value,\n },\n ],\n true\n );\n }\n\n if (paramsQuote.downPayment) {\n this.hitchChange({ value: paramsQuote.downPayment });\n }\n\n if(paramsQuote.annuity) {\n this.annuityChange({value: paramsQuote.annuity});\n }\n\n if(paramsQuote.ballon) {\n this.ballonChange({value: paramsQuote.ballon});\n }\n\n if (paramsQuote.protectionPlus) {\n this.flagProtectionPlus = paramsQuote.protectionPlus;\n this.changeToggle(1, { checked: paramsQuote.protectionPlus });\n }\n\n if (paramsQuote.substituteCar) {\n this.flagSubstituteCar = paramsQuote.substituteCar;\n this.changeToggle(2, { checked: paramsQuote.substituteCar });\n }\n\n if (paramsQuote.includeMaintenance) {\n this.flagMaintenance = paramsQuote.includeMaintenance;\n this.changeToggle(3, { checked: paramsQuote.includeMaintenance });\n }\n });\n }\n\n private async getState() { \n this.catalogsService.getStates().subscribe(({ data }) => {\n this.states = data;\n\n this.cpStorage = this.securityService.decryptData(localStorage.getItem('cpCredit'));\n if (this.cpStorage) {\n this.codePostal = this.cpStorage.cp;\n this.defaultState = this.cpStorage.idState;\n this.stateSelect(this.cpStorage.idState, false);\n }\n });\n }\n\n private async getCreditRangesKM() {\n this.catalogsService.getCreditRangeKm().subscribe((res) => {\n const activeRanges = res.data.filter((item) => item.status);\n const KmArray = activeRanges.map(({range}) => range.toLocaleString('en'));\n this.KmArray = KmArray;\n const [ defaultKm ] = this.KmArray;\n this.defaultKm = defaultKm;\n this.defaultValueKm = Number(this.defaultKm.split(',').join(''));\n this.dataService.setKm(this.defaultValueKm);\n this.setDataDeadline(\n [\n { key: 'km', value: this.defaultValueKm }\n ],\n this.insuranceSelected.insurance?.value ? true : false\n );\n });\n }\n\n public async getZipCode( zipcode: string ) {\n try {\n const { resultados } = await firstValueFrom(this.catalogsService.getZipCode(zipcode));\n const [ firstResult ] = resultados;\n const stateSelected = this.states.find(({ idDaVinci }) => idDaVinci === Number(firstResult.idState));\n if (stateSelected) {\n localStorage.setItem(\n 'cpCredit',\n this.securityService.encryptData({cp: this.codePostal, idState:stateSelected }, false)\n );\n this.stateSelect(stateSelected, true);\n }\n this.loadZip = false;\n } catch (error) {\n this.loadZip = false;\n const msg =\n 'Código postal no encontrado, para continuar por favor ingresa otro código postal.';\n this.modalService.showAlertWithoutIds(\n msg,\n Icons.error,\n false,\n '¡Lo sentimos!'\n );\n }\n }\n\n private getHitchRange() {\n if (this.productType === 'TRADITIONAL') {\n this.cotizadorCreditoService.getRangeHitchTraditional({\n carId: this.car.id, \n customerTypeId: this.customerTypeId, \n productTypeId: TypeQuoterCredit.traditional\n }).subscribe(async (res) => {\n this.hitchPriceFloor = Math.floor(res.min);\n this.hitchPriceCeil = Math.ceil(res.max);\n\n if (this.valueHitch > this.hitchPriceCeil) {\n this.valueHitch = this.hitchPriceCeil;\n } else if(this.valueHitch < this.hitchPriceFloor) {\n this.valueHitch = this.hitchPriceFloor;\n }\n \n this.optionsHitch = {\n ...this.optionsHitch,\n floor: this.hitchPriceFloor,\n ceil: this.hitchPriceCeil\n }\n\n await this.checkGPSRequired(); /* TODO: FASE 2 */\n this.getRangeAnnuity(this.valueHitch);\n });\n } else {\n this.cotizadorCreditoService.getRangeHitchBallon({\n carId: this.car.id, \n customerTypeId: this.customerTypeId, \n productTypeId: TypeQuoterCredit.ballon,\n ballon: this.valueBallon / 100,\n downPayment: this.valueHitch,\n code: this.codePromo\n }).subscribe(async (res) => {\n this.hitchPriceFloor = Math.floor(res.min);\n this.hitchPriceCeil = Math.ceil(res.max);\n\n let changeValueHitch = true;\n if (this.valueHitch > this.hitchPriceCeil) {\n this.valueHitch = this.hitchPriceCeil;\n changeValueHitch = true;\n } else if(this.valueHitch < this.hitchPriceFloor) {\n this.valueHitch = this.hitchPriceFloor;\n changeValueHitch = true;\n }\n \n this.optionsHitch = {\n ...this.optionsHitch,\n floor: this.hitchPriceFloor,\n ceil: this.hitchPriceCeil\n }\n\n if (changeValueHitch) {\n this.getRangeBallon(this.valueHitch);\n } else {\n await this.checkGPSRequired(); /* TODO: FASE 2 */\n this.setDataDeadline(\n [\n { key: 'ballon', value: this.valueBallon / 100 },\n { key: 'downPayment', value: this.valueHitch },\n { key: 'includeGps', value: this.flagGps },\n { key: 'customerTypeId', value: this.customerTypeId },\n ],\n this.insuranceSelected.insurance?.value ? true : false\n );\n }\n });\n }\n }\n\n /* TODO: FASE 2 */\n private async checkGPSRequired() {\n try {\n const isGPSRequired = await this.cotizadorCreditoService.getCreditGPSRequired({\n carId: this.car.id,\n customerTypeId: this.customerTypeId,\n downPayment: this.valueHitch\n }).toPromise();\n \n this.flagGpsRequired = Boolean(isGPSRequired);\n if (isGPSRequired) {\n this.flagGps = this.flagGpsRequired || this.flagGps;\n }\n\n return isGPSRequired;\n } catch (error) {\n return false;\n }\n }\n\n private getRangeAnnuity( valueHitch: number ){\n this.cotizadorCreditoService.getRangeAnnuity(this.car.id, this.customerTypeId, TypeQuoterCredit.traditional, valueHitch).subscribe((res) => {\n \n this.annuityFloor = Math.ceil(res.min);\n this.annuityCeil = Math.floor(res.max);\n\n if (this.annuityValue < this.annuityFloor || this.annuityValue > this.annuityCeil) {\n this.annuityValue = this.annuityFloor;\n }\n\n this.optionsAnnuity = {\n ...this.optionsAnnuity,\n floor: this.annuityFloor,\n ceil: this.annuityCeil\n }\n\n this.secureLoad = this.completedResponses === this.totalInsuranceResponses || this.insuranceSelected.insurance?.value ? true : false;\n\n this.setDataDeadline(\n [\n { key: 'annuity', value: this.annuityValue },\n { key: 'downPayment', value: this.valueHitch },\n { key: 'includeGps', value: this.flagGps },\n { key: 'customerTypeId', value: this.customerTypeId },\n ],\n this.secureLoad ? true : false\n );\n });\n }\n\n private getRangeBallon( valueHitch: number ) {\n \n this.cotizadorCreditoService.getRangeBallon({\n carId: this.car.id,\n customerTypeId: this.customerTypeId,\n code: this.codePromo,\n downPayment: valueHitch\n }).subscribe(async (res) => {\n \n this.ballonFloor = Math.floor(res.minPercent * 100);\n this.ballonCeil = this.ballonCeil;\n \n let changeBallon = false;\n if (this.valueBallon < this.ballonFloor) {\n this.valueBallon = this.ballonFloor;\n changeBallon = true;\n } else if (this.valueBallon > this.ballonCeil) {\n this.valueBallon = this.ballonCeil;\n changeBallon = true;\n }\n \n this.optionsBallon = {\n ...this.optionsBallon,\n floor: this.ballonFloor,\n ceil: this.ballonCeil\n }\n\n if (changeBallon) {\n this.getHitchRange();\n } else {\n await this.checkGPSRequired(); /* TODO: FASE 2 */\n this.secureLoad = this.completedResponses === this.totalInsuranceResponses || this.insuranceSelected.insurance?.value ? true : false;\n this.setDataDeadline(\n [\n { key: 'ballon', value: this.valueBallon / 100 },\n { key: 'downPayment', value: this.valueHitch },\n { key: 'includeGps', value: this.flagGps },\n { key: 'customerTypeId', value: this.customerTypeId },\n ],\n this.secureLoad ? true : false\n );\n }\n \n });\n }\n\n public async hitchChange(event: any) {\n this.valueHitch = event.value;\n if (Number(this.valueHitch) || this.valueHitch === 0){\n if (this.productType === 'TRADITIONAL') { \n await this.checkGPSRequired(); /* TODO: FASE 2 */\n this.getRangeAnnuity(this.valueHitch);\n } else {\n this.getRangeBallon(this.valueHitch);\n }\n } else {\n this.valueHitch = 0;\n }\n }\n\n\n public changeInputHitch(event: any) {\n const hitch = parseInt(event.target.value);\n this.valueHitch = Math.max(this.hitchPriceFloor, Math.min(this.hitchPriceCeil, hitch));\n if (Number(this.valueHitch) || this.valueHitch === 0){\n if (this.productType === 'TRADITIONAL') { \n this.getRangeAnnuity(this.valueHitch);\n } else {\n this.getRangeBallon(this.valueHitch);\n }\n } else {\n this.valueHitch = 0;\n }\n }\n\n public annuityChange(event: any) {\n this.annuityValue = event.value;\n if (Number(this.annuityValue)){\n this.setDataDeadline([{ key: 'annuity', value: event.value }], true);\n } else {\n this.valueHitch = 0;\n }\n }\n\n public changeInputAnnuity(event: any) {\n const annuityValue= Number(event.target.value);\n this.annuityValue = Math.max(this.annuityFloor, Math.min(this.annuityCeil, annuityValue));\n if (this.annuityValue) {\n this.setDataDeadline([{ key: 'annuity', value: this.annuityValue }], true);\n } else {\n this.annuityValue = 0;\n }\n }\n\n public ballonChange(event: any) {\n this.valueBallon = event.value;\n if (Number(this.valueBallon) || this.valueBallon === 0){\n this.getHitchRange();\n } else {\n this.valueBallon = 0;\n }\n }\n\n public changeInputBallon(event: any) {\n this.valueBallon = Number(event.target.value);\n if (Number(this.valueBallon)){\n this.getHitchRange();\n } else {\n this.valueBallon = 0;\n }\n }\n\n private getServicesPlus() {\n this.loadingServicesPlus = true;\n this.cotizadorCreditoService\n .getServicesPlus({\n carId: this.car.id,\n km: this.defaultValueKm,\n cTiD: this.customerTypeId,\n typeSuitCar: this.valueSubstituteCar,\n stateId: this.stateSelected!.id,\n insurance: this.insuranceSelected.insurance?.value,\n cpTip: this.codePostal,\n quoterType: this.productType,\n downPayment: this.valueHitch,\n insuranceType: this.valueInsuranceType,\n })\n .subscribe((res) => {\n this.servicesPlusData = res;\n this.loadingServicesPlus = false;\n });\n }\n\n public changeToggle(type: number, event: any) {\n let key = '';\n\n if (type === 1) key = 'protectionPlus';\n else if (type === 2) key = 'substituteCar';\n else if (type === 4) key = 'includeGps'\n else if (type === 5) key = 'includeAnnuities'\n else key = 'includeMaintenance';\n\n this.interactionUser();\n this.setDataDeadline([{ key, value: event.checked }], true);\n }\n\n openDialog() {\n const dialogRef = this.dialog.open(ModalComponent, {\n data: {\n insuranceSelected: this.insuranceSelected.insurance,\n insuranceBetter: this.insuranceBetter,\n isAfin: false, // TODO: Check this\n },\n panelClass: 'custom-modalbox',\n disableClose: true,\n });\n\n dialogRef.afterClosed().subscribe((result) => {\n if (result && this.insuranceSelected.insurance !== result.insurance) {\n this.insuranceSelected = result;\n this.setDataDeadline(\n [\n {\n key: 'insurance',\n value: this.insuranceSelected.insurance?.value,\n },\n ],\n true\n );\n this.interactionUser();\n }\n });\n }\n\n private resetProperties() {\n this.dataService.setDeadlineCreditSelect(null);\n this.qualitas?.unsubscribe();\n this.gnp?.unsubscribe();\n this.insurances = [];\n this.insuranceSelected = {\n data: [],\n insurance: undefined,\n };\n this.completedResponses = 0;\n this.loadingServicesPlus = true;\n this.cotizadorService.insurnaces.next([]);\n this.cotizadorService.insuranceDic.next(InsurancesDic[3]);\n }\n\n private firstResponse(resp: IResponse | any) {\n if (!resp.hasOwnProperty('data')) {\n if (this.completedResponses === this.totalInsuranceResponses) {\n if (this.suma === 0) {\n this.getServicesPlus();\n this.setDataDeadline(\n [\n { key: 'cpTip', value: this.codePostal },\n { key: 'stateId', value: this.stateSelected!.idTip },\n { key: 'stateName', value: this.stateSelected!.stateName },\n { key: 'insurance', value: null }\n ],\n true\n );\n\n }\n }\n return;\n }\n\n const { data } = resp;\n\n let { error, ...op } = data;\n\n let info: IInsurance[] = Object.values(op);\n\n this.insurances.push(info);\n this.cotizadorService.insurnaces.next(this.insurances);\n const insurance = InsurancesDic.find(\n (ele) => ele.key === info[0]!.insurance\n );\n if (this.insuranceSelected.insurance === undefined) {\n this.insuranceSelected.data = info;\n this.insuranceSelected.insurance = insurance;\n this.cotizadorService.insuranceDic.next(insurance!);\n this.getServicesPlus();\n this.setDataDeadline([], this.firtsCharge ? (this.cpStorage===null ? true : this.secureLoad ? true : false ) : true);\n this.firtsCharge = false;\n }\n }\n\n\n public resultOfRequestNotSuccess() {\n this.suma = this.insurances.length;\n if (this.completedResponses === this.totalInsuranceResponses && this.suma === 0) {\n /* this.dataService.setQuoterData(null);\n this.disable = false;\n this.notInsurances?.nativeElement.scrollIntoView({\n block: 'center',\n behavior: 'smooth',\n });\n this.dataService.sendSharedFunction(true); */\n return;\n } else {\n this.dataService.sendSharedFunction(false);\n return false;\n\n }\n }\n\n public insuranceTypeSelect(value: any) {\n this.valueInsuranceType = value;\n this.setDataDeadline(\n [{ key: 'insuranceType', value: this.valueInsuranceType }],\n true\n );\n }\n\n public substituteCarSelect(value: any) {\n this.valueSubstituteCar = value;\n this.getServicesPlus();\n this.setDataDeadline(\n [{ key: 'typeSustituteCar', value: this.valueSubstituteCar }],\n true\n );\n }\n\n public kmSelect(value: any) {\n this.defaultKm = value;\n \n const km = Number(value.split(',').join(''));\n this.defaultValueKm = km;\n \n this.getServicesPlus();\n this.dataService.setKm(km); \n this.setDataDeadline(\n [{ key: 'km', value: this.defaultValueKm }],\n true\n );\n }\n\n public checkIncomesChanges(value: boolean) {\n this.customerTypeId = value ? 'B' : 'CLIENTE SIN';\n this.getHitchRange();\n }\n\n public selectAnnualPaymentMonth(monthIndex: number, flagChangeData: boolean) {\n this.valueAnnuityPaymentMonth = monthIndex;\n this.setDataDeadline(\n [\n { key: 'annuityPaymentMonth', value: this.valueAnnuityPaymentMonth }\n ],\n flagChangeData\n );\n }\n\n public stateSelect(state: State, flagChangeData: boolean) {\n this.stateSelected = state;\n const { idTip, year, priceWithIva } = this.car;\n this.resetProperties();\n this.setDataDeadline(\n [\n { key: 'cpTip', value: this.codePostal },\n { key: 'stateId', value: this.stateSelected.id },\n { key: 'stateName', value: this.stateSelected.stateName }\n ],\n this.insuranceSelected.insurance?.value!==undefined ? flagChangeData : false\n );\n\n this.insuranceRequest = {\n cpTip: this.codePostal,\n idState: this.stateSelected.id,\n priceWithIva,\n insurance: InsurancesEnum.QUALITAS,\n idTip,\n year,\n quoterType: this.productType,\n };\n \n const requestQualitas = {\n ...this.insuranceRequest,\n insurance: InsurancesEnum.QUALITAS,\n };\n const requestGNP = {\n ...this.insuranceRequest,\n insurance: InsurancesEnum.GNP,\n }; \n \n this.qualitas = this.cotizadorService\n .getCreditInsuranceInfo(requestQualitas)\n .subscribe(async (resp) => {\n this.completedResponses += 1; \n this.firstResponse(resp);\n }, (err) => {\n console.log(err);\n });\n \n this.gnp = this.cotizadorService\n .getCreditInsuranceInfo(requestGNP)\n .subscribe(async (resp) => {\n this.completedResponses += 1;\n this.firstResponse(resp);\n }, (err) => {\n console.log(err);\n });\n\n }\n\n private setDataDeadline(dataChange: any, flagChangeData: boolean) {\n const idTemp = this.dataQuoter?.carId || 0;\n const idCar = this.car?.id || 0;\n if (flagChangeData) {\n \n if (this.dataQuoter) {\n dataChange.forEach((item: any) => {\n this.dataQuoter[item.key] = item.value;\n });\n\n if (idTemp !== idCar) {\n this.dataQuoter.carId = idCar;\n }\n\n this.dataQuoter.quoterType = this.productType;\n this.dataQuoter.insurance = this.insuranceSelected.insurance?.value;\n this.dataQuoter.cpTip = this.codePostal;\n this.dataQuoter.stateId = this.stateSelected?.id;\n this.dataQuoter.stateName = this.stateSelected?.stateName;\n } else {\n // cpTip, stateId, stateName\n this.dataQuoter = {\n carId: this.car.id,\n cpTip: this.codePostal,\n customerTypeId: this.customerTypeId,\n insurance: this.insuranceSelected.insurance?.value,\n insuranceType: this.valueInsuranceType,\n km: this.defaultValueKm,\n protectionPlus: this.flagProtectionPlus,\n stateId: this.stateSelected?.id,\n stateName: this.stateSelected?.stateName,\n substituteCar: this.flagSubstituteCar,\n typeSustituteCar: this.valueSubstituteCar,\n userId: this.userId,\n quoterType: this.productType,\n codePromo: this.codePromo,\n includeMaintenance: this.flagMaintenance,\n includeGps: this.flagGps,\n includeAnnuities: this.flagAnual,\n annuityPaymentMonth: this.valueAnnuityPaymentMonth,\n downPayment: this.valueHitch,\n annuity: this.annuityValue,\n pdvID: 1,\n ballon: this.valueBallon / 100\n };\n }\n\n if (this.codePostal!=='') {\n this.dataService.setQuoterData(this.dataQuoter);\n \n const showTourProduct = this.securityService.decryptData(localStorage.getItem('tourProduct'));\n if (!showTourProduct) {\n //? SHOW MODAL\n\n\n this.showAlertTour();\n // setTimeout(() => {\n // this.tourService.start();\n // }, 1000);\n }\n\n }\n this.interactionUser() \n }\n }\n\n public showAlertTour(){\n const dialogLogin = this.modalService.openAlert(\n {\n title: '¡Bienvenid@ al nuevo cotizador de Crédito BitCar!',\n content: 'Haz click en Iniciar para mostrarte como utilizarlo',\n btnAction0: 'Iniciar',\n btnAction2: 'No, gracias',\n icon: Icons.none,\n idBtnAction1: `boton-tour-producto-${this.templateSuffix !== '' ? '-b' : ''}`,\n },\n false\n );\n dialogLogin.afterClosed().subscribe((result) => {\n if (result) {\n this.tourService.start();\n }else{\n localStorage.setItem(\n 'tourProduct',\n this.securityService.encryptData(true, false)\n );\n }\n });\n }\n\n compare() {\n if (this.userId === '') {\n this.alertLogin('Para comparar autos por favor inicia sesión o registrate');\n } else {\n const {\n idQuoter,\n concept,\n period,\n monthlyPayment,\n initialPayment,\n depositIncome,\n downPayment,\n annuity,\n finalRate,\n ballon,\n cat\n } = this.deadlineSelect;\n const { priceWithIva, subBrand, brand } = this.car;\n const { stateName } = this.stateSelected!;\n const insuranceName = this.insuranceSelected.insurance?.key;\n const dataEncrypt = {\n ...this.dataQuoter,\n stateName,\n idQuoter,\n deadlineConcept: concept,\n deadlinePeriod: period,\n monthlyPayment,\n initialPayment,\n depositIncome,\n priceWithIva,\n subBrand,\n brand,\n insuranceName,\n downPayment,\n isCredit:true,\n annuity,\n finalRate:finalRate.finalRate,\n cat\n };\n const urlHash = this.securityService.encryptData(dataEncrypt, false);\n this.router.navigate(['/comparar-unidad'], {\n queryParams: { quote: urlHash },\n });\n }\n }\n\n public preauthorize() {\n if (this.userId === '') {\n this.alertLogin(\n 'Por favor inicia sesión o registrate para continuar con tu aprobación'\n );\n } else {\n this.sendPreauthorize();\n }\n }\n\n public applyCode() {\n this.disable = true;\n this.catalogsService.validateCreditCodePromo(this.codePromo).subscribe({\n next: (res) => {\n this.setDataDeadline(\n [{ key: 'codePromo', value: this.codePromo }],\n true\n );\n this.modalService.openAlert(\n {\n title: 'Código de promoción aplicado exitosamente',\n content: 'Verás reflejado el ajuste de tu mensualidad en la tabla de planes.',\n btnAction1: 'Entendido',\n btnAction2: null,\n icon: Icons.success,\n idBtnAction1: null,\n idBtnAction2: null,\n },\n false\n );\n this.codeStatus = 'valid';\n },\n error: (err) => {\n this.disable = false;\n let _error = err.error.userError;\n if (_error.includes('válido')) {\n this.codeStatus = 'invalid';\n } else if (_error.includes('vigencia')) {\n this.codeStatus = 'novalidity';\n } else if (_error.includes('inactivo')) {\n this.codeStatus = 'inactive';\n }\n },\n });\n }\n\n public changeCode() {\n this.codePromo = '';\n this.codeStatus = '';\n this.document.getElementById('inputCodigo')?.focus();\n }\n\n public keyupInputCode() {\n if (this.codeStatus === 'valid' || this.codeStatus === 'invalid')\n this.codeStatus = '';\n }\n\n public keyupInputCodePostal( event:any ) {\n if (event.value.length === 5 && !this.loadZip) {\n this.loadZip = true;\n this.codePostal = event.value;\n this.document.getElementById('inputCodigoPostal')?.blur();\n this.getZipCode(event.value);\n }\n }\n\n private alertLogin(text: string) {\n const { concept, period } = this.deadlineSelect;\n const dataEncrypt = {\n ...this.dataQuoter,\n deadlineConcept: concept,\n dealinePeriod: period,\n isAfin: false, // TODO: Check this\n origin: environment.templateSuffix !== '' ? 'B' : 'A'\n };\n localStorage.setItem(\n 'dataQuote',\n this.securityService.encryptData(dataEncrypt, false)\n );\n const dialogLogin = this.modalService.openAlert(\n {\n title: '¡Aviso!',\n content: text,\n btnAction1: 'Crear Cuenta',\n btnAction2: 'Iniciar Sesión',\n icon: Icons.info,\n idBtnAction1: `boton-aviso-crear-cuenta${this.templateSuffix !== '' ? '-b' : ''}`,\n idBtnAction2: `boton-aviso-iniciar-sesion${this.templateSuffix !== '' ? '-b' : ''}`,\n },\n false\n );\n dialogLogin.afterClosed().subscribe((result) => {\n localStorage.setItem(\n 'flowType',\n this.templateSuffix === '' ? 'A' : 'B'\n );\n\n if (result === false) this.keycloakService.login({\n redirectUri: window.location.href\n });\n\n if (result === true) this.keycloakService.register({\n redirectUri: window.location.href\n });\n });\n }\n\n public sendPreauthorize() {\n const request = {\n quoterId: this.deadlineSelect.idQuoter,\n carId: this.car.id,\n concept: this.deadlineSelect.concept,\n period: this.deadlineSelect.period,\n depositIncome: 0,\n idKeycloak: this.dataService.getIdKeycloak(),\n priceWithIva: this.car.priceWithIva,\n monthlyPayment: this.deadlineSelect.monthlyPayment,\n update: false,\n };\n\n this.cotizadorService.preauthorize(request).subscribe((res) => {\n if (\n res.maxPaymentCapacity &&\n res.maxPaymentCapacity < this.deadlineSelect.monthlyPayment\n ) {\n const msg =\n 'Lo sentimos, el producto que seleccionaste sobrepasa la capacidad de pago máxima que te hemos asignado. Por favor selecciona otra opción';\n this.modalService.showAlertWithoutIds(\n msg,\n Icons.error,\n false,\n '¡Aviso!'\n );\n return;\n }\n\n let quoterIdPrevius = res.data._source\n ? res.data._source.quoterId\n : res.data.quoterId;\n\n if (this.deadlineSelect.idQuoter === quoterIdPrevius)\n this.router.navigate(['/genera-oportunidad']);\n else\n this.processExists(res.data._source.carId, request, res.data._source);\n });\n }\n\n private processExists(idCarPrevius: any, request: any, client: any) {\n this.catalogsService.getQuoteCarById(idCarPrevius).subscribe((resCar) => {\n let carPrevius = resCar.data.hits.hits[0]._source;\n const hasHistorial = client?.E7?.data?.errors && (client?.E7?.data?.errors[0]?.cveError === ErrorBuro.NO_HISTORIAL)\n\n const dialogRef = this.modalService.openAlert(\n {\n title: '¡Aviso!',\n content: hasHistorial\n ? `No cuentas con historial crediticio y es requerido para poder continuar con el proceso. Gracias por tu preferencia.`\n : `Existe un proceso de pre aprobación para tu ${carPrevius.brand} ${carPrevius.subBrand}, ¿Lo quieres sustituir?`,\n btnAction1: hasHistorial ? 'Entendido' : 'Si, lo quiero sustituir',\n btnAction2: hasHistorial ? null : 'No, ir a mi ultimo paso',\n icon: Icons.info,\n idBtnAction1: hasHistorial ? `boton-aviso-no-historial` : `boton-aviso-quiero-sustituir$`,\n idBtnAction2: hasHistorial ? null : `boton-aviso-ir-ultimo-paso`,\n },\n true\n );\n dialogRef.afterClosed().subscribe((result) => {\n if (hasHistorial) {\n this.router.navigate(['/home']);\n return;\n }\n if (result) {\n if (canNotPreauth(client)) {\n const msg =\n 'Tu cotización actual está en un paso que no se puede sustituir. Contáctanos para obtener más ayuda';\n this.modalService.showAlertWithoutIds(msg, Icons.error, false, '');\n return;\n }\n\n request.update = true;\n this.dataService.setUpdatePreauthorize(true);\n this.cotizadorService.preauthorize(request).subscribe((resUpdate) => {\n if (resUpdate.status === 200)\n this.router.navigate(['/genera-oportunidad']);\n });\n } else this.router.navigate(['/genera-oportunidad']);\n });\n });\n }\n\n private scrollToResume() {\n if (this.screenWidth > 767) {\n this.contentResume?.nativeElement.scrollIntoView({\n block: 'center',\n behavior: 'smooth',\n });\n }\n }\n\n public interactionUser() {\n this.dataService.setInteractionUserPanel(true);\n if (this.screenWidth <= 770 && this.stateSelected?.stateName===undefined) {\n this.zipContent?.nativeElement.scrollIntoView({\n block: 'center',\n behavior: 'smooth',\n });\n }\n }\n\n private destroyObservableUrlParams() {\n this.subscriptionUrlParams?.unsubscribe();\n }\n\n public validateBetter() {\n const isComplete = this.completedResponses === this.totalInsuranceResponses;\n const isMoreIns = this.insurances.length > 1;\n\n if (isComplete && isMoreIns) {\n this.compareInsurances();\n return this.insuranceBetter.key !== this.insurances[0][0].insurance;\n }\n return false;\n }\n\n private compareInsurances() {\n if (this.insurances.length === 0) {\n return;\n }\n try {\n const newArr = this.insurances.map((ele) =>\n ele.find((plazo) => plazo.plazo === '36')\n );\n let result = newArr.reduce((res, obj) =>\n obj!.cost < res!.cost ? obj : res\n );\n this.insuranceBetter = this.findNewBetter(result!); \n } catch (error) {\n console.log(error)\n }\n \n }\n\n private findNewBetter(insuranceToCompare: IInsurance) {\n return InsurancesDic.find(\n (ele) => ele.key === insuranceToCompare.insurance\n )!;\n }\n\n get productType(): string {\n const procutType = (this.activatedRoute.snapshot.params['producto'] ?? 'TRADITIONAL') as string;\n return procutType.toUpperCase();\n }\n\n executeAction(plazo:any) {\n if (this.productType === 'BALLON') {\n if(this.ballonCeil != this.car[`ballon${plazo}`]*100){\n this.ballonCeil = this.car[`ballon${plazo}`]*100; \n this.getHitchRange(); \n } \n }\n }\n \n}\n","
\n
\n
939}\">\n \n
\n\n \n\n
\n
\n \n
\n\n
\n \n
\n
\n\n
\n
\n \n
\n
\n

Código promocional

\n
\n
\n Código de promoción no válido. El código de promoción que ingresaste no existe.\n
\n
\n Código de promoción sin vigencia. El código de promoción que ingresaste ha vencido.\n
\n
\n Código de promoción inactivo. El código de promoción que ingresaste se encuentra inactivo.\n
\n
\n
\n
\n \n \n check_circle\n \n\n
\n \n
\n
\n
\n \n Cambiar código\n cached\n \n
\n
\n
\n\n
\n \n
\n\n
\n\n \n
\n

{{ 'CREDIT.quoter.cp' | translate }}

\n
\n \n \n \n

{{stateSelected?.stateName}}

\n
\n
\n\n
\n\n
\n\n
\n\n

{{ 'CREDIT.quoter.hitch' | translate }}

\n\n
\n \n $ \n
\n
\n\n
\n\n\n \n \n
\n \n Incluir pagos anuales\n \n
\n \n
\n \n Mes:\n \n \n {{month.name}}\n \n \n \n \n
\n\n
\n \n $ \n
\n
\n\n \n
\n

Pago final

\n
\n \n  %\n
\n
\n
\n
\n\n \n \n \n
\n
Personaliza tu plan
\n
{{ showDetails ? 'Ocultar detalles' : 'Ver detalles' }}
\n
\n
\n
\n
\n \n PROTECCIÓN PLUS: {{personalizaStrappi?.proteccion_plus_text}}\n \"img-play\"\n\n \n
\n\n \n
\n \n AUTO SUSTITUTO: {{personalizaStrappi?.auto_sustituto_text}}\n \"img-play\"\n\n \n
\n
\n \n RASTREO BASE: Te brindamos la localización satelital de tu vehículo con acción\n en caso de robo\n \n
\n
\n \n MANTENIMIENTO: Incluye la cobertura de un determinado número de servicios de\n mantenimiento de carnet de acuerdo al kilometraje seleccionado.\n \n
\n \n
\n
\n
\n\n \n \n \n Protección Plus + ${{costProtectionPlus | number : '1.2-2'}} / mes\n \n \n \n Auto Sustituto + ${{costSubstituteCar}} / mes\n \n \n

Auto Sustituto

\n \n \n \n {{item.text}}\n \n \n
\n\n
\n \n Incluir rastreo base\n \n
\n\n \n
\n \n Incluir mantenimientos\n \n
\n
\n
\n \n \n {{ km }}\n Km\n \n \n
\n
\n \n\n
\n\n
\n\n \n
\n \n ¿Tienes forma de comprobar ingresos?\n \n \n {{checkIncome.label}}\n \n \n \n \n
\n
\n \n\n\n \n \n \n
\n
\n Seguro del auto: {{insuranceSelected.insurance?.key}}\n
\n
{{ showDetailsSecure ? 'Ocultar detalles' : 'Ver detalles' }}
\n
\n
\n
\n
\n \n DE CONTADO: Paga el monto total de tu póliza al inicio del contrato para reducir tu mensualidad.\n \n
\n
\n \n MULTIANUAL FINANCIADO: El monto total de tu póliza será financiado durante la duracción del plazo seleccionado.\n \n
\n
\n
\n\n
\n\n
\n \n \n \n \n {{insuranceType.name}}\n \n \n \n\n
\n \n
\n\n
\n \n El precio del seguro para este vehículo te será confirmado durante el proceso\n \n
\n\n
1 \">\n
\n \n
\n
\n

Hemos encontrado\n {{ validateBetter() ? ' una opción de aseguradora más barata' : ' otras opciones de aseguradora másbarata' }}\n para ti.

\n
\n
\n\n
\n Estamos buscando las mejores opciones de aseguradoras para ti \n \n
\n\n
\n \n Lamentablemente no hay aseguradoras en la Entidad seleccionada para este auto.\n Te invitamos a contactarnos vía correo o WhatsApp para hacerte llegar de forma manual la cotización o\n bien, a cotizar otra unidad\n \n
\n \n \n
\n\n
\n
\n \n
\n
\n \n
\n \n
\n\n {\n return '$' + value.toLocaleString('en');\n },\n };\n optionsPurchaseValue: Options = {\n floor: this.purchaseValueFloor,\n ceil: this.purchaseValueCeil,\n translate: (value: number, label: LabelType): string => {\n return '$' + value.toLocaleString('en');\n },\n };\n dataKm: any[] = [];\n defaultValueKm = environment.templateSuffix == '' ? 20000 : 30000;\n valueKmMin: number = 0;\n valueKmMax: number = 0;\n optionsKm: Options = {\n floor: this.valueKmMin,\n ceil: this.valueKmMax,\n ticksArray: [],\n showTicks: true,\n step: 20000,\n translate: (value: number, label: LabelType): string => {\n return value.toLocaleString('en');\n },\n };\n KmArray: any[] = [];\n defaultKm = '0';\n\n customerTypeId: string = 'B';\n defaultState!: any;\n stateSelected!: any;\n insuranceSelected: IInsuranceSelected = {\n data: [],\n insurance: InsurancesDic[4],\n };\n\n insuranceRequest!: IInsuranceRequest;\n insurances: IInsurance[][] = [];\n completedResponses = 0;\n insuranceBetter: IInsuranceDic = InsurancesDic[4];\n suma: number = 0;\n\n qualitas!: any;\n atlas!: any;\n gnp!: any;\n\n\n flagProtectionPlus: boolean = false;\n flagSubstituteCar: boolean = false;\n flagMaintenance: boolean = environment.templateSuffix !== '' ? true : false;\n costProtectionPlus: number = 0;\n costSubstituteCar: number = 0;\n loadingServicesPlus: boolean = true;\n valueSubstituteCar: number = 4;\n optionsSubstituteCar = SUSTITUECAROPTS;\n\n dataQuoter: any;\n subscriptionAllDeadlineSelect!: Subscription;\n subscriptionDeadlineSelect!: Subscription;\n subscriptionInteraction!: Subscription;\n deadlineSelect: any;\n allDeadlineSelect: any;\n isMaxAdvancedRent: any;\n isMaxPurchaseValue: any;\n userId: any = '';\n copyUrl: any = '';\n\n emailTip = emailTip;\n whatsTip = whatsTip;\n emailTipTo = emailTipTo;\n\n panelOpenState = false;\n showDetails = false;\n disable = true;\n\n screenSize = window.innerWidth;\n subscriptionScreen!: Subscription;\n subscriptionUrlParams!: Subscription;\n\n shareUrl = '';\n carTitle = '';\n\n screenWidth = window.innerWidth;\n\n clipboard!: Clipboard;\n bitlyService!: BitlyService;\n summaryService!: SummaryService;\n modalService: ModalService;\n strappiService: StrappiService;\n route: ActivatedRoute;\n keycloakService: KeycloakService;\n personalizaStrappi: any;\n\n codePromo: string = '';\n codeStatus: string = '';\n showCode: boolean = false;\n\n templateSuffix = environment.templateSuffix;\n\n myQuote: any;\n clickEventsubscription!: Subscription;\n\n tenPercentPrice!: number;\n securityService: SecurityService;\n\n flagNoSecure: boolean = false;\n isFlowB: boolean = false;\n\n selectedColorA: string = '';\n selectedColorB: string = '';\n selectedColorC: string = '';\n\n\n\n\n availableColorsA: string[] = [\n 'Azul Ártico',\n 'Azul Profundo',\n 'Blanco metálico',\n 'Blanco Perla',\n 'Gris Brillante',\n 'Negro Brillante',\n 'Rojo Rubí'\n ];\n availableColorsB: string[] = [];\n availableColorsC: string[] = [];\n registrationState: string = '';\n registrationStates: any[] = ['SAN LUIS POTOSÍ'];\n\n constructor(\n private catalogsService: CatalogsService,\n private cotizadorService: CotizadorService,\n public dialog: MatDialog,\n private dataService: DataService,\n private router: Router,\n @Inject(DOCUMENT) private document: any,\n private injector: Injector\n ) {\n this.userId = this.dataService.getIdKeycloak();\n this.clipboard = this.injector.get(Clipboard);\n this.bitlyService = this.injector.get(BitlyService);\n this.summaryService = this.injector.get(SummaryService);\n this.modalService = this.injector.get(ModalService);\n this.strappiService = this.injector.get(StrappiService);\n this.route = this.injector.get(ActivatedRoute);\n this.keycloakService = this.injector.get(KeycloakService);\n this.securityService = this.injector.get(SecurityService);\n this.clickEventsubscription = this.dataService.getSharedFunction().subscribe((data) => {\n if (data === 'preauthorize') {\n this.preauthorize();\n }\n });\n\n this.isFlowB = this.templateSuffix !== '' ? true : false;\n }\n\n ngOnInit(): void {\n setTimeout(() => {\n this.getUrlParams();\n }, 1500);\n\n this.subscriptionDeadlineSelect = this.dataService\n .getDeadlineSelect()\n .subscribe((resSelect: object) => {\n try {\n this.deadlineSelect = resSelect;\n this.dataService.setShowShareLink(false);\n if (this.deadlineSelect.isSelected) {\n setTimeout(() => {\n this.scrollToResume();\n }, 100);\n }\n } catch (error) { }\n });\n\n this.subscriptionAllDeadlineSelect = this.dataService\n .getAllDeadlines()\n .subscribe((resSelect: object) => {\n try {\n this.allDeadlineSelect = resSelect;\n } catch (error) { }\n });\n\n this.tenPercentPrice = this.dataService.getTenPercentPrice();\n this.subscriptionInteraction = this.dataService\n .getInteractionUserPanel()\n .subscribe((resp) => (this.disable = resp));\n this.subscriptionScreen = this.dataService\n .getScreenSize()\n .subscribe((resp) => (this.screenSize = resp));\n\n this.strappiService.getPlanPage().subscribe((res: any) => {\n this.personalizaStrappi = res.panel_config;\n });\n this.availableColorsB = [...this.availableColorsA];\n this.availableColorsC = [...this.availableColorsA];\n }\n\n reloadCurrentRoute() {\n let currentUrl = this.router.url;\n this.router.navigateByUrl('/', { skipLocationChange: true }).then(() => {\n this.router.navigate([currentUrl]);\n });\n }\n\n async ngOnChanges(changes: any) {\n if (\n changes.car &&\n changes.car.currentValue?.id !== changes.car.previousValue?.id\n ) {\n this.dataQuoter = null;\n this.interactionUser();\n this.getUrlParams();\n this.getState();\n this.getKilometerChange();\n }\n }\n\n async getUrlParams() {\n this.subscriptionUrlParams = this.route.queryParams.subscribe(async (params) => {\n\n let paramsQuote = params['quote']\n ? this.securityService.decryptData(params['quote'])\n : null;\n\n let _idkeycloak = await this.dataService.getIdKeycloak();\n if (paramsQuote?.origin === 'A' && (_idkeycloak.includes('hunnur') || _idkeycloak.includes('ford'))) {\n paramsQuote = null; \n this.router.navigate(['/buscador'], { queryParams: {} });\n return;\n }\n if (paramsQuote?.origin === 'B' && !(_idkeycloak.includes('hunnur') || _idkeycloak.includes('ford'))) {\n paramsQuote = null; \n this.router.navigate(['/buscador'], { queryParams: {} });\n return;\n }\n\n this.tenPercentPrice = this.dataService.getTenPercentPrice();\n\n if (paramsQuote.typeSustituteCar) {\n this.substituteCarSelect(paramsQuote.typeSustituteCar);\n }\n\n if (paramsQuote.stateId) {\n this.defaultState = this.states.find(\n (ele) => ele.id === paramsQuote.stateId\n );\n\n console.log('defaultState-A', this.defaultState);\n\n this.dataQuoter = {\n ...this.dataQuoter,\n stateId: this.defaultState.idTip,\n stateName: this.defaultState.stateName,\n };\n\n this.stateSelect(this.defaultState, true);\n }\n\n if (paramsQuote.customerTypeId) {\n this.customerTypeId = paramsQuote.customerTypeId;\n }\n\n if (paramsQuote.insurance) {\n this.insuranceSelected.insurance = InsurancesDic.find(\n (ele) => ele.value === paramsQuote.insurance\n );\n this.setDataDeadline(\n [\n {\n key: 'insurance',\n value: this.insuranceSelected.insurance?.value,\n },\n ],\n true\n );\n }\n\n if (paramsQuote.km) {\n const parse = paramsQuote.km.toLocaleString('en');\n this.defaultKm = parse;\n this.getMaximumRi({ value: parse }, paramsQuote.purchaseValue || null);\n }\n\n if (paramsQuote.ri) {\n this.rentChange({ value: paramsQuote.ri });\n }\n\n if (paramsQuote.purchaseValue) {\n this.purshaseValueChange({ value: paramsQuote.purchaseValue });\n }\n\n if (paramsQuote.protectionPlus) {\n this.flagProtectionPlus = paramsQuote.protectionPlus;\n this.changeToggle(1, { checked: paramsQuote.protectionPlus });\n }\n\n if (paramsQuote.substituteCar) {\n this.flagSubstituteCar = paramsQuote.substituteCar;\n this.changeToggle(2, { checked: paramsQuote.substituteCar });\n }\n\n if (paramsQuote.includeMaintenance) {\n this.flagMaintenance = paramsQuote.includeMaintenance;\n this.changeToggle(3, { checked: paramsQuote.includeMaintenance });\n }\n\n // SEtea los valores de selección de colores, solo aplica flujo B - Ford\n if (this.isFlowB) {\n if (paramsQuote.colors) {\n this.selectedColorA = paramsQuote.colors.ColorA;\n this.selectedColorB = paramsQuote.colors.ColorB;\n this.selectedColorC = paramsQuote.colors.ColorC;\n\n this.dataQuoter = {\n ...this.dataQuoter,\n colors: {\n ColorA: this.selectedColorA,\n ColorB: this.selectedColorB,\n ColorC: this.selectedColorC,\n },\n };\n \n }\n\n if (paramsQuote.registrationState) {\n this.registrationState = paramsQuote.registrationState;\n\n this.dataQuoter = {\n ...this.dataQuoter,\n registrationState: this.registrationState,\n };\n }\n\n if (paramsQuote.stateId) {\n\n this.defaultState = this.states.find(\n (ele) => ele.id === paramsQuote.stateId\n );\n\n this.stateSelect(this.defaultState, true);\n console.log('defaultState-B', this.defaultState);\n \n this.dataQuoter = {\n ...this.dataQuoter,\n stateId: this.defaultState.idTip,\n stateName: this.defaultState.stateName,\n };\n\n }\n\n }\n\n });\n }\n\n async getState() {\n const resp = await firstValueFrom(this.catalogsService.getStates());\n // FORD: Campaign\n this.states = !this.isFlowB ? resp.data.filter((item: any) => item.idDaVinci !== 99) : resp.data.filter(state => ['GUANAJUATO', 'CHIHUAHUA', 'CIUDAD DE MÉXICO', 'SONORA'].includes(state.stateName));\n this.defaultState = this.states.find((ele) => ele.id === 9);\n this.stateSelect(this.defaultState, false);\n }\n\n rentChange(event: any) {\n this.valueRi = event.value;\n if (Number(this.valueRi) || this.valueRi === 0) {\n this.setDataDeadline([{ key: 'ri', value: event.value }], true);\n } else {\n this.valueRi = 0;\n }\n }\n\n purshaseValueChange(event: any) {\n this.dataService.setDeadlineSelect(null);\n this.purchaseValue = event.value;\n this.tenPercentPrice = this.dataService.getTenPercentPrice();\n let quoterType = this.selectFlow();\n this.getServicesPlus();\n this.setDataDeadline([{ key: 'purchaseValue', value: event.value }, { key: 'quoterType', value: quoterType }], true);\n }\n\n getKilometerChange() {\n this.catalogsService.getRangeKm().subscribe((res) => {\n let filter = res.data.filter((item) => item.status);\n filter.forEach((element: any) => {\n this.KmArray.push(element.range.toLocaleString('en'));\n });\n\n this.defaultKm = !this.isFlowB ? this.KmArray[0] : this.KmArray[1];\n this.defaultValueKm = +this.defaultKm.split(',').join('');\n this.dataService.setKm(this.defaultValueKm);\n this.getMaximumRi(null, null);\n });\n }\n\n getMaximumRi(event: any, purchaseValue: number | null) {\n if (event) {\n let prevSelectedKm = this.dataService.getKm();\n const km = +event.value.split(',').join('');\n this.valueKmMin = km;\n this.defaultValueKm = km;\n this.dataService.setKm(km);\n if (!this.validKm({ prevSelectedKm, km })) {\n return;\n }\n this.getServicesPlus();\n this.setDataDeadline([{ key: 'km', value: this.defaultValueKm }], true);\n }\n this.interactionUser();\n this.cotizadorService\n .getRenting(\n this.car.id,\n this.defaultValueKm,\n this.customerTypeId,\n this.selectFlow(),\n this.isFlowB ? 'B' : 'A'\n )\n .subscribe((res) => {\n this.rentPriceCeil = this.isFlowB ? res.ri24.toFixed(2) : res.ri48.toFixed(2);\n const newOptionsRentPrices: Options = Object.assign(\n {},\n this.optionsRent\n );\n newOptionsRentPrices.floor = this.rentPriceFloor;\n newOptionsRentPrices.ceil = this.rentPriceCeil;\n this.optionsRent = newOptionsRentPrices;\n });\n\n if (this.isAfin) {\n\n this.cotizadorService\n .getPurchaseValue(this.car.id, this.defaultValueKm)\n .subscribe((res) => {\n this.purchaseValueFloor = res.min;\n this.purchaseValueCeil = res.max;\n this.purchaseValue = this.purchaseValue ? this.purchaseValue : purchaseValue || this.purchaseValueFloor;\n const newOptionsPurchaseValue: Options = { ...this.optionsPurchaseValue };\n newOptionsPurchaseValue.floor = this.purchaseValueFloor;\n newOptionsPurchaseValue.ceil = this.purchaseValueCeil;\n this.optionsPurchaseValue = newOptionsPurchaseValue;\n this.setDataDeadline(\n [{ key: 'purchaseValue', value: this.purchaseValue }],\n Boolean(this.insuranceSelected.insurance?.value)\n );\n });\n }\n\n }\n\n keyupInputRi(event: any) {\n const valueRA = event.target.value;\n if (Number(valueRA)) {\n let value = parseInt(event.target.value.replace(/^0+/, ''));\n this.valueRi = value > this.rentPriceCeil ? this.rentPriceCeil : value;\n if (event.keyCode === 8) this.valueRi = 0;\n }\n }\n\n keyupInputPurchaseValue(event: any) {\n const valuePV = event.target.value;\n if (Number(valuePV)) {\n let value = parseInt(event.target.value.replace(/^0+/, ''));\n this.purchaseValue =\n value > this.purchaseValueCeil ? this.purchaseValueCeil : value;\n if (event.keyCode === 8) this.purchaseValue = 0;\n }\n }\n\n changeInputRi(event: any) {\n this.valueRi = parseInt(event.target.value);\n if (Number(this.valueRi) || this.valueRi === 0) {\n this.setDataDeadline([{ key: 'ri', value: this.valueRi }], true);\n } else {\n this.valueRi = 0;\n this.setDataDeadline([{ key: 'ri', value: this.valueRi }], true);\n }\n }\n\n changeInputPurchaseValue(event: any) {\n const valuePV = event.target.value;\n if (Number(valuePV) && valuePV > 0) {\n this.purchaseValue = parseInt(valuePV);\n this.tenPercentPrice = this.dataService.getTenPercentPrice();\n let quoterType = this.selectFlow();\n this.getServicesPlus();\n this.setDataDeadline(\n [{ key: 'purchaseValue', value: this.purchaseValue }, { key: 'quoterType', value: quoterType }],\n true\n );\n this.interactionUser();\n } else {\n this.purchaseValue = this.purchaseValueFloor;\n }\n }\n\n getServicesPlus() {\n this.loadingServicesPlus = true;\n this.cotizadorService\n .getServicePlus({\n carId: this.car.id,\n km: this.defaultValueKm,\n cTiD: this.customerTypeId,\n typeSuitCar: this.valueSubstituteCar,\n stateId: this.stateSelected ? this.stateSelected.idTip : null,\n insurance: this.insuranceSelected?.insurance?.value || null,\n cpTip: this.stateSelected.cpTip,\n quoterType: this.selectFlow(),\n flowType: this.isFlowB ? 'B' : 'A',\n })\n .subscribe({\n next: (res: any) => {\n this.costProtectionPlus = res.plusProtectionCost?.toFixed(2);\n this.costSubstituteCar = res.substituteCarCost?.toFixed(2);\n this.loadingServicesPlus = false;\n },\n error: (e) => {\n this.resetInsurance();\n }\n });\n }\n\n changeToggle(type: number, event: any) {\n let key;\n\n const typeKeyMap: { [key: number]: string } = {\n 1: 'protectionPlus',\n 2: 'substituteCar',\n 3: 'includeMaintenance'\n };\n\n key = typeKeyMap[type];\n\n if (this.dataService.getPeriod() === PERIODS.SIX_MONTHS && this.dataService.getKm() > KM_20) {\n const dialogLogin = this.modalService.openAlert(\n {\n icon: Icons.info,\n title: '',\n content: 'Por el momento no contamos con plazo de 60 meses y Mantenimientos preventivos para el kilometraje seleccionado. Por favor selecciona otro plazo disponible',\n btnAction1: 'Aceptar',\n idBtnAction1: `boton-aviso-crear-cuenta${this.isFlowB ? '-b' : ''}`,\n idBtnAction2: `boton-aviso-iniciar-sesion${this.isFlowB ? '-b' : ''}`,\n },\n false\n );\n dialogLogin.afterClosed().subscribe({ next: () => this.flagMaintenance = false, error: () => this.flagMaintenance = false })\n\n } else {\n this.interactionUser();\n this.setDataDeadline([{ key, value: event.checked }], true);\n }\n\n }\n\n openDialog() {\n const dialogRef = this.dialog.open(ModalComponent, {\n data: {\n insuranceSelected: this.insuranceSelected.insurance,\n insuranceBetter: this.insuranceBetter,\n isAfin: this.isAfin,\n },\n panelClass: 'custom-modalbox',\n disableClose: true,\n });\n\n dialogRef.afterClosed().subscribe((result) => {\n if (result && this.insuranceSelected.insurance !== result.insurance) {\n this.insuranceSelected = result;\n this.setDataDeadline(\n [\n {\n key: 'insurance',\n value: this.insuranceSelected.insurance?.value,\n },\n ],\n true\n );\n this.interactionUser();\n }\n });\n }\n\n resetProperties() {\n this.dataService.setDeadlineSelect(null);\n this.qualitas?.unsubscribe();\n this.atlas?.unsubscribe();\n this.gnp?.unsubscribe();\n this.insurances = [];\n this.insuranceSelected = {\n data: [],\n insurance: undefined,\n };\n this.completedResponses = 0;\n this.cotizadorService.insurnaces.next([]);\n this.cotizadorService.insuranceDic.next(InsurancesDic[4]);\n }\n\n\n /**\n * Se utiliza unicamente cuando en service-plus ocurre un error.\n * Puede existir una aseguradora pero puede que los montos de la prima no sean adecuados, \n * esto devolvera un error y reseteara los datos que ya fueron cargados.\n * @memberof ConfigurationPanelComponent\n */\n resetInsurance() {\n this.dataService.setDeadlineSelect(undefined); //set loading true;\n this.qualitas?.unsubscribe();\n this.atlas?.unsubscribe();\n this.insurances = [];\n this.insuranceSelected = {\n data: [],\n insurance: undefined,\n };\n this.suma = 0;\n this.loadingServicesPlus = false;\n }\n\n firstResponse(resp: any) {\n if (!resp.hasOwnProperty('data')) {\n if (this.completedResponses === 3) {\n if (this.suma === 0) {\n this.getServicesPlus();\n this.setDataDeadline(\n [\n { key: 'cpTip', value: this.stateSelected.cpTip },\n { key: 'stateId', value: this.stateSelected.idTip },\n { key: 'stateName', value: this.stateSelected.stateName },\n { key: 'insurance', value: null }\n ],\n true\n );\n\n }\n this.loadingServicesPlus = false;\n }\n return;\n }\n\n const { data } = resp;\n\n let { error, ...op } = data;\n\n let info: IInsurance[] = Object.values(op);\n\n let amount = this.isAfin ? 5 : 4;\n\n // FORD: Campaign\n info.length = this.isFlowB ? 5 : info.length;\n\n if (info.length !== amount) {\n return;\n }\n\n this.insurances.push(info);\n this.cotizadorService.insurnaces.next(this.insurances);\n const insurance = InsurancesDic.find(\n (ele) => ele.key === info[0]!.insurance\n );\n if (this.insuranceSelected.insurance === undefined) {\n this.insuranceSelected.data = info;\n this.insuranceSelected.insurance = insurance;\n this.cotizadorService.insuranceDic.next(insurance!);\n this.getServicesPlus();\n this.setDataDeadline(\n [\n { key: 'cpTip', value: this.stateSelected.cpTip },\n { key: 'stateId', value: this.stateSelected.idTip },\n { key: 'stateName', value: this.stateSelected.stateName },\n { key: 'insurance', value: this.insuranceSelected.insurance?.value }\n ],\n true\n );\n }\n }\n\n resultOfRequestNotSuccess() {\n if (this.isFlowB) {\n if ((!this.selectedColorA || !this.selectedColorB || !this.selectedColorC || !this.registrationState)) {\n return true;\n }\n } else {\n this.suma = this.insurances.length;\n if (this.completedResponses === 3 && this.suma === 0) {\n return;\n } else {\n this.dataService.sendSharedFunction(false);\n return false;\n\n }\n\n }\n return false;\n }\n\n\n substituteCarSelect(value: any) {\n this.valueSubstituteCar = value;\n this.getServicesPlus();\n this.setDataDeadline(\n [{ key: 'typeSustituteCar', value: this.valueSubstituteCar }],\n true\n );\n }\n\n /**\n * If Flow is B then call Function to Return Insurance for Ford Customized.\n * FORD: Campaign\n * @memberof ConfigurationPanelComponent\n */\n getInsuranceFordB() {\n const requestQualitas = {\n idState: 9,\n cpTip: 54769,\n idTip: this.car.id,\n year: this.car.year,\n priceWithIva: this.car.priceWithIva,\n insurance: InsurancesEnum.QUALITAS,\n quoterType: this.selectFlow(),\n flowType: 'B',\n version: this.car.version,\n userId: this.userId\n };\n\n this.qualitas = this.cotizadorService\n .getInsuranceInfo(requestQualitas)\n .subscribe({\n next: (resp) => {\n this.completedResponses = 3;\n this.firstResponse(resp);\n },\n error: (err) => {\n console.error(err);\n }\n });\n }\n\n stateSelect(state: State, flagChangeData: boolean) {\n this.stateSelected = state;\n const { idTip, year, priceWithIva } = this.car;\n this.resetProperties();\n\n if (!this.isFlowB) {\n this.insuranceRequest = {\n cpTip: this.stateSelected.cpTip,\n idState: this.stateSelected.idTip,\n priceWithIva,\n insurance: InsurancesEnum.QUALITAS,\n idTip,\n year,\n quoterType: this.selectFlow(),\n // Estos tres parametros unicamente se utilizan para flujo B espcificamente para FORD: Campaign\n // Es para diferenciar el costo del seguro por version y el tipo de flujo\n flowType: 'A',\n version: this.car.subBrand,\n userId: this.userId\n };\n\n const requestQualitas = {\n ...this.insuranceRequest,\n insurance: InsurancesEnum.QUALITAS,\n };\n \n const requestAtlas = {\n ...this.insuranceRequest,\n insurance: InsurancesEnum.ATLAS,\n };\n\n const requestGNP = {\n ...this.insuranceRequest,\n insurance: InsurancesEnum.GNP,\n };\n\n this.qualitas = this.cotizadorService\n .getInsuranceInfo(requestQualitas)\n .subscribe({\n next: (resp) => {\n this.completedResponses += 1;\n this.firstResponse(resp);\n },\n error: (err) => {\n console.error(err);\n }\n });\n\n\n\n this.atlas = this.cotizadorService\n .getInsuranceInfo(requestAtlas)\n .subscribe({\n next: (resp) => {\n this.completedResponses += 1;\n this.firstResponse(resp);\n },\n error: (err) => {\n console.error(err);\n }\n });\n\n this.gnp = this.cotizadorService\n .getInsuranceInfo(requestGNP)\n .subscribe({\n next: (resp) => {\n this.completedResponses += 1;\n this.firstResponse(resp);\n },\n error: (err) => {\n console.error(err);\n }\n });\n } else {\n this.getInsuranceFordB();\n }\n\n }\n\n registrationStateSelect(value: string): void {\n this.registrationState = value;\n\n this.dataQuoter = {\n ...this.dataQuoter,\n registrationState: this.registrationState,\n };\n\n this.dataService.setQuoterData(this.dataQuoter);\n\n console.log('dataQuoter actualizado con estado de emplacamiento:', this.dataQuoter);\n }\n\n updateAvailableColors() {\n const usedColors = new Set([this.selectedColorA, this.selectedColorB]);\n\n this.availableColorsB = this.availableColorsA.filter(color => color !== this.selectedColorA);\n\n if (!this.availableColorsB.includes(this.selectedColorB)) {\n this.selectedColorB = '';\n }\n\n this.availableColorsC = this.availableColorsA.filter(color => !usedColors.has(color));\n\n if (!this.availableColorsC.includes(this.selectedColorC)) {\n this.selectedColorC = '';\n }\n\n this.dataQuoter = {\n ...this.dataQuoter,\n colors: {\n ColorA: this.selectedColorA || null,\n ColorB: this.selectedColorB || null,\n ColorC: this.selectedColorC || null,\n },\n };\n\n this.dataService.setQuoterData(this.dataQuoter);\n\n console.log('dataQuoter actualizado con colores:', this.dataQuoter);\n }\n\n setDataDeadline(dataChange: any, flagChangeData: boolean) {\n const idTemp = this.dataQuoter?.carId || 0;\n const idCar = this.car?.id || 0;\n let _includeEnganche = false;\n\n if (this.isFlowB) {\n _includeEnganche = this.valueRi === 0 ? false : true;\n }\n\n if (flagChangeData) {\n if (this.dataQuoter) {\n this.dataQuoter = {\n ...this.dataQuoter, includeEnganche: _includeEnganche\n };\n dataChange.forEach((item: any) => {\n this.dataQuoter[item.key] = item.value;\n });\n\n if (idTemp !== idCar) {\n this.dataQuoter.carId = idCar;\n }\n\n this.dataQuoter.quoterType = this.selectFlow();\n\n } else {\n this.dataQuoter = {\n carId: this.car.id,\n cpTip: this.stateSelected.cpTip,\n customerTypeId: this.customerTypeId,\n insurance: this.insuranceSelected.insurance?.value,\n km: this.defaultValueKm,\n protectionPlus: this.flagProtectionPlus,\n ri: this.valueRi,\n stateId: this.stateSelected.idTip,\n stateName: this.stateSelected.stateName,\n substituteCar: this.flagSubstituteCar,\n typeSustituteCar: this.valueSubstituteCar,\n userId: this.userId,\n purchaseValue: this.purchaseValue,\n quoterType: this.selectFlow(),\n codePromo: this.codePromo,\n includeMaintenance: this.flagMaintenance,\n includeEnganche: _includeEnganche,\n flowType: !this.isFlowB ? 'A' : 'B',\n };\n }\n\n this.dataService.setQuoterData(this.dataQuoter);\n this.interactionUser()\n }\n }\n\n checkRi = () => {\n if (this.isFlowB) {\n this.isMaxAdvancedRent = this.deadlineSelect?.initialPaymentDetail?.isMaxAdvancedRent;\n return this.isMaxAdvancedRent ? this.deadlineSelect?.initialPaymentDetail?.advancedRent : this.valueRi;\n } else {\n return this.valueRi;\n }\n };\n\n checkPurchaseValue = () => {\n this.isMaxPurchaseValue = this.isAfin\n ? !this.deadlineSelect?.isOriginalPurchaseValue\n : false;\n return this.isMaxPurchaseValue\n ? this.deadlineSelect?.purchaseValue\n : this.purchaseValue;\n };\n\n compare() {\n if (this.userId === '') {\n this.alertLogin('Para comparar autos por favor inicia sesión o registrate');\n } else {\n const {\n idQuoter,\n concept,\n period,\n monthlyPayment,\n initialPayment,\n depositIncome,\n } = this.deadlineSelect;\n const { priceWithIva, subBrand, brand } = this.car;\n const { stateName } = this.stateSelected;\n const insuranceName = this.insuranceSelected.insurance?.key;\n const dataEncrypt = {\n ...this.dataQuoter,\n stateName,\n idQuoter,\n deadlineConcept: concept,\n deadlinePeriod: period,\n monthlyPayment,\n initialPayment,\n depositIncome,\n priceWithIva,\n subBrand,\n brand,\n insuranceName,\n };\n const urlHash = this.securityService.encryptData(dataEncrypt, false);\n this.router.navigate(['/comparar-unidad'], {\n queryParams: { quote: urlHash },\n });\n }\n }\n\n preauthorize() {\n if (this.userId === '') {\n this.alertLogin(\n 'Por favor inicia sesión o registrate para continuar con tu aprobación'\n );\n } else {\n this.sendPreauthorize();\n }\n }\n\n applyCode() {\n this.disable = true;\n this.catalogsService.validateCodePromo(this.codePromo).subscribe({\n next: (res) => {\n this.setDataDeadline(\n [{ key: 'codePromo', value: this.codePromo }],\n true\n );\n this.modalService.openAlert(\n {\n title: 'Código de promoción aplicado exitosamente',\n content: 'Verás reflejado el ajuste de tu mensualidad en la tabla de planes.',\n btnAction1: 'Entendido',\n btnAction2: null,\n icon: Icons.success,\n idBtnAction1: null,\n idBtnAction2: null,\n },\n false\n );\n this.codeStatus = 'valid';\n },\n error: (err) => {\n this.disable = false;\n let _error = err.error.userError;\n if (_error.includes('válido')) {\n this.codeStatus = 'invalid';\n } else if (_error.includes('vigencia')) {\n this.codeStatus = 'novalidity';\n } else if (_error.includes('inactivo')) {\n this.codeStatus = 'inactive';\n\n }\n\n },\n });\n }\n\n changeCode() {\n this.codePromo = '';\n this.codeStatus = '';\n this.document.getElementById('inputCodigo')?.focus();\n }\n\n keyupInputCode() {\n if (this.codeStatus === 'valid' || this.codeStatus === 'invalid' || this.codeStatus === 'novalidity')\n this.codeStatus = '';\n }\n\n alertLogin(text: string) {\n const { concept, period } = this.deadlineSelect;\n const dataEncrypt = {\n ...this.dataQuoter,\n deadlineConcept: concept,\n dealinePeriod: period,\n isAfin: this.isAfin,\n origin: this.isFlowB ? 'B' : 'A'\n };\n localStorage.setItem('dataQuote', this.securityService.encryptData(dataEncrypt, false));\n const dialogLogin = this.modalService.openAlert(\n {\n title: '¡Aviso!',\n content: text,\n btnAction1: 'Crear Cuenta',\n btnAction2: 'Iniciar Sesión',\n icon: Icons.info,\n idBtnAction1: `boton-aviso-crear-cuenta${this.isFlowB ? '-b' : ''}`,\n idBtnAction2: `boton-aviso-iniciar-sesion${this.isFlowB ? '-b' : ''}`,\n },\n false\n );\n dialogLogin.afterClosed().subscribe((result) => {\n localStorage.setItem('flowType', this.isFlowB ? 'B' : 'A');\n\n if (result === false) this.keycloakService.login({\n redirectUri: window.location.href\n });\n\n if (result === true) this.keycloakService.register({\n redirectUri: window.location.href\n });\n });\n }\n\n sendPreauthorize() {\n const request = {\n quoterId: this.deadlineSelect.idQuoter,\n carId: this.car.id,\n concept: this.deadlineSelect.concept,\n period: this.deadlineSelect.period,\n depositIncome: this.deadlineSelect.depositIncome,\n idKeycloak: this.dataService.getIdKeycloak(),\n priceWithIva: this.car.priceWithIva,\n monthlyPayment: this.deadlineSelect.monthlyPayment,\n update: false,\n };\n\n this.cotizadorService.preauthorize(request).subscribe((res) => {\n if (\n res.maxPaymentCapacity &&\n res.maxPaymentCapacity < this.deadlineSelect.monthlyPayment\n ) {\n const msg =\n 'Lo sentimos, el producto que seleccionaste sobrepasa la capacidad de pago máxima que te hemos asignado. Por favor selecciona otra opción';\n this.modalService.showAlertWithoutIds(\n msg,\n Icons.error,\n false,\n '¡Aviso!'\n );\n return;\n }\n\n let quoterIdPrevius = res.data._source\n ? res.data._source.quoterId\n : res.data.quoterId;\n\n if (this.deadlineSelect.idQuoter === quoterIdPrevius)\n this.router.navigate(['/genera-oportunidad']);\n else\n this.processExists(res.data._source.carId, request, res.data._source);\n });\n }\n\n processExists(idCarPrevius: any, request: any, client: any) {\n this.catalogsService.getQuoteCarById(idCarPrevius).subscribe((resCar) => {\n let carPrevius = resCar.data.hits.hits[0]._source;\n\n const hasHistorial = client?.E7?.data?.errors && (client?.E7?.data?.errors[0]?.cveError === ErrorBuro.NO_HISTORIAL)\n\n const dialogRef = this.modalService.openAlert(\n {\n title: '¡Aviso!',\n content: hasHistorial\n ? `No cuentas con historial crediticio y es requerido para poder continuar con el proceso. Gracias por tu preferencia.`\n : `Existe un proceso de pre aprobación para tu ${carPrevius.brand} ${carPrevius.subBrand}, ¿Lo quieres sustituir?`,\n btnAction1: hasHistorial ? 'Entendido' : 'Si, lo quiero sustituir',\n btnAction2: hasHistorial ? null : 'No, ir a mi ultimo paso',\n icon: Icons.info,\n idBtnAction1: hasHistorial ? `boton-aviso-no-historial` : `boton-aviso-quiero-sustituir$`,\n idBtnAction2: hasHistorial ? null : `boton-aviso-ir-ultimo-paso`,\n },\n true\n );\n dialogRef.afterClosed().subscribe((result) => {\n if (hasHistorial) {\n this.router.navigate(['/home']);\n return;\n }\n\n if (result) {\n if (canNotPreauth(client)) {\n const msg =\n 'Tu cotización actual está en un paso que no se puede sustituir. Contáctanos para obtener más ayuda';\n this.modalService.showAlertWithoutIds(msg, Icons.error, false, '');\n return;\n }\n\n request.update = true;\n this.dataService.setUpdatePreauthorize(true);\n this.cotizadorService.preauthorize(request).subscribe((resUpdate) => {\n if (resUpdate.status === 200)\n this.router.navigate(['/genera-oportunidad']);\n });\n } else this.router.navigate(['/genera-oportunidad']);\n });\n });\n }\n\n scrollToResume() {\n if (this.screenSize > 767) {\n this.contentResume?.nativeElement.scrollIntoView({\n block: 'center',\n behavior: 'smooth',\n });\n }\n }\n\n interactionUser() {\n this.dataService.setInteractionUserPanel(true);\n }\n\n ngOnDestroy(): void {\n this.subscriptionDeadlineSelect?.unsubscribe();\n this.subscriptionInteraction?.unsubscribe();\n this.subscriptionScreen?.unsubscribe();\n this.destroyObservableUrlParams();\n this.clickEventsubscription.unsubscribe();\n this.subscriptionAllDeadlineSelect.unsubscribe();\n }\n\n destroyObservableUrlParams() {\n this.subscriptionUrlParams?.unsubscribe();\n }\n\n validateBetter() {\n const isComplete = this.completedResponses <= 3 && this.completedResponses > 0;\n const isMoreIns = this.insurances.length > 1;\n\n if (isComplete && isMoreIns) {\n this.compareInsurances();\n return this.insuranceBetter.key !== this.insurances[0][0].insurance;\n }\n return false;\n }\n\n compareInsurances() {\n if (this.insurances.length === 0) {\n return;\n }\n\n let result = this.insurances.map((arr) => arr.filter((obj) => obj.plazo === '36'))\n .flat().reduce((minimo, current) => (current.cost < minimo.cost ? current : minimo));\n\n this.insuranceBetter = this.findNewBetter(result);\n }\n\n findNewBetter(insuranceToCompare: IInsurance) {\n return InsurancesDic.find((ele) => ele.key === insuranceToCompare.insurance)!;\n }\n\n validKm({ prevSelectedKm, km }: { prevSelectedKm: number, km: number }) {\n if (this.dataService.getSelectedMaintenanceExpenses() && km > KM_20 && this.dataService.getPeriod() === PERIODS.SIX_MONTHS) {\n let prevSelectedKmValue = this.getPrevKmSelected({ prevSelectedKm });\n const alert = this.modalService.openAlert(\n {\n icon: Icons.info,\n title: '',\n content: 'Por el momento no contamos con plazo de 60 meses y Mantenimientos preventivos para el kilometraje seleccionado. Por favor selecciona otro plazo disponible',\n btnAction1: 'Aceptar',\n idBtnAction1: `boton-aviso-crear-cuenta${this.isFlowB ? '-b' : ''}`,\n idBtnAction2: `boton-aviso-iniciar-sesion${this.isFlowB ? '-b' : ''}`,\n },\n false\n );\n alert.afterClosed().subscribe({\n next: () => {\n this.defaultKm = `${prevSelectedKmValue}`;\n this.dataService.setKm(+`${prevSelectedKmValue}`.replace(',', ''));\n }\n })\n return false;\n }\n return true;\n }\n\n getPrevKmSelected({ prevSelectedKm }: { prevSelectedKm: number }) {\n return this.KmArray.map(km => {\n return {\n kmOriginal: km,\n kmClone: km.replace(',', '')\n }\n }).filter(({ kmClone }) => prevSelectedKm == kmClone).shift()?.kmOriginal;\n }\n\n selectFlow() {\n if (this.isFlowB) {\n return FLOW_RR;\n } else {\n if (this.isAfin) {\n return (this.purchaseValue > this.tenPercentPrice) && this.tenPercentPrice > 0 ? FLOW_RR : FLOW_AFIN;\n }\n return FLOW_LEASING_RENTING;\n }\n }\n\n /**\n * Valida el Input para FLujo B de Enganche que sea el monto minimo y MAximo\n * @param {Event} event\n * @memberof ConfigurationPanelComponent\n * @author victor.mendez\n */\n validateRangeInputMax(event: Event): void {\n const inputElement = event.target as HTMLInputElement;\n let value = Math.round(inputElement.valueAsNumber);\n const max = this.rentPriceCeil;\n\n if (value < 0) {\n value = 0;\n } else if (value > max) {\n value = max;\n }\n inputElement.value = value.toString();\n }\n\n}\n","
\n
\n
939}\">\n \n
\n\n \n\n\n
\n \n
\n
\n\n \n

¿Dónde te encuentras?

\n \n \n {{state.stateName}}\n \n \n \n\n

¿Dónde emplacarías?

\n \n \n \n {{ state }}\n \n \n {{ stateSelected.stateName }}\n \n \n \n\n
\n\n \n\n

Enganche

\n Te ayudará a disminuir tu pago mensual\n
\n \n $ \n
\n\n
\n\n
\n\n

Selecciona la primera opción de color tu vehículo

\n \n \n\n \n {{ color }}\n \n\n \n \n

Selecciona la segunda opción de color de tu vehículo

\n \n \n\n \n {{ color }}\n \n\n \n \n

Selecciona la tercera opción de color de tu vehículo

\n \n \n\n \n {{ color }}\n \n\n \n \n\n
\n \n
\n\n 0;\n }\n\n\n }\n\n return false;\n\n}\n","import { IResponse } from '../interfaces/IResponse';\n\nconst DefaultResponse = {\n status: 500,\n message: 'Ha ocurrido un error por favor internarlo más tarde',\n data: {\n 0: {},\n error: {}\n }\n}\n\nexport const catchErrorInsurances = (err: any) : IResponse => {\n console.log(\"entro catchError\");\n return err;\n\n // if( !err.hasOwnProperty('data') ) {\n // return DefaultResponse;\n // }\n\n // const { data } = err;\n // return data.hasOwnProperty('error') ? err : DefaultResponse;\n};\n","export const DefaultResponseProduct = {\n period: {},\n concept: '',\n request: {}\n}\n","\n\nexport const emailTip = 'hola@bitcar.mx';\nexport const emailTipTo = 'mailto:hola@bitcar.mx';\nexport const whatsTip = 'https://wa.me/5215590204974';\n","export interface IInsuranceSelected {\n data: IInsurance[],\n insurance: IInsuranceDic | undefined\n}\n\nexport interface IInsurance {\n cost: number;\n insurance: string;\n plazo: string;\n better?: boolean;\n}\n\nexport interface IInsuranceRequest {\n idState: number; // de select de estados\n cpTip: number | string; // de select de estados\n idTip: number; // de datos de carro\n year: number; // de datos del carro\n priceWithIva: number; // de datos del carro\n insurance: InsurancesEnum; // enum\n quoterType: string;\n flowType: string;\n version: string;\n userId : string;\n}\nexport interface IInsuranceRequestCredit {\n idState: number; // de select de estados\n cpTip: number | string; // de select de estados\n idTip: number; // de datos de carro\n year: number; // de datos del carro\n priceWithIva: number; // de datos del carro\n insurance: InsurancesEnum; // enum\n quoterType: string;\n}\n\nexport interface IInsuranceDic {\n key: string;\n value: InsurancesEnum\n}\n\n\nexport enum InsurancesEnum {\n ATLAS = 1,\n QUALITAS = 3,\n CHUBB = 5,\n GNP = 6,\n NONE = -1,\n TOCONFIRM = -2,\n}\n\n\nexport const InsurancesDic = [\n { key: \"ATLAS\", value: InsurancesEnum.ATLAS, },\n { key: \"GNP\", value: InsurancesEnum.GNP, },\n { key: \"QUALITAS\", value: InsurancesEnum.QUALITAS, },\n { key: \"CHUBB\", value: InsurancesEnum.CHUBB, },\n { key: \"NONE\", value: InsurancesEnum.NONE, },\n { key: \"Por confirmar\" ,value: InsurancesEnum.TOCONFIRM, },\n]\n\n\n\n","import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { CotizadorService } from 'src/app/services/cotizador.service';\nimport {\n ChangeDetectorRef,\n AfterViewInit,\n Component,\n Inject,\n HostListener\n} from '@angular/core';\nimport {\n IInsurance,\n IInsuranceDic,\n IInsuranceSelected,\n InsurancesDic,\n} from '../interfaces/aseguradoras';\n\nimport SwiperCore, { SwiperOptions, Pagination } from 'swiper';\nimport { environment } from 'src/environments/environment';\nimport { WINDOW } from 'src/app/utils/window';\nimport { Platform } from '@angular/cdk/platform';\n\n\nSwiperCore.use([Pagination]);\n\n@Component({\n selector: 'app-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n})\nexport class ModalComponent implements AfterViewInit {\n templateSuffix = environment.templateSuffix;\n insurances: IInsurance[][] = [];\n\n insuranceFirst!: IInsuranceDic;\n insuranceBetter: IInsuranceDic = InsurancesDic[4];\n\n currentRadio!: IInsuranceDic;\n\n ready: boolean = false;\n\n screenSize: any = this.window.innerWidth;\n screenWidth: any = this.window.innerWidth;\n screenHeight: any = this.window.innerHeight;\n\n config: SwiperOptions = {\n slidesPerView: 1.5,\n spaceBetween: 50,\n centeredSlides: true,\n pagination: {\n clickable: true\n },\n breakpoints: {\n 640: {\n slidesPerView: 2,\n spaceBetween: 50\n }\n }\n };\n\n public periods: number[] = [];\n\n constructor(\n private cdRef: ChangeDetectorRef,\n private cotizadorService: CotizadorService,\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any,\n @Inject(WINDOW) private window: Window,\n private platform: Platform\n ) {\n this.screenSize = this.window.innerWidth;\n this.insuranceBetter = data.insuranceBetter;\n this.currentRadio = data.insuranceSelected;\n }\n\n ngAfterViewInit(): void {\n this.cdRef.detectChanges();\n\n setTimeout(() => {\n this.ready = true;\n\n this.cotizadorService.insurnaces.subscribe((resp) => {\n\n const [ firstInsurance ] = resp;\n const periods = firstInsurance.map(({plazo}) => Number(plazo));\n this.periods = periods;\n \n const filteredData = resp.flat().filter((obj: any) => obj.plazo === '36');\n const minCostObj = filteredData.reduce((min: any, curr: any) => (curr.cost < min.cost ? curr : min), { cost: Infinity });\n resp.forEach((insuranceArray: any) => {\n insuranceArray.forEach((insurance: IInsurance) => {\n insurance.better = insurance.insurance === minCostObj.insurance;\n });\n });\n this.insurances = resp;\n\n });\n }, 0);\n }\n\n cancel() {\n this.dialogRef.close(null);\n }\n\n closeWithValue() {\n let filtro: IInsurance[] = [];\n\n for (const insurance of this.insurances) {\n if (insurance[0].insurance === this.currentRadio.key) {\n filtro = insurance;\n break;\n }\n }\n\n let insuranceSelected: IInsuranceSelected = {\n data: filtro,\n insurance: this.currentRadio,\n };\n\n this.dialogRef.close(insuranceSelected);\n }\n\n getClassCol() {\n let factor = 12 / this.insurances.length;\n return `col-${factor}`;\n }\n\n isCheck(insuranceCurrent: string): boolean {\n return this.currentRadio.key === insuranceCurrent || false;\n\n }\n\n onChange(insurance: string) {\n this.currentRadio = InsurancesDic.find((ele) => ele.key === insurance)!;\n }\n\n resultCompare(insuranceBetter: boolean): string {\n return insuranceBetter ? 'better' : '';\n }\n\n @HostListener('window:resize')\n onResize() {\n this.screenSize = this.window.innerWidth;\n }\n\n isMobile() {\n return this.screenWidth < 768 || this.platform.ANDROID || this.platform.IOS;\n }\n\n @HostListener('window:resize', ['$event'])\n onWindowResize(): void {\n this.screenWidth = this.window.innerWidth;\n this.screenHeight = this.window.innerHeight;\n this.isMobile();\n }\n\n\n}\n","

Selecciona la aseguradora de tu preferencia \n

\n

Selecciona la aseguradora de tu preferencia\n \n

\n\n\n
\n\n
992\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Comparativa de seguros
Aseguradora Precio de seguro a {{ period }} meses
\n \n \n {{ (aseguradora[0]?.insurance ) }} {{ insurance.cost | currency }}
\n
\n\n\n \n \n\n
\n\n
\n Aseguradora \n

{{ (aseguradora[0].insurance ) }}

\n
\n \n
\n Precio de seguro a 12 meses \n

{{ aseguradora[0].cost | currency }}

\n
\n\n
\n Precio de seguro a 24 meses \n

{{ aseguradora[1].cost | currency }}

\n
\n\n
\n Precio de seguro a 36 meses \n

{{ aseguradora[2].cost | currency }}

\n
\n\n
\n Precio de seguro a 48 meses \n

{{ aseguradora[3].cost | currency }}

\n
\n\n
\n Precio de seguro a 60 meses \n

{{ aseguradora[4].cost | currency }}

\n
\n
\n \n
\n Precio de seguro a 24 meses \n

{{ aseguradora[0].cost | currency }}

\n
\n\n
\n Precio de seguro a 36 meses \n

{{ aseguradora[1].cost | currency }}

\n
\n\n
\n Precio de seguro a 48 meses \n

{{ aseguradora[2].cost | currency }}

\n
\n
\n\n
\n \n \n
\n\n
\n\n
\n
\n
\n\n
\n
\n \n Te mostraremos las opciones de aseguradoras que encontramos para ti...\n \n
\n\n
\n\n
\n\n\n
\n \n
\n\n
\n
\n\n
\n \n \n
\n\n
\n
\n
\n\n \n \n \n\n\n \n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { DialogAfinComponent } from 'src/app/pages/cotiza/cotiza-components/dialog-afin/dialog-afin.component';\nimport { environment } from 'src/environments/environment';\nimport { CreditTypeDialogComponent } from '../credit-type-dialog/credit-type-dialog.component';\nimport { TypeQuote } from 'src/app/utils/utils';\n\n@Component({\n selector: 'app-credit-dialog',\n templateUrl: './credit-dialog.component.html',\n styleUrls: ['./credit-dialog.component.scss']\n})\nexport class CreditDialogComponent {\n\n templateSuffix = environment.templateSuffix;\n\n\n constructor(\n private dialog: MatDialog,\n public dialogRef: MatDialogRef,\n ){\n\n }\n \n public goLeasing(){\n this.dialogRef.close(TypeQuote.Leasing)\n }\n\n public goCredit(){\n this.dialogRef.close(TypeQuote.credit)\n }\n}\n","
\n
\n
\n

{{ \"CREDIT.dialog.leasingTitle\" | translate }} {{ \"CREDIT.dialog.leasingText\" | translate }}

\n
\n
\n \n
\n
\n
\n
\n \n

{{ \"CREDIT.dialog.creditTitle\" | translate }} {{ \"CREDIT.dialog.creditText\" | translate }}

\n
\n
\n \n
\n
\n
\n \n","import { Component, OnInit } from '@angular/core';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-credit-type-dialog',\n templateUrl: './credit-type-dialog.component.html',\n styleUrls: ['./credit-type-dialog.component.scss']\n})\nexport class CreditTypeDialogComponent {\n\n templateSuffix = environment.templateSuffix;\n}\n","
\n
\n

\n {{ \"CREDIT.typeDialog.bitcar.title\" | translate }}\n

\n

\n {{ \"CREDIT.typeDialog.bitcar.text\" | translate }}\n

\n
\n \n
\n
\n
\n

\n {{ \"CREDIT.typeDialog.ballon.title\" | translate }}\n

\n

\n {{ \"CREDIT.typeDialog.ballon.text\" | translate }}\n

\n
\n \n
\n
\n
\n \n","import { Component, ElementRef, Inject, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { NgxTippyProps } from 'ngx-tippy-wrapper';\nimport { Subscription, Subject, switchMap, of, tap, takeUntil } from 'rxjs';\nimport { CotizadorCreditoService } from 'src/app/services/cotizador-credito.service';\nimport { DataService } from 'src/app/services/data.service';\nimport { SecurityService } from 'src/app/services/security.service';\nimport { StrappiService } from 'src/app/services/strappi.service';\nimport { SummaryService } from 'src/app/services/summary.service';\nimport { TypeProduct } from 'src/app/utils/utils';\nimport { WINDOW } from 'src/app/utils/window';\n\n@Component({\n selector: 'app-deadline-table-credit',\n templateUrl: './deadline-table-credit.component.html',\n styleUrls: ['./deadline-table-credit.component.scss']\n})\nexport class DeadlineTableCreditComponent implements OnInit, OnDestroy {\n\n @Input() isAfin: boolean = false;\n @ViewChild('containerDeadline') private containerDeadline:\n | ElementRef\n | undefined;\n @ViewChild('table') private table: ElementRef | undefined;\n deadlines: Array = [];\n idQuoter: any;\n selectPeriod: string = 'period36';\n selectConcept: any;\n loadingDeadline: boolean = true;\n showDeadline: boolean = true;\n subscriptionInteractionPanel!: Subscription;\n\n showLeasing = false;\n showRenting = false;\n\n screenSize = this.window.innerWidth;\n subscriptionScreen!: Subscription;\n subscriptionInteraction!: Subscription;\n isAvanced = false;\n\n planes: any;\n destroy: Subject = new Subject();\n\n deadlineSelect: any;\n clickEventsubscription!: Subscription;\n\n tippyProps: NgxTippyProps = {\n trigger: 'click',\n allowHTML: true,\n animation: 'scale-extreme',\n theme: 'bitcar' \n };\n\n public typeProduct = TypeProduct\n private destroy$ = new Subject();\n public resDeadlines: any;\n public creditTooltip:string = \"Crédito es la opción para comprar el auto de tus sueños siendo dueño y propietario del vehículo. Define tu enganche y pagos mensuales que incluyen GPS, seguro del auto, seguro personal y auto sustituto\";\n\n constructor(\n private cotizadorCreditService: CotizadorCreditoService,\n private dataService: DataService,\n private securityService: SecurityService,\n private strappiService: StrappiService,\n private route: ActivatedRoute,\n public summaryService: SummaryService,\n @Inject(WINDOW) private window: Window\n ) {\n this.strappiService.getPlanPage().subscribe((res: any) => {\n this.planes = {\n Credito: {\n tooltip: res.plan[3]?.tooltip ?? '',\n video: res.plan[3]?.video ?? '',\n },\n };\n });\n\n this.clickEventsubscription = this.dataService.getSharedFunction().subscribe((data) => {\n this.resultOfRequestNotSuccess(data);\n });\n }\n\n ngOnInit(): void {\n this.subscriptionScreen = this.dataService\n .getScreenSize()\n .subscribe((resp) => (this.screenSize = resp));\n this.getUrlParams();\n\n\n this.dataService.getDeadlineSelect().subscribe({\n next: (deadline: object) => {\n this.deadlineSelect = deadline;\n },\n error(err) {\n console.error(err);\n }\n });\n\n }\n\n async getUrlParams() {\n this.route.queryParams.pipe(\n tap(() => this.loadingDeadline = true),\n switchMap((params) => {\n const paramsQuote = params['quote']\n ? this.securityService.decryptData(params['quote'])\n : null;\n if (\n paramsQuote &&\n paramsQuote.deadlineConcept &&\n paramsQuote.dealinePeriod\n ) {\n this.selectConcept = paramsQuote.deadlineConcept;\n this.selectPeriod = `period${paramsQuote.dealinePeriod}`;\n this.dataService.setPeriod(paramsQuote.dealinePeriod);\n }\n\n return this.dataService.getQuoterData();\n }),\n switchMap((resDeadlines) => {\n this.dataService.setDeadlineCreditSelect(null);\n if (resDeadlines) {\n this.showDeadline = true;\n this.resDeadlines = resDeadlines;\n return this.getDeadlines$(resDeadlines);\n } else {\n this.resDeadlines = null;\n this.showDeadline = false;\n this.loadingDeadline = false;\n return of(null);\n }\n }),\n takeUntil(this.destroy$)\n ).subscribe({\n next: (res) => {\n if (res !== null) {\n this.typeConceptDeadLines(res);\n this.loadingDeadline = false;\n this.dataService.setInteractionUserPanel(false);\n }\n },\n error: () => {\n this.loadingDeadline = false;\n this.dataService.setInteractionUserPanel(false);\n },\n });\n }\n\n /* DEPRECATED: OLD Version \n getDeadlines(request: any) {\n this.deadlines = [];\n this.loadingDeadline = true;\n this.cotizadorCreditService.generateCreditQuoter(request).subscribe({\n next: (res) => {\n this.typeConceptDeadLines(res);\n this.loadingDeadline = false;\n this.dataService.setInteractionUserPanel(false);\n },\n error: () => {\n this.loadingDeadline = false;\n this.dataService.setInteractionUserPanel(false);\n },\n });\n } */\n\n getDeadlines$(request: any) {\n this.deadlines = [];\n return this.cotizadorCreditService.generateCreditQuoter(request);\n }\n\n\n typeConceptDeadLines(res: any) {\n this.idQuoter = res.id;\n const key = res.quoterType;\n this.selectDeadline(\n res[key].concept,\n res[key][this.selectPeriod],\n false\n );\n const deadlineArray = this.transformArray(res[key]);\n this.deadlines = [\n { title: key, data: deadlineArray, hide: false }\n ];\n this.dataService.setTenPercentPrice(res.tenPercentPrice);\n }\n\n transformArray(data: any) {\n const newArray = [];\n for (const [key, value] of Object.entries(data)) {\n if (key !== 'concept' && key !== 'hideRenting') {\n const object = {\n type: key.replace(/\\D/g, ''),\n values: value,\n };\n newArray.push(object);\n }\n }\n return newArray;\n }\n\n async selectDeadline(concept: string, period: any, isSelected: boolean) {\n if (concept === 'traditional' || concept === 'ballon') {\n this.dataService.setDeadlineCreditSelect(period.period);\n this.selectConcept = concept;\n this.selectPeriod = `period${period.period}`;\n this.dataService.setDeadlineCreditSelect({\n idQuoter: this.idQuoter,\n concept,\n ...period,\n isSelected,\n });\n this.dataService.setBalloonMax(period.period);\n }\n }\n\n checkSelectCard(concept: string, type: any) {\n let valuePeriod = `period${type}`;\n\n if(this.selectConcept === 'rr') {\n return this.selectPeriod === valuePeriod;\n } else {\n return this.selectConcept === concept && this.selectPeriod === valuePeriod;\n } \n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n this.resetOnDestroy();\n }\n\n resetOnDestroy() {\n this.deadlines = [];\n this.subscriptionScreen.unsubscribe();\n this.clickEventsubscription.unsubscribe();\n }\n\n avanzar() {\n this.isAvanced = true;\n this.table!.nativeElement.scrollTo({\n left: this.table!.nativeElement.scrollLeft + 750,\n behavior: 'smooth',\n });\n }\n\n retroceder() {\n this.isAvanced = false;\n this.table!.nativeElement.scrollTo({\n left: this.table!.nativeElement.scrollLeft - 750,\n behavior: 'smooth',\n });\n }\n\n isDisableBtn() {\n return this.isAvanced ? '' : 'disabled-btn';\n }\n isDisableBtn2() {\n return this.isAvanced ? 'disabled-btn' : '';\n }\n\n resultOfRequestNotSuccess(data?: boolean) {\n return data;\n }\n\n preauthorize() {\n this.dataService.sendSharedFunction('preauthorize');\n }\n}\n","
\n
\n

Plazos

\n

Elige el plazo que mejor se adapte a tus necesidades.

\n
\n
\n \n
\n\n
\n \n
\n \n\n
\n \n
\n
\n \n Crédito {{deadline.title === typeProduct.Traditional ? '' : 'Balloon'}}\n \n\n
\n \"img-info\"\n\n \n\n \n
\n\n
\n
\n
\n
\n

{{item.type}} meses

\n

{{item.values.monthlyPayment | currency}} Pago mensual

\n
\n
{{item.values.finalRate.ballon | currency}} Ballon
\n
{{resDeadlines.annuity | currency}} Anualidad
\n
{{item.values.initialPayment | currency}} Pago inicial
\n
{{item.values.finalRate.finalRate | percent: '1.2-2'}} Tasa
\n
{{item.values.cat | percent: '1.2-2'}} CAT
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
","import {\n Component,\n OnInit,\n OnDestroy,\n ViewChild,\n ElementRef,\n Input,\n Inject,\n} from '@angular/core';\nimport { CotizadorService } from 'src/app/services/cotizador.service';\nimport { Subscription, Subject } from 'rxjs';\nimport { DataService } from 'src/app/services/data.service';\nimport { SecurityService } from 'src/app/services/security.service';\nimport { StrappiService } from 'src/app/services/strappi.service';\nimport { ActivatedRoute } from '@angular/router';\nimport { SummaryService } from 'src/app/services/summary.service';\nimport { environment } from 'src/environments/environment';\nimport { KM_20 } from 'src/app/pages/buro/pages/identidad/constants';\nimport { WINDOW } from 'src/app/utils/window';\nimport { NgxTippyProps } from 'ngx-tippy-wrapper';\n@Component({\n selector: 'app-deadline-table',\n templateUrl: `./deadline-table.component${environment.templateSuffix}.html`,\n styleUrls: ['./deadline-table.component.scss'],\n})\nexport class DeadlineTableComponent implements OnInit, OnDestroy {\n @Input() isAfin: boolean = false;\n @ViewChild('containerDeadline') private containerDeadline:\n | ElementRef\n | undefined;\n @ViewChild('table') private table: ElementRef | undefined;\n deadlines: Array = [];\n subscriptionDeadlines!: Subscription;\n idQuoter: any;\n selectPeriod: string = environment.templateSuffix === '' ? 'period36' : 'period24';\n selectConcept: any;\n loadingDeadline: boolean = true;\n showDeadline: boolean = true;\n subscriptionInteractionPanel!: Subscription;\n\n showLeasing: boolean = false;\n showRenting: boolean = false;\n\n screenSize = this.window.innerWidth;\n subscriptionScreen!: Subscription;\n subscriptionInteraction!: Subscription;\n isAvanced: boolean = false;\n resetInsurance: boolean = false;\n\n planes: any;\n destroy: Subject = new Subject();\n\n deadlineSelect: any;\n clickEventsubscription!: Subscription;\n private resDeadlines: any;\n\n tippyProps: NgxTippyProps = {\n trigger: 'click',\n allowHTML: true,\n animation: 'scale-extreme',\n theme: 'bitcar'\n };\n\n constructor(\n private cotizadorService: CotizadorService,\n private dataService: DataService,\n private securityService: SecurityService,\n private strappiService: StrappiService,\n private route: ActivatedRoute,\n public summaryService: SummaryService,\n @Inject(WINDOW) private window: Window\n ) {\n this.strappiService.getPlanPage().subscribe((res: any) => {\n if (this.isAfin)\n this.planes = {\n afin: {\n tooltip: res.plan[2].tooltip,\n video: res.plan[2].video,\n },\n rr: {\n tooltip: res.plan[2].tooltip,\n video: res.plan[2].video,\n },\n };\n else\n this.planes = {\n Leasing: {\n tooltip: res.plan[0].tooltip,\n video: res.plan[0].video,\n },\n Renting: {\n tooltip: res.plan[1].tooltip,\n video: res.plan[1].video,\n }\n };\n });\n\n this.clickEventsubscription = this.dataService.getSharedFunction().subscribe((data) => {\n this.resultOfRequestNotSuccess(data);\n });\n }\n\n ngOnInit(): void {\n this.subscriptionScreen = this.dataService\n .getScreenSize()\n .subscribe((resp) => (this.screenSize = resp));\n this.getUrlParams();\n\n\n this.dataService.getDeadlineSelect().subscribe({\n next: (deadline: object) => {\n this.deadlineSelect = deadline;\n if (deadline === undefined) {\n this.showDeadline = false;\n this.loadingDeadline = true;\n this.resetInsurance = true;\n } else {\n this.resetInsurance = false;\n this.showDeadline = true;\n }\n },\n error(err) {\n console.error(err);\n }\n });\n\n }\n\n async getUrlParams() {\n this.route.queryParams.subscribe((params) => {\n const paramsQuote = params['quote']\n ? this.securityService.decryptData(params['quote'])\n : null;\n if (paramsQuote?.deadlineConcept && paramsQuote?.dealinePeriod) {\n this.selectConcept = paramsQuote.deadlineConcept;\n this.selectPeriod = `period${paramsQuote.dealinePeriod}`;\n this.dataService.setPeriod(paramsQuote.dealinePeriod);\n }\n\n this.subscriptionDeadlines = this.dataService\n .getQuoterData()\n .subscribe((resDeadlines) => {\n if (resDeadlines) {\n this.resDeadlines = resDeadlines;\n this.showDeadline = this.resetInsurance ? false : true;\n this.getDeadlines(resDeadlines);\n } else {\n this.showDeadline = false;\n this.loadingDeadline = false;\n }\n });\n });\n }\n\n getDeadlines(request: any) {\n this.deadlines = [];\n this.loadingDeadline = true;\n this.cotizadorService.generateQuoter(request).subscribe({\n next: (res) => {\n this.typeConceptDeadLines(res, this.isAfin);\n this.loadingDeadline = false;\n this.dataService.setInteractionUserPanel(false);\n },\n error: () => {\n this.loadingDeadline = false;\n this.dataService.setInteractionUserPanel(false);\n },\n });\n }\n\n\n typeConceptDeadLines(res: any, isAfin: boolean) {\n this.idQuoter = res.id;\n if (isAfin) {\n\n if (res.quoterType === 'AFIN') {\n this.selectDeadline(\n res.afin.concept,\n res.afin[this.selectPeriod],\n false\n );\n let tranformAfin = this.transformArray(res.afin);\n tranformAfin = this.hasMaintenanceExpenses(tranformAfin);\n // FORD: campaign\n let colum1 = tranformAfin.slice(0, 3);\n let colum2 = tranformAfin.slice(3);\n colum2.map(item=>{\n item.comparaData = true\n }); \n colum1.push(...colum2);\n this.deadlines = [\n { title: 'afin', data: colum1, hide: false },\n ];\n this.dataService.setTenPercentPrice(res.tenPercentPrice);\n this.dataService.setAllDeadlines({ afin: res.afin });\n } else {\n this.selectDeadline(\n res.rr.concept,\n res.rr[this.selectPeriod],\n false\n );\n let tranformAfin = this.transformArray(res.rr);\n tranformAfin = this.hasMaintenanceExpenses(tranformAfin);\n let colum1 = environment.templateSuffix !== '' ? tranformAfin : tranformAfin.slice(0, 3);\n let colum2 = environment.templateSuffix !== '' ? [] : tranformAfin.slice(3);\n colum2.map(item=>{\n item.comparaData = true\n }); \n colum1.push(...colum2);\n this.deadlines = [\n { title: 'rr', data: colum1, hide: false },\n ];\n this.dataService.setTenPercentPrice(res.tenPercentPrice);\n this.dataService.setAllDeadlines({ rr: res.rr });\n }\n } else {\n this.dataService.setAllDeadlines({ leasing: res.leasing, renting: res.renting });\n\n this.selectDeadline(\n this.selectConcept || 'Leasing',\n !!this.selectConcept\n ? res[this.selectConcept.toLowerCase()][this.selectPeriod]\n : res.leasing[this.selectPeriod],\n false\n );\n this.deadlines = [\n {\n title: 'Leasing',\n data: this.transformArray(res.leasing),\n hide: res.leasing.hideRenting,\n },\n // TODO: REMOVIDO POR PETICIÓN\n // {\n // title: `${environment.templateSuffix === ''\n // ? 'Vs crédito tradicional'\n // : 'Crédito tradicional'\n // }`,\n // data: this.transformArray(res.credit),\n // hide: false,\n // },\n // {\n // title: 'Renting',\n // data: this.transformArray(res.renting),\n // hide: res.renting.hideRenting,\n // },\n ];\n\n if (res.renting.hideRenting) {\n this.selectDeadline('Leasing', res.leasing['period36'], true);\n }\n\n if (res.leasing.hideRenting) {\n this.selectDeadline('Renting', res.renting['period36'], true);\n }\n }\n }\n\n transformArray(data: any) {\n let newArray = [];\n for (const [key, value] of Object.entries(data)) {\n if (key !== 'concept' && key !== 'hideRenting') {\n let object = {\n type: key.replace(/\\D/g, ''),\n values: value,\n comparaData:false\n };\n newArray.push(object);\n }\n }\n return newArray;\n }\n\n async selectDeadline(concept: string, period: any, isSelected: any) {\n if (concept === 'Leasing' || concept === 'Renting' || concept === 'afin' || concept === 'rr') {\n // period.period = environment.templateSuffix === '' ? period.period : '24';\n this.dataService.setPeriod(period.period);\n this.selectConcept = concept;\n this.selectPeriod = `period${period.period}`;\n this.dataService.setDeadlineSelect({\n idQuoter: this.idQuoter,\n concept: concept,\n ...period,\n isSelected,\n });\n }\n }\n\n checkSelectCard(concept: string, type: any) {\n let valuePeriod = `period${type}`;\n\n if (this.selectConcept === 'rr') {\n return this.selectPeriod === valuePeriod;\n } else {\n return this.selectConcept === concept && this.selectPeriod === valuePeriod;\n }\n }\n\n ngOnDestroy(): void {\n this.deadlines = [];\n this.subscriptionDeadlines.unsubscribe();\n this.subscriptionScreen.unsubscribe();\n this.clickEventsubscription.unsubscribe();\n }\n\n avanzar() {\n this.isAvanced = true;\n this.table!.nativeElement.scrollTo({\n left: this.table!.nativeElement.scrollLeft + 750,\n behavior: 'smooth',\n });\n }\n\n retroceder() {\n this.isAvanced = false;\n this.table!.nativeElement.scrollTo({\n left: this.table!.nativeElement.scrollLeft - 750,\n behavior: 'smooth',\n });\n }\n\n isDisableBtn() {\n return this.isAvanced ? '' : 'disabled-btn';\n }\n isDisableBtn2() {\n return this.isAvanced ? 'disabled-btn' : '';\n }\n\n resultOfRequestNotSuccess(data?: boolean) {\n return data;\n }\n\n preauthorize() {\n this.dataService.sendSharedFunction('preauthorize');\n }\n\n hasMaintenanceExpenses(quoters: any[]) {\n if (KM_20 < this.dataService.getKm()) {\n return quoters.filter(quoter => {\n let { type, values } = quoter;\n if (type === '60') {\n if (values.deliveryCost.hasOwnProperty(\"maintenanceExpenses\")) {\n return null;\n }\n }\n return quoter;\n });\n }\n return quoters;\n }\n\n}\n","
\n\n
\n \n
\n \n\n
\n \n
\n
\n \n {{(deadline.title === 'afin' || deadline.title === 'rr') ? i === 0 ? 'Rent2Buy' : '' : deadline.title}}\n \n\n\n
\n
\n
\n
\n

{{item.type}} meses

\n

{{item.values.monthlyPayment | currency}} pago mensual\n

\n
\n
{{item.values.initialPayment | currency}} Enganche
\n
{{item.values.purchaseValue | currency}}\n valor de compra\n
\n
\n
\n
\n
\n
\n
\n\n
","import { Component } from '@angular/core';\nimport { IFaqs } from 'src/app/model/http/faqs.model';\nimport { StrappiService } from 'src/app/services/strappi.service';\n\n@Component({\n selector: 'app-faq',\n templateUrl: './faq.component.html',\n styleUrls: ['./faq.component.scss']\n})\nexport class FaqComponent {\n faqs: IFaqs = {};\n constructor(\n private strappiService: StrappiService\n ) {\n this.strappiService.getFaqs().subscribe(\n (res) => {\n this.faqs = res;\n },\n );\n }\n}\n","
\n
\n {{faqs.header?.title}}\n
\n
\n {{faqs.header?.subtitle}}\n
\n
\n
\n
\n
\n

{{faq.question}}

\n

{{faq.quick_answer}}

\n Ver más\n
\n
\n
\n
\n

{{faq.question}}

\n

{{faq.answer}}

\n Ver más\n
\n
\n
\n
\n
\n","import { Component, OnDestroy } from '@angular/core';\nimport { IColsLogos, IColsObject, IFooter, IDisclaimer } from 'src/app/model/http/footer.model';\nimport { StrappiService } from 'src/app/services/strappi.service';\nimport { Subscription } from 'rxjs';\nimport { DomSanitizer, Title } from '@angular/platform-browser';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { environment } from 'src/environments/environment';\n@Component({\n selector: 'app-footer',\n templateUrl: `./footer.component${environment.templateSuffix}.html`,\n styleUrls: ['./footer.component.scss']\n})\nexport class FooterComponent implements OnDestroy {\n colLegales: IColsObject = {\n links: []\n };\n colAyuda: IColsObject = {\n links: []\n };\n colSocial: IColsObject = {\n links: []\n };\n colLogos: IColsLogos[] = [];\n footer: IFooter = {\n derechos: {\n title: ''\n }\n };\n logo: IColsLogos = {};\n dataAllDisclaimers: IDisclaimer[] = []\n dataDisclaimers: IDisclaimer[] = []\n fisrtColumnDisclaimers: IDisclaimer[] = []\n secondColumnDisclaimers: IDisclaimer[] = []\n\n screen!: number;\n obsScreen!: Subscription;\n obsState!: Subscription;\n\n derechos = '2022 BitCar Derechos Reservados';\n title = 'Esta página se construye con tecnología de BitCar México';\n\n constructor(\n private strappiService: StrappiService,\n private titleService: Title,\n private matIconRegistry: MatIconRegistry,\n private domSanitizer: DomSanitizer\n ) {\n this.strappiService.getDisclaimers().subscribe((resDisclaimers) => {\n this.dataAllDisclaimers = resDisclaimers.legal_disclaimer\n this.orderDataDisclaimers(this.dataAllDisclaimers.slice(0, 2));\n })\n\n this.matIconRegistry.addSvgIcon('icon-fb', this.domSanitizer.bypassSecurityTrustResourceUrl(\"./assets/img/v3/leasing-footer-redes-fb.svg\"));\n this.matIconRegistry.addSvgIcon('icon-insta', this.domSanitizer.bypassSecurityTrustResourceUrl(\"./assets/img/v3/leasing-footer-redes-insta.svg\"));\n this.matIconRegistry.addSvgIcon('icon-linkedin', this.domSanitizer.bypassSecurityTrustResourceUrl(\"./assets/img/v3/leasing-footer-redes-linkedin.svg\"));\n this.matIconRegistry.addSvgIcon('icon-x', this.domSanitizer.bypassSecurityTrustResourceUrl(\"./assets/img/v3/leasing-footer-redes-x.svg\"));\n this.matIconRegistry.addSvgIcon('icon-youtube', this.domSanitizer.bypassSecurityTrustResourceUrl(\"./assets/img/v3/leasing-footer-redes-youtube.svg\"));\n\n }\n\n\n orderDataDisclaimers(data: any) {\n this.fisrtColumnDisclaimers = data.splice(0, 2);\n this.secondColumnDisclaimers = data.splice(0, data.length);\n\n this.dataDisclaimers = [...this.fisrtColumnDisclaimers, ...this.secondColumnDisclaimers];\n }\n\n ngOnDestroy(): void {\n this.obsScreen.unsubscribe();\n this.obsState.unsubscribe();\n }\n\n /**\n * Set the title of the page for SEO\n * @param {*} title\n * @memberof FooterComponent\n * @author victor.mendez\n */\n setTitle(title: any) {\n this.titleService.setTitle(`BitCar - ${title}`);\n }\n\n}\n\n","
\n
\n\n
\n
\n\n
\n\n \"bitcar-logo\"\n\n
\n \n\n
\n \"bitcar-profeco\"\n \"bitcar-verified\"\n \"bitcar-sostenibilidad\"\n\n
\n\n
\n\n \n\n
\n\n\n\n\n
\n\n
\n\n \n\n\n
\n\n\n \n\n \n\n
\n\n \n\n
\n\n
\n\n\n
\n\n
\n

\n
\n
\n\n\n
\n
","import { Component, Input, OnChanges, OnInit, OnDestroy, Inject } from '@angular/core';\nimport { ISearchCars, ITopCars } from 'src/app/model/http/cars.model';\nimport { IImagesJato } from 'src/app/model/http/images.model';\nimport { Subscription } from 'rxjs';\nimport { DataService } from '../../services/data.service';\nimport { SummaryService } from 'src/app/services/summary.service';\nimport { WINDOW } from 'src/app/utils/window';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-images-presenter',\n templateUrl: `./images-presenter.component${environment.templateSuffix}.html`,\n styleUrls: ['./images-presenter.component.scss']\n})\nexport class ImagesPresenterComponent implements OnChanges, OnInit, OnDestroy {\n @Input() car!: ITopCars | ISearchCars;\n @Input() images!: IImagesJato;\n mainImageUrl: any\n showcarousel: boolean = false;\n\n\n screenSize = this.window.innerWidth;\n subscriptionScreen!: Subscription;\n\n constructor(\n private dataService: DataService,\n public summaryService: SummaryService,\n @Inject(WINDOW) private window: Window\n ) { }\n\n ngOnInit(): void {\n\n this.subscriptionScreen = this.dataService.getScreenSize().subscribe( resp => this.screenSize = resp );\n }\n\n ngOnChanges(changes: any): void {\n this.showcarousel = false\n this.mainImageUrl = this.images.imagenes[0]\n setTimeout(() => {\n this.showcarousel = true\n }, 500);\n }\n\n ngOnDestroy(): void {\n this.subscriptionScreen.unsubscribe();\n }\n\n setMainImg(url: string) {\n this.mainImageUrl = url;\n }\n\n}\n","
\n
\n

{{car.brand}} {{car.subBrand}}

\n
\n

{{car.version}} {{car.year}}

\n 767;else carouselMobile\">\n
\n
\n 0 ? mainImageUrl : './assets/img/auto_no_disponible.svg'}}\"\n alt=\"brand image\">\n
\n
0\">\n \n
\n \"brand\n
\n
\n \"brand\n
\n
\n \"car\n
\n
\n
\n
\n
\n
\n
\n\n \n
\n
\n 0 ? mainImageUrl : './assets/img/auto_no_disponible.svg'}}\"\n alt=\"brand image\">\n
\n
0\">\n \n
\n
\n \"brand\n
\n
\n
\n
\n \"brand\n
\n
\n
\n
\n
\n
\n
","import { Component, Inject, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { DEFAULTVALUES } from 'src/app/constants/defaultValues';\nimport {\n IHomePage,\n ILeaseProcessCard,\n ILeaseProcessB\n} from 'src/app/model/http/homepage.model';\nimport { DataService } from 'src/app/services/data.service';\nimport { StrappiService } from 'src/app/services/strappi.service';\nimport { WINDOW } from 'src/app/utils/window';\nimport { Endpoints } from 'src/environments/endpoints';\nimport { environment } from 'src/environments/environment';\n@Component({\n selector: 'app-lease-process',\n templateUrl: `./lease-process.component${environment.templateSuffix}.html`,\n styleUrls: ['./lease-process.component.scss'],\n})\nexport class LeaseProcessComponent implements OnDestroy {\n screenWidth: any = this.window.innerWidth;\n \n leaseProcessCards: ILeaseProcessCard[] = [];\n title: any = DEFAULTVALUES.home_leaseProcess.defaultTitle;\n subTitle: any = DEFAULTVALUES.home_leaseProcess.defaultSubtitle;\n leaseProcess: IHomePage = {};\n // leaseProcessB: ILeaseProcessB[] = [];\n\n subscriptionDataHomepage!: Subscription;\n subscriptionScreen!: Subscription;\n screenSize = this.window.innerWidth;\n constructor(\n private strappiService: StrappiService, \n private dataService: DataService,\n @Inject(WINDOW) private window: Window) {\n this.subscriptionDataHomepage = this.strappiService.getDataHomepage().subscribe((res) => {\n this.leaseProcess = res;\n /* Se modificó la validación para recibir los datos de strapi de B a A en Home === ''*/\n /* if(environment.templateSuffix !== '')\n this.getContent(this.leaseProcess);\n else */\n // TODO: flowb validar que recibe esta funcion \n // this.processFlowB(res.lease_process)\n });\n\n this.subscriptionScreen = this.dataService.getScreenSize().subscribe(resp => this.screenWidth = resp);\n }\n\n ngOnDestroy(): void {\n this.subscriptionDataHomepage.unsubscribe();\n }\n\n // TODO: validarque revibe y si hay que quitarla \n /* processFlowB(data: any){\n data.forEach((item: any) => {\n this.leaseProcessB.push({\n id: item,\n title: item.title,\n description: item.description,\n img: `${Endpoints.strappi.base}${item.img.url}`\n })\n })\n } */\n\n getContent(data: any) {\n this.title = data.proceso_arrendamiento?.header.title;\n this.subTitle = data.proceso_arrendamiento?.header.subtitle;\n data.proceso_arrendamiento?.pasos.slice(0, 4).map((step: any) => {\n const processCard: ILeaseProcessCard = {\n title: '',\n subtitle: '',\n srcImg: '',\n };\n processCard.title = step.title_step;\n processCard.subtitle = 'Subtitulo';\n step.img.forEach((img: any) => {\n processCard.srcImg = `${Endpoints.strappi.base}${img.url}`;\n });\n this.leaseProcessCards.push(processCard);\n });\n }\n\n getCells() {\n if (this.screenWidth < 768) {\n return 1;\n } else if (this.screenWidth < 992) {\n return 2.5;\n } else if (this.screenWidth < 1200) {\n return 3.5;\n } else {\n return 4;\n }\n }\n\n getArrows() {\n return this.screenWidth < 768\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-loading-spinner',\n templateUrl: './loading-spinner.component.html',\n styleUrls: ['./loading-spinner.component.scss']\n})\nexport class LoadingSpinnerComponent {\n\n @Input() title = '';\n @Input() title2 = '';\n @Input() diameter!: string\n\n templateSuffix = environment.templateSuffix;\n getDiameter(){\n if(this.diameter)\n return {\n height: this.diameter,\n width: this.diameter,\n }\n return null\n }\n\n}\n","
\n\n
\n
\n \"loading\"\n

{{ title }}

\n

{{ title2 }}

\n
\n
\n\n
\n","import { Component, Output, EventEmitter, Input, Injector, Inject } from '@angular/core';\nimport { KeycloakService } from 'keycloak-angular';\nimport { environment } from 'src/environments/environment';\nimport { DataService } from 'src/app/services/data.service';\nimport { Event, NavigationStart, Router } from '@angular/router';\nimport { StrappiService } from 'src/app/services/strappi.service';\nimport { catchError, map, of } from 'rxjs';\nimport { KeycloakCustomService } from 'src/app/services/keycloak-custom.service';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { DOCUMENT } from '@angular/common';\nimport { WINDOW } from 'src/app/utils/window';\n\n@Component({\n selector: 'app-main-header',\n templateUrl: `./main-header.component${environment.templateSuffix}.html`,\n styleUrls: ['./main-header.component.scss'],\n})\nexport class MainHeaderComponent {\n @Output() public sidenavToggle = new EventEmitter();\n @Input() userObject!: any;\n @Input() isLoged!: any;\n @Input() idKeycloak!: any;\n @Input() processActive!: any;\n\n urlLocation: boolean = false;\n urlComparator: boolean = false;\n logoPrincipal: string = '';\n\n public dataService: DataService;\n public matIconRegistry: MatIconRegistry;\n public domSanitizer: DomSanitizer;\n\n constructor(\n public keycloackService: KeycloakService,\n public keycloakCustomService: KeycloakCustomService,\n @Inject(DOCUMENT) private document: any,\n @Inject(WINDOW) private window: any,\n public router: Router,\n private injector: Injector,\n private strapi: StrappiService\n\n\n ) {\n this.dataService = this.injector.get(DataService);\n this.matIconRegistry = this.injector.get(MatIconRegistry);\n this.domSanitizer = this.injector.get(DomSanitizer);\n\n this.router.events.subscribe((event: Event) => {\n if (event instanceof NavigationStart) {\n this.urlLocation = event.url.includes('genera-oportunidad');\n this.urlComparator = event.url.includes('comparar-unidad');\n }\n });\n\n this.getLogoHeader();\n\n this.matIconRegistry.addSvgIcon('flag-mex', this.domSanitizer.bypassSecurityTrustResourceUrl(\"./assets/img/lang/leasing-header-flag.svg\"));\n }\n\n public onToggleSidenav = () => {\n this.sidenavToggle.emit();\n };\n\n public logout() {\n sessionStorage.removeItem('aceptProcess');\n this.dataService.setIdKeycloak('');\n localStorage.removeItem('dataQuote');\n const isSalesforceLoggin = this.keycloakCustomService.isLoggin();\n if (isSalesforceLoggin) {\n this.keycloakCustomService.logout(environment.keycloak.redirectUri);\n } else {\n this.keycloackService.logout(environment.keycloak.redirectUri);\n }\n }\n\n goToLastStep() {\n this.router.navigate(['/genera-oportunidad']);\n }\n\n getClassCSS(): any {\n return this.processActive ? 'active' : 'inactive';\n }\n\n goComparator() {\n this.router.navigate(['/comparar-unidad']);\n }\n\n login() {\n localStorage.setItem('flowType', environment.templateSuffix === '' ? 'A' : 'B');\n this.keycloackService.login();\n }\n\n /**\n * Navega a la sección de preguntas frecuentes\n * @memberof MainHeaderComponent\n */\n goToFaq() {\n this.router.navigate(['/landing'], { fragment: 'faqs' });\n }\n\n /**\n * Obtiene el Logotipo del Header desde Straapi\n * @memberof MainHeaderComponent\n * @author: victor.mendez\n */\n getLogoHeader() {\n this.strapi.getImagesGeneral().pipe(\n map(data => {\n const image = data.imagenes_general.find(a => a.tipo === \"logotipo_header\")?.image[0];\n return image ? `${environment.strappiUrl}${image.url}` : './assets/img/logo_bitcar.svg';\n }),\n catchError(e => {\n console.error(`Error occurred while fetching data from Strapi: ${e}`);\n return of('./assets/img/logo_bitcar.svg');\n })\n ).subscribe((url: string) => {\n this.logoPrincipal = url;\n });\n }\n\n /**\n *\n *\n * @param {string} path\n * @memberof MainHeaderComponent\n * @author: victor.mendez\n */\n clickScroll(path: string) {\n\n if (this.router.url.includes('home')) {\n this.document.getElementById(path)?.scrollIntoView({ behavior: 'smooth', block: 'start' });\n } else {\n this.router.navigate(['/home'], { fragment: path });\n }\n\n }\n\n}\n","\n
\n
\n\n
\n \n \"logo\"\n \n
\n\n\n \n\n\n
\n\n\n \n\n \n\n
\n\n \n \n\n
\n
\n\n\n
\n \n \n
\n\n\n
\n
\n
","import { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { RegisterService } from '../../services/register.service';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { environment } from 'src/environments/environment';\n@Component({\n selector: 'app-missing-data-register',\n templateUrl: './missing-data-register.component.html',\n styleUrls: ['./missing-data-register.component.scss']\n})\nexport class MissingDataRegisterComponent {\n\n\n taxRegimens: SelectItem[] = [\n { key: 'PFA', value: 'Si' },\n { key: 'PFAE', value: 'No' },\n ]\n\n form!: FormGroup;\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: any,\n public dialogRef: MatDialogRef,\n private registerService: RegisterService,\n private fb: FormBuilder\n ) {\n this.initForm();\n }\n\n initForm() {\n this.form = this.fb.group({\n phoneNumber: ['', [Validators.required, Validators.pattern(`^[0-9]{10}$`)]],\n rfc: ['', [Validators.required, Validators.pattern(/^[a-zA-Z]{3,4}(\\d{6})((\\D|\\d){2,3})?$/)]],\n persontype: ['', [Validators.required]],\n flowType: environment.templateSuffix === '' ? ['A'] : ['B']\n });\n }\n \n setInputValidation(field: string, isActive: boolean) {\n\n const control = this.form.get(field);\n\n control!.setValidators(isActive ? [Validators.required] : []);\n control!.setValue(isActive ? control!.value : '');\n control!.updateValueAndValidity();\n }\n\n send() {\n\n this.form.markAllAsTouched();\n\n if (this.form.valid) {\n\n const body = this.form.value;\n\n this.registerService.updateUserAttributes(body, this.data.idUser).subscribe({\n next: () => this.dialogRef.close(body),\n error: (error) => console.error(error)\n });\n\n }\n\n }\n\n isInvalid(campo: string) {\n return this.form.get(campo)!.errors && this.form.get(campo)!.touched;\n }\n\n hasErrors(campo: string) {\n return this.isInvalid(campo) ? 'error-border' : ''\n }\n\n}\n\ninterface SelectItem {\n key: string;\n value: string;\n}\n","
\n\n

Por favor ingresa la siguiente información para continuar:

\n\n
\n\n
\n\n
\n \n \n Teléfono requerido a 10 dígitos\n
\n\n
\n \n \n RFC inválido\n
\n\n
\n \n \n Selecciona una opción válida\n
\n\n
\n\n
\n\n \n \n \n\n
\n","export enum Icons{\n info ='info-custom',\n error = 'error-custom',\n success = 'check-custom',\n none = 'none'\n}\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { environment } from 'src/environments/environment';\n@Component({\n selector: 'app-modal-alert',\n templateUrl: './modal-alert.component.html',\n styleUrls: ['./modal-alert.component.scss']\n})\nexport class ModalAlertComponent implements OnInit {\n icon: any\n title: any\n content: any\n btnAction0: any\n btnAction1: any\n btnAction2: any\n idBtnAction0: any\n idBtnAction1: any\n idBtnAction2: any\n templateSuffix = environment.templateSuffix;\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any,\n private matIconRegistry: MatIconRegistry, private domSanitizer: DomSanitizer\n ) {\n this.matIconRegistry.addSvgIcon(\n \"info-custom\", this.domSanitizer.bypassSecurityTrustResourceUrl(\"./assets/alerts/info-custom.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n \"check-custom\", this.domSanitizer.bypassSecurityTrustResourceUrl(\"./assets/alerts/check-custom.svg\")\n );\n\n this.matIconRegistry.addSvgIcon(\n \"error-custom\", this.domSanitizer.bypassSecurityTrustResourceUrl(\"./assets/alerts/error-custom.svg\")\n );\n }\n\n ngOnInit(): void {\n this.icon = this.data.icon;\n this.title = this.data.title;\n this.content = this.data.content;\n this.btnAction0 = this.data.btnAction0;\n this.btnAction1 = this.data.btnAction1;\n this.btnAction2 = this.data.btnAction2;\n this.idBtnAction0 = this.data.idBtnAction0;\n this.idBtnAction1 = this.data.idBtnAction1;\n this.idBtnAction2 = this.data.idBtnAction2;\n }\n\n getJustify(){\n return (this.btnAction1 && this.btnAction2) || (this.btnAction0 && this.btnAction2) ? 'btns-space' : 'btns-center';\n }\n\n}\n","
\n
\n \n
\n\n
\n\n \n

\n

\n
\n\n \n \n \n \n \n
\n","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-modal-process',\n templateUrl: './modal-process.component.html',\n styleUrls: ['./modal-process.component.scss']\n})\nexport class ModalProcessComponent {\n\n constructor(\n private router: Router,\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any) {}\n\n onClose(): void {\n this.dialogRef.close();\n }\n\n toProcess() {\n this.dialogRef.close();\n this.router.navigate(['/genera-oportunidad'])\n }\n\n}\n","\"close\n\n
\n

Tienes un proceso de {{data.processConcept}} para tu {{data.carBrand}}-{{data.carSubBrand}} en curso!

\n

¿Quieres revisar su estatus?

\n \n
","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { ModalAlertComponent } from '../modal-alert/modal-alert.component';\n\n@Component({\n selector: 'app-modal-signatory',\n templateUrl: './modal-signatory.component.html',\n styleUrls: ['./modal-signatory.component.scss'],\n})\nexport class ModalSignatoryComponent implements OnInit {\n icon: any;\n title: any;\n content: any;\n btnAction1: any;\n btnAction2: any;\n idBtnAction1: any;\n idBtnAction2: any;\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any,\n private matIconRegistry: MatIconRegistry,\n private domSanitizer: DomSanitizer\n ) {\n this.matIconRegistry.addSvgIcon(\n 'info-custom',\n this.domSanitizer.bypassSecurityTrustResourceUrl(\n './assets/alerts/info-custom.svg'\n )\n );\n\n this.matIconRegistry.addSvgIcon(\n 'check-custom',\n this.domSanitizer.bypassSecurityTrustResourceUrl(\n './assets/alerts/check-custom.svg'\n )\n );\n\n this.matIconRegistry.addSvgIcon(\n 'error-custom',\n this.domSanitizer.bypassSecurityTrustResourceUrl(\n './assets/alerts/error-custom.svg'\n )\n );\n }\n\n ngOnInit(): void {\n this.icon = this.data.icon;\n this.title = this.data.title;\n this.content = this.data.content;\n this.btnAction1 = this.data.btnAction1;\n this.btnAction2 = this.data.btnAction2;\n this.idBtnAction1 = this.data.idBtnAction1;\n this.idBtnAction2 = this.data.idBtnAction2;\n }\n\n getJustify() {\n return this.btnAction1 && this.btnAction2 ? 'btns-space' : 'btns-center';\n }\n}\n","
\n
\n \n
\n\n
\n\n \n

\n

\n
\n\n \n \n {{ btnAction2 }}\n \n \n {{ btnAction1 }}\n \n \n
\n","import { Component } from '@angular/core';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-msg-color-car',\n templateUrl: './msg-color-car.component.html',\n styleUrls: ['./msg-color-car.component.scss']\n})\nexport class MsgColorCarComponent {\n templateSuffix = environment.templateSuffix;\n}\n","
\n \"icon_info\"\n

Define con tu asesor el color que más te agrade. Las fotos aquí mostradas son de carácter demostrativo.

\n
\n","import { Component, Input, OnChanges, SimpleChanges, OnDestroy, OnInit } from '@angular/core';\nimport pdfMake, { TCreatedPdf } from 'pdfmake/build/pdfmake';\nimport pdfFonts from 'pdfmake/build/vfs_fonts';\nimport { fillColor, hLineColor, vLineColor, quitVLineColor } from '../pdf/helpers';\nimport { mantenance, personalSecure, protectPlus, secure, substitute, textNotes, tracking } from './txts';\n\nimport moment from 'moment';\nimport { Subject } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { DEFAULT_NAME_QUOTER } from 'src/app/pages/buro/pages/identidad/constants';\nimport { CotizadorService } from 'src/app/services/cotizador.service';\nimport { ICreditAmotization } from 'src/app/pages/buro/interfaces/ICreditAmortization';\nimport { InsuranceIdToName, InsuranceTypeIDsEnum, MONTHS, SUSTITUECAROPTSHASH } from 'src/app/utils/utils';\nimport { Content, TDocumentDefinitions, Table, TableCell, TableLayout } from 'pdfmake/interfaces';\nimport { DataService } from 'src/app/services/data.service';\nimport { Router } from '@angular/router';\n\npdfMake.vfs = pdfFonts.pdfMake.vfs;\n\n@Component({\n selector: 'app-pdf-credit',\n templateUrl: `./pdf-credit.component${environment.templateSuffix}.html`,\n styleUrls: ['./pdf-credit.component.scss'],\n})\nexport class PdfCreditComponent implements OnDestroy, OnChanges, OnInit {\n @Input() dataQuoter!: any;\n @Input() deadlineSelect!: any;\n @Input() stateSelected!: any;\n @Input() insuranceSelected!: any;\n @Input() car!: any;\n @Input() show: boolean = true;\n @Input() donwloadAtumatic: boolean = false;\n @Input() name: string = DEFAULT_NAME_QUOTER;\n public isLoading: boolean = false;\n\n private urlEncode64 = require('../../../mocks/logo.json');\n private quoterDate: string = moment().format('DD/MM/YYYY');\n\n private pdfOpen?: TCreatedPdf;\n private tipColor = `${environment.templateSuffix === '' ? '#fe5000' : '#f15c22'\n }`;\n private colorGrey = '#ececec';\n private border1 = [true, true, false, false];\n private border2 = [true, false, false, false];\n private border3 = [true, false, false, true];\n private border4 = [true, true, true, true];\n\n private formatter = new Intl.NumberFormat('es-MX');\n /* 'TRADITIONAL' | 'BALLON' */\n private tableAmortization: ICreditAmotization[] = [];\n\n private destroy$: Subject = new Subject();\n\n constructor(\n private cotizadorService: CotizadorService,\n private dataService: DataService,\n private router: Router\n ) { }\n\n ngOnInit(): void {\n this.dataService.getDownloadPdfCredit().subscribe(({ data, quoterId, period, concept, pwi }) => {\n const { deadlineSelect, stateSelected, insuranceSelected, car, dataQuoter } = data;\n this.deadlineSelect = {\n ...deadlineSelect,\n idQuoter: quoterId,\n period,\n concept\n };\n this.stateSelected = stateSelected;\n this.insuranceSelected = insuranceSelected;\n this.car = { ...car, priceWithIva: pwi };\n this.dataQuoter = dataQuoter;\n this.createPdf();\n });\n }\n\n ngOnChanges(_: SimpleChanges): void {\n if (this.donwloadAtumatic) {\n this.createPdf();\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n async createPdf() {\n this.isLoading = true;\n this.cotizadorService\n .getCreditAmortization(\n this.deadlineSelect.idQuoter,\n this.deadlineSelect.period,\n this.deadlineSelect.concept\n ).subscribe((table) => {\n this.tableAmortization = table;\n this.isLoading = false;\n this.loadPdf();\n });\n }\n\n loadPdf() {\n const pdfDefinition: TDocumentDefinitions = {\n pageMargins: [40, 80, 40, 60],\n header: this.getHeader(),\n content: [\n this.getQuoteHeaders(),\n this.getAmortizationPayment(),\n {\n style: 'tableExample',\n table: {\n body: this.getBodyDetails(),\n },\n layout: 'lightHorizontalLines',\n },\n {\n style: 'tableExample',\n table: {\n body: this.getBodyNotes(),\n },\n layout: 'lightHorizontalLines',\n },\n ],\n styles: {\n header: {\n fontSize: 10,\n bold: true,\n alignment: 'justify',\n },\n tableFirst: {\n fontSize: 8,\n margin: [0, 0, 0, 10],\n },\n tableExample: {\n fontSize: 8,\n margin: [0, 5, 0, 10],\n },\n tableTitle: {\n fontSize: 8,\n margin: [1, 0, 0, 0],\n bold: true,\n alignment: 'center',\n },\n alingCenter: {\n alignment: 'center',\n },\n tableBody: {\n fontSize: 8,\n margin: [0, 0, 0, 10],\n },\n tableHeader: {\n bold: true,\n fontSize: 9,\n color: 'black',\n },\n negritas: {\n bold: true,\n },\n headerTable: {\n bold: true,\n background: this.tipColor,\n alignment: 'center',\n },\n },\n info: {\n title: this.name,\n },\n };\n this.pdfOpen = pdfMake.createPdf(pdfDefinition);\n this.openPdf();\n }\n\n private openPdf() {\n this.pdfOpen?.open();\n if (this.router.url.includes('download')) {\n this.router.navigate(['/home']);\n }\n }\n\n private getCellCss(\n text: string,\n color: string,\n fillColorCol: string,\n bold: boolean\n ) {\n return {\n text,\n color,\n fillColor: fillColorCol,\n bold,\n };\n }\n\n private getCellCssHeader(\n text: string,\n color: string,\n border: boolean[],\n fillColorCol: string,\n bold: boolean\n ) {\n return {\n border,\n text,\n color,\n fillColor: fillColorCol,\n bold,\n };\n }\n\n private getLayout(): TableLayout {\n return { hLineColor, vLineColor };\n }\n\n private getLayoutQuitLines(): TableLayout {\n return { vLineColor: quitVLineColor, hLineColor: '#ececec' };\n }\n\n private formatText(element: number) {\n return `$${this.formatter.format(element)}`;\n }\n\n private getHeader(): Content {\n const tableCells: TableCell[] = [\n {\n border: [false, false, false, false],\n fillColor: this.tipColor,\n image: `data:image/png;base64,${this.urlEncode64.logoUrlBase64}`,\n width: 110,\n height: 40,\n margin: [25, 10, 0, 10],\n },\n ];\n return [\n {\n table: {\n widths: '*',\n body: [tableCells],\n },\n },\n ];\n }\n\n private getQuoteHeaders(): Content {\n const leftTable: TableCell[][] = this.LeftQuoteHeader;\n const rightTable: TableCell[][] = this.RightQuoteHeader;\n const initPayTable: TableCell[][] = this.getBodyPagoInicial;\n return {\n columns: [\n {\n width: '*',\n style: 'tableFirst',\n layout: this.getLayout(),\n stack: [\n {\n layout: this.getLayout(),\n table: {\n widths: [90, 130],\n body: [\n ...leftTable,\n ],\n }\n },\n {\n text: ' ', // Spacer element\n margin: [0, 3, 0, 3]\n },\n {\n layout: this.getLayout(),\n table: {\n widths: [90, 130],\n body: [\n ...initPayTable,\n ],\n }\n }\n ]\n },\n\n {\n width: '*',\n style: 'tableFirst',\n layout: this.getLayout(),\n table: {\n widths: [90, 130],\n body: rightTable,\n },\n },\n ],\n };\n }\n\n /**\n * Función que obtiene el texto del seguro dependiendo del tipo de seguro\n * Deolvera el nombre del seguro si es anual contado o si es financiado devolvera tambien el monto.\n * @private\n * @return {*} {string}\n * @memberof PdfCreditComponent\n * @author victor.mendez\n */\n private getInsuranceText(): string {\n const insuranceType = this.dataQuoter.insuranceType;\n const insuranceName = InsuranceIdToName[insuranceType as InsuranceTypeIDsEnum];\n\n if (\n insuranceType === InsuranceTypeIDsEnum.ANUAL_CONTADO_CON_PAGO_ANUAL ||\n insuranceType === InsuranceTypeIDsEnum.ANUAL_CONTADO_SIN_PAGO_ANUAL\n ) {\n return insuranceName;\n } else {\n return `${insuranceName} - ${this.formatText(this.deadlineSelect.lifeInsurance.insurance)}`;\n }\n }\n\n /**\n * Función que obtiene el total de los servicios de seguro\n * @private\n * @return {*} {number}\n * @description Auto Sustituto + Rastreo base + Protección Plus\n * @memberof PdfCreditComponent\n * @author victor.mendez\n */\n private getInsuranceServices(): number {\n const { sustituteCar, gps, protectionPlus } = this.deadlineSelect.lifeInsurance;\n const total: number = (sustituteCar + gps + protectionPlus);\n return parseFloat(total.toFixed(2));\n }\n\n /**\n * Función que obtiene el total a financiar\n * @private\n * @return {*} {number}\n * @memberof PdfCreditComponent\n * @author victor.mendez\n */\n private getTotalFinance(): number {\n const insuranceCost = this.calculateInsuranceCost();\n const insuranceAndServices = this.getInsuranceServices();\n const total = this.calculateTotalFinance(insuranceCost, insuranceAndServices);\n return parseFloat(total.toFixed(2));\n }\n\n private calculateInsuranceCost(): number {\n const insuranceType = this.dataQuoter.insuranceType;\n if (\n insuranceType === InsuranceTypeIDsEnum.ANUAL_CONTADO_CON_PAGO_ANUAL ||\n insuranceType === InsuranceTypeIDsEnum.ANUAL_CONTADO_SIN_PAGO_ANUAL\n ) {\n return 0;\n } else {\n return this.deadlineSelect.lifeInsurance.insurance;\n }\n }\n\n private calculateTotalFinance(insuranceCost: number, insuranceAndServices: number): number {\n return (this.car.priceWithIva - this.deadlineSelect.initialPaymentDetail.downPayment) + insuranceCost + insuranceAndServices;\n }\n\n private get LeftQuoteHeader(): TableCell[][] {\n const dateCell: TableCell[] = [\n this.getCellCssHeader(\n 'Fecha',\n '#000',\n this.border1,\n this.colorGrey,\n false\n ),\n `${this.quoterDate}`,\n ];\n\n const vehicleCell: TableCell[] = [\n this.getCellCssHeader(\n 'Vehículo',\n '#000',\n this.border2,\n this.colorGrey,\n false\n ),\n this.getHeaderVehiculo(),\n ];\n\n\n const productTypeCell: TableCell[] = [\n this.getCellCssHeader(\n `Producto `,\n '#000',\n this.border2,\n this.colorGrey,\n false\n ),\n this.deadlineSelect.concept === 'traditional'\n ? (!this.deadlineSelect.annuity || this.deadlineSelect.annuity === '') ? 'Crédito tradicional' : 'Crédito tradicional anualidades'\n : 'Crédito Balloon',\n ];\n\n const periodCell: TableCell[] = [\n this.getCellCssHeader(\n 'Plazo Elegido',\n '#000',\n this.border2,\n this.colorGrey,\n false\n ),\n `${this.formatter.format(this.deadlineSelect.period)} meses`,\n ];\n\n const rateCell: TableCell[] = [\n this.getCellCssHeader('Tasa', '#000', this.border2, this.colorGrey, false),\n `${this.formatter.format(\n Number((this.deadlineSelect.finalRate.finalRate * 100).toFixed(2))\n )}%`,\n ];\n\n const cxaCell: TableCell[] = [\n this.getCellCssHeader(\n 'Comisión por apertura',\n '#000',\n this.border2,\n this.colorGrey,\n false\n ),\n `${this.formatter.format(this.deadlineSelect.tasaFinalCxA * 100)}%`,\n ];\n\n const catCell: TableCell[] = [\n this.getCellCssHeader(\n 'CAT sin IVA',\n '#000',\n this.border2,\n this.colorGrey,\n false\n ),\n `${this.formatter.format(Number((this.deadlineSelect.cat * 100).toFixed(2)))}%`,\n ];\n\n const lifeInsuranceCell = [\n this.getCellCssHeader(\n 'Seguro Personal',\n '#000',\n this.border2,\n this.colorGrey,\n false\n ),\n `Incluido - ${this.formatText(this.deadlineSelect.lifeInsurance.annual.toFixed(2))}`,\n ];\n\n const monthlyPaymentCell: TableCell[] = [\n this.getCellCssHeader(\n 'Pago mensual',\n '#ffffff',\n this.border3,\n this.tipColor,\n true\n ),\n this.getCellCss(this.formatText(this.deadlineSelect.monthlyPayment.toFixed(2)), '#000', '#fff', true)\n ];\n\n const leftTable: TableCell[][] = [\n dateCell,\n vehicleCell,\n productTypeCell,\n periodCell,\n rateCell,\n cxaCell,\n catCell,\n lifeInsuranceCell,\n monthlyPaymentCell,\n ];\n\n if (\n this.deadlineSelect.concept === 'traditional' &&\n this.dataQuoter.includeAnnuities\n ) {\n const annuityPaymentMonth = this.dataQuoter.annuityPaymentMonth;\n const spacialPayment = this.tableAmortization.find(\n ({ paymentDate }, index) => index > 0 && moment(paymentDate).month() === annuityPaymentMonth\n );\n if (spacialPayment) {\n const spacialPaymentsCell: TableCell[] = [\n this.getCellCssHeader(\n 'Pagos especiales',\n '#000',\n this.border3,\n this.colorGrey,\n true\n ),\n `${this.formatText(spacialPayment.ordinaryPayment)} (${this.deadlineSelect.period / 12\n } pagos en ${MONTHS[annuityPaymentMonth]})`,\n ];\n leftTable.push(spacialPaymentsCell);\n }\n } else if (this.deadlineSelect.concept === 'BALLON') {\n const spacialPaymentsCell: TableCell[] = [\n this.getCellCssHeader(\n 'Pagos especiales',\n '#000',\n this.border3,\n this.colorGrey,\n true\n ),\n `${this.formatText(\n this.tableAmortization[this.tableAmortization.length]\n .ordinaryPayment\n )} (último pago del crédito)`,\n ];\n\n leftTable.push(spacialPaymentsCell);\n }\n\n return leftTable;\n }\n\n private get RightQuoteHeader(): TableCell[][] {\n\n const vehiclePriceCell: TableCell[] = [\n this.getCellCssHeader(\n 'Precio de Auto con IVA',\n '#000',\n this.border1,\n this.colorGrey,\n false\n ),\n `${this.formatText(this.car.priceWithIva.toFixed(2))}`,\n ];\n\n\n const downPaymentCell: TableCell[] = [\n this.getCellCssHeader(\n '(-) Enganche',\n '#000',\n this.border2,\n this.colorGrey,\n false\n ),\n `${this.formatText(this.deadlineSelect.initialPaymentDetail.downPayment.toFixed(2))}`,\n ];\n\n const insuranceStateCell: TableCell[] = [\n this.getCellCssHeader(\n 'Entidad de seguro',\n '#000',\n this.border1,\n this.colorGrey,\n false\n ),\n `${this.stateSelected.stateName}`,\n ];\n\n\n const insuranceCell = [\n this.getCellCssHeader(\n 'Aseguradora de Auto',\n '#000',\n this.border2,\n this.colorGrey,\n false\n ),\n `${this.insuranceSelected?.insurance?.key ?? 'Por confirmar'}`,\n ];\n\n const insuranceTypeCell = [\n this.getCellCssHeader(\n 'Tipo de Seguro',\n '#000',\n this.border2,\n this.colorGrey,\n false\n ),\n this.getInsuranceText()\n ];\n\n\n const insuranceAndServicesCell = [\n this.getCellCssHeader(\n 'Seguros y Servicios',\n '#000',\n this.border2,\n this.colorGrey,\n false\n ),\n ` ${this.formatText(this.getInsuranceServices())}`,\n ];\n\n\n const sustituteCarCell = [\n this.getCellCssHeader(\n 'Auto Sustituto',\n '#000',\n this.border2,\n this.colorGrey,\n false\n ),\n this.getCellConditional(\n this.dataQuoter.substituteCar,\n `${SUSTITUECAROPTSHASH[`${this.dataQuoter.typeSustituteCar}`]\n } - ${this.formatText(this.deadlineSelect.lifeInsurance.sustituteCar)}`\n ),\n ];\n\n const gpsCell = [\n this.getCellCssHeader(\n 'Rastreo Base',\n '#000',\n this.border2,\n this.colorGrey,\n false\n ),\n this.getCellConditional(this.dataQuoter.includeGps, this.deadlineSelect.lifeInsurance.gps),\n ];\n\n const protectionPlusCell = [\n this.getCellCssHeader(\n 'Protección Plus',\n '#000',\n this.border2,\n this.colorGrey,\n false\n ),\n this.getCellConditional(\n this.dataQuoter.protectionPlus,\n this.deadlineSelect.lifeInsurance.protectionPlus\n ),\n ];\n\n\n const amountFinancedCell: TableCell[] = [\n this.getCellCssHeader(\n 'Monto a financiar',\n '#fff',\n this.border3,\n this.tipColor,\n true\n ),\n {\n text: `${this.formatText(this.getTotalFinance())}`,\n style: 'tableHeader',\n }\n ];\n\n\n\n // const maintenanceCell = [\n // this.getCellCssHeader(\n // 'Mantenimientos',\n // '#000',\n // this.border2,\n // this.colorGrey,\n // false\n // ),\n // this.getCellConditional(\n // this.dataQuoter.includeMaintenance,\n // this.deadlineSelect.maintenanceCost\n // ),\n // ];\n\n // const maintenanceKmCell = [\n // this.getCellCssHeader(\n // 'Kms Mantenimiento Incluido',\n // '#000',\n // this.border3,\n // this.colorGrey,\n // false\n // ),\n // `${this.dataQuoter.km}`,\n // ];\n const rightTable: TableCell[][] = [\n vehiclePriceCell,\n downPaymentCell,\n insuranceStateCell,\n insuranceCell,\n insuranceTypeCell,\n insuranceAndServicesCell,\n sustituteCarCell,\n gpsCell,\n protectionPlusCell,\n amountFinancedCell\n ];\n return rightTable;\n }\n\n private getCellConditional(condition: boolean, value: number | string) {\n const formatValue =\n typeof value === 'number' ? this.formatText(value) : value;\n return condition ? 'Incluido' : 'No Incluido';\n }\n\n private getHeaderVehiculo() {\n const brand = this.car.brand ? `${this.car.brand}` : '';\n const subBrand = this.car.subBrand ? `${this.car.subBrand}` : '';\n const version = this.car.version ? `${this.car.version}` : '';\n const year = this.car.year ? `${this.car.year}` : '';\n\n return `${brand} ${subBrand} ${version} ${year}`;\n }\n\n private getAmortizationPayment(): Content {\n return [\n {\n columns: [\n { width: '*', text: '' },\n {\n width: 'auto',\n style: 'tableTitle',\n table: {\n widths: [25, 75, 65, 65, 65, 65, 50, 65],\n body: [\n [\n this.getCellCss('No. Pago', '#fff', this.tipColor, true),\n this.getCellCss('Fecha de Pago', '#fff', this.tipColor, true),\n this.getCellCss('Capital', '#fff', this.tipColor, true),\n this.getCellCss('Interés', '#fff', this.tipColor, true),\n this.getCellCss('IVA Interés', '#fff', this.tipColor, true),\n this.getCellCss('Amortización', '#fff', this.tipColor, true),\n this.getCellCss('Seguro Personal', '#fff', this.tipColor, true),\n this.getCellCss(\n 'Pago Ordinario',\n '#fff',\n this.tipColor,\n true\n ),\n ],\n ],\n },\n alignment: 'center',\n layout: 'noBorders',\n },\n { width: '*', text: '' },\n ],\n },\n {\n columns: [\n { width: '*', text: '' },\n {\n width: 'auto',\n style: 'tableBody',\n table: {\n widths: [20, 70, 65, 65, 65, 65, 50, 60],\n body: this.getBodyMonths(),\n },\n layout: this.getLayoutQuitLines(),\n alignment: 'center'\n },\n { width: '*', text: '' },\n ],\n },\n ];\n }\n\n private get getBodyPagoInicial(): TableCell[][] {\n\n const tableCells: TableCell[][] = [\n [\n {\n text: 'Pago Inicial',\n colSpan: 2,\n alignment: 'center',\n fillColor: this.colorGrey,\n color: '#000',\n border: this.border4,\n bold: true,\n }, {},\n ],\n [\n this.getCellCss('Enganche', '#000', '#fff', false),\n `${this.formatText(\n this.deadlineSelect.initialPaymentDetail.downPayment.toFixed(2)\n )}`,\n ],\n [\n this.getCellCss('Comisión por apertura', '#000', '#fff', false),\n `${this.formatText(this.deadlineSelect.initialPaymentDetail.cxa.toFixed(2))}`,\n ],\n ];\n\n if (this.dataQuoter.insuranceType === InsuranceTypeIDsEnum.ANUAL_CONTADO_CON_PAGO_ANUAL || this.dataQuoter.insuranceType === InsuranceTypeIDsEnum.ANUAL_CONTADO_SIN_PAGO_ANUAL) {\n tableCells.push([\n this.getCellCss('Seguro de contado', '#000', '#fff', false),\n `${this.formatText(\n this.deadlineSelect.initialPaymentDetail.insurance.toFixed(2)\n )}`,\n ]);\n }\n\n const totalRow = [\n this.getCellCssHeader(\n 'Total pago inicial',\n '#fff',\n this.border3,\n this.tipColor,\n true\n ),\n {\n text: this.formatText(this.deadlineSelect.initialPaymentDetail.total.toFixed(2)),\n style: 'tableHeader',\n },\n ];\n\n tableCells.push(totalRow);\n return tableCells;\n }\n\n private getBodyMonths() {\n const table: TableCell[][] = [];\n\n for (const tableRow of this.tableAmortization) {\n const {\n paymentDate,\n paymentNumber,\n capital,\n interest,\n interestWithIva,\n amortization,\n lifeInsurance,\n ordinaryPayment\n } = tableRow;\n\n if (paymentNumber === 0) { continue; }\n table.push([\n paymentNumber,\n moment(paymentDate).format('DD/MM/YYYY'),\n this.formatText(capital),\n this.formatText(interest),\n this.formatText(interestWithIva),\n this.formatText(amortization),\n this.formatText(lifeInsurance),\n this.formatText(ordinaryPayment),\n ]);\n }\n\n return table;\n }\n\n\n\n private getBodyDetails(): TableCell[][] {\n return [\n [{ text: 'DETALLE DE SERVICIOS', alignment: 'center' }],\n [\n {\n text: [\n // this.getCellCss('Mantenimiento: ', '#000', '#fff', true),\n // mantenance,\n\n this.getCellCss('Rastreo Base: ', '#000', '#fff', true),\n tracking,\n\n this.getCellCss('Protección Plus: ', '#000', '#fff', true),\n protectPlus,\n\n this.getCellCss('Seguro Automotriz: ', '#000', '#fff', true),\n secure,\n\n this.getCellCss(\n 'Tipo de Auto para Auto Sustituto: ',\n '#000',\n '#fff',\n true\n ),\n substitute,\n\n this.getCellCss('Seguro Personal: ', '#000', '#fff', true),\n personalSecure,\n ],\n alignment: 'justify',\n },\n ],\n ];\n }\n\n private getBodyNotes(): TableCell[][] {\n const text = `${textNotes} \\nCAT del ${(this.deadlineSelect.cat * 100).toFixed(2)}% sin IVA calculado el ${this.quoterDate\n }. Para fines informativos y de comparación exclusivamente.`;\n return [\n [{ text: 'NOTAS', alignment: 'center' }],\n [\n {\n text,\n alignment: 'justify',\n },\n ],\n ];\n }\n\n private getPdfBase64(): Promise {\n return new Promise((resolve) => {\n this.pdfOpen?.getBase64((base64) => resolve(base64));\n });\n }\n}\n","
\n \n
","export const mantenance = 'Incluye la cobertura de un determinado número de servicios de mantenimiento de carnet de acuerdo con la marca de tu vehículo, así como de servicios correctivos y piezas de desgaste de acuerdo con la vigencia del contrato. \\n \\n';\nexport const tracking = 'Brindamos la localización satelital de tu vehículo con acción en caso de robo.\\n \\n';\nexport const protectPlus = `Protegemos tus unidades contra robo de accesorios, reembolso de deducible, pago de daños menores. Sujeto a los términos, condiciones y exclusiones de la póliza contratada con la compañía aseguradora. \\n \\n`;\nexport const secure = ' Seguro de cobertura amplia que te protege en caso de Robo y Daños Materiales. \\n \\n';\nexport const substitute = \"Subcompactos: Sedan compacto con cajuela de al menos cuatro plazas. SUV's: Vehículo de al menos 5 plazas. Sujeto a disponibilidad y de acuerdo con las características que describa la marca fabricante.\\n \\n\";\nexport const personalSecure = 'Seguro sujeto a los términos, condiciones y exclusiones de la póliza contratada con la compañía aseguradora: i) Cobertura por fallecimiento que podrá cubrir cualquier saldo, salvo aquellos adeudos que se hubiesen generado con anterioridad al siniestro y ii) Cobertura por desempleo involuntario que, ante la eventual pérdida involuntaria de empleo, cubrirá como máximo tres parcialidades que el acreditado se encuentre obligado a pagar. Cubre un evento al año sin importar si se consumen o no los 3 meses que ampara la cobertura.';\n\n\nexport const textNotes = `\nEl monto de las parcialidades calculadas, son meramente informativas y estarán sujetas a cambio sin previo aviso. Lo anterior derivado de la modificación de: (i) el precio de los vehículos; (ii) el análisis de crédito del usuario; y/o (iii) por cualquier otro motivo a discreción de BITCAR. \\n\nSujeto a autorización de crédito. La cotización tendrá una vigencia de 10 días contados a partir de la fecha marcada y no representa ninguna obligación de BITCAR hasta la firma de un contrato. \\n\nLa información aquí mostrada es de carácter informativo y no puede ser usada para fines fiscales, legales ni de ninguna otra índole. \\n\nAl continuar con el proceso de solicitud del crédito, Usted reconoce y acepta que éste no constituirá por sí mismo, ni deberá entenderse como una oferta vinculante para BITCAR, y tampoco crea obligación alguna sobre el otorgamiento de cualquier tipo de financiamiento, ni a la prestación de algún servicio o entrega de algún bien o producto, ya que lo anterior está sujeto a los procedimientos de análisis y criterios de aprobación internos de BITCAR y, en consecuencia, este podrá aceptar o denegar su solicitud a su exclusiva discreción y bajo su propio criterio. \\n\nEl concepto de pago 0 que se muestra en esta cotización no es el definitivo y, junto con las fechas reales de pago, dependen de la fecha real de desembolso del monto del crédito. \\n`;","export const hLineColor = (i: any, node: any) => (i === 0 || i === node.table.body.length) ? '#afafaf' : '#ececec'\n\nexport const vLineColor = (i: any, node: any) => (i === 0 || i === node.table.widths.length) ? '#afafaf' : '#ececec';\n\nexport const fillColor = (columnIndex: any) => columnIndex === 0 ? '#fe5000' : null;\n\nexport const quitVLineColor = (i: any, node: any) => (i === 0 || i === node.table.widths.length) ? '#fff' : '#ececec';\n\n\n","import { Component, Input, OnChanges, SimpleChanges, OnDestroy } from '@angular/core';\nimport pdfMake, { TCreatedPdf } from 'pdfmake/build/pdfmake';\nimport pdfFonts from 'pdfmake/build/vfs_fonts';\nimport { fillColor, hLineColor, vLineColor, quitVLineColor } from './helpers';\nimport { gests, legalAsistance, mantenance, secure, textNotes } from './txts';\n\nimport moment from 'moment';\nimport { Subject } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { DEFAULT_NAME_QUOTER } from 'src/app/pages/buro/pages/identidad/constants';\nimport { PeriodType, PeriodTypeName } from 'src/app/utils/utils';\n\npdfMake.vfs = pdfFonts.pdfMake.vfs;\n\n@Component({\n selector: 'app-pdf-ford',\n templateUrl: `./pdf-ford.component${environment.templateSuffix}.html`,\n styleUrls: ['./pdf-ford.component.scss'],\n})\nexport class PdfFordComponent implements OnDestroy, OnChanges {\n @Input() dataQuoter!: any;\n @Input() deadlineSelect!: any;\n @Input() stateSelected!: any;\n @Input() registrationState!: any;\n @Input() insuranceSelected!: any;\n @Input() car!: any;\n @Input() show: boolean = true;\n @Input() donwloadAtumatic: boolean = false;\n @Input() name: string = DEFAULT_NAME_QUOTER;\n @Input() allDeadlineSelect!: any;\n\n urlEncode64 = require('../../../mocks/logo.json');\n\n quoterDate: any = '';\n carObject: any;\n\n carIdCost: any = 'N/A';\n carLicenseCost: any = 'N/A';\n carManagmentCost: any = 'N/A';\n carVerificationCost: any = 'N/A';\n flete: any = 'N/A';\n total: any = 'N/A';\n\n paperWorkCost: any = 0;\n\n pdfOpen!: TCreatedPdf;\n protectionPlus: string = 'No';\n substituteCar: string = 'Si';\n\n agencyExpenses = 0;\n maintenanceExpenses = 0;\n\n tipColor = `${environment.templateSuffix === '' ? '#fe5000' : '#f15c22'}`;\n tipColorHeader = '#ececec';\n colorGrey = '#ececec';\n border1 = [true, true, false, false];\n border2 = [true, false, false, false];\n border3 = [true, false, false, true];\n\n formatter = new Intl.NumberFormat('es-MX');\n\n isAfin: boolean = false;\n isLeasing: boolean = false;\n isRandR: boolean = false;\n productType: string = '';\n allDeadlines: any;\n periodsMonthName = PeriodTypeName;\n // periodsMonthAll: string[] = ['period12', 'period24', 'period36', 'period48', 'period60']\n periodsMonthAll: string[] = ['period24']\n periodsMonth: any = []\n blueColor = '#fe5000';\n\n\n destroy: Subject = new Subject();\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.donwloadAtumatic) {\n this.createPdf();\n }\n }\n\n ngOnDestroy(): void {\n this.destroy.next(true);\n this.destroy.unsubscribe();\n }\n\n createPdf() {\n this.getDataCotization();\n this.loadPdf();\n }\n\n getDataCotization() {\n this.initParameters();\n }\n\n initParameters() {\n this.quoterDate = moment().format('DD/MM/YYYY');\n this.isAfin = `${this.deadlineSelect.concept}`.toLowerCase() === 'afin';\n this.isRandR = `${this.deadlineSelect.concept}`.toLowerCase() === 'rr';\n this.productType = `${this.deadlineSelect.concept}`.toLowerCase() === 'afin' || `${this.deadlineSelect.concept}`.toLowerCase() === 'rr' ? 'Rent2Buy' : this.deadlineSelect.concept;\n\n if (this.isAfin || this.isRandR) {\n this.carIdCost = this.formatText(\n this.deadlineSelect.deliveryCost.carIdCost\n );\n this.carLicenseCost = this.formatText(\n this.deadlineSelect.deliveryCost.carLicenseCost\n );\n this.carManagmentCost = this.formatText(\n this.deadlineSelect.deliveryCost.carManagmentCost\n );\n this.carVerificationCost = this.formatText(\n this.deadlineSelect.deliveryCost.carVerificationCost\n );\n this.flete = this.formatText(this.deadlineSelect.deliveryCost.flete);\n this.total = this.formatText(this.deadlineSelect.deliveryCost.total);\n\n this.agencyExpenses = 0;\n\n this.maintenanceExpenses = this.dataQuoter.includeMaintenance\n ? this.deadlineSelect.deliveryCost.maintenanceExpenses\n : 0;\n\n this.paperWorkCost =\n this.deadlineSelect.initialPaymentDetail.paperWorkCost;\n }\n\n this.protectionPlus = this.dataQuoter.protectionPlus ? 'Si' : 'No';\n this.substituteCar = this.dataQuoter.substituteCar ? 'Si' : 'No';\n\n const prodTemp: any = this.allDeadlineSelect[this.deadlineSelect.concept.toLowerCase()];\n this.periodsMonth = [];\n this.periodsMonthAll.forEach((period: any) => {\n if (prodTemp[period] !== undefined) {\n this.periodsMonth.push(period)\n }\n });\n }\n\n loadPdf() {\n let periodSelected = `period${this.deadlineSelect.period}`;\n\n let contentDefinition;\n\n\n contentDefinition = [\n \n {\n columns: [\n \n {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [118],\n body: ['']\n },\n layout: 'noBorders',\n }\n ],\n },\n {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [505],\n body: [\n [this.getCellCss('PAGO MENSUAL', '#fff', this.tipColor, true)],\n ],\n },\n layout: 'noBorders',\n },\n {\n columns: [\n this.getPaymentTitle(),\n this.getBodyPayment(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected)]),\n ],\n },\n {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [505],\n body: [\n [this.getCellCss('PAGO INICIAL', '#fff', this.tipColor, true)],\n ],\n },\n layout: 'noBorders',\n },\n {\n columns: [\n this.getInitialPaymentTitle(),\n\n this.getInitialPaymentBody(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected)]),\n ],\n },\n /* {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [505],\n body: [\n [this.getCellCss(`TRAMITES DE ENTREGA${this.isAfin || this.isRandR ? '' : ' (SÓLO LEASING)'}`, '#fff', this.tipColor, true)],\n ],\n },\n layout: 'noBorders',\n }, */\n /* {\n columns: [\n this.getDeliveryProceduresTitle(),\n this.getDeliveryProcedures(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected)]),\n ],\n }, */\n {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [505],\n body: [\n [this.productType === 'Rent2Buy' ? this.getCellCss(`VALOR DE COMPRA`, '#fff', this.tipColor, true) : null],\n ],\n },\n layout: 'noBorders',\n },\n {\n columns: [\n this.productType === 'Rent2Buy' ? this.getPurchaseValueTitle() : null,\n this.productType === 'Rent2Buy' ? this.getPurchaseValues(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected)]) : null,\n ],\n }\n ]\n\n\n\n const pdfDefinition: any = {\n pageMargins: [40, 80, 40, 60],\n header: this.getHeader(),\n content: [\n {\n columns: this.getHeadersAfinRR(),\n },\n contentDefinition,\n {\n width: 'auto',\n style: 'tableExample',\n table: {\n body: this.getBodyDetails(),\n },\n layout: 'lightHorizontalLines',\n },\n {\n width: 'auto',\n style: 'tableExample',\n table: {\n body: this.getBodyNotesRR(),\n },\n layout: 'lightHorizontalLines',\n },\n ],\n styles: {\n header: {\n fontSize: 10,\n bold: true,\n alignment: 'justify',\n },\n tableFirst: {\n fontSize: 8,\n margin: [0, 0, 0, 10],\n },\n tableExample: {\n width: 500,\n fontSize: 8,\n margin: [0, 5, 0, 10],\n },\n tableTitle: {\n fontSize: 10,\n margin: [1, 10, 0, 0],\n bold: true,\n },\n alingCenter: {\n alignment: 'center',\n },\n tableBody: {\n fontSize: 8,\n margin: [0, 0, 0, 10],\n },\n tableHeader: {\n bold: true,\n fontSize: 9,\n color: 'black',\n },\n negritas: {\n blod: true,\n },\n headerTable: {\n bold: true,\n background: this.tipColor,\n alignment: 'center',\n },\n backColor: this.getBackColor(),\n },\n info: {\n title: this.name\n }\n };\n this.pdfOpen = pdfMake.createPdf(pdfDefinition);\n this.openPdf();\n }\n\n openPdf() {\n this.pdfOpen.open();\n }\n\n getCellCss(text: string, color: string, fillColorCol: string, bold: boolean) {\n return {\n text,\n color,\n fillColor: fillColorCol,\n bold,\n };\n }\n\n getCellCssHeader(\n text: string,\n color: string,\n border: boolean[],\n fillColorCol: string,\n bold: boolean\n ) {\n return {\n border,\n text,\n color,\n fillColor: fillColorCol,\n bold,\n };\n }\n\n getLayout() {\n return { hLineColor, vLineColor };\n }\n\n getLayoutQuitLines() {\n return { vLineColor: quitVLineColor, hLineColor: '#ececec' };\n }\n\n getBackColor() {\n return { fillColor };\n }\n\n getRate() {\n let rate = 0;\n const period = this.deadlineSelect.period;\n rate = this.deadlineSelect[`tasaFinalCxA${period}`];\n return `${rate * 100}%`;\n }\n\n formatText(element: any) {\n return `$${this.formatter.format(element)}`;\n }\n formatTextRound(element: any) {\n return `$${this.formatter.format(element.toFixed(2))}`;\n }\n\n getHeader() {\n return [\n {\n table: {\n widths: '*',\n body: [\n [\n {\n border: [false, false, false, false],\n fillColor: this.tipColor,\n image: `data:image/png;base64,${this.urlEncode64.logoUrlBase64}`,\n width: 110,\n height: 40,\n margin: [25, 10, 0, 10],\n },\n ],\n ],\n },\n },\n ];\n }\n\n /**\n * Primer Tabla Infomación General\n * Fecha | Vehiculo | Precio | Kilometraje | Uso Permitido | Plazo\n * @return {*} \n * @memberof PdfFordComponent\n */\n getHeadersAfinRR() {\n return [\n {\n width: '*',\n style: 'tableFirst',\n table: {\n widths: [90, 130],\n body: [\n [\n this.getCellCssHeader(\n 'Fecha',\n '#000',\n this.border1,\n this.colorGrey,\n true\n ),\n `${this.quoterDate}`,\n ],\n [\n this.getCellCssHeader(\n 'Vehículo',\n '#000',\n this.border2,\n this.colorGrey,\n true\n ),\n this.getHeaderVehiculo(),\n ],\n [\n this.getCellCssHeader(\n 'Precio del Auto con IVA',\n '#000',\n this.border2,\n this.colorGrey,\n true\n ),\n `$${this.formatter.format(this.car.priceWithIva)}`,\n ],\n [\n this.getCellCssHeader(\n 'Kilometraje max. anual',\n '#000',\n this.border2,\n this.colorGrey,\n true\n ),\n `${this.formatter.format(this.dataQuoter.km)}`,\n ],\n [\n this.getCellCssHeader(\n 'Uso Permitido',\n '#000',\n this.border2,\n this.colorGrey,\n true\n ),\n `Particular`,\n ],\n [\n this.getCellCssHeader(\n 'Plazo Elegido',\n '#000',\n this.border3,\n this.colorGrey,\n true\n ),\n `${this.deadlineSelect.period} Meses`,\n ]\n ]\n },\n layout: this.getLayout(),\n },\n {\n width: '*',\n style: 'tableFirst',\n table: {\n widths: [90, 130],\n margin: [0, 5, 15, 10],\n body: [\n [\n this.getCellCssHeader(\n 'Emplacamiento en',\n '#000',\n this.border1,\n this.colorGrey,\n false\n ),\n `${this.isEmpty(this.registrationState) ? this.stateSelected.stateName : this.registrationState}`,\n ],\n [\n this.getCellCssHeader(\n 'Entidad de Seguro',\n '#000',\n this.border2,\n this.colorGrey,\n false\n ),\n `${this.stateSelected.stateName}`,\n ],\n [\n this.getCellCssHeader(\n 'Aseguradora de Auto',\n '#000',\n this.border2,\n this.colorGrey,\n false\n ),\n `${this.insuranceSelected?.insurance?.key ?? 'Por confirmar'}`,\n ],\n [\n this.getCellCssHeader(\n 'Producto',\n '#000',\n this.border3,\n this.colorGrey,\n false\n ),\n `${this.productType}`,\n ],\n [\n this.getCellCssHeader(\n 'Monto Total del Seguro',\n '#000',\n this.border3,\n this.colorGrey,\n false\n ),\n `$${this.formatter.format(this.deadlineSelect.insuranceCarTotal)}`\n ],\n ],\n },\n layout: this.getLayout(),\n },\n ];\n }\n /**\n * Función que retorna el nombre del vehículo ya formateado\n * Marca | Submarca | Versión\n * @memberof PdfFordComponent\n */\n getHeaderVehiculo() {\n let brand = this.car.brand ? `${this.car.brand}` : '';\n let subBrand = this.car.subBrand ? `${this.car.subBrand}` : '';\n let version = this.car.version ? this.car.version : '';\n\n return `${brand} ${subBrand} ${version}`;\n }\n\n /**\n * Primer Tabla de Pagos - Detalle\n * PAGO MENSUAL \n * Renta Base | Asistencia Legal | Admon. de Mantenimiento | Seguro Automotriz | Total con IVA\n * @return {*} \n * @memberof PdfFordComponent\n */\n getPaymentTitle() {\n return [\n [\n {\n style: 'tableBody',\n table: {\n widths: [110],\n body: [\n [\n this.getCellCss('Concepto', '#000', this.colorGrey, true),\n ],\n ['Renta Base',],\n ['Asistencia Legal'],\n ['Admon. de Mantenimiento'],\n ['Seguro Automotriz'],\n [\n {\n text: 'Total con IVA',\n style: 'tableHeader',\n }\n ],\n ],\n },\n layout: this.getLayoutQuitLines(),\n },\n ],\n ];\n }\n\n getInitialPaymentTitle() {\n let data: any = [\n [ this.getCellCss('Concepto', '#000', this.colorGrey, true)],\n ['Enganche'],\n ]\n\n if (\n this.deadlineSelect.trasladoCost !== 0 &&\n this.deadlineSelect.trasladoCost !== undefined\n ) {\n data.push([\n 'Costo de traslado'\n ]);\n }\n\n let total = [\n {\n text: 'Total',\n style: 'tableHeader',\n },\n ]\n\n data.push(total)\n\n\n return [\n [\n {\n style: 'tableBody',\n table: {\n widths: [110],\n body: data,\n },\n layout: this.getLayoutQuitLines(),\n },\n ],\n ];\n }\n\n getDeliveryProceduresTitle() {\n return [\n [\n {\n style: 'tableBody',\n table: {\n widths: [110],\n body: [\n [\n this.getCellCss('Concepto', '#000', this.colorGrey, true),\n ],\n ['Alta de Placas'],\n ['Tenencias / Derechos'],\n ['Gestorías'],\n ['Verificación'],\n [\n { text: 'Total', style: 'tableHeader' },\n ],\n ],\n },\n layout: this.getLayoutQuitLines(),\n },\n ],\n ];\n }\n\n /**\n * \n * @return {*} \n * @memberof PdfComponent\n * @author victor.mendez\n */\n getPurchaseValueTitle() {\n return [\n [\n {\n style: 'tableBody',\n table: {\n widths: [110],\n body: [\n [\n this.getCellCss('Concepto', '#000', this.colorGrey, true),\n ],\n ['Valor de compra'],\n\n ],\n },\n layout: this.getLayoutQuitLines(),\n },\n ],\n ];\n }\n\n /**\n * Función que retorna el cuerpo de la tabla de detalles, con los valores del valor de compra\n * @param {string} numPeriod\n * @return {*} \n * @memberof PdfComponent\n * @author victor.mendez\n */\n getPurchaseValues(numPeriod: string) {\n const period = numPeriod as PeriodType\n const deadlineSelected = this.allDeadlineSelect[this.deadlineSelect.concept.toLowerCase()][period];\n\n return [\n [\n {\n style: 'tableBody',\n table: {\n widths: [110],\n body: [\n [\n this.getCellCss('Valores', '#000', this.colorGrey, true),\n ],\n [this.formatText(deadlineSelected.purchaseValue.toFixed(2))],\n ],\n },\n layout: this.getLayoutQuitLines(),\n },\n ],\n ];\n }\n\n getBodyPayment(numPeriod: string) {\n const period = numPeriod as PeriodType\n const deadlineSelected = this.allDeadlineSelect[this.deadlineSelect.concept.toLowerCase()][period]\n\n return [\n [\n {\n style: 'tableBody',\n table: {\n widths: [110],\n body: [\n [\n this.getCellCss('Valores', '#000', this.colorGrey, true),\n ],\n [\n this.formatText(\n deadlineSelected.monthlyPaymentDetail.monthlyRate ?? ''\n ),\n ],\n [`Incluido en renta`], // Asistencia legal\n [`Incluido en renta`], // admon de mantenimiento\n [\n this.formatText(\n deadlineSelected.monthlyPaymentDetail.insuranceCar //Seguro automotriz\n ),\n ],\n [\n {\n text: this.formatTextRound(deadlineSelected.monthlyPaymentDetail.total ),\n style: 'tableHeader',\n },\n ],\n ],\n },\n layout: this.getLayoutQuitLines(),\n },\n ],\n ];\n }\n\n getInitialPaymentBody(numPeriod: string) {\n const period = numPeriod as PeriodType\n const deadlineSelected = this.allDeadlineSelect[this.deadlineSelect.concept.toLowerCase()][period]\n\n\n let data: any = [\n [this.getCellCss('Valores', '#000', this.colorGrey, true)],\n [this.formatText(deadlineSelected.initialPayment || 0 ) ] // Enganche\n ]\n\n let total = [\n {\n text: this.formatText(deadlineSelected.initialPayment || 0), // Total pago inicial\n style: 'tableHeader',\n },\n ]\n\n if (this.isAfin)\n data.push(\n [\n `${deadlineSelected.initialPaymentDetail.contractRatification ? this.formatText(deadlineSelected.initialPaymentDetail.contractRatification || 0) : 'N/A'}`\n ],\n total\n );\n else\n data.push(total)\n\n\n return [\n [\n {\n style: 'tableBody',\n table: {\n widths: [110],\n body: data,\n },\n layout: this.getLayoutQuitLines(),\n },\n ],\n ];\n }\n\n /* getDeliveryProcedures(numPeriod: string) {\n const period = numPeriod as PeriodType\n const deadlineSelected = this.allDeadlineSelect[this.deadlineSelect.concept.toLowerCase()][period]\n return [\n [\n {\n style: 'tableBody',\n table: {\n widths: [110],\n body: [\n [\n this.getCellCss('Valores', '#000', this.colorGrey, true),\n ],\n [`${this.deliveryCost('carIdCost', deadlineSelected)}`],\n [`${this.deliveryCost('carLicenseCost', deadlineSelected)}`],\n [`${this.deliveryCost('carManagmentCost', deadlineSelected)}`],\n [`${this.deliveryCost('carVerificationCost', deadlineSelected)}`],\n [{ text: `${this.deliveryCost('total', deadlineSelected)}`, style: 'tableHeader' }],\n ],\n },\n layout: this.getLayoutQuitLines(),\n },\n ],\n ];\n } */\n\n private deliveryCost(field: string, deadlineSelected: any) {\n if (this.isLeasing || this.isAfin || this.isRandR) {\n return this.formatText(deadlineSelected.deliveryCost[field]);\n } else {\n return 'N/A'\n }\n }\n\n\n getBodyPagoInicial() {\n let data: any = [\n [\n this.getCellCss('Concepto', '#000', this.colorGrey, true),\n this.getCellCss('Valores', '#000', this.colorGrey, true),\n ],\n [\n 'Rentas Adelantadas',\n this.formatText(this.deadlineSelect.initialPaymentDetail.advancedRent),\n ] \n ];\n\n if (\n this.deadlineSelect.trasladoCost !== 0 &&\n this.deadlineSelect.trasladoCost !== undefined\n ) {\n data.push([\n 'Costo de traslado',\n this.formatText(this.deadlineSelect.trasladoCost),\n ]);\n }\n\n let total = [\n {\n text: 'Total',\n style: 'tableHeader',\n },\n {\n text: this.formatText(\n this.deadlineSelect.initialPaymentDetail.total +\n (this.deadlineSelect?.trasladoCost || 0)\n ),\n style: 'tableHeader',\n },\n ];\n\n if (this.isAfin)\n data.push(\n [\n 'Ratificación de Contrato',\n this.formatText(\n this.deadlineSelect.initialPaymentDetail.contractRatification\n ),\n ],\n total\n );\n else data.push(total);\n\n return data;\n }\n\n getBodyMonths() {\n const period = this.deadlineSelect.period;\n const monthlyTotal = this.formatText(\n this.deadlineSelect.monthlyPaymentDetail.total\n );\n const arr = [];\n\n for (let i = 0; i < period; i++) {\n arr.push([`${i + 1}`, monthlyTotal]);\n }\n\n return arr;\n }\n\n getBodyDetails() {\n return [\n [{ text: 'DETALLE DE SERVICIOS', alignment: 'center' }],\n [\n {\n text: [\n this.getCellCss('\\n Asistencia legal: ', '#000', '#fff', true),\n legalAsistance,\n\n this.getCellCss(\n 'Administración de Mantenimiento: ',\n '#000',\n '#fff',\n true\n ),\n mantenance,\n\n this.getCellCss('Seguro Automotriz: ', '#000', '#fff', true),\n secure,\n\n this.getCellCss('Gestoría Inicial: ', '#000', '#fff', true),\n gests,\n ],\n alignment: 'justify',\n },\n ],\n ];\n }\n\n getBodyNotesRR() {\n return [\n [{ text: 'NOTAS', alignment: 'center' }],\n [\n {\n text: `${textNotes}`,\n alignment: 'justify',\n }\n ]\n ];\n }\n\n getPdfBase64(): Promise {\n return new Promise((resolve) => {\n this.pdfOpen.getBase64((base64) => resolve(base64));\n });\n }\n\n getPeriodName(numPeriod: string) {\n const period = numPeriod as PeriodType\n return this.periodsMonthName[period];\n }\n\n\n isEmpty(value: string) {\n return value === '' || value === undefined || value === null;\n }\n}\n","
\n \n
","\n\nexport const legalAsistance = 'Una red de profesionales en toda la república mexicana le apoyan las 24 horas los 365 días del año durante la vigencia de su arrendamiento, de ser necesario de manera presencial, en caso de accidente o robo de la unidad, además de la acreditación de la propiedad o la liberación de la unidad ante autoridades competentes. \\n \\n'\n\nexport const mantenance = 'Plataforma con información de la unidad y recordatorios para servicios. \\n \\n';\n\nexport const tracking = 'Te brindamos la localización satelital de tu vehículo con acción en caso de robo.\\n \\n';\n\nexport const secure = 'Seguro de cobertura amplia que te protege en caso de Robo y Daños Materiales. \\n \\n';\n\nexport const gests = 'Los montos a pagar por gestoria inicial dependen de la entidad de entrega y alta de placas de la unidad, en este sentido dichos montos serán confirmados mas adelante y deberán ser cubiertos junto con la primera renta.\\n';\n\n\n\nexport const textNotes = `\nEl monto de las mensualidades de pago calculadas o de cualquier servicio, son meramente informativas y estarán sujetas a cambio sin previo aviso. Lo anterior derivado de la modificación de: (i) el precio de los vehículos; (ii) y/o por cualquier otro motivo a discreción de BITCAR. \\n\nCosto por kilómetro adicional: $2.00 MXN más IVA. \\n\nSujeto a autorización de crédito. La cotización tendrá una vigencia de 10 días contados a partir de la fecha marcada y no representa ninguna obligación de BITCAR hasta la firma de un contrato. \\n\nLa información aquí mostrada es de carácter informativo y no puede ser usada para fines fiscales, legales ni de ninguna otra índole. \\n\nAl continuar con el proceso de solicitud del financiamiento respectivo, Usted reconoce y acepta que este no constituirá por sí mismo, ni deberá entenderse como una oferta vinculante para BITCAR, y tampoco crea obligación alguna sobre el otorgamiento de cualquier tipo de financiamiento, ni a la prestación de algún servicio o entrega de algún bien o producto ya que lo anterior está sujeto a los procedimientos de análisis y criterios de aprobación internos de BITCAR y, en consecuencia, este podrá aceptar o denegar su solicitud a su exclusiva discreción y bajo su propio criterio. \\n`\n\n","export const hLineColor = (i: any, node: any) => (i === 0 || i === node.table.body.length) ? '#afafaf' : '#ececec'\n\nexport const vLineColor = (i: any, node: any) => (i === 0 || i === node.table.widths.length) ? '#afafaf' : '#ececec';\n\nexport const fillColor = (columnIndex: any) => columnIndex === 0 ? '#fe5000' : null;\n\nexport const quitVLineColor = (i: any, node: any) => (i === 0 || i === node.table.widths.length) ? '#fff' : '#ececec';\n\n\n","import { Component, Input, OnChanges, SimpleChanges, OnDestroy } from '@angular/core';\nimport pdfMake, { TCreatedPdf } from 'pdfmake/build/pdfmake';\nimport pdfFonts from 'pdfmake/build/vfs_fonts';\nimport { fillColor, hLineColor, vLineColor, quitVLineColor } from './helpers';\nimport { gests, legalAsistance, manStd, mantenance, personalSecure, protectPlus, secure, substitute, textNoteRandR, textNotes, tracking } from './txts';\n\nimport moment from 'moment';\nimport { Subject } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { DEFAULT_NAME_QUOTER } from 'src/app/pages/buro/pages/identidad/constants';\nimport { PeriodType, PeriodTypeName } from 'src/app/utils/utils';\n\npdfMake.vfs = pdfFonts.pdfMake.vfs;\n\n@Component({\n selector: 'app-pdf',\n templateUrl: `./pdf.component${environment.templateSuffix}.html`,\n styleUrls: ['./pdf.component.scss'],\n})\nexport class PdfComponent implements OnDestroy, OnChanges {\n @Input() dataQuoter!: any;\n @Input() deadlineSelect!: any;\n @Input() stateSelected!: any;\n @Input() insuranceSelected!: any;\n @Input() car!: any;\n @Input() show: boolean = true;\n @Input() donwloadAtumatic: boolean = false;\n @Input() name: string = DEFAULT_NAME_QUOTER;\n @Input() allDeadlineSelect!: any;\n\n urlEncode64 = require('../../../mocks/logo.json');\n\n quoterDate: any = '';\n carObject: any;\n\n carIdCost: any = 'N/A';\n carLicenseCost: any = 'N/A';\n carManagmentCost: any = 'N/A';\n carVerificationCost: any = 'N/A';\n flete: any = 'N/A';\n total: any = 'N/A';\n\n paperWorkCost: any = 0;\n\n pdfOpen!: TCreatedPdf;\n protectionPlus: string = 'No';\n substituteCar: string = 'Si';\n\n agencyExpenses = 0;\n maintenanceExpenses = 0;\n\n tipColor = `${environment.templateSuffix === '' ? '#fe5000' : '#f15c22'}`;\n tipColorHeader = '#ececec';\n colorGrey = '#ececec';\n border1 = [true, true, false, false];\n border2 = [true, false, false, false];\n border3 = [true, false, false, true];\n\n formatter = new Intl.NumberFormat('es-MX');\n\n isAfin: boolean = false;\n isLeasing: boolean = false;\n isRandR: boolean = false;\n productType: string = '';\n allDeadlines: any;\n periodsMonthName = PeriodTypeName;\n periodsMonthAll: string[] = ['period12', 'period24', 'period36', 'period48', 'period60']\n periodsMonth: any = []\n blueColor = '#fe5000';\n\n\n destroy: Subject = new Subject();\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.donwloadAtumatic) {\n this.createPdf();\n }\n }\n\n ngOnDestroy(): void {\n this.destroy.next(true);\n this.destroy.unsubscribe();\n }\n\n createPdf() {\n this.getDataCotization();\n this.loadPdf();\n }\n\n getDataCotization() {\n this.initParameters();\n }\n\n initParameters() {\n this.quoterDate = moment().format('DD/MM/YYYY');\n this.isLeasing = `${this.deadlineSelect.concept}`.toLowerCase() === 'leasing';\n this.isAfin = `${this.deadlineSelect.concept}`.toLowerCase() === 'afin';\n this.isRandR = `${this.deadlineSelect.concept}`.toLowerCase() === 'rr';\n this.productType = `${this.deadlineSelect.concept}`.toLowerCase() === 'afin' || `${this.deadlineSelect.concept}`.toLowerCase() === 'rr' ? 'Rent2Buy' : this.deadlineSelect.concept;\n\n if (this.isLeasing || this.isAfin || this.isRandR) {\n this.carIdCost = this.formatText(\n this.deadlineSelect.deliveryCost.carIdCost\n );\n this.carLicenseCost = this.formatText(\n this.deadlineSelect.deliveryCost.carLicenseCost\n );\n this.carManagmentCost = this.formatText(\n this.deadlineSelect.deliveryCost.carManagmentCost\n );\n this.carVerificationCost = this.formatText(\n this.deadlineSelect.deliveryCost.carVerificationCost\n );\n this.flete = this.formatText(this.deadlineSelect.deliveryCost.flete);\n this.total = this.formatText(this.deadlineSelect.deliveryCost.total);\n\n this.agencyExpenses = 0;\n\n this.maintenanceExpenses = this.dataQuoter.includeMaintenance\n ? this.deadlineSelect.deliveryCost.maintenanceExpenses\n : 0;\n\n this.paperWorkCost =\n this.deadlineSelect.initialPaymentDetail.paperWorkCost;\n } else {\n this.carIdCost = 'N/A';\n this.carLicenseCost = 'N/A';\n this.carManagmentCost = 'N/A';\n this.carVerificationCost = 'N/A';\n this.flete = 'N/A';\n this.total = 'N/A';\n\n this.paperWorkCost = 0;\n this.agencyExpenses = this.deadlineSelect.deliveryCost.agencyExpenses ? this.deadlineSelect.deliveryCost.agencyExpenses : '0';\n this.maintenanceExpenses = this.deadlineSelect.deliveryCost.maintenanceExpenses ? this.deadlineSelect.deliveryCost.maintenanceExpenses : '0';\n }\n\n this.protectionPlus = this.dataQuoter.protectionPlus ? 'Si' : 'No';\n this.substituteCar = this.dataQuoter.substituteCar ? 'Si' : 'No';\n\n const prodTemp: any = this.allDeadlineSelect[this.deadlineSelect.concept.toLowerCase()];\n this.periodsMonth = [];\n this.periodsMonthAll.forEach((period: any) => {\n if (prodTemp[period] !== undefined) {\n this.periodsMonth.push(period)\n }\n });\n }\n\n loadPdf() {\n let periodSelected = `period${this.deadlineSelect.period}`;\n\n let contentDefinition;\n if ((this.periodsMonth?.indexOf(periodSelected!) + 1) > (this.periodsMonth.length - 1)) {\n contentDefinition = [\n {\n columns: [\n {\n style: ['tableMargin', 'alingCenter'],\n table: {\n widths: [505],\n body: [\n [''],\n ],\n },\n layout: 'noBorders',\n },\n ]\n },\n {\n columns: [\n {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [110],\n body: [\n [''],\n ],\n },\n layout: 'noBorders',\n },\n {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [118],\n body: [\n [this.getCellCss(this.getPeriodName(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) - 2]), '#000', this.tipColorHeader, true)],\n ],\n },\n layout: 'noBorders',\n },\n {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [118],\n body: [\n [this.getCellCss(this.getPeriodName(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) - 1]), '#000', this.tipColorHeader, true)],\n ],\n },\n layout: 'noBorders',\n },\n {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [118],\n body: [\n [this.getCellCss(this.getPeriodName(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected)]), '#fff', this.blueColor, true)],\n ],\n },\n layout: 'noBorders',\n },\n ],\n },\n {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [505],\n body: [\n [this.getCellCss('PAGO MENSUAL', '#fff', this.tipColor, true)],\n ],\n },\n layout: 'noBorders',\n },\n {\n columns: [\n this.getPaymentTitle(),\n this.getBodyPayment(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) - 2]),\n this.getBodyPayment(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) - 1]),\n this.getBodyPayment(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected)]),\n ],\n },\n {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [505],\n body: [\n [this.getCellCss('PAGO INICIAL', '#fff', this.tipColor, true)],\n ],\n },\n layout: 'noBorders',\n },\n {\n columns: [\n this.getInitialPaymentTitle(),\n this.getInitialPaymentBody(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) - 2]),\n this.getInitialPaymentBody(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) - 1]),\n this.getInitialPaymentBody(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected)]),\n ],\n },\n {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [505],\n body: [\n [this.getCellCss(`TRAMITES DE ENTREGA${this.isAfin || this.isRandR ? '' : ' (SÓLO LEASING)'}`, '#fff', this.tipColor, true)],\n ],\n },\n layout: 'noBorders',\n },\n {\n columns: [\n this.getDeliveryProceduresTitle(),\n this.getDeliveryProcedures(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) - 2]),\n this.getDeliveryProcedures(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) - 1]),\n this.getDeliveryProcedures(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected)]),\n ],\n },\n {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [505],\n body: [\n [this.productType === 'Rent2Buy' ? this.getCellCss(`VALOR DE COMPRA`, '#fff', this.tipColor, true) : null],\n ],\n },\n layout: 'noBorders',\n },\n {\n columns: [\n this.productType === 'Rent2Buy' ? this.getPurchaseValueTitle() : null,\n this.productType === 'Rent2Buy' ? this.getPurchaseValues(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) - 2]) : null,\n this.productType === 'Rent2Buy' ? this.getPurchaseValues(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) - 1]) : null,\n this.productType === 'Rent2Buy' ? this.getPurchaseValues(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected)]) : null\n ],\n }\n ]\n\n\n } else if ((this.periodsMonth?.indexOf(periodSelected!) - 1) < 0) {\n contentDefinition = [\n {\n columns: [\n {\n style: ['tableMargin', 'alingCenter'],\n table: {\n widths: [505],\n body: [\n [''],\n ],\n },\n layout: 'noBorders',\n },\n ]\n },\n {\n columns: [\n {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [110],\n body: [\n [''],\n ],\n },\n layout: 'noBorders',\n },\n {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [118],\n body: [\n [this.getCellCss(this.getPeriodName(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected)]), '#fff', this.blueColor, true)],\n ],\n },\n layout: 'noBorders',\n },\n {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [118],\n body: [\n [this.getCellCss(this.getPeriodName(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) + 1]), '#000', this.tipColorHeader, true)],\n ],\n },\n layout: 'noBorders',\n },\n {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [118],\n body: [\n [this.getCellCss(this.getPeriodName(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) + 2]), '#000', this.tipColorHeader, true)],\n ],\n },\n layout: 'noBorders',\n },\n ],\n },\n {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [505],\n body: [\n [this.getCellCss('PAGO MENSUAL', '#fff', this.tipColor, true)],\n ],\n },\n layout: 'noBorders',\n },\n {\n columns: [\n this.getPaymentTitle(),\n this.getBodyPayment(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected)]),\n this.getBodyPayment(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) + 1]),\n this.getBodyPayment(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) + 2]),\n ],\n },\n {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [505],\n body: [\n [this.getCellCss('PAGO INICIAL', '#fff', this.tipColor, true)],\n ],\n },\n layout: 'noBorders',\n },\n {\n columns: [\n this.getInitialPaymentTitle(),\n this.getInitialPaymentBody(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected)]),\n this.getInitialPaymentBody(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) + 1]),\n this.getInitialPaymentBody(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) + 2]),\n ],\n },\n {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [505],\n body: [\n [this.getCellCss(`TRAMITES DE ENTREGA${this.isAfin || this.isRandR ? '' : ' (SÓLO LEASING)'}`, '#fff', this.tipColor, true)],\n ],\n },\n layout: 'noBorders',\n },\n {\n columns: [\n this.getDeliveryProceduresTitle(),\n this.getDeliveryProcedures(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected)]),\n this.getDeliveryProcedures(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) + 1]),\n this.getDeliveryProcedures(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) + 2]),\n ],\n },\n {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [505],\n body: [\n [this.productType === 'Rent2Buy' ? this.getCellCss(`VALOR DE COMPRA`, '#fff', this.tipColor, true) : null],\n ],\n },\n layout: 'noBorders',\n },\n {\n columns: [\n this.productType === 'Rent2Buy' ? this.getPurchaseValueTitle() : null,\n this.productType === 'Rent2Buy' ? this.getPurchaseValues(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected)]) : null,\n this.productType === 'Rent2Buy' ? this.getPurchaseValues(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) + 1]) : null,\n this.productType === 'Rent2Buy' ? this.getPurchaseValues(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) + 2]) : null\n ],\n }\n ]\n } else {\n contentDefinition = [\n {\n columns: [\n {\n style: ['tableMargin', 'alingCenter'],\n table: {\n widths: [505],\n body: [\n [''],\n ],\n },\n layout: 'noBorders',\n },\n ]\n },\n {\n columns: [\n {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [110],\n body: [\n [''],\n ],\n },\n layout: 'noBorders',\n },\n {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [118],\n body: [\n [this.getCellCss(this.getPeriodName(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) - 1]), '#000', this.tipColorHeader, true)],\n ],\n },\n layout: 'noBorders',\n },\n {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [118],\n body: [\n [this.getCellCss(this.getPeriodName(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected)]), '#fff', this.blueColor, true)],\n ],\n },\n layout: 'noBorders',\n },\n {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [118],\n body: [\n [this.getCellCss(this.getPeriodName(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) + 1]), '#000', this.tipColorHeader, true)],\n ],\n },\n layout: 'noBorders',\n },\n ],\n },\n {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [505],\n body: [\n [this.getCellCss('PAGO MENSUAL', '#fff', this.tipColor, true)],\n ],\n },\n layout: 'noBorders',\n },\n {\n columns: [\n this.getPaymentTitle(),\n this.getBodyPayment(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) - 1]),\n this.getBodyPayment(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected)]),\n this.getBodyPayment(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) + 1]),\n ],\n },\n {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [505],\n body: [\n [this.getCellCss('PAGO INICIAL', '#fff', this.tipColor, true)],\n ],\n },\n layout: 'noBorders',\n },\n {\n columns: [\n this.getInitialPaymentTitle(),\n this.getInitialPaymentBody(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) - 1]),\n this.getInitialPaymentBody(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected)]),\n this.getInitialPaymentBody(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) + 1]),\n ],\n },\n {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [505],\n body: [\n [this.getCellCss(`TRAMITES DE ENTREGA${this.isAfin || this.isRandR ? '' : ' (SÓLO LEASING)'}`, '#fff', this.tipColor, true)],\n ],\n },\n layout: 'noBorders',\n },\n {\n columns: [\n this.getDeliveryProceduresTitle(),\n this.getDeliveryProcedures(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) - 1]),\n this.getDeliveryProcedures(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected)]),\n this.getDeliveryProcedures(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) + 1]),\n ],\n },\n {\n style: ['tableTitle', 'alingCenter'],\n table: {\n widths: [505],\n body: [\n [this.productType === 'Rent2Buy' ? this.getCellCss(`VALOR DE COMPRA`, '#fff', this.tipColor, true) : null],\n ],\n },\n layout: 'noBorders',\n },\n {\n columns: [\n this.productType === 'Rent2Buy' ? this.getPurchaseValueTitle() : null,\n this.productType === 'Rent2Buy' ? this.getPurchaseValues(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) - 1]) : null,\n this.productType === 'Rent2Buy' ? this.getPurchaseValues(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected)]) : null,\n this.productType === 'Rent2Buy' ? this.getPurchaseValues(this.periodsMonth[this.periodsMonth?.indexOf(periodSelected) + 1]) : null\n ],\n }\n ]\n }\n\n\n const pdfDefinition: any = {\n pageMargins: [40, 80, 40, 60],\n header: this.getHeader(),\n content: [\n {\n columns: this.productType === 'Rent2Buy' ? this.getHeadersAfinRR() : this.getHeaders(),\n },\n contentDefinition,\n {\n width: 'auto',\n style: 'tableExample',\n table: {\n widths: [110],\n body: [\n [''],\n ],\n },\n layout: 'lightHorizontalLines',\n },\n {\n width: 'auto',\n style: 'tableExample',\n table: {\n widths: [110],\n body: [\n [''],\n ],\n },\n layout: 'lightHorizontalLines',\n },\n {\n width: 'auto',\n style: 'tableExample',\n table: {\n body: this.getBodyDetails(),\n },\n layout: 'lightHorizontalLines',\n },\n {\n width: 'auto',\n style: 'tableExample',\n table: {\n body: this.isRandR ? this.getBodyNotesRR() : this.getBodyNotes(),\n },\n layout: 'lightHorizontalLines',\n },\n ],\n styles: {\n header: {\n fontSize: 10,\n bold: true,\n alignment: 'justify',\n },\n tableFirst: {\n fontSize: 8,\n margin: [0, 0, 0, 10],\n },\n tableExample: {\n width: 500,\n fontSize: 8,\n margin: [0, 5, 0, 10],\n },\n tableTitle: {\n fontSize: 10,\n margin: [1, 10, 0, 0],\n bold: true,\n },\n alingCenter: {\n alignment: 'center',\n },\n tableBody: {\n fontSize: 8,\n margin: [0, 0, 0, 10],\n },\n tableHeader: {\n bold: true,\n fontSize: 9,\n color: 'black',\n },\n negritas: {\n blod: true,\n },\n headerTable: {\n bold: true,\n background: this.tipColor,\n alignment: 'center',\n },\n backColor: this.getBackColor(),\n },\n info: {\n title: this.name\n }\n };\n this.pdfOpen = pdfMake.createPdf(pdfDefinition);\n this.openPdf();\n }\n\n openPdf() {\n this.pdfOpen.open();\n }\n\n getCellCss(text: string, color: string, fillColorCol: string, bold: boolean) {\n return {\n text,\n color,\n fillColor: fillColorCol,\n bold,\n };\n }\n\n getCellCssHeader(\n text: string,\n color: string,\n border: boolean[],\n fillColorCol: string,\n bold: boolean\n ) {\n return {\n border,\n text,\n color,\n fillColor: fillColorCol,\n bold,\n };\n }\n\n getLayout() {\n return { hLineColor, vLineColor };\n }\n\n getLayoutQuitLines() {\n return { vLineColor: quitVLineColor, hLineColor: '#ececec' };\n }\n\n getBackColor() {\n return { fillColor };\n }\n\n getRate() {\n let rate = 0;\n const period = this.deadlineSelect.period;\n rate = this.deadlineSelect[`tasaFinalCxA${period}`];\n return `${rate * 100}%`;\n }\n\n formatText(element: any) {\n return `$${this.formatter.format(element)}`;\n }\n\n getHeader() {\n return [\n {\n table: {\n widths: '*',\n body: [\n [\n {\n border: [false, false, false, false],\n fillColor: this.tipColor,\n image: `data:image/png;base64,${this.urlEncode64.logoUrlBase64}`,\n width: 110,\n height: 40,\n margin: [25, 10, 0, 10],\n },\n ],\n ],\n },\n },\n ];\n }\n\n getHeaders() {\n return [\n {\n width: '*',\n style: 'tableFirst',\n table: {\n widths: [90, 130],\n body: [\n [\n this.getCellCssHeader(\n 'Fecha',\n '#000',\n this.border1,\n this.colorGrey,\n true\n ),\n `${this.quoterDate}`,\n ],\n [\n this.getCellCssHeader(\n 'Vehículo',\n '#000',\n this.border2,\n this.colorGrey,\n true\n ),\n this.getHeaderVehiculo(),\n ],\n [\n this.getCellCssHeader(\n 'Precio del Auto con IVA',\n '#000',\n this.border2,\n this.colorGrey,\n true\n ),\n `$${this.formatter.format(this.car.priceWithIva)}`,\n ],\n [\n this.getCellCssHeader(\n 'Kilometraje max. anual',\n '#000',\n this.border2,\n this.colorGrey,\n true\n ),\n `${this.formatter.format(this.dataQuoter.km)}`,\n ],\n [\n this.getCellCssHeader(\n 'Costo de Contratación',\n '#000',\n this.border2,\n this.colorGrey,\n true\n ),\n this.getRate(),\n ],\n [\n this.getCellCssHeader(\n 'Uso Permitido',\n '#000',\n this.border2,\n this.colorGrey,\n true\n ),\n `Particular`,\n ],\n [\n this.getCellCssHeader(\n 'Plazo Elegido',\n '#000',\n this.border3,\n this.colorGrey,\n true\n ),\n `${this.deadlineSelect.period} Meses`,\n ]\n ],\n },\n layout: this.getLayout(),\n },\n {\n width: '*',\n style: 'tableFirst',\n table: {\n widths: [90, 130],\n margin: [0, 5, 15, 10],\n body: [\n [\n this.getCellCssHeader(\n 'Emplacamiento en',\n '#000',\n this.border1,\n this.colorGrey,\n false\n ),\n `${this.stateSelected.stateName}`,\n ],\n [\n this.getCellCssHeader(\n 'Entidad de Seguro',\n '#000',\n this.border2,\n this.colorGrey,\n false\n ),\n `${this.stateSelected.stateName}`,\n ],\n [\n this.getCellCssHeader(\n 'Aseguradora de Auto',\n '#000',\n this.border2,\n this.colorGrey,\n false\n ),\n `${this.insuranceSelected?.insurance?.key ?? 'Por confirmar'}`,\n ],\n [\n this.getCellCssHeader(\n 'Protección Plus',\n '#000',\n this.border2,\n this.colorGrey,\n false\n ),\n `${this.protectionPlus}`,\n ],\n [\n this.getCellCssHeader(\n 'Auto Sustituto',\n '#000',\n this.border3,\n this.colorGrey,\n false\n ),\n `${this.substituteCar}`,\n ],\n [\n this.getCellCssHeader(\n 'Producto',\n '#000',\n this.border3,\n this.colorGrey,\n false\n ),\n `${this.productType}`,\n ],\n [\n this.getCellCssHeader(\n 'Monto Total del Seguro',\n '#000',\n this.border3,\n this.colorGrey,\n false\n ),\n `$${this.formatter.format(this.deadlineSelect.insuranceCarTotal)}`\n ],\n ],\n },\n layout: this.getLayout(),\n },\n ];\n }\n\n getHeadersAfinRR() {\n return [\n {\n width: '*',\n style: 'tableFirst',\n table: {\n widths: [90, 130],\n body: [\n [\n this.getCellCssHeader(\n 'Fecha',\n '#000',\n this.border1,\n this.colorGrey,\n true\n ),\n `${this.quoterDate}`,\n ],\n [\n this.getCellCssHeader(\n 'Vehículo',\n '#000',\n this.border2,\n this.colorGrey,\n true\n ),\n this.getHeaderVehiculo(),\n ],\n [\n this.getCellCssHeader(\n 'Precio del Auto con IVA',\n '#000',\n this.border2,\n this.colorGrey,\n true\n ),\n `$${this.formatter.format(this.car.priceWithIva)}`,\n ],\n [\n this.getCellCssHeader(\n 'Kilometraje max. anual',\n '#000',\n this.border2,\n this.colorGrey,\n true\n ),\n `${this.formatter.format(this.dataQuoter.km)}`,\n ],\n [\n this.getCellCssHeader(\n 'Costo de Contratación',\n '#000',\n this.border2,\n this.colorGrey,\n true\n ),\n this.getRate(),\n ],\n [\n this.getCellCssHeader(\n 'Uso Permitido',\n '#000',\n this.border2,\n this.colorGrey,\n true\n ),\n `Particular`,\n ],\n [\n this.getCellCssHeader(\n 'Plazo Elegido',\n '#000',\n this.border3,\n this.colorGrey,\n true\n ),\n `${this.deadlineSelect.period} Meses`,\n ]\n ]\n },\n layout: this.getLayout(),\n },\n {\n width: '*',\n style: 'tableFirst',\n table: {\n widths: [90, 130],\n margin: [0, 5, 15, 10],\n body: [\n [\n this.getCellCssHeader(\n 'Emplacamiento en',\n '#000',\n this.border1,\n this.colorGrey,\n false\n ),\n `${this.stateSelected.stateName}`,\n ],\n [\n this.getCellCssHeader(\n 'Entidad de Seguro',\n '#000',\n this.border2,\n this.colorGrey,\n false\n ),\n `${this.stateSelected.stateName}`,\n ],\n [\n this.getCellCssHeader(\n 'Aseguradora de Auto',\n '#000',\n this.border2,\n this.colorGrey,\n false\n ),\n `${this.insuranceSelected?.insurance?.key ?? 'Por confirmar'}`,\n ],\n [\n this.getCellCssHeader(\n 'Protección Plus',\n '#000',\n this.border2,\n this.colorGrey,\n false\n ),\n `${this.protectionPlus}`,\n ],\n [\n this.getCellCssHeader(\n 'Auto Sustituto',\n '#000',\n this.border3,\n this.colorGrey,\n false\n ),\n `${this.substituteCar}`,\n ],\n [\n this.getCellCssHeader(\n 'Producto',\n '#000',\n this.border3,\n this.colorGrey,\n false\n ),\n `${this.productType}`,\n ],\n [\n this.getCellCssHeader(\n 'Monto Total del Seguro',\n '#000',\n this.border3,\n this.colorGrey,\n false\n ),\n `$${this.formatter.format(this.deadlineSelect.insuranceCarTotal)}`\n ],\n ],\n },\n layout: this.getLayout(),\n },\n ];\n }\n\n getHeaderVehiculo() {\n let brand = this.car.brand ? `${this.car.brand}` : '';\n let subBrand = this.car.subBrand ? `${this.car.subBrand}` : '';\n let version = this.car.version ? this.car.version : '';\n\n return `${brand} ${subBrand} ${version}`;\n }\n\n getPaymentTitle() {\n return [\n [\n {\n style: 'tableBody',\n table: {\n widths: [110],\n body: [\n [\n this.getCellCss('Concepto', '#000', this.colorGrey, true),\n ],\n ['Renta Base',],\n ['Rastreo Base (GPS)'],\n ['Asistencia Legal'],\n ['Admon. de Mantenimiento'],\n ['Gestorías (Sólo Renting)'],\n [`Mantenimiento${this.isAfin ? '' : ' (Sólo Renting)'}`],\n [\n 'Seguro Automotriz'\n ],\n [\n 'Protección Plus'\n ],\n [\n 'Auto Sustituto'\n ],\n [\n 'Seguro Personal'\n ],\n [\n {\n text: 'Total con IVA',\n style: 'tableHeader',\n }\n ],\n ],\n },\n layout: this.getLayoutQuitLines(),\n },\n ],\n ];\n }\n\n getInitialPaymentTitle() {\n let data: any = [\n [\n this.getCellCss('Concepto', '#000', this.colorGrey, true),\n ],\n [\n 'Rentas Adelantadas',\n ],\n [\n 'Rentas en Depósito',\n ],\n [\n 'Costo de Contratación',\n ],\n [\n `Trámites de Entrega${this.isAfin || this.isRandR ? '' : ' (Sólo Leasing)'}`,\n ]\n ]\n\n if (\n this.deadlineSelect.trasladoCost !== 0 &&\n this.deadlineSelect.trasladoCost !== undefined\n ) {\n data.push([\n 'Costo de traslado'\n ]);\n }\n\n let total = [\n {\n text: 'Total',\n style: 'tableHeader',\n },\n ]\n\n if (this.isAfin)\n data.push(\n [\n 'Ratificación de Contrato',\n ],\n total\n );\n else\n data.push(total)\n\n\n return [\n [\n {\n style: 'tableBody',\n table: {\n widths: [110],\n body: data,\n },\n layout: this.getLayoutQuitLines(),\n },\n ],\n ];\n }\n\n getDeliveryProceduresTitle() {\n return [\n [\n {\n style: 'tableBody',\n table: {\n widths: [110],\n body: [\n [\n this.getCellCss('Concepto', '#000', this.colorGrey, true),\n ],\n ['Alta de Placas'],\n ['Tenencias / Derechos'],\n ['Gestorías'],\n ['Verificación'],\n ['Gastos de Traslado'],\n [\n { text: 'Total', style: 'tableHeader' },\n ],\n ],\n },\n layout: this.getLayoutQuitLines(),\n },\n ],\n ];\n }\n\n /**\n * \n * @return {*} \n * @memberof PdfComponent\n * @author victor.mendez\n */\n getPurchaseValueTitle() {\n return [\n [\n {\n style: 'tableBody',\n table: {\n widths: [110],\n body: [\n [\n this.getCellCss('Concepto', '#000', this.colorGrey, true),\n ],\n ['Valor de compra'],\n\n ],\n },\n layout: this.getLayoutQuitLines(),\n },\n ],\n ];\n }\n\n /**\n * Función que retorna el cuerpo de la tabla de detalles, con los valores del valor de compra\n * @param {string} numPeriod\n * @return {*} \n * @memberof PdfComponent\n * @author victor.mendez\n */\n getPurchaseValues(numPeriod: string) {\n const period = numPeriod as PeriodType\n const deadlineSelected = this.allDeadlineSelect[this.deadlineSelect.concept.toLowerCase()][period];\n\n return [\n [\n {\n style: 'tableBody',\n table: {\n widths: [110],\n body: [\n [\n this.getCellCss('Valores', '#000', this.colorGrey, true),\n ],\n [this.formatText(deadlineSelected.purchaseValue)],\n ],\n },\n layout: this.getLayoutQuitLines(),\n },\n ],\n ];\n }\n\n getBodyPayment(numPeriod: string) {\n const period = numPeriod as PeriodType\n const deadlineSelected = this.allDeadlineSelect[this.deadlineSelect.concept.toLowerCase()][period]\n\n return [\n [\n {\n style: 'tableBody',\n table: {\n widths: [110],\n body: [\n [\n this.getCellCss('Valores', '#000', this.colorGrey, true),\n ],\n [\n this.formatText(\n deadlineSelected.monthlyPaymentDetail.monthlyRate ?? ''\n ),\n ],\n [`Incluido en renta`],\n [`Incluido en renta`],\n [`Incluido en renta`],\n [\n this.formatText(\n deadlineSelected.deliveryCost.agencyExpenses ?? '0'\n )\n ],\n [\n this.formatText(\n deadlineSelected.deliveryCost.maintenanceExpenses ?? '0'\n ),\n ],\n [\n this.formatText(\n deadlineSelected.monthlyPaymentDetail.insuranceCar\n ),\n ],\n [\n this.formatText(\n deadlineSelected.monthlyPaymentDetail.protectionPLus\n ),\n ],\n [\n this.formatText(\n deadlineSelected.monthlyPaymentDetail.substituteCar\n ),\n ],\n [\n this.formatText(\n deadlineSelected.monthlyPaymentDetail.insurance\n ),\n ],\n [\n {\n text: this.formatText(\n deadlineSelected.monthlyPaymentDetail.total\n ),\n style: 'tableHeader',\n },\n ],\n ],\n },\n layout: this.getLayoutQuitLines(),\n },\n ],\n ];\n }\n\n getInitialPaymentBody(numPeriod: string) {\n const period = numPeriod as PeriodType\n const deadlineSelected = this.allDeadlineSelect[this.deadlineSelect.concept.toLowerCase()][period]\n\n\n let data: any = [\n [\n this.getCellCss('Valores', '#000', this.colorGrey, true),\n ],\n [\n this.formatText(\n deadlineSelected.initialPaymentDetail.advancedRent || 0\n )\n ],\n [\n this.formatText(\n deadlineSelected.initialPaymentDetail.depositRent || 0\n )\n ],\n [\n this.formatText(\n deadlineSelected.initialPaymentDetail.cxa || 0\n )\n ],\n [\n `${this.formatText(deadlineSelected.initialPaymentDetail.paperWorkCost || 0)}${this.isAfin ? '0' : ''}`,\n\n ]\n ]\n\n let total = [\n {\n text: this.formatText(deadlineSelected.initialPaymentDetail.total || 0),\n style: 'tableHeader',\n },\n ]\n\n if (this.isAfin)\n data.push(\n [\n `${deadlineSelected.initialPaymentDetail.contractRatification ? this.formatText(deadlineSelected.initialPaymentDetail.contractRatification || 0) : 'N/A'}`\n ],\n total\n );\n else\n data.push(total)\n\n\n return [\n [\n {\n style: 'tableBody',\n table: {\n widths: [110],\n body: data,\n },\n layout: this.getLayoutQuitLines(),\n },\n ],\n ];\n }\n\n getDeliveryProcedures(numPeriod: string) {\n const period = numPeriod as PeriodType\n const deadlineSelected = this.allDeadlineSelect[this.deadlineSelect.concept.toLowerCase()][period]\n\n return [\n [\n {\n style: 'tableBody',\n table: {\n widths: [110],\n body: [\n [\n this.getCellCss('Valores', '#000', this.colorGrey, true),\n ],\n [`${this.deliveryCost('carIdCost', deadlineSelected)}`],\n [`${this.deliveryCost('carLicenseCost', deadlineSelected)}`],\n [`${this.deliveryCost('carManagmentCost', deadlineSelected)}`],\n [`${this.deliveryCost('carVerificationCost', deadlineSelected)}`],\n [`${this.deliveryCost('flete', deadlineSelected)}`],\n [\n { text: `${this.deliveryCost('total', deadlineSelected)}`, style: 'tableHeader' },\n ],\n ],\n },\n layout: this.getLayoutQuitLines(),\n },\n ],\n ];\n }\n\n private deliveryCost(field: string, deadlineSelected: any) {\n if (this.isLeasing || this.isAfin || this.isRandR) {\n return this.formatText(deadlineSelected.deliveryCost[field]);\n } else {\n return 'N/A'\n }\n }\n\n\n getBodyPagoInicial() {\n let data: any = [\n [\n this.getCellCss('Concepto', '#000', this.colorGrey, true),\n this.getCellCss('Valores', '#000', this.colorGrey, true),\n ],\n [\n 'Rentas Adelantadas',\n this.formatText(this.deadlineSelect.initialPaymentDetail.advancedRent),\n ],\n [\n 'Rentas en Depósito',\n this.formatText(this.deadlineSelect.initialPaymentDetail.depositRent),\n ],\n [\n 'Costo de Contratación',\n this.formatText(this.deadlineSelect.initialPaymentDetail.cxa),\n ],\n [\n `Trámites de Entrega${this.isAfin || this.isRandR ? '' : ' (Sólo Leasing)'}`,\n this.formatText(this.paperWorkCost),\n ],\n ];\n\n if (\n this.deadlineSelect.trasladoCost !== 0 &&\n this.deadlineSelect.trasladoCost !== undefined\n ) {\n data.push([\n 'Costo de traslado',\n this.formatText(this.deadlineSelect.trasladoCost),\n ]);\n }\n\n let total = [\n {\n text: 'Total',\n style: 'tableHeader',\n },\n {\n text: this.formatText(\n this.deadlineSelect.initialPaymentDetail.total +\n (this.deadlineSelect?.trasladoCost || 0)\n ),\n style: 'tableHeader',\n },\n ];\n\n if (this.isAfin)\n data.push(\n [\n 'Ratificación de Contrato',\n this.formatText(\n this.deadlineSelect.initialPaymentDetail.contractRatification\n ),\n ],\n total\n );\n else data.push(total);\n\n return data;\n }\n\n getBodyMonths() {\n const period = this.deadlineSelect.period;\n const monthlyTotal = this.formatText(\n this.deadlineSelect.monthlyPaymentDetail.total\n );\n const arr = [];\n\n for (let i = 0; i < period; i++) {\n arr.push([`${i + 1}`, monthlyTotal]);\n }\n\n return arr;\n }\n\n getBodyDetails() {\n return [\n [{ text: 'DETALLE DE SERVICIOS', alignment: 'center' }],\n [\n {\n text: [\n this.getCellCss('Asistencia legal: ', '#000', '#fff', true),\n legalAsistance,\n\n this.getCellCss(\n 'Administración de Mantenimiento: ',\n '#000',\n '#fff',\n true\n ),\n mantenance,\n\n this.getCellCss('Mantenimiento Estándar: ', '#000', '#fff', true),\n manStd,\n\n this.getCellCss('Rastreo Base: ', '#000', '#fff', true),\n tracking,\n\n this.getCellCss('Gestorías: ', '#000', '#fff', true),\n gests,\n\n this.getCellCss('Protección Plus: ', '#000', '#fff', true),\n protectPlus,\n\n this.getCellCss('Seguro Automotriz: ', '#000', '#fff', true),\n secure,\n\n this.getCellCss(\n 'Tipo de Auto para Auto Sustituto: ',\n '#000',\n '#fff',\n true\n ),\n substitute,\n\n this.getCellCss('Seguro Personal: ', '#000', '#fff', true),\n personalSecure,\n ],\n alignment: 'justify',\n },\n ],\n ];\n }\n\n getBodyNotes() {\n return [\n [{ text: 'NOTAS', alignment: 'center' }],\n [\n {\n text: `${textNotes}`,\n alignment: 'justify',\n }\n ]\n ];\n }\n\n getBodyNotesRR() {\n return [\n [{ text: 'NOTAS', alignment: 'center' }],\n [\n {\n text: `${textNotes} ${textNoteRandR(\n this.formatter.format(this.deadlineSelect.adminFlotaPlusDetail.totalAmount.toFixed(2)),\n this.formatter.format(this.deadlineSelect.adminFlotaPlusDetail.baseRent.toFixed(2)),\n this.formatter.format(this.deadlineSelect.adminFlotaPlusDetail.adminFlotaPlusIva.toFixed(2)),\n this.formatter.format(this.deadlineSelect.monthlyPaymentDetail.insuranceCar),\n this.formatter.format(this.deadlineSelect.monthlyPaymentDetail.insurance),\n this.deadlineSelect.monthlyPaymentDetail.protectionPLus > 0 ? this.formatter.format(this.deadlineSelect.monthlyPaymentDetail.protectionPLus) : '0',\n this.deadlineSelect.monthlyPaymentDetail.substituteCar > 0 ? this.formatter.format(this.deadlineSelect.monthlyPaymentDetail.substituteCar) : '0',\n this.deadlineSelect.deliveryCost.maintenanceExpenses > 0 ? this.formatter.format(this.deadlineSelect.deliveryCost.maintenanceExpenses) : '0'\n )}`,\n alignment: 'justify',\n }\n ]\n ];\n }\n\n getPdfBase64(): Promise {\n return new Promise((resolve) => {\n this.pdfOpen.getBase64((base64) => resolve(base64));\n });\n }\n\n getPeriodName(numPeriod: string) {\n const period = numPeriod as PeriodType\n return this.periodsMonthName[period];\n }\n}\n","
\n \n
","export const legalAsistance =\n 'Una red de profesionales en toda la república mexicana le apoyan las 24 horas los 365 días del año durante la vigencia de su arrendamiento, de ser necesario de manera presencial, en caso de accidente o robo de la unidad, además de la acreditación de la propiedad o la liberación de la unidad ante autoridades competentes. \\n \\n';\n\nexport const mantenance =\n 'Llevamos el control del mantenimiento preventivo y correctivo de tu vehículo mediante notificaciones mediante reportes de comportamiento histórico. Los servicios puedes pagarlos a BITCAR o directamente al taller autorizado. \\n \\n';\n\nexport const manStd =\n 'Además de los servicios de Administración de Mantenimiento, incluye la cobertura de un determinado número de servicios de mantenimiento de carnet de acuerdo con la marca de tu vehículo, así como servicios correctivos y piezas de desgaste de acuerdo al kilometraje elegido.\\n \\n';\n\nexport const tracking =\n 'Te brindamos la localización satelital de tu vehículo con acción en caso de robo.\\n \\n';\n\nexport const gests =\n 'Incluye la notificación periódica con respecto a información relevante de trámites y requisitos que se deben cumplir de acuerdo con el tipo de vehículo. Incluye la gestión de un número determinado de trámites vehiculares necesarios con posterioridad a la entrega de tu vehículo. No incluye el monto correspondiente a los derechos aplicables a cada trámite.\\n \\n';\n\nexport const protectPlus =\n 'Protegemos tus unidades contra i) robo de accesorios; ii) reembolso de deducible y iii) pago de daños menores. \\n \\n';\n\nexport const secure =\n 'Seguro de cobertura amplia que te protege en caso de Robo y Daños Materiales. \\n \\n';\n\nexport const substitute =\n \"Subcompactos: Vehículos tipo AVEO ó similar, 4 puertas, transmisión automática, vidrios eléctricos. SUV's Vehículos Journey/Escape/CRV/X-Trail o similar, 5 pasajeros, automático con A/C.\\n \\n\";\n\nexport const personalSecure =\n 'Seguro sujeto a los términos, condiciones y exclusiones de la póliza contratada con la compañía aseguradora: i) Cobertura por fallecimiento que podrá cubrir cualquier saldo, salvo aquellos adeudos que se hubiesen generado con anterioridad al siniestro y ii) Cobertura por desempleo involuntario que ante la eventual pérdida involuntaria de empleo, podrá cubrir las rentas del arrendamiento que el arrendador se encuentre obligado a cubrir; en el entendido que, la cobertura será por 3 meses, con derecho a un evento al año sin importar si se consumen o no los 3 meses que ampara la cobertura.';\n\nexport const textNotes = `\nEl monto de las mensualidades de pago calculadas o de cualquier servicio, son meramente informativas y estarán sujetas a cambio sin previo aviso. Lo anterior derivado de la modificación de: (i) el precio de los vehículos; (ii) el análisis de crédito del usuario; y/o (iii) por cualquier otro motivo a discreción de BITCAR. \\n\nCosto por kilómetro adicional: $3.00 MXN más IVA. \\n\nSujeto a autorización de crédito. La cotización tendrá una vigencia de 10 días contados a partir de la fecha marcada y no representa ninguna obligación de BITCAR hasta la firma de un contrato. \\n\nEl monto correspondiente al depósito en garantía no está sujeto al impuesto al Valor Agregado por lo que no se emitirá factura alguna por dicho concepto. \\n\nLa información aquí mostrada es de carácter informativo y no puede ser usada para fines fiscales, legales ni de ninguna otra índole. \\n\nAl continuar con el proceso de solicitud del financiamiento respectivo, Usted reconoce y acepta que este no constituirá por sí mismo, ni deberá entenderse como una oferta vinculante para BITCAR, y tampoco crea obligación alguna sobre el otorgamiento de cualquier tipo de financiamiento, ni a la prestación de algún servicio o entrega de algún bien o producto ya que lo anterior está sujeto a los procedimientos de análisis y criterios de aprobación internos de BITCAR y, en consecuencia, este podrá aceptar o denegar su solicitud a su exclusiva discreción y bajo su propio criterio.`;\n\nexport const textNoteRandR = function (\n totalAmount: string,\n baseRent: string,\n adminFlotaPlusIva: string,\n insuranceCar: string,\n insurenace: string,\n protectionPLus: string,\n substituteCar: string,\n maintenanceExpenses: string\n) {\n const protectionPlusText =\n protectionPLus !== '0' ? `, Protección Plus $${protectionPLus}` : '';\n const substituteCarText =\n substituteCar !== '0' ? `, Auto Sustituto $${substituteCar}` : '';\n const maintenanceExpensesText =\n maintenanceExpenses !== '0'\n ? `, Mantenimientos Preventivos y Correctivos $${maintenanceExpenses}`\n : '';\n return `\\n \\n Para el plazo seleccionado, el pago total de: $${totalAmount} se formalizará en contrato y se facturará de la siguiente forma: Renta Base por: $${baseRent}, Administración de Flota Plus por: $${adminFlotaPlusIva}, Seguro de Auto por: $${insuranceCar}, Seguro Personal por: $${insurenace}${maintenanceExpensesText}${protectionPlusText}${substituteCarText}.\n \\n Administración de Flota Plus incluye: Asistencia Legal, Administración de Mantenimiento y Rastreo Base.`;\n};\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ImagesPresenterComponent } from './images-presenter/images-presenter.component';\nimport { IvyCarouselModule } from 'angular-responsive-carousel';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ConfigurationPanelComponent } from './configuration-panel/configuration-panel.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatListModule } from '@angular/material/list';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSliderModule } from '@angular/material/slider';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { NgxSliderModule } from '@angular-slider/ngx-slider';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { DeadlineTableComponent } from './deadline-table/deadline-table.component';\nimport { ModalComponent } from './configuration-panel/modal/modal.component';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { CarSpecsComponent } from './car-specs/car-specs.component';\nimport { CarFeaturesComponent } from './car-features/car-features.component';\nimport { RelatedCarsComponent } from './related-cars/related-cars.component';\nimport { ModalAlertComponent } from './modal-alert/modal-alert.component';\nimport { PdfComponent } from './pdf/pdf.component';\n\nimport { SwiperModule } from 'swiper/angular';\nimport { ComponentsModule } from './components.module';\nimport { CardCarHomeModule } from './card-car-home/card-car-home.module';\n\nimport { ShareButtonsModule } from 'ngx-sharebuttons/buttons';\nimport { ShareIconsModule } from 'ngx-sharebuttons/icons';\nimport { ResumeQuoterComponent } from './resume-quoter/resume-quoter.component';\nimport { DirectivesModule } from '../directives/directives.module';\nimport { ModalSignatoryComponent } from './modal-signatory/modal-signatory.component';\nimport { ShareLinkComponent } from './share-link/share-link.component';\nimport { LoadingSpinnerComponent } from './loading-spinner/loading-spinner.component';\nimport { MsgColorCarComponent } from './msg-color-car/msg-color-car.component';\nimport { ModalSpecsComponent } from './car-specs/modal-specs/modal-specs.component';\nimport { TableSpecsComponent } from './car-specs/table-specs/table-specs.component';\nimport { NgxTippyModule } from 'ngx-tippy-wrapper';\nimport { CreditDialogComponent } from './credit-dialog/credit-dialog.component';\nimport { CreditTypeDialogComponent } from './credit-type-dialog/credit-type-dialog.component';\nimport { ConfigurationPanelCreditComponent } from './configuration-panel-credit/configuration-panel-credit.component';\nimport { DeadlineTableCreditComponent } from './deadline-table-credit/deadline-table-credit.component';\nimport { IConfig, NgxMaskModule } from 'ngx-mask';\n\nexport const options: Partial | (() => Partial) = null;\nimport { PdfCreditComponent } from './pdf-credit/pdf-credit.component';\nimport { TourMatMenuModule } from 'ngx-ui-tour-md-menu';\nimport { ShareLinkCreditComponent } from './share-link-credit/share-link-credit.component';\nimport { PdfFordComponent } from './pdf-ford/pdf-ford.component';\n\n@NgModule({\n declarations: [\n ModalComponent,\n ImagesPresenterComponent,\n ConfigurationPanelComponent,\n DeadlineTableComponent,\n CarSpecsComponent,\n CarFeaturesComponent,\n RelatedCarsComponent,\n ModalAlertComponent,\n ModalSignatoryComponent,\n PdfComponent,\n PdfFordComponent,\n PdfCreditComponent,\n ResumeQuoterComponent,\n ShareLinkComponent,\n LoadingSpinnerComponent,\n MsgColorCarComponent,\n ModalSpecsComponent,\n TableSpecsComponent,\n CreditDialogComponent,\n CreditTypeDialogComponent,\n ConfigurationPanelCreditComponent,\n DeadlineTableCreditComponent,\n ShareLinkCreditComponent\n ],\n imports: [\n CommonModule,\n IvyCarouselModule,\n MatIconModule,\n MatCardModule,\n MatButtonModule,\n MatFormFieldModule,\n MatSelectModule,\n MatExpansionModule,\n MatListModule,\n FormsModule,\n MatInputModule,\n MatSliderModule,\n MatTooltipModule,\n ClipboardModule,\n NgxSliderModule,\n ReactiveFormsModule,\n MatSlideToggleModule,\n MatRadioModule,\n SwiperModule,\n TranslateModule.forChild({\n extend: true,\n }),\n MatDialogModule,\n CardCarHomeModule,\n IvyCarouselModule,\n ComponentsModule,\n ShareButtonsModule,\n ShareIconsModule,\n DirectivesModule,\n MatDialogModule,\n NgxTippyModule,\n NgxMaskModule.forRoot(),\n TourMatMenuModule\n ],\n exports: [\n ImagesPresenterComponent,\n ConfigurationPanelComponent,\n DeadlineTableComponent,\n CarSpecsComponent,\n CarFeaturesComponent,\n RelatedCarsComponent,\n ModalAlertComponent,\n ModalSignatoryComponent,\n PdfComponent,\n PdfFordComponent,\n PdfCreditComponent,\n ResumeQuoterComponent,\n ShareLinkComponent,\n LoadingSpinnerComponent,\n MsgColorCarComponent,\n TableSpecsComponent,\n CreditDialogComponent,\n CreditTypeDialogComponent,\n ConfigurationPanelCreditComponent,\n DeadlineTableCreditComponent,\n NgxMaskModule,\n ShareLinkCreditComponent\n ],\n})\nexport class QuoterComponentsModule {}\n","import { Component, EventEmitter, Inject, Input, OnChanges, Output } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { CotizadorService } from 'src/app/services/cotizador.service';\nimport { DataService } from 'src/app/services/data.service';\nimport { WINDOW } from 'src/app/utils/window';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-related-cars',\n templateUrl: `./related-cars.component${environment.templateSuffix}.html`,\n styleUrls: ['./related-cars.component.scss']\n})\nexport class RelatedCarsComponent implements OnChanges {\n @Output() public destroyQuoter = new EventEmitter();\n @Input() car!: any\n @Input() isAfin: boolean = false;\n @Input() productType: string = \"\";\n relatedCars: any[] = [];\n carId: any;\n brand: any;\n subBrand: any;\n priceWithIva: any;\n type: any;\n powerTrain: any;\n transmission: any;\n ranking: any;\n\n screenSize = this.window.innerWidth;\n\n options = {\n cellsToShow: 1,\n dots: true,\n arrows: true\n }\n\n subscriptionSize!: Subscription\n\n constructor(\n private cotizadorService: CotizadorService, \n private dataService: DataService,\n @Inject(WINDOW) private window: Window) {\n this.evaluateShow(this.screenSize);\n }\n\n ngOnChanges(changes: any): void {\n this.relatedCars = [];\n this.getRelatedCars()\n\n this.subscriptionSize = this.dataService.getScreenSize().subscribe(res => {\n this.screenSize = res;\n this.evaluateShow(this.screenSize);\n });\n }\n\n getRelatedCars() {\n this.cotizadorService.getRelatedCars(`carId=${this.car.id}&brand=${this.car.brand}&subBrand=${this.car.subBrand}&priceWithIva=${this.car.priceWithIva}&type=${this.car.type}&powerTrain=${this.car.powerTrain}&transmission=${this.car.transmission}&ranking=${this.car.rankeo}`).subscribe(\n (res) => {\n this.relatedCars = res;\n }\n )\n }\n\n evaluateShow(screen: number) {\n switch (true) {\n case screen < 768:\n this.options.cellsToShow = 1;\n break;\n case screen < 968:\n this.options.cellsToShow = 2;\n break;\n case screen < 1200:\n this.options.cellsToShow = 3;\n break;\n default:\n this.options.cellsToShow = 4;\n break;\n }\n }\n\n\n emitDestroyQuoter(){\n this.destroyQuoter.emit();\n }\n\n\n}\n","import { Component, Input } from '@angular/core';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-resume-quoter',\n templateUrl: `./resume-quoter.component${environment.templateSuffix}.html`,\n styleUrls: ['./resume-quoter.component.scss']\n})\nexport class ResumeQuoterComponent {\n @Input() brand!: any;\n @Input() subBrand!: any;\n @Input() version!: any;\n @Input() year!: any;\n @Input() priceWithIva!: any;\n @Input() insurance!: any;\n @Input() stateName!: any;\n @Input() ri!:any;\n @Input() concept!:any;\n @Input() period!:any;\n @Input() initialPayment!:any;\n @Input() monthlyPayment!:any;\n @Input() isMaxAdvancedRent: boolean = false;\n @Input() isRecalculated: boolean = false;\n @Input() showTitle: boolean = false;\n @Input() textHeader: string = '';\n @Input() purchaseValue!:any;\n @Input() isMaxPurchaseValue: boolean = false;\n @Input() appliedCode: boolean = false;\n @Input() isDropDown: boolean = false;\n @Input() isCredit: boolean = false;\n @Input() hitch: any = 0;\n @Input() annuity: any = 0;\n @Input() ballon?: number = 0;\n @Input() rate: any = 0;\n @Input() cat: any = 0;\n @Input() isBallon: boolean = false;\n showComplete: boolean = true;\n}\n","\n \n {{brand}} {{subBrand}}\n {{version}} {{year}}\n {{monthlyPayment | currency}} Mensuales\n \n \n
\n
\n {{ 'Entidad de Seguro'}}\n {{ stateName }}\n
\n
\n {{ 'CREDIT.quoter.hitch' | translate }}:\n {{ hitch | currency }}\n
\n
\n Enganche:\n {{ ri | currency }}\n
\n \n
\n Valor de Compra:\n {{ purchaseValue | currency }}\n
\n \n
\n Producto:\n {{ concept || '----'}}\n
\n
\n Plazo:\n {{ period ? (period + ' meses') : '----'}}\n
\n
\n
\n
\n
\n Pago Inicial Total:\n {{ (initialPayment | currency) || '----'}}\n
\n
\n {{ 'CREDIT.quoter.annuity' | translate }}:\n {{ (annuity | currency) || '----'}}\n
\n
\n Ballon:\n {{ (ballon | percent: '1.2-2') || '----'}}\n
\n
\n
\n
\n Código promocional aplicado\n check_circle\n
\n
\n
\n
\n Renta Mensual:\n {{ (monthlyPayment | currency) || '----'}}\n
\n
\n {{ 'CREDIT.quoter.rate' | translate }}:\n {{ (rate | percent: '1.2-2') || '----'}}\n
\n
\n {{ 'CREDIT.quoter.cat' | translate }}:\n {{ (cat | percent: '1.2-2') || '----'}}\n
\n\n
\n Aseguradora:\n {{ insurance || '----' }}\n
\n\n \n
\n
\n
","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { BitlyService } from 'src/app/services/bitly.service';\nimport { DataService } from 'src/app/services/data.service';\nimport { SecurityService } from 'src/app/services/security.service';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-share-link-credit',\n templateUrl: './share-link-credit.component.html',\n styleUrls: ['./share-link-credit.component.scss']\n})\nexport class ShareLinkCreditComponent implements OnInit, OnDestroy {\n @Input() pageUrl!: string\n @Input() url!: any\n @Input() carTitle!: string\n @Input() deadlineSelect!: any\n @Input() dataQuoter!: any\n @Input() metaUrl!: any;\n\n showDetails: boolean = false\n showButtons: boolean = true\n shareUrl: string = ''\n copyUrl: string = ''\n\n subscriptionShow!: Subscription;\n \n constructor(\n private securityService: SecurityService,\n private dataService: DataService,\n private bitlyService: BitlyService\n ) {\n this.subscriptionShow = this.dataService.getShowShareLink().subscribe(res => {\n this.showDetails = res\n })\n }\n\n ngOnInit(): void {\n setTimeout(() => {\n this.showButtons = false;\n }, 3000);\n }\n\n ngOnDestroy(): void {\n this.subscriptionShow.unsubscribe();\n }\n\n generateLink() {\n let dataEncrypt;\n let dataMeta = ''\n\n const { concept, period } = this.deadlineSelect;\n const data = { ...this.dataQuoter, deadlineConcept: concept, dealinePeriod: period, isAfin: this.dataQuoter.quoterType === 'AFIN' || this.dataQuoter.quoterType === 'RR'}\n dataEncrypt = this.securityService.encryptData(data, true);\n dataMeta = '&share_title=' + encodeURIComponent(this.metaUrl.title) + '&share_desc=' + encodeURIComponent(this.metaUrl.desc)\n\n if(this.metaUrl.img)\n dataMeta += '&share_img=' + encodeURIComponent(this.metaUrl.img)\n\n this.copyUrl = environment.keycloak.redirectUri + this.pageUrl + dataEncrypt + dataMeta\n this.bitlyService.generateShortUrl({long_url: this.copyUrl }).subscribe({\n next: (res: any) => {\n this.shareUrl = res.link;\n this.showButtons = true;\n this.showDetails = true\n },\n error: (err) => {\n console.log(err)\n this.shareUrl = this.copyUrl;\n this.showButtons = true;\n this.showDetails = true\n }\n });\n }\n\n}\n","
\n
\n
\n \"icon-fb\"/\n
\n
\n \"icon-tw\"/\n
\n
\n \"icon-in\"/\n
\n
\n \"icon-wa\"/\n
\n
\n \"icon-cp\"/\n
\n
\n \n
\n share\n arrow_back_ios\n
\n
\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { DataService } from 'src/app/services/data.service';\nimport { SecurityService } from 'src/app/services/security.service';\nimport { environment } from 'src/environments/environment';\nimport { BitlyService } from 'src/app/services/bitly.service'\n\n@Component({\n selector: 'app-share-link',\n templateUrl: './share-link.component.html',\n styleUrls: ['./share-link.component.scss']\n})\nexport class ShareLinkComponent implements OnInit, OnDestroy{\n @Input() pageUrl!: string\n @Input() url!: any\n @Input() carTitle!: string\n @Input() isPanelConfig: boolean = false\n @Input() deadlineSelect!: any\n @Input() dataQuoter!: any\n @Input() metaUrl!: any;\n\n showDetails: boolean = false\n showButtons: boolean = true\n shareUrl: string = ''\n copyUrl: string = ''\n\n subscriptionShow!: Subscription;\n \n constructor(\n private securityService: SecurityService,\n private dataService: DataService,\n private bitlyService: BitlyService\n ) {\n this.subscriptionShow = this.dataService.getShowShareLink().subscribe(res => {\n this.showDetails = res\n })\n }\n\n ngOnInit(): void {\n setTimeout(() => {\n this.showButtons = false;\n }, 3000);\n }\n\n ngOnDestroy(): void {\n this.subscriptionShow.unsubscribe();\n }\n\n generateLink() {\n let dataEncrypt;\n let dataMeta = ''\n\n if(this.isPanelConfig) {\n const { concept, period } = this.deadlineSelect;\n const data = { ...this.dataQuoter, deadlineConcept: concept, dealinePeriod: period, isAfin: this.dataQuoter.quoterType === 'AFIN' || this.dataQuoter.quoterType === 'RR'}\n dataEncrypt = this.securityService.encryptData(data, true);\n dataMeta = '&share_title=' + encodeURIComponent(this.metaUrl.title) + '&share_desc=' + encodeURIComponent(this.metaUrl.desc)\n\n if(this.metaUrl.img)\n dataMeta += '&share_img=' + encodeURIComponent(this.metaUrl.img)\n\n\n } else {\n dataEncrypt = this.securityService.encryptData(this.url, true);\n }\n\n this.copyUrl = environment.keycloak.redirectUri + this.pageUrl + dataEncrypt + dataMeta\n this.bitlyService.generateShortUrl({long_url: this.copyUrl }).subscribe({\n next: (res: any) => {\n this.shareUrl = res.link;\n this.showButtons = true;\n this.showDetails = true\n },\n error: (err) => {\n console.log(err)\n this.shareUrl = this.copyUrl;\n this.showButtons = true;\n this.showDetails = true\n }\n });\n }\n\n}\n","
\n
\n
\n \"icon-fb\"/\n
\n
\n \"icon-tw\"/\n
\n
\n \"icon-in\"/\n
\n
\n \"icon-wa\"/\n
\n
\n \"icon-cp\"/\n
\n
\n \n
\n share\n arrow_back_ios\n
\n
\n","import { DOCUMENT } from '@angular/common';\nimport { Component, Output, EventEmitter, Input, Inject } from '@angular/core';\nimport { Event, NavigationStart, Router } from '@angular/router';\nimport { KeycloakService } from 'keycloak-angular';\nimport { ILandingPage } from 'src/app/model/http/landing.model';\nimport { DataService } from 'src/app/services/data.service';\nimport { KeycloakCustomService } from 'src/app/services/keycloak-custom.service';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-sidenav-list',\n templateUrl: `./sidenav-list.component${environment.templateSuffix}.html`,\n styleUrls: ['./sidenav-list.component.scss'],\n})\nexport class SidenavListComponent {\n\n @Output() sidenavClose = new EventEmitter()\n dataLandingPage: ILandingPage[] = [];\n @Input() userObject!: any;\n @Input() isLoged!: any;\n @Input() processActive!: any;\n urlLocation!: boolean;\n\n constructor(\n public keycloackService: KeycloakService,\n private dataService: DataService,\n public router: Router,\n @Inject(DOCUMENT) private document: any,\n private keycloakCustomService: KeycloakCustomService\n ) {\n this.dataService.getSideLandingMenu().subscribe((menu) => {\n this.dataLandingPage = menu;\n });\n this.router.events.subscribe((event: Event) => {\n if (event instanceof NavigationStart) {\n this.urlLocation = event.url.includes('genera-oportunidad');\n }\n });\n }\n\n getClassCSS(): any {\n return (this.processActive ? 'active' : 'inactive')\n }\n\n public logout() {\n this.clearSessionData();\n const redirectUri = environment.keycloak.redirectUri;\n const isSalesforceLoggin = this.keycloakCustomService.isLoggin();\n if (isSalesforceLoggin) {\n this.keycloakCustomService.logout(redirectUri);\n } else {\n this.keycloackService.logout(redirectUri);\n }\n }\n\n\n private clearSessionData() {\n sessionStorage.removeItem('aceptProcess');\n this.dataService.setIdKeycloak('');\n localStorage.removeItem('dataQuote');\n }\n\n public onSidenavClose = () => {\n this.sidenavClose.emit();\n };\n\n /**\n * Scroll to the selected section\n * @param {string} path\n * @memberof SidenavListComponent\n * @author victor.mendez\n */\n clickScroll(path: string) {\n if (this.router.url.includes('home')) {\n this.document.getElementById(path)?.scrollIntoView({ behavior: 'smooth', block: 'start' });\n } else {\n this.router.navigate(['/home'], { fragment: path });\n }\n }\n\n login() {\n localStorage.setItem('flowType', environment.templateSuffix === '' ? 'A' : 'B');\n this.keycloackService.login();\n this.onSidenavClose();\n }\n\n\n}","\n
\n \n
\n \n\n
\n
\n \n
\n
\n\n
\n \n
\n \n \n
\n \n
\n
\n \n
\n\n\n \n\n\n
\n
\n
\n \n
\n \n \n
\n
\n\n
","import { Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { DataService } from 'src/app/services/data.service';\nimport { whatsTip } from '../configuration-panel/helpers/constants';\nimport { WINDOW } from 'src/app/utils/window';\n\n@Component({\n selector: 'app-whats',\n templateUrl: `./whats.component.html`,\n styleUrls: ['./whats.component.scss']\n})\nexport class WhatsComponent implements OnInit, OnDestroy{\n whats = whatsTip;\n showButton: boolean = false;\n screenWidth = this.window.innerWidth;\n\n subscriptionResize!: Subscription;\n subscriptionHideNavMenu!: Subscription;\n\n constructor(\n private dataService: DataService,\n @Inject(WINDOW) private window: Window) { }\n\n ngOnInit(): void {\n this.subscriptionHideNavMenu = this.dataService.getHideNavMenu().subscribe(res => this.showButton = res);\n this.subscriptionResize = this.dataService.getScreenSize().subscribe(res => this.screenWidth = res);\n }\n\n ngOnDestroy(): void {\n this.subscriptionHideNavMenu?.unsubscribe();\n this.subscriptionResize?.unsubscribe();\n }\n\n getIsValidTime() {\n const currentString = new Date().toLocaleString(\"en-US\", { timeZone: \"America/Mexico_City\" });\n const now = new Date(currentString);\n return this.isValidTime(now);\n }\n\n isValidTime(now: Date) {\n const currentTime = now.getHours() * 60 + now.getMinutes();\n\n const daysOfWeekend = [0, 6];\n\n let start = daysOfWeekend.includes(now.getDay()) ? 10 * 60 + 30 : 8 * 60 + 30;\n let end = 19 * 60 + 59;\n\n return start <= currentTime && currentTime <= end;\n }\n\n showInBuscador(){\n if(location.pathname.includes('buscador')){\n if(this.screenWidth > 767)\n return true;\n\n return this.showButton;\n } else{\n this.showButton = false;\n return true;\n }\n }\n\n\n}\n\n\n","\n\n\n","interface Conf {\n httpTimeout?: number;\n generalMessageTimeout?: number;\n}\n\nexport const AppConfig: Conf = {\n httpTimeout: 30000,\n generalMessageTimeout: 3000,\n};\n","export const DEFAULTVALUES = {\n home_queesbitcar: [\n {\n id: 'Leasing',\n title: '¿Qué es el Leasing?',\n content: `El leasing es un modelo de renta que te permite estrenar un auto nuevo a cambio del pago de mensualidades fijas durante un plazo determinado disfrutando de diversas ventajas:`,\n advantages: [\n {\n img: './assets/img/v3/leasing-rent2buy-icono1.svg',\n description: 'Pago inicial bajo',\n },\n {\n img: './assets/img/v3/leasing-rent2buy-icono2.svg',\n description: ' Administración de mantenimiento',\n },\n {\n img: './assets/img/v3/leasing-rent2buy-icono3.svg',\n description: 'Seguro de auto, vida y desempleo incluido',\n },\n {\n img: './assets/img/v3/leasing-rent2buy-icono4.svg',\n description: 'Te olvidas de la venta del vehículo',\n }\n ]\n },\n {\n id: 'Rent2Buy',\n title: '¿Qué es Rent2Buy?',\n content: `El Rent2Buy te permite rentar un vehículo de 12 hasta 60 meses pero con la opción a comprarlo por un precio menor al de mercado al término del contrato, disfrutando de las siguientes ventajas:`,\n advantages: [\n {\n img: './assets/img/v3/leasing-rent2buy-icono5.svg',\n description: 'Tú determinas cuál será el valor de compra'\n },\n {\n img: './assets/img/v3/leasing-rent2buy-icono1.svg',\n description: 'Pago inicial bajo',\n },\n {\n img: './assets/img/v3/leasing-rent2buy-icono2.svg',\n description: 'Administración de mantenimiento',\n },\n {\n img: './assets/img/v3/leasing-rent2buy-icono3.svg',\n description: 'Seguro de auto, vida y desempleo incluido',\n }\n ]\n },\n {\n id: 'Crédito',\n title: '¿Qué es el crédito BitCar?',\n content: `Este tipo de crédito te permite adquirir el auto de tus sueños sin necesidad de pagar el monto total al inicio de la compra. En su lugar, podrás pagar la totalidad del auto en mensualidades durante el período que elijas.`,\n advantages: [\n {\n img: './assets/img/v3/leasing-plan-credito-icono1.svg',\n description: 'Tu eres dueño del vehículo'\n },\n {\n img: './assets/img/v3/leasing-plan-credito-icono2.svg',\n description: 'Seguro de auto, vida y desempleo incluido',\n },\n {\n img: './assets/img/v3/leasing-plan-credito-icono3.svg',\n description: 'Rastreo/ GPS y auto sustituto',\n },\n {\n img: './assets/img/v3/leasing-plan-credito-icono4.svg',\n description: 'Plazos desde 12 hasta 60 meses',\n }\n ]\n }\n ],\n home_leaseProcess: {\n defaultTitle: '¿Cuáles son los pasos?',\n defaultSubtitle: '¡Sigue estos sencillos pasos!',\n cards: [\n {\n title: '1. Busca y configura',\n subtitle: 'Encuentra el auto que mas te agrade y configura tu plan.',\n srcImg: './assets/img/lease1.jpeg',\n },\n {\n title: 'Verifica y aprueba',\n subtitle: 'Carga tus documentos y valida la información.',\n srcImg: './assets/img/lease2.jpeg',\n },\n {\n title: '3. Firma tu contrato',\n subtitle: 'Firma el contrato y realiza el pago inicial para asegurar tu auto.',\n srcImg: './assets/img/lease3.jpeg',\n },\n {\n title: '4. Agenda y recibe tu auto',\n subtitle: '¡Recibe las llaves de tu próximo auto!',\n srcImg: './assets/img/lease4.jpeg',\n },\n ]\n },\n faqs: {\n \"id\": 1,\n \"published_at\": \"2022-02-14T06:13:46.000Z\",\n \"created_at\": \"2022-02-14T06:09:51.000Z\",\n \"updated_at\": \"2022-02-14T06:13:46.000Z\",\n \"header\": {\n \"id\": 9,\n \"title\": \"¿Tienes alguna duda?\",\n \"subtitle\": \"Preguntas frecuentes\"\n },\n \"preguntas_respuestas\": [\n {\n \"id\": 4,\n \"question\": \"¿Puedo arrendar un seminuevo?\",\n \"answer\": \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. \",\n \"link\": \"#answer1\",\n \"status\": true,\n \"quick_answer\": \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.\",\n },\n {\n \"id\": 5,\n \"question\": \"¿Puedo facturar mi pago inicial?\",\n \"answer\": \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. \",\n \"link\": \"#answer2\",\n \"status\": true,\n \"quick_answer\": \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.\",\n },\n {\n \"id\": 6,\n \"question\": \"¿El pago inicial es reembolsable?\",\n \"answer\": \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. \",\n \"link\": \"#answer3\",\n \"status\": true,\n \"quick_answer\": \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.\",\n },\n {\n \"id\": 4,\n \"question\": \"¿Puedo arrendar un seminuevo?\",\n \"answer\": \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. \",\n \"link\": \"#answer1\",\n \"status\": true,\n \"quick_answer\": \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.\",\n },\n {\n \"id\": 5,\n \"question\": \"¿Puedo facturar mi pago inicial?\",\n \"answer\": \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. \",\n \"link\": \"#answer2\",\n \"status\": true,\n \"quick_answer\": \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.\",\n },\n {\n \"id\": 6,\n \"question\": \"¿El pago inicial es reembolsable?\",\n \"answer\": \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. \",\n \"link\": \"#answer3\",\n \"status\": true,\n \"quick_answer\": \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.\",\n }\n ]\n },\n home_requirements: [\n {\n id: 'Asalariado',\n title: 'Documentos:',\n requirements: [\n {\n doc: `Comprobante de ingresos`,\n },\n {\n doc: `Comprobante de domicilio`,\n },\n {\n doc: `Identificación oficial vigente`,\n },\n {\n doc: `Constancia de situación fiscal`,\n }\n\n ]\n },\n {\n id: 'Combinado',\n title: 'Documentos:',\n extratitle: 'Para comprobar ingresos adicionales, necesitas:',\n requirements: [\n {\n doc: `Checklist asalariado`,\n },\n {\n doc: `Otros documentos`,\n },\n ],\n extras: [\n {\n doc: `4 meses de estados de cuenta con los ingresos adicionales`,\n },\n {\n doc: `Última declaración de impuestos con su acuse`,\n }\n ]\n },\n {\n id: 'Profesionista independiente',\n title: 'Monto del arrendamiento (con IVA) menor o igual a MXN 750 mil:',\n title2: 'Monto de arrendamiento (con IVA) mayor a MXN 750 mil',\n requirements: [\n {\n doc: `Última declaración de impuestos anual (con acuse de recibo)*`,\n },\n {\n doc: `Estados de cuenta (4 últimos meses completos y consecutivos)`,\n },\n {\n doc: `Identificación oficial vigente`,\n },\n {\n doc: `Comprobante de domicilio`,\n }\n ],\n requirements2: [\n {\n doc: `Últimas dos declaraciones de impuestos anual (con acuse de recibo)*`,\n },\n {\n doc: `Estados de cuenta (6 últimos meses completos y consecutivos)`,\n },\n {\n doc: `Identificación oficial vigente`,\n },\n {\n doc: `Comprobante de domicilio`,\n }\n ],\n extras: [],\n note: `*Si tienes dudas, confirmar estos datos con tu asesor BitCar`,\n\n },\n {\n id: 'Ex Patriado',\n title: 'Ex Patriado',\n requirements: [\n {\n doc: `Identificación oficial mexicana`,\n },\n {\n doc: `Comprobante de domicilio vigente (no mayor a 3 meses)`,\n },\n {\n doc: `Comprobante de ingresos`,\n },\n {\n doc: `Constancia de situación fiscal`,\n },\n {\n doc: `Carta laboral de la empresa firmada por el área de RH`,\n }\n ]\n }\n ],\n home_conocemas: [\n {\n id: 'Leasing',\n class: 'bitcar-head',\n classli: 'li-orange',\n plans: [\n {\n plan: 'La opción con la mensualidad más baja'\n },\n {\n plan: 'Arrendamiento puro de 24 a 48 meses'\n },\n {\n plan: 'La renta incluye seguro automotriz, servicios de localización y recuperación'\n },\n {\n plan: 'Acompañamiento legal en caso de siniestro'\n },\n {\n plan: 'Generación de citas de mantenimiento'\n },\n {\n plan: 'El auto se entrega con placas, pago de derechos o tenencia y verificación'\n }\n ]\n },\n {\n id: 'Rent2Buy',\n class: 'black-head',\n classli: 'li-black',\n plans: [\n {\n plan: 'Arrendamiento orientado a compra al final del plazo'\n },\n {\n plan: 'Plazos de 12 hasta 60 meses'\n },\n {\n plan: 'Incluye seguro automotriz, servicio de localización y recuperación'\n },\n {\n plan: 'Acompañamiento legal en caso de siniestro'\n },\n {\n plan: 'Generación de citas de mantenimiento'\n },\n {\n plan: 'El auto se entrega con placas'\n },\n {\n plan: 'Es la opción si estás seguro de comprar al final el auto'\n }\n ]\n },\n {\n id: 'Crédito BitCar',\n class: 'bitcar-head',\n classli: 'li-orange',\n plans: [\n {\n plan: 'Eres el propietario del auto desde el inicio del contrato'\n },\n {\n plan: 'Enganche del 20% al 35%'\n },\n {\n plan: 'Plazos de 12 hasta 60 meses'\n },\n {\n plan: 'Incluye seguro automotriz, servicio de localización y recuperación'\n },\n {\n plan: 'Acompañamiento legal en caso de siniestro'\n },\n {\n plan: 'Generación de citas de mantenimiento'\n }\n ]\n }\n ]\n\n}","export enum GoogleLogEvents {\n exception = 'exception',\n}\n\nexport enum LoggerStrategies {\n GOOGLE = 'GoogleStrategy',\n}\n","import { NgModule } from '@angular/core';\nimport { LazyImgDirective } from './lazy-img.directive';\n\n\n\n@NgModule({\n declarations: [\n LazyImgDirective\n ],\n exports: [\n LazyImgDirective\n ]\n})\nexport class DirectivesModule { }\n","import { Directive, ElementRef } from '@angular/core';\n\n// eslint-disable-next-line @angular-eslint/directive-selector\n@Directive({ selector: 'img' })\nexport class LazyImgDirective {\n constructor({ nativeElement }: ElementRef) {\n const supports = 'loading' in HTMLImageElement.prototype;\n\n if (supports) {\n nativeElement.setAttribute('loading', 'lazy');\n }\n }\n}\n","import { Component, Input, OnInit, Output, EventEmitter, OnDestroy, ViewChild, ElementRef } from '@angular/core';\nimport { FormGroup, FormBuilder } from '@angular/forms';\nimport { getIsInvalid, getCssError, ENUM_CALLBACK_TRANFORMS } from '../../helpers/inputsHelpers';\nimport { City } from '../../interfaces/city-model';\nimport { Colonia } from '../../interfaces/zip-model';\nimport { IResponseOportunidad } from '../../interfaces/IResponse';\nimport { firstValueFrom, debounceTime, Subscription } from 'rxjs';\nimport { CatalogsService } from '../../../../services/catalogs.service';\nimport { StepService } from '../../services/step.service';\nimport { FORM_ADDRESS_BERAU } from '../../helpers/formBuilders';\nimport { transformInputs, setValidatorRequired } from '../../helpers/inputsTranforms';\nimport { AddressListener } from './listener';\nimport { Country } from '../../interfaces/countries';\nimport { environment } from 'src/environments/environment';\nimport { State } from '../../interfaces/states.model';\nimport { DataService } from 'src/app/services/data.service';\n\n@Component({\n selector: 'app-address-creditrequest',\n templateUrl: './address-creditrequest.component.html',\n styleUrls: ['./address-creditrequest.component.scss'],\n})\nexport class AddressCreditrequestComponent implements OnInit, OnDestroy {\n @Input()\n address: any = {};\n\n @Input()\n isBetweenActivated = false;\n\n @Output()\n addressForm = new EventEmitter();\n\n @Output()\n municipalityNameChanges = new EventEmitter();\n\n @ViewChild('stateSelect') stateSelect!: ElementRef;\n\n form!: FormGroup;\n\n paises: Country[] = [];\n states: State[] = [];\n municipalities: City[] = [];\n colonies: Colonia[] = [];\n\n getInfoHasErrors = false;\n loading = false;\n\n addressListener!: AddressListener;\n templateSuffix = environment.templateSuffix;\n\n municipalityName = \"\";\n isAvalWithErrorSubscription!: Subscription;\n\n constructor(\n private fb: FormBuilder,\n private catalogService: CatalogsService,\n private dataService: DataService,\n private stepService: StepService\n ) {\n this.initForm();\n this.addressListener = new AddressListener(this.catalogService);\n\n this.isAvalWithErrorSubscription = this.dataService.getSharedFunction().subscribe((data) => {\n if (data === 'isAvalWithError') {\n this.form.reset();\n this.form.get('cp')!.setValue('');\n }\n });\n }\n\n initForm() {\n this.form = FORM_ADDRESS_BERAU(this.fb);\n this.form.get('cityId')!.disable();\n this.form.get('municipality')!.disable();\n this.form.get('stateId')!.disable();\n }\n\n async ngOnInit() {\n await this.initInfo();\n this.initListener();\n this.fillData();\n }\n\n async initInfo() {\n const states: IResponseOportunidad = await firstValueFrom(\n this.catalogService.getStates()\n );\n this.states = states.data;\n\n\n if (this.isBetweenActivated) {\n const countries = await firstValueFrom(\n this.catalogService.getCountries()\n );\n this.paises = countries.countries;\n setValidatorRequired(this.form, 'countryId');\n }\n }\n\n fillData() {\n this.form.get('calle')!.setValue(this.address?.calle || '');\n this.form.get('numExt')!.setValue(this.address?.numExt || '');\n this.form.get('numInt')!.setValue(this.address?.numInt || '');\n this.form.get('cp')!.setValue(this.address?.cp || '', { emitEvent: false });\n this.changeCP(this.address, true);\n if (this.isBetweenActivated) {\n this.form.get('countryId')!.setValue(this.address?.countryId || '');\n }\n }\n\n initListener() {\n const control = this.form.get('cp');\n control?.valueChanges\n .pipe(debounceTime(1500))\n .subscribe((value) => {\n let newAddress = { ...this.address, cp: value };\n this.changeCP(newAddress);\n });\n\n const colonia = this.form.get('colonia');\n colonia?.valueChanges.pipe(debounceTime(100)).subscribe((value) => {\n if (value === '') return;\n const coloniaDesc = this.form.get('coloniaDesc');\n const resp =\n this.colonies.find((ele: Colonia) => value === ele.idAsentaCpCons)\n ?.dasenta! || '';\n coloniaDesc?.setValue(resp);\n });\n\n const countryId = this.form.get('countryId');\n countryId?.valueChanges.pipe(debounceTime(100)).subscribe((value) => {\n const countryDesc = this.form.get('countryDesc');\n let resp = this.paises.find(\n (pais) => pais.countryId === +value\n )?.countryDesc;\n countryDesc?.setValue(resp);\n });\n\n this.form.valueChanges.subscribe(() => {\n this.addressForm.emit(this.form);\n this.municipalityNameChanges.emit(this.municipalityName);\n });\n\n const fields = ['calle', 'numExt', 'numInt', 'colonia'];\n\n transformInputs(\n this.form,\n fields,\n ENUM_CALLBACK_TRANFORMS.transformInputToUpperCase\n );\n }\n\n async changeCP(address: any, change: boolean = true) {\n if (change) {\n this.resetFieldsDomicilio();\n }\n\n if (!address.cp) return;\n\n this.showLoading();\n\n try {\n const { municipalities, colonies, cityId, dmnpio, idState, stateNumber, municipalityName } =\n await this.addressListener.requestAddress(address.cp, this.states);\n\n console.warn({\n municipalities: municipalities,\n colonies: colonies,\n cityId: cityId,\n dmnpio: dmnpio,\n idState: idState\n });\n this.municipalities = municipalities!;\n this.colonies = colonies;\n this.municipalityName = municipalityName\n\n if (change) {\n this.form.get('stateId')!.setValue(+idState);\n this.form.get('municipality')!.setValue(dmnpio);\n this.form.get('cityId')!.setValue(cityId);\n this.form.get('idAsentaCpConst')!.setValue(address.colonia);\n this.form.get('colonia')!.setValue(address.colonia);\n }\n\n const coloniaCrtl = this.form.get('colonia');\n if (coloniaCrtl && coloniaCrtl.value) {\n const resp = this.colonies.find((ele: Colonia) => coloniaCrtl.value === ele.idAsentaCpCons)?.dasenta || '';\n this.form.get('coloniaDesc')!.setValue(resp);\n } else {\n const resp = this.colonies.find((ele: Colonia) => colonies[0].idAsentaCpCons === ele.idAsentaCpCons)?.dasenta || '';\n this.form.get('coloniaDesc')!.setValue(resp);\n }\n\n const stateCrtl = this.form.get('stateId');\n if (stateCrtl && stateCrtl.value) {\n let stateDesc = this.states.find((state) => state.idDaVinci === +stateCrtl.value)?.stateName;\n this.form.get('stateDesc')?.setValue(stateDesc);\n } else {\n let stateDesc = this.states.find((state) => state.idDaVinci === +colonies[0].idState!)?.stateName;\n this.form.get('stateDesc')?.setValue(stateDesc);\n }\n\n console.log(this.form.value);\n } catch (error) {\n console.error(error);\n this.resetFieldsDomicilio();\n this.getInfoHasErrors = true;\n } finally {\n this.loading = false;\n }\n }\n\n showLoading() {\n this.getInfoHasErrors = false;\n const activateLoading = ['E2', 'E3', 'E10', 'E20', 'E32', 'E40'];\n this.loading = activateLoading.includes(this.stepService.data.step!);\n }\n\n resetFieldsDomicilio() {\n this.colonies = [];\n this.municipalities = [];\n\n const fields = [\n 'stateId',\n 'cityId',\n 'colonia',\n 'municipality',\n 'coloniaDesc',\n 'stateDesc',\n 'otherCityDesc',\n ];\n\n this.addressListener.resetForm(this.form, fields);\n }\n\n isInvalid(campo: string) {\n return getIsInvalid(this.form, campo);\n }\n\n hasErrors(campo: string) {\n return getCssError(this.form, campo);\n }\n\n ngOnDestroy(): void {\n this.isAvalWithErrorSubscription.unsubscribe();\n }\n}\n","
\n
\n
\n
\n \n \n Calle requerida\n
\n
\n \n \n
\n
\n \n \n Exterior requerido\n
\n
\n \n \n
\n
\n\n
\n
\n \n \n 4 o 5 dígitos\n
\n\n
\n \n \n Colonia requerida\n
\n\n
\n \n \n
\n
\n\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n\n\n
\n \n El código postal no fue encontrado intente nuevamente o con otro\n \n
\n\n
\n

\n \n Obteniendo su dirección espere por favor...\n \n

\n \n
\n
","import { firstValueFrom } from 'rxjs/internal/firstValueFrom';\nimport { CatalogsService } from 'src/app/services/catalogs.service';\nimport { FormGroup } from '@angular/forms';\nimport { State } from '../../interfaces/states.model';\n\n\nexport class AddressListener {\n\n constructor(private catalogService: CatalogsService) { }\n\n async requestAddress(CP: string, states: State[]) {\n\n //Pedimos los datos del CP\n const respCp = await firstValueFrom(this.catalogService.getZipCode(CP));\n const colonies = respCp.resultados;\n\n\n if (colonies.length === 0) throw new Error('CP no existe');\n //Extraemos idState para extraer los municipios\n const idState = +colonies[0].idState!;\n const stateNumber = +colonies[0].cestado!;\n\n const dmnpio = colonies[0].dciudad ? colonies[0].dciudad : colonies[0].dmnpio;\n const municipalityName = colonies[0].dmnpio!;\n\n //Pedimos los municipios y seteamos el cityId ( que es el id del municipio )\n const respMun = await firstValueFrom(this.catalogService.getCities(idState));\n const cityId = +colonies[0].idCity!;\n\n return {\n municipalities: respMun.cities,\n colonies,\n cityId,\n dmnpio,\n idState,\n stateNumber,\n municipalityName\n }\n\n }\n\n resetForm(form: FormGroup, fields: string[]) {\n\n form.get(fields[0])!.setValue(1);\n\n for (const field of fields.slice(1)) {\n form.get(field)!.setValue('');\n }\n\n }\n\n\n}\n","import { Component, Input, OnInit, Output, EventEmitter, OnDestroy } from '@angular/core';\nimport { FormGroup, FormBuilder } from '@angular/forms';\nimport { getIsInvalid, getCssError, ENUM_CALLBACK_TRANFORMS } from '../../helpers/inputsHelpers';\nimport { City } from '../../interfaces/city-model';\nimport { Colonia } from '../../interfaces/zip-model';\nimport { IResponseOportunidad } from '../../interfaces/IResponse';\nimport { firstValueFrom, debounceTime, Subscription } from 'rxjs';\nimport { CatalogsService } from '../../../../services/catalogs.service';\nimport { StepService } from '../../services/step.service';\nimport { FORM_ADDRESS_BERAU } from '../../helpers/formBuilders';\nimport { transformInputs, setValidatorRequired } from '../../helpers/inputsTranforms';\nimport { AddressListener } from './listener';\nimport { Country } from '../../interfaces/countries';\nimport { environment } from 'src/environments/environment';\nimport { State } from '../../interfaces/states.model';\nimport { DataService } from 'src/app/services/data.service';\n\n@Component({\n selector: 'app-address',\n templateUrl: './address.component.html',\n styleUrls: ['./address.component.scss'],\n})\nexport class AddressComponent implements OnInit, OnDestroy {\n @Input()\n address: any = {};\n\n @Input()\n isBetweenActivated = false;\n\n @Output()\n addressForm = new EventEmitter();\n\n @Output()\n municipalityNameChanges = new EventEmitter();\n\n form!: FormGroup;\n\n paises: Country[] = [];\n states: State[] = [];\n municipalities: City[] = [];\n colonies: Colonia[] = [];\n\n getInfoHasErrors = false;\n loading = false;\n\n addressListener!: AddressListener;\n templateSuffix = environment.templateSuffix;\n\n municipalityName = \"\";\n isAvalWithErrorSubscription!: Subscription;\n\n constructor(\n private fb: FormBuilder,\n private catalogService: CatalogsService,\n private dataService: DataService,\n private stepService: StepService\n ) {\n this.initForm();\n this.addressListener = new AddressListener(this.catalogService);\n\n this.isAvalWithErrorSubscription = this.dataService.getSharedFunction().subscribe((data) => {\n if (data === 'isAvalWithError') {\n this.form.reset();\n this.form.get('cp')!.setValue('');\n }\n });\n }\n\n initForm() {\n this.form = FORM_ADDRESS_BERAU(this.fb);\n this.form.get('cityId')!.disable();\n this.form.get('municipality')!.disable();\n this.form.get('stateId')!.disable();\n }\n\n async ngOnInit() {\n await this.initInfo();\n this.initListener();\n this.fillData();\n }\n\n async initInfo() {\n const states: IResponseOportunidad = await firstValueFrom(\n this.catalogService.getStates()\n );\n this.states = states.data;\n\n if (this.isBetweenActivated) {\n const countries = await firstValueFrom(\n this.catalogService.getCountries()\n );\n this.paises = countries.countries;\n setValidatorRequired(this.form, 'countryId');\n }\n }\n\n fillData() {\n this.form.get('calle')!.setValue(this.address?.calle || '');\n this.form.get('numExt')!.setValue(this.address?.numExt || '');\n this.form.get('numInt')!.setValue(this.address?.numInt || '');\n this.form.get('cp')!.setValue(this.address?.cp || '', { emitEvent: false });\n this.changeCP(this.address?.cp, false);\n this.form.get('colonia')!.setValue(this.address?.colonia || '');\n this.form.get('idAsentaCpConst')!.setValue(this.address?.colonia || '');\n this.form.get('municipality')!.setValue(this.address?.municipality || '');\n this.form.get('cityId')!.setValue(this.address?.cityId ? Number(this.address?.cityId) : '');\n this.form.get('stateId')!.setValue(this.address?.stateId || '');\n\n if (this.isBetweenActivated) {\n this.form.get('countryId')!.setValue(this.address?.countryId || '');\n }\n }\n\n initListener() {\n const control = this.form.get('cp');\n control?.valueChanges\n .pipe(debounceTime(1500))\n .subscribe((value) => this.changeCP(value));\n\n const colonia = this.form.get('colonia');\n colonia?.valueChanges.pipe(debounceTime(100)).subscribe((value) => {\n if (value === '') return;\n const coloniaDesc = this.form.get('coloniaDesc');\n const resp =\n this.colonies.find((ele: Colonia) => value === ele.idAsentaCpCons)\n ?.dasenta! || '';\n coloniaDesc?.setValue(resp);\n });\n\n const countryId = this.form.get('countryId');\n countryId?.valueChanges.pipe(debounceTime(100)).subscribe((value) => {\n const countryDesc = this.form.get('countryDesc');\n let resp = this.paises.find(\n (pais) => pais.countryId === +value\n )?.countryDesc;\n countryDesc?.setValue(resp);\n });\n\n this.form.valueChanges.subscribe(() => {\n this.addressForm.emit(this.form);\n this.municipalityNameChanges.emit(this.municipalityName);\n });\n\n const fields = ['calle', 'numExt', 'numInt', 'colonia'];\n\n transformInputs(\n this.form,\n fields,\n ENUM_CALLBACK_TRANFORMS.transformInputToUpperCase\n );\n }\n\n async changeCP(CP: string, change: boolean = true) {\n if (change) {\n this.resetFieldsDomicilio();\n }\n\n if (!CP) return;\n\n this.showLoading();\n\n try {\n const { municipalities, colonies, cityId, dmnpio, idState, municipalityName } =\n await this.addressListener.requestAddress(CP, this.states);\n\n console.warn({\n municipalities: municipalities,\n colonies: colonies,\n cityId: cityId,\n dmnpio: dmnpio,\n idState: idState\n });\n\n this.municipalities = municipalities!;\n this.colonies = colonies;\n this.municipalityName = municipalityName\n\n if (change) {\n this.form.get('stateId')!.setValue(+idState);\n this.form.get('municipality')!.setValue(dmnpio);\n this.form.get('cityId')!.setValue(cityId);\n this.form.get('idAsentaCpConst')!.setValue(colonies[0].idAsentaCpCons);\n this.form.get('colonia')!.setValue(colonies[0].idAsentaCpCons);\n }\n\n const coloniaCrtl = this.form.get('colonia');\n if (coloniaCrtl && coloniaCrtl.value) {\n const resp = this.colonies.find((ele: Colonia) => coloniaCrtl.value === ele.idAsentaCpCons)?.dasenta || '';\n this.form.get('coloniaDesc')!.setValue(resp);\n } else {\n const resp = this.colonies.find((ele: Colonia) => colonies[0].idAsentaCpCons === ele.idAsentaCpCons)?.dasenta || '';\n this.form.get('coloniaDesc')!.setValue(resp);\n }\n\n const stateCrtl = this.form.get('stateId');\n if (stateCrtl && stateCrtl.value) {\n let stateDesc = this.states.find((state) => state.id === +stateCrtl.value)?.stateName;\n this.form.get('stateDesc')?.setValue(stateDesc);\n } else {\n let stateDesc = this.states.find((state) => state.id === +colonies[0].idState!)?.stateName;\n this.form.get('stateDesc')?.setValue(stateDesc);\n }\n\n console.log(this.form.value);\n } catch (error) {\n console.error(error);\n this.resetFieldsDomicilio();\n this.getInfoHasErrors = true;\n } finally {\n this.loading = false;\n }\n }\n\n showLoading() {\n this.getInfoHasErrors = false;\n const activateLoading = ['E2', 'E3', 'E10', 'E20', 'E32', 'E40'];\n this.loading = activateLoading.includes(this.stepService.data.step!);\n }\n\n resetFieldsDomicilio() {\n this.colonies = [];\n this.municipalities = [];\n\n const fields = [\n 'stateId',\n 'cityId',\n 'colonia',\n 'municipality',\n 'coloniaDesc',\n 'stateDesc',\n 'otherCityDesc',\n ];\n\n this.addressListener.resetForm(this.form, fields);\n }\n\n isInvalid(campo: string) {\n return getIsInvalid(this.form, campo);\n }\n\n hasErrors(campo: string) {\n return getCssError(this.form, campo);\n }\n\n ngOnDestroy(): void {\n this.isAvalWithErrorSubscription.unsubscribe();\n }\n}\n","
\n
\n
\n
\n \n \n Calle requerida\n
\n
\n \n \n
\n
\n \n \n Exterior requerido\n
\n
\n \n \n
\n
\n\n
\n
\n \n \n 4 o 5 dígitos\n
\n\n
\n \n \n Colonia requerida\n
\n\n
\n \n \n
\n
\n\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n\n\n
\n \n El código postal no fue encontrado intente nuevamente o con otro\n \n
\n\n
\n

\n \n Obteniendo su dirección espere por favor...\n \n

\n \n
\n
","import { firstValueFrom } from 'rxjs/internal/firstValueFrom';\nimport { CatalogsService } from 'src/app/services/catalogs.service';\nimport { FormGroup } from '@angular/forms';\nimport { State } from '../../interfaces/states.model';\n\n\nexport class AddressListener {\n\n constructor(private catalogService: CatalogsService) { }\n\n async requestAddress(CP: string, states: State[]) {\n\n //Pedimos los datos del CP\n const respCp = await firstValueFrom(this.catalogService.getZipCode(CP));\n const colonies = respCp.resultados;\n\n\n if (colonies.length === 0) throw new Error('CP no existe');\n //Extraemos idState para extraer los municipios\n let idState = +colonies[0].idState!;\n\n const dmnpio = colonies[0].dciudad ? colonies[0].dciudad : colonies[0].dmnpio;\n const municipalityName = colonies[0].dmnpio!;\n\n //Pedimos los municipios y seteamos el cityId ( que es el id del municipio )\n const respMun = await firstValueFrom(this.catalogService.getCities(idState));\n\n const cityId = +colonies[0].idCity!;\n\n return {\n municipalities: respMun.cities,\n colonies,\n cityId,\n dmnpio,\n idState,\n municipalityName\n }\n\n }\n\n resetForm(form: FormGroup, fields: string[]) {\n\n form.get(fields[0])!.setValue(1);\n\n for (const field of fields.slice(1)) {\n form.get(field)!.setValue('');\n }\n\n }\n\n\n}\n","import { Component, Input, Output, EventEmitter, HostListener, Inject, Injector } from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ModalTakePhotosComponent } from '../modal-take-photos/modal-take-photos.component';\nimport { BuroService } from 'src/app/services/buro.service'\nimport { Subscription } from 'rxjs';\nimport { SseService } from 'src/app/services/sse.service';\nimport { ModalService } from 'src/app/services/modal-service.service';\nimport { Icons } from 'src/app/components/modal-alert/enums';\nimport { returnFileSize, _isNullOrUndefined, removeAccents } from '../../helpers/code-helper';\nimport { environment } from 'src/environments/environment';\nimport { WINDOW } from 'src/app/utils/window';\nimport { DataService } from 'src/app/services/data.service';\nimport { KeyclockProfile } from 'src/app/model/http/keyclock.model';\nimport { KeycloakService } from 'keycloak-angular';\nimport { StepService } from '../../services/step.service';\n\n\nexport interface FileUploadE {\n error: false,\n msg: '',\n name: ''\n}\n\n@Component({\n selector: 'app-btn-upload-files',\n templateUrl: './btn-upload-files.component.html',\n styleUrls: ['./btn-upload-files.component.scss']\n})\nexport class BtnUploadFilesComponent {\n @Output() public generateQr = new EventEmitter();\n @Output() public listenSse = new EventEmitter();\n @Output() errorUploadE = new EventEmitter();\n @Input() selectFiles!: any;\n @Input() typeFile!: any;\n public screenWidth: any = this.window.innerWidth;\n public screenHeight: any = this.window.innerHeight;\n obsSse!: Subscription;\n errorMaxSize: boolean = false\n errorDelete: boolean = false\n errorFileAllowed: boolean = false\n errorFileUpload: FileUploadE = {} as FileUploadE;\n userObject!: KeyclockProfile;\n keycloackService: KeycloakService;\n\n templateSuffix = environment.templateSuffix;\n private dataService: DataService;\n private modalService: ModalService;\n private stepService: StepService;\n\n\n\n constructor(\n private platform: Platform,\n public dialog: MatDialog,\n private buroService: BuroService,\n private sseService: SseService,\n private injector: Injector,\n @Inject(WINDOW) private window: Window\n ) {\n this.modalService = this.injector.get(ModalService);\n this.dataService = this.injector.get(DataService);\n this.keycloackService = this.injector.get(KeycloakService);\n this.stepService = this.injector.get(StepService);\n this.loadUserinfo();\n }\n\n /**\n * Carga la información del usuario logueado\n * Se utoliza el Nombre y Apellido para preformatear el nombre del documento\n * @memberof BtnUploadFilesComponent\n * @author victor.mendez\n */\n loadUserinfo() {\n this.keycloackService.loadUserProfile().then((user: KeyclockProfile) => {\n this.userObject = user;\n });\n }\n\n\n changeVoucher(event: any, item: any) {\n this.uploadFile(item, event.target.files[0]);\n this.dataService.getSharedFunction().subscribe((data: boolean) => {\n if (data) {\n this.errorFileUpload = {} as FileUploadE;\n }\n });\n }\n\n uploadFile(item: any, doc: File) {\n let file: File;\n this.errorMaxSize = false\n this.errorFileAllowed = false\n let size = returnFileSize(doc.size);\n let fileAllowed = this.validateFileType(doc.type, item.filesAccept || null);\n\n if (size && fileAllowed) {\n\n const _name = doc.name.split('.');\n const _namedoc = this.getNameDocument(_name, item.referenceId, item.description, item.documentId);\n\n file = new File([doc], _namedoc, { type: doc.type });\n\n item.loader = true;\n item.name = file.name;\n item.size = size;\n let formData = new FormData();\n formData.append('file', file);\n formData.append('size', size);\n formData.append('templateId', item.templateId);\n formData.append('documentId', item.documentId);\n formData.append('clientid', item.clientId);\n formData.append('email', item.email);\n formData.append('sseId', item.sseId);\n formData.append('referenceId', item.referenceId);\n\n this.buroService.uploadDocuments(formData).subscribe({\n next: (data) => {\n let newd = JSON.parse(data);\n this.errorFileUpload.error = newd.error;\n this.errorFileUpload.msg = newd.message;\n this.errorFileUpload.name = newd.fileName;\n this.selectFiles.files.filter((a: any, index: any) => {\n if (a.name === newd.fileName && newd.error) {\n this.selectFiles.files[index].name = '';\n }\n });\n\n this.errorUploadE.emit(this.errorFileUpload.error);\n item.loader = false;\n },\n error: (res: any) => {\n console.log(res);\n item.loader = false;\n item.name = null;\n item.size = null;\n this.sseService.destroy();\n }\n });\n\n } else {\n if (!size)\n this.errorMaxSize = true\n if (!fileAllowed)\n this.errorFileAllowed = true\n }\n }\n\n /**\n * Genera el nombre del documento a subir ya preformateados con \n * nombre, apellido y tipo de documento y tambien el referenciaId para verificar si es quincenal o mensual\n * @param {string[]} name El nombre original del archivo\n * @param {string} referenceId El id de referencia del documento servira para verificar si es quincenal o mensual\n * @param {string} description Solo se usa para verificar si el documento es de cuenta o impuestos\n * @param {string} documentId El id del documento para verificar el tipo de documento y contruir el nombre\n * @access private\n * @return {*} {string}\n * @memberof BtnUploadFilesComponent\n * @author victor.mendez \n */\n private getNameDocument(name: string[], referenceId: string, description: string, documentId: number): string {\n\n const formatName = (name: string | null | undefined): string => {\n return _isNullOrUndefined(name) ? '' : removeAccents(name!).trim().split(' ')[0].toLowerCase();\n };\n\n let firstname = formatName(this.stepService.data.client.firstNamePF);\n let lastname = formatName(this.stepService.data.client.lastNamePF);\n let typeDocument = this.getTypeDocumentName(documentId);\n let extension = name[name.length - 1];\n\n let isSpecialNaming = referenceId.includes('quincenales') ||\n referenceId.includes('mensuales') ||\n description.toLowerCase().includes('cuenta') ||\n description.toLowerCase().includes('impuestos');\n // Construcye el nombre del documento basado en al condicion\n let documentName = `${firstname}_${lastname}_${typeDocument}`;\n if (isSpecialNaming) {\n documentName += `-${referenceId}`;\n }\n documentName += `.${extension}`;\n return documentName;\n }\n\n\n /**\n * Obtiene el nombre del tipo de documento a subir\n * Devolvera una cadena para preformatear el nombre del documento y especificarlo.\n * @param {string} documentId\n * @access private\n * @return {*} {string} Devuelve el nombre del tipo de documento como prefijo\n * @memberof BtnUploadFilesComponent\n * @author victor.mendez\n */\n private getTypeDocumentName(documentId: number): string {\n const documentTypes: { [id: number]: string } = {\n 45198: 'recibo_nomina',\n 20108: 'comprobante_domicilio',\n 45200: 'estado_cuenta',\n 47395: 'declaracion_impuestos',\n 51973: 'const_situacion_fiscal',\n 47394: 'ultimo_edo_cuenta',\n };\n return documentTypes[documentId] || '';\n }\n\n /**\n * Muestra el nombre del documento sin la referencia al usuario final en el front\n * @param {string} name\n * @return {*} {string}\n * @memberof BtnUploadFilesComponent\n * @author victor.mendez\n */\n showNameDocument(name: string): string {\n const keywords = ['quincenales', 'mensuales', 'cuenta', 'impuestos'];\n if (keywords.some(keyword => name.includes(keyword))) {\n const arre = name.split('_');\n arre.splice(arre.length - 2, 1);\n return arre.join('_');\n } else {\n return name;\n }\n }\n\n\n deleteVoucher(item: any) {\n const dialogLogin = this.modalService.openAlert({\n title: null,\n content: `El archivo ${this.showNameDocument(item.name)} será eliminado. ¿Deseas continuar?`,\n btnAction1: 'Sí, continuar',\n btnAction2: 'Cancelar',\n icon: Icons.info,\n idBtnAction1: null,\n idBtnAction2: null\n },\n false\n );\n dialogLogin.afterClosed().subscribe((result) => {\n if (result === true) {\n item.loader = true;\n this.buroService.deleteDocuments(item.folderId, item.fileId).subscribe({\n next: () => {\n item.name = null;\n item.size = null;\n item.fileId = '';\n item.folderId = '';\n item.loader = false;\n },\n error: () => {\n this.errorDelete = true;\n item.loader = false;\n setTimeout(() => {\n this.errorDelete = false;\n }, 2000);\n }\n });\n }\n });\n }\n\n checkshowBtnUpload(index: number) {\n if (index === 0)\n return true;\n else if (this.selectFiles.files[index - 1].name)\n return true\n else\n return false\n }\n\n openCamera(item: any) {\n const dialogRef = this.dialog.open(ModalTakePhotosComponent, {\n data: {\n item,\n typeFile: this.typeFile\n },\n panelClass: 'takephotos-modalbox',\n disableClose: true\n });\n\n dialogRef.afterClosed().subscribe((result) => {\n if (result)\n this.uploadFile(item, result);\n });\n }\n\n isMobile() {\n return this.screenWidth < 768 || this.platform.ANDROID || this.platform.IOS\n }\n\n takePhoto(item: object) {\n this.generateQr.emit({ ...item, typeFile: this.typeFile });\n }\n\n returnFilesAcept(item: any) {\n return item.filesAccept ? `.${item.filesAccept}` : '.pdf';\n }\n\n validateFileType(uploadedTypeFile: string, allowedType: string | null) {\n if (allowedType) {\n if (uploadedTypeFile.includes(allowedType))\n return true;\n else\n return false;\n } else {\n if (uploadedTypeFile.includes('pdf')) {\n return true;\n } else {\n return false;\n }\n }\n }\n\n @HostListener('window:resize', ['$event'])\n onWindowResize(): void {\n this.screenWidth = this.window.innerWidth;\n this.screenHeight = this.window.innerHeight;\n this.isMobile();\n }\n\n}\n","
\n
\n \n \n {{ showNameDocument(item.name) }}\n \n {{item.size}}\n \n \n \n error\n \"icon_delete\"\n \n
\n Error al eliminar archivo, intente más tarde.\n \n \n

\n {{item.text}}\n

\n \n \n El tamaño máximo permitido es de 12Mb.\n El documento debe ser de tipo PDF\n {{ errorFileUpload.msg }}\n\n\n \n \n El tamaño máximo permitido es de 12Mb.\n El documento debe ser de tipo PDF\n {{ errorFileUpload.msg }}\n \n
\n
\n
","import { ModalComponent } from './modal/modal.component';\nimport { StepperComponent } from './stepper/stepper.component';\nimport { TabsComponent } from './tabs/tabs.component';\nimport { TituloSectionComponent } from './titulo-section/titulo-section.component';\nimport { UnidadDetailComponent } from './unidad-detail/unidad-detail.component';\n\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { NgModule } from '@angular/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { BtnUploadFilesComponent } from './btn-upload-files/btn-upload-files.component';\nimport { NgxQRCodeModule } from '@techiediaries/ngx-qrcode';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ModalTakePhotosComponent } from './modal-take-photos/modal-take-photos.component';\nimport { WebcamModule } from 'ngx-webcam';\nimport { ErrSSEComponent } from './err-sse/err-sse.component';\nimport { QuoterComponentsModule } from 'src/app/components/quotercomponents.module';\nimport { StatusTitleComponent } from './status-title/status-title.component';\nimport { UnidadDetailOptionsComponent } from './unidad-detail-options/unidad-detail-options.component';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { UpdateContactsComponent } from './update-contacts/update-contacts.component';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { UnidadDetailModalComponent } from './unidad-detail-modal/unidad-detail-modal.component';\nimport { CounterComponent } from './counter/counter.component';\nimport { MifielComponent } from './mifiel/mifiel.component';\nimport { AddressComponent } from './address/address.component';\nimport { SignatureStatusComponent } from './signature-status/signature-status.component';\nimport { AddressCreditrequestComponent } from './address-creditrequest/address-creditrequest.component';\nimport { IdentityVerificationComponent } from './identity-verification/identity-verification.component';\nimport { IdentityOptionsComponent } from './identity-verification/identity-options/identity-options.component';\n\n\n@NgModule({\n declarations: [\n ModalComponent,\n StepperComponent,\n TabsComponent,\n TituloSectionComponent,\n UnidadDetailComponent,\n BtnUploadFilesComponent,\n ModalTakePhotosComponent,\n ErrSSEComponent,\n StatusTitleComponent,\n UnidadDetailOptionsComponent,\n UpdateContactsComponent,\n UnidadDetailModalComponent,\n CounterComponent,\n MifielComponent,\n AddressComponent,\n AddressCreditrequestComponent,\n SignatureStatusComponent,\n IdentityVerificationComponent,\n IdentityOptionsComponent\n ],\n imports: [\n MatIconModule,\n MatDialogModule,\n MatProgressSpinnerModule,\n NgxQRCodeModule,\n MatButtonModule,\n FormsModule,\n WebcamModule,\n QuoterComponentsModule,\n MatExpansionModule,\n MatSlideToggleModule,\n ReactiveFormsModule,\n MatButtonModule,\n MatCheckboxModule,\n MatDialogModule,\n CommonModule\n ],\n exports: [\n ModalComponent,\n StepperComponent,\n TabsComponent,\n TituloSectionComponent,\n UnidadDetailComponent,\n BtnUploadFilesComponent,\n ErrSSEComponent,\n StatusTitleComponent,\n UnidadDetailOptionsComponent,\n AddressComponent,\n AddressCreditrequestComponent,\n SignatureStatusComponent,\n IdentityVerificationComponent,\n IdentityOptionsComponent\n ],\n providers: [\n { provide: 'Window', useValue: window }\n ]\n})\nexport class ComponentsModule { }\n","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\nimport { map } from 'rxjs/operators';\nimport { interval, Subscription } from 'rxjs';\nimport { SummaryService } from '../../../../services/summary.service';\n\n@Component({\n selector: 'app-counter',\n templateUrl: './counter.component.html',\n styleUrls: ['./counter.component.scss']\n})\nexport class CounterComponent implements OnInit, OnDestroy {\n\n time!: {\n days: number;\n hours: number;\n minutes: number;\n seconds: number;\n };\n\n @Input() finishDateString: string = '';\n\n @Input() idCar: number = 0;\n\n finishDate: Date = new Date();\n\n obsTimer = new Subscription();\n\n constructor(private summaryService: SummaryService) { }\n\n ngOnInit(): void {\n // Inicializamos el momento que falta hasta llegaral tiempo objetivo con valores en 0\n this.time = {\n days: 0, hours: 0, minutes: 0, seconds: 0\n };\n // Creamos la fecha a partir de la fecha en formato string AAAA-MM-dd HH:mm:ss\n this.finishDate = new Date(this.finishDateString);\n this.obsTimer = this.start().subscribe();\n }\n\n ngOnDestroy(): void {\n this.obsTimer.unsubscribe();\n }\n\n updateTime() {\n\n const currentString = new Date().toLocaleString(\"en-US\", {timeZone: \"America/Mexico_City\"});\n const now = new Date(currentString);\n const diff = this.finishDate.getTime() - now.getTime();\n\n // Cálculos para sacar lo que resta hasta ese tiempo objetivo / final\n const days = Math.floor(diff / (1000 * 60 * 60 * 24));\n const hours = Math.floor(diff / (1000 * 60 * 60));\n const mins = Math.floor(diff / (1000 * 60));\n const secs = Math.floor(diff / 1000);\n\n // La diferencia que se asignará para mostrarlo en la pantalla\n this.time.days = days;\n this.time.hours = hours - days * 24;\n this.time.minutes = mins - hours * 60;\n this.time.seconds = secs - mins * 60;\n\n this.validateDeath();\n\n }\n\n validateDeath() {\n const { days, hours, minutes, seconds } = this.time;\n\n if (days === 0 && hours === 0 && minutes === 0 && seconds === 0 || days < 0 ) {\n this.summaryService.destroyCar.next(this.idCar);\n }\n\n }\n\n getPulse() {\n const { days, hours, minutes } = this.time;\n return days === 0 && hours === 0 && minutes < 10 ? 'pulse' : '';\n }\n\n // Ejecutamos la acción cada segundo, para obtener la diferencia entre el momento actual y el objetivo\n start() {\n return interval(1000).pipe(\n map((x: number) => {\n this.updateTime();\n return x;\n })\n );\n }\n\n}\n","
\n\n Tiempo restante disponible \n\n
\n DÍAS \n {{ time.days }} \n
\n\n\n
\n HRS \n {{ time.hours }} \n
\n\n\n
\n MIN \n {{ time.minutes }} \n
\n\n
\n SEG \n {{ time.seconds }} \n
\n\n
\n","import { Component, Input } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-err-sse',\n templateUrl: './err-sse.component.html',\n styleUrls: ['./err-sse.component.scss']\n})\nexport class ErrSSEComponent {\n\n @Input()\n title: string = ''\n templateSuffix = environment.templateSuffix;\n\n constructor(private router: Router) { }\n\n toHome(){\n this.router.navigate(['/home']);\n }\n\n}\n","
\n

{{ title}}

\n highlight_off \n\n \n
\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Component, Inject, HostListener, Injector } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { NgxQrcodeElementTypes } from '@techiediaries/ngx-qrcode';\nimport { Platform } from '@angular/cdk/platform';\nimport { BuroService } from 'src/app/services/buro.service';\nimport { IdentityVerificationComponent } from '../identity-verification.component';\n\n\n\n\n@Component({\n selector: 'app-identity-options',\n templateUrl: './identity-options.component.html',\n styleUrls: ['./identity-options.component.scss'],\n animations: [\n trigger('slideInOut', [\n state('in', style({ transform: 'translateX(0)' })),\n transition(':enter', [\n style({ transform: 'translateX(100%)' }),\n animate('300ms ease-in-out')\n ]),\n transition(':leave', [\n animate('300ms ease-in-out', style({ transform: 'translateX(-100%)' }))\n ])\n ]),\n trigger('slideIn', [\n transition(':enter', [\n style({ transform: 'translateX(-100%)' }),\n animate('300ms ease-in-out', style({ transform: 'translateX(0)' }))\n ])\n ])\n ]\n})\n/**\n * Represents the Identity Options component.\n * This component is responsible for displaying different options for identity verification, such as generating a QR code or sending an email.\n * It also handles the logic for opening the Identity Verification component in a modal.\n */\nexport class IdentityOptionsComponent {\n\n elementType: NgxQrcodeElementTypes = NgxQrcodeElementTypes.URL;\n url!: string;\n value: string = '';\n showContentQR: boolean = false;\n showContentMail: boolean = false;\n emailSentSuccess: boolean = false;\n public screenWidth: any = window.innerWidth;\n public screenHeight: any = window.innerHeight;\n email: string = '';\n onboardingStatusIncode: string = '';\n onboardingStatusIncodeEndorsment: string = '';\n showErrorVerify!: boolean;\n stepService: any;\n platform: Platform;\n buroService: BuroService;\n onboardingFinishedCount: number = 0;\n\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public dataParam: any,\n public dialog: MatDialog,\n public dialogRefOpt: MatDialogRef,\n public dialogRefIncode: MatDialogRef,\n private injector: Injector\n ) {\n this.platform = this.injector.get(Platform);\n this.buroService = this.injector.get(BuroService);\n this.url = dataParam.url;\n this.email = dataParam.email;\n this.stepService = dataParam.stepService;\n }\n\n\n /**\n * Button back to show the menu options\n * @memberof IdentityOptionsComponent\n * @author victor.mendez\n */\n buttonBack(): void {\n this.showContentQR = false;\n this.showContentMail = false;\n }\n\n /**\n * Generate QR Code \n * show the QR code and hide other options\n * @memberof IdentityOptionsComponent\n * @author victor.mendez\n */\n generateQRCode(): void {\n this.value = this.url;\n this.showContentQR = true;\n this.showContentMail = false;\n }\n\n /**\n * Send by email\n * show the email and hide other options\n * @memberof IdentityOptionsComponent\n */\n sendByEmail(): void {\n this.showContentQR = false;\n this.showContentMail = true;\n\n\n /* \n TODO: Implement email sending\n this.buroService.sendEmailIdentityVerification(this.email, this.url).subscribe({\n next: (resp) => {\n this.emailSentSuccess = true;\n console.log('Email sent successfully');\n },\n error: (error: any) => {\n console.error('Error sending email');\n // hace falta generar un flujo de error\n }\n }); */\n // Simulate email sending process\n setTimeout(() => {\n this.emailSentSuccess = true;\n }, 3000);\n }\n\n /**\n * Open modal incode iframe widget\n * @memberof IdentityOptionsComponent\n * @author victor.mendez\n */\n openModalIncode(): void {\n this.showContentMail = false;\n this.showContentQR = false;\n this.dialogRefOpt.close();\n this.dialogRefIncode = this.dialog.open(IdentityVerificationComponent,\n {\n disableClose: true,\n width: this.isMobile() ? '100vw' : 'calc(100% - 80px)',\n height: this.isMobile() ? '100vh' : 'calc(100% - 80px)',\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n data: {\n url: this.url\n }\n });\n }\n\n /**\n * Check if the device is mobile\n * @return {*} \n * @memberof IdentityOptionsComponent\n */\n isMobile() {\n return this.screenWidth < 768 || this.platform.ANDROID || this.platform.IOS\n }\n\n @HostListener('window:resize', ['$event'])\n onWindowResize(): void {\n this.screenWidth = window.innerWidth;\n this.screenHeight = window.innerHeight;\n this.isMobile();\n }\n\n}\n\n\n","
\n\n\n\n \n \n\n\n
\n
\n

Por favor, cambie a su celular

\n

Seleccione la forma de continuar con la verificación:

\n
\n
\n\n
\n
\n qr_code_2\n
\n
\n Escanee un código QR\n
Continuar en su celular a través del código\n
\n
\n \n \n\n
\n\n
\n\n
\n
\n

Escanne el código QR

\n

Use la camara del celular

\n
\n
\n
\n \n \n
\n
\n \n \n \n

Completar la verificación en el celular, por favor espere...

\n
\n \n
\n
\n\n\n
\n\n
\n

Continuar desde su celular

\n

Revise su correo electrónico

\n
\n\n
\n\n
\n \n \n \n Enviando email...\n
\n\n
\n \"email_sending\"\n

Hemos enviado el link a: {{ email }}

\n
\n \n \n
\n\n\n\n
\n\n\n
","import { Component, AfterViewInit, Inject, ElementRef, Renderer2 } from \"@angular/core\";\nimport { MAT_DIALOG_DATA, MatDialog } from \"@angular/material/dialog\";\n\n\n\n\n@Component({\n selector: 'app-identity-verification',\n templateUrl: './identity-verification.component.html',\n styleUrls: ['./identity-verification.component.scss']\n})\nexport class IdentityVerificationComponent implements AfterViewInit {\n\n dialogRef: any;\n url!: string;\n incode: any;\n\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public dataParam: any,\n public dialog: MatDialog,\n private el: ElementRef,\n private renderer: Renderer2\n ) {\n this.url = dataParam.url;\n }\n\n\n /**\n * After view init\n * @description When the view is initialized, set the iframe attributes\n * @return {*} {Promise}\n * @memberof IdentityVerificationComponent\n * @author victor.mendez\n */\n async ngAfterViewInit(): Promise {\n const iframe = this.el.nativeElement.querySelector('#content-iframe');\n if (iframe) {\n this.renderer.setAttribute(iframe, 'src', this.url);\n this.renderer.setStyle(iframe, 'width', '100%');\n this.renderer.setStyle(iframe, 'height', 'calc(100vh * 0.7)');\n this.renderer.setAttribute(iframe, 'frameborder', '0');\n this.renderer.setAttribute(iframe, 'allow', 'geolocation; microphone; camera; gyroscope;');\n iframe.allowUserMedia = true;\n }\n }\n\n\n}\n","\n\n\n
\n \n
\n\n
","import { Component, OnInit, Inject } from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { DOCUMENT } from '@angular/common';\n\n@Component({\n selector: 'app-mifiel',\n templateUrl: './mifiel.component.html',\n styleUrls: ['./mifiel.component.scss'],\n})\nexport class MifielComponent implements OnInit {\n\n templateSuffix = environment.templateSuffix;\n title = '';\n\n constructor(\n private matRef: MatDialogRef,\n @Inject('Window') private window: any,\n @Inject(MAT_DIALOG_DATA) private data: any,\n @Inject(DOCUMENT) private document:any,\n ) {}\n\n ngOnInit(): void {\n\n const url = environment.miFiel.base;\n this.title = this.data.title;\n\n if (!this.document.getElementById('mifiel-js')) {\n let c: any = this.document.createElement('script'),\n o: any =this.document.getElementsByTagName('script')[0];\n c.type = 'text/javascript';\n c.id = 'mifiel-js';\n c.async = !0;\n c.src = url;\n o.parentNode.insertBefore(c, o);\n }\n\n this.window.mifiel.widget({\n widgetId: this.data.idDocument,\n appendTo: 'mifiel-widget',\n successBtnText: 'Finalizar',\n color: 'fe5000',\n onSuccess: {\n // here the code you want to execute after the signer successfully sign and click the button could be an url 'mifiel.com' or a function() {}\n callToAction: () => {\n this.close();\n },\n },\n onError: {\n // here the code you want to execute after an error occurs, could be an url 'mifiel.com' or a function() {}\n callToAction: () => {\n this.close();\n },\n },\n });\n }\n\n close() {\n this.matRef.close(true);\n }\n}\n","
\n\n
\n
\n\n

\n {{ title }} \n

\n\n
\n close \n
\n
\n\n
\n
\n\n
\n\n
\n","import { Component, EventEmitter, Inject, OnInit, Output } from '@angular/core';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { WebcamImage, WebcamInitError, WebcamUtil } from 'ngx-webcam';\nimport { Observable, Subject } from 'rxjs';\n@Component({\n selector: 'app-modal-take-photos',\n templateUrl: './modal-take-photos.component.html',\n styleUrls: ['./modal-take-photos.component.scss']\n})\nexport class ModalTakePhotosComponent implements OnInit {\n @Output() getPicture = new EventEmitter();\n showWebcam = true;\n isCameraExist = true;\n step: number = 1;\n errors: WebcamInitError[] = [];\n webcamImage: any;\n file!: File\n onUsePhoto = new EventEmitter();\n // webcam snapshot trigger\n private trigger: Subject = new Subject();\n private nextWebcam: Subject = new Subject();\n\n constructor(@Inject(MAT_DIALOG_DATA) public data: any) { }\n\n\n ngOnInit(): void {\n WebcamUtil.getAvailableVideoInputs()\n .then((mediaDevices: MediaDeviceInfo[]) => {\n this.isCameraExist = mediaDevices && mediaDevices.length > 0;\n });\n }\n\n takeSnapshot(): void {\n this.trigger.next();\n }\n\n onOffWebCame() {\n this.showWebcam = !this.showWebcam;\n }\n\n handleInitError(error: WebcamInitError) {\n this.errors.push(error);\n }\n\n handleImage(webcamImage: WebcamImage) {\n this.webcamImage = webcamImage.imageAsDataUrl\n this.step = 2;\n }\n\n get triggerObservable(): Observable {\n return this.trigger.asObservable();\n }\n\n get nextWebcamObservable(): Observable {\n return this.nextWebcam.asObservable();\n }\n\n async usePhoto() {\n this.step = 3\n const blob = await (await fetch(this.webcamImage)).blob();\n let referenceId: string = '';\n if (this.data.referenceId) {\n referenceId = this.data.referenceId;\n } else {\n referenceId = this.data.item.referenceId;\n }\n\n const isNomina = referenceId.includes('quincenales') || referenceId.includes('mensuales');\n\n referenceId = isNomina\n ? referenceId.split('_').slice(1).join('_')\n : referenceId\n\n const counter = isNomina\n ? ((+referenceId.split('_')[1] / 2) + 1)\n : +referenceId.split('_')[1] + 1\n\n\n let nameFile = `${this.data.typeFile.replace(/\\s/g, '_')}${referenceId.split('_')[1] !== '0' ? ('_' + counter ) : ''}`\n nameFile = nameFile.replace('Comprobante', 'Comp');\n this.file = new File([blob], `${nameFile}.jpg`, { type: \"image/jpeg\" });\n this.onUsePhoto.emit(this.file);\n }\n\n}\n","
1}\">\n
\n \n
\n
\n

{{data?.typeFile}}

\n
\n
\n
\n \n
\n
\n
\n
\n
Enfoca tu documento en la guía
\n \n
\n \n
\n \"webcam-image\"/\n
\n \n
\n

Archivo recibido

\n check_circle_outline\n
\n
\n
\n \n
0\">\n

Error Messages:

\n
    \n
  • {{ error }}
  • \n
\n
\n
\n \n \n Camera device not available\n \n\n \n
\n
    \n
  • Asegúrate que tu documento sea legible y vigente
  • \n
  • Usa un fondo oscuro
  • \n
\n
\n \n
\n\n \n \n \n \n\n \n \n \n
\n\n","import { Component } from '@angular/core';\nimport { textoTerms } from '../../shared/textos';\n\n@Component({\n selector: 'app-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss']\n})\nexport class ModalComponent {\n\n condicionesFull = `\n\n

Términos y Condiciones

\n\n

\n\n TIP de México, S.A.P.I. de C.V., TIP Auto, S.A. de C.V. sus empresas filiales, subsidiarias y/o partes relacionadas, Engencap Holding, S. de R.L. de C.V.,\n Engencap Fin, S.A. de C.V., SOFOM, ENR, Engencap, S. de R.L. de C.V. (conjuntamente, denominados como “TIP” ) exhortan al Cliente (término definido más adelante)\n a leer de forma exhaustiva los presentes términos y condiciones (“Términos y Condiciones”). \n\n

\n\n

\n\n Aceptación de Términos y Condiciones. \n\n

\n\n

\n\n Al ingresar, visualizar, observar y utilizar esta Página Web, incluyendo cualquiera de las subpáginas que desplieguen su contenido o cualquiera de sus enlaces y/o al\n acceder al Contenido (término definido más adelante), el Cliente está consintiendo i) la generación de una relación jurídica con TIP,\n así como una posible relación comercial y ii) el contenido de los Términos y Condiciones. De igual forma, manifiesta expresamente la aceptación y consentimiento de los\n Términos y Condiciones a través de medios electrónicos de conformidad con la normatividad aplicable, por lo que queda sujeto irrevocablemente a los mismos.\n\n

\n\n

\n\n Para efectos de los Términos y Condiciones, se entenderá como Cliente a cualquier persona física o moral, de cualquier naturaleza, que use,\n acceda, descargue y/o ingrese a la Página Web y/o a cualquiera de las subpáginas y/o enlaces que desplieguen su contenido (“Cliente”). \n\n

\n\n

\n En caso de no aceptar en forma absoluta y completa los Términos y Condiciones, el Cliente deberá abstenerse de acceder, utilizar, observar y/o visualizar la Página Web y su Contenido.\n

\n\n

\n Cualquier modificación a los Términos y Condiciones será realizada cuando TIP lo considere apropiado, siendo responsabilidad del Cliente consultar el texto vigente mediante la consulta de la Página Web.\n

\n\n

\n\n El Cliente otorga su consentimiento para que los datos personales que comparta a través de la Página Web sean tratados de conformidad con nuestro Aviso de Privacidad\n contenido en Aviso de privacidad .\n\n

\n\n

\n\n Asimismo, el Cliente está de acuerdo que la información requerida por TIP podrá solicitarse a través de diversos formularios, los cuales podrán contener términos y condiciones adicionales, mismos que se entenderán incorporados a estos Términos y Condiciones, aun y cuando esto no se señale expresamente en ellos.\n\n

\n\n\n

\n Aunado a lo anterior, el Cliente declara bajo protesta de decir verdad que toda la información proporcionada a TIP es verídica y no contiene errores, ni algún tipo de vicio que pueda inducir a TIP al error o a una incorrecta interpretación que favorezca la contratación de los productos de TIP. Asimismo, el Cliente sabe y está de acuerdo que la información proporcionada es y será requisito indispensable para la posible contratación de los productos de TIP, por lo que en caso de que se detecte alguna irregularidad o falsedad en la misma, se suspenderá o cancelará de forma inmediata el análisis de la misma y, en caso de haberse formalizado la contratación de algún producto o haberse celebrado una relación contractual y/o comercial con TIP, TIP podrá terminar o rescindir cualquier relación bajo los términos señalados en el instrumento correspondiente o en los términos que resulten aplicables. En su caso, TIP podrá dar aviso a las autoridades correspondientes de dichas irregularidades sin responsabilidad alguna para TIP.\n

\n\n\n\n

Alcances.

\n\n

\n TIP solicitará al Cliente, su nombre o razón social, Registro Federal de Contribuyentes, giro, industria, fecha de constitución,\n fecha de inicio de actividades, ingresos del último ejercicio fiscal y posteriormente su NIP\n (término definido más adelante), con la finalidad de consultar periódicamente su historial crediticio y llevar a cabo el\n análisis crediticio para la posible contratación de los productos de TIP.\n

\n\n

\n\n La revisión y el análisis de la información del Cliente consistirán en revisiones periódicas de su historial crediticio y consultas en bases de datos o listas de\n verificación de información de diversa naturaleza legal ligadas a la relación jurídica y comercial que guarda con TIP con un enfoque de\n prevención de riesgos y cumplimiento regulatorio. Asimismo, la autorización que el Cliente otorga a TIP para consultar su historial crediticio\n mediante la Página Web de conformidad con los Términos y Condiciones, permanecerá vigente por un periodo de (3) tres años contados a partir de la\n fecha de inicio de las consultas mencionadas y, en todo caso, durante el tiempo que se mantenga la relación jurídica con TIP.\n\n

\n\n

\n\n Aunado a lo anterior, en caso de que derivado del análisis realizado por TIP se formalice la contratación de algún producto con TIP, el\n Cliente deberá proporcionar toda la información adicional que TIP requiera para la formalización de dicha contratación.\n Toda la información que el Cliente proporcione a TIP, tanto para la generación de su NIP como para la contratación de los productos y\n servicios ofertados por TIP, se regirán bajo i) los Términos y Condiciones, ii) las obligaciones contenidas en el contrato correspondiente y iii)\n el aviso de privacidad señalado previamente.\n\n

\n\n

\n\n El Cliente sabe y está de acuerdo en que el envío de información no garantiza de manera alguna la contratación de los servicios de TIP, por lo que\n de ninguna manera podrá considerarse que TIP tiene obligación de proporcionar producto o servicio alguno, reservándose en todo momento la aceptación de la\n contratación de cualquier servicio u otorgamiento de cualquier producto.\n\n

\n\n

NIP.

\n\n

\n\n A través de la Página Web, el Cliente generará su número de identificación personal (“NIP”) introduciendo la información que se solicita en el apartado correspondiente,\n el cual fungirá como su autorización inequívoca para que TIP pueda realizar las consultas e investigaciones, sobre su comportamiento crediticio así como en las\n bases de datos y listas de verificación previamente mencionadas. El NIP es confidencial y únicamente el Cliente tendrá acceso a éste para los fines establecidos\n en los presentes Términos y Condiciones. Por lo tanto, el Cliente declara que la información que proporciona para la generación del NIP es verídica,\n así como que tiene pleno conocimiento de la naturaleza y alcance del uso de la información que se le dará a esta. En caso de que el Cliente\n llegará a extraviar su NIP, deberá realizar el procedimiento de generación de NIP nuevamente debido a que es confidencial y únicamente el Cliente tiene acceso a este.\n\n

\n\n

Uso y Autorización de medios electrónicos.

\n\n

\n\n El Cliente al aceptar los Términos y Condiciones, otorga su consentimiento expreso e irrevocable, para que a partir de la fecha de aceptación del presente,\n todos y cada uno de los actos jurídicos que se deban o requieran formalizar entre el Cliente y TIP, relacionados con la presente Página Web, puedan ser suscritos y/o\n celebrados, enunciativamente y no limitativamente, a través de páginas web, aplicaciones móviles, equipos, sistemas automatizados de procesamiento de datos y/o\n cualquier tecnología de información y comunicación (“Medios Electrónicos”) y se puedan celebrar y/o suscribir autorizaciones de forma remota y/o a distancia,\n a través de Internet, cualquier plataforma, sistema electrónico y/o nueva tecnología que TIP ponga a disposición del Cliente para la firma y/o\n suscripción de la información generada, enviada, recibida o archivada por medios electrónicos de conformidad con cualquier disposición aplicable en México respecto a la materia.\n\n

\n\n

\n\n En consecuencia, el Cliente está de acuerdo que, salvo pacto en contrario por escrito, cualquier autorización y /o manifestación de su consentimiento a\n través de los Medios Electrónicos que TIP determine para tal efecto serán, al igual que la firma autógrafa,\n un medio para manifestar su consentimiento, y cuando los mismos sean firmados de forma electrónica, sustituirán a la firma autógrafa, produciendo los mismos\n efectos que otorga esta última, incluyendo el valor probatorio en juicio.\n\n

\n\n

\n\n El uso de los Medios Electrónicos que TIP determine para tal efecto, se regirá sin excepción alguna, por los Términos y Condiciones; no obstante lo anterior,\n el Cliente sabe y está de acuerdo que cuando TIP requiera su firma autógrafa de cualquier documento, dicha firma sustituirá a los Medios Electrónicos,\n por lo que todos y cada uno de los documentos firmados de manera autógrafa tendrán la misma fuerza, validez y efectos legales que la legislación aplicable le otorgue.\n\n

\n\n

\n El Cliente sabe y está de acuerdo que la custodia, control y cuidado del NIP generado para la aceptación de las consultas antes referidas son enteramente su responsabilidad y en este acto reconoce y está de acuerdo que el carácter de dichas contraseñas es personal, intransferible y confidencial, por lo que deslinda de cualquier tipo de responsabilidad a TIP por el mal uso que pudiera hacer de las mismas, así como cualquier mal uso de los Medios Electrónicos que TIP haya determinado para tal efecto, por lo que será responsabilidad exclusiva del Cliente cualquier quebranto, daño y/o perjuicio que pudiera sufrir TIP como consecuencia del uso indebido del NIP.\n

\n\n

\n El Cliente está de acuerdo que en caso de que llegase a proporcionar información falsa y/o inexacta se considerará como incumplimiento frente a TIP y podrá ser causa de interrupción y cancelación inmediata de los documentos relacionados y/o documentos futuros o de cualquier relación futura establecida entre el Cliente y TIP, sin responsabilidad alguna para TIP.\n

\n\n

\n Asimismo, el Cliente sabe y está de acuerdo que en ningún caso y por ningún motivo TIP será responsable de algún daño, incluyendo, de manera enunciativa mas no\n limitativa, daños, pérdidas, gastos directos, indirectos, inherentes o consecuentes que surjan en relación con el uso de la Pagina Web, su uso o\n imposibilidad de uso, o en relación con cualquier falla en el rendimiento, error, omisión, interrupción, defecto, demora en la operación o\n transmisión de virus de computadora o falla de sistema o línea que no sean directamente imputables a TIP. Al usar, acceder, descargar, instalar,\n obtener o brindar información desde y hacia esta Página Web, se considerará que los Clientes han leído y aceptado estos Términos y Condiciones.\n El Cliente sabe y entiende que todas las referencias a la \"Página Web\" en la Política de Privacidad también se consideran válidas para esta Página Web, ya sea que se\n utilice en forma conjunta o independientemente del Sitio Web de TIP .\n

\n\n

TIP se reserva el derecho de eliminar o prohibir a cualquier Cliente la utilización de esta Página Web.

\n\n

Responsabilidad del Cliente.

\n\n

\n En caso de que el Cliente sea una persona moral, declara bajo protesta de decir verdad ser representante legal de la persona moral y por lo tanto cuenta\n con la autorización y los poderes necesarios para obligar a su representada bajo los presentes Términos y Condiciones; manifestando que a la fecha de firma de\n la presente autorización sus facultades no le han sido revocadas, limitadas, ni modificadas en forma alguna. De igual forma, el Cliente manifiesta que con\n fundamento en lo señalado en el artículo 10 de la Ley General de Sociedades Mercantiles, así como el artículo 2551 del Código Civil Federal, no existe impedimento\n legal alguno para autorizar a TIP, para que por conducto de sus funcionarios facultados, realice consultas e investigaciones de mi historial crediticio o de la\n persona moral que represento en Trans Union de México, S. A. SIC y/o Dun & Bradstreet, S.A. SIC; asimismo, declaro que conozco la naturaleza y alcance de la\n información que se solicitará y del uso que TIP hará de tal información. De igual forma, el Cliente reconoce y está de acuerdo que la presentación de\n documentación o información falsa o alterada, o la simulación del cumplimiento de estos requisitos, así como la representación sin autorización, pueden ser\n consideradas como delitos y podrán ser sancionadas conforme al artículo 11 del Código Penal Federal y la legislación aplicable.\n

\n\n\n

\n\n Por lo tanto se presumirá que el NIP ha sido generado y será utilizado por alguien facultado para hacerlo, hasta en tanto el Cliente haya informado a TIP que el NIP no fue autorizado por éste. Por lo anterior, salvo prueba en contrario se presumirá que quien autorizó, generó y utilizó el NIP actuó con la debida diligencia en tanto se cumplan los requisitos de verificación señalados en la Página Web.\n\n

\n\n

\n Además el Cliente se obliga a sacar en paz y a salvo e indemnizar a TIP (incluyendo pero no limitado a sus funcionarios, directivos, consejeros, accionistas o empleados) de cualquier, responsabilidad, cargo, sanción, reclamación o proceso judicial, administrativo o de cualquier otra índole relacionada o derivada, directa o indirectamente, del incumplimiento a lo dispuesto en los Términos y Condiciones, que se inicie en contra de TIP (incluyendo pero no limitado a sus funcionarios, directivos, consejeros, accionistas o empleados) o en contra de cualquier tercero, debiendo el Cliente cubrir a TIP los honorarios legales y gastos en que incurra por la atención de cualesquiera de dichos asuntos.\n

\n\n

Contenido.

\n\n

\n Se deberá entender por “Contenido” todo el texto, información, datos, fotografías, gráficos, código html, software informático, código fuente, muestras de audio y\n video, marcas y logotipos y similares que aparezcan en este sitio web (\"Página Web\") , pertenecientes a TIP de México, S.A.P.I. de C.V. y TIP Auto, S.A. de C.V.,\n salvo que quede algo contrario expresamente especificado en esta Página Web. Todas las marcas registradas utilizadas en esta Página Web son propiedad de TIP, o en su caso,\n utilizadas con la autorización de sus respectivos titulares. Ningún tercero puede utilizar ni reproducir ninguna marca registrada que incluya, entre otros, logotipos y\n dominios de Internet que utilicen las marcas registradas de TIP (ya sea que se usen o no con letras mayúsculas o espacios) sin el previo consentimiento por escrito de TIP\n o del propietario de la marca registrada. Un Cliente no puede: (a) separar ningún Contenido individual o componente de la Página Web para otro uso que el indicado en relación\n a la misma; (b) incorporar una porción del mismo a los propios programas del Cliente o recopilar cualquier porción en combinación con los propios programas del Cliente; (c)\n transferirlo para ser utilizado por otro servicio; (d) vender, arrendar, ceder, prestar, distribuir, comunicar públicamente, transformar o sublicenciar la Página Web o\n conceder en modo alguno cualquier derecho a la Página Web, absoluta o parcialmente. TIP será responsable de todo mantenimiento o soporte técnico de la Página Web.\n TIP se reserva el derecho de enmendar, complementar o suspender total o parcialmente la Página Web. Asimismo, TIP se reserva el derecho de cambiar los Términos y\n Condiciones en cualquier momento, con vigencia inmediata a partir del momento que se actualiza la Página Web.\n

\n\n

Actualizaciones de la Página Web.

\n\n

\n TIP puede solicitar a los Clientes que actualicen su versión de su Navegador Web en cualquier momento. Aunque se harán todos los esfuerzos por conservar las configuraciones\n y preferencias personales de los Clientes, seguirá existiendo la posibilidad de que las mismas se pierdan.\n

\n\n

Derechos de autor y marcas registradas.

\n\n

Todo el contenido publicado en esta Página Web es propiedad de TIP y todos los derechos de autor y marcas registradas se encuentran reservados.

\n\n

Responsabilidad limitada de TIP.

\n\n

\n\n El Cliente reconoce que TIP junto con sus respectivos directivos, personal, empleados y representantes (en conjunto, las “Partes Exentas” ) no serán\n responsables por los daños sufridos, entre otros, daños directos, indirectos, accidentales, incidentales, derivados, circunstanciales, extraordinarios,\n especiales o punitivos de cualquier naturaleza con respecto a esta Página Web por lo que renuncia a todo reclamo, demanda, imputación de responsabilidades,\n causa legal, querella, reclamación de daños y perjuicios, en contra de ellos. El Cliente reconoce que ante cualquier daño antes referido, deberá poner\n fin al uso de esta Página Web. Los Clientes liberarán de toda responsabilidad y exonerarán a TIP, así como a sus accionistas, consejeros, funcionarios,\n representantes de todo reclamo, demanda, responsabilidad civil, causa legal, querella o daños y perjuicios (incluidos los honorarios y los\n gastos razonables de abogados) que surjan como consecuencia del uso que dichos Clientes hagan de la Página Web, incluyendo sin limitar,\n la información que proporcione el Cliente, así como el contenido o entrega incorrecta de la posible información generada en la Página Web. TIP se reserva el derecho,\n por cuenta propia, de asumir la defensa y el control exclusivos de cualquier asunto sujeto a exoneración por parte de los Clientes, pero el hacerlo no\n exime a los Clientes de sus obligaciones de exoneración.\n\n

\n\n

Privacidad.

\n\n

\n\n Cualquier información obtenida por TIP a través de esta Página Web se sujetará a nuestro aviso de privacidad,\n el cual se puede consultar en la siguiente dirección: https://www.tipmexico.com/avisoprivacidad.html .\n\n

\n\n

\n\n El uso de esta Página Web implica la transmisión electrónica de información a través de las redes del proveedor de servicio. En vista de que TIP no opera ni controla\n las redes utilizadas para acceder a la Página Web, TIP no es responsable de la privacidad o seguridad de las transmisiones de datos. No obstante,\n los datos personales en posesión de TIP, serán tratados conforme a los principios y deberes establecidos en la Ley Federal de Protección de Datos Personales en\n Posesión de Particulares y normatividad aplicable.\n\n

\n\n

\n Los Clientes deberán utilizar proveedores de servicios acreditados y verificar junto a su proveedor de servicios, la información relativa a sus prácticas en materia de privacidad y seguridad.\n

\n\n

Patrocinio.

\n\n

\n TIP no recomienda, patrocina ni promociona negocios, servicios o productos de terceros, por lo tanto TIP no es responsable por el uso de\n otros sitios web a los que pudiera acceder el Cliente mientras se encuentra navegando en la Página Web, por lo tanto TIP no será\n responsable ni estará sujeta a acción legal por los servicios o productos de terceros.\n

\n\n

Exclusión de garantía.

\n\n

\n TIP y las Partes Exentas no hacen manifestación alguna en cuanto a la funcionalidad y uso del contenido de esta Página Web. El uso y\n navegación que haga el Cliente con esta Página Web es a riesgo exclusivo del propio Cliente. Toda la información contenida en esta Página Web es proporcionada\n \"tal como está” y “según está disponible”, sin aseveraciones ni garantías, ya sean expresas o tácitas. Los Clientes no deben asumir que la\n información incluida en esta Página Web se actualiza constantemente ni que incluye información reciente. Esta Página Web podrá dejar de funcionar,\n ser interrumpida o funcionar indebidamente de forma ocasional. No TIP o las Partes Exentas tienen responsabilidad por dicho cese de funcionamiento,\n interrupción o funcionamiento indebido. Los Clientes quedan advertidos de que la información contenida aquí podría contener errores técnicos, inexactitudes,\n errores de programación, virus desconocidos y omisiones. El Cliente asume todos los riesgos vinculados con el uso de esta Página Web, y acepta\n que TIP renuncia a toda garantía vinculada al uso de la aplicación Página Web por parte del Cliente. Ninguna información o asesoramiento oral o\n escrito dado por nosotros o nuestros representantes autorizados creará una garantía ni aumentará de ninguna forma el alcance de nuestras obligaciones\n tal cual se establecen en estos Términos y Condiciones.\n

\n\n

Divisibilidad.

\n\n

\n Si cualquier cláusula de estos Términos y Condiciones resultara inválida, nula o inaplicable, las cláusulas restantes conservarán de todos modos su\n total validez y la cláusula inválida, nula o inaplicable será considerada como modificada de modo tal que sea válida y aplicable hasta el máximo alcance\n permitido por la ley.\n

\n\n

Preguntas y comentarios.

\n\n

\n Los Clientes que tengan alguna pregunta o duda sobre los Términos y Condiciones de esta Página Web pueden ponerse en\n contacto al siguiente correo electrónico: contactolegal@tipmexico.com .\n

\n\n

\n\n Por último, el Cliente declara bajo protesta de decir verdad que entiende el contenido y alcance del presente documento, así como el valor y consecuencias legales,\n por lo que manifiesta su conformidad con el mismo.\n\n

\n\n\n\n\n `\n\n textoTerms = textoTerms;\n\n}\n","
\n
\n
\n

Acepto términos y condiciones

\n
\n
\n\n
\n
\n
\n\n
\n
\n
\n\n
\n
\n \n
\n
\n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Colors } from '../../helpers/colors';\n\n@Component({\n selector: 'app-signature-status',\n templateUrl: './signature-status.component.html',\n styleUrls: ['./signature-status.component.scss']\n})\nexport class SignatureStatusComponent {\n\n @Input() statusClient: boolean = false;\n @Input() statusClientEndorsement: boolean = false;\n @Input() isEndorsement: boolean = false;\n\n colors = Colors;\n\n constructor() { }\n}\n","
\n \n circle\n \n \n \n \n Documento firmado\n \n \n \n Documento pendiente de firmar por aval\n \n \n Documento pendiente de firmar por cliente\n \n \n Documento pendiente de firmar por cliente y aval\n \n \n \n \n {{\n statusClient ? \"Documento firmado\" : \"Pendiente de firmar por cliente\"\n }}\n \n \n
\n","import { Component, Input } from '@angular/core';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-status-title',\n templateUrl: './status-title.component.html',\n styleUrls: ['./status-title.component.scss']\n})\nexport class StatusTitleComponent {\n templateSuffix = environment.templateSuffix;\n @Input()\n text: string = '';\n\n @Input()\n color: string = '#000';\n\n}\n","
\n
\n
\n \n Estatus \n circle \n \n
\n
\n {{ text }} \n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport { StepService } from '../../services/step.service';\nimport { defaultTabs } from '../../shared/tabs';\n// import { defaultTabs, defaultTabsFlowB } from '../../shared/tabs';\n// TODO: flowb\nimport { takeUntil, Subject } from 'rxjs';\n\n@Component({\n selector: 'app-stepper',\n templateUrl: './stepper.component.html',\n styleUrls: ['./stepper.component.scss']\n})\nexport class StepperComponent implements OnInit {\n\n tabs!: any[];\n\n state!: string;\n\n step!: number;\n\n templateSuffix = environment.templateSuffix;\n\n destroy: Subject = new Subject();\n\n constructor(public stepService: StepService) { }\n\n ngOnInit(): void {\n // TODO: flowb\n // this.tabs = this.stepService.isFlow('A') ? defaultTabs : defaultTabsFlowB;\n this.tabs = defaultTabs;\n this.stepService.state.pipe(takeUntil(this.destroy)).subscribe((resp) => {\n \n this.state = resp;\n this.getClass();\n });\n }\n\n showIfMyStep(step: number){\n return this.step === step ? true : false;\n }\n\n showIfNotMyStep(step:number){\n return this.step > step ? true : false;\n }\n\n getClass() {\n this.step = this.tabs.findIndex((tab) => tab.states.includes(this.state));\n this.stepService.tabNumber.next(this.step + 1);\n }\n\n}\n","
\n
\n
\n done \n {{ tab.step + 1 }} \n
\n
\n {{ tab.title }} \n
\n
\n
\n
\n\n\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { StepService } from '../../services/step.service';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { MatIconRegistry } from '@angular/material/icon';\n// import { defaultTabs, defaultTabsFlowB } from '../../shared/tabs';v\n// TOD: flowb\nimport { defaultTabs, } from '../../shared/tabs';\nimport { environment } from 'src/environments/environment';\nimport { Subject, takeUntil } from 'rxjs';\n\n@Component({\n selector: 'app-tabs',\n templateUrl: './tabs.component.html',\n styleUrls: ['./tabs.component.scss'],\n})\nexport class TabsComponent implements OnInit, OnDestroy {\n\n tabs!: any[];\n\n state!: string;\n\n step!: number;\n\n templateSuffix = environment.templateSuffix;\n\n destroy: Subject = new Subject();\n\n constructor(\n public stepService: StepService,\n private matIconRegistry: MatIconRegistry,\n private domSanitizer: DomSanitizer\n ) {\n this.matIconRegistry.addSvgIcon(\n 'lupa',\n this.domSanitizer.bypassSecurityTrustResourceUrl('./assets/buro/lupa.svg')\n );\n\n this.matIconRegistry.addSvgIcon(\n 'riesgo',\n this.domSanitizer.bypassSecurityTrustResourceUrl(\n './assets/buro/riesgo.svg'\n )\n );\n\n this.matIconRegistry.addSvgIcon(\n 'identidad',\n this.domSanitizer.bypassSecurityTrustResourceUrl(\n './assets/buro/identidad.svg'\n )\n );\n }\n\n ngOnInit(): void {\n // TODO: flowb\n // this.tabs = this.stepService.isFlow('A') ? defaultTabs : defaultTabsFlowB;\n this.tabs = defaultTabs;\n this.stepService.state.pipe(takeUntil(this.destroy)).subscribe((resp) => {\n this.state = resp;\n this.getClass();\n });\n }\n\n ngOnDestroy(): void {\n this.destroy.next(true);\n this.destroy.unsubscribe();\n }\n\n isMyStepLower(step: number) {\n return this.step < step;\n }\n\n getClass() {\n this.step = this.tabs.findIndex((tab) => tab.states.includes(this.state));\n this.stepService.tabNumber.next(this.step + 1);\n }\n\n\n}\n","
\n
\n
\n
{{ i+1 }}. {{ tab.title }}
\n
\n
\n
\n
\n","import { Component, Input } from '@angular/core';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-titulo-section',\n templateUrl: './titulo-section.component.html',\n styleUrls: ['./titulo-section.component.scss']\n})\nexport class TituloSectionComponent {\n\n @Input()\n title = '';\n @Input() title1!: string\n @Input() title2!: string\n\n templateSuffix = environment.templateSuffix;\n}\n","
\n {{ title }} \n
\n
    \n
  1. \n {{ title1 }}\n
  2. \n
  3. \n {{ title2 }}\n
  4. \n
\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { environment } from 'src/environments/environment';\nimport { StepService } from '../../services/step.service';\n\n@Component({\n selector: 'app-unidad-detail-modal',\n templateUrl: './unidad-detail-modal.component.html',\n styleUrls: ['./unidad-detail-modal.component.scss']\n})\nexport class UnidadDetailModalComponent implements OnInit {\n\n\n summary: any = {\n carTitle: '---',\n carModel: '---',\n carImage: './assets/img/auto_no_disponible.svg',\n state: '---',\n priceWithIva: '0',\n refund: '0',\n concept: '---',\n period: '---',\n initialPayment: '0',\n monthlyPayment: '0',\n insurance: '---',\n };\n\n details = [\n {\n desc: 'Color interior',\n value: 'Negro'\n },\n {\n desc: 'Color exterior',\n value: 'Rojo'\n },\n {\n desc: 'Transmisión',\n value: 'Manual'\n },\n {\n desc: 'Tipo de combustible',\n value: 'Premium'\n },\n ]\n\n formatter = new Intl.NumberFormat('es-MX');\n templateSuffix = environment.templateSuffix;\n\n constructor(\n private stepService: StepService,\n private matRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any\n ) { }\n\n ngOnInit(): void {\n this.summary = this.data.summary;\n this.details = this.data.details;\n }\n\n save(){\n this.matRef.close(true);\n }\n\n\n}\n","
\n

\n Confirmación de tu auto \n

\n\n

\n ¿Estás seguro de proceder con tu renta del auto {{summary.carTitle}} {{summary.carModel}} con un\n pago\n inicial de {{ summary.initialPayment | currency }} ?\n

\n\n
\n\n
\n
\n

{{ summary.carTitle }}

\n

{{ summary.carModel }}

\n
\n
\n\n\n
\n \"\"\n
\n\n

\n Foto ilustrativa que no representa el color del auto seleccionado\n

\n\n\n
\n\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n
Características del auto
\n {{ item.desc }} \n {{ item.value }} \n
\n\n
\n\n
\n\n \n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n\n \n\n \n\n \n \n \n
Detalles del auto
\n Entidad de seguro y placas\n {{ summary.state }} \n \n Renta adelantada\n $ {{ summary.refund | number: '1.2-2' }} \n \n Producto\n {{ summary.concept === 'afin' || summary.concept === 'rr' ? 'Rent2Buy' : summary.concept | titlecase}} \n \n Plazo\n {{ summary.period }} meses \n \n Pago Inicial Total\n $ {{ summary.initialPayment | number: '1.2-2' }} \n \n Renta Mensual \n $ {{ summary.monthlyPayment | number: '1.2-2' }} \n \n Aseguradora\n {{ summary.insurance }} \n
\n\n
\n\n\n
\n\n
\n \n \n
\n\n
\n\n
\n","import { Component, Input, AfterViewInit, Injector } from '@angular/core';\nimport { SummaryService } from '../../../../services/summary.service';\nimport { StepService } from '../../services/step.service';\nimport { Observable, firstValueFrom } from 'rxjs';\nimport { MatDialog } from '@angular/material/dialog';\nimport { UnidadDetailModalComponent } from '../unidad-detail-modal/unidad-detail-modal.component';\nimport { AvailableCar } from '../../interfaces/ICarsAvailable';\nimport { CatalogsService } from '../../../../services/catalogs.service';\nimport { ModalService } from '../../../../services/modal-service.service';\nimport { Icons } from '../../../../components/modal-alert/enums';\nimport { CarManagerService } from '../../../../services/car-manager.service';\nimport { ISelectedCar } from '../../interfaces/ISearchCar';\nimport { BuroService } from '../../../../services/buro.service';\nimport { ICotizacionData } from '../../interfaces/journey.model';\nimport { CotizadorService } from '../../../../services/cotizador.service';\nimport { DataService } from '../../../../services/data.service';\nimport { Endpoints } from 'src/environments/endpoints';\nimport {\n SseService,\n SseEvent,\n SseEventType,\n} from '../../../../services/sse.service';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-unidad-detail-options',\n templateUrl: './unidad-detail-options.component.html',\n styleUrls: ['./unidad-detail-options.component.scss'],\n})\nexport class UnidadDetailOptionsComponent implements AfterViewInit {\n @Input()\n car!: AvailableCar;\n @Input() option!: number;\n\n idCard = 0;\n\n isRecalculated = false;\n summary: any = {\n idCar: null,\n carTitle: '---',\n carModel: '---',\n carImage: './assets/img/auto_no_disponible.svg',\n state: '---',\n priceWithIva: '0',\n refund: '0',\n concept: '---',\n period: '---',\n initialPayment: '0',\n monthlyPayment: '0',\n insurance: '---',\n additionalCost: 0,\n comment: null\n };\n isBlocked = false;\n\n showDetails = true;\n showDetailsCost = false;\n\n isMove = false;\n // isFlowA = true;\n detailsArr = [\n {\n desc: 'Color interior',\n value: 'Negro',\n },\n {\n desc: 'Color exterior',\n value: 'Rojo',\n },\n {\n desc: 'Transmisión',\n value: 'Manual',\n },\n {\n desc: 'Tipo de combustible',\n value: 'Premium',\n },\n ];\n\n dateFinished: any = null;\n\n formatter = new Intl.NumberFormat('es-MX');\n\n stepService!: StepService;\n dialog!: MatDialog;\n catalogService!: CatalogsService;\n managerService!: CarManagerService;\n modalService!: ModalService;\n sseService: SseService;\n\n templateSuffix = environment.templateSuffix;\n\n constructor(\n private dataService: DataService,\n private summaryService: SummaryService,\n private buroService: BuroService,\n private cotizadorService: CotizadorService,\n private injector: Injector\n ) {\n this.stepService = this.injector.get(StepService);\n this.dialog = this.injector.get(MatDialog);\n this.catalogService = this.injector.get(CatalogsService);\n this.managerService =\n this.injector.get(CarManagerService);\n this.modalService = this.injector.get(ModalService);\n this.sseService = this.injector.get(SseService);\n\n // this.isFlowA = this.stepService.isFlow('A');\n }\n\n ngAfterViewInit(): void {\n this.summary.idCar = this.car.leaseTechId;\n\n this.catalogService.getQuoteCarById(this.summary.idCar).subscribe({\n next: (resp) => this.validateRespImages(resp),\n error: () =>\n this.showAlertError(\n 'Ha ocurrido un error al obtener la imagen del auto'\n ),\n });\n }\n\n validateRespImages(resp: any) {\n this.summary.carTitle = `${this.car.brand} ${this.car.subBrand}`;\n this.summary.carModel = `${this.car.version} ${this.car.year}`;\n this.summary.carImage = this.summaryService.imgCarCard(\n resp.data.hits.hits[0]._source\n );\n this.summary.state = this.car.stateName;\n this.summary.refund = this.car.advancedRent;\n this.summary.concept = this.car.product;\n this.summary.period = this.car.period;\n this.summary.initialPayment = this.car.initialPayment;\n this.summary.monthlyPayment = this.car.monthlyPayment;\n this.summary.insurance = this.car.insurance;\n this.summary.additionalCost = +this.car.aditionalCost!;\n this.summary.comment = this.splitComent(this.car.comment);\n this.detailsArr[0].value = this.car.colorInt!;\n this.detailsArr[1].value = this.car.colorExt!;\n this.detailsArr[2].value = this.car.transmission!;\n this.detailsArr[3].value = this.car.powerTrain!;\n\n this.dateFinished = this.car.expirationDate;\n\n this.idCard = this.car.id!;\n }\n\n changeCar(option: number) {\n const modal = this.dialog\n .open(UnidadDetailModalComponent, {\n data: {\n summary: this.summary,\n details: this.detailsArr,\n option,\n },\n })\n .afterClosed();\n\n this.checkResp(modal);\n }\n\n checkResp(modal: Observable) {\n modal.subscribe((resp) => {\n if (resp) {\n const body: ISelectedCar = {\n idKeycloak: this.stepService.data.idKeycloak!,\n quoterId: this.car.idQuoter!,\n ticketSearch: this.stepService.data.E22.ticketbusqueda,\n acceptShippingCost: this.isMove,\n };\n\n this.stepService.loadingCarSelected.next(true);\n\n this.managerService.sendCarSelected(body).subscribe({\n next: () => {\n // if (this.stepService.isFlow('A')) { //TODO: flowb\n this.showAlertSuccess(\n `Se ha enviado el auto ${this.summary.carTitle} ${this.summary.carModel} como tu elección`\n );\n this.stepService.data.step = 'E28';\n this.stepService.data.status = 'En proceso';\n this.stepService.state.next('E28');\n /* } else {\n this.listen();\n } */\n this.refreshInfo();\n },\n error: (err) => {\n const { error } = err;\n this.stepService.loadingCarSelected.next(false);\n if (error.userError === 'El precio del auto tuvo un cambio') {\n this.stepService.isPriceChanged.next(true);\n this.refreshInfo();\n }\n },\n });\n }\n });\n }\n\n /* listen() {\n this.dataService.setIsBlockedForContracts(true);\n const url = `${Endpoints.sse.base}/subscribe/${this.stepService.data.id}`;\n\n this.sseService.getServerSentEvent(url).subscribe({\n next: (event: SseEvent) => this.validateRespSse(event),\n });\n } */ //TODO: flowb\n\n validateRespSse(event: SseEvent) {\n switch (event.type) {\n case SseEventType.connectionUp:\n break;\n case SseEventType.data:\n this.sseService.destroy();\n this.dataService.setIsBlockedForContracts(false);\n this.stepService.data.step = 'E29';\n this.stepService.data.status = 'En proceso';\n this.stepService.state.next('E29');\n break;\n case SseEventType.connectionDown:\n break;\n default:\n break;\n }\n }\n\n changeCost(event: any) {\n this.isMove = event.checked;\n\n const initialPayment = +this.summary.initialPayment;\n const aditionalCost = this.summary.additionalCost;\n\n const sum = event.checked ? aditionalCost : -1 * aditionalCost;\n this.summary.initialPayment = initialPayment + sum;\n }\n\n getColor() {\n return { color: this.isMove ? '#4106ff' : '' };\n }\n\n refreshInfo() {\n this.buroService.getStateUser(this.stepService.data.idKeycloak!).subscribe({\n next: (resp: any) => this.validateRespUser(resp.data),\n error: () =>\n this.showAlertError(\n 'Ha ocurrido un error al actualizar la información'\n ),\n });\n }\n\n validateRespUser(data: ICotizacionData) {\n this.stepService.data = { ...this.stepService.data, ...data };\n this.setCard();\n }\n\n async setCard() {\n const quoterId = this.stepService.data.quoterId!;\n const { concept, period } = this.stepService.data.product;\n const resp: any = await firstValueFrom(\n this.cotizadorService.getParamsQuote(\n quoterId,\n concept.toLowerCase(),\n period\n )\n );\n\n if (resp.request !== null) {\n await this.summaryService.getInfoSummary(resp);\n } else {\n this.showAlertError('Ha ocurrido un error al actualizar la información');\n }\n }\n\n // ALERTS\n\n showAlertError(msg: string) {\n this.stepService.loadingCarSelected.next(false);\n this.modalService.openAlert(\n {\n title: '',\n content: msg,\n btnAction1: 'Entendido',\n btnAction2: '',\n icon: Icons.error,\n idBtnAction1: null,\n idBtnAction2: null,\n },\n true\n );\n }\n\n showAlertSuccess(msg: string) {\n this.modalService.openAlert(\n {\n title: '',\n content: msg,\n btnAction1: 'Entendido',\n btnAction2: '',\n icon: Icons.success,\n idBtnAction1: null,\n idBtnAction2: null,\n },\n true\n );\n }\n\n splitComent(coment?:string) {\n if(coment == null || coment === '') {\n return null;\n }\n if(coment.length > 150) {\n return `${coment.slice(0,147)}...`;\n }\n return coment;\n }\n\n}\n","
\n \n \n
\n
\n {{summary.comment}}\n
\n
\n
\n
\n \"\"\n
\n\n

\n Foto ilustrativa que no representa el color del auto seleccionado\n

\n\n
\n
\n {{ showDetails ? \"Ocultar\" : \"Ver\" }} detalles\n
\n \n \n \n
\n

{{ summary.carTitle }}

\n

{{ summary.carModel }}

\n
\n
\n\n
\n
\n

{{ item.desc }}

\n

\n {{ item.value }} \n

\n
\n
\n \n
\n\n
\n

Entidad de seguro y placas

\n

\n {{ summary.state }} \n

\n
\n\n
\n

Renta adelantada

\n

\n $ {{ summary.refund | number: \"1.2-2\" }} \n

\n
\n\n
\n

Producto

\n

\n \n {{\n summary.concept === \"afin\" || summary.concept === \"rr\"\n ? \"Rent2Buy\"\n : (summary.concept | titlecase)\n }}\n \n

\n
\n\n
\n

Plazo

\n

\n {{ summary.period }} meses \n

\n
\n\n
\n

Pago Inicial Total

\n

\n $ {{ summary.initialPayment | number: \"1.2-2\" }} \n

\n
\n\n
\n

Renta Mensual

\n

\n $ {{ summary.monthlyPayment | number: \"1.2-2\" }} \n

\n
\n\n
\n

Aseguradora

\n

\n {{ summary.insurance }} \n

\n
\n\n
\n \n \n \n \n
\n Costos adicionales \n \n {{ showDetailsCost ? \"Ocultar\" : \"Ver\" }} detalles\n \n
\n \n\n
\n
\n Costo de traslado depende de la localidad de origen de tu\n unidad.\n
\n
\n
\n
\n
\n\n \n
\n \n

\n Traslado {{ summary.additionalCost | currency }}\n

\n
\n\n
\n \n Lo quiero\n \n
\n
\n
\n
\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { StepService } from '../../services/step.service';\nimport { SummaryService } from '../../../../services/summary.service';\nimport { Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { TypeProduct } from 'src/app/utils/utils';\nimport { DataService } from 'src/app/services/data.service';\n\n@Component({\n selector: 'app-unidad-detail',\n templateUrl: './unidad-detail.component.html',\n styleUrls: ['./unidad-detail.component.scss']\n})\nexport class UnidadDetailComponent implements OnInit, OnDestroy {\n\n isRecalculated = false;\n summary!: any;\n isBlocked: boolean = false;\n\n destroyBtn: boolean = false;\n\n obsIsRecalculated = new Subscription;\n obsLoading = new Subscription;\n obsDestroyBtn = new Subscription;\n obsBuroError = new Subscription;\n\n templateSuffix = environment.templateSuffix;\n public typeProduct = TypeProduct;\n\n isErrorBuro: boolean = false;\n\n constructor(\n private stepService: StepService,\n private summaryService: SummaryService,\n private router: Router,\n private dataService: DataService) \n {\n this.summary = this.summaryService.summary;\n }\n\n ngOnInit(): void {\n this.obsIsRecalculated = this.stepService.isRecalculated.subscribe(resp => {\n this.isRecalculated = resp;\n });\n\n this.obsLoading = this.stepService.loading.subscribe(resp => {\n this.isBlocked = resp;\n });\n\n this.obsDestroyBtn = this.stepService.destroyBtn.subscribe(resp => {\n this.destroyBtn = resp;\n });\n\n this.obsBuroError = this.dataService.getSharedFunction().subscribe((data:boolean) => {\n this.isErrorBuro = data;\n });\n }\n\n changeCar() {\n this.router.navigate(['/buscador']);\n }\n\n ngOnDestroy(): void {\n this.obsDestroyBtn.unsubscribe();\n this.obsIsRecalculated.unsubscribe();\n this.obsLoading.unsubscribe();\n this.obsBuroError.unsubscribe();\n }\n\n isCredit(concept:string){\n return concept === this.typeProduct.Traditional || concept === this.typeProduct.Ballon;\n }\n\n}\n","
\n
\n
\n \"\"\n
\n\n \n\n
\n \n\n \n
\n\n \n
\n \n\n
\n\n \n
\n
","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormArray, FormGroup } from '@angular/forms';\nimport { defaultContacts } from '../../helpers/defaults';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { FinalStatusService } from '../../../../services/final-status.service';\nimport { StepService } from '../../services/step.service';\nimport { ModalService } from '../../../../services/modal-service.service';\nimport { IContacts, IContactsUpdate } from '../../interfaces/IContacts';\nimport { Icons } from '../../../../components/modal-alert/enums';\nimport { buildContacts } from '../../helpers/code-helper';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-update-contacts',\n templateUrl: './update-contacts.component.html',\n styleUrls: ['./update-contacts.component.scss']\n})\nexport class UpdateContactsComponent implements OnInit {\n\n forma!: FormGroup;\n\n contacts = defaultContacts;\n\n loading = false;\n templateSuffix = environment.templateSuffix;\n\n constructor(\n private fb: FormBuilder, private dialogRef: MatDialogRef,\n private finalService: FinalStatusService,\n private stepService: StepService,\n private modalService: ModalService\n\n ) {\n this.initForm();\n }\n\n initForm() {\n\n this.forma = this.fb.group({\n metodos: new FormArray([])\n });\n\n this.addCheckBox();\n\n }\n\n addCheckBox() {\n this.contacts.forEach((ele) => this.formAsArray.push(this.fb.control(false)));\n }\n\n get formAsArray() {\n return this.forma.controls['metodos'] as FormArray;\n }\n\n ngOnInit(): void {\n this.finalService.getContacts(this.stepService.data.idKeycloak!).subscribe({\n next: (resp) => this.validateRespContacts(resp),\n error: () => {\n this.showAlertError('Ha ocurrido un error al obtener los medios de contacto');\n }\n });\n }\n\n validateRespContacts(data: IContacts) {\n const contactsControl = this.formAsArray.controls;\n contactsControl.forEach((control, index) => control.setValue(data.contact[index].isCheck));\n }\n\n isThereNoChecks() {\n const array = this.forma.get('metodos')!.value;\n return !array.some((ele: boolean) => ele === true);\n }\n\n save() {\n this.loading = true;\n const array = this.forma.get('metodos')!.value;\n\n const email = array[0];\n const sms = array[1];\n const whats = array[2];\n\n const body: IContactsUpdate = buildContacts(this.stepService.data.idKeycloak!, email, sms, whats);\n\n this.finalService.updateContacts(body).subscribe({\n next: () => this.showAlertSuccess('Medios de contacto actualizados'),\n error: () => this.showAlertError('Ha ocurrido un error al actualizar')\n });\n\n }\n\n //\n\n showAlertError(msg: string) {\n this.loading = false;\n this.dialogRef.close(null);\n this.modalService.showAlertWithoutIds(msg, Icons.error, false);\n }\n\n showAlertSuccess(msg: string) {\n this.loading = false;\n this.dialogRef.close(null);\n this.modalService.showAlertWithoutIds(msg, Icons.success, false);\n }\n\n}\n","
\n\n

Actualizar medios de contacto

\n\n

Ajusta los medios de contacto para localizarle

\n\n
\n\n
\n \n {{ contact.description }}\n \n
\n\n
\n\n\n
\n \n \n
\n\n \n
\n \n
\n
\n\n
\n","import { Colonia } from '../interfaces/zip-model';\nimport { City } from '../interfaces/city-model';\nimport { State } from '../interfaces/states.model';\nimport moment from 'moment';\nimport { FormControl } from '@angular/forms';\nimport { IContactsUpdate } from '../interfaces/IContacts';\n\nexport function decideMunicipality(colonias: Colonia[], municipios: City[]) {\n let flag = false;\n let municipio;\n\n colonias.forEach((ele) => {\n if (ele.idCity !== '') {\n flag = true;\n }\n });\n\n if (flag) {\n let nombre = colonias[0].dmnpio;\n municipio = municipios.find((ele) => ele.cityDesc === nombre);\n return +municipio!.cityId;\n }\n\n return '';\n}\n\nexport function fixStateId(idEstado: number, estados: State[]): number {\n return estados.find((ele) => ele.id === idEstado)!.idDaVinci!;\n}\n\nexport function isYounger(control: FormControl) {\n let nacimiento = control.value;\n let now = moment();\n let edad = now.diff(nacimiento, 'years');\n\n return edad >= 16 ? null : { isMenor: true };\n}\n\nexport function curpPattern() {\n let regex = '^([A-Z]{1}[AEIOUX]{1}[A-Z]{2}[0-9]{2}(0[1-9]|1[0-2])(0[1-9]|1[0-9]|2[0-9]|3[0-1])[HM]{1}(AS|BC|BS|CC|CS|CH|CL|CM|DF|DG|GT|GR|HG|JC|MC|MN|MS|NT|NL|OC|PL|QT|QR|SP|SL|SR|TC|TS|TL|VZ|YN|ZS|NE)[B-DF-HJ-NP-TV-Z]{3}[0-9A-Z]{1}[0-9]{1})?$';\n return regex;\n}\n\nexport function rfcPattern() {\n let regex = '^[A-ZÑ&]{4}[0-9]{2}(0[1-9]|1[0-2])(0[1-9]|1[0-9]|2[0-9]|3[0-1])(?:[A-Z0-9]{3})$';\n return regex;\n}\n\nexport function dateAfter(control: FormControl) {\n let date = moment(control.value).format('MMM DD YY');\n let now = moment().format('MMM DD YY');\n return date >= now ? null : { isBeforeDate: true };\n}\n\nexport function separateSurnames(str: string) {\n let tokens = str.split(' ');\n\n // Arreglo donde se guardan las palabras del nombre.\n let names = new Array();\n\n // Palabras de apellidos y nombres compuestos\n const special_tokens = new Array(\n 'da',\n 'de',\n 'del',\n 'la',\n 'las',\n 'los',\n 'mac',\n 'mc',\n 'van',\n 'von',\n 'y',\n 'i',\n 'san',\n 'santa'\n );\n\n let prev = '';\n\n tokens.forEach((token: string) => {\n let _token = token.toLowerCase();\n if (special_tokens.includes(_token)) {\n prev = `${prev}${firstLetterUpperCase(_token)} `;\n } else {\n names.push(`${prev}${firstLetterUpperCase(_token)}`);\n prev = '';\n }\n });\n\n let num_nombres = names.length;\n\n let nombres = '', apellidos = '';\n\n switch (num_nombres) {\n case 1:\n nombres = names[0];\n break;\n case 2:\n nombres = names[0];\n apellidos = names[1];\n break;\n case 3:\n nombres = names[0];\n apellidos = `${names[1]} ${names[2]}`;\n break;\n case 4:\n nombres = `${names[0]} ${names[1]}`;\n apellidos = `${names[2]} ${names[3]}`;\n break;\n default:\n nombres = `${names[0]} ${names[1]}`;\n names.splice(0, 2);\n apellidos = names.join(' ');\n break;\n }\n\n return {\n motherName: apellidos,\n fatherName: nombres,\n };\n}\n\nexport function firstLetterUpperCase(str: string) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nexport function isInInvervalBound(estado: string) {\n const statesBound = [\n 'E10', 'E11', 'E12', 'E13', 'E14', 'E15', 'E16',\n 'E32', 'E33', 'E34', 'E35', 'E36', 'E37', 'E38',\n 'E40', 'E41', 'E42', 'E43', 'E44', 'E45', 'E46'\n ];\n\n return statesBound.includes(`${estado}`);\n}\n\nexport function returnFileSize(number: number) {\n if (number < 1024) {\n return number + ' bytes';\n } else if (number >= 1024 && number < 1048576) {\n return (number / 1024).toFixed(1) + ' Kb';\n } else if (number >= 1048576 && number <= 12582912) {\n return (number / 1048576).toFixed(1) + ' Mb';\n } else {\n return null;\n }\n}\n\n\nexport function buildContacts(idKeycloak: string, email: boolean, sms: boolean, whats: boolean): IContactsUpdate {\n\n return {\n idKeycloak,\n contact: [\n { isCheck: email, key: 'C001' },\n { isCheck: sms, key: 'C002' },\n { isCheck: whats, key: 'C003' }\n ]\n }\n\n}\n\n/**\n * Valida si el parametro es nulo o indefinido\n * @export\n * @param {*} value\n * @author victor.mendez\n * @return {boolean} \n */\nexport function _isNullOrUndefined(value: any): boolean {\n if (value === null || value === undefined || value === '') {\n return true;\n } else {\n return false;\n }\n}\n\n/**\n * Remueve los acentos en la cádena.\n * @param {string} str La cadena de texto a formatear.\n * @author victor.mendez@tipmexico.com\n * @return {string} \n */\nexport function removeAccents(str: string): string {\n return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n}\n\n","export enum Colors {\n GREEN = '#54C247',\n YELLOW = '#F49A0B',\n BLUE = '#036FF4',\n RED = '#ff0000'\n}\n\n\n\nexport enum Status{\n OK = 0, // GREEN\n PROCESS = 1, // YELLOW\n WAITING = 2, // BLUE\n ALERT = 3, // YELLOW\n REJECT = 4 // RED\n}\n","export const defaultChecks = [\n {\n id: 0,\n status: false,\n text: 'Validación de identidad'\n },\n {\n id: 1,\n status: false,\n text: 'Validación de documentos personales'\n },\n {\n id: 2,\n status: false,\n text: 'Visita Física'\n },\n {\n id: 3,\n status: false,\n text: 'Validación de Referencias'\n }\n]\n\nexport const defaultContacts = [\n {\n isCheck: true,\n description: 'Correo Electrónico',\n isActive: true,\n key: \"C001\"\n },\n {\n isCheck: false,\n description: 'SMS en Teléfono Celular',\n isActive: true,\n key: \"C002\"\n },\n {\n isCheck: false,\n description: 'WhatsApp',\n isActive: false,\n key: \"C003\"\n }\n]\n\n","import { Validators, FormBuilder } from '@angular/forms';\n\nexport const FORM_ADDRESS_BERAU = function (fb: FormBuilder) {\n\n return fb.group({\n calle: ['', [Validators.required]],\n numExt: ['', [Validators.required]],\n numInt: [''],\n cp: ['', [Validators.required, Validators.pattern('^[0-9]{4,5}$')]],\n colonia: ['', [Validators.required]],\n coloniaDesc: [''],\n stateId: [],\n stateDesc: [''],\n cityId: [''],\n otherCityDesc: [''],\n municipality: [''],\n betweenStreets: [''],\n countryId: [''],\n countryDesc: [''],\n idAsentaCpConst: ['']\n });\n\n}\n","import { FormGroup } from '@angular/forms';\n\nexport enum ENUM_CALLBACK_TRANFORMS {\n transformInputToUpperCase = 'transformInputToUpperCase',\n transformToCurrency = 'transformToCurrency',\n}\n\nexport const getCssError = function (form: FormGroup, field: string) {\n return getIsInvalid(form, field) ? 'error-border' : '';\n}\n\nexport const getIsInvalid = function (form: FormGroup, field: string) {\n return form.get(field)!.errors && form.get(field)!.touched;\n}\n\n","import { Validators, FormGroup, AbstractControl } from '@angular/forms';\nimport { debounceTime } from 'rxjs';\nimport { IngresoPipe } from '../pipes/ingreso.pipe';\nimport { ENUM_CALLBACK_TRANFORMS } from './inputsHelpers';\nimport { _isNullOrUndefined } from './code-helper';\n\nexport function transformInputs(form: FormGroup, fields: string[], callback: ENUM_CALLBACK_TRANFORMS) {\n\n const transforms = {\n 'transformInputToUpperCase': transformInputToUpperCase,\n 'transformToCurrency': transformToCurrency\n }\n\n for (const field of fields) {\n const control = form.get(field)!;\n transforms[callback](control)\n }\n\n}\n\nexport function setValidatorRequired(form: FormGroup, field: string) {\n const control = form.get(field)!;\n control.setValidators([Validators.required]);\n control.updateValueAndValidity();\n}\n\nexport function clearValidatorsForField(form: FormGroup, field: string) {\n const control = form.get(field)!;\n control.clearValidators();\n control.updateValueAndValidity();\n}\n\nexport function transformInputToUpperCase(control: AbstractControl) {\n\n control.valueChanges.pipe(debounceTime(300)).subscribe((txt: string) => {\n control.setValue(_isNullOrUndefined(txt) ? txt : txt.toUpperCase(), { emitEvent: false, });\n });\n}\n\nexport function transformToCurrency(control: AbstractControl) {\n control.valueChanges.pipe(debounceTime(500)).subscribe((resp) => {\n const pipe = new IngresoPipe();\n const newTxt = pipe.transform(resp);\n control.setValue(newTxt, { emitEvent: false });\n });\n}\n\n","\nexport enum TypeOfValidation {\n SMS = \"SMS\",\n EMAIL = \"CORREO\",\n WHATSAP = \"Whatsapp\",\n DEFAULT = \"DEFAULT\", // SOLO ES PARA VALIDACION DE NIP\n NONE = \"NONE\"\n }\n\n export enum IncodeStatus {\n ONBOARDING_FINISHED = \"ONBOARDING_FINISHED\",\n ERROR_SUSCRIBE = \"ERROR_SUSCRIBE\"\n }\n","import { ICotizacionData } from \"./journey.model\";\n\nexport const journeyDataDefault: ICotizacionData = {\n\n idKeycloak: \"\",\n id: \"\",\n idLeaseTech: 0,\n clientInfoId: 0,\n idDavinci: '',\n rfc: \"\",\n quoterId: '',\n carId: \"\",\n priceWithIva: 0,\n depositIncome: 0,\n product: {\n concept: '',\n period: ''\n },\n quoteId: '',\n E3: {\n dateStart: \"\",\n dateUpdate: \"\",\n dateEnd: \"\",\n nombre: \"\",\n status: \"\"\n },\n opportunityId: 2217,\n client: {\n lastNamePF: \"\",\n phoneNumber: \"\",\n address: {\n numInt: \"\",\n numExt: \"\",\n stateId: \"\",\n calle: \"\",\n municipality: \"\",\n cityId: \"\",\n cp: \"\",\n countryId: \"\",\n colonia: \"\"\n },\n firstNamePF: \"\",\n birthDate: \"\",\n email: \"\",\n rfc: \"\",\n curp: \"\",\n },\n step: \"\",\n sfAccountId: '',\n status: \"\",\n flowType: 'A',\n E4: {\n data: {\n sendMethod: \"NONE\"\n },\n dateStart: \"\",\n dateUpdate: \"\",\n dateEnd: \"\",\n nombre: \"\",\n status: \"\"\n },\n E5: {\n dateStart: \"\",\n dateUpdate: \"\",\n dateEnd: \"\",\n nombre: \"\",\n status: \"\"\n },\n E6: {\n dateStart: \"\",\n dateUpdate: \"\",\n nombre: \"\",\n status: \"\",\n dateEnd: \"\"\n },\n E7: {\n dateStart: \"\",\n dateUpdate: \"\",\n nombre: \"\",\n status: \"\",\n data: {\n query_executed: false,\n notification_date: 0,\n client_id_davinci: 0\n },\n dateEnd: \"\"\n },\n E8: {\n data: {\n addressAntiquity: 0,\n domicileSeniorityCatalogId: 0,\n clientInfoId: 0,\n jobSeniorityMonths: 0,\n domicileSeniorityYears: 0,\n genderGenericId: 0,\n jobSeniorityYears: 0,\n tipOpporClientInfoId: 0,\n opportunityId: 0,\n domicileSeniorityMonths: 0,\n employmentAntiquity: 0,\n maritalStatusGenericId: 0,\n jobSeniorityCatalogId: 0,\n housingSituation: 0,\n verifiableIncome: '',\n },\n dateStart: \"\",\n dateUpdate: \"\",\n dateEnd: \"\",\n nombre: \"\",\n status: \"\"\n },\n E9: {\n dateStart: \"\",\n dateUpdate: \"\",\n nombre: \"\",\n status: \"\",\n data: {\n rate: \"\",\n client_id_davinci: 0,\n execution_status: false,\n jointly_bound: \"NO\",\n visit: \"No\",\n client_type: \" : \",\n pd_model: \"\",\n deposit_income: \"\",\n errors: null,\n max_payment_capacity: \"\"\n },\n dateEnd: \"\"\n },\n E10: {\n dateStart: \"\",\n dateUpdate: \"\",\n nombre: \"\",\n status: \"\",\n dateEnd: \"\"\n },\n sfAccountIdEndorsment: '',\n clientEndorsment: {\n lastNamePF: \"\",\n phoneNumber: \"\",\n birthDate: '',\n address: {\n numInt: \"\",\n numExt: \"\",\n stateId: \"\",\n calle: \"\",\n municipality: \"\",\n cityId: \"\",\n cp: \"\",\n countryId: \"\",\n colonia: \"\"\n },\n firstNamePF: \"\",\n email: \"\",\n rfc: \"\",\n curp: \"\"\n },\n rfcEndorsment: \"\",\n clientInfoIdEndorsment: 0,\n opportunityEndorsment: {\n opportunityId: 0,\n isActive: 0\n },\n opportunityIdEndorsment: 0,\n E11: {\n data: {\n sendMethod: \"NONE\"\n },\n dateStart: \"\",\n dateUpdate: \"\",\n dateEnd: \"2022-03-18T21:43:37.403Z\",\n nombre: \"\",\n status: \"\"\n },\n E13: {\n dateStart: \"\",\n dateUpdate: \"\",\n nombre: \"\",\n status: \"\",\n dateEnd: \"\"\n },\n E12: {\n dateStart: \"\",\n dateUpdate: \"\",\n dateEnd: \"\",\n nombre: \"\",\n status: \"\"\n },\n E14: {\n dateStart: \"\",\n dateUpdate: \"\",\n nombre: \"\",\n status: \"\",\n data: {\n query_executed: false,\n notification_date: 0,\n client_id_davinci: 2218\n },\n dateEnd: \"\"\n },\n E15: {\n data: {\n addressAntiquity: 138,\n domicileSeniorityCatalogId: 136,\n clientInfoId: 1262,\n jobSeniorityMonths: 2,\n domicileSeniorityYears: 2,\n genderGenericId: 131,\n jobSeniorityYears: 2,\n tipOpporClientInfoId: 112,\n opportunityId: 2218,\n domicileSeniorityMonths: 2,\n employmentAntiquity: 143,\n maritalStatusGenericId: 11,\n jobSeniorityCatalogId: 140,\n housingSituation: 144,\n verifiableIncome: ''\n },\n dateStart: \"\",\n dateUpdate: \"\",\n dateEnd: \"\",\n nombre: \"\",\n status: \"\"\n },\n E16: {\n dateStart: \"\",\n dateUpdate: \"\",\n nombre: \"\",\n status: \"\",\n data: {\n rate: \"\",\n client_id_davinci: 0,\n execution_status: false,\n jointly_bound: \"NO\",\n visit: \"No\",\n client_type: \" : \",\n pd_model: \"\",\n deposit_income: \"\",\n errors: null,\n max_payment_capacity: \"\"\n },\n dateEnd: \"\"\n },\n E17: {\n dateStart: \"\",\n dateUpdate: \"\",\n nombre: \"\",\n status: \"\",\n dateEnd: \"\"\n },\n E18: {\n dateStart: \"\",\n dateUpdate: \"\",\n nombre: \"\",\n status: \"\",\n dateEnd: \"\"\n },\n E19: {\n dateStart: \"\",\n dateUpdate: \"\",\n nombre: \"\",\n status: \"\",\n dateEnd: \"\"\n },\n E20: {\n dateStart: \"\",\n dateUpdate: \"\",\n nombre: \"\",\n status: \"\",\n dateEnd: \"\"\n },\n E21: {\n dateStart: \"\",\n dateUpdate: \"\",\n nombre: \"\",\n status: \"\",\n dateEnd: \"\"\n },\n E22: {\n dateStart: \"\",\n dateUpdate: \"\",\n nombre: \"\",\n status: \"\",\n dateEnd: \"\"\n },\n E23: {\n dateStart: \"\",\n dateUpdate: \"\",\n nombre: \"\",\n status: \"\",\n dateEnd: \"\"\n },\n E24: {\n dateStart: \"\",\n dateUpdate: \"\",\n nombre: \"\",\n status: \"\",\n dateEnd: \"\",\n priceChanged: false\n },\n E25: {\n dateStart: \"\",\n dateUpdate: \"\",\n nombre: \"\",\n status: \"\",\n dateEnd: \"\",\n downloadedPDFAdvPay: false\n },\n E26: {\n dateStart: \"\",\n dateUpdate: \"\",\n nombre: \"\",\n status: \"\",\n dateEnd: \"\"\n },\n E27: {\n dateStart: \"\",\n dateUpdate: \"\",\n nombre: \"\",\n status: \"\",\n dateEnd: \"\",\n downloadedPDFInitPay: false\n },\n E28: {\n dateStart: \"\",\n dateUpdate: \"\",\n nombre: \"\",\n status: \"\",\n dateEnd: \"\",\n data: {\n deliveryDate: {\n estimatedDate: '',\n confirmedDate: ''\n },\n fulfillment: []\n }\n },\n acceptShippingCost: false,\n E32: {\n dateStart: \"\",\n dateUpdate: \"\",\n nombre: \"\",\n status: \"\",\n dateEnd: \"\"\n },\n E33: {\n data: {\n sendMethod: \"NONE\"\n },\n dateStart: \"\",\n dateUpdate: \"\",\n dateEnd: \"2022-03-18T21:43:37.403Z\",\n nombre: \"\",\n status: \"\"\n },\n E34: {\n dateStart: \"\",\n dateUpdate: \"\",\n nombre: \"\",\n status: \"\",\n dateEnd: \"\"\n },\n E35: {\n dateStart: \"\",\n dateUpdate: \"\",\n dateEnd: \"\",\n nombre: \"\",\n status: \"\"\n },\n E36: {\n dateStart: \"\",\n dateUpdate: \"\",\n nombre: \"\",\n status: \"\",\n data: {\n query_executed: false,\n notification_date: 0,\n client_id_davinci: 2218\n },\n dateEnd: \"\"\n },\n E37: {\n data: {\n addressAntiquity: 138,\n domicileSeniorityCatalogId: 136,\n clientInfoId: 1262,\n jobSeniorityMonths: 2,\n domicileSeniorityYears: 2,\n genderGenericId: 131,\n jobSeniorityYears: 2,\n tipOpporClientInfoId: 112,\n opportunityId: 2218,\n domicileSeniorityMonths: 2,\n employmentAntiquity: 143,\n maritalStatusGenericId: 11,\n jobSeniorityCatalogId: 140,\n housingSituation: 144,\n verifiableIncome: ''\n },\n dateStart: \"\",\n dateUpdate: \"\",\n dateEnd: \"\",\n nombre: \"\",\n status: \"\"\n },\n E38: {\n dateStart: \"\",\n dateUpdate: \"\",\n nombre: \"\",\n status: \"\",\n data: {\n rate: \"\",\n client_id_davinci: 0,\n execution_status: false,\n jointly_bound: \"NO\",\n visit: \"No\",\n client_type: \" : \",\n pd_model: \"\",\n deposit_income: \"\",\n errors: null,\n max_payment_capacity: \"\"\n },\n dateEnd: \"\"\n },\n E40: {\n dateStart: \"\",\n dateUpdate: \"\",\n nombre: \"\",\n status: \"\",\n dateEnd: \"\"\n },\n E41: {\n data: {\n sendMethod: \"NONE\"\n },\n dateStart: \"\",\n dateUpdate: \"\",\n dateEnd: \"2022-03-18T21:43:37.403Z\",\n nombre: \"\",\n status: \"\"\n },\n E42: {\n dateStart: \"\",\n dateUpdate: \"\",\n nombre: \"\",\n status: \"\",\n dateEnd: \"\"\n },\n E43: {\n dateStart: \"\",\n dateUpdate: \"\",\n dateEnd: \"\",\n nombre: \"\",\n status: \"\"\n },\n E44: {\n dateStart: \"\",\n dateUpdate: \"\",\n nombre: \"\",\n status: \"\",\n data: {\n query_executed: false,\n notification_date: 0,\n client_id_davinci: 2218\n },\n dateEnd: \"\"\n },\n E45: {\n data: {\n addressAntiquity: 138,\n domicileSeniorityCatalogId: 136,\n clientInfoId: 1262,\n jobSeniorityMonths: 2,\n domicileSeniorityYears: 2,\n genderGenericId: 131,\n jobSeniorityYears: 2,\n tipOpporClientInfoId: 112,\n opportunityId: 2218,\n domicileSeniorityMonths: 2,\n employmentAntiquity: 143,\n maritalStatusGenericId: 11,\n jobSeniorityCatalogId: 140,\n housingSituation: 144,\n verifiableIncome: ''\n },\n dateStart: \"\",\n dateUpdate: \"\",\n dateEnd: \"\",\n nombre: \"\",\n status: \"\"\n },\n E46: {\n dateStart: \"\",\n dateUpdate: \"\",\n nombre: \"\",\n status: \"\",\n data: {\n rate: \"\",\n client_id_davinci: 0,\n execution_status: false,\n jointly_bound: \"NO\",\n visit: \"No\",\n client_type: \" : \",\n pd_model: \"\",\n deposit_income: \"\",\n errors: null,\n max_payment_capacity: \"\"\n },\n dateEnd: \"\"\n },\n}\n\n","export const FILES_FOR_UPLOAD = [\n {\n id: 1,\n text: 'Recibos de nómina',\n files: [\n {\n name: null,\n size: null,\n loader: false,\n text: '*Sube el PDF de tu primer recibo de nómina',\n filesAccept: 'pdf',\n },\n {\n name: null,\n size: null,\n loader: false,\n text: '*Sube el PDF de tu segundo recibo de nómina',\n filesAccept: 'pdf',\n },\n ],\n },\n {\n id: 2,\n text: 'Estados de cuenta',\n files: [\n {\n name: null,\n size: null,\n loader: false,\n text: '*Sube tu primer estado de cuenta',\n },\n {\n name: null,\n size: null,\n loader: false,\n text: '*Sube tu segundo estado de cuenta',\n },\n {\n name: null,\n size: null,\n loader: false,\n text: '*Sube tu tercer estado de cuenta',\n },\n ],\n },\n {\n id: 3,\n text: 'Declaración anual',\n files: [\n {\n name: null,\n size: null,\n loader: false,\n text: '*Sube tu primer declaración anual de impuestos',\n },\n {\n name: null,\n size: null,\n loader: false,\n text: '*Sube tu segunda declaración anual de impuestos',\n },\n ],\n },\n];\n\n\nexport const buildFileVoucher = function (resp: any, clientId: any, sseId: any, email: any, templateId: number) {\n\n return {\n files: [\n {\n ...resp.comprobanteDomicilio,\n name: null,\n size: null,\n loader: false,\n templateId,\n clientId,\n email,\n folderId: '',\n referenceId: `${resp.comprobanteDomicilio.documentId}_0`,\n sseId,\n fileId: '',\n },\n ],\n }\n}\n\nexport const buildFileFiscal = function (resp: any, clientId: any, sseId: any, email: any, templateId: number) {\n return {\n files: [\n {\n ...resp.comprobanteSituacionFiscal,\n name: null,\n size: null,\n loader: false,\n templateId,\n clientId,\n email,\n folderId: '',\n referenceId: `${resp.comprobanteSituacionFiscal.documentId}_0`,\n sseId,\n fileId: '',\n },\n ],\n }\n}\n\nexport const buildFileDomicilation = function (resp: any, clientId: any, sseId: any, email: any, templateId: number) {\n return {\n files: [\n {\n ...resp.domiciliacion,\n name: null,\n size: null,\n loader: false,\n templateId,\n clientId,\n email,\n folderId: '',\n referenceId: `${resp.domiciliacion.documentId}_0`,\n sseId,\n fileId: '',\n },\n ],\n }\n}\n\nexport const buildFileAnnual = function (resp: any, clientId: any, sseId: any, email: any, templateId: number) {\n return {\n files: [\n {\n ...resp.comprobanteIngreso[0],\n name: null,\n size: null,\n loader: false,\n templateId,\n clientId,\n email,\n folderId: '',\n referenceId: `${resp.comprobanteIngreso[0].documentId}_0`,\n sseId,\n fileId: '',\n },\n ],\n }\n}\n\nexport const ID_PAY_STUBS = 1;\nexport const ID_ACCOUNT_STATEMENTS = 2;\nexport const ID_ANNUAL_STATEMENTS = 3;\n\nexport const generateOptionsFilePFA = function () {\n return [\n {\n id: ID_PAY_STUBS,\n text: 'Recibos de nómina',\n files: [],\n keyfilter: 'nomina'\n },\n {\n id: ID_ACCOUNT_STATEMENTS,\n text: 'Estados de cuenta',\n files: [\n generateVarFiles('*Sube tu primer estado de cuenta', null),\n generateVarFiles('*Sube tu segundo estado de cuenta', null),\n generateVarFiles('*Sube tu tercer estado de cuenta', null),\n ],\n keyfilter: 'cuenta'\n },\n {\n id: ID_ANNUAL_STATEMENTS,\n text: 'Declaración anual',\n files: [\n generateVarFiles('*Sube tu primer declaración anual de impuestos', null),\n generateVarFiles('*Sube tu segunda declaración anual de impuestos', null),\n ],\n keyfilter: 'declaracion'\n },\n ];\n}\n\nexport const generateOptionsFilePFAE = function () {\n return [\n {\n id: ID_ACCOUNT_STATEMENTS,\n text: 'Estados de cuenta',\n files: [\n generateVarFiles('*Sube tu primer estado de cuenta', null),\n generateVarFiles('*Sube tu segundo estado de cuenta', null),\n generateVarFiles('*Sube tu tercer estado de cuenta', null),\n generateVarFiles('*Sube tu cuarto estado de cuenta', null),\n ],\n keyfilter: 'cuenta'\n },\n ];\n}\n\nexport const generateOptionsFileFORD = function () {\n return [\n {\n id: ID_PAY_STUBS,\n text: 'Recibos de nómina',\n files: [],\n keyfilter: 'nomina'\n }\n ];\n}\n\nexport const generateVarFiles = function (text: string, filesAccept: string | null) {\n let data: any = {\n name: null,\n size: null,\n loader: false,\n text\n }\n\n if (filesAccept)\n data.filesAccept = filesAccept;\n\n return data;\n}\n\nexport const OPTIONS_TYPE_VOUCHER = [\n {\n id: 1,\n text: \"Quincenales\",\n files: [\n generateVarFiles('*Sube el PDF de tu primer recibo quincenal de nómina', 'pdf'),\n generateVarFiles('*Sube el PDF de tu segundo recibo quincenal de nómina', 'pdf'),\n generateVarFiles('*Sube el PDF de tu tercer recibo quincenal de nómina', 'pdf'),\n generateVarFiles('*Sube el PDF de tu cuarto recibo quincenal de nómina', 'pdf'),\n ],\n keyfilter: 'nomina'\n },\n {\n id: 2,\n text: \"Mensuales\",\n files: [\n generateVarFiles('*Sube el PDF de tu primer recibo mensual de nómina', 'pdf'),\n generateVarFiles('*Sube el PDF de tu segundo recibo mensual de nómina', 'pdf'),\n ],\n keyfilter: 'nomina'\n }\n]\n\nexport const OPTIONS_TYPE_VOUCHER_FORD = [\n {\n id: 1,\n text: \"Mensuales\",\n files: [\n generateVarFiles('*Sube el PDF de tu primer recibo mensual de nómina', 'pdf'),\n generateVarFiles('*Sube el PDF de tu segundo recibo mensual de nómina', 'pdf'),\n ],\n keyfilter: 'nomina'\n }\n]\n\nexport const QUERY_PARAMS = {\n QUOTER: ['quoterId','concept','period','event'],\n CREDIT: ['solicitud-de-credito']\n}\n\nexport const QUOTER_NUMBER = {\n INITIAL:{\n NUMBER: \"1\",\n NAME: \"Cotización inicial\",\n },\n EVALUATE_RISK: {\n NUMBER: \"2\",\n NAME: \"Cotización evaluación riesgo\"\n },\n SELECTED_CAR: {\n NUMBER: \"3\",\n NAME: \"Cotización auto seleccionado\"\n }\n}\n\nexport const DEFAULT_NAME_QUOTER = \"Cotización detallada\";\n\nexport const KM_30 = 30000;\n\nexport const KM_20 = 20000;\n\nexport const PERIODS = {\n SIX_MONTHS: 60\n}\n\nexport const FLOW_LEASING_RENTING = 'LEASING_AND_RENTING'\n\nexport const FLOW_AFIN = 'AFIN';\n\nexport const FLOW_RR = 'RR'","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'ingreso',\n})\nexport class IngresoPipe implements PipeTransform {\n transform(ingreso: string): string {\n let nuevoFormato: string | number = '';\n\n ingreso = ingreso.includes('$') ? ingreso.slice(1) : ingreso;\n ingreso = ingreso.split('.')[0];\n\n if (+ingreso < 0) {\n ingreso = (+ingreso * -1).toString();\n }\n\n ingreso = ingreso.replace(/[^0-9.]/g, '');\n let cadenaPlanaReverse = ingreso\n .split(',')\n .join('')\n .split('')\n .reverse()\n .join('');\n let cadenaArr = cadenaPlanaReverse.match(/.{1,3}/g) || [];\n\n cadenaArr = cadenaArr.map((ele) => {\n return ele.split('').reverse().join('');\n });\n\n nuevoFormato = cadenaArr.reverse().join(',');\n return `\\$${nuevoFormato}`;\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { isInInvervalBound } from '../helpers/code-helper';\nimport { journeyDataDefault } from '../interfaces/journeyDataDefault';\nimport { SetStates, SetSubStates, rangeHighRiskEndorsment, rangeNormalEndorsment, rangeVeryHighRiskEndorsment } from '../shared/states';\nimport { TypeOfValidation } from '../interfaces/enums';\nimport { WINDOW } from 'src/app/utils/window';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class StepService {\n /* Estado */\n state = new BehaviorSubject('');\n\n /* general tabs */\n step = new BehaviorSubject(0);\n\n /* inter tabs */\n subStep = new BehaviorSubject(0);\n\n /* inter tabs */\n tabNumber = new BehaviorSubject(1);\n\n /* Para habilitar o deshabilitar algo */\n loading = new BehaviorSubject(false);\n\n destroyBtn = new BehaviorSubject(false);\n\n loadingCarSelected = new BehaviorSubject(false);\n\n isRecalculated = new BehaviorSubject(false);\n\n data: any = journeyDataDefault;\n\n screenSize = new BehaviorSubject(this.window.innerWidth);\n\n berauValid: boolean = true;\n\n identidadValid: boolean = true;\n\n docsValid: boolean = false;\n\n solicitudValid: boolean = false;\n\n showImputRequired = new BehaviorSubject(false);\n\n isPriceChanged = new Subject();\n\n constructor(@Inject(WINDOW) private window: Window){}\n\n calculateStep(state: string) {\n state = this.fixState(state);\n\n const excludeSteps = ['E4', 'E11', 'E33', 'E41'];\n\n if (excludeSteps.includes(state)) {\n this.step.next(0);\n this.subStep.next(1);\n return;\n }\n\n for (const [index, states] of SetStates.entries()) {\n if (states.includes(state)) {\n this.step.next(index);\n this.subStep.next(this.calculateSubStep(SetSubStates[index], state));\n return;\n }\n }\n }\n\n fixState(state: string) {\n return state === 'E23' && this.data.status !== 'Finalizado' ? 'E22' : state;\n }\n\n calculateSubStep(subConjuntos: string[][], state: string) {\n return subConjuntos.findIndex((ele) => ele.includes(state));\n }\n\n isDavinciFinishedBerau() {\n const states = ['E7', 'E14', 'E36', 'E44'];\n return (\n states.includes(this.data.step!) && this.data.status !== 'En Proceso'\n );\n }\n\n isDavinciNotFinishedBerau() {\n const states = ['E7', 'E14', 'E36', 'E44'];\n return (\n states.includes(this.data.step!) && this.data.status === 'En Proceso'\n );\n }\n\n updateData(data: any) {\n this.data = { ...this.data, ...data };\n }\n\n updateDataAndScreen(data: any) {\n console.log(\"updateDataAndScreen:\" + data)\n this.data = { ...this.data, ...data };\n this.state.next(this.data.step!);\n }\n\n getDataMethod() {\n\n const rangesEndorsment = [\n { step: 'E11', range: rangeNormalEndorsment },\n { step: 'E33', range: rangeHighRiskEndorsment },\n { step: 'E41', range: rangeVeryHighRiskEndorsment },\n ];\n\n if (isInInvervalBound(this.data.step!)) {\n const currentEndorsment = rangesEndorsment.find((item) => item.range.includes(this.data.step));\n return this.data?.[currentEndorsment!.step]?.data;\n }\n\n return this.data.E4!.data;\n }\n\n getMethodOfUser() {\n\n const rangesEndorsment = [\n { step: 'E11', range: rangeNormalEndorsment },\n { step: 'E33', range: rangeHighRiskEndorsment },\n { step: 'E41', range: rangeVeryHighRiskEndorsment },\n ];\n\n if (isInInvervalBound(this.data.step!)) {\n const currentEndorsment = rangesEndorsment.find((item) => item.range.includes(this.data.step));\n return this.data?.[currentEndorsment!.step]?.data?.sendMethod || TypeOfValidation.NONE;\n }\n return this.data.E4!.data!.sendMethod!;\n }\n\n isDavinciFinishedRisk() {\n const states = ['E9', 'E16', 'E38', 'E46'];\n return (\n states.includes(this.data.step!) && this.data.status !== 'En Proceso'\n );\n }\n\n isNotDavinciFinishedRisk() {\n const states = ['E9', 'E16', 'E38', 'E46'];\n return (\n states.includes(this.data.step!) && this.data.status === 'En Proceso'\n );\n }\n\n getParamsProduct() {\n const quoterId = this.data.quoterId!;\n const { concept, period } = this.data.product;\n return { quoterId, concept: concept.toLowerCase(), period };\n }\n\n getInfoId() {\n return isInInvervalBound(this.data.step!)\n ? this.data.clientInfoIdEndorsment\n : this.data.clientInfoId;\n }\n\n getExecutionStatusRisk() {\n\n const rangesEndorsment = [\n { step: 'E16', range: rangeNormalEndorsment },\n { step: 'E38', range: rangeHighRiskEndorsment },\n { step: 'E46', range: rangeVeryHighRiskEndorsment },\n ];\n\n if (isInInvervalBound(this.data.step!)) {\n const currentEndorsment = rangesEndorsment.find((item) => item.range.includes(this.data.step));\n return this.data[currentEndorsment!.step].data.execution_status;\n }\n return this.data.E9!.data!.execution_status;\n }\n\n needEndorsment() {\n return this.data.E9!.data!.jointly_bound === 'YES';\n }\n\n getTypeClient(state: string) {\n\n const rangesEndorsment = [\n { step: 'E16', range: rangeNormalEndorsment },\n { step: 'E38', range: rangeHighRiskEndorsment },\n { step: 'E46', range: rangeVeryHighRiskEndorsment },\n ];\n\n let clientType = null;\n\n if (isInInvervalBound(state)) {\n const currentEndorsment = rangesEndorsment.find((item) => item.range.includes(state));\n clientType = this.data[currentEndorsment!.step].data.client_type;\n } else {\n clientType = this.data.E9!.data!.client_type!;\n }\n\n return (clientType !== null)\n ? clientType.split(':')[1].trim()\n : 'R';\n }\n\n isTypeR(state: string) {\n let clientType = this.getTypeClient(state);\n return clientType === 'R';\n }\n\n isFlow(flowType: string) {\n\n flowType = flowType.toUpperCase();\n if (\n (this.data.flowType === '' || this.data.flowType === undefined) &&\n flowType === 'A'\n ) {\n return true;\n }\n return flowType === this.data.flowType;\n }\n\n\n}\n","export const StatesTab1 = [\n 'E1', 'E2',\n 'E3', 'E4', 'E5', 'E6', 'E7', // CLIENTE\n 'E10', 'E11', 'E12', 'E13', 'E14', // AVAL\n 'E32', 'E33', 'E34', 'E35', 'E36', // AVAL RIESGO ALTO\n 'E40', 'E41', 'E42', 'E43', 'E44', // AVAL RIESGO MUY ALTO\n];\nexport const StatesTab2 = [\n 'E8', 'E9', // CLIENTE\n 'E15', 'E16', // AVAL\n 'E37', 'E38', // AVAL RIESGO ALTO\n 'E45', 'E46', // AVAL RIESGO MUY ALTO\n];\n\nexport const StatesTab3 = [\n 'E17', // IDENTIDAD CLIENTE\n 'E18', // DOCS CLIENTE\n //'E19', // DOCS AVAL\n 'E31', // IDENTIDAD AVAL\n 'E39', // IDENTIDAD AVAL RIESGO ALTO\n 'E47', // IDENTIDAD AVAL RIESGO MUY ALTO\n 'E48', // DOCS AVAL RIESGO MUY ALTO\n];\n\nexport const StatesTab4 = ['E20'];\nexport const StatesTab5 = ['E21', 'E22', 'E23', 'E24', 'E25', 'E26', 'E27', 'E28', 'E29', 'E50', 'E49', 'E51'];\n\nexport const SubStatesTab1 = [\n ['E1', 'E2', 'E3', 'E4', 'E10', 'E11', 'E32', 'E33', 'E40', 'E41'], // pantalla de crear cliente y generar nip\n ['E5', 'E12', 'E34', 'E42'], // aceptar terminos y condiciones\n ['E6', 'E13', 'E35', 'E43'], // aceptar consulta de buro\n ['E7', 'E14', 'E36', 'E44'], // resultado de buro\n];\n\nexport const SubStatesTab2 = [\n ['E8', 'E15', 'E37', 'E45'],\n ['E9', 'E16', 'E38', 'E46'],\n];\n\nexport const SubStatesTab3 = [\n ['E17', 'E31', 'E39', 'E47'],\n ['E18', 'E48']\n];\n\nexport const SubStatesTab4 = [['E20']];\n\nexport const SubStatesTab5 = [['E21', 'E49'], ['E22'], ['E23', 'E24'], ['E25', 'E26', 'E50', 'E27'], ['E28'], ['E29'], ['E51']];\n\nexport const SetStates = [\n StatesTab1,\n StatesTab2,\n StatesTab3,\n StatesTab4,\n StatesTab5\n]\n\nexport const SetSubStates = [\n SubStatesTab1,\n SubStatesTab2,\n SubStatesTab3,\n SubStatesTab4,\n SubStatesTab5\n]\n\nexport const intervalBerauClient = StatesTab1.slice(3, 6);\nexport const isCreateClient = ['E2', 'E3'];\n\n//pasos donde se levanta el sse para esperar respuesta de buro o riesgo inicial\nexport const isSSEState = ['E7', 'E14', 'E36', 'E44', 'E9', 'E16', 'E38', 'E46'];\n\nexport const stepsAfterMati = Array.from({ length: 23 }).map((current, index) => `E${index + 27}`);\nexport const stepsAfterUploadDocs = Array.from({ length: 22 }).map((current, index) => `E${index + 28}`);\nexport const stepsAfterSolicitud = Array.from({ length: 21 }).map((current, index) => `E${index + 29}`);\n\nexport const stepsAfterMatiB = ['E20', 'E26', 'E18'];\nexport const stepsAfterSolicitudB = ['E26', 'E18'];\n\n// rango de aval normal\nexport const rangeNormalEndorsment = Array.from({ length: 7 }).map((current, index) => `E${index + 10}`);\n\n// rango de aval riesgo alto\nexport const rangeHighRiskEndorsment = Array.from({ length: 7 }).map((current, index) => `E${index + 32}`);\n\n// rango de aval riesgo muy alto\nexport const rangeVeryHighRiskEndorsment = Array.from({ length: 7 }).map((current, index) => `E${index + 40}`);\n\n// pasos excluidos despues de riesgo final apra no tomar en cuenta vigencias\nexport const excludedStepsA = [...['E21', 'E22', 'E23', 'E24', 'E25', 'E26', 'E27', 'E28', 'E29','E49'], ...rangeHighRiskEndorsment, ...rangeVeryHighRiskEndorsment]\n// export const excludedStepsB = [...['E21', 'E22', 'E23', 'E24', 'E25', 'E27', 'E28', 'E29','E50','E49'], ...rangeVeryHighRiskEndorsment, ...rangeVeryHighRiskEndorsment]\n\n// pasos para deshabilitar el boton cambio de unidad\nexport const destroyBtnSteps = ['E32', 'E33', 'E34', 'E35', 'E36', 'E37', 'E38', 'E40', 'E41', 'E42', 'E43', 'E44', 'E45', 'E46', 'E47', 'E48', 'E49', 'E50'];\n\n","export const defaultTabs = [\n {\n step: 0,\n title: 'Historial crediticio',\n states: [\n 'E1', 'E2', 'E3', 'E4', 'E5', 'E6', 'E7',\n 'E10', 'E11', 'E12', 'E13', 'E14',\n 'E32', 'E33', 'E34', 'E35', 'E36',\n 'E40', 'E41', 'E42', 'E43', 'E44'\n ],\n },\n {\n step: 1,\n title: 'Información complementaria',\n states: [\n 'E8', 'E9',\n 'E15', 'E16',\n 'E37', 'E38',\n 'E45', 'E46'\n ],\n },\n {\n step: 2,\n title: 'Carga de documentos',\n states: [\n 'E18', 'E48'\n ],\n },\n {\n step: 3,\n title: 'Formulario de Solicitud',\n states: ['E20'],\n },\n {\n step: 4,\n title: 'Verificación de identidad',\n states: [\n 'E17', 'E31', 'E39', 'E47'\n ],\n },\n {\n step: 5,\n title: 'Estatus Final',\n //states: ['E21', 'E22', 'E23', 'E24', 'E25', 'E26', 'E27', 'E28', 'E29'],\n states: ['E21', 'E22', 'E23', 'E24', 'E25', 'E26', 'E27', 'E28', 'E29', 'E50', 'E49', 'E51'],\n //states B : ['E21', 'E22', 'E23', 'E24', 'E25','E27', 'E28', 'E29'],\n },\n];\n\n// TODO: flowb\n/* export const defaultTabsFlowB = [\n {\n step: 0,\n title: 'Historial crediticio',\n states: [\n 'E1', 'E2', 'E3', 'E4', 'E5', 'E6', 'E7',\n 'E10', 'E11', 'E12', 'E13', 'E14',\n 'E32', 'E33', 'E34', 'E35', 'E36',\n 'E40', 'E41', 'E42', 'E43', 'E44'\n ],\n },\n {\n step: 1,\n title: 'Información complementaria',\n states: [\n 'E8', 'E9',\n 'E15', 'E16',\n 'E37', 'E38',\n 'E45', 'E46'\n ],\n },\n {\n step: 2,\n title: 'Carga de documentos',\n states: ['E18','E48'],\n },\n {\n step: 3,\n title: 'Formulario de Solicitud',\n states: ['E20'],\n },\n {\n step: 4,\n title: 'Verificación de identidad',\n states: ['E17', 'E31', 'E39', 'E47' ],\n },\n {\n step: 5,\n title: 'Estatus Final',\n states: ['E21', 'E22', 'E23', 'E24', 'E25', 'E26', 'E27', 'E28', 'E29','E50', 'E49', 'E51'],\n },\n]; */\n","export const textoTerms = `\n

\n En este acto declaro bajo protesta de decir verdad que la información proporcionada es cierta, correcta y verídica; así también, acepto y expreso por propio derecho, mi consentimiento respecto del tratamiento de los datos que se recaban y que son necesarios para generar el número de identificación personal (“NIP”) el cual será aceptado de manera digital en sustitución de la firma autógrafa y permitirá a, Bit Arrendadora de Vehículos, S.A. de C.V., TIP Auto SA de CV SOFOM E.N.R., TIP de México, S.A.P.I. de C.V., Grupo Engencap, S. de R.L. de C.V., 397 CAP, S.A. de C.V., SOFOM, E.N.R, Engencap Fin, S.A. de C.V., SOFOM, E.N.R., sus filiales, subsidiarias y/o partes relacionadas presentes y/o futuras, (conjuntamente “BITCAR”) realizar diversas operaciones electrónicas de consulta sobre mi comportamiento crediticio, las cuales podrán variar de acuerdo con la operatividad del medio electrónico que BITCAR estime conveniente para cada servicio o producto ofertado, por lo que por este medio autorizo expresamente a BITCAR, para que por conducto de sus funcionarios facultados lleve a cabo consultas e investigaciones, sobre mi comportamiento crediticio en Trans Unión de México, S. A. SIC y/o Dun & Bradstreet, S.A. SIC.\n

\n

\n Asimismo, declaro que conozco la naturaleza y alcance de la información que se solicitará, del uso que BITCAR hará de tal información y de que ésta podrá realizar consultas periódicas de mi historial crediticio, así como la consulta en bases de datos o listas de verificación de información de diversa naturaleza legal ligadas a la relación jurídica y comercial que guarda con BITCAR con un enfoque de prevención de riesgos y cumplimiento regulatorio; consintiendo que esta autorización permanezca vigente por un periodo de 3 años contados a partir de la fecha de su expedición o en todo caso durante el tiempo que se mantenga la relación jurídica, por lo tanto otorgo mi consentimiento para tales fines.\n

\n

\n Lo anterior, toda vez que BITCAR en su carácter de Responsable del Tratamiento de mis Datos Personales y con domicilio en Av. Tejocotes S/N, Lote 10, Fraccionamiento Industrial San Martín Obispo, Cuautitlán Izcalli, CP. 54769, Estado de México puso a mi entera disposición el Aviso de Privacidad que describe los términos completos de privacidad aplicables a los avisos otorgados por BitCar en sus distintos procesos, dando así cumplimiento a lo estipulado por la Ley Federal de Protección de Datos Personales en Posesión de Particulares y su Reglamento y mismo que se encuentra disponible en: https://bitcar.mx/landing#aviso-privacidad. \n

\n

\n Finalmente, por medio del presente otorgo mi consentimiento para que mis datos personales sean tratados conforme a lo señalado en el Aviso de Privacidad que fue puesto a mi disposición.\n

\n`;\n\nexport const textoAuth: string = `\n

\n Autorizo expresamente a Bit Arrendadora de Vehículos, S.A. de C.V., TIP Auto, S.A. de C.V. SOFOM, E.N.R., TIP de México, S.A.P.I. de C.V., Engencap Holding, S. de R.L. de C.V., Engencap Fin, S.A. de C.V. SOFOM, ENR., Engencap, S. de R.L. de C.V. (conjuntamente BITCAR), para que lleve a cabo investigaciones sobre mi comportamiento Crediticio en SIC que estime conveniente.\n

\n

\n Conozco la naturaleza y alcance de la información que se solicitará, del uso que se le dará y que podrán realizar consultas de mi historial crediticio de forma periódica, consiento que esta autorización tenga vigencia de 3 años contados a partir de hoy, o en su caso mientras mantengamos relación jurídica.\n

\n`;\n\nexport const textoDocs: string = `\n Bit Arrendadora de Vehículos, S.A. de C.V. así como sus filiales, subsidiarias y/o partes relacionadas presentes y/o futuras, (conjuntamente “BITCAR”), con domicilio en Av. Tejocotes S/N, Lote 10, Fraccionamiento Industrial San Martín Obispo, Cuautitlán Izcalli, CP. 54769, Estado de México, utilizará sus datos personales recabados con la finalidad de realizar el análisis de una posible relación comercial.\n\n

\n Para más información acerca del tratamiento y de los derechos que puede hacer valer, usted puede acceder al aviso de privacidad integral en el portal https://bitcar.mx/landing#aviso-privacidad.\n

\n`;\n","import { Component } from '@angular/core';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-dialog-afin',\n templateUrl: './dialog-afin.component.html',\n styleUrls: ['./dialog-afin.component.scss']\n})\n\nexport class DialogAfinComponent {\n templateSuffix = environment.templateSuffix;\n}\n","
\n
\n

¿Quieres una renta mensual baja?

\n

Leasing es la opción, al final del plazo puedes comprar el auto a valor del mercado, cambiarlo o devolverlo.

\n
\n \n
\n
\n
\n

\n {{ \"CREDIT.afin.rent2buy.title\" | translate }}\n

\n

\n {{ \"CREDIT.afin.rent2buy.text\" | translate }}\n

\n
\n \n
\n
\n
\n \n","import { AfterViewInit, Component, ElementRef, Inject, Renderer2, ViewChild } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-dialog-video',\n templateUrl: './dialog-video.component.html',\n styleUrls: ['./dialog-video.component.scss']\n})\nexport class DialogVideoComponent implements AfterViewInit {\n @ViewChild('iframeVideo') iframe!: ElementRef;\n constructor(\n private dialogRef: MatDialogRef,\n private render: Renderer2,\n @Inject(MAT_DIALOG_DATA) public data: any,\n ) { }\n\n ngAfterViewInit(): void {\n this.render.setProperty(this.iframe.nativeElement, 'src', this.data.url);\n this.render.setProperty(this.iframe.nativeElement, 'title', this.data.title);\n }\n \n onClose(): void {\n this.dialogRef.close();\n }\n\n}\n","\"close\n\n\n","import { DOCUMENT } from '@angular/common';\nimport { AfterViewInit, Component, Inject, Input } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ILandingPage } from 'src/app/model/http/landing.model';\n\n@Component({\n selector: 'app-landing-content',\n templateUrl: './landing-content.component.html',\n styleUrls: ['./landing-content.component.scss']\n})\nexport class LandingContentComponent implements AfterViewInit {\n @Input() data: ILandingPage = {\n id: 0,\n route: '',\n url: '',\n content: '',\n published_at: '',\n created_at: '',\n updated_at: '',\n hasSubtitle: false,\n hasPrecontent: false,\n isQuestion: false\n };\n anchors: string[] = [];\n constructor(\n private router: Router,\n @Inject(DOCUMENT) private document: any,\n ) { }\n\n ngAfterViewInit(): void {\n this.anchors = this.router.url.split('#');\n this.anchors.forEach((anchor) => {\n this.document.getElementById(anchor)?.scrollIntoView({ behavior: 'smooth', block: 'start' })\n });\n }\n\n}\n","

{{data.route}}

\n\n
\n

-

\n
\n \n
\n
0\">\n
\n

{{item.Title}}

\n

{{item.Subtitle}}

\n
\n
\n
\n
\n
{{rowData.Attribute1}}
\n
{{rowData.Attribute2}}
\n
{{rowData.Attribute3}}
\n
{{rowData.Attribute4}}
\n
\n \n
\n
\n
\n
{{rowData.Attribute5}}
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n\n
\n
\n

- {{question.question}}

\n

{{question.answer}}

\n
\n
\n\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { LandingGeneralComponent } from './landing-general.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: LandingGeneralComponent,\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [\n RouterModule\n ]\n})\nexport class LandingGeneralRoutingModule { }\n","import { Component, OnInit } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { Router } from '@angular/router';\nimport { IFaqs, IQuestionsAndAnswers } from 'src/app/model/http/faqs.model';\nimport { ILandingPage } from 'src/app/model/http/landing.model';\nimport { DataService } from 'src/app/services/data.service';\nimport { StrappiService } from 'src/app/services/strappi.service';\n\n@Component({\n selector: 'app-landing-general',\n templateUrl: './landing-general.component.html',\n styleUrls: ['./landing-general.component.scss']\n})\nexport class LandingGeneralComponent implements OnInit {\n data: ILandingPage[] = [];\n dataLandingPage: ILandingPage[] = [];\n questions: ILandingPage = {\n id: 0,\n hasSubtitle: false,\n hasPrecontent: false,\n content: '',\n isQuestion: false,\n published_at: '',\n created_at: '',\n updated_at: '',\n questions: [],\n };\n constructor(\n private strappiService: StrappiService,\n private dataService: DataService,\n private router: Router,\n private titleService: Title\n ) { }\n\n ngOnInit(): void {\n this.strappiService.getLandingPage().subscribe(\n (res) => {\n this.data = res;\n this.getQuestions();\n this.dataService.setSideLandingMenu(this.data);\n\n let _path = this.router.url.split('#');\n let _pathame: any = this.data.filter((_data) => {\n return _data.url === _path[1] ? _data.route : '';\n });\n\n\n if (_pathame.length > 0 && _pathame[0]?.route) {\n this.setTitle(`${_pathame[0].route}`);\n } \n }\n );\n }\n\n\n setTitle(title: any) {\n this.titleService.setTitle(`BitCar - ${title}`);\n }\n\n getQuestions() {\n this.strappiService.getFaqs().subscribe(\n (res) => {\n this.mapQuestions(res);\n }\n );\n }\n\n mapQuestions(data: IFaqs) {\n this.questions.route = data.header?.title;\n this.questions.hasSubtitle = false;\n this.questions.hasPrecontent = true;\n this.questions.isQuestion = true;\n this.questions.url = 'faqs';\n data.preguntas_respuestas?.map((question, index) => {\n let faq: IQuestionsAndAnswers = {\n id: 0,\n question: '',\n answer: '',\n link: '',\n status: false,\n quick_answer: ''\n };\n faq.id = index;\n faq.question = question.question;\n faq.answer = question.answer;\n faq.link = question.link;\n faq.status = question.status;\n faq.quick_answer = question.quick_answer;\n this.questions.questions?.push(faq);\n });\n this.data.push(this.questions);\n this.dataLandingPage = this.data;\n }\n\n}\n","
\n
\n
\n \n
\n
\n \n
\n
\n
","import { NgModule, SecurityContext } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { LandingGeneralRoutingModule } from './landing-general-routing.module';\nimport { LandingGeneralComponent } from './landing-general.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { LandingContentComponent } from './landing-content/landing-content.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { MarkdownModule } from 'ngx-markdown';\n\n\n@NgModule({\n declarations: [LandingGeneralComponent, LandingContentComponent],\n imports: [\n CommonModule,\n LandingGeneralRoutingModule,\n MarkdownModule.forRoot({\n // Disable rich text mardown sanitization\n sanitize: SecurityContext.NONE\n }),\n TranslateModule.forChild({\n extend: true,\n }),\n FlexLayoutModule,\n ],\n exports: [\n LandingContentComponent\n ]\n})\nexport class LandingGeneralModule { }\n","import { Injectable } from '@angular/core';\nimport { ConsumeService } from './consume.service';\nimport { Endpoints } from 'src/environments/endpoints';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BitlyService {\n\n constructor(private consumeService: ConsumeService) { }\n\n generateShortUrl(body: any) {\n return this.consumeService.httpPost(`${Endpoints.bitly.shortenLink}`, body, {'Authorization': `Bearer ${environment.bitly.accesToken}`})\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ConsumeService } from './consume.service';\nimport { HttpParams } from '@angular/common/http';\nimport { IRiskCatalogResponse } from '../pages/buro/interfaces/riesgos.response.model.';\nimport { ICliente } from '../pages/buro/interfaces/history-user.model';\nimport { IPinRequest } from '../pages/buro/interfaces/pin.model';\nimport { map } from 'rxjs/operators';\nimport { IResponseOportunidad } from '../pages/buro/interfaces/IResponse';\nimport { Endpoints } from 'src/environments/endpoints';\nimport { sendBodyModifiedBy, sendQueryModifiedBy } from '../utils/user.interceptor';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BuroService {\n constructor(private consume: ConsumeService) { }\n\n getCatalogs(\n vCodeSet1: string,\n vCodeSet2: string\n ): Observable {\n let params = new HttpParams();\n params = params.append('vCodeSet1', vCodeSet1);\n params = params.append('vCodeSet2', vCodeSet2);\n\n const url = `${Endpoints.buro.base}/catalogs?${params.toString()}`;\n return this.consume.httpGet(url).pipe(\n map((resp: any) => resp.data.data)\n );\n }\n\n getStateUser(email: string) {\n return this.consume\n .httpGet(`${Endpoints.buro.base}/client/${email}`).pipe(\n map((resp) => resp)\n );\n }\n\n getUserByIdKey(idKey: string) {\n return this.consume\n .httpGet(`${Endpoints.buro.base}/client/${idKey}`).pipe(\n map((resp) => resp)\n );\n }\n\n getValidBerau(idKey: string) {\n return this.consume\n .httpGet(`${Endpoints.buro.base}/evaluate-boreau/?idKeycloak=${idKey}`).pipe(\n map((resp) => resp),\n );\n }\n\n createUser(user: ICliente) {\n return this.consume\n .httpPost(`${Endpoints.buro.base}/client`, user, null, sendBodyModifiedBy()).pipe(\n map((resp) => resp),\n );\n }\n\n requestNIP_or_Validate(pinRequestBody: IPinRequest, idKey: string) {\n let params = `idKeycloak=${encodeURIComponent(idKey)}&metodoenvio=${pinRequestBody.metodoenvio\n }&nip=${encodeURIComponent(pinRequestBody.pin!)}`;\n return this.consume.httpGet(`${Endpoints.buro.base}/nip?${params}`, null, null, sendQueryModifiedBy()).pipe(\n map((resp) => resp),\n );\n }\n\n requestBureau(idKey: string) {\n return this.consume.httpGet(`${Endpoints.buro.base}/evaluate/${idKey}`, null, null, sendQueryModifiedBy()).pipe(\n map((resp) => resp),\n );\n }\n\n createUserBound(user: ICliente, idKey: string) {\n return this.consume.httpPost(`${Endpoints.buro.base}/client/${idKey}`, user).pipe(\n map((resp) => resp)\n );\n }\n\n requestNIP_or_ValidateBound(pinRequestBody: IPinRequest, idKey: string) {\n let params = `idKeycloak=${encodeURIComponent(idKey)}&metodoenvio=${pinRequestBody.metodoenvio\n }&nip=${encodeURIComponent(pinRequestBody.pin!)}`;\n\n return this.consume.httpGet(`${Endpoints.buro.base}/nip-endorsement?${params}`).pipe(\n map((resp) => resp),\n );\n }\n\n requestBureauBound(idKey: string) {\n\n return this.consume.httpGet(`${Endpoints.buro.base}/evaluate-endorsement/${idKey}`, null, null, sendQueryModifiedBy()).pipe(\n map((resp) => resp)\n );\n }\n\n createNewOpportunity(idKey: string) {\n return this.consume\n .httpPost(\n `${Endpoints.buro.base}/create-new-opportunity/${idKey}`,\n {}\n )\n .pipe(\n map((resp) => resp),\n );\n }\n\n getDocumentsTemplates(templateId: number) {\n return this.consume.httpGet(`${Endpoints.buro.documentManagmentUrl}/templates/${templateId}`).pipe(\n map((resp) => resp.data)\n );\n }\n\n getFolderDocuments(clientid: any, templateId: any) {\n return this.consume.httpGet(`${Endpoints.buro.documentManagmentUrl}/folderdocuments?clientid=${clientid}&templateId=${templateId}`).pipe(\n map((resp) => resp.data)\n );\n }\n\n getFolderDocumentsWithOutVaildity(clientid: any, templateId: any) {\n return this.consume.httpGet(`${Endpoints.buro.documentManagmentUrl}/folderdocuments?clientid=${clientid}&templateId=${templateId}&checkValidity=0`).pipe(\n map((resp) => resp.data)\n );\n }\n\n uploadDocuments(data: FormData) {\n return this.consume.httpPost(`${Endpoints.buro.documentManagmentUrl}/uploaddocuments`, data).pipe(\n map((resp) => resp.data)\n );\n }\n\n uploadFile(data: any) {\n return this.consume.httpPost(`${Endpoints.buro.documentManagmentUrl}/upload-file`, data).pipe(\n map((resp) => resp.data)\n );\n }\n\n deleteDocuments(folderId: any, fileId: any) {\n return this.consume.httpDelete(`${Endpoints.buro.documentManagmentUrl}/file?folderid=${folderId}&fileid=${fileId}`).pipe(\n map((resp) => resp)\n );\n }\n\n closeFolder(clientId: any) {\n return this.consume.httpPost(`${Endpoints.buro.documentManagmentUrl}/closefolder?clientid=${clientId}`, {}, null, sendQueryModifiedBy()).pipe(\n map((resp) => resp)\n );\n }\n\n generateOpt(data: any) {\n return this.consume.httpPost(`${Endpoints.buro.otp}/generate`, data).pipe(\n map((resp) => resp.data)\n );\n }\n\n validityDocs(clientId: any) {\n return this.consume.httpGet(`${Endpoints.buro.documentManagmentUrl}/validity?clientid=${clientId}`).pipe(\n map((resp) => resp.data),\n );\n }\n\n mobileUploadDocuments(data: FormData) {\n return this.consume.httpPost(`${Endpoints.buro.documentManagmentUrlPublic}/uploadmobile`, data).pipe(\n map((resp) => resp)\n );\n }\n validitySolicitud(clientId: any, stepCheck: any) {\n console.log('validitySolicitud', clientId, stepCheck);\n return this.consume.httpPost(`${Endpoints.solicitud.validity}/:${clientId}`, stepCheck).pipe(\n map((resp) => resp.data)\n );\n }\n\n callStage1(rfc: string, opportunityId: number) {\n const body = { rfc, opportunityId, stage: 1 };\n return this.consume.httpPost(`${Endpoints.buro.base}/call-stage`, body);\n }\n\n selectMethodSign(id: string) {\n return this.consume.httpPost(\n `${Endpoints.creditV2.base}/selectMethodSign/:${id}`,\n {}\n );\n }\n\n signatureAutograph(idKeycloak?: string) {\n return this.consume.httpGet(`${Endpoints.creditV2.base}/contract/signature-autograph/${idKeycloak}`).pipe(\n map((resp: any) => resp.data)\n );\n }\n\n signatureAutographDomiciliacion(idKeycloak?: string) {\n return this.consume.httpGet(`${Endpoints.creditV2.base}/contract/signature-autograph-domiciliacion/${idKeycloak}`).pipe(\n map((resp: any) => resp.data)\n );\n }\n\n sendEmailIdentityVerification(idKeycloak: string, url: string) {\n const body = { idKeycloak, url };\n //TODO: Change the endpoint to the correct one\n return this.consume.httpPost(`${Endpoints.buro.documentManagmentUrl}/ENDPOINT_NAME`, body).pipe(\n map((resp) => resp.data)\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { map } from 'rxjs';\nimport { Endpoints } from 'src/environments/endpoints';\nimport {\n ISearchCarColor,\n ISelectedCar,\n} from '../pages/buro/interfaces/ISearchCar';\nimport { ConsumeService } from './consume.service';\nimport { sendBodyModifiedBy } from '../utils/user.interceptor';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CarManagerService {\n constructor(private consume: ConsumeService) {}\n\n searchCar(body: ISearchCarColor) {\n return this.consume.httpPost(\n `${Endpoints.carManager.base}/search-car`,\n body,\n null,\n sendBodyModifiedBy()\n );\n }\n\n getCars(idkeycloak: string, ticketBusqueda: string) {\n return this.consume\n .httpGet(\n `${Endpoints.carManager.base}/quoter/select?idkeycloak=${idkeycloak}&ticketBusqueda=${ticketBusqueda}`\n )\n .pipe(map((resp: any) => resp.data));\n }\n\n sendCarSelected(body: ISelectedCar) {\n return this.consume.httpPost(\n `${Endpoints.carManager.base}/advance-payment`,\n body,\n null,\n sendBodyModifiedBy()\n );\n }\n\n createPayPdf(body: ISelectedCar) {\n return this.consume.httpPost(\n `${Endpoints.carManagerV2.base}/advance-payment/pdf`,\n body\n );\n }\n\n createInitialPayPdf(body: any) {\n return this.consume.httpPost(\n `${Endpoints.carManagerV2.base}/initial-payment/pdf`,\n body\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { catchError, map, Observable, of } from 'rxjs';\nimport { Endpoints } from 'src/environments/endpoints';\nimport { IResponse } from '../model/http/brands.model';\nimport { ICarFullResponse } from '../model/http/cars.model';\nimport { Ifilters, IKilometer } from '../model/http/filter.model';\nimport { IImagesJato } from '../model/http/images.model';\nimport { IAllSpecs } from '../model/http/specs.model';\nimport { ICities } from '../pages/buro/interfaces/city-model';\nimport { Countries } from '../pages/buro/interfaces/countries';\nimport { IZipCode } from '../pages/buro/interfaces/zip-model';\nimport { ConsumeService } from './consume.service';\nimport { ICatalogsRes } from '../pages/buro/interfaces/catalogos.model';\nimport { IStates } from '../pages/buro/interfaces/states.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CatalogsService {\n constructor(private consume: ConsumeService) { }\n\n getBrands(): Observable {\n return this.consume.httpGet(`${Endpoints.catalogs.base}/brand`);\n }\n\n getSubBrands(param: string): Observable {\n return this.consume.httpGet(`${Endpoints.catalogs.base}/sub-brand${param}`);\n }\n\n getYearsSubBrands(param: string): Observable {\n return this.consume.httpGet(`${Endpoints.catalogsV3.base}/years-sub-brand${param}`);\n }\n\n getVersion(param: string): Observable {\n return this.consume.httpGet(`${Endpoints.catalogs.base}/version${param}`);\n }\n\n getTopCars(param: string = ''): Observable {\n param = param.replace('?top-cars', '');\n return this.consume.httpGet(`${Endpoints.catalogs.base}/top-cars${param}`).pipe(\n map((resp: any) => {\n return {\n data: resp.data.cars,\n page: resp.data.page,\n per_page: resp.data.per_page,\n total: resp.data.total,\n total_pages: resp.data.total_pages,\n status: 200,\n message: resp.message\n }\n })\n );\n }\n\n getFilters(): Observable | Observable {\n return this.consume.httpGet(`${Endpoints.catalogsV2.base}/filters`);\n }\n\n getSearchCars(param: string): Observable {\n return this.consume.httpGet(`${Endpoints.catalogs.base}/cars?${param}`);\n }\n\n getImageById(param: string): Observable {\n return this.consume.httpGet(\n `${Endpoints.catalogs.imgesById}?uid_jato=${param}`\n ).pipe(\n map((resp: any) => resp.data)\n );\n }\n\n getStates(): Observable {\n return this.consume.httpGet(`${Endpoints.catalogs.base}/states`).pipe(\n map((resp) => resp)\n );\n }\n\n getCities(stateId: number): Observable {\n return this.consume\n .httpGet(`${Endpoints.catalogs.base}/cities/${stateId}`)\n .pipe(\n map((resp: any) => resp.data.data),\n catchError((err) => {\n console.log(err);\n return of({ cities: [] });\n })\n );\n }\n\n getZipCode(zipCode: string): Observable {\n return this.consume\n .httpGet(`${Endpoints.catalogs.base}/zip-code/${zipCode}`)\n .pipe(\n map((resp: any) => resp.data.data),\n catchError((err) => {\n console.log(err);\n return of({ resultados: [] });\n })\n );\n }\n\n getCountries(): Observable {\n return this.consume.httpGet(`${Endpoints.catalogs.base}/countries`)\n .pipe(map((res: any) => res.data.data)\n );\n }\n\n getRangeKm(): Observable {\n return this.consume.httpGet(`${Endpoints.catalogs.base}/catalogs?table=ranges&page=1&size=20`).pipe(\n map((resp: any) => resp.data)\n );\n }\n\n getCreditRangeKm(): Observable {\n return this.consume.httpGet(`${Endpoints.catalogs.base}/catalogs?table=creditRanges`).pipe(\n map((resp: any) => resp.data)\n );\n }\n\n getSpecsById(param: string): Observable {\n return this.consume.httpGet(`${Endpoints.catalogs.specsById}?uid_jato=${param}`).pipe(\n map((resp: any) => resp.data.data)\n );\n }\n\n getQuoteCarById(id: string): Observable {\n return this.consume.httpGet(`${Endpoints.catalogs.base}/cars/${id}`);\n }\n\n validateCodePromo(code: string): Observable {\n return this.consume.httpGet(`${Endpoints.catalogsV2.base}/validateCode/${code}`);\n }\n\n validateCreditCodePromo(code: string): Observable {\n return this.consume.httpGet(`${Endpoints.catalogsV3.base}/validateCode/credit/${code}`);\n }\n\n getSuggestions(param: string): Observable {\n let suggestions: any[] = [];\n return this.consume.httpGet(`${Endpoints.catalogsV3.base}/cars-suggestion${param}`).pipe(\n map((resp: any) => {\n if (resp.data.length > 0) {\n let objeto = resp.data;\n objeto.forEach((p: any) => {\n if (suggestions.findIndex(pd => pd.subbrand === p.subbrand) === -1) {\n suggestions.push(p);\n }\n });\n }\n return suggestions;\n })\n )\n }\n\n /**\n * Obtiene la tabla de tipos de cliente para obtener la renta interina.\n * @return {*} {Observable}\n * @memberof CatalogsService\n */\n getCatalogTypeClient(): Observable {\n return this.consume.httpGet(`${Endpoints.catalogs.catalog}?table=typeClients&page=1&size=10`).pipe(map((resp: any) => resp.data));\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subscriber } from 'rxjs';\nimport { HttpHeaders, HttpClient, HttpParams, HttpContext } from '@angular/common/http';\nimport { DataService } from './data.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConsumeService {\n constructor(private http: HttpClient, private dataService: DataService) {}\n\n httpGet(url: string, params?: any, headers?: any, context?: HttpContext): Observable {\n let objHeaders = new HttpHeaders();\n if (headers) {\n objHeaders = this.appendDataHeaders(headers);\n }\n\n let objParams = new HttpParams();\n if (params) {\n objParams = this.appendDataParams(params);\n }\n\n this.dataService.setIsLoading(true);\n return new Observable((observer) => {\n this.http.get(url, { headers: objHeaders, params: objParams, context })\n .subscribe({\n next: (res) => this.returnResponse(observer, res),\n error: (err) => this.returnError(observer, err)\n });\n });\n }\n\n httpPost(url: string, body: any, headers?: any, context?: HttpContext): Observable {\n let objHeaders = new HttpHeaders();\n if (headers) {\n objHeaders = this.appendDataHeaders(headers);\n }\n\n this.dataService.setIsLoading(true);\n return new Observable((observer) => {\n this.http.post(url, body, { headers: objHeaders, context })\n .subscribe({\n next: (res) => this.returnResponse(observer, res),\n error: (err) => this.returnError(observer, err)\n });\n });\n }\n\n httpPut(url: string, body: any, headers?: any): Observable {\n let objHeaders = new HttpHeaders();\n if (headers) {\n objHeaders = this.appendDataHeaders(headers);\n }\n\n this.dataService.setIsLoading(true);\n return new Observable((observer) => {\n this.http.put(url, body, { headers: objHeaders })\n .subscribe({\n next: (res) => this.returnResponse(observer, res),\n error: (err) => this.returnError(observer, err)\n });\n });\n }\n\n httpDelete(url: string, params?: any, headers?: any): Observable {\n let objHeaders = new HttpHeaders();\n if (headers) {\n objHeaders = this.appendDataHeaders(headers);\n }\n\n let objParams = new HttpParams();\n if (params) {\n objParams = this.appendDataParams(params);\n }\n\n this.dataService.setIsLoading(true);\n return new Observable((observer) => {\n this.http.delete(url, { headers: objHeaders, params: objParams })\n .subscribe({\n next: (res) => this.returnResponse(observer, res),\n error: (err) => this.returnError(observer, err)\n });\n });\n }\n\n\n private returnResponse(observer: Subscriber, response: any): void {\n observer.next(response);\n observer.complete();\n this.dataService.setIsLoading(false);\n }\n\n private returnError(observer: Subscriber, error: any): void {\n observer.error(error);\n this.dataService.setIsLoading(false);\n }\n\n appendDataHeaders(data: any){\n let objHeaders = new HttpHeaders();\n\n Object.keys(data).forEach((key) => {\n objHeaders = objHeaders.append(key, data[key]);\n });\n\n return objHeaders;\n }\n\n appendDataParams(data: any){\n let objParams = new HttpParams();\n\n Object.keys(data).forEach((key) => {\n objParams = objParams.append(key, data[key]);\n });\n\n return objParams;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConsumeService } from './consume.service';\nimport { Observable, map, of } from 'rxjs';\nimport { Endpoints } from 'src/environments/endpoints';\nimport { IRangeHitch, IRangeHitchRange } from '../model/http/IRangeHitch';\nimport { ICreditGPSRequired, ICreditGPSRequiredResponse } from '../model/http/ICreditGPSRequired';\nimport { IServicesCreditPlus, IServicesPlus } from '../model/http/servicesPlus.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CotizadorCreditoService {\n\n constructor(private consume: ConsumeService) {}\n \n //? TRADICIONAL\n\n getRangeHitchTraditional(params:{\n carId: string,\n customerTypeId: string,\n productTypeId: string,\n }): Observable {\n return this.consume\n .httpGet(\n `${Endpoints.cotizadorV3.base}/maximum-down-payment`,\n params\n )\n .pipe(map((resp) => resp.data));\n }\n\n getCreditGPSRequired(params:{\n carId: string,\n customerTypeId: string,\n downPayment: number,\n }): Observable {\n // return of(params.downPayment > 174315 ? false : true);\n return this.consume\n .httpGet(\n `${Endpoints.cotizadorV3.base}/validate-credit-gps`,\n params\n )\n .pipe(map((resp) => resp.data.gpsRequired));\n }\n\n generateCreditQuoter(request: any): Observable {\n return this.consume\n .httpPost(`${Endpoints.cotizadorV3.base}/credit_quoter`, request)\n .pipe(map((resp: any) => resp.data));\n }\n\n getRangeHitchBallon(params: {\n carId: string,\n customerTypeId: string,\n productTypeId: string,\n downPayment: number,\n code?: string,\n ballon: number\n }): Observable {\n return this.consume\n .httpGet(\n `${Endpoints.cotizadorV3.base}/maximum-down-payment`,\n params\n )\n .pipe(map((resp) => resp.data));\n }\n\n getRangeAnnuity(\n carId: string,\n customerTypeId: string,\n productTypeId: string,\n downPayment: number\n ): Observable {\n return this.consume\n .httpGet(\n `${Endpoints.cotizadorV3.base}/maximun-annuality?carId=${carId}&customerTypeId=${customerTypeId}&productTypeId=${productTypeId}&downPayment=${downPayment}`\n )\n .pipe(map((resp: any) => resp.data));\n }\n\n getRangeBallon(params: {\n carId: string,\n customerTypeId: string,\n code: string,\n downPayment: number\n }): Observable {\n return this.consume\n .httpGet(\n `${Endpoints.cotizadorV3.base}/maximum-ballon`,\n params\n )\n .pipe(map((resp: any) => resp.data));\n }\n\n\n\n getServicesPlus({\n carId,\n km,\n cTiD,\n typeSuitCar,\n stateId,\n insurance,\n cpTip,\n quoterType,\n downPayment,\n insuranceType\n }: IServicesCreditPlus): Observable {\n\n return this.consume\n .httpGet(\n `${Endpoints.cotizadorV3.base}/services-credit-plus`,\n {\n carId,\n km,\n customerTypeId: cTiD,\n typeSustituteCar: typeSuitCar,\n stateId,\n insurance,\n cpTip,\n quoterType,\n downPayment,\n insuranceType\n })\n .pipe(map((resp: any) => resp));\n }\n \n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, catchError, map, Observable, of } from 'rxjs';\nimport { Endpoints } from 'src/environments/endpoints';\nimport {\n IInsuranceRequest,\n IInsuranceDic,\n InsurancesDic,\n IInsurance,\n} from '../components/configuration-panel/interfaces/aseguradoras';\nimport { HttpParams } from '@angular/common/http';\nimport { ConsumeService } from './consume.service';\nimport { IResponse } from '../components/configuration-panel/interfaces/IResponse';\nimport { catchErrorInsurances } from '../components/configuration-panel/helpers/catchErrorCotizador';\nimport { DefaultResponseProduct } from '../components/configuration-panel/helpers/catchErrorProduct';\nimport { IProductDetail } from '../components/configuration-panel/interfaces/product';\nimport { IServicesPlus } from '../model/http/servicesPlus.model';\nimport { sendBodyModifiedBy } from '../utils/user.interceptor';\nimport { ICreditAmotization } from '../pages/buro/interfaces/ICreditAmortization';\nimport { environment } from 'src/environments/environment';\nimport { IInsuranceRequestCredit } from '../components/configuration-panel/interfaces/aseguradoras';\nimport { SecurityService } from './security.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CotizadorService {\n insurnaces = new BehaviorSubject([]);\n insuranceDic = new BehaviorSubject(InsurancesDic[4]);\n\n constructor(\n private consume: ConsumeService,\n private securityService: SecurityService\n ) { }\n\n getInsuranceInfo(req: IInsuranceRequest): Observable {\n\n const { idState, cpTip, idTip, year, priceWithIva, insurance, quoterType, flowType, version, userId } = req;\n\n let params = new HttpParams();\n params = params.append('idState', idState);\n params = params.append('cpTip', cpTip);\n params = params.append('idTip', idTip);\n params = params.append('year', year);\n params = params.append('priceWithIva', priceWithIva);\n params = params.append('insurance', insurance);\n params = params.append('quoterType', quoterType);\n // Estos tres parametros unicamente se utilizan para flujo B espcificamente para FORD: Campaign\n // Es para diferenciar el costo del seguro por version y el tipo de flujo\n params = params.append('flowType', flowType);\n params = params.append('version', version);\n params = params.append('userId', userId);\n\n return this.consume\n .httpGet(\n `${Endpoints.cotizadorV2.base}/compare-insurance?${params.toString()}`\n )\n .pipe(\n map((resp) => resp),\n catchError((err) => of(catchErrorInsurances(err)))\n );\n }\n\n getCreditInsuranceInfo(req: IInsuranceRequestCredit): Observable {\n const { idState, cpTip, idTip, year, priceWithIva, insurance, quoterType } =\n req;\n\n let params = new HttpParams();\n params = params.append('idState', idState);\n params = params.append('cpTip', cpTip);\n params = params.append('idTip', idTip);\n params = params.append('year', year);\n params = params.append('priceWithIva', priceWithIva);\n params = params.append('insurance', insurance);\n params = params.append('quoterType', quoterType);\n\n return this.consume\n .httpGet(\n `${Endpoints.cotizadorV3.base}/compare-credit-insurance?${params.toString()}`\n )\n .pipe(\n map((resp) => resp),\n catchError((err) => of(catchErrorInsurances(err)))\n );\n }\n\n getParamsQuote(\n quoterId: string,\n concept: string,\n period: string,\n extraPeriods: number = 1 \n ): Observable {\n return this.consume\n .httpGet(\n `${Endpoints.cotizadorV2.base}/product?quoterId=${quoterId}&concept=${concept}&period=${period}&extraPeriods=${extraPeriods}`\n )\n .pipe(\n map((resp: any) => {\n const dataToStore = resp.data.data;\n const encryptedData = this.securityService.encryptData(dataToStore, false);\n localStorage.setItem('_quotationdata', encryptedData); \n return resp.data.data;\n }),\n catchError((err) => of(DefaultResponseProduct))\n );\n }\n\n /**\n * Obtiene los parametros del crédito\n * @param {string} quoterId\n * @param {string} concept\n * @param {string} period\n * @return {*} {Observable}\n * @memberof CotizadorService\n * @author victor.mendez\n */\n getParamsRequest(idCredit: string): Observable {\n //TODO: Cambiar el funcionamiento para flujo B \n let _idC = { idCredit: idCredit };\n return this.consume.httpPost(\n `${Endpoints.buro.documentManagmentUrlPublicv3}/downloadCreditRequest/3`, _idC)\n .pipe(\n map((resp: any) => {\n return resp.data.request;\n }),\n catchError((err) => of(DefaultResponseProduct))\n );\n }\n\n getNewQuote(body: any) {\n \n return this.consume\n .httpPost(`${Endpoints.cotizadorV2.base}/quoter`, body)\n .pipe(map((resp: any) => resp.data));\n }\n\n getRenting(\n id: string,\n km: number,\n cTiD: string,\n quoterType: string,\n flowType: string\n ): Observable {\n return this.consume\n .httpGet(\n `${Endpoints.cotizadorV2.base}/maximum-ri?carId=${id}&km=${km}&customerTypeId=${cTiD}"erType=${quoterType}&flowType=${flowType}`)\n .pipe(map((resp: any) => resp.data));\n }\n\n getServicePlus(data: IServicesPlus): Observable {\n let {\n carId,\n km,\n cTiD,\n typeSuitCar,\n stateId,\n insurance,\n cpTip,\n quoterType,\n flowType,\n } = data;\n\n return this.consume\n .httpGet(\n `${Endpoints.cotizadorV2.base}/services-plus?carId=${carId}&km=${km}&customerTypeId=${cTiD}&typeSustituteCar=${typeSuitCar}&stateId=${stateId}&insurance=${insurance}&cpTip=${cpTip}"erType=${quoterType}&flowType=${flowType}`\n )\n .pipe(map((resp: any) => resp.data));\n }\n\n getRelatedCars(param: string): Observable {\n return this.consume.httpGet(\n `${Endpoints.cotizadorV2.base}/affinity-score?${param}`\n );\n }\n\n generateQuoter(request: any): Observable {\n return this.consume\n .httpPost(`${Endpoints.cotizador.base}/quoter`, request)\n .pipe(map((resp: any) => resp.data));\n }\n\n preauthorize(request: any): Observable {\n return this.consume.httpPost(\n `${Endpoints.cotizadorV2.base}/preauthorize`,\n request,\n null,\n sendBodyModifiedBy()\n );\n }\n\n existingProcesses(idKeycloak: any): Observable {\n return this.consume.httpGet(\n `${Endpoints.cotizadorV2.base}/step/:${idKeycloak}`\n );\n }\n\n updateQuote(idKeycloak: string, body: any) {\n return this.consume.httpPost(\n `${Endpoints.solicitud.base}/update-quote/${idKeycloak}`,\n body,\n null,\n sendBodyModifiedBy()\n );\n }\n\n finishProccesAndQuoter(id: string, ofDesactiveCar: boolean) {\n return this.consume.httpPut(`${Endpoints.creditV2.base}/:${id}`, {\n ofDesactiveCar,\n });\n }\n\n getPurchaseValue(id: string, km: number): Observable {\n let flowtype = environment.templateSuffix === '' ? 'A' : 'B';\n return this.consume\n .httpGet(\n `${Endpoints.cotizadorV2.base}/afin/purchasevalue?carId=${id}&km=${km}&flowType=${flowtype}`\n )\n .pipe(map((resp: any) => resp.data));\n }\n \n getCreditAmortization(id: string, period: number, concept: string): Observable {\n return this.consume\n .httpGet<{data: ICreditAmotization[]}>(\n `${Endpoints.cotizadorV3.base}/generate_credit_amortization/${id}`, {\n period,\n concept,\n round: 1\n }\n )\n .pipe(map((resp) => resp.data));\n }\n\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { Subject, Observable, BehaviorSubject } from 'rxjs';\nimport { ICarFullResponse } from '../model/http/cars.model';\nimport { ILandingPage } from '../model/http/landing.model';\nimport { WINDOW } from '../utils/window';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DataService {\n private isLoading = new BehaviorSubject(false);\n private generalNotificationMessage = new Subject();\n private carsResult = new Subject();\n private searchCarsUrl = new Subject();\n private encryptCarsUrl = new Subject();\n private toggleNavPanel = new Subject();\n private orderSelection = new Subject();\n private sideLandingMenu = new Subject();\n private pricesResults = new Subject();\n\n private searchFullPrice = new Subject();\n private searchFullRentPrice = new Subject();\n\n private catalogImagesSearcher = new Subject();\n private totalCarsResults = new Subject();\n private quoterCarData = new Subject();\n private quoterCreditCarData = new Subject();\n private deadlineSelect = new Subject();\n private allDeadlineSelect = new Subject();\n idKeycloak: string = '';\n isLoged: boolean = false;\n private quoterCarId = new Subject();\n private updatePreauthorize = new Subject();\n private interactionUserPanel = new Subject();\n\n private isBlocked = new BehaviorSubject(false);\n\n private isBlockedForContracts = new BehaviorSubject(false);\n \n private screenSize = new BehaviorSubject(this.window.innerWidth);\n\n private showShareLink = new Subject();\n private getTopCars = new Subject();\n private isTopCars = new Subject();\n private filtersTypeCar = new Subject();\n private selectTypeCar = new Subject();\n private chipsFilter = new Subject();\n private clearFilter = new Subject();\n private isPriceFilter = new Subject();\n private isRentPriceFilter = new Subject();\n private subject = new Subject();\n private subjectDownloadPdf = new Subject();\n private km:number = 0;\n private period?:number;\n private creditPeriod?:number;\n private selectedMaintenanceExpenses:boolean = false;\n private tenPercentPrice: number = 0;\n private persontype:string = \"\";\n private balloonMax = new Subject();\n\n constructor(@Inject(WINDOW) private window: Window) {}\n\n setIsLoading(loading: boolean): void {\n this.isLoading.next(loading);\n }\n\n getIsLoading(): Observable {\n return this.isLoading.asObservable();\n }\n\n getGeneralNotificationMessage(): Observable {\n return this.generalNotificationMessage.asObservable();\n }\n\n setGeneralNotificationMessage(msg: string): void {\n this.generalNotificationMessage.next(msg);\n }\n\n getToken(): string {\n return sessionStorage.getItem('token') || '';\n }\n\n setToken(token: string): void {\n sessionStorage.setItem('token', token);\n }\n\n getTokenService(): string {\n return sessionStorage.getItem('token_service') || '';\n }\n\n setTokenService(token: string): void {\n sessionStorage.setItem('token_service', token);\n }\n\n removeToken(): void {\n sessionStorage.removeItem('token');\n }\n\n userIsAuthenticated(): boolean {\n return Boolean(sessionStorage.getItem('token'));\n }\n\n checkParamStringBrand(param: any): string {\n return '?brands[]=' + param.toString();\n }\n\n checkParamStringSubBrand(param: string): string {\n return '?subbrand[]=' + param.toString();\n }\n\n checkParamStringFastSearch(param: string): string {\n return '?search[]=' + param.toString();\n }\n\n addParamStringBrand(param: any, index: number, urlParam: string): string {\n return (index === 0 ? `?${urlParam}=` : `&${urlParam}=`) + param.toString();\n }\n\n setSearchUrl(url: any): void {\n this.searchCarsUrl.next('page=1&size=24&order=1' + url);\n }\n\n getSearchUrl(): Observable {\n return this.searchCarsUrl.asObservable();\n }\n\n setPrices(arrPrice: any): void {\n this.pricesResults.next(arrPrice);\n }\n\n getPrices(): Observable {\n return this.pricesResults.asObservable();\n }\n\n setHideNavMenu(val: boolean): void {\n this.toggleNavPanel.next(val);\n }\n\n getHideNavMenu(): Observable {\n return this.toggleNavPanel.asObservable();\n }\n\n setOrderSelection(val: number): void {\n this.orderSelection.next(val);\n }\n\n getOrderSelection(): Observable {\n return this.orderSelection.asObservable();\n }\n\n setSideLandingMenu(menu: ILandingPage[]): void {\n this.sideLandingMenu.next(menu);\n }\n\n getSideLandingMenu(): Observable {\n return this.sideLandingMenu.asObservable();\n }\n\n setCatalogImagesSearcher(value: any): void {\n this.catalogImagesSearcher.next(value);\n }\n\n getCatalogImagesSearcher(): Observable {\n return this.catalogImagesSearcher.asObservable();\n }\n\n getTotalCarsResults(): Observable {\n return this.totalCarsResults.asObservable();\n }\n\n setTotalCarsResults(results: number): void {\n this.totalCarsResults.next(results);\n }\n\n setQuoterData(data: any): void {\n this.quoterCarData.next(data);\n }\n\n getQuoterData(): Observable {\n return this.quoterCarData;\n }\n\n setDeadlineSelect(deadline: any): void {\n if(deadline) {\n this.setPeriod(deadline.period);\n this.setSelectedMaintenanceExpenses(deadline.deliveryCost.hasOwnProperty(\"maintenanceExpenses\"));\n }\n this.deadlineSelect.next(deadline);\n }\n\n getDeadlineSelect(): Observable {\n return this.deadlineSelect.asObservable();\n }\n\n setDeadlineCreditSelect(deadline: any): void {\n if(deadline) {\n this.setPeriod(deadline.period);\n }\n this.deadlineSelect.next(deadline);\n }\n\n getIdKeycloak = () => this.idKeycloak;\n\n setIdKeycloak = (id: any) => (this.idKeycloak = id);\n\n getPersontype = () => this.persontype;\n\n setPersontype = (regimen: string) => (this.persontype = regimen);\n\n setCarIdQuoter(id: any): void {\n this.quoterCarId.next(id);\n }\n\n getCarIdQuoter(): Observable {\n return this.quoterCarId.asObservable();\n }\n\n setUpdatePreauthorize(value: boolean): void {\n this.updatePreauthorize.next(value);\n }\n\n getUpdatePreauthorize(): Observable {\n return this.updatePreauthorize.asObservable();\n }\n\n setInteractionUserPanel(value: boolean): void {\n this.interactionUserPanel.next(value);\n }\n\n getInteractionUserPanel(): Observable {\n return this.interactionUserPanel.asObservable();\n }\n\n setIsBlocked(value: boolean) {\n this.isBlocked.next(value);\n }\n\n getIsBlocked(): Observable {\n return this.isBlocked.asObservable();\n }\n\n // para bloquear pantalla cuando se generen contratos\n\n setIsBlockedForContracts(value: boolean) {\n this.isBlockedForContracts.next(value);\n }\n\n getIsBlockedForContracts(): Observable {\n return this.isBlockedForContracts.asObservable();\n }\n\n setScreenSize(value: number) {\n this.screenSize.next(value);\n }\n\n getScreenSize(): Observable {\n return this.screenSize.asObservable();\n }\n\n getIsLoged = () => this.isLoged;\n\n setIsLoged = (value: boolean) => (this.isLoged = value);\n\n setShowShareLink(value: boolean) {\n this.showShareLink.next(value);\n }\n\n getShowShareLink(): Observable {\n return this.showShareLink.asObservable();\n }\n\n setClickTopCars(value: boolean) {\n this.getTopCars.next(value);\n }\n\n getClickTopCars(): Observable {\n return this.getTopCars.asObservable();\n }\n\n setIsTopCars(value: boolean) {\n this.isTopCars.next(value);\n }\n\n getIsTopCars(): Observable {\n return this.isTopCars.asObservable();\n }\n\n setFiltersTypeCar(value: any) {\n this.filtersTypeCar.next(value);\n }\n\n getFiltersTypeCar(): Observable {\n return this.filtersTypeCar.asObservable();\n }\n\n setSelectTypeCar(value: any) {\n this.selectTypeCar.next(value);\n }\n\n getSelectTypeCar(): Observable {\n return this.selectTypeCar.asObservable();\n }\n\n setChipsFilter(value: any) {\n this.chipsFilter.next(value);\n }\n\n getChipsFilter(): Observable {\n return this.chipsFilter.asObservable();\n }\n\n setClearFilter(chip: any) {\n this.clearFilter.next(chip);\n }\n\n getClearFilter(): Observable {\n return this.clearFilter.asObservable();\n }\n\n setPriceFilter(value: any) {\n this.isPriceFilter.next(value);\n }\n\n getPriceFilter(): Observable {\n return this.isPriceFilter.asObservable();\n }\n\n setRentPriceFilter(value: any) {\n this.isRentPriceFilter.next(value);\n }\n\n getRentPriceFilter(): Observable {\n return this.isRentPriceFilter.asObservable();\n }\n\n\n /**\n * Function to shared excecute function of children to parent\n * @author victor.mendez\n */\n sendSharedFunction(data:any) {\n this.subject.next(data);\n }\n\n /**\n * Get observable to execute functions of children to parent\n * to Open Modal\n * @return {Observable}\n * @author victor.mendez\n */\n getSharedFunction() {\n return this.subject.asObservable();\n }\n\n /**\n * Function to shared excecute function of children to parent\n * @author victor.mendez\n */\n sendDownloadPdfCredit(data:any) {\n this.subjectDownloadPdf.next(data);\n }\n\n /**\n * Get observable to execute functions of children to parent\n * to Open Modal\n * @return {Observable}\n * @author victor.mendez\n */\n getDownloadPdfCredit() {\n return this.subjectDownloadPdf.asObservable();\n }\n\n setKm(km: number) {\n this.km = km;\n }\n\n getKm() {\n return this.km;\n }\n\n setPeriod(period:number) {\n this.period = period;\n }\n\n getPeriod() {\n return this.period;\n }\n\n setSelectedMaintenanceExpenses(selected: boolean) {\n this.selectedMaintenanceExpenses = selected;\n }\n\n getSelectedMaintenanceExpenses() {\n return this.selectedMaintenanceExpenses;\n }\n\n setTenPercentPrice(tenPercentPrice:number) {\n this.tenPercentPrice = tenPercentPrice;\n }\n\n getTenPercentPrice() {\n return this.tenPercentPrice;\n }\n\n setAllDeadlines(deadline:any): void {\n this.allDeadlineSelect.next(deadline);\n }\n\n getAllDeadlines(): Observable {\n return this.allDeadlineSelect.asObservable();\n }\n\n getBalloonMax() {\n return this.balloonMax.asObservable();\n }\n\n setBalloonMax(plazo: any) {\n return this.balloonMax.next(plazo);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Endpoints } from 'src/environments/endpoints';\nimport { ConsumeService } from './consume.service';\nimport { map, Observable } from 'rxjs';\nimport { IContacts, IContactsUpdate } from '../pages/buro/interfaces/IContacts';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FinalStatusService {\n\n constructor(private consume: ConsumeService, private http: HttpClient) { }\n\n getContacts(idKeycloak: string): Observable {\n return this.consume.httpGet(`${Endpoints.clientes.base}/contact/${idKeycloak}`).pipe(\n map( (resp:any) => resp.data )\n );\n }\n\n updateContacts(body: IContactsUpdate): Observable {\n return this.http.patch(`${Endpoints.clientes.base}/contact`, body);\n }\n\n}\n","import { Inject, Injectable } from '@angular/core';\nimport {\n Router\n} from '@angular/router';\nimport { KeycloakAuthGuard, KeycloakService } from 'keycloak-angular';\nimport { environment } from 'src/environments/environment';\nimport { WINDOW } from '../utils/window';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GuardService extends KeycloakAuthGuard {\n constructor(\n protected override readonly router: Router,\n protected readonly keycloak: KeycloakService,\n @Inject(WINDOW) private window: Window\n ) {\n super(router, keycloak);\n }\n\n public async isAccessAllowed(): Promise {\n if (!this.authenticated) {\n await this.keycloak.login({\n redirectUri: environment.keycloak.redirectUri + this.window.location.pathname,\n });\n }\n\n return Promise.resolve(this.authenticated);\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class JwtHelperService {\n\n\n constructor() { \n }\n\n public urlBase64Decode(str: string): string {\n let output = str.replace(/-/g, '+').replace(/_/g, '/');\n switch (output.length % 4) {\n case 0: {\n break;\n }\n case 2: {\n output += '==';\n break;\n }\n case 3: {\n output += '=';\n break;\n }\n default: {\n throw new Error('Illegal base64url string!');\n }\n }\n return this.b64DecodeUnicode(output);\n }\n\n // credits for decoder goes to https://github.com/atk\n private b64decode(str: string): string {\n const chars =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n let output = '';\n\n str = String(str).replace(/=+$/, '');\n\n if (str.length % 4 === 1) {\n throw new Error(\n `'atob' failed: The string to be decoded is not correctly encoded.`\n );\n }\n\n for (\n // initialize result and counters\n let bc = 0, bs: any, buffer: any, idx = 0;\n // get next character\n (buffer = str.charAt(idx++));\n // character found in table? initialize bit storage and add its ascii value;\n ~buffer &&\n ((bs = bc % 4 ? bs * 64 + buffer : buffer),\n // and if not first of each 4 characters,\n // convert the first 8 bits to one ascii character\n bc++ % 4)\n ? (output += String.fromCharCode(255 & (bs >> ((-2 * bc) & 6))))\n : 0\n ) {\n // try to find character in table (0-63, not found => -1)\n buffer = chars.indexOf(buffer);\n }\n return output;\n }\n\n private b64DecodeUnicode(str: any) {\n return decodeURIComponent(\n Array.prototype.map\n .call(this.b64decode(str), (c: any) => {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join('')\n );\n }\n\n public decodeToken(token: string): null | T {\n return this._decodeToken(token);\n }\n\n private _decodeToken(token: string): null | T {\n if (!token || token === '') {\n return null;\n }\n\n const parts = token.split('.');\n\n if (parts.length !== 3) {\n throw new Error(\n `The inspected token doesn't appear to be a JWT. Check to make sure it has three parts and see https://jwt.io for more.`\n );\n }\n\n const decoded = this.urlBase64Decode(parts[1]);\n if (!decoded) {\n throw new Error('Cannot decode the token.');\n }\n\n return JSON.parse(decoded);\n }\n\n public getTokenExpirationDate(token: string): Date | null {\n return this._getTokenExpirationDate(token);\n }\n\n private _getTokenExpirationDate(token: string): Date | null {\n let decoded: any;\n decoded = this.decodeToken(token);\n\n if (!decoded || !decoded.hasOwnProperty('exp')) {\n return null;\n }\n\n const date = new Date(0);\n date.setUTCSeconds(decoded.exp);\n\n return date;\n }\n\n public isTokenExpired(token: string | null, offsetSeconds?: number): boolean;\n public isTokenExpired(\n token: null | string,\n offsetSeconds?: number\n ): boolean | Promise {\n return this._isTokenExpired(token, offsetSeconds);\n }\n\n private _isTokenExpired(\n token: string | null,\n offsetSeconds?: number\n ): boolean {\n if (!token || token === '') {\n return true;\n }\n const date = this.getTokenExpirationDate(token);\n offsetSeconds = offsetSeconds || 0;\n\n if (date === null) {\n return false;\n }\n\n return !(date.valueOf() > new Date().valueOf() + offsetSeconds * 1000);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConsumeService } from './consume.service';\nimport { environment } from 'src/environments/environment';\nimport { Observable, firstValueFrom, map, pipe, tap } from 'rxjs';\nimport { JwtHelperService } from './jwt-helper.service';\nimport { ModalService } from './modal-service.service';\nimport { Router } from '@angular/router';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class KeycloakCustomService {\n\n constructor(\n private consume: ConsumeService,\n private jwtHelperService: JwtHelperService,\n private modalService: ModalService,\n private router: Router\n ) { }\n\n isLoggin(showAlert: boolean = true) {\n try {\n const token = this.token;\n if (!token) {\n return false;\n }\n\n const isTokenExpired = this.jwtHelperService.isTokenExpired(this.token, 10);\n if (!isTokenExpired) {\n return true;\n }\n\n const isRefreshTokenExpired = this.jwtHelperService.isTokenExpired(this.refreshToken, 10);\n if (!isRefreshTokenExpired) {\n return true;\n }\n\n if (showAlert) {\n this.modalService.openAlertNotLogged().then((result) => {\n result ? this.router.navigate(['/profile']) : this.router.navigate(['/home']);\n });\n }\n this.logout();\n return false;\n } catch (error) {\n return false;\n }\n }\n\n isLoggedIn() {\n try {\n const token = this.token;\n if (!token) {\n return false;\n }\n\n const isTokenExpired = this.jwtHelperService.isTokenExpired(this.token, 10);\n if (!isTokenExpired) {\n return true;\n }\n\n const isRefreshTokenExpired = this.jwtHelperService.isTokenExpired(this.refreshToken, 10);\n if (!isRefreshTokenExpired) {\n return true;\n }\n return false;\n } catch (error) {\n return false;\n }\n }\n\n doRefreshToken(): Observable {\n return this.consume.httpPost(`${environment.clientesPublicUrlV3}/refresh-token`, {\n refreshToken: this.refreshToken\n }).pipe(\n tap((data) => {\n const { access_token, refresh_token } = data.data;\n this.token = access_token;\n this.refreshToken = refresh_token;\n })\n );\n }\n\n getToken(): Promise {\n return firstValueFrom(\n this.consume.httpPost(`${environment.clientesPublicUrlV3}/refresh-token`, {\n refreshToken: this.refreshToken\n }).pipe(\n tap((data) => {\n const { access_token, refresh_token } = data.data;\n this.token = access_token;\n this.refreshToken = refresh_token;\n }),\n map(({data}) => data.access_token)\n )\n );\n }\n\n loadUserProfile() {\n return this.consume.httpGet(`${environment.keycloak.url}/realms/master/account`, null, {\n Accept: 'application/json',\n Authorization: `Bearer ${this.token}`\n });\n }\n\n loadSalesforceUserProfile() {\n return this.consume.httpGet(`${environment.clientesUrlV3}/user-by-email/${this.salesforceEmail}`, null, {\n Accept: 'application/json',\n Authorization: `Bearer ${this.token}`\n }).pipe(\n map((data: any) => data.data)\n );\n }\n\n getUserRoles(userId: string) {\n return this.consume.httpGet(`${environment.clientesUrlV3}/user-roles/${userId}`, null, {\n Accept: 'application/json',\n Authorization: `Bearer ${this.token}`\n }).pipe(\n map((data: any) => data.data)\n );\n }\n\n isUserSalesforce(userId: string) {\n return this.consume.httpGet(`${environment.clientesUrlV3}/user-roles/${userId}`, null, {\n Accept: 'application/json',\n Authorization: `Bearer ${this.token}`\n }).pipe(\n map((data: any) => {\n const isSalesforce = data.data.some((role: any) => role.name === 'salesforce-viewer');\n return isSalesforce;\n }),\n );\n }\n\n get token() {\n try {\n const token = localStorage.getItem('access_token');\n return token;\n } catch (error) {\n return null;\n }\n }\n\n set token(token: string | null) {\n try {\n if (token) {\n localStorage.setItem('access_token', token);\n } else {\n localStorage.removeItem('access_token');\n }\n } catch (error) {\n }\n }\n\n get refreshToken() {\n try {\n const token = localStorage.getItem('refresh_token');\n return token;\n } catch (error) {\n return null;\n }\n }\n\n set clientEmailSupport(token: string | null) {\n try {\n if (token) {\n localStorage.setItem('client_email', token);\n } else {\n localStorage.removeItem('client_email');\n }\n } catch (error) {\n }\n }\n\n get clientEmailSupport() {\n try {\n const email = localStorage.getItem('client_email');\n return email;\n } catch (error) {\n return null;\n }\n }\n\n set salesforceEmail(token: string | null) {\n try {\n if (token) {\n localStorage.setItem('salesforce_email', token);\n } else {\n localStorage.removeItem('salesforce_email');\n }\n } catch (error) {\n }\n }\n\n get salesforceEmail() {\n try {\n const email = localStorage.getItem('salesforce_email');\n return email;\n } catch (error) {\n return null;\n }\n }\n\n set refreshToken(token: string | null) {\n try {\n if (token) {\n localStorage.setItem('refresh_token', token);\n } else {\n localStorage.removeItem('refresh_token');\n }\n } catch (error) {\n }\n }\n\n logout(redirectUrl?: string) {\n this.token = null;\n this.refreshToken = null;\n this.salesforceEmail = null;\n this.clientEmailSupport = null;\n\n if (redirectUrl) {\n window.location.replace(redirectUrl);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\n\n@Injectable()\nexport class LogService {\n\n disableConsoleInProduction(): void {\n if (environment.production) {\n console.log = function (): void {\n // This is intentional\n };\n console.debug = function (): void {\n // This is intentional\n };\n console.warn = function (): void {\n // This is intentional\n };\n console.info = function (): void {\n // This is intentional\n };\n }\n }\n\n public static log(data?: any) {\n if (!environment.production) {\n console.log(data);\n }\n }\n\n public static warning(data?: any) {\n if (!environment.production) {\n console.warn(data);\n }\n }\n\n public static error(data?: any) {\n if (!environment.production) {\n console.error(data);\n }\n }\n\n public static trace(data?: any) {\n if (!environment.production) {\n console.trace(data);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CanActivate, CanLoad, Router } from '@angular/router';\nimport { KeycloakService } from 'keycloak-angular';\nimport { ModalService } from './modal-service.service';\nimport { KeycloakCustomService } from './keycloak-custom.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoginGuard implements CanActivate, CanLoad {\n\n constructor(private router: Router, private keycloak: KeycloakService, private keycloakCustom: KeycloakCustomService, private modalService: ModalService) { }\n\n async canActivate(): Promise {\n return this.validateLogged();\n }\n async canLoad(): Promise {\n return this.validateLogged();\n }\n\n async validateLogged() {\n\n const isLogged = await this.keycloak.isLoggedIn();\n const isLoggedSalesfoce = await this.keycloakCustom.isLoggin();\n\n if (!isLogged && !isLoggedSalesfoce) {\n const result = await this.modalService.openAlertNotLogged();\n if (result)\n this.router.navigate(['/profile'])\n else\n this.router.navigate(['/home']);\n }\n\n return isLogged || isLoggedSalesfoce;\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ModalAlertComponent } from '../components/modal-alert/modal-alert.component';\n\nimport { ModalSignatoryComponent } from '../components/modal-signatory/modal-signatory.component';\n\nimport { firstValueFrom } from 'rxjs';\nimport { Icons } from '../components/modal-alert/enums';\nimport { WINDOW } from '../utils/window';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModalService {\n constructor(private dialog: MatDialog, @Inject(WINDOW) private window: Window) { }\n\n openAlert(data: Object, disableClose: boolean) {\n\n let width = '100%'\n const screen = this.window.screen.width;\n\n if( screen > 1400 ){\n width = '40%';\n }else if( screen > 992 ){\n width = '50%';\n }\n\n return this.dialog.open(ModalAlertComponent, {\n data,\n disableClose,\n width\n });\n }\n\n openAlertSelectSignatorys(data: Object, disableClose: boolean) {\n return this.dialog.open(ModalSignatoryComponent, {\n data,\n disableClose,\n });\n }\n\n showAlertWithoutIds(\n msg: string,\n icon: Icons,\n isQuestion: boolean = false,\n title: string = ''\n ) {\n const props = {\n title: title,\n content: msg,\n btnAction1: isQuestion ? 'Confirmar' : 'Entendido',\n btnAction2: isQuestion ? 'Cancelar' : '',\n icon: icon,\n idBtnAction1: null,\n idBtnAction2: null,\n };\n\n return firstValueFrom(this.openAlert(props, true).afterClosed());\n }\n\n showAlertWithIds(\n msg: string,\n icon: Icons,\n idBtnAction1: string,\n idBtnAction2: string,\n isQuestion: boolean = false,\n title: string = ''\n ) {\n const props = {\n title: title,\n content: msg,\n btnAction1: isQuestion ? 'Confirmar' : 'Entendido',\n btnAction2: isQuestion ? 'Cancelar' : '',\n icon: icon,\n idBtnAction1: idBtnAction1,\n idBtnAction2: idBtnAction2,\n };\n\n return firstValueFrom(this.openAlert(props, true).afterClosed());\n }\n\n openAlertNotLogged() {\n\n const props = {\n title: 'Lo sentimos..',\n content: 'Tu sesión expiró, vuelve a inciar sesión para continuar',\n btnAction1: 'Iniciar Sesión',\n btnAction2: 'Cancelar',\n icon: Icons.info,\n idBtnAction1: null,\n idBtnAction2: null\n };\n\n return firstValueFrom(this.openAlert(props, true).afterClosed());\n\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Endpoints } from 'src/environments/endpoints';\nimport { ConsumeService } from './consume.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RegisterService {\n\n constructor(private consume: ConsumeService) { }\n\n\n // getOrigins(){\n // return this.consume.httpGet(`${Endpoints.catalogsV2.base}/youmetusat/1`);\n // }\n\n deleteUserById(idUser: string){\n return this.consume.httpDelete(`${Endpoints.clientes.base}/delete-client/${idUser}`);\n }\n\n updateUserAttributes( body: any, idUser: string ){\n return this.consume.httpPut(`${Endpoints.clientes.base}/add-attributes-client/${idUser}`, body);\n }\n\n}\n","import * as CryptoJS from 'crypto-js';\nimport { Injectable } from '@angular/core';\nimport { ConsumeService } from './consume.service';\nimport { environment } from '../../environments/environment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SecurityService {\n constructor(private consume: ConsumeService) {}\n\n encryptData(data: any, encode: boolean) {\n return encode ? encodeURIComponent(CryptoJS.AES.encrypt(JSON.stringify(data), environment.passEncode).toString()) : CryptoJS.AES.encrypt(JSON.stringify(data), environment.passEncode).toString();\n }\n\n decryptData(data: any) {\n const decode = decodeURIComponent(data);\n const bytes = CryptoJS.AES.decrypt(decode, environment.passEncode);\n if (bytes.toString()) {\n return JSON.parse(bytes.toString(CryptoJS.enc.Utf8));\n }\n return data;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Title, Meta, MetaDefinition } from '@angular/platform-browser';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SeoService {\n\n constructor(private title: Title, private meta: Meta) { }\n\n updateTitle(title: string){\n this.title.setTitle(title);\n }\n\n updateMetaTags(metaTags: MetaDefinition[]){\n metaTags.forEach(m=> this.meta.updateTag(m));\n }\n\n updateMetaTag(metaTag: MetaDefinition){\n this.meta.updateTag(metaTag);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subscriber, timer } from 'rxjs';\nimport { KeycloakService } from 'keycloak-angular';\nimport { environment } from 'src/environments/environment';\nimport { KeycloakCustomService } from './keycloak-custom.service';\n\nexport enum SseEventType {\n connectionUp,\n connectionDown,\n reconnecting,\n data,\n}\nexport interface SseEvent {\n type: SseEventType;\n data?: any;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SseService {\n private eventSource?: EventSource;\n private retries = 0;\n\n constructor(private keycloak: KeycloakService, private keycloakCustomService: KeycloakCustomService) {}\n\n getServerSentEvent(url: string): Observable {\n return new Observable((observer) => {\n this.getEventSource(url, observer);\n });\n }\n\n private async eventSourceFactory(url: string) {\n const isSalesforce = this.keycloakCustomService.isLoggedIn();\n const token = isSalesforce ? await this.keycloakCustomService.getToken().catch(() => null) : await this.keycloak.getToken().catch(() => null);\n\n url = token ? `${url}?access_token=${token}` : url;\n\n return new EventSource(url);\n }\n\n private async getEventSource(\n url: string,\n observer: Subscriber\n ): Promise {\n this.eventSource = await this.eventSourceFactory(url);\n\n this.eventSource.addEventListener('open', () => {\n this.retries = 0;\n observer.next({\n type: SseEventType.connectionUp,\n });\n });\n\n this.eventSource.addEventListener('message', (event: any) => {\n observer.next({\n type: SseEventType.data,\n data: event.data,\n });\n });\n\n this.eventSource.addEventListener('error', (error?: any) => {\n if (this.retries < environment.sse.maxRetries) {\n observer.next({\n type: SseEventType.reconnecting,\n });\n\n this.destroy();\n this.retries++;\n timer(environment.sse.retryInterval).subscribe(() => {\n this.getEventSource(url, observer);\n });\n } else {\n this.destroy();\n observer.next({\n type: SseEventType.connectionDown,\n });\n observer.error(error);\n this.retries = 0;\n }\n });\n }\n\n destroy() {\n this.eventSource?.close();\n this.eventSource = undefined;\n }\n}","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { Endpoints } from 'src/environments/endpoints';\nimport { IFaqs } from '../model/http/faqs.model';\nimport { IFooter, IDisclaimersFooter } from '../model/http/footer.model';\nimport { IHomePage } from '../model/http/homepage.model';\nimport { ILandingPage } from '../model/http/landing.model';\nimport { ILandingPlanes } from '../model/http/planes.model';\nimport { IImagesGeneral, IImagesSearcher } from '../model/http/images.model'\nimport { ConsumeService } from './consume.service';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StrappiService {\n private dataHomepage = new Subject();\n\n constructor(\n private consume: ConsumeService,\n private http: HttpClient\n ) { }\n\n getHome(templateSuffix: string): Observable {\n const endpoint = templateSuffix === '' ? Endpoints.strappi.homepage : Endpoints.strappi.homepageB;\n return this.consume.httpGet(endpoint);\n }\n\n setDataHomepage(data: any): void {\n this.dataHomepage.next(data);\n }\n\n getDataHomepage(): Observable {\n return this.dataHomepage.asObservable();\n }\n\n getFaqs(): Observable {\n return this.consume.httpGet(`${Endpoints.strappi.faqs}`)\n }\n\n getFooter(): Observable {\n return this.consume.httpGet(`${Endpoints.strappi.footerB}`)\n }\n\n getLandingPage(): Observable {\n return this.consume.httpGet(`${Endpoints.strappi.staticPage}`)\n }\n\n getBoletin(): Observable {\n return this.consume.httpGet(`${Endpoints.strappi.boletin}`)\n }\n\n getPlanPage(): Observable {\n return this.consume.httpGet(`${Endpoints.strappi.planPage}`)\n }\n\n getImagesSearcher(): Observable {\n return this.consume.httpGet(`${Endpoints.strappi.imagesSearcher}`)\n }\n\n getImagesGeneral() {\n return this.http.get(`${Endpoints.strappi.imagesGeneral}`)\n }\n\n getDisclaimers(): Observable {\n return this.consume.httpGet(`${Endpoints.strappi.disclaimers}`)\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { forkJoin, Subject } from 'rxjs';\nimport { CatalogsService } from './catalogs.service';\nimport { InsurancesDic } from '../components/configuration-panel/interfaces/aseguradoras';\nimport { StepService } from '../pages/buro/services/step.service';\nimport { DataService } from './data.service';\nimport { Router } from '@angular/router';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ModalAlertComponent } from '../components/modal-alert/modal-alert.component';\nimport { Icons } from '../components/modal-alert/enums';\nimport { IProductDetail } from '../components/configuration-panel/interfaces/product';\nimport { DialogVideoComponent } from '../pages/cotiza/cotiza-components/dialog-video/dialog-video.component';\nimport { WINDOW } from '../utils/window';\nimport { InsuranceIdToName, InsuranceTypeIDsEnum } from '../utils/utils';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SummaryService {\n isChanged = false;\n templateSuffix = environment.templateSuffix;\n\n\n summary = {\n carTitle: '---',\n carModel: '---',\n carImage: './assets/img/auto_no_disponible.svg',\n state: '---',\n priceWithIva: '0',\n refund: '0',\n concept: '---',\n period: '---',\n initialPayment: '0',\n monthlyPayment: '0',\n insurance: '---',\n deadlineSelect: {},\n dataQuoter: {},\n stateSelected: {},\n registrationState: '',\n car: {},\n insuranceSelected: {},\n purchaseValue: 0,\n extraPeriods: {}\n };\n\n destroyCar = new Subject();\n\n constructor(\n private dataService: DataService,\n private catalogsService: CatalogsService,\n private router: Router,\n private stepService: StepService,\n private dialog: MatDialog,\n @Inject(WINDOW) private window: Window\n ) {\n this.dataService.getUpdatePreauthorize().subscribe((resp) => (this.isChanged = resp));\n }\n\n getInfoSummary(product: IProductDetail) {\n return new Promise((resolve) => {\n const { concept, period } = this.stepService.data.product;\n let { request, trasladoCost, extraPeriods } = product;\n\n let deadlineSelect: any = {\n concept: concept,\n ...product.period,\n trasladoCost,\n idQuoter:this.stepService.data.quoterId\n };\n\n let alldeadlines:any = [];\n alldeadlines[extraPeriods.concept] = extraPeriods;\n alldeadlines[extraPeriods.concept][`period${product.period?.period}`] = deadlineSelect;\n\n let dataQuoter: any = {\n protectionPlus: request?.protectionPlus,\n substituteCar: request?.substituteCar,\n km: request?.km,\n includeMaintenance: product.period?.deliveryCost?.maintenanceExpenses || request?.includeMaintenance ? true : false,\n ballon: request?.ballon,\n insuranceType: request?.insuranceType ? request.insuranceType as InsuranceTypeIDsEnum : InsuranceTypeIDsEnum.ANUAL_FINANCIADO_SIN_PAGO_ANUAL,\n includeGps: request?.includeGps || false,\n typeSustituteCar: request?.typeSustituteCar,\n includeAnnuities: request?.includeAnnuities || false,\n annuity: request?.annuity || 0,\n annuityPaymentMonth: request?.annuityPaymentMonth || 1,\n };\n\n let stateSelected: any = {\n stateName: request?.stateName,\n };\n\n if (request?.flowType === 'B') {\n dataQuoter = {\n ...dataQuoter, \n includeEnganche: request?.includeEnganche, \n registrationState: request?.registrationState\n };\n\n let registrationState: string = request?.registrationState || '';\n this.summary.registrationState = registrationState;\n\n }\n\n \n\n this.summary.extraPeriods = alldeadlines ?? '';\n this.summary.deadlineSelect = deadlineSelect;\n this.summary.dataQuoter = dataQuoter;\n this.summary.stateSelected = stateSelected;\n this.summary.purchaseValue = deadlineSelect.purchaseValue || 0;\n\n try {\n this.summary.monthlyPayment = product.period!.monthlyPayment! + '';\n this.summary.initialPayment =\n product.period!.initialPayment! + product.trasladoCost! + '';\n this.summary.period = period;\n this.summary.concept = concept;\n this.summary.refund = this.templateSuffix !== '' ? this.summary.initialPayment : product.period!.initialPaymentDetail!.advancedRent! + '';\n /* product.request!.insurance = insuranceId; */\n const insuranceId = product.request?.insurance || product.request?.customInsurnace?.insurance;\n if (insuranceId) {\n const insuranceDesc = InsurancesDic.find((ele) => ele.value === insuranceId)!.key;\n this.summary.insuranceSelected = {\n insurance: {\n key: insuranceDesc,\n },\n };\n this.summary.insurance = insuranceDesc;\n } else {\n this.summary.insurance = '-----';\n this.summary.insuranceSelected = { };\n }\n\n const carObs = this.catalogsService.getQuoteCarById(\n product.request!.carId! + ''\n );\n const states = this.catalogsService.getStates();\n\n forkJoin([carObs, states]).subscribe(\n async ([carResp, stateResp]: [any, any]) => {\n const brand = carResp.data.hits.hits[0]._source.brand;\n const subBrand = carResp.data.hits.hits[0]._source.subBrand;\n const year = carResp.data.hits.hits[0]._source.year;\n const version = carResp.data.hits.hits[0]._source.version;\n const priceWithIva = carResp.data.hits.hits[0]._source.priceWithIva;\n\n const idJaito = carResp.data.hits.hits[0]._source.idJato;\n\n\n this.catalogsService.getImageById(idJaito).subscribe({\n next: (res: any) => this.summary.carImage = this.imgCarCard(res),\n error: (err: any) => this.summary.carImage = this.imgCarCard({ car: {} })\n })\n\n const state = stateResp.data.find(\n (ele: any) => ele.id === product.request!.stateId!\n );\n\n this.summary.carTitle = `${brand} ${subBrand}`;\n this.summary.carModel = `${version} ${year}`;\n this.summary.state = state.stateName;\n this.summary.priceWithIva = this.stepService.data.priceWithIva;\n\n this.summary.car = {\n brand,\n subBrand,\n version,\n year,\n priceWithIva: this.stepService.data.priceWithIva,\n };\n resolve(this.summary);\n }\n );\n } catch (error) {\n this.openAlert(\n null,\n 'Ha ocurrido un error al obtener los datos de tu auto',\n 'Entendido',\n null,\n true,\n Icons.error\n );\n this.router.navigate(['/home']);\n }\n })\n }\n\n openAlert(\n title: string | null,\n content: string,\n btnAction1: string | null,\n btnAction2: string | null,\n disableClose: boolean,\n icon: Icons\n ) {\n return this.dialog.open(ModalAlertComponent, {\n data: { icon, title, content, btnAction1, btnAction2 },\n disableClose,\n });\n }\n\n imgCarCard = (car: any) => {\n let not_found = './assets/img/auto_no_disponible.svg';\n if (car.imagenes) {\n let img_315;\n let img_45;\n let img_base;\n car.imagenes.forEach((item: string) => {\n if (item.includes('_315.')) {\n img_315 = item;\n }\n if (item.includes('_45.')) {\n img_45 = item;\n }\n if (!item.includes('_')) {\n img_base = item;\n }\n });\n return img_315 || img_45 || img_base || not_found;\n }\n\n if (car.poster) {\n return car.poster\n }\n return not_found;\n };\n\n openVideo(video: string, title: string) {\n let porcentaje = 0.6;\n if (this.window.innerHeight > this.window.innerWidth) {\n porcentaje = 0.3;\n }\n this.dialog.open(\n DialogVideoComponent,\n {\n id: 'dialog-video',\n panelClass: 'dialog-video',\n width: this.window.innerWidth.toString() + 'px',\n height: (this.window.innerHeight * porcentaje).toString() + 'px',\n data: {\n url: video,\n title: `Video info ${title}`,\n height: this.window.innerHeight * (porcentaje - 0.0702),\n }\n }\n )\n }\n\n getTitleSpecs(title: string){\n if (title === 'transmision') return 'transmisión';\n if (title === 'suspension') return 'suspensión';\n\n return title;\n }\n}\n\n\n\nexport interface ISummaryData {\n carTitle: string;\n carImage: string;\n state: string;\n priceWithIva: number;\n refund: number;\n concept: string;\n period: number | string;\n initialPayment: number;\n monthlyPayment: number;\n insurance: string;\n deadlineSelect: any;\n dataQuoter: any;\n stateSelected: any;\n car: any;\n insuranceSelected: any;\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ThemeSwitcherService {\n constructor(\n @Inject(DOCUMENT) private document:any\n ) {\n this.loadTheme();\n }\n\n loadTheme(theme: string = environment.theme): void {\n this.insertToDOM(theme);\n }\n\n insertToDOM = (theme: string) => {\n const documentElement = this.document.documentElement;\n const current = Array.from(documentElement.classList).find((x:any) =>\n x.includes('-theme')\n );\n if (current) {\n documentElement.classList.remove(current);\n }\n documentElement.classList.add(theme);\n };\n}\n","import { KeycloakService } from \"keycloak-angular\";\nimport { environment } from \"src/environments/environment\";\n\nexport function initializeKeycloak(keycloak: KeycloakService): () => Promise {\n return () =>\n keycloak.init({\n config: {\n url: environment.keycloak.url, \n realm: environment.keycloak.realm, \n clientId: environment.keycloak.clientId \n },\n initOptions: {\n //onLoad: 'login-required',\n //checkLoginIframe: false,\n redirectUri: environment.keycloak.redirectUri, //'http://129.159.32.54/home',\n onLoad: 'check-sso',\n silentCheckSsoRedirectUri: window.location.origin + (environment.templateSuffix === '' ? '/v1' : '/v2') + '/assets/silent-check-sso.html'\n },\n loadUserProfileAtStartUp: false,\n bearerExcludedUrls: environment.keycloak.bearerExcludedUrls\n });\n}\n","import {\n HttpEvent,\n HttpErrorResponse,\n HttpStatusCode,\n HttpContextToken,\n HttpContext\n} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n HttpInterceptor,\n HttpHandler,\n HttpRequest,\n} from '@angular/common/http';\nimport { BehaviorSubject, Observable, catchError, filter, switchMap, take, throwError } from 'rxjs';\nimport { Router } from '@angular/router';\nimport { KeycloakCustomService } from '../services/keycloak-custom.service';\nimport { environment } from 'src/environments/environment';\nimport { DataService } from '../services/data.service';\nimport { ModalService } from '../services/modal-service.service';\nimport { MatDialog } from '@angular/material/dialog';\n\nconst SEND_TOKEN = new HttpContextToken(() => true);\nexport function notSendToken() {\n return new HttpContext().set(SEND_TOKEN, false);\n}\n\n@Injectable()\nexport class TokenCustomInterceptor implements HttpInterceptor {\n private isRefreshing = false;\n private refreshTokenSubject: BehaviorSubject = new BehaviorSubject(null);\n\n constructor(\n private keycloakCustomService: KeycloakCustomService\n ) { }\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n \n if (!req.context.get(SEND_TOKEN)) {\n return next.handle(req);\n }\n\n const isOmit = environment.keycloak.bearerExcludedUrls.some((url) => req.url.includes(url));\n if (isOmit) {\n return next.handle(req); // Omitir la solicitud y continuar sin agregar el token\n }\n\n let request = req;\n const token = this.keycloakCustomService.token;\n if (token) {\n request = this.addTokenHeader(req, token);\n }\n\n return next.handle(request).pipe(\n catchError((error) => {\n if (\n error instanceof HttpErrorResponse &&\n error.status === HttpStatusCode.Unauthorized &&\n token\n ) {\n return this.handle401Error(request, next);\n }\n return throwError(() => error);\n })\n );\n }\n\n private handle401Error(request: HttpRequest, next: HttpHandler): Observable> {\n if (!this.isRefreshing) {\n this.isRefreshing = true;\n this.refreshTokenSubject.next(null);\n const refreshService = this.keycloakCustomService.doRefreshToken();\n return refreshService.pipe(\n switchMap(({ data }) => {\n const { access_token } = data;\n this.isRefreshing = false;\n this.refreshTokenSubject.next(access_token);\n return next.handle(this.addTokenHeader(request, access_token));\n }),\n catchError((err) => {\n this.isRefreshing = false;\n this.keycloakCustomService.logout();\n return throwError(() => err);\n }),\n );\n }\n\n return this.refreshTokenSubject.pipe(\n filter((access_token) => access_token !== null),\n take(1),\n switchMap((access_token) => next.handle(this.addTokenHeader(request, access_token)))\n );\n }\n\n private addTokenHeader(request: HttpRequest, access_token: string) {\n return request.clone({\n headers: request.headers.set('Authorization', `Bearer ${access_token}`),\n });\n }\n\n}\n","export function checkInitToken(): () => Promise {\n return () => {\n return new Promise((resolve) => {\n const urlSearchParams = new URLSearchParams(window.location.search);\n if (urlSearchParams) {\n const token = urlSearchParams.get('token');\n const refreshToken = urlSearchParams.get('refresh_token');\n const clientEmail = urlSearchParams.get('client_email');\n const salesforceEmail = urlSearchParams.get('salesforce_email')\n if (token && refreshToken && clientEmail && salesforceEmail) {\n localStorage.setItem('access_token', token);\n localStorage.setItem('refresh_token', refreshToken);\n localStorage.setItem('client_email', clientEmail);\n localStorage.setItem('salesforce_email', salesforceEmail);\n }\n }\n resolve(true);\n });\n };\n}\n","import { Injectable } from '@angular/core';\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\nimport { Observable, tap } from 'rxjs';\nimport { ModalService } from 'src/app/services/modal-service.service';\nimport { DataService } from 'src/app/services/data.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Router } from '@angular/router';\nimport { Icons } from '../components/modal-alert/enums';\n\n@Injectable()\nexport class TokenInterceptor implements HttpInterceptor {\n constructor(\n private dataService: DataService,\n private modalService: ModalService,\n private dialog: MatDialog,\n private router: Router\n ) { }\n\n intercept(\n request: HttpRequest,\n next: HttpHandler\n ): Observable> {\n return next.handle(request).pipe(\n tap({\n next: () => null,\n error: async (err: any) => {\n\n const msg = err.error.userError || 'Ha ocurrido un error desconocido';\n const info = err.error.info !== undefined ? err.error.info : '';\n\n switch (err.status) {\n case 400:\n this.validateIncludesPath(request, 'buro/nip') ? this.openAlert(msg, true, 'boton-error-validanip') : this.openAlert(msg, false);\n break;\n case 401:\n this.dataService.setIsLoged(false);\n this.dataService.setIdKeycloak('');\n this.dialog.closeAll();\n const result = await this.modalService.openAlertNotLogged();\n return result ? this.router.navigate(['/profile']) : this.router.navigate(['/home']);\n case 404:\n\n if (!this.validateIncludesPath(request, 'images-car?uid_jato') && msg !== 'El precio del auto tuvo un cambio' && !this.checkErrorBitly(err)) {\n if (this.validateIncludesPath(request, 'validateCode')) {\n this.openAlert(info, true, undefined, msg);\n } else {\n this.openAlert(msg, false);\n }\n }\n\n break;\n case 500:\n if (this.validateIncludesPath(request, 'specs-car?uid_jato') || this.validateIncludesPath(request, 'images-car?uid_jato') || this.validateIncludesPath(request, 'services-plus') || this.validateIncludesPath(request, 'compare-insurance') || this.validateIncludesPath(request, 'refresh')) {\n if (!this.validateIncludesPath(request, 'refresh')) {\n console.error(err);\n }\n break;\n }\n this.openAlert(msg, false);\n break;\n case 502:\n //TODO: Error de gateway - Documentos - validar respuesta\n console.log(err);\n break;\n\n default:\n this.openAlert(msg, false);\n break;\n }\n return '';\n },\n })\n );\n }\n\n\n\n async openAlert(msg: string, withId: boolean, id?: string, title = '') {\n if (withId) {\n await this.modalService.showAlertWithIds(msg, Icons.error, id!, '', false, title);\n } else {\n await this.modalService.showAlertWithoutIds(msg, Icons.error, false, title);\n }\n\n }\n\n\n validateIncludesPath(request: HttpRequest, url: string): boolean {\n return request.url.includes(url) ? true : false;\n\n }\n\n checkErrorBitly(error: any) {\n return (\n error.url.includes('bitly') &&\n error.error?.message === 'MONTHLY_ENCODE_LIMIT_REACHED'\n );\n }\n}\n","export const TRADITION_TOUR = [\n {\n anchorId: \"step.one\",\n content:\"

Primero ingresa tu código postal para consultar el seguro de tu auto

\",\n title: \"1/2\",\n prevBtnTitle: 'Anterior',\n nextBtnTitle: 'Siguiente',\n enableBackdrop: true,\n disablePageScrolling: true,\n close:false,\n },\n {\n anchorId: \"step.two\",\n content:\"

Ingresa el monto de enganche que más te convenga

(sujeto a aprobación de crédito)\",\n title: \"2/2\",\n prevBtnTitle: 'Anterior',\n nextBtnTitle: 'Siguiente',\n endBtnTitle: '¡Entendido!',\n enableBackdrop: true,\n disablePageScrolling: true,\n },\n /* TODO: FASE 2 */\n {\n anchorId: \"step.three\",\n content: \"

Al incluir anualidades podrás seleccionar el monto y el mes del año para reducir el resto de tus mensualidades

\",\n title: \"3/5\",\n prevBtnTitle: 'Anterior',\n nextBtnTitle: 'Siguiente',\n enableBackdrop: true,\n disablePageScrolling: true,\n },\n {\n anchorId: \"step.four\",\n content: \"

Incluye el rastreo base para activar la localización satelital en tu vehículo en caso de robo

\",\n title: \"4/5\",\n prevBtnTitle: 'Anterior',\n nextBtnTitle: 'Siguiente',\n enableBackdrop: true,\n disablePageScrolling: true,\n },\n {\n anchorId: \"step.five\",\n content: \"

Incluye los mantenimientos de tu auto durante el kilometraje seleccionado

\",\n title: \"5/5\",\n prevBtnTitle: 'Anterior',\n nextBtnTitle: 'Siguiente',\n endBtnTitle: '¡Entendido!',\n enableBackdrop: true,\n disablePageScrolling: true,\n },\n /* TODO: FASE 2 */\n];\n\nexport const BALLON_TOUR = [\n {\n anchorId: \"step.one\",\n content:\"

Primero ingresa tu código postal para consultar el seguro de tu auto

\",\n title: \"1/2\",\n prevBtnTitle: 'Anterior',\n nextBtnTitle: 'Siguiente',\n enableBackdrop: true,\n close:false,\n disablePageScrolling: true,\n },\n {\n anchorId: \"step.two\",\n content:\"

Ingresa el monto de enganche que más te convenga

(sujeto a aprobación de crédito)\",\n title: \"2/2\",\n prevBtnTitle: 'Anterior',\n nextBtnTitle: 'Siguiente',\n endBtnTitle: '¡Entendido!',\n enableBackdrop: true,\n disablePageScrolling: true,\n },\n // TODO: COMENTADO PARA LA PRIMERA VERSIÓN\n // {\n // anchorId: \"step.threeB\",\n // content: \"

Un mayor pago final disminuye tu mensualidad

\",\n // title: \"3/5\",\n // prevBtnTitle: 'Anterior',\n // nextBtnTitle: 'Siguiente',\n // enableBackdrop: true,\n // disablePageScrolling: true,\n // },\n // {\n // anchorId: \"step.four\",\n // content: \"

Incluye el rastreo base para activar la localización satelital en tu vehículo en caso de robo

\",\n // title: \"4/5\",\n // prevBtnTitle: 'Anterior',\n // nextBtnTitle: 'Siguiente',\n // enableBackdrop: true,\n // disablePageScrolling: true,\n // },\n // {\n // anchorId: \"step.five\",\n // content: \"

Incluye los mantenimientos de tu auto durante el kilometraje seleccionado

\",\n // title: \"5/5\",\n // prevBtnTitle: 'Anterior',\n // nextBtnTitle: 'Siguiente',\n // endBtnTitle: '¡Entendido!',\n // enableBackdrop: true,\n // disablePageScrolling: true,\n // },\n];","import {\n HttpEvent,\n HttpContextToken,\n HttpContext\n} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n HttpInterceptor,\n HttpHandler,\n HttpRequest,\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { KeycloakCustomService } from '../services/keycloak-custom.service';\nimport { DataService } from '../services/data.service';\n\nconst SEND_MODIFIED_BY_BODY = new HttpContextToken(() => false);\nexport function sendBodyModifiedBy() {\n return new HttpContext().set(SEND_MODIFIED_BY_BODY, true);\n}\n\nconst SEND_MODIFIED_BY_QUERY = new HttpContextToken(() => false);\nexport function sendQueryModifiedBy() {\n return new HttpContext().set(SEND_MODIFIED_BY_QUERY, true);\n}\n\n@Injectable()\nexport class UserModifiedInterceptor implements HttpInterceptor {\n\n constructor(\n private keycloakCustomService: KeycloakCustomService,\n private dataService: DataService\n ) { }\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n if (!req.context.get(SEND_MODIFIED_BY_BODY) && !req.context.get(SEND_MODIFIED_BY_QUERY)) {\n return next.handle(req);\n }\n\n let email = this.dataService.idKeycloak;\n const isSalesfoceLoggin = this.keycloakCustomService.isLoggedIn();\n if (isSalesfoceLoggin && this.keycloakCustomService.salesforceEmail) {\n email = this.keycloakCustomService.salesforceEmail;\n }\n\n let request = req;\n if (req.context.get(SEND_MODIFIED_BY_BODY)) {\n request = request.clone({\n body: { ...request.body, modifiedBy: email }\n });\n } else if (req.context.get(SEND_MODIFIED_BY_QUERY)) {\n request = request.clone({\n setParams: {\n modifiedBy: email\n }\n });\n }\n return next.handle(request);\n }\n}\n","export enum TypeQuote {\n Leasing = 'Leasing',\n credit = 'Credit',\n}\n\nexport enum TypeProduct {\n LeasingRenting = 'leasing-renting',\n Rent2buy = 'rent2buy',\n Traditional = 'traditional',\n Ballon = 'ballon',\n}\n\nexport enum TypeQuoter {\n Quoter = 'cotizador',\n Credit = 'cotizador-credito'\n}\n\n\nexport enum TypeQuoterCredit {\n traditional = 'TRADITIONAL',\n ballon = 'BALLON'\n}\n\nexport enum TypeQuoterCreditConcepts {\n traditional = 'traditional',\n ballon = 'ballon'\n}\n\nexport enum TypeQuoterFullName {\n traditional = 'Crédito Tradicional',\n ballon = 'Crédito Balloon'\n}\n\nexport const CREDIT_CONCEPTS = [\n TypeQuoterCreditConcepts.traditional.toString(),\n TypeQuoterCreditConcepts.ballon.toString()\n];\n\nexport const SUSTITUECAROPTS = [\n { text: 'Subcompacto', value: 4 },\n { text: 'SUV', value: 5 },\n];\n\n\nexport const SUSTITUECAROPTSHASH: {[key: string]: string} = SUSTITUECAROPTS.reduce((acc: {[key: string]: string} , curr) => {\n if (!acc[curr.value]) {\n acc[`${curr.value}`] = curr.text;\n }\n return acc;\n}, {});\n\nexport const MONTHS = [ 'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'];\nexport const KEY_MONTHS = [\n {\n id: 0,\n name: 'Enero'\n },\n {\n id: 1,\n name: 'Febrero'\n },\n {\n id: 2,\n name: 'Marzo'\n },\n {\n id: 3,\n name: 'Abril'\n },\n {\n id: 4,\n name: 'Mayo'\n },\n {\n id: 5,\n name: 'Junio'\n },\n {\n id: 6,\n name: 'Julio'\n },\n {\n id: 7,\n name: 'Agosto'\n },\n {\n id: 8,\n name: 'Septiembre'\n },\n {\n id: 9,\n name: 'Octubre'\n },\n {\n id: 10,\n name: 'Noviembre'\n },\n {\n id: 11,\n name: 'Diciembre'\n }\n];\nexport const BINARY = ['Si', 'No'];\nexport const BINARY_OBJ = [\n {\n label: 'Si',\n value: true\n },\n {\n label: 'No',\n value: false\n }\n];\n\nexport const INSURANCE_PAYMENT_TYPE_OPTS: string[] = [\n 'Anual de Contado',\n 'Anual Financiado'\n];\n\nexport enum InsuranceTypeIDsEnum {\n ANUAL_CONTADO_SIN_PAGO_ANUAL = 1,\n ANUAL_FINANCIADO_SIN_PAGO_ANUAL,\n ANUAL_CONTADO_CON_PAGO_ANUAL,\n ANUAL_FINANCIADO_CON_PAGO_ANUAL\n}\n\nenum InsuranceTypeEnum {\n ANUAL_CONTADO_SIN_PAGO_ANUAL = 'Multianual de contado', // Multianual de contado\n ANUAL_FINANCIADO_SIN_PAGO_ANUAL = 'Multianual Financiado', // Multianual Financiado\n ANUAL_CONTADO_CON_PAGO_ANUAL = 'Multianual de Contado.', // Anual de Contado\n ANUAL_FINANCIADO_CON_PAGO_ANUAL = 'Multianual Financiado.' // Anual Financiado\n}\n\nexport const InsuranceIdToName = Object.freeze({\n [InsuranceTypeIDsEnum.ANUAL_CONTADO_SIN_PAGO_ANUAL]: InsuranceTypeEnum.ANUAL_CONTADO_SIN_PAGO_ANUAL.toString(),\n [InsuranceTypeIDsEnum.ANUAL_FINANCIADO_SIN_PAGO_ANUAL]: InsuranceTypeEnum.ANUAL_FINANCIADO_SIN_PAGO_ANUAL.toString(),\n [InsuranceTypeIDsEnum.ANUAL_CONTADO_CON_PAGO_ANUAL]: InsuranceTypeEnum.ANUAL_CONTADO_CON_PAGO_ANUAL.toString(),\n [InsuranceTypeIDsEnum.ANUAL_FINANCIADO_CON_PAGO_ANUAL]: InsuranceTypeEnum.ANUAL_FINANCIADO_CON_PAGO_ANUAL.toString()\n});\n\nexport const INSURANCE_PAYMENT_TYPE_OPTS_MAP: {id: InsuranceTypeIDsEnum, name: string, active: boolean}[] = [\n {\n id: InsuranceTypeIDsEnum.ANUAL_CONTADO_SIN_PAGO_ANUAL,\n active: true,\n name: InsuranceIdToName[InsuranceTypeIDsEnum.ANUAL_CONTADO_SIN_PAGO_ANUAL]\n },\n {\n id: InsuranceTypeIDsEnum.ANUAL_FINANCIADO_SIN_PAGO_ANUAL,\n active: true,\n name: InsuranceIdToName[InsuranceTypeIDsEnum.ANUAL_FINANCIADO_SIN_PAGO_ANUAL]\n },\n /* TODO: FASE 2 */\n {\n id: InsuranceTypeIDsEnum.ANUAL_CONTADO_CON_PAGO_ANUAL,\n active: false,\n name: InsuranceIdToName[InsuranceTypeIDsEnum.ANUAL_CONTADO_CON_PAGO_ANUAL]\n },\n {\n id: InsuranceTypeIDsEnum.ANUAL_FINANCIADO_CON_PAGO_ANUAL,\n active: false,\n name: InsuranceIdToName[InsuranceTypeIDsEnum.ANUAL_FINANCIADO_CON_PAGO_ANUAL]\n },\n /* TODO: FASE 2 */\n];\n\n\nexport const MAINTENANCE_RANGE = {\n MIN: 20, // 20K\n MAX: 120 // 120K\n}\n\nexport const CATALOG_IDENTY = [\n {\n label: 'INE',\n entidad: 'INE',\n value: 'INE',\n },\n {\n label: 'Pasaporte',\n entidad: 'SRE',\n value: 'Pasaporte',\n },\n {\n label: 'Cédula profesional',\n entidad: 'SEP',\n value: 'Cédula profesional',\n },\n {\n label: 'FM2 (residente permanente)',\n entidad: 'INM',\n value: 'FM2 (residente permanente)',\n },\n {\n label: 'Otro',\n entidad: '',\n value: 'Otro',\n },\n\n];\n\nexport enum PeriodType {\n Months12 = 'period12',\n Months24 = 'period24',\n Months36 = 'period36',\n Months48 = 'period48',\n Months60 = 'period60',\n}\n\nexport enum PeriodTypeName {\n period12 = 'Plazo 12',\n period24 = 'Plazo 24',\n period36 = 'Plazo 36',\n period48 = 'Plazo 48',\n period60 = 'Plazo 60',\n}\n\nexport enum TypePerson {\n PFA = 'PFA',\n PFAE = 'PFAE',\n}\n\nexport enum ErrorBuro {\n NO_HISTORIAL = \"-9\"\n}\n\nexport const DAVINCI_EXTRANJERO_ID = 99;\n","import { InjectionToken } from '@angular/core';\n\nexport const WINDOW = new InjectionToken('Global window object', {\n factory: () => window\n});","import { environment } from './environment';\n\nexport const Endpoints = {\n strappi: {\n base: `${environment.strappiUrl}`,\n homepage: `${environment.strappiUrl}/homepage`,\n homepageB: `${environment.strappiUrl}/homepage-b`,\n faqs: `${environment.strappiUrl}/fa-qs`,\n footer: `${environment.strappiUrl}/footer`,\n footerB: `${environment.strappiUrl}/footer-b`,\n staticPage: `${environment.strappiUrl}/static-pages`,\n boletin: `${environment.strappiUrl}/comunicados`,\n planPage: `${environment.strappiUrl}/planes`,\n imagesSearcher: `${environment.strappiUrl}/imagenes-buscador`,\n imagesGeneral: `${environment.strappiUrl}/imagenes-general`,\n disclaimers: `${environment.strappiUrl}/disclaimers`,\n pdf: `${environment.strappiUrl}/documentos-cotizador`,\n },\n catalogs: {\n base: `${environment.catalogsUrl}`,\n specsById: `${environment.catalogsUrl}/specs-car`,\n imgesById: `${environment.catalogsUrl}/images-car`,\n catalog: `${environment.catalog}`,\n },\n catalogsV2: {\n base: `${environment.catalogsUrlV2}`,\n specsById: `${environment.catalogsUrlV2}/specs-car`,\n imgesById: `${environment.catalogsUrlV2}/images-car`,\n },\n catalogsV3: {\n base: `${environment.catalogsUrlV3}`,\n specsById: `${environment.catalogsUrlV3}/specs-car`,\n imgesById: `${environment.catalogsUrlV3}/images-car`,\n },\n cotizador: {\n base: `${environment.cotizadorUrl}`,\n },\n cotizadorV2: {\n base: `${environment.cotizadorUrlV2}`,\n },\n cotizadorV3: {\n base: `${environment.cotizadorUrlV3}`,\n },\n buro: {\n base: `${environment.buroUrl}`,\n documentManagmentUrl: `${environment.documentManagmentUrl}`,\n documentManagmentUrlPublic: `${environment.documentManagmentUrlPublic}`,\n documentManagmentUrlPublicv3: `${environment.documentManagmentUrlPublicv3}`,\n otp: `${environment.otp}`,\n },\n risk: {\n base: `${environment.riskUrl}`,\n },\n sse: {\n base: `${environment.sse.url}`,\n },\n solicitud: {\n base: `${environment.solicitudUrl}`,\n validity: `${environment.solicitudValidityUrl}`,\n },\n credit: {\n base: `${environment.creditUrl}`,\n autocompare: `${environment.creditUrl}/autocompare`,\n },\n creditV2: {\n base: `${environment.creditUrlV2}`,\n autocompare: `${environment.creditUrlV2}/autocompare`,\n },\n creditV3: {\n base: `${environment.creditUrlV3}`\n },\n clientes: {\n base: `${environment.clientesUrl}`,\n },\n carManager: {\n base: `${environment.carManagerUrl}`,\n },\n carManagerV2: {\n base: `${environment.carManagerUrlV2}`,\n },\n bitly: {\n shortenLink: `${environment.bitly.url}/shorten`,\n },\n payment: {\n base: `${environment.paymentUrl}`\n }\n};\n\nexport const TokenExcludedEndpoints = ['login'];","import { LoggerStrategies } from 'src/app/constants/logger';\n\nconst loggerStrategy = LoggerStrategies.GOOGLE;\n\nconst keycloak = {\n url: 'https://ltdev.tipmexico.com/auth',\n realm: 'master',\n clientId: 'client_tip_dev',\n redirectUri: 'https://ltdev.tipmexico.com/v2',\n bearerExcludedUrls: [\n 'https://cmsltdev.tipmexico.com',\n 'https://api-ssl.bitly.com/v4/shorten',\n ],\n};\n\nconst sse = {\n url: `https://ltdev.tipmexico.com/v1/service/sse`,\n retryInterval: 5000,\n maxRetries: 10,\n};\n\nconst gtm = {\n googleTagManagerId: 'x',\n};\n\nconst incode = {\n host: 'https://demo-onboarding.incodesmile.com/',\n account: 'engencapital887',\n flowDigital: '66bd45c96b6cd4f999f456d5',\n flowCredit: '66bd45f16b6cd4f999f45996',\n region: 'region=ALL',\n production: false\n}\n\nconst miFiel = {\n base: `https://app-sandbox.mifiel.com/sign-widget-v1.0.0.js`,\n};\n\nconst bitly = {\n accesToken: 'e56b0bc3fc75434689f721fda38c994d9393ef95',\n url: 'https://api-ssl.bitly.com/v4',\n};\n\nconst cookies = {\n domain: 'ltdev.tipmexico.com' /* 'localhost' */,\n};\n\n\nconst dataDog = {\n applicationId: '',\n clientToken: '',\n site: '',\n service: '',\n env: '',\n // Specify a version number to identify the deployed version of your application in Datadog\n // version: '1.0.0',\n sessionSampleRate: 0,\n sessionReplaySampleRate: 0,\n trackUserInteractions: true,\n trackResources: true,\n trackLongTasks: true,\n defaultPrivacyLevel: 'mask-user-input',\n}\n\nexport const environment = {\n production: false,\n templateSuffix: '.v2',\n theme: 'default-theme',\n baseUrl: 'https://ltdev.tipmexico.com',\n strappiUrl: 'https://cmsltdev.tipmexico.com',\n catalog: 'https://ltdev.tipmexico.com/v1/service/catalogs',\n catalogsUrl: 'https://ltdev.tipmexico.com/v1/service/public',\n catalogsUrlV2: 'https://ltdev.tipmexico.com/v1/service/public',\n catalogsUrlV3: 'https://ltdev.tipmexico.com/v1/service/public',\n cotizadorUrl: 'https://ltdev.tipmexico.com/v1/service/public/cotizador',\n cotizadorUrlV2: 'https://ltdev.tipmexico.com/v1/service/public/cotizador',\n cotizadorUrlV3: 'https://ltdev.tipmexico.com/v1/service/public/cotizador',\n keycloak,\n passEncode: 'RAZVCXDIwMjI$',\n buroUrl: 'https://ltdev.tipmexico.com/v1/service/buro',\n riskUrl: `https://ltdev.tipmexico.com/v1/service/riesgo`,\n sse,\n documentManagmentUrl: 'https://ltdev.tipmexico.com/v1/service/documentmanagment',\n documentManagmentUrlPublic: 'https://ltdev.tipmexico.com/v1/service/public/documentmanagment',\n documentManagmentUrlPublicv3: 'https://ltdev.tipmexico.com/v1/service/public/documentmanagment',\n documentAdapterUrl: \"https://ltdev.tipmexico.com/v1/service/documentadapter\",\n otp: 'https://ltdev.tipmexico.com/v1/service/otp/otp',\n solicitudUrl: `https://ltdev.tipmexico.com/v1/service/solicitud`,\n solicitudValidityUrl:\n 'https://ltdev.tipmexico.com/v1/service/clientes/expiration-step',\n creditUrl: 'https://ltdev.tipmexico.com/v1/service/credit',\n creditUrlV2: 'https://ltdev.tipmexico.com/v1/service/credit',\n creditUrlV3: 'https://ltdev.tipmexico.com/v1/service/credit',\n clientesUrl: 'https://ltdev.tipmexico.com/v1/service/clientes',\n clientesUrlV3: 'https://ltdev.tipmexico.com/v1/service/credit',\n clientesPublicUrl: 'https://ltdev.tipmexico.com/v1/service/public/clientes',\n clientesPublicUrlV3: 'https://ltdev.tipmexico.com/v1/service/public/clientes',\n carManagerUrl: 'https://ltdev.tipmexico.com/v1/service/management/car',\n carManagerUrlV2: 'https://ltdev.tipmexico.com/v1/service/management/car',\n paymentUrl: 'https://ltdev.tipmexico.com/v1/service/payment',\n loggerStrategy,\n gtm,\n miFiel,\n bitly,\n cookies,\n dataDog,\n incode\n};\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .catch((err) => console.error(err));\n","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn-bd\": 90557,\n\t\"./bn-bd.js\": 90557,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 19878,\n\t\"./en-ca.js\": 19878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-in\": 30940,\n\t\"./en-in.js\": 30940,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./en-sg\": 44301,\n\t\"./en-sg.js\": 44301,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-mx\": 12584,\n\t\"./es-mx.js\": 12584,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fil\": 52521,\n\t\"./fil.js\": 52521,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 92762,\n\t\"./gom-deva.js\": 92762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./oc-lnc\": 50563,\n\t\"./oc-lnc.js\": 50563,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tk\": 77761,\n\t\"./tk.js\": 77761,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-mo\": 98262,\n\t\"./zh-mo.js\": 98262,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","/* (ignored) */"],"names":["interval","firstValueFrom","MatSnackBar","AppConfig","TranslateService","MatIconRegistry","DomSanitizer","ThemeSwitcherService","KeycloakService","NavigationEnd","Router","ModalService","Icons","GoogleTagManagerService","NgcCookieConsentService","SeoService","environment","MatDialog","MissingDataRegisterComponent","LogService","MomentDateAdapter","MAT_MOMENT_DATE_ADAPTER_OPTIONS","DateAdapter","MAT_DATE_FORMATS","MAT_DATE_LOCALE","_moment","default","_rollupMoment","dataConfig","HttpClient","HttpHeaders","DOCUMENT","WINDOW","KeycloakCustomService","ErrorBuro","datadogRum","RegisterService","i0","moment","MY_FORMATS","parse","dateInput","display","monthYearLabel","dateA11yLabel","monthYearA11yLabel","AppComponent","constructor","dataService","cdRef","cotizadorService","document","window","injector","Date","innerWidth","templateSuffix","httpClient","get","gtmService","matIcon","dom","themeSwitcher","translate","router","modalService","ccService","dialog","seoService","logService","keycloackService","keycloackCustomService","snackBar","registerService","disableConsoleInProduction","setupCustomIcons","setDefaultLang","updateMetaTag","property","content","keycloak","redirectUri","name","production","getGeneralNotificationMessage","subscribe","msg","open","duration","generalMessageTimeout","getIsBlockedForContracts","res","isBlocked","getUser","initDataDog","localStorage","setItem","ngOnInit","storageType","getItem","getCookie","destroy","fadeOut","statusChangeSubscription","statusChange$","event","now","time","getTime","expireTime","setTime","cookie","toUTCString","config","version","events","ev","scrollTo","gtmTag","pageName","url","pushTag","idKeycloak","processActive","getProcess","headers","set","obs","location","reload","unsubscribe","urlParams","URLSearchParams","search","gclid","console","log","ngAfterViewInit","detectChanges","changeLanguage","lang","use","changeTheme","theme","loadTheme","addSvgIcon","bypassSecurityTrustResourceUrl","dc","prefix","begin","indexOf","end","length","decodeURI","substring","isLoggedInSalesforce","isLoggin","loadSalesforceUserProfile","user","enabled","emailVerified","logout","showAlertWithoutIds","error","isSalesforce","isUserSalesforce","id","email","clientEmailSupport","setIsLoged","userObject","setIdKeycloak","logged","isLoggedIn","loadUserProfile","then","setPersontype","_a","attributes","_b","persontype","undefined","_c","_d","_e","_f","updateUserAttributesB","checkAttributesUser","alertProcess","includes","client","E7","data","errors","_g","cveError","NO_HISTORIAL","product","concept","car","brand","subBrand","openAlert","title","btnAction1","btnAction2","icon","none","idBtnAction1","idBtnAction2","afterClosed","result","navigate","sessionStorage","cancelProcessModalNoti","showAlert","forceRedirect","validate","existingProcesses","active","finishProcessAndQuoter","carInactive","beforeStepToSearchCar","step","obj","isActive","ofDesactiveCar","finishProccesAndQuoter","resonse","isFlowB","flowType","redirectB","redirectA","checkMissingData","isCompleteData","hasOwnProperty","fillMissingData","body","updateUserAttributes","next","idUser","disableClose","resp","redirectTo","baseUrl","logoout","clear","pathName","pathname","replace","queryParams","onResize","setInteractionUserPanel","setScreenSize","prod","init","applicationId","dataDog","clientToken","site","service","env","sessionSampleRate","sessionReplaySampleRate","trackUserInteractions","trackResources","trackLongTasks","defaultPrivacyLevel","ngOnDestroy","selectors","hostBindings","ctx","provide","useClass","deps","useValue","decls","vars","consts","template","_r0","InsurancesDic","InsurancesEnum","emailTip","emailTipTo","whatsTip","SummaryService","StrappiService","ActivatedRoute","SecurityService","ModalComponent","canNotPreauth","BINARY_OBJ","MAINTENANCE_RANGE","TypeQuoterCredit","KEY_MONTHS","INSURANCE_PAYMENT_TYPE_OPTS_MAP","SUSTITUECAROPTS","BALLON_TOUR","TRADITION_TOUR","ctx_r22","ctx_r26","ctx_r27","ctx_r1","ctx_r35","ctx_r36","ctx_r39","ctx_r29","ctx_r42","$event","ctx_r43","ctx_r46","ctx_r4","ctx_r53","ctx_r47","ctx_r60","ctx_r63","ctx_r66","ctx_r68","ctx_r70","ctx_r7","ctx_r75","ctx_r79","ctx_r10","ConfigurationPanelCreditComponent","activatedRoute","catalogsService","cotizadorCreditoService","tourService","floor","hitchPriceFloor","ceil","hitchPriceCeil","value","label","toLocaleString","ballonFloor","ballonCeil","insurance","userId","getIdKeycloak","summaryService","strappiService","route","keycloakService","securityService","clickEventsubscription","getSharedFunction","preauthorize","monthTruncate","month","months","filter","valueAnnuityPaymentMonth","checkHasMaintenance","hasMaintenance","maintenanceKMIndex","MIN","MAX","costProtectionPlus","servicesPlusData","deadlineSelect","period","protectionPlus","costSubstituteCar","sustituteCar","initialize","productType","ballon","stepsTourBallon","stepsTourTraditional","subscriptionTour","events$","x","encryptData","setTimeout","getUrlParams","subscriptionDeadlineSelect","getDeadlineSelect","resSelect","setShowShareLink","isSelected","scrollToResume","subscriptionInteraction","getInteractionUserPanel","disable","subscriptionScreen","getScreenSize","screenWidth","getPlanPage","personalizaStrappi","panel_config","actionSubscriptionBalloon","getBalloonMax","executeAction","ngOnChanges","changes","currentValue","previousValue","dataQuoter","interactionUser","getState","getCreditRangesKM","getHitchRange","destroyObservableUrlParams","subscriptionUrlParams","params","paramsQuote","decryptData","_idkeycloak","origin","typeSustituteCar","substituteCarSelect","stateId","defaultState","states","find","ele","customerTypeId","hasDefaultUserType","insuranceSelected","setDataDeadline","key","downPayment","hitchChange","annuity","annuityChange","ballonChange","flagProtectionPlus","changeToggle","checked","substituteCar","flagSubstituteCar","includeMaintenance","flagMaintenance","getStates","cpStorage","codePostal","cp","idState","stateSelect","getCreditRangeKm","activeRanges","item","status","KmArray","map","range","defaultKm","defaultValueKm","Number","split","join","setKm","getZipCode","zipcode","resultados","firstResult","stateSelected","idDaVinci","loadZip","getRangeHitchTraditional","carId","productTypeId","traditional","Math","min","max","valueHitch","optionsHitch","Object","checkGPSRequired","getRangeAnnuity","getRangeHitchBallon","valueBallon","code","codePromo","changeValueHitch","getRangeBallon","flagGps","isGPSRequired","getCreditGPSRequired","toPromise","flagGpsRequired","Boolean","annuityFloor","annuityCeil","annuityValue","optionsAnnuity","secureLoad","completedResponses","totalInsuranceResponses","minPercent","changeBallon","optionsBallon","changeInputHitch","hitch","parseInt","target","changeInputAnnuity","changeInputBallon","getServicesPlus","loadingServicesPlus","km","cTiD","typeSuitCar","valueSubstituteCar","cpTip","quoterType","insuranceType","valueInsuranceType","type","openDialog","dialogRef","insuranceBetter","isAfin","panelClass","resetProperties","setDeadlineCreditSelect","qualitas","gnp","insurances","insurnaces","insuranceDic","firstResponse","suma","idTip","stateName","op","info","values","push","firtsCharge","resultOfRequestNotSuccess","sendSharedFunction","insuranceTypeSelect","kmSelect","checkIncomesChanges","selectAnnualPaymentMonth","monthIndex","flagChangeData","state","year","priceWithIva","insuranceRequest","QUALITAS","requestQualitas","requestGNP","GNP","getCreditInsuranceInfo","err","dataChange","idTemp","idCar","forEach","_h","includeGps","includeAnnuities","flagAnual","annuityPaymentMonth","pdvID","setQuoterData","showTourProduct","showAlertTour","dialogLogin","btnAction0","start","compare","alertLogin","idQuoter","monthlyPayment","initialPayment","depositIncome","finalRate","cat","insuranceName","dataEncrypt","deadlineConcept","deadlinePeriod","isCredit","urlHash","quote","sendPreauthorize","applyCode","validateCreditCodePromo","success","codeStatus","_error","userError","changeCode","getElementById","focus","keyupInputCode","keyupInputCodePostal","blur","text","dealinePeriod","login","href","register","request","quoterId","update","maxPaymentCapacity","quoterIdPrevius","_source","processExists","idCarPrevius","getQuoteCarById","resCar","carPrevius","hits","hasHistorial","setUpdatePreauthorize","resUpdate","contentResume","nativeElement","scrollIntoView","block","behavior","zipContent","validateBetter","isComplete","isMoreIns","compareInsurances","newArr","plazo","reduce","cost","findNewBetter","insuranceToCompare","procutType","snapshot","toUpperCase","viewQuery","_r6","Clipboard","BitlyService","PERIODS","KM_20","FLOW_LEASING_RENTING","FLOW_AFIN","FLOW_RR","ctx_r0","ctx_r12","ctx_r18","ctx_r23","ctx_r28","ctx_r33","ConfigurationPanelComponent","rentPriceFloor","rentPriceCeil","purchaseValueFloor","purchaseValueCeil","valueKmMin","valueKmMax","ticksArray","showTicks","isMaxAdvancedRent","initialPaymentDetail","advancedRent","valueRi","isMaxPurchaseValue","isOriginalPurchaseValue","purchaseValue","clipboard","bitlyService","subscriptionAllDeadlineSelect","getAllDeadlines","allDeadlineSelect","tenPercentPrice","getTenPercentPrice","screenSize","availableColorsB","availableColorsA","availableColorsC","reloadCurrentRoute","currentUrl","navigateByUrl","skipLocationChange","getKilometerChange","getMaximumRi","ri","rentChange","purshaseValueChange","colors","selectedColorA","ColorA","selectedColorB","ColorB","selectedColorC","ColorC","registrationState","setDeadlineSelect","selectFlow","getRangeKm","element","prevSelectedKm","getKm","validKm","getRenting","ri24","toFixed","ri48","newOptionsRentPrices","assign","optionsRent","getPurchaseValue","newOptionsPurchaseValue","optionsPurchaseValue","keyupInputRi","valueRA","keyCode","keyupInputPurchaseValue","valuePV","changeInputRi","changeInputPurchaseValue","getServicePlus","plusProtectionCost","substituteCarCost","e","resetInsurance","typeKeyMap","getPeriod","SIX_MONTHS","atlas","amount","getInsuranceFordB","getInsuranceInfo","requestAtlas","ATLAS","registrationStateSelect","updateAvailableColors","usedColors","Set","color","has","_includeEnganche","includeEnganche","validateCodePromo","arr","flat","minimo","current","getSelectedMaintenanceExpenses","prevSelectedKmValue","getPrevKmSelected","alert","kmOriginal","kmClone","shift","validateRangeInputMax","inputElement","round","valueAsNumber","toString","Subject","switchMap","of","tap","takeUntil","TypeProduct","ctx_r16","ctx_r9","ctx_r21","_r3","DeadlineTableCreditComponent","cotizadorCreditService","trigger","allowHTML","animation","planes","Credito","tooltip","plan","video","deadline","pipe","loadingDeadline","selectConcept","selectPeriod","setPeriod","getQuoterData","resDeadlines","showDeadline","getDeadlines$","destroy$","typeConceptDeadLines","deadlines","generateCreditQuoter","selectDeadline","deadlineArray","transformArray","hide","setTenPercentPrice","newArray","entries","object","setBalloonMax","checkSelectCard","valuePeriod","complete","resetOnDestroy","avanzar","isAvanced","table","left","scrollLeft","retroceder","isDisableBtn","isDisableBtn2","ctx_r15","DeadlineTableComponent","afin","rr","Leasing","Renting","subscriptionDeadlines","getDeadlines","generateQuoter","tranformAfin","hasMaintenanceExpenses","colum1","slice","colum2","comparaData","setAllDeadlines","leasing","renting","toLowerCase","hideRenting","quoters","quoter","deliveryCost","pdfMake","pdfFonts","hLineColor","vLineColor","quitVLineColor","personalSecure","protectPlus","secure","substitute","textNotes","tracking","DEFAULT_NAME_QUOTER","InsuranceIdToName","InsuranceTypeIDsEnum","MONTHS","SUSTITUECAROPTSHASH","vfs","PdfCreditComponent","require","format","Intl","NumberFormat","getDownloadPdfCredit","pwi","createPdf","_","donwloadAtumatic","isLoading","getCreditAmortization","tableAmortization","loadPdf","pdfDefinition","pageMargins","header","getHeader","getQuoteHeaders","getAmortizationPayment","style","getBodyDetails","layout","getBodyNotes","styles","fontSize","bold","alignment","tableFirst","margin","tableExample","tableTitle","alingCenter","tableBody","tableHeader","negritas","headerTable","background","tipColor","pdfOpen","openPdf","getCellCss","fillColorCol","fillColor","getCellCssHeader","border","getLayout","getLayoutQuitLines","formatText","formatter","tableCells","image","urlEncode64","logoUrlBase64","width","height","widths","leftTable","LeftQuoteHeader","rightTable","RightQuoteHeader","initPayTable","getBodyPagoInicial","columns","stack","getInsuranceText","ANUAL_CONTADO_CON_PAGO_ANUAL","ANUAL_CONTADO_SIN_PAGO_ANUAL","lifeInsurance","getInsuranceServices","gps","total","parseFloat","getTotalFinance","insuranceCost","calculateInsuranceCost","insuranceAndServices","calculateTotalFinance","dateCell","border1","colorGrey","quoterDate","vehicleCell","border2","getHeaderVehiculo","productTypeCell","periodCell","rateCell","cxaCell","tasaFinalCxA","catCell","lifeInsuranceCell","annual","monthlyPaymentCell","border3","spacialPayment","paymentDate","index","spacialPaymentsCell","ordinaryPayment","vehiclePriceCell","downPaymentCell","insuranceStateCell","insuranceCell","insuranceTypeCell","insuranceAndServicesCell","sustituteCarCell","getCellConditional","gpsCell","protectionPlusCell","amountFinancedCell","condition","formatValue","getBodyMonths","colSpan","border4","cxa","totalRow","tableRow","paymentNumber","capital","interest","interestWithIva","amortization","getPdfBase64","Promise","resolve","getBase64","base64","inputs","show","features","EventEmitter","getIsInvalid","getCssError","ENUM_CALLBACK_TRANFORMS","debounceTime","FORM_ADDRESS_BERAU","transformInputs","setValidatorRequired","AddressListener","AddressCreditrequestComponent","fb","catalogService","stepService","initForm","addressListener","isAvalWithErrorSubscription","form","reset","setValue","initInfo","initListener","fillData","isBetweenActivated","countries","getCountries","paises","address","calle","numExt","numInt","emitEvent","changeCP","countryId","control","valueChanges","newAddress","colonia","coloniaDesc","colonies","idAsentaCpCons","dasenta","countryDesc","pais","addressForm","emit","municipalityNameChanges","municipalityName","fields","transformInputToUpperCase","change","resetFieldsDomicilio","showLoading","municipalities","cityId","dmnpio","stateNumber","requestAddress","warn","coloniaCrtl","stateCrtl","stateDesc","getInfoHasErrors","loading","activateLoading","resetForm","isInvalid","campo","hasErrors","CP","respCp","Error","cestado","dciudad","respMun","getCities","idCity","cities","field","AddressComponent","municipality","_j","_k","_l","_m","outputs","MAT_DIALOG_DATA","IdentityVerificationComponent","dataParam","el","renderer","iframe","querySelector","setAttribute","setStyle","allowUserMedia","MifielComponent","matRef","miFiel","base","c","createElement","o","getElementsByTagName","async","src","parentNode","insertBefore","mifiel","widget","widgetId","idDocument","appendTo","successBtnText","onSuccess","callToAction","close","onError","WebcamUtil","ctx_r11","ModalTakePhotosComponent","getAvailableVideoInputs","mediaDevices","isCameraExist","takeSnapshot","onOffWebCame","showWebcam","handleInitError","handleImage","webcamImage","imageAsDataUrl","triggerObservable","asObservable","nextWebcamObservable","nextWebcam","usePhoto","blob","fetch","referenceId","isNomina","counter","nameFile","typeFile","file","File","onUsePhoto","getPicture","_r2","StepService","UnidadDetailModalComponent","CatalogsService","CarManagerService","SseService","SseEventType","UnidadDetailOptionsComponent","buroService","carTitle","carModel","carImage","refund","additionalCost","comment","desc","managerService","sseService","summary","leaseTechId","validateRespImages","showAlertError","imgCarCard","aditionalCost","splitComent","detailsArr","colorInt","colorExt","transmission","powerTrain","dateFinished","expirationDate","idCard","changeCar","option","modal","details","checkResp","ticketSearch","E22","ticketbusqueda","acceptShippingCost","isMove","loadingCarSelected","sendCarSelected","showAlertSuccess","refreshInfo","isPriceChanged","validateRespSse","connectionUp","setIsBlockedForContracts","connectionDown","changeCost","sum","getColor","getStateUser","validateRespUser","setCard","getParamsQuote","getInfoSummary","coment","KeycloakAuthGuard","GuardService","isAccessAllowed","authenticated","factory","providedIn","LoginGuard","keycloakCustom","canActivate","validateLogged","canLoad","isLogged","isLoggedSalesfoce","openAlertNotLogged","Observable","timer","keycloakCustomService","getServerSentEvent","observer","getEventSource","eventSourceFactory","token","getToken","catch","EventSource","eventSource","addEventListener","retries","sse","maxRetries","reconnecting","retryInterval","forkJoin","ModalAlertComponent","DialogVideoComponent","extraPeriods","not_found","imagenes","img_315","img_45","img_base","poster","getUpdatePreauthorize","isChanged","trasladoCost","alldeadlines","maintenanceExpenses","ANUAL_FINANCIADO_SIN_PAGO_ANUAL","insuranceId","customInsurnace","insuranceDesc","carObs","carResp","stateResp","idJaito","idJato","getImageById","openVideo","porcentaje","innerHeight","getTitleSpecs","TokenInterceptor","intercept","handle","validateIncludesPath","closeAll","checkErrorBitly","withId","showAlertWithIds","message"],"sourceRoot":"webpack:///"}