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