metag-sdk-ionic 1.2.8 → 1.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (16) hide show
  1. package/dist/src/app/pages/id-vision/components/camara-video-selfie/camara-video-selfie.component.js +2 -2
  2. package/dist/src/app/pages/id-vision/components/direct-photo-selfie/direct-photo-selfie.component.d.ts +3 -3
  3. package/dist/src/app/pages/id-vision/components/direct-photo-selfie/direct-photo-selfie.component.js +29 -9
  4. package/dist/src/app/pages/id-vision/components/direct-photo-selfie/direct-photo-selfie.component.js.map +1 -1
  5. package/dist/src/app/pages/id-vision/components/photo-selfie-camera/photo-selfie-camera.component.d.ts +2 -1
  6. package/dist/src/app/pages/id-vision/components/photo-selfie-camera/photo-selfie-camera.component.js +28 -6
  7. package/dist/src/app/pages/id-vision/components/photo-selfie-camera/photo-selfie-camera.component.js.map +1 -1
  8. package/dist/src/app/pages/id-vision/components/simple-acuerdo-video/simple-acuerdo-video.component.js +2 -2
  9. package/dist/src/app/pages/id-vision/id-vision.component.d.ts +1 -1
  10. package/dist/src/app/pages/id-vision/id-vision.component.js +106 -46
  11. package/dist/src/app/pages/id-vision/id-vision.component.js.map +1 -1
  12. package/dist/src/app/pages/id-vision/services/configuration/configuration.service.js +1 -0
  13. package/dist/src/app/pages/id-vision/services/configuration/configuration.service.js.map +1 -1
  14. package/dist/src/app/pages/id-vision/services/modal-services/sdk-communication-services.js +3 -0
  15. package/dist/src/app/pages/id-vision/services/modal-services/sdk-communication-services.js.map +1 -1
  16. package/package.json +1 -1
@@ -382,11 +382,11 @@ export class CamaraVideoSelfieComponent {
382
382
  i0.ɵɵproperty("ngIf", !ctx.isRecording);
383
383
  i0.ɵɵadvance();
384
384
  i0.ɵɵproperty("ngIf", ctx.isRecording);
385
- } }, dependencies: [i5.NgClass, i5.NgIf, i1.IonButton, i1.IonButtons, i1.IonContent, i1.IonHeader, i1.IonIcon, i1.IonLabel, i1.IonToolbar], styles: [".camera-container[_ngcontent-%COMP%] {\r\n justify-content: center;\r\n align-items: center;\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n height: 70%;\r\n background-color: #fff;\r\n}\r\n\r\n.video-wrapper[_ngcontent-%COMP%] {\r\n position: relative;\r\n width: 300px;\r\n height: 300px;\r\n border-radius: 50%;\r\n overflow: hidden;\r\n}\r\n\r\nvideo[_ngcontent-%COMP%] {\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n border-radius: 50%;\r\n}\r\n\r\n.progress-ring[_ngcontent-%COMP%] {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n transform: rotate(-90deg);\r\n \n\r\n}\r\n\r\n.progress-ring__circle[_ngcontent-%COMP%] {\r\n fill: transparent;\r\n stroke: purple;\r\n stroke-width: 12;\r\n stroke-dasharray: 945;\r\n \n\r\n stroke-dashoffset: 880;\r\n \n\r\n transition: stroke-dashoffset 12s linear;\r\n \n\r\n}\r\n\r\n.progress-active[_ngcontent-%COMP%] .progress-ring__circle[_ngcontent-%COMP%] {\r\n animation: _ngcontent-%COMP%_progress-animation 5s linear forwards;\r\n}\r\n\r\n@keyframes _ngcontent-%COMP%_progress-animation {\r\n from {\r\n stroke-dashoffset: 880;\r\n }\r\n\r\n to {\r\n stroke-dashoffset: 0;\r\n }\r\n}\r\n\r\n.text-container[_ngcontent-%COMP%] {\r\n height: 40px;\r\n color: black;\r\n}\r\n\r\nion-header[_ngcontent-%COMP%] {\r\n --background: #fff;\r\n \n\r\n}\r\n\r\n.centered-title[_ngcontent-%COMP%] {\r\n text-align: center;\r\n width: 100%;\r\n \n\r\n font-weight: bold;\r\n}\r\n\r\n.fixed-footer[_ngcontent-%COMP%] {\r\n position: fixed;\r\n bottom: 40px;\r\n left: 0;\r\n width: 100%;\r\n padding: 10px;\r\n background-color: #fff; // Color de fondo, opcional\r\n // box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);\r\n\r\n\r\n ion-button {\r\n width: 90%;\r\n max-width: 300px;\r\n margin: 0 auto;\r\n color: #fff;\r\n font-weight: bold;\r\n border-radius: 20px;\r\n\r\n --background: #82298F;\r\n --background-hover: #82298F;\r\n --background-activated: #82298F;\r\n --background-focused: #82298F;\r\n\r\n --color: #fff;\r\n\r\n --border-radius: 20px;\r\n --border-color: #82298F;\r\n ;\r\n --border-style: solid;\r\n --border-width: 1px;\r\n\r\n --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.25);\r\n\r\n --ripple-color: #82298F;\r\n\r\n\r\n &:hover {\r\n background-color: #82298F;\r\n }\r\n\r\n &:active {\r\n background-color: #82298F;\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\nion-header[_ngcontent-%COMP%] {\r\n --background: #fff;\r\n \n\r\n color: #000000;\r\n \n\r\n}\r\n\r\nion-toolbar[_ngcontent-%COMP%] {\r\n --ion-background-color: #fff !important;\r\n --background: #ffffff !important;\r\n --color: #000000 !important;\r\n}\r\n\r\n.centered-title[_ngcontent-%COMP%] {\r\n flex: 1;\r\n text-align: center;\r\n \n\r\n font-weight: bold;\r\n color: #000000;\r\n margin: 0;\r\n \n\r\n}\r\n\r\nion-buttons[_ngcontent-%COMP%] {\r\n justify-content: flex-end;\r\n \n\r\n}\r\n\r\n.countdown-overlay[_ngcontent-%COMP%] {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.6);\r\n \n\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin: 0;\r\n padding: 0;\r\n z-index: 1000;\r\n \n\r\n animation: _ngcontent-%COMP%_fadeIn 0.5s ease-out, _ngcontent-%COMP%_fadeOut 0.5s ease-out 2.5s;\r\n \n\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n\r\n}\r\n\r\nion-content.custom-content[_ngcontent-%COMP%] {\r\n --padding-top: 0;\r\n --padding-bottom: 0;\r\n margin: 0;\r\n padding: 0;\r\n}\r\n\r\n.countdown[_ngcontent-%COMP%] {\r\n font-size: 100px;\r\n font-weight: bold;\r\n color: #fff;\r\n animation: _ngcontent-%COMP%_scaleUp 0.5s ease-out, _ngcontent-%COMP%_scaleDown 0.5s ease-out 2.5s;\r\n \n\r\n}\r\n\r\n\n\r\n@keyframes _ngcontent-%COMP%_fadeIn {\r\n from {\r\n opacity: 0;\r\n }\r\n\r\n to {\r\n opacity: 1;\r\n }\r\n}\r\n\r\n@keyframes _ngcontent-%COMP%_fadeOut {\r\n from {\r\n opacity: 1;\r\n }\r\n\r\n to {\r\n opacity: 0;\r\n }\r\n}\r\n\r\n\n\r\n@keyframes _ngcontent-%COMP%_scaleUp {\r\n from {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n\r\n to {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n}\r\n\r\n@keyframes _ngcontent-%COMP%_scaleDown {\r\n from {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n\r\n to {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n}\r\n\r\n.red[_ngcontent-%COMP%] {\r\n padding: 10px;\r\n color: red;\r\n}\r\n\r\n.text-center[_ngcontent-%COMP%] {\r\n text-align: center;\r\n padding-left: 20%;\r\n padding-right: 20%;\r\n color: #333;\r\n}\r\n\r\n.loading-overlay[_ngcontent-%COMP%] {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.8);\r\n \n\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n z-index: 1000;\r\n \n\r\n margin: 0;\r\n padding: 0;\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n}\r\n\r\nion-spinner[_ngcontent-%COMP%] {\r\n color: #fff;\r\n width: 50px;\r\n height: 50px;\r\n}"] }); }
385
+ } }, dependencies: [i5.NgClass, i5.NgIf, i1.IonButton, i1.IonButtons, i1.IonContent, i1.IonHeader, i1.IonIcon, i1.IonLabel, i1.IonToolbar], styles: [".camera-container[_ngcontent-%COMP%] {\r\n justify-content: center;\r\n align-items: center;\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n height: 70%;\r\n background-color: #fff;\r\n}\r\n\r\n.video-wrapper[_ngcontent-%COMP%] {\r\n position: relative;\r\n width: 300px;\r\n height: 300px;\r\n border-radius: 50%;\r\n overflow: hidden;\r\n}\r\n\r\nvideo[_ngcontent-%COMP%] {\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n border-radius: 50%;\r\n}\r\n\r\n.progress-ring[_ngcontent-%COMP%] {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n transform: rotate(-90deg);\r\n \n\r\n}\r\n\r\n.progress-ring__circle[_ngcontent-%COMP%] {\r\n fill: transparent;\r\n stroke: purple;\r\n stroke-width: 12;\r\n stroke-dasharray: 945;\r\n \n\r\n stroke-dashoffset: 880;\r\n \n\r\n transition: stroke-dashoffset 12s linear;\r\n \n\r\n}\r\n\r\n.progress-active[_ngcontent-%COMP%] .progress-ring__circle[_ngcontent-%COMP%] {\r\n animation: _ngcontent-%COMP%_progress-animation 5s linear forwards;\r\n}\r\n\r\n@keyframes _ngcontent-%COMP%_progress-animation {\r\n from {\r\n stroke-dashoffset: 880;\r\n }\r\n\r\n to {\r\n stroke-dashoffset: 0;\r\n }\r\n}\r\n\r\n.text-container[_ngcontent-%COMP%] {\r\n height: 40px;\r\n color: black;\r\n}\r\n\r\nion-header[_ngcontent-%COMP%] {\r\n --background: #fff;\r\n \n\r\n}\r\n\r\n.centered-title[_ngcontent-%COMP%] {\r\n text-align: center;\r\n width: 100%;\r\n \n\r\n font-weight: bold;\r\n}\r\n\r\n.fixed-footer[_ngcontent-%COMP%] {\r\n position: fixed;\r\n bottom: 40px;\r\n left: 0;\r\n width: 100%;\r\n padding: 10px;\r\n background-color: #fff; // Color de fondo, opcional\r\n // box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);\r\n\r\n\r\n ion-button {\r\n width: 90%;\r\n max-width: 300px;\r\n margin: 0 auto;\r\n color: #fff;\r\n font-weight: bold;\r\n border-radius: 20px;\r\n\r\n --background: #82298F;\r\n --background-hover: #82298F;\r\n --background-activated: #82298F;\r\n --background-focused: #82298F;\r\n\r\n --color: #fff;\r\n\r\n --border-radius: 20px;\r\n --border-color: #82298F;\r\n ;\r\n --border-style: solid;\r\n --border-width: 1px;\r\n\r\n --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.25);\r\n\r\n --ripple-color: #82298F;\r\n\r\n\r\n &:hover {\r\n background-color: #82298F;\r\n }\r\n\r\n &:active {\r\n background-color: #82298F;\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\nion-header[_ngcontent-%COMP%] {\r\n --background: #fff;\r\n \n\r\n color: #000000;\r\n \n\r\n}\r\n\r\nion-toolbar[_ngcontent-%COMP%] {\r\n --ion-background-color: #fff !important;\r\n --background: #ffffff !important;\r\n --color: #000000 !important;\r\n}\r\n\r\n.centered-title[_ngcontent-%COMP%] {\r\n flex: 1;\r\n text-align: center;\r\n \n\r\n font-weight: bold;\r\n color: #000000;\r\n margin: 0;\r\n \n\r\n}\r\n\r\nion-buttons[_ngcontent-%COMP%] {\r\n justify-content: flex-end;\r\n \n\r\n}\r\n\r\n.countdown-overlay[_ngcontent-%COMP%] {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.6);\r\n \n\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin: 0;\r\n padding: 0;\r\n z-index: 1000;\r\n \n\r\n animation: _ngcontent-%COMP%_fadeIn 0.5s ease-out, _ngcontent-%COMP%_fadeOut 0.5s ease-out 2.5s;\r\n \n\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n\r\n}\r\n\r\nion-content.custom-content[_ngcontent-%COMP%] {\r\n --padding-top: 0;\r\n --padding-bottom: 0;\r\n margin: 0;\r\n padding: 0;\r\n margin-top: 10vh; // Levanta el contenido un 10% desde el tope\r\n height: 90vh; // Ajusta la altura para que junto con el margin sea 100%\r\n}\r\n\r\n.countdown[_ngcontent-%COMP%] {\r\n font-size: 100px;\r\n font-weight: bold;\r\n color: #fff;\r\n animation: _ngcontent-%COMP%_scaleUp 0.5s ease-out, _ngcontent-%COMP%_scaleDown 0.5s ease-out 2.5s;\r\n \n\r\n}\r\n\r\n\n\r\n@keyframes _ngcontent-%COMP%_fadeIn {\r\n from {\r\n opacity: 0;\r\n }\r\n\r\n to {\r\n opacity: 1;\r\n }\r\n}\r\n\r\n@keyframes _ngcontent-%COMP%_fadeOut {\r\n from {\r\n opacity: 1;\r\n }\r\n\r\n to {\r\n opacity: 0;\r\n }\r\n}\r\n\r\n\n\r\n@keyframes _ngcontent-%COMP%_scaleUp {\r\n from {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n\r\n to {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n}\r\n\r\n@keyframes _ngcontent-%COMP%_scaleDown {\r\n from {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n\r\n to {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n}\r\n\r\n.red[_ngcontent-%COMP%] {\r\n padding: 10px;\r\n color: red;\r\n}\r\n\r\n.text-center[_ngcontent-%COMP%] {\r\n text-align: center;\r\n padding-left: 20%;\r\n padding-right: 20%;\r\n color: #333;\r\n}\r\n\r\n.loading-overlay[_ngcontent-%COMP%] {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.8);\r\n \n\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n z-index: 1000;\r\n \n\r\n margin: 0;\r\n padding: 0;\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n}\r\n\r\nion-spinner[_ngcontent-%COMP%] {\r\n color: #fff;\r\n width: 50px;\r\n height: 50px;\r\n}"] }); }
386
386
  }
387
387
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CamaraVideoSelfieComponent, [{
388
388
  type: Component,
389
- args: [{ selector: 'app-camara-video-selfie', encapsulation: ViewEncapsulation.Emulated, template: "<ion-content color=\"light\" class=\"custom-content\">\r\n <!-- Loading deshabilitado para evitar conflictos con loading principal -->\r\n <!-- <div *ngIf=\"isLoading\" class=\"loading-overlay\">\r\n <ion-spinner name=\"crescent\"></ion-spinner>\r\n </div> --> \r\n <div *ngIf=\"countdown > 0\" class=\"countdown-overlay\">\r\n <div class=\"countdown\">{{ countdown }}</div>\r\n </div>\r\n <ion-header class=\"ion-no-border\">\r\n <ion-toolbar color=\"light\">\r\n <!-- <ion-title class=\"centered-title\">Video Selfie</ion-title> -->\r\n <ion-buttons slot=\"end\">\r\n <ion-button (click)=\"closeOverlayVideo()\" [disabled]=\"!canStopRecording\">\r\n <ion-icon name=\"close\" color=\"dark\"></ion-icon>\r\n </ion-button>\r\n </ion-buttons>\r\n </ion-toolbar>\r\n </ion-header>\r\n <!-- Contenedor de la c\u00E1mara y progresi\u00F3n -->\r\n <div class=\"camera-container\">\r\n <div class=\"video-wrapper\">\r\n <video #videoElement muted autoplay playsinline style=\"transform: scaleX(-1)\"></video>\r\n <svg class=\"progress-ring\" #progressRing width=\"300\" height=\"300\">\r\n <circle class=\"progress-ring__circle\" cx=\"150\" cy=\"150\" r=\"150\" />\r\n </svg>\r\n </div>\r\n <ion-label [ngClass]=\"{'red': isRecording}\">00:{{ timeRemaining < 10 ? '0' + timeRemaining : timeRemaining\r\n }}</ion-label>\r\n <p class=\"text-center\">Permanece quieto, con tu rostro en el centro del c\u00EDrculo.</p>\r\n <!-- Botones de grabaci\u00F3n -->\r\n <div class=\"fixed-footer\">\r\n <ion-button class=\"button-grabar\" *ngIf=\"!isRecording\" expand=\"block\" (click)=\"recordVideo()\">Iniciar Grabaci\u00F3n</ion-button>\r\n <ion-button *ngIf=\"isRecording\" expand=\"block\" (click)=\"stopRecording()\" [disabled]=\"!canStopRecording\">Detener\r\n Grabaci\u00F3n</ion-button>\r\n </div>\r\n </div>\r\n</ion-content>", styles: [".camera-container {\r\n justify-content: center;\r\n align-items: center;\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n height: 70%;\r\n background-color: #fff;\r\n}\r\n\r\n.video-wrapper {\r\n position: relative;\r\n width: 300px;\r\n height: 300px;\r\n border-radius: 50%;\r\n overflow: hidden;\r\n}\r\n\r\nvideo {\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n border-radius: 50%;\r\n}\r\n\r\n.progress-ring {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n transform: rotate(-90deg);\r\n /* Rotamos el c\u00EDrculo para que la animaci\u00F3n inicie desde arriba */\r\n}\r\n\r\n.progress-ring__circle {\r\n fill: transparent;\r\n stroke: purple;\r\n stroke-width: 12;\r\n stroke-dasharray: 945;\r\n /* La circunferencia del c\u00EDrculo 880*/\r\n stroke-dashoffset: 880;\r\n /* Oculto por completo al inicio */\r\n transition: stroke-dashoffset 12s linear;\r\n /* Esto controlar\u00E1 el llenado progresivo */\r\n}\r\n\r\n.progress-active .progress-ring__circle {\r\n animation: progress-animation 5s linear forwards;\r\n}\r\n\r\n@keyframes progress-animation {\r\n from {\r\n stroke-dashoffset: 880;\r\n }\r\n\r\n to {\r\n stroke-dashoffset: 0;\r\n }\r\n}\r\n\r\n.text-container {\r\n height: 40px;\r\n color: black;\r\n}\r\n\r\nion-header {\r\n --background: #fff;\r\n /* Fondo blanco para el header */\r\n}\r\n\r\n.centered-title {\r\n text-align: center;\r\n width: 100%;\r\n /* Asegura que el t\u00EDtulo est\u00E9 centrado */\r\n font-weight: bold;\r\n}\r\n\r\n.fixed-footer {\r\n position: fixed;\r\n bottom: 40px;\r\n left: 0;\r\n width: 100%;\r\n padding: 10px;\r\n background-color: #fff; // Color de fondo, opcional\r\n // box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);\r\n\r\n\r\n ion-button {\r\n width: 90%;\r\n max-width: 300px;\r\n margin: 0 auto;\r\n color: #fff;\r\n font-weight: bold;\r\n border-radius: 20px;\r\n\r\n --background: #82298F;\r\n --background-hover: #82298F;\r\n --background-activated: #82298F;\r\n --background-focused: #82298F;\r\n\r\n --color: #fff;\r\n\r\n --border-radius: 20px;\r\n --border-color: #82298F;\r\n ;\r\n --border-style: solid;\r\n --border-width: 1px;\r\n\r\n --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.25);\r\n\r\n --ripple-color: #82298F;\r\n\r\n\r\n &:hover {\r\n background-color: #82298F;\r\n }\r\n\r\n &:active {\r\n background-color: #82298F;\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\nion-header {\r\n --background: #fff;\r\n /* Fondo blanco */\r\n color: #000000;\r\n /* Texto negro */\r\n}\r\n\r\nion-toolbar {\r\n --ion-background-color: #fff !important;\r\n --background: #ffffff !important;\r\n --color: #000000 !important;\r\n}\r\n\r\n.centered-title {\r\n flex: 1;\r\n text-align: center;\r\n /* Centrar el t\u00EDtulo */\r\n font-weight: bold;\r\n color: #000000;\r\n margin: 0;\r\n /* Quita cualquier margen del t\u00EDtulo */\r\n}\r\n\r\nion-buttons {\r\n justify-content: flex-end;\r\n /* Alinea el bot\u00F3n a la derecha */\r\n}\r\n\r\n.countdown-overlay {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.6);\r\n /* Fondo semi-transparente */\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin: 0;\r\n padding: 0;\r\n z-index: 1000;\r\n /* Asegurarse de que est\u00E9 encima de otros elementos */\r\n animation: fadeIn 0.5s ease-out, fadeOut 0.5s ease-out 2.5s;\r\n /* Animaciones de entrada y salida */\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n\r\n}\r\n\r\nion-content.custom-content {\r\n --padding-top: 0;\r\n --padding-bottom: 0;\r\n margin: 0;\r\n padding: 0;\r\n}\r\n\r\n.countdown {\r\n font-size: 100px;\r\n font-weight: bold;\r\n color: #fff;\r\n animation: scaleUp 0.5s ease-out, scaleDown 0.5s ease-out 2.5s;\r\n /* Escalar en entrada y salida */\r\n}\r\n\r\n/* Animaci\u00F3n para desvanecer la superposici\u00F3n */\r\n@keyframes fadeIn {\r\n from {\r\n opacity: 0;\r\n }\r\n\r\n to {\r\n opacity: 1;\r\n }\r\n}\r\n\r\n@keyframes fadeOut {\r\n from {\r\n opacity: 1;\r\n }\r\n\r\n to {\r\n opacity: 0;\r\n }\r\n}\r\n\r\n/* Animaci\u00F3n para escalar el n\u00FAmero */\r\n@keyframes scaleUp {\r\n from {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n\r\n to {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n}\r\n\r\n@keyframes scaleDown {\r\n from {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n\r\n to {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n}\r\n\r\n.red {\r\n padding: 10px;\r\n color: red;\r\n}\r\n\r\n.text-center {\r\n text-align: center;\r\n padding-left: 20%;\r\n padding-right: 20%;\r\n color: #333;\r\n}\r\n\r\n.loading-overlay {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.8);\r\n /* Fondo oscuro semi-transparente */\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n z-index: 1000;\r\n /* Aseg\u00FArate de que est\u00E9 por encima del contenido */\r\n margin: 0;\r\n padding: 0;\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n}\r\n\r\nion-spinner {\r\n color: #fff;\r\n width: 50px;\r\n height: 50px;\r\n}"] }]
389
+ args: [{ selector: 'app-camara-video-selfie', encapsulation: ViewEncapsulation.Emulated, template: "<ion-content color=\"light\" class=\"custom-content\">\r\n <!-- Loading deshabilitado para evitar conflictos con loading principal -->\r\n <!-- <div *ngIf=\"isLoading\" class=\"loading-overlay\">\r\n <ion-spinner name=\"crescent\"></ion-spinner>\r\n </div> --> \r\n <div *ngIf=\"countdown > 0\" class=\"countdown-overlay\">\r\n <div class=\"countdown\">{{ countdown }}</div>\r\n </div>\r\n <ion-header class=\"ion-no-border\">\r\n <ion-toolbar color=\"light\">\r\n <!-- <ion-title class=\"centered-title\">Video Selfie</ion-title> -->\r\n <ion-buttons slot=\"end\">\r\n <ion-button (click)=\"closeOverlayVideo()\" [disabled]=\"!canStopRecording\">\r\n <ion-icon name=\"close\" color=\"dark\"></ion-icon>\r\n </ion-button>\r\n </ion-buttons>\r\n </ion-toolbar>\r\n </ion-header>\r\n <!-- Contenedor de la c\u00E1mara y progresi\u00F3n -->\r\n <div class=\"camera-container\">\r\n <div class=\"video-wrapper\">\r\n <video #videoElement muted autoplay playsinline style=\"transform: scaleX(-1)\"></video>\r\n <svg class=\"progress-ring\" #progressRing width=\"300\" height=\"300\">\r\n <circle class=\"progress-ring__circle\" cx=\"150\" cy=\"150\" r=\"150\" />\r\n </svg>\r\n </div>\r\n <ion-label [ngClass]=\"{'red': isRecording}\">00:{{ timeRemaining < 10 ? '0' + timeRemaining : timeRemaining\r\n }}</ion-label>\r\n <p class=\"text-center\">Permanece quieto, con tu rostro en el centro del c\u00EDrculo.</p>\r\n <!-- Botones de grabaci\u00F3n -->\r\n <div class=\"fixed-footer\">\r\n <ion-button class=\"button-grabar\" *ngIf=\"!isRecording\" expand=\"block\" (click)=\"recordVideo()\">Iniciar Grabaci\u00F3n</ion-button>\r\n <ion-button *ngIf=\"isRecording\" expand=\"block\" (click)=\"stopRecording()\" [disabled]=\"!canStopRecording\">Detener\r\n Grabaci\u00F3n</ion-button>\r\n </div>\r\n </div>\r\n</ion-content>", styles: [".camera-container {\r\n justify-content: center;\r\n align-items: center;\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n height: 70%;\r\n background-color: #fff;\r\n}\r\n\r\n.video-wrapper {\r\n position: relative;\r\n width: 300px;\r\n height: 300px;\r\n border-radius: 50%;\r\n overflow: hidden;\r\n}\r\n\r\nvideo {\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n border-radius: 50%;\r\n}\r\n\r\n.progress-ring {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n transform: rotate(-90deg);\r\n /* Rotamos el c\u00EDrculo para que la animaci\u00F3n inicie desde arriba */\r\n}\r\n\r\n.progress-ring__circle {\r\n fill: transparent;\r\n stroke: purple;\r\n stroke-width: 12;\r\n stroke-dasharray: 945;\r\n /* La circunferencia del c\u00EDrculo 880*/\r\n stroke-dashoffset: 880;\r\n /* Oculto por completo al inicio */\r\n transition: stroke-dashoffset 12s linear;\r\n /* Esto controlar\u00E1 el llenado progresivo */\r\n}\r\n\r\n.progress-active .progress-ring__circle {\r\n animation: progress-animation 5s linear forwards;\r\n}\r\n\r\n@keyframes progress-animation {\r\n from {\r\n stroke-dashoffset: 880;\r\n }\r\n\r\n to {\r\n stroke-dashoffset: 0;\r\n }\r\n}\r\n\r\n.text-container {\r\n height: 40px;\r\n color: black;\r\n}\r\n\r\nion-header {\r\n --background: #fff;\r\n /* Fondo blanco para el header */\r\n}\r\n\r\n.centered-title {\r\n text-align: center;\r\n width: 100%;\r\n /* Asegura que el t\u00EDtulo est\u00E9 centrado */\r\n font-weight: bold;\r\n}\r\n\r\n.fixed-footer {\r\n position: fixed;\r\n bottom: 40px;\r\n left: 0;\r\n width: 100%;\r\n padding: 10px;\r\n background-color: #fff; // Color de fondo, opcional\r\n // box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);\r\n\r\n\r\n ion-button {\r\n width: 90%;\r\n max-width: 300px;\r\n margin: 0 auto;\r\n color: #fff;\r\n font-weight: bold;\r\n border-radius: 20px;\r\n\r\n --background: #82298F;\r\n --background-hover: #82298F;\r\n --background-activated: #82298F;\r\n --background-focused: #82298F;\r\n\r\n --color: #fff;\r\n\r\n --border-radius: 20px;\r\n --border-color: #82298F;\r\n ;\r\n --border-style: solid;\r\n --border-width: 1px;\r\n\r\n --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.25);\r\n\r\n --ripple-color: #82298F;\r\n\r\n\r\n &:hover {\r\n background-color: #82298F;\r\n }\r\n\r\n &:active {\r\n background-color: #82298F;\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\nion-header {\r\n --background: #fff;\r\n /* Fondo blanco */\r\n color: #000000;\r\n /* Texto negro */\r\n}\r\n\r\nion-toolbar {\r\n --ion-background-color: #fff !important;\r\n --background: #ffffff !important;\r\n --color: #000000 !important;\r\n}\r\n\r\n.centered-title {\r\n flex: 1;\r\n text-align: center;\r\n /* Centrar el t\u00EDtulo */\r\n font-weight: bold;\r\n color: #000000;\r\n margin: 0;\r\n /* Quita cualquier margen del t\u00EDtulo */\r\n}\r\n\r\nion-buttons {\r\n justify-content: flex-end;\r\n /* Alinea el bot\u00F3n a la derecha */\r\n}\r\n\r\n.countdown-overlay {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.6);\r\n /* Fondo semi-transparente */\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin: 0;\r\n padding: 0;\r\n z-index: 1000;\r\n /* Asegurarse de que est\u00E9 encima de otros elementos */\r\n animation: fadeIn 0.5s ease-out, fadeOut 0.5s ease-out 2.5s;\r\n /* Animaciones de entrada y salida */\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n\r\n}\r\n\r\nion-content.custom-content {\r\n --padding-top: 0;\r\n --padding-bottom: 0;\r\n margin: 0;\r\n padding: 0;\r\n margin-top: 10vh; // Levanta el contenido un 10% desde el tope\r\n height: 90vh; // Ajusta la altura para que junto con el margin sea 100%\r\n}\r\n\r\n.countdown {\r\n font-size: 100px;\r\n font-weight: bold;\r\n color: #fff;\r\n animation: scaleUp 0.5s ease-out, scaleDown 0.5s ease-out 2.5s;\r\n /* Escalar en entrada y salida */\r\n}\r\n\r\n/* Animaci\u00F3n para desvanecer la superposici\u00F3n */\r\n@keyframes fadeIn {\r\n from {\r\n opacity: 0;\r\n }\r\n\r\n to {\r\n opacity: 1;\r\n }\r\n}\r\n\r\n@keyframes fadeOut {\r\n from {\r\n opacity: 1;\r\n }\r\n\r\n to {\r\n opacity: 0;\r\n }\r\n}\r\n\r\n/* Animaci\u00F3n para escalar el n\u00FAmero */\r\n@keyframes scaleUp {\r\n from {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n\r\n to {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n}\r\n\r\n@keyframes scaleDown {\r\n from {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n\r\n to {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n}\r\n\r\n.red {\r\n padding: 10px;\r\n color: red;\r\n}\r\n\r\n.text-center {\r\n text-align: center;\r\n padding-left: 20%;\r\n padding-right: 20%;\r\n color: #333;\r\n}\r\n\r\n.loading-overlay {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.8);\r\n /* Fondo oscuro semi-transparente */\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n z-index: 1000;\r\n /* Aseg\u00FArate de que est\u00E9 por encima del contenido */\r\n margin: 0;\r\n padding: 0;\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n}\r\n\r\nion-spinner {\r\n color: #fff;\r\n width: 50px;\r\n height: 50px;\r\n}"] }]
390
390
  }], () => [{ type: i1.Platform }, { type: i1.ModalController }, { type: i2.DomSanitizer }, { type: i0.Renderer2 }, { type: i1.AlertController }, { type: i0.ChangeDetectorRef }, { type: i3.ModalVideoSelfieServices }, { type: i4.ModalDpiServices }], { videoElement: [{
391
391
  type: ViewChild,
392
392
  args: ['videoElement']
@@ -1,4 +1,4 @@
1
- import { AfterViewInit, ElementRef, EventEmitter, OnDestroy } from '@angular/core';
1
+ import { AfterViewInit, ElementRef, OnDestroy } from '@angular/core';
2
2
  import { ModalController, Platform } from '@ionic/angular';
3
3
  import { DomSanitizer, SafeUrl } from '@angular/platform-browser';
4
4
  import { ModalDpiServices } from '../../services/modal-services/modal-dpi-services';
@@ -12,7 +12,7 @@ export declare class DirectPhotoSelfieComponent implements AfterViewInit, OnDest
12
12
  text1: string;
13
13
  text2: string;
14
14
  onTakePicture: (filePath: File) => Promise<boolean>;
15
- closeRequested: EventEmitter<void>;
15
+ closeRequested?: () => Promise<void>;
16
16
  capturedImage: SafeUrl | null;
17
17
  stream: MediaStream | null;
18
18
  private isAndroid;
@@ -33,5 +33,5 @@ export declare class DirectPhotoSelfieComponent implements AfterViewInit, OnDest
33
33
  closeRequestedFunction(): void;
34
34
  resumeCamera(): void;
35
35
  static ɵfac: i0.ɵɵFactoryDeclaration<DirectPhotoSelfieComponent, never>;
36
- static ɵcmp: i0.ɵɵComponentDeclaration<DirectPhotoSelfieComponent, "app-direct-photo-selfie", never, { "text1": { "alias": "text1"; "required": false; }; "text2": { "alias": "text2"; "required": false; }; "onTakePicture": { "alias": "onTakePicture"; "required": false; }; }, { "closeRequested": "closeRequested"; }, never, never, true, never>;
36
+ static ɵcmp: i0.ɵɵComponentDeclaration<DirectPhotoSelfieComponent, "app-direct-photo-selfie", never, { "text1": { "alias": "text1"; "required": false; }; "text2": { "alias": "text2"; "required": false; }; "onTakePicture": { "alias": "onTakePicture"; "required": false; }; "closeRequested": { "alias": "closeRequested"; "required": false; }; }, {}, never, never, true, never>;
37
37
  }
@@ -1,4 +1,4 @@
1
- import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
1
+ import { Component, CUSTOM_ELEMENTS_SCHEMA, Input, ViewChild, ViewEncapsulation } from '@angular/core';
2
2
  import { IonicModule } from '@ionic/angular';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import * as i0 from "@angular/core";
@@ -22,12 +22,12 @@ export class DirectPhotoSelfieComponent {
22
22
  this.modalDpiServices = modalDpiServices;
23
23
  this.text1 = '';
24
24
  this.text2 = '';
25
- this.closeRequested = new EventEmitter();
26
25
  this.capturedImage = null;
27
26
  this.stream = null;
28
27
  this.isLoading = true;
29
28
  this.showProgress = false;
30
29
  this.capturedImageUrl = null;
30
+ console.log('🏗️ DirectPhotoSelfie: Constructor ejecutado');
31
31
  this.isAndroid = this.platform.is('android');
32
32
  this.isIOS = this.platform.is('ios');
33
33
  }
@@ -39,6 +39,9 @@ export class DirectPhotoSelfieComponent {
39
39
  // ya que esto se maneja en el flujo principal
40
40
  await this.initCamera();
41
41
  this.isLoading = false;
42
+ // Debug: verificar si el callback fue pasado correctamente
43
+ console.log('🔍 DirectPhotoSelfie inicializado');
44
+ console.log('🔍 closeRequested callback:', this.closeRequested ? 'DEFINIDO ✅' : 'NO DEFINIDO ❌');
42
45
  // Suscripciones a los servicios modales
43
46
  this.modalDpiServices.closePhotoSelfieSubject$.subscribe(() => {
44
47
  this.closeOverlay();
@@ -127,8 +130,25 @@ export class DirectPhotoSelfieComponent {
127
130
  this.modalController.dismiss();
128
131
  }
129
132
  closeRequestedFunction() {
130
- this.closeOverlay();
131
- this.modalDpiServices.requestClosePhotoSelfieSubject();
133
+ console.log('═══════════════════════════════════════════════════════');
134
+ console.log('🚪🚪🚪 BOTÓN X PRESIONADO 🚪🚪🚪');
135
+ console.log('═══════════════════════════════════════════════════════');
136
+ // Solo detener la cámara, NO cerrar el modal todavía
137
+ this.stopCamera();
138
+ console.log('✅ Cámara detenida');
139
+ console.log('🔍 closeRequested está definido?', !!this.closeRequested);
140
+ // Invocar callback del padre INMEDIATAMENTE (antes de cerrar el modal)
141
+ if (this.closeRequested) {
142
+ console.log('🚪 Invocando callback del padre...');
143
+ this.closeRequested().then(() => {
144
+ console.log('✅ Callback del padre completado');
145
+ }).catch((error) => {
146
+ console.error('❌ Error al ejecutar callback:', error);
147
+ });
148
+ }
149
+ else {
150
+ console.error('❌❌❌ NO HAY CALLBACK closeRequested DEFINIDO ❌❌❌');
151
+ }
132
152
  }
133
153
  resumeCamera() {
134
154
  const videoElement = this.videoElement?.nativeElement;
@@ -144,10 +164,10 @@ export class DirectPhotoSelfieComponent {
144
164
  } if (rf & 2) {
145
165
  let _t;
146
166
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.videoElement = _t.first);
147
- } }, inputs: { text1: "text1", text2: "text2", onTakePicture: "onTakePicture" }, outputs: { closeRequested: "closeRequested" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 16, vars: 1, consts: [["videoElement", ""], ["color", "light", 1, "custom-content"], [1, "ion-no-border"], ["color", "light"], ["slot", "end"], [3, "click"], ["name", "close"], [1, "camera-container"], [1, "video-wrapper"], ["muted", "", "autoplay", "", "playsinline", "", 2, "transform", "scaleX(-1)"], [1, "text-center"], ["class", "progress-ring", 4, "ngIf"], [1, "fixed-footer"], [1, "capture-button", 3, "click"], ["name", "camera", "slot", "icon-only"], [1, "progress-ring"], [1, "progress-ring__svg"], ["cx", "50%", "cy", "50%", "r", "48%", 1, "progress-ring__circle"]], template: function DirectPhotoSelfieComponent_Template(rf, ctx) { if (rf & 1) {
167
+ } }, inputs: { text1: "text1", text2: "text2", onTakePicture: "onTakePicture", closeRequested: "closeRequested" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 16, vars: 1, consts: [["videoElement", ""], ["color", "light", 1, "custom-content"], [1, "ion-no-border"], ["color", "light"], ["slot", "end"], [3, "click"], ["name", "close"], [1, "camera-container"], [1, "video-wrapper"], ["muted", "", "autoplay", "", "playsinline", "", 2, "transform", "scaleX(-1)"], [1, "text-center"], ["class", "progress-ring", 4, "ngIf"], [1, "fixed-footer"], [1, "capture-button", 3, "click"], ["name", "camera", "slot", "icon-only"], [1, "progress-ring"], [1, "progress-ring__svg"], ["cx", "50%", "cy", "50%", "r", "48%", 1, "progress-ring__circle"]], template: function DirectPhotoSelfieComponent_Template(rf, ctx) { if (rf & 1) {
148
168
  const _r1 = i0.ɵɵgetCurrentView();
149
169
  i0.ɵɵelementStart(0, "ion-content", 1)(1, "ion-header", 2)(2, "ion-toolbar", 3)(3, "ion-buttons", 4)(4, "ion-button", 5);
150
- i0.ɵɵlistener("click", function DirectPhotoSelfieComponent_Template_ion_button_click_4_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.closeOverlay()); });
170
+ i0.ɵɵlistener("click", function DirectPhotoSelfieComponent_Template_ion_button_click_4_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.closeRequestedFunction()); });
151
171
  i0.ɵɵelement(5, "ion-icon", 6);
152
172
  i0.ɵɵelementEnd()()()();
153
173
  i0.ɵɵelementStart(6, "div", 7)(7, "div", 8);
@@ -164,11 +184,11 @@ export class DirectPhotoSelfieComponent {
164
184
  } if (rf & 2) {
165
185
  i0.ɵɵadvance(12);
166
186
  i0.ɵɵproperty("ngIf", ctx.showProgress);
167
- } }, dependencies: [IonicModule, i1.IonButton, i1.IonButtons, i1.IonContent, i1.IonHeader, i1.IonIcon, i1.IonToolbar, CommonModule, i4.NgIf], styles: [".direct-photo-selfie-content[_ngcontent-%COMP%] {\r\n --background: #000;\r\n position: relative;\r\n height: 100vh;\r\n overflow: hidden;\r\n}\r\n\r\n.camera-overlay[_ngcontent-%COMP%] {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n z-index: 10;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 40px 20px 80px 20px;\r\n}\r\n\r\n.face-overlay[_ngcontent-%COMP%] {\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\r\n}\r\n\r\n.face-circle[_ngcontent-%COMP%] {\r\n width: 280px;\r\n height: 350px;\r\n border: 3px solid rgba(255, 255, 255, 0.8);\r\n border-radius: 50%;\r\n position: relative;\r\n \r\n &::before {\r\n content: '';\r\n position: absolute;\r\n top: -3px;\r\n left: -3px;\r\n right: -3px;\r\n bottom: -3px;\r\n border: 2px solid rgba(0, 123, 255, 0.6);\r\n border-radius: 50%;\r\n animation: _ngcontent-%COMP%_pulse 2s ease-in-out infinite;\r\n }\r\n}\r\n\r\n.face-guide-text[_ngcontent-%COMP%] {\r\n margin-top: 20px;\r\n text-align: center;\r\n \r\n p {\r\n color: white;\r\n font-size: 16px;\r\n font-weight: 500;\r\n margin: 0;\r\n text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);\r\n }\r\n}\r\n\r\n.camera-controls[_ngcontent-%COMP%] {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n width: 100%;\r\n max-width: 300px;\r\n padding: 0 20px;\r\n}\r\n\r\n.control-button[_ngcontent-%COMP%] {\r\n --color: white;\r\n --background: rgba(0, 0, 0, 0.5);\r\n --border-radius: 50%;\r\n width: 50px;\r\n height: 50px;\r\n \r\n ion-icon {\r\n font-size: 24px;\r\n }\r\n}\r\n\r\n.capture-button[_ngcontent-%COMP%] {\r\n position: absolute;\r\n bottom: 20%;\r\n width: 70px;\r\n height: 70px;\r\n border-radius: 50%;\r\n background-color: purple;\r\n color: white;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\r\n}\r\n\r\n.capture-circle[_ngcontent-%COMP%] {\r\n width: 70px;\r\n height: 70px;\r\n border: 4px solid white;\r\n border-radius: 50%;\r\n background: rgba(255, 255, 255, 0.2);\r\n transition: all 0.2s ease;\r\n \r\n &:active {\r\n transform: scale(0.95);\r\n background: rgba(255, 255, 255, 0.4);\r\n }\r\n}\r\n\r\n.progress-ring[_ngcontent-%COMP%] {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n z-index: 10;\r\n}\r\n\r\n.progress-ring__svg[_ngcontent-%COMP%] {\r\n width: 300px;\r\n height: 300px;\r\n}\r\n\r\n.progress-ring__circle[_ngcontent-%COMP%] {\r\n fill: transparent;\r\n stroke: purple;\r\n stroke-width: 10;\r\n stroke-dasharray: 942; \n\r\n stroke-dashoffset: 942; \n\r\n transition: stroke-dashoffset 3s linear; \n\r\n}\r\n\r\n.loading-overlay[_ngcontent-%COMP%] {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background: rgba(0, 0, 0, 0.8);\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n z-index: 20;\r\n \r\n ion-spinner {\r\n --color: #007bff;\r\n width: 48px;\r\n height: 48px;\r\n }\r\n \r\n p {\r\n color: white;\r\n margin-top: 16px;\r\n font-size: 16px;\r\n font-weight: 500;\r\n }\r\n}\r\n\r\n@keyframes _ngcontent-%COMP%_pulse {\r\n 0% {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n 50% {\r\n transform: scale(1.05);\r\n opacity: 0.7;\r\n }\r\n 100% {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n}\r\n\r\n//[_ngcontent-%COMP%] Responsive[_ngcontent-%COMP%] adjustments\r\n@media[_ngcontent-%COMP%] (max-width[_ngcontent-%COMP%]: 375px)[_ngcontent-%COMP%] {\r\n .face-circle {\r\n width: 240px;\r\n height: 300px;\r\n }\r\n \r\n .camera-controls {\r\n max-width: 280px;\r\n }\r\n}\r\n\r\n@media (min-width: 768px) {\r\n .face-circle[_ngcontent-%COMP%] {\r\n width: 320px;\r\n height: 400px;\r\n }\r\n}"] }); }
187
+ } }, dependencies: [IonicModule, i1.IonButton, i1.IonButtons, i1.IonContent, i1.IonHeader, i1.IonIcon, i1.IonToolbar, CommonModule, i4.NgIf], styles: [".direct-photo-selfie-content[_ngcontent-%COMP%] {\r\n --background: #000;\r\n position: relative;\r\n height: 90vh; // Ajusta la altura para dejar espacio al padre\r\n margin-top: 10vh; // Levanta el contenido un 10% desde el tope\r\n overflow: hidden;\r\n}\r\n\r\n.camera-overlay[_ngcontent-%COMP%] {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n z-index: 10;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 40px 20px 80px 20px;\r\n}\r\n\r\n.face-overlay[_ngcontent-%COMP%] {\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\r\n}\r\n\r\n.face-circle[_ngcontent-%COMP%] {\r\n width: 280px;\r\n height: 350px;\r\n border: 3px solid rgba(255, 255, 255, 0.8);\r\n border-radius: 50%;\r\n position: relative;\r\n \r\n &::before {\r\n content: '';\r\n position: absolute;\r\n top: -3px;\r\n left: -3px;\r\n right: -3px;\r\n bottom: -3px;\r\n border: 2px solid rgba(0, 123, 255, 0.6);\r\n border-radius: 50%;\r\n animation: _ngcontent-%COMP%_pulse 2s ease-in-out infinite;\r\n }\r\n}\r\n\r\n.face-guide-text[_ngcontent-%COMP%] {\r\n margin-top: 20px;\r\n text-align: center;\r\n \r\n p {\r\n color: white;\r\n font-size: 16px;\r\n font-weight: 500;\r\n margin: 0;\r\n text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);\r\n }\r\n}\r\n\r\n.camera-controls[_ngcontent-%COMP%] {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n width: 100%;\r\n max-width: 300px;\r\n padding: 0 20px;\r\n}\r\n\r\n.control-button[_ngcontent-%COMP%] {\r\n --color: white;\r\n --background: rgba(0, 0, 0, 0.5);\r\n --border-radius: 50%;\r\n width: 50px;\r\n height: 50px;\r\n \r\n ion-icon {\r\n font-size: 24px;\r\n }\r\n}\r\n\r\n.capture-button[_ngcontent-%COMP%] {\r\n position: absolute;\r\n bottom: 20%;\r\n width: 70px;\r\n height: 70px;\r\n border-radius: 50%;\r\n background-color: purple;\r\n color: white;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\r\n}\r\n\r\n.capture-circle[_ngcontent-%COMP%] {\r\n width: 70px;\r\n height: 70px;\r\n border: 4px solid white;\r\n border-radius: 50%;\r\n background: rgba(255, 255, 255, 0.2);\r\n transition: all 0.2s ease;\r\n \r\n &:active {\r\n transform: scale(0.95);\r\n background: rgba(255, 255, 255, 0.4);\r\n }\r\n}\r\n\r\n.progress-ring[_ngcontent-%COMP%] {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n z-index: 10;\r\n}\r\n\r\n.progress-ring__svg[_ngcontent-%COMP%] {\r\n width: 300px;\r\n height: 300px;\r\n}\r\n\r\n.progress-ring__circle[_ngcontent-%COMP%] {\r\n fill: transparent;\r\n stroke: purple;\r\n stroke-width: 10;\r\n stroke-dasharray: 942; \n\r\n stroke-dashoffset: 942; \n\r\n transition: stroke-dashoffset 3s linear; \n\r\n}\r\n\r\n.loading-overlay[_ngcontent-%COMP%] {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background: rgba(0, 0, 0, 0.8);\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n z-index: 20;\r\n \r\n ion-spinner {\r\n --color: #007bff;\r\n width: 48px;\r\n height: 48px;\r\n }\r\n \r\n p {\r\n color: white;\r\n margin-top: 16px;\r\n font-size: 16px;\r\n font-weight: 500;\r\n }\r\n}\r\n\r\n@keyframes _ngcontent-%COMP%_pulse {\r\n 0% {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n 50% {\r\n transform: scale(1.05);\r\n opacity: 0.7;\r\n }\r\n 100% {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n}\r\n\r\n//[_ngcontent-%COMP%] Responsive[_ngcontent-%COMP%] adjustments\r\n@media[_ngcontent-%COMP%] (max-width[_ngcontent-%COMP%]: 375px)[_ngcontent-%COMP%] {\r\n .face-circle {\r\n width: 240px;\r\n height: 300px;\r\n }\r\n \r\n .camera-controls {\r\n max-width: 280px;\r\n }\r\n}\r\n\r\n@media (min-width: 768px) {\r\n .face-circle[_ngcontent-%COMP%] {\r\n width: 320px;\r\n height: 400px;\r\n }\r\n}"] }); }
168
188
  }
169
189
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DirectPhotoSelfieComponent, [{
170
190
  type: Component,
171
- args: [{ selector: 'app-direct-photo-selfie', standalone: true, imports: [IonicModule, CommonModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], encapsulation: ViewEncapsulation.Emulated, template: "<ion-content color=\"light\" class=\"custom-content\">\r\n <!-- Loading deshabilitado para evitar conflictos con loading principal -->\r\n <!-- <div *ngIf=\"isLoading\" class=\"loading-overlay\">\r\n <ion-spinner name=\"crescent\"></ion-spinner>\r\n </div> -->\r\n \r\n <ion-header class=\"ion-no-border\">\r\n <ion-toolbar color=\"light\">\r\n <ion-buttons slot=\"end\">\r\n <ion-button (click)=\"closeOverlay()\">\r\n <ion-icon name=\"close\"></ion-icon>\r\n </ion-button>\r\n </ion-buttons>\r\n </ion-toolbar>\r\n </ion-header>\r\n \r\n <!-- Contenedor de la c\u00E1mara y progresi\u00F3n -->\r\n <div class=\"camera-container\">\r\n <div class=\"video-wrapper\">\r\n <video #videoElement muted autoplay playsinline style=\"transform: scaleX(-1)\"></video>\r\n </div>\r\n\r\n <p class=\"text-center\">Permanece quieto, con tu rostro en el centro del circulo</p>\r\n <!-- C\u00EDrculo progresivo alrededor del \u00E1rea de la c\u00E1mara -->\r\n <div class=\"progress-ring\" *ngIf=\"showProgress\">\r\n <svg class=\"progress-ring__svg\">\r\n <circle class=\"progress-ring__circle\" cx=\"50%\" cy=\"50%\" r=\"48%\"></circle>\r\n </svg>\r\n </div>\r\n\r\n <!-- Bot\u00F3n redondo para tomar foto -->\r\n <div class=\"fixed-footer\">\r\n <ion-button class=\"capture-button\" (click)=\"startProgressAndCapture()\">\r\n <ion-icon name=\"camera\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n </div>\r\n </ion-content>", styles: [".direct-photo-selfie-content {\r\n --background: #000;\r\n position: relative;\r\n height: 100vh;\r\n overflow: hidden;\r\n}\r\n\r\n.camera-overlay {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n z-index: 10;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 40px 20px 80px 20px;\r\n}\r\n\r\n.face-overlay {\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\r\n}\r\n\r\n.face-circle {\r\n width: 280px;\r\n height: 350px;\r\n border: 3px solid rgba(255, 255, 255, 0.8);\r\n border-radius: 50%;\r\n position: relative;\r\n \r\n &::before {\r\n content: '';\r\n position: absolute;\r\n top: -3px;\r\n left: -3px;\r\n right: -3px;\r\n bottom: -3px;\r\n border: 2px solid rgba(0, 123, 255, 0.6);\r\n border-radius: 50%;\r\n animation: pulse 2s ease-in-out infinite;\r\n }\r\n}\r\n\r\n.face-guide-text {\r\n margin-top: 20px;\r\n text-align: center;\r\n \r\n p {\r\n color: white;\r\n font-size: 16px;\r\n font-weight: 500;\r\n margin: 0;\r\n text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);\r\n }\r\n}\r\n\r\n.camera-controls {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n width: 100%;\r\n max-width: 300px;\r\n padding: 0 20px;\r\n}\r\n\r\n.control-button {\r\n --color: white;\r\n --background: rgba(0, 0, 0, 0.5);\r\n --border-radius: 50%;\r\n width: 50px;\r\n height: 50px;\r\n \r\n ion-icon {\r\n font-size: 24px;\r\n }\r\n}\r\n\r\n.capture-button {\r\n position: absolute;\r\n bottom: 20%;\r\n width: 70px;\r\n height: 70px;\r\n border-radius: 50%;\r\n background-color: purple;\r\n color: white;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\r\n}\r\n\r\n.capture-circle {\r\n width: 70px;\r\n height: 70px;\r\n border: 4px solid white;\r\n border-radius: 50%;\r\n background: rgba(255, 255, 255, 0.2);\r\n transition: all 0.2s ease;\r\n \r\n &:active {\r\n transform: scale(0.95);\r\n background: rgba(255, 255, 255, 0.4);\r\n }\r\n}\r\n\r\n.progress-ring {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n z-index: 10;\r\n}\r\n\r\n.progress-ring__svg {\r\n width: 300px;\r\n height: 300px;\r\n}\r\n\r\n.progress-ring__circle {\r\n fill: transparent;\r\n stroke: purple;\r\n stroke-width: 10;\r\n stroke-dasharray: 942; /* Circunferencia del c\u00EDrculo */\r\n stroke-dashoffset: 942; /* Oculto al inicio */\r\n transition: stroke-dashoffset 3s linear; /* Duraci\u00F3n de la animaci\u00F3n */\r\n}\r\n\r\n.loading-overlay {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background: rgba(0, 0, 0, 0.8);\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n z-index: 20;\r\n \r\n ion-spinner {\r\n --color: #007bff;\r\n width: 48px;\r\n height: 48px;\r\n }\r\n \r\n p {\r\n color: white;\r\n margin-top: 16px;\r\n font-size: 16px;\r\n font-weight: 500;\r\n }\r\n}\r\n\r\n@keyframes pulse {\r\n 0% {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n 50% {\r\n transform: scale(1.05);\r\n opacity: 0.7;\r\n }\r\n 100% {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n}\r\n\r\n// Responsive adjustments\r\n@media (max-width: 375px) {\r\n .face-circle {\r\n width: 240px;\r\n height: 300px;\r\n }\r\n \r\n .camera-controls {\r\n max-width: 280px;\r\n }\r\n}\r\n\r\n@media (min-width: 768px) {\r\n .face-circle {\r\n width: 320px;\r\n height: 400px;\r\n }\r\n}"] }]
191
+ args: [{ selector: 'app-direct-photo-selfie', standalone: true, imports: [IonicModule, CommonModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], encapsulation: ViewEncapsulation.Emulated, template: "<ion-content color=\"light\" class=\"custom-content\">\r\n <!-- Loading deshabilitado para evitar conflictos con loading principal -->\r\n <!-- <div *ngIf=\"isLoading\" class=\"loading-overlay\">\r\n <ion-spinner name=\"crescent\"></ion-spinner>\r\n </div> -->\r\n \r\n <ion-header class=\"ion-no-border\">\r\n <ion-toolbar color=\"light\">\r\n <ion-buttons slot=\"end\">\r\n <ion-button (click)=\"closeRequestedFunction()\">\r\n <ion-icon name=\"close\"></ion-icon>\r\n </ion-button>\r\n </ion-buttons>\r\n </ion-toolbar>\r\n </ion-header>\r\n \r\n <!-- Contenedor de la c\u00E1mara y progresi\u00F3n -->\r\n <div class=\"camera-container\">\r\n <div class=\"video-wrapper\">\r\n <video #videoElement muted autoplay playsinline style=\"transform: scaleX(-1)\"></video>\r\n </div>\r\n\r\n <p class=\"text-center\">Permanece quieto, con tu rostro en el centro del circulo</p>\r\n <!-- C\u00EDrculo progresivo alrededor del \u00E1rea de la c\u00E1mara -->\r\n <div class=\"progress-ring\" *ngIf=\"showProgress\">\r\n <svg class=\"progress-ring__svg\">\r\n <circle class=\"progress-ring__circle\" cx=\"50%\" cy=\"50%\" r=\"48%\"></circle>\r\n </svg>\r\n </div>\r\n\r\n <!-- Bot\u00F3n redondo para tomar foto -->\r\n <div class=\"fixed-footer\">\r\n <ion-button class=\"capture-button\" (click)=\"startProgressAndCapture()\">\r\n <ion-icon name=\"camera\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n </div>\r\n </ion-content>", styles: [".direct-photo-selfie-content {\r\n --background: #000;\r\n position: relative;\r\n height: 90vh; // Ajusta la altura para dejar espacio al padre\r\n margin-top: 10vh; // Levanta el contenido un 10% desde el tope\r\n overflow: hidden;\r\n}\r\n\r\n.camera-overlay {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n z-index: 10;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 40px 20px 80px 20px;\r\n}\r\n\r\n.face-overlay {\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\r\n}\r\n\r\n.face-circle {\r\n width: 280px;\r\n height: 350px;\r\n border: 3px solid rgba(255, 255, 255, 0.8);\r\n border-radius: 50%;\r\n position: relative;\r\n \r\n &::before {\r\n content: '';\r\n position: absolute;\r\n top: -3px;\r\n left: -3px;\r\n right: -3px;\r\n bottom: -3px;\r\n border: 2px solid rgba(0, 123, 255, 0.6);\r\n border-radius: 50%;\r\n animation: pulse 2s ease-in-out infinite;\r\n }\r\n}\r\n\r\n.face-guide-text {\r\n margin-top: 20px;\r\n text-align: center;\r\n \r\n p {\r\n color: white;\r\n font-size: 16px;\r\n font-weight: 500;\r\n margin: 0;\r\n text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);\r\n }\r\n}\r\n\r\n.camera-controls {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n width: 100%;\r\n max-width: 300px;\r\n padding: 0 20px;\r\n}\r\n\r\n.control-button {\r\n --color: white;\r\n --background: rgba(0, 0, 0, 0.5);\r\n --border-radius: 50%;\r\n width: 50px;\r\n height: 50px;\r\n \r\n ion-icon {\r\n font-size: 24px;\r\n }\r\n}\r\n\r\n.capture-button {\r\n position: absolute;\r\n bottom: 20%;\r\n width: 70px;\r\n height: 70px;\r\n border-radius: 50%;\r\n background-color: purple;\r\n color: white;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\r\n}\r\n\r\n.capture-circle {\r\n width: 70px;\r\n height: 70px;\r\n border: 4px solid white;\r\n border-radius: 50%;\r\n background: rgba(255, 255, 255, 0.2);\r\n transition: all 0.2s ease;\r\n \r\n &:active {\r\n transform: scale(0.95);\r\n background: rgba(255, 255, 255, 0.4);\r\n }\r\n}\r\n\r\n.progress-ring {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n z-index: 10;\r\n}\r\n\r\n.progress-ring__svg {\r\n width: 300px;\r\n height: 300px;\r\n}\r\n\r\n.progress-ring__circle {\r\n fill: transparent;\r\n stroke: purple;\r\n stroke-width: 10;\r\n stroke-dasharray: 942; /* Circunferencia del c\u00EDrculo */\r\n stroke-dashoffset: 942; /* Oculto al inicio */\r\n transition: stroke-dashoffset 3s linear; /* Duraci\u00F3n de la animaci\u00F3n */\r\n}\r\n\r\n.loading-overlay {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background: rgba(0, 0, 0, 0.8);\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n z-index: 20;\r\n \r\n ion-spinner {\r\n --color: #007bff;\r\n width: 48px;\r\n height: 48px;\r\n }\r\n \r\n p {\r\n color: white;\r\n margin-top: 16px;\r\n font-size: 16px;\r\n font-weight: 500;\r\n }\r\n}\r\n\r\n@keyframes pulse {\r\n 0% {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n 50% {\r\n transform: scale(1.05);\r\n opacity: 0.7;\r\n }\r\n 100% {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n}\r\n\r\n// Responsive adjustments\r\n@media (max-width: 375px) {\r\n .face-circle {\r\n width: 240px;\r\n height: 300px;\r\n }\r\n \r\n .camera-controls {\r\n max-width: 280px;\r\n }\r\n}\r\n\r\n@media (min-width: 768px) {\r\n .face-circle {\r\n width: 320px;\r\n height: 400px;\r\n }\r\n}"] }]
172
192
  }], () => [{ type: i1.Platform }, { type: i1.ModalController }, { type: i2.DomSanitizer }, { type: i3.ModalDpiServices }], { videoElement: [{
173
193
  type: ViewChild,
174
194
  args: ['videoElement']
@@ -179,7 +199,7 @@ export class DirectPhotoSelfieComponent {
179
199
  }], onTakePicture: [{
180
200
  type: Input
181
201
  }], closeRequested: [{
182
- type: Output
202
+ type: Input
183
203
  }] }); })();
184
204
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DirectPhotoSelfieComponent, { className: "DirectPhotoSelfieComponent", filePath: "src\\app\\pages\\id-vision\\components\\direct-photo-selfie\\direct-photo-selfie.component.ts", lineNumber: 18 }); })();
185
205
  //# sourceMappingURL=direct-photo-selfie.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"direct-photo-selfie.component.js","sourceRoot":"","sources":["../../../../../../../src/app/pages/id-vision/components/direct-photo-selfie/direct-photo-selfie.component.ts","../../../../../../../src/app/pages/id-vision/components/direct-photo-selfie/direct-photo-selfie.component.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"direct-photo-selfie.component.js","sourceRoot":"","sources":["../../../../../../../src/app/pages/id-vision/components/direct-photo-selfie/direct-photo-selfie.component.ts","../../../../../../../src/app/pages/id-vision/components/direct-photo-selfie/direct-photo-selfie.component.html"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ export declare class PhotoSelfieCameraComponent implements AfterViewInit, OnDest
15
15
  text1: string;
16
16
  text2: string;
17
17
  onTakePicture: (filePath: File) => Promise<boolean>;
18
+ closeRequested?: () => Promise<void>;
18
19
  capturedImage: SafeUrl | null;
19
20
  stream: MediaStream | null;
20
21
  private isAndroid;
@@ -43,5 +44,5 @@ export declare class PhotoSelfieCameraComponent implements AfterViewInit, OnDest
43
44
  closeRequestedFunction(): void;
44
45
  resumeCamera(): void;
45
46
  static ɵfac: i0.ɵɵFactoryDeclaration<PhotoSelfieCameraComponent, never>;
46
- static ɵcmp: i0.ɵɵComponentDeclaration<PhotoSelfieCameraComponent, "app-photo-selfie-camera", never, { "text1": { "alias": "text1"; "required": false; }; "text2": { "alias": "text2"; "required": false; }; "onTakePicture": { "alias": "onTakePicture"; "required": false; }; }, {}, never, never, false, never>;
47
+ static ɵcmp: i0.ɵɵComponentDeclaration<PhotoSelfieCameraComponent, "app-photo-selfie-camera", never, { "text1": { "alias": "text1"; "required": false; }; "text2": { "alias": "text2"; "required": false; }; "onTakePicture": { "alias": "onTakePicture"; "required": false; }; "closeRequested": { "alias": "closeRequested"; "required": false; }; }, {}, never, never, false, never>;
47
48
  }
@@ -40,6 +40,7 @@ export class PhotoSelfieCameraComponent {
40
40
  this.showProgress = false;
41
41
  this.timeRemaining = 0;
42
42
  this.maxRecordingTime = 3000; // 3 segundos
43
+ console.log('🏗️ PhotoSelfieCamera: Constructor ejecutado');
43
44
  this.isAndroid = this.platform.is('android');
44
45
  this.isIOS = this.platform.is('ios');
45
46
  }
@@ -47,6 +48,8 @@ export class PhotoSelfieCameraComponent {
47
48
  this.stopCamera();
48
49
  }
49
50
  async ngAfterViewInit() {
51
+ console.log('🔍 PhotoSelfieCamera inicializado');
52
+ console.log('🔍 closeRequested callback:', this.closeRequested ? 'DEFINIDO ✅' : 'NO DEFINIDO ❌');
50
53
  if (this.isAndroid || this.isIOS) {
51
54
  await this.requestPermissions();
52
55
  }
@@ -173,8 +176,25 @@ export class PhotoSelfieCameraComponent {
173
176
  this.modalController.dismiss();
174
177
  }
175
178
  closeRequestedFunction() {
176
- this.closeOverlay();
177
- this.modalDpiServices.requestClosePhotoSelfieSubject();
179
+ console.log('═══════════════════════════════════════════════════════');
180
+ console.log('🚪🚪🚪 BOTÓN X PRESIONADO (PhotoSelfieCamera) 🚪🚪🚪');
181
+ console.log('═══════════════════════════════════════════════════════');
182
+ // Solo detener la cámara, NO cerrar el modal todavía
183
+ this.stopCamera();
184
+ console.log('✅ Cámara detenida');
185
+ console.log('🔍 closeRequested está definido?', !!this.closeRequested);
186
+ // Invocar callback del padre INMEDIATAMENTE (antes de cerrar el modal)
187
+ if (this.closeRequested) {
188
+ console.log('🚪 Invocando callback del padre...');
189
+ this.closeRequested().then(() => {
190
+ console.log('✅ Callback del padre completado');
191
+ }).catch((error) => {
192
+ console.error('❌ Error al ejecutar callback:', error);
193
+ });
194
+ }
195
+ else {
196
+ console.error('❌❌❌ NO HAY CALLBACK closeRequested DEFINIDO ❌❌❌');
197
+ }
178
198
  }
179
199
  resumeCamera() {
180
200
  const videoElement = this.videoElement?.nativeElement;
@@ -192,10 +212,10 @@ export class PhotoSelfieCameraComponent {
192
212
  let _t;
193
213
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.videoElement = _t.first);
194
214
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.progressRing = _t.first);
195
- } }, inputs: { text1: "text1", text2: "text2", onTakePicture: "onTakePicture" }, decls: 19, vars: 3, consts: [["videoElement", ""], ["progressRing", ""], ["color", "light", 1, "custom-content"], [1, "ion-no-border"], ["color", "light"], ["slot", "end"], [3, "click"], ["name", "close"], [1, "camera-container"], [1, "video-wrapper"], ["muted", "", "autoplay", "", "playsinline", "", 2, "transform", "scaleX(-1)"], ["width", "300", "height", "300", 1, "progress-ring"], ["cx", "150", "cy", "150", "r", "150", 1, "progress-ring__circle"], [1, "text-center"], ["class", "countdown-overlay", 4, "ngIf"], [1, "fixed-footer"], ["expand", "block", 3, "click"], [1, "countdown-overlay"], [1, "countdown-circle"], [1, "countdown-number"]], template: function PhotoSelfieCameraComponent_Template(rf, ctx) { if (rf & 1) {
215
+ } }, inputs: { text1: "text1", text2: "text2", onTakePicture: "onTakePicture", closeRequested: "closeRequested" }, decls: 19, vars: 3, consts: [["videoElement", ""], ["progressRing", ""], ["color", "light", 1, "custom-content"], [1, "ion-no-border"], ["color", "light"], ["slot", "end"], [3, "click"], ["name", "close"], [1, "camera-container"], [1, "video-wrapper"], ["muted", "", "autoplay", "", "playsinline", "", 2, "transform", "scaleX(-1)"], ["width", "300", "height", "300", 1, "progress-ring"], ["cx", "150", "cy", "150", "r", "150", 1, "progress-ring__circle"], [1, "text-center"], ["class", "countdown-overlay", 4, "ngIf"], [1, "fixed-footer"], ["expand", "block", 3, "click"], [1, "countdown-overlay"], [1, "countdown-circle"], [1, "countdown-number"]], template: function PhotoSelfieCameraComponent_Template(rf, ctx) { if (rf & 1) {
196
216
  const _r1 = i0.ɵɵgetCurrentView();
197
217
  i0.ɵɵelementStart(0, "ion-content", 2)(1, "ion-header", 3)(2, "ion-toolbar", 4)(3, "ion-buttons", 5)(4, "ion-button", 6);
198
- i0.ɵɵlistener("click", function PhotoSelfieCameraComponent_Template_ion_button_click_4_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.closeOverlay()); });
218
+ i0.ɵɵlistener("click", function PhotoSelfieCameraComponent_Template_ion_button_click_4_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.closeRequestedFunction()); });
199
219
  i0.ɵɵelement(5, "ion-icon", 7);
200
220
  i0.ɵɵelementEnd()()()();
201
221
  i0.ɵɵelementStart(6, "div", 8)(7, "div", 9);
@@ -218,11 +238,11 @@ export class PhotoSelfieCameraComponent {
218
238
  i0.ɵɵproperty("ngIf", ctx.showCountdown);
219
239
  i0.ɵɵadvance();
220
240
  i0.ɵɵclassProp("hidden", ctx.isCapturing);
221
- } }, dependencies: [i4.NgIf, i1.IonButton, i1.IonButtons, i1.IonContent, i1.IonHeader, i1.IonIcon, i1.IonToolbar], styles: [".camera-container[_ngcontent-%COMP%] {\r\n justify-content: center;\r\n align-items: center;\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n height: 70%;\r\n background-color: white;\r\n }\r\n \r\n .video-wrapper[_ngcontent-%COMP%] {\r\n position: relative;\r\n width: 300px;\r\n height: 300px;\r\n border-radius: 50%;\r\n overflow: hidden;\r\n }\r\n \r\n video[_ngcontent-%COMP%] {\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n border-radius: 50%;\r\n }\r\n \r\n .progress-ring[_ngcontent-%COMP%] {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n transform: rotate(-90deg);\r\n \n\r\n }\r\n \r\n .progress-ring__circle[_ngcontent-%COMP%] {\r\n fill: transparent;\r\n stroke: purple;\r\n stroke-width: 12;\r\n stroke-dasharray: 945;\r\n \n\r\n stroke-dashoffset: 880;\r\n \n\r\n transition: stroke-dashoffset 3s linear;\r\n \n\r\n }\r\n \r\n .progress-active[_ngcontent-%COMP%] .progress-ring__circle[_ngcontent-%COMP%] {\r\n animation: _ngcontent-%COMP%_progress-animation 3s linear forwards;\r\n }\r\n \r\n @keyframes _ngcontent-%COMP%_progress-animation {\r\n from {\r\n stroke-dashoffset: 880;\r\n }\r\n to {\r\n stroke-dashoffset: 0;\r\n }\r\n }\r\n \r\n //[_ngcontent-%COMP%] div[_ngcontent-%COMP%] //[_ngcontent-%COMP%] {\r\n // color: #ffffff;\r\n // font-weight: 50px;\r\n // border-radius: 20px;\r\n // margin-top: 20px;\r\n // //width: 90%;\r\n // //max-width: 300px;\r\n // align-self: center;\r\n // text-transform: none;\r\n \r\n // --background: var(--purple-primary);\r\n // --background-hover: var(--purple-secondary);\r\n // --background-activated: var(--purple-secondary);\r\n // --background-focused: var(--purple-secondary);\r\n \r\n // --color: var(--purple-primary);\r\n \r\n // --border-radius: 20px;\r\n // --border-color: var(--purple-primary);\r\n // --border-style: solid;\r\n // --border-width: 1px;\r\n \r\n // --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.25);\r\n \r\n // --ripple-color: var(--purple-secondary);\r\n \r\n \r\n // --padding-top: 10px;\r\n // --padding-bottom: 10px;\r\n // }\r\n \r\n .text-container[_ngcontent-%COMP%] {\r\n height: 40px;\r\n color: black;\r\n }\r\n \r\n ion-header[_ngcontent-%COMP%] {\r\n --background: #ffffff; \n\r\n }\r\n \r\n \r\n \r\n .centered-title[_ngcontent-%COMP%] {\r\n text-align: center;\r\n width: 100%; \n\r\n font-weight: bold;\r\n }\r\n \r\n .fixed-footer[_ngcontent-%COMP%] {\r\n position: fixed;\r\n bottom: 0;\r\n left: 0;\r\n width: 100%;\r\n padding: 10px;\r\n background-color: #fff;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n \r\n ion-button {\r\n width: 90%;\r\n max-width: 300px;\r\n margin: 0 auto;\r\n background-color: #ffcc00;\r\n color: #ffffff;\r\n font-weight: bold;\r\n border-radius: 20px;\r\n \r\n --background: var(--purple-primary);\r\n --background-hover: var(--purple-secondary);\r\n --background-activated: var(--purple-secondary);\r\n --background-focused: var(--purple-secondary);\r\n \r\n --color: var(--purple-primary);\r\n \r\n --border-radius: 20px;\r\n --border-color: var(--purple-primary);\r\n --border-style: solid;\r\n --border-width: 1px;\r\n \r\n --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.25);\r\n \r\n --ripple-color: var(--purple-secondary);\r\n\r\n &:hover {\r\n background-color: #ffb300;\r\n }\r\n\r\n &:active {\r\n background-color: #e6a800;\r\n }\r\n }\r\n\r\n // Clase para ocultar el bot\u00F3n durante la captura\r\n &.hidden {\r\n display: none;\r\n }\r\n } \r\n ion-header[_ngcontent-%COMP%] {\r\n --background: #ffffff; \n\r\n color: #000000; \n\r\n }\r\n \r\n ion-toolbar[_ngcontent-%COMP%] {\r\n --ion-background-color: #ffffff !important;\r\n --background: #ffffff !important;\r\n color: #000000;\r\n }\r\n \r\n \r\n ion-header[_ngcontent-%COMP%] {\r\n --background: #ffffff; \n\r\n }\r\n \r\n ion-toolbar[_ngcontent-%COMP%] {\r\n --ion-background-color: #ffffff !important;\r\n --background: #ffffff !important;\r\n color: #000000;\r\n display: flex;\r\n justify-content: space-between; \n\r\n align-items: center;\r\n }\r\n \r\n .centered-title[_ngcontent-%COMP%] {\r\n flex: 1;\r\n text-align: center; \n\r\n font-weight: bold;\r\n color: #000000;\r\n margin: 0; \n\r\n }\r\n \r\n ion-buttons[_ngcontent-%COMP%] {\r\n justify-content: flex-end; \n\r\n }\r\n .countdown-overlay[_ngcontent-%COMP%] {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.6); \n\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin: 0;\r\n padding: 0;\r\n z-index: 1000; \n\r\n animation: _ngcontent-%COMP%_fadeIn 0.5s ease-out, _ngcontent-%COMP%_fadeOut 0.5s ease-out 2.5s; \n\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n \r\n }\r\n \r\n ion-content.custom-content[_ngcontent-%COMP%] {\r\n --padding-top: 0;\r\n --padding-bottom: 0;\r\n margin: 0;\r\n padding: 0;\r\n }\r\n \r\n .countdown[_ngcontent-%COMP%] {\r\n font-size: 100px;\r\n font-weight: bold;\r\n color: white;\r\n animation: _ngcontent-%COMP%_scaleUp 0.5s ease-out, _ngcontent-%COMP%_scaleDown 0.5s ease-out 2.5s; \n\r\n }\r\n \r\n \n\r\n @keyframes _ngcontent-%COMP%_fadeIn {\r\n from {\r\n opacity: 0;\r\n }\r\n to {\r\n opacity: 1;\r\n }\r\n }\r\n \r\n @keyframes _ngcontent-%COMP%_fadeOut {\r\n from {\r\n opacity: 1;\r\n }\r\n to {\r\n opacity: 0;\r\n }\r\n }\r\n \r\n \n\r\n @keyframes _ngcontent-%COMP%_scaleUp {\r\n from {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n to {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n }\r\n \r\n @keyframes _ngcontent-%COMP%_scaleDown {\r\n from {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n to {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n }\r\n \r\n .red[_ngcontent-%COMP%] {\r\n padding: 10px;\r\n color: red;\r\n }\r\n \r\n .text-center[_ngcontent-%COMP%]{\r\n text-align: center;\r\n padding-left: 20%;\r\n padding-right: 20%;\r\n color: #333;\r\n }\r\n \r\n .loading-overlay[_ngcontent-%COMP%] {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.8); \n\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n z-index: 1000; \n\r\n margin: 0;\r\n padding: 0;\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n }\r\n \r\n ion-spinner[_ngcontent-%COMP%] {\r\n color: white;\r\n width: 50px;\r\n height: 50px;\r\n }\r\n \r\n //[_ngcontent-%COMP%] Estilos[_ngcontent-%COMP%] para[_ngcontent-%COMP%] el[_ngcontent-%COMP%] c\u00EDrculo[_ngcontent-%COMP%] morado[_ngcontent-%COMP%] con[_ngcontent-%COMP%] cuenta[_ngcontent-%COMP%] regresiva\r\n[_ngcontent-%COMP%] .countdown-overlay[_ngcontent-%COMP%] {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n z-index: 10;\r\n }\r\n \r\n .countdown-circle[_ngcontent-%COMP%] {\r\n width: 200px;\r\n height: 200px;\r\n border: 10px solid purple;\r\n border-radius: 50%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n background-color: rgba(255, 255, 255, 0.8);\r\n }\r\n \r\n .countdown-number[_ngcontent-%COMP%] {\r\n font-size: 3rem;\r\n font-weight: bold;\r\n color: purple;\r\n }\r\n \r\n //[_ngcontent-%COMP%] Estilos[_ngcontent-%COMP%] para[_ngcontent-%COMP%] el[_ngcontent-%COMP%] bot\u00F3n[_ngcontent-%COMP%] redondo[_ngcontent-%COMP%] de[_ngcontent-%COMP%] tomar[_ngcontent-%COMP%] foto\r\n[_ngcontent-%COMP%] .capture-button[_ngcontent-%COMP%] {\r\n width: 70px;\r\n height: 70px;\r\n border-radius: 50%;\r\n background-color: purple;\r\n color: white;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\r\n margin: 0 auto;\r\n }"] }); }
241
+ } }, dependencies: [i4.NgIf, i1.IonButton, i1.IonButtons, i1.IonContent, i1.IonHeader, i1.IonIcon, i1.IonToolbar], styles: [".camera-container[_ngcontent-%COMP%] {\r\n justify-content: center;\r\n align-items: center;\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n height: 70%;\r\n background-color: white;\r\n }\r\n \r\n .video-wrapper[_ngcontent-%COMP%] {\r\n position: relative;\r\n width: 300px;\r\n height: 300px;\r\n border-radius: 50%;\r\n overflow: hidden;\r\n }\r\n \r\n video[_ngcontent-%COMP%] {\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n border-radius: 50%;\r\n }\r\n \r\n .progress-ring[_ngcontent-%COMP%] {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n transform: rotate(-90deg);\r\n \n\r\n }\r\n \r\n .progress-ring__circle[_ngcontent-%COMP%] {\r\n fill: transparent;\r\n stroke: purple;\r\n stroke-width: 12;\r\n stroke-dasharray: 945;\r\n \n\r\n stroke-dashoffset: 880;\r\n \n\r\n transition: stroke-dashoffset 3s linear;\r\n \n\r\n }\r\n \r\n .progress-active[_ngcontent-%COMP%] .progress-ring__circle[_ngcontent-%COMP%] {\r\n animation: _ngcontent-%COMP%_progress-animation 3s linear forwards;\r\n }\r\n \r\n @keyframes _ngcontent-%COMP%_progress-animation {\r\n from {\r\n stroke-dashoffset: 880;\r\n }\r\n to {\r\n stroke-dashoffset: 0;\r\n }\r\n }\r\n \r\n //[_ngcontent-%COMP%] div[_ngcontent-%COMP%] //[_ngcontent-%COMP%] {\r\n // color: #ffffff;\r\n // font-weight: 50px;\r\n // border-radius: 20px;\r\n // margin-top: 20px;\r\n // //width: 90%;\r\n // //max-width: 300px;\r\n // align-self: center;\r\n // text-transform: none;\r\n \r\n // --background: var(--purple-primary);\r\n // --background-hover: var(--purple-secondary);\r\n // --background-activated: var(--purple-secondary);\r\n // --background-focused: var(--purple-secondary);\r\n \r\n // --color: var(--purple-primary);\r\n \r\n // --border-radius: 20px;\r\n // --border-color: var(--purple-primary);\r\n // --border-style: solid;\r\n // --border-width: 1px;\r\n \r\n // --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.25);\r\n \r\n // --ripple-color: var(--purple-secondary);\r\n \r\n \r\n // --padding-top: 10px;\r\n // --padding-bottom: 10px;\r\n // }\r\n \r\n .text-container[_ngcontent-%COMP%] {\r\n height: 40px;\r\n color: black;\r\n }\r\n \r\n ion-header[_ngcontent-%COMP%] {\r\n --background: #ffffff; \n\r\n }\r\n \r\n \r\n \r\n .centered-title[_ngcontent-%COMP%] {\r\n text-align: center;\r\n width: 100%; \n\r\n font-weight: bold;\r\n }\r\n \r\n .fixed-footer[_ngcontent-%COMP%] {\r\n position: fixed;\r\n bottom: 10vh; // Sube el bot\u00F3n un 10% desde abajo\r\n left: 0;\r\n width: 100%;\r\n padding: 10px;\r\n background-color: #fff;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n \r\n ion-button {\r\n width: 90%;\r\n max-width: 300px;\r\n margin: 0 auto;\r\n background-color: #ffcc00;\r\n color: #ffffff;\r\n font-weight: bold;\r\n border-radius: 20px;\r\n \r\n --background: var(--purple-primary);\r\n --background-hover: var(--purple-secondary);\r\n --background-activated: var(--purple-secondary);\r\n --background-focused: var(--purple-secondary);\r\n \r\n --color: var(--purple-primary);\r\n \r\n --border-radius: 20px;\r\n --border-color: var(--purple-primary);\r\n --border-style: solid;\r\n --border-width: 1px;\r\n \r\n --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.25);\r\n \r\n --ripple-color: var(--purple-secondary);\r\n\r\n &:hover {\r\n background-color: #ffb300;\r\n }\r\n\r\n &:active {\r\n background-color: #e6a800;\r\n }\r\n }\r\n\r\n // Clase para ocultar el bot\u00F3n durante la captura\r\n &.hidden {\r\n display: none;\r\n }\r\n } \r\n ion-header[_ngcontent-%COMP%] {\r\n --background: #ffffff; \n\r\n color: #000000; \n\r\n }\r\n \r\n ion-toolbar[_ngcontent-%COMP%] {\r\n --ion-background-color: #ffffff !important;\r\n --background: #ffffff !important;\r\n color: #000000;\r\n }\r\n \r\n \r\n ion-header[_ngcontent-%COMP%] {\r\n --background: #ffffff; \n\r\n }\r\n \r\n ion-toolbar[_ngcontent-%COMP%] {\r\n --ion-background-color: #ffffff !important;\r\n --background: #ffffff !important;\r\n color: #000000;\r\n display: flex;\r\n justify-content: space-between; \n\r\n align-items: center;\r\n }\r\n \r\n .centered-title[_ngcontent-%COMP%] {\r\n flex: 1;\r\n text-align: center; \n\r\n font-weight: bold;\r\n color: #000000;\r\n margin: 0; \n\r\n }\r\n \r\n ion-buttons[_ngcontent-%COMP%] {\r\n justify-content: flex-end; \n\r\n }\r\n .countdown-overlay[_ngcontent-%COMP%] {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.6); \n\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin: 0;\r\n padding: 0;\r\n z-index: 1000; \n\r\n animation: _ngcontent-%COMP%_fadeIn 0.5s ease-out, _ngcontent-%COMP%_fadeOut 0.5s ease-out 2.5s; \n\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n \r\n }\r\n \r\n ion-content.custom-content[_ngcontent-%COMP%] {\r\n --padding-top: 0;\r\n --padding-bottom: 0;\r\n margin: 0;\r\n padding: 0;\r\n margin-top: 10vh; // Levanta el contenido un 10% desde el tope\r\n height: 90vh; // Ajusta la altura para que junto con el margin sea 100%\r\n }\r\n \r\n .countdown[_ngcontent-%COMP%] {\r\n font-size: 100px;\r\n font-weight: bold;\r\n color: white;\r\n animation: _ngcontent-%COMP%_scaleUp 0.5s ease-out, _ngcontent-%COMP%_scaleDown 0.5s ease-out 2.5s; \n\r\n }\r\n \r\n \n\r\n @keyframes _ngcontent-%COMP%_fadeIn {\r\n from {\r\n opacity: 0;\r\n }\r\n to {\r\n opacity: 1;\r\n }\r\n }\r\n \r\n @keyframes _ngcontent-%COMP%_fadeOut {\r\n from {\r\n opacity: 1;\r\n }\r\n to {\r\n opacity: 0;\r\n }\r\n }\r\n \r\n \n\r\n @keyframes _ngcontent-%COMP%_scaleUp {\r\n from {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n to {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n }\r\n \r\n @keyframes _ngcontent-%COMP%_scaleDown {\r\n from {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n to {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n }\r\n \r\n .red[_ngcontent-%COMP%] {\r\n padding: 10px;\r\n color: red;\r\n }\r\n \r\n .text-center[_ngcontent-%COMP%]{\r\n text-align: center;\r\n padding-left: 20%;\r\n padding-right: 20%;\r\n color: #333;\r\n }\r\n \r\n .loading-overlay[_ngcontent-%COMP%] {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.8); \n\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n z-index: 1000; \n\r\n margin: 0;\r\n padding: 0;\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n }\r\n \r\n ion-spinner[_ngcontent-%COMP%] {\r\n color: white;\r\n width: 50px;\r\n height: 50px;\r\n }\r\n \r\n //[_ngcontent-%COMP%] Estilos[_ngcontent-%COMP%] para[_ngcontent-%COMP%] el[_ngcontent-%COMP%] c\u00EDrculo[_ngcontent-%COMP%] morado[_ngcontent-%COMP%] con[_ngcontent-%COMP%] cuenta[_ngcontent-%COMP%] regresiva\r\n[_ngcontent-%COMP%] .countdown-overlay[_ngcontent-%COMP%] {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n z-index: 10;\r\n }\r\n \r\n .countdown-circle[_ngcontent-%COMP%] {\r\n width: 200px;\r\n height: 200px;\r\n border: 10px solid purple;\r\n border-radius: 50%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n background-color: rgba(255, 255, 255, 0.8);\r\n }\r\n \r\n .countdown-number[_ngcontent-%COMP%] {\r\n font-size: 3rem;\r\n font-weight: bold;\r\n color: purple;\r\n }\r\n \r\n //[_ngcontent-%COMP%] Estilos[_ngcontent-%COMP%] para[_ngcontent-%COMP%] el[_ngcontent-%COMP%] bot\u00F3n[_ngcontent-%COMP%] redondo[_ngcontent-%COMP%] de[_ngcontent-%COMP%] tomar[_ngcontent-%COMP%] foto\r\n[_ngcontent-%COMP%] .capture-button[_ngcontent-%COMP%] {\r\n width: 70px;\r\n height: 70px;\r\n border-radius: 50%;\r\n background-color: purple;\r\n color: white;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\r\n margin: 0 auto;\r\n }"] }); }
222
242
  }
223
243
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PhotoSelfieCameraComponent, [{
224
244
  type: Component,
225
- args: [{ selector: 'app-photo-selfie-camera', encapsulation: ViewEncapsulation.Emulated, template: "<ion-content color=\"light\" class=\"custom-content\">\r\n <!-- Loading deshabilitado para evitar conflictos con loading principal -->\r\n <!-- <div *ngIf=\"isLoading\" class=\"loading-overlay\">\r\n <ion-spinner name=\"crescent\"></ion-spinner>\r\n </div> -->\r\n\r\n <ion-header class=\"ion-no-border\">\r\n <ion-toolbar color=\"light\">\r\n <!-- <ion-title class=\"centered-title\">Video Selfie</ion-title> -->\r\n <ion-buttons slot=\"end\">\r\n <ion-button (click)=\"closeOverlay()\">\r\n <ion-icon name=\"close\"></ion-icon>\r\n </ion-button>\r\n </ion-buttons>\r\n </ion-toolbar>\r\n </ion-header>\r\n\r\n <!-- Contenedor de la c\u00E1mara y progresi\u00F3n -->\r\n <div class=\"camera-container\">\r\n <div class=\"video-wrapper\">\r\n <video #videoElement muted autoplay playsinline style=\"transform: scaleX(-1)\"></video>\r\n <svg class=\"progress-ring\" #progressRing width=\"300\" height=\"300\">\r\n <circle class=\"progress-ring__circle\" cx=\"150\" cy=\"150\" r=\"150\" />\r\n </svg>\r\n </div>\r\n\r\n <p class=\"text-center\">Permanece quieto, con tu rostro en el centro del circulo</p>\r\n <!-- Efecto de c\u00EDrculo morado con cuenta regresiva -->\r\n <div class=\"countdown-overlay\" *ngIf=\"showCountdown\">\r\n <div class=\"countdown-circle\">\r\n <span class=\"countdown-number\">{{ countdown }}</span>\r\n </div>\r\n </div>\r\n <!-- Bot\u00F3n expandido y centrado para tomar foto -->\r\n <div class=\"fixed-footer\" [class.hidden]=\"isCapturing\">\r\n <ion-button expand=\"block\" (click)=\"capturePhoto()\">\r\n Tomar Fotograf\u00EDa\r\n </ion-button>\r\n </div>\r\n </div>\r\n</ion-content>", styles: [".camera-container {\r\n justify-content: center;\r\n align-items: center;\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n height: 70%;\r\n background-color: white;\r\n }\r\n \r\n .video-wrapper {\r\n position: relative;\r\n width: 300px;\r\n height: 300px;\r\n border-radius: 50%;\r\n overflow: hidden;\r\n }\r\n \r\n video {\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n border-radius: 50%;\r\n }\r\n \r\n .progress-ring {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n transform: rotate(-90deg);\r\n /* Rotamos el c\u00EDrculo para que la animaci\u00F3n inicie desde arriba */\r\n }\r\n \r\n .progress-ring__circle {\r\n fill: transparent;\r\n stroke: purple;\r\n stroke-width: 12;\r\n stroke-dasharray: 945;\r\n /* La circunferencia del c\u00EDrculo */\r\n stroke-dashoffset: 880;\r\n /* Oculto por completo al inicio */\r\n transition: stroke-dashoffset 3s linear;\r\n /* Esto controlar\u00E1 el llenado progresivo */\r\n }\r\n \r\n .progress-active .progress-ring__circle {\r\n animation: progress-animation 3s linear forwards;\r\n }\r\n \r\n @keyframes progress-animation {\r\n from {\r\n stroke-dashoffset: 880;\r\n }\r\n to {\r\n stroke-dashoffset: 0;\r\n }\r\n }\r\n \r\n // div \r\n // {\r\n // color: #ffffff;\r\n // font-weight: 50px;\r\n // border-radius: 20px;\r\n // margin-top: 20px;\r\n // //width: 90%;\r\n // //max-width: 300px;\r\n // align-self: center;\r\n // text-transform: none;\r\n \r\n // --background: var(--purple-primary);\r\n // --background-hover: var(--purple-secondary);\r\n // --background-activated: var(--purple-secondary);\r\n // --background-focused: var(--purple-secondary);\r\n \r\n // --color: var(--purple-primary);\r\n \r\n // --border-radius: 20px;\r\n // --border-color: var(--purple-primary);\r\n // --border-style: solid;\r\n // --border-width: 1px;\r\n \r\n // --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.25);\r\n \r\n // --ripple-color: var(--purple-secondary);\r\n \r\n \r\n // --padding-top: 10px;\r\n // --padding-bottom: 10px;\r\n // }\r\n \r\n .text-container {\r\n height: 40px;\r\n color: black;\r\n }\r\n \r\n ion-header {\r\n --background: #ffffff; /* Fondo blanco para el header */\r\n }\r\n \r\n \r\n \r\n .centered-title {\r\n text-align: center;\r\n width: 100%; /* Asegura que el t\u00EDtulo est\u00E9 centrado */\r\n font-weight: bold;\r\n }\r\n \r\n .fixed-footer {\r\n position: fixed;\r\n bottom: 0;\r\n left: 0;\r\n width: 100%;\r\n padding: 10px;\r\n background-color: #fff;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n \r\n ion-button {\r\n width: 90%;\r\n max-width: 300px;\r\n margin: 0 auto;\r\n background-color: #ffcc00;\r\n color: #ffffff;\r\n font-weight: bold;\r\n border-radius: 20px;\r\n \r\n --background: var(--purple-primary);\r\n --background-hover: var(--purple-secondary);\r\n --background-activated: var(--purple-secondary);\r\n --background-focused: var(--purple-secondary);\r\n \r\n --color: var(--purple-primary);\r\n \r\n --border-radius: 20px;\r\n --border-color: var(--purple-primary);\r\n --border-style: solid;\r\n --border-width: 1px;\r\n \r\n --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.25);\r\n \r\n --ripple-color: var(--purple-secondary);\r\n\r\n &:hover {\r\n background-color: #ffb300;\r\n }\r\n\r\n &:active {\r\n background-color: #e6a800;\r\n }\r\n }\r\n\r\n // Clase para ocultar el bot\u00F3n durante la captura\r\n &.hidden {\r\n display: none;\r\n }\r\n } \r\n ion-header {\r\n --background: #ffffff; /* Fondo blanco */\r\n color: #000000; /* Texto negro */\r\n }\r\n \r\n ion-toolbar {\r\n --ion-background-color: #ffffff !important;\r\n --background: #ffffff !important;\r\n color: #000000;\r\n }\r\n \r\n \r\n ion-header {\r\n --background: #ffffff; /* Fondo blanco */\r\n }\r\n \r\n ion-toolbar {\r\n --ion-background-color: #ffffff !important;\r\n --background: #ffffff !important;\r\n color: #000000;\r\n display: flex;\r\n justify-content: space-between; /* Espacio entre t\u00EDtulo y bot\u00F3n */\r\n align-items: center;\r\n }\r\n \r\n .centered-title {\r\n flex: 1;\r\n text-align: center; /* Centrar el t\u00EDtulo */\r\n font-weight: bold;\r\n color: #000000;\r\n margin: 0; /* Quita cualquier margen del t\u00EDtulo */\r\n }\r\n \r\n ion-buttons {\r\n justify-content: flex-end; /* Alinea el bot\u00F3n a la derecha */\r\n }\r\n .countdown-overlay {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.6); /* Fondo semi-transparente */\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin: 0;\r\n padding: 0;\r\n z-index: 1000; /* Asegurarse de que est\u00E9 encima de otros elementos */\r\n animation: fadeIn 0.5s ease-out, fadeOut 0.5s ease-out 2.5s; /* Animaciones de entrada y salida */\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n \r\n }\r\n \r\n ion-content.custom-content {\r\n --padding-top: 0;\r\n --padding-bottom: 0;\r\n margin: 0;\r\n padding: 0;\r\n }\r\n \r\n .countdown {\r\n font-size: 100px;\r\n font-weight: bold;\r\n color: white;\r\n animation: scaleUp 0.5s ease-out, scaleDown 0.5s ease-out 2.5s; /* Escalar en entrada y salida */\r\n }\r\n \r\n /* Animaci\u00F3n para desvanecer la superposici\u00F3n */\r\n @keyframes fadeIn {\r\n from {\r\n opacity: 0;\r\n }\r\n to {\r\n opacity: 1;\r\n }\r\n }\r\n \r\n @keyframes fadeOut {\r\n from {\r\n opacity: 1;\r\n }\r\n to {\r\n opacity: 0;\r\n }\r\n }\r\n \r\n /* Animaci\u00F3n para escalar el n\u00FAmero */\r\n @keyframes scaleUp {\r\n from {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n to {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n }\r\n \r\n @keyframes scaleDown {\r\n from {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n to {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n }\r\n \r\n .red {\r\n padding: 10px;\r\n color: red;\r\n }\r\n \r\n .text-center{\r\n text-align: center;\r\n padding-left: 20%;\r\n padding-right: 20%;\r\n color: #333;\r\n }\r\n \r\n .loading-overlay {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.8); /* Fondo oscuro semi-transparente */\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n z-index: 1000; /* Aseg\u00FArate de que est\u00E9 por encima del contenido */\r\n margin: 0;\r\n padding: 0;\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n }\r\n \r\n ion-spinner {\r\n color: white;\r\n width: 50px;\r\n height: 50px;\r\n }\r\n \r\n // Estilos para el c\u00EDrculo morado con cuenta regresiva\r\n .countdown-overlay {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n z-index: 10;\r\n }\r\n \r\n .countdown-circle {\r\n width: 200px;\r\n height: 200px;\r\n border: 10px solid purple;\r\n border-radius: 50%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n background-color: rgba(255, 255, 255, 0.8);\r\n }\r\n \r\n .countdown-number {\r\n font-size: 3rem;\r\n font-weight: bold;\r\n color: purple;\r\n }\r\n \r\n // Estilos para el bot\u00F3n redondo de tomar foto\r\n .capture-button {\r\n width: 70px;\r\n height: 70px;\r\n border-radius: 50%;\r\n background-color: purple;\r\n color: white;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\r\n margin: 0 auto;\r\n }"] }]
245
+ args: [{ selector: 'app-photo-selfie-camera', encapsulation: ViewEncapsulation.Emulated, template: "<ion-content color=\"light\" class=\"custom-content\">\r\n <!-- Loading deshabilitado para evitar conflictos con loading principal -->\r\n <!-- <div *ngIf=\"isLoading\" class=\"loading-overlay\">\r\n <ion-spinner name=\"crescent\"></ion-spinner>\r\n </div> -->\r\n\r\n <ion-header class=\"ion-no-border\">\r\n <ion-toolbar color=\"light\">\r\n <!-- <ion-title class=\"centered-title\">Video Selfie</ion-title> -->\r\n <ion-buttons slot=\"end\">\r\n <ion-button (click)=\"closeRequestedFunction()\">\r\n <ion-icon name=\"close\"></ion-icon>\r\n </ion-button>\r\n </ion-buttons>\r\n </ion-toolbar>\r\n </ion-header>\r\n\r\n <!-- Contenedor de la c\u00E1mara y progresi\u00F3n -->\r\n <div class=\"camera-container\">\r\n <div class=\"video-wrapper\">\r\n <video #videoElement muted autoplay playsinline style=\"transform: scaleX(-1)\"></video>\r\n <svg class=\"progress-ring\" #progressRing width=\"300\" height=\"300\">\r\n <circle class=\"progress-ring__circle\" cx=\"150\" cy=\"150\" r=\"150\" />\r\n </svg>\r\n </div>\r\n\r\n <p class=\"text-center\">Permanece quieto, con tu rostro en el centro del circulo</p>\r\n <!-- Efecto de c\u00EDrculo morado con cuenta regresiva -->\r\n <div class=\"countdown-overlay\" *ngIf=\"showCountdown\">\r\n <div class=\"countdown-circle\">\r\n <span class=\"countdown-number\">{{ countdown }}</span>\r\n </div>\r\n </div>\r\n <!-- Bot\u00F3n expandido y centrado para tomar foto -->\r\n <div class=\"fixed-footer\" [class.hidden]=\"isCapturing\">\r\n <ion-button expand=\"block\" (click)=\"capturePhoto()\">\r\n Tomar Fotograf\u00EDa\r\n </ion-button>\r\n </div>\r\n </div>\r\n</ion-content>", styles: [".camera-container {\r\n justify-content: center;\r\n align-items: center;\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n height: 70%;\r\n background-color: white;\r\n }\r\n \r\n .video-wrapper {\r\n position: relative;\r\n width: 300px;\r\n height: 300px;\r\n border-radius: 50%;\r\n overflow: hidden;\r\n }\r\n \r\n video {\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n border-radius: 50%;\r\n }\r\n \r\n .progress-ring {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n transform: rotate(-90deg);\r\n /* Rotamos el c\u00EDrculo para que la animaci\u00F3n inicie desde arriba */\r\n }\r\n \r\n .progress-ring__circle {\r\n fill: transparent;\r\n stroke: purple;\r\n stroke-width: 12;\r\n stroke-dasharray: 945;\r\n /* La circunferencia del c\u00EDrculo */\r\n stroke-dashoffset: 880;\r\n /* Oculto por completo al inicio */\r\n transition: stroke-dashoffset 3s linear;\r\n /* Esto controlar\u00E1 el llenado progresivo */\r\n }\r\n \r\n .progress-active .progress-ring__circle {\r\n animation: progress-animation 3s linear forwards;\r\n }\r\n \r\n @keyframes progress-animation {\r\n from {\r\n stroke-dashoffset: 880;\r\n }\r\n to {\r\n stroke-dashoffset: 0;\r\n }\r\n }\r\n \r\n // div \r\n // {\r\n // color: #ffffff;\r\n // font-weight: 50px;\r\n // border-radius: 20px;\r\n // margin-top: 20px;\r\n // //width: 90%;\r\n // //max-width: 300px;\r\n // align-self: center;\r\n // text-transform: none;\r\n \r\n // --background: var(--purple-primary);\r\n // --background-hover: var(--purple-secondary);\r\n // --background-activated: var(--purple-secondary);\r\n // --background-focused: var(--purple-secondary);\r\n \r\n // --color: var(--purple-primary);\r\n \r\n // --border-radius: 20px;\r\n // --border-color: var(--purple-primary);\r\n // --border-style: solid;\r\n // --border-width: 1px;\r\n \r\n // --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.25);\r\n \r\n // --ripple-color: var(--purple-secondary);\r\n \r\n \r\n // --padding-top: 10px;\r\n // --padding-bottom: 10px;\r\n // }\r\n \r\n .text-container {\r\n height: 40px;\r\n color: black;\r\n }\r\n \r\n ion-header {\r\n --background: #ffffff; /* Fondo blanco para el header */\r\n }\r\n \r\n \r\n \r\n .centered-title {\r\n text-align: center;\r\n width: 100%; /* Asegura que el t\u00EDtulo est\u00E9 centrado */\r\n font-weight: bold;\r\n }\r\n \r\n .fixed-footer {\r\n position: fixed;\r\n bottom: 10vh; // Sube el bot\u00F3n un 10% desde abajo\r\n left: 0;\r\n width: 100%;\r\n padding: 10px;\r\n background-color: #fff;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n \r\n ion-button {\r\n width: 90%;\r\n max-width: 300px;\r\n margin: 0 auto;\r\n background-color: #ffcc00;\r\n color: #ffffff;\r\n font-weight: bold;\r\n border-radius: 20px;\r\n \r\n --background: var(--purple-primary);\r\n --background-hover: var(--purple-secondary);\r\n --background-activated: var(--purple-secondary);\r\n --background-focused: var(--purple-secondary);\r\n \r\n --color: var(--purple-primary);\r\n \r\n --border-radius: 20px;\r\n --border-color: var(--purple-primary);\r\n --border-style: solid;\r\n --border-width: 1px;\r\n \r\n --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.25);\r\n \r\n --ripple-color: var(--purple-secondary);\r\n\r\n &:hover {\r\n background-color: #ffb300;\r\n }\r\n\r\n &:active {\r\n background-color: #e6a800;\r\n }\r\n }\r\n\r\n // Clase para ocultar el bot\u00F3n durante la captura\r\n &.hidden {\r\n display: none;\r\n }\r\n } \r\n ion-header {\r\n --background: #ffffff; /* Fondo blanco */\r\n color: #000000; /* Texto negro */\r\n }\r\n \r\n ion-toolbar {\r\n --ion-background-color: #ffffff !important;\r\n --background: #ffffff !important;\r\n color: #000000;\r\n }\r\n \r\n \r\n ion-header {\r\n --background: #ffffff; /* Fondo blanco */\r\n }\r\n \r\n ion-toolbar {\r\n --ion-background-color: #ffffff !important;\r\n --background: #ffffff !important;\r\n color: #000000;\r\n display: flex;\r\n justify-content: space-between; /* Espacio entre t\u00EDtulo y bot\u00F3n */\r\n align-items: center;\r\n }\r\n \r\n .centered-title {\r\n flex: 1;\r\n text-align: center; /* Centrar el t\u00EDtulo */\r\n font-weight: bold;\r\n color: #000000;\r\n margin: 0; /* Quita cualquier margen del t\u00EDtulo */\r\n }\r\n \r\n ion-buttons {\r\n justify-content: flex-end; /* Alinea el bot\u00F3n a la derecha */\r\n }\r\n .countdown-overlay {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.6); /* Fondo semi-transparente */\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin: 0;\r\n padding: 0;\r\n z-index: 1000; /* Asegurarse de que est\u00E9 encima de otros elementos */\r\n animation: fadeIn 0.5s ease-out, fadeOut 0.5s ease-out 2.5s; /* Animaciones de entrada y salida */\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n \r\n }\r\n \r\n ion-content.custom-content {\r\n --padding-top: 0;\r\n --padding-bottom: 0;\r\n margin: 0;\r\n padding: 0;\r\n margin-top: 10vh; // Levanta el contenido un 10% desde el tope\r\n height: 90vh; // Ajusta la altura para que junto con el margin sea 100%\r\n }\r\n \r\n .countdown {\r\n font-size: 100px;\r\n font-weight: bold;\r\n color: white;\r\n animation: scaleUp 0.5s ease-out, scaleDown 0.5s ease-out 2.5s; /* Escalar en entrada y salida */\r\n }\r\n \r\n /* Animaci\u00F3n para desvanecer la superposici\u00F3n */\r\n @keyframes fadeIn {\r\n from {\r\n opacity: 0;\r\n }\r\n to {\r\n opacity: 1;\r\n }\r\n }\r\n \r\n @keyframes fadeOut {\r\n from {\r\n opacity: 1;\r\n }\r\n to {\r\n opacity: 0;\r\n }\r\n }\r\n \r\n /* Animaci\u00F3n para escalar el n\u00FAmero */\r\n @keyframes scaleUp {\r\n from {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n to {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n }\r\n \r\n @keyframes scaleDown {\r\n from {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n to {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n }\r\n \r\n .red {\r\n padding: 10px;\r\n color: red;\r\n }\r\n \r\n .text-center{\r\n text-align: center;\r\n padding-left: 20%;\r\n padding-right: 20%;\r\n color: #333;\r\n }\r\n \r\n .loading-overlay {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.8); /* Fondo oscuro semi-transparente */\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n z-index: 1000; /* Aseg\u00FArate de que est\u00E9 por encima del contenido */\r\n margin: 0;\r\n padding: 0;\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n }\r\n \r\n ion-spinner {\r\n color: white;\r\n width: 50px;\r\n height: 50px;\r\n }\r\n \r\n // Estilos para el c\u00EDrculo morado con cuenta regresiva\r\n .countdown-overlay {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n z-index: 10;\r\n }\r\n \r\n .countdown-circle {\r\n width: 200px;\r\n height: 200px;\r\n border: 10px solid purple;\r\n border-radius: 50%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n background-color: rgba(255, 255, 255, 0.8);\r\n }\r\n \r\n .countdown-number {\r\n font-size: 3rem;\r\n font-weight: bold;\r\n color: purple;\r\n }\r\n \r\n // Estilos para el bot\u00F3n redondo de tomar foto\r\n .capture-button {\r\n width: 70px;\r\n height: 70px;\r\n border-radius: 50%;\r\n background-color: purple;\r\n color: white;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\r\n margin: 0 auto;\r\n }"] }]
226
246
  }], () => [{ type: i1.Platform }, { type: i1.ModalController }, { type: i2.DomSanitizer }, { type: i3.ModalDpiServices }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }], { videoElement: [{
227
247
  type: ViewChild,
228
248
  args: ['videoElement']
@@ -235,6 +255,8 @@ export class PhotoSelfieCameraComponent {
235
255
  type: Input
236
256
  }], onTakePicture: [{
237
257
  type: Input
258
+ }], closeRequested: [{
259
+ type: Input
238
260
  }] }); })();
239
261
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PhotoSelfieCameraComponent, { className: "PhotoSelfieCameraComponent", filePath: "src\\app\\pages\\id-vision\\components\\photo-selfie-camera\\photo-selfie-camera.component.ts", lineNumber: 17 }); })();
240
262
  //# sourceMappingURL=photo-selfie-camera.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"photo-selfie-camera.component.js","sourceRoot":"","sources":["../../../../../../../src/app/pages/id-vision/components/photo-selfie-camera/photo-selfie-camera.component.ts","../../../../../../../src/app/pages/id-vision/components/photo-selfie-camera/photo-selfie-camera.component.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"photo-selfie-camera.component.js","sourceRoot":"","sources":["../../../../../../../src/app/pages/id-vision/components/photo-selfie-camera/photo-selfie-camera.component.ts","../../../../../../../src/app/pages/id-vision/components/photo-selfie-camera/photo-selfie-camera.component.html"],"names":[],"mappings":"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"}