metag-sdk-ionic 1.1.57 → 1.2.1-beta.0.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/src/app/pages/constants/enviroments.js +2 -2
- package/dist/src/app/pages/constants/enviroments.js.map +1 -1
- package/dist/src/app/pages/id-vision/components/camara-video-selfie/camara-video-selfie.component.d.ts +6 -7
- package/dist/src/app/pages/id-vision/components/camara-video-selfie/camara-video-selfie.component.js +71 -87
- 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.js +16 -14
- 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/components/message-modal/message-modal.component.js +3 -3
- package/dist/src/app/pages/id-vision/components/message-modal/message-modal.component.js.map +1 -1
- package/dist/src/app/pages/id-vision/id-vision.component.d.ts +4 -1
- package/dist/src/app/pages/id-vision/id-vision.component.js +230 -305
- 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 +12 -5
- package/dist/src/app/pages/id-vision/services/dpi/dpi-service.service.js +24 -10
- package/dist/src/app/pages/id-vision/services/dpi/dpi-service.service.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export const environments = {
|
|
2
|
-
|
|
3
|
-
url: 'https://innova.genesisempresarial.com/metaGBE/'
|
|
2
|
+
url: 'https://devgefectivov2.site/idvisionbeta/',
|
|
3
|
+
//url: 'https://innova.genesisempresarial.com/metaGBE/'
|
|
4
4
|
};
|
|
5
5
|
//# sourceMappingURL=enviroments.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enviroments.js","sourceRoot":"","sources":["../../../../../src/app/pages/constants/enviroments.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG;IACxB,
|
|
1
|
+
{"version":3,"file":"enviroments.js","sourceRoot":"","sources":["../../../../../src/app/pages/constants/enviroments.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG;IACxB,GAAG,EAAE,2CAA2C;IAChD,uDAAuD;CAC1D,CAAA"}
|
|
@@ -19,12 +19,8 @@ export declare class CamaraVideoSelfieComponent implements AfterViewInit, OnDest
|
|
|
19
19
|
text2: string;
|
|
20
20
|
backFunction: (filePath: File) => Promise<void>;
|
|
21
21
|
closeRequested: EventEmitter<void>;
|
|
22
|
-
capturedVideoUrl: any;
|
|
23
22
|
capVideo?: File;
|
|
24
23
|
stream: MediaStream | null;
|
|
25
|
-
private isAndroid;
|
|
26
|
-
private isIOS;
|
|
27
|
-
private scanTimeout;
|
|
28
24
|
isRecording: boolean;
|
|
29
25
|
mediaRecorder: MediaRecorder | null;
|
|
30
26
|
recordedChunks: Blob[];
|
|
@@ -36,18 +32,21 @@ export declare class CamaraVideoSelfieComponent implements AfterViewInit, OnDest
|
|
|
36
32
|
canStopRecording: boolean;
|
|
37
33
|
isLoading: boolean;
|
|
38
34
|
private defaultBrightness;
|
|
35
|
+
private isAndroid;
|
|
36
|
+
private isIOS;
|
|
37
|
+
private scanTimeout;
|
|
39
38
|
constructor(platform: Platform, modalController: ModalController, sanitizer: DomSanitizer, renderer: Renderer2, alertController: AlertController, changeDetector: ChangeDetectorRef, modalVideoSelfieServices: ModalVideoSelfieServices, modalDpiServices: ModalDpiServices);
|
|
40
39
|
ngAfterViewInit(): Promise<void>;
|
|
41
40
|
ngOnDestroy(): Promise<void>;
|
|
42
|
-
waitForCameraReady(): Promise<void>;
|
|
43
41
|
requestPermissions(): Promise<void>;
|
|
44
42
|
initCamera(): Promise<void>;
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
waitForCameraReady(): Promise<void>;
|
|
44
|
+
private prepareRecorder;
|
|
47
45
|
recordVideo(): void;
|
|
48
46
|
startVideoRecord(): Promise<void>;
|
|
49
47
|
updateTimeRemaining(): void;
|
|
50
48
|
stopRecording(): Promise<void>;
|
|
49
|
+
blobToFile(blob: Blob, fileName: string): File;
|
|
51
50
|
closeOverlayVideo(): Promise<void>;
|
|
52
51
|
stopCamera(): void;
|
|
53
52
|
closeRequestedFunction(): void;
|
package/dist/src/app/pages/id-vision/components/camara-video-selfie/camara-video-selfie.component.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import { Camera } from '@capacitor/camera';
|
|
3
3
|
import { ScreenBrightness } from '@capacitor-community/screen-brightness';
|
|
4
4
|
import { Capacitor } from '@capacitor/core';
|
|
@@ -77,36 +77,20 @@ export class CamaraVideoSelfieComponent {
|
|
|
77
77
|
await ScreenBrightness.setBrightness({ brightness: 1.0 });
|
|
78
78
|
}
|
|
79
79
|
catch (error) {
|
|
80
|
-
console.warn('
|
|
80
|
+
console.warn('Brillo error:', error);
|
|
81
81
|
}
|
|
82
82
|
await this.requestPermissions();
|
|
83
83
|
}
|
|
84
84
|
await this.initCamera();
|
|
85
85
|
await this.waitForCameraReady();
|
|
86
|
-
this.modalDpiServices.closeModalAndChangeBrightness$.subscribe(async () =>
|
|
87
|
-
await this.closeOverlayVideo();
|
|
88
|
-
});
|
|
86
|
+
this.modalDpiServices.closeModalAndChangeBrightness$.subscribe(async () => await this.closeOverlayVideo());
|
|
89
87
|
}
|
|
90
88
|
async ngOnDestroy() {
|
|
91
89
|
this.stopCamera();
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
await ScreenBrightness.setBrightness({
|
|
95
|
-
brightness: this.defaultBrightness,
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
catch (error) {
|
|
100
|
-
console.warn('Error al restaurar el brillo original:', error);
|
|
90
|
+
if (this.defaultBrightness !== null) {
|
|
91
|
+
await ScreenBrightness.setBrightness({ brightness: this.defaultBrightness });
|
|
101
92
|
}
|
|
102
93
|
}
|
|
103
|
-
async waitForCameraReady() {
|
|
104
|
-
return new Promise((resolve) => {
|
|
105
|
-
this.videoElement.nativeElement.onloadedmetadata = () => {
|
|
106
|
-
resolve();
|
|
107
|
-
};
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
94
|
async requestPermissions() {
|
|
111
95
|
if (Capacitor.getPlatform() !== 'web') {
|
|
112
96
|
if (this.isAndroid || this.isIOS) {
|
|
@@ -119,82 +103,81 @@ export class CamaraVideoSelfieComponent {
|
|
|
119
103
|
}
|
|
120
104
|
}
|
|
121
105
|
async initCamera() {
|
|
122
|
-
let isCameraReady = false;
|
|
123
106
|
try {
|
|
124
107
|
const constraints = {
|
|
108
|
+
audio: true,
|
|
125
109
|
video: {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
facingMode: 'user',
|
|
129
|
-
},
|
|
110
|
+
facingMode: 'user'
|
|
111
|
+
}
|
|
130
112
|
};
|
|
131
113
|
this.stream = await navigator.mediaDevices.getUserMedia(constraints);
|
|
132
|
-
this.videoElement.nativeElement
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
await
|
|
137
|
-
const interval = setInterval(() => {
|
|
138
|
-
if (isCameraReady) {
|
|
139
|
-
clearInterval(interval);
|
|
140
|
-
resolve(true);
|
|
141
|
-
}
|
|
142
|
-
}, 100);
|
|
143
|
-
});
|
|
114
|
+
const video = this.videoElement.nativeElement;
|
|
115
|
+
video.srcObject = this.stream;
|
|
116
|
+
video.setAttribute('playsinline', 'true');
|
|
117
|
+
video.muted = true;
|
|
118
|
+
await video.play();
|
|
144
119
|
this.isLoading = false;
|
|
145
|
-
await this.
|
|
120
|
+
await this.prepareRecorder();
|
|
146
121
|
}
|
|
147
122
|
catch (error) {
|
|
148
|
-
console.error('
|
|
123
|
+
console.error('initCamera error:', error);
|
|
149
124
|
this.isLoading = false;
|
|
150
125
|
}
|
|
151
126
|
}
|
|
152
|
-
async
|
|
153
|
-
|
|
127
|
+
async waitForCameraReady() {
|
|
128
|
+
return new Promise((resolve) => {
|
|
129
|
+
this.videoElement.nativeElement.onloadedmetadata = () => resolve();
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
async prepareRecorder() {
|
|
133
|
+
if (!this.stream || !this.stream.getVideoTracks().length)
|
|
134
|
+
return;
|
|
135
|
+
let mimeType = '';
|
|
136
|
+
if (this.isIOS && MediaRecorder.isTypeSupported('video/mp4')) {
|
|
137
|
+
mimeType = 'video/mp4';
|
|
138
|
+
}
|
|
139
|
+
else if (MediaRecorder.isTypeSupported('video/webm;codecs=vp8')) {
|
|
140
|
+
mimeType = 'video/webm;codecs=vp8';
|
|
141
|
+
}
|
|
142
|
+
else if (MediaRecorder.isTypeSupported('video/webm')) {
|
|
143
|
+
mimeType = 'video/webm';
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
alert('Formato no soportado');
|
|
154
147
|
return;
|
|
155
|
-
if (this.mediaRecorder && this.mediaRecorder.state !== 'inactive') {
|
|
156
|
-
this.mediaRecorder.stop();
|
|
157
148
|
}
|
|
158
149
|
const options = {
|
|
159
|
-
mimeType
|
|
160
|
-
videoBitsPerSecond:
|
|
150
|
+
mimeType,
|
|
151
|
+
videoBitsPerSecond: 400_000,
|
|
161
152
|
};
|
|
162
|
-
this.recordedChunks = [];
|
|
163
153
|
this.mediaRecorder = new MediaRecorder(this.stream, options);
|
|
154
|
+
this.recordedChunks = [];
|
|
164
155
|
this.mediaRecorder.ondataavailable = (event) => {
|
|
165
|
-
if (event.data
|
|
156
|
+
if (event.data?.size > 0)
|
|
166
157
|
this.recordedChunks.push(event.data);
|
|
167
|
-
|
|
158
|
+
};
|
|
159
|
+
this.mediaRecorder.onerror = (event) => {
|
|
160
|
+
console.error('Recorder error:', event);
|
|
161
|
+
alert('Error grabando video');
|
|
168
162
|
};
|
|
169
163
|
this.mediaRecorder.onstop = async () => {
|
|
170
|
-
if (this.recordedChunks.length
|
|
171
|
-
console.error('No se capturaron datos en la grabación.');
|
|
164
|
+
if (!this.recordedChunks.length)
|
|
172
165
|
return;
|
|
173
|
-
|
|
174
|
-
const
|
|
175
|
-
const
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
if (this.backFunction) {
|
|
180
|
-
await this.backFunction(videoFile);
|
|
181
|
-
}
|
|
166
|
+
const fileExtension = mimeType.includes('webm') ? 'webm' : 'mp4';
|
|
167
|
+
const blob = new Blob(this.recordedChunks, { type: mimeType });
|
|
168
|
+
const file = this.blobToFile(blob, `video-selfie.${fileExtension}`);
|
|
169
|
+
this.capVideo = file;
|
|
170
|
+
if (this.backFunction)
|
|
171
|
+
await this.backFunction(file);
|
|
182
172
|
this.recordedChunks = [];
|
|
183
173
|
};
|
|
184
174
|
}
|
|
185
|
-
blobToFile(blob, fileName) {
|
|
186
|
-
const b = blob;
|
|
187
|
-
b.lastModified = new Date().getTime();
|
|
188
|
-
b.lastModifiedDate = new Date();
|
|
189
|
-
b.name = fileName;
|
|
190
|
-
return b;
|
|
191
|
-
}
|
|
192
175
|
recordVideo() {
|
|
193
176
|
this.countdown = 3;
|
|
194
|
-
const
|
|
177
|
+
const interval = setInterval(() => {
|
|
195
178
|
this.countdown -= 1;
|
|
196
179
|
if (this.countdown <= 0) {
|
|
197
|
-
clearInterval(
|
|
180
|
+
clearInterval(interval);
|
|
198
181
|
this.startVideoRecord();
|
|
199
182
|
}
|
|
200
183
|
this.changeDetector.detectChanges();
|
|
@@ -202,52 +185,53 @@ export class CamaraVideoSelfieComponent {
|
|
|
202
185
|
}
|
|
203
186
|
async startVideoRecord() {
|
|
204
187
|
if (this.mediaRecorder && !this.isRecording) {
|
|
205
|
-
await new Promise((
|
|
206
|
-
this.mediaRecorder.start(
|
|
188
|
+
await new Promise((r) => setTimeout(r, 500));
|
|
189
|
+
this.mediaRecorder.start();
|
|
207
190
|
this.isRecording = true;
|
|
208
191
|
this.canStopRecording = false;
|
|
209
192
|
this.renderer.addClass(this.progressRing.nativeElement, 'progress-active');
|
|
210
193
|
this.timeRemaining = this.maxRecordingTime / 1000;
|
|
211
194
|
this.updateTimeRemaining();
|
|
212
|
-
setTimeout(() => {
|
|
213
|
-
this.canStopRecording = true;
|
|
214
|
-
}, this.minRecordingTime);
|
|
215
195
|
this.recordingTimer = setTimeout(async () => {
|
|
196
|
+
this.canStopRecording = true;
|
|
216
197
|
await this.stopRecording();
|
|
217
198
|
}, this.maxRecordingTime);
|
|
218
199
|
}
|
|
219
200
|
}
|
|
220
201
|
updateTimeRemaining() {
|
|
221
|
-
const interval = 1000;
|
|
222
202
|
const timer = setInterval(() => {
|
|
223
203
|
if (this.isRecording) {
|
|
224
204
|
this.timeRemaining -= 1;
|
|
225
|
-
if (this.timeRemaining <= 0)
|
|
205
|
+
if (this.timeRemaining <= 0)
|
|
226
206
|
clearInterval(timer);
|
|
227
|
-
}
|
|
228
207
|
}
|
|
229
208
|
else {
|
|
230
209
|
clearInterval(timer);
|
|
231
210
|
}
|
|
232
211
|
this.changeDetector.detectChanges();
|
|
233
|
-
},
|
|
212
|
+
}, 1000);
|
|
234
213
|
}
|
|
235
214
|
async stopRecording() {
|
|
236
215
|
if (this.mediaRecorder && this.isRecording && this.canStopRecording) {
|
|
237
|
-
this.mediaRecorder.
|
|
216
|
+
if (this.mediaRecorder.state !== 'inactive')
|
|
217
|
+
this.mediaRecorder.stop();
|
|
238
218
|
this.isRecording = false;
|
|
239
219
|
}
|
|
240
|
-
if (this.scanTimeout)
|
|
220
|
+
if (this.scanTimeout)
|
|
241
221
|
clearTimeout(this.scanTimeout);
|
|
242
|
-
}
|
|
243
222
|
this.renderer.removeClass(this.progressRing.nativeElement, 'progress-active');
|
|
244
223
|
}
|
|
224
|
+
blobToFile(blob, fileName) {
|
|
225
|
+
const b = blob;
|
|
226
|
+
b.lastModified = Date.now();
|
|
227
|
+
b.lastModifiedDate = new Date();
|
|
228
|
+
b.name = fileName;
|
|
229
|
+
return b;
|
|
230
|
+
}
|
|
245
231
|
async closeOverlayVideo() {
|
|
246
232
|
this.stopCamera();
|
|
247
233
|
if (this.defaultBrightness !== null) {
|
|
248
|
-
await ScreenBrightness.setBrightness({
|
|
249
|
-
brightness: this.defaultBrightness,
|
|
250
|
-
});
|
|
234
|
+
await ScreenBrightness.setBrightness({ brightness: this.defaultBrightness });
|
|
251
235
|
}
|
|
252
236
|
this.modalController.dismiss();
|
|
253
237
|
}
|
|
@@ -271,7 +255,7 @@ export class CamaraVideoSelfieComponent {
|
|
|
271
255
|
let _t;
|
|
272
256
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.videoElement = _t.first);
|
|
273
257
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.progressRing = _t.first);
|
|
274
|
-
} }, inputs: { text1: "text1", text2: "text2", backFunction: "backFunction" }, outputs: { closeRequested: "closeRequested" }, decls: 22, vars: 9, consts: [["videoElement", ""], ["progressRing", ""], ["color", "light", 1, "custom-content"], ["class", "loading-overlay", 4, "ngIf"], ["class", "countdown-overlay", 4, "ngIf"], [1, "ion-no-border"], ["color", "light"], ["slot", "end"], [3, "click", "disabled"], ["name", "close"], [1, "camera-container"], [1, "video-wrapper"], ["muted", "", "autoplay", "", "playsinline", "", 2, "transform", "scaleX(-1)"], ["width", "300", "height", "300", 1, "progress-ring"], ["cx", "150", "cy", "150", "r", "150", 1, "progress-ring__circle"], [3, "ngClass"], [1, "text-center"], [1, "fixed-footer"], ["expand", "block", 3, "click", 4, "ngIf"], ["expand", "block", 3, "disabled", "click", 4, "ngIf"], [1, "loading-overlay"], ["name", "crescent"], [1, "countdown-overlay"], [1, "countdown"], ["expand", "block", 3, "click"], ["expand", "block", 3, "click", "disabled"]], template: function CamaraVideoSelfieComponent_Template(rf, ctx) { if (rf & 1) {
|
|
258
|
+
} }, inputs: { text1: "text1", text2: "text2", backFunction: "backFunction" }, outputs: { closeRequested: "closeRequested" }, decls: 22, vars: 9, consts: [["videoElement", ""], ["progressRing", ""], ["color", "light", 1, "custom-content"], ["class", "loading-overlay", 4, "ngIf"], ["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, "loading-overlay"], ["name", "crescent"], [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) {
|
|
275
259
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
276
260
|
i0.ɵɵelementStart(0, "ion-content", 2);
|
|
277
261
|
i0.ɵɵtemplate(1, CamaraVideoSelfieComponent_div_1_Template, 2, 0, "div", 3)(2, CamaraVideoSelfieComponent_div_2_Template, 3, 1, "div", 4);
|
|
@@ -310,11 +294,11 @@ export class CamaraVideoSelfieComponent {
|
|
|
310
294
|
i0.ɵɵproperty("ngIf", !ctx.isRecording);
|
|
311
295
|
i0.ɵɵadvance();
|
|
312
296
|
i0.ɵɵproperty("ngIf", ctx.isRecording);
|
|
313
|
-
} }, dependencies: [i5.NgClass, i5.NgIf, i1.IonButton, i1.IonButtons, i1.IonContent, i1.IonHeader, i1.IonIcon, i1.IonLabel, i1.IonSpinner, i1.IonToolbar], styles: [".camera-container[_ngcontent-%COMP%] {\n justify-content: center;\n align-items: center;\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 70%;\n background-color:
|
|
297
|
+
} }, dependencies: [i5.NgClass, i5.NgIf, i1.IonButton, i1.IonButtons, i1.IonContent, i1.IonHeader, i1.IonIcon, i1.IonLabel, i1.IonSpinner, i1.IonToolbar], styles: [".camera-container[_ngcontent-%COMP%] {\n justify-content: center;\n align-items: center;\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 70%;\n background-color: #fff;\n}\n\n.video-wrapper[_ngcontent-%COMP%] {\n position: relative;\n width: 300px;\n height: 300px;\n border-radius: 50%;\n overflow: hidden;\n}\n\nvideo[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 50%;\n}\n\n.progress-ring[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n transform: rotate(-90deg);\n \n\n}\n\n.progress-ring__circle[_ngcontent-%COMP%] {\n fill: transparent;\n stroke: purple;\n stroke-width: 12;\n stroke-dasharray: 945;\n \n\n stroke-dashoffset: 880;\n \n\n transition: stroke-dashoffset 12s linear;\n \n\n}\n\n.progress-active[_ngcontent-%COMP%] .progress-ring__circle[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_progress-animation 5s linear forwards;\n}\n\n@keyframes _ngcontent-%COMP%_progress-animation {\n from {\n stroke-dashoffset: 880;\n }\n\n to {\n stroke-dashoffset: 0;\n }\n}\n\n.text-container[_ngcontent-%COMP%] {\n height: 40px;\n color: black;\n}\n\nion-header[_ngcontent-%COMP%] {\n --background: #fff;\n \n\n}\n\n.centered-title[_ngcontent-%COMP%] {\n text-align: center;\n width: 100%;\n \n\n font-weight: bold;\n}\n\n.fixed-footer[_ngcontent-%COMP%] {\n position: fixed;\n bottom: 40px;\n left: 0;\n width: 100%;\n padding: 10px;\n background-color: #fff; // Color de fondo, opcional\n // box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);\n\n\n ion-button {\n width: 90%;\n max-width: 300px;\n margin: 0 auto;\n color: #fff;\n font-weight: bold;\n border-radius: 20px;\n\n --background: #82298F;\n --background-hover: #82298F;\n --background-activated: #82298F;\n --background-focused: #82298F;\n\n --color: #fff;\n\n --border-radius: 20px;\n --border-color: #82298F;\n ;\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: #82298F;\n\n\n &:hover {\n background-color: #82298F;\n }\n\n &:active {\n background-color: #82298F;\n }\n }\n}\n\n\n\n\n\nion-header[_ngcontent-%COMP%] {\n --background: #fff;\n \n\n color: #000000;\n \n\n}\n\nion-toolbar[_ngcontent-%COMP%] {\n --ion-background-color: #fff !important;\n --background: #ffffff !important;\n --color: #000000 !important;\n}\n\n.centered-title[_ngcontent-%COMP%] {\n flex: 1;\n text-align: center;\n \n\n font-weight: bold;\n color: #000000;\n margin: 0;\n \n\n}\n\nion-buttons[_ngcontent-%COMP%] {\n justify-content: flex-end;\n \n\n}\n\n.countdown-overlay[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.6);\n \n\n display: flex;\n align-items: center;\n justify-content: center;\n margin: 0;\n padding: 0;\n z-index: 1000;\n \n\n animation: _ngcontent-%COMP%_fadeIn 0.5s ease-out, _ngcontent-%COMP%_fadeOut 0.5s ease-out 2.5s;\n \n\n box-sizing: border-box;\n border-radius: 0px;\n\n}\n\nion-content.custom-content[_ngcontent-%COMP%] {\n --padding-top: 0;\n --padding-bottom: 0;\n margin: 0;\n padding: 0;\n}\n\n.countdown[_ngcontent-%COMP%] {\n font-size: 100px;\n font-weight: bold;\n color: #fff;\n animation: _ngcontent-%COMP%_scaleUp 0.5s ease-out, _ngcontent-%COMP%_scaleDown 0.5s ease-out 2.5s;\n \n\n}\n\n\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n@keyframes _ngcontent-%COMP%_fadeOut {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n }\n}\n\n\n\n@keyframes _ngcontent-%COMP%_scaleUp {\n from {\n transform: scale(0.8);\n opacity: 0;\n }\n\n to {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n@keyframes _ngcontent-%COMP%_scaleDown {\n from {\n transform: scale(1);\n opacity: 1;\n }\n\n to {\n transform: scale(0.8);\n opacity: 0;\n }\n}\n\n.red[_ngcontent-%COMP%] {\n padding: 10px;\n color: red;\n}\n\n.text-center[_ngcontent-%COMP%] {\n text-align: center;\n padding-left: 20%;\n padding-right: 20%;\n color: #333;\n}\n\n.loading-overlay[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.8);\n \n\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n \n\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n border-radius: 0px;\n}\n\nion-spinner[_ngcontent-%COMP%] {\n color: #fff;\n width: 50px;\n height: 50px;\n}"] }); }
|
|
314
298
|
}
|
|
315
299
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CamaraVideoSelfieComponent, [{
|
|
316
300
|
type: Component,
|
|
317
|
-
args: [{ selector: 'app-camara-video-selfie', encapsulation: ViewEncapsulation.Emulated, template: "<ion-content color=\"light\" class=\"custom-content\">\n <div *ngIf=\"isLoading\" class=\"loading-overlay\">\n <ion-spinner name=\"crescent\"></ion-spinner>\n </div
|
|
301
|
+
args: [{ selector: 'app-camara-video-selfie', encapsulation: ViewEncapsulation.Emulated, template: "<ion-content color=\"light\" class=\"custom-content\">\n <div *ngIf=\"isLoading\" class=\"loading-overlay\">\n <ion-spinner name=\"crescent\"></ion-spinner>\n </div> \n <div *ngIf=\"countdown > 0\" class=\"countdown-overlay\">\n <div class=\"countdown\">{{ countdown }}</div>\n </div>\n <ion-header class=\"ion-no-border\">\n <ion-toolbar color=\"light\">\n <!-- <ion-title class=\"centered-title\">Video Selfie</ion-title> -->\n <ion-buttons slot=\"end\">\n <ion-button (click)=\"closeOverlayVideo()\" [disabled]=\"!canStopRecording\">\n <ion-icon name=\"close\" color=\"dark\"></ion-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n </ion-header>\n <!-- Contenedor de la c\u00E1mara y progresi\u00F3n -->\n <div class=\"camera-container\">\n <div class=\"video-wrapper\">\n <video #videoElement muted autoplay playsinline style=\"transform: scaleX(-1)\"></video>\n <svg class=\"progress-ring\" #progressRing width=\"300\" height=\"300\">\n <circle class=\"progress-ring__circle\" cx=\"150\" cy=\"150\" r=\"150\" />\n </svg>\n </div>\n <ion-label [ngClass]=\"{'red': isRecording}\">00:{{ timeRemaining < 10 ? '0' + timeRemaining : timeRemaining\n }}</ion-label>\n <p class=\"text-center\">Permanece quieto, con tu rostro en el centro del c\u00EDrculo.</p>\n <!-- Botones de grabaci\u00F3n -->\n <div class=\"fixed-footer\">\n <ion-button class=\"button-grabar\" *ngIf=\"!isRecording\" expand=\"block\" (click)=\"recordVideo()\">Iniciar Grabaci\u00F3n</ion-button>\n <ion-button *ngIf=\"isRecording\" expand=\"block\" (click)=\"stopRecording()\" [disabled]=\"!canStopRecording\">Detener\n Grabaci\u00F3n</ion-button>\n </div>\n </div>\n</ion-content>", styles: [".camera-container {\n justify-content: center;\n align-items: center;\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 70%;\n background-color: #fff;\n}\n\n.video-wrapper {\n position: relative;\n width: 300px;\n height: 300px;\n border-radius: 50%;\n overflow: hidden;\n}\n\nvideo {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 50%;\n}\n\n.progress-ring {\n position: absolute;\n top: 0;\n left: 0;\n transform: rotate(-90deg);\n /* Rotamos el c\u00EDrculo para que la animaci\u00F3n inicie desde arriba */\n}\n\n.progress-ring__circle {\n fill: transparent;\n stroke: purple;\n stroke-width: 12;\n stroke-dasharray: 945;\n /* La circunferencia del c\u00EDrculo 880*/\n stroke-dashoffset: 880;\n /* Oculto por completo al inicio */\n transition: stroke-dashoffset 12s linear;\n /* Esto controlar\u00E1 el llenado progresivo */\n}\n\n.progress-active .progress-ring__circle {\n animation: progress-animation 5s linear forwards;\n}\n\n@keyframes progress-animation {\n from {\n stroke-dashoffset: 880;\n }\n\n to {\n stroke-dashoffset: 0;\n }\n}\n\n.text-container {\n height: 40px;\n color: black;\n}\n\nion-header {\n --background: #fff;\n /* Fondo blanco para el header */\n}\n\n.centered-title {\n text-align: center;\n width: 100%;\n /* Asegura que el t\u00EDtulo est\u00E9 centrado */\n font-weight: bold;\n}\n\n.fixed-footer {\n position: fixed;\n bottom: 40px;\n left: 0;\n width: 100%;\n padding: 10px;\n background-color: #fff; // Color de fondo, opcional\n // box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);\n\n\n ion-button {\n width: 90%;\n max-width: 300px;\n margin: 0 auto;\n color: #fff;\n font-weight: bold;\n border-radius: 20px;\n\n --background: #82298F;\n --background-hover: #82298F;\n --background-activated: #82298F;\n --background-focused: #82298F;\n\n --color: #fff;\n\n --border-radius: 20px;\n --border-color: #82298F;\n ;\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: #82298F;\n\n\n &:hover {\n background-color: #82298F;\n }\n\n &:active {\n background-color: #82298F;\n }\n }\n}\n\n\n\n\n\nion-header {\n --background: #fff;\n /* Fondo blanco */\n color: #000000;\n /* Texto negro */\n}\n\nion-toolbar {\n --ion-background-color: #fff !important;\n --background: #ffffff !important;\n --color: #000000 !important;\n}\n\n.centered-title {\n flex: 1;\n text-align: center;\n /* Centrar el t\u00EDtulo */\n font-weight: bold;\n color: #000000;\n margin: 0;\n /* Quita cualquier margen del t\u00EDtulo */\n}\n\nion-buttons {\n justify-content: flex-end;\n /* Alinea el bot\u00F3n a la derecha */\n}\n\n.countdown-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.6);\n /* Fondo semi-transparente */\n display: flex;\n align-items: center;\n justify-content: center;\n margin: 0;\n padding: 0;\n z-index: 1000;\n /* Asegurarse de que est\u00E9 encima de otros elementos */\n animation: fadeIn 0.5s ease-out, fadeOut 0.5s ease-out 2.5s;\n /* Animaciones de entrada y salida */\n box-sizing: border-box;\n border-radius: 0px;\n\n}\n\nion-content.custom-content {\n --padding-top: 0;\n --padding-bottom: 0;\n margin: 0;\n padding: 0;\n}\n\n.countdown {\n font-size: 100px;\n font-weight: bold;\n color: #fff;\n animation: scaleUp 0.5s ease-out, scaleDown 0.5s ease-out 2.5s;\n /* Escalar en entrada y salida */\n}\n\n/* Animaci\u00F3n para desvanecer la superposici\u00F3n */\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n@keyframes fadeOut {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n }\n}\n\n/* Animaci\u00F3n para escalar el n\u00FAmero */\n@keyframes scaleUp {\n from {\n transform: scale(0.8);\n opacity: 0;\n }\n\n to {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n@keyframes scaleDown {\n from {\n transform: scale(1);\n opacity: 1;\n }\n\n to {\n transform: scale(0.8);\n opacity: 0;\n }\n}\n\n.red {\n padding: 10px;\n color: red;\n}\n\n.text-center {\n text-align: center;\n padding-left: 20%;\n padding-right: 20%;\n color: #333;\n}\n\n.loading-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.8);\n /* Fondo oscuro semi-transparente */\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n /* Aseg\u00FArate de que est\u00E9 por encima del contenido */\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n border-radius: 0px;\n}\n\nion-spinner {\n color: #fff;\n width: 50px;\n height: 50px;\n}"] }]
|
|
318
302
|
}], () => [{ 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: [{
|
|
319
303
|
type: ViewChild,
|
|
320
304
|
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":"AAAA,OAAO,
|
|
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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"}
|
package/dist/src/app/pages/id-vision/components/camera-with-overlay/camera-with-overlay.component.js
CHANGED
|
@@ -8,14 +8,14 @@ import * as i3 from "@angular/common";
|
|
|
8
8
|
const _c0 = ["videoElement"];
|
|
9
9
|
function CameraWithOverlayComponent_ion_fab_2_Template(rf, ctx) { if (rf & 1) {
|
|
10
10
|
const _r2 = i0.ɵɵgetCurrentView();
|
|
11
|
-
i0.ɵɵelementStart(0, "ion-fab",
|
|
11
|
+
i0.ɵɵelementStart(0, "ion-fab", 17)(1, "ion-fab-button", 18);
|
|
12
12
|
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()); });
|
|
13
|
-
i0.ɵɵelement(2, "ion-icon",
|
|
13
|
+
i0.ɵɵelement(2, "ion-icon", 19);
|
|
14
14
|
i0.ɵɵelementEnd()();
|
|
15
15
|
} }
|
|
16
16
|
function CameraWithOverlayComponent_div_9_Template(rf, ctx) { if (rf & 1) {
|
|
17
|
-
i0.ɵɵelementStart(0, "div",
|
|
18
|
-
i0.ɵɵelement(1, "ion-spinner",
|
|
17
|
+
i0.ɵɵelementStart(0, "div", 20);
|
|
18
|
+
i0.ɵɵelement(1, "ion-spinner", 21);
|
|
19
19
|
i0.ɵɵelementEnd();
|
|
20
20
|
} }
|
|
21
21
|
export class CameraWithOverlayComponent {
|
|
@@ -197,7 +197,7 @@ export class CameraWithOverlayComponent {
|
|
|
197
197
|
} if (rf & 2) {
|
|
198
198
|
let _t;
|
|
199
199
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.videoElement = _t.first);
|
|
200
|
-
} }, 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: 20, vars: 5, 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", ""], ["alt", "Overlay", 1, "overlay-frame", "blink-image", 3, "src"], [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) {
|
|
201
201
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
202
202
|
i0.ɵɵelementStart(0, "ion-content", 1)(1, "div", 2);
|
|
203
203
|
i0.ɵɵtemplate(2, CameraWithOverlayComponent_ion_fab_2_Template, 3, 0, "ion-fab", 3);
|
|
@@ -210,15 +210,15 @@ export class CameraWithOverlayComponent {
|
|
|
210
210
|
i0.ɵɵtemplate(9, CameraWithOverlayComponent_div_9_Template, 2, 0, "div", 7);
|
|
211
211
|
i0.ɵɵelement(10, "div", 8);
|
|
212
212
|
i0.ɵɵelementStart(11, "div", 9);
|
|
213
|
-
i0.ɵɵelement(12, "video", 10, 0);
|
|
213
|
+
i0.ɵɵelement(12, "video", 10, 0)(14, "img", 11);
|
|
214
214
|
i0.ɵɵelementEnd();
|
|
215
|
-
i0.ɵɵelementStart(
|
|
216
|
-
i0.ɵɵlistener("click", function
|
|
217
|
-
i0.ɵɵelement(
|
|
215
|
+
i0.ɵɵelementStart(15, "div", 12)(16, "ion-button", 13);
|
|
216
|
+
i0.ɵɵlistener("click", function CameraWithOverlayComponent_Template_ion_button_click_16_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.capturePhoto()); });
|
|
217
|
+
i0.ɵɵelement(17, "ion-icon", 14);
|
|
218
218
|
i0.ɵɵelementEnd()();
|
|
219
|
-
i0.ɵɵelementStart(
|
|
220
|
-
i0.ɵɵlistener("click", function
|
|
221
|
-
i0.ɵɵelement(
|
|
219
|
+
i0.ɵɵelementStart(18, "ion-button", 15);
|
|
220
|
+
i0.ɵɵlistener("click", function CameraWithOverlayComponent_Template_ion_button_click_18_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.closeOverlay()); });
|
|
221
|
+
i0.ɵɵelement(19, "ion-icon", 16);
|
|
222
222
|
i0.ɵɵelementEnd()()();
|
|
223
223
|
} if (rf & 2) {
|
|
224
224
|
i0.ɵɵadvance(2);
|
|
@@ -229,11 +229,13 @@ export class CameraWithOverlayComponent {
|
|
|
229
229
|
i0.ɵɵtextInterpolate(ctx.text2);
|
|
230
230
|
i0.ɵɵadvance();
|
|
231
231
|
i0.ɵɵproperty("ngIf", ctx.isLoading);
|
|
232
|
-
|
|
232
|
+
i0.ɵɵadvance(5);
|
|
233
|
+
i0.ɵɵproperty("src", ctx.overlaySrc, i0.ɵɵsanitizeUrl);
|
|
234
|
+
} }, 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\n.blink-image[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_blink 3s infinite;\n}\n\n@keyframes _ngcontent-%COMP%_blink {\n 0% { opacity: 1; }\n 50% { opacity: 0; }\n 100% { opacity: 1; }\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: 86%;\n max-height: 90%;\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:15px; \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 margin-left: 10px;\n margin-right: 10px;\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}"] }); }
|
|
233
235
|
}
|
|
234
236
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CameraWithOverlayComponent, [{
|
|
235
237
|
type: Component,
|
|
236
|
-
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
|
|
238
|
+
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 blink-image\" />\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\n.blink-image {\n animation: blink 3s infinite;\n}\n\n@keyframes blink {\n 0% { opacity: 1; }\n 50% { opacity: 0; }\n 100% { opacity: 1; }\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: 86%;\n max-height: 90%;\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:15px; /* 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 margin-left: 10px;\n margin-right: 10px;\n\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"] }]
|
|
237
239
|
}], () => [{ type: i1.Platform }, { type: i1.ModalController }, { type: i2.ModalDpiServices }], { videoElement: [{
|
|
238
240
|
type: ViewChild,
|
|
239
241
|
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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"}
|