metag-sdk-ionic 1.0.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/imagesIdVision/no-internet.svg +4 -0
- package/dist/src/app/pages/id-vision/components/camara-video-selfie/camara-video-selfie.component.d.ts.map +1 -1
- package/dist/src/app/pages/id-vision/components/camara-video-selfie/camara-video-selfie.component.js +26 -33
- package/dist/src/app/pages/id-vision/components/camara-video-selfie/camara-video-selfie.component.js.map +1 -1
- package/dist/src/app/pages/id-vision/components/camera-with-overlay/camera-with-overlay.component.d.ts +19 -15
- package/dist/src/app/pages/id-vision/components/camera-with-overlay/camera-with-overlay.component.d.ts.map +1 -1
- package/dist/src/app/pages/id-vision/components/camera-with-overlay/camera-with-overlay.component.js +157 -123
- package/dist/src/app/pages/id-vision/components/camera-with-overlay/camera-with-overlay.component.js.map +1 -1
- package/dist/src/app/pages/id-vision/id-vision.component.d.ts +13 -3
- package/dist/src/app/pages/id-vision/id-vision.component.d.ts.map +1 -1
- package/dist/src/app/pages/id-vision/id-vision.component.js +316 -258
- package/dist/src/app/pages/id-vision/id-vision.component.js.map +1 -1
- package/dist/src/app/pages/id-vision/services/dpi/dpi-service.service.d.ts +1 -1
- package/dist/src/app/pages/id-vision/services/dpi/dpi-service.service.d.ts.map +1 -1
- package/dist/src/app/pages/id-vision/services/dpi/dpi-service.service.js +7 -6
- package/dist/src/app/pages/id-vision/services/dpi/dpi-service.service.js.map +1 -1
- package/package.json +13 -12
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { ChangeDetectorRef, Component, CUSTOM_ELEMENTS_SCHEMA, Input, signal, ViewChild, ViewEncapsulation, } from '@angular/core';
|
|
4
|
-
import { AlertController, IonicModule, IonInput, LoadingController, ModalController, NavController, Platform, } from '@ionic/angular';
|
|
5
|
-
|
|
6
|
-
// import { Swiper, SwiperOptions } from 'swiper/types';
|
|
4
|
+
import { AlertController, IonicModule, IonInput, LoadingController, ModalController, NavController, Platform, ToastController } from '@ionic/angular';
|
|
5
|
+
import { Clipboard } from '@capacitor/clipboard';
|
|
7
6
|
import { CameraWithOverlayComponent } from './components/camera-with-overlay/camera-with-overlay.component';
|
|
8
7
|
import { CamaraVideoSelfieComponent } from './components/camara-video-selfie/camara-video-selfie.component';
|
|
9
8
|
import { DpiService } from './services/dpi/dpi-service.service';
|
|
@@ -11,12 +10,15 @@ import { ModalDpiServices } from './services/modal-services/modal-dpi-services';
|
|
|
11
10
|
import { ModalVideoSelfieServices } from './services/modal-services/modal-video-selfie-services';
|
|
12
11
|
import { SdkCommunicationService } from './services/modal-services/sdk-communication-services';
|
|
13
12
|
import { ValidateMetaGService } from './services/validate-meta-g/validate-meta-g';
|
|
13
|
+
import { Network } from '@capacitor/network';
|
|
14
|
+
import { NgZone } from '@angular/core';
|
|
14
15
|
import { register, } from './../../../swiper-wrapper';
|
|
15
16
|
import { PhotoSelfieCameraComponent } from './components/photo-selfie-camera/photo-selfie-camera.component';
|
|
16
17
|
import { PhotoSelfieServices } from './services/modal-services/photo-selfie-services';
|
|
17
18
|
import { CamaraAcuerdoVideoComponent } from './components/camara-acuerdo-video/camara-acuerdo.video.component';
|
|
18
19
|
import { SimpleAcuerdoVideoComponent } from './components/simple-acuerdo-video/simple-acuerdo-video.component';
|
|
19
20
|
import { MessageModalComponent } from './components/message-modal/message-modal.component';
|
|
21
|
+
import { App } from '@capacitor/app';
|
|
20
22
|
import * as i0 from "@angular/core";
|
|
21
23
|
import * as i1 from "@ionic/angular";
|
|
22
24
|
import * as i2 from "./services/dpi/dpi-service.service";
|
|
@@ -28,152 +30,152 @@ import * as i7 from "./services/modal-services/photo-selfie-services";
|
|
|
28
30
|
import * as i8 from "@angular/common";
|
|
29
31
|
const _c0 = ["dpi"];
|
|
30
32
|
const _c1 = a0 => ({ "blur-effect": a0 });
|
|
31
|
-
function
|
|
33
|
+
function IdVisionComponent_swiper_slide_2_Template(rf, ctx) { if (rf & 1) {
|
|
32
34
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
33
|
-
i0.ɵɵelementStart(0, "swiper-slide")(1, "div", 4)(2, "div",
|
|
35
|
+
i0.ɵɵelementStart(0, "swiper-slide")(1, "div", 4)(2, "div", 16)(3, "h2", 17);
|
|
34
36
|
i0.ɵɵtext(4, "Verifiquemos tu identidad");
|
|
35
37
|
i0.ɵɵelementEnd();
|
|
36
|
-
i0.ɵɵelementStart(5, "p",
|
|
38
|
+
i0.ɵɵelementStart(5, "p", 17);
|
|
37
39
|
i0.ɵɵtext(6, "Para completar tu verificaci\u00F3n, por favor ingresa tu n\u00FAmero de identificaci\u00F3n (DPI).");
|
|
38
40
|
i0.ɵɵelementEnd();
|
|
39
|
-
i0.ɵɵelementStart(7, "ion-item",
|
|
40
|
-
i0.ɵɵelement(8, "ion-input",
|
|
41
|
+
i0.ɵɵelementStart(7, "ion-item", 18);
|
|
42
|
+
i0.ɵɵelement(8, "ion-input", 19, 0);
|
|
41
43
|
i0.ɵɵelementEnd()();
|
|
42
|
-
i0.ɵɵelementStart(10, "ion-grid",
|
|
43
|
-
i0.ɵɵelement(13, "img",
|
|
44
|
+
i0.ɵɵelementStart(10, "ion-grid", 20)(11, "ion-row")(12, "div", 21);
|
|
45
|
+
i0.ɵɵelement(13, "img", 22);
|
|
44
46
|
i0.ɵɵelementEnd();
|
|
45
|
-
i0.ɵɵelementStart(14, "div",
|
|
47
|
+
i0.ɵɵelementStart(14, "div", 23)(15, "p");
|
|
46
48
|
i0.ɵɵtext(16, "Sube fotos de documentos que prueben tu identidad");
|
|
47
49
|
i0.ɵɵelementEnd()()();
|
|
48
|
-
i0.ɵɵelementStart(17, "ion-row")(18, "div",
|
|
49
|
-
i0.ɵɵelement(19, "img",
|
|
50
|
+
i0.ɵɵelementStart(17, "ion-row")(18, "div", 21);
|
|
51
|
+
i0.ɵɵelement(19, "img", 24);
|
|
50
52
|
i0.ɵɵelementEnd();
|
|
51
|
-
i0.ɵɵelementStart(20, "div",
|
|
53
|
+
i0.ɵɵelementStart(20, "div", 23)(21, "p");
|
|
52
54
|
i0.ɵɵtext(22, "Graba un video selfie mientras lees el texto en voz alta");
|
|
53
55
|
i0.ɵɵelementEnd()()()();
|
|
54
56
|
i0.ɵɵelementStart(23, "div", 7)(24, "ion-button", 8);
|
|
55
|
-
i0.ɵɵlistener("click", function
|
|
57
|
+
i0.ɵɵlistener("click", function IdVisionComponent_swiper_slide_2_Template_ion_button_click_24_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.handleClick()); });
|
|
56
58
|
i0.ɵɵtext(25, "Empecemos");
|
|
57
59
|
i0.ɵɵelementEnd()()()();
|
|
58
60
|
} }
|
|
59
|
-
function
|
|
61
|
+
function IdVisionComponent_swiper_slide_3_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
60
62
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
61
|
-
i0.ɵɵelementStart(0, "div",
|
|
63
|
+
i0.ɵɵelementStart(0, "div", 29)(1, "div", 16)(2, "h2");
|
|
62
64
|
i0.ɵɵtext(3, "Acuerdo de v\u00EDdeo");
|
|
63
65
|
i0.ɵɵelementEnd();
|
|
64
|
-
i0.ɵɵelementStart(4, "p",
|
|
66
|
+
i0.ɵɵelementStart(4, "p", 17);
|
|
65
67
|
i0.ɵɵtext(5, "Graba un breve video para completar tu proceso de identificaci\u00F3n.");
|
|
66
68
|
i0.ɵɵelementEnd()();
|
|
67
|
-
i0.ɵɵelementStart(6, "ion-grid",
|
|
68
|
-
i0.ɵɵelement(9, "img",
|
|
69
|
+
i0.ɵɵelementStart(6, "ion-grid", 20)(7, "ion-row")(8, "div", 21);
|
|
70
|
+
i0.ɵɵelement(9, "img", 30);
|
|
69
71
|
i0.ɵɵelementEnd();
|
|
70
|
-
i0.ɵɵelementStart(10, "div",
|
|
72
|
+
i0.ɵɵelementStart(10, "div", 23)(11, "p");
|
|
71
73
|
i0.ɵɵtext(12, "Si est\u00E1s en interiores, aseg\u00FArate de que la luz est\u00E9 frente a ti, no detr\u00E1s.");
|
|
72
74
|
i0.ɵɵelementEnd()()();
|
|
73
|
-
i0.ɵɵelementStart(13, "ion-row")(14, "div",
|
|
74
|
-
i0.ɵɵelement(15, "img",
|
|
75
|
+
i0.ɵɵelementStart(13, "ion-row")(14, "div", 21);
|
|
76
|
+
i0.ɵɵelement(15, "img", 24);
|
|
75
77
|
i0.ɵɵelementEnd();
|
|
76
|
-
i0.ɵɵelementStart(16, "div",
|
|
78
|
+
i0.ɵɵelementStart(16, "div", 23)(17, "p");
|
|
77
79
|
i0.ɵɵtext(18, "Aseg\u00FArate de que tu rostro sea visible y de no usar anteojos ni sombreros.");
|
|
78
80
|
i0.ɵɵelementEnd()()()();
|
|
79
81
|
i0.ɵɵelementStart(19, "div", 7)(20, "ion-button", 8);
|
|
80
|
-
i0.ɵɵlistener("click", function
|
|
82
|
+
i0.ɵɵlistener("click", function IdVisionComponent_swiper_slide_3_div_2_Template_ion_button_click_20_listener() { i0.ɵɵrestoreView(_r3); const step_r4 = i0.ɵɵnextContext().$implicit; return i0.ɵɵresetView(step_r4.action()); });
|
|
81
83
|
i0.ɵɵtext(21, "Abrir la c\u00E1mara");
|
|
82
84
|
i0.ɵɵelementEnd()()();
|
|
83
85
|
} if (rf & 2) {
|
|
84
86
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
85
87
|
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(1, _c1, ctx_r1.simpleProcess));
|
|
86
88
|
} }
|
|
87
|
-
function
|
|
89
|
+
function IdVisionComponent_swiper_slide_3_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
88
90
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
89
|
-
i0.ɵɵelementStart(0, "div")(1, "div",
|
|
91
|
+
i0.ɵɵelementStart(0, "div")(1, "div", 16)(2, "h2");
|
|
90
92
|
i0.ɵɵtext(3, "Coloca la parte frontal de tu DPI");
|
|
91
93
|
i0.ɵɵelementEnd();
|
|
92
|
-
i0.ɵɵelementStart(4, "p",
|
|
94
|
+
i0.ɵɵelementStart(4, "p", 31);
|
|
93
95
|
i0.ɵɵtext(5, "Evita sombras, reflejos y coloca tu documento dentro del recuadro.");
|
|
94
96
|
i0.ɵɵelementEnd()();
|
|
95
|
-
i0.ɵɵelementStart(6, "div",
|
|
96
|
-
i0.ɵɵelement(8, "source",
|
|
97
|
+
i0.ɵɵelementStart(6, "div", 32)(7, "video", 33);
|
|
98
|
+
i0.ɵɵelement(8, "source", 34);
|
|
97
99
|
i0.ɵɵelementEnd()();
|
|
98
100
|
i0.ɵɵelementStart(9, "div", 7)(10, "ion-button", 8);
|
|
99
|
-
i0.ɵɵlistener("click", function
|
|
101
|
+
i0.ɵɵlistener("click", function IdVisionComponent_swiper_slide_3_div_3_Template_ion_button_click_10_listener() { i0.ɵɵrestoreView(_r5); const step_r4 = i0.ɵɵnextContext().$implicit; return i0.ɵɵresetView(step_r4.action()); });
|
|
100
102
|
i0.ɵɵtext(11, "Tomar una foto");
|
|
101
103
|
i0.ɵɵelementEnd()()();
|
|
102
104
|
} }
|
|
103
|
-
function
|
|
105
|
+
function IdVisionComponent_swiper_slide_3_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
104
106
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
105
|
-
i0.ɵɵelementStart(0, "div")(1, "div",
|
|
107
|
+
i0.ɵɵelementStart(0, "div")(1, "div", 16)(2, "h2");
|
|
106
108
|
i0.ɵɵtext(3, "Coloca el reverso de tu DPI");
|
|
107
109
|
i0.ɵɵelementEnd();
|
|
108
|
-
i0.ɵɵelementStart(4, "p",
|
|
110
|
+
i0.ɵɵelementStart(4, "p", 31);
|
|
109
111
|
i0.ɵɵtext(5, "Evita sombras, reflejos y coloca tu documento dentro del recuadro.");
|
|
110
112
|
i0.ɵɵelementEnd()();
|
|
111
|
-
i0.ɵɵelementStart(6, "div",
|
|
112
|
-
i0.ɵɵelement(8, "source",
|
|
113
|
+
i0.ɵɵelementStart(6, "div", 32)(7, "video", 35);
|
|
114
|
+
i0.ɵɵelement(8, "source", 36);
|
|
113
115
|
i0.ɵɵelementEnd()();
|
|
114
116
|
i0.ɵɵelementStart(9, "div", 7)(10, "ion-button", 8);
|
|
115
|
-
i0.ɵɵlistener("click", function
|
|
117
|
+
i0.ɵɵlistener("click", function IdVisionComponent_swiper_slide_3_div_4_Template_ion_button_click_10_listener() { i0.ɵɵrestoreView(_r6); const step_r4 = i0.ɵɵnextContext().$implicit; return i0.ɵɵresetView(step_r4.action()); });
|
|
116
118
|
i0.ɵɵtext(11, "Tomar una foto");
|
|
117
119
|
i0.ɵɵelementEnd()()();
|
|
118
120
|
} }
|
|
119
|
-
function
|
|
121
|
+
function IdVisionComponent_swiper_slide_3_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
120
122
|
const _r7 = i0.ɵɵgetCurrentView();
|
|
121
|
-
i0.ɵɵelementStart(0, "div")(1, "div",
|
|
123
|
+
i0.ɵɵelementStart(0, "div")(1, "div", 16)(2, "h2");
|
|
122
124
|
i0.ɵɵtext(3, "Video Selfie");
|
|
123
125
|
i0.ɵɵelementEnd();
|
|
124
|
-
i0.ɵɵelementStart(4, "p",
|
|
126
|
+
i0.ɵɵelementStart(4, "p", 17);
|
|
125
127
|
i0.ɵɵtext(5, "Graba un breve video para completar tu proceso de identificaci\u00F3n.");
|
|
126
128
|
i0.ɵɵelementEnd()();
|
|
127
|
-
i0.ɵɵelementStart(6, "ion-grid",
|
|
128
|
-
i0.ɵɵelement(10, "img",
|
|
129
|
+
i0.ɵɵelementStart(6, "ion-grid", 20)(7, "ion-row")(8, "ion-row")(9, "div", 21);
|
|
130
|
+
i0.ɵɵelement(10, "img", 30);
|
|
129
131
|
i0.ɵɵelementEnd();
|
|
130
|
-
i0.ɵɵelementStart(11, "div",
|
|
132
|
+
i0.ɵɵelementStart(11, "div", 23)(12, "p");
|
|
131
133
|
i0.ɵɵtext(13, "Si est\u00E1s en interiores, aseg\u00FArate de que la luz est\u00E9 frente a ti, no detr\u00E1s.");
|
|
132
134
|
i0.ɵɵelementEnd()()();
|
|
133
|
-
i0.ɵɵelementStart(14, "ion-row")(15, "div",
|
|
134
|
-
i0.ɵɵelement(16, "img",
|
|
135
|
+
i0.ɵɵelementStart(14, "ion-row")(15, "div", 21);
|
|
136
|
+
i0.ɵɵelement(16, "img", 24);
|
|
135
137
|
i0.ɵɵelementEnd();
|
|
136
|
-
i0.ɵɵelementStart(17, "div",
|
|
138
|
+
i0.ɵɵelementStart(17, "div", 23)(18, "p");
|
|
137
139
|
i0.ɵɵtext(19, "Aseg\u00FArate de que tu rostro sea visible y de no usar anteojos ni sombreros.");
|
|
138
140
|
i0.ɵɵelementEnd()()()()();
|
|
139
141
|
i0.ɵɵelementStart(20, "div", 7)(21, "ion-button", 8);
|
|
140
|
-
i0.ɵɵlistener("click", function
|
|
142
|
+
i0.ɵɵlistener("click", function IdVisionComponent_swiper_slide_3_div_5_Template_ion_button_click_21_listener() { i0.ɵɵrestoreView(_r7); const step_r4 = i0.ɵɵnextContext().$implicit; return i0.ɵɵresetView(step_r4.action()); });
|
|
141
143
|
i0.ɵɵtext(22, "Abrir la c\u00E1mara");
|
|
142
144
|
i0.ɵɵelementEnd()()();
|
|
143
145
|
} }
|
|
144
|
-
function
|
|
146
|
+
function IdVisionComponent_swiper_slide_3_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
145
147
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
146
|
-
i0.ɵɵelementStart(0, "div")(1, "div",
|
|
148
|
+
i0.ɵɵelementStart(0, "div")(1, "div", 16)(2, "h2");
|
|
147
149
|
i0.ɵɵtext(3, "Foto Selfie");
|
|
148
150
|
i0.ɵɵelementEnd();
|
|
149
|
-
i0.ɵɵelementStart(4, "p",
|
|
151
|
+
i0.ɵɵelementStart(4, "p", 17);
|
|
150
152
|
i0.ɵɵtext(5, "Toma una foto para completar tu proceso de identificaci\u00F3n.");
|
|
151
153
|
i0.ɵɵelementEnd()();
|
|
152
|
-
i0.ɵɵelementStart(6, "ion-grid",
|
|
153
|
-
i0.ɵɵelement(10, "img",
|
|
154
|
+
i0.ɵɵelementStart(6, "ion-grid", 20)(7, "ion-row")(8, "ion-row")(9, "div", 21);
|
|
155
|
+
i0.ɵɵelement(10, "img", 30);
|
|
154
156
|
i0.ɵɵelementEnd();
|
|
155
|
-
i0.ɵɵelementStart(11, "div",
|
|
157
|
+
i0.ɵɵelementStart(11, "div", 23)(12, "p");
|
|
156
158
|
i0.ɵɵtext(13, "Si est\u00E1s en interiores, aseg\u00FArate de que la luz est\u00E9 frente a ti, no detr\u00E1s.");
|
|
157
159
|
i0.ɵɵelementEnd()()();
|
|
158
|
-
i0.ɵɵelementStart(14, "ion-row")(15, "div",
|
|
159
|
-
i0.ɵɵelement(16, "img",
|
|
160
|
+
i0.ɵɵelementStart(14, "ion-row")(15, "div", 21);
|
|
161
|
+
i0.ɵɵelement(16, "img", 24);
|
|
160
162
|
i0.ɵɵelementEnd();
|
|
161
|
-
i0.ɵɵelementStart(17, "div",
|
|
163
|
+
i0.ɵɵelementStart(17, "div", 23)(18, "p");
|
|
162
164
|
i0.ɵɵtext(19, "Aseg\u00FArate de que tu rostro sea visible y de no usar anteojos ni sombreros.");
|
|
163
165
|
i0.ɵɵelementEnd()()()()();
|
|
164
166
|
i0.ɵɵelementStart(20, "div", 7)(21, "ion-button", 8);
|
|
165
|
-
i0.ɵɵlistener("click", function
|
|
167
|
+
i0.ɵɵlistener("click", function IdVisionComponent_swiper_slide_3_div_6_Template_ion_button_click_21_listener() { i0.ɵɵrestoreView(_r8); const step_r4 = i0.ɵɵnextContext().$implicit; return i0.ɵɵresetView(step_r4.action()); });
|
|
166
168
|
i0.ɵɵtext(22, "Abrir la c\u00E1mara");
|
|
167
169
|
i0.ɵɵelementEnd()()();
|
|
168
170
|
} }
|
|
169
|
-
function
|
|
171
|
+
function IdVisionComponent_swiper_slide_3_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
170
172
|
i0.ɵɵelementStart(0, "div")(1, "h2");
|
|
171
173
|
i0.ɵɵtext(2, "Paso desconocido");
|
|
172
174
|
i0.ɵɵelementEnd()();
|
|
173
175
|
} }
|
|
174
|
-
function
|
|
175
|
-
i0.ɵɵelementStart(0, "swiper-slide")(1, "div",
|
|
176
|
-
i0.ɵɵtemplate(2,
|
|
176
|
+
function IdVisionComponent_swiper_slide_3_Template(rf, ctx) { if (rf & 1) {
|
|
177
|
+
i0.ɵɵelementStart(0, "swiper-slide")(1, "div", 25);
|
|
178
|
+
i0.ɵɵtemplate(2, IdVisionComponent_swiper_slide_3_div_2_Template, 22, 3, "div", 26)(3, IdVisionComponent_swiper_slide_3_div_3_Template, 12, 0, "div", 27)(4, IdVisionComponent_swiper_slide_3_div_4_Template, 12, 0, "div", 27)(5, IdVisionComponent_swiper_slide_3_div_5_Template, 23, 0, "div", 27)(6, IdVisionComponent_swiper_slide_3_div_6_Template, 23, 0, "div", 27)(7, IdVisionComponent_swiper_slide_3_div_7_Template, 3, 0, "div", 28);
|
|
177
179
|
i0.ɵɵelementEnd()();
|
|
178
180
|
} if (rf & 2) {
|
|
179
181
|
const step_r4 = ctx.$implicit;
|
|
@@ -190,25 +192,33 @@ function IdVisionComponent_swiper_slide_2_Template(rf, ctx) { if (rf & 1) {
|
|
|
190
192
|
i0.ɵɵadvance();
|
|
191
193
|
i0.ɵɵproperty("ngSwitchCase", 5);
|
|
192
194
|
} }
|
|
193
|
-
function
|
|
194
|
-
i0.ɵɵelementStart(0, "ion-col",
|
|
195
|
+
function IdVisionComponent_ion_col_6_Template(rf, ctx) { if (rf & 1) {
|
|
196
|
+
i0.ɵɵelementStart(0, "ion-col", 37)(1, "ion-item", 6)(2, "p", 38);
|
|
195
197
|
i0.ɵɵtext(3, "Informaci\u00F3n procesada de manera correcta");
|
|
196
198
|
i0.ɵɵelementEnd()();
|
|
197
|
-
i0.ɵɵelementStart(4, "ion-item",
|
|
198
|
-
i0.ɵɵelement(5, "img",
|
|
199
|
+
i0.ɵɵelementStart(4, "ion-item", 39);
|
|
200
|
+
i0.ɵɵelement(5, "img", 40);
|
|
199
201
|
i0.ɵɵelementEnd()();
|
|
200
202
|
} }
|
|
201
|
-
function
|
|
202
|
-
i0.ɵɵelementStart(0, "ion-col",
|
|
203
|
+
function IdVisionComponent_ion_col_7_Template(rf, ctx) { if (rf & 1) {
|
|
204
|
+
i0.ɵɵelementStart(0, "ion-col", 37)(1, "ion-item", 6)(2, "p", 38);
|
|
203
205
|
i0.ɵɵtext(3, "Ocurri\u00F3 un error al procesar la informaci\u00F3n");
|
|
204
206
|
i0.ɵɵelementEnd()();
|
|
205
|
-
i0.ɵɵelementStart(4, "ion-item",
|
|
206
|
-
i0.ɵɵelement(5, "img",
|
|
207
|
+
i0.ɵɵelementStart(4, "ion-item", 39);
|
|
208
|
+
i0.ɵɵelement(5, "img", 40);
|
|
209
|
+
i0.ɵɵelementEnd()();
|
|
210
|
+
} }
|
|
211
|
+
function IdVisionComponent_ion_fab_14_Template(rf, ctx) { if (rf & 1) {
|
|
212
|
+
const _r9 = i0.ɵɵgetCurrentView();
|
|
213
|
+
i0.ɵɵelementStart(0, "ion-fab", 41)(1, "ion-fab-button", 42);
|
|
214
|
+
i0.ɵɵlistener("click", function IdVisionComponent_ion_fab_14_Template_ion_fab_button_click_1_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.copyProccess()); });
|
|
215
|
+
i0.ɵɵelement(2, "ion-icon", 43);
|
|
207
216
|
i0.ɵɵelementEnd()();
|
|
208
217
|
} }
|
|
209
218
|
register();
|
|
210
219
|
export class IdVisionComponent {
|
|
211
|
-
constructor(modalController, dpiService, alertController, loadingController, platform, modalDpiServices, modalVideoSelfieServices, sdkCommunicationService, navController, validateMetaGService, cdRef, photoSelfieServices) {
|
|
220
|
+
constructor(zone, modalController, dpiService, alertController, loadingController, platform, modalDpiServices, modalVideoSelfieServices, sdkCommunicationService, navController, validateMetaGService, cdRef, photoSelfieServices, toastController) {
|
|
221
|
+
this.zone = zone;
|
|
212
222
|
this.modalController = modalController;
|
|
213
223
|
this.dpiService = dpiService;
|
|
214
224
|
this.alertController = alertController;
|
|
@@ -221,6 +231,7 @@ export class IdVisionComponent {
|
|
|
221
231
|
this.validateMetaGService = validateMetaGService;
|
|
222
232
|
this.cdRef = cdRef;
|
|
223
233
|
this.photoSelfieServices = photoSelfieServices;
|
|
234
|
+
this.toastController = toastController;
|
|
224
235
|
this.tutoImage1 = 'assets/imagesIdvision/documentsImage.png';
|
|
225
236
|
this.tutoImage2 = 'assets/imagesIdvision/documentsImage.png';
|
|
226
237
|
this.tutoImage3 = 'assets/imagesIdvision/56.png';
|
|
@@ -232,6 +243,9 @@ export class IdVisionComponent {
|
|
|
232
243
|
this.connection = '';
|
|
233
244
|
this.apikey = '';
|
|
234
245
|
this.validationConfig = [];
|
|
246
|
+
this.showDebug = false;
|
|
247
|
+
this.versionSDK = '';
|
|
248
|
+
this.hasInternet = true;
|
|
235
249
|
this.simpleProcess = false;
|
|
236
250
|
// Booleans para habilitar cada step
|
|
237
251
|
this.showAcuerdoVideo = false;
|
|
@@ -250,48 +264,6 @@ export class IdVisionComponent {
|
|
|
250
264
|
photoSelfie: false
|
|
251
265
|
};
|
|
252
266
|
}
|
|
253
|
-
// async loadMockValidationConfig() {
|
|
254
|
-
// this.dpiService.getConnectionById(this.connection).subscribe({
|
|
255
|
-
// next: (connection: any) => {
|
|
256
|
-
// console.log(connection.details);
|
|
257
|
-
// console.log(connection.details.config);
|
|
258
|
-
// this.validationConfig = [
|
|
259
|
-
// { id: 1, type: 2, order: "1" }, // DPI Frontal
|
|
260
|
-
// { id: 2, type: 3, order: "2" }, // DPI Trasero
|
|
261
|
-
// { id: 3, type: 4, order: "3" } // Video Selfie
|
|
262
|
-
// ];
|
|
263
|
-
// },
|
|
264
|
-
// error: (err) => {
|
|
265
|
-
// console.error("Error al obtener la conexión:", err);
|
|
266
|
-
// }
|
|
267
|
-
// });
|
|
268
|
-
// }
|
|
269
|
-
//renderizado dinamico
|
|
270
|
-
// async loadMockValidationConfig() {
|
|
271
|
-
// this.dpiService.getConnectionById(this.connection).subscribe({
|
|
272
|
-
// next: (connection: any) => {
|
|
273
|
-
// if (connection?.details?.config && Array.isArray(connection.details.config)) {
|
|
274
|
-
// console.log("Configuración obtenida:", connection.details.config);
|
|
275
|
-
// // 🔥 Procesamos la configuración recibida
|
|
276
|
-
// this.validationConfig = connection.details.config
|
|
277
|
-
// .map((config: { id: number, type: number, order: string }) => ({
|
|
278
|
-
// id: config.id,
|
|
279
|
-
// type: config.type,
|
|
280
|
-
// order: Number(config.order) // Convertimos `order` a número
|
|
281
|
-
// }))
|
|
282
|
-
// .sort((a: { order: number }, b: { order: number }) => a.order - b.order); // Ordenamos por `order`
|
|
283
|
-
// console.log("Configuración ordenada:", this.validationConfig);
|
|
284
|
-
// // 🔥 Asegurar que los flags de visibilidad se actualicen correctamente
|
|
285
|
-
// this.setValidationConfig();
|
|
286
|
-
// } else {
|
|
287
|
-
// console.warn("La configuración obtenida no es válida:", connection);
|
|
288
|
-
// }
|
|
289
|
-
// },
|
|
290
|
-
// error: (err) => {
|
|
291
|
-
// console.error("Error al obtener la conexión:", err);
|
|
292
|
-
// }
|
|
293
|
-
// });
|
|
294
|
-
// }
|
|
295
267
|
loadMockValidationConfig() {
|
|
296
268
|
return __awaiter(this, void 0, void 0, function* () {
|
|
297
269
|
let loader = null;
|
|
@@ -306,16 +278,6 @@ export class IdVisionComponent {
|
|
|
306
278
|
var _a;
|
|
307
279
|
// console.log(connection.details);
|
|
308
280
|
if (((_a = connection === null || connection === void 0 ? void 0 : connection.details) === null || _a === void 0 ? void 0 : _a.config) && Array.isArray(connection.details.config)) {
|
|
309
|
-
// console.log("Configuración obtenida:", connection.details.config);
|
|
310
|
-
// this.simpleProcess = true; // ⚠️ CAMBIAR cuando el backend devuelva el valor real
|
|
311
|
-
// this.validationConfig = connection.details.config
|
|
312
|
-
// .map((config: { id: number, type: number, order: string }) => ({
|
|
313
|
-
// id: config.id,
|
|
314
|
-
// type: config.type,
|
|
315
|
-
// order: Number(config.order),
|
|
316
|
-
// action: this.getStepAction(config.type)
|
|
317
|
-
// }))
|
|
318
|
-
// .sort((a: { order: number }, b: { order: number }) => a.order - b.order);
|
|
319
281
|
let configData = connection.details.config
|
|
320
282
|
.map((config) => ({
|
|
321
283
|
id: config.id,
|
|
@@ -344,9 +306,43 @@ export class IdVisionComponent {
|
|
|
344
306
|
console.warn("La configuración obtenida no es válida:", connection);
|
|
345
307
|
}
|
|
346
308
|
},
|
|
347
|
-
error: (err) => {
|
|
348
|
-
|
|
349
|
-
|
|
309
|
+
error: (err) => __awaiter(this, void 0, void 0, function* () {
|
|
310
|
+
if (loader) {
|
|
311
|
+
loader.dismiss();
|
|
312
|
+
}
|
|
313
|
+
if (this.hasInternet) {
|
|
314
|
+
const modal = yield this.modalController.create({
|
|
315
|
+
component: MessageModalComponent,
|
|
316
|
+
componentProps: {
|
|
317
|
+
title: 'Error',
|
|
318
|
+
errors: ["Credenciales Ingresadas Invalidas"],
|
|
319
|
+
variant: 'dpi'
|
|
320
|
+
},
|
|
321
|
+
backdropDismiss: false
|
|
322
|
+
});
|
|
323
|
+
yield modal.present();
|
|
324
|
+
modal.onDidDismiss().then(() => {
|
|
325
|
+
this.sdkCommunicationService.emitExit(false);
|
|
326
|
+
this.navController.back();
|
|
327
|
+
});
|
|
328
|
+
}
|
|
329
|
+
else {
|
|
330
|
+
const modal = yield this.modalController.create({
|
|
331
|
+
component: MessageModalComponent,
|
|
332
|
+
componentProps: {
|
|
333
|
+
title: 'Error de conexión',
|
|
334
|
+
errors: ["No pudimos cargar la página. Verifica tu internet y prueba de nuevo."],
|
|
335
|
+
variant: 'dpi'
|
|
336
|
+
},
|
|
337
|
+
backdropDismiss: false
|
|
338
|
+
});
|
|
339
|
+
yield modal.present();
|
|
340
|
+
modal.onDidDismiss().then(() => {
|
|
341
|
+
this.sdkCommunicationService.emitExit(false);
|
|
342
|
+
this.navController.back();
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
})
|
|
350
346
|
});
|
|
351
347
|
}
|
|
352
348
|
catch (error) {
|
|
@@ -398,7 +394,29 @@ export class IdVisionComponent {
|
|
|
398
394
|
}
|
|
399
395
|
ngOnInit() {
|
|
400
396
|
return __awaiter(this, void 0, void 0, function* () {
|
|
397
|
+
if (this.isAndroid || this.isIOS) {
|
|
398
|
+
try {
|
|
399
|
+
const status = yield Network.getStatus();
|
|
400
|
+
this.hasInternet = status.connected;
|
|
401
|
+
this.networkListener = yield Network.addListener('networkStatusChange', (status) => {
|
|
402
|
+
this.zone.run(() => {
|
|
403
|
+
this.hasInternet = status.connected;
|
|
404
|
+
console.log('Internet cambio:', this.hasInternet);
|
|
405
|
+
});
|
|
406
|
+
});
|
|
407
|
+
}
|
|
408
|
+
catch (error) {
|
|
409
|
+
alert(error.message);
|
|
410
|
+
}
|
|
411
|
+
}
|
|
401
412
|
yield this.loadMockValidationConfig();
|
|
413
|
+
if (this.isAndroid || this.isIOS) {
|
|
414
|
+
const info = yield App.getInfo();
|
|
415
|
+
this.versionSDK = info.version;
|
|
416
|
+
}
|
|
417
|
+
else {
|
|
418
|
+
this.versionSDK = 'web';
|
|
419
|
+
}
|
|
402
420
|
this.modalDpiServices.closeOverlay$.subscribe(() => {
|
|
403
421
|
this.closeOverlay();
|
|
404
422
|
});
|
|
@@ -456,7 +474,7 @@ export class IdVisionComponent {
|
|
|
456
474
|
navigation: {
|
|
457
475
|
enabled: false,
|
|
458
476
|
},
|
|
459
|
-
allowTouchMove:
|
|
477
|
+
allowTouchMove: false,
|
|
460
478
|
};
|
|
461
479
|
try {
|
|
462
480
|
Object.assign(swiperElement, swiperOptions);
|
|
@@ -480,10 +498,15 @@ export class IdVisionComponent {
|
|
|
480
498
|
}
|
|
481
499
|
}
|
|
482
500
|
ngOnDestroy() {
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
501
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
502
|
+
// this.swiperRef = null;
|
|
503
|
+
if (this.swiperRef) {
|
|
504
|
+
// this.swiperRef.destroy(true, true);
|
|
505
|
+
}
|
|
506
|
+
if ((this.isAndroid || this.isIOS) && this.networkListener) {
|
|
507
|
+
yield this.networkListener.remove();
|
|
508
|
+
}
|
|
509
|
+
});
|
|
487
510
|
}
|
|
488
511
|
handleClick() {
|
|
489
512
|
this.InitProccess();
|
|
@@ -502,22 +525,6 @@ export class IdVisionComponent {
|
|
|
502
525
|
var _a, _b;
|
|
503
526
|
(_b = (_a = this.swiperElement()) === null || _a === void 0 ? void 0 : _a.swiper) === null || _b === void 0 ? void 0 : _b.slideTo(0);
|
|
504
527
|
}
|
|
505
|
-
// handleExit(): void {
|
|
506
|
-
// const result =
|
|
507
|
-
// this.validateMetaG.dpiBack &&
|
|
508
|
-
// this.validateMetaG.dpiFront &&
|
|
509
|
-
// this.validateMetaG.videoSelfie;
|
|
510
|
-
// this.sdkCommunicationService.emitExit(result);
|
|
511
|
-
// this.navController.back();
|
|
512
|
-
// }
|
|
513
|
-
// handleExit(): void {
|
|
514
|
-
// const result =
|
|
515
|
-
// (!this.showDpiFront || this.validateMetaG.dpiFront) &&
|
|
516
|
-
// (!this.showDpiBack || this.validateMetaG.dpiBack) &&
|
|
517
|
-
// (!this.showVideoSelfie || this.validateMetaG.videoSelfie);
|
|
518
|
-
// this.sdkCommunicationService.emitExit(result);
|
|
519
|
-
// this.navController.back();
|
|
520
|
-
// }
|
|
521
528
|
handleExit() {
|
|
522
529
|
this.updateValidation();
|
|
523
530
|
const result = this.isAllValid(); // Usamos la validación corregida
|
|
@@ -525,21 +532,7 @@ export class IdVisionComponent {
|
|
|
525
532
|
this.sdkCommunicationService.emitExit(result);
|
|
526
533
|
this.navController.back();
|
|
527
534
|
}
|
|
528
|
-
// isAllValid(): boolean {
|
|
529
|
-
// let isValid =
|
|
530
|
-
// this.validateMetaG.dpiFront &&
|
|
531
|
-
// this.validateMetaG.dpiBack &&
|
|
532
|
-
// this.validateMetaG.videoSelfie;
|
|
533
|
-
// this.validateMetaGService.setValidateMetaG(isValid);
|
|
534
|
-
// return isValid;
|
|
535
|
-
// }
|
|
536
535
|
isAllValid() {
|
|
537
|
-
// console.log('🔎 Verificando estado de los pasos:');
|
|
538
|
-
// console.log('showAcuerdoVideo:', this.showAcuerdoVideo, '| Validado:', this.validateMetaG.dpiFront);
|
|
539
|
-
// console.log('showDpiFront:', this.showDpiFront, '| Validado:', this.validateMetaG.dpiFront);
|
|
540
|
-
// console.log('showDpiBack:', this.showDpiBack, '| Validado:', this.validateMetaG.dpiBack);
|
|
541
|
-
// console.log('showVideoSelfie:', this.showVideoSelfie, '| Validado:', this.validateMetaG.videoSelfie);
|
|
542
|
-
// console.log('showPhotoSelfie:', this.showPhotoSelfie, '| Validado:', this.validateMetaG.photoSelfie);
|
|
543
536
|
// Si NO hay pasos activados, devolvemos `false`
|
|
544
537
|
if (!this.showAcuerdoVideo && !this.showDpiFront && !this.showDpiBack && !this.showVideoSelfie && !this.showPhotoSelfie) {
|
|
545
538
|
console.log('⚠️ No hay pasos activos, devolviendo `false`.');
|
|
@@ -629,7 +622,7 @@ export class IdVisionComponent {
|
|
|
629
622
|
});
|
|
630
623
|
yield loader.present();
|
|
631
624
|
this.dpiService
|
|
632
|
-
.InitProccess(this.dpiCode + '', this.connection, this.apikey) // '673259d3f027711b51e71202')
|
|
625
|
+
.InitProccess(this.dpiCode + '', this.connection, this.apikey, this.versionSDK) // '673259d3f027711b51e71202')
|
|
633
626
|
.subscribe({
|
|
634
627
|
next: (response) => {
|
|
635
628
|
var _a;
|
|
@@ -639,6 +632,7 @@ export class IdVisionComponent {
|
|
|
639
632
|
if (!response['error']) {
|
|
640
633
|
localStorage.setItem('codigo', response['details']);
|
|
641
634
|
const isCompleted = response['completed'];
|
|
635
|
+
this.showDebug = false;
|
|
642
636
|
if (isCompleted) {
|
|
643
637
|
// console.log("Paso aca en el if")
|
|
644
638
|
this.validateMetaG.acuerdoVideo = true;
|
|
@@ -651,13 +645,10 @@ export class IdVisionComponent {
|
|
|
651
645
|
}
|
|
652
646
|
else {
|
|
653
647
|
if (!this.simpleProcess) {
|
|
654
|
-
// console.log("Paso aca en el else")
|
|
655
648
|
this.handleSlide(1);
|
|
656
649
|
}
|
|
657
650
|
else {
|
|
658
651
|
this.openSimpleAcuerdo();
|
|
659
|
-
// this.openAcuerdoVideo();
|
|
660
|
-
// console.log("Simple process activado...")
|
|
661
652
|
}
|
|
662
653
|
}
|
|
663
654
|
}
|
|
@@ -681,6 +672,9 @@ export class IdVisionComponent {
|
|
|
681
672
|
}
|
|
682
673
|
},
|
|
683
674
|
error: (error) => {
|
|
675
|
+
console.log('-----------------');
|
|
676
|
+
console.log(error);
|
|
677
|
+
console.log('-----------------');
|
|
684
678
|
console.error('Error al llamar al servicio:', error);
|
|
685
679
|
},
|
|
686
680
|
});
|
|
@@ -712,15 +706,6 @@ export class IdVisionComponent {
|
|
|
712
706
|
loader.dismiss();
|
|
713
707
|
}
|
|
714
708
|
if (!response['error']) {
|
|
715
|
-
// this.showAlert('Éxito', 'DPI registrado correctamente', [], () => {
|
|
716
|
-
// this.closeModalFromParent();
|
|
717
|
-
// this.modalController.dismiss();
|
|
718
|
-
// this.validateMetaG.dpiFront = true;
|
|
719
|
-
// this.updateValidation();
|
|
720
|
-
// // this.handleSlide(2);
|
|
721
|
-
// // this.handleNext();
|
|
722
|
-
// this.moveToNextStep(2);
|
|
723
|
-
// });
|
|
724
709
|
const modal = yield this.modalController.create({
|
|
725
710
|
component: MessageModalComponent,
|
|
726
711
|
componentProps: {
|
|
@@ -743,8 +728,8 @@ export class IdVisionComponent {
|
|
|
743
728
|
const modal = yield this.modalController.create({
|
|
744
729
|
component: MessageModalComponent,
|
|
745
730
|
componentProps: {
|
|
746
|
-
title: '
|
|
747
|
-
errors: response['
|
|
731
|
+
title: response['mensage'],
|
|
732
|
+
errors: response['details'],
|
|
748
733
|
variant: 'dpi'
|
|
749
734
|
},
|
|
750
735
|
backdropDismiss: false
|
|
@@ -753,34 +738,43 @@ export class IdVisionComponent {
|
|
|
753
738
|
modal.onDidDismiss().then(() => {
|
|
754
739
|
this.resumeCameraFromParent();
|
|
755
740
|
});
|
|
756
|
-
// this.showAlert(response['mensage'], '', response['details'], () => {
|
|
757
|
-
// this.resumeCameraFromParent();
|
|
758
|
-
// });
|
|
759
741
|
this.validateMetaG.dpiFront = false;
|
|
760
742
|
this.updateValidation();
|
|
761
743
|
}
|
|
762
744
|
}),
|
|
763
745
|
error: (error) => __awaiter(this, void 0, void 0, function* () {
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
746
|
+
if (this.hasInternet) {
|
|
747
|
+
const modal = yield this.modalController.create({
|
|
748
|
+
component: MessageModalComponent,
|
|
749
|
+
componentProps: {
|
|
750
|
+
title: 'Error',
|
|
751
|
+
errors: error || [],
|
|
752
|
+
variant: 'dpi'
|
|
753
|
+
},
|
|
754
|
+
backdropDismiss: false
|
|
755
|
+
});
|
|
756
|
+
yield modal.present();
|
|
757
|
+
modal.onDidDismiss().then(() => {
|
|
758
|
+
this.resumeCameraFromParent();
|
|
759
|
+
});
|
|
760
|
+
}
|
|
761
|
+
else {
|
|
762
|
+
const modal = yield this.modalController.create({
|
|
763
|
+
component: MessageModalComponent,
|
|
764
|
+
componentProps: {
|
|
765
|
+
title: 'Error de conexión',
|
|
766
|
+
errors: ["No pudimos cargar la página. Verifica tu internet y prueba de nuevo."],
|
|
767
|
+
variant: 'dpi'
|
|
768
|
+
},
|
|
769
|
+
backdropDismiss: false
|
|
770
|
+
});
|
|
771
|
+
yield modal.present();
|
|
772
|
+
modal.onDidDismiss().then(() => {
|
|
773
|
+
this.resumeCameraFromParent();
|
|
774
|
+
});
|
|
775
|
+
}
|
|
777
776
|
this.validateMetaG.dpiFront = false;
|
|
778
777
|
this.updateValidation();
|
|
779
|
-
// this.showAlert('Error', '', error, () => {
|
|
780
|
-
// this.resumeCameraFromParent();
|
|
781
|
-
// });
|
|
782
|
-
// this.validateMetaG.dpiFront = false;
|
|
783
|
-
// this.updateValidation();
|
|
784
778
|
if (loader) {
|
|
785
779
|
loader.dismiss();
|
|
786
780
|
}
|
|
@@ -890,34 +884,46 @@ export class IdVisionComponent {
|
|
|
890
884
|
}
|
|
891
885
|
}),
|
|
892
886
|
error: (error) => __awaiter(this, void 0, void 0, function* () {
|
|
893
|
-
const modal = yield this.modalController.create({
|
|
894
|
-
component: MessageModalComponent,
|
|
895
|
-
componentProps: {
|
|
896
|
-
title: error['mensage'],
|
|
897
|
-
message: error['details'],
|
|
898
|
-
variant: 'dpi'
|
|
899
|
-
},
|
|
900
|
-
backdropDismiss: false
|
|
901
|
-
});
|
|
902
|
-
yield modal.present();
|
|
903
|
-
modal.onDidDismiss().then(() => {
|
|
904
|
-
this.resumeCameraFromParent();
|
|
905
|
-
this.validateMetaG.dpiBack = false;
|
|
906
|
-
this.updateValidation();
|
|
907
|
-
console.error('Error al llamar al servicio:', error);
|
|
908
|
-
});
|
|
909
887
|
if (loader) {
|
|
910
888
|
loader.dismiss();
|
|
911
889
|
}
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
890
|
+
if (this.hasInternet) {
|
|
891
|
+
const modal = yield this.modalController.create({
|
|
892
|
+
component: MessageModalComponent,
|
|
893
|
+
componentProps: {
|
|
894
|
+
title: error['mensage'],
|
|
895
|
+
message: error['details'],
|
|
896
|
+
variant: 'dpi'
|
|
897
|
+
},
|
|
898
|
+
backdropDismiss: false
|
|
899
|
+
});
|
|
900
|
+
yield modal.present();
|
|
901
|
+
modal.onDidDismiss().then(() => {
|
|
902
|
+
this.resumeCameraFromParent();
|
|
903
|
+
this.validateMetaG.dpiBack = false;
|
|
904
|
+
this.updateValidation();
|
|
905
|
+
console.error('Error al llamar al servicio:', error);
|
|
906
|
+
});
|
|
907
|
+
if (loader) {
|
|
908
|
+
loader.dismiss();
|
|
909
|
+
}
|
|
910
|
+
}
|
|
911
|
+
else {
|
|
912
|
+
const modal = yield this.modalController.create({
|
|
913
|
+
component: MessageModalComponent,
|
|
914
|
+
componentProps: {
|
|
915
|
+
title: 'Error de conexión',
|
|
916
|
+
errors: ["No pudimos cargar la página. Verifica tu internet y prueba de nuevo."],
|
|
917
|
+
variant: 'dpi'
|
|
918
|
+
},
|
|
919
|
+
backdropDismiss: false
|
|
920
|
+
});
|
|
921
|
+
yield modal.present();
|
|
922
|
+
modal.onDidDismiss().then(() => {
|
|
923
|
+
this.sdkCommunicationService.emitExit(false);
|
|
924
|
+
this.navController.back();
|
|
925
|
+
});
|
|
926
|
+
}
|
|
921
927
|
}),
|
|
922
928
|
});
|
|
923
929
|
}
|
|
@@ -943,13 +949,6 @@ export class IdVisionComponent {
|
|
|
943
949
|
loader.dismiss();
|
|
944
950
|
}
|
|
945
951
|
if (!response['error']) {
|
|
946
|
-
// this.showAlert('Éxito', response['message'], [], () => {
|
|
947
|
-
// this.closeModalVideoSelfie();
|
|
948
|
-
// this.modalController.dismiss();
|
|
949
|
-
// this.validateMetaG.videoSelfie = true;
|
|
950
|
-
// this.updateValidation();
|
|
951
|
-
// this.moveToNextStep(4);
|
|
952
|
-
// });
|
|
953
952
|
const modal = yield this.modalController.create({
|
|
954
953
|
component: MessageModalComponent,
|
|
955
954
|
componentProps: {
|
|
@@ -993,23 +992,41 @@ export class IdVisionComponent {
|
|
|
993
992
|
}
|
|
994
993
|
}),
|
|
995
994
|
error: (error) => __awaiter(this, void 0, void 0, function* () {
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
995
|
+
if (loader) {
|
|
996
|
+
loader.dismiss();
|
|
997
|
+
}
|
|
998
|
+
if (this.hasInternet) {
|
|
999
|
+
const modal = yield this.modalController.create({
|
|
1000
|
+
component: MessageModalComponent,
|
|
1001
|
+
componentProps: {
|
|
1002
|
+
title: 'Error',
|
|
1003
|
+
errors: error['message'],
|
|
1004
|
+
variant: 'video'
|
|
1005
|
+
},
|
|
1006
|
+
backdropDismiss: false
|
|
1007
|
+
});
|
|
1008
|
+
yield modal.present();
|
|
1009
|
+
modal.onDidDismiss().then(() => {
|
|
1010
|
+
this.resumeCameraFromParent();
|
|
1011
|
+
// this.modalController.dismiss();
|
|
1012
|
+
});
|
|
1013
|
+
}
|
|
1014
|
+
else {
|
|
1015
|
+
const modal = yield this.modalController.create({
|
|
1016
|
+
component: MessageModalComponent,
|
|
1017
|
+
componentProps: {
|
|
1018
|
+
title: 'Error de conexión',
|
|
1019
|
+
errors: ["No pudimos cargar la página. Verifica tu internet y prueba de nuevo."],
|
|
1020
|
+
variant: 'dpi'
|
|
1021
|
+
},
|
|
1022
|
+
backdropDismiss: false
|
|
1023
|
+
});
|
|
1024
|
+
yield modal.present();
|
|
1025
|
+
modal.onDidDismiss().then(() => {
|
|
1026
|
+
this.sdkCommunicationService.emitExit(false);
|
|
1027
|
+
this.navController.back();
|
|
1028
|
+
});
|
|
1029
|
+
}
|
|
1013
1030
|
console.error('Error al llamar al servicio:', error);
|
|
1014
1031
|
}),
|
|
1015
1032
|
});
|
|
@@ -1412,24 +1429,59 @@ export class IdVisionComponent {
|
|
|
1412
1429
|
yield modal.present();
|
|
1413
1430
|
});
|
|
1414
1431
|
}
|
|
1432
|
+
copyProccess() {
|
|
1433
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1434
|
+
var _a;
|
|
1435
|
+
const codigo = (_a = localStorage.getItem('codigo')) !== null && _a !== void 0 ? _a : '';
|
|
1436
|
+
this.copiarTexto(codigo);
|
|
1437
|
+
});
|
|
1438
|
+
}
|
|
1439
|
+
copiarTexto(texto) {
|
|
1440
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1441
|
+
yield Clipboard.write({
|
|
1442
|
+
string: texto
|
|
1443
|
+
});
|
|
1444
|
+
const toast = yield this.toastController.create({
|
|
1445
|
+
message: 'Proceso copiado!',
|
|
1446
|
+
duration: 2000,
|
|
1447
|
+
color: 'success'
|
|
1448
|
+
});
|
|
1449
|
+
yield toast.present();
|
|
1450
|
+
});
|
|
1451
|
+
}
|
|
1415
1452
|
}
|
|
1416
|
-
IdVisionComponent.ɵfac = function IdVisionComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || IdVisionComponent)(i0.ɵɵdirectiveInject(i1.ModalController), i0.ɵɵdirectiveInject(i2.DpiService), i0.ɵɵdirectiveInject(i1.AlertController), i0.ɵɵdirectiveInject(i1.LoadingController), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i3.ModalDpiServices), i0.ɵɵdirectiveInject(i4.ModalVideoSelfieServices), i0.ɵɵdirectiveInject(i5.SdkCommunicationService), i0.ɵɵdirectiveInject(i1.NavController), i0.ɵɵdirectiveInject(i6.ValidateMetaGService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i7.PhotoSelfieServices)); };
|
|
1453
|
+
IdVisionComponent.ɵfac = function IdVisionComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || IdVisionComponent)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.ModalController), i0.ɵɵdirectiveInject(i2.DpiService), i0.ɵɵdirectiveInject(i1.AlertController), i0.ɵɵdirectiveInject(i1.LoadingController), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i3.ModalDpiServices), i0.ɵɵdirectiveInject(i4.ModalVideoSelfieServices), i0.ɵɵdirectiveInject(i5.SdkCommunicationService), i0.ɵɵdirectiveInject(i1.NavController), i0.ɵɵdirectiveInject(i6.ValidateMetaGService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i7.PhotoSelfieServices), i0.ɵɵdirectiveInject(i1.ToastController)); };
|
|
1417
1454
|
IdVisionComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: IdVisionComponent, selectors: [["app-id-vision"]], viewQuery: function IdVisionComponent_Query(rf, ctx) { if (rf & 1) {
|
|
1418
1455
|
i0.ɵɵviewQuery(_c0, 5);
|
|
1419
1456
|
} if (rf & 2) {
|
|
1420
1457
|
let _t;
|
|
1421
1458
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dpi = _t.first);
|
|
1422
|
-
} }, inputs: { isSwipe: "isSwipe", dpiCode: "dpiCode", connection: "connection", apikey: "apikey", validationConfig: "validationConfig" }, standalone: true, features: [i0.ɵɵProvidersFeature([DpiService]), i0.ɵɵStandaloneFeature], decls:
|
|
1423
|
-
i0.ɵɵelementStart(0, "swiper-container", 1);
|
|
1424
|
-
i0.ɵɵtemplate(
|
|
1425
|
-
i0.ɵɵelementStart(
|
|
1426
|
-
i0.ɵɵtemplate(
|
|
1427
|
-
i0.ɵɵelementStart(
|
|
1428
|
-
i0.ɵɵlistener("click", function
|
|
1429
|
-
i0.ɵɵtext(
|
|
1459
|
+
} }, inputs: { isSwipe: "isSwipe", dpiCode: "dpiCode", connection: "connection", apikey: "apikey", validationConfig: "validationConfig" }, standalone: true, features: [i0.ɵɵProvidersFeature([DpiService]), i0.ɵɵStandaloneFeature], decls: 25, vars: 10, consts: [["dpi", ""], ["init", "false", 1, "custom-swiper"], [4, "ngIf"], [4, "ngFor", "ngForOf"], [1, "content"], ["class", "col-confirmation", 4, "ngIf"], ["color", "white"], [1, "fixed-footer"], ["expand", "block", 1, "custom-button", 3, "click"], [1, "version"], ["vertical", "top", "horizontal", "end", "slot", "fixed", 4, "ngIf"], [1, "wrapper-no-internet"], [1, "content-no-internet"], [1, "title-no-internet"], ["src", "assets/imagesIdvision/no-internet.svg", "alt", "Error conexi\u00F3n img", 1, "icon-no-internet"], [1, "description-no-internet"], [1, "head"], [1, "p-justify"], [1, "rounded-input"], ["type", "number", "disabled", "true", "placeholder", "Digita tu n\u00FAmero de DPI"], [1, "verify-container"], [1, "image-container"], ["src", "assets/imagesIdvision/documentsImage.png", "alt", ""], [1, "container-text"], ["src", "assets/imagesIdvision/rostroImage.png", "alt", ""], [1, "content", 3, "ngSwitch"], [3, "ngClass", 4, "ngSwitchCase"], [4, "ngSwitchCase"], [4, "ngSwitchDefault"], [3, "ngClass"], ["src", "assets/imagesIdvision/Foco.png", "alt", ""], [1, "p-center", "p-info"], [1, "dpi-container"], ["id", "dpiFront", "autoplay", "", "loop", "", "muted", "", "playsinline", "", "width", "1280", "height", "300"], ["src", "assets/imagesIdvision/Dpi-front.mp4", "type", "video/mp4"], ["id", "dpiBack", "autoplay", "", "loop", "", "muted", "", "playsinline", "", "width", "1280", "height", "300"], ["src", "assets/imagesIdvision/Dpi-back.mp4", "type", "video/mp4"], [1, "col-confirmation"], [1, "font-confirmation"], ["color", "white", 1, "image-item"], ["src", "assets/imagesIdvision/blue-check.png", "alt", ""], ["vertical", "top", "horizontal", "end", "slot", "fixed"], [1, "button-debug", 3, "click"], ["name", "bug-outline"]], template: function IdVisionComponent_Template(rf, ctx) { if (rf & 1) {
|
|
1460
|
+
i0.ɵɵelementStart(0, "ion-content")(1, "swiper-container", 1);
|
|
1461
|
+
i0.ɵɵtemplate(2, IdVisionComponent_swiper_slide_2_Template, 26, 0, "swiper-slide", 2)(3, IdVisionComponent_swiper_slide_3_Template, 8, 6, "swiper-slide", 3);
|
|
1462
|
+
i0.ɵɵelementStart(4, "swiper-slide")(5, "div", 4);
|
|
1463
|
+
i0.ɵɵtemplate(6, IdVisionComponent_ion_col_6_Template, 6, 0, "ion-col", 5)(7, IdVisionComponent_ion_col_7_Template, 6, 0, "ion-col", 5);
|
|
1464
|
+
i0.ɵɵelementStart(8, "ion-item", 6)(9, "div", 7)(10, "ion-button", 8);
|
|
1465
|
+
i0.ɵɵlistener("click", function IdVisionComponent_Template_ion_button_click_10_listener() { return ctx.handleExit(); });
|
|
1466
|
+
i0.ɵɵtext(11, "Salir");
|
|
1430
1467
|
i0.ɵɵelementEnd()()()()()();
|
|
1468
|
+
i0.ɵɵelementStart(12, "div", 9);
|
|
1469
|
+
i0.ɵɵtext(13);
|
|
1470
|
+
i0.ɵɵelementEnd();
|
|
1471
|
+
i0.ɵɵtemplate(14, IdVisionComponent_ion_fab_14_Template, 3, 0, "ion-fab", 10);
|
|
1472
|
+
i0.ɵɵelementEnd();
|
|
1473
|
+
i0.ɵɵelementStart(15, "ion-content")(16, "div", 11)(17, "div", 12)(18, "h2", 13);
|
|
1474
|
+
i0.ɵɵtext(19, "Error de conexi\u00F3n");
|
|
1475
|
+
i0.ɵɵelementEnd();
|
|
1476
|
+
i0.ɵɵelement(20, "img", 14);
|
|
1477
|
+
i0.ɵɵelementStart(21, "p", 15);
|
|
1478
|
+
i0.ɵɵtext(22, " No pudimos cargar la p\u00E1gina. ");
|
|
1479
|
+
i0.ɵɵelement(23, "br");
|
|
1480
|
+
i0.ɵɵtext(24, " Verifica tu internet y prueba de nuevo. ");
|
|
1481
|
+
i0.ɵɵelementEnd()()()();
|
|
1431
1482
|
} if (rf & 2) {
|
|
1432
|
-
i0.ɵɵ
|
|
1483
|
+
i0.ɵɵstyleProp("display", ctx.hasInternet ? "block" : "none");
|
|
1484
|
+
i0.ɵɵadvance(2);
|
|
1433
1485
|
i0.ɵɵproperty("ngIf", !ctx.simpleProcess);
|
|
1434
1486
|
i0.ɵɵadvance();
|
|
1435
1487
|
i0.ɵɵproperty("ngForOf", ctx.validationConfig);
|
|
@@ -1437,11 +1489,17 @@ IdVisionComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: IdVisionC
|
|
|
1437
1489
|
i0.ɵɵproperty("ngIf", ctx.isValid);
|
|
1438
1490
|
i0.ɵɵadvance();
|
|
1439
1491
|
i0.ɵɵproperty("ngIf", !ctx.isValid);
|
|
1440
|
-
|
|
1492
|
+
i0.ɵɵadvance(6);
|
|
1493
|
+
i0.ɵɵtextInterpolate(ctx.versionSDK);
|
|
1494
|
+
i0.ɵɵadvance();
|
|
1495
|
+
i0.ɵɵproperty("ngIf", ctx.showDebug);
|
|
1496
|
+
i0.ɵɵadvance();
|
|
1497
|
+
i0.ɵɵstyleProp("display", !ctx.hasInternet ? "block" : "none");
|
|
1498
|
+
} }, dependencies: [IonicModule, i1.IonButton, i1.IonCol, i1.IonContent, i1.IonFab, i1.IonFabButton, i1.IonGrid, i1.IonIcon, i1.IonInput, i1.IonItem, i1.IonRow, i1.NumericValueAccessor, CommonModule, i8.NgClass, i8.NgForOf, i8.NgIf, i8.NgSwitch, i8.NgSwitchCase, i8.NgSwitchDefault], styles: [".content[_ngcontent-%COMP%] {\n padding: 10px;\n align-items: center;\n justify-content: center;\n height: 100vh;\n background-color: #fff;\n font-size: 18px;\n background-image: url('assets/imagesIdvision/background.png');\n\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n\n}\n\n\nh2[_ngcontent-%COMP%] {\n font-size: 1.5em;\n font-weight: bold;\n color: var(--orange-primary, orange);\n text-align: center;\n margin-top: 20px;\n}\n\np[_ngcontent-%COMP%] {\n font-size: 1em;\n color: #666;\n text-align: center;\n margin: 0;\n}\n\nion-grid[_ngcontent-%COMP%] {\n margin-top: 20px;\n}\n\nion-row[_ngcontent-%COMP%] {\n margin: 15px 0;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\nion-col[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n}\n\nion-icon[_ngcontent-%COMP%] {\n font-size: 3em; // Tama\u00F1o del \u00EDcono para que sea m\u00E1s destacado\n color: #ff8c00; // Color similar al amarillo-naranja\n margin-bottom: 10px;\n}\n\n.container-text[_ngcontent-%COMP%] {\n text-align: justify !important;\n width: 180px;\n}\n\np[_ngcontent-%COMP%] {\n text-align: start;\n}\n\n.p-center[_ngcontent-%COMP%] {\n text-align: center;\n}\n\n.p-justify[_ngcontent-%COMP%] {\n text-align: start;\n}\n\n.head[_ngcontent-%COMP%] {\n padding: 30px;\n margin-top: 75px;\n margin-bottom: 20px;\n}\n\n\n.verify-container[_ngcontent-%COMP%] {\n // padding: 60px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 40%; // Ocupa todo el espacio disponible en el ion-content\n text-align: center;\n //background-color: black;\n}\n\n.fixed-footer[_ngcontent-%COMP%] {\n position: fixed;\n bottom: 0;\n left: 0;\n width: 100%;\n padding: 0px 10px 25px 10px;\n // background-color: black; // Color de fondo, opcional\n // box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1); // Sombra suave para que resalte\n\n ion-button {\n width: 90%;\n max-width: 300px;\n margin: 0 auto;\n background-color: #ffcc00;\n color: #ffffff;\n font-weight: bold;\n border-radius: 20px;\n\n &:hover {\n background-color: #ffb300;\n }\n\n &:active {\n background-color: #e6a800;\n }\n }\n}\n\n.dpi-container[_ngcontent-%COMP%] {\n display: flex;\n //width: 100%;\n justify-content: center;\n align-items: center;\n height: 50vh;\n}\n\n.dpi-image[_ngcontent-%COMP%] {\n width: 200px;\n}\n\n.image-container[_ngcontent-%COMP%] {\n width: 100px;\n max-width: 90px;\n}\n\n.col-confirmation[_ngcontent-%COMP%] {\n margin-top: 100px;\n padding: 20px;\n display: flex;\n flex-direction: column;\n gap: 20px;\n \n\n}\n\n.image-item[_ngcontent-%COMP%] {\n margin-top: 50px;\n padding-top: 70px;\n}\n\n.font-confirmation[_ngcontent-%COMP%] {\n font-size: 26px;\n text-align: center;\n // color: #005da9;\n color: var(--purple-primary);\n font-weight: bold;\n}\n\n\n.rounded-input[_ngcontent-%COMP%] {\n margin-top: 15px;\n background-color: #f4f6fc;\n \n\n border-radius: 10px;\n \n\n padding: 5px 5px;\n \n\n box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1);\n \n\n --ion-border-color: transparent;\n \n\n}\n\nion-input[_ngcontent-%COMP%] {\n text-align: center;\n color: var(--orange-primary);\n --padding-start: 8px;\n}\n\n.custom-footer[_ngcontent-%COMP%] {\n position: fixed;\n bottom: 0;\n left: 0;\n width: 100%;\n padding: 10px;\n display: flex;\n justify-content: space-between;\n \n\n background-color: #ffffff;\n \n\n //box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1); \n\n}\n\n.custom-footer[_ngcontent-%COMP%] ion-button[_ngcontent-%COMP%] {\n flex: 0 0 48%;\n \n\n}\n\n.custom-footer[_ngcontent-%COMP%] .left-button[_ngcontent-%COMP%] {\n max-width: 140px;\n color: black;\n\n --background: white;\n\n --color: var(--purple-primary);\n\n --border-radius: 20px;\n --border-color: white;\n margin-right: auto;\n \n\n --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.0);\n\n}\n\n.custom-footer[_ngcontent-%COMP%] .right-button[_ngcontent-%COMP%] {\n margin-left: auto;\n \n\n}\n\n.tutorial-head[_ngcontent-%COMP%] {\n padding-top: 50px;\n display: flex;\n justify-content: center;\n align-items: center;\n color: black;\n}\n\n.center-container[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 60vh;\n \n\n width: 100%;\n}\n\n.tutorial-title[_ngcontent-%COMP%] {\n text-align: center;\n}\n\n.rounded-input[_ngcontent-%COMP%] ion-input[_ngcontent-%COMP%] {\n font-size: 14px;\n \n\n color: #333;\n \n\n}\n\n.rounded-input[_ngcontent-%COMP%]::part(native) {\n background: transparent;\n \n\n}\n\n.p-info[_ngcontent-%COMP%] {\n font-weight: bold;\n color: #714e93\n}\n\n.custom-button[_ngcontent-%COMP%] {\n --background: var(--purple-primary, #82298F) !important;\n --background-hover: var(--purple-secondary, #2b0d30) !important;\n --background-activated: var(--purple-secondary, #2b0d30) !important;\n --color: #ffffff !important;\n --border-radius: 20px !important;\n --padding-top: 10px !important;\n --padding-bottom: 10px !important;\n --box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.25) !important;\n text-transform: none;\n\n pointer-events: auto;\n\n}\n\n//blur[_ngcontent-%COMP%] effect\n\n.blur-effect[_ngcontent-%COMP%] {\n filter: blur(5px);\n pointer-events: none;\n}\n\n.blur-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(255, 255, 255, 0.7);\n z-index: 999;\n filter: blur(5px);\n}\n\n.boton-personalizado[_ngcontent-%COMP%] {\n background-color: #4caf50;\n \n\n color: white;\n font-size: 16px;\n}\n\n.version[_ngcontent-%COMP%] {\n position: fixed;\n bottom: 10px;\n right: 10px;\n font-size: 12px;\n color: #888;\n z-index: 1000;\n}\n\n.button-debug[_ngcontent-%COMP%] {\n --background: #ff4081;\n --color: #fff;\n}\n\n\n.wrapper-no-internet[_ngcontent-%COMP%] {\n background-color: #fff;\n height: 100vh;\n display: flex;\n justify-content: center; \n\n align-items: center; \n\n padding: 40px;\n background-image: url('assets/imagesIdvision/background.png') !important;\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n \n}\n\n.content-no-internet[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n gap: 16px;\n}\n\n.title-no-internet[_ngcontent-%COMP%]{\n color: #000;\n font-size: 32px;\n font-weight: bold;\n}\n\n.icon-no-internet[_ngcontent-%COMP%] {\n width: 125px;\n display: block;\n margin-top: 25px;\n}\n\n.description-no-internet[_ngcontent-%COMP%] {\n margin-top: 25px;\n font-size: 22px;\n color: #000;\n line-height: 1.5;\n text-align: center;\n}"] });
|
|
1441
1499
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IdVisionComponent, [{
|
|
1442
1500
|
type: Component,
|
|
1443
|
-
args: [{ selector: 'app-id-vision', standalone: true, schemas: [CUSTOM_ELEMENTS_SCHEMA], imports: [IonicModule, CommonModule], providers: [DpiService], encapsulation: ViewEncapsulation.Emulated, template: "<!-- <swiper-container init=\"false\" class=\"custom-swiper\"> \n <swiper-slide>\n <div class=\"content\">\n <div class=\"head\">\n <h2 class=\"p-justify\">Verifiquemos tu identidad</h2>\n <p class=\"p-justify\">Para completar tu verificaci\u00F3n, por favor ingresa tu n\u00FAmero de identificaci\u00F3n (DPI).</p>\n <ion-item class=\"rounded-input\">\n <ion-input #dpi type=\"number\" disabled=\"true\" placeholder=\"Digita tu n\u00FAmero de DPI\"></ion-input>\n </ion-item>\n </div>\n <ion-grid class=\"verify-container\">\n <ion-row>\n <ion-row>\n <div class=\"image-container\">\n <img src=\"assets/imagesIdvision/documentsImage.png\" alt=\"\" />\n </div>\n <div class=\"container-text\">\n <p>Sube fotos de documentos que prueben tu identidad</p>\n </div>\n </ion-row>\n </ion-row>\n <ion-row>\n <ion-row>\n <div class=\"image-container\">\n <img src=\"assets/imagesIdvision/rostroImage.png\" alt=\"\" />\n </div>\n <div class=\"container-text\">\n <p>Graba un video selfie mientras lees el texto en voz alta</p>\n </div>\n </ion-row>\n </ion-row>\n </ion-grid>\n\n <div class=\"fixed-footer\">\n <ion-button class=\"custom-button\" expand=\"block\" (click)=\"handleClick()\">Empecemos</ion-button>\n </div>\n </div>\n </swiper-slide>\n <swiper-slide *ngIf=\"showDpiFront\">\n <div class=\"content\">\n <div class=\"head\">\n <h2>Coloca la parte frontal de tu DPI</h2>\n <p class=\"p-center p-info\">\n Evita sombras, reflejos y coloca tu documento dentro del recuadro.\n </p>\n \n </div>\n <div class=\"dpi-container\">\n <video id=\"dpiFront\" autoplay loop muted playsinline width=\"1280\" height=\"300\">\n <source src=\"assets/imagesIdvision/Dpi-front.mp4\" type=\"video/mp4\">\n </video>\n </div>\n\n <div class=\"fixed-footer\">\n <ion-button class=\"custom-button\" expand=\"block\" (click)=\"openCameraOverlayFrontal()\">Tomar una foto</ion-button>\n </div>\n </div>\n </swiper-slide>\n <swiper-slide *ngIf=\"showDpiBack\">\n <div class=\"content\">\n <div class=\"head\">\n <h2>Coloca el reverso de tu DPI</h2>\n <p class=\"p-center p-info\">\n Evita sombras, reflejos y coloca tu documento dentro del recuadro.</p>\n </div>\n <div class=\"dpi-container\">\n <video id=\"dpiBack\" autoplay loop muted playsinline width=\"1280\" height=\"300\">\n <source src=\"assets/imagesIdvision/Dpi-back-1.mp4\" type=\"video/mp4\">\n </video>\n </div>\n\n <div class=\"fixed-footer\">\n <ion-button class=\"custom-button\" expand=\"block\" (click)=\"openCameraOverlayTrasero()\">Tomar una foto</ion-button>\n </div>\n </div>\n </swiper-slide>\n <swiper-slide *ngIf=\"showVideoSelfie\">\n <div class=\"content\">\n <div class=\"head\">\n <h2>Video Selfie</h2>\n <p class=\"p-justify\">Graba un breve video para completar tu proceso de identificaci\u00F3n.</p>\n </div>\n <ion-grid class=\"verify-container\">\n <br/>\n <br/>\n <br/>\n <ion-row>\n <ion-row>\n <div class=\"image-container\">\n <img src=\"assets/imagesIdvision/Foco.png\" alt=\"\" />\n </div>\n <div class=\"container-text\">\n <p>\n Si est\u00E1s en interiores, aseg\u00FArate de que la luz est\u00E9 frente a ti, no detr\u00E1s.\n </p>\n </div>\n </ion-row>\n </ion-row>\n <ion-row>\n <ion-row>\n <div class=\"image-container\">\n <img src=\"assets/imagesIdvision/rostroImage.png\" alt=\"\" />\n </div>\n <div class=\"container-text\">\n <p>\n Aseg\u00FArate de que tu rostro sea visible y de no usar anteojos ni\n sombreros.\n </p>\n </div>\n </ion-row>\n </ion-row>\n <ion-row>\n <ion-row>\n <div class=\"image-container\">\n <img src=\"assets/imagesIdvision/Selfie-rostro.png\" alt=\"\" />\n </div>\n <div class=\"container-text\">\n <p>\n Activa la c\u00E1mara frontal y verifica que tu rostro est\u00E9 bien centrado..\n </p>\n </div>\n </ion-row>\n </ion-row>\n </ion-grid>\n\n <div class=\"fixed-footer\">\n <ion-button class=\"custom-button\" expand=\"block\" (click)=\"openAcuerdoVideo()\">Abrir la c\u00E1mara</ion-button>\n </div>\n </div>\n </swiper-slide>\n <swiper-slide>\n <div class=\"content\">\n <ion-col class=\"col-confirmation\" *ngIf=\"isAllValid()\">\n <ion-item color=\"white\">\n <p class=\"font-confirmation\">\n Informaci\u00F3n procesada de manera correcta\n </p>\n </ion-item>\n <ion-item color=\"white\" class=\"image-item\">\n <img src=\"assets/imagesIdvision/blue-check.png\" alt=\"\" />\n </ion-item>\n </ion-col>\n\n <ion-col class=\"col-confirmation\" *ngIf=\"!isAllValid()\">\n <ion-item color=\"white\">\n <p class=\"font-confirmation\">\n Ocurri\u00F3 un error al procesar la informaci\u00F3n \n </p>\n </ion-item>\n <ion-item color=\"white\" class=\"image-item\">\n <img src=\"assets/imagesIdvision/blue-check.png\" alt=\"\" />\n </ion-item>\n </ion-col>\n <ion-item color=\"white\">\n <div class=\"fixed-footer\">\n <ion-button class=\"custom-button\" expand=\"block\" (click)=\"handleExit()\">Salir</ion-button>\n </div>\n </ion-item>\n </div>\n </swiper-slide>\n</swiper-container> -->\n\n<swiper-container init=\"false\" class=\"custom-swiper\">\n\n <!-- \uD83D\uDD39 PASO 1: Verificaci\u00F3n de Identidad (Est\u00E1tico) -->\n <swiper-slide *ngIf=\"!simpleProcess\">\n <div class=\"content\">\n <div class=\"head\">\n <h2 class=\"p-justify\">Verifiquemos tu identidad</h2>\n <p class=\"p-justify\">Para completar tu verificaci\u00F3n, por favor ingresa tu n\u00FAmero de identificaci\u00F3n (DPI).</p>\n <ion-item class=\"rounded-input\">\n <ion-input #dpi type=\"number\" disabled=\"true\" placeholder=\"Digita tu n\u00FAmero de DPI\"></ion-input>\n </ion-item>\n </div>\n <ion-grid class=\"verify-container\">\n <ion-row>\n <div class=\"image-container\">\n <img src=\"assets/imagesIdvision/documentsImage.png\" alt=\"\" />\n </div>\n <div class=\"container-text\">\n <p>Sube fotos de documentos que prueben tu identidad</p>\n </div>\n </ion-row>\n <ion-row>\n <div class=\"image-container\">\n <img src=\"assets/imagesIdvision/rostroImage.png\" alt=\"\" />\n </div>\n <div class=\"container-text\">\n <p>Graba un video selfie mientras lees el texto en voz alta</p>\n </div>\n </ion-row>\n </ion-grid>\n <div class=\"fixed-footer\">\n <ion-button class=\"custom-button\" expand=\"block\" (click)=\"handleClick()\">Empecemos</ion-button>\n </div>\n </div>\n </swiper-slide>\n\n <!-- \uD83D\uDD39 PASOS INTERMEDIOS: Se generan din\u00E1micamente seg\u00FAn el `order` -->\n <swiper-slide *ngFor=\"let step of validationConfig\">\n <div class=\"content\" [ngSwitch]=\"step.type\">\n <!--Acuerdo de video-->\n <div *ngSwitchCase=\"1\" [ngClass]=\"{'blur-effect': simpleProcess}\"> \n <div class=\"head\">\n <h2>Acuerdo de v\u00EDdeo</h2>\n <p class=\"p-justify\">Graba un breve video para completar tu proceso de identificaci\u00F3n.</p>\n </div>\n <ion-grid class=\"verify-container\">\n <ion-row>\n <div class=\"image-container\">\n <img src=\"assets/imagesIdvision/Foco.png\" alt=\"\" />\n </div>\n <div class=\"container-text\">\n <p>Si est\u00E1s en interiores, aseg\u00FArate de que la luz est\u00E9 frente a ti, no detr\u00E1s.</p>\n </div>\n </ion-row>\n <ion-row>\n <div class=\"image-container\">\n <img src=\"assets/imagesIdvision/rostroImage.png\" alt=\"\" />\n </div>\n <div class=\"container-text\">\n <p>Aseg\u00FArate de que tu rostro sea visible y de no usar anteojos ni sombreros.</p>\n </div>\n </ion-row>\n </ion-grid>\n <div class=\"fixed-footer\">\n <ion-button class=\"custom-button\" expand=\"block\" (click)=\"step.action()\">Abrir la c\u00E1mara</ion-button>\n </div>\n </div>\n <!-- \uD83D\uDD39 DPI Frontal -->\n <div *ngSwitchCase=\"2\">\n <div class=\"head\">\n <h2>Coloca la parte frontal de tu DPI</h2>\n <p class=\"p-center p-info\">Evita sombras, reflejos y coloca tu documento dentro del recuadro.</p>\n </div>\n <div class=\"dpi-container\">\n <video id=\"dpiFront\" autoplay loop muted playsinline width=\"1280\" height=\"300\">\n <source src=\"assets/imagesIdvision/Dpi-front.mp4\" type=\"video/mp4\">\n </video>\n </div>\n <div class=\"fixed-footer\">\n <ion-button class=\"custom-button\" expand=\"block\" (click)=\"step.action()\">Tomar una foto</ion-button>\n </div>\n </div>\n\n <!-- \uD83D\uDD39 DPI Trasero -->\n <div *ngSwitchCase=\"3\">\n <div class=\"head\">\n <h2>Coloca el reverso de tu DPI</h2>\n <p class=\"p-center p-info\">Evita sombras, reflejos y coloca tu documento dentro del recuadro.</p>\n </div>\n <div class=\"dpi-container\">\n <video id=\"dpiBack\" autoplay loop muted playsinline width=\"1280\" height=\"300\">\n <source src=\"assets/imagesIdvision/Dpi-back.mp4\" type=\"video/mp4\">\n </video>\n </div>\n <div class=\"fixed-footer\">\n <ion-button class=\"custom-button\" expand=\"block\" (click)=\"step.action()\">Tomar una foto</ion-button>\n </div>\n </div>\n\n <!-- \uD83D\uDD39 Video Selfie -->\n <div *ngSwitchCase=\"4\">\n <div class=\"head\">\n <h2>Video Selfie</h2>\n <p class=\"p-justify\">Graba un breve video para completar tu proceso de identificaci\u00F3n.</p>\n </div>\n <ion-grid class=\"verify-container\">\n <ion-row>\n <ion-row>\n <div class=\"image-container\">\n <img src=\"assets/imagesIdvision/Foco.png\" alt=\"\" />\n </div>\n <div class=\"container-text\">\n <p>Si est\u00E1s en interiores, aseg\u00FArate de que la luz est\u00E9 frente a ti, no detr\u00E1s.</p>\n </div>\n </ion-row>\n <ion-row>\n <div class=\"image-container\">\n <img src=\"assets/imagesIdvision/rostroImage.png\" alt=\"\" />\n </div>\n <div class=\"container-text\">\n <p>Aseg\u00FArate de que tu rostro sea visible y de no usar anteojos ni sombreros.</p>\n </div>\n </ion-row>\n </ion-row>\n </ion-grid>\n <div class=\"fixed-footer\">\n <ion-button class=\"custom-button\" expand=\"block\" (click)=\"step.action()\">Abrir la c\u00E1mara</ion-button>\n </div>\n </div>\n <!-- Photo Selfie -->\n <!-- TODO Se debera cambiar a 5, se dejo 1 por acuerdo de video -->\n <div *ngSwitchCase=\"5\"> \n <div class=\"head\">\n <h2>Foto Selfie</h2>\n <p class=\"p-justify\">Toma una foto para completar tu proceso de identificaci\u00F3n.</p>\n </div>\n <ion-grid class=\"verify-container\">\n <ion-row>\n <ion-row>\n <div class=\"image-container\">\n <img src=\"assets/imagesIdvision/Foco.png\" alt=\"\" />\n </div>\n <div class=\"container-text\">\n <p>Si est\u00E1s en interiores, aseg\u00FArate de que la luz est\u00E9 frente a ti, no detr\u00E1s.</p>\n </div>\n </ion-row>\n <ion-row>\n <div class=\"image-container\">\n <img src=\"assets/imagesIdvision/rostroImage.png\" alt=\"\" />\n </div>\n <div class=\"container-text\">\n <p>Aseg\u00FArate de que tu rostro sea visible y de no usar anteojos ni sombreros.</p>\n </div>\n </ion-row>\n </ion-row>\n </ion-grid>\n <div class=\"fixed-footer\">\n <ion-button class=\"custom-button\" expand=\"block\" (click)=\"step.action()\">Abrir la c\u00E1mara</ion-button>\n </div>\n </div>\n <!-- \uD83D\uDD39 Caso por defecto (Error en configuraci\u00F3n) -->\n <div *ngSwitchDefault>\n <h2>Paso desconocido</h2>\n </div>\n </div>\n </swiper-slide>\n <!-- \uD83D\uDD39 PASO FINAL: Confirmaci\u00F3n (Est\u00E1tico) -->\n <swiper-slide>\n <div class=\"content\">\n <ion-col class=\"col-confirmation\" *ngIf=\"isValid\">\n <ion-item color=\"white\">\n <p class=\"font-confirmation\">Informaci\u00F3n procesada de manera correcta</p>\n </ion-item>\n <ion-item color=\"white\" class=\"image-item\">\n <img src=\"assets/imagesIdvision/blue-check.png\" alt=\"\" />\n </ion-item>\n </ion-col>\n <ion-col class=\"col-confirmation\" *ngIf=\"!isValid\">\n <ion-item color=\"white\">\n <p class=\"font-confirmation\">Ocurri\u00F3 un error al procesar la informaci\u00F3n</p>\n </ion-item>\n <ion-item color=\"white\" class=\"image-item\">\n <img src=\"assets/imagesIdvision/blue-check.png\" alt=\"\" />\n </ion-item>\n </ion-col>\n <ion-item color=\"white\">\n <div class=\"fixed-footer\">\n <ion-button class=\"custom-button\" expand=\"block\" (click)=\"handleExit()\">Salir</ion-button>\n </div>\n </ion-item>\n </div>\n </swiper-slide>\n\n</swiper-container>\n", styles: ["\n.content {\n padding: 10px;\n align-items: center;\n justify-content: center;\n height: 100vh;\n background-color: #fff;\n font-size: 18px;\n background-image: url('assets/imagesIdvision/background.png');\n\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n \n}\n\n\nh2 {\n font-size: 1.5em;\n font-weight: bold;\n color: var(--orange-primary, orange);\n text-align: center;\n margin-top: 20px;\n }\n \n p {\n font-size: 1em;\n color: #666;\n text-align: center;\n margin: 0;\n }\n \n ion-grid {\n margin-top: 20px;\n }\n \n ion-row {\n margin: 15px 0;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n \n ion-col {\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n }\n \n ion-icon {\n font-size: 3em; // Tama\u00F1o del \u00EDcono para que sea m\u00E1s destacado\n color: #ff8c00; // Color similar al amarillo-naranja\n margin-bottom: 10px;\n }\n\n.container-text {\n text-align: justify !important;\n width: 180px;\n}\n\np {\n text-align: start;\n}\n\n.p-center{\ntext-align: center;\n}\n\n.p-justify{\n text-align: start;\n }\n\n.head {\n padding: 30px;\n margin-top: 75px;\n margin-bottom: 20px;\n}\n\n\n.verify-container {\n // padding: 60px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 40%; // Ocupa todo el espacio disponible en el ion-content\n text-align: center;\n //background-color: black;\n}\n\n.fixed-footer {\n position: fixed;\n bottom: 0;\n left: 0;\n width: 100%;\n padding: 0px 10px 25px 10px;\n // background-color: black; // Color de fondo, opcional\n // box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1); // Sombra suave para que resalte\n \n ion-button {\n width: 90%;\n max-width: 300px;\n margin: 0 auto;\n background-color: #ffcc00;\n color: #ffffff;\n font-weight: bold;\n border-radius: 20px;\n \n &:hover {\n background-color: #ffb300;\n }\n \n &:active {\n background-color: #e6a800;\n }\n }\n }\n\n .dpi-container {\n display: flex;\n //width: 100%;\n justify-content: center;\n align-items: center;\n height: 50vh;\n }\n.dpi-image {\n width: 200px;\n}\n\n.image-container {\n width: 100px;\n max-width: 90px;\n}\n\n.col-confirmation {\n margin-top: 100px;\n padding: 20px;\n display: flex;\n flex-direction: column;\n gap: 20px; /* Ajusta el espacio entre los elementos */\n}\n\n.image-item {\n margin-top: 50px;\n padding-top: 70px;\n}\n\n.font-confirmation {\n font-size: 26px;\n text-align: center;\n // color: #005da9;\n color: var(--purple-primary);\n font-weight: bold;\n}\n\n\n.rounded-input {\n margin-top: 15px;\n background-color: #f4f6fc; /* Color de fondo suave */\n border-radius: 10px; /* Bordes redondeados */\n padding: 5px 5px; /* Espaciado interno */\n box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1); /* Sombra suave */\n --ion-border-color: transparent; /* Quita cualquier borde por defecto */\n}\n\nion-input {\n text-align: center;\n color: var(--orange-primary);\n --padding-start: 8px;\n}\n\n.custom-footer {\n position: fixed;\n bottom: 0;\n left: 0;\n width: 100%;\n padding: 10px;\n display: flex;\n justify-content: space-between; /* Alinea los botones a los extremos */\n background-color: #ffffff; /* Fondo opcional */\n //box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1); /* Sombra opcional */\n}\n\n.custom-footer ion-button {\n flex: 0 0 48%; /* Los botones ocupan casi la mitad del espacio */\n}\n\n.custom-footer .left-button {\n max-width: 140px;\n color: black;\n\n --background: white;\n\n --color: var(--purple-primary);\n\n --border-radius: 20px;\n --border-color: white;\n margin-right: auto; /* Opcional si necesitas ajustes de margen */\n --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.0);\n\n}\n\n.custom-footer .right-button {\n margin-left: auto; /* Opcional si necesitas ajustes de margen */\n}\n\n.tutorial-head {\n padding-top:50px;\n display: flex;\n justify-content: center;\n align-items: center;\n color: black;\n}\n\n.center-container {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 60vh; /* Ajusta este valor si quieres m\u00E1s o menos espacio vertical */\n width: 100%;\n}\n\n.tutorial-title {\n text-align: center;\n}\n\n.rounded-input ion-input {\n font-size: 14px; /* Tama\u00F1o de texto */\n color: #333; /* Color del texto */\n}\n\n.rounded-input::part(native) {\n background: transparent; /* Fondo transparente para evitar conflictos */\n}\n\n.p-info{\n font-weight: bold;\n color: #714e93\n}\n\n.custom-button {\n --background: var(--purple-primary, #82298F) !important;\n --background-hover: var(--purple-secondary, #2b0d30) !important;\n --background-activated: var(--purple-secondary, #2b0d30) !important;\n --color: #ffffff !important;\n --border-radius: 20px !important;\n --padding-top: 10px !important;\n --padding-bottom: 10px !important;\n --box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.25) !important;\n text-transform: none;\n\n pointer-events: auto;\n\n }\n\n //blur effect\n\n .blur-effect {\n filter: blur(5px); \n pointer-events: none; \n }\n \n .blur-overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(255, 255, 255, 0.7);\n z-index: 999;\n filter: blur(5px);\n }\n \n .boton-personalizado {\n background-color: #4caf50; /* Verde, por ejemplo */\n color: white;\n font-size: 16px;\n }"] }]
|
|
1444
|
-
}], () => [{ type: i1.ModalController }, { type: i2.DpiService }, { type: i1.AlertController }, { type: i1.LoadingController }, { type: i1.Platform }, { type: i3.ModalDpiServices }, { type: i4.ModalVideoSelfieServices }, { type: i5.SdkCommunicationService }, { type: i1.NavController }, { type: i6.ValidateMetaGService }, { type: i0.ChangeDetectorRef }, { type: i7.PhotoSelfieServices }], { dpi: [{
|
|
1501
|
+
args: [{ selector: 'app-id-vision', standalone: true, schemas: [CUSTOM_ELEMENTS_SCHEMA], imports: [IonicModule, CommonModule], providers: [DpiService], encapsulation: ViewEncapsulation.Emulated, template: "<ion-content [style.display]=\"hasInternet ? 'block' : 'none'\">\n <swiper-container init=\"false\" class=\"custom-swiper\">\n\n <!-- \uD83D\uDD39 PASO 1: Verificaci\u00F3n de Identidad (Est\u00E1tico) -->\n <swiper-slide *ngIf=\"!simpleProcess\">\n <div class=\"content\">\n <div class=\"head\">\n <h2 class=\"p-justify\">Verifiquemos tu identidad</h2>\n <p class=\"p-justify\">Para completar tu verificaci\u00F3n, por favor ingresa tu n\u00FAmero de identificaci\u00F3n (DPI).</p>\n <ion-item class=\"rounded-input\">\n <ion-input #dpi type=\"number\" disabled=\"true\" placeholder=\"Digita tu n\u00FAmero de DPI\"></ion-input>\n </ion-item>\n </div>\n <ion-grid class=\"verify-container\">\n <ion-row>\n <div class=\"image-container\">\n <img src=\"assets/imagesIdvision/documentsImage.png\" alt=\"\" />\n </div>\n <div class=\"container-text\">\n <p>Sube fotos de documentos que prueben tu identidad</p>\n </div>\n </ion-row>\n <ion-row>\n <div class=\"image-container\">\n <img src=\"assets/imagesIdvision/rostroImage.png\" alt=\"\" />\n </div>\n <div class=\"container-text\">\n <p>Graba un video selfie mientras lees el texto en voz alta</p>\n </div>\n </ion-row>\n </ion-grid>\n <div class=\"fixed-footer\">\n <ion-button class=\"custom-button\" expand=\"block\" (click)=\"handleClick()\">Empecemos</ion-button>\n </div>\n </div>\n </swiper-slide>\n\n <!-- \uD83D\uDD39 PASOS INTERMEDIOS: Se generan din\u00E1micamente seg\u00FAn el `order` -->\n <swiper-slide *ngFor=\"let step of validationConfig\">\n <div class=\"content\" [ngSwitch]=\"step.type\">\n <!--Acuerdo de video-->\n <div *ngSwitchCase=\"1\" [ngClass]=\"{'blur-effect': simpleProcess}\">\n <div class=\"head\">\n <h2>Acuerdo de v\u00EDdeo</h2>\n <p class=\"p-justify\">Graba un breve video para completar tu proceso de identificaci\u00F3n.</p>\n </div>\n <ion-grid class=\"verify-container\">\n <ion-row>\n <div class=\"image-container\">\n <img src=\"assets/imagesIdvision/Foco.png\" alt=\"\" />\n </div>\n <div class=\"container-text\">\n <p>Si est\u00E1s en interiores, aseg\u00FArate de que la luz est\u00E9 frente a ti, no detr\u00E1s.</p>\n </div>\n </ion-row>\n <ion-row>\n <div class=\"image-container\">\n <img src=\"assets/imagesIdvision/rostroImage.png\" alt=\"\" />\n </div>\n <div class=\"container-text\">\n <p>Aseg\u00FArate de que tu rostro sea visible y de no usar anteojos ni sombreros.</p>\n </div>\n </ion-row>\n </ion-grid>\n <div class=\"fixed-footer\">\n <ion-button class=\"custom-button\" expand=\"block\" (click)=\"step.action()\">Abrir la c\u00E1mara</ion-button>\n </div>\n </div>\n <!-- \uD83D\uDD39 DPI Frontal -->\n <div *ngSwitchCase=\"2\">\n <div class=\"head\">\n <h2>Coloca la parte frontal de tu DPI</h2>\n <p class=\"p-center p-info\">Evita sombras, reflejos y coloca tu documento dentro del recuadro.</p>\n </div>\n <div class=\"dpi-container\">\n <video id=\"dpiFront\" autoplay loop muted playsinline width=\"1280\" height=\"300\">\n <source src=\"assets/imagesIdvision/Dpi-front.mp4\" type=\"video/mp4\">\n </video>\n </div>\n <div class=\"fixed-footer\">\n <ion-button class=\"custom-button\" expand=\"block\" (click)=\"step.action()\">Tomar una foto</ion-button>\n </div>\n </div>\n\n <!-- \uD83D\uDD39 DPI Trasero -->\n <div *ngSwitchCase=\"3\">\n <div class=\"head\">\n <h2>Coloca el reverso de tu DPI</h2>\n <p class=\"p-center p-info\">Evita sombras, reflejos y coloca tu documento dentro del recuadro.</p>\n </div>\n <div class=\"dpi-container\">\n <video id=\"dpiBack\" autoplay loop muted playsinline width=\"1280\" height=\"300\">\n <source src=\"assets/imagesIdvision/Dpi-back.mp4\" type=\"video/mp4\">\n </video>\n </div>\n <div class=\"fixed-footer\">\n <ion-button class=\"custom-button\" expand=\"block\" (click)=\"step.action()\">Tomar una foto</ion-button>\n </div>\n </div>\n\n <!-- \uD83D\uDD39 Video Selfie -->\n <div *ngSwitchCase=\"4\">\n <div class=\"head\">\n <h2>Video Selfie</h2>\n <p class=\"p-justify\">Graba un breve video para completar tu proceso de identificaci\u00F3n.</p>\n </div>\n <ion-grid class=\"verify-container\">\n <ion-row>\n <ion-row>\n <div class=\"image-container\">\n <img src=\"assets/imagesIdvision/Foco.png\" alt=\"\" />\n </div>\n <div class=\"container-text\">\n <p>Si est\u00E1s en interiores, aseg\u00FArate de que la luz est\u00E9 frente a ti, no detr\u00E1s.</p>\n </div>\n </ion-row>\n <ion-row>\n <div class=\"image-container\">\n <img src=\"assets/imagesIdvision/rostroImage.png\" alt=\"\" />\n </div>\n <div class=\"container-text\">\n <p>Aseg\u00FArate de que tu rostro sea visible y de no usar anteojos ni sombreros.</p>\n </div>\n </ion-row>\n </ion-row>\n </ion-grid>\n <div class=\"fixed-footer\">\n <ion-button class=\"custom-button\" expand=\"block\" (click)=\"step.action()\">Abrir la c\u00E1mara</ion-button>\n </div>\n </div>\n <!-- Photo Selfie -->\n <!-- TODO Se debera cambiar a 5, se dejo 1 por acuerdo de video -->\n <div *ngSwitchCase=\"5\">\n <div class=\"head\">\n <h2>Foto Selfie</h2>\n <p class=\"p-justify\">Toma una foto para completar tu proceso de identificaci\u00F3n.</p>\n </div>\n <ion-grid class=\"verify-container\">\n <ion-row>\n <ion-row>\n <div class=\"image-container\">\n <img src=\"assets/imagesIdvision/Foco.png\" alt=\"\" />\n </div>\n <div class=\"container-text\">\n <p>Si est\u00E1s en interiores, aseg\u00FArate de que la luz est\u00E9 frente a ti, no detr\u00E1s.</p>\n </div>\n </ion-row>\n <ion-row>\n <div class=\"image-container\">\n <img src=\"assets/imagesIdvision/rostroImage.png\" alt=\"\" />\n </div>\n <div class=\"container-text\">\n <p>Aseg\u00FArate de que tu rostro sea visible y de no usar anteojos ni sombreros.</p>\n </div>\n </ion-row>\n </ion-row>\n </ion-grid>\n <div class=\"fixed-footer\">\n <ion-button class=\"custom-button\" expand=\"block\" (click)=\"step.action()\">Abrir la c\u00E1mara</ion-button>\n </div>\n </div>\n <!-- \uD83D\uDD39 Caso por defecto (Error en configuraci\u00F3n) -->\n <div *ngSwitchDefault>\n <h2>Paso desconocido</h2>\n </div>\n </div>\n </swiper-slide>\n <!-- \uD83D\uDD39 PASO FINAL: Confirmaci\u00F3n (Est\u00E1tico) -->\n <swiper-slide>\n <div class=\"content\">\n <ion-col class=\"col-confirmation\" *ngIf=\"isValid\">\n <ion-item color=\"white\">\n <p class=\"font-confirmation\">Informaci\u00F3n procesada de manera correcta</p>\n </ion-item>\n <ion-item color=\"white\" class=\"image-item\">\n <img src=\"assets/imagesIdvision/blue-check.png\" alt=\"\" />\n </ion-item>\n </ion-col>\n <ion-col class=\"col-confirmation\" *ngIf=\"!isValid\">\n <ion-item color=\"white\">\n <p class=\"font-confirmation\">Ocurri\u00F3 un error al procesar la informaci\u00F3n</p>\n </ion-item>\n <ion-item color=\"white\" class=\"image-item\">\n <img src=\"assets/imagesIdvision/blue-check.png\" alt=\"\" />\n </ion-item>\n </ion-col>\n <ion-item color=\"white\">\n <div class=\"fixed-footer\">\n <ion-button class=\"custom-button\" expand=\"block\" (click)=\"handleExit()\">Salir</ion-button>\n </div>\n </ion-item>\n </div>\n </swiper-slide>\n\n </swiper-container>\n <div class=\"version\">{{versionSDK}}</div>\n <ion-fab vertical=\"top\" horizontal=\"end\" slot=\"fixed\" *ngIf=\"showDebug\">\n <ion-fab-button class=\"button-debug\" (click)=\"copyProccess()\">\n <ion-icon name=\"bug-outline\"></ion-icon>\n </ion-fab-button>\n </ion-fab>\n\n</ion-content>\n<!-- pantalla para cuando no exista internet -->\n<ion-content [style.display]=\"!hasInternet ? 'block' : 'none'\"> \n <div class=\"wrapper-no-internet\">\n <div class=\"content-no-internet\">\n <h2 class=\"title-no-internet\">Error de conexi\u00F3n</h2>\n <img src=\"assets/imagesIdvision/no-internet.svg\" alt=\"Error conexi\u00F3n img\" class=\"icon-no-internet\"/>\n <p class=\"description-no-internet\">\n No pudimos cargar la p\u00E1gina. <br>\n Verifica tu internet y prueba de nuevo.\n </p>\n </div>\n </div>\n</ion-content>", styles: [".content {\n padding: 10px;\n align-items: center;\n justify-content: center;\n height: 100vh;\n background-color: #fff;\n font-size: 18px;\n background-image: url('assets/imagesIdvision/background.png');\n\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n\n}\n\n\nh2 {\n font-size: 1.5em;\n font-weight: bold;\n color: var(--orange-primary, orange);\n text-align: center;\n margin-top: 20px;\n}\n\np {\n font-size: 1em;\n color: #666;\n text-align: center;\n margin: 0;\n}\n\nion-grid {\n margin-top: 20px;\n}\n\nion-row {\n margin: 15px 0;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\nion-col {\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n}\n\nion-icon {\n font-size: 3em; // Tama\u00F1o del \u00EDcono para que sea m\u00E1s destacado\n color: #ff8c00; // Color similar al amarillo-naranja\n margin-bottom: 10px;\n}\n\n.container-text {\n text-align: justify !important;\n width: 180px;\n}\n\np {\n text-align: start;\n}\n\n.p-center {\n text-align: center;\n}\n\n.p-justify {\n text-align: start;\n}\n\n.head {\n padding: 30px;\n margin-top: 75px;\n margin-bottom: 20px;\n}\n\n\n.verify-container {\n // padding: 60px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 40%; // Ocupa todo el espacio disponible en el ion-content\n text-align: center;\n //background-color: black;\n}\n\n.fixed-footer {\n position: fixed;\n bottom: 0;\n left: 0;\n width: 100%;\n padding: 0px 10px 25px 10px;\n // background-color: black; // Color de fondo, opcional\n // box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1); // Sombra suave para que resalte\n\n ion-button {\n width: 90%;\n max-width: 300px;\n margin: 0 auto;\n background-color: #ffcc00;\n color: #ffffff;\n font-weight: bold;\n border-radius: 20px;\n\n &:hover {\n background-color: #ffb300;\n }\n\n &:active {\n background-color: #e6a800;\n }\n }\n}\n\n.dpi-container {\n display: flex;\n //width: 100%;\n justify-content: center;\n align-items: center;\n height: 50vh;\n}\n\n.dpi-image {\n width: 200px;\n}\n\n.image-container {\n width: 100px;\n max-width: 90px;\n}\n\n.col-confirmation {\n margin-top: 100px;\n padding: 20px;\n display: flex;\n flex-direction: column;\n gap: 20px;\n /* Ajusta el espacio entre los elementos */\n}\n\n.image-item {\n margin-top: 50px;\n padding-top: 70px;\n}\n\n.font-confirmation {\n font-size: 26px;\n text-align: center;\n // color: #005da9;\n color: var(--purple-primary);\n font-weight: bold;\n}\n\n\n.rounded-input {\n margin-top: 15px;\n background-color: #f4f6fc;\n /* Color de fondo suave */\n border-radius: 10px;\n /* Bordes redondeados */\n padding: 5px 5px;\n /* Espaciado interno */\n box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1);\n /* Sombra suave */\n --ion-border-color: transparent;\n /* Quita cualquier borde por defecto */\n}\n\nion-input {\n text-align: center;\n color: var(--orange-primary);\n --padding-start: 8px;\n}\n\n.custom-footer {\n position: fixed;\n bottom: 0;\n left: 0;\n width: 100%;\n padding: 10px;\n display: flex;\n justify-content: space-between;\n /* Alinea los botones a los extremos */\n background-color: #ffffff;\n /* Fondo opcional */\n //box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1); /* Sombra opcional */\n}\n\n.custom-footer ion-button {\n flex: 0 0 48%;\n /* Los botones ocupan casi la mitad del espacio */\n}\n\n.custom-footer .left-button {\n max-width: 140px;\n color: black;\n\n --background: white;\n\n --color: var(--purple-primary);\n\n --border-radius: 20px;\n --border-color: white;\n margin-right: auto;\n /* Opcional si necesitas ajustes de margen */\n --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.0);\n\n}\n\n.custom-footer .right-button {\n margin-left: auto;\n /* Opcional si necesitas ajustes de margen */\n}\n\n.tutorial-head {\n padding-top: 50px;\n display: flex;\n justify-content: center;\n align-items: center;\n color: black;\n}\n\n.center-container {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 60vh;\n /* Ajusta este valor si quieres m\u00E1s o menos espacio vertical */\n width: 100%;\n}\n\n.tutorial-title {\n text-align: center;\n}\n\n.rounded-input ion-input {\n font-size: 14px;\n /* Tama\u00F1o de texto */\n color: #333;\n /* Color del texto */\n}\n\n.rounded-input::part(native) {\n background: transparent;\n /* Fondo transparente para evitar conflictos */\n}\n\n.p-info {\n font-weight: bold;\n color: #714e93\n}\n\n.custom-button {\n --background: var(--purple-primary, #82298F) !important;\n --background-hover: var(--purple-secondary, #2b0d30) !important;\n --background-activated: var(--purple-secondary, #2b0d30) !important;\n --color: #ffffff !important;\n --border-radius: 20px !important;\n --padding-top: 10px !important;\n --padding-bottom: 10px !important;\n --box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.25) !important;\n text-transform: none;\n\n pointer-events: auto;\n\n}\n\n//blur effect\n\n.blur-effect {\n filter: blur(5px);\n pointer-events: none;\n}\n\n.blur-overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(255, 255, 255, 0.7);\n z-index: 999;\n filter: blur(5px);\n}\n\n.boton-personalizado {\n background-color: #4caf50;\n /* Verde, por ejemplo */\n color: white;\n font-size: 16px;\n}\n\n.version {\n position: fixed;\n bottom: 10px;\n right: 10px;\n font-size: 12px;\n color: #888;\n z-index: 1000;\n}\n\n.button-debug {\n --background: #ff4081;\n --color: #fff;\n}\n\n\n.wrapper-no-internet {\n background-color: #fff;\n height: 100vh;\n display: flex;\n justify-content: center; /* centra en eje vertical */\n align-items: center; /* centra en eje horizontal */\n padding: 40px;\n background-image: url('assets/imagesIdvision/background.png') !important;\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n \n}\n\n.content-no-internet {\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n gap: 16px;\n}\n\n.title-no-internet{\n color: #000;\n font-size: 32px;\n font-weight: bold;\n}\n\n.icon-no-internet {\n width: 125px;\n display: block;\n margin-top: 25px;\n}\n\n.description-no-internet {\n margin-top: 25px;\n font-size: 22px;\n color: #000;\n line-height: 1.5;\n text-align: center;\n}\n"] }]
|
|
1502
|
+
}], () => [{ type: i0.NgZone }, { type: i1.ModalController }, { type: i2.DpiService }, { type: i1.AlertController }, { type: i1.LoadingController }, { type: i1.Platform }, { type: i3.ModalDpiServices }, { type: i4.ModalVideoSelfieServices }, { type: i5.SdkCommunicationService }, { type: i1.NavController }, { type: i6.ValidateMetaGService }, { type: i0.ChangeDetectorRef }, { type: i7.PhotoSelfieServices }, { type: i1.ToastController }], { dpi: [{
|
|
1445
1503
|
type: ViewChild,
|
|
1446
1504
|
args: ['dpi', { static: false }]
|
|
1447
1505
|
}], isSwipe: [{
|