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.
Files changed (17) hide show
  1. package/dist/assets/imagesIdVision/no-internet.svg +4 -0
  2. package/dist/src/app/pages/id-vision/components/camara-video-selfie/camara-video-selfie.component.d.ts.map +1 -1
  3. package/dist/src/app/pages/id-vision/components/camara-video-selfie/camara-video-selfie.component.js +26 -33
  4. package/dist/src/app/pages/id-vision/components/camara-video-selfie/camara-video-selfie.component.js.map +1 -1
  5. package/dist/src/app/pages/id-vision/components/camera-with-overlay/camera-with-overlay.component.d.ts +19 -15
  6. package/dist/src/app/pages/id-vision/components/camera-with-overlay/camera-with-overlay.component.d.ts.map +1 -1
  7. package/dist/src/app/pages/id-vision/components/camera-with-overlay/camera-with-overlay.component.js +157 -123
  8. package/dist/src/app/pages/id-vision/components/camera-with-overlay/camera-with-overlay.component.js.map +1 -1
  9. package/dist/src/app/pages/id-vision/id-vision.component.d.ts +13 -3
  10. package/dist/src/app/pages/id-vision/id-vision.component.d.ts.map +1 -1
  11. package/dist/src/app/pages/id-vision/id-vision.component.js +316 -258
  12. package/dist/src/app/pages/id-vision/id-vision.component.js.map +1 -1
  13. package/dist/src/app/pages/id-vision/services/dpi/dpi-service.service.d.ts +1 -1
  14. package/dist/src/app/pages/id-vision/services/dpi/dpi-service.service.d.ts.map +1 -1
  15. package/dist/src/app/pages/id-vision/services/dpi/dpi-service.service.js +7 -6
  16. package/dist/src/app/pages/id-vision/services/dpi/dpi-service.service.js.map +1 -1
  17. 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
- // import { register, SwiperContainer } from 'swiper/element/bundle';
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 IdVisionComponent_swiper_slide_1_Template(rf, ctx) { if (rf & 1) {
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", 9)(3, "h2", 10);
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", 10);
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", 11);
40
- i0.ɵɵelement(8, "ion-input", 12, 0);
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", 13)(11, "ion-row")(12, "div", 14);
43
- i0.ɵɵelement(13, "img", 15);
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", 16)(15, "p");
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", 14);
49
- i0.ɵɵelement(19, "img", 17);
50
+ i0.ɵɵelementStart(17, "ion-row")(18, "div", 21);
51
+ i0.ɵɵelement(19, "img", 24);
50
52
  i0.ɵɵelementEnd();
51
- i0.ɵɵelementStart(20, "div", 16)(21, "p");
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 IdVisionComponent_swiper_slide_1_Template_ion_button_click_24_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.handleClick()); });
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 IdVisionComponent_swiper_slide_2_div_2_Template(rf, ctx) { if (rf & 1) {
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", 22)(1, "div", 9)(2, "h2");
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", 10);
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", 13)(7, "ion-row")(8, "div", 14);
68
- i0.ɵɵelement(9, "img", 23);
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", 16)(11, "p");
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", 14);
74
- i0.ɵɵelement(15, "img", 17);
75
+ i0.ɵɵelementStart(13, "ion-row")(14, "div", 21);
76
+ i0.ɵɵelement(15, "img", 24);
75
77
  i0.ɵɵelementEnd();
76
- i0.ɵɵelementStart(16, "div", 16)(17, "p");
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 IdVisionComponent_swiper_slide_2_div_2_Template_ion_button_click_20_listener() { i0.ɵɵrestoreView(_r3); const step_r4 = i0.ɵɵnextContext().$implicit; return i0.ɵɵresetView(step_r4.action()); });
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 IdVisionComponent_swiper_slide_2_div_3_Template(rf, ctx) { if (rf & 1) {
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", 9)(2, "h2");
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", 24);
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", 25)(7, "video", 26);
96
- i0.ɵɵelement(8, "source", 27);
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 IdVisionComponent_swiper_slide_2_div_3_Template_ion_button_click_10_listener() { i0.ɵɵrestoreView(_r5); const step_r4 = i0.ɵɵnextContext().$implicit; return i0.ɵɵresetView(step_r4.action()); });
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 IdVisionComponent_swiper_slide_2_div_4_Template(rf, ctx) { if (rf & 1) {
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", 9)(2, "h2");
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", 24);
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", 25)(7, "video", 28);
112
- i0.ɵɵelement(8, "source", 29);
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 IdVisionComponent_swiper_slide_2_div_4_Template_ion_button_click_10_listener() { i0.ɵɵrestoreView(_r6); const step_r4 = i0.ɵɵnextContext().$implicit; return i0.ɵɵresetView(step_r4.action()); });
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 IdVisionComponent_swiper_slide_2_div_5_Template(rf, ctx) { if (rf & 1) {
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", 9)(2, "h2");
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", 10);
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", 13)(7, "ion-row")(8, "ion-row")(9, "div", 14);
128
- i0.ɵɵelement(10, "img", 23);
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", 16)(12, "p");
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", 14);
134
- i0.ɵɵelement(16, "img", 17);
135
+ i0.ɵɵelementStart(14, "ion-row")(15, "div", 21);
136
+ i0.ɵɵelement(16, "img", 24);
135
137
  i0.ɵɵelementEnd();
136
- i0.ɵɵelementStart(17, "div", 16)(18, "p");
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 IdVisionComponent_swiper_slide_2_div_5_Template_ion_button_click_21_listener() { i0.ɵɵrestoreView(_r7); const step_r4 = i0.ɵɵnextContext().$implicit; return i0.ɵɵresetView(step_r4.action()); });
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 IdVisionComponent_swiper_slide_2_div_6_Template(rf, ctx) { if (rf & 1) {
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", 9)(2, "h2");
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", 10);
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", 13)(7, "ion-row")(8, "ion-row")(9, "div", 14);
153
- i0.ɵɵelement(10, "img", 23);
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", 16)(12, "p");
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", 14);
159
- i0.ɵɵelement(16, "img", 17);
160
+ i0.ɵɵelementStart(14, "ion-row")(15, "div", 21);
161
+ i0.ɵɵelement(16, "img", 24);
160
162
  i0.ɵɵelementEnd();
161
- i0.ɵɵelementStart(17, "div", 16)(18, "p");
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 IdVisionComponent_swiper_slide_2_div_6_Template_ion_button_click_21_listener() { i0.ɵɵrestoreView(_r8); const step_r4 = i0.ɵɵnextContext().$implicit; return i0.ɵɵresetView(step_r4.action()); });
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 IdVisionComponent_swiper_slide_2_div_7_Template(rf, ctx) { if (rf & 1) {
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 IdVisionComponent_swiper_slide_2_Template(rf, ctx) { if (rf & 1) {
175
- i0.ɵɵelementStart(0, "swiper-slide")(1, "div", 18);
176
- i0.ɵɵtemplate(2, IdVisionComponent_swiper_slide_2_div_2_Template, 22, 3, "div", 19)(3, IdVisionComponent_swiper_slide_2_div_3_Template, 12, 0, "div", 20)(4, IdVisionComponent_swiper_slide_2_div_4_Template, 12, 0, "div", 20)(5, IdVisionComponent_swiper_slide_2_div_5_Template, 23, 0, "div", 20)(6, IdVisionComponent_swiper_slide_2_div_6_Template, 23, 0, "div", 20)(7, IdVisionComponent_swiper_slide_2_div_7_Template, 3, 0, "div", 21);
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 IdVisionComponent_ion_col_5_Template(rf, ctx) { if (rf & 1) {
194
- i0.ɵɵelementStart(0, "ion-col", 30)(1, "ion-item", 6)(2, "p", 31);
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", 32);
198
- i0.ɵɵelement(5, "img", 33);
199
+ i0.ɵɵelementStart(4, "ion-item", 39);
200
+ i0.ɵɵelement(5, "img", 40);
199
201
  i0.ɵɵelementEnd()();
200
202
  } }
201
- function IdVisionComponent_ion_col_6_Template(rf, ctx) { if (rf & 1) {
202
- i0.ɵɵelementStart(0, "ion-col", 30)(1, "ion-item", 6)(2, "p", 31);
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", 32);
206
- i0.ɵɵelement(5, "img", 33);
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
- console.error("Error al obtener la conexión:", err);
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: this.isSwipe,
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
- // this.swiperRef = null;
484
- if (this.swiperRef) {
485
- // this.swiperRef.destroy(true, true);
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: 'Error',
747
- errors: response['errors'] || [],
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
- const modal = yield this.modalController.create({
765
- component: MessageModalComponent,
766
- componentProps: {
767
- title: 'Error',
768
- errors: error || [],
769
- variant: 'dpi'
770
- },
771
- backdropDismiss: false
772
- });
773
- yield modal.present();
774
- modal.onDidDismiss().then(() => {
775
- this.resumeCameraFromParent();
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
- // this.showAlert('Error', '', error, () => {
913
- // this.resumeCameraFromParent();
914
- // });
915
- // if (loader) {
916
- // loader.dismiss();
917
- // }
918
- // this.validateMetaG.dpiBack = false;
919
- // this.updateValidation();
920
- // console.error('Error al llamar al servicio:', error);
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
- const modal = yield this.modalController.create({
997
- component: MessageModalComponent,
998
- componentProps: {
999
- title: 'Error',
1000
- errors: error['message'],
1001
- variant: 'video'
1002
- },
1003
- backdropDismiss: false
1004
- });
1005
- yield modal.present();
1006
- modal.onDidDismiss().then(() => {
1007
- this.resumeCameraFromParent();
1008
- // this.modalController.dismiss();
1009
- });
1010
- // this.showAlert('Error', '', error, () => {
1011
- // this.resumeCameraFromParent();
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: 11, vars: 4, 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, "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", ""]], template: function IdVisionComponent_Template(rf, ctx) { if (rf & 1) {
1423
- i0.ɵɵelementStart(0, "swiper-container", 1);
1424
- i0.ɵɵtemplate(1, IdVisionComponent_swiper_slide_1_Template, 26, 0, "swiper-slide", 2)(2, IdVisionComponent_swiper_slide_2_Template, 8, 6, "swiper-slide", 3);
1425
- i0.ɵɵelementStart(3, "swiper-slide")(4, "div", 4);
1426
- i0.ɵɵtemplate(5, IdVisionComponent_ion_col_5_Template, 6, 0, "ion-col", 5)(6, IdVisionComponent_ion_col_6_Template, 6, 0, "ion-col", 5);
1427
- i0.ɵɵelementStart(7, "ion-item", 6)(8, "div", 7)(9, "ion-button", 8);
1428
- i0.ɵɵlistener("click", function IdVisionComponent_Template_ion_button_click_9_listener() { return ctx.handleExit(); });
1429
- i0.ɵɵtext(10, "Salir");
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.ɵɵadvance();
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
- } }, dependencies: [IonicModule, i1.IonButton, i1.IonCol, i1.IonGrid, 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 \n p[_ngcontent-%COMP%] {\n font-size: 1em;\n color: #666;\n text-align: center;\n margin: 0;\n }\n \n ion-grid[_ngcontent-%COMP%] {\n margin-top: 20px;\n }\n \n ion-row[_ngcontent-%COMP%] {\n margin: 15px 0;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n \n ion-col[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n }\n \n ion-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%]{\ntext-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.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.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 border-radius: 10px; \n\n padding: 5px 5px; \n\n box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1); \n\n --ion-border-color: transparent; \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 background-color: #ffffff; \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.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 --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.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 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 color: #333; \n\n}\n\n.rounded-input[_ngcontent-%COMP%]::part(native) {\n background: transparent; \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[_ngcontent-%COMP%] .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 color: white;\n font-size: 16px;\n }"] });
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: [{