metag-sdk-ionic 1.2.7-beta-0.21 → 1.2.7-beta-0.23

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.
@@ -18,12 +18,14 @@ export declare class DirectPhotoSelfieComponent implements AfterViewInit, OnDest
18
18
  private isAndroid;
19
19
  private isIOS;
20
20
  isLoading: boolean;
21
+ showProgress: boolean;
21
22
  file?: File;
22
23
  capturedImageUrl: string | null;
23
24
  constructor(platform: Platform, modalController: ModalController, sanitizer: DomSanitizer, modalDpiServices: ModalDpiServices);
24
25
  ngOnDestroy(): Promise<void>;
25
26
  ngAfterViewInit(): Promise<void>;
26
27
  initCamera(): Promise<void>;
28
+ startProgressAndCapture(): Promise<void>;
27
29
  capturePhoto(): Promise<void>;
28
30
  blobToFile(blob: Blob, fileName: string): File;
29
31
  stopCamera(): void;
@@ -8,10 +8,17 @@ import * as i3 from "../../services/modal-services/modal-dpi-services";
8
8
  import * as i4 from "@angular/common";
9
9
  const _c0 = ["videoElement"];
10
10
  function DirectPhotoSelfieComponent_div_1_Template(rf, ctx) { if (rf & 1) {
11
- i0.ɵɵelementStart(0, "div", 14);
12
- i0.ɵɵelement(1, "ion-spinner", 15);
11
+ i0.ɵɵelementStart(0, "div", 16);
12
+ i0.ɵɵelement(1, "ion-spinner", 17);
13
13
  i0.ɵɵelementEnd();
14
14
  } }
15
+ function DirectPhotoSelfieComponent_div_13_Template(rf, ctx) { if (rf & 1) {
16
+ i0.ɵɵelementStart(0, "div", 18);
17
+ i0.ɵɵnamespaceSVG();
18
+ i0.ɵɵelementStart(1, "svg", 19);
19
+ i0.ɵɵelement(2, "circle", 20);
20
+ i0.ɵɵelementEnd()();
21
+ } }
15
22
  export class DirectPhotoSelfieComponent {
16
23
  constructor(platform, modalController, sanitizer, modalDpiServices) {
17
24
  this.platform = platform;
@@ -24,6 +31,7 @@ export class DirectPhotoSelfieComponent {
24
31
  this.capturedImage = null;
25
32
  this.stream = null;
26
33
  this.isLoading = true;
34
+ this.showProgress = false;
27
35
  this.capturedImageUrl = null;
28
36
  this.isAndroid = this.platform.is('android');
29
37
  this.isIOS = this.platform.is('ios');
@@ -71,6 +79,16 @@ export class DirectPhotoSelfieComponent {
71
79
  this.isLoading = false;
72
80
  }
73
81
  }
82
+ async startProgressAndCapture() {
83
+ this.showProgress = true;
84
+ const circle = document.querySelector('.progress-ring__circle');
85
+ if (circle) {
86
+ circle.style.strokeDashoffset = '0'; // Inicia la animación
87
+ }
88
+ await new Promise(resolve => setTimeout(resolve, 3000)); // Espera a que termine la animación
89
+ this.showProgress = false;
90
+ this.capturePhoto();
91
+ }
74
92
  async capturePhoto() {
75
93
  if (!this.stream) {
76
94
  console.error('La cámara no está inicializada.');
@@ -131,7 +149,7 @@ export class DirectPhotoSelfieComponent {
131
149
  } if (rf & 2) {
132
150
  let _t;
133
151
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.videoElement = _t.first);
134
- } }, inputs: { text1: "text1", text2: "text2", onTakePicture: "onTakePicture" }, outputs: { closeRequested: "closeRequested" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 16, vars: 1, consts: [["videoElement", ""], ["color", "light", 1, "custom-content"], ["class", "loading-overlay", 4, "ngIf"], [1, "ion-no-border"], ["color", "light"], ["slot", "end"], [3, "click"], ["name", "close"], [1, "camera-container"], [1, "video-wrapper"], ["muted", "", "autoplay", "", "playsinline", "", 2, "transform", "scaleX(-1)"], [1, "text-center"], [1, "fixed-footer"], ["expand", "block", 3, "click"], [1, "loading-overlay"], ["name", "crescent"]], template: function DirectPhotoSelfieComponent_Template(rf, ctx) { if (rf & 1) {
152
+ } }, inputs: { text1: "text1", text2: "text2", onTakePicture: "onTakePicture" }, outputs: { closeRequested: "closeRequested" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 17, vars: 2, consts: [["videoElement", ""], ["color", "light", 1, "custom-content"], ["class", "loading-overlay", 4, "ngIf"], [1, "ion-no-border"], ["color", "light"], ["slot", "end"], [3, "click"], ["name", "close"], [1, "camera-container"], [1, "video-wrapper"], ["muted", "", "autoplay", "", "playsinline", "", 2, "transform", "scaleX(-1)"], [1, "text-center"], ["class", "progress-ring", 4, "ngIf"], [1, "fixed-footer"], [1, "capture-button", 3, "click"], ["name", "camera", "slot", "icon-only"], [1, "loading-overlay"], ["name", "crescent"], [1, "progress-ring"], [1, "progress-ring__svg"], ["cx", "50%", "cy", "50%", "r", "48%", 1, "progress-ring__circle"]], template: function DirectPhotoSelfieComponent_Template(rf, ctx) { if (rf & 1) {
135
153
  const _r1 = i0.ɵɵgetCurrentView();
136
154
  i0.ɵɵelementStart(0, "ion-content", 1);
137
155
  i0.ɵɵtemplate(1, DirectPhotoSelfieComponent_div_1_Template, 2, 0, "div", 2);
@@ -145,18 +163,21 @@ export class DirectPhotoSelfieComponent {
145
163
  i0.ɵɵelementStart(11, "p", 11);
146
164
  i0.ɵɵtext(12, "Permanece quieto, con tu rostro en el centro del circulo");
147
165
  i0.ɵɵelementEnd();
148
- i0.ɵɵelementStart(13, "div", 12)(14, "ion-button", 13);
149
- i0.ɵɵlistener("click", function DirectPhotoSelfieComponent_Template_ion_button_click_14_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.capturePhoto()); });
150
- i0.ɵɵtext(15, "Tomar foto");
166
+ i0.ɵɵtemplate(13, DirectPhotoSelfieComponent_div_13_Template, 3, 0, "div", 12);
167
+ i0.ɵɵelementStart(14, "div", 13)(15, "ion-button", 14);
168
+ i0.ɵɵlistener("click", function DirectPhotoSelfieComponent_Template_ion_button_click_15_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.startProgressAndCapture()); });
169
+ i0.ɵɵelement(16, "ion-icon", 15);
151
170
  i0.ɵɵelementEnd()()()();
152
171
  } if (rf & 2) {
153
172
  i0.ɵɵadvance();
154
173
  i0.ɵɵproperty("ngIf", ctx.isLoading);
155
- } }, dependencies: [IonicModule, i1.IonButton, i1.IonButtons, i1.IonContent, i1.IonHeader, i1.IonIcon, i1.IonSpinner, i1.IonToolbar, CommonModule, i4.NgIf], styles: [".direct-photo-selfie-content[_ngcontent-%COMP%] {\r\n --background: #000;\r\n position: relative;\r\n height: 100vh;\r\n overflow: hidden;\r\n}\r\n\r\n.camera-overlay[_ngcontent-%COMP%] {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n z-index: 10;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 40px 20px 80px 20px;\r\n}\r\n\r\n.face-overlay[_ngcontent-%COMP%] {\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\r\n}\r\n\r\n.face-circle[_ngcontent-%COMP%] {\r\n width: 280px;\r\n height: 350px;\r\n border: 3px solid rgba(255, 255, 255, 0.8);\r\n border-radius: 50%;\r\n position: relative;\r\n \r\n &::before {\r\n content: '';\r\n position: absolute;\r\n top: -3px;\r\n left: -3px;\r\n right: -3px;\r\n bottom: -3px;\r\n border: 2px solid rgba(0, 123, 255, 0.6);\r\n border-radius: 50%;\r\n animation: _ngcontent-%COMP%_pulse 2s ease-in-out infinite;\r\n }\r\n}\r\n\r\n.face-guide-text[_ngcontent-%COMP%] {\r\n margin-top: 20px;\r\n text-align: center;\r\n \r\n p {\r\n color: white;\r\n font-size: 16px;\r\n font-weight: 500;\r\n margin: 0;\r\n text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);\r\n }\r\n}\r\n\r\n.camera-controls[_ngcontent-%COMP%] {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n width: 100%;\r\n max-width: 300px;\r\n padding: 0 20px;\r\n}\r\n\r\n.control-button[_ngcontent-%COMP%] {\r\n --color: white;\r\n --background: rgba(0, 0, 0, 0.5);\r\n --border-radius: 50%;\r\n width: 50px;\r\n height: 50px;\r\n \r\n ion-icon {\r\n font-size: 24px;\r\n }\r\n}\r\n\r\n.capture-button[_ngcontent-%COMP%] {\r\n --background: transparent;\r\n --border-radius: 50%;\r\n width: 80px;\r\n height: 80px;\r\n position: relative;\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.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}"] }); }
174
+ i0.ɵɵadvance(12);
175
+ i0.ɵɵproperty("ngIf", ctx.showProgress);
176
+ } }, dependencies: [IonicModule, i1.IonButton, i1.IonButtons, i1.IonContent, i1.IonHeader, i1.IonIcon, i1.IonSpinner, i1.IonToolbar, CommonModule, i4.NgIf], styles: [".direct-photo-selfie-content[_ngcontent-%COMP%] {\r\n --background: #000;\r\n position: relative;\r\n height: 100vh;\r\n overflow: hidden;\r\n}\r\n\r\n.camera-overlay[_ngcontent-%COMP%] {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n z-index: 10;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 40px 20px 80px 20px;\r\n}\r\n\r\n.face-overlay[_ngcontent-%COMP%] {\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\r\n}\r\n\r\n.face-circle[_ngcontent-%COMP%] {\r\n width: 280px;\r\n height: 350px;\r\n border: 3px solid rgba(255, 255, 255, 0.8);\r\n border-radius: 50%;\r\n position: relative;\r\n \r\n &::before {\r\n content: '';\r\n position: absolute;\r\n top: -3px;\r\n left: -3px;\r\n right: -3px;\r\n bottom: -3px;\r\n border: 2px solid rgba(0, 123, 255, 0.6);\r\n border-radius: 50%;\r\n animation: _ngcontent-%COMP%_pulse 2s ease-in-out infinite;\r\n }\r\n}\r\n\r\n.face-guide-text[_ngcontent-%COMP%] {\r\n margin-top: 20px;\r\n text-align: center;\r\n \r\n p {\r\n color: white;\r\n font-size: 16px;\r\n font-weight: 500;\r\n margin: 0;\r\n text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);\r\n }\r\n}\r\n\r\n.camera-controls[_ngcontent-%COMP%] {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n width: 100%;\r\n max-width: 300px;\r\n padding: 0 20px;\r\n}\r\n\r\n.control-button[_ngcontent-%COMP%] {\r\n --color: white;\r\n --background: rgba(0, 0, 0, 0.5);\r\n --border-radius: 50%;\r\n width: 50px;\r\n height: 50px;\r\n \r\n ion-icon {\r\n font-size: 24px;\r\n }\r\n}\r\n\r\n.capture-button[_ngcontent-%COMP%] {\r\n position: absolute;\r\n bottom: 20%;\r\n width: 70px;\r\n height: 70px;\r\n border-radius: 50%;\r\n background-color: purple;\r\n color: white;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\r\n}\r\n\r\n.capture-circle[_ngcontent-%COMP%] {\r\n width: 70px;\r\n height: 70px;\r\n border: 4px solid white;\r\n border-radius: 50%;\r\n background: rgba(255, 255, 255, 0.2);\r\n transition: all 0.2s ease;\r\n \r\n &:active {\r\n transform: scale(0.95);\r\n background: rgba(255, 255, 255, 0.4);\r\n }\r\n}\r\n\r\n.progress-ring[_ngcontent-%COMP%] {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n z-index: 10;\r\n}\r\n\r\n.progress-ring__svg[_ngcontent-%COMP%] {\r\n width: 300px;\r\n height: 300px;\r\n}\r\n\r\n.progress-ring__circle[_ngcontent-%COMP%] {\r\n fill: transparent;\r\n stroke: purple;\r\n stroke-width: 10;\r\n stroke-dasharray: 942; \n\r\n stroke-dashoffset: 942; \n\r\n transition: stroke-dashoffset 3s linear; \n\r\n}\r\n\r\n.loading-overlay[_ngcontent-%COMP%] {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background: rgba(0, 0, 0, 0.8);\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n z-index: 20;\r\n \r\n ion-spinner {\r\n --color: #007bff;\r\n width: 48px;\r\n height: 48px;\r\n }\r\n \r\n p {\r\n color: white;\r\n margin-top: 16px;\r\n font-size: 16px;\r\n font-weight: 500;\r\n }\r\n}\r\n\r\n@keyframes _ngcontent-%COMP%_pulse {\r\n 0% {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n 50% {\r\n transform: scale(1.05);\r\n opacity: 0.7;\r\n }\r\n 100% {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n}\r\n\r\n//[_ngcontent-%COMP%] Responsive[_ngcontent-%COMP%] adjustments\r\n@media[_ngcontent-%COMP%] (max-width[_ngcontent-%COMP%]: 375px)[_ngcontent-%COMP%] {\r\n .face-circle {\r\n width: 240px;\r\n height: 300px;\r\n }\r\n \r\n .camera-controls {\r\n max-width: 280px;\r\n }\r\n}\r\n\r\n@media (min-width: 768px) {\r\n .face-circle[_ngcontent-%COMP%] {\r\n width: 320px;\r\n height: 400px;\r\n }\r\n}"] }); }
156
177
  }
157
178
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DirectPhotoSelfieComponent, [{
158
179
  type: Component,
159
- 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 <div *ngIf=\"isLoading\" class=\"loading-overlay\">\r\n <ion-spinner name=\"crescent\"></ion-spinner>\r\n </div>\r\n \r\n <ion-header class=\"ion-no-border\">\r\n <ion-toolbar color=\"light\">\r\n <ion-buttons slot=\"end\">\r\n <ion-button (click)=\"closeOverlay()\">\r\n <ion-icon name=\"close\"></ion-icon>\r\n </ion-button>\r\n </ion-buttons>\r\n </ion-toolbar>\r\n </ion-header>\r\n \r\n <!-- Contenedor de la c\u00E1mara y progresi\u00F3n -->\r\n <div class=\"camera-container\">\r\n <div class=\"video-wrapper\">\r\n <video #videoElement muted autoplay playsinline style=\"transform: scaleX(-1)\"></video>\r\n </div>\r\n\r\n <p class=\"text-center\">Permanece quieto, con tu rostro en el centro del circulo</p>\r\n <!-- Botones de grabaci\u00F3n -->\r\n <div class=\"fixed-footer\">\r\n <ion-button expand=\"block\" (click)=\"capturePhoto()\">Tomar foto</ion-button>\r\n </div>\r\n </div>\r\n </ion-content>", styles: [".direct-photo-selfie-content {\r\n --background: #000;\r\n position: relative;\r\n height: 100vh;\r\n overflow: hidden;\r\n}\r\n\r\n.camera-overlay {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n z-index: 10;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 40px 20px 80px 20px;\r\n}\r\n\r\n.face-overlay {\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\r\n}\r\n\r\n.face-circle {\r\n width: 280px;\r\n height: 350px;\r\n border: 3px solid rgba(255, 255, 255, 0.8);\r\n border-radius: 50%;\r\n position: relative;\r\n \r\n &::before {\r\n content: '';\r\n position: absolute;\r\n top: -3px;\r\n left: -3px;\r\n right: -3px;\r\n bottom: -3px;\r\n border: 2px solid rgba(0, 123, 255, 0.6);\r\n border-radius: 50%;\r\n animation: pulse 2s ease-in-out infinite;\r\n }\r\n}\r\n\r\n.face-guide-text {\r\n margin-top: 20px;\r\n text-align: center;\r\n \r\n p {\r\n color: white;\r\n font-size: 16px;\r\n font-weight: 500;\r\n margin: 0;\r\n text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);\r\n }\r\n}\r\n\r\n.camera-controls {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n width: 100%;\r\n max-width: 300px;\r\n padding: 0 20px;\r\n}\r\n\r\n.control-button {\r\n --color: white;\r\n --background: rgba(0, 0, 0, 0.5);\r\n --border-radius: 50%;\r\n width: 50px;\r\n height: 50px;\r\n \r\n ion-icon {\r\n font-size: 24px;\r\n }\r\n}\r\n\r\n.capture-button {\r\n --background: transparent;\r\n --border-radius: 50%;\r\n width: 80px;\r\n height: 80px;\r\n position: relative;\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.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}"] }]
180
+ 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 <div *ngIf=\"isLoading\" class=\"loading-overlay\">\r\n <ion-spinner name=\"crescent\"></ion-spinner>\r\n </div>\r\n \r\n <ion-header class=\"ion-no-border\">\r\n <ion-toolbar color=\"light\">\r\n <ion-buttons slot=\"end\">\r\n <ion-button (click)=\"closeOverlay()\">\r\n <ion-icon name=\"close\"></ion-icon>\r\n </ion-button>\r\n </ion-buttons>\r\n </ion-toolbar>\r\n </ion-header>\r\n \r\n <!-- Contenedor de la c\u00E1mara y progresi\u00F3n -->\r\n <div class=\"camera-container\">\r\n <div class=\"video-wrapper\">\r\n <video #videoElement muted autoplay playsinline style=\"transform: scaleX(-1)\"></video>\r\n </div>\r\n\r\n <p class=\"text-center\">Permanece quieto, con tu rostro en el centro del circulo</p>\r\n <!-- C\u00EDrculo progresivo alrededor del \u00E1rea de la c\u00E1mara -->\r\n <div class=\"progress-ring\" *ngIf=\"showProgress\">\r\n <svg class=\"progress-ring__svg\">\r\n <circle class=\"progress-ring__circle\" cx=\"50%\" cy=\"50%\" r=\"48%\"></circle>\r\n </svg>\r\n </div>\r\n\r\n <!-- Bot\u00F3n redondo para tomar foto -->\r\n <div class=\"fixed-footer\">\r\n <ion-button class=\"capture-button\" (click)=\"startProgressAndCapture()\">\r\n <ion-icon name=\"camera\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n </div>\r\n </ion-content>", styles: [".direct-photo-selfie-content {\r\n --background: #000;\r\n position: relative;\r\n height: 100vh;\r\n overflow: hidden;\r\n}\r\n\r\n.camera-overlay {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n z-index: 10;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 40px 20px 80px 20px;\r\n}\r\n\r\n.face-overlay {\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\r\n}\r\n\r\n.face-circle {\r\n width: 280px;\r\n height: 350px;\r\n border: 3px solid rgba(255, 255, 255, 0.8);\r\n border-radius: 50%;\r\n position: relative;\r\n \r\n &::before {\r\n content: '';\r\n position: absolute;\r\n top: -3px;\r\n left: -3px;\r\n right: -3px;\r\n bottom: -3px;\r\n border: 2px solid rgba(0, 123, 255, 0.6);\r\n border-radius: 50%;\r\n animation: pulse 2s ease-in-out infinite;\r\n }\r\n}\r\n\r\n.face-guide-text {\r\n margin-top: 20px;\r\n text-align: center;\r\n \r\n p {\r\n color: white;\r\n font-size: 16px;\r\n font-weight: 500;\r\n margin: 0;\r\n text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);\r\n }\r\n}\r\n\r\n.camera-controls {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n width: 100%;\r\n max-width: 300px;\r\n padding: 0 20px;\r\n}\r\n\r\n.control-button {\r\n --color: white;\r\n --background: rgba(0, 0, 0, 0.5);\r\n --border-radius: 50%;\r\n width: 50px;\r\n height: 50px;\r\n \r\n ion-icon {\r\n font-size: 24px;\r\n }\r\n}\r\n\r\n.capture-button {\r\n position: absolute;\r\n bottom: 20%;\r\n width: 70px;\r\n height: 70px;\r\n border-radius: 50%;\r\n background-color: purple;\r\n color: white;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\r\n}\r\n\r\n.capture-circle {\r\n width: 70px;\r\n height: 70px;\r\n border: 4px solid white;\r\n border-radius: 50%;\r\n background: rgba(255, 255, 255, 0.2);\r\n transition: all 0.2s ease;\r\n \r\n &:active {\r\n transform: scale(0.95);\r\n background: rgba(255, 255, 255, 0.4);\r\n }\r\n}\r\n\r\n.progress-ring {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n z-index: 10;\r\n}\r\n\r\n.progress-ring__svg {\r\n width: 300px;\r\n height: 300px;\r\n}\r\n\r\n.progress-ring__circle {\r\n fill: transparent;\r\n stroke: purple;\r\n stroke-width: 10;\r\n stroke-dasharray: 942; /* Circunferencia del c\u00EDrculo */\r\n stroke-dashoffset: 942; /* Oculto al inicio */\r\n transition: stroke-dashoffset 3s linear; /* Duraci\u00F3n de la animaci\u00F3n */\r\n}\r\n\r\n.loading-overlay {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background: rgba(0, 0, 0, 0.8);\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n z-index: 20;\r\n \r\n ion-spinner {\r\n --color: #007bff;\r\n width: 48px;\r\n height: 48px;\r\n }\r\n \r\n p {\r\n color: white;\r\n margin-top: 16px;\r\n font-size: 16px;\r\n font-weight: 500;\r\n }\r\n}\r\n\r\n@keyframes pulse {\r\n 0% {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n 50% {\r\n transform: scale(1.05);\r\n opacity: 0.7;\r\n }\r\n 100% {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n}\r\n\r\n// Responsive adjustments\r\n@media (max-width: 375px) {\r\n .face-circle {\r\n width: 240px;\r\n height: 300px;\r\n }\r\n \r\n .camera-controls {\r\n max-width: 280px;\r\n }\r\n}\r\n\r\n@media (min-width: 768px) {\r\n .face-circle {\r\n width: 320px;\r\n height: 400px;\r\n }\r\n}"] }]
160
181
  }], () => [{ type: i1.Platform }, { type: i1.ModalController }, { type: i2.DomSanitizer }, { type: i3.ModalDpiServices }], { videoElement: [{
161
182
  type: ViewChild,
162
183
  args: ['videoElement']
@@ -1 +1 @@
1
- {"version":3,"file":"direct-photo-selfie.component.js","sourceRoot":"","sources":["../../../../../../../src/app/pages/id-vision/components/direct-photo-selfie/direct-photo-selfie.component.ts","../../../../../../../src/app/pages/id-vision/components/direct-photo-selfie/direct-photo-selfie.component.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"direct-photo-selfie.component.js","sourceRoot":"","sources":["../../../../../../../src/app/pages/id-vision/components/direct-photo-selfie/direct-photo-selfie.component.ts","../../../../../../../src/app/pages/id-vision/components/direct-photo-selfie/direct-photo-selfie.component.html"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { AfterViewInit, ElementRef, EventEmitter, OnDestroy } from '@angular/core';
1
+ import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy } from '@angular/core';
2
2
  import { ModalController, Platform } from '@ionic/angular';
3
3
  import { DomSanitizer, SafeUrl } from '@angular/platform-browser';
4
4
  import { ModalDpiServices } from '../../services/modal-services/modal-dpi-services';
@@ -8,6 +8,7 @@ export declare class PhotoSelfieCameraComponent implements AfterViewInit, OnDest
8
8
  private modalController;
9
9
  private sanitizer;
10
10
  private modalDpiServices;
11
+ private cdRef;
11
12
  videoElement: ElementRef<HTMLVideoElement>;
12
13
  text1: string;
13
14
  text2: string;
@@ -18,13 +19,16 @@ export declare class PhotoSelfieCameraComponent implements AfterViewInit, OnDest
18
19
  private isAndroid;
19
20
  private isIOS;
20
21
  isLoading: boolean;
22
+ showCountdown: boolean;
23
+ countdown: number;
21
24
  file?: File;
22
25
  capturedImageUrl: string | null;
23
- constructor(platform: Platform, modalController: ModalController, sanitizer: DomSanitizer, modalDpiServices: ModalDpiServices);
26
+ constructor(platform: Platform, modalController: ModalController, sanitizer: DomSanitizer, modalDpiServices: ModalDpiServices, cdRef: ChangeDetectorRef);
24
27
  ngOnDestroy(): Promise<void>;
25
28
  ngAfterViewInit(): Promise<void>;
26
29
  requestPermissions(): Promise<void>;
27
30
  initCamera(): Promise<void>;
31
+ startCountdown(): Promise<void>;
28
32
  capturePhoto(): Promise<void>;
29
33
  blobToFile(blob: Blob, fileName: string): File;
30
34
  stopCamera(): void;
@@ -8,23 +8,36 @@ import * as i3 from "../../services/modal-services/modal-dpi-services";
8
8
  import * as i4 from "@angular/common";
9
9
  const _c0 = ["videoElement"];
10
10
  function PhotoSelfieCameraComponent_div_1_Template(rf, ctx) { if (rf & 1) {
11
- i0.ɵɵelementStart(0, "div", 14);
12
- i0.ɵɵelement(1, "ion-spinner", 15);
11
+ i0.ɵɵelementStart(0, "div", 16);
12
+ i0.ɵɵelement(1, "ion-spinner", 17);
13
13
  i0.ɵɵelementEnd();
14
14
  } }
15
+ function PhotoSelfieCameraComponent_div_13_Template(rf, ctx) { if (rf & 1) {
16
+ i0.ɵɵelementStart(0, "div", 18)(1, "div", 19)(2, "span", 20);
17
+ i0.ɵɵtext(3);
18
+ i0.ɵɵelementEnd()()();
19
+ } if (rf & 2) {
20
+ const ctx_r1 = i0.ɵɵnextContext();
21
+ i0.ɵɵadvance(3);
22
+ i0.ɵɵtextInterpolate(ctx_r1.countdown);
23
+ } }
15
24
  export class PhotoSelfieCameraComponent {
16
25
  // overlaySrc: String = '';
17
- constructor(platform, modalController, sanitizer, modalDpiServices) {
26
+ constructor(platform, modalController, sanitizer, modalDpiServices, cdRef // Agregado para detectar cambios
27
+ ) {
18
28
  this.platform = platform;
19
29
  this.modalController = modalController;
20
30
  this.sanitizer = sanitizer;
21
31
  this.modalDpiServices = modalDpiServices;
32
+ this.cdRef = cdRef;
22
33
  this.text1 = '';
23
34
  this.text2 = '';
24
35
  this.closeRequested = new EventEmitter();
25
36
  this.capturedImage = null;
26
37
  this.stream = null;
27
38
  this.isLoading = true;
39
+ this.showCountdown = false;
40
+ this.countdown = 3;
28
41
  this.capturedImageUrl = null;
29
42
  this.isAndroid = this.platform.is('android');
30
43
  this.isIOS = this.platform.is('ios');
@@ -83,6 +96,17 @@ export class PhotoSelfieCameraComponent {
83
96
  this.isLoading = false;
84
97
  }
85
98
  }
99
+ async startCountdown() {
100
+ this.showCountdown = true;
101
+ for (let i = this.countdown; i > 0; i--) {
102
+ this.countdown = i;
103
+ this.cdRef.detectChanges();
104
+ await new Promise(resolve => setTimeout(resolve, 1000));
105
+ }
106
+ this.showCountdown = false;
107
+ this.cdRef.detectChanges();
108
+ this.capturePhoto();
109
+ }
86
110
  async capturePhoto() {
87
111
  if (!this.stream) {
88
112
  console.error('La cámara no está inicializada.');
@@ -140,13 +164,13 @@ export class PhotoSelfieCameraComponent {
140
164
  });
141
165
  }
142
166
  }
143
- 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)); }; }
167
+ 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)); }; }
144
168
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PhotoSelfieCameraComponent, selectors: [["app-photo-selfie-camera"]], viewQuery: function PhotoSelfieCameraComponent_Query(rf, ctx) { if (rf & 1) {
145
169
  i0.ɵɵviewQuery(_c0, 5);
146
170
  } if (rf & 2) {
147
171
  let _t;
148
172
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.videoElement = _t.first);
149
- } }, inputs: { text1: "text1", text2: "text2", onTakePicture: "onTakePicture" }, outputs: { closeRequested: "closeRequested" }, decls: 16, vars: 1, consts: [["videoElement", ""], ["color", "light", 1, "custom-content"], ["class", "loading-overlay", 4, "ngIf"], [1, "ion-no-border"], ["color", "light"], ["slot", "end"], [3, "click"], ["name", "close"], [1, "camera-container"], [1, "video-wrapper"], ["muted", "", "autoplay", "", "playsinline", "", 2, "transform", "scaleX(-1)"], [1, "text-center"], [1, "fixed-footer"], ["expand", "block", 3, "click"], [1, "loading-overlay"], ["name", "crescent"]], template: function PhotoSelfieCameraComponent_Template(rf, ctx) { if (rf & 1) {
173
+ } }, inputs: { text1: "text1", text2: "text2", onTakePicture: "onTakePicture" }, outputs: { closeRequested: "closeRequested" }, decls: 17, vars: 2, consts: [["videoElement", ""], ["color", "light", 1, "custom-content"], ["class", "loading-overlay", 4, "ngIf"], [1, "ion-no-border"], ["color", "light"], ["slot", "end"], [3, "click"], ["name", "close"], [1, "camera-container"], [1, "video-wrapper"], ["muted", "", "autoplay", "", "playsinline", "", 2, "transform", "scaleX(-1)"], [1, "text-center"], ["class", "countdown-overlay", 4, "ngIf"], [1, "fixed-footer"], [1, "capture-button", 3, "click"], ["name", "camera", "slot", "icon-only"], [1, "loading-overlay"], ["name", "crescent"], [1, "countdown-overlay"], [1, "countdown-circle"], [1, "countdown-number"]], template: function PhotoSelfieCameraComponent_Template(rf, ctx) { if (rf & 1) {
150
174
  const _r1 = i0.ɵɵgetCurrentView();
151
175
  i0.ɵɵelementStart(0, "ion-content", 1);
152
176
  i0.ɵɵtemplate(1, PhotoSelfieCameraComponent_div_1_Template, 2, 0, "div", 2);
@@ -160,19 +184,22 @@ export class PhotoSelfieCameraComponent {
160
184
  i0.ɵɵelementStart(11, "p", 11);
161
185
  i0.ɵɵtext(12, "Permanece quieto, con tu rostro en el centro del circulo");
162
186
  i0.ɵɵelementEnd();
163
- i0.ɵɵelementStart(13, "div", 12)(14, "ion-button", 13);
164
- i0.ɵɵlistener("click", function PhotoSelfieCameraComponent_Template_ion_button_click_14_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.capturePhoto()); });
165
- i0.ɵɵtext(15, "Tomar foto");
187
+ i0.ɵɵtemplate(13, PhotoSelfieCameraComponent_div_13_Template, 4, 1, "div", 12);
188
+ i0.ɵɵelementStart(14, "div", 13)(15, "ion-button", 14);
189
+ i0.ɵɵlistener("click", function PhotoSelfieCameraComponent_Template_ion_button_click_15_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.capturePhoto()); });
190
+ i0.ɵɵelement(16, "ion-icon", 15);
166
191
  i0.ɵɵelementEnd()()()();
167
192
  } if (rf & 2) {
168
193
  i0.ɵɵadvance();
169
194
  i0.ɵɵproperty("ngIf", ctx.isLoading);
170
- } }, dependencies: [i4.NgIf, i1.IonButton, i1.IonButtons, i1.IonContent, i1.IonHeader, i1.IonIcon, i1.IonSpinner, 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); \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; \n\r\n stroke-dashoffset: 880; \n\r\n transition: stroke-dashoffset 12s linear; \n\r\n }\r\n \r\n .progress-active[_ngcontent-%COMP%] .progress-ring__circle[_ngcontent-%COMP%] {\r\n animation: _ngcontent-%COMP%_progress-animation 5s linear forwards;\r\n }\r\n \r\n @keyframes _ngcontent-%COMP%_progress-animation {\r\n from {\r\n stroke-dashoffset: 880;\r\n }\r\n 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 \r\n position: fixed;\r\n bottom: 0;\r\n left: 0;\r\n width: 100%;\r\n padding: 10px;\r\n background-color: #fff; // Color de fondo, opcional\r\n // box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);\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 \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 \r\n \r\n ion-header[_ngcontent-%COMP%] {\r\n --background: #ffffff; \n\r\n color: #000000; \n\r\n }\r\n \r\n ion-toolbar[_ngcontent-%COMP%] {\r\n --ion-background-color: #ffffff !important;\r\n --background: #ffffff !important;\r\n color: #000000;\r\n }\r\n \r\n \r\n ion-header[_ngcontent-%COMP%] {\r\n --background: #ffffff; \n\r\n }\r\n \r\n ion-toolbar[_ngcontent-%COMP%] {\r\n --ion-background-color: #ffffff !important;\r\n --background: #ffffff !important;\r\n color: #000000;\r\n display: flex;\r\n justify-content: space-between; \n\r\n align-items: center;\r\n }\r\n \r\n .centered-title[_ngcontent-%COMP%] {\r\n flex: 1;\r\n text-align: center; \n\r\n font-weight: bold;\r\n color: #000000;\r\n margin: 0; \n\r\n }\r\n \r\n ion-buttons[_ngcontent-%COMP%] {\r\n justify-content: flex-end; \n\r\n }\r\n .countdown-overlay[_ngcontent-%COMP%] {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.6); \n\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin: 0;\r\n padding: 0;\r\n z-index: 1000; \n\r\n animation: _ngcontent-%COMP%_fadeIn 0.5s ease-out, _ngcontent-%COMP%_fadeOut 0.5s ease-out 2.5s; \n\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n \r\n }\r\n \r\n ion-content.custom-content[_ngcontent-%COMP%] {\r\n --padding-top: 0;\r\n --padding-bottom: 0;\r\n margin: 0;\r\n padding: 0;\r\n }\r\n \r\n .countdown[_ngcontent-%COMP%] {\r\n font-size: 100px;\r\n font-weight: bold;\r\n color: white;\r\n animation: _ngcontent-%COMP%_scaleUp 0.5s ease-out, _ngcontent-%COMP%_scaleDown 0.5s ease-out 2.5s; \n\r\n }\r\n \r\n \n\r\n @keyframes _ngcontent-%COMP%_fadeIn {\r\n from {\r\n opacity: 0;\r\n }\r\n to {\r\n opacity: 1;\r\n }\r\n }\r\n \r\n @keyframes _ngcontent-%COMP%_fadeOut {\r\n from {\r\n opacity: 1;\r\n }\r\n to {\r\n opacity: 0;\r\n }\r\n }\r\n \r\n \n\r\n @keyframes _ngcontent-%COMP%_scaleUp {\r\n from {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n to {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n }\r\n \r\n @keyframes _ngcontent-%COMP%_scaleDown {\r\n from {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n to {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n }\r\n \r\n .red[_ngcontent-%COMP%] {\r\n padding: 10px;\r\n color: red;\r\n }\r\n \r\n .text-center[_ngcontent-%COMP%]{\r\n text-align: center;\r\n padding-left: 20%;\r\n padding-right: 20%;\r\n color: #333;\r\n }\r\n \r\n .loading-overlay[_ngcontent-%COMP%] {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.8); \n\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n z-index: 1000; \n\r\n margin: 0;\r\n padding: 0;\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n }\r\n \r\n ion-spinner[_ngcontent-%COMP%] {\r\n color: white;\r\n width: 50px;\r\n height: 50px;\r\n }"] }); }
195
+ i0.ɵɵadvance(12);
196
+ i0.ɵɵproperty("ngIf", ctx.showCountdown);
197
+ } }, dependencies: [i4.NgIf, i1.IonButton, i1.IonButtons, i1.IonContent, i1.IonHeader, i1.IonIcon, i1.IonSpinner, 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); \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; \n\r\n stroke-dashoffset: 880; \n\r\n transition: stroke-dashoffset 12s linear; \n\r\n }\r\n \r\n .progress-active[_ngcontent-%COMP%] .progress-ring__circle[_ngcontent-%COMP%] {\r\n animation: _ngcontent-%COMP%_progress-animation 5s linear forwards;\r\n }\r\n \r\n @keyframes _ngcontent-%COMP%_progress-animation {\r\n from {\r\n stroke-dashoffset: 880;\r\n }\r\n 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 \r\n position: fixed;\r\n bottom: 0;\r\n left: 0;\r\n width: 100%;\r\n padding: 10px;\r\n background-color: #fff; // Color de fondo, opcional\r\n // box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);\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 \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 \r\n \r\n ion-header[_ngcontent-%COMP%] {\r\n --background: #ffffff; \n\r\n color: #000000; \n\r\n }\r\n \r\n ion-toolbar[_ngcontent-%COMP%] {\r\n --ion-background-color: #ffffff !important;\r\n --background: #ffffff !important;\r\n color: #000000;\r\n }\r\n \r\n \r\n ion-header[_ngcontent-%COMP%] {\r\n --background: #ffffff; \n\r\n }\r\n \r\n ion-toolbar[_ngcontent-%COMP%] {\r\n --ion-background-color: #ffffff !important;\r\n --background: #ffffff !important;\r\n color: #000000;\r\n display: flex;\r\n justify-content: space-between; \n\r\n align-items: center;\r\n }\r\n \r\n .centered-title[_ngcontent-%COMP%] {\r\n flex: 1;\r\n text-align: center; \n\r\n font-weight: bold;\r\n color: #000000;\r\n margin: 0; \n\r\n }\r\n \r\n ion-buttons[_ngcontent-%COMP%] {\r\n justify-content: flex-end; \n\r\n }\r\n .countdown-overlay[_ngcontent-%COMP%] {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.6); \n\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin: 0;\r\n padding: 0;\r\n z-index: 1000; \n\r\n animation: _ngcontent-%COMP%_fadeIn 0.5s ease-out, _ngcontent-%COMP%_fadeOut 0.5s ease-out 2.5s; \n\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n \r\n }\r\n \r\n ion-content.custom-content[_ngcontent-%COMP%] {\r\n --padding-top: 0;\r\n --padding-bottom: 0;\r\n margin: 0;\r\n padding: 0;\r\n }\r\n \r\n .countdown[_ngcontent-%COMP%] {\r\n font-size: 100px;\r\n font-weight: bold;\r\n color: white;\r\n animation: _ngcontent-%COMP%_scaleUp 0.5s ease-out, _ngcontent-%COMP%_scaleDown 0.5s ease-out 2.5s; \n\r\n }\r\n \r\n \n\r\n @keyframes _ngcontent-%COMP%_fadeIn {\r\n from {\r\n opacity: 0;\r\n }\r\n to {\r\n opacity: 1;\r\n }\r\n }\r\n \r\n @keyframes _ngcontent-%COMP%_fadeOut {\r\n from {\r\n opacity: 1;\r\n }\r\n to {\r\n opacity: 0;\r\n }\r\n }\r\n \r\n \n\r\n @keyframes _ngcontent-%COMP%_scaleUp {\r\n from {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n to {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n }\r\n \r\n @keyframes _ngcontent-%COMP%_scaleDown {\r\n from {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n to {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n }\r\n \r\n .red[_ngcontent-%COMP%] {\r\n padding: 10px;\r\n color: red;\r\n }\r\n \r\n .text-center[_ngcontent-%COMP%]{\r\n text-align: center;\r\n padding-left: 20%;\r\n padding-right: 20%;\r\n color: #333;\r\n }\r\n \r\n .loading-overlay[_ngcontent-%COMP%] {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.8); \n\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n z-index: 1000; \n\r\n margin: 0;\r\n padding: 0;\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n }\r\n \r\n ion-spinner[_ngcontent-%COMP%] {\r\n color: white;\r\n width: 50px;\r\n height: 50px;\r\n }\r\n \r\n //[_ngcontent-%COMP%] Estilos[_ngcontent-%COMP%] para[_ngcontent-%COMP%] el[_ngcontent-%COMP%] c\u00EDrculo[_ngcontent-%COMP%] morado[_ngcontent-%COMP%] con[_ngcontent-%COMP%] cuenta[_ngcontent-%COMP%] regresiva\r\n[_ngcontent-%COMP%] .countdown-overlay[_ngcontent-%COMP%] {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n z-index: 10;\r\n }\r\n \r\n .countdown-circle[_ngcontent-%COMP%] {\r\n width: 200px;\r\n height: 200px;\r\n border: 10px solid purple;\r\n border-radius: 50%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n background-color: rgba(255, 255, 255, 0.8);\r\n }\r\n \r\n .countdown-number[_ngcontent-%COMP%] {\r\n font-size: 3rem;\r\n font-weight: bold;\r\n color: purple;\r\n }\r\n \r\n //[_ngcontent-%COMP%] Estilos[_ngcontent-%COMP%] para[_ngcontent-%COMP%] el[_ngcontent-%COMP%] bot\u00F3n[_ngcontent-%COMP%] redondo[_ngcontent-%COMP%] de[_ngcontent-%COMP%] tomar[_ngcontent-%COMP%] foto\r\n[_ngcontent-%COMP%] .capture-button[_ngcontent-%COMP%] {\r\n 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 }"] }); }
171
198
  }
172
199
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PhotoSelfieCameraComponent, [{
173
200
  type: Component,
174
- args: [{ selector: 'app-photo-selfie-camera', encapsulation: ViewEncapsulation.Emulated, template: "<ion-content color=\"light\" class=\"custom-content\">\r\n <div *ngIf=\"isLoading\" class=\"loading-overlay\">\r\n <ion-spinner name=\"crescent\"></ion-spinner>\r\n </div>\r\n \r\n <ion-header class=\"ion-no-border\">\r\n <ion-toolbar color=\"light\">\r\n <!-- <ion-title class=\"centered-title\">Video Selfie</ion-title> -->\r\n <ion-buttons slot=\"end\">\r\n <ion-button (click)=\"closeOverlay()\">\r\n <ion-icon name=\"close\"></ion-icon>\r\n </ion-button>\r\n </ion-buttons>\r\n </ion-toolbar>\r\n </ion-header>\r\n \r\n <!-- Contenedor de la c\u00E1mara y progresi\u00F3n -->\r\n <div class=\"camera-container\">\r\n <div class=\"video-wrapper\">\r\n <video #videoElement muted autoplay playsinline style=\"transform: scaleX(-1)\"></video>\r\n </div>\r\n\r\n <p class=\"text-center\">Permanece quieto, con tu rostro en el centro del circulo</p>\r\n <!-- Botones de grabaci\u00F3n -->\r\n <div class=\"fixed-footer\">\r\n <ion-button expand=\"block\" (click)=\"capturePhoto()\">Tomar foto</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); /* 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; /* La circunferencia del c\u00EDrculo 880*/\r\n stroke-dashoffset: 880; /* Oculto por completo al inicio */\r\n transition: stroke-dashoffset 12s linear; /* Esto controlar\u00E1 el llenado progresivo */\r\n }\r\n \r\n .progress-active .progress-ring__circle {\r\n animation: progress-animation 5s linear forwards;\r\n }\r\n \r\n @keyframes progress-animation {\r\n from {\r\n stroke-dashoffset: 880;\r\n }\r\n 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 \r\n position: fixed;\r\n bottom: 0;\r\n left: 0;\r\n width: 100%;\r\n padding: 10px;\r\n background-color: #fff; // Color de fondo, opcional\r\n // box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);\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 \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 \r\n \r\n ion-header {\r\n --background: #ffffff; /* Fondo blanco */\r\n color: #000000; /* Texto negro */\r\n }\r\n \r\n ion-toolbar {\r\n --ion-background-color: #ffffff !important;\r\n --background: #ffffff !important;\r\n color: #000000;\r\n }\r\n \r\n \r\n ion-header {\r\n --background: #ffffff; /* Fondo blanco */\r\n }\r\n \r\n ion-toolbar {\r\n --ion-background-color: #ffffff !important;\r\n --background: #ffffff !important;\r\n color: #000000;\r\n display: flex;\r\n justify-content: space-between; /* Espacio entre t\u00EDtulo y bot\u00F3n */\r\n align-items: center;\r\n }\r\n \r\n .centered-title {\r\n flex: 1;\r\n text-align: center; /* Centrar el t\u00EDtulo */\r\n font-weight: bold;\r\n color: #000000;\r\n margin: 0; /* Quita cualquier margen del t\u00EDtulo */\r\n }\r\n \r\n ion-buttons {\r\n justify-content: flex-end; /* Alinea el bot\u00F3n a la derecha */\r\n }\r\n .countdown-overlay {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.6); /* Fondo semi-transparente */\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin: 0;\r\n padding: 0;\r\n z-index: 1000; /* Asegurarse de que est\u00E9 encima de otros elementos */\r\n animation: fadeIn 0.5s ease-out, fadeOut 0.5s ease-out 2.5s; /* Animaciones de entrada y salida */\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n \r\n }\r\n \r\n ion-content.custom-content {\r\n --padding-top: 0;\r\n --padding-bottom: 0;\r\n margin: 0;\r\n padding: 0;\r\n }\r\n \r\n .countdown {\r\n font-size: 100px;\r\n font-weight: bold;\r\n color: white;\r\n animation: scaleUp 0.5s ease-out, scaleDown 0.5s ease-out 2.5s; /* Escalar en entrada y salida */\r\n }\r\n \r\n /* Animaci\u00F3n para desvanecer la superposici\u00F3n */\r\n @keyframes fadeIn {\r\n from {\r\n opacity: 0;\r\n }\r\n to {\r\n opacity: 1;\r\n }\r\n }\r\n \r\n @keyframes fadeOut {\r\n from {\r\n opacity: 1;\r\n }\r\n to {\r\n opacity: 0;\r\n }\r\n }\r\n \r\n /* Animaci\u00F3n para escalar el n\u00FAmero */\r\n @keyframes scaleUp {\r\n from {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n to {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n }\r\n \r\n @keyframes scaleDown {\r\n from {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n to {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n }\r\n \r\n .red {\r\n padding: 10px;\r\n color: red;\r\n }\r\n \r\n .text-center{\r\n text-align: center;\r\n padding-left: 20%;\r\n padding-right: 20%;\r\n color: #333;\r\n }\r\n \r\n .loading-overlay {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.8); /* Fondo oscuro semi-transparente */\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n z-index: 1000; /* Aseg\u00FArate de que est\u00E9 por encima del contenido */\r\n margin: 0;\r\n padding: 0;\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n }\r\n \r\n ion-spinner {\r\n color: white;\r\n width: 50px;\r\n height: 50px;\r\n }"] }]
175
- }], () => [{ type: i1.Platform }, { type: i1.ModalController }, { type: i2.DomSanitizer }, { type: i3.ModalDpiServices }], { videoElement: [{
201
+ args: [{ selector: 'app-photo-selfie-camera', encapsulation: ViewEncapsulation.Emulated, template: "<ion-content color=\"light\" class=\"custom-content\">\r\n <div *ngIf=\"isLoading\" class=\"loading-overlay\">\r\n <ion-spinner name=\"crescent\"></ion-spinner>\r\n </div>\r\n \r\n <ion-header class=\"ion-no-border\">\r\n <ion-toolbar color=\"light\">\r\n <!-- <ion-title class=\"centered-title\">Video Selfie</ion-title> -->\r\n <ion-buttons slot=\"end\">\r\n <ion-button (click)=\"closeOverlay()\">\r\n <ion-icon name=\"close\"></ion-icon>\r\n </ion-button>\r\n </ion-buttons>\r\n </ion-toolbar>\r\n </ion-header>\r\n \r\n <!-- Contenedor de la c\u00E1mara y progresi\u00F3n -->\r\n <div class=\"camera-container\">\r\n <div class=\"video-wrapper\">\r\n <video #videoElement muted autoplay playsinline style=\"transform: scaleX(-1)\"></video>\r\n </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\r\n <!-- Bot\u00F3n redondo para tomar foto -->\r\n <div class=\"fixed-footer\">\r\n <ion-button class=\"capture-button\" (click)=\"capturePhoto()\">\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: [".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); /* 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; /* La circunferencia del c\u00EDrculo 880*/\r\n stroke-dashoffset: 880; /* Oculto por completo al inicio */\r\n transition: stroke-dashoffset 12s linear; /* Esto controlar\u00E1 el llenado progresivo */\r\n }\r\n \r\n .progress-active .progress-ring__circle {\r\n animation: progress-animation 5s linear forwards;\r\n }\r\n \r\n @keyframes progress-animation {\r\n from {\r\n stroke-dashoffset: 880;\r\n }\r\n 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 \r\n position: fixed;\r\n bottom: 0;\r\n left: 0;\r\n width: 100%;\r\n padding: 10px;\r\n background-color: #fff; // Color de fondo, opcional\r\n // box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);\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 \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 \r\n \r\n ion-header {\r\n --background: #ffffff; /* Fondo blanco */\r\n color: #000000; /* Texto negro */\r\n }\r\n \r\n ion-toolbar {\r\n --ion-background-color: #ffffff !important;\r\n --background: #ffffff !important;\r\n color: #000000;\r\n }\r\n \r\n \r\n ion-header {\r\n --background: #ffffff; /* Fondo blanco */\r\n }\r\n \r\n ion-toolbar {\r\n --ion-background-color: #ffffff !important;\r\n --background: #ffffff !important;\r\n color: #000000;\r\n display: flex;\r\n justify-content: space-between; /* Espacio entre t\u00EDtulo y bot\u00F3n */\r\n align-items: center;\r\n }\r\n \r\n .centered-title {\r\n flex: 1;\r\n text-align: center; /* Centrar el t\u00EDtulo */\r\n font-weight: bold;\r\n color: #000000;\r\n margin: 0; /* Quita cualquier margen del t\u00EDtulo */\r\n }\r\n \r\n ion-buttons {\r\n justify-content: flex-end; /* Alinea el bot\u00F3n a la derecha */\r\n }\r\n .countdown-overlay {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.6); /* Fondo semi-transparente */\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin: 0;\r\n padding: 0;\r\n z-index: 1000; /* Asegurarse de que est\u00E9 encima de otros elementos */\r\n animation: fadeIn 0.5s ease-out, fadeOut 0.5s ease-out 2.5s; /* Animaciones de entrada y salida */\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n \r\n }\r\n \r\n ion-content.custom-content {\r\n --padding-top: 0;\r\n --padding-bottom: 0;\r\n margin: 0;\r\n padding: 0;\r\n }\r\n \r\n .countdown {\r\n font-size: 100px;\r\n font-weight: bold;\r\n color: white;\r\n animation: scaleUp 0.5s ease-out, scaleDown 0.5s ease-out 2.5s; /* Escalar en entrada y salida */\r\n }\r\n \r\n /* Animaci\u00F3n para desvanecer la superposici\u00F3n */\r\n @keyframes fadeIn {\r\n from {\r\n opacity: 0;\r\n }\r\n to {\r\n opacity: 1;\r\n }\r\n }\r\n \r\n @keyframes fadeOut {\r\n from {\r\n opacity: 1;\r\n }\r\n to {\r\n opacity: 0;\r\n }\r\n }\r\n \r\n /* Animaci\u00F3n para escalar el n\u00FAmero */\r\n @keyframes scaleUp {\r\n from {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n to {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n }\r\n \r\n @keyframes scaleDown {\r\n from {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n to {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n }\r\n \r\n .red {\r\n padding: 10px;\r\n color: red;\r\n }\r\n \r\n .text-center{\r\n text-align: center;\r\n padding-left: 20%;\r\n padding-right: 20%;\r\n color: #333;\r\n }\r\n \r\n .loading-overlay {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.8); /* Fondo oscuro semi-transparente */\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n z-index: 1000; /* Aseg\u00FArate de que est\u00E9 por encima del contenido */\r\n margin: 0;\r\n padding: 0;\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n }\r\n \r\n ion-spinner {\r\n color: white;\r\n width: 50px;\r\n height: 50px;\r\n }\r\n \r\n // Estilos para el c\u00EDrculo morado con cuenta regresiva\r\n .countdown-overlay {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n z-index: 10;\r\n }\r\n \r\n .countdown-circle {\r\n width: 200px;\r\n height: 200px;\r\n border: 10px solid purple;\r\n border-radius: 50%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n background-color: rgba(255, 255, 255, 0.8);\r\n }\r\n \r\n .countdown-number {\r\n font-size: 3rem;\r\n font-weight: bold;\r\n color: purple;\r\n }\r\n \r\n // Estilos para el bot\u00F3n redondo de tomar foto\r\n .capture-button {\r\n 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 }"] }]
202
+ }], () => [{ type: i1.Platform }, { type: i1.ModalController }, { type: i2.DomSanitizer }, { type: i3.ModalDpiServices }, { type: i0.ChangeDetectorRef }], { videoElement: [{
176
203
  type: ViewChild,
177
204
  args: ['videoElement']
178
205
  }], text1: [{
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "metag-sdk-ionic",
3
- "version": "1.2.7-beta-0.21",
3
+ "version": "1.2.7-beta-0.23",
4
4
  "author": "FGE",
5
5
  "description": "SDK de MetaG para validación de documentos y prueba de vida con Angular e Ionic.",
6
6
  "homepage": "https://ionicframework.com/",