metag-sdk-ionic 1.0.1 → 1.1.2
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.
- package/dist/assets/imagesIdVision/no-internet.svg +4 -0
- package/dist/src/app/pages/id-vision/components/camara-video-selfie/camara-video-selfie.component.d.ts.map +1 -1
- package/dist/src/app/pages/id-vision/components/camara-video-selfie/camara-video-selfie.component.js +26 -33
- package/dist/src/app/pages/id-vision/components/camara-video-selfie/camara-video-selfie.component.js.map +1 -1
- package/dist/src/app/pages/id-vision/components/camera-with-overlay/camera-with-overlay.component.d.ts +19 -15
- package/dist/src/app/pages/id-vision/components/camera-with-overlay/camera-with-overlay.component.d.ts.map +1 -1
- package/dist/src/app/pages/id-vision/components/camera-with-overlay/camera-with-overlay.component.js +157 -123
- package/dist/src/app/pages/id-vision/components/camera-with-overlay/camera-with-overlay.component.js.map +1 -1
- package/dist/src/app/pages/id-vision/id-vision.component.d.ts +13 -3
- package/dist/src/app/pages/id-vision/id-vision.component.d.ts.map +1 -1
- package/dist/src/app/pages/id-vision/id-vision.component.js +316 -258
- package/dist/src/app/pages/id-vision/id-vision.component.js.map +1 -1
- package/dist/src/app/pages/id-vision/services/dpi/dpi-service.service.d.ts +1 -1
- package/dist/src/app/pages/id-vision/services/dpi/dpi-service.service.d.ts.map +1 -1
- package/dist/src/app/pages/id-vision/services/dpi/dpi-service.service.js +7 -6
- package/dist/src/app/pages/id-vision/services/dpi/dpi-service.service.js.map +1 -1
- package/package.json +13 -12
package/dist/src/app/pages/id-vision/components/camera-with-overlay/camera-with-overlay.component.js
CHANGED
|
@@ -2,204 +2,238 @@ import { __awaiter } from "tslib";
|
|
|
2
2
|
import { Component, ElementRef, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
3
3
|
import { ModalController, Platform } from '@ionic/angular';
|
|
4
4
|
import { Camera } from '@capacitor/camera';
|
|
5
|
-
import { DomSanitizer } from '@angular/platform-browser';
|
|
6
5
|
import { Capacitor } from '@capacitor/core';
|
|
7
6
|
import { ModalDpiServices } from '../../services/modal-services/modal-dpi-services';
|
|
8
7
|
import * as i0 from "@angular/core";
|
|
9
8
|
import * as i1 from "@ionic/angular";
|
|
10
|
-
import * as i2 from "
|
|
11
|
-
import * as i3 from "
|
|
12
|
-
import * as i4 from "@angular/common";
|
|
9
|
+
import * as i2 from "../../services/modal-services/modal-dpi-services";
|
|
10
|
+
import * as i3 from "@angular/common";
|
|
13
11
|
const _c0 = ["videoElement"];
|
|
14
|
-
function
|
|
15
|
-
i0.ɵɵ
|
|
16
|
-
i0.ɵɵ
|
|
12
|
+
function CameraWithOverlayComponent_ion_fab_2_Template(rf, ctx) { if (rf & 1) {
|
|
13
|
+
const _r2 = i0.ɵɵgetCurrentView();
|
|
14
|
+
i0.ɵɵelementStart(0, "ion-fab", 16)(1, "ion-fab-button", 17);
|
|
15
|
+
i0.ɵɵlistener("click", function CameraWithOverlayComponent_ion_fab_2_Template_ion_fab_button_click_1_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleRearCam()); });
|
|
16
|
+
i0.ɵɵelement(2, "ion-icon", 18);
|
|
17
|
+
i0.ɵɵelementEnd()();
|
|
18
|
+
} }
|
|
19
|
+
function CameraWithOverlayComponent_div_9_Template(rf, ctx) { if (rf & 1) {
|
|
20
|
+
i0.ɵɵelementStart(0, "div", 19);
|
|
21
|
+
i0.ɵɵelement(1, "ion-spinner", 20);
|
|
17
22
|
i0.ɵɵelementEnd();
|
|
18
23
|
} }
|
|
19
24
|
export class CameraWithOverlayComponent {
|
|
20
|
-
|
|
21
|
-
constructor(platform, modalController, sanitizer, modaldpiServices) {
|
|
25
|
+
constructor(platform, modalController, modaldpiServices) {
|
|
22
26
|
this.platform = platform;
|
|
23
27
|
this.modalController = modalController;
|
|
24
|
-
this.sanitizer = sanitizer;
|
|
25
28
|
this.modaldpiServices = modaldpiServices;
|
|
29
|
+
/* ─── Inputs / Outputs ─── */
|
|
26
30
|
this.text1 = '';
|
|
27
31
|
this.text2 = '';
|
|
28
32
|
this.overlaySrc = '';
|
|
29
33
|
this.closeRequested = new EventEmitter();
|
|
30
|
-
|
|
34
|
+
/* ─── Estado ─── */
|
|
31
35
|
this.stream = null;
|
|
32
|
-
this.isLoading = true;
|
|
33
|
-
this.
|
|
34
|
-
this.
|
|
35
|
-
this.
|
|
36
|
-
|
|
37
|
-
ngOnDestroy() {
|
|
38
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
-
this.stopCamera();
|
|
40
|
-
});
|
|
36
|
+
this.isLoading = true;
|
|
37
|
+
this.rearCams = [];
|
|
38
|
+
this.selectedCamId = null;
|
|
39
|
+
this.currentRearIndex = 0; // ← índice de la lente trasera activa
|
|
40
|
+
this.isMobile = this.platform.is('android') || this.platform.is('ios');
|
|
41
41
|
}
|
|
42
|
+
/* ═════════ LIFE-CYCLE ═════════ */
|
|
42
43
|
ngAfterViewInit() {
|
|
43
44
|
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
-
if (this.
|
|
45
|
+
if (this.isMobile)
|
|
45
46
|
yield this.requestPermissions();
|
|
46
|
-
|
|
47
|
-
yield this.initCamera();
|
|
47
|
+
yield this.enumerateRearCams(); // llena rearCams y abre cámara por defecto
|
|
48
48
|
this.isLoading = false;
|
|
49
|
-
this.modaldpiServices.closeOverlay$.subscribe(() =>
|
|
50
|
-
|
|
51
|
-
});
|
|
52
|
-
this.modaldpiServices.resumeCameraSubject$.subscribe(() => {
|
|
53
|
-
this.resumeCamera();
|
|
54
|
-
});
|
|
49
|
+
this.modaldpiServices.closeOverlay$.subscribe(() => this.closeOverlay());
|
|
50
|
+
this.modaldpiServices.resumeCameraSubject$.subscribe(() => this.resumeCamera());
|
|
55
51
|
});
|
|
56
52
|
}
|
|
53
|
+
ngOnDestroy() {
|
|
54
|
+
this.stopCamera();
|
|
55
|
+
}
|
|
56
|
+
/* ═════════ Permisos ═════════ */
|
|
57
57
|
requestPermissions() {
|
|
58
58
|
return __awaiter(this, void 0, void 0, function* () {
|
|
59
59
|
if (Capacitor.getPlatform() !== 'web') {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
60
|
+
const { camera } = yield Camera.requestPermissions();
|
|
61
|
+
if (camera === 'denied')
|
|
62
|
+
console.error('Permiso de cámara denegado');
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
/* ═════════ Enumerar cámaras traseras ═════════ */
|
|
67
|
+
enumerateRearCams() {
|
|
68
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
69
|
+
let devices = (yield navigator.mediaDevices.enumerateDevices()).filter(d => d.kind === 'videoinput');
|
|
70
|
+
/* Si los labels vienen vacíos, pedimos un stream corto para que aparezcan. */
|
|
71
|
+
if (!devices.some(d => d.label)) {
|
|
72
|
+
try {
|
|
73
|
+
const tmp = yield navigator.mediaDevices.getUserMedia({ video: true });
|
|
74
|
+
tmp.getTracks().forEach(t => t.stop());
|
|
75
|
+
devices = (yield navigator.mediaDevices.enumerateDevices()).filter(d => d.kind === 'videoinput');
|
|
66
76
|
}
|
|
77
|
+
catch ( /* ignorar */_a) { /* ignorar */ }
|
|
78
|
+
}
|
|
79
|
+
this.rearCams = devices
|
|
80
|
+
.filter(d => /back|rear|environment/i.test(d.label))
|
|
81
|
+
.map((d, i) => ({ label: d.label || `Cámara trasera ${i + 1}`, deviceId: d.deviceId }));
|
|
82
|
+
if (!this.rearCams.length && devices.length > 1) {
|
|
83
|
+
/* plan B – todo menos la primera (suele ser frontal) */
|
|
84
|
+
this.rearCams = devices.slice(1).map((d, i) => ({
|
|
85
|
+
label: d.label || `Cámara ${i + 1}`,
|
|
86
|
+
deviceId: d.deviceId
|
|
87
|
+
}));
|
|
88
|
+
}
|
|
89
|
+
/* ─── Elegir la cámara por defecto ─── */
|
|
90
|
+
if (this.rearCams.length) {
|
|
91
|
+
let preferred = this.rearCams.find(c => /camera2\s?0/i.test(c.label)); // 1) “camera2 0…”
|
|
92
|
+
if (!preferred)
|
|
93
|
+
preferred = this.rearCams.find(c => /back/i.test(c.label)); // 2) cualquier “back”
|
|
94
|
+
const chosen = preferred !== null && preferred !== void 0 ? preferred : this.rearCams[0]; // 3) primera
|
|
95
|
+
this.selectedCamId = chosen.deviceId;
|
|
96
|
+
this.currentRearIndex = this.rearCams.findIndex(c => c.deviceId === chosen.deviceId);
|
|
97
|
+
yield this.openCamera(this.selectedCamId);
|
|
98
|
+
}
|
|
99
|
+
else if (devices.length) {
|
|
100
|
+
/* Fallback final: primera cámara disponible */
|
|
101
|
+
yield this.openCamera(devices[0].deviceId);
|
|
67
102
|
}
|
|
68
103
|
});
|
|
69
104
|
}
|
|
70
|
-
|
|
105
|
+
/* ═════════ Abrir / cambiar cámara ═════════ */
|
|
106
|
+
openCamera(deviceId) {
|
|
71
107
|
return __awaiter(this, void 0, void 0, function* () {
|
|
108
|
+
this.stopCamera();
|
|
109
|
+
if (!deviceId)
|
|
110
|
+
return;
|
|
72
111
|
try {
|
|
73
|
-
|
|
112
|
+
this.stream = yield navigator.mediaDevices.getUserMedia({
|
|
74
113
|
video: {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
114
|
+
deviceId: { exact: deviceId },
|
|
115
|
+
width: { ideal: 1920 }, // ◄── full-HD
|
|
116
|
+
height: { ideal: 1080 },
|
|
117
|
+
aspectRatio: 1.7777778
|
|
78
118
|
},
|
|
79
119
|
audio: false
|
|
80
|
-
};
|
|
81
|
-
this.stream
|
|
82
|
-
const videoElement = this.videoElement.nativeElement;
|
|
83
|
-
videoElement.srcObject = this.stream;
|
|
84
|
-
videoElement.autoplay = true;
|
|
85
|
-
videoElement.playsInline = true;
|
|
86
|
-
videoElement.muted = true;
|
|
87
|
-
videoElement.onloadedmetadata = () => {
|
|
88
|
-
videoElement.play().catch((error) => {
|
|
89
|
-
console.error('Error al intentar reproducir el video:', error);
|
|
90
|
-
});
|
|
91
|
-
};
|
|
120
|
+
});
|
|
121
|
+
this.attachStream(this.stream);
|
|
92
122
|
}
|
|
93
|
-
catch (
|
|
94
|
-
console.error('
|
|
95
|
-
this.isLoading = false;
|
|
123
|
+
catch (err) {
|
|
124
|
+
console.error('No se pudo abrir la cámara:', err);
|
|
96
125
|
}
|
|
97
126
|
});
|
|
98
127
|
}
|
|
128
|
+
/** Avanza al siguiente sensor trasero en modo carrusel */
|
|
129
|
+
toggleRearCam() {
|
|
130
|
+
if (!this.rearCams.length)
|
|
131
|
+
return;
|
|
132
|
+
this.currentRearIndex = (this.currentRearIndex + 1) % this.rearCams.length;
|
|
133
|
+
const nextCam = this.rearCams[this.currentRearIndex];
|
|
134
|
+
this.selectedCamId = nextCam.deviceId;
|
|
135
|
+
this.openCamera(nextCam.deviceId);
|
|
136
|
+
}
|
|
137
|
+
attachStream(stream) {
|
|
138
|
+
const video = this.videoElement.nativeElement;
|
|
139
|
+
video.srcObject = stream;
|
|
140
|
+
video.autoplay = true;
|
|
141
|
+
video.playsInline = true;
|
|
142
|
+
video.muted = true;
|
|
143
|
+
video.onloadedmetadata = () => video.play().catch(console.error);
|
|
144
|
+
}
|
|
145
|
+
/* ═════════ Captura de foto ═════════ */
|
|
99
146
|
capturePhoto() {
|
|
100
147
|
return __awaiter(this, void 0, void 0, function* () {
|
|
101
|
-
|
|
102
|
-
|
|
148
|
+
var _a;
|
|
149
|
+
if (!this.stream)
|
|
150
|
+
return console.error('Cámara no inicializada.');
|
|
151
|
+
const video = this.videoElement.nativeElement;
|
|
152
|
+
const canvas = document.createElement('canvas');
|
|
153
|
+
canvas.width = video.videoWidth || 1920;
|
|
154
|
+
canvas.height = video.videoHeight || 1080;
|
|
155
|
+
const ctx = canvas.getContext('2d');
|
|
156
|
+
if (!ctx)
|
|
103
157
|
return;
|
|
158
|
+
ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
|
|
159
|
+
const toBlob = (q) => new Promise(res => canvas.toBlob(b => res(b), 'image/jpeg', q));
|
|
160
|
+
let quality = 0.98;
|
|
161
|
+
let blob = yield toBlob(quality);
|
|
162
|
+
const maxBytes = 3 * 1024 * 1024;
|
|
163
|
+
while (blob && blob.size > maxBytes && quality > 0.4) {
|
|
164
|
+
quality -= 0.05;
|
|
165
|
+
blob = yield toBlob(quality);
|
|
104
166
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
context.drawImage(videoElement, 0, 0, canvas.width, canvas.height);
|
|
113
|
-
let quality = 0.98;
|
|
114
|
-
// Convierte el contenido del canvas a un Blob
|
|
115
|
-
canvas.toBlob((blob) => {
|
|
116
|
-
if (blob && blob.size > 0) {
|
|
117
|
-
if (blob.size > 2 * 1024 * 1024) {
|
|
118
|
-
quality = 0.85;
|
|
119
|
-
}
|
|
120
|
-
this.file = this.blobToFile(blob, 'dpi.jpeg');
|
|
121
|
-
videoElement.pause();
|
|
122
|
-
this.onTakePicture(this.file).catch((err) => console.error('Error en onTakePicture:', err));
|
|
123
|
-
}
|
|
124
|
-
else {
|
|
125
|
-
console.error('El Blob generado está vacío o no válido.');
|
|
126
|
-
}
|
|
127
|
-
}, 'image/jpeg', quality);
|
|
128
|
-
//this.closeOverlay();
|
|
167
|
+
if (blob && blob.size <= maxBytes) {
|
|
168
|
+
const file = new File([blob], 'dpi.jpeg', { type: 'image/jpeg' });
|
|
169
|
+
video.pause();
|
|
170
|
+
yield ((_a = this.onTakePicture) === null || _a === void 0 ? void 0 : _a.call(this, file));
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
console.error('Imagen > 3 MB.');
|
|
129
174
|
}
|
|
130
175
|
});
|
|
131
176
|
}
|
|
132
|
-
|
|
133
|
-
const b = blob;
|
|
134
|
-
b.lastModified = new Date().getTime();
|
|
135
|
-
b.lastModifiedDate = new Date();
|
|
136
|
-
b.name = fileName;
|
|
137
|
-
//Cast to a File() type
|
|
138
|
-
return b;
|
|
139
|
-
}
|
|
177
|
+
/* ═════════ Utilidades ─ cierre / reanudar ═════════ */
|
|
140
178
|
stopCamera() {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
}
|
|
179
|
+
var _a;
|
|
180
|
+
(_a = this.stream) === null || _a === void 0 ? void 0 : _a.getTracks().forEach(t => t.stop());
|
|
181
|
+
this.stream = null;
|
|
145
182
|
}
|
|
146
183
|
closeOverlay() {
|
|
147
184
|
this.stopCamera();
|
|
148
185
|
this.modalController.dismiss();
|
|
149
186
|
}
|
|
150
|
-
closeRequestedFunction() {
|
|
151
|
-
this.closeOverlay();
|
|
152
|
-
this.modaldpiServices.requestCloseOverlay();
|
|
153
|
-
}
|
|
154
187
|
resumeCamera() {
|
|
155
188
|
var _a;
|
|
156
|
-
const
|
|
157
|
-
if (
|
|
158
|
-
|
|
159
|
-
console.error('Error al intentar reanudar el video:', error);
|
|
160
|
-
});
|
|
161
|
-
}
|
|
189
|
+
const video = (_a = this.videoElement) === null || _a === void 0 ? void 0 : _a.nativeElement;
|
|
190
|
+
if (video && video.paused)
|
|
191
|
+
video.play().catch(console.error);
|
|
162
192
|
}
|
|
163
193
|
}
|
|
164
|
-
CameraWithOverlayComponent.ɵfac = function CameraWithOverlayComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CameraWithOverlayComponent)(i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i1.ModalController), i0.ɵɵdirectiveInject(i2.
|
|
194
|
+
CameraWithOverlayComponent.ɵfac = function CameraWithOverlayComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CameraWithOverlayComponent)(i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i1.ModalController), i0.ɵɵdirectiveInject(i2.ModalDpiServices)); };
|
|
165
195
|
CameraWithOverlayComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CameraWithOverlayComponent, selectors: [["app-camera-overlay"]], viewQuery: function CameraWithOverlayComponent_Query(rf, ctx) { if (rf & 1) {
|
|
166
196
|
i0.ɵɵviewQuery(_c0, 5);
|
|
167
197
|
} if (rf & 2) {
|
|
168
198
|
let _t;
|
|
169
199
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.videoElement = _t.first);
|
|
170
|
-
} }, inputs: { text1: "text1", text2: "text2", overlaySrc: "overlaySrc", onTakePicture: "onTakePicture" }, outputs: { closeRequested: "closeRequested" }, decls:
|
|
200
|
+
} }, inputs: { text1: "text1", text2: "text2", overlaySrc: "overlaySrc", onTakePicture: "onTakePicture" }, outputs: { closeRequested: "closeRequested" }, decls: 19, vars: 4, consts: [["videoElement", ""], ["color", "dark"], [1, "camera-overlay"], ["vertical", "top", "horizontal", "start", "slot", "fixed", 4, "ngIf"], [1, "header-text"], [1, "text-help"], [1, "country"], ["class", "loading-overlay", 4, "ngIf"], [1, "visible-window"], [1, "camera-container"], ["autoplay", "", "muted", "", "playsinline", ""], [1, "button-container"], ["shape", "round", "expand", "block", 1, "capture-button", 3, "click"], ["name", "camera-outline"], ["fill", "clear", 1, "close-button", 3, "click"], ["name", "close-outline"], ["vertical", "top", "horizontal", "start", "slot", "fixed"], ["size", "small", 1, "buttonfabCameraChange", 3, "click"], ["name", "camera-reverse-outline"], [1, "loading-overlay"], ["name", "crescent"]], template: function CameraWithOverlayComponent_Template(rf, ctx) { if (rf & 1) {
|
|
171
201
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
172
|
-
i0.ɵɵelementStart(0, "ion-content", 1)(1, "div", 2)
|
|
173
|
-
i0.ɵɵ
|
|
202
|
+
i0.ɵɵelementStart(0, "ion-content", 1)(1, "div", 2);
|
|
203
|
+
i0.ɵɵtemplate(2, CameraWithOverlayComponent_ion_fab_2_Template, 3, 0, "ion-fab", 3);
|
|
204
|
+
i0.ɵɵelementStart(3, "div", 4)(4, "div", 5)(5, "p");
|
|
205
|
+
i0.ɵɵtext(6);
|
|
174
206
|
i0.ɵɵelementEnd()();
|
|
175
|
-
i0.ɵɵelementStart(
|
|
176
|
-
i0.ɵɵtext(
|
|
207
|
+
i0.ɵɵelementStart(7, "p", 6);
|
|
208
|
+
i0.ɵɵtext(8);
|
|
177
209
|
i0.ɵɵelementEnd()();
|
|
178
|
-
i0.ɵɵtemplate(
|
|
179
|
-
i0.ɵɵelement(
|
|
180
|
-
i0.ɵɵelementStart(
|
|
181
|
-
i0.ɵɵelement(
|
|
210
|
+
i0.ɵɵtemplate(9, CameraWithOverlayComponent_div_9_Template, 2, 0, "div", 7);
|
|
211
|
+
i0.ɵɵelement(10, "div", 8);
|
|
212
|
+
i0.ɵɵelementStart(11, "div", 9);
|
|
213
|
+
i0.ɵɵelement(12, "video", 10, 0);
|
|
182
214
|
i0.ɵɵelementEnd();
|
|
183
|
-
i0.ɵɵelementStart(
|
|
184
|
-
i0.ɵɵlistener("click", function
|
|
185
|
-
i0.ɵɵelement(
|
|
215
|
+
i0.ɵɵelementStart(14, "div", 11)(15, "ion-button", 12);
|
|
216
|
+
i0.ɵɵlistener("click", function CameraWithOverlayComponent_Template_ion_button_click_15_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.capturePhoto()); });
|
|
217
|
+
i0.ɵɵelement(16, "ion-icon", 13);
|
|
186
218
|
i0.ɵɵelementEnd()();
|
|
187
|
-
i0.ɵɵelementStart(
|
|
188
|
-
i0.ɵɵlistener("click", function
|
|
189
|
-
i0.ɵɵelement(
|
|
219
|
+
i0.ɵɵelementStart(17, "ion-button", 14);
|
|
220
|
+
i0.ɵɵlistener("click", function CameraWithOverlayComponent_Template_ion_button_click_17_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.closeOverlay()); });
|
|
221
|
+
i0.ɵɵelement(18, "ion-icon", 15);
|
|
190
222
|
i0.ɵɵelementEnd()()();
|
|
191
223
|
} if (rf & 2) {
|
|
192
|
-
i0.ɵɵadvance(
|
|
224
|
+
i0.ɵɵadvance(2);
|
|
225
|
+
i0.ɵɵproperty("ngIf", ctx.rearCams.length > 1);
|
|
226
|
+
i0.ɵɵadvance(4);
|
|
193
227
|
i0.ɵɵtextInterpolate(ctx.text1);
|
|
194
228
|
i0.ɵɵadvance(2);
|
|
195
229
|
i0.ɵɵtextInterpolate(ctx.text2);
|
|
196
230
|
i0.ɵɵadvance();
|
|
197
231
|
i0.ɵɵproperty("ngIf", ctx.isLoading);
|
|
198
|
-
} }, dependencies: [
|
|
232
|
+
} }, dependencies: [i3.NgIf, i1.IonButton, i1.IonContent, i1.IonFab, i1.IonFabButton, i1.IonIcon, i1.IonSpinner], styles: ["ion-content[_ngcontent-%COMP%] {\n --background: black;\n padding: 0;\n margin: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100vh;\n\n}\n\n.modal-container[_ngcontent-%COMP%] {\n max-width: 400px; // Ajusta el valor seg\u00FAn tus necesidades\n\n}\n\n.camera-overlay[_ngcontent-%COMP%] {\n position: relative;\n width: 100vw;\n height: 100vh;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n}\n\n.camera-container[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n position: relative;\n\n video {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n}\n\n.overlay-frame[_ngcontent-%COMP%] {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n max-width: 70%;\n max-height: 70%;\n z-index: 9;\n}\n\n.header-text[_ngcontent-%COMP%] {\n position: absolute;\n top: 50px;\n width: 100%;\n text-align: center;\n color: white;\n z-index: 15;\n\n p {\n margin: 0;\n font-size: 18px;\n }\n\n .country {\n font-weight: bold;\n }\n}\n\n.button-container[_ngcontent-%COMP%] {\n position: absolute;\n bottom: 20px;\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 10;\n}\n\n.capture-button[_ngcontent-%COMP%] {\n width: 70px;\n height: 70px;\n border-radius: 50%;\n\n\n --background: var(--purple-primary);\n --background-hover: var(--purple-secondary);\n --background-activated: var(--purple-secondary);\n --background-focused: var(--purple-secondary);\n \n --color: white;\n \n --border-color: var(--purple-primary);\n --border-style: solid;\n --border-width: 1px;\n \n --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.25);\n \n --ripple-color: var(--purple-secondary);\n}\n\n.close-button[_ngcontent-%COMP%] {\n position: absolute;\n top: 14px;\n right: 20px;\n color: white;\n z-index: 10;\n}\n\n.visible-window[_ngcontent-%COMP%] {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n // width: 70%; \n\n // height: 45%; \n\n\n width: 313px;\n height: 500px;\n\n max-width: 90%;\n max-height: 90%;\n background: transparent;\n border: 2px solid white; \n\n border-radius: 10px; \n\n z-index: 10; \n\n box-shadow: 0 0 0 100vw rgba(0, 0, 0, 0.65); \n\n}\n.text-help[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{\n display: inline-block; \n\n background-color: white; \n\n padding: 5px; \n\n border-radius: 5px; \n\n color: black; \n\n box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1); \n\n animation: _ngcontent-%COMP%_popIn 1s ease-in-out; \n\n}\n\n\n\n@keyframes _ngcontent-%COMP%_popIn {\n 0% {\n transform: scale(0.8); \n\n opacity: 0; \n\n }\n 50% {\n transform: scale(1.1); \n\n opacity: 1; \n\n }\n 100% {\n transform: scale(1); \n\n }\n}\n\n.loading-overlay[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background-color: rgba(0, 0, 0, 0.8); \n\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000; \n\n}\n\nion-spinner[_ngcontent-%COMP%] {\n color: white;\n width: 50px;\n height: 50px;\n}\n\n\n\n.camera-select[_ngcontent-%COMP%] {\n position: absolute;\n top: 1rem;\n left: 1rem;\n background: rgba(0, 0, 0, 0.7);\n padding: 0.5rem;\n border-radius: 0.5rem;\n z-index: 999;\n display: flex;\n align-items: center;\n color: white;\n\n label {\n margin-right: 0.5rem;\n font-size: 14px;\n }\n\n select {\n background: transparent;\n color: white;\n border: 1px solid white;\n border-radius: 0.3rem;\n font-size: 14px;\n padding: 0.2rem;\n }\n}\n\n.buttonfabCameraChange[_ngcontent-%COMP%] {\n --background: rgba(0, 0, 0, 0.6);\n --color: #fff;\n //box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);\n \n\n \n\n}"] });
|
|
199
233
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CameraWithOverlayComponent, [{
|
|
200
234
|
type: Component,
|
|
201
|
-
args: [{ selector: 'app-camera-overlay', encapsulation: ViewEncapsulation.Emulated, template: "<ion-content color=\"dark\">\n <div class=\"camera-overlay\">\n <div class=\"header-text\">\n <div class=\"text-help\">\n <p>{{text1}}</p>\n </div>\n <p class=\"country\">{{text2}}</p>\n </div
|
|
202
|
-
}], () => [{ type: i1.Platform }, { type: i1.ModalController }, { type: i2.
|
|
235
|
+
args: [{ selector: 'app-camera-overlay', encapsulation: ViewEncapsulation.Emulated, template: "<ion-content color=\"dark\">\n <div class=\"camera-overlay\">\n <ion-fab vertical=\"top\" horizontal=\"start\" slot=\"fixed\" *ngIf=\"rearCams.length > 1\">\n <ion-fab-button\n class=\"buttonfabCameraChange\"\n size=\"small\"\n (click)=\"toggleRearCam()\">\n <ion-icon name=\"camera-reverse-outline\"></ion-icon>\n </ion-fab-button>\n </ion-fab>\n <!-- \u25B8 Encabezado ---------------------------------------------------- -->\n <div class=\"header-text\">\n <div class=\"text-help\">\n <p>{{ text1 }}</p>\n </div>\n <p class=\"country\">{{ text2 }}</p>\n\n <!-- \u25B8 Selector de c\u00E1maras traseras (solo se muestra si hay varias) -->\n <!-- <ion-item class=\"cam-picker\" lines=\"none\">\n <ion-label>Elegir c\u00E1mara</ion-label>\n <ion-select interface=\"popover\"\n [value]=\"selectedCamId\"\n (ionChange)=\"onSelectCam($event)\">\n <ion-select-option *ngFor=\"let cam of rearCams\"\n [value]=\"cam.deviceId\">\n {{ cam.label }}\n </ion-select-option>\n </ion-select>\n </ion-item>-->\n </div> \n\n <!-- \u25B8 Loader mientras inicializa ------------------------------------ -->\n <div *ngIf=\"isLoading\" class=\"loading-overlay\">\n <ion-spinner name=\"crescent\"></ion-spinner>\n </div>\n\n <!-- \u25B8 Capa oscura con recorte (tu ventana de enfoque) --------------- -->\n <div class=\"visible-window\"></div>\n\n <!-- \u25B8 Contenedor del v\u00EDdeo + overlay -------------------------------- -->\n <div class=\"camera-container\">\n <video #videoElement autoplay muted playsinline></video>\n <!-- <img [src]=\"overlaySrc\" alt=\"Overlay\" class=\"overlay-frame\" /> -->\n </div>\n\n <!-- \u25B8 Bot\u00F3n de captura ---------------------------------------------- -->\n <div class=\"button-container\">\n <ion-button (click)=\"capturePhoto()\"\n class=\"capture-button\"\n shape=\"round\"\n expand=\"block\">\n <ion-icon name=\"camera-outline\"></ion-icon>\n </ion-button>\n </div>\n\n <!-- \u25B8 Bot\u00F3n de cerrar ------------------------------------------------ -->\n <ion-button fill=\"clear\"\n (click)=\"closeOverlay()\"\n class=\"close-button\">\n <ion-icon name=\"close-outline\"></ion-icon>\n </ion-button>\n </div>\n</ion-content>\n", styles: ["ion-content {\n --background: black;\n padding: 0;\n margin: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100vh;\n\n}\n\n.modal-container {\n max-width: 400px; // Ajusta el valor seg\u00FAn tus necesidades\n\n}\n\n.camera-overlay {\n position: relative;\n width: 100vw;\n height: 100vh;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n}\n\n.camera-container {\n width: 100%;\n height: 100%;\n position: relative;\n\n video {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n}\n\n.overlay-frame {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n max-width: 70%;\n max-height: 70%;\n z-index: 9;\n}\n\n.header-text {\n position: absolute;\n top: 50px;\n width: 100%;\n text-align: center;\n color: white;\n z-index: 15;\n\n p {\n margin: 0;\n font-size: 18px;\n }\n\n .country {\n font-weight: bold;\n }\n}\n\n.button-container {\n position: absolute;\n bottom: 20px;\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 10;\n}\n\n.capture-button {\n width: 70px;\n height: 70px;\n border-radius: 50%;\n\n\n --background: var(--purple-primary);\n --background-hover: var(--purple-secondary);\n --background-activated: var(--purple-secondary);\n --background-focused: var(--purple-secondary);\n \n --color: white;\n \n --border-color: var(--purple-primary);\n --border-style: solid;\n --border-width: 1px;\n \n --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.25);\n \n --ripple-color: var(--purple-secondary);\n}\n\n.close-button {\n position: absolute;\n top: 14px;\n right: 20px;\n color: white;\n z-index: 10;\n}\n\n.visible-window {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n // width: 70%; /* Ajusta el tama\u00F1o del cuadro */\n // height: 45%; /* Ajusta el tama\u00F1o del cuadro */\n\n width: 313px;\n height: 500px;\n\n max-width: 90%;\n max-height: 90%;\n background: transparent;\n border: 2px solid white; /* Color y grosor del borde */\n border-radius: 10px; /* Ajusta para redondear las esquinas */\n z-index: 10; /* Aseg\u00FArate de que est\u00E9 encima del overlay oscuro */\n box-shadow: 0 0 0 100vw rgba(0, 0, 0, 0.65); /* Oscurece fuera del cuadro */\n}\n.text-help p{\n display: inline-block; /* Hace que solo el texto ocupe espacio */\n background-color: white; /* Color de fondo del texto */\n padding: 5px; /* Espaciado interno para una mejor visualizaci\u00F3n */\n border-radius: 5px; /* Opcional, para esquinas redondeadas */\n color: black; /* Color del texto */\n box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1); /* Sombra leve */\n animation: popIn 1s ease-in-out; /* Agrega la animaci\u00F3n al aparecer */\n}\n\n/* Definimos la animaci\u00F3n \"popIn\" */\n@keyframes popIn {\n 0% {\n transform: scale(0.8); /* Comienza m\u00E1s peque\u00F1o */\n opacity: 0; /* Empieza invisible */\n }\n 50% {\n transform: scale(1.1); /* Crece un poco m\u00E1s de lo normal */\n opacity: 1; /* Se hace visible */\n }\n 100% {\n transform: scale(1); /* Vuelve a su tama\u00F1o normal */\n }\n}\n\n.loading-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background-color: rgba(0, 0, 0, 0.8); /* Fondo oscuro semi-transparente */\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000; /* Aseg\u00FArate de que est\u00E9 por encima del contenido */\n}\n\nion-spinner {\n color: white;\n width: 50px;\n height: 50px;\n}\n\n\n\n.camera-select {\n position: absolute;\n top: 1rem;\n left: 1rem;\n background: rgba(0, 0, 0, 0.7);\n padding: 0.5rem;\n border-radius: 0.5rem;\n z-index: 999;\n display: flex;\n align-items: center;\n color: white;\n\n label {\n margin-right: 0.5rem;\n font-size: 14px;\n }\n\n select {\n background: transparent;\n color: white;\n border: 1px solid white;\n border-radius: 0.3rem;\n font-size: 14px;\n padding: 0.2rem;\n }\n}\n\n.buttonfabCameraChange {\n --background: rgba(0, 0, 0, 0.6);\n --color: #fff;\n //box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);\n /* ajusta posici\u00F3n extra si lo necesitas */\n /* margin-top: 8px; margin-left: 8px; */\n}\n"] }]
|
|
236
|
+
}], () => [{ type: i1.Platform }, { type: i1.ModalController }, { type: i2.ModalDpiServices }], { videoElement: [{
|
|
203
237
|
type: ViewChild,
|
|
204
238
|
args: ['videoElement']
|
|
205
239
|
}], text1: [{
|
|
@@ -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":";AAAA,OAAO,
|
|
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,14 +1,17 @@
|
|
|
1
1
|
import { AfterViewInit, ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
|
|
2
|
-
import { AlertController, IonInput, LoadingController, ModalController, NavController, Platform } from '@ionic/angular';
|
|
2
|
+
import { AlertController, IonInput, LoadingController, ModalController, NavController, Platform, ToastController } from '@ionic/angular';
|
|
3
3
|
import { DpiService } from './services/dpi/dpi-service.service';
|
|
4
4
|
import { ModalDpiServices } from './services/modal-services/modal-dpi-services';
|
|
5
5
|
import { ModalVideoSelfieServices } from './services/modal-services/modal-video-selfie-services';
|
|
6
6
|
import { SdkCommunicationService } from './services/modal-services/sdk-communication-services';
|
|
7
7
|
import { ValidateMetaGService } from './services/validate-meta-g/validate-meta-g';
|
|
8
|
+
import { PluginListenerHandle } from '@capacitor/core';
|
|
9
|
+
import { NgZone } from '@angular/core';
|
|
8
10
|
import { SwiperContainer } from './../../../swiper-wrapper';
|
|
9
11
|
import { PhotoSelfieServices } from './services/modal-services/photo-selfie-services';
|
|
10
12
|
import * as i0 from "@angular/core";
|
|
11
13
|
export declare class IdVisionComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
14
|
+
private zone;
|
|
12
15
|
private modalController;
|
|
13
16
|
private dpiService;
|
|
14
17
|
private alertController;
|
|
@@ -21,6 +24,7 @@ export declare class IdVisionComponent implements OnInit, AfterViewInit, OnDestr
|
|
|
21
24
|
private validateMetaGService;
|
|
22
25
|
private cdRef;
|
|
23
26
|
private photoSelfieServices;
|
|
27
|
+
private toastController;
|
|
24
28
|
dpi: IonInput;
|
|
25
29
|
private isAndroid;
|
|
26
30
|
private isIOS;
|
|
@@ -28,7 +32,7 @@ export declare class IdVisionComponent implements OnInit, AfterViewInit, OnDestr
|
|
|
28
32
|
tutoImage2: string;
|
|
29
33
|
tutoImage3: string;
|
|
30
34
|
tutoImage4: string;
|
|
31
|
-
constructor(modalController: ModalController, dpiService: DpiService, alertController: AlertController, loadingController: LoadingController, platform: Platform, modalDpiServices: ModalDpiServices, modalVideoSelfieServices: ModalVideoSelfieServices, sdkCommunicationService: SdkCommunicationService, navController: NavController, validateMetaGService: ValidateMetaGService, cdRef: ChangeDetectorRef, photoSelfieServices: PhotoSelfieServices);
|
|
35
|
+
constructor(zone: NgZone, modalController: ModalController, dpiService: DpiService, alertController: AlertController, loadingController: LoadingController, platform: Platform, modalDpiServices: ModalDpiServices, modalVideoSelfieServices: ModalVideoSelfieServices, sdkCommunicationService: SdkCommunicationService, navController: NavController, validateMetaGService: ValidateMetaGService, cdRef: ChangeDetectorRef, photoSelfieServices: PhotoSelfieServices, toastController: ToastController);
|
|
32
36
|
swiperElement: import("@angular/core").WritableSignal<SwiperContainer | null>;
|
|
33
37
|
private modalRef;
|
|
34
38
|
isSwipe: boolean;
|
|
@@ -36,6 +40,9 @@ export declare class IdVisionComponent implements OnInit, AfterViewInit, OnDestr
|
|
|
36
40
|
connection: string;
|
|
37
41
|
apikey: string;
|
|
38
42
|
validationConfig: any[];
|
|
43
|
+
showDebug: boolean;
|
|
44
|
+
versionSDK: string;
|
|
45
|
+
hasInternet: boolean;
|
|
39
46
|
validateMetaG: {
|
|
40
47
|
acuerdoVideo: boolean;
|
|
41
48
|
dpiFront: boolean;
|
|
@@ -51,12 +58,13 @@ export declare class IdVisionComponent implements OnInit, AfterViewInit, OnDestr
|
|
|
51
58
|
showVideoSelfie: boolean;
|
|
52
59
|
showPhotoSelfie: boolean;
|
|
53
60
|
isValid: boolean;
|
|
61
|
+
networkListener: PluginListenerHandle | undefined;
|
|
54
62
|
loadMockValidationConfig(): Promise<void>;
|
|
55
63
|
getStepAction(type: number): () => void;
|
|
56
64
|
setValidationConfig(): void;
|
|
57
65
|
ngOnInit(): Promise<void>;
|
|
58
66
|
ngAfterViewInit(): void;
|
|
59
|
-
ngOnDestroy(): void
|
|
67
|
+
ngOnDestroy(): Promise<void>;
|
|
60
68
|
handleClick(): void;
|
|
61
69
|
handleSlide(slide: number): Promise<void>;
|
|
62
70
|
handleGetInit(): void;
|
|
@@ -92,6 +100,8 @@ export declare class IdVisionComponent implements OnInit, AfterViewInit, OnDestr
|
|
|
92
100
|
openVideoSelfie(): Promise<void>;
|
|
93
101
|
openPhotoSelfie(): Promise<void>;
|
|
94
102
|
openSimpleAcuerdo(): Promise<void>;
|
|
103
|
+
copyProccess(): Promise<void>;
|
|
104
|
+
copiarTexto(texto: string): Promise<void>;
|
|
95
105
|
static ɵfac: i0.ɵɵFactoryDeclaration<IdVisionComponent, never>;
|
|
96
106
|
static ɵcmp: i0.ɵɵComponentDeclaration<IdVisionComponent, "app-id-vision", never, { "isSwipe": { "alias": "isSwipe"; "required": false; }; "dpiCode": { "alias": "dpiCode"; "required": false; }; "connection": { "alias": "connection"; "required": false; }; "apikey": { "alias": "apikey"; "required": false; }; "validationConfig": { "alias": "validationConfig"; "required": false; }; }, {}, never, never, true, never>;
|
|
97
107
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id-vision.component.d.ts","sourceRoot":"","sources":["../../../../../src/app/pages/id-vision/id-vision.component.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,iBAAiB,EAIjB,SAAS,EACT,MAAM,EAIP,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,EAEf,QAAQ,EACR,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,QAAQ,
|
|
1
|
+
{"version":3,"file":"id-vision.component.d.ts","sourceRoot":"","sources":["../../../../../src/app/pages/id-vision/id-vision.component.ts"],"names":[],"mappings":"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"}
|