{"version":3,"sources":["canvas (ignored)","fs (ignored)","zlib (ignored)","http (ignored)","https (ignored)","url (ignored)","ws (ignored)","./src/environments/environment.ts","./src/app/components/animations-screen/animations-screen.component.ts","./src/app/components/animations-screen/animations-screen.component.html","./src/app/components/reproductor/reproductor.component.ts","./src/app/components/reproductor/reproductor.component.html","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/services/socket-web.service.ts","./src/app/app-routing.module.ts","./src/app/components/animations.service.ts","./src/main.ts","./$_lazy_route_resource lazy namespace object"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import {\r\n AfterViewChecked,\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n//import { getDocument, GlobalWorkerOptions, version } from 'pdfjs-dist';\r\n//import * as pdfjsLib from 'pdfjs-dist';\r\nimport { getDocument, GlobalWorkerOptions, version } from 'pdfjs-dist';\r\nimport { gsap } from 'gsap';\r\nimport { AnimationService } from '../animations.service';\r\nimport {\r\n FormBuilder,\r\n FormControl,\r\n FormGroup,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { SocketProgressRender } from 'src/app/services/socket-web.service';\r\n\r\nexport interface Conclusion {\r\n width: Number;\r\n duracion: Number;\r\n audio: String;\r\n}\r\n\r\nexport interface AnimacionActual {\r\n selector: any;\r\n audio: HTMLAudioElement;\r\n refTimeOut: any;\r\n}\r\n\r\n@Component({\r\n selector: 'screen-animations',\r\n templateUrl: './animations-screen.component.html',\r\n styleUrls: ['./animations-screen.component.css'],\r\n})\r\nexport class AnimationsScreenComponent implements OnInit, AfterViewInit {\r\n public infoFactura: any;\r\n public duracion: number = 0;\r\n //public conclusiones: Conclusion[] = [];\r\n public validate: boolean = true;\r\n public playIcon: String = 'play_circle';\r\n public isPlay: boolean = false;\r\n public animacionActual!: AnimacionActual;\r\n public audios: any[] = [];\r\n public formGroup: FormGroup = this.fb.group({});\r\n private document: Document;\r\n\r\n //Variables gobables que se están utilizando\r\n public playAnimacion: boolean = false;\r\n public timeLineConclusiones = gsap.timeline({ repeat: 0, yoyo: false });\r\n public conclusiones: any[] = [];\r\n public audio = new Audio();\r\n public duracionTotal: number = 0;\r\n public contadorSegundos: number = 0;\r\n public tituloConclusionActual: String = '';\r\n public pausarContador: boolean = false;\r\n public showAnimationsScree: boolean = false;\r\n\r\n public progress = 0;\r\n public messageProgress = '';\r\n public url: string = '';\r\n public showProgress: boolean = false;\r\n public showInitForm: boolean = false;\r\n\r\n public disabledButton: boolean = false;\r\n\r\n public conclusionesCargadas: boolean = false;\r\n constructor(\r\n public httpClient: HttpClient,\r\n private animationService: AnimationService,\r\n private fb: FormBuilder,\r\n private route: ActivatedRoute\r\n ) {\r\n this.document = document;\r\n\r\n const pdfWorkerSrc = `https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${version}/pdf.worker.min.js`;\r\n GlobalWorkerOptions.workerSrc = pdfWorkerSrc;\r\n }\r\n ngAfterViewInit(): void {\r\n this.route.queryParams.subscribe((params) => {\r\n if (params.niu && params.niu.length == 9) {\r\n this.formGroup.get('numero_cuenta')?.setValue(params.niu);\r\n this.formGroup.updateValueAndValidity();\r\n this.sendForm();\r\n } else {\r\n console.log('No existe número de cuenta');\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.showInitForm = true;\r\n this.buildForm();\r\n //this.cargaConclusiones();\r\n /*\r\n this.playV2();\r\n this.animationService.stopAllAnimations.subscribe((action) => {\r\n if (action) {\r\n this.timeLineConclusiones.pause();\r\n }\r\n });\r\n */\r\n }\r\n\r\n buildForm() {\r\n this.formGroup = this.fb.group({\r\n numero_cuenta: ['', Validators.required],\r\n });\r\n }\r\n\r\n btn_showAnimationsScreen() {\r\n this.showAnimationsScree = !this.showAnimationsScree;\r\n }\r\n\r\n sendForm() {\r\n if (this.formGroup.invalid) {\r\n this.validateAllFormFields(this.formGroup);\r\n return;\r\n }\r\n\r\n this.showInitForm = false;\r\n this.showProgress = true;\r\n /*\r\n let total = 0;\r\n setInterval(() => {\r\n total++;\r\n\r\n if (total <= 100) {\r\n const progressBar = document.getElementById('progre') as HTMLElement;\r\n progressBar.style.setProperty('--progress-value', total.toString());\r\n this.progress = total;\r\n\r\n if (total < 80) {\r\n this.messageProgress = 'Analizando factura...';\r\n } else {\r\n this.messageProgress = 'Descargando factura...';\r\n }\r\n }\r\n\r\n if (total == 100) {\r\n this.url = 'http://localhost/weather.mp4';\r\n this.showInitForm = false;\r\n this.showProgress = false;\r\n }\r\n }, 200);\r\n */\r\n\r\n const niu = this.formGroup.get('numero_cuenta')?.value;\r\n const socket = new SocketProgressRender(niu);\r\n socket.callBack.subscribe((data) => {\r\n const { jobProgress, message, url_video, buffer } = data;\r\n const jobs = Object.keys(jobProgress).length;\r\n\r\n let totalProgress: any = Object.values(jobProgress).reduce(\r\n (sum: any, p) => sum + p,\r\n 0\r\n );\r\n\r\n let avarageProgress = Math.ceil(totalProgress / jobs);\r\n\r\n console.log(avarageProgress);\r\n\r\n const progressBar = document.getElementById('progre') as HTMLElement;\r\n progressBar.style.setProperty(\r\n '--progress-value',\r\n avarageProgress.toString()\r\n );\r\n\r\n if (this.progress != avarageProgress) {\r\n this.progress = avarageProgress;\r\n }\r\n\r\n if (message) this.messageProgress = message;\r\n\r\n if (buffer) {\r\n this.initVideo(buffer);\r\n this.showInitForm = false;\r\n this.showProgress = false;\r\n }\r\n });\r\n\r\n /*\r\n this.showSpinnerCargandoDatos();\r\n this.disabledButton = true;\r\n const month = new Date().getUTCMonth();\r\n const data = {\r\n numero_cuenta: this.formGroup.get('numero_cuenta')?.value,\r\n anioinicio: '2022',\r\n mesinicio: '0'.concat(month.toString()),\r\n solicitante: 'Videofactura',\r\n };\r\n */\r\n //Peticion desde el servicio\r\n /*\r\n this.httpClient.post('http://chatbotchecserver.com/botVideoFac/atencionLucy',info).subscribe((response:any)=>{\r\n this.httpResponseChangeTemporal(response);\r\n this.hiddeSpinnerCargandoDatos();\r\n this.showAnimationsScree = true\r\n this.conclusionesCargadas = true;\r\n })\r\n */\r\n\r\n //Petición desde jsonLocal\r\n /*\r\n setTimeout(()=>{\r\n this.getPDFService()\r\n this.httpClient.get('assets/conclusiones.json')\r\n .subscribe((response:any)=>{\r\n this.setInformacionClienteAnimationsScreen(response.nombreCliente, response.mesFactura)\r\n this.httpResponseChangeTemporal(response)\r\n this.hiddeSpinnerCargandoDatos();\r\n this.showAnimationsScree = true\r\n this.conclusionesCargadas = true;\r\n })\r\n },4000)\r\n \r\n\r\n Promise.all([\r\n this.httpGet('assets/conclusiones.json'),\r\n //this.httpPost('',data),\r\n this.getPDFService(this.formGroup.get('numero_cuenta')?.value),\r\n this.httpPost(\r\n 'https://lucy.chec.com.co/backchatweb/infofactura_back/atencionLucy',\r\n data\r\n ),\r\n ])\r\n .then((values) => {\r\n const responseConclusiones = values[2];\r\n console.log(responseConclusiones);\r\n\r\n if (\r\n responseConclusiones.mensaje != undefined &&\r\n responseConclusiones.id != undefined\r\n ) {\r\n this.showAletSinInformacion();\r\n this.hiddeSpinnerCargandoDatos();\r\n setTimeout(() => {\r\n this.hiddeAletSinInformacion();\r\n }, 5000);\r\n } else {\r\n const responseBase64Factura = values[1];\r\n this.infoFactura = responseConclusiones.tipo_factura;\r\n console.log(this.infoFactura);\r\n\r\n this.animationService.imagenBase64Factura = responseBase64Factura;\r\n this.setInformacionClienteAnimationsScreen(\r\n responseConclusiones.nombreCliente,\r\n responseConclusiones.mesFactura\r\n );\r\n this.httpResponseChangeTemporal(responseConclusiones);\r\n this.hiddeSpinnerCargandoDatos();\r\n this.showAnimationsScree = true;\r\n this.conclusionesCargadas = true;\r\n }\r\n })\r\n .finally(() => {\r\n this.disabledButton = false;\r\n });\r\n */\r\n }\r\n\r\n initVideo(buffer: any) {\r\n try {\r\n let arregloBytes = new Uint8Array(buffer.data);\r\n let binaryString = '';\r\n for (var i = 0; i < arregloBytes.length; i++) {\r\n binaryString += String.fromCharCode(arregloBytes[i]);\r\n }\r\n let base64String = btoa(binaryString);\r\n this.url = 'data:video/mp4;base64,' + base64String;\r\n console.log(this.url);\r\n } catch (error) {\r\n console.log('error init video', error);\r\n }\r\n }\r\n\r\n httpGet(url: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n this.httpClient.get(url).subscribe((response: any) => {\r\n try {\r\n resolve(response);\r\n } catch (error) {\r\n reject(response);\r\n }\r\n });\r\n });\r\n }\r\n\r\n httpPost(url: string, data: any): Promise {\r\n return new Promise((resolve, reject) => {\r\n this.httpClient.post(url, data).subscribe((response: any) => {\r\n try {\r\n resolve(response);\r\n } catch (error) {\r\n reject(response);\r\n }\r\n });\r\n });\r\n }\r\n\r\n validateAllFormFields(formGroup: FormGroup) {\r\n Object.keys(formGroup.controls).forEach((field) => {\r\n const control = formGroup.get(field);\r\n if (control instanceof FormControl) {\r\n control.markAsTouched({ onlySelf: true });\r\n } else if (control instanceof FormGroup) {\r\n this.validateAllFormFields(control);\r\n }\r\n });\r\n }\r\n\r\n showSpinnerCargandoDatos() {\r\n console.log('Cargando data');\r\n\r\n gsap.to('.cargando-informacion', {\r\n x: -500,\r\n opacity: 1,\r\n duration: 0.8,\r\n });\r\n }\r\n hiddeSpinnerCargandoDatos() {\r\n gsap.to('.cargando-informacion', {\r\n x: 500,\r\n opacity: 0,\r\n duration: 0.8,\r\n });\r\n }\r\n\r\n showAletSinInformacion() {\r\n console.log('Ejecutnado');\r\n\r\n gsap.to('.sin-informacion', {\r\n x: -500,\r\n opacity: 1,\r\n duration: 0.8,\r\n });\r\n }\r\n\r\n hiddeAletSinInformacion() {\r\n gsap.to('.sin-informacion', {\r\n x: 500,\r\n opacity: 0,\r\n duration: 0.8,\r\n });\r\n }\r\n\r\n /*\r\n\r\n playFromAnimationScreen() {\r\n this.playAnimacion = !this.playAnimacion;\r\n if (this.playAnimacion) {\r\n this.setProgreso();\r\n //this.animationService.setReplayEvent('play');\r\n this.timeLineConclusiones.play();\r\n this.audio.play();\r\n return;\r\n }\r\n this.animationService.setReplayEvent('pause');\r\n this.timeLineConclusiones.pause();\r\n this.audio.pause();\r\n }\r\n\r\n */\r\n\r\n btn_play() {\r\n if (this.conclusionesCargadas) {\r\n this.playAnimacion = !this.playAnimacion;\r\n this.animationService.SetPlayV2(this.playAnimacion);\r\n }\r\n }\r\n\r\n playV2() {\r\n this.animationService.getPlayV2().subscribe((state) => {\r\n this.playAnimacion = state;\r\n if (this.playAnimacion) {\r\n this.setProgreso();\r\n this.timeLineConclusiones.play();\r\n this.audio.play();\r\n return;\r\n }\r\n this.timeLineConclusiones.pause();\r\n this.audio.pause();\r\n });\r\n }\r\n\r\n play() {\r\n this.playAnimacion = !this.playAnimacion;\r\n if (this.playAnimacion) {\r\n this.setProgreso();\r\n //this.animationService.setReplayEvent('play');\r\n this.timeLineConclusiones.play();\r\n this.audio.play();\r\n return;\r\n }\r\n this.timeLineConclusiones.pause();\r\n this.audio.pause();\r\n }\r\n\r\n reset() {\r\n if (this.conclusionesCargadas) {\r\n this.contadorSegundos = 0;\r\n this.timeLineConclusiones.restart();\r\n this.animationService.setRestart();\r\n }\r\n }\r\n\r\n initContador() {\r\n setInterval(() => {\r\n if (this.contadorSegundos < this.duracionTotal && this.playAnimacion) {\r\n this.contadorSegundos++;\r\n }\r\n }, 1000);\r\n }\r\n\r\n cargaConclusiones() {\r\n this.httpClient\r\n .get('assets/conclusiones-final.json')\r\n .subscribe((response: any) => {\r\n this.handlerConclusiones(response.conclusiones, response.duracionTotal);\r\n });\r\n }\r\n\r\n setInformacionClienteAnimationsScreen(nombre: String, fechaFactura: String) {\r\n this.animationService.datosCliente.nombre = nombre;\r\n this.animationService.datosCliente.fechaFactura = fechaFactura;\r\n }\r\n\r\n //Este metodo se encarga de transormar la respuesta http encargada de traer las conclusiones\r\n\r\n httpResponseChangeTemporal(response: any) {\r\n const final: any = {\r\n mensajeBienvenida: {},\r\n descripcionCuenta: {},\r\n mensajeConsumo: {},\r\n analisisConsumo: {},\r\n despedida: {},\r\n };\r\n\r\n var duracionTotal = 0;\r\n\r\n for (const conclusion in response) {\r\n if (\r\n conclusion == 'mensajeBienvenida' ||\r\n conclusion == 'descripcionCuenta' ||\r\n conclusion == 'mensajeConsumo' ||\r\n conclusion == 'analisisConsumo' ||\r\n conclusion == 'despedida'\r\n ) {\r\n var tituloConclusion =\r\n conclusion == 'mensajeBienvenida'\r\n ? 'Mensaje de bienvenida'\r\n : conclusion == 'descripcionCuenta'\r\n ? 'Descripción de cuenta'\r\n : conclusion == 'mensajeConsumo'\r\n ? 'Consumo total'\r\n : conclusion == 'analisisConsumo'\r\n ? 'Analisis de consumo'\r\n : conclusion == 'despedida'\r\n ? '¡ Gracias por utilizar nuestros servicios !'\r\n : '';\r\n\r\n const key = {\r\n mensaje: response[conclusion][0],\r\n titulo: tituloConclusion,\r\n duracion: response[conclusion][2],\r\n audio: response[conclusion][1],\r\n };\r\n\r\n final[conclusion] = key;\r\n duracionTotal = duracionTotal + response[conclusion][2];\r\n }\r\n }\r\n\r\n this.handlerConclusiones(final, duracionTotal);\r\n }\r\n\r\n handlerConclusiones(conclusiones: any, duracionTotalConclusiones: number) {\r\n const handlerConclusiones = [];\r\n this.duracionTotal = Math.ceil(duracionTotalConclusiones);\r\n for (const property in conclusiones) {\r\n handlerConclusiones.push({\r\n handlerWidth:\r\n (conclusiones[property].duracion * 100) / duracionTotalConclusiones,\r\n duracion: conclusiones[property].duracion,\r\n audio: conclusiones[property].audio,\r\n texto: conclusiones[property].mensaje,\r\n titulo: conclusiones[property].titulo,\r\n });\r\n }\r\n this.conclusiones = handlerConclusiones;\r\n console.log(this.conclusiones);\r\n\r\n this.initContador();\r\n }\r\n\r\n //Setea las animaciones de progreso.\r\n setProgreso() {\r\n const progress = document.querySelectorAll('.progreso');\r\n console.log(progress);\r\n\r\n progress.forEach((bar: any, index: number) => {\r\n const data = bar.dataset;\r\n this.setAnimaitionProgress(bar, data.duracion, data.audio, data.titulo);\r\n });\r\n }\r\n\r\n setAnimaitionProgress(\r\n idElement: any,\r\n duracionProgress: number,\r\n audioData: string,\r\n titulo: string\r\n ) {\r\n this.timeLineConclusiones.to(idElement, {\r\n width: '100%',\r\n duration: duracionProgress,\r\n onStart: () => {\r\n this.tituloConclusionActual = titulo;\r\n this.audio.src = 'data:audio/ogg;base64,' + audioData;\r\n this.audio.currentTime = 0;\r\n this.audio.play().catch((error) => {\r\n console.log(error);\r\n });\r\n },\r\n onComplete: () => {\r\n if (idElement) {\r\n }\r\n },\r\n });\r\n }\r\n\r\n changVolume($event: any) {\r\n var volume = $event.value / 100;\r\n\r\n this.audio.volume = volume;\r\n }\r\n\r\n /*\r\n\r\n initAnimacionesConclusiones() {\r\n this.timeLineConclusiones.to('.conclusion_progreso_1', {\r\n width: '100%',\r\n duration: 10,\r\n });\r\n\r\n this.timeLineConclusiones.to('.conclusion_progreso_2', {\r\n width: '100%',\r\n duration: 10,\r\n });\r\n\r\n this.timeLineConclusiones.to('.conclusion_progreso_3', {\r\n width: '100%',\r\n duration: 10,\r\n });\r\n this.timeLineConclusiones.to('.conclusion_progreso_4', {\r\n width: '100%',\r\n duration: 10,\r\n });\r\n this.timeLineConclusiones.to('.conclusion_progreso_5', {\r\n width: '100%',\r\n duration: 10,\r\n });\r\n }\r\n\r\n\r\n cargaConclisiones() {\r\n this.httpClient\r\n .get('assets/conclusiones-prueba.json')\r\n .subscribe((data: any) => {\r\n let duracionTotal = 0;\r\n let duraciones = [];\r\n for (const property in data.Conclusiones) {\r\n duraciones.push({\r\n duracion: data.Conclusiones[property].duracion,\r\n audio: data.Conclusiones[property].audio,\r\n });\r\n duracionTotal = duracionTotal + data.Conclusiones[property].duracion;\r\n }\r\n\r\n this.duracion = Math.ceil(duracionTotal);\r\n let duracionesprocentaje = duraciones.map((duracion) => {\r\n return {\r\n width: (duracion.duracion * 100) / duracionTotal,\r\n duracion: duracion.duracion,\r\n audio: duracion.audio,\r\n };\r\n });\r\n this.conclusiones = duracionesprocentaje;\r\n console.log('---------');\r\n\r\n console.log(this.conclusiones);\r\n\r\n\r\n });\r\n }\r\n\r\n \r\n\r\n play() {\r\n this.isPlay = !this.isPlay;\r\n if (this.isPlay) {\r\n this.playIcon = 'pause';\r\n window.setInterval(() => {\r\n if (this.duracion >= 1) {\r\n this.duracion--;\r\n }\r\n }, 1000);\r\n this.init();\r\n }\r\n\r\n if (!this.isPlay) {\r\n this.playIcon = 'play_circle';\r\n this.stop();\r\n }\r\n }\r\n\r\n stop() {\r\n if (this.animacionActual) {\r\n const propieadades =\r\n this.animacionActual.selector.getBoundingClientRect();\r\n const width = propieadades.width;\r\n this.animacionActual.selector.style.transition = 'none';\r\n this.animacionActual.selector.style.width = `${width}px`;\r\n this.animacionActual.audio.pause();\r\n const audioAPausar = this.animacionActual.refTimeOut;\r\n console.log('Audio a pausar', audioAPausar);\r\n console.log('Lista de audios', this.audios);\r\n let validacion = false;\r\n this.audios.forEach((audio) => {\r\n if (audio == audioAPausar || validacion) {\r\n clearTimeout(audio);\r\n validacion = true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n */\r\n\r\n public initV2() {}\r\n\r\n init() {\r\n const progressBar = document.querySelectorAll('.progressBar');\r\n var sumaDuracionesAnteriores = 0;\r\n progressBar.forEach((bar: any, index) => {\r\n const prueba = Number(Math.ceil(bar.dataset.duracion * 1000));\r\n const audio = new Audio();\r\n audio.src = 'data:audio/ogg;base64,' + bar.dataset.audio;\r\n if (index == 0) {\r\n const time = setTimeout(() => {\r\n this.animacionActual = {\r\n selector: bar,\r\n audio: audio,\r\n refTimeOut: time,\r\n };\r\n bar.style.transition = `width linear ${prueba}ms`;\r\n bar.style.width = '100%';\r\n audio.currentTime = 0;\r\n audio.load();\r\n var resp = audio.play();\r\n\r\n if (resp !== undefined) {\r\n resp\r\n .then((_) => {\r\n // autoplay starts!\r\n })\r\n .catch((error) => {\r\n //show error\r\n });\r\n }\r\n }, 0);\r\n\r\n this.audios.push(time);\r\n } else {\r\n const time = setTimeout(() => {\r\n this.animacionActual = {\r\n selector: bar,\r\n audio: audio,\r\n refTimeOut: time,\r\n };\r\n bar.style.transition = `width linear ${prueba}ms`;\r\n bar.style.width = '100%';\r\n audio.currentTime = 0;\r\n audio.load();\r\n var resp = audio.play();\r\n\r\n if (resp !== undefined) {\r\n resp\r\n .then((_) => {\r\n // autoplay starts!\r\n })\r\n .catch((error) => {\r\n //show error\r\n });\r\n }\r\n }, sumaDuracionesAnteriores);\r\n\r\n this.audios.push(time);\r\n }\r\n\r\n sumaDuracionesAnteriores = sumaDuracionesAnteriores + prueba;\r\n\r\n bar.addEventListener('animationstart', () => {});\r\n\r\n bar.addEventListener('animationend', () => {});\r\n /*\r\n setTimeout(() => {\r\n console.log(index);\r\n }, prueba * index);\r\n */\r\n });\r\n /*\r\n let progressBar = document.querySelectorAll('.progressBar');\r\n progressBar.forEach((bar: any, index) => {\r\n var duracionMilisegundos = bar.dataset.duracion * 1000;\r\n const prueba = Math.floor(bar.dataset.duracion) * 1000;\r\n console.log(prueba);\r\n \r\n setTimeout(() => {\r\n //bar.style.animation = `progressBar ${bar.dataset.duracion}s linear 1`;\r\n bar.style.transition = `width ease-in ${prueba}ms`;\r\n bar.style.width = '100%';\r\n }, prueba * index);\r\n });\r\n */\r\n }\r\n\r\n testAnimations() {\r\n setTimeout(() => {\r\n gsap.to('#contenedor_fac', {\r\n duration: 5,\r\n scale: 2,\r\n x: -280,\r\n });\r\n }, 3000);\r\n\r\n setTimeout(() => {\r\n gsap.to('#contenedor_fac', {\r\n duration: 5,\r\n y: -100,\r\n });\r\n }, 10000);\r\n\r\n setTimeout(() => {\r\n gsap.to('#contenedor_fac', {\r\n duration: 5,\r\n x: -400,\r\n });\r\n }, 20000);\r\n\r\n setTimeout(() => {\r\n gsap.to('#contenedor_fac', {\r\n duration: 7,\r\n scale: 3.5,\r\n x: -250,\r\n });\r\n }, 30000);\r\n }\r\n\r\n //Esta funcion se encarga de solicitar la factura y posteriormente hacer la conversion de pdf a png en base 64\r\n\r\n async getPDFService(numeroCuenta: string): Promise {\r\n const url = `https://dl-dev.herokuapp.com/https://adminchecweb.cadenaportalgestion.com/PDF/Show?Id=${numeroCuenta}&mes=&anio=undefined`;\r\n\r\n const loadingTask = await getDocument(url).promise;\r\n\r\n const countPages = loadingTask._pdfInfo.numPages;\r\n\r\n const page = await loadingTask.getPage(1);\r\n var viewport = page.getViewport({ scale: 10 });\r\n var canvas: any = document.getElementById('canvas');\r\n var context = canvas.getContext('2d');\r\n\r\n canvas.height = viewport.height;\r\n canvas.width = viewport.width;\r\n\r\n var renderContext = {\r\n canvasContext: context,\r\n viewport: viewport,\r\n };\r\n\r\n var renderTask = page.render(renderContext);\r\n let imagen = await renderTask.promise;\r\n var dataURL = canvas.toDataURL();\r\n return new Promise((resolve, reject) => {\r\n resolve(dataURL);\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
    \r\n
  • \r\n \r\n Transparencia y acceso a la información pública\r\n \r\n
  • \r\n
  • \r\n \r\n Participación ciudadana\r\n \r\n
  • \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n
{{ progress }} %
\r\n
\r\n {{ messageProgress }}\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n\r\n","import {\r\n AfterViewChecked,\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n//import { getDocument, GlobalWorkerOptions, version } from 'pdfjs-dist';\r\n//import * as pdfjsLib from 'pdfjs-dist';\r\nimport { getDocument, GlobalWorkerOptions, version } from 'pdfjs-dist';\r\nimport { gsap } from 'gsap';\r\nimport { AnimationService } from '../animations.service';\r\nimport {\r\n FormBuilder,\r\n FormControl,\r\n FormGroup,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { SocketProgressRender } from 'src/app/services/socket-web.service';\r\n\r\nexport interface Conclusion {\r\n width: Number;\r\n duracion: Number;\r\n audio: String;\r\n}\r\n\r\nexport interface AnimacionActual {\r\n selector: any;\r\n audio: HTMLAudioElement;\r\n refTimeOut: any;\r\n}\r\n\r\n@Component({\r\n selector: 'app-reproductor',\r\n templateUrl: './reproductor.component.html',\r\n styleUrls: ['./reproductor.component.css'],\r\n})\r\nexport class ReproductorComponent implements OnInit, AfterViewInit {\r\n public infoFactura: any;\r\n public duracion: number = 0;\r\n //public conclusiones: Conclusion[] = [];\r\n public validate: boolean = true;\r\n public playIcon: String = 'play_circle';\r\n public isPlay: boolean = false;\r\n public animacionActual!: AnimacionActual;\r\n public audios: any[] = [];\r\n public formGroup: FormGroup = this.fb.group({});\r\n private document: Document;\r\n\r\n //Variables gobables que se están utilizando\r\n public playAnimacion: boolean = false;\r\n public timeLineConclusiones = gsap.timeline({ repeat: 0, yoyo: false });\r\n public conclusiones: any[] = [];\r\n public audio = new Audio();\r\n public duracionTotal: number = 0;\r\n public contadorSegundos: number = 0;\r\n public tituloConclusionActual: String = '';\r\n public pausarContador: boolean = false;\r\n public showAnimationsScree: boolean = false;\r\n\r\n public progress = 0;\r\n public messageProgress = '';\r\n public url: string = '';\r\n public showProgress: boolean = false;\r\n public showInitForm: boolean = false;\r\n\r\n public disabledButton: boolean = false;\r\n\r\n public conclusionesCargadas: boolean = false;\r\n constructor(\r\n public httpClient: HttpClient,\r\n private animationService: AnimationService,\r\n private fb: FormBuilder,\r\n private route: ActivatedRoute\r\n ) {\r\n this.document = document;\r\n\r\n const pdfWorkerSrc = `https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${version}/pdf.worker.min.js`;\r\n GlobalWorkerOptions.workerSrc = pdfWorkerSrc;\r\n }\r\n ngAfterViewInit(): void {\r\n this.route.queryParams.subscribe((params) => {\r\n if (params.niu && params.niu.length == 9) {\r\n this.formGroup.get('numero_cuenta')?.setValue(params.niu);\r\n this.formGroup.updateValueAndValidity();\r\n this.sendForm();\r\n } else {\r\n console.log('No existe número de cuenta');\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.showInitForm = true;\r\n this.buildForm();\r\n //this.cargaConclusiones();\r\n /*\r\n this.playV2();\r\n this.animationService.stopAllAnimations.subscribe((action) => {\r\n if (action) {\r\n this.timeLineConclusiones.pause();\r\n }\r\n });\r\n */\r\n }\r\n\r\n buildForm() {\r\n this.formGroup = this.fb.group({\r\n numero_cuenta: ['', Validators.required],\r\n });\r\n }\r\n\r\n btn_showAnimationsScreen() {\r\n this.showAnimationsScree = !this.showAnimationsScree;\r\n }\r\n\r\n sendForm() {\r\n if (this.formGroup.invalid) {\r\n this.validateAllFormFields(this.formGroup);\r\n return;\r\n }\r\n\r\n this.showInitForm = false;\r\n this.showProgress = true;\r\n /*\r\n let total = 0;\r\n setInterval(() => {\r\n total++;\r\n\r\n if (total <= 100) {\r\n const progressBar = document.getElementById('progre') as HTMLElement;\r\n progressBar.style.setProperty('--progress-value', total.toString());\r\n this.progress = total;\r\n\r\n if (total < 80) {\r\n this.messageProgress = 'Analizando factura...';\r\n } else {\r\n this.messageProgress = 'Descargando factura...';\r\n }\r\n }\r\n\r\n if (total == 100) {\r\n this.url = 'http://localhost/weather.mp4';\r\n this.showInitForm = false;\r\n this.showProgress = false;\r\n }\r\n }, 200);\r\n */\r\n\r\n const niu = this.formGroup.get('numero_cuenta')?.value;\r\n const socket = new SocketProgressRender(niu);\r\n\r\n socket.callBack.subscribe((data) => {\r\n const { jobProgress, message, url_video, buffer, progress } = data;\r\n console.log(buffer);\r\n\r\n let avarageProgress = progress;\r\n\r\n /*\r\n const jobs = Object.keys(jobProgress).length;\r\n\r\n let totalProgress: any = Object.values(jobProgress).reduce(\r\n (sum: any, p) => sum + p,\r\n 0\r\n );\r\n\r\n let avarageProgress = Math.ceil(totalProgress / jobs);\r\n\r\n console.log(avarageProgress);\r\n */\r\n const progressBar = document.getElementById('progre') as HTMLElement;\r\n progressBar.style.setProperty('--progress-value', avarageProgress);\r\n\r\n if (this.progress != avarageProgress) {\r\n this.progress = avarageProgress;\r\n }\r\n\r\n if (message) this.messageProgress = message;\r\n\r\n if (buffer) {\r\n this.showInitForm = false;\r\n this.showProgress = false;\r\n this.initVideo(buffer);\r\n socket.disconnect();\r\n }\r\n });\r\n\r\n /*\r\n this.showSpinnerCargandoDatos();\r\n this.disabledButton = true;\r\n const month = new Date().getUTCMonth();\r\n const data = {\r\n numero_cuenta: this.formGroup.get('numero_cuenta')?.value,\r\n anioinicio: '2022',\r\n mesinicio: '0'.concat(month.toString()),\r\n solicitante: 'Videofactura',\r\n };\r\n */\r\n //Peticion desde el servicio\r\n /*\r\n this.httpClient.post('http://chatbotchecserver.com/botVideoFac/atencionLucy',info).subscribe((response:any)=>{\r\n this.httpResponseChangeTemporal(response);\r\n this.hiddeSpinnerCargandoDatos();\r\n this.showAnimationsScree = true\r\n this.conclusionesCargadas = true;\r\n })\r\n */\r\n\r\n //Petición desde jsonLocal\r\n /*\r\n setTimeout(()=>{\r\n this.getPDFService()\r\n this.httpClient.get('assets/conclusiones.json')\r\n .subscribe((response:any)=>{\r\n this.setInformacionClienteAnimationsScreen(response.nombreCliente, response.mesFactura)\r\n this.httpResponseChangeTemporal(response)\r\n this.hiddeSpinnerCargandoDatos();\r\n this.showAnimationsScree = true\r\n this.conclusionesCargadas = true;\r\n })\r\n },4000)\r\n \r\n\r\n Promise.all([\r\n this.httpGet('assets/conclusiones.json'),\r\n //this.httpPost('',data),\r\n this.getPDFService(this.formGroup.get('numero_cuenta')?.value),\r\n this.httpPost(\r\n 'https://lucy.chec.com.co/backchatweb/infofactura_back/atencionLucy',\r\n data\r\n ),\r\n ])\r\n .then((values) => {\r\n const responseConclusiones = values[2];\r\n console.log(responseConclusiones);\r\n\r\n if (\r\n responseConclusiones.mensaje != undefined &&\r\n responseConclusiones.id != undefined\r\n ) {\r\n this.showAletSinInformacion();\r\n this.hiddeSpinnerCargandoDatos();\r\n setTimeout(() => {\r\n this.hiddeAletSinInformacion();\r\n }, 5000);\r\n } else {\r\n const responseBase64Factura = values[1];\r\n this.infoFactura = responseConclusiones.tipo_factura;\r\n console.log(this.infoFactura);\r\n\r\n this.animationService.imagenBase64Factura = responseBase64Factura;\r\n this.setInformacionClienteAnimationsScreen(\r\n responseConclusiones.nombreCliente,\r\n responseConclusiones.mesFactura\r\n );\r\n this.httpResponseChangeTemporal(responseConclusiones);\r\n this.hiddeSpinnerCargandoDatos();\r\n this.showAnimationsScree = true;\r\n this.conclusionesCargadas = true;\r\n }\r\n })\r\n .finally(() => {\r\n this.disabledButton = false;\r\n });\r\n */\r\n }\r\n\r\n initVideo(buffer: any) {\r\n try {\r\n let arregloBytes = new Uint8Array(buffer);\r\n let binaryString = '';\r\n for (var i = 0; i < arregloBytes.length; i++) {\r\n binaryString += String.fromCharCode(arregloBytes[i]);\r\n }\r\n let base64String = btoa(binaryString);\r\n this.url = 'data:video/mp4;base64,' + base64String;\r\n console.log(this.url);\r\n } catch (error) {\r\n console.log('error init video', error);\r\n }\r\n }\r\n\r\n httpGet(url: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n this.httpClient.get(url).subscribe((response: any) => {\r\n try {\r\n resolve(response);\r\n } catch (error) {\r\n reject(response);\r\n }\r\n });\r\n });\r\n }\r\n\r\n httpPost(url: string, data: any): Promise {\r\n return new Promise((resolve, reject) => {\r\n this.httpClient.post(url, data).subscribe((response: any) => {\r\n try {\r\n resolve(response);\r\n } catch (error) {\r\n reject(response);\r\n }\r\n });\r\n });\r\n }\r\n\r\n validateAllFormFields(formGroup: FormGroup) {\r\n Object.keys(formGroup.controls).forEach((field) => {\r\n const control = formGroup.get(field);\r\n if (control instanceof FormControl) {\r\n control.markAsTouched({ onlySelf: true });\r\n } else if (control instanceof FormGroup) {\r\n this.validateAllFormFields(control);\r\n }\r\n });\r\n }\r\n\r\n showSpinnerCargandoDatos() {\r\n console.log('Cargando data');\r\n\r\n gsap.to('.cargando-informacion', {\r\n x: -500,\r\n opacity: 1,\r\n duration: 0.8,\r\n });\r\n }\r\n hiddeSpinnerCargandoDatos() {\r\n gsap.to('.cargando-informacion', {\r\n x: 500,\r\n opacity: 0,\r\n duration: 0.8,\r\n });\r\n }\r\n\r\n showAletSinInformacion() {\r\n console.log('Ejecutnado');\r\n\r\n gsap.to('.sin-informacion', {\r\n x: -500,\r\n opacity: 1,\r\n duration: 0.8,\r\n });\r\n }\r\n\r\n hiddeAletSinInformacion() {\r\n gsap.to('.sin-informacion', {\r\n x: 500,\r\n opacity: 0,\r\n duration: 0.8,\r\n });\r\n }\r\n\r\n /*\r\n\r\n playFromAnimationScreen() {\r\n this.playAnimacion = !this.playAnimacion;\r\n if (this.playAnimacion) {\r\n this.setProgreso();\r\n //this.animationService.setReplayEvent('play');\r\n this.timeLineConclusiones.play();\r\n this.audio.play();\r\n return;\r\n }\r\n this.animationService.setReplayEvent('pause');\r\n this.timeLineConclusiones.pause();\r\n this.audio.pause();\r\n }\r\n\r\n */\r\n\r\n btn_play() {\r\n if (this.conclusionesCargadas) {\r\n this.playAnimacion = !this.playAnimacion;\r\n this.animationService.SetPlayV2(this.playAnimacion);\r\n }\r\n }\r\n\r\n playV2() {\r\n this.animationService.getPlayV2().subscribe((state) => {\r\n this.playAnimacion = state;\r\n if (this.playAnimacion) {\r\n this.setProgreso();\r\n this.timeLineConclusiones.play();\r\n this.audio.play();\r\n return;\r\n }\r\n this.timeLineConclusiones.pause();\r\n this.audio.pause();\r\n });\r\n }\r\n\r\n play() {\r\n this.playAnimacion = !this.playAnimacion;\r\n if (this.playAnimacion) {\r\n this.setProgreso();\r\n //this.animationService.setReplayEvent('play');\r\n this.timeLineConclusiones.play();\r\n this.audio.play();\r\n return;\r\n }\r\n this.timeLineConclusiones.pause();\r\n this.audio.pause();\r\n }\r\n\r\n reset() {\r\n if (this.conclusionesCargadas) {\r\n this.contadorSegundos = 0;\r\n this.timeLineConclusiones.restart();\r\n this.animationService.setRestart();\r\n }\r\n }\r\n\r\n initContador() {\r\n setInterval(() => {\r\n if (this.contadorSegundos < this.duracionTotal && this.playAnimacion) {\r\n this.contadorSegundos++;\r\n }\r\n }, 1000);\r\n }\r\n\r\n cargaConclusiones() {\r\n this.httpClient\r\n .get('assets/conclusiones-final.json')\r\n .subscribe((response: any) => {\r\n this.handlerConclusiones(response.conclusiones, response.duracionTotal);\r\n });\r\n }\r\n\r\n setInformacionClienteAnimationsScreen(nombre: String, fechaFactura: String) {\r\n this.animationService.datosCliente.nombre = nombre;\r\n this.animationService.datosCliente.fechaFactura = fechaFactura;\r\n }\r\n\r\n //Este metodo se encarga de transormar la respuesta http encargada de traer las conclusiones\r\n\r\n httpResponseChangeTemporal(response: any) {\r\n const final: any = {\r\n mensajeBienvenida: {},\r\n descripcionCuenta: {},\r\n mensajeConsumo: {},\r\n analisisConsumo: {},\r\n despedida: {},\r\n };\r\n\r\n var duracionTotal = 0;\r\n\r\n for (const conclusion in response) {\r\n if (\r\n conclusion == 'mensajeBienvenida' ||\r\n conclusion == 'descripcionCuenta' ||\r\n conclusion == 'mensajeConsumo' ||\r\n conclusion == 'analisisConsumo' ||\r\n conclusion == 'despedida'\r\n ) {\r\n var tituloConclusion =\r\n conclusion == 'mensajeBienvenida'\r\n ? 'Mensaje de bienvenida'\r\n : conclusion == 'descripcionCuenta'\r\n ? 'Descripción de cuenta'\r\n : conclusion == 'mensajeConsumo'\r\n ? 'Consumo total'\r\n : conclusion == 'analisisConsumo'\r\n ? 'Analisis de consumo'\r\n : conclusion == 'despedida'\r\n ? '¡ Gracias por utilizar nuestros servicios !'\r\n : '';\r\n\r\n const key = {\r\n mensaje: response[conclusion][0],\r\n titulo: tituloConclusion,\r\n duracion: response[conclusion][2],\r\n audio: response[conclusion][1],\r\n };\r\n\r\n final[conclusion] = key;\r\n duracionTotal = duracionTotal + response[conclusion][2];\r\n }\r\n }\r\n\r\n this.handlerConclusiones(final, duracionTotal);\r\n }\r\n\r\n handlerConclusiones(conclusiones: any, duracionTotalConclusiones: number) {\r\n const handlerConclusiones = [];\r\n this.duracionTotal = Math.ceil(duracionTotalConclusiones);\r\n for (const property in conclusiones) {\r\n handlerConclusiones.push({\r\n handlerWidth:\r\n (conclusiones[property].duracion * 100) / duracionTotalConclusiones,\r\n duracion: conclusiones[property].duracion,\r\n audio: conclusiones[property].audio,\r\n texto: conclusiones[property].mensaje,\r\n titulo: conclusiones[property].titulo,\r\n });\r\n }\r\n this.conclusiones = handlerConclusiones;\r\n console.log(this.conclusiones);\r\n\r\n this.initContador();\r\n }\r\n\r\n //Setea las animaciones de progreso.\r\n setProgreso() {\r\n const progress = document.querySelectorAll('.progreso');\r\n console.log(progress);\r\n\r\n progress.forEach((bar: any, index: number) => {\r\n const data = bar.dataset;\r\n this.setAnimaitionProgress(bar, data.duracion, data.audio, data.titulo);\r\n });\r\n }\r\n\r\n setAnimaitionProgress(\r\n idElement: any,\r\n duracionProgress: number,\r\n audioData: string,\r\n titulo: string\r\n ) {\r\n this.timeLineConclusiones.to(idElement, {\r\n width: '100%',\r\n duration: duracionProgress,\r\n onStart: () => {\r\n this.tituloConclusionActual = titulo;\r\n this.audio.src = 'data:audio/ogg;base64,' + audioData;\r\n this.audio.currentTime = 0;\r\n this.audio.play().catch((error) => {\r\n console.log(error);\r\n });\r\n },\r\n onComplete: () => {\r\n if (idElement) {\r\n }\r\n },\r\n });\r\n }\r\n\r\n changVolume($event: any) {\r\n var volume = $event.value / 100;\r\n\r\n this.audio.volume = volume;\r\n }\r\n\r\n /*\r\n\r\n initAnimacionesConclusiones() {\r\n this.timeLineConclusiones.to('.conclusion_progreso_1', {\r\n width: '100%',\r\n duration: 10,\r\n });\r\n\r\n this.timeLineConclusiones.to('.conclusion_progreso_2', {\r\n width: '100%',\r\n duration: 10,\r\n });\r\n\r\n this.timeLineConclusiones.to('.conclusion_progreso_3', {\r\n width: '100%',\r\n duration: 10,\r\n });\r\n this.timeLineConclusiones.to('.conclusion_progreso_4', {\r\n width: '100%',\r\n duration: 10,\r\n });\r\n this.timeLineConclusiones.to('.conclusion_progreso_5', {\r\n width: '100%',\r\n duration: 10,\r\n });\r\n }\r\n\r\n\r\n cargaConclisiones() {\r\n this.httpClient\r\n .get('assets/conclusiones-prueba.json')\r\n .subscribe((data: any) => {\r\n let duracionTotal = 0;\r\n let duraciones = [];\r\n for (const property in data.Conclusiones) {\r\n duraciones.push({\r\n duracion: data.Conclusiones[property].duracion,\r\n audio: data.Conclusiones[property].audio,\r\n });\r\n duracionTotal = duracionTotal + data.Conclusiones[property].duracion;\r\n }\r\n\r\n this.duracion = Math.ceil(duracionTotal);\r\n let duracionesprocentaje = duraciones.map((duracion) => {\r\n return {\r\n width: (duracion.duracion * 100) / duracionTotal,\r\n duracion: duracion.duracion,\r\n audio: duracion.audio,\r\n };\r\n });\r\n this.conclusiones = duracionesprocentaje;\r\n console.log('---------');\r\n\r\n console.log(this.conclusiones);\r\n\r\n\r\n });\r\n }\r\n\r\n \r\n\r\n play() {\r\n this.isPlay = !this.isPlay;\r\n if (this.isPlay) {\r\n this.playIcon = 'pause';\r\n window.setInterval(() => {\r\n if (this.duracion >= 1) {\r\n this.duracion--;\r\n }\r\n }, 1000);\r\n this.init();\r\n }\r\n\r\n if (!this.isPlay) {\r\n this.playIcon = 'play_circle';\r\n this.stop();\r\n }\r\n }\r\n\r\n stop() {\r\n if (this.animacionActual) {\r\n const propieadades =\r\n this.animacionActual.selector.getBoundingClientRect();\r\n const width = propieadades.width;\r\n this.animacionActual.selector.style.transition = 'none';\r\n this.animacionActual.selector.style.width = `${width}px`;\r\n this.animacionActual.audio.pause();\r\n const audioAPausar = this.animacionActual.refTimeOut;\r\n console.log('Audio a pausar', audioAPausar);\r\n console.log('Lista de audios', this.audios);\r\n let validacion = false;\r\n this.audios.forEach((audio) => {\r\n if (audio == audioAPausar || validacion) {\r\n clearTimeout(audio);\r\n validacion = true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n */\r\n\r\n public initV2() {}\r\n\r\n init() {\r\n const progressBar = document.querySelectorAll('.progressBar');\r\n var sumaDuracionesAnteriores = 0;\r\n progressBar.forEach((bar: any, index) => {\r\n const prueba = Number(Math.ceil(bar.dataset.duracion * 1000));\r\n const audio = new Audio();\r\n audio.src = 'data:audio/ogg;base64,' + bar.dataset.audio;\r\n if (index == 0) {\r\n const time = setTimeout(() => {\r\n this.animacionActual = {\r\n selector: bar,\r\n audio: audio,\r\n refTimeOut: time,\r\n };\r\n bar.style.transition = `width linear ${prueba}ms`;\r\n bar.style.width = '100%';\r\n audio.currentTime = 0;\r\n audio.load();\r\n var resp = audio.play();\r\n\r\n if (resp !== undefined) {\r\n resp\r\n .then((_) => {\r\n // autoplay starts!\r\n })\r\n .catch((error) => {\r\n //show error\r\n });\r\n }\r\n }, 0);\r\n\r\n this.audios.push(time);\r\n } else {\r\n const time = setTimeout(() => {\r\n this.animacionActual = {\r\n selector: bar,\r\n audio: audio,\r\n refTimeOut: time,\r\n };\r\n bar.style.transition = `width linear ${prueba}ms`;\r\n bar.style.width = '100%';\r\n audio.currentTime = 0;\r\n audio.load();\r\n var resp = audio.play();\r\n\r\n if (resp !== undefined) {\r\n resp\r\n .then((_) => {\r\n // autoplay starts!\r\n })\r\n .catch((error) => {\r\n //show error\r\n });\r\n }\r\n }, sumaDuracionesAnteriores);\r\n\r\n this.audios.push(time);\r\n }\r\n\r\n sumaDuracionesAnteriores = sumaDuracionesAnteriores + prueba;\r\n\r\n bar.addEventListener('animationstart', () => {});\r\n\r\n bar.addEventListener('animationend', () => {});\r\n /*\r\n setTimeout(() => {\r\n console.log(index);\r\n }, prueba * index);\r\n */\r\n });\r\n /*\r\n let progressBar = document.querySelectorAll('.progressBar');\r\n progressBar.forEach((bar: any, index) => {\r\n var duracionMilisegundos = bar.dataset.duracion * 1000;\r\n const prueba = Math.floor(bar.dataset.duracion) * 1000;\r\n console.log(prueba);\r\n \r\n setTimeout(() => {\r\n //bar.style.animation = `progressBar ${bar.dataset.duracion}s linear 1`;\r\n bar.style.transition = `width ease-in ${prueba}ms`;\r\n bar.style.width = '100%';\r\n }, prueba * index);\r\n });\r\n */\r\n }\r\n\r\n testAnimations() {\r\n setTimeout(() => {\r\n gsap.to('#contenedor_fac', {\r\n duration: 5,\r\n scale: 2,\r\n x: -280,\r\n });\r\n }, 3000);\r\n\r\n setTimeout(() => {\r\n gsap.to('#contenedor_fac', {\r\n duration: 5,\r\n y: -100,\r\n });\r\n }, 10000);\r\n\r\n setTimeout(() => {\r\n gsap.to('#contenedor_fac', {\r\n duration: 5,\r\n x: -400,\r\n });\r\n }, 20000);\r\n\r\n setTimeout(() => {\r\n gsap.to('#contenedor_fac', {\r\n duration: 7,\r\n scale: 3.5,\r\n x: -250,\r\n });\r\n }, 30000);\r\n }\r\n\r\n //Esta funcion se encarga de solicitar la factura y posteriormente hacer la conversion de pdf a png en base 64\r\n\r\n async getPDFService(numeroCuenta: string): Promise {\r\n const url = `https://dl-dev.herokuapp.com/https://adminchecweb.cadenaportalgestion.com/PDF/Show?Id=${numeroCuenta}&mes=&anio=undefined`;\r\n\r\n const loadingTask = await getDocument(url).promise;\r\n\r\n const countPages = loadingTask._pdfInfo.numPages;\r\n\r\n const page = await loadingTask.getPage(1);\r\n var viewport = page.getViewport({ scale: 10 });\r\n var canvas: any = document.getElementById('canvas');\r\n var context = canvas.getContext('2d');\r\n\r\n canvas.height = viewport.height;\r\n canvas.width = viewport.width;\r\n\r\n var renderContext = {\r\n canvasContext: context,\r\n viewport: viewport,\r\n };\r\n\r\n var renderTask = page.render(renderContext);\r\n let imagen = await renderTask.promise;\r\n var dataURL = canvas.toDataURL();\r\n return new Promise((resolve, reject) => {\r\n resolve(dataURL);\r\n });\r\n }\r\n}\r\n","
\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n
{{ progress }} %
\r\n
\r\n {{ messageProgress }}\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css']\r\n})\r\nexport class AppComponent {\r\n title = 'videofactura';\r\n}\r\n","\r\n","import { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { ReproductorComponent } from './components/reproductor/reproductor.component';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { AnimationsScreenComponent } from './components/animations-screen/animations-screen.component';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { HashLocationStrategy, LocationStrategy } from '@angular/common';\r\nimport { SocketIoModule } from 'ngx-socket-io';\r\nimport { SocketProgressRender } from './services/socket-web.service';\r\n\r\n@NgModule({\r\n declarations: [AppComponent, ReproductorComponent, AnimationsScreenComponent],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule,\r\n HttpClientModule,\r\n NoopAnimationsModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatSliderModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SocketIoModule,\r\n ],\r\n providers: [\r\n {\r\n provide: LocationStrategy,\r\n useClass: HashLocationStrategy,\r\n },\r\n ],\r\n bootstrap: [AppComponent],\r\n})\r\nexport class AppModule {}\r\n","import { EventEmitter, Inject, Injectable } from '@angular/core';\r\nimport { Socket } from 'ngx-socket-io';\r\n\r\n@Inject({ providedIn: 'root' })\r\nexport class SocketProgressRender extends Socket {\r\n public callBack: EventEmitter = new EventEmitter();\r\n\r\n constructor(niu: string) {\r\n super({\r\n url: 'https://lucy.chec.com.co/', //https://lucy.chec.com.co/\r\n options: {\r\n reconnection: false,\r\n //http://localhost:3400/\r\n query: {\r\n niu,\r\n },\r\n path: '/backchatweb/videofactura/backchatweb/videofactura/socket.io',\r\n },\r\n });\r\n\r\n this.listen();\r\n }\r\n\r\n listen = () => {\r\n this.ioSocket.on('event', (res: any) => {\r\n this.callBack.emit(res);\r\n });\r\n };\r\n\r\n emitEvent = (payload = {}) => {\r\n this.ioSocket.emit('event', payload);\r\n };\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { ReproductorComponent } from './components/reproductor/reproductor.component';\r\nimport { AnimationsScreenComponent } from './components/animations-screen/animations-screen.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n redirectTo: 'video',\r\n pathMatch: 'full',\r\n },\r\n {\r\n path: 'home',\r\n loadChildren: () =>\r\n import('./modules/home/home.module').then((m) => m.HomeModule),\r\n },\r\n {\r\n path: 'video',\r\n component: ReproductorComponent,\r\n },\r\n {\r\n path: 'iframe',\r\n component: AnimationsScreenComponent,\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class AppRoutingModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AnimationService {\r\n private playAnimations = new BehaviorSubject(false);\r\n private playReproductor = new BehaviorSubject(false);\r\n\r\n private replayEvents = new BehaviorSubject('pause');\r\n\r\n private playV2 = new BehaviorSubject(false);\r\n private restart = new BehaviorSubject(false);\r\n\r\n public stopAllAnimations = new BehaviorSubject(false);\r\n\r\n\r\n public datosCliente:any = {\r\n nombre:'',\r\n fechaFactura: ''\r\n }\r\n\r\n public imagenBase64Factura:string = '';\r\n \r\n constructor() {}\r\n\r\n public SetPlayV2(state: boolean) {\r\n this.playV2.next(state);\r\n }\r\n\r\n public getPlayV2() {\r\n return this.playV2;\r\n }\r\n\r\n public setRestart() {\r\n this.restart.next(true);\r\n }\r\n\r\n public getRestart() {\r\n return this.restart;\r\n }\r\n\r\n public setReplayEvent = (event: String) => {\r\n //Event = 'play' || 'pause' || 'reset';\r\n this.replayEvents.next(event);\r\n };\r\n\r\n public getReplayEvent = () => {\r\n return this.replayEvents;\r\n };\r\n\r\n public play(state: boolean) {\r\n this.playAnimations.next(state);\r\n }\r\n\r\n public getplay() {\r\n return this.playAnimations;\r\n }\r\n\r\n public setPlayReproductor(state: boolean) {\r\n this.playReproductor.next(state);\r\n }\r\n\r\n public getPlayReproductor() {\r\n return this.playReproductor;\r\n }\r\n}\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\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 = \"zn8P\";"],"sourceRoot":"webpack:///"}