metag-sdk-ionic 1.2.7-native-0.13 → 1.2.7-native-0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (16) hide show
  1. package/dist/src/app/pages/id-vision/components/camara-video-selfie/camara-video-selfie.component.d.ts +1 -1
  2. package/dist/src/app/pages/id-vision/components/camara-video-selfie/camara-video-selfie.component.js +87 -17
  3. package/dist/src/app/pages/id-vision/components/camara-video-selfie/camara-video-selfie.component.js.map +1 -1
  4. package/dist/src/app/pages/id-vision/components/camera-with-overlay/camera-with-overlay.component.d.ts +0 -9
  5. package/dist/src/app/pages/id-vision/components/camera-with-overlay/camera-with-overlay.component.js +16 -24
  6. package/dist/src/app/pages/id-vision/components/camera-with-overlay/camera-with-overlay.component.js.map +1 -1
  7. package/dist/src/app/pages/id-vision/components/native-video-selfie/index.d.ts +1 -0
  8. package/dist/src/app/pages/id-vision/components/native-video-selfie/index.js +2 -0
  9. package/dist/src/app/pages/id-vision/components/native-video-selfie/index.js.map +1 -0
  10. package/dist/src/app/pages/id-vision/components/native-video-selfie/native-video-selfie.component.d.ts +48 -0
  11. package/dist/src/app/pages/id-vision/components/native-video-selfie/native-video-selfie.component.js +429 -0
  12. package/dist/src/app/pages/id-vision/components/native-video-selfie/native-video-selfie.component.js.map +1 -0
  13. package/dist/src/app/pages/id-vision/components/native-video-selfie/native-video-selfie.component.spec.d.ts +1 -0
  14. package/dist/src/app/pages/id-vision/components/native-video-selfie/native-video-selfie.component.spec.js +19 -0
  15. package/dist/src/app/pages/id-vision/components/native-video-selfie/native-video-selfie.component.spec.js.map +1 -0
  16. package/package.json +1 -1
@@ -38,7 +38,7 @@ export declare class CamaraVideoSelfieComponent implements AfterViewInit, OnDest
38
38
  constructor(platform: Platform, modalController: ModalController, sanitizer: DomSanitizer, renderer: Renderer2, alertController: AlertController, changeDetector: ChangeDetectorRef, modalVideoSelfieServices: ModalVideoSelfieServices, modalDpiServices: ModalDpiServices);
39
39
  ngAfterViewInit(): Promise<void>;
40
40
  ngOnDestroy(): Promise<void>;
41
- requestPermissions(): Promise<void>;
41
+ requestPermissions(): Promise<boolean>;
42
42
  initCamera(): Promise<void>;
43
43
  waitForCameraReady(): Promise<void>;
44
44
  private prepareRecorder;
@@ -74,10 +74,17 @@ export class CamaraVideoSelfieComponent {
74
74
  catch (error) {
75
75
  console.warn('Brillo error:', error);
76
76
  }
77
- await this.requestPermissions();
77
+ const permissionsGranted = await this.requestPermissions();
78
+ if (!permissionsGranted) {
79
+ this.isLoading = false;
80
+ return; // No continuar si no hay permisos
81
+ }
78
82
  }
79
- await this.initCamera();
80
- await this.waitForCameraReady();
83
+ // Delay para asegurar que el DOM esté completamente listo
84
+ setTimeout(async () => {
85
+ await this.initCamera();
86
+ await this.waitForCameraReady();
87
+ }, 300); // Aumentar a 300ms para dar más tiempo
81
88
  this.modalDpiServices.closeModalAndChangeBrightness$.subscribe(async () => await this.closeOverlayVideo());
82
89
  }
83
90
  async ngOnDestroy() {
@@ -89,39 +96,102 @@ export class CamaraVideoSelfieComponent {
89
96
  async requestPermissions() {
90
97
  if (Capacitor.getPlatform() !== 'web') {
91
98
  if (this.isAndroid || this.isIOS) {
92
- const permissions = await Camera.requestPermissions();
93
- if (permissions.camera === 'denied') {
94
- console.error('Permiso de cámara denegado');
95
- return;
99
+ try {
100
+ console.log('🔐 Solicitando permisos de cámara...');
101
+ const permissions = await Camera.requestPermissions();
102
+ console.log('📋 Permisos obtenidos:', permissions);
103
+ if (permissions.camera === 'denied') {
104
+ console.error('❌ Permiso de cámara denegado');
105
+ const alert = await this.alertController.create({
106
+ header: 'Permiso denegado',
107
+ message: 'Se necesita acceso a la cámara y micrófono. Por favor, habilita los permisos en la configuración de tu dispositivo.',
108
+ buttons: ['Cerrar']
109
+ });
110
+ await alert.present();
111
+ return false;
112
+ }
113
+ console.log('✅ Permisos de cámara concedidos');
114
+ return true;
115
+ }
116
+ catch (error) {
117
+ console.error('❌ Error solicitando permisos:', error);
118
+ return false;
96
119
  }
97
120
  }
98
121
  }
122
+ return true;
99
123
  }
100
124
  async initCamera() {
101
125
  try {
126
+ console.log('🎥 Iniciando cámara para video selfie...');
127
+ if (!this.videoElement) {
128
+ console.error('❌ VideoElement no disponible');
129
+ this.isLoading = false;
130
+ return;
131
+ }
102
132
  const constraints = {
103
133
  audio: true,
104
134
  video: {
105
- facingMode: 'user',
106
- width: { ideal: 640 }, // Fuerza resolución estándar
107
- height: { ideal: 480 },
108
- aspectRatio: 4 / 3
135
+ facingMode: 'user', // Cámara frontal
136
+ width: { ideal: 1280 },
137
+ height: { ideal: 720 },
138
+ aspectRatio: { ideal: 16 / 9 }
109
139
  }
110
140
  };
141
+ console.log('📸 Solicitando getUserMedia con constraints:', constraints);
111
142
  this.stream = await navigator.mediaDevices.getUserMedia(constraints);
143
+ console.log('✅ Stream obtenido:', this.stream.getTracks().map(t => ({
144
+ kind: t.kind,
145
+ label: t.label,
146
+ enabled: t.enabled
147
+ })));
112
148
  const video = this.videoElement.nativeElement;
113
149
  video.srcObject = this.stream;
114
150
  video.setAttribute('playsinline', 'true');
151
+ video.setAttribute('webkit-playsinline', 'true');
115
152
  video.muted = true;
116
- // Esperar un poco antes de reproducir para evitar salto de lente
117
- await new Promise((res) => setTimeout(res, 300));
153
+ video.autoplay = true;
154
+ // Esperar a que el video cargue metadata
155
+ await new Promise((resolve) => {
156
+ video.onloadedmetadata = () => {
157
+ console.log('✅ Video metadata cargada, dimensiones:', video.videoWidth, 'x', video.videoHeight);
158
+ resolve();
159
+ };
160
+ // Timeout de seguridad
161
+ setTimeout(() => resolve(), 1000);
162
+ });
118
163
  await video.play();
164
+ console.log('✅ Video reproduciendo');
119
165
  this.isLoading = false;
166
+ // Forzar detección de cambios
167
+ this.changeDetector.detectChanges();
120
168
  await this.prepareRecorder();
121
169
  }
122
170
  catch (error) {
123
- console.error('initCamera error:', error);
171
+ console.error('initCamera error:', error);
124
172
  this.isLoading = false;
173
+ let errorMessage = 'Error al iniciar cámara';
174
+ if (error.name === 'NotAllowedError' || error.name === 'PermissionDeniedError') {
175
+ errorMessage = 'Permiso de cámara/micrófono denegado. Por favor, habilita los permisos en la configuración de tu dispositivo y recarga la aplicación.';
176
+ }
177
+ else if (error.name === 'NotFoundError' || error.name === 'DevicesNotFoundError') {
178
+ errorMessage = 'No se encontró cámara o micrófono en tu dispositivo.';
179
+ }
180
+ else if (error.name === 'NotReadableError' || error.name === 'TrackStartError') {
181
+ errorMessage = 'La cámara está siendo usada por otra aplicación. Ciérrala e intenta nuevamente.';
182
+ }
183
+ else {
184
+ errorMessage = `Error al iniciar cámara: ${error.message}`;
185
+ }
186
+ const alert = await this.alertController.create({
187
+ header: 'Error de Cámara',
188
+ message: errorMessage,
189
+ buttons: [{
190
+ text: 'Cerrar',
191
+ handler: () => this.closeOverlayVideo()
192
+ }]
193
+ });
194
+ await alert.present();
125
195
  }
126
196
  }
127
197
  async waitForCameraReady() {
@@ -261,7 +331,7 @@ export class CamaraVideoSelfieComponent {
261
331
  let _t;
262
332
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.videoElement = _t.first);
263
333
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.progressRing = _t.first);
264
- } }, inputs: { text1: "text1", text2: "text2", backFunction: "backFunction" }, outputs: { closeRequested: "closeRequested" }, decls: 21, vars: 8, consts: [["videoElement", ""], ["progressRing", ""], ["color", "light", 1, "custom-content"], ["class", "countdown-overlay", 4, "ngIf"], [1, "ion-no-border"], ["color", "light"], ["slot", "end"], [3, "click", "disabled"], ["name", "close", "color", "dark"], [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"], [3, "ngClass"], [1, "text-center"], [1, "fixed-footer"], ["class", "button-grabar", "expand", "block", 3, "click", 4, "ngIf"], ["expand", "block", 3, "disabled", "click", 4, "ngIf"], [1, "countdown-overlay"], [1, "countdown"], ["expand", "block", 1, "button-grabar", 3, "click"], ["expand", "block", 3, "click", "disabled"]], template: function CamaraVideoSelfieComponent_Template(rf, ctx) { if (rf & 1) {
334
+ } }, inputs: { text1: "text1", text2: "text2", backFunction: "backFunction" }, outputs: { closeRequested: "closeRequested" }, decls: 21, vars: 8, consts: [["videoElement", ""], ["progressRing", ""], ["color", "light", 1, "custom-content"], ["class", "countdown-overlay", 4, "ngIf"], [1, "ion-no-border"], ["color", "light"], ["slot", "end"], [3, "click", "disabled"], ["name", "close", "color", "dark"], [1, "camera-container"], [1, "video-wrapper"], ["muted", "", "autoplay", "", "playsinline", "", "webkit-playsinline", "", 2, "transform", "scaleX(-1)", "width", "100%", "height", "100%", "object-fit", "cover"], ["width", "300", "height", "300", 1, "progress-ring"], ["cx", "150", "cy", "150", "r", "150", 1, "progress-ring__circle"], [3, "ngClass"], [1, "text-center"], [1, "fixed-footer"], ["class", "button-grabar", "expand", "block", 3, "click", 4, "ngIf"], ["expand", "block", 3, "disabled", "click", 4, "ngIf"], [1, "countdown-overlay"], [1, "countdown"], ["expand", "block", 1, "button-grabar", 3, "click"], ["expand", "block", 3, "click", "disabled"]], template: function CamaraVideoSelfieComponent_Template(rf, ctx) { if (rf & 1) {
265
335
  const _r1 = i0.ɵɵgetCurrentView();
266
336
  i0.ɵɵelementStart(0, "ion-content", 2);
267
337
  i0.ɵɵtemplate(1, CamaraVideoSelfieComponent_div_1_Template, 3, 1, "div", 3);
@@ -298,11 +368,11 @@ export class CamaraVideoSelfieComponent {
298
368
  i0.ɵɵproperty("ngIf", !ctx.isRecording);
299
369
  i0.ɵɵadvance();
300
370
  i0.ɵɵproperty("ngIf", ctx.isRecording);
301
- } }, dependencies: [i5.NgClass, i5.NgIf, i1.IonButton, i1.IonButtons, i1.IonContent, i1.IonHeader, i1.IonIcon, i1.IonLabel, i1.IonToolbar], styles: [".camera-container[_ngcontent-%COMP%] {\r\n justify-content: center;\r\n align-items: center;\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n height: 70%;\r\n background-color: #fff;\r\n}\r\n\r\n.video-wrapper[_ngcontent-%COMP%] {\r\n position: relative;\r\n width: 300px;\r\n height: 300px;\r\n border-radius: 50%;\r\n overflow: hidden;\r\n}\r\n\r\nvideo[_ngcontent-%COMP%] {\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n border-radius: 50%;\r\n}\r\n\r\n.progress-ring[_ngcontent-%COMP%] {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n transform: rotate(-90deg);\r\n \n\r\n}\r\n\r\n.progress-ring__circle[_ngcontent-%COMP%] {\r\n fill: transparent;\r\n stroke: purple;\r\n stroke-width: 12;\r\n stroke-dasharray: 945;\r\n \n\r\n stroke-dashoffset: 880;\r\n \n\r\n transition: stroke-dashoffset 12s linear;\r\n \n\r\n}\r\n\r\n.progress-active[_ngcontent-%COMP%] .progress-ring__circle[_ngcontent-%COMP%] {\r\n animation: _ngcontent-%COMP%_progress-animation 5s linear forwards;\r\n}\r\n\r\n@keyframes _ngcontent-%COMP%_progress-animation {\r\n from {\r\n stroke-dashoffset: 880;\r\n }\r\n\r\n to {\r\n stroke-dashoffset: 0;\r\n }\r\n}\r\n\r\n.text-container[_ngcontent-%COMP%] {\r\n height: 40px;\r\n color: black;\r\n}\r\n\r\nion-header[_ngcontent-%COMP%] {\r\n --background: #fff;\r\n \n\r\n}\r\n\r\n.centered-title[_ngcontent-%COMP%] {\r\n text-align: center;\r\n width: 100%;\r\n \n\r\n font-weight: bold;\r\n}\r\n\r\n.fixed-footer[_ngcontent-%COMP%] {\r\n position: fixed;\r\n bottom: 40px;\r\n left: 0;\r\n width: 100%;\r\n padding: 10px;\r\n background-color: #fff; // Color de fondo, opcional\r\n // box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);\r\n\r\n\r\n ion-button {\r\n width: 90%;\r\n max-width: 300px;\r\n margin: 0 auto;\r\n color: #fff;\r\n font-weight: bold;\r\n border-radius: 20px;\r\n\r\n --background: #82298F;\r\n --background-hover: #82298F;\r\n --background-activated: #82298F;\r\n --background-focused: #82298F;\r\n\r\n --color: #fff;\r\n\r\n --border-radius: 20px;\r\n --border-color: #82298F;\r\n ;\r\n --border-style: solid;\r\n --border-width: 1px;\r\n\r\n --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.25);\r\n\r\n --ripple-color: #82298F;\r\n\r\n\r\n &:hover {\r\n background-color: #82298F;\r\n }\r\n\r\n &:active {\r\n background-color: #82298F;\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\nion-header[_ngcontent-%COMP%] {\r\n --background: #fff;\r\n \n\r\n color: #000000;\r\n \n\r\n}\r\n\r\nion-toolbar[_ngcontent-%COMP%] {\r\n --ion-background-color: #fff !important;\r\n --background: #ffffff !important;\r\n --color: #000000 !important;\r\n}\r\n\r\n.centered-title[_ngcontent-%COMP%] {\r\n flex: 1;\r\n text-align: center;\r\n \n\r\n font-weight: bold;\r\n color: #000000;\r\n margin: 0;\r\n \n\r\n}\r\n\r\nion-buttons[_ngcontent-%COMP%] {\r\n justify-content: flex-end;\r\n \n\r\n}\r\n\r\n.countdown-overlay[_ngcontent-%COMP%] {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.6);\r\n \n\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin: 0;\r\n padding: 0;\r\n z-index: 1000;\r\n \n\r\n animation: _ngcontent-%COMP%_fadeIn 0.5s ease-out, _ngcontent-%COMP%_fadeOut 0.5s ease-out 2.5s;\r\n \n\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n\r\n}\r\n\r\nion-content.custom-content[_ngcontent-%COMP%] {\r\n --padding-top: 0;\r\n --padding-bottom: 0;\r\n margin: 0;\r\n padding: 0;\r\n}\r\n\r\n.countdown[_ngcontent-%COMP%] {\r\n font-size: 100px;\r\n font-weight: bold;\r\n color: #fff;\r\n animation: _ngcontent-%COMP%_scaleUp 0.5s ease-out, _ngcontent-%COMP%_scaleDown 0.5s ease-out 2.5s;\r\n \n\r\n}\r\n\r\n\n\r\n@keyframes _ngcontent-%COMP%_fadeIn {\r\n from {\r\n opacity: 0;\r\n }\r\n\r\n to {\r\n opacity: 1;\r\n }\r\n}\r\n\r\n@keyframes _ngcontent-%COMP%_fadeOut {\r\n from {\r\n opacity: 1;\r\n }\r\n\r\n to {\r\n opacity: 0;\r\n }\r\n}\r\n\r\n\n\r\n@keyframes _ngcontent-%COMP%_scaleUp {\r\n from {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n\r\n to {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n}\r\n\r\n@keyframes _ngcontent-%COMP%_scaleDown {\r\n from {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n\r\n to {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n}\r\n\r\n.red[_ngcontent-%COMP%] {\r\n padding: 10px;\r\n color: red;\r\n}\r\n\r\n.text-center[_ngcontent-%COMP%] {\r\n text-align: center;\r\n padding-left: 20%;\r\n padding-right: 20%;\r\n color: #333;\r\n}\r\n\r\n.loading-overlay[_ngcontent-%COMP%] {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.8);\r\n \n\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n z-index: 1000;\r\n \n\r\n margin: 0;\r\n padding: 0;\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n}\r\n\r\nion-spinner[_ngcontent-%COMP%] {\r\n color: #fff;\r\n width: 50px;\r\n height: 50px;\r\n}"] }); }
371
+ } }, dependencies: [i5.NgClass, i5.NgIf, i1.IonButton, i1.IonButtons, i1.IonContent, i1.IonHeader, i1.IonIcon, i1.IonLabel, i1.IonToolbar], styles: [".camera-container[_ngcontent-%COMP%] {\r\n justify-content: center;\r\n align-items: center;\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n height: 70%;\r\n background-color: #fff;\r\n}\r\n\r\n.video-wrapper[_ngcontent-%COMP%] {\r\n position: relative;\r\n width: 300px;\r\n height: 300px;\r\n border-radius: 50%;\r\n overflow: hidden;\r\n background: #000; \n\r\n}\r\n\r\nvideo[_ngcontent-%COMP%] {\r\n width: 100% !important;\r\n height: 100% !important;\r\n object-fit: cover;\r\n border-radius: 50%;\r\n display: block; \n\r\n background: #000;\r\n}\r\n\r\n.progress-ring[_ngcontent-%COMP%] {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n transform: rotate(-90deg);\r\n \n\r\n}\r\n\r\n.progress-ring__circle[_ngcontent-%COMP%] {\r\n fill: transparent;\r\n stroke: purple;\r\n stroke-width: 12;\r\n stroke-dasharray: 945;\r\n \n\r\n stroke-dashoffset: 880;\r\n \n\r\n transition: stroke-dashoffset 12s linear;\r\n \n\r\n}\r\n\r\n.progress-active[_ngcontent-%COMP%] .progress-ring__circle[_ngcontent-%COMP%] {\r\n animation: _ngcontent-%COMP%_progress-animation 5s linear forwards;\r\n}\r\n\r\n@keyframes _ngcontent-%COMP%_progress-animation {\r\n from {\r\n stroke-dashoffset: 880;\r\n }\r\n\r\n to {\r\n stroke-dashoffset: 0;\r\n }\r\n}\r\n\r\n.text-container[_ngcontent-%COMP%] {\r\n height: 40px;\r\n color: black;\r\n}\r\n\r\nion-header[_ngcontent-%COMP%] {\r\n --background: #fff;\r\n \n\r\n}\r\n\r\n.centered-title[_ngcontent-%COMP%] {\r\n text-align: center;\r\n width: 100%;\r\n \n\r\n font-weight: bold;\r\n}\r\n\r\n.fixed-footer[_ngcontent-%COMP%] {\r\n position: fixed;\r\n bottom: 40px;\r\n left: 0;\r\n width: 100%;\r\n padding: 10px;\r\n background-color: #fff; // Color de fondo, opcional\r\n // box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);\r\n\r\n\r\n ion-button {\r\n width: 90%;\r\n max-width: 300px;\r\n margin: 0 auto;\r\n color: #fff;\r\n font-weight: bold;\r\n border-radius: 20px;\r\n\r\n --background: #82298F;\r\n --background-hover: #82298F;\r\n --background-activated: #82298F;\r\n --background-focused: #82298F;\r\n\r\n --color: #fff;\r\n\r\n --border-radius: 20px;\r\n --border-color: #82298F;\r\n ;\r\n --border-style: solid;\r\n --border-width: 1px;\r\n\r\n --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.25);\r\n\r\n --ripple-color: #82298F;\r\n\r\n\r\n &:hover {\r\n background-color: #82298F;\r\n }\r\n\r\n &:active {\r\n background-color: #82298F;\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\nion-header[_ngcontent-%COMP%] {\r\n --background: #fff;\r\n \n\r\n color: #000000;\r\n \n\r\n}\r\n\r\nion-toolbar[_ngcontent-%COMP%] {\r\n --ion-background-color: #fff !important;\r\n --background: #ffffff !important;\r\n --color: #000000 !important;\r\n}\r\n\r\n.centered-title[_ngcontent-%COMP%] {\r\n flex: 1;\r\n text-align: center;\r\n \n\r\n font-weight: bold;\r\n color: #000000;\r\n margin: 0;\r\n \n\r\n}\r\n\r\nion-buttons[_ngcontent-%COMP%] {\r\n justify-content: flex-end;\r\n \n\r\n}\r\n\r\n.countdown-overlay[_ngcontent-%COMP%] {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.6);\r\n \n\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin: 0;\r\n padding: 0;\r\n z-index: 1000;\r\n \n\r\n animation: _ngcontent-%COMP%_fadeIn 0.5s ease-out, _ngcontent-%COMP%_fadeOut 0.5s ease-out 2.5s;\r\n \n\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n\r\n}\r\n\r\nion-content.custom-content[_ngcontent-%COMP%] {\r\n --padding-top: 0;\r\n --padding-bottom: 0;\r\n margin: 0;\r\n padding: 0;\r\n}\r\n\r\n.countdown[_ngcontent-%COMP%] {\r\n font-size: 100px;\r\n font-weight: bold;\r\n color: #fff;\r\n animation: _ngcontent-%COMP%_scaleUp 0.5s ease-out, _ngcontent-%COMP%_scaleDown 0.5s ease-out 2.5s;\r\n \n\r\n}\r\n\r\n\n\r\n@keyframes _ngcontent-%COMP%_fadeIn {\r\n from {\r\n opacity: 0;\r\n }\r\n\r\n to {\r\n opacity: 1;\r\n }\r\n}\r\n\r\n@keyframes _ngcontent-%COMP%_fadeOut {\r\n from {\r\n opacity: 1;\r\n }\r\n\r\n to {\r\n opacity: 0;\r\n }\r\n}\r\n\r\n\n\r\n@keyframes _ngcontent-%COMP%_scaleUp {\r\n from {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n\r\n to {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n}\r\n\r\n@keyframes _ngcontent-%COMP%_scaleDown {\r\n from {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n\r\n to {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n}\r\n\r\n.red[_ngcontent-%COMP%] {\r\n padding: 10px;\r\n color: red;\r\n}\r\n\r\n.text-center[_ngcontent-%COMP%] {\r\n text-align: center;\r\n padding-left: 20%;\r\n padding-right: 20%;\r\n color: #333;\r\n}\r\n\r\n.loading-overlay[_ngcontent-%COMP%] {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.8);\r\n \n\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n z-index: 1000;\r\n \n\r\n margin: 0;\r\n padding: 0;\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n}\r\n\r\nion-spinner[_ngcontent-%COMP%] {\r\n color: #fff;\r\n width: 50px;\r\n height: 50px;\r\n}"] }); }
302
372
  }
303
373
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CamaraVideoSelfieComponent, [{
304
374
  type: Component,
305
- args: [{ selector: 'app-camara-video-selfie', encapsulation: ViewEncapsulation.Emulated, template: "<ion-content color=\"light\" class=\"custom-content\">\r\n <!-- Loading deshabilitado para evitar conflictos con loading principal -->\r\n <!-- <div *ngIf=\"isLoading\" class=\"loading-overlay\">\r\n <ion-spinner name=\"crescent\"></ion-spinner>\r\n </div> --> \r\n <div *ngIf=\"countdown > 0\" class=\"countdown-overlay\">\r\n <div class=\"countdown\">{{ countdown }}</div>\r\n </div>\r\n <ion-header class=\"ion-no-border\">\r\n <ion-toolbar color=\"light\">\r\n <!-- <ion-title class=\"centered-title\">Video Selfie</ion-title> -->\r\n <ion-buttons slot=\"end\">\r\n <ion-button (click)=\"closeOverlayVideo()\" [disabled]=\"!canStopRecording\">\r\n <ion-icon name=\"close\" color=\"dark\"></ion-icon>\r\n </ion-button>\r\n </ion-buttons>\r\n </ion-toolbar>\r\n </ion-header>\r\n <!-- Contenedor de la c\u00E1mara y progresi\u00F3n -->\r\n <div class=\"camera-container\">\r\n <div class=\"video-wrapper\">\r\n <video #videoElement muted autoplay playsinline style=\"transform: scaleX(-1)\"></video>\r\n <svg class=\"progress-ring\" #progressRing width=\"300\" height=\"300\">\r\n <circle class=\"progress-ring__circle\" cx=\"150\" cy=\"150\" r=\"150\" />\r\n </svg>\r\n </div>\r\n <ion-label [ngClass]=\"{'red': isRecording}\">00:{{ timeRemaining < 10 ? '0' + timeRemaining : timeRemaining\r\n }}</ion-label>\r\n <p class=\"text-center\">Permanece quieto, con tu rostro en el centro del c\u00EDrculo.</p>\r\n <!-- Botones de grabaci\u00F3n -->\r\n <div class=\"fixed-footer\">\r\n <ion-button class=\"button-grabar\" *ngIf=\"!isRecording\" expand=\"block\" (click)=\"recordVideo()\">Iniciar Grabaci\u00F3n</ion-button>\r\n <ion-button *ngIf=\"isRecording\" expand=\"block\" (click)=\"stopRecording()\" [disabled]=\"!canStopRecording\">Detener\r\n Grabaci\u00F3n</ion-button>\r\n </div>\r\n </div>\r\n</ion-content>", styles: [".camera-container {\r\n justify-content: center;\r\n align-items: center;\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n height: 70%;\r\n background-color: #fff;\r\n}\r\n\r\n.video-wrapper {\r\n position: relative;\r\n width: 300px;\r\n height: 300px;\r\n border-radius: 50%;\r\n overflow: hidden;\r\n}\r\n\r\nvideo {\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n border-radius: 50%;\r\n}\r\n\r\n.progress-ring {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n transform: rotate(-90deg);\r\n /* Rotamos el c\u00EDrculo para que la animaci\u00F3n inicie desde arriba */\r\n}\r\n\r\n.progress-ring__circle {\r\n fill: transparent;\r\n stroke: purple;\r\n stroke-width: 12;\r\n stroke-dasharray: 945;\r\n /* La circunferencia del c\u00EDrculo 880*/\r\n stroke-dashoffset: 880;\r\n /* Oculto por completo al inicio */\r\n transition: stroke-dashoffset 12s linear;\r\n /* Esto controlar\u00E1 el llenado progresivo */\r\n}\r\n\r\n.progress-active .progress-ring__circle {\r\n animation: progress-animation 5s linear forwards;\r\n}\r\n\r\n@keyframes progress-animation {\r\n from {\r\n stroke-dashoffset: 880;\r\n }\r\n\r\n to {\r\n stroke-dashoffset: 0;\r\n }\r\n}\r\n\r\n.text-container {\r\n height: 40px;\r\n color: black;\r\n}\r\n\r\nion-header {\r\n --background: #fff;\r\n /* Fondo blanco para el header */\r\n}\r\n\r\n.centered-title {\r\n text-align: center;\r\n width: 100%;\r\n /* Asegura que el t\u00EDtulo est\u00E9 centrado */\r\n font-weight: bold;\r\n}\r\n\r\n.fixed-footer {\r\n position: fixed;\r\n bottom: 40px;\r\n left: 0;\r\n width: 100%;\r\n padding: 10px;\r\n background-color: #fff; // Color de fondo, opcional\r\n // box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);\r\n\r\n\r\n ion-button {\r\n width: 90%;\r\n max-width: 300px;\r\n margin: 0 auto;\r\n color: #fff;\r\n font-weight: bold;\r\n border-radius: 20px;\r\n\r\n --background: #82298F;\r\n --background-hover: #82298F;\r\n --background-activated: #82298F;\r\n --background-focused: #82298F;\r\n\r\n --color: #fff;\r\n\r\n --border-radius: 20px;\r\n --border-color: #82298F;\r\n ;\r\n --border-style: solid;\r\n --border-width: 1px;\r\n\r\n --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.25);\r\n\r\n --ripple-color: #82298F;\r\n\r\n\r\n &:hover {\r\n background-color: #82298F;\r\n }\r\n\r\n &:active {\r\n background-color: #82298F;\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\nion-header {\r\n --background: #fff;\r\n /* Fondo blanco */\r\n color: #000000;\r\n /* Texto negro */\r\n}\r\n\r\nion-toolbar {\r\n --ion-background-color: #fff !important;\r\n --background: #ffffff !important;\r\n --color: #000000 !important;\r\n}\r\n\r\n.centered-title {\r\n flex: 1;\r\n text-align: center;\r\n /* Centrar el t\u00EDtulo */\r\n font-weight: bold;\r\n color: #000000;\r\n margin: 0;\r\n /* Quita cualquier margen del t\u00EDtulo */\r\n}\r\n\r\nion-buttons {\r\n justify-content: flex-end;\r\n /* Alinea el bot\u00F3n a la derecha */\r\n}\r\n\r\n.countdown-overlay {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.6);\r\n /* Fondo semi-transparente */\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin: 0;\r\n padding: 0;\r\n z-index: 1000;\r\n /* Asegurarse de que est\u00E9 encima de otros elementos */\r\n animation: fadeIn 0.5s ease-out, fadeOut 0.5s ease-out 2.5s;\r\n /* Animaciones de entrada y salida */\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n\r\n}\r\n\r\nion-content.custom-content {\r\n --padding-top: 0;\r\n --padding-bottom: 0;\r\n margin: 0;\r\n padding: 0;\r\n}\r\n\r\n.countdown {\r\n font-size: 100px;\r\n font-weight: bold;\r\n color: #fff;\r\n animation: scaleUp 0.5s ease-out, scaleDown 0.5s ease-out 2.5s;\r\n /* Escalar en entrada y salida */\r\n}\r\n\r\n/* Animaci\u00F3n para desvanecer la superposici\u00F3n */\r\n@keyframes fadeIn {\r\n from {\r\n opacity: 0;\r\n }\r\n\r\n to {\r\n opacity: 1;\r\n }\r\n}\r\n\r\n@keyframes fadeOut {\r\n from {\r\n opacity: 1;\r\n }\r\n\r\n to {\r\n opacity: 0;\r\n }\r\n}\r\n\r\n/* Animaci\u00F3n para escalar el n\u00FAmero */\r\n@keyframes scaleUp {\r\n from {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n\r\n to {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n}\r\n\r\n@keyframes scaleDown {\r\n from {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n\r\n to {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n}\r\n\r\n.red {\r\n padding: 10px;\r\n color: red;\r\n}\r\n\r\n.text-center {\r\n text-align: center;\r\n padding-left: 20%;\r\n padding-right: 20%;\r\n color: #333;\r\n}\r\n\r\n.loading-overlay {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.8);\r\n /* Fondo oscuro semi-transparente */\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n z-index: 1000;\r\n /* Aseg\u00FArate de que est\u00E9 por encima del contenido */\r\n margin: 0;\r\n padding: 0;\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n}\r\n\r\nion-spinner {\r\n color: #fff;\r\n width: 50px;\r\n height: 50px;\r\n}"] }]
375
+ args: [{ selector: 'app-camara-video-selfie', encapsulation: ViewEncapsulation.Emulated, template: "<ion-content color=\"light\" class=\"custom-content\">\r\n <!-- Loading deshabilitado para evitar conflictos con loading principal -->\r\n <!-- <div *ngIf=\"isLoading\" class=\"loading-overlay\">\r\n <ion-spinner name=\"crescent\"></ion-spinner>\r\n </div> --> \r\n <div *ngIf=\"countdown > 0\" class=\"countdown-overlay\">\r\n <div class=\"countdown\">{{ countdown }}</div>\r\n </div>\r\n <ion-header class=\"ion-no-border\">\r\n <ion-toolbar color=\"light\">\r\n <!-- <ion-title class=\"centered-title\">Video Selfie</ion-title> -->\r\n <ion-buttons slot=\"end\">\r\n <ion-button (click)=\"closeOverlayVideo()\" [disabled]=\"!canStopRecording\">\r\n <ion-icon name=\"close\" color=\"dark\"></ion-icon>\r\n </ion-button>\r\n </ion-buttons>\r\n </ion-toolbar>\r\n </ion-header>\r\n <!-- Contenedor de la c\u00E1mara y progresi\u00F3n -->\r\n <div class=\"camera-container\">\r\n <div class=\"video-wrapper\">\r\n <video #videoElement \r\n muted \r\n autoplay \r\n playsinline \r\n webkit-playsinline\r\n style=\"transform: scaleX(-1); width: 100%; height: 100%; object-fit: cover;\"></video>\r\n <svg class=\"progress-ring\" #progressRing width=\"300\" height=\"300\">\r\n <circle class=\"progress-ring__circle\" cx=\"150\" cy=\"150\" r=\"150\" />\r\n </svg>\r\n </div>\r\n <ion-label [ngClass]=\"{'red': isRecording}\">00:{{ timeRemaining < 10 ? '0' + timeRemaining : timeRemaining\r\n }}</ion-label>\r\n <p class=\"text-center\">Permanece quieto, con tu rostro en el centro del c\u00EDrculo.</p>\r\n <!-- Botones de grabaci\u00F3n -->\r\n <div class=\"fixed-footer\">\r\n <ion-button class=\"button-grabar\" *ngIf=\"!isRecording\" expand=\"block\" (click)=\"recordVideo()\">Iniciar Grabaci\u00F3n</ion-button>\r\n <ion-button *ngIf=\"isRecording\" expand=\"block\" (click)=\"stopRecording()\" [disabled]=\"!canStopRecording\">Detener\r\n Grabaci\u00F3n</ion-button>\r\n </div>\r\n </div>\r\n</ion-content>", styles: [".camera-container {\r\n justify-content: center;\r\n align-items: center;\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n height: 70%;\r\n background-color: #fff;\r\n}\r\n\r\n.video-wrapper {\r\n position: relative;\r\n width: 300px;\r\n height: 300px;\r\n border-radius: 50%;\r\n overflow: hidden;\r\n background: #000; /* Fondo negro mientras carga */\r\n}\r\n\r\nvideo {\r\n width: 100% !important;\r\n height: 100% !important;\r\n object-fit: cover;\r\n border-radius: 50%;\r\n display: block; /* Eliminar espacios en blanco */\r\n background: #000;\r\n}\r\n\r\n.progress-ring {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n transform: rotate(-90deg);\r\n /* Rotamos el c\u00EDrculo para que la animaci\u00F3n inicie desde arriba */\r\n}\r\n\r\n.progress-ring__circle {\r\n fill: transparent;\r\n stroke: purple;\r\n stroke-width: 12;\r\n stroke-dasharray: 945;\r\n /* La circunferencia del c\u00EDrculo 880*/\r\n stroke-dashoffset: 880;\r\n /* Oculto por completo al inicio */\r\n transition: stroke-dashoffset 12s linear;\r\n /* Esto controlar\u00E1 el llenado progresivo */\r\n}\r\n\r\n.progress-active .progress-ring__circle {\r\n animation: progress-animation 5s linear forwards;\r\n}\r\n\r\n@keyframes progress-animation {\r\n from {\r\n stroke-dashoffset: 880;\r\n }\r\n\r\n to {\r\n stroke-dashoffset: 0;\r\n }\r\n}\r\n\r\n.text-container {\r\n height: 40px;\r\n color: black;\r\n}\r\n\r\nion-header {\r\n --background: #fff;\r\n /* Fondo blanco para el header */\r\n}\r\n\r\n.centered-title {\r\n text-align: center;\r\n width: 100%;\r\n /* Asegura que el t\u00EDtulo est\u00E9 centrado */\r\n font-weight: bold;\r\n}\r\n\r\n.fixed-footer {\r\n position: fixed;\r\n bottom: 40px;\r\n left: 0;\r\n width: 100%;\r\n padding: 10px;\r\n background-color: #fff; // Color de fondo, opcional\r\n // box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);\r\n\r\n\r\n ion-button {\r\n width: 90%;\r\n max-width: 300px;\r\n margin: 0 auto;\r\n color: #fff;\r\n font-weight: bold;\r\n border-radius: 20px;\r\n\r\n --background: #82298F;\r\n --background-hover: #82298F;\r\n --background-activated: #82298F;\r\n --background-focused: #82298F;\r\n\r\n --color: #fff;\r\n\r\n --border-radius: 20px;\r\n --border-color: #82298F;\r\n ;\r\n --border-style: solid;\r\n --border-width: 1px;\r\n\r\n --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.25);\r\n\r\n --ripple-color: #82298F;\r\n\r\n\r\n &:hover {\r\n background-color: #82298F;\r\n }\r\n\r\n &:active {\r\n background-color: #82298F;\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\nion-header {\r\n --background: #fff;\r\n /* Fondo blanco */\r\n color: #000000;\r\n /* Texto negro */\r\n}\r\n\r\nion-toolbar {\r\n --ion-background-color: #fff !important;\r\n --background: #ffffff !important;\r\n --color: #000000 !important;\r\n}\r\n\r\n.centered-title {\r\n flex: 1;\r\n text-align: center;\r\n /* Centrar el t\u00EDtulo */\r\n font-weight: bold;\r\n color: #000000;\r\n margin: 0;\r\n /* Quita cualquier margen del t\u00EDtulo */\r\n}\r\n\r\nion-buttons {\r\n justify-content: flex-end;\r\n /* Alinea el bot\u00F3n a la derecha */\r\n}\r\n\r\n.countdown-overlay {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.6);\r\n /* Fondo semi-transparente */\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin: 0;\r\n padding: 0;\r\n z-index: 1000;\r\n /* Asegurarse de que est\u00E9 encima de otros elementos */\r\n animation: fadeIn 0.5s ease-out, fadeOut 0.5s ease-out 2.5s;\r\n /* Animaciones de entrada y salida */\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n\r\n}\r\n\r\nion-content.custom-content {\r\n --padding-top: 0;\r\n --padding-bottom: 0;\r\n margin: 0;\r\n padding: 0;\r\n}\r\n\r\n.countdown {\r\n font-size: 100px;\r\n font-weight: bold;\r\n color: #fff;\r\n animation: scaleUp 0.5s ease-out, scaleDown 0.5s ease-out 2.5s;\r\n /* Escalar en entrada y salida */\r\n}\r\n\r\n/* Animaci\u00F3n para desvanecer la superposici\u00F3n */\r\n@keyframes fadeIn {\r\n from {\r\n opacity: 0;\r\n }\r\n\r\n to {\r\n opacity: 1;\r\n }\r\n}\r\n\r\n@keyframes fadeOut {\r\n from {\r\n opacity: 1;\r\n }\r\n\r\n to {\r\n opacity: 0;\r\n }\r\n}\r\n\r\n/* Animaci\u00F3n para escalar el n\u00FAmero */\r\n@keyframes scaleUp {\r\n from {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n\r\n to {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n}\r\n\r\n@keyframes scaleDown {\r\n from {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n\r\n to {\r\n transform: scale(0.8);\r\n opacity: 0;\r\n }\r\n}\r\n\r\n.red {\r\n padding: 10px;\r\n color: red;\r\n}\r\n\r\n.text-center {\r\n text-align: center;\r\n padding-left: 20%;\r\n padding-right: 20%;\r\n color: #333;\r\n}\r\n\r\n.loading-overlay {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.8);\r\n /* Fondo oscuro semi-transparente */\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n z-index: 1000;\r\n /* Aseg\u00FArate de que est\u00E9 por encima del contenido */\r\n margin: 0;\r\n padding: 0;\r\n box-sizing: border-box;\r\n border-radius: 0px;\r\n}\r\n\r\nion-spinner {\r\n color: #fff;\r\n width: 50px;\r\n height: 50px;\r\n}"] }]
306
376
  }], () => [{ type: i1.Platform }, { type: i1.ModalController }, { type: i2.DomSanitizer }, { type: i0.Renderer2 }, { type: i1.AlertController }, { type: i0.ChangeDetectorRef }, { type: i3.ModalVideoSelfieServices }, { type: i4.ModalDpiServices }], { videoElement: [{
307
377
  type: ViewChild,
308
378
  args: ['videoElement']
@@ -1 +1 @@
1
- {"version":3,"file":"camara-video-selfie.component.js","sourceRoot":"","sources":["../../../../../../../src/app/pages/id-vision/components/camara-video-selfie/camara-video-selfie.component.ts","../../../../../../../src/app/pages/id-vision/components/camara-video-selfie/camara-video-selfie.component.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"camara-video-selfie.component.js","sourceRoot":"","sources":["../../../../../../../src/app/pages/id-vision/components/camara-video-selfie/camara-video-selfie.component.ts","../../../../../../../src/app/pages/id-vision/components/camara-video-selfie/camara-video-selfie.component.html"],"names":[],"mappings":"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"}
@@ -2,10 +2,6 @@ import { AfterViewInit, ElementRef, EventEmitter, OnDestroy } from '@angular/cor
2
2
  import { ModalController, Platform } from '@ionic/angular';
3
3
  import { ModalDpiServices } from '../../services/modal-services/modal-dpi-services';
4
4
  import * as i0 from "@angular/core";
5
- interface CamInfo {
6
- label: string;
7
- deviceId: string;
8
- }
9
5
  export declare class CameraWithOverlayComponent implements AfterViewInit, OnDestroy {
10
6
  private platform;
11
7
  private modalController;
@@ -18,9 +14,7 @@ export declare class CameraWithOverlayComponent implements AfterViewInit, OnDest
18
14
  closeRequested: EventEmitter<void>;
19
15
  stream: MediaStream | null;
20
16
  isLoading: boolean;
21
- rearCams: CamInfo[];
22
17
  selectedCamId: string | null;
23
- currentRearIndex: number;
24
18
  private readonly isMobile;
25
19
  constructor(platform: Platform, modalController: ModalController, modaldpiServices: ModalDpiServices);
26
20
  ngAfterViewInit(): Promise<void>;
@@ -28,8 +22,6 @@ export declare class CameraWithOverlayComponent implements AfterViewInit, OnDest
28
22
  private requestPermissions;
29
23
  private enumerateRearCams;
30
24
  openCamera(deviceId?: string): Promise<void>;
31
- /** Avanza al siguiente sensor trasero en modo carrusel */
32
- toggleRearCam(): void;
33
25
  private attachStream;
34
26
  capturePhoto(): Promise<void>;
35
27
  blobToFile(blob: Blob, fileName: string): File;
@@ -39,4 +31,3 @@ export declare class CameraWithOverlayComponent implements AfterViewInit, OnDest
39
31
  static ɵfac: i0.ɵɵFactoryDeclaration<CameraWithOverlayComponent, never>;
40
32
  static ɵcmp: i0.ɵɵComponentDeclaration<CameraWithOverlayComponent, "app-camera-overlay", never, { "text1": { "alias": "text1"; "required": false; }; "text2": { "alias": "text2"; "required": false; }; "overlaySrc": { "alias": "overlaySrc"; "required": false; }; "onTakePicture": { "alias": "onTakePicture"; "required": false; }; }, { "closeRequested": "closeRequested"; }, never, never, false, never>;
41
33
  }
42
- export {};
@@ -18,9 +18,7 @@ export class CameraWithOverlayComponent {
18
18
  /* ─── Estado ─── */
19
19
  this.stream = null;
20
20
  this.isLoading = true;
21
- this.rearCams = [];
22
21
  this.selectedCamId = null;
23
- this.currentRearIndex = 0; // ← índice de la lente trasera activa
24
22
  this.isMobile = this.platform.is('android') || this.platform.is('ios');
25
23
  }
26
24
  /* ═════════ LIFE-CYCLE ═════════ */
@@ -57,29 +55,31 @@ export class CameraWithOverlayComponent {
57
55
  }
58
56
  catch { /* ignorar */ }
59
57
  }
60
- this.rearCams = devices
58
+ // Buscar la primera cámara trasera disponible
59
+ let rearCams = devices
61
60
  .filter(d => /back|rear|environment/i.test(d.label))
62
61
  .map((d, i) => ({ label: d.label || `Cámara trasera ${i + 1}`, deviceId: d.deviceId }));
63
- if (!this.rearCams.length && devices.length > 1) {
62
+ if (!rearCams.length && devices.length > 1) {
64
63
  /* plan B – todo menos la primera (suele ser frontal) */
65
- this.rearCams = devices.slice(1).map((d, i) => ({
64
+ rearCams = devices.slice(1).map((d, i) => ({
66
65
  label: d.label || `Cámara ${i + 1}`,
67
66
  deviceId: d.deviceId
68
67
  }));
69
68
  }
70
69
  /* ─── Elegir la cámara por defecto ─── */
71
- if (this.rearCams.length) {
72
- let preferred = this.rearCams.find(c => /camera2\s?0/i.test(c.label)); // 1) “camera2 0…”
70
+ let selectedDevice = null;
71
+ if (rearCams.length) {
72
+ let preferred = rearCams.find(c => /camera2\s?0/i.test(c.label)); // 1) "camera2 0…"
73
73
  if (!preferred)
74
- preferred = this.rearCams.find(c => /back/i.test(c.label)); // 2) cualquier back
75
- const chosen = preferred ?? this.rearCams[0]; // 3) primera
76
- this.selectedCamId = chosen.deviceId;
77
- this.currentRearIndex = this.rearCams.findIndex(c => c.deviceId === chosen.deviceId);
78
- await this.openCamera(this.selectedCamId);
74
+ preferred = rearCams.find(c => /back/i.test(c.label)); // 2) cualquier "back"
75
+ selectedDevice = preferred ?? rearCams[0]; // 3) primera
79
76
  }
80
77
  else if (devices.length) {
81
- /* Fallback final: primera cámara disponible */
82
- await this.openCamera(devices[0].deviceId);
78
+ selectedDevice = devices[0];
79
+ }
80
+ if (selectedDevice) {
81
+ this.selectedCamId = selectedDevice.deviceId;
82
+ await this.openCamera(this.selectedCamId);
83
83
  }
84
84
  }
85
85
  /* ═════════ Abrir / cambiar cámara ═════════ */
@@ -104,15 +104,7 @@ export class CameraWithOverlayComponent {
104
104
  console.error('No se pudo abrir la cámara:', err);
105
105
  }
106
106
  }
107
- /** Avanza al siguiente sensor trasero en modo carrusel */
108
- toggleRearCam() {
109
- if (!this.rearCams.length)
110
- return;
111
- this.currentRearIndex = (this.currentRearIndex + 1) % this.rearCams.length;
112
- const nextCam = this.rearCams[this.currentRearIndex];
113
- this.selectedCamId = nextCam.deviceId;
114
- this.openCamera(nextCam.deviceId);
115
- }
107
+ // Cambio de cámara deshabilitado - solo se permite usar la cámara trasera
116
108
  attachStream(stream) {
117
109
  const video = this.videoElement.nativeElement;
118
110
  video.srcObject = stream;
@@ -224,7 +216,7 @@ export class CameraWithOverlayComponent {
224
216
  }
225
217
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CameraWithOverlayComponent, [{
226
218
  type: Component,
227
- args: [{ selector: 'app-camera-overlay', encapsulation: ViewEncapsulation.Emulated, template: "<ion-content color=\"dark\">\r\n <div class=\"camera-overlay\">\r\n <!-- Bot\u00F3n de cambio de c\u00E1mara deshabilitado para DPI -->\r\n <!-- <ion-fab vertical=\"top\" horizontal=\"start\" slot=\"fixed\" *ngIf=\"rearCams.length > 1\">\r\n <ion-fab-button\r\n class=\"buttonfabCameraChange\"\r\n size=\"small\"\r\n (click)=\"toggleRearCam()\">\r\n <ion-icon name=\"camera-reverse-outline\"></ion-icon>\r\n </ion-fab-button>\r\n </ion-fab> -->\r\n <!-- \u25B8 Encabezado ---------------------------------------------------- -->\r\n <div class=\"header-text\">\r\n <div class=\"text-help\">\r\n <p>{{ text1 }}</p>\r\n </div>\r\n <p class=\"country\">{{ text2 }}</p>\r\n\r\n <!-- \u25B8 Selector de c\u00E1maras traseras (solo se muestra si hay varias) -->\r\n <!-- <ion-item class=\"cam-picker\" lines=\"none\">\r\n <ion-label>Elegir c\u00E1mara</ion-label>\r\n <ion-select interface=\"popover\"\r\n [value]=\"selectedCamId\"\r\n (ionChange)=\"onSelectCam($event)\">\r\n <ion-select-option *ngFor=\"let cam of rearCams\"\r\n [value]=\"cam.deviceId\">\r\n {{ cam.label }}\r\n </ion-select-option>\r\n </ion-select>\r\n </ion-item>-->\r\n </div> \r\n\r\n <!-- \u25B8 Loader 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 <!-- \u25B8 Capa oscura con recorte (tu ventana de enfoque) --------------- -->\r\n <div class=\"visible-window\"></div>\r\n\r\n <!-- \u25B8 Contenedor del v\u00EDdeo + overlay -------------------------------- -->\r\n <div class=\"camera-container\">\r\n <video #videoElement autoplay muted playsinline></video>\r\n <img [src]=\"overlaySrc\" alt=\"Overlay\" class=\"overlay-frame blink-image\" />\r\n </div>\r\n\r\n <!-- \u25B8 Bot\u00F3n de captura ---------------------------------------------- -->\r\n <div class=\"button-container\">\r\n <ion-button (click)=\"capturePhoto()\"\r\n class=\"capture-button\"\r\n shape=\"round\"\r\n expand=\"block\">\r\n <ion-icon name=\"camera-outline\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n\r\n <!-- \u25B8 Bot\u00F3n de cerrar ------------------------------------------------ -->\r\n <ion-button fill=\"clear\"\r\n (click)=\"closeOverlay()\"\r\n class=\"close-button\">\r\n <ion-icon name=\"close-outline\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n</ion-content>\r\n", styles: ["ion-content {\r\n --background: black;\r\n padding: 0;\r\n margin: 0;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n height: 100vh;\r\n\r\n}\r\n\r\n\r\n.blink-image {\r\n animation: blink 3s infinite;\r\n}\r\n\r\n@keyframes blink {\r\n 0% { opacity: 1; }\r\n 50% { opacity: 0; }\r\n 100% { opacity: 1; }\r\n}\r\n\r\n.modal-container {\r\n max-width: 400px; // Ajusta el valor seg\u00FAn tus necesidades\r\n\r\n}\r\n\r\n.camera-overlay {\r\n position: relative;\r\n width: 100vw;\r\n height: 100vh;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n overflow: hidden;\r\n}\r\n\r\n.camera-container {\r\n width: 100%;\r\n height: 100%;\r\n position: relative;\r\n\r\n video {\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n }\r\n}\r\n\r\n.overlay-frame {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n max-width: 86%;\r\n max-height: 90%;\r\n z-index: 9;\r\n}\r\n\r\n.header-text {\r\n position: absolute;\r\n top: 50px;\r\n width: 100%;\r\n text-align: center;\r\n color: white;\r\n z-index: 15;\r\n\r\n p {\r\n margin: 0;\r\n font-size: 18px;\r\n }\r\n\r\n .country {\r\n font-weight: bold;\r\n }\r\n}\r\n\r\n.button-container {\r\n position: absolute;\r\n bottom: 20px;\r\n width: 100%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n z-index: 10;\r\n}\r\n\r\n.capture-button {\r\n width: 70px;\r\n height: 70px;\r\n border-radius: 50%;\r\n\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: white;\r\n \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.close-button {\r\n position: absolute;\r\n top: 14px;\r\n right: 20px;\r\n color: white;\r\n z-index: 10;\r\n}\r\n\r\n.visible-window {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n // width: 70%; /* Ajusta el tama\u00F1o del cuadro */\r\n // height: 45%; /* Ajusta el tama\u00F1o del cuadro */\r\n\r\n width: 313px;\r\n height: 500px;\r\n\r\n max-width: 90%;\r\n max-height: 90%;\r\n background: transparent;\r\n border: 2px solid white; /* Color y grosor del borde */\r\n border-radius: 10px; /* Ajusta para redondear las esquinas */\r\n z-index: 10; /* Aseg\u00FArate de que est\u00E9 encima del overlay oscuro */\r\n box-shadow: 0 0 0 100vw rgba(0, 0, 0, 0.65); /* Oscurece fuera del cuadro */\r\n}\r\n.text-help p{\r\n display: inline-block; /* Hace que solo el texto ocupe espacio */\r\n background-color: white; /* Color de fondo del texto */\r\n padding:15px; /* Espaciado interno para una mejor visualizaci\u00F3n */\r\n border-radius: 5px; /* Opcional, para esquinas redondeadas */\r\n color: black; /* Color del texto */\r\n box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1); /* Sombra leve */\r\n animation: popIn 1s ease-in-out; /* Agrega la animaci\u00F3n al aparecer */\r\n margin-left: 10px;\r\n margin-right: 10px;\r\n\r\n}\r\n\r\n/* Definimos la animaci\u00F3n \"popIn\" */\r\n@keyframes popIn {\r\n 0% {\r\n transform: scale(0.8); /* Comienza m\u00E1s peque\u00F1o */\r\n opacity: 0; /* Empieza invisible */\r\n }\r\n 50% {\r\n transform: scale(1.1); /* Crece un poco m\u00E1s de lo normal */\r\n opacity: 1; /* Se hace visible */\r\n }\r\n 100% {\r\n transform: scale(1); /* Vuelve a su tama\u00F1o normal */\r\n }\r\n}\r\n\r\n.loading-overlay {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100vw;\r\n height: 100vh;\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}\r\n\r\nion-spinner {\r\n color: white;\r\n width: 50px;\r\n height: 50px;\r\n}\r\n\r\n\r\n\r\n.camera-select {\r\n position: absolute;\r\n top: 1rem;\r\n left: 1rem;\r\n background: rgba(0, 0, 0, 0.7);\r\n padding: 0.5rem;\r\n border-radius: 0.5rem;\r\n z-index: 999;\r\n display: flex;\r\n align-items: center;\r\n color: white;\r\n\r\n label {\r\n margin-right: 0.5rem;\r\n font-size: 14px;\r\n }\r\n\r\n select {\r\n background: transparent;\r\n color: white;\r\n border: 1px solid white;\r\n border-radius: 0.3rem;\r\n font-size: 14px;\r\n padding: 0.2rem;\r\n }\r\n}\r\n\r\n.buttonfabCameraChange {\r\n --background: rgba(0, 0, 0, 0.6);\r\n --color: #fff;\r\n //box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);\r\n /* ajusta posici\u00F3n extra si lo necesitas */\r\n /* margin-top: 8px; margin-left: 8px; */\r\n}\r\n"] }]
219
+ args: [{ selector: 'app-camera-overlay', encapsulation: ViewEncapsulation.Emulated, template: "<ion-content color=\"dark\">\r\n <div class=\"camera-overlay\">\r\n <!-- \u25B8 Encabezado ---------------------------------------------------- -->\r\n <div class=\"header-text\">\r\n <div class=\"text-help\">\r\n <p>{{ text1 }}</p>\r\n </div>\r\n <p class=\"country\">{{ text2 }}</p>\r\n </div> \r\n\r\n <!-- \u25B8 Loader 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 <!-- \u25B8 Capa oscura con recorte (tu ventana de enfoque) --------------- -->\r\n <div class=\"visible-window\"></div>\r\n\r\n <!-- \u25B8 Contenedor del v\u00EDdeo + overlay -------------------------------- -->\r\n <div class=\"camera-container\">\r\n <video #videoElement autoplay muted playsinline></video>\r\n <img [src]=\"overlaySrc\" alt=\"Overlay\" class=\"overlay-frame blink-image\" />\r\n </div>\r\n\r\n <!-- \u25B8 Bot\u00F3n de captura ---------------------------------------------- -->\r\n <div class=\"button-container\">\r\n <ion-button (click)=\"capturePhoto()\"\r\n class=\"capture-button\"\r\n shape=\"round\"\r\n expand=\"block\">\r\n <ion-icon name=\"camera-outline\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n\r\n <!-- \u25B8 Bot\u00F3n de cerrar ------------------------------------------------ -->\r\n <ion-button fill=\"clear\"\r\n (click)=\"closeOverlay()\"\r\n class=\"close-button\">\r\n <ion-icon name=\"close-outline\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n</ion-content>\r\n", styles: ["ion-content {\r\n --background: black;\r\n padding: 0;\r\n margin: 0;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n height: 100vh;\r\n\r\n}\r\n\r\n\r\n.blink-image {\r\n animation: blink 3s infinite;\r\n}\r\n\r\n@keyframes blink {\r\n 0% { opacity: 1; }\r\n 50% { opacity: 0; }\r\n 100% { opacity: 1; }\r\n}\r\n\r\n.modal-container {\r\n max-width: 400px; // Ajusta el valor seg\u00FAn tus necesidades\r\n\r\n}\r\n\r\n.camera-overlay {\r\n position: relative;\r\n width: 100vw;\r\n height: 100vh;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n overflow: hidden;\r\n}\r\n\r\n.camera-container {\r\n width: 100%;\r\n height: 100%;\r\n position: relative;\r\n\r\n video {\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n }\r\n}\r\n\r\n.overlay-frame {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n max-width: 86%;\r\n max-height: 90%;\r\n z-index: 9;\r\n}\r\n\r\n.header-text {\r\n position: absolute;\r\n top: 50px;\r\n width: 100%;\r\n text-align: center;\r\n color: white;\r\n z-index: 15;\r\n\r\n p {\r\n margin: 0;\r\n font-size: 18px;\r\n }\r\n\r\n .country {\r\n font-weight: bold;\r\n }\r\n}\r\n\r\n.button-container {\r\n position: absolute;\r\n bottom: 20px;\r\n width: 100%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n z-index: 10;\r\n}\r\n\r\n.capture-button {\r\n width: 70px;\r\n height: 70px;\r\n border-radius: 50%;\r\n\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: white;\r\n \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.close-button {\r\n position: absolute;\r\n top: 14px;\r\n right: 20px;\r\n color: white;\r\n z-index: 10;\r\n}\r\n\r\n.visible-window {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n // width: 70%; /* Ajusta el tama\u00F1o del cuadro */\r\n // height: 45%; /* Ajusta el tama\u00F1o del cuadro */\r\n\r\n width: 313px;\r\n height: 500px;\r\n\r\n max-width: 90%;\r\n max-height: 90%;\r\n background: transparent;\r\n border: 2px solid white; /* Color y grosor del borde */\r\n border-radius: 10px; /* Ajusta para redondear las esquinas */\r\n z-index: 10; /* Aseg\u00FArate de que est\u00E9 encima del overlay oscuro */\r\n box-shadow: 0 0 0 100vw rgba(0, 0, 0, 0.65); /* Oscurece fuera del cuadro */\r\n}\r\n.text-help p{\r\n display: inline-block; /* Hace que solo el texto ocupe espacio */\r\n background-color: white; /* Color de fondo del texto */\r\n padding:15px; /* Espaciado interno para una mejor visualizaci\u00F3n */\r\n border-radius: 5px; /* Opcional, para esquinas redondeadas */\r\n color: black; /* Color del texto */\r\n box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1); /* Sombra leve */\r\n animation: popIn 1s ease-in-out; /* Agrega la animaci\u00F3n al aparecer */\r\n margin-left: 10px;\r\n margin-right: 10px;\r\n\r\n}\r\n\r\n/* Definimos la animaci\u00F3n \"popIn\" */\r\n@keyframes popIn {\r\n 0% {\r\n transform: scale(0.8); /* Comienza m\u00E1s peque\u00F1o */\r\n opacity: 0; /* Empieza invisible */\r\n }\r\n 50% {\r\n transform: scale(1.1); /* Crece un poco m\u00E1s de lo normal */\r\n opacity: 1; /* Se hace visible */\r\n }\r\n 100% {\r\n transform: scale(1); /* Vuelve a su tama\u00F1o normal */\r\n }\r\n}\r\n\r\n.loading-overlay {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100vw;\r\n height: 100vh;\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}\r\n\r\nion-spinner {\r\n color: white;\r\n width: 50px;\r\n height: 50px;\r\n}\r\n\r\n\r\n\r\n.camera-select {\r\n position: absolute;\r\n top: 1rem;\r\n left: 1rem;\r\n background: rgba(0, 0, 0, 0.7);\r\n padding: 0.5rem;\r\n border-radius: 0.5rem;\r\n z-index: 999;\r\n display: flex;\r\n align-items: center;\r\n color: white;\r\n\r\n label {\r\n margin-right: 0.5rem;\r\n font-size: 14px;\r\n }\r\n\r\n select {\r\n background: transparent;\r\n color: white;\r\n border: 1px solid white;\r\n border-radius: 0.3rem;\r\n font-size: 14px;\r\n padding: 0.2rem;\r\n }\r\n}\r\n\r\n.buttonfabCameraChange {\r\n --background: rgba(0, 0, 0, 0.6);\r\n --color: #fff;\r\n //box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);\r\n /* ajusta posici\u00F3n extra si lo necesitas */\r\n /* margin-top: 8px; margin-left: 8px; */\r\n}\r\n"] }]
228
220
  }], () => [{ type: i1.Platform }, { type: i1.ModalController }, { type: i2.ModalDpiServices }], { videoElement: [{
229
221
  type: ViewChild,
230
222
  args: ['videoElement']
@@ -1 +1 @@
1
- {"version":3,"file":"camera-with-overlay.component.js","sourceRoot":"","sources":["../../../../../../../src/app/pages/id-vision/components/camera-with-overlay/camera-with-overlay.component.ts","../../../../../../../src/app/pages/id-vision/components/camera-with-overlay/camera-with-overlay.component.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"camera-with-overlay.component.js","sourceRoot":"","sources":["../../../../../../../src/app/pages/id-vision/components/camera-with-overlay/camera-with-overlay.component.ts","../../../../../../../src/app/pages/id-vision/components/camera-with-overlay/camera-with-overlay.component.html"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export { NativeVideoSelfieComponent } from './native-video-selfie.component';
@@ -0,0 +1,2 @@
1
+ export { NativeVideoSelfieComponent } from './native-video-selfie.component';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/app/pages/id-vision/components/native-video-selfie/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { OnDestroy, AfterViewInit, ElementRef, ChangeDetectorRef, Renderer2 } from '@angular/core';
2
+ import { ModalController, Platform, AlertController } from '@ionic/angular';
3
+ import * as i0 from "@angular/core";
4
+ export declare class NativeVideoSelfieComponent implements AfterViewInit, OnDestroy {
5
+ private modalController;
6
+ private platform;
7
+ private alertController;
8
+ private changeDetector;
9
+ private renderer;
10
+ videoElement: ElementRef<HTMLVideoElement>;
11
+ progressRing: ElementRef<HTMLElement>;
12
+ text1: string;
13
+ text2: string;
14
+ backFunction: (file: File) => Promise<boolean>;
15
+ closeRequested?: () => void;
16
+ stream: MediaStream | null;
17
+ isRecording: boolean;
18
+ mediaRecorder: MediaRecorder | null;
19
+ recordedChunks: Blob[];
20
+ countdown: number;
21
+ private recordingTimer;
22
+ private readonly minRecordingTime;
23
+ private readonly maxRecordingTime;
24
+ timeRemaining: number;
25
+ canStopRecording: boolean;
26
+ private isMobile;
27
+ private defaultBrightness;
28
+ constructor(modalController: ModalController, platform: Platform, alertController: AlertController, changeDetector: ChangeDetectorRef, renderer: Renderer2);
29
+ ngAfterViewInit(): Promise<void>;
30
+ ngOnDestroy(): Promise<void>;
31
+ private initializeBrightness;
32
+ private restoreBrightness;
33
+ private requestPermissions;
34
+ initCamera(): Promise<void>;
35
+ private prepareRecorder;
36
+ recordVideo(): void;
37
+ startVideoRecord(): Promise<void>;
38
+ updateTimeRemaining(): void;
39
+ stopRecording(): Promise<void>;
40
+ blobToFile(blob: Blob, fileName: string): File;
41
+ stopCamera(): void;
42
+ private showPermissionAlert;
43
+ private showErrorAlert;
44
+ closeOverlayVideo(): Promise<void>;
45
+ closeRequestedFunction(): void;
46
+ static ɵfac: i0.ɵɵFactoryDeclaration<NativeVideoSelfieComponent, never>;
47
+ static ɵcmp: i0.ɵɵComponentDeclaration<NativeVideoSelfieComponent, "app-native-video-selfie", never, { "text1": { "alias": "text1"; "required": false; }; "text2": { "alias": "text2"; "required": false; }; "backFunction": { "alias": "backFunction"; "required": false; }; "closeRequested": { "alias": "closeRequested"; "required": false; }; }, {}, never, never, true, never>;
48
+ }
@@ -0,0 +1,429 @@
1
+ import { Component, Input, ViewChild, ViewEncapsulation } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { IonicModule } from '@ionic/angular';
4
+ import { Camera } from '@capacitor/camera';
5
+ import { ScreenBrightness } from '@capacitor-community/screen-brightness';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@ionic/angular";
8
+ import * as i2 from "@angular/common";
9
+ const _c0 = ["videoElement"];
10
+ const _c1 = ["progressRing"];
11
+ const _c2 = a0 => ({ "red": a0 });
12
+ function NativeVideoSelfieComponent_div_1_Template(rf, ctx) { if (rf & 1) {
13
+ i0.ɵɵelementStart(0, "div", 18)(1, "div", 19);
14
+ i0.ɵɵtext(2);
15
+ i0.ɵɵelementEnd()();
16
+ } if (rf & 2) {
17
+ const ctx_r1 = i0.ɵɵnextContext();
18
+ i0.ɵɵadvance(2);
19
+ i0.ɵɵtextInterpolate(ctx_r1.countdown);
20
+ } }
21
+ function NativeVideoSelfieComponent_ion_button_19_Template(rf, ctx) { if (rf & 1) {
22
+ const _r3 = i0.ɵɵgetCurrentView();
23
+ i0.ɵɵelementStart(0, "ion-button", 20);
24
+ i0.ɵɵlistener("click", function NativeVideoSelfieComponent_ion_button_19_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.recordVideo()); });
25
+ i0.ɵɵtext(1, " Iniciar Grabaci\u00F3n ");
26
+ i0.ɵɵelementEnd();
27
+ } }
28
+ function NativeVideoSelfieComponent_ion_button_20_Template(rf, ctx) { if (rf & 1) {
29
+ const _r4 = i0.ɵɵgetCurrentView();
30
+ i0.ɵɵelementStart(0, "ion-button", 21);
31
+ i0.ɵɵlistener("click", function NativeVideoSelfieComponent_ion_button_20_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.stopRecording()); });
32
+ i0.ɵɵtext(1, " Detener Grabaci\u00F3n ");
33
+ i0.ɵɵelementEnd();
34
+ } if (rf & 2) {
35
+ const ctx_r1 = i0.ɵɵnextContext();
36
+ i0.ɵɵproperty("disabled", !ctx_r1.canStopRecording);
37
+ } }
38
+ export class NativeVideoSelfieComponent {
39
+ constructor(modalController, platform, alertController, changeDetector, renderer) {
40
+ this.modalController = modalController;
41
+ this.platform = platform;
42
+ this.alertController = alertController;
43
+ this.changeDetector = changeDetector;
44
+ this.renderer = renderer;
45
+ this.text1 = 'Video Selfie';
46
+ this.text2 = 'Permanece quieto, con tu rostro en el centro del círculo.';
47
+ this.stream = null;
48
+ this.isRecording = false;
49
+ this.mediaRecorder = null;
50
+ this.recordedChunks = [];
51
+ this.countdown = 0;
52
+ this.minRecordingTime = 3000; // 3 segundos mínimo
53
+ this.maxRecordingTime = 5000; // 5 segundos máximo
54
+ this.timeRemaining = this.maxRecordingTime / 1000;
55
+ this.canStopRecording = true;
56
+ this.defaultBrightness = null;
57
+ this.isMobile = this.platform.is('android') || this.platform.is('ios');
58
+ }
59
+ async ngAfterViewInit() {
60
+ await this.initializeBrightness();
61
+ await this.requestPermissions();
62
+ // Esperar un momento para que el DOM esté completamente listo
63
+ setTimeout(async () => {
64
+ await this.initCamera();
65
+ }, 100);
66
+ }
67
+ async ngOnDestroy() {
68
+ this.stopCamera();
69
+ await this.restoreBrightness();
70
+ if (this.recordingTimer) {
71
+ clearTimeout(this.recordingTimer);
72
+ }
73
+ }
74
+ async initializeBrightness() {
75
+ if (!this.isMobile)
76
+ return;
77
+ try {
78
+ const { brightness } = await ScreenBrightness.getBrightness();
79
+ this.defaultBrightness = brightness;
80
+ await ScreenBrightness.setBrightness({ brightness: 1.0 });
81
+ console.log('✅ Brillo aumentado a máximo para video selfie');
82
+ }
83
+ catch (error) {
84
+ console.warn('⚠️ No se pudo ajustar el brillo:', error);
85
+ }
86
+ }
87
+ async restoreBrightness() {
88
+ if (this.defaultBrightness !== null) {
89
+ try {
90
+ await ScreenBrightness.setBrightness({ brightness: this.defaultBrightness });
91
+ console.log('✅ Brillo restaurado');
92
+ }
93
+ catch (error) {
94
+ console.warn('⚠️ No se pudo restaurar el brillo:', error);
95
+ }
96
+ }
97
+ }
98
+ async requestPermissions() {
99
+ if (!this.isMobile) {
100
+ console.log('No es móvil, permisos no requeridos');
101
+ return;
102
+ }
103
+ try {
104
+ const permissions = await Camera.requestPermissions({
105
+ permissions: ['camera']
106
+ });
107
+ if (permissions.camera === 'denied') {
108
+ console.error('Permiso de cámara denegado');
109
+ await this.showPermissionAlert();
110
+ }
111
+ }
112
+ catch (error) {
113
+ console.error('Error solicitando permisos:', error);
114
+ }
115
+ }
116
+ async initCamera() {
117
+ try {
118
+ console.log('🎥 Iniciando cámara para video selfie...');
119
+ if (!this.videoElement) {
120
+ console.error('❌ VideoElement no está disponible');
121
+ await this.showErrorAlert('Error: VideoElement no está disponible');
122
+ return;
123
+ }
124
+ const constraints = {
125
+ audio: true,
126
+ video: {
127
+ facingMode: 'user', // Cámara frontal para selfie
128
+ width: { ideal: 1280 },
129
+ height: { ideal: 720 },
130
+ aspectRatio: { ideal: 16 / 9 }
131
+ }
132
+ };
133
+ this.stream = await navigator.mediaDevices.getUserMedia(constraints);
134
+ console.log('✅ Stream obtenido:', this.stream.getTracks());
135
+ const video = this.videoElement.nativeElement;
136
+ video.srcObject = this.stream;
137
+ video.setAttribute('playsinline', 'true');
138
+ video.setAttribute('webkit-playsinline', 'true');
139
+ video.muted = true;
140
+ video.autoplay = true;
141
+ // Esperar a que el video esté listo
142
+ await new Promise((resolve) => {
143
+ video.onloadedmetadata = () => {
144
+ console.log('✅ Video metadata cargada');
145
+ resolve();
146
+ };
147
+ // Timeout de seguridad
148
+ setTimeout(() => resolve(), 1000);
149
+ });
150
+ await video.play();
151
+ console.log('✅ Video reproduciendo');
152
+ // Forzar detección de cambios
153
+ this.changeDetector.detectChanges();
154
+ await this.prepareRecorder();
155
+ }
156
+ catch (error) {
157
+ console.error('❌ Error iniciando cámara:', error);
158
+ await this.showErrorAlert('No se pudo acceder a la cámara: ' + error.message);
159
+ }
160
+ }
161
+ async prepareRecorder() {
162
+ if (!this.stream || !this.stream.getVideoTracks().length)
163
+ return;
164
+ const isIOS = this.platform.is('ios');
165
+ let mimeType = '';
166
+ if (isIOS && MediaRecorder.isTypeSupported('video/mp4')) {
167
+ mimeType = 'video/mp4';
168
+ }
169
+ else if (MediaRecorder.isTypeSupported('video/webm;codecs=vp8')) {
170
+ mimeType = 'video/webm;codecs=vp8';
171
+ }
172
+ else if (MediaRecorder.isTypeSupported('video/webm')) {
173
+ mimeType = 'video/webm';
174
+ }
175
+ else {
176
+ alert('Formato de video no soportado');
177
+ return;
178
+ }
179
+ const options = {
180
+ mimeType,
181
+ videoBitsPerSecond: 400_000,
182
+ };
183
+ this.mediaRecorder = new MediaRecorder(this.stream, options);
184
+ this.recordedChunks = [];
185
+ this.mediaRecorder.ondataavailable = (event) => {
186
+ if (event.data?.size > 0)
187
+ this.recordedChunks.push(event.data);
188
+ };
189
+ this.mediaRecorder.onerror = (event) => {
190
+ console.error('Error en recorder:', event);
191
+ alert('Error grabando video');
192
+ };
193
+ this.mediaRecorder.onstop = async () => {
194
+ if (!this.recordedChunks.length)
195
+ return;
196
+ const fileExtension = mimeType.includes('webm') ? 'webm' : 'mp4';
197
+ const blob = new Blob(this.recordedChunks, { type: mimeType });
198
+ const file = this.blobToFile(blob, `video-selfie.${fileExtension}`);
199
+ // Procesar y verificar
200
+ const success = await this.backFunction(file);
201
+ this.recordedChunks = [];
202
+ if (!success) {
203
+ console.log('⚠️ Validación falló, preparando para reintentar...');
204
+ // El componente padre manejará el reintento
205
+ }
206
+ };
207
+ }
208
+ recordVideo() {
209
+ this.countdown = 3;
210
+ const interval = setInterval(() => {
211
+ this.countdown -= 1;
212
+ if (this.countdown <= 0) {
213
+ clearInterval(interval);
214
+ this.startVideoRecord();
215
+ }
216
+ this.changeDetector.detectChanges();
217
+ }, 1000);
218
+ }
219
+ async startVideoRecord() {
220
+ if (this.mediaRecorder && !this.isRecording) {
221
+ await new Promise((r) => setTimeout(r, 500));
222
+ this.mediaRecorder.start();
223
+ this.isRecording = true;
224
+ this.canStopRecording = false;
225
+ this.renderer.addClass(this.progressRing.nativeElement, 'progress-active');
226
+ this.timeRemaining = this.maxRecordingTime / 1000;
227
+ this.updateTimeRemaining();
228
+ this.recordingTimer = setTimeout(async () => {
229
+ this.canStopRecording = true;
230
+ await this.stopRecording();
231
+ }, this.maxRecordingTime);
232
+ }
233
+ }
234
+ updateTimeRemaining() {
235
+ const timer = setInterval(() => {
236
+ if (this.isRecording) {
237
+ this.timeRemaining -= 1;
238
+ if (this.timeRemaining <= 0)
239
+ clearInterval(timer);
240
+ }
241
+ else {
242
+ clearInterval(timer);
243
+ }
244
+ this.changeDetector.detectChanges();
245
+ }, 1000);
246
+ }
247
+ async stopRecording() {
248
+ if (this.mediaRecorder && this.isRecording && this.canStopRecording) {
249
+ if (this.mediaRecorder.state !== 'inactive')
250
+ this.mediaRecorder.stop();
251
+ this.isRecording = false;
252
+ }
253
+ this.renderer.removeClass(this.progressRing.nativeElement, 'progress-active');
254
+ }
255
+ blobToFile(blob, fileName) {
256
+ const b = blob;
257
+ b.lastModified = Date.now();
258
+ b.lastModifiedDate = new Date();
259
+ b.name = fileName;
260
+ return b;
261
+ }
262
+ stopCamera() {
263
+ if (this.stream) {
264
+ this.stream.getTracks().forEach((track) => track.stop());
265
+ this.stream = null;
266
+ }
267
+ if (this.recordingTimer)
268
+ clearTimeout(this.recordingTimer);
269
+ }
270
+ async showPermissionAlert() {
271
+ const alert = await this.alertController.create({
272
+ header: 'Permiso requerido',
273
+ message: 'Se necesita acceso a la cámara y micrófono para grabar el video selfie.',
274
+ buttons: [
275
+ {
276
+ text: 'Cerrar',
277
+ role: 'cancel',
278
+ handler: () => this.closeOverlayVideo()
279
+ }
280
+ ]
281
+ });
282
+ await alert.present();
283
+ }
284
+ async showErrorAlert(message) {
285
+ const alert = await this.alertController.create({
286
+ header: 'Error',
287
+ message: `No se pudo grabar el video: ${message}`,
288
+ buttons: [
289
+ {
290
+ text: 'Reintentar',
291
+ handler: () => this.initCamera()
292
+ },
293
+ {
294
+ text: 'Cerrar',
295
+ role: 'cancel',
296
+ handler: () => this.closeOverlayVideo()
297
+ }
298
+ ]
299
+ });
300
+ await alert.present();
301
+ }
302
+ async closeOverlayVideo() {
303
+ this.stopCamera();
304
+ await this.restoreBrightness();
305
+ await this.modalController.dismiss();
306
+ }
307
+ closeRequestedFunction() {
308
+ this.closeOverlayVideo();
309
+ if (this.closeRequested) {
310
+ this.closeRequested();
311
+ }
312
+ }
313
+ static { this.ɵfac = function NativeVideoSelfieComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || NativeVideoSelfieComponent)(i0.ɵɵdirectiveInject(i1.ModalController), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i1.AlertController), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.Renderer2)); }; }
314
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NativeVideoSelfieComponent, selectors: [["app-native-video-selfie"]], viewQuery: function NativeVideoSelfieComponent_Query(rf, ctx) { if (rf & 1) {
315
+ i0.ɵɵviewQuery(_c0, 5);
316
+ i0.ɵɵviewQuery(_c1, 5);
317
+ } if (rf & 2) {
318
+ let _t;
319
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.videoElement = _t.first);
320
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.progressRing = _t.first);
321
+ } }, inputs: { text1: "text1", text2: "text2", backFunction: "backFunction", closeRequested: "closeRequested" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 21, vars: 9, consts: [["videoElement", ""], ["progressRing", ""], ["color", "light"], ["class", "countdown-overlay", 4, "ngIf"], [1, "ion-no-border"], ["slot", "end"], [3, "click", "disabled"], ["name", "close", "color", "dark"], [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"], [3, "ngClass"], [1, "text-center"], [1, "fixed-footer"], ["class", "button-grabar", "expand", "block", 3, "click", 4, "ngIf"], ["expand", "block", 3, "disabled", "click", 4, "ngIf"], [1, "countdown-overlay"], [1, "countdown"], ["expand", "block", 1, "button-grabar", 3, "click"], ["expand", "block", 3, "click", "disabled"]], template: function NativeVideoSelfieComponent_Template(rf, ctx) { if (rf & 1) {
322
+ const _r1 = i0.ɵɵgetCurrentView();
323
+ i0.ɵɵelementStart(0, "ion-content", 2);
324
+ i0.ɵɵtemplate(1, NativeVideoSelfieComponent_div_1_Template, 3, 1, "div", 3);
325
+ i0.ɵɵelementStart(2, "ion-header", 4)(3, "ion-toolbar", 2)(4, "ion-buttons", 5)(5, "ion-button", 6);
326
+ i0.ɵɵlistener("click", function NativeVideoSelfieComponent_Template_ion_button_click_5_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.closeOverlayVideo()); });
327
+ i0.ɵɵelement(6, "ion-icon", 7);
328
+ i0.ɵɵelementEnd()()()();
329
+ i0.ɵɵelementStart(7, "div", 8)(8, "div", 9);
330
+ i0.ɵɵelement(9, "video", 10, 0);
331
+ i0.ɵɵnamespaceSVG();
332
+ i0.ɵɵelementStart(11, "svg", 11, 1);
333
+ i0.ɵɵelement(13, "circle", 12);
334
+ i0.ɵɵelementEnd()();
335
+ i0.ɵɵnamespaceHTML();
336
+ i0.ɵɵelementStart(14, "ion-label", 13);
337
+ i0.ɵɵtext(15);
338
+ i0.ɵɵelementEnd();
339
+ i0.ɵɵelementStart(16, "p", 14);
340
+ i0.ɵɵtext(17);
341
+ i0.ɵɵelementEnd();
342
+ i0.ɵɵelementStart(18, "div", 15);
343
+ i0.ɵɵtemplate(19, NativeVideoSelfieComponent_ion_button_19_Template, 2, 0, "ion-button", 16)(20, NativeVideoSelfieComponent_ion_button_20_Template, 2, 1, "ion-button", 17);
344
+ i0.ɵɵelementEnd()()();
345
+ } if (rf & 2) {
346
+ i0.ɵɵadvance();
347
+ i0.ɵɵproperty("ngIf", ctx.countdown > 0);
348
+ i0.ɵɵadvance(4);
349
+ i0.ɵɵproperty("disabled", !ctx.canStopRecording);
350
+ i0.ɵɵadvance(9);
351
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c2, ctx.isRecording));
352
+ i0.ɵɵadvance();
353
+ i0.ɵɵtextInterpolate1(" 00:", ctx.timeRemaining < 10 ? "0" + ctx.timeRemaining : ctx.timeRemaining, " ");
354
+ i0.ɵɵadvance(2);
355
+ i0.ɵɵtextInterpolate(ctx.text2);
356
+ i0.ɵɵadvance(2);
357
+ i0.ɵɵproperty("ngIf", !ctx.isRecording);
358
+ i0.ɵɵadvance();
359
+ i0.ɵɵproperty("ngIf", ctx.isRecording);
360
+ } }, dependencies: [IonicModule, i1.IonButton, i1.IonButtons, i1.IonContent, i1.IonHeader, i1.IonIcon, i1.IonLabel, i1.IonToolbar, CommonModule, i2.NgClass, i2.NgIf], styles: [".countdown-overlay[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.8);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 9999;\n }\n\n .countdown[_ngcontent-%COMP%] {\n font-size: 120px;\n color: white;\n font-weight: bold;\n animation: _ngcontent-%COMP%_pulse 1s ease-in-out;\n }\n\n .camera-container[_ngcontent-%COMP%] {\n position: relative;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 20px;\n }\n\n .video-wrapper[_ngcontent-%COMP%] {\n position: relative;\n width: 100%;\n max-width: 500px;\n aspect-ratio: 1;\n border-radius: 50%;\n overflow: hidden;\n margin: 20px 0;\n }\n\n video[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n .progress-ring[_ngcontent-%COMP%] {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n pointer-events: none;\n }\n\n .progress-ring__circle[_ngcontent-%COMP%] {\n stroke: #4CAF50;\n stroke-width: 8;\n fill: none;\n stroke-dasharray: 942;\n stroke-dashoffset: 942;\n transform: rotate(-90deg);\n transform-origin: 50% 50%;\n transition: stroke-dashoffset 5s linear;\n }\n\n .progress-active[_ngcontent-%COMP%] .progress-ring__circle[_ngcontent-%COMP%] {\n stroke-dashoffset: 0;\n }\n\n ion-label[_ngcontent-%COMP%] {\n font-size: 32px;\n font-weight: bold;\n margin: 10px 0;\n }\n\n ion-label.red[_ngcontent-%COMP%] {\n color: #d32f2f;\n }\n\n .text-center[_ngcontent-%COMP%] {\n text-align: center;\n color: #666;\n margin: 10px 0;\n padding: 0 20px;\n }\n\n .fixed-footer[_ngcontent-%COMP%] {\n position: fixed;\n bottom: 20px;\n left: 20px;\n right: 20px;\n }\n\n .button-grabar[_ngcontent-%COMP%] {\n --background: #4CAF50;\n --background-hover: #45a049;\n }\n\n @keyframes _ngcontent-%COMP%_pulse {\n 0%, 100% { opacity: 1; transform: scale(1); }\n 50% { opacity: 0.8; transform: scale(0.95); }\n }"] }); }
361
+ }
362
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NativeVideoSelfieComponent, [{
363
+ type: Component,
364
+ args: [{ selector: 'app-native-video-selfie', standalone: true, imports: [IonicModule, CommonModule], template: `
365
+ <ion-content color="light">
366
+ <div *ngIf="countdown > 0" class="countdown-overlay">
367
+ <div class="countdown">{{ countdown }}</div>
368
+ </div>
369
+
370
+ <ion-header class="ion-no-border">
371
+ <ion-toolbar color="light">
372
+ <ion-buttons slot="end">
373
+ <ion-button (click)="closeOverlayVideo()" [disabled]="!canStopRecording">
374
+ <ion-icon name="close" color="dark"></ion-icon>
375
+ </ion-button>
376
+ </ion-buttons>
377
+ </ion-toolbar>
378
+ </ion-header>
379
+
380
+ <div class="camera-container">
381
+ <div class="video-wrapper">
382
+ <video #videoElement muted autoplay playsinline style="transform: scaleX(-1)"></video>
383
+ <svg class="progress-ring" #progressRing width="300" height="300">
384
+ <circle class="progress-ring__circle" cx="150" cy="150" r="150" />
385
+ </svg>
386
+ </div>
387
+
388
+ <ion-label [ngClass]="{'red': isRecording}">
389
+ 00:{{ timeRemaining < 10 ? '0' + timeRemaining : timeRemaining }}
390
+ </ion-label>
391
+
392
+ <p class="text-center">{{ text2 }}</p>
393
+
394
+ <div class="fixed-footer">
395
+ <ion-button
396
+ class="button-grabar"
397
+ *ngIf="!isRecording"
398
+ expand="block"
399
+ (click)="recordVideo()">
400
+ Iniciar Grabación
401
+ </ion-button>
402
+ <ion-button
403
+ *ngIf="isRecording"
404
+ expand="block"
405
+ (click)="stopRecording()"
406
+ [disabled]="!canStopRecording">
407
+ Detener Grabación
408
+ </ion-button>
409
+ </div>
410
+ </div>
411
+ </ion-content>
412
+ `, encapsulation: ViewEncapsulation.Emulated, styles: ["\n .countdown-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.8);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 9999;\n }\n\n .countdown {\n font-size: 120px;\n color: white;\n font-weight: bold;\n animation: pulse 1s ease-in-out;\n }\n\n .camera-container {\n position: relative;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 20px;\n }\n\n .video-wrapper {\n position: relative;\n width: 100%;\n max-width: 500px;\n aspect-ratio: 1;\n border-radius: 50%;\n overflow: hidden;\n margin: 20px 0;\n }\n\n video {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n .progress-ring {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n pointer-events: none;\n }\n\n .progress-ring__circle {\n stroke: #4CAF50;\n stroke-width: 8;\n fill: none;\n stroke-dasharray: 942;\n stroke-dashoffset: 942;\n transform: rotate(-90deg);\n transform-origin: 50% 50%;\n transition: stroke-dashoffset 5s linear;\n }\n\n .progress-active .progress-ring__circle {\n stroke-dashoffset: 0;\n }\n\n ion-label {\n font-size: 32px;\n font-weight: bold;\n margin: 10px 0;\n }\n\n ion-label.red {\n color: #d32f2f;\n }\n\n .text-center {\n text-align: center;\n color: #666;\n margin: 10px 0;\n padding: 0 20px;\n }\n\n .fixed-footer {\n position: fixed;\n bottom: 20px;\n left: 20px;\n right: 20px;\n }\n\n .button-grabar {\n --background: #4CAF50;\n --background-hover: #45a049;\n }\n\n @keyframes pulse {\n 0%, 100% { opacity: 1; transform: scale(1); }\n 50% { opacity: 0.8; transform: scale(0.95); }\n }\n "] }]
413
+ }], () => [{ type: i1.ModalController }, { type: i1.Platform }, { type: i1.AlertController }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }], { videoElement: [{
414
+ type: ViewChild,
415
+ args: ['videoElement']
416
+ }], progressRing: [{
417
+ type: ViewChild,
418
+ args: ['progressRing']
419
+ }], text1: [{
420
+ type: Input
421
+ }], text2: [{
422
+ type: Input
423
+ }], backFunction: [{
424
+ type: Input
425
+ }], closeRequested: [{
426
+ type: Input
427
+ }] }); })();
428
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NativeVideoSelfieComponent, { className: "NativeVideoSelfieComponent", filePath: "src\\app\\pages\\id-vision\\components\\native-video-selfie\\native-video-selfie.component.ts", lineNumber: 169 }); })();
429
+ //# sourceMappingURL=native-video-selfie.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-video-selfie.component.js","sourceRoot":"","sources":["../../../../../../../src/app/pages/id-vision/components/native-video-selfie/native-video-selfie.component.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { TestBed, waitForAsync } from '@angular/core/testing';
2
+ import { IonicModule } from '@ionic/angular';
3
+ import { NativeVideoSelfieComponent } from './native-video-selfie.component';
4
+ describe('NativeVideoSelfieComponent', () => {
5
+ let component;
6
+ let fixture;
7
+ beforeEach(waitForAsync(() => {
8
+ TestBed.configureTestingModule({
9
+ imports: [IonicModule.forRoot(), NativeVideoSelfieComponent]
10
+ }).compileComponents();
11
+ fixture = TestBed.createComponent(NativeVideoSelfieComponent);
12
+ component = fixture.componentInstance;
13
+ fixture.detectChanges();
14
+ }));
15
+ it('should create', () => {
16
+ expect(component).toBeTruthy();
17
+ });
18
+ });
19
+ //# sourceMappingURL=native-video-selfie.component.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-video-selfie.component.spec.js","sourceRoot":"","sources":["../../../../../../../src/app/pages/id-vision/components/native-video-selfie/native-video-selfie.component.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAE7E,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,IAAI,SAAqC,CAAC;IAC1C,IAAI,OAAqD,CAAC;IAE1D,UAAU,CAAC,YAAY,CAAC,GAAG,EAAE;QAC3B,OAAO,CAAC,sBAAsB,CAAC;YAC7B,OAAO,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,0BAA0B,CAAC;SAC7D,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAEvB,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,0BAA0B,CAAC,CAAC;QAC9D,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACtC,OAAO,CAAC,aAAa,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC,CAAC;IAEJ,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;QACvB,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "metag-sdk-ionic",
3
- "version": "1.2.7-native-0.13",
3
+ "version": "1.2.7-native-0.15",
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/",