metag-sdk-ionic 1.2.11 → 1.3.0-security-0.0.1

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 (126) hide show
  1. package/dist/assets/backup/Dpi-Front.webm +0 -0
  2. package/dist/assets/backup/Dpi-back.webm +0 -0
  3. package/dist/assets/icon/favicon.png +0 -0
  4. package/dist/assets/icons/dpi-error.svg +9 -9
  5. package/dist/assets/icons/video-error.svg +9 -9
  6. package/dist/assets/imagesIdVision/56.png +0 -0
  7. package/dist/assets/imagesIdVision/57.png +0 -0
  8. package/dist/assets/imagesIdVision/Animacion-de-colocacion-de-DPI.webm +0 -0
  9. package/dist/assets/imagesIdVision/Animacion-de-como-tomar-foto-DPI.webm +0 -0
  10. package/dist/assets/imagesIdVision/Dpi-back.mp4 +0 -0
  11. package/dist/assets/imagesIdVision/Dpi-front-video.mp4 +0 -0
  12. package/dist/assets/imagesIdVision/Foco.png +0 -0
  13. package/dist/assets/imagesIdVision/Selfie-rostro.png +0 -0
  14. package/dist/assets/imagesIdVision/acuerdo-video-selfie.png +0 -0
  15. package/dist/assets/imagesIdVision/backDpiRegister.png +0 -0
  16. package/dist/assets/imagesIdVision/background.png +0 -0
  17. package/dist/assets/imagesIdVision/blue-check.png +0 -0
  18. package/dist/assets/imagesIdVision/documentsImage.png +0 -0
  19. package/dist/assets/imagesIdVision/frontDpiRegister.png +0 -0
  20. package/dist/assets/imagesIdVision/icon/favicon.png +0 -0
  21. package/dist/assets/imagesIdVision/icons/dpi-error.svg +9 -9
  22. package/dist/assets/imagesIdVision/icons/video-error.svg +9 -9
  23. package/dist/assets/imagesIdVision/no-internet.svg +3 -3
  24. package/dist/assets/imagesIdVision/overlay_container.png +0 -0
  25. package/dist/assets/imagesIdVision/rostroImage.png +0 -0
  26. package/dist/assets/imagesIdVision/shapes.svg +1 -1
  27. package/dist/assets/imagesIdVision/voiceImage.png +0 -0
  28. package/dist/assets/shapes.svg +1 -1
  29. package/dist/index.d.ts +0 -1
  30. package/dist/index.js +0 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/src/app/app-routing.module.js +5 -5
  33. package/dist/src/app/app-routing.module.js.map +1 -1
  34. package/dist/src/app/app.component.js +2 -2
  35. package/dist/src/app/app.module.d.ts +2 -3
  36. package/dist/src/app/app.module.js +3 -5
  37. package/dist/src/app/app.module.js.map +1 -1
  38. package/dist/src/app/components/custom-button/custom-button.component.js +3 -3
  39. package/dist/src/app/home/home.page.js +3 -3
  40. package/dist/src/app/pages/id-vision/acuerdo-video/acuerdo-video-routing.module.d.ts +7 -0
  41. package/dist/src/app/pages/id-vision/acuerdo-video/acuerdo-video-routing.module.js +25 -0
  42. package/dist/src/app/pages/id-vision/acuerdo-video/acuerdo-video-routing.module.js.map +1 -0
  43. package/dist/src/app/pages/id-vision/acuerdo-video/acuerdo-video-step-guide/acuerdo-video-step-guide.component.d.ts +5 -0
  44. package/dist/src/app/pages/id-vision/acuerdo-video/acuerdo-video-step-guide/acuerdo-video-step-guide.component.js +58 -0
  45. package/dist/src/app/pages/id-vision/acuerdo-video/acuerdo-video-step-guide/acuerdo-video-step-guide.component.js.map +1 -0
  46. package/dist/src/app/pages/id-vision/acuerdo-video/acuerdo-video.module.d.ts +11 -0
  47. package/dist/src/app/pages/id-vision/acuerdo-video/acuerdo-video.module.js +35 -0
  48. package/dist/src/app/pages/id-vision/acuerdo-video/acuerdo-video.module.js.map +1 -0
  49. package/dist/src/app/pages/id-vision/acuerdo-video/acuerdo-video.page.d.ts +80 -0
  50. package/dist/src/app/pages/id-vision/acuerdo-video/acuerdo-video.page.js +640 -0
  51. package/dist/src/app/pages/id-vision/acuerdo-video/acuerdo-video.page.js.map +1 -0
  52. package/dist/src/app/pages/id-vision/acuerdo-video/shared-components.module.d.ts +9 -0
  53. package/dist/src/app/pages/id-vision/acuerdo-video/shared-components.module.js +20 -0
  54. package/dist/src/app/pages/id-vision/acuerdo-video/shared-components.module.js.map +1 -0
  55. package/dist/src/app/pages/id-vision/components/camara-acuerdo-video/camara-acuerdo.video.component.d.ts +32 -17
  56. package/dist/src/app/pages/id-vision/components/camara-acuerdo-video/camara-acuerdo.video.component.js +246 -122
  57. package/dist/src/app/pages/id-vision/components/camara-acuerdo-video/camara-acuerdo.video.component.js.map +1 -1
  58. package/dist/src/app/pages/id-vision/components/camara-video-selfie/camara-video-selfie.component.js +33 -32
  59. package/dist/src/app/pages/id-vision/components/camara-video-selfie/camara-video-selfie.component.js.map +1 -1
  60. package/dist/src/app/pages/id-vision/components/camera-security-block/camera-security-block.component.d.ts +12 -0
  61. package/dist/src/app/pages/id-vision/components/camera-security-block/camera-security-block.component.js +66 -0
  62. package/dist/src/app/pages/id-vision/components/camera-security-block/camera-security-block.component.js.map +1 -0
  63. package/dist/src/app/pages/id-vision/components/camera-with-overlay/camera-with-overlay.component.js +23 -32
  64. package/dist/src/app/pages/id-vision/components/camera-with-overlay/camera-with-overlay.component.js.map +1 -1
  65. package/dist/src/app/pages/id-vision/components/custom-slide/custom-slide.component.js +3 -3
  66. package/dist/src/app/pages/id-vision/components/direct-photo-selfie/direct-photo-selfie.component.js +3 -3
  67. package/dist/src/app/pages/id-vision/components/message-modal/message-modal.component.js +4 -4
  68. package/dist/src/app/pages/id-vision/components/message-modal/message-modal.component.js.map +1 -1
  69. package/dist/src/app/pages/id-vision/components/photo-selfie-camera/photo-selfie-camera.component.d.ts +3 -0
  70. package/dist/src/app/pages/id-vision/components/photo-selfie-camera/photo-selfie-camera.component.js +57 -21
  71. package/dist/src/app/pages/id-vision/components/photo-selfie-camera/photo-selfie-camera.component.js.map +1 -1
  72. package/dist/src/app/pages/id-vision/components/simple-acuerdo-video/simple-acuerdo-video.component.js +3 -3
  73. package/dist/src/app/pages/id-vision/dpi/front-dpi/front-dpi.component.js +2 -2
  74. package/dist/src/app/pages/id-vision/id-vision.component.d.ts +36 -14
  75. package/dist/src/app/pages/id-vision/id-vision.component.js +547 -410
  76. package/dist/src/app/pages/id-vision/id-vision.component.js.map +1 -1
  77. package/dist/src/app/pages/id-vision/id-vision.module.js +2 -9
  78. package/dist/src/app/pages/id-vision/id-vision.module.js.map +1 -1
  79. package/dist/src/app/pages/id-vision/services/acuerdo-video/acuerdo-video-dynamic.service.d.ts +18 -0
  80. package/dist/src/app/pages/id-vision/services/acuerdo-video/acuerdo-video-dynamic.service.js +43 -0
  81. package/dist/src/app/pages/id-vision/services/acuerdo-video/acuerdo-video-dynamic.service.js.map +1 -0
  82. package/dist/src/app/pages/id-vision/services/acuerdo-video/acuerdo-video.service.d.ts +10 -0
  83. package/dist/src/app/pages/id-vision/services/acuerdo-video/acuerdo-video.service.js +29 -0
  84. package/dist/src/app/pages/id-vision/services/acuerdo-video/acuerdo-video.service.js.map +1 -0
  85. package/dist/src/app/pages/id-vision/services/configuration/configuration.service.d.ts +1 -1
  86. package/dist/src/app/pages/id-vision/services/configuration/configuration.service.js +2 -2
  87. package/dist/src/app/pages/id-vision/services/configuration/configuration.service.js.map +1 -1
  88. package/dist/src/app/pages/id-vision/services/decrypt-text.service.d.ts +10 -0
  89. package/dist/src/app/pages/id-vision/services/decrypt-text.service.js +23 -0
  90. package/dist/src/app/pages/id-vision/services/decrypt-text.service.js.map +1 -0
  91. package/dist/src/app/pages/id-vision/services/dpi/dpi-service.service.d.ts +16 -5
  92. package/dist/src/app/pages/id-vision/services/dpi/dpi-service.service.js +147 -60
  93. package/dist/src/app/pages/id-vision/services/dpi/dpi-service.service.js.map +1 -1
  94. package/dist/src/app/pages/id-vision/services/encrypt/encrypt.service.d.ts +23 -0
  95. package/dist/src/app/pages/id-vision/services/encrypt/encrypt.service.js +44 -0
  96. package/dist/src/app/pages/id-vision/services/encrypt/encrypt.service.js.map +1 -0
  97. package/dist/src/app/pages/id-vision/services/facial-comparison/facial-comparison.service.d.ts +22 -0
  98. package/dist/src/app/pages/id-vision/services/facial-comparison/facial-comparison.service.js +45 -0
  99. package/dist/src/app/pages/id-vision/services/facial-comparison/facial-comparison.service.js.map +1 -0
  100. package/dist/src/app/pages/id-vision/services/processing/processing.service.d.ts +7 -4
  101. package/dist/src/app/pages/id-vision/services/processing/processing.service.js +75 -46
  102. package/dist/src/app/pages/id-vision/services/processing/processing.service.js.map +1 -1
  103. package/dist/src/app/pages/id-vision/services/security/virtual-camera-detection.service.d.ts +14 -0
  104. package/dist/src/app/pages/id-vision/services/security/virtual-camera-detection.service.js +72 -0
  105. package/dist/src/app/pages/id-vision/services/security/virtual-camera-detection.service.js.map +1 -0
  106. package/dist/src/app/pages/id-vision/services/validation/validation.service.d.ts +2 -0
  107. package/dist/src/app/pages/id-vision/services/validation/validation.service.js +21 -5
  108. package/dist/src/app/pages/id-vision/services/validation/validation.service.js.map +1 -1
  109. package/dist/src/app/pages/slides/acuerdo-video/acuerdo-video.component.js +1 -1
  110. package/dist/src/app/pages/slides/dpi-back/slide2.component.js +3 -3
  111. package/dist/src/app/pages/slides/dpi-front/slide1.component.js +3 -3
  112. package/dist/src/app/pages/slides/photo-selfie/photo-selfie.component.js +1 -1
  113. package/dist/src/app/pages/slides/slide1/slide1.component.d.ts +10 -10
  114. package/dist/src/app/pages/slides/slide1/slide1.component.js +39 -39
  115. package/dist/src/app/pages/slides/slide2/slide2.component.d.ts +8 -8
  116. package/dist/src/app/pages/slides/slide2/slide2.component.js +17 -17
  117. package/dist/src/app/pages/slides/slide3/slide3.component.d.ts +8 -8
  118. package/dist/src/app/pages/slides/slide3/slide3.component.js +17 -17
  119. package/dist/src/app/pages/slides/slide4/slide4.component.js +2 -2
  120. package/dist/src/app/pages/slides/video-selfie/slide3.component.js +35 -35
  121. package/dist/src/environments/environment.d.ts +2 -0
  122. package/dist/src/environments/environment.js +3 -1
  123. package/dist/src/environments/environment.js.map +1 -1
  124. package/package.json +72 -62
  125. package/src/app/app.component.scss +0 -0
  126. package/src/theme/variables.scss +24 -24
@@ -14,15 +14,15 @@ export class CustomSlideComponent {
14
14
  i0.ɵɵproperty("src", ctx.image1, i0.ɵɵsanitizeUrl);
15
15
  i0.ɵɵadvance(2);
16
16
  i0.ɵɵproperty("src", ctx.image2, i0.ɵɵsanitizeUrl);
17
- } }, styles: [".container[_ngcontent-%COMP%] {\r\n display: flex;\r\n justify-content: center; \n\r\n align-items: center; \n\r\n height: 100%; \n\r\n }\r\n \r\n ion-row[_ngcontent-%COMP%] {\r\n display: flex; \n\r\n justify-content: space-between; \n\r\n }\r\n ion-col[_ngcontent-%COMP%] {\r\n justify-content: center;\r\n align-items: center;\r\n }\r\n \r\n ion-col[_ngcontent-%COMP%] img[_ngcontent-%COMP%] {\r\n width: 100%; \n\r\n height: auto; \n\r\n object-fit: contain; \n\r\n }"] }); }
17
+ } }, styles: [".container[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center; \n\n align-items: center; \n\n height: 100%; \n\n }\n \n ion-row[_ngcontent-%COMP%] {\n display: flex; \n\n justify-content: space-between; \n\n }\n ion-col[_ngcontent-%COMP%] {\n justify-content: center;\n align-items: center;\n }\n \n ion-col[_ngcontent-%COMP%] img[_ngcontent-%COMP%] {\n width: 100%; \n\n height: auto; \n\n object-fit: contain; \n\n }"] }); }
18
18
  }
19
19
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CustomSlideComponent, [{
20
20
  type: Component,
21
- args: [{ selector: 'app-custom-slide', standalone: true, schemas: [CUSTOM_ELEMENTS_SCHEMA], encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"container\">\r\n <ion-row>\r\n <ion-col size=\"6\">\r\n <img [src]=\"image1\" alt=\"Imagen 1\" />\r\n </ion-col>\r\n <ion-col size=\"6\">\r\n <img [src]=\"image2\" alt=\"Imagen 2\" />\r\n </ion-col>\r\n </ion-row>\r\n</div>", styles: [".container {\r\n display: flex;\r\n justify-content: center; /* Centra las im\u00E1genes horizontalmente */\r\n align-items: center; /* Centra las im\u00E1genes verticalmente */\r\n height: 100%; /* Asegura que el contenedor ocupe todo el espacio */\r\n }\r\n \r\n ion-row {\r\n display: flex; /* Activa el layout de flexbox en el row */\r\n justify-content: space-between; /* Separa las im\u00E1genes uniformemente */\r\n }\r\n ion-col {\r\n justify-content: center;\r\n align-items: center;\r\n }\r\n \r\n ion-col img {\r\n width: 100%; /* Ajusta la imagen al ancho del contenedor */\r\n height: auto; /* Mantiene la proporci\u00F3n de la imagen */\r\n object-fit: contain; /* Asegura que la imagen no se deforme */\r\n }\r\n "] }]
21
+ args: [{ selector: 'app-custom-slide', standalone: true, schemas: [CUSTOM_ELEMENTS_SCHEMA], encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"container\">\n <ion-row>\n <ion-col size=\"6\">\n <img [src]=\"image1\" alt=\"Imagen 1\" />\n </ion-col>\n <ion-col size=\"6\">\n <img [src]=\"image2\" alt=\"Imagen 2\" />\n </ion-col>\n </ion-row>\n</div>", styles: [".container {\n display: flex;\n justify-content: center; /* Centra las im\u00E1genes horizontalmente */\n align-items: center; /* Centra las im\u00E1genes verticalmente */\n height: 100%; /* Asegura que el contenedor ocupe todo el espacio */\n }\n \n ion-row {\n display: flex; /* Activa el layout de flexbox en el row */\n justify-content: space-between; /* Separa las im\u00E1genes uniformemente */\n }\n ion-col {\n justify-content: center;\n align-items: center;\n }\n \n ion-col img {\n width: 100%; /* Ajusta la imagen al ancho del contenedor */\n height: auto; /* Mantiene la proporci\u00F3n de la imagen */\n object-fit: contain; /* Asegura que la imagen no se deforme */\n }\n "] }]
22
22
  }], null, { image1: [{
23
23
  type: Input
24
24
  }], image2: [{
25
25
  type: Input
26
26
  }] }); })();
27
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CustomSlideComponent, { className: "CustomSlideComponent", filePath: "src\\app\\pages\\id-vision\\components\\custom-slide\\custom-slide.component.ts", lineNumber: 12 }); })();
27
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CustomSlideComponent, { className: "CustomSlideComponent" }); })();
28
28
  //# sourceMappingURL=custom-slide.component.js.map
@@ -184,11 +184,11 @@ export class DirectPhotoSelfieComponent {
184
184
  } if (rf & 2) {
185
185
  i0.ɵɵadvance(12);
186
186
  i0.ɵɵproperty("ngIf", ctx.showProgress);
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}"] }); }
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%] {\n --background: #000;\n position: relative;\n height: 90vh; // Ajusta la altura para dejar espacio al padre\n margin-top: 10vh; // Levanta el contenido un 10% desde el tope\n overflow: hidden;\n}\n\n.camera-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 10;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n padding: 40px 20px 80px 20px;\n}\n\n.face-overlay[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 100%;\n}\n\n.face-circle[_ngcontent-%COMP%] {\n width: 280px;\n height: 350px;\n border: 3px solid rgba(255, 255, 255, 0.8);\n border-radius: 50%;\n position: relative;\n \n &::before {\n content: '';\n position: absolute;\n top: -3px;\n left: -3px;\n right: -3px;\n bottom: -3px;\n border: 2px solid rgba(0, 123, 255, 0.6);\n border-radius: 50%;\n animation: _ngcontent-%COMP%_pulse 2s ease-in-out infinite;\n }\n}\n\n.face-guide-text[_ngcontent-%COMP%] {\n margin-top: 20px;\n text-align: center;\n \n p {\n color: white;\n font-size: 16px;\n font-weight: 500;\n margin: 0;\n text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);\n }\n}\n\n.camera-controls[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n max-width: 300px;\n padding: 0 20px;\n}\n\n.control-button[_ngcontent-%COMP%] {\n --color: white;\n --background: rgba(0, 0, 0, 0.5);\n --border-radius: 50%;\n width: 50px;\n height: 50px;\n \n ion-icon {\n font-size: 24px;\n }\n}\n\n.capture-button[_ngcontent-%COMP%] {\n position: absolute;\n bottom: 20%;\n width: 70px;\n height: 70px;\n border-radius: 50%;\n background-color: purple;\n color: white;\n display: flex;\n justify-content: center;\n align-items: center;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n}\n\n.capture-circle[_ngcontent-%COMP%] {\n width: 70px;\n height: 70px;\n border: 4px solid white;\n border-radius: 50%;\n background: rgba(255, 255, 255, 0.2);\n transition: all 0.2s ease;\n \n &:active {\n transform: scale(0.95);\n background: rgba(255, 255, 255, 0.4);\n }\n}\n\n.progress-ring[_ngcontent-%COMP%] {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 10;\n}\n\n.progress-ring__svg[_ngcontent-%COMP%] {\n width: 300px;\n height: 300px;\n}\n\n.progress-ring__circle[_ngcontent-%COMP%] {\n fill: transparent;\n stroke: purple;\n stroke-width: 10;\n stroke-dasharray: 942; \n\n stroke-dashoffset: 942; \n\n transition: stroke-dashoffset 3s linear; \n\n}\n\n.loading-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.8);\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n z-index: 20;\n \n ion-spinner {\n --color: #007bff;\n width: 48px;\n height: 48px;\n }\n \n p {\n color: white;\n margin-top: 16px;\n font-size: 16px;\n font-weight: 500;\n }\n}\n\n@keyframes _ngcontent-%COMP%_pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.05);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n//[_ngcontent-%COMP%] Responsive[_ngcontent-%COMP%] adjustments\n@media[_ngcontent-%COMP%] (max-width[_ngcontent-%COMP%]: 375px)[_ngcontent-%COMP%] {\n .face-circle {\n width: 240px;\n height: 300px;\n }\n \n .camera-controls {\n max-width: 280px;\n }\n}\n\n@media (min-width: 768px) {\n .face-circle[_ngcontent-%COMP%] {\n width: 320px;\n height: 400px;\n }\n}"] }); }
188
188
  }
189
189
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DirectPhotoSelfieComponent, [{
190
190
  type: Component,
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}"] }]
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\">\n <!-- Loading deshabilitado para evitar conflictos con loading principal -->\n <!-- <div *ngIf=\"isLoading\" class=\"loading-overlay\">\n <ion-spinner name=\"crescent\"></ion-spinner>\n </div> -->\n \n <ion-header class=\"ion-no-border\">\n <ion-toolbar color=\"light\">\n <ion-buttons slot=\"end\">\n <ion-button (click)=\"closeRequestedFunction()\">\n <ion-icon name=\"close\"></ion-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n </ion-header>\n \n <!-- Contenedor de la c\u00E1mara y progresi\u00F3n -->\n <div class=\"camera-container\">\n <div class=\"video-wrapper\">\n <video #videoElement muted autoplay playsinline style=\"transform: scaleX(-1)\"></video>\n </div>\n\n <p class=\"text-center\">Permanece quieto, con tu rostro en el centro del circulo</p>\n <!-- C\u00EDrculo progresivo alrededor del \u00E1rea de la c\u00E1mara -->\n <div class=\"progress-ring\" *ngIf=\"showProgress\">\n <svg class=\"progress-ring__svg\">\n <circle class=\"progress-ring__circle\" cx=\"50%\" cy=\"50%\" r=\"48%\"></circle>\n </svg>\n </div>\n\n <!-- Bot\u00F3n redondo para tomar foto -->\n <div class=\"fixed-footer\">\n <ion-button class=\"capture-button\" (click)=\"startProgressAndCapture()\">\n <ion-icon name=\"camera\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </div>\n </div>\n </ion-content>", styles: [".direct-photo-selfie-content {\n --background: #000;\n position: relative;\n height: 90vh; // Ajusta la altura para dejar espacio al padre\n margin-top: 10vh; // Levanta el contenido un 10% desde el tope\n overflow: hidden;\n}\n\n.camera-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 10;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n padding: 40px 20px 80px 20px;\n}\n\n.face-overlay {\n flex: 1;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 100%;\n}\n\n.face-circle {\n width: 280px;\n height: 350px;\n border: 3px solid rgba(255, 255, 255, 0.8);\n border-radius: 50%;\n position: relative;\n \n &::before {\n content: '';\n position: absolute;\n top: -3px;\n left: -3px;\n right: -3px;\n bottom: -3px;\n border: 2px solid rgba(0, 123, 255, 0.6);\n border-radius: 50%;\n animation: pulse 2s ease-in-out infinite;\n }\n}\n\n.face-guide-text {\n margin-top: 20px;\n text-align: center;\n \n p {\n color: white;\n font-size: 16px;\n font-weight: 500;\n margin: 0;\n text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);\n }\n}\n\n.camera-controls {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n max-width: 300px;\n padding: 0 20px;\n}\n\n.control-button {\n --color: white;\n --background: rgba(0, 0, 0, 0.5);\n --border-radius: 50%;\n width: 50px;\n height: 50px;\n \n ion-icon {\n font-size: 24px;\n }\n}\n\n.capture-button {\n position: absolute;\n bottom: 20%;\n width: 70px;\n height: 70px;\n border-radius: 50%;\n background-color: purple;\n color: white;\n display: flex;\n justify-content: center;\n align-items: center;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n}\n\n.capture-circle {\n width: 70px;\n height: 70px;\n border: 4px solid white;\n border-radius: 50%;\n background: rgba(255, 255, 255, 0.2);\n transition: all 0.2s ease;\n \n &:active {\n transform: scale(0.95);\n background: rgba(255, 255, 255, 0.4);\n }\n}\n\n.progress-ring {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 10;\n}\n\n.progress-ring__svg {\n width: 300px;\n height: 300px;\n}\n\n.progress-ring__circle {\n fill: transparent;\n stroke: purple;\n stroke-width: 10;\n stroke-dasharray: 942; /* Circunferencia del c\u00EDrculo */\n stroke-dashoffset: 942; /* Oculto al inicio */\n transition: stroke-dashoffset 3s linear; /* Duraci\u00F3n de la animaci\u00F3n */\n}\n\n.loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.8);\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n z-index: 20;\n \n ion-spinner {\n --color: #007bff;\n width: 48px;\n height: 48px;\n }\n \n p {\n color: white;\n margin-top: 16px;\n font-size: 16px;\n font-weight: 500;\n }\n}\n\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.05);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n// Responsive adjustments\n@media (max-width: 375px) {\n .face-circle {\n width: 240px;\n height: 300px;\n }\n \n .camera-controls {\n max-width: 280px;\n }\n}\n\n@media (min-width: 768px) {\n .face-circle {\n width: 320px;\n height: 400px;\n }\n}"] }]
192
192
  }], () => [{ type: i1.Platform }, { type: i1.ModalController }, { type: i2.DomSanitizer }, { type: i3.ModalDpiServices }], { videoElement: [{
193
193
  type: ViewChild,
194
194
  args: ['videoElement']
@@ -201,5 +201,5 @@ export class DirectPhotoSelfieComponent {
201
201
  }], closeRequested: [{
202
202
  type: Input
203
203
  }] }); })();
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 }); })();
204
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DirectPhotoSelfieComponent, { className: "DirectPhotoSelfieComponent" }); })();
205
205
  //# sourceMappingURL=direct-photo-selfie.component.js.map
@@ -1,4 +1,4 @@
1
- import { Component, Input } from '@angular/core';
1
+ import { Component, Input, ViewEncapsulation } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@ionic/angular";
4
4
  import * as i2 from "@angular/common";
@@ -108,11 +108,11 @@ export class MessageModalComponent {
108
108
  i0.ɵɵtextInterpolate(ctx.title);
109
109
  i0.ɵɵadvance();
110
110
  i0.ɵɵproperty("ngIf", ctx.hasErrors)("ngIfElse", showMessage_r4);
111
- } }, dependencies: [i2.NgForOf, i2.NgIf, i2.NgSwitch, i2.NgSwitchCase, i2.NgSwitchDefault, i1.IonButton, i1.IonContent], styles: ["#custom-modal-error[_ngcontent-%COMP%] {\r\n --background: transparent !important; // Para que el fondo del ion-content sea transparente\r\n }\r\n \r\n .modal-wrapper-error[_ngcontent-%COMP%] {\r\n background-color: #fff;\r\n margin: auto;\r\n margin-top: 50%;\r\n width: 80%;\r\n max-width: 320px;\r\n border-radius: 8px;\r\n text-align: center;\r\n padding: 20px;\r\n box-shadow: 0 2px 8px rgba(0,0,0,0.2);\r\n }\r\n \r\n .modal-icon[_ngcontent-%COMP%] {\r\n font-size: 3rem;\r\n color: var(--orange-primary);\r\n margin-bottom: 8px;\r\n }\r\n \r\n \n\r\n .modal-title[_ngcontent-%COMP%] {\r\n font-size: 1.2rem;\r\n font-weight: bold;\r\n color: #333;\r\n margin-bottom: 8px;\r\n }\r\n \r\n \n\r\n .modal-message[_ngcontent-%COMP%] {\r\n font-size: 1rem;\r\n color: #666;\r\n margin-bottom: 16px;\r\n }\r\n \r\n.error-list[_ngcontent-%COMP%] {\r\n list-style-type: disc;\r\n padding-left: 20px;\r\n margin-bottom: 16px;\r\n text-align: left;\r\n color: #666;\r\n font-size: 1rem;\r\n }\r\n \r\n .error-list[_ngcontent-%COMP%] li[_ngcontent-%COMP%] {\r\n margin-bottom: 8px;\r\n }\r\n\r\n .modal-button-error[_ngcontent-%COMP%] {\r\n // --background: #F8AA00; \n\r\n // --color: #fff;\r\n // --border-radius: 4px;\r\n // max-width: 300px; // anteriormente 300\r\n width: auto;\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(--orange-primary);\r\n --background-hover: var(--orange-secondary);\r\n --background-activated: var(--orange-secondary);\r\n --background-focused: var(--orange-secondary);\r\n \r\n --color: var(--orange-primary);\r\n \r\n --border-radius: 20px;\r\n --border-color: var(--orange-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(--orange-secondary);\r\n \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 }"] }); }
111
+ } }, dependencies: [i2.NgForOf, i2.NgIf, i2.NgSwitch, i2.NgSwitchCase, i2.NgSwitchDefault, i1.IonButton, i1.IonContent], styles: ["#custom-modal-error[_ngcontent-%COMP%] {\n --background: transparent !important; // Para que el fondo del ion-content sea transparente\n }\n \n .modal-wrapper-error[_ngcontent-%COMP%] {\n background-color: #fff;\n margin: auto;\n margin-top: 50%;\n width: 80%;\n max-width: 320px;\n border-radius: 8px;\n text-align: center;\n padding: 20px;\n box-shadow: 0 2px 8px rgba(0,0,0,0.2);\n }\n \n .modal-icon[_ngcontent-%COMP%] {\n font-size: 3rem;\n color: var(--orange-primary);\n margin-bottom: 8px;\n }\n \n \n\n .modal-title[_ngcontent-%COMP%] {\n font-size: 1.2rem;\n font-weight: bold;\n color: #333;\n margin-bottom: 8px;\n }\n \n \n\n .modal-message[_ngcontent-%COMP%] {\n font-size: 1rem;\n color: #666;\n margin-bottom: 16px;\n }\n \n.error-list[_ngcontent-%COMP%] {\n list-style-type: disc;\n padding-left: 20px;\n margin-bottom: 16px;\n text-align: left;\n color: #666;\n font-size: 1rem;\n }\n \n .error-list[_ngcontent-%COMP%] li[_ngcontent-%COMP%] {\n margin-bottom: 8px;\n }\n\n .modal-button-error[_ngcontent-%COMP%] {\n // --background: #F8AA00; \n\n // --color: #fff;\n // --border-radius: 4px;\n // max-width: 300px; // anteriormente 300\n width: auto;\n margin: 0 auto;\n background-color: #ffcc00;\n color: #ffffff;\n font-weight: bold;\n border-radius: 20px;\n \n --background: var(--orange-primary);\n --background-hover: var(--orange-secondary);\n --background-activated: var(--orange-secondary);\n --background-focused: var(--orange-secondary);\n \n --color: var(--orange-primary);\n \n --border-radius: 20px;\n --border-color: var(--orange-primary);\n --border-style: solid;\n --border-width: 1px;\n \n --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.25);\n \n --ripple-color: var(--orange-secondary);\n \n \n &:hover {\n background-color: #ffb300;\n }\n \n &:active {\n background-color: #e6a800;\n }\n \n }"] }); }
112
112
  }
113
113
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MessageModalComponent, [{
114
114
  type: Component,
115
- args: [{ selector: 'app-modal-error', template: "<ion-content id=\"custom-modal-error\">\r\n <div class=\"modal-wrapper-error\">\r\n <ng-container [ngSwitch]=\"variant\">\r\n <ng-container *ngSwitchCase=\"'dpi'\">\r\n <img src=\"assets/imagesIdvision/icons/dpi-error.svg\" alt=\"Icono DPI\" class=\"modal-icon\" />\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'video'\">\r\n <img src=\"assets/imagesIdvision/icons/video-error.svg\" alt=\"Icono Video\" class=\"modal-icon\" />\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <img src=\"assets/imagesIdvision/icons/dpi-error.svg\" alt=\"Icono DPI\" class=\"modal-icon\" />\r\n </ng-container>\r\n </ng-container>\r\n\r\n <h2 class=\"modal-title\">{{ title }}</h2>\r\n\r\n <div *ngIf=\"hasErrors; else showMessage\">\r\n <ul class=\"error-list\">\r\n <li *ngFor=\"let error of errorMessages\">{{ error }}</li>\r\n </ul>\r\n </div>\r\n\r\n <ng-template #showMessage>\r\n <p class=\"modal-message\">{{ effectiveMessage }}</p>\r\n </ng-template>\r\n\r\n <ion-button (click)=\"closeModal()\" expand=\"block\" class=\"modal-button-error\">\r\n Ok\r\n </ion-button>\r\n </div>\r\n</ion-content>\r\n", styles: ["#custom-modal-error {\r\n --background: transparent !important; // Para que el fondo del ion-content sea transparente\r\n }\r\n \r\n .modal-wrapper-error {\r\n background-color: #fff;\r\n margin: auto;\r\n margin-top: 50%;\r\n width: 80%;\r\n max-width: 320px;\r\n border-radius: 8px;\r\n text-align: center;\r\n padding: 20px;\r\n box-shadow: 0 2px 8px rgba(0,0,0,0.2);\r\n }\r\n \r\n .modal-icon {\r\n font-size: 3rem;\r\n color: var(--orange-primary);\r\n margin-bottom: 8px;\r\n }\r\n \r\n /* T\u00EDtulo */\r\n .modal-title {\r\n font-size: 1.2rem;\r\n font-weight: bold;\r\n color: #333;\r\n margin-bottom: 8px;\r\n }\r\n \r\n /* Mensaje */\r\n .modal-message {\r\n font-size: 1rem;\r\n color: #666;\r\n margin-bottom: 16px;\r\n }\r\n \r\n.error-list {\r\n list-style-type: disc;\r\n padding-left: 20px;\r\n margin-bottom: 16px;\r\n text-align: left;\r\n color: #666;\r\n font-size: 1rem;\r\n }\r\n \r\n .error-list li {\r\n margin-bottom: 8px;\r\n }\r\n\r\n .modal-button-error {\r\n // --background: #F8AA00; /* Mismo color del \u00EDcono */\r\n // --color: #fff;\r\n // --border-radius: 4px;\r\n // max-width: 300px; // anteriormente 300\r\n width: auto;\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(--orange-primary);\r\n --background-hover: var(--orange-secondary);\r\n --background-activated: var(--orange-secondary);\r\n --background-focused: var(--orange-secondary);\r\n \r\n --color: var(--orange-primary);\r\n \r\n --border-radius: 20px;\r\n --border-color: var(--orange-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(--orange-secondary);\r\n \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 "] }]
115
+ args: [{ selector: 'app-modal-error', encapsulation: ViewEncapsulation.Emulated, template: "<ion-content id=\"custom-modal-error\">\n <div class=\"modal-wrapper-error\">\n <ng-container [ngSwitch]=\"variant\">\n <ng-container *ngSwitchCase=\"'dpi'\">\n <img src=\"assets/imagesIdvision/icons/dpi-error.svg\" alt=\"Icono DPI\" class=\"modal-icon\" />\n </ng-container>\n <ng-container *ngSwitchCase=\"'video'\">\n <img src=\"assets/imagesIdvision/icons/video-error.svg\" alt=\"Icono Video\" class=\"modal-icon\" />\n </ng-container>\n <ng-container *ngSwitchDefault>\n <img src=\"assets/imagesIdvision/icons/dpi-error.svg\" alt=\"Icono DPI\" class=\"modal-icon\" />\n </ng-container>\n </ng-container>\n\n <h2 class=\"modal-title\">{{ title }}</h2>\n\n <div *ngIf=\"hasErrors; else showMessage\">\n <ul class=\"error-list\">\n <li *ngFor=\"let error of errorMessages\">{{ error }}</li>\n </ul>\n </div>\n\n <ng-template #showMessage>\n <p class=\"modal-message\">{{ effectiveMessage }}</p>\n </ng-template>\n\n <ion-button (click)=\"closeModal()\" expand=\"block\" class=\"modal-button-error\">\n Ok\n </ion-button>\n </div>\n</ion-content>\n", styles: ["#custom-modal-error {\n --background: transparent !important; // Para que el fondo del ion-content sea transparente\n }\n \n .modal-wrapper-error {\n background-color: #fff;\n margin: auto;\n margin-top: 50%;\n width: 80%;\n max-width: 320px;\n border-radius: 8px;\n text-align: center;\n padding: 20px;\n box-shadow: 0 2px 8px rgba(0,0,0,0.2);\n }\n \n .modal-icon {\n font-size: 3rem;\n color: var(--orange-primary);\n margin-bottom: 8px;\n }\n \n /* T\u00EDtulo */\n .modal-title {\n font-size: 1.2rem;\n font-weight: bold;\n color: #333;\n margin-bottom: 8px;\n }\n \n /* Mensaje */\n .modal-message {\n font-size: 1rem;\n color: #666;\n margin-bottom: 16px;\n }\n \n.error-list {\n list-style-type: disc;\n padding-left: 20px;\n margin-bottom: 16px;\n text-align: left;\n color: #666;\n font-size: 1rem;\n }\n \n .error-list li {\n margin-bottom: 8px;\n }\n\n .modal-button-error {\n // --background: #F8AA00; /* Mismo color del \u00EDcono */\n // --color: #fff;\n // --border-radius: 4px;\n // max-width: 300px; // anteriormente 300\n width: auto;\n margin: 0 auto;\n background-color: #ffcc00;\n color: #ffffff;\n font-weight: bold;\n border-radius: 20px;\n \n --background: var(--orange-primary);\n --background-hover: var(--orange-secondary);\n --background-activated: var(--orange-secondary);\n --background-focused: var(--orange-secondary);\n \n --color: var(--orange-primary);\n \n --border-radius: 20px;\n --border-color: var(--orange-primary);\n --border-style: solid;\n --border-width: 1px;\n \n --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.25);\n \n --ripple-color: var(--orange-secondary);\n \n \n &:hover {\n background-color: #ffb300;\n }\n \n &:active {\n background-color: #e6a800;\n }\n \n }\n "] }]
116
116
  }], () => [{ type: i1.ModalController }], { title: [{
117
117
  type: Input
118
118
  }], variant: [{
@@ -122,5 +122,5 @@ export class MessageModalComponent {
122
122
  }], errors: [{
123
123
  type: Input
124
124
  }] }); })();
125
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MessageModalComponent, { className: "MessageModalComponent", filePath: "src\\app\\pages\\id-vision\\components\\message-modal\\message-modal.component.ts", lineNumber: 9 }); })();
125
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MessageModalComponent, { className: "MessageModalComponent" }); })();
126
126
  //# sourceMappingURL=message-modal.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"message-modal.component.js","sourceRoot":"","sources":["../../../../../../../src/app/pages/id-vision/components/message-modal/message-modal.component.ts","../../../../../../../src/app/pages/id-vision/components/message-modal/message-modal.component.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-modal.component.js","sourceRoot":"","sources":["../../../../../../../src/app/pages/id-vision/components/message-modal/message-modal.component.ts","../../../../../../../src/app/pages/id-vision/components/message-modal/message-modal.component.html"],"names":[],"mappings":"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"}
@@ -29,6 +29,7 @@ export declare class PhotoSelfieCameraComponent implements AfterViewInit, OnDest
29
29
  showProgress: boolean;
30
30
  timeRemaining: number;
31
31
  maxRecordingTime: number;
32
+ private defaultBrightness;
32
33
  constructor(platform: Platform, modalController: ModalController, sanitizer: DomSanitizer, modalDpiServices: ModalDpiServices, cdRef: ChangeDetectorRef, // Agregado para detectar cambios
33
34
  renderer: Renderer2);
34
35
  ngOnDestroy(): Promise<void>;
@@ -43,6 +44,8 @@ export declare class PhotoSelfieCameraComponent implements AfterViewInit, OnDest
43
44
  closeOverlay(): void;
44
45
  closeRequestedFunction(): void;
45
46
  resumeCamera(): void;
47
+ private boostBrightness;
48
+ private restoreBrightness;
46
49
  static ɵfac: i0.ɵɵFactoryDeclaration<PhotoSelfieCameraComponent, never>;
47
50
  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>;
48
51
  }
@@ -1,5 +1,6 @@
1
1
  import { Component, Input, ViewChild, ViewEncapsulation } from '@angular/core';
2
2
  import { Camera } from '@capacitor/camera';
3
+ import { ScreenBrightness } from '@capacitor-community/screen-brightness';
3
4
  import { Capacitor } from '@capacitor/core';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "@ionic/angular";
@@ -8,6 +9,16 @@ import * as i3 from "../../services/modal-services/modal-dpi-services";
8
9
  import * as i4 from "@angular/common";
9
10
  const _c0 = ["videoElement"];
10
11
  const _c1 = ["progressRing"];
12
+ function PhotoSelfieCameraComponent_p_13_Template(rf, ctx) { if (rf & 1) {
13
+ i0.ɵɵelementStart(0, "p", 16);
14
+ i0.ɵɵtext(1, "Permanece quieto, con tu rostro dentro del circulo");
15
+ i0.ɵɵelementEnd();
16
+ } }
17
+ function PhotoSelfieCameraComponent_p_14_Template(rf, ctx) { if (rf & 1) {
18
+ i0.ɵɵelementStart(0, "p", 16);
19
+ i0.ɵɵtext(1, "Espera un momento...");
20
+ i0.ɵɵelementEnd();
21
+ } }
11
22
  function PhotoSelfieCameraComponent_div_15_Template(rf, ctx) { if (rf & 1) {
12
23
  i0.ɵɵelementStart(0, "div", 17)(1, "div", 18)(2, "span", 19);
13
24
  i0.ɵɵtext(3);
@@ -18,7 +29,6 @@ function PhotoSelfieCameraComponent_div_15_Template(rf, ctx) { if (rf & 1) {
18
29
  i0.ɵɵtextInterpolate(ctx_r1.countdown);
19
30
  } }
20
31
  export class PhotoSelfieCameraComponent {
21
- // overlaySrc: String = '';
22
32
  constructor(platform, modalController, sanitizer, modalDpiServices, cdRef, // Agregado para detectar cambios
23
33
  renderer // Agregado para manipular clases
24
34
  ) {
@@ -40,18 +50,22 @@ export class PhotoSelfieCameraComponent {
40
50
  this.showProgress = false;
41
51
  this.timeRemaining = 0;
42
52
  this.maxRecordingTime = 3000; // 3 segundos
53
+ // overlaySrc: String = '';
54
+ this.defaultBrightness = 0;
43
55
  console.log('🏗️ PhotoSelfieCamera: Constructor ejecutado');
44
56
  this.isAndroid = this.platform.is('android');
45
57
  this.isIOS = this.platform.is('ios');
46
58
  }
47
59
  async ngOnDestroy() {
48
60
  this.stopCamera();
61
+ this.restoreBrightness();
49
62
  }
50
63
  async ngAfterViewInit() {
51
64
  console.log('🔍 PhotoSelfieCamera inicializado');
52
65
  console.log('🔍 closeRequested callback:', this.closeRequested ? 'DEFINIDO ✅' : 'NO DEFINIDO ❌');
53
66
  if (this.isAndroid || this.isIOS) {
54
67
  await this.requestPermissions();
68
+ this.boostBrightness();
55
69
  }
56
70
  await this.initCamera();
57
71
  this.isLoading = false;
@@ -204,6 +218,24 @@ export class PhotoSelfieCameraComponent {
204
218
  });
205
219
  }
206
220
  }
221
+ boostBrightness() {
222
+ try {
223
+ ScreenBrightness.getBrightness()
224
+ .then(async (brightness) => {
225
+ this.defaultBrightness = brightness.brightness;
226
+ await ScreenBrightness.setBrightness({ brightness: 1.0 });
227
+ });
228
+ }
229
+ catch { }
230
+ }
231
+ restoreBrightness() {
232
+ if (this.defaultBrightness === 0)
233
+ return;
234
+ try {
235
+ ScreenBrightness.setBrightness({ brightness: this.defaultBrightness }).then(() => null);
236
+ }
237
+ catch { }
238
+ }
207
239
  static { this.ɵfac = function PhotoSelfieCameraComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PhotoSelfieCameraComponent)(i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i1.ModalController), i0.ɵɵdirectiveInject(i2.DomSanitizer), i0.ɵɵdirectiveInject(i3.ModalDpiServices), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.Renderer2)); }; }
208
240
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PhotoSelfieCameraComponent, selectors: [["app-photo-selfie-camera"]], viewQuery: function PhotoSelfieCameraComponent_Query(rf, ctx) { if (rf & 1) {
209
241
  i0.ɵɵviewQuery(_c0, 5);
@@ -212,37 +244,41 @@ export class PhotoSelfieCameraComponent {
212
244
  let _t;
213
245
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.videoElement = _t.first);
214
246
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.progressRing = _t.first);
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) {
247
+ } }, inputs: { text1: "text1", text2: "text2", onTakePicture: "onTakePicture", closeRequested: "closeRequested" }, decls: 19, vars: 4, consts: [["videoElement", ""], ["progressRing", ""], ["color", "light", 1, "custom-content"], [1, "camera-container"], [2, "width", "100%", "display", "flex", "justify-content", "flex-end"], ["fill", "clear", 2, "width", "42px", "height", "42px", "--padding-start", "0", "--padding-end", "0", "--border-radius", "50%", "--background", "#f3e8ff", "--background-hover", "#e9d5ff", "--background-activated", "#ddd6fe", "--color", "#82298F", 3, "click"], ["slot", "icon-only", "name", "close-outline"], [1, "sdk-metag-title", 2, "color", "#000", "animation", "sdk-metag-lyric-rise .45s ease both"], [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"], ["class", "text-center", 4, "ngIf"], ["class", "countdown-overlay", 4, "ngIf"], [1, "fixed-footer"], ["expand", "block", 3, "click", "disabled"], [1, "text-center"], [1, "countdown-overlay"], [1, "countdown-circle"], [1, "countdown-number"]], template: function PhotoSelfieCameraComponent_Template(rf, ctx) { if (rf & 1) {
216
248
  const _r1 = i0.ɵɵgetCurrentView();
217
- i0.ɵɵelementStart(0, "ion-content", 2)(1, "ion-header", 3)(2, "ion-toolbar", 4)(3, "ion-buttons", 5)(4, "ion-button", 6);
218
- i0.ɵɵlistener("click", function PhotoSelfieCameraComponent_Template_ion_button_click_4_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.closeRequestedFunction()); });
219
- i0.ɵɵelement(5, "ion-icon", 7);
220
- i0.ɵɵelementEnd()()()();
221
- i0.ɵɵelementStart(6, "div", 8)(7, "div", 9);
222
- i0.ɵɵelement(8, "video", 10, 0);
249
+ i0.ɵɵelementStart(0, "ion-content", 2)(1, "div", 3)(2, "div", 4)(3, "ion-button", 5);
250
+ i0.ɵɵlistener("click", function PhotoSelfieCameraComponent_Template_ion_button_click_3_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.closeRequestedFunction()); });
251
+ i0.ɵɵelement(4, "ion-icon", 6);
252
+ i0.ɵɵelementEnd()();
253
+ i0.ɵɵelementStart(5, "h1", 7);
254
+ i0.ɵɵtext(6, " Foto Selfie ");
255
+ i0.ɵɵelementEnd();
256
+ i0.ɵɵelementStart(7, "div", 8);
257
+ i0.ɵɵelement(8, "video", 9, 0);
223
258
  i0.ɵɵnamespaceSVG();
224
- i0.ɵɵelementStart(10, "svg", 11, 1);
225
- i0.ɵɵelement(12, "circle", 12);
259
+ i0.ɵɵelementStart(10, "svg", 10, 1);
260
+ i0.ɵɵelement(12, "circle", 11);
226
261
  i0.ɵɵelementEnd()();
262
+ i0.ɵɵtemplate(13, PhotoSelfieCameraComponent_p_13_Template, 2, 0, "p", 12)(14, PhotoSelfieCameraComponent_p_14_Template, 2, 0, "p", 12)(15, PhotoSelfieCameraComponent_div_15_Template, 4, 1, "div", 13);
227
263
  i0.ɵɵnamespaceHTML();
228
- i0.ɵɵelementStart(13, "p", 13);
229
- i0.ɵɵtext(14, "Permanece quieto, con tu rostro en el centro del circulo");
230
- i0.ɵɵelementEnd();
231
- i0.ɵɵtemplate(15, PhotoSelfieCameraComponent_div_15_Template, 4, 1, "div", 14);
232
- i0.ɵɵelementStart(16, "div", 15)(17, "ion-button", 16);
264
+ i0.ɵɵelementStart(16, "div", 14)(17, "ion-button", 15);
233
265
  i0.ɵɵlistener("click", function PhotoSelfieCameraComponent_Template_ion_button_click_17_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.capturePhoto()); });
234
266
  i0.ɵɵtext(18, " Tomar Fotograf\u00EDa ");
235
267
  i0.ɵɵelementEnd()()()();
236
268
  } if (rf & 2) {
237
- i0.ɵɵadvance(15);
238
- i0.ɵɵproperty("ngIf", ctx.showCountdown);
269
+ i0.ɵɵadvance(13);
270
+ i0.ɵɵproperty("ngIf", !ctx.isCapturing);
239
271
  i0.ɵɵadvance();
240
- i0.ɵɵclassProp("hidden", ctx.isCapturing);
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 }"] }); }
272
+ i0.ɵɵproperty("ngIf", ctx.isCapturing);
273
+ i0.ɵɵadvance();
274
+ i0.ɵɵproperty("ngIf", ctx.showCountdown);
275
+ i0.ɵɵadvance(2);
276
+ i0.ɵɵproperty("disabled", ctx.isCapturing);
277
+ } }, dependencies: [i4.NgIf, i1.IonButton, i1.IonContent, i1.IonIcon], styles: [".camera-container[_ngcontent-%COMP%] {\n padding: 20px 20px 24px;\n gap: 20px;\n //margin-top: 1rem;\n justify-content: center;\n align-items: center;\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 90%;\n background-color: white;\n }\n\n .video-wrapper[_ngcontent-%COMP%] {\n position: relative;\n width: 300px;\n height: 300px;\n border-radius: 50%;\n overflow: hidden;\n }\n\n video[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 50%;\n }\n\n .progress-ring[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n transform: rotate(-90deg);\n \n\n }\n\n .progress-ring__circle[_ngcontent-%COMP%] {\n fill: transparent;\n stroke: purple;\n stroke-width: 12;\n stroke-dasharray: 945;\n \n\n stroke-dashoffset: 880;\n \n\n transition: stroke-dashoffset 3s linear;\n \n\n }\n\n .progress-active[_ngcontent-%COMP%] .progress-ring__circle[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_progress-animation 3s linear forwards;\n }\n\n @keyframes _ngcontent-%COMP%_progress-animation {\n from {\n stroke-dashoffset: 880;\n }\n to {\n stroke-dashoffset: 0;\n }\n }\n\n //[_ngcontent-%COMP%] div\n[_ngcontent-%COMP%] //[_ngcontent-%COMP%] {\n // color: #ffffff;\n // font-weight: 50px;\n // border-radius: 20px;\n // margin-top: 20px;\n // //width: 90%;\n // //max-width: 300px;\n // align-self: center;\n // text-transform: none;\n\n // --background: var(--purple-primary);\n // --background-hover: var(--purple-secondary);\n // --background-activated: var(--purple-secondary);\n // --background-focused: var(--purple-secondary);\n\n // --color: var(--purple-primary);\n\n // --border-radius: 20px;\n // --border-color: var(--purple-primary);\n // --border-style: solid;\n // --border-width: 1px;\n\n // --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.25);\n\n // --ripple-color: var(--purple-secondary);\n\n\n // --padding-top: 10px;\n // --padding-bottom: 10px;\n // }\n\n .text-container[_ngcontent-%COMP%] {\n height: 40px;\n color: black;\n }\n\n ion-header[_ngcontent-%COMP%] {\n --background: #ffffff; \n\n }\n\n\n\n .centered-title[_ngcontent-%COMP%] {\n text-align: center;\n width: 100%; \n\n font-weight: bold;\n }\n\n .fixed-footer[_ngcontent-%COMP%] {\n //position: fixed;\n bottom: 10vh; // Sube el bot\u00F3n un 10% desde abajo\n left: 0;\n width: 100%;\n padding: 10px;\n background-color: #fff;\n display: flex;\n justify-content: center;\n align-items: center;\n\n ion-button {\n width: 90%;\n max-width: 300px;\n margin: 0 auto;\n background-color: #ffcc00;\n color: #ffffff;\n font-weight: bold;\n border-radius: 20px;\n\n --background: var(--purple-primary);\n --background-hover: var(--purple-secondary);\n --background-activated: var(--purple-secondary);\n --background-focused: var(--purple-secondary);\n\n --color: var(--purple-primary);\n\n --border-radius: 20px;\n --border-color: var(--purple-primary);\n --border-style: solid;\n --border-width: 1px;\n\n --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.25);\n\n --ripple-color: var(--purple-secondary);\n\n &:hover {\n background-color: #ffb300;\n }\n\n &:active {\n background-color: #e6a800;\n }\n }\n\n // Clase para ocultar el bot\u00F3n durante la captura\n &.hidden {\n display: none;\n }\n }\n ion-header[_ngcontent-%COMP%] {\n --background: #ffffff; \n\n color: #000000; \n\n }\n\n ion-toolbar[_ngcontent-%COMP%] {\n --ion-background-color: #ffffff !important;\n --background: #ffffff !important;\n color: #000000;\n }\n\n\n ion-header[_ngcontent-%COMP%] {\n --background: #ffffff; \n\n }\n\n ion-toolbar[_ngcontent-%COMP%] {\n --ion-background-color: #ffffff !important;\n --background: #ffffff !important;\n color: #000000;\n display: flex;\n justify-content: space-between; \n\n align-items: center;\n }\n\n .centered-title[_ngcontent-%COMP%] {\n flex: 1;\n text-align: center; \n\n font-weight: bold;\n color: #000000;\n margin: 0; \n\n }\n\n ion-buttons[_ngcontent-%COMP%] {\n justify-content: flex-end; \n\n }\n .countdown-overlay[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.6); \n\n display: flex;\n align-items: center;\n justify-content: center;\n margin: 0;\n padding: 0;\n z-index: 1000; \n\n animation: _ngcontent-%COMP%_fadeIn 0.5s ease-out, _ngcontent-%COMP%_fadeOut 0.5s ease-out 2.5s; \n\n box-sizing: border-box;\n border-radius: 0px;\n\n }\n\n ion-content.custom-content[_ngcontent-%COMP%] {\n --padding-top: 0;\n --padding-bottom: 0;\n margin: 0;\n padding: 0;\n margin-top: 10vh; // Levanta el contenido un 10% desde el tope\n height: 90vh; // Ajusta la altura para que junto con el margin sea 100%\n }\n\n .countdown[_ngcontent-%COMP%] {\n font-size: 100px;\n font-weight: bold;\n color: white;\n animation: _ngcontent-%COMP%_scaleUp 0.5s ease-out, _ngcontent-%COMP%_scaleDown 0.5s ease-out 2.5s; \n\n }\n\n \n\n @keyframes _ngcontent-%COMP%_fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n @keyframes _ngcontent-%COMP%_fadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n }\n\n \n\n @keyframes _ngcontent-%COMP%_scaleUp {\n from {\n transform: scale(0.8);\n opacity: 0;\n }\n to {\n transform: scale(1);\n opacity: 1;\n }\n }\n\n @keyframes _ngcontent-%COMP%_scaleDown {\n from {\n transform: scale(1);\n opacity: 1;\n }\n to {\n transform: scale(0.8);\n opacity: 0;\n }\n }\n\n .red[_ngcontent-%COMP%] {\n padding: 10px;\n color: red;\n }\n\n .text-center[_ngcontent-%COMP%]{\n text-align: center;\n padding-left: 20%;\n padding-right: 20%;\n color: #333;\n }\n\n .loading-overlay[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.8); \n\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000; \n\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n border-radius: 0px;\n }\n\n ion-spinner[_ngcontent-%COMP%] {\n color: white;\n width: 50px;\n height: 50px;\n }\n\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\n[_ngcontent-%COMP%] .countdown-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 10;\n }\n\n .countdown-circle[_ngcontent-%COMP%] {\n width: 200px;\n height: 200px;\n border: 10px solid purple;\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: rgba(255, 255, 255, 0.8);\n }\n\n .countdown-number[_ngcontent-%COMP%] {\n font-size: 3rem;\n font-weight: bold;\n color: purple;\n }\n\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\n[_ngcontent-%COMP%] .capture-button[_ngcontent-%COMP%] {\n width: 70px;\n height: 70px;\n border-radius: 50%;\n background-color: purple;\n color: white;\n display: flex;\n justify-content: center;\n align-items: center;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n margin: 0 auto;\n }"] }); }
242
278
  }
243
279
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PhotoSelfieCameraComponent, [{
244
280
  type: Component,
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 }"] }]
281
+ args: [{ selector: 'app-photo-selfie-camera', encapsulation: ViewEncapsulation.Emulated, template: "<ion-content color=\"light\" class=\"custom-content\">\n <!-- Loading deshabilitado para evitar conflictos con loading principal -->\n <!-- <div *ngIf=\"isLoading\" class=\"loading-overlay\">\n <ion-spinner name=\"crescent\"></ion-spinner>\n </div> -->\n\n <!--<ion-header class=\"ion-no-border\">\n <ion-toolbar color=\"light\">\n <ion-title class=\"centered-title\">Video Selfie</ion-title> -->\n <!--<ion-buttons slot=\"end\">\n <ion-button (click)=\"closeRequestedFunction()\">\n <ion-icon name=\"close\"></ion-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n </ion-header>-->\n\n\n <!-- Contenedor de la c\u00E1mara y progresi\u00F3n -->\n <div class=\"camera-container\">\n\n <div style=\"width:100%;display:flex;justify-content:flex-end;\">\n <ion-button\n fill=\"clear\"\n style=\"width:42px;height:42px;--padding-start:0;--padding-end:0;--border-radius:50%;--background:#f3e8ff;--background-hover:#e9d5ff;--background-activated:#ddd6fe;--color:#82298F;\"\n (click)=\"closeRequestedFunction()\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </div>\n\n <h1\n class=\"sdk-metag-title\"\n style=\"color: #000; animation:sdk-metag-lyric-rise .45s ease both;\">\n Foto Selfie\n </h1>\n\n <div class=\"video-wrapper\">\n <video #videoElement muted autoplay playsinline style=\"transform: scaleX(-1)\"></video>\n <svg class=\"progress-ring\" #progressRing width=\"300\" height=\"300\">\n <circle class=\"progress-ring__circle\" cx=\"150\" cy=\"150\" r=\"150\"/>\n </svg>\n </div>\n\n <p *ngIf=\"!isCapturing\" class=\"text-center\">Permanece quieto, con tu rostro dentro del circulo</p>\n <p *ngIf=\"isCapturing\" class=\"text-center\">Espera un momento...</p>\n\n <!-- Efecto de c\u00EDrculo morado con cuenta regresiva -->\n <div class=\"countdown-overlay\" *ngIf=\"showCountdown\">\n <div class=\"countdown-circle\">\n <span class=\"countdown-number\">{{ countdown }}</span>\n </div>\n </div>\n <!-- Bot\u00F3n expandido y centrado para tomar foto -->\n <!--<div class=\"fixed-footer\" [class.hidden]=\"isCapturing\">-->\n <div class=\"fixed-footer\">\n <ion-button [disabled]=\"isCapturing\" expand=\"block\" (click)=\"capturePhoto()\">\n Tomar Fotograf\u00EDa\n </ion-button>\n </div>\n </div>\n</ion-content>\n", styles: [".camera-container {\n padding: 20px 20px 24px;\n gap: 20px;\n //margin-top: 1rem;\n justify-content: center;\n align-items: center;\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 90%;\n background-color: white;\n }\n\n .video-wrapper {\n position: relative;\n width: 300px;\n height: 300px;\n border-radius: 50%;\n overflow: hidden;\n }\n\n video {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 50%;\n }\n\n .progress-ring {\n position: absolute;\n top: 0;\n left: 0;\n transform: rotate(-90deg);\n /* Rotamos el c\u00EDrculo para que la animaci\u00F3n inicie desde arriba */\n }\n\n .progress-ring__circle {\n fill: transparent;\n stroke: purple;\n stroke-width: 12;\n stroke-dasharray: 945;\n /* La circunferencia del c\u00EDrculo */\n stroke-dashoffset: 880;\n /* Oculto por completo al inicio */\n transition: stroke-dashoffset 3s linear;\n /* Esto controlar\u00E1 el llenado progresivo */\n }\n\n .progress-active .progress-ring__circle {\n animation: progress-animation 3s linear forwards;\n }\n\n @keyframes progress-animation {\n from {\n stroke-dashoffset: 880;\n }\n to {\n stroke-dashoffset: 0;\n }\n }\n\n // div\n // {\n // color: #ffffff;\n // font-weight: 50px;\n // border-radius: 20px;\n // margin-top: 20px;\n // //width: 90%;\n // //max-width: 300px;\n // align-self: center;\n // text-transform: none;\n\n // --background: var(--purple-primary);\n // --background-hover: var(--purple-secondary);\n // --background-activated: var(--purple-secondary);\n // --background-focused: var(--purple-secondary);\n\n // --color: var(--purple-primary);\n\n // --border-radius: 20px;\n // --border-color: var(--purple-primary);\n // --border-style: solid;\n // --border-width: 1px;\n\n // --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.25);\n\n // --ripple-color: var(--purple-secondary);\n\n\n // --padding-top: 10px;\n // --padding-bottom: 10px;\n // }\n\n .text-container {\n height: 40px;\n color: black;\n }\n\n ion-header {\n --background: #ffffff; /* Fondo blanco para el header */\n }\n\n\n\n .centered-title {\n text-align: center;\n width: 100%; /* Asegura que el t\u00EDtulo est\u00E9 centrado */\n font-weight: bold;\n }\n\n .fixed-footer {\n //position: fixed;\n bottom: 10vh; // Sube el bot\u00F3n un 10% desde abajo\n left: 0;\n width: 100%;\n padding: 10px;\n background-color: #fff;\n display: flex;\n justify-content: center;\n align-items: center;\n\n ion-button {\n width: 90%;\n max-width: 300px;\n margin: 0 auto;\n background-color: #ffcc00;\n color: #ffffff;\n font-weight: bold;\n border-radius: 20px;\n\n --background: var(--purple-primary);\n --background-hover: var(--purple-secondary);\n --background-activated: var(--purple-secondary);\n --background-focused: var(--purple-secondary);\n\n --color: var(--purple-primary);\n\n --border-radius: 20px;\n --border-color: var(--purple-primary);\n --border-style: solid;\n --border-width: 1px;\n\n --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.25);\n\n --ripple-color: var(--purple-secondary);\n\n &:hover {\n background-color: #ffb300;\n }\n\n &:active {\n background-color: #e6a800;\n }\n }\n\n // Clase para ocultar el bot\u00F3n durante la captura\n &.hidden {\n display: none;\n }\n }\n ion-header {\n --background: #ffffff; /* Fondo blanco */\n color: #000000; /* Texto negro */\n }\n\n ion-toolbar {\n --ion-background-color: #ffffff !important;\n --background: #ffffff !important;\n color: #000000;\n }\n\n\n ion-header {\n --background: #ffffff; /* Fondo blanco */\n }\n\n ion-toolbar {\n --ion-background-color: #ffffff !important;\n --background: #ffffff !important;\n color: #000000;\n display: flex;\n justify-content: space-between; /* Espacio entre t\u00EDtulo y bot\u00F3n */\n align-items: center;\n }\n\n .centered-title {\n flex: 1;\n text-align: center; /* Centrar el t\u00EDtulo */\n font-weight: bold;\n color: #000000;\n margin: 0; /* Quita cualquier margen del t\u00EDtulo */\n }\n\n ion-buttons {\n justify-content: flex-end; /* Alinea el bot\u00F3n a la derecha */\n }\n .countdown-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.6); /* Fondo semi-transparente */\n display: flex;\n align-items: center;\n justify-content: center;\n margin: 0;\n padding: 0;\n z-index: 1000; /* Asegurarse de que est\u00E9 encima de otros elementos */\n animation: fadeIn 0.5s ease-out, fadeOut 0.5s ease-out 2.5s; /* Animaciones de entrada y salida */\n box-sizing: border-box;\n border-radius: 0px;\n\n }\n\n ion-content.custom-content {\n --padding-top: 0;\n --padding-bottom: 0;\n margin: 0;\n padding: 0;\n margin-top: 10vh; // Levanta el contenido un 10% desde el tope\n height: 90vh; // Ajusta la altura para que junto con el margin sea 100%\n }\n\n .countdown {\n font-size: 100px;\n font-weight: bold;\n color: white;\n animation: scaleUp 0.5s ease-out, scaleDown 0.5s ease-out 2.5s; /* Escalar en entrada y salida */\n }\n\n /* Animaci\u00F3n para desvanecer la superposici\u00F3n */\n @keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n @keyframes fadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n }\n\n /* Animaci\u00F3n para escalar el n\u00FAmero */\n @keyframes scaleUp {\n from {\n transform: scale(0.8);\n opacity: 0;\n }\n to {\n transform: scale(1);\n opacity: 1;\n }\n }\n\n @keyframes scaleDown {\n from {\n transform: scale(1);\n opacity: 1;\n }\n to {\n transform: scale(0.8);\n opacity: 0;\n }\n }\n\n .red {\n padding: 10px;\n color: red;\n }\n\n .text-center{\n text-align: center;\n padding-left: 20%;\n padding-right: 20%;\n color: #333;\n }\n\n .loading-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.8); /* Fondo oscuro semi-transparente */\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000; /* Aseg\u00FArate de que est\u00E9 por encima del contenido */\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n border-radius: 0px;\n }\n\n ion-spinner {\n color: white;\n width: 50px;\n height: 50px;\n }\n\n // Estilos para el c\u00EDrculo morado con cuenta regresiva\n .countdown-overlay {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 10;\n }\n\n .countdown-circle {\n width: 200px;\n height: 200px;\n border: 10px solid purple;\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: rgba(255, 255, 255, 0.8);\n }\n\n .countdown-number {\n font-size: 3rem;\n font-weight: bold;\n color: purple;\n }\n\n // Estilos para el bot\u00F3n redondo de tomar foto\n .capture-button {\n width: 70px;\n height: 70px;\n border-radius: 50%;\n background-color: purple;\n color: white;\n display: flex;\n justify-content: center;\n align-items: center;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n margin: 0 auto;\n }\n"] }]
246
282
  }], () => [{ type: i1.Platform }, { type: i1.ModalController }, { type: i2.DomSanitizer }, { type: i3.ModalDpiServices }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }], { videoElement: [{
247
283
  type: ViewChild,
248
284
  args: ['videoElement']
@@ -258,5 +294,5 @@ export class PhotoSelfieCameraComponent {
258
294
  }], closeRequested: [{
259
295
  type: Input
260
296
  }] }); })();
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 }); })();
297
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PhotoSelfieCameraComponent, { className: "PhotoSelfieCameraComponent" }); })();
262
298
  //# 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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"}