{"version":3,"sources":["./apps/form-contact/src/app/dynamic-form/dynamic-form.module.ts","crypto (ignored)","./apps/form-contact/src/app/core/components/social-networks/social-networks.component.ts","./apps/form-contact/src/app/core/components/social-networks/social-networks.component.html","./apps/form-contact/src/main.ts","./apps/form-contact/src/app/dynamic-form/dynamic-form-routing.module.ts","./apps/form-contact/src/app/core/components/contacts/contacts.component.ts","./apps/form-contact/src/app/core/components/contacts/contacts.component.html","./apps/form-contact/src/app/core/components/layout/layout.component.ts","./apps/form-contact/src/app/core/components/layout/layout.component.html","./apps/form-contact/src/app/tealium/utag.service.ts","./apps/form-contact/src/app/dynamic-form/components/selects/selects.component.ts","./apps/form-contact/src/app/dynamic-form/components/selects/selects.component.html","./apps/form-contact/src/app/core/core.facade.ts","./apps/form-contact/src/app/dynamic-form/components/json-form-fo/json-form-fo.component.ts","./apps/form-contact/src/app/dynamic-form/components/json-form-fo/json-form-fo.component.html","./apps/form-contact/src/app/core/state/core.state.ts","./apps/form-contact/src/app/dynamic-form/functions.ts","./apps/form-contact/src/app/core/core.module.ts","./apps/form-contact/src/app/core/core-routing.module.ts","./apps/form-contact/$_lazy_route_resource lazy namespace object","./apps/form-contact/src/app/dynamic-form/components/files-captcha/files-captcha.component.ts","./apps/form-contact/src/app/dynamic-form/components/files-captcha/files-captcha.component.html","./apps/form-contact/src/app/core/components/dialog-popup/dialog-popup.component.ts","./apps/form-contact/src/app/core/components/dialog-popup/dialog-popup.component.html","./apps/form-contact/src/app/core/components/footer/footer.component.ts","./apps/form-contact/src/app/core/components/footer/footer.component.html","./apps/form-contact/src/app/shared/services/file-server/file-server.service.ts","./apps/form-contact/src/app/core/components/carousel/carousel.component.ts","./apps/form-contact/src/app/core/components/carousel/carousel.component.html","./apps/form-contact/src/app/app-routing.module.ts","./apps/form-contact/src/app/core/components/header/header.component.ts","./apps/form-contact/src/app/core/components/header/header.component.html","./apps/form-contact/src/app/app.module.ts","./apps/form-contact/src/app/core/components/form/form.component.ts","./apps/form-contact/src/app/core/components/form/form.component.html","./apps/form-contact/src/app/services/data-transfer.service.ts","./apps/form-contact/src/app/core/models/type-attach.ts","./apps/form-contact/src/app/dynamic-form/components/json-form/json-form.component.ts","./apps/form-contact/src/app/dynamic-form/components/json-form/json-form.component.html","./apps/form-contact/src/app/shared/services/encyrpt/encrypt.service.ts","./apps/form-contact/src/app/dynamic-form/disable-control.directive.ts","./apps/form-contact/src/app/app.component.ts","./apps/form-contact/src/app/app.component.html","./apps/form-contact/src/environments/environment.ts","./apps/form-contact/src/app/core/components/customer-privacy/customer-privacy.component.ts","./apps/form-contact/src/app/core/components/customer-privacy/customer-privacy.component.html","./apps/form-contact/src/app/services/auth-interceptor.service.ts","./apps/form-contact/src/app/services/authentication.service.ts"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport {\n RecaptchaFormsModule,\n RecaptchaModule,\n RecaptchaSettings,\n RECAPTCHA_LANGUAGE,\n RECAPTCHA_SETTINGS,\n} from 'ng-recaptcha';\nimport { NgxSpinnerModule } from 'ngx-spinner';\n\nimport { environment } from '../../environments/environment';\n\nimport { FilesCaptchaComponent } from './components/files-captcha/files-captcha.component';\nimport { JsonFormFoComponent } from './components/json-form-fo/json-form-fo.component';\nimport { JsonFormComponent } from './components/json-form/json-form.component';\nimport { SelectsComponent } from './components/selects/selects.component';\nimport { DisableControlDirective } from './disable-control.directive';\nimport { DynamicFormRoutingModule } from './dynamic-form-routing.module';\n\n/**\n * Decorador NgModule del dynamic-form-module\n */\n@NgModule({\n declarations: [\n DisableControlDirective,\n JsonFormComponent,\n SelectsComponent,\n JsonFormFoComponent,\n FilesCaptchaComponent,\n ],\n exports: [JsonFormComponent, JsonFormFoComponent, SelectsComponent, FilesCaptchaComponent],\n imports: [\n CommonModule,\n DynamicFormRoutingModule,\n FlexLayoutModule,\n FormsModule,\n\n MatCardModule,\n MatIconModule,\n MatFormFieldModule,\n MatInputModule,\n MatListModule,\n MatSelectModule,\n MatSidenavModule,\n MatToolbarModule,\n NgxSpinnerModule,\n RecaptchaFormsModule,\n RecaptchaModule,\n\n ReactiveFormsModule,\n ],\n providers: [\n {\n provide: RECAPTCHA_SETTINGS,\n useValue: { siteKey: environment.googleCaptcha } as RecaptchaSettings,\n },\n {\n provide: RECAPTCHA_LANGUAGE,\n useValue: 'es',\n },\n ],\n})\nexport class DynamicFormModule {}\n","/* (ignored) */","import { Component, OnInit } from '@angular/core';\nimport { RequestUrlDto } from '@bdo/request-url';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { Observable } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { CoreFacade } from '../../core.facade';\nimport { CoreState } from '../../state/core.state';\n\n/**\n * Componente Angular\n */\n@Component({\n selector: 'app-social-networks',\n templateUrl: './social-networks.component.html',\n styleUrls: ['./social-networks.component.scss'],\n})\n/**\n * Clase SocialNetworksComponent\n */\nexport class SocialNetworksComponent implements OnInit {\n /**\n * CoreFacade\n */\n private readonly facade: CoreFacade;\n /**\n * CoreState\n */\n private readonly state: CoreState;\n /**\n * Observable requestUrl\n */\n public requestUrl$: Observable = new Observable();\n /**\n * Spinner Service\n */\n public readonly spinner: NgxSpinnerService;\n /**\n * link de facebook\n */\n public facebook = '';\n /**\n * link de Twitter\n */\n public twitter = '';\n /**\n * link de Linkedin\n */\n public linkedin = '';\n /**\n * link de youtube\n */\n public youtube = '';\n /**\n * Constructor del componente\n * @param facade Permite acceder a las propiedades del facade\n * @param state Permite acceder a las propiedades del state\n * @param spinner Permite utilizar el spinner\n */\n public constructor(facade: CoreFacade, state: CoreState, spinner: NgxSpinnerService) {\n this.facade = facade;\n this.state = state;\n this.spinner = spinner;\n this.requestUrl$ = this.state.requestUrl$;\n }\n\n /**\n * Servicio que se ejecuta al iniciar el componente\n */\n public ngOnInit(): void {\n this.spinner.show();\n this.facade.getRequestUrl(() => {\n this.requestUrl$.pipe(takeUntil(this.facade.destroy$)).subscribe((response) => {\n response.forEach((element) => {\n switch (element.name) {\n case 'Facebook':\n this.facebook = element.url || '';\n break;\n case 'Twitter':\n this.twitter = element.url || '';\n break;\n case 'Linkedin':\n this.linkedin = element.url || '';\n break;\n case 'Youtube':\n this.youtube = element.url || '';\n break;\n default:\n console.warn(`URL for ${element.name} is not handled.`);\n }\n this.spinner.hide();\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

Cargando...

\n
\n\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\n/**\n * Habilita el modo de producción si la aplicación está en modo producción\n */\nif (environment.production) {\n enableProdMode();\n}\n\n/**\n * Inicia la aplicación Angular bootstraping el módulo principal\n */\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .catch((err) => console.error(err));\n/**\n * namespace global\n */\ndeclare global {\n/**\n * Extends the Window interface to include the utag property.\n */\ninterface Window {\n /**\n * The utag property can hold any type of value.\n * It is typically used to store tracking information for analytics.\n */\n utag: any;\n}\n}\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule, Routes } from '@angular/router';\n\n/**\n * Constante routes\n */\nconst routes: Routes = [];\n/**\n * Imports/Exports modules\n */\n@NgModule({\n imports: [ReactiveFormsModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class DynamicFormRoutingModule {}\n","import { Component, OnInit } from '@angular/core';\n\n/**\n * Componente Angular\n */\n@Component({\n selector: 'app-contacts',\n templateUrl: './contacts.component.html',\n styleUrls: ['./contacts.component.scss'],\n})\n/**\n * Clase componnte Contacts\n */\nexport class ContactsComponent implements OnInit {\n\n public ngOnInit(): void {}\n}\n","\n
\n \n \n
\n \"\"\n

Horario de atención

\n

Lunes - Viernes
8:00 AM - 5:00 PM

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

Banco de occidente

\n

Bogotá: (601) 390 2058
En todo el país 01 800 05 14652

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

Fiduciaria

\n

Bogotá: (601) 742 7445
Resto del país 01 8000 189 818

\n
\n\n
\n","import { Component, OnInit } from '@angular/core';\n\n/**\n * Componente Angular\n */\n@Component({\n selector: 'app-layout',\n templateUrl: './layout.component.html',\n styleUrls: ['./layout.component.scss'],\n})\n/**\n * Clase LayoutComponent\n */\nexport class LayoutComponent implements OnInit {\n\n public ngOnInit(): void {\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 { Injectable } from '@angular/core';\n\n/**\n * Servicio Utag que maneja la configuración y el seguimiento de eventos en Tealium.\n */\n@Injectable()\nexport class TealiumUtagService {\n /**\n * URL del script que se carga desde Tealium.\n * Este script es necesario para la integración con el sistema de gestión de etiquetas.\n */\n public scriptSrc = '';\n\n // Constructor que inicializa las configuraciones de Tealium.\n public constructor() {\n (window as any).utag_cfg_ovrd = { noview: true }; // Configura el modo \"noview\" para aplicaciones de una sola página (SPA).\n (window as any).utag_data = {}; // Inicializa el objeto utag_data.\n }\n\n // Método genérico para cargar scripts con un callback.\n public getScript(src: string, callback: () => void) {\n const d = document;\n const fn = () => {};\n const o = { callback: callback || fn };\n let s: any;\n let t: any;\n\n if (typeof src === 'undefined') {\n return; // Si no se proporciona una fuente, salir del método.\n }\n\n s = d.createElement('script');\n s.language = 'javascript';\n s.type = 'text/javascript';\n s.async = 1;\n s.charset = 'utf-8';\n s.src = src;\n\n if (typeof o.callback === 'function') {\n if (!d.addEventListener) {\n // Soporte para versiones antiguas de IE\n s.onreadystatechange = function() {\n if (this.readyState === 'complete' || this.readyState === 'loaded') {\n this.onreadystatechange = null;\n o.callback();\n }\n };\n } else {\n s.addEventListener(\n 'load',\n () => {\n o.callback();\n },\n false,\n );\n }\n }\n\n t = d.getElementsByTagName('script')[0];\n t.parentNode.insertBefore(s, t); // Inserta el nuevo script en el DOM.\n }\n\n /**\n * Método para establecer las configuraciones del utag.\n * @param config Objeto que contiene la cuenta, perfil y entorno para configurar el utag.\n */\n public setConfig(config: { account: string; profile: string; environment: string }) {\n if (config.account !== undefined && config.profile !== undefined && config.environment !== undefined) {\n this.scriptSrc =\n 'https://tags.tiqcdn.com/utag/' + config.account + '/' + config.profile + '/' + config.environment + '/utag.js';\n }\n }\n\n /**\n * Método para rastrear eventos en Tealium.\n * @param tealiumEvent Nombre del evento a rastrear.\n * @param data Datos opcionales asociados con el evento.\n */\n public track(tealiumEvent: string, data?: any) {\n if (this.scriptSrc === '') {\n return; // Si scriptSrc no está configurado, salir del método.\n }\n\n if ((window as any).utag === undefined) {\n this.getScript(this.scriptSrc, () => {\n (window as any).utag.track(tealiumEvent, data);\n });\n } else {\n (window as any).utag.track(tealiumEvent, data);\n }\n }\n\n /**\n * Método para registrar una vista en Tealium.\n * @param data Datos opcionales asociados con la vista.\n */\n public view(data?: any) {\n this.track('view', data);\n }\n\n /**\n * Método para registrar un enlace en Tealium.\n * @param data Información opcional asociada con el enlace.\n */\n public link(data?: any) {\n this.track('link', data);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormGroup, FormGroupDirective } from '@angular/forms';\n\nimport { TypeAttach } from '../../../core/models/type-attach';\nimport { DataTransferService } from '../../../services/data-transfer.service';\nimport { getValidators } from '../../functions';\nimport { JsonFormControls } from '../../models/json-form-data';\n\n/**\n * SelectsComponent permite crear/visualizar y agregar componentes de un formulario\n */\n@Component({\n selector: 'app-selects',\n styleUrls: ['./selects.component.scss'],\n templateUrl: './selects.component.html',\n})\nexport class SelectsComponent implements OnInit {\n /**\n * Creador de Formulario\n */\n @Input()\n public formBuilder!: FormBuilder;\n\n /**\n * Contiene los controles del formulario\n */\n public form!: FormGroup;\n\n /**\n * rootFormGroup directiva para asociar al Fromulario externo.\n */\n private readonly rootFormGroup: FormGroupDirective;\n\n /**\n * Servicio encargado de transferir datos entre componentes\n */\n public dataTransferService: DataTransferService;\n\n /**\n * Padre del Componente\n */\n @Input() public parentControl!: JsonFormControls;\n\n /**\n * Hermanos del Componente (para remover de la vista cuando cambie el control)\n */\n @Input() public siblingsControls!: JsonFormControls[] | undefined;\n\n /**\n * Control asociado al componente\n */\n @Input() public control!: JsonFormControls;\n\n /**\n * Encargado de guardar los childrenRequired\n */\n public filteredChildren: JsonFormControls[] = [];\n\n /**\n * Método para hacer visible externamente desde la plantilla\n */\n @Input()\n /**\n * @description Método para hacer visible externamente desde la plantilla\n *\n * @param value Valor booleano a establecer\n */\n public set visible(value: boolean) {\n this.control.visible = value;\n }\n\n /**\n * Emisor de Eventos indicando se ha (o se debe crear o agregar a un formulario) Control\n */\n @Output() public controlAdded = new EventEmitter();\n\n /**\n * @description Crea una nueva instancia de SelectsComponent\n *\n * @param rootFormGroup directiva para asociar al Fromulario externo.\n */\n public constructor(rootFormGroup: FormGroupDirective, dataTransferService: DataTransferService) {\n this.rootFormGroup = rootFormGroup;\n this.dataTransferService = dataTransferService;\n }\n\n /**\n * Método llamado luego de que han inicializados todas las propiedades\n */\n public ngOnInit(): void {\n this.form = this.rootFormGroup.form;\n this.removeSiblingsControls(this.siblingsControls);\n // Filtra los hijos requeridos\n if (this.control?.children) {\n this.filteredChildren = this.control.children.filter((child) => child.validators?.required === true);\n }\n }\n\n /**\n * Método que se llamará cuando se presente un evento de cambio en el Select\n * @param event evento\n */\n public onSelectChange(event: string) {\n this.dataTransferService.showRequest = false;\n this.dataTransferService.behaviorSubjectTypeAttach.next(TypeAttach.Disabled);\n this.removeSiblingsControls(this.siblingsControls);\n if (this.control.children) {\n this.recursiveConcealer(this.control.children);\n const childFound = this.control.children.find((child) => child.value === event);\n if (childFound) {\n if (childFound.children) {\n this.addControl(childFound);\n } else {\n childFound.visible = true;\n }\n if (childFound.metadata) {\n this.dataTransferService.showRequest = true;\n this.dataTransferService.behaviorSubjectTypeAttach.next(childFound.metadata.idAttachmentMode);\n this.dataTransferService.subjectMetadata.next(childFound.metadata);\n }\n }\n }\n }\n\n /**\n * Método que para remover los otros controles hermanos del formulario\n * @param siblingsControls todos los controles hermanos\n */\n private removeSiblingsControls(siblingsControls: JsonFormControls[] | undefined) {\n if (siblingsControls) {\n for (const sibling of siblingsControls) {\n if (sibling.name !== this.control.name) {\n this.recursiveConcealer([sibling]);\n }\n }\n }\n }\n\n /**\n * Método que se llamará recursivamente para ocultar/remover componentes hijos\n * @param children hijos\n */\n private recursiveConcealer(children?: JsonFormControls[]) {\n if (children) {\n for (const child of children) {\n child.visible = false;\n this.removeControl(child);\n this.recursiveConcealer(child.children);\n }\n }\n }\n\n /**\n * Método que se llamará para remover un control del Form\n * @param control control a remover\n */\n private removeControl(control: JsonFormControls) {\n if (this.form.contains(control.name)) {\n this.form.removeControl(control.name);\n }\n }\n\n /**\n * Método que se llamará para agregar un control al Form y FormBuilder\n * @param control control a agregar\n */\n private addControl(control: JsonFormControls) {\n control.visible = true;\n this.form.addControl(control.name, this.formBuilder.control(control.name, getValidators(control)));\n }\n}\n","
\n \n\n \n
\n
\n

\n
    \n
  • \n
\n
\n
\n
\n\n \n\n \n
\n

\n Te informamos que si dentro del siguiente listado no encuentras tu inquietud, te invitamos a contactarnos a\n través de las líneas de servicio al cliente en Bogotá: (601) 742 74 45, en el resto del País: 01 8000 189 818.\n

\n
\n \n\n \n
\n \n \n
\n
\n\n
\n \n \n
\n {{ control.label }}\n *\n \n \n {{ child.value }}\n \n \n
\n
\n
\n\n \n
\n \n
\n
\n\n \n
\n \n \n
\n
\n
\n\n","import { Injectable, Injector, OnDestroy } from '@angular/core';\nimport { CarrouselApiService } from '@bdo/carrousel';\nimport { CaptchaApiService, CaptchaDto, InteractionApiService, InteractionDto } from '@bdo/interaction';\nimport { RequestUrlApiService } from '@bdo/request-url';\nimport { SegmentationApiService, SendEmailApiService, SendEmailDto } from '@bdo/send-email';\nimport {\n CityApiService,\n CityDto,\n CompanyApiService,\n DepartmentApiService,\n DepartmentDto,\n TypeClientApiService,\n TypeClientDto,\n TypologyApiService,\n} from '@bdo/typology';\nimport { Observable, Subject } from 'rxjs';\nimport { finalize, map, takeUntil } from 'rxjs/operators';\n\nimport { FileEmail } from '../dynamic-form/models/file-email';\nimport { AuthenticationService } from '../services/authentication.service';\nimport { FileService } from '../shared/services/file-server/file-server.service';\n\nimport { CoreState } from './state/core.state';\n\n/**\n * CoreFacade\n */\n@Injectable()\nexport class CoreFacade implements OnDestroy {\n /**\n * Crea una nueva instancia de CoreFacade\n * @param injector Concrete injectors implement this interface.\n * @param companyApiService Consumo del servicio Company\n * @param typeClientApiService Consumo del servicio TypeClient\n * @param typologyApiService Consumo del servicio Typology\n * @param captchaApiService Consumo del servicio Captcha\n * @param sendEmailApiService Consumo del servicio SendEmail\n * @param authenticationService Consumo del servicio Authentication\n * @param requestUrlApiService Consumo del servicio RequestUrl\n * @param carrouselApiService Consumo del servicio Carrousel\n * @param segmentationApiService Consumo del servicio Segmentation\n * @param interactionApiService Consumo del servicio Interaction\n * @param cityApiService Consumo del servicio City\n * @param departmentApiService Consumo del servicio Department\n */\n public constructor(\n injector: Injector,\n cityApiService: CityApiService,\n companyApiService: CompanyApiService,\n typeClientApiService: TypeClientApiService,\n typologyApiService: TypologyApiService,\n captchaApiService: CaptchaApiService,\n sendEmailApiService: SendEmailApiService,\n authenticationService: AuthenticationService,\n requestUrlApiService: RequestUrlApiService,\n carrouselApiService: CarrouselApiService,\n segmentationApiService: SegmentationApiService,\n interactionApiService: InteractionApiService,\n departmentApiService: DepartmentApiService,\n fileService: FileService,\n ) {\n this.companyApiService = companyApiService;\n this.typeClientApiService = typeClientApiService;\n this.typologyApiService = typologyApiService;\n this.captchaApiService = captchaApiService;\n this.sendEmailApiService = sendEmailApiService;\n this.authenticationService = authenticationService;\n this.requestUrlApiService = requestUrlApiService;\n this.carrouselApiService = carrouselApiService;\n this.segmentacionApiService = segmentationApiService;\n this.interactionApiService = interactionApiService;\n this.cityApiService = cityApiService;\n this.departmentApiService = departmentApiService;\n this.fileService = fileService;\n this.state = injector.get(CoreState);\n }\n /**\n * Observable para dar de baja las sucripciones\n */\n public destroy$ = new Subject();\n /**\n * Administra el estado del modulo Core\n */\n private readonly state: CoreState;\n /**\n * Api que interactua con el servicio Company\n */\n private readonly companyApiService: CompanyApiService;\n /**\n * Api que interactua con el servicio TypeClient\n */\n private readonly typeClientApiService: TypeClientApiService;\n /**\n * Api que interactua con el servicio Typology\n */\n private readonly typologyApiService: TypologyApiService;\n /**\n * Api que interactua con el servicio Captcha\n */\n private readonly captchaApiService: CaptchaApiService;\n /**\n * Api que interactua con el servicio Segmentacion\n */\n private readonly segmentacionApiService: SegmentationApiService;\n /**\n * Api que interactua con el servicio SendEmail\n */\n private readonly sendEmailApiService: SendEmailApiService;\n /**\n * Servicio encargado de administrar la autenticación\n */\n private readonly authenticationService: AuthenticationService;\n /**\n * Servicio encargado de administrar la autenticación\n */\n private readonly interactionApiService: InteractionApiService;\n /**\n * Servicio encargado de interactuar con el microservicio de index georeferencia\n */\n private readonly requestUrlApiService: RequestUrlApiService;\n /**\n * Servicio encargado de interactuar con el microservicio de index georeferencia\n */\n private readonly carrouselApiService: CarrouselApiService;\n /**\n * Servicio encargado de interactuar con el microservicio de index georeferencia\n */\n private readonly cityApiService: CityApiService;\n /**\n * Servicio encargado de interactuar con el microservicio de index georeferencia\n */\n private readonly departmentApiService: DepartmentApiService;\n /**\n * Servicio encargado de interactuar con el FileServer\n */\n private readonly fileService: FileService;\n /**\n * Observable con Request Url\n */\n public readonly requestUrl$ = () => this.state.requestUrl$;\n /**\n * Observable con Carrousel\n */\n public readonly carrousel$ = () => this.state.carrousel$;\n /**\n * Observable con Company\n */\n public readonly companies$ = () => this.state.companies$;\n /**\n * Observable con TypeClient\n */\n public readonly typeClients$ = () => this.state.typeClients$;\n /**\n * Observable con Typology\n */\n public readonly typologies$ = () => this.state.typologies$;\n /**\n * Observable con ReCaptcha\n */\n public readonly reCaptcha$ = () => this.state.reCaptcha$;\n /**\n * Observable con ReCaptcha Gerente Elite\n */\n public readonly reCaptchaGe$ = () => this.state.reCaptchaGe$;\n /**\n * Observable del token auth\n */\n public readonly token$ = () => this.state.token$;\n /**\n * Observable del Radicado\n */\n public readonly radicado$ = () => this.state.radicado$;\n /**\n * Al destruirse la instancia de la fachada\n */\n public ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.complete();\n this.state.setCompanies([]);\n this.state.setTypeClients([]);\n this.state.setReCaptchGe({});\n this.state.setReCaptcha({});\n }\n\n /**\n * Metodo encargado de consultar las Compañías\n */\n public getCompanies(fn: () => void) {\n this.companyApiService\n .all()\n .pipe(\n map((data) => data.filter((x) => x.state === true)),\n takeUntil(this.destroy$),\n )\n .subscribe((response) => {\n this.state.setCompanies(response);\n fn();\n });\n }\n\n /**\n * Metodo encargado de consultar los Tipos de Clientes\n */\n public getTypeClients(fn: () => void) {\n this.typeClientApiService\n .all()\n .pipe(\n map((data) => data.filter((x) => x.state === true)),\n takeUntil(this.destroy$),\n )\n .subscribe((response) => {\n this.state.setTypeClients(response);\n fn();\n });\n }\n\n public setTypeClients(type: TypeClientDto[]) {\n this.state.setTypeClients(type);\n }\n\n /**\n * Metodo encargado de consultar las Tipologías\n */\n public getTypologies(idCompany?: number, idTypeClient?: number) {\n this.state.setTypologies([]);\n this.typologyApiService\n .all()\n .pipe(takeUntil(this.destroy$))\n .subscribe((response) => {\n if (idCompany && idTypeClient) {\n const output = response.filter((e) => e.idCompany === idCompany && e.idTypeClient === idTypeClient);\n this.state.setTypologies(output);\n }\n });\n }\n\n /**\n * Metodo encargado de consultar las Tipología y retornar la información\n */\n public getTypologiesGe(idCompany?: number, idTypeClient?: number) {\n this.state.setTypologies([]);\n\n return this.typologyApiService.all().pipe(\n takeUntil(this.destroy$),\n map((response) => {\n if (idCompany && idTypeClient) {\n return response.filter((e) => e.idCompany === idCompany && e.idTypeClient === idTypeClient);\n }\n\n return response;\n }),\n );\n }\n\n /**\n * Metodo encargado de consultar si es cliente o no\n */\n public validateClient(idCompany: number, document: string, fn: (data: string) => void) {\n this.state.setTypologies([]);\n this.segmentacionApiService\n .GetDocumentState(document, idCompany)\n .pipe(takeUntil(this.destroy$))\n .subscribe((response: string) => {\n fn(response);\n });\n }\n\n /**\n * Metodo encargado de Enviar Captcha\n */\n public postRecaptcha(data: CaptchaDto) {\n this.captchaApiService\n .postCaptcha(data)\n .pipe(takeUntil(this.destroy$))\n .subscribe((response) => {\n this.state.setReCaptcha(response);\n this.state.setToken(response.authenticationToken || '');\n this.authenticationService.setAuthenticated(response.isValidAuthentication || false);\n this.authenticationService.setToken = response.authenticationToken || '';\n });\n }\n\n /**\n * Metodo encargado de Enviar Captcha\n */\n public postRecaptchaGe(data: CaptchaDto) {\n this.captchaApiService\n .postCaptcha(data)\n .pipe(takeUntil(this.destroy$))\n .subscribe((response) => {\n this.state.setReCaptchGe(response);\n this.state.setToken(response.authenticationToken || '');\n this.authenticationService.setAuthenticated(response.isValidAuthentication || false);\n this.authenticationService.setToken = response.authenticationToken || '';\n });\n }\n\n /**\n * Metodo encargado de Enviar Datos de Correo\n */\n public postSendEmail(data: SendEmailDto, fn: () => void) {\n this.sendEmailApiService\n .PostSendEmail(data)\n .pipe(takeUntil(this.destroy$))\n .subscribe((response) => {\n if (response.radicado) {\n const radicado = `${data.radicado}`;\n this.state.setRadicado(radicado);\n fn();\n }\n });\n }\n\n /**\n * Metodo encargado de traer las urls de las redes sociales\n */\n public getRequestUrl(fn: () => void) {\n this.requestUrlApiService\n .all()\n .pipe(\n map((data) => data.filter((x) => x.state === true)),\n takeUntil(this.destroy$),\n )\n .subscribe((response) => {\n this.state.setRedesSociales(response);\n fn();\n });\n }\n\n /**\n * Metodo encargado de traer las imagenes de carrousel\n */\n public getCarrousel(fn: () => void) {\n this.carrouselApiService\n .all()\n .pipe(\n map((data) => data.filter((x) => x.state === true)),\n takeUntil(this.destroy$),\n )\n .subscribe((response) => {\n this.state.setCarrousel(response);\n fn();\n });\n }\n\n public saveFileStorage(files: File[], fn: (result: string) => void) {\n if (files.length > 0) {\n const filesEmail: FileEmail[] = [];\n this.fileService.PostUpdateFiles(files).subscribe((response) => {\n response.forEach((item) => {\n const fileEmail: FileEmail = {\n name: item.fileInfo?.name,\n uriDownload: item.fileInfo?.path?.uriDownload,\n };\n filesEmail.push(fileEmail);\n });\n fn(JSON.stringify(filesEmail));\n });\n } else {\n fn('');\n }\n }\n\n /**\n * Metodo encargado de guardar la interación\n * @param interaction Representa la informacion de InteractionDto\n */\n public saveInteraction(interaction: InteractionDto, fn: (flag: string) => void) {\n this.interactionApiService\n .create(interaction)\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n (response) => {\n if (response.id) {\n const radicado = response.radicado || '';\n this.state.setRadicado(radicado);\n fn(radicado);\n } else {\n fn('false');\n }\n },\n () => {\n fn('false');\n },\n );\n }\n\n /**\n * Método encargado de consultar todos los departamentos\n */\n public departmentsAll(): Observable {\n this.state.setLoading(true);\n\n return this.departmentApiService.all().pipe(finalize(() => this.state.setLoading(false)));\n }\n /**\n * Método encargado de consultar todas las ciudades\n */\n public citiesAll(): Observable {\n this.state.setLoading(true);\n\n return this.cityApiService.all().pipe(finalize(() => this.state.setLoading(false)));\n }\n}\n","import { Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MatSelectChange } from '@angular/material/select';\nimport { CityDto, CompanyDto, DepartmentDto, TypeClientDto } from '@bdo/typology';\nimport { environment } from 'apps/form-contact/src/environments/environment';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { Observable } from 'rxjs';\nimport { map, take } from 'rxjs/operators';\n\nimport { CoreFacade } from '../../../core/core.facade';\nimport { DataTransferService } from '../../../services/data-transfer.service';\nimport { EncryptService } from '../../../shared/services/encyrpt/encrypt.service';\nimport { getValidators } from '../../functions';\nimport { DataDecryptMe } from '../../models/data-decrypt-me';\nimport { DataModel } from '../../models/data-model';\nimport { JsonFormControls, JsonFormData, JsonFormMetadata } from '../../models/json-form-data';\nimport { ValidateClient } from '../../models/validate-client';\n\n/**\n * JsonFormFoComponent permite crear formularios agregando controles a partir de un JSON\n */\n@Component({\n selector: 'app-json-form-fo',\n templateUrl: './json-form-fo.component.html',\n styleUrls: ['./json-form-fo.component.scss'],\n})\nexport class JsonFormFoComponent implements OnInit, OnDestroy, OnChanges {\n /**\n * Servicio encargado de interactuar con el servicio de encriptación\n */\n private readonly encryptService: EncryptService;\n /**\n * Observable con Company\n */\n public readonly companies$: Observable;\n /**\n * Arreglo con Company\n */\n private companies: CompanyDto[] = [];\n /**\n * Se establece el observable de ciudades\n */\n public cities$!: Observable;\n /**\n * Se establece el observable de departamentos\n */\n public departments$!: Observable;\n /**\n * Arreglo con Department\n */\n private departments: DepartmentDto[] = [];\n /**\n * Spinner Service\n */\n public readonly spinner: NgxSpinnerService;\n /**\n * Facade Core\n */\n public coreFacade: CoreFacade;\n /**\n * Contiene los controles del formulario\n */\n public formGroupFo: FormGroup;\n /**\n * Creador de Formulario para ser expuesto\n */\n public formBuilderFo: FormBuilder;\n /**\n * Número de caracteres en la descripción\n */\n public valueDescription = 0;\n /**\n * isAnonymous: Variable de control para mostrar el formulario si el cliente es anónimo\n */\n public isAnonymous!: boolean;\n /**\n * isClient: Variable de control para mostrar el formulario si es cliente\n */\n public isClient: boolean | null = null;\n /**\n * isSuggestion: Flag si el tipo de solicitud es Sugerencia\n */\n public isSuggestion: boolean | null = null;\n /**\n * isTypeRequest: Flag para el tipo de solicitud\n */\n public isTypeRequest!: boolean;\n /**\n * selectedMeansResponse\n */\n public selectedMeansResponse!: boolean;\n /**\n * dataModel: Se inicializa dataModel\n */\n public dataModel!: DataModel;\n /**\n * Mínimo valor para documento\n */\n public readonly minValueDocument = 99999;\n /**\n * Servicio encargado de transferir datos entre componentes\n */\n public dataTransferService: DataTransferService;\n /**\n * JsonFormData asociado al componente\n */\n @Input() public jsonFormData!: JsonFormData;\n /**\n * CompanyId asociado al componente\n */\n @Input() public companyId!: number;\n /**\n * Contiene los controles del formulario\n */\n private readonly initialFormControlNames: string[] = [];\n /**\n * Observable con TypeClient\n */\n public readonly typeClients$: Observable;\n /**\n * Arreglo con TypeClient\n */\n private typeClients: TypeClientDto[] = [];\n\n /**\n * @description Crea una nueva instancia de JsonFormFoComponent\n * @param spinner Injecta la instancia de Spinner\n * @param coreFacade Injecta la instancia de CoreFacade\n * @param formGroupFo Parámetro-Propiedad de tipo FormBuilder (uso interno)\n * @param dataTransferService para transferir datos entre componentes\n * @param encryptService Encargado de encriptar información\n */\n public constructor(\n spinner: NgxSpinnerService,\n coreFacade: CoreFacade,\n formBuilder: FormBuilder,\n dataTransferService: DataTransferService,\n encryptService: EncryptService,\n ) {\n this.spinner = spinner;\n this.encryptService = encryptService;\n this.coreFacade = coreFacade;\n this.formBuilderFo = formBuilder;\n this.dataTransferService = dataTransferService;\n\n this.companies$ = this.coreFacade.companies$();\n this.typeClients$ = this.coreFacade.typeClients$();\n this.departments$ = this.coreFacade.departmentsAll();\n\n dataTransferService.subjectMetadata.subscribe((response) => this.setMetadataFields(response));\n this.typeClients$.subscribe((response) => (this.typeClients = response));\n this.companies$.subscribe((response) => (this.companies = response));\n this.departments$.subscribe((response) => (this.departments = response));\n\n this.formGroupFo = this.formBuilderFo.group({\n // Anónimo\n changeAnonymous: [''],\n typeRequest: [''],\n textRequest: ['', [Validators.required, Validators.minLength(10), Validators.maxLength(750)]],\n\n // No anónimo\n\n name: [''],\n typeDocument: [''],\n typeClient: [''],\n document: ['', [Validators.minLength(5), Validators.maxLength(12)]],\n meansResponse: [null],\n country: ['Colombia'],\n city: [''],\n department: [''],\n neighborhood: ['', [Validators.maxLength(50)]],\n address: ['', [Validators.maxLength(50)]],\n numberContact: ['', [Validators.minLength(10), Validators.maxLength(10)]],\n email: [\n '',\n [\n Validators.email,\n Validators.pattern(\n '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.(com|org|net|edu|gov|mil|info|io|co|me|biz|xyz|us|uk|es|fr|de|jp|cn|br|au|ca|COM|ORG|NET|EDU|GOV|MIL|INFO|IO|CO|ME|BIZ|XYZ|US|UK|ES|FR|DE|JP|CN|BR|AU|CA)$',\n ),\n ],\n ],\n idTemplate: [''],\n idMailbox: [''],\n idAttachmentMode: [''],\n });\n\n for (const controlName of Object.keys(this.formGroupFo.controls)) {\n this.initialFormControlNames.push(controlName);\n }\n }\n\n /**\n * @description A lifecycle hook that is called after Angular has initialized all data-bound properties of a directive.\n */\n public ngOnInit(): void {\n this.spinner.show();\n /** spinner ends after 5 seconds */\n this.coreFacade.getCompanies(() => {\n this.coreFacade.getTypeClients(() => {\n this.spinner.hide();\n });\n });\n\n this.updateModelData();\n }\n\n /**\n * Método encargado de actualizar los modelos de datos\n */\n public updateModelData() {\n this.formGroupFo.valueChanges.subscribe(() => {\n this.sendData();\n });\n }\n\n /**\n * Método encargado de controlar el flag si el cliente es anónimo o no\n */\n public flagAnonymous() {\n this.isAnonymous = this.formGroupFo.controls.changeAnonymous.value;\n this.formGroupFo.reset({ changeAnonymous: this.isAnonymous, country: 'Colombia' });\n this.updateModelData();\n // Establece los campos obligatorios según si el cliente es o no anónimo\n if (this.isAnonymous) {\n this.formGroupFo.get('typeClient')?.clearValidators();\n this.formGroupFo.get('typeDocument')?.clearValidators();\n this.formGroupFo.get('document')?.clearValidators();\n this.formGroupFo.get('name')?.clearValidators();\n this.formGroupFo.get('meansResponse')?.clearValidators();\n this.formGroupFo.get('product')?.clearValidators();\n this.formGroupFo.get('typeOfRequest')?.clearValidators();\n this.formGroupFo.get('detailOfRequest')?.clearValidators();\n } else {\n this.formGroupFo.get('typeClient')?.setValidators([Validators.required]);\n this.formGroupFo.get('typeDocument')?.setValidators([Validators.required]);\n this.formGroupFo.get('document')?.setValidators([Validators.required]);\n this.formGroupFo.get('name')?.setValidators([Validators.required]);\n this.formGroupFo.get('meansResponse')?.setValidators([Validators.required]);\n this.formGroupFo.get('product')?.setValidators([Validators.required]);\n this.formGroupFo.get('typeOfRequest')?.setValidators([Validators.required]);\n this.formGroupFo.get('detailOfRequest')?.setValidators([Validators.required]);\n }\n // Validar y actualiza los campos obligatorios\n this.formGroupFo.updateValueAndValidity();\n this.formGroupFo.get('typeClient')?.updateValueAndValidity();\n this.formGroupFo.get('typeDocument')?.updateValueAndValidity();\n this.formGroupFo.get('document')?.updateValueAndValidity();\n this.formGroupFo.get('name')?.updateValueAndValidity();\n this.formGroupFo.get('meansResponse')?.updateValueAndValidity();\n this.formGroupFo.get('product')?.updateValueAndValidity();\n this.formGroupFo.get('typeOfRequest')?.updateValueAndValidity();\n this.formGroupFo.get('detailOfRequest')?.updateValueAndValidity();\n }\n\n /**\n * Método encargado de filtrar las ciudades según el departamento seleccionado\n * @param event Valor seleccionado\n */\n public onDepartmentChange(event: MatSelectChange) {\n this.cities$ = this.coreFacade\n .citiesAll()\n .pipe(map((items: CityDto[]) => items.filter((item: CityDto) => item.idDepartment === Number(event))));\n }\n\n /**\n * @description Método llamado por el evento keyup, para contar el numero de caracteres\n */\n public countLetters() {\n // Actualizar el nombre del metodo\n const form = this.formGroupFo.value;\n this.valueDescription = form.textRequest.length;\n }\n\n /**\n * Método llamado por el evento keypress permite solo números\n * @param event Valores del campo\n * @returns Devuelve un valor booleano\n */\n public numberOnly(event: any): boolean {\n const charCode = event.which ? event.which : event.keyCode;\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\n return false;\n }\n\n return true;\n }\n\n /**\n * Método encargado de enseñar la descripción del tipo de solicitud\n * @param event Valor seleccionado\n */\n public flagDescriptionTypeRequest(event: MatSelectChange) {\n this.isTypeRequest = event.value === 'Queja anónima';\n }\n\n /**\n * Método llamado por el evento change de la lista de Tipos de cliente\n * @param event Valor seleccionado\n */\n public onTypeClientChange(event: MatSelectChange) {\n // Se reiniciar la variable isSuggestion para formatear los campos visibles\n this.isSuggestion = null;\n // Se reestablecen los campos tipo de documento y documento para evitar problemas de seguridad (evita que se pueda continuar con el formulario con una cedula errada)\n this.formGroupFo.get('typeDocument')?.setValue(null);\n this.formGroupFo.get('document')?.setValue('');\n // Reinicia la respuesta de la petición que consulta si el número de documento existe\n this.isClient = null;\n\n // Reinicia los controles creados\n this.removeNotInitialContros();\n\n const selectedCompany = this.companyId;\n\n // Elimina controles si no es tercero\n if (Number(event) !== 3) {\n this.removeNewControl();\n } else {\n // Agrega controles si es tercero\n this.addNewControl();\n }\n // Actualiza los datos según la nueva selección de tipo de cliente y compañía\n this.coreFacade.getTypologies(selectedCompany, +event);\n }\n\n /**\n * Método llamado luego de que una propiedad enlazada cambia\n * @param changes Cambios en el control\n */\n public ngOnChanges(changes: SimpleChanges) {\n if (!changes.jsonFormData.firstChange) {\n this.addControlsToForm(this.jsonFormData.controls);\n }\n }\n\n /**\n * @description Método que agrega los controles al Formulario\n * @param controls arreglo de controles que se agregarán\n */\n public addControlsToForm(controls: JsonFormControls[]) {\n if (controls) {\n for (const control of controls) {\n this.addControl(control);\n }\n }\n }\n\n /**\n * Método que se llamará para remover un control del Form\n * @param controlName Nombre del control\n */\n private removeControl(controlName: string) {\n if (this.formGroupFo.contains(controlName)) {\n this.formGroupFo.removeControl(controlName);\n }\n }\n\n /**\n * @description Método que elimina los controles no iniciales\n */\n private removeNotInitialContros() {\n for (const controlName of Object.keys(this.formGroupFo.controls)) {\n if (!this.initialFormControlNames.includes(controlName)) {\n this.removeControl(controlName);\n this.jsonFormData.controls = new Array();\n }\n }\n }\n\n /**\n * @description Método llamado para remover validaciones\n */\n public removeNewControl() {\n this.formGroupFo = this.formBuilderFo.group({\n ...this.formGroupFo.controls,\n name: [''],\n });\n }\n\n /**\n * @description Método llamado para agregar Control al formulario\n * @param control Control que se agregará\n */\n private addControl(control: JsonFormControls) {\n this.formGroupFo.addControl(control.name, this.formBuilderFo.control(control.value, getValidators(control)));\n }\n\n /**\n * @description Método llamado para agregar Control al formulario\n * @param control Control que se agregará\n */\n public onAddControl(addControlEvent: JsonFormControls) {\n this.addControl(addControlEvent);\n addControlEvent.visible = true;\n }\n\n /**\n * @description Método llamado para agregar validaciones\n */\n public addNewControl() {\n this.formGroupFo = this.formBuilderFo.group({\n ...this.formGroupFo.controls,\n name: ['', Validators.required],\n });\n }\n\n /**\n * Método encargado de validar la cédula del cliente\n */\n public validateDocument() {\n if (this.formGroupFo.get('document')?.value.length > 4) {\n this.spinner.show();\n this.coreFacade.validateClient(this.companyId, this.formGroupFo.get('document')?.value, (data) => {\n const validateEm = JSON.stringify(data);\n const validateEmJson: DataDecryptMe = JSON.parse(validateEm);\n const dataDecrypt = this.encryptService.toDecrypt(validateEmJson.data);\n const dataDeserealized = JSON.parse(dataDecrypt) as ValidateClient;\n this.isClient = dataDeserealized.isClient;\n });\n this.spinner.hide();\n }\n }\n\n /**\n * Método encargado de validar el tipo de respuesta\n */\n public validateMeansResponse() {\n this.selectedMeansResponse = this.formGroupFo.value.meansResponse;\n // Establece los campos obligatorios según el tipo de respuesta\n if (this.selectedMeansResponse) {\n this.formGroupFo\n .get('email')\n ?.setValidators([\n Validators.required,\n Validators.email,\n Validators.pattern(\n '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.(com|org|net|edu|gov|mil|info|io|co|me|biz|xyz|us|uk|es|fr|de|jp|cn|br|au|ca|COM|ORG|NET|EDU|GOV|MIL|INFO|IO|CO|ME|BIZ|XYZ|US|UK|ES|FR|DE|JP|CN|BR|AU|CA)$',\n ),\n ]);\n this.formGroupFo.get('department')?.clearValidators();\n this.formGroupFo.get('city')?.clearValidators();\n this.formGroupFo.get('neighborhood')?.clearValidators();\n this.formGroupFo.get('address')?.clearValidators();\n } else {\n this.formGroupFo.get('email')?.clearValidators();\n this.formGroupFo.get('department')?.setValidators([Validators.required]);\n this.formGroupFo.get('city')?.setValidators([Validators.required]);\n this.formGroupFo.get('neighborhood')?.setValidators([Validators.required]);\n this.formGroupFo.get('address')?.setValidators([Validators.required]);\n }\n // Validar y actualiza los campos obligatorios\n this.formGroupFo.get('email')?.updateValueAndValidity();\n this.formGroupFo.get('department')?.updateValueAndValidity();\n this.formGroupFo.get('city')?.updateValueAndValidity();\n this.formGroupFo.get('neighborhood')?.updateValueAndValidity();\n this.formGroupFo.get('address')?.updateValueAndValidity();\n }\n\n /**\n * Método encargado de validar si el tipo de solicitud es una sugerencia\n */\n public validateSuggestion() {\n // Me suscribo al campo Producto (el cuál se crea dinamicamente con 'selects') para poder validar su creación y su valor\n this.formGroupFo\n .get('product')\n ?.valueChanges.pipe(take(1))\n .subscribe((value) => {\n if (value !== null) {\n this.sendData();\n }\n });\n // Me suscribo al campo tipo de solicitud (el cuál se crea dinamicamente con 'selects') para poder validar su creación y su valor\n this.formGroupFo\n .get('typeOfRequest')\n ?.valueChanges.pipe(take(1))\n .subscribe((value) => {\n this.isSuggestion = value === 'Sugerencia/Propuesta' ? true : false;\n // Establece los campos obligatorios según si el tipo de solicitud es o no una sugerencia\n if (this.isSuggestion) {\n this.formGroupFo.get('typeClient')?.clearValidators();\n this.formGroupFo.get('typeDocument')?.clearValidators();\n this.formGroupFo.get('document')?.clearValidators();\n this.formGroupFo.get('name')?.clearValidators();\n this.formGroupFo.get('meansResponse')?.clearValidators();\n } else {\n this.formGroupFo.get('typeClient')?.setValidators([Validators.required]);\n this.formGroupFo.get('typeDocument')?.setValidators([Validators.required]);\n this.formGroupFo.get('document')?.setValidators([Validators.required]);\n this.formGroupFo.get('name')?.setValidators([Validators.required]);\n this.formGroupFo.get('meansResponse')?.setValidators([Validators.required]);\n }\n // Validar y actualiza los campos obligatorios\n this.formGroupFo.get('typeClient')?.updateValueAndValidity();\n this.formGroupFo.get('typeDocument')?.updateValueAndValidity();\n this.formGroupFo.get('document')?.updateValueAndValidity();\n this.formGroupFo.get('name')?.updateValueAndValidity();\n this.formGroupFo.get('meansResponse')?.updateValueAndValidity();\n this.sendData();\n });\n // Me suscribo al campo Detalle de solicitud (el cuál se crea dinamicamente con 'selects') para poder validar su creación y su valor\n this.formGroupFo\n .get('detailOfRequest')\n ?.valueChanges.pipe(take(1))\n .subscribe((value) => {\n if (value !== null) {\n this.sendData();\n }\n });\n }\n\n /**\n * @description Método para actualizar los campos Metadata en el formulario\n * @param metadata Argumento con la información para establecer o remover los campos\n */\n private setMetadataFields(metadata: JsonFormMetadata) {\n const idTemplateControl = this.formGroupFo.get('idTemplate');\n idTemplateControl?.setValue(metadata.idTemplate);\n const idMailboxControl = this.formGroupFo.get('idMailbox');\n idMailboxControl?.setValue(metadata.idMailbox);\n const idAttachmentModeControl = this.formGroupFo.get('idAttachmentMode');\n idAttachmentModeControl?.setValue(metadata.idAttachmentMode);\n this.updateModelData();\n }\n\n /**\n * Método encargado de enviar la información solicitada para enviar el formulario\n */\n public sendData() {\n // Se inicia el modelo vacio\n this.dataModel = {};\n // Envío de formulario si es anónimo\n if (this.isAnonymous) {\n this.dataModel = {\n IsAnonymus: true,\n Company: this.companies.find((x) => x.id === this.companyId)?.name,\n TypeClient: 'Anonimo',\n TypeRequest: this.formGroupFo.get('typeRequest')?.value,\n MessageClient: this.formGroupFo.get('textRequest')?.value,\n IdTemplate: 4,\n IdAttachmentMode: 2,\n IdCLient: this.companyId === 1 ? environment.occidenteIdClient : environment.fiduoccidenteIdClient,\n IdCamapaign: this.companyId === 1 ? environment.occidenteIdCampaign : environment.fiduoccidenteIdCampaign,\n };\n }\n // Envío de formulario si es una sugerencia\n if (!this.isAnonymous && this.isSuggestion === true) {\n this.dataModel = {\n Company: this.companies.find((x) => x.id === this.companyId)?.name,\n TypeClient: this.typeClients.find((x) => x.id === this.formGroupFo.value.typeClient)?.name,\n Product: this.formGroupFo.get('product')?.value,\n TypeRequest: this.formGroupFo.get('typeOfRequest')?.value,\n MessageClient: this.formGroupFo.get('textRequest')?.value,\n IdTemplate: 5,\n IdAttachmentMode: 2,\n IdCLient: this.companyId === 1 ? environment.occidenteIdClient : environment.fiduoccidenteIdClient,\n IdCamapaign: this.companyId === 1 ? environment.occidenteIdCampaign : environment.fiduoccidenteIdCampaign,\n };\n }\n // Envío de formulario si no es anónimo\n if (!this.isAnonymous && this.isSuggestion === false) {\n this.dataModel = {\n TypeClient: this.typeClients.find((x) => x.id === this.formGroupFo.value.typeClient)?.name,\n Product: this.formGroupFo.get('product')?.value,\n TypeRequest: this.formGroupFo.get('typeOfRequest')?.value,\n DetailRequest: this.formGroupFo.get('detailOfRequest')?.value,\n TypeDocument: this.formGroupFo.get('typeDocument')?.value,\n NumberDocument: this.formGroupFo.get('document')?.value,\n Name: this.formGroupFo.get('name')?.value,\n ResponseMedium:\n this.formGroupFo.get('meansResponse')?.value === true\n ? 'Correo electrónico'\n : 'Dirección física de correspondencia',\n Email: this.formGroupFo.get('email')?.value,\n Country: this.formGroupFo.get('country')?.value,\n Department: this.departments.find((x) => x.id === this.formGroupFo.value.department)?.name,\n City: this.formGroupFo.get('city')?.value,\n Neighborhood: this.formGroupFo.get('neighborhood')?.value,\n Address: this.formGroupFo.get('address')?.value,\n ContactNumber: Number(this.formGroupFo.get('numberContact')?.value),\n MessageClient: this.formGroupFo.get('textRequest')?.value,\n IdMailBox: Number(this.formGroupFo.get('idMailbox')?.value),\n IdTemplate: Number(this.formGroupFo.get('idTemplate')?.value),\n IdAttachmentMode: Number(this.formGroupFo.get('idAttachmentMode')?.value),\n Company: this.companies.find((x) => x.id === this.companyId)?.name,\n IsClient: true,\n IdCLient: environment.fiduoccidenteIdClient,\n IdCamapaign: environment.fiduoccidenteIdCampaign,\n };\n }\n }\n /**\n * Metodo ngOnDestroy\n */\n public ngOnDestroy() {\n if (this.jsonFormData) {\n this.jsonFormData.controls = new Array();\n }\n this.coreFacade.ngOnDestroy();\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 ¿Tu solicitud es anónima?\n \n Si \n No \n \n
\n
\n
\n
\n \n \n
\n Tipo de solicitud *\n \n Queja anónima \n \n
\n
\n\n \n
\n \n

\n Es la manifestación de molestia, inconformidad o insatisfacción que formula una persona natural o jurídica por\n productos y servicios adquiridos, ofrecidos o prestados por una entidad vigilada por la Superintendencia\n Financiera de Colombia. Esta acción, no exige que el denunciante revele su identidad o se pueda identificar\n alguna característica de la persona.\n

\n
\n\n \n \n
\n ¿Cómo te podemos ayudar? *\n \n \n\n \n
\n {{ this.valueDescription }}|750\n
\n \n Por favor, ingresa como mínimo 10 caracteres.\n
\n
\n \n\n
\n \n
\n \n\n
\n \n \n
\n Tipo de Cliente *\n \n \n {{ typeClient.name }}\n \n \n
\n
\n\n \n \n \n \n\n
\n \n \n \n\n \n \n
\n {{ control.label }}\n \n
\n \n\n \n \n
\n {{ control.label }}\n \n
\n
\n
\n
\n\n
\n \n \n
\n ¿Cómo te podemos ayudar? *\n \n \n\n \n
\n {{ this.valueDescription }}|750\n
\n \n Por favor, ingresa como mínimo 10 caracteres.\n
\n
\n \n\n \n
\n \n
\n
\n \n \n \n \n
\n Tipo de documento *\n \n \n CC - Cédula de Ciudadanía\n \n \n CE - Cédula de Extranjería\n \n NUIP - Número Único de Identificación Personal\n PS - Pasaporte\n \n NIT - Número de Identificación Tributaria\n \n
\n
\n \n \n
\n Número de Documento *\n \n
\n
\n 0\"\n style=\"color: red\"\n >\n El número de documento debe tener más de 4 dígitos.\n \n\n
\n

\n Creo que aún no eres nuestro cliente. Por favor verifica que tu número de documento este correcto para poder\n ayudarte, te invitamos por favor a comunicarte a nuestras líneas de atención en Bogotá\n (601) 742 74 45\n y para el resto del país al 01 8000 189 818\n

\n

Si deseas adquirir productos con nosotros aquí te podemos ayudar

\n
\n\n
\n \n \n
\n Nombres completo / Razón social *\n \n
\n
\n\n \n \n
\n Medio de respuesta a tu PQRSD *\n \n Correo electrónico \n Dirección física de correspondencia \n \n
\n
\n\n
\n \n \n
\n Correo Electrónico *\n \n \n \n Por favor, ingresa un correo electrónico válido.\n
\n
\n \n
\n\n
\n \n \n
\n País *\n \n
\n
\n\n \n \n
\n Departamento *\n \n \n {{ department.name }}\n \n \n
\n
\n\n \n \n
\n Ciudad *\n \n \n {{ city.name }}\n \n \n
\n
\n\n \n \n
\n Barrio - Vereda - Corregimiento *\n \n
\n
\n\n
50\" style=\"color: red\">\n Debe tener menos de 50 caracteres.\n
\n\n \n \n
\n Dirección física *\n \n
\n
\n\n
50\" style=\"color: red\">\n Debe tener menos de 50 caracteres.\n
\n
\n\n \n \n
\n Número de contacto\n \n
\n
\n\n
10\" style=\"color: red\">\n El número de documento debe tener 10 dígitos.\n
\n\n \n \n
\n ¿Cómo te podemos ayudar? *\n \n \n\n \n
\n {{ this.valueDescription }}|750\n
\n \n Por favor, ingresa como mínimo 10 caracteres.\n
\n \n
\n\n \n
\n \n
\n \n \n \n\n","import { Injectable } from '@angular/core';\nimport { CarrouselDto } from '@bdo/carrousel';\nimport { ReCaptchaDto } from '@bdo/interaction';\nimport { RequestUrlDto } from '@bdo/request-url';\nimport { CompanyDto, TypeClientDto, TypologyDto } from '@bdo/typology';\nimport { StateBase } from '@nexa/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\n/**\n * CoreState\n */\n@Injectable()\nexport class CoreState extends StateBase {\n /**\n * Behavior Subject Company\n */\n private readonly behaviorSubjectCompanies = new BehaviorSubject([]);\n\n /**\n * Observable con Company\n */\n public readonly companies$ = this.behaviorSubjectCompanies.asObservable();\n\n /**\n * Behavior Subject TypeClient\n */\n private readonly behaviorSubjectTypeClients = new BehaviorSubject([]);\n\n /**\n * Observable con TypeClient\n */\n public readonly typeClients$ = this.behaviorSubjectTypeClients.asObservable();\n\n /**\n * Behavior Subject Typology\n */\n private readonly behaviorSubjectTypologies = new BehaviorSubject([]);\n\n /**\n * Observable con Typology\n */\n public readonly typologies$ = this.behaviorSubjectTypologies.asObservable();\n\n /**\n * Subject ReCaptcha\n */\n private readonly subjectReCaptcha = new Subject();\n /**\n * Subject ReCaptcha Gerente Elite\n */\n private readonly subjectReCaptchaGe = new Subject();\n\n /**\n * Observable con ReCaptcha\n */\n public readonly reCaptcha$ = this.subjectReCaptcha.asObservable();\n\n /**\n * Observable con ReCaptcha GerenteElite\n */\n public readonly reCaptchaGe$ = this.subjectReCaptchaGe.asObservable();\n\n /**\n * Subject - subjectToken\n */\n private readonly subjectToken = new Subject();\n\n /**\n * Observable con token\n */\n public token$ = this.subjectToken.asObservable();\n\n /**\n * Subject - subjectRadicado\n */\n private readonly subjectRadicado = new Subject();\n\n /**\n * Observable con radicado\n */\n public radicado$ = this.subjectRadicado.asObservable();\n /**\n * Behavior request url\n */\n private readonly behaviorRequestUrl = new BehaviorSubject([]);\n\n /**\n * Observable con Typology\n */\n public readonly requestUrl$ = this.behaviorRequestUrl.asObservable();\n\n /**\n * Behavior request url\n */\n private readonly behaviorCarrousel = new BehaviorSubject([]);\n\n /**\n * Observable con Typology\n */\n public readonly carrousel$ = this.behaviorCarrousel.asObservable();\n\n /**\n * @description Método encargado de establecer el arreglo Company\n *\n * @param companies Compañías\n */\n public setCompanies(companies: CompanyDto[]) {\n this.behaviorSubjectCompanies.next(companies);\n }\n\n /**\n * @description Método encargado de establecer el arreglo TypeClient\n *\n * @param typeClients Tipos de cliente\n */\n public setTypeClients(typeClients: TypeClientDto[]) {\n this.behaviorSubjectTypeClients.next(typeClients);\n }\n\n /**\n * @description Método encargado de establecer el arreglo Typology\n *\n * @param typologies Tipologías\n */\n public setTypologies(typologies: TypologyDto[]) {\n this.behaviorSubjectTypologies.next(typologies);\n }\n\n /**\n * @description Método encargado de establecer el arreglo Redes sociales\n *\n * @param requesturl url Redes sociales\n */\n public setRedesSociales(requesturl: RequestUrlDto[]) {\n this.behaviorRequestUrl.next(requesturl);\n }\n /**\n * @description Método encargado de establecer el arreglo Carrousel\n *\n * @param carrousel imagens de Carrousel\n */\n public setCarrousel(carrousel: CarrouselDto[]) {\n this.behaviorCarrousel.next(carrousel);\n }\n /**\n * @description Método encargado de establecer el ReCaptcha\n *\n * @param recaptcha recaptcha\n */\n public setReCaptcha(recaptcha: ReCaptchaDto) {\n this.subjectReCaptcha.next(recaptcha);\n }\n\n /**\n * @description Método encargado de establecer el ReCaptcha Ge\n *\n * @param recaptcha recaptcha\n */\n public setReCaptchGe(recaptcha: ReCaptchaDto) {\n this.subjectReCaptchaGe.next(recaptcha);\n }\n\n /**\n * @description Metodo encargado de asignar el resultado de token JWT\n * @param data Información de la token JWT\n */\n public setToken(token: string) {\n this.subjectToken.next(token);\n }\n\n /**\n * @description Método encargado de establecer el Radicado\n * @param radicado Información del radicado\n */\n public setRadicado(radicado: string) {\n this.subjectRadicado.next(radicado);\n }\n}\n","import { FormBuilder, FormGroup, Validators } from '@angular/forms';\n\nimport { JsonFormControls } from './models/json-form-data';\n\n/**\n * @description Permite agregar un FormControl a un Fromulario\n *\n * @param formBuilder Creador del Formulario\n *\n * @param FormGroup Agrupador del Formulario\n *\n * @param control Control a ser agregado\n */\nexport const newControl = (formBuilder: FormBuilder, form: FormGroup, control: JsonFormControls) => {\n form.addControl(control.name, formBuilder.control(control.value, getValidators(control)));\n control.visible = true;\n};\n\n/**\n * @description Retorna los posibles validadores de un FormControl\n *\n * @param control Control que proporciona información de los validadores\n */\n\nexport const getValidators = (control: JsonFormControls) => {\n const validatorsToAdd = [];\n\n if (control.validators) {\n for (const [key, value] of Object.entries(control.validators)) {\n switch (key) {\n case 'min':\n validatorsToAdd.push(Validators.min(value as number));\n break;\n case 'max':\n validatorsToAdd.push(Validators.max(value as number));\n break;\n case 'required':\n if (value) {\n validatorsToAdd.push(Validators.required);\n }\n break;\n case 'requiredTrue':\n if (value) {\n validatorsToAdd.push(Validators.requiredTrue);\n }\n break;\n case 'email':\n if (value) {\n validatorsToAdd.push(Validators.email);\n }\n break;\n case 'minLength':\n validatorsToAdd.push(Validators.minLength(value as number));\n break;\n case 'maxLength':\n validatorsToAdd.push(Validators.maxLength(value as number));\n break;\n case 'pattern':\n validatorsToAdd.push(Validators.pattern(value as string));\n break;\n case 'nullValidator':\n if (value) {\n validatorsToAdd.push(Validators.nullValidator);\n }\n break;\n default:\n }\n }\n }\n\n return validatorsToAdd;\n};\n\n/**\n * @description Retorna un número con tamaño fijo, rellenado de ceros a la izquierda\n *\n * @param num número\n * @param size tamaño en caractes del número\n */\nexport const padNumber = (num: number, size: number): string => {\n let s = `${num}`;\n while (s.length < size) { s = `0${s}`; }\n\n return s;\n};\n\n/**\n * @description Retorna un string con un formato personalizado\n *\n * @param date fecha\n */\nexport const formatDateTime = (date: Date): string => {\n\n const dt = new Date(date) ;\n const day = (`0${dt.getDate()}`).slice(-2);\n const month = (`0${dt.getMonth() + 1}`).slice(-2);\n const year = dt.getFullYear();\n const hour = (`0${dt.getHours()}`).slice(-2);\n const minute = (`0${dt.getMinutes()}`).slice(-2);\n const second = (`0${dt.getSeconds()}`).slice(-2);\n // FORMATO FECHA: 2022-02-21T21:04:44.6603913-05:00-0007\n\n const datetime = `${year}${month}${day}_${hour}${minute}${second}`;\n\n return datetime;\n};\n","import { CommonModule } from '@angular/common';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { CarrouselApiService } from '@bdo/carrousel';\nimport { CaptchaApiService, InteractionApiService, SettingApiService } from '@bdo/interaction';\nimport { RequestUrlApiService } from '@bdo/request-url';\nimport { SendEmailApiService } from '@bdo/send-email';\nimport {\n CityApiService,\n CompanyApiService,\n DepartmentApiService,\n TypeClientApiService,\n TypologyApiService,\n} from '@bdo/typology';\nimport {\n RecaptchaFormsModule,\n RecaptchaModule,\n RecaptchaSettings,\n RECAPTCHA_LANGUAGE,\n RECAPTCHA_SETTINGS,\n} from 'ng-recaptcha';\nimport { CarouselModule } from 'ngx-owl-carousel-o';\nimport { NgxSpinnerModule } from 'ngx-spinner';\n\nimport { environment } from '../../environments/environment';\nimport { DynamicFormModule } from '../dynamic-form/dynamic-form.module';\nimport { AuthInterceptorService } from '../services/auth-interceptor.service';\nimport { AuthenticationService } from '../services/authentication.service';\nimport { DataTransferService } from '../services/data-transfer.service';\nimport { EncryptService } from '../shared/services/encyrpt/encrypt.service';\n\nimport { CarouselComponent } from './components/carousel/carousel.component';\nimport { ContactsComponent } from './components/contacts/contacts.component';\nimport { CustomerPrivacyComponent } from './components/customer-privacy/customer-privacy.component';\nimport { DialogPopupComponent } from './components/dialog-popup/dialog-popup.component';\nimport { FooterComponent } from './components/footer/footer.component';\nimport { FormComponent } from './components/form/form.component';\nimport { HeaderComponent } from './components/header/header.component';\nimport { LayoutComponent } from './components/layout/layout.component';\nimport { SocialNetworksComponent } from './components/social-networks/social-networks.component';\nimport { CoreRoutingModule } from './core-routing.module';\nimport { CoreFacade } from './core.facade';\nimport { CoreState } from './state/core.state';\n\n/**\n * Decorador ngModule\n */\n@NgModule({\n declarations: [\n SocialNetworksComponent,\n LayoutComponent,\n HeaderComponent,\n FooterComponent,\n ContactsComponent,\n FormComponent,\n CarouselComponent,\n DialogPopupComponent,\n CustomerPrivacyComponent,\n ],\n imports: [\n CommonModule,\n CoreRoutingModule,\n DynamicFormModule,\n FlexLayoutModule,\n FormsModule,\n NgxSpinnerModule,\n MatDialogModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatProgressBarModule,\n MatSelectModule,\n MatSidenavModule,\n MatToolbarModule,\n\n ReactiveFormsModule,\n CarouselModule,\n RecaptchaFormsModule,\n RecaptchaModule,\n ],\n exports: [],\n providers: [\n DataTransferService,\n EncryptService,\n\n CoreFacade,\n CoreState,\n CompanyApiService,\n TypeClientApiService,\n TypologyApiService,\n CityApiService,\n DepartmentApiService,\n\n CaptchaApiService,\n InteractionApiService,\n SettingApiService,\n\n SendEmailApiService,\n AuthenticationService,\n RequestUrlApiService,\n CarrouselApiService,\n {\n provide: HTTP_INTERCEPTORS,\n useClass: AuthInterceptorService,\n multi: true,\n },\n {\n provide: RECAPTCHA_SETTINGS,\n useValue: { siteKey: environment.googleCaptcha } as RecaptchaSettings,\n },\n {\n provide: RECAPTCHA_LANGUAGE,\n useValue: 'es',\n },\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class CoreModule {}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { CustomerPrivacyComponent } from './components/customer-privacy/customer-privacy.component';\nimport { LayoutComponent } from './components/layout/layout.component';\n\n/**\n * Routes\n */\nconst routes: Routes = [\n {\n path: '',\n component: LayoutComponent,\n },\n {\n path: 'customer-privacy',\n component: CustomerPrivacyComponent,\n },\n];\n\n/**\n * Imports/Exports\n */\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class CoreRoutingModule {}\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"JC7y\";","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { AbstractControl, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { CaptchaDto, InteractionDto, ReCaptchaDto } from '@bdo/interaction';\nimport { environment } from 'apps/form-contact/src/environments/environment';\nimport { Guid } from 'guid-typescript';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\n\nimport { DialogPopupComponent } from '../../../core/components/dialog-popup/dialog-popup.component';\nimport { CoreFacade } from '../../../core/core.facade';\nimport { TypeAttach } from '../../../core/models/type-attach';\nimport { DataTransferService } from '../../../services/data-transfer.service';\nimport { TealiumUtagService } from '../../../tealium/utag.service';\nimport { DataModel } from '../../models/data-model';\nimport { FileData } from '../../models/file-data';\nimport { Interaction } from '../../models/interaction-model';\n\n/**\n * FilesCaptchaComponent permite adjuntar archivos y aceptar el captcha\n */\n@Component({\n selector: 'app-files-captcha',\n templateUrl: './files-captcha.component.html',\n styleUrls: ['./files-captcha.component.scss'],\n})\nexport class FilesCaptchaComponent implements OnInit, OnDestroy {\n /**\n * interactionDto asociado al componente\n */\n @Input() public dataModel!: DataModel;\n /**\n * Tealium\n */\n public readonly tealium: TealiumUtagService;\n /**\n * Servicio encargado de transferir datos entre componentes\n */\n public dataTransferService: DataTransferService;\n /**\n * Spinner Service\n */\n public readonly spinner: NgxSpinnerService;\n /**\n * Facade Core\n */\n public coreFacade: CoreFacade;\n /**\n * Bandera para validar estado de archivos\n */\n public validateFiles = false;\n /**\n * Lista de Archivos seleccionados\n */\n public selectedFiles?: FileList;\n /**\n * Nombre de Campo para Archivos\n */\n public readonly filesFieldname = 'files';\n /**\n * Arreglo con la información de los archivos.\n */\n public files: File[] = [];\n /**\n * Mensaje de alerta de archivos\n */\n public messageValidateFiles = '';\n /**\n * BehaviorSubject para mostrar archivo subido\n */\n private readonly BehaviorSubjectMessageSelectFile = new BehaviorSubject('Seleccione su archivo');\n /**\n * messageSelectFile$ texto para mostrar archivo subido\n */\n public readonly messageSelectFile$ = this.BehaviorSubjectMessageSelectFile.asObservable();\n /**\n * Contiene los controles del formulario\n */\n public formGroupFc: FormGroup;\n /**\n * Diálogo Popup con resultado del envío\n */\n public dialogPopup: MatDialog;\n /**\n * messageButton texto para botón\n */\n public messageButton = 'Subir';\n /**\n * errorTextRequestSubmit: Intento de envío con error\n */\n public errorTextRequestSubmit = false;\n /**\n * visibleInputFile: Variable de control para mostrar Input de tipo File\n */\n public visibleInputFile = true;\n /**\n * Observable con ReCaptcha\n */\n private readonly reCaptcha$: Observable;\n /**\n * tryRecaptcha: Intento del Recatcha\n */\n public tryRecaptcha = false;\n /**\n * Método para exponer que el Recaptcha sea válido\n */\n public validRecaptcha$ = new BehaviorSubject(false);\n /**\n * Método para verificar si se muestra Input de tipo File o no.\n */\n public get showInputFile(): boolean {\n return this.visibleInputFile;\n }\n /**\n * Método para desuscribir el recaptcha\n */\n private readonly reCaptchaSubscription: Subscription;\n /**\n * @description Crea una nueva instancia de FilesCaptchaComponent\n * @param formGroupFc Parámetro-Propiedad de tipo FormBuilder (uso interno)\n * @param spinner Injecta la instancia de Spinner\n * @param coreFacade Injecta la instancia de CoreFacade\n * @param dataTransferService para transferir datos entre componentes\n * @param dialogPopup Encargado del popUp al finalizar el envío\n * @param tealium Injecta la instancia de Tealium\n */\n public constructor(\n spinner: NgxSpinnerService,\n coreFacade: CoreFacade,\n formGroupFc: FormBuilder,\n dataTransferService: DataTransferService,\n tealium: TealiumUtagService,\n dialogPopup: MatDialog,\n ) {\n this.spinner = spinner;\n this.tealium = tealium;\n this.dialogPopup = dialogPopup;\n this.coreFacade = coreFacade;\n this.dataTransferService = dataTransferService;\n\n this.formGroupFc = formGroupFc.group({\n files: [''],\n recaptchaReactive: [null, Validators.required],\n });\n\n this.reCaptcha$ = this.coreFacade.reCaptcha$();\n\n dataTransferService.behaviorSubjectTypeAttach.subscribe((response) => this.updateFilesValidators(response));\n this.reCaptchaSubscription = this.reCaptcha$.subscribe((response) => this.doRecaptchaReceivedFO(response));\n this.coreFacade.radicado$().subscribe((response) => {\n dataTransferService.radicado = response;\n this.dialogPopup.open(DialogPopupComponent, {\n disableClose: true,\n });\n });\n\n this.tealium.setConfig({\n account: environment.tealiumAccount,\n profile: environment.tealiumProfile,\n environment: environment.tealiumEnviroment,\n });\n }\n\n /**\n * @description A lifecycle hook that is called after Angular has initialized all data-bound properties of a directive.\n */\n public ngOnInit(): void {\n const typeAttachMode = this.dataModel.IdAttachmentMode as TypeAttach;\n this.updateFilesValidators(typeAttachMode);\n }\n\n /**\n * Metodo ngOnDestroy\n */\n public ngOnDestroy() {\n this.reCaptchaSubscription.unsubscribe();\n }\n\n /**\n * Metodo para el cargue de archivos\n * @param event Valor seleccionado\n */\n public onFileChange(event: any) {\n this.validateFiles = false;\n this.selectedFiles = event.target.files as FileList;\n const filesControl = this.formGroupFc.get(this.filesFieldname);\n\n if (this.selectedFiles && this.selectedFiles.length > 0) {\n let totalSize = this.calculateTotalSize(this.files);\n\n // Convertir FileList a un array para poder iterar\n const filesArray = Array.from(this.selectedFiles);\n\n for (const file of filesArray) {\n if (this.isValidFile(file)) {\n if (totalSize + file.size <= 25165824) {\n // Verificar si el tamaño total no excede 25 MB\n totalSize += file.size;\n this.readFileContent(file, filesControl);\n } else {\n this.validateFiles = true;\n this.messageValidateFiles = 'El tamaño total a cargar es mayor a 24 MB';\n break; // Salir del bucle si se excede el tamaño máximo\n }\n } else {\n this.validateFiles = true;\n this.messageValidateFiles = 'Los formatos de archivo deben ser JPG, PDF, TIFF, JPEG';\n break; // Salir del bucle si se encuentra un archivo no válido\n }\n }\n }\n }\n\n /**\n * Metodo para calcular si el peso total de los archivos es valido\n * @param file Archivos subidos\n */\n public calculateTotalSize(files: FileData[]): number {\n return files.reduce((acc, file) => acc + file.size, 0);\n }\n\n /**\n * Metodo encargado de validar el formato del archivo\n * @param file Archivos subidos\n */\n public isValidFile(file: File): boolean {\n const allowedFormats = ['pdf', 'jpg', 'jpeg', 'tiff'];\n const fileExtension = file.name.split('.').pop()?.toLowerCase();\n if (fileExtension) {\n return allowedFormats.includes(fileExtension);\n }\n\n return false; // Devolver falso si no se puede determinar la extensión del archivo\n }\n\n /**\n * Función para leer el contenido del archivo seleccionado\n * @param file Archivos subidos\n * @param filesControl Control para adjuntar archivos\n */\n public readFileContent(file: File, filesControl: AbstractControl | null) {\n // Verificar si el archivo con el mismo nombre ya está en la lista de archivos\n const existingFile = this.files.find((f) => f.name.toLowerCase() === file.name.toLowerCase());\n\n if (existingFile) {\n // Manejar el caso de archivo con el mismo nombre\n this.validateFiles = true;\n this.messageValidateFiles = 'Ya existe un archivo con el mismo nombre en la lista';\n } else {\n const reader = new FileReader();\n\n reader.onload = () => {\n // Convertir la extensión del archivo a minúsculas antes de añadirlo a la lista\n const fileNameParts = file.name.split('.');\n // Convertimos la extensión en minúsculas\n const extension = fileNameParts.pop()?.toLowerCase();\n // Reconstruimos el nombre base y lo sanitizamos\n const baseName = this.sanitizeFileName(fileNameParts.join('.'));\n // Unimos las partes\n const sanitizedFileName = `${baseName}.${extension}`;\n // Creamos un nuevo objeto File con el mismo contenido\n const sanitizedFile = new File([file], sanitizedFileName, { type: file.type });\n // Lo agregamos al arreglo de Files\n this.files.push(sanitizedFile);\n this.updateFormGroup(filesControl);\n };\n\n reader.readAsDataURL(file);\n }\n }\n\n /**\n * Función para actualizar el formulario con los archivos seleccionados\n * @param filesControl variable que permite acceder a los controles de los campos\n */\n public updateFormGroup(filesControl: AbstractControl | null) {\n if (filesControl) {\n if (this.files.length > 0) {\n filesControl.setValue(this.files);\n filesControl.setErrors(null);\n this.updateName();\n } else {\n filesControl.setErrors(null);\n }\n this.updateName();\n }\n }\n\n /**\n * Función para actualizar el nombre de los archivos cargados\n */\n public updateName() {\n const fileCount = this.files.length;\n const pluralSuffix = fileCount !== 1 ? 's' : '';\n this.BehaviorSubjectMessageSelectFile.next(`Cargaste ${fileCount} archivo${pluralSuffix}`);\n }\n\n /**\n * Restablecer el estado de los archivos a su forma inicial\n */\n public resetFileState() {\n // Restablecer el estado a su forma inicial\n this.validateFiles = false;\n this.files = [];\n\n const filesControl = this.formGroupFc.get(this.filesFieldname);\n if (filesControl) {\n filesControl.setValue([]);\n filesControl.updateValueAndValidity();\n }\n }\n\n /**\n * Función para eliminar un archivo de la lista de archivos cargados\n */\n public removeFile(index: number) {\n this.files.splice(index, 1);\n const filesControl = this.formGroupFc.get(this.filesFieldname);\n this.updateFormGroup(filesControl);\n\n // Actualizar el nombre después de la eliminación\n this.updateName();\n\n // Verificar si la lista de archivos está vacía después de la eliminación\n if (this.files.length <= 0) {\n this.BehaviorSubjectMessageSelectFile.next('No hay archivos seleccionados');\n this.resetFileState();\n } else {\n this.updateName();\n }\n }\n\n /**\n * @description Método para verificar cuales controles son inválidos\n */\n public findInvalidControls(): string[] {\n const invalidControls: string[] = [];\n for (const name of Object.keys(this.formGroupFc.controls)) {\n if (this.formGroupFc.controls[name].invalid) {\n invalidControls.push(name);\n }\n }\n\n return invalidControls;\n }\n\n /**\n * @description Método para actualizar los validators para el campo files del formulario\n * @param typeAttach Argumento con la información para establecer o remover las validaciones\n */\n private updateFilesValidators(typeAttach: TypeAttach) {\n const filesControl = this.formGroupFc.get(this.filesFieldname);\n filesControl?.clearAsyncValidators();\n switch (typeAttach) {\n case TypeAttach.Required: {\n this.visibleInputFile = true;\n filesControl?.setValidators([Validators.required, Validators.minLength(5)]);\n break;\n }\n case TypeAttach.Optional: {\n this.visibleInputFile = true;\n break;\n }\n case TypeAttach.Disabled: {\n this.visibleInputFile = false;\n filesControl?.setValidators([Validators.maxLength(1)]);\n break;\n }\n default: {\n this.visibleInputFile = false;\n filesControl?.clearAsyncValidators();\n }\n }\n filesControl?.updateValueAndValidity();\n }\n\n /**\n * Función para eliminar o modificar caracteres especiales del nombre del archivo\n * @param fileName Nombre original del archivo\n * @returns Nombre del archivo sanitizado\n */\n public sanitizeFileName(fileName: string): string {\n // Reemplazar caracteres especiales por guiones bajos o eliminar espacios\n return fileName\n .replace(/[^a-zA-Z0-9.\\-_]/g, '_')\n .replace(/\\s+/g, '_')\n .replace(/_+/g, '_');\n }\n\n /**\n * Método encargado de envia el formulario\n */\n public onSubmit(): boolean {\n this.spinner.show();\n parent.window.utag.link({\n tealium_event: 'click',\n eventLabel: 'enviar',\n eventCategory: 'formulario_nexa',\n });\n\n const invalidControls = this.findInvalidControls();\n this.errorTextRequestSubmit = false;\n if (invalidControls.includes('textRequest')) {\n this.errorTextRequestSubmit = true;\n }\n\n if (invalidControls.length > 0) {\n this.spinner.hide();\n\n return false;\n }\n\n const data: CaptchaDto = {\n googletoken: this.formGroupFc.value.recaptchaReactive,\n };\n\n this.coreFacade.postRecaptcha(data);\n\n return true;\n }\n\n /**\n * Método encargado de validar el captcha\n */\n public doRecaptchaReceivedFO(reCaptcha: ReCaptchaDto) {\n this.tryRecaptcha = true;\n this.validRecaptcha$.next(reCaptcha.success || false);\n if (reCaptcha.isValidAuthentication) {\n // Se agrega el adjunto\n this.dataModel = {\n ...this.dataModel,\n Attachments: this.files.length > 0 ? true : false,\n CountAttachments: this.files.length,\n };\n\n // Asign a un valor a flagFidu para desplegar el popUp correspondiente\n this.dataTransferService.flagFidu =\n this.dataModel.TypeRequest === 'Queja anónima' || this.dataModel.TypeRequest === 'Sugerencia/Propuesta' ? 2 : 1;\n\n // Se realiza del envio de correo\n setTimeout(() => {\n this.coreFacade.saveFileStorage(this.files, (responseFilesInfo) => {\n const interactionModel: Interaction = {\n IdInteraction: 1,\n GuId: Guid.create().toString(),\n Forms: this.dataModel,\n Date: new Date(new Date().getTime() - new Date().getTimezoneOffset() * 60000).toISOString(),\n IdMailBox: this.dataModel.IdMailBox,\n IdTemplate: this.dataModel.IdTemplate,\n IdAttachmentMode: this.dataModel.IdAttachmentMode,\n Attachment: TypeAttach[Number(this.dataModel.Attachment)],\n Files: responseFilesInfo,\n };\n\n const interactionDto: InteractionDto = {\n payload: `${JSON.stringify(interactionModel)}`.trim(),\n version: '1',\n idSequence: 2,\n idFiling: 1,\n publishDate: new Date(),\n typeForm: 1,\n };\n\n this.coreFacade.saveInteraction(interactionDto, (responseInteraction) => {\n if (responseInteraction !== 'false') {\n this.spinner.hide();\n }\n });\n });\n }, 100);\n }\n }\n}\n","
\n \n
\n

Adjunta tus soportes aquí(Solo JPG, PDF, TIFF y JPEG, máximo 25 MB)

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

\n {{ file.name }}\n \n

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

{{ messageValidateFiles }}

\n
\n\n
\n \n
\n ¡El reCaptcha es Inválido! \n
\n

Al hacer clic en el botón enviar, se acepta la remisión de la PQRS a la Fiduciaria de Occidente.

\n
\n

Tus datos serán recolectados y tratados conforme con la Política de Tratamiento de Datos.

\n
\n

\n En caso de que la solicitud de información sea de naturaleza de identidad reservada, se deberá efectuar el\n respectivo trámite ante la Procuraduría General de la Nación, haciendo clic en el siguiente link:\n sedeelectronica.procuraduria.gov.co/PQRDSF/\n

\n
\n
\n \n\n","import { Component } from '@angular/core';\n\nimport { DataTransferService } from '../../../services/data-transfer.service';\n\n/**\n * Componente Angular\n */\n@Component({\n selector: 'app-dialog-popup',\n templateUrl: './dialog-popup.component.html',\n styleUrls: ['./dialog-popup.component.scss'],\n})\n/**\n * Clase de DialogoPopupComponet\n */\nexport class DialogPopupComponent {\n /**\n * Servicio encargado de transferir datos entre componentes\n */\n public dataTransferService: DataTransferService;\n\n public constructor(dataTransferService: DataTransferService) {\n this.dataTransferService = dataTransferService;\n }\n\n /**\n * Método para mostrar el consecutivo en el diálogo\n */\n public get radicado(): string {\n return this.dataTransferService.radicado;\n }\n\n /**\n * Método para mostrar el consecutivo en el diálogo\n */\n public get responseDays(): number {\n return this.dataTransferService.responseDays;\n }\n\n /**\n * Método para mostrar un popup u otro\n */\n public get flagFidu(): number {\n return this.dataTransferService.flagFidu;\n }\n\n}\n","
\n
\n

¡Solicitud enviada!

\n
Tu solicitud ha sido enviada con número de radicado: {{ radicado }}.
\n
El tiempo de respuesta para tu solicitud es de {{ responseDays }} días hábiles.
\n
Por favor conserva el número de radicado a fin de que puedas hacerle seguimiento, contactándonos a través de nuestras líneas de servicio al cliente, una vez cumplido el tiempo de respuesta.
\n
Líneas de servicio al cliente en Bogotá: (601) 742 74 45, en el resto del País: 01 8000 189 818.
\n\n
\n Entendido\n
\n
\n
\n

¡Solicitud enviada!

\n
Estimando cliente tu caso ha quedado radicado con el siguiente número {{ radicado }}
\n
\n Entendido\n
\n
\n\n","import { Component, OnInit } from '@angular/core';\n\n/**\n * Componente Angular\n */\n@Component({\n selector: 'app-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.scss'],\n})\n/**\n * Clases FooterComponent\n */\nexport class FooterComponent implements OnInit {\n public ngOnInit(): void {}\n}\n","\n
\n
\n \"\"\n \n
\n
\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { environment } from 'apps/form-contact/src/environments/environment';\nimport { Observable } from 'rxjs';\n\nimport { FileDto } from '../models/file.dto';\n\n/**\n * Servicio para el cargue de archivo al Storage\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class FileService {\n /**\n * Performs HTTP requests. This service is available as an injectable class,\n * with methods to perform HTTP requests. Each request method has multiple signatures,\n * and the return type varies based on the signature that is called (mainly the values of observe and responseType).\n */\n private readonly http: HttpClient;\n /**\n * Url del servicio\n */\n private readonly apiUrl: string | undefined;\n /**\n * Objeto FormData para almacenar los datos del archivo\n */\n public formData: FormData = new FormData();\n /**\n * Constructor del servicio\n * @param http Performs HTTP requests. This service is available as an injectable class\n */\n public constructor(http: HttpClient) {\n this.http = http;\n this.apiUrl = environment.apis.file;\n }\n\n /**\n * Método encargado de consultar el envio de correos\n * informacion almacenada en los claims de identity server y retornar la información\n * @returns Objeto de tipo @see FileDto con la información de envio correo\n */\n public PostUpdateFiles(files: File[]): Observable {\n if (files) {\n // Configurar FormData\n this.formData = new FormData();\n\n // Agregar los datos de la interfaz al formData\n for (const file of files) {\n this.formData.append('files', file);\n }\n }\n\n // Enviar la solicitud HTTP POST\n return this.http.post(`${this.apiUrl}/File/Upload/1?idCampaign=1&idUser=1&overwrite=false&target=1`, this.formData);\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { CarrouselDto } from '@bdo/carrousel';\nimport { OwlOptions } from 'ngx-owl-carousel-o';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { Observable } from 'rxjs';\n\nimport { CoreFacade } from '../../core.facade';\nimport { CoreState } from '../../state/core.state';\n\n/**\n * Componente Carrousel\n */\n@Component({\n selector: 'app-carousel',\n templateUrl: './carousel.component.html',\n styleUrls: ['./carousel.component.scss'],\n})\n/**\n * Clase para el componente Carrousel\n */\nexport class CarouselComponent implements OnInit {\n /**\n * CoreFacade\n */\n private readonly facade: CoreFacade;\n /**\n * Spinner Service\n */\n public readonly spinner: NgxSpinnerService;\n /**\n * Confiuraciones para los items del carrousel\n */\n public customOptions: OwlOptions = {\n loop: true,\n autoplay: true,\n center: true,\n dots: false,\n autoHeight: true,\n autoWidth: true,\n responsive: {\n 0: {\n items: 1,\n },\n 600: {\n items: 1,\n },\n 1000: {\n items: 1,\n },\n },\n };\n /**\n * CoreState\n */\n private readonly state: CoreState;\n /**\n * Observable carrousel\n */\n\n public carrousel$: Observable = new Observable();\n public constructor(facade: CoreFacade, state: CoreState, spinner: NgxSpinnerService) {\n this.facade = facade;\n this.state = state;\n this.spinner = spinner;\n this.carrousel$ = this.state.carrousel$;\n }\n\n public ngOnInit(): void {\n this.spinner.show();\n this.facade.getCarrousel(() => {\n this.spinner.hide();\n });\n }\n}\n","\n \n \n
\n
\n
\n
\n\n

Cargando...

\n
\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\n/**\n * Matriz de rutas base (inicial)\n */\nexport const routes: Routes = [\n {\n path: '',\n loadChildren: () => import('./core/core.module').then((x) => x.CoreModule),\n }];\n\n/**\n * Modulo de enrutamiento base de angular\n */\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule],\n})\nexport class AppRoutingModule { }\n","import { Component, OnInit } from '@angular/core';\n\n/**\n * Componente Angular\n */\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n})\n/**\n * Calse HeaderComponent\n */\nexport class HeaderComponent implements OnInit {\n public ngOnInit(): void {}\n}\n","\n","import { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { CoreModule } from '@nexa/core';\nimport { AuthModule } from 'angular-auth-oidc-client';\nimport { NgxSpinnerModule } from 'ngx-spinner';\n\nimport { environment } from '../environments/environment';\n\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { CoreModule as FormContactCoreModule } from './core/core.module';\nimport { TealiumUtagService } from './tealium/utag.service';\n\n/**\n * Modulo Principal de Angular\n */\n@NgModule({\n declarations: [AppComponent],\n imports: [\n AuthModule.forRoot(),\n BrowserModule,\n NgxSpinnerModule,\n MatIconModule,\n BrowserAnimationsModule,\n FormContactCoreModule,\n CoreModule.forRoot({\n environment,\n }),\n FormsModule,\n HttpClientModule,\n AppRoutingModule,\n ReactiveFormsModule,\n ],\n providers: [TealiumUtagService],\n bootstrap: [AppComponent],\n})\nexport class AppModule {}\n","import { Component, OnInit } from '@angular/core';\n\nimport { JsonFormData } from '../../../dynamic-form/models/json-form-data';\nimport { DataTransferService } from '../../../services/data-transfer.service';\nimport { CoreFacade } from '../../core.facade';\n\n/**\n * FormComponent\n */\n@Component({\n selector: 'app-form',\n templateUrl: './form.component.html',\n styleUrls: ['./form.component.scss'],\n})\nexport class FormComponent implements OnInit {\n /**\n * Propiedad que contiene la Typología desde el servicio\n */\n public formData!: JsonFormData;\n\n /**\n * Servicio encargado de transferir datos entre componentes\n */\n public dataTransferService: DataTransferService;\n\n /**\n * Facade Core\n */\n public coreFacade: CoreFacade;\n\n /**\n * Observable de companies\n */\n public companies: any[] = [];\n\n /**\n * Id compañia seleccionada\n */\n public companyId = 0;\n\n /**\n * @description Crea una nueva instancia de FormComponent\n *\n * @param coreFacade Injecta la instancia de CoreFacade\n * @param dataTransferService para transferir datos entre componentes\n */\n public constructor(coreFacade: CoreFacade, dataTransferService: DataTransferService) {\n this.coreFacade = coreFacade;\n this.dataTransferService = dataTransferService;\n }\n\n /**\n * método llamado luego de que han inicializados todas las propiedades\n */\n public ngOnInit(): void {\n this.coreFacade.typologies$().subscribe((x) => {\n if (x[0] && x[0].payload && x[0].payload.length > 0) {\n this.formData = JSON.parse(x[0].payload) as JsonFormData;\n }\n });\n this.loadCompanies();\n }\n\n /**\n * Método encargado de cargar las compañias existentes\n */\n public loadCompanies() {\n this.coreFacade.getCompanies(() => {\n this.coreFacade.companies$().subscribe((companies) => {\n this.companies = companies;\n });\n });\n }\n\n /**\n * Método encargado de asignar el Id de la compañia seleccionada\n */\n public companySelected(id: number) {\n this.companyId = id;\n this.dataTransferService.flagCompanieAlert = id;\n }\n}\n","
\n

Trabajamos para darte

\n

Un mejor servicio

\n

* Todos los campos son obligatorios

\n\n
\n \n \n
\n Compañía\n \n \n {{ company.name }}\n \n \n
\n
\n
\n \n \n
\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\nimport { TypeAttach } from '../core/models/type-attach';\nimport { JsonFormMetadata } from '../dynamic-form/models/json-form-data';\n\n/**\n * Servicio encargado de transferir datos entre componentes\n */\n@Injectable()\nexport class DataTransferService {\n /**\n * showRequest: Variable de control para mostrar solicitud\n */\n\n public showRequest = false;\n\n /**\n * Behavior Subject TypeAttach\n */\n public behaviorSubjectTypeAttach = new BehaviorSubject(TypeAttach.None);\n\n /**\n * subject Metadata\n */\n public subjectMetadata = new Subject();\n\n /**\n * radicado: Variable para mostrar el valor consecutivo una vez enviado el formulario\n */\n public radicado = '';\n\n /**\n * radicado: Variable para mostrar el valor consecutivo una vez enviado el formulario\n */\n public responseDays = 15;\n\n /**\n * flagFidu: Variable para mostrar un texto u otro de pop up\n */\n public flagFidu = 0;\n\n /**\n * flagCompanieAlert: Variable para mostrar un texto si es cliente Banco o Fiduci\n */\n public flagCompanieAlert = 0;\n\n /**\n * Crea una nueva instancia de @see DataTransferService\n */\n public constructor() {\n this.subjectMetadata.subscribe((response) => (this.responseDays = response.responseDays));\n }\n}\n","/**\n * Enumeración de TypeAttach\n */\n export enum TypeAttach {\n None = 0,\n Required = 1,\n Optional = 2,\n Disabled = 3,\n}\n","import { ChangeDetectionStrategy, Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';\nimport { AbstractControl, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSelectChange } from '@angular/material/select';\nimport { CaptchaDto, InteractionDto, ReCaptchaDto } from '@bdo/interaction';\nimport { CompanyDto, TypeClientDto } from '@bdo/typology';\nimport { environment } from 'apps/form-contact/src/environments/environment';\nimport { Guid } from 'guid-typescript';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\n\nimport { DialogPopupComponent } from '../../../core/components/dialog-popup/dialog-popup.component';\nimport { CoreFacade } from '../../../core/core.facade';\nimport { TypeAttach } from '../../../core/models/type-attach';\nimport { DataTransferService } from '../../../services/data-transfer.service';\nimport { EncryptService } from '../../../shared/services/encyrpt/encrypt.service';\nimport { TealiumUtagService } from '../../../tealium/utag.service';\nimport { getValidators } from '../../functions';\nimport { DataDecryptMe } from '../../models/data-decrypt-me';\nimport { DataModel } from '../../models/data-model';\nimport { FileData } from '../../models/file-data';\nimport { Interaction } from '../../models/interaction-model';\nimport { JsonFormControls, JsonFormData, JsonFormMetadata } from '../../models/json-form-data';\nimport { ValidateClient } from '../../models/validate-client';\n\n/**\n * JsonFormComponent permite crear formularios agregando controles a partir de un JSON\n */\n@Component({\n selector: 'app-json-form',\n styleUrls: ['./json-form.component.scss'],\n templateUrl: './json-form.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class JsonFormComponent implements OnChanges, OnInit, OnDestroy {\n /**\n * Servicio encargado de interactuar con el servicio de encriptación\n */\n private readonly encryptService: EncryptService;\n /**\n * Archivos selecionados\n */\n public selectedFile: File[] = [];\n /**\n * Observable destroy\n */\n public destroy$: Subject = new Subject();\n /**\n * Creador de Formulario para ser expuesto\n */\n public formBuilder: FormBuilder;\n /**\n * Contiene los controles del formulario\n */\n public formGroup: FormGroup;\n /**\n * Diálogo Popup con resultado del envío\n */\n public dialogPopup: MatDialog;\n /**\n * Contiene los controles del formulario\n */\n private readonly initialFormControlNames: string[] = [];\n /**\n * Mínimo valor para documento\n */\n public readonly minValueDocument = 99999;\n /**\n * Mínimo número de caracteres por solicitud\n */\n public readonly minNumberCharPerRequest = 10;\n /**\n * Mínimo número de caracteres por solicitud\n */\n public readonly maxNumberCharPerRequest = 750;\n /**\n * Número de caracteres en la descripción\n */\n public valor = 0;\n /**\n * JsonFormData asociado al componente\n */\n @Input() public jsonFormData!: JsonFormData;\n /**\n * CompanyId asociado al componente\n */\n @Input() public companyId!: number;\n /**\n * Observable con Company\n */\n public readonly companies$: Observable;\n /**\n * Arreglo con Company\n */\n private companies: CompanyDto[] = [];\n /**\n * Observable con TypeClient\n */\n public readonly typeClients$: Observable;\n /**\n * Arreglo con TypeClient\n */\n private typeClients: TypeClientDto[] = [];\n /**\n * Observable con ReCaptcha\n */\n private readonly reCaptcha$: Observable;\n /**\n * Facade Core\n */\n public coreFacade: CoreFacade;\n /**\n * Servicio encargado de transferir datos entre componentes\n */\n public dataTransferService: DataTransferService;\n /**\n * Nombre de Campo para Archivos\n */\n public readonly filesFieldname = 'files';\n /**\n * visibleInputFile: Variable de control para mostrar Input de tipo File\n */\n public visibleInputFile = true;\n /**\n * visibleInputNoClient: Variable de control para mostrar Input de tipo no cliente\n */\n public visibleInputNoClient = false;\n /**\n * visibleInputNoClientOcci: Variable de control para mostrar Input de tipo no cliente\n */\n public visibleInputNoClientOcci = false;\n /**\n * visibleInputNoClientOcci: Variable de control para mostrar Input de tipo no cliente\n */\n public visibleInputTypeClient = false;\n /**\n * tryRecaptcha: Intento del Recatcha\n */\n public tryRecaptcha = false;\n /**\n * errorTextRequestSubmit: Intento de envío con error\n */\n public errorTextRequestSubmit = false;\n /**\n * BehaviorSubject para mostrar archivo subido\n */\n private readonly BehaviorSubjectMessageSelectFile = new BehaviorSubject('Seleccione su archivo');\n /**\n * messageSelectFile$ texto para mostrar archivo subido\n */\n public readonly messageSelectFile$ = this.BehaviorSubjectMessageSelectFile.asObservable();\n /**\n * messageButton texto para botón\n */\n public messageButton = 'Subir';\n /**\n * Lista de Archivos seleccionados\n */\n public selectedFiles?: FileList;\n /**\n * Arreglo con la información de los archivos.\n */\n public files: File[] = [];\n /**\n * Spinner Service\n */\n public readonly spinner: NgxSpinnerService;\n /**\n * Tealium\n */\n public readonly tealium: TealiumUtagService;\n /**\n * Bandera para validar estado de archivos\n */\n public validateFiles = false;\n /**\n * Mensaje de alerta de archivos\n */\n public messageValidateFiles = '';\n /**\n * Flag para visualizar el mensaje segun la compañia\n */\n public visibleMessage = false;\n /**\n * Flag para escoger mensaje segun la compañia\n */\n public message = false;\n /**\n * Método para verificar si se muestra Input de tipo File o no.\n */\n public get showInputFile(): boolean {\n return this.visibleInputFile;\n }\n /**\n * Método para exponer que el Recaptcha sea válido\n */\n public validRecaptcha$ = new BehaviorSubject(false);\n /**\n * Método para desuscribir el recaptcha\n */\n private readonly reCaptchaSubscription: Subscription;\n /**\n * @description Crea una nueva instancia de JsonFormComponent\n * @param formBuilder Parámetro-Propiedad de tipo FormBuilder (uso interno)\n * @param dialogPopup Encargado del popUp al finalizar el envío\n * @param coreFacade Injecta la instancia de CoreFacade\n * @param dataTransferService para transferir datos entre componentes\n * @param spinner Injecta la instancia de Spinner\n * @param tealium Injecta la instancia de Tealium\n * @param encryptService Encargado de encriptar información\n */\n public constructor(\n formBuilder: FormBuilder,\n dialogPopup: MatDialog,\n coreFacade: CoreFacade,\n dataTransferService: DataTransferService,\n spinner: NgxSpinnerService,\n tealium: TealiumUtagService,\n encryptService: EncryptService,\n ) {\n this.formBuilder = formBuilder;\n this.formGroup = this.formBuilder.group({});\n this.dialogPopup = dialogPopup;\n this.coreFacade = coreFacade;\n this.spinner = spinner;\n this.tealium = tealium;\n this.encryptService = encryptService;\n this.dataTransferService = dataTransferService;\n this.formGroup = this.buildFormGroup();\n for (const controlName of Object.keys(this.formGroup.controls)) {\n this.initialFormControlNames.push(controlName);\n }\n this.companies$ = this.coreFacade.companies$();\n this.typeClients$ = this.coreFacade.typeClients$();\n this.reCaptcha$ = this.coreFacade.reCaptcha$();\n\n dataTransferService.behaviorSubjectTypeAttach.subscribe((response) => this.updateFilesValidators(response));\n dataTransferService.subjectMetadata.subscribe((response) => this.setMetadataFields(response));\n this.companies$.subscribe((response) => (this.companies = response));\n this.typeClients$.subscribe((response) => (this.typeClients = response));\n this.reCaptchaSubscription = this.reCaptcha$.subscribe((response) => this.doRecaptchaReceived(response));\n this.coreFacade.radicado$().subscribe((response) => {\n dataTransferService.radicado = response;\n this.dialogPopup.open(DialogPopupComponent, {\n disableClose: true,\n });\n });\n this.tealium.setConfig({\n account: environment.tealiumAccount,\n profile: environment.tealiumProfile,\n environment: environment.tealiumEnviroment,\n });\n }\n /**\n * @description A lifecycle hook that is called after Angular has initialized all data-bound properties of a directive.\n */\n public ngOnInit(): void {\n this.spinner.show();\n this.onCompanyChange(this.companyId);\n /** spinner ends after 5 seconds */\n this.coreFacade.getCompanies(() => {\n this.coreFacade.getTypeClients(() => {\n this.spinner.hide();\n });\n });\n }\n /**\n * Metodo ngOnDestroy\n */\n public ngOnDestroy() {\n if (this.jsonFormData) {\n this.jsonFormData.controls = new Array();\n }\n this.coreFacade.ngOnDestroy();\n this.reCaptchaSubscription.unsubscribe();\n }\n /**\n * @description Método llamado luego de que una propiedad enlazada cambia\n */\n public ngOnChanges(changes: SimpleChanges) {\n if (!changes.jsonFormData.firstChange) {\n this.addControlsToForm(this.jsonFormData.controls);\n }\n }\n /**\n * @description Método encargado de crear el formulario\n */\n private buildFormGroup() {\n let internalFormGroup;\n if (this.visibleInputNoClient) {\n internalFormGroup = this.formBuilder.group({\n document: ['', [Validators.required, Validators.minLength(5), Validators.maxLength(12)]],\n company: ['', [Validators.required]],\n typeClient: ['', [Validators.required]],\n textRequest: [\n '',\n [Validators.required, Validators.minLength(this.minNumberCharPerRequest), Validators.maxLength(750)],\n ],\n name: [''],\n email: [\n '',\n [\n Validators.required,\n Validators.email,\n Validators.pattern(\n '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.(com|org|net|edu|gov|mil|info|io|co|me|biz|xyz|us|uk|es|fr|de|jp|cn|br|au|ca|COM|ORG|NET|EDU|GOV|MIL|INFO|IO|CO|ME|BIZ|XYZ|US|UK|ES|FR|DE|JP|CN|BR|AU|CA)$',\n ),\n ],\n ],\n files: [''],\n idTemplate: [''],\n idMailbox: [''],\n idAttachmentMode: [''],\n recaptchaReactive: [null, Validators.required],\n });\n } else {\n internalFormGroup = this.formBuilder.group({\n document: ['', [Validators.required, Validators.minLength(5), Validators.maxLength(12)]],\n company: ['', [Validators.required]],\n typeClient: ['', [Validators.required]],\n textRequest: [\n '',\n [Validators.required, Validators.minLength(this.minNumberCharPerRequest), Validators.maxLength(750)],\n ],\n files: [''],\n name: [''],\n email: [\n '',\n [\n Validators.required,\n Validators.email,\n Validators.pattern(\n '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.(com|org|net|edu|gov|mil|info|io|co|me|biz|xyz|us|uk|es|fr|de|jp|cn|br|au|ca|COM|ORG|NET|EDU|GOV|MIL|INFO|IO|CO|ME|BIZ|XYZ|US|UK|ES|FR|DE|JP|CN|BR|AU|CA)$',\n ),\n ],\n ],\n idTemplate: [''],\n idMailbox: [''],\n idAttachmentMode: [''],\n recaptchaReactive: [null, Validators.required],\n });\n }\n\n return internalFormGroup;\n }\n\n /**\n * @description Método para actualizar los campos Metadata en el formulario\n * @param metadata Argumento con la información para establecer o remover los campos\n */\n private setMetadataFields(metadata: JsonFormMetadata) {\n const idTemplateControl = this.formGroup.get('idTemplate');\n idTemplateControl?.setValue(metadata.idTemplate);\n const idMailboxControl = this.formGroup.get('idMailbox');\n idMailboxControl?.setValue(metadata.idMailbox);\n const idAttachmentModeControl = this.formGroup.get('idAttachmentMode');\n idAttachmentModeControl?.setValue(metadata.idAttachmentMode);\n }\n\n /**\n * @description Método para actualizar los validators para el campo files del formulario\n * @param typeAttach Argumento con la información para establecer o remover las validaciones\n */\n private updateFilesValidators(typeAttach: TypeAttach) {\n const filesControl = this.formGroup.get(this.filesFieldname);\n filesControl?.clearAsyncValidators();\n switch (typeAttach) {\n case TypeAttach.Required: {\n this.visibleInputFile = true;\n filesControl?.setValidators([Validators.required, Validators.minLength(5)]);\n break;\n }\n case TypeAttach.Optional: {\n this.visibleInputFile = true;\n break;\n }\n case TypeAttach.Disabled: {\n this.visibleInputFile = false;\n filesControl?.setValidators([Validators.maxLength(1)]);\n break;\n }\n default: {\n this.visibleInputFile = false;\n filesControl?.clearAsyncValidators();\n }\n }\n filesControl?.updateValueAndValidity();\n }\n\n /**\n * @description Método que agrega los controles al Formulario\n * @param controls arreglo de controles que se agregarán\n */\n public addControlsToForm(controls: JsonFormControls[]) {\n if (controls) {\n for (const control of controls) {\n this.addControl(control);\n }\n }\n }\n\n /**\n * @description Método llamado para agregar validaciones a los campos name y email si es tercero\n */\n public addNewControl() {\n this.formGroup = this.formBuilder.group({\n ...this.formGroup.controls,\n name: ['', Validators.required],\n });\n }\n /**\n * @description Método llamado para remover validaciones a los campos name y email si no es tercero\n */\n public removeNewControl() {\n this.formGroup = this.formBuilder.group({\n ...this.formGroup.controls,\n name: [''],\n });\n }\n\n /**\n * @description Método llamado para agregar Control al formulario\n * @param control Control que se agregará\n */\n private addControl(control: JsonFormControls) {\n this.formGroup.addControl(control.name, this.formBuilder.control(control.value, getValidators(control)));\n }\n\n /**\n * @description Método llamado para agregar Control al formulario\n * @param control Control que se agregará\n */\n public onAddControl(addControlEvent: JsonFormControls) {\n this.addControl(addControlEvent);\n addControlEvent.visible = true;\n }\n\n /**\n * @description Método que elimina los controles no iniciales\n */\n private removeNotInitialContros() {\n for (const controlName of Object.keys(this.formGroup.controls)) {\n if (!this.initialFormControlNames.includes(controlName)) {\n this.removeControl(controlName);\n this.jsonFormData.controls = new Array();\n }\n }\n }\n\n /**\n * Método que se llamará para remover un control del Form\n */\n private removeControl(controlName: string) {\n if (this.formGroup.contains(controlName)) {\n this.formGroup.removeControl(controlName);\n }\n }\n\n /**\n * @description Método llamado por el evento keypress permite solo números\n */\n public numberOnly(event: any): boolean {\n const charCode = event.which ? event.which : event.keyCode;\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\n return false;\n }\n\n this.formGroup.controls.company.setValue('');\n\n return true;\n }\n /**\n * @description Método llamado por el evento keyup, para contar el numero de caracteres\n */\n public count() {\n const form = this.formGroup.value;\n this.valor = form.textRequest.length;\n }\n /**\n * @description Método llamado por el evento change de la lista de Compañías\n */\n public onCompanyChange(event: number) {\n const form = this.formGroup.value;\n this.formGroup.controls.company.setValue(Number(event));\n if (Number(event) !== 0 && form.document !== '') {\n // Restablecer valor del tipo de cliente\n this.removeNewControl();\n this.formGroup.patchValue({ typeClient: '' });\n this.dataTransferService.showRequest = false;\n this.tryRecaptcha = false;\n this.errorTextRequestSubmit = false;\n this.removeNotInitialContros();\n this.spinner.show();\n this.message = false;\n\n // Verificar si el tipo de cliente es \"tercero\" y se agregaron controles adicionales\n if (Number(event) !== 3 && this.visibleInputNoClient) {\n this.visibleInputNoClient = false;\n this.removeNewControl(); // Función para eliminar los controles adicionales\n }\n\n // Quita tercero para occidente\n if (Number(event) === 1) {\n this.message = true;\n this.typeClients$\n .pipe(\n map((x) => {\n const datos = x.filter((y) => y.id !== 3);\n this.coreFacade.setTypeClients(datos);\n }),\n takeUntil(this.coreFacade.destroy$),\n )\n .subscribe();\n } else {\n this.coreFacade.getTypeClients(() => {\n this.message = false;\n this.typeClients$\n .pipe(takeUntil(this.coreFacade.destroy$))\n .subscribe((response) => (this.typeClients = response));\n });\n }\n\n // Validación de cliente\n this.coreFacade.validateClient(+event, form.document, (data) => {\n const validateEm = JSON.stringify(data);\n const validateEmJson: DataDecryptMe = JSON.parse(validateEm);\n const dataDecrypt = this.encryptService.toDecrypt(validateEmJson.data);\n const dataDeserealized = JSON.parse(dataDecrypt) as ValidateClient;\n if (dataDeserealized.isClient) {\n this.coreFacade.getTypologies(+event, form.typeClient);\n this.visibleInputNoClientOcci = false;\n this.visibleInputTypeClient = true;\n } else {\n if (Number(event) === 1) {\n this.visibleInputNoClientOcci = true;\n this.visibleInputTypeClient = false;\n this.visibleMessage = false;\n } else {\n this.visibleInputNoClientOcci = false;\n this.visibleInputTypeClient = false;\n this.visibleMessage = false;\n }\n }\n\n this.spinner.hide();\n });\n } else {\n this.errorTextRequestSubmit = false;\n }\n }\n /**\n * @description Método llamado por el evento change de la lista de Tipos de cliente\n */\n public onTypeClientChange(event: MatSelectChange) {\n this.visibleMessage = true;\n this.tryRecaptcha = false;\n this.errorTextRequestSubmit = false;\n this.dataTransferService.showRequest = false;\n this.removeNotInitialContros();\n\n const selectedCompany = this.formGroup.value.company;\n\n // Elimina controles si no es tercero\n if (Number(event) !== 3) {\n this.visibleInputNoClient = false;\n this.removeNewControl();\n } else {\n // Agrega controles si es tercero\n this.visibleInputNoClient = true;\n this.addNewControl();\n }\n // Actualiza los datos según la nueva selección de tipo de cliente y compañía\n this.coreFacade.getTypologies(selectedCompany, +event);\n }\n\n /**\n * Metodo para el cargue de archivos\n */\n public onFileChange(event: any) {\n this.validateFiles = false;\n this.selectedFiles = event.target.files as FileList;\n const filesControl = this.formGroup.get(this.filesFieldname);\n\n if (this.selectedFiles && this.selectedFiles.length > 0) {\n let totalSize = this.calculateTotalSize(this.files);\n\n // Convertir FileList a un array para poder iterar\n const filesArray = Array.from(this.selectedFiles);\n\n for (const file of filesArray) {\n if (this.isValidFile(file)) {\n if (totalSize + file.size <= 25165824) {\n // Verificar si el tamaño total no excede 25 MB\n totalSize += file.size;\n this.readFileContent(file, filesControl);\n } else {\n this.validateFiles = true;\n this.messageValidateFiles = 'El tamaño total a cargar es mayor a 24 MB';\n break; // Salir del bucle si se excede el tamaño máximo\n }\n } else {\n this.validateFiles = true;\n this.messageValidateFiles = 'Los formatos de archivo deben ser JPG, PDF, TIFF, JPEG';\n break; // Salir del bucle si se encuentra un archivo no válido\n }\n }\n }\n }\n\n /**\n * Metodo para calcular si el peso total de los archivos es valido\n */\n public calculateTotalSize(files: FileData[]): number {\n return files.reduce((acc, file) => acc + file.size, 0);\n }\n /**\n * Metodo encargado de validar el formato del archivo\n */\n public isValidFile(file: File): boolean {\n const allowedFormats = ['pdf', 'jpg', 'jpeg', 'tiff'];\n const fileExtension = file.name.split('.').pop()?.toLowerCase();\n if (fileExtension) {\n return allowedFormats.includes(fileExtension);\n }\n\n return false; // Devolver falso si no se puede determinar la extensión del archivo\n }\n /**\n * Función para eliminar o modificar caracteres especiales del nombre del archivo\n * @param fileName Nombre original del archivo\n * @returns Nombre del archivo sanitizado\n */\n public sanitizeFileName(fileName: string): string {\n // Reemplazar caracteres especiales por guiones bajos o eliminar espacios\n return fileName\n .replace(/[^a-zA-Z0-9.\\-_]/g, '_')\n .replace(/\\s+/g, '_')\n .replace(/_+/g, '_');\n }\n /**\n * Función para leer el contenido del archivo seleccionado\n */\n public readFileContent(file: File, filesControl: AbstractControl | null) {\n // Verificar si el archivo con el mismo nombre ya está en la lista de archivos\n const existingFile = this.files.find((f) => f.name.toLowerCase() === file.name.toLowerCase());\n\n if (existingFile) {\n // Manejar el caso de archivo con el mismo nombre\n this.validateFiles = true;\n this.messageValidateFiles = 'Ya existe un archivo con el mismo nombre en la lista';\n } else {\n const reader = new FileReader();\n\n reader.onload = () => {\n // Convertir la extensión del archivo a minúsculas antes de añadirlo a la lista\n const fileNameParts = file.name.split('.');\n // Convertimos la extensión en minúsculas\n const extension = fileNameParts.pop()?.toLowerCase();\n // Reconstruimos el nombre base y lo sanitizamos\n const baseName = this.sanitizeFileName(fileNameParts.join('.'));\n // Unimos las partes\n const sanitizedFileName = `${baseName}.${extension}`;\n // Creamos un nuevo objeto File con el mismo contenido\n const sanitizedFile = new File([file], sanitizedFileName, { type: file.type });\n // Lo agregamos al arreglo de Files\n this.files.push(sanitizedFile);\n this.updateFormGroup(filesControl);\n };\n\n reader.readAsDataURL(file);\n }\n }\n /**\n * Función para actualizar el formulario con los archivos seleccionados\n * @param filesControl variable que permite acceder a los controles de los campos\n */\n public updateFormGroup(filesControl: AbstractControl | null) {\n if (filesControl) {\n if (this.files.length > 0) {\n filesControl.setValue(this.files);\n filesControl.setErrors(null);\n this.updateName();\n } else {\n filesControl.setErrors(null);\n }\n this.updateName();\n }\n }\n /**\n * Función para actualizar el nombre de los archivos cargados\n */\n public updateName() {\n const fileCount = this.files.length;\n const pluralSuffix = fileCount !== 1 ? 's' : '';\n this.BehaviorSubjectMessageSelectFile.next(`Cargaste ${fileCount} archivo${pluralSuffix}`);\n }\n /**\n * Restablecer el estado de los archivos a su forma inicial\n */\n public resetFileState() {\n // Restablecer el estado a su forma inicial\n this.validateFiles = false;\n this.files = [];\n\n const filesControl = this.formGroup.get(this.filesFieldname);\n if (filesControl) {\n filesControl.setValue([]);\n filesControl.updateValueAndValidity();\n }\n }\n /**\n * Función para eliminar un archivo de la lista de archivos cargados\n */\n public removeFile(index: number) {\n this.files.splice(index, 1);\n const filesControl = this.formGroup.get(this.filesFieldname);\n this.updateFormGroup(filesControl);\n\n // Actualizar el nombre después de la eliminación\n this.updateName();\n\n // Verificar si la lista de archivos está vacía después de la eliminación\n if (this.files.length <= 0) {\n this.BehaviorSubjectMessageSelectFile.next('No hay archivos seleccionados');\n this.resetFileState();\n } else {\n this.updateName();\n }\n }\n /**\n * @description Método para verificar cuales controles son inválidos\n */\n public findInvalidControls(): string[] {\n const invalidControls: string[] = [];\n for (const name of Object.keys(this.formGroup.controls)) {\n if (this.formGroup.controls[name].invalid) {\n invalidControls.push(name);\n }\n }\n\n return invalidControls;\n }\n\n /**\n * @description Método para atender el Submit del formulario\n */\n public onSubmit(): boolean {\n this.spinner.show();\n parent.window.utag.link({\n tealium_event: 'click',\n eventLabel: 'enviar',\n eventCategory: 'formulario_nexa',\n });\n\n const invalidControls = this.findInvalidControls();\n this.errorTextRequestSubmit = false;\n if (invalidControls.includes('textRequest')) {\n this.errorTextRequestSubmit = true;\n }\n\n if (invalidControls.length > 0) {\n this.spinner.hide();\n\n return false;\n }\n\n const data: CaptchaDto = {\n googletoken: this.formGroup.value.recaptchaReactive,\n };\n\n this.coreFacade.postRecaptcha(data);\n\n return true;\n }\n\n /**\n * Metodo doRecaptchaReceived\n */\n public doRecaptchaReceived(reCaptcha: ReCaptchaDto) {\n this.spinner.show();\n this.tryRecaptcha = true;\n this.validRecaptcha$.next(reCaptcha.success || false);\n if (reCaptcha.isValidAuthentication) {\n const formGroupValue = this.formGroup.value;\n\n this.dataTransferService.flagFidu = formGroupValue.company === 1 ? 0 : 1;\n const dataModel: DataModel = {\n NumberDocument: formGroupValue.document,\n Name: formGroupValue.name || '',\n Email: formGroupValue.email || '',\n TypeClient: this.typeClients.find((x) => x.id === formGroupValue.typeClient)?.name,\n Product: this.formGroup.get('product')?.value,\n TypeRequest: this.formGroup.get('typeOfRequest')?.value,\n Attachments: this.files.length > 0 ? true : false,\n MessageClient: formGroupValue.textRequest,\n CountAttachments: this.files.length,\n Company: this.companies.find((x) => x.id === formGroupValue.company)?.name,\n IsClient: true,\n IdCLient: environment.occidenteIdClient,\n IdCamapaign: environment.occidenteIdCampaign,\n };\n\n // Se realizar de la interacion\n setTimeout(() => {\n this.coreFacade.saveFileStorage(this.files, (responseFilesInfo) => {\n\n const interactionModel: Interaction = {\n IdInteraction: 1,\n GuId: Guid.create().toString(),\n Forms: dataModel,\n Date: new Date(new Date().getTime() - new Date().getTimezoneOffset() * 60000).toISOString(),\n Files: responseFilesInfo,\n IdMailBox: formGroupValue.idMailbox,\n IdTemplate: formGroupValue.idTemplate,\n IdAttachmentMode: formGroupValue.idAttachmentMode,\n Attachment: TypeAttach[formGroupValue.idAttachmentMode],\n };\n\n const interactionDto: InteractionDto = {\n payload: `${JSON.stringify(interactionModel)}`.trim(),\n version: '1',\n idSequence: 2,\n idFiling: 1,\n publishDate: new Date(),\n typeForm: 1,\n };\n\n this.coreFacade.saveInteraction(interactionDto, (responseInteraction) => {\n if (responseInteraction !== 'false') {\n this.spinner.hide();\n }\n });\n });\n }, 100);\n\n this.formGroup.reset();\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úmero de Documento o NIT *\n \n
\n
\n\n 0\"\n style=\"color: red\"\n >\n El número de documento debe tener más de 4 dígitos.\n
\n\n \n \n
\n Nombres y Apellidos *\n \n
\n
\n\n \n \n
\n Correo Electrónico *\n \n \n \n Por favor, ingresa un correo electrónico válido.\n
\n \n
\n\n \n \n
\n Tipo de Cliente *\n \n \n {{ typeClient.name }}\n \n \n
\n \n\n \n
\n \n

\n Te informamos que si dentro del siguiente listado no encuentras tu inquietud, te invitamos a contactarnos para\n poder colaborarte a través de las líneas de servicio al cliente, Bogotá (601) 390 20 58, a nivel nacional\n 018000514652 o WhatsApp 3186714836.
\n Te informamos que la respuesta a tu solicitud será enviada al correo electrónico registrado como principal ante\n el Banco\n

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

\n Creo que aún no eres nuestro cliente,\n Por favor verifica que tu número de documento este correcto o para poder ayudarte, te invitamos por\n favor a comunicarte a nuestras líneas de atención en Bogotá (601) 390 20 58 y\n para el resto del país al 018000 514 652 o comunícate a nuestro\n Chat\n

\n

Si deseas adquirir productos con nosotros aquí te podemos ayudar

\n
\n
\n
\n \n \n \n \n\n
\n \n \n \n\n \n \n
\n {{ control.label }}\n \n
\n \n\n \n \n
\n {{ control.label }}\n \n
\n
\n\n \n \n
\n ¿Cómo te podemos ayudar? *\n \n \n\n \n
\n {{ this.valor }}|750\n
\n \n Por favor, ingresa como mínimo 10 caracteres.\n
\n
\n \n\n \n
\n \n \n
\n
0\">\n
\n

\n {{ file.name }}\n \n

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

{{ messageValidateFiles }}

\n
\n\n \n
\n \n
\n ¡El reCaptcha es Inválido! \n \n
\n\n \n\n","import { Injectable } from '@angular/core';\nimport { environment } from 'apps/form-contact/src/environments/environment';\nimport * as CryptoJS from 'crypto-js';\n\n/**\n * Servicio encargado de administrar los tipos de do\n */\n@Injectable()\nexport class EncryptService {\n /**\n * Llave privada\n */\n private readonly key = CryptoJS.enc.Utf8.parse(environment.signingAesKey);\n /**\n * Algoritmo\n */\n private readonly iv = CryptoJS.enc.Utf8.parse(environment.signingAesKey.substring(0, 16));\n\n /**\n * Metodo encargado de encriptar informacion\n */\n public toEncrypt(data: string): string {\n const encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(data.toString()), this.key, { iv: this.iv });\n\n return encrypted.toString();\n }\n\n /**\n * Metodo encargado de desencriptar informacion\n */\n public toDecrypt(data: string): string {\n const decrypted = CryptoJS.AES.decrypt(data, this.key, { iv: this.iv });\n\n return decrypted.toString(CryptoJS.enc.Utf8);\n }\n}\n","import { Directive, Input } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\n/**\n * Directiva para inhabilitar controles\n */\n@Directive({\n selector: '[disableControl]',\n})\nexport class DisableControlDirective {\n /**\n * Método para establecer si el componente es inhabilitado o no\n *\n * @param condition Valor booleano a establecer\n */\n @Input() set disableControl(condition: boolean) {\n const action = condition ? 'disable' : 'enable';\n if (this.ngControl.control) {\n this.ngControl.control[action]();\n }\n }\n /**\n * @description Crea una nueva instancia de DisableControlDirective\n *\n * @param ngControl Parámetro-Propiedad de tipo NgControl (uso interno)\n */\n public constructor(private ngControl: NgControl) {}\n}\n","import { Component, OnInit } from '@angular/core';\n\nimport { environment } from '../environments/environment';\n\nimport { TealiumUtagService } from './tealium/utag.service';\n\n/**\n * Componente de inicio de angular\n */\n@Component({\n selector: 'app-root',\n providers: [TealiumUtagService],\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'],\n})\nexport class AppComponent implements OnInit {\n /**\n * Título Inicial\n */\n public title = 'form-contact';\n /**\n * Propidad Tealium\n */\n private readonly tealium: TealiumUtagService;\n /**\n * Constructor de la clase\n * @param tealium Servicio de Tealium para la gestión de etiquetas\n */\n public constructor(tealium: TealiumUtagService) {\n this.tealium = tealium;\n this.tealium.setConfig({ account: environment.tealiumAccount, profile: environment.tealiumProfile, environment: environment.tealiumEnviroment });\n }\n\n /**\n * Función que se ejecuta al iniciar el componente\n */\n public ngOnInit(): void {\n // The tealium.view function will call the tealium.track function with 'view' as first param\n // Most tags support the 'view' event and many analytics tags also support the 'link' event\n this.tealium.view({event_name: 'init'});\n // This.tealium.track('view', {'event_name' : 'init'});\n }\n}\n","\n","import { ExtendedEnvironment } from '../app/dynamic-form/models/extended-enviroments.models';\n\n/**\n * Configuración del entorno\n */\nexport const environment: ExtendedEnvironment = {\n production: true,\n googleCaptcha: '6LfrSrUeAAAAAASLKkHTxmECBaCRQMiHhmeVN0ge',\n signingAesKey: 'F3gLZRh7Z7meR7hQx3f1SOrfgGPxMaGE',\n tealiumAccount: 'adl',\n tealiumProfile: 'occidente',\n tealiumEnviroment: 'prod',\n occidenteIdCampaign:30223,\n occidenteIdClient:8,\n fiduoccidenteIdCampaign:30224,\n fiduoccidenteIdClient:10021,\n identityServer: {\n },\n apis: {\n sts: 'https://identity-server-api.staging.nexabpo.com/api',\n acl: 'undefined',\n user: 'https://contactenos.bancodeoccidente.com.co/user/api',\n typology: 'https://contactenos.bancodeoccidente.com.co/typology/api',\n interaction: 'https://contactenos.bancodeoccidente.com.co/interaction/api',\n 'send-email': 'https://contactenos.bancodeoccidente.com.co/send-email/api',\n carrousel : 'https://contactenos.bancodeoccidente.com.co/carrousel/api',\n 'request-url': 'https://contactenos.bancodeoccidente.com.co/request-url/api',\n outbound:'https://core-nexaplus.nexabpo.com/out-product/api',\n file:'https://contactenos.bancodeoccidente.com.co/files/api'\n },\n environmentName: 'Production',\n};\n","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { CaptchaDto, InteractionDto, ReCaptchaDto } from '@bdo/interaction';\nimport { Guid } from 'guid-typescript';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport Swal from 'sweetalert2';\n\nimport { DataDecryptMe } from '../../../dynamic-form/models/data-decrypt-me';\nimport { ValidateClient } from '../../../dynamic-form/models/validate-client';\nimport { EncryptService } from '../../../shared/services/encyrpt/encrypt.service';\nimport { CoreFacade } from '../../core.facade';\nimport { FormCustomerPrivacy } from '../../models/form-customer-privacy';\nimport { Interaction } from '../../models/interaction';\nimport { Select } from '../../models/select';\n\n/**\n * Componente Angular\n */\n@Component({\n selector: 'app-customer-privacy',\n templateUrl: './customer-privacy.component.html',\n styleUrls: ['./customer-privacy.component.scss'],\n})\n/**\n * Clase customerPrivacyComponent\n */\nexport class CustomerPrivacyComponent implements OnInit {\n /**\n * Servicio encargado de interactuar con el servicio de encriptación\n */\n private readonly encryptService: EncryptService;\n /**\n * Creador de Formulario para ser expuesto\n */\n public formBuilder: FormBuilder;\n /**\n * Facade Core\n */\n public coreFacade: CoreFacade;\n /**\n * Bandera de si es cliente o no\n */\n public isClient = false;\n /**\n * Bandera de que se encarga de validar si se esta inicializando el formulario\n */\n public init = true;\n /**\n * Contiene los controles del formulario\n */\n public formGroup: FormGroup;\n /**\n * Observable con ReCaptcha\n */\n private readonly reCaptcha$: Observable;\n /**\n * tryRecaptcha: Intento del Recatcha\n */\n public tryRecaptcha = false;\n /**\n * Método para exponer que el Recaptcha sea válido\n */\n public validRecaptcha$ = new BehaviorSubject(false);\n /**\n * Diálogo Popup con resultado del envío\n */\n public contactChannel: Select[];\n /**\n * Dialog Popup con los tipos de documentos\n */\n public documentType: Select[];\n /**\n * Diálogo Popup con resultado del envío\n */\n public informationChannel: Select[];\n /**\n * Spinner Service\n */\n public readonly spinner: NgxSpinnerService;\n\n /**\n * Constructor para el componente CustomerPrivacyComponent\n * @param formBuilder Creador de Formulario para ser expuesto\n * @param coreFacade Facade Core\n * @param spinner Spinner Service\n */\n public constructor(\n formBuilder: FormBuilder,\n coreFacade: CoreFacade,\n spinner: NgxSpinnerService,\n encryptService: EncryptService,\n ) {\n this.formBuilder = formBuilder;\n this.coreFacade = coreFacade;\n this.encryptService = encryptService;\n this.formGroup = this.formBuilder.group({\n documentType: ['', [Validators.required]],\n document: ['', [Validators.pattern(''), Validators.required, Validators.minLength(5), Validators.maxLength(12)]],\n contactChannel: ['', [Validators.required]],\n informationChannel: ['', [Validators.required]],\n recaptchaReactive: [null, Validators.required],\n });\n this.isClient = false;\n this.init = true;\n this.reCaptcha$ = this.coreFacade.reCaptcha$();\n this.reCaptcha$.subscribe((response) => this.onRecaptcha(response));\n this.spinner = spinner;\n\n /// Informacion de los canales de contacto\n this.contactChannel = [\n {\n id: 1,\n value: 'Llamadas telefónicas y WhatsApp',\n },\n {\n id: 2,\n value: 'Llamadas telefónicas',\n },\n {\n id: 3,\n value: 'WhatsApp',\n },\n ];\n /// Informacion de los tipos de documento\n this.documentType = [\n {\n id: 1,\n type: 'CC',\n value: 'Cédula de Ciudadanía',\n },\n {\n id: 2,\n type: 'TI',\n value: 'Tarjeta de Identidad',\n },\n {\n id: 3,\n type: 'CE',\n value: 'Cédula de Extranjería',\n },\n {\n id: 4,\n type: 'NT',\n value: 'Nit',\n },\n {\n id: 5,\n type: 'PS',\n value: 'Pasaporte',\n },\n ];\n /// Informacion de los canales de información\n this.informationChannel = [\n {\n id: 1,\n value: 'Correo electrónico y mensaje de texto (SMS)',\n },\n {\n id: 2,\n value: 'Correo electrónico',\n },\n {\n id: 3,\n value: 'Mensaje de texto (SMS)',\n },\n ];\n }\n\n /**\n * A callback method that is invoked immediately after the default change detector has checked the directive's data-bound properties for the first time,\n * and before any of the view or content children have been checked. It is invoked only once when the directive is instantiated.\n */\n public ngOnInit(): void {}\n\n /**\n * @description Método llamado por el evento keypress permite solo números\n *\n * @param event Información del evento\n */\n public numberOnly(event: any): boolean {\n const charCode = event.which ? event.which : event.keyCode;\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\n return false;\n }\n\n return true;\n }\n\n /**\n * Metodo encargado de validar si es cliente\n */\n public validateClient() {\n this.spinner.show();\n this.coreFacade.validateClient(1, this.formGroup.value.document, (data) => {\n const validateEm = JSON.stringify(data);\n const validateEmJson: DataDecryptMe = JSON.parse(validateEm);\n const dataDecrypt = this.encryptService.toDecrypt(validateEmJson.data);\n const dataDeserealized = JSON.parse(dataDecrypt) as ValidateClient;\n this.init = false;\n this.isClient = dataDeserealized.isClient;\n this.spinner.hide();\n });\n }\n\n /**\n * Metodo encargado comenzar la validacion del Capchat\n */\n public onSubmit() {\n this.spinner.show();\n const data: CaptchaDto = {\n googletoken: this.formGroup.value.recaptchaReactive,\n };\n\n this.coreFacade.postRecaptcha(data);\n }\n\n /**\n * Metodo encargado de validar el recapchat y comenzar el guarda de la interaccion\n * @param reCaptcha Informacion de la validacion del Captcha\n */\n public onRecaptcha(reCaptcha: ReCaptchaDto) {\n this.spinner.show();\n this.tryRecaptcha = true;\n this.validRecaptcha$.next(reCaptcha.success || false);\n if (reCaptcha.isValidAuthentication) {\n const formCustomerPrivacy: FormCustomerPrivacy = {\n documentType: this.formGroup.value.documentType,\n numberDocument: this.formGroup.value.document,\n contactChannel: this.formGroup.value.contactChannel.value,\n informationChannel: this.formGroup.value.informationChannel.value,\n };\n\n const interactionModel: Interaction = {\n IdInteraction: 1,\n GuId: Guid.create().toString(),\n FormCustomerPrivacy: formCustomerPrivacy,\n Date: new Date(new Date().getTime() - new Date().getTimezoneOffset() * 60000).toISOString(),\n };\n\n const interactionDto: InteractionDto = {\n payload: `${JSON.stringify(interactionModel)}`.trim(),\n version: '1',\n idSequence: 2,\n idFiling: 1,\n publishDate: new Date(),\n typeForm: 2,\n };\n setTimeout(() => {\n this.coreFacade.saveInteraction(interactionDto, (responseInteraction) => {\n if (responseInteraction !== 'false') {\n this.spinner.hide();\n this.init = true;\n this.isClient = false;\n this.formGroup.reset();\n this.confirmationMessage();\n } else {\n this.spinner.hide();\n this.errorMessagge();\n }\n });\n }, 500);\n } else {\n this.spinner.hide();\n this.errorMessagge();\n }\n }\n\n /**\n * Metodo encargado de mostrar el mesaje de confirmacion del registro\n */\n public confirmationMessage() {\n Swal.fire({\n title: '',\n text: 'Tu selección ha sido tramitada con éxito, la información será actualizada en nuestro sistema en los próximos 15 días hábiles.',\n confirmButtonText: 'Aceptar',\n }).then(() => {\n window.location.reload();\n });\n}\n\n /**\n * Metodo encargado de mostrar mensaje de error\n */\n public errorMessagge() {\n Swal.fire({\n title: '',\n text: 'Lo sentimos, no se cargó correctamente la información, inténtalo nuevamente.',\n confirmButtonText: 'Aceptar',\n });\n }\n}\n","
\n
\n \"\"\n
\n
\n
\n
\n
\n
Tu Banco te escucha
\n
Diligencia tus datos
\n
* Todos los campos son obligatorios
\n
\n
\n
\n
\n \n \n
\n Tipo de Documento*\n \n \n {{ documentType.value }}\n \n \n
\n
\n \n \n
\n Número de Documento*\n \n
\n
\n
\n
\n
\n A través de nuestros canales podremos mantenerte informado del estado de tus productos, fechas de pago, brindarte alternativas de normalización, confirmación del estado de tus solicitudes, entre otros, para que sigas disfrutando de los beneficios que tenemos para ti.\n

Selecciona en cada lista una de las opciones\n
\n
\n
\n
\n Creo que aún no eres nuestro cliente. Por favor verifica que tu número de documento este correcto para\n poder ayudarte o comunícate con nuestra línea de servicio en Bogotá (601) 390 20 58 y para el resto\n del país al 018000 514 652.\n
\n
\n \n \n
\n Selecciona tus canales\n \n \n {{ contactChannel.value }}\n \n \n
\n
\n \n \n
\n Selecciona otros canales\n \n \n {{ informationChannel.value }}\n \n \n
\n
\n
\n
\n
\n
\n Actualiza tu correo electrónico y dirección comunicándote a nuestra línea de servicio al cliente en Bogotá al 601 3902058, a nivel nacional el 01 8000 514652 o a nivel internacional al 01 800 45 38044. Recuerda que solo podrás actualizar tu número de celular en nuestras oficinas.\n
\n
\n
\n
\n Estamos de tu lado cuando más lo necesitas\n
\n
\n Al continuar nos autorizas a que tus datos sean tratados conforme a la ley 1581 del 2012 de protección de\n datos que se encuentra publicado en nuestra página web.\n
\n\n
\n
\n \n ¡El reCaptcha es Inválido! \n
\n
\n\n \n
\n
\n
\n
\n
\n
\n\n

Cargando...

\n
\n","import { HttpEvent, HttpHandler, HttpHeaders, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { AuthenticationService } from './authentication.service';\n\n/**\n * Interceptor encargado de agregar el token a la solicitud\n */\n@Injectable()\nexport class AuthInterceptorService implements HttpInterceptor {\n /**\n * Servicio encargado de administrar la autenticación\n */\n private readonly authenticationService: AuthenticationService;\n\n /**\n * Crea una nueva instancia de @see AuthInterceptorService\n * @param authenticationService Servicio encargado de administrar la autenticación\n */\n public constructor(authenticationService: AuthenticationService) {\n this.authenticationService = authenticationService;\n }\n\n /**\n * Identifies and handles a given HTTP request.\n * @param req The outgoing request object to handle.\n * @param next The next interceptor in the chain, or the backend if no interceptors remain in the chain.\n * @returns An observable of the event stream.\n */\n public intercept(req: HttpRequest, next: HttpHandler): Observable> {\n // Validación para la autenticación\n if (req.url.includes('api') && this.authenticationService.getAuthenticated()) {\n const headers = req.body instanceof FormData\n ? this.authenticationService.appendAuthorizationHeader(new HttpHeaders())\n : this.authenticationService.getHeaders();\n\n const request = req.clone({ headers });\n\n return next.handle(request);\n }\n\n return next.handle(req);\n }\n}\n","import { HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\n/**\n * Servicio encargado de los datos de Autenticación\n */\n@Injectable()\nexport class AuthenticationService {\n /**\n * Propiedad de control para determinar si se encuentra autenticado\n */\n private isAuthenticated = false;\n\n /**\n * Propiedad que contiene el access token\n */\n private token = '';\n\n /**\n * Gets the is authenticated\n */\n public getAuthenticated(): boolean {\n return this.isAuthenticated;\n }\n\n /**\n * @description Método para hacer establecer si es autenticado\n * @param isAuthenticated Valor booleano a establecer\n */\n public setAuthenticated(isAuthenticated: boolean) {\n this.isAuthenticated = isAuthenticated;\n }\n\n /**\n * Valor del token a establecer\n */\n public set setToken(token: string) {\n this.token = token;\n }\n\n /**\n * Inicializacion de propiedades\n */\n public constructor() {\n this.isAuthenticated = false; // Inicializa aquí si es necesario\n this.token = ''; // Inicializa aquí si es necesario\n }\n\n /**\n * Metodo encargado de construir los header para peticiones Http\n * @returns Retorna un objeto HttpHeaders con el token y content-type\n */\n public getHeaders(): HttpHeaders {\n let headers = new HttpHeaders();\n\n headers = headers.set('Content-Type', 'application/json');\n\n return this.appendAuthorizationHeader(headers);\n }\n\n /**\n * Metodo encargado de asociar el token al header Authorization\n * @param headers Objeto al cual se le asociara el header Authorization con el token\n * @returns Retorna el objeto HttpHeaders con el encabezado Authorization\n */\n public appendAuthorizationHeader(headers: HttpHeaders): HttpHeaders {\n if (this.token === '') {\n return headers;\n }\n\n const tokenValue = `Bearer ${this.token}`;\n\n return headers.set('Authorization', tokenValue);\n }\n}\n"],"sourceRoot":"webpack:///"}