metag-sdk-ionic 1.2.11 → 1.3.0-gforms

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 (126) hide show
  1. package/dist/assets/backup/Dpi-Front.webm +0 -0
  2. package/dist/assets/backup/Dpi-back.webm +0 -0
  3. package/dist/assets/icon/favicon.png +0 -0
  4. package/dist/assets/icons/dpi-error.svg +9 -9
  5. package/dist/assets/icons/video-error.svg +9 -9
  6. package/dist/assets/imagesIdVision/56.png +0 -0
  7. package/dist/assets/imagesIdVision/57.png +0 -0
  8. package/dist/assets/imagesIdVision/Animacion-de-colocacion-de-DPI.webm +0 -0
  9. package/dist/assets/imagesIdVision/Animacion-de-como-tomar-foto-DPI.webm +0 -0
  10. package/dist/assets/imagesIdVision/Dpi-back.mp4 +0 -0
  11. package/dist/assets/imagesIdVision/Dpi-front-video.mp4 +0 -0
  12. package/dist/assets/imagesIdVision/Foco.png +0 -0
  13. package/dist/assets/imagesIdVision/Selfie-rostro.png +0 -0
  14. package/dist/assets/imagesIdVision/acuerdo-video-selfie.png +0 -0
  15. package/dist/assets/imagesIdVision/backDpiRegister.png +0 -0
  16. package/dist/assets/imagesIdVision/background.png +0 -0
  17. package/dist/assets/imagesIdVision/blue-check.png +0 -0
  18. package/dist/assets/imagesIdVision/documentsImage.png +0 -0
  19. package/dist/assets/imagesIdVision/frontDpiRegister.png +0 -0
  20. package/dist/assets/imagesIdVision/icon/favicon.png +0 -0
  21. package/dist/assets/imagesIdVision/icons/dpi-error.svg +9 -9
  22. package/dist/assets/imagesIdVision/icons/video-error.svg +9 -9
  23. package/dist/assets/imagesIdVision/no-internet.svg +3 -3
  24. package/dist/assets/imagesIdVision/overlay_container.png +0 -0
  25. package/dist/assets/imagesIdVision/rostroImage.png +0 -0
  26. package/dist/assets/imagesIdVision/shapes.svg +1 -1
  27. package/dist/assets/imagesIdVision/voiceImage.png +0 -0
  28. package/dist/assets/shapes.svg +1 -1
  29. package/dist/index.d.ts +0 -1
  30. package/dist/index.js +0 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/src/app/app-routing.module.js +5 -5
  33. package/dist/src/app/app-routing.module.js.map +1 -1
  34. package/dist/src/app/app.component.js +2 -2
  35. package/dist/src/app/app.module.d.ts +2 -3
  36. package/dist/src/app/app.module.js +3 -5
  37. package/dist/src/app/app.module.js.map +1 -1
  38. package/dist/src/app/components/custom-button/custom-button.component.js +3 -3
  39. package/dist/src/app/home/home.page.js +3 -3
  40. package/dist/src/app/pages/id-vision/acuerdo-video/acuerdo-video-routing.module.d.ts +7 -0
  41. package/dist/src/app/pages/id-vision/acuerdo-video/acuerdo-video-routing.module.js +25 -0
  42. package/dist/src/app/pages/id-vision/acuerdo-video/acuerdo-video-routing.module.js.map +1 -0
  43. package/dist/src/app/pages/id-vision/acuerdo-video/acuerdo-video-step-guide/acuerdo-video-step-guide.component.d.ts +5 -0
  44. package/dist/src/app/pages/id-vision/acuerdo-video/acuerdo-video-step-guide/acuerdo-video-step-guide.component.js +58 -0
  45. package/dist/src/app/pages/id-vision/acuerdo-video/acuerdo-video-step-guide/acuerdo-video-step-guide.component.js.map +1 -0
  46. package/dist/src/app/pages/id-vision/acuerdo-video/acuerdo-video.module.d.ts +11 -0
  47. package/dist/src/app/pages/id-vision/acuerdo-video/acuerdo-video.module.js +35 -0
  48. package/dist/src/app/pages/id-vision/acuerdo-video/acuerdo-video.module.js.map +1 -0
  49. package/dist/src/app/pages/id-vision/acuerdo-video/acuerdo-video.page.d.ts +80 -0
  50. package/dist/src/app/pages/id-vision/acuerdo-video/acuerdo-video.page.js +640 -0
  51. package/dist/src/app/pages/id-vision/acuerdo-video/acuerdo-video.page.js.map +1 -0
  52. package/dist/src/app/pages/id-vision/acuerdo-video/shared-components.module.d.ts +9 -0
  53. package/dist/src/app/pages/id-vision/acuerdo-video/shared-components.module.js +20 -0
  54. package/dist/src/app/pages/id-vision/acuerdo-video/shared-components.module.js.map +1 -0
  55. package/dist/src/app/pages/id-vision/components/camara-acuerdo-video/camara-acuerdo.video.component.d.ts +32 -17
  56. package/dist/src/app/pages/id-vision/components/camara-acuerdo-video/camara-acuerdo.video.component.js +246 -122
  57. package/dist/src/app/pages/id-vision/components/camara-acuerdo-video/camara-acuerdo.video.component.js.map +1 -1
  58. package/dist/src/app/pages/id-vision/components/camara-video-selfie/camara-video-selfie.component.js +34 -33
  59. package/dist/src/app/pages/id-vision/components/camara-video-selfie/camara-video-selfie.component.js.map +1 -1
  60. package/dist/src/app/pages/id-vision/components/camera-security-block/camera-security-block.component.d.ts +12 -0
  61. package/dist/src/app/pages/id-vision/components/camera-security-block/camera-security-block.component.js +66 -0
  62. package/dist/src/app/pages/id-vision/components/camera-security-block/camera-security-block.component.js.map +1 -0
  63. package/dist/src/app/pages/id-vision/components/camera-with-overlay/camera-with-overlay.component.js +23 -32
  64. package/dist/src/app/pages/id-vision/components/camera-with-overlay/camera-with-overlay.component.js.map +1 -1
  65. package/dist/src/app/pages/id-vision/components/custom-slide/custom-slide.component.js +3 -3
  66. package/dist/src/app/pages/id-vision/components/direct-photo-selfie/direct-photo-selfie.component.js +3 -3
  67. package/dist/src/app/pages/id-vision/components/message-modal/message-modal.component.js +5 -5
  68. package/dist/src/app/pages/id-vision/components/message-modal/message-modal.component.js.map +1 -1
  69. package/dist/src/app/pages/id-vision/components/photo-selfie-camera/photo-selfie-camera.component.d.ts +3 -0
  70. package/dist/src/app/pages/id-vision/components/photo-selfie-camera/photo-selfie-camera.component.js +64 -21
  71. package/dist/src/app/pages/id-vision/components/photo-selfie-camera/photo-selfie-camera.component.js.map +1 -1
  72. package/dist/src/app/pages/id-vision/components/simple-acuerdo-video/simple-acuerdo-video.component.js +3 -3
  73. package/dist/src/app/pages/id-vision/dpi/front-dpi/front-dpi.component.js +2 -2
  74. package/dist/src/app/pages/id-vision/id-vision.component.d.ts +36 -14
  75. package/dist/src/app/pages/id-vision/id-vision.component.js +556 -417
  76. package/dist/src/app/pages/id-vision/id-vision.component.js.map +1 -1
  77. package/dist/src/app/pages/id-vision/id-vision.module.js +2 -9
  78. package/dist/src/app/pages/id-vision/id-vision.module.js.map +1 -1
  79. package/dist/src/app/pages/id-vision/services/acuerdo-video/acuerdo-video-dynamic.service.d.ts +18 -0
  80. package/dist/src/app/pages/id-vision/services/acuerdo-video/acuerdo-video-dynamic.service.js +43 -0
  81. package/dist/src/app/pages/id-vision/services/acuerdo-video/acuerdo-video-dynamic.service.js.map +1 -0
  82. package/dist/src/app/pages/id-vision/services/acuerdo-video/acuerdo-video.service.d.ts +10 -0
  83. package/dist/src/app/pages/id-vision/services/acuerdo-video/acuerdo-video.service.js +29 -0
  84. package/dist/src/app/pages/id-vision/services/acuerdo-video/acuerdo-video.service.js.map +1 -0
  85. package/dist/src/app/pages/id-vision/services/configuration/configuration.service.d.ts +1 -1
  86. package/dist/src/app/pages/id-vision/services/configuration/configuration.service.js +2 -2
  87. package/dist/src/app/pages/id-vision/services/configuration/configuration.service.js.map +1 -1
  88. package/dist/src/app/pages/id-vision/services/decrypt-text.service.d.ts +10 -0
  89. package/dist/src/app/pages/id-vision/services/decrypt-text.service.js +23 -0
  90. package/dist/src/app/pages/id-vision/services/decrypt-text.service.js.map +1 -0
  91. package/dist/src/app/pages/id-vision/services/dpi/dpi-service.service.d.ts +16 -5
  92. package/dist/src/app/pages/id-vision/services/dpi/dpi-service.service.js +167 -60
  93. package/dist/src/app/pages/id-vision/services/dpi/dpi-service.service.js.map +1 -1
  94. package/dist/src/app/pages/id-vision/services/encrypt/encrypt.service.d.ts +23 -0
  95. package/dist/src/app/pages/id-vision/services/encrypt/encrypt.service.js +44 -0
  96. package/dist/src/app/pages/id-vision/services/encrypt/encrypt.service.js.map +1 -0
  97. package/dist/src/app/pages/id-vision/services/facial-comparison/facial-comparison.service.d.ts +22 -0
  98. package/dist/src/app/pages/id-vision/services/facial-comparison/facial-comparison.service.js +45 -0
  99. package/dist/src/app/pages/id-vision/services/facial-comparison/facial-comparison.service.js.map +1 -0
  100. package/dist/src/app/pages/id-vision/services/processing/processing.service.d.ts +7 -4
  101. package/dist/src/app/pages/id-vision/services/processing/processing.service.js +79 -50
  102. package/dist/src/app/pages/id-vision/services/processing/processing.service.js.map +1 -1
  103. package/dist/src/app/pages/id-vision/services/security/virtual-camera-detection.service.d.ts +14 -0
  104. package/dist/src/app/pages/id-vision/services/security/virtual-camera-detection.service.js +72 -0
  105. package/dist/src/app/pages/id-vision/services/security/virtual-camera-detection.service.js.map +1 -0
  106. package/dist/src/app/pages/id-vision/services/validation/validation.service.d.ts +2 -0
  107. package/dist/src/app/pages/id-vision/services/validation/validation.service.js +21 -5
  108. package/dist/src/app/pages/id-vision/services/validation/validation.service.js.map +1 -1
  109. package/dist/src/app/pages/slides/acuerdo-video/acuerdo-video.component.js +1 -1
  110. package/dist/src/app/pages/slides/dpi-back/slide2.component.js +3 -3
  111. package/dist/src/app/pages/slides/dpi-front/slide1.component.js +3 -3
  112. package/dist/src/app/pages/slides/photo-selfie/photo-selfie.component.js +1 -1
  113. package/dist/src/app/pages/slides/slide1/slide1.component.d.ts +10 -10
  114. package/dist/src/app/pages/slides/slide1/slide1.component.js +39 -39
  115. package/dist/src/app/pages/slides/slide2/slide2.component.d.ts +8 -8
  116. package/dist/src/app/pages/slides/slide2/slide2.component.js +17 -17
  117. package/dist/src/app/pages/slides/slide3/slide3.component.d.ts +8 -8
  118. package/dist/src/app/pages/slides/slide3/slide3.component.js +17 -17
  119. package/dist/src/app/pages/slides/slide4/slide4.component.js +2 -2
  120. package/dist/src/app/pages/slides/video-selfie/slide3.component.js +35 -35
  121. package/dist/src/environments/environment.d.ts +2 -0
  122. package/dist/src/environments/environment.js +3 -1
  123. package/dist/src/environments/environment.js.map +1 -1
  124. package/package.json +72 -62
  125. package/src/app/app.component.scss +0 -0
  126. package/src/theme/variables.scss +24 -24
@@ -5,37 +5,98 @@ import * as i2 from "../../services/modal-services/modal-dpi-services";
5
5
  import * as i3 from "@angular/common";
6
6
  const _c0 = ["videoElement"];
7
7
  function CamaraAcuerdoVideoComponent_div_1_Template(rf, ctx) { if (rf & 1) {
8
- i0.ɵɵelementStart(0, "div", 16)(1, "div", 17);
8
+ i0.ɵɵelementStart(0, "div", 5)(1, "div", 6);
9
9
  i0.ɵɵtext(2);
10
10
  i0.ɵɵelementEnd()();
11
11
  } if (rf & 2) {
12
- const ctx_r1 = i0.ɵɵnextContext();
12
+ const ctx_r0 = i0.ɵɵnextContext();
13
13
  i0.ɵɵadvance(2);
14
- i0.ɵɵtextInterpolate(ctx_r1.countdown);
14
+ i0.ɵɵtextInterpolate(ctx_r0.countdown);
15
15
  } }
16
- function CamaraAcuerdoVideoComponent_p_6_Template(rf, ctx) { if (rf & 1) {
17
- i0.ɵɵelementStart(0, "p");
18
- i0.ɵɵtext(1, "Toca 'Inicia la grabaci\u00F3n' cuando est\u00E9s listo");
16
+ function CamaraAcuerdoVideoComponent_section_2_Template(rf, ctx) { if (rf & 1) {
17
+ const _r2 = i0.ɵɵgetCurrentView();
18
+ i0.ɵɵelementStart(0, "section", 7)(1, "div", 8);
19
+ i0.ɵɵelement(2, "ion-icon", 9);
19
20
  i0.ɵɵelementEnd();
20
- } }
21
- function CamaraAcuerdoVideoComponent_p_7_Template(rf, ctx) { if (rf & 1) {
22
- i0.ɵɵelementStart(0, "p", 18);
23
- i0.ɵɵtext(1, " Grabando... ");
21
+ i0.ɵɵelementStart(3, "h1", 10);
22
+ i0.ɵɵtext(4, "Acuerdo de video");
24
23
  i0.ɵɵelementEnd();
25
- } }
26
- function CamaraAcuerdoVideoComponent_div_8_Template(rf, ctx) { if (rf & 1) {
27
- i0.ɵɵelementStart(0, "div", 19);
28
- i0.ɵɵelement(1, "ion-icon", 20);
24
+ i0.ɵɵelementStart(5, "article", 11)(6, "p");
25
+ i0.ɵɵtext(7, "Lee en voz alta el texto mostrado para confirmar tu autorizaci\u00F3n.");
29
26
  i0.ɵɵelementEnd();
27
+ i0.ɵɵelementStart(8, "p");
28
+ i0.ɵɵtext(9, "Busca un lugar con buena iluminaci\u00F3n, mant\u00E9n tu rostro centrado y evita ruido.");
29
+ i0.ɵɵelementEnd();
30
+ i0.ɵɵelementStart(10, "p");
31
+ i0.ɵɵtext(11);
32
+ i0.ɵɵelementEnd()();
33
+ i0.ɵɵelementStart(12, "ion-button", 12);
34
+ i0.ɵɵlistener("click", function CamaraAcuerdoVideoComponent_section_2_Template_ion_button_click_12_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.goToRecordingStep()); });
35
+ i0.ɵɵtext(13, " Continuar ");
36
+ i0.ɵɵelementEnd()();
37
+ } if (rf & 2) {
38
+ const ctx_r0 = i0.ɵɵnextContext();
39
+ i0.ɵɵadvance(11);
40
+ i0.ɵɵtextInterpolate1("La grabaci\u00F3n dura aproximadamente ", ctx_r0.timeRemaining, " segundos.");
41
+ } }
42
+ function CamaraAcuerdoVideoComponent_section_3_div_10_Template(rf, ctx) { if (rf & 1) {
43
+ i0.ɵɵelementStart(0, "div", 28);
44
+ i0.ɵɵelement(1, "ion-spinner", 29);
45
+ i0.ɵɵelementStart(2, "span");
46
+ i0.ɵɵtext(3, "Preparando c\u00E1mara...");
47
+ i0.ɵɵelementEnd()();
30
48
  } }
31
- function CamaraAcuerdoVideoComponent_p_14_Template(rf, ctx) { if (rf & 1) {
32
- i0.ɵɵelementStart(0, "p", 21);
33
- i0.ɵɵtext(1);
49
+ function CamaraAcuerdoVideoComponent_section_3_Template(rf, ctx) { if (rf & 1) {
50
+ const _r3 = i0.ɵɵgetCurrentView();
51
+ i0.ɵɵelementStart(0, "section", 13)(1, "header", 14)(2, "h2");
52
+ i0.ɵɵtext(3, "Acuerdo de video");
34
53
  i0.ɵɵelementEnd();
54
+ i0.ɵɵelementStart(4, "ion-button", 15);
55
+ i0.ɵɵlistener("click", function CamaraAcuerdoVideoComponent_section_3_Template_ion_button_click_4_listener() { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.handleClose()); });
56
+ i0.ɵɵelement(5, "ion-icon", 16);
57
+ i0.ɵɵelementEnd()();
58
+ i0.ɵɵelementStart(6, "div", 17)(7, "div", 18);
59
+ i0.ɵɵelement(8, "video", 19, 0);
60
+ i0.ɵɵtemplate(10, CamaraAcuerdoVideoComponent_section_3_div_10_Template, 4, 0, "div", 20);
61
+ i0.ɵɵelementEnd();
62
+ i0.ɵɵelementStart(11, "p", 21);
63
+ i0.ɵɵtext(12);
64
+ i0.ɵɵelementEnd();
65
+ i0.ɵɵelementStart(13, "p", 22);
66
+ i0.ɵɵtext(14);
67
+ i0.ɵɵelementEnd();
68
+ i0.ɵɵelement(15, "ion-progress-bar", 23);
69
+ i0.ɵɵelementStart(16, "div", 24)(17, "span");
70
+ i0.ɵɵtext(18);
71
+ i0.ɵɵelementEnd();
72
+ i0.ɵɵelementStart(19, "span");
73
+ i0.ɵɵtext(20);
74
+ i0.ɵɵelementEnd()()();
75
+ i0.ɵɵelementStart(21, "footer", 25)(22, "ion-button", 26);
76
+ i0.ɵɵlistener("click", function CamaraAcuerdoVideoComponent_section_3_Template_ion_button_click_22_listener() { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.isRecording ? ctx_r0.stopRecording() : ctx_r0.recordVideo()); });
77
+ i0.ɵɵelement(23, "ion-icon", 27);
78
+ i0.ɵɵtext(24);
79
+ i0.ɵɵelementEnd()()();
35
80
  } if (rf & 2) {
36
- const ctx_r1 = i0.ɵɵnextContext();
81
+ const ctx_r0 = i0.ɵɵnextContext();
82
+ i0.ɵɵadvance(10);
83
+ i0.ɵɵproperty("ngIf", ctx_r0.isInitializingCamera || !ctx_r0.isCameraReady);
84
+ i0.ɵɵadvance(2);
85
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.currentScriptLine, " ");
86
+ i0.ɵɵadvance(2);
87
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.scriptText, " ");
37
88
  i0.ɵɵadvance();
38
- i0.ɵɵtextInterpolate1("00:", ctx_r1.timeRemaining < 10 ? "0" + ctx_r1.timeRemaining : ctx_r1.timeRemaining, "");
89
+ i0.ɵɵproperty("value", ctx_r0.progressValue);
90
+ i0.ɵɵadvance(3);
91
+ i0.ɵɵtextInterpolate(ctx_r0.isRecording ? "Grabando" : "Listo para grabar");
92
+ i0.ɵɵadvance(2);
93
+ i0.ɵɵtextInterpolate1("00:", ctx_r0.timeRemaining < 10 ? "0" + ctx_r0.timeRemaining : ctx_r0.timeRemaining, "");
94
+ i0.ɵɵadvance(2);
95
+ i0.ɵɵproperty("disabled", ctx_r0.isInitializingCamera || !ctx_r0.isCameraReady);
96
+ i0.ɵɵadvance();
97
+ i0.ɵɵproperty("name", ctx_r0.isRecording ? "stop-circle-outline" : "radio-button-on-outline");
98
+ i0.ɵɵadvance();
99
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.isRecording ? "Detener grabaci\u00F3n" : "Iniciar grabaci\u00F3n", " ");
39
100
  } }
40
101
  export class CamaraAcuerdoVideoComponent {
41
102
  constructor(platform, changeDetector, modalDpiServices, modalController) {
@@ -43,97 +104,154 @@ export class CamaraAcuerdoVideoComponent {
43
104
  this.changeDetector = changeDetector;
44
105
  this.modalDpiServices = modalDpiServices;
45
106
  this.modalController = modalController;
107
+ this.scriptText = 'Acepto los términos y condiciones del crédito que estoy solicitando en Fundación Génesis Empresarial.';
108
+ this.scriptChunks = [
109
+ 'Acepto los términos y condiciones',
110
+ 'del crédito que estoy solicitando',
111
+ 'en Fundación Génesis Empresarial.'
112
+ ];
113
+ this.currentStep = 1;
46
114
  this.countdown = 0;
115
+ this.currentScriptLine = this.scriptChunks[0];
116
+ this.progressValue = 0;
47
117
  this.isRecording = false;
48
- this.timeRemaining = 15; // 🔥 Ahora empieza en 15s
49
- this.canStopRecording = false; // 🔥 Solo se habilita cuando faltan 5 segundos
118
+ this.timeRemaining = 15;
119
+ this.isInitializingCamera = false;
120
+ this.isCameraReady = false;
121
+ this.recordingDurationSeconds = 15;
122
+ this.countdownSeconds = 3;
123
+ this.videoBitsPerSecond = 600000;
124
+ this.recordedChunks = [];
50
125
  this.stream = null;
51
126
  this.mediaRecorder = null;
52
- this.isLoading = true; // Variable para mostrar el loader
53
- this.isAndroid = this.platform.is('android');
127
+ this.userClosed = false;
128
+ this.logTag = '[CamaraAcuerdoVideo]';
54
129
  this.isIOS = this.platform.is('ios');
55
- }
56
- async ngOnInit() {
57
- await this.initCamera();
58
- }
59
- async ngAfterViewInit() {
60
- this.modalDpiServices.closeModalAcuerdoVideo$.subscribe(async () => {
61
- await this.closeOverlayVideo();
130
+ this.closeSubscription = this.modalDpiServices.closeModalAcuerdoVideo$.subscribe(async () => {
131
+ await this.handleClose();
62
132
  });
63
133
  }
64
- async ngOnDestroy() {
65
- this.stopCamera();
134
+ ngOnDestroy() {
135
+ this.clearAllTimers();
136
+ this.stopCameraTracks();
137
+ this.closeSubscription?.unsubscribe();
138
+ }
139
+ async goToRecordingStep() {
140
+ this.currentStep = 2;
141
+ this.changeDetector.detectChanges();
142
+ await new Promise((resolve) => setTimeout(resolve, 0));
143
+ await this.initCamera();
66
144
  }
67
145
  async initCamera() {
68
- let isCameraReady = false;
146
+ if (this.stream || this.isInitializingCamera || !this.videoElement?.nativeElement)
147
+ return;
148
+ this.isInitializingCamera = true;
149
+ console.log(`${this.logTag} initCamera start`, {
150
+ ua: navigator.userAgent,
151
+ mediaDevices: !!navigator.mediaDevices,
152
+ hasGetUserMedia: !!navigator.mediaDevices?.getUserMedia,
153
+ hasMediaRecorder: typeof MediaRecorder !== 'undefined'
154
+ });
69
155
  try {
156
+ if (typeof MediaRecorder === 'undefined') {
157
+ throw new Error('MediaRecorder no está soportado en este dispositivo/navegador');
158
+ }
70
159
  const constraints = {
71
160
  video: {
72
- width: { ideal: 640 },
73
- height: { ideal: 480 },
161
+ width: { ideal: 1080 },
162
+ height: { ideal: 1080 },
74
163
  facingMode: 'user',
75
164
  },
76
165
  audio: true
77
166
  };
78
167
  this.stream = await navigator.mediaDevices.getUserMedia(constraints);
168
+ const tracks = this.stream.getTracks().map((track) => ({
169
+ kind: track.kind,
170
+ label: track.label,
171
+ enabled: track.enabled,
172
+ muted: track.muted,
173
+ readyState: track.readyState
174
+ }));
175
+ console.log(`${this.logTag} getUserMedia success`, { tracks });
79
176
  this.videoElement.nativeElement.srcObject = this.stream;
80
177
  this.videoElement.nativeElement.muted = true;
81
- // Esperar hasta que la cámara esté lista
178
+ this.videoElement.nativeElement.setAttribute('playsinline', 'true');
82
179
  this.videoElement.nativeElement.onloadedmetadata = () => {
83
- isCameraReady = true;
180
+ console.log(`${this.logTag} video metadata loaded`, {
181
+ readyState: this.videoElement.nativeElement.readyState
182
+ });
183
+ this.isCameraReady = true;
184
+ this.changeDetector.detectChanges();
84
185
  };
85
- // Espera activa para asegurarte de que está lista
86
- await new Promise((resolve) => {
87
- const interval = setInterval(() => {
88
- if (isCameraReady) {
89
- clearInterval(interval);
90
- resolve(true);
91
- }
92
- }, 100);
93
- });
94
- this.isLoading = false;
95
- // await this.startVideoRecord();
186
+ await this.videoElement.nativeElement.play();
187
+ console.log(`${this.logTag} video play success`);
96
188
  }
97
189
  catch (error) {
98
- console.error('Error al inicializar la cámara:', error);
190
+ const err = error;
191
+ console.error(`${this.logTag} initCamera error`, {
192
+ name: err?.name,
193
+ message: err?.message,
194
+ code: err?.code,
195
+ full: error
196
+ });
197
+ }
198
+ finally {
199
+ this.isInitializingCamera = false;
200
+ console.log(`${this.logTag} initCamera end`, {
201
+ isCameraReady: this.isCameraReady,
202
+ hasStream: !!this.stream
203
+ });
204
+ this.changeDetector.detectChanges();
99
205
  }
100
206
  }
101
207
  async recordVideo() {
102
- // 🔥 Iniciar cuenta regresiva antes de grabar
103
- this.countdown = 3;
104
- const countdownInterval = setInterval(() => {
208
+ if (this.isRecording || !this.stream || !this.isCameraReady)
209
+ return;
210
+ this.countdown = this.countdownSeconds;
211
+ this.clearCountdownTimer();
212
+ this.countdownIntervalId = setInterval(() => {
105
213
  this.countdown--;
106
214
  this.changeDetector.detectChanges();
107
215
  if (this.countdown <= 0) {
108
- clearInterval(countdownInterval);
109
- this.startVideoRecord(); // Iniciar grabación después de la cuenta regresiva
216
+ this.clearCountdownTimer();
217
+ this.startVideoRecord();
110
218
  }
111
219
  }, 1000);
112
220
  }
113
- async startVideoRecord() {
221
+ startVideoRecord() {
114
222
  if (!this.stream || this.isRecording)
115
223
  return;
224
+ this.recordedChunks = [];
116
225
  this.isRecording = true;
117
- this.timeRemaining = 15; // 🔥 Reiniciar cuenta regresiva a 15 segundos
118
- this.canStopRecording = false; // 🔥 Deshabilitar botón de detener al inicio
226
+ this.timeRemaining = this.recordingDurationSeconds;
227
+ this.progressValue = 0;
228
+ this.currentScriptLine = this.scriptChunks[0];
119
229
  this.changeDetector.detectChanges();
120
- const options = {
121
- mimeType: this.isIOS ? 'video/mp4' : 'video/webm',
122
- videoBitsPerSecond: 400000
123
- };
230
+ const mimeType = this.resolveMimeType();
231
+ console.log(`${this.logTag} startVideoRecord`, {
232
+ mimeType,
233
+ isIOS: this.isIOS
234
+ });
235
+ const options = mimeType
236
+ ? { mimeType, videoBitsPerSecond: this.videoBitsPerSecond }
237
+ : { videoBitsPerSecond: this.videoBitsPerSecond };
124
238
  this.mediaRecorder = new MediaRecorder(this.stream, options);
125
- let chunks = [];
126
239
  this.mediaRecorder.ondataavailable = (event) => {
240
+ console.log(`${this.logTag} ondataavailable`, { size: event.data?.size ?? 0 });
127
241
  if (event.data.size > 0)
128
- chunks.push(event.data);
242
+ this.recordedChunks.push(event.data);
129
243
  };
130
244
  this.mediaRecorder.onstop = async () => {
131
- if (chunks.length === 0) {
245
+ console.log(`${this.logTag} onstop`, { chunks: this.recordedChunks.length, userClosed: this.userClosed });
246
+ if (this.userClosed)
247
+ return;
248
+ if (this.recordedChunks.length === 0) {
132
249
  console.error('No se capturaron datos en la grabación.');
133
250
  return;
134
251
  }
135
- const videoBlob = new Blob(chunks, { type: this.isIOS ? 'video/mp4' : 'video/webm' });
136
- const fileExtension = this.isIOS ? 'mp4' : 'webm';
252
+ const outputType = mimeType || (this.isIOS ? 'video/mp4' : 'video/webm');
253
+ const fileExtension = outputType.includes('mp4') ? 'mp4' : 'webm';
254
+ const videoBlob = new Blob(this.recordedChunks, { type: outputType });
137
255
  const videoFile = this.blobToFile(videoBlob, `acuerdo-video.${fileExtension}`);
138
256
  if (this.backFunction) {
139
257
  await this.backFunction(videoFile);
@@ -141,49 +259,78 @@ export class CamaraAcuerdoVideoComponent {
141
259
  };
142
260
  this.mediaRecorder.start(100);
143
261
  // 🔥 Iniciar cuenta regresiva para detener
144
- this.recordingTimer = setInterval(() => {
145
- if (this.timeRemaining > 0) {
146
- this.timeRemaining--;
147
- // 🔥 Habilitar botón de detener cuando falten 5 segundos
148
- if (this.timeRemaining === 5) {
149
- this.canStopRecording = true;
150
- }
151
- this.changeDetector.detectChanges();
152
- }
153
- else {
154
- clearInterval(this.recordingTimer);
262
+ this.clearRecordingTimer();
263
+ this.recordingIntervalId = setInterval(() => {
264
+ this.timeRemaining--;
265
+ const elapsed = this.recordingDurationSeconds - this.timeRemaining;
266
+ this.progressValue = Math.min(elapsed / this.recordingDurationSeconds, 1);
267
+ this.currentScriptLine = this.getScriptLineByProgress(this.progressValue);
268
+ if (this.timeRemaining <= 0) {
155
269
  this.stopRecording();
156
270
  }
271
+ this.changeDetector.detectChanges();
157
272
  }, 1000);
158
273
  }
159
274
  async stopRecording() {
160
275
  if (this.mediaRecorder && this.isRecording) {
276
+ console.log(`${this.logTag} stopRecording`, { state: this.mediaRecorder.state });
161
277
  this.mediaRecorder.stop();
162
- await this.backFunction(this.capVideo);
163
278
  this.isRecording = false;
164
- this.canStopRecording = false;
165
- clearInterval(this.recordingTimer);
279
+ this.clearRecordingTimer();
166
280
  this.changeDetector.detectChanges();
167
281
  }
168
282
  }
283
+ resolveMimeType() {
284
+ if (typeof MediaRecorder === 'undefined' || typeof MediaRecorder.isTypeSupported !== 'function') {
285
+ return undefined;
286
+ }
287
+ const candidateTypes = this.isIOS
288
+ ? ['video/mp4', 'video/webm;codecs=vp9', 'video/webm']
289
+ : ['video/webm;codecs=vp9', 'video/webm', 'video/mp4'];
290
+ return candidateTypes.find((type) => MediaRecorder.isTypeSupported(type));
291
+ }
292
+ getScriptLineByProgress(progress) {
293
+ const index = Math.min(Math.floor(progress * this.scriptChunks.length), this.scriptChunks.length - 1);
294
+ return this.scriptChunks[index];
295
+ }
169
296
  blobToFile(blob, fileName) {
170
297
  return new File([blob], fileName, { type: blob.type });
171
298
  }
172
- stopCamera() {
299
+ stopCameraTracks() {
173
300
  if (this.stream) {
174
301
  this.stream.getTracks().forEach((track) => track.stop());
175
302
  this.stream = null;
176
303
  }
177
- // if (this.scanTimeout) clearTimeout(this.scanTimeout);
178
304
  }
179
- async closeOverlayVideo() {
180
- this.stopCamera();
181
- this.modalController.dismiss();
305
+ clearCountdownTimer() {
306
+ if (this.countdownIntervalId) {
307
+ clearInterval(this.countdownIntervalId);
308
+ this.countdownIntervalId = undefined;
309
+ }
310
+ }
311
+ clearRecordingTimer() {
312
+ if (this.recordingIntervalId) {
313
+ clearInterval(this.recordingIntervalId);
314
+ this.recordingIntervalId = undefined;
315
+ }
316
+ }
317
+ clearAllTimers() {
318
+ this.clearCountdownTimer();
319
+ this.clearRecordingTimer();
182
320
  }
183
- closeRequestedFunction() {
184
- this.closeOverlayVideo();
185
- this.modalDpiServices.requestCloseModalAcuerdoVideo();
186
- // this.modalVideoSelfieServices.requestCloseOverlayModal();
321
+ async handleClose() {
322
+ this.userClosed = true;
323
+ this.clearAllTimers();
324
+ if (this.mediaRecorder && this.isRecording) {
325
+ this.mediaRecorder.stop();
326
+ this.isRecording = false;
327
+ }
328
+ this.stopCameraTracks();
329
+ if (this.closeRequested) {
330
+ await this.closeRequested();
331
+ return;
332
+ }
333
+ await this.modalController.dismiss();
187
334
  }
188
335
  static { this.ɵfac = function CamaraAcuerdoVideoComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CamaraAcuerdoVideoComponent)(i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i2.ModalDpiServices), i0.ɵɵdirectiveInject(i1.ModalController)); }; }
189
336
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CamaraAcuerdoVideoComponent, selectors: [["app-acuerdo-video"]], viewQuery: function CamaraAcuerdoVideoComponent_Query(rf, ctx) { if (rf & 1) {
@@ -191,53 +338,30 @@ export class CamaraAcuerdoVideoComponent {
191
338
  } if (rf & 2) {
192
339
  let _t;
193
340
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.videoElement = _t.first);
194
- } }, inputs: { backFunction: "backFunction" }, decls: 19, vars: 7, consts: [["videoElement", ""], [1, "video-container"], ["class", "countdown-overlay", 4, "ngIf"], ["autoplay", "", "muted", "", "playsinline", ""], [1, "overlay"], [1, "overlay-text"], [4, "ngIf"], ["class", "recording-text", 4, "ngIf"], ["class", "icon-text", 4, "ngIf"], [1, "close-button"], ["name", "close-outline", 3, "click"], [1, "button-container"], [1, "instruction-text-1"], ["class", "recording-timer", 4, "ngIf"], [1, "instruction-text"], ["expand", "block", 3, "click", "disabled"], [1, "countdown-overlay"], [1, "countdown"], [1, "recording-text"], [1, "icon-text"], ["size", "small", "name", "radio-button-on-outline"], [1, "recording-timer"]], template: function CamaraAcuerdoVideoComponent_Template(rf, ctx) { if (rf & 1) {
195
- const _r1 = i0.ɵɵgetCurrentView();
341
+ } }, inputs: { backFunction: "backFunction", closeRequested: "closeRequested" }, decls: 4, vars: 4, consts: [["videoElement", ""], [1, "sdk-metag-acuerdo-content", 3, "fullscreen"], ["class", "sdk-metag-countdown-overlay", 4, "ngIf"], ["class", "sdk-metag-step-one", 4, "ngIf"], ["class", "sdk-metag-step-two", 4, "ngIf"], [1, "sdk-metag-countdown-overlay"], [1, "sdk-metag-countdown"], [1, "sdk-metag-step-one"], [1, "sdk-metag-avatar-shell"], ["name", "person-circle-outline"], [1, "sdk-metag-title"], [1, "sdk-metag-instruction-card"], ["expand", "block", 1, "sdk-metag-primary-btn", 3, "click"], [1, "sdk-metag-step-two"], [1, "sdk-metag-player-header"], ["fill", "clear", 1, "sdk-metag-close-btn", 3, "click"], ["slot", "icon-only", "name", "close-outline"], [1, "sdk-metag-player-card"], [1, "sdk-metag-camera-frame"], ["autoplay", "", "muted", "", "playsinline", ""], ["class", "sdk-metag-camera-overlay", 4, "ngIf"], [1, "sdk-metag-script-current"], [1, "sdk-metag-script-full"], [3, "value"], [1, "sdk-metag-progress-meta"], [1, "sdk-metag-player-footer"], ["expand", "block", 1, "sdk-metag-record-btn", 3, "click", "disabled"], ["slot", "start", 3, "name"], [1, "sdk-metag-camera-overlay"], ["name", "crescent"]], template: function CamaraAcuerdoVideoComponent_Template(rf, ctx) { if (rf & 1) {
196
342
  i0.ɵɵelementStart(0, "ion-content", 1);
197
- i0.ɵɵtemplate(1, CamaraAcuerdoVideoComponent_div_1_Template, 3, 1, "div", 2);
198
- i0.ɵɵelement(2, "video", 3, 0);
199
- i0.ɵɵelementStart(4, "div", 4)(5, "div", 5);
200
- i0.ɵɵtemplate(6, CamaraAcuerdoVideoComponent_p_6_Template, 2, 0, "p", 6)(7, CamaraAcuerdoVideoComponent_p_7_Template, 2, 0, "p", 7)(8, CamaraAcuerdoVideoComponent_div_8_Template, 2, 0, "div", 8);
201
- i0.ɵɵelementEnd();
202
- i0.ɵɵelementStart(9, "div", 9)(10, "ion-icon", 10);
203
- i0.ɵɵlistener("click", function CamaraAcuerdoVideoComponent_Template_ion_icon_click_10_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.closeOverlayVideo()); });
204
- i0.ɵɵelementEnd()();
205
- i0.ɵɵelementStart(11, "div", 11)(12, "p", 12);
206
- i0.ɵɵtext(13, "Repite el siguiente texto");
343
+ i0.ɵɵtemplate(1, CamaraAcuerdoVideoComponent_div_1_Template, 3, 1, "div", 2)(2, CamaraAcuerdoVideoComponent_section_2_Template, 14, 1, "section", 3)(3, CamaraAcuerdoVideoComponent_section_3_Template, 25, 9, "section", 4);
207
344
  i0.ɵɵelementEnd();
208
- i0.ɵɵtemplate(14, CamaraAcuerdoVideoComponent_p_14_Template, 2, 1, "p", 13);
209
- i0.ɵɵelementStart(15, "p", 14);
210
- i0.ɵɵtext(16, "Acepto los t\u00E9rminos y condiciones del cr\u00E9dito que estoy solicitando en Fundaci\u00F3n G\u00E9nesis Empresarial");
211
- i0.ɵɵelementEnd();
212
- i0.ɵɵelementStart(17, "ion-button", 15);
213
- i0.ɵɵlistener("click", function CamaraAcuerdoVideoComponent_Template_ion_button_click_17_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.isRecording ? ctx.stopRecording() : ctx.recordVideo()); });
214
- i0.ɵɵtext(18);
215
- i0.ɵɵelementEnd()()()();
216
345
  } if (rf & 2) {
346
+ i0.ɵɵproperty("fullscreen", true);
217
347
  i0.ɵɵadvance();
218
348
  i0.ɵɵproperty("ngIf", ctx.countdown > 0);
219
- i0.ɵɵadvance(5);
220
- i0.ɵɵproperty("ngIf", !ctx.isRecording);
221
- i0.ɵɵadvance();
222
- i0.ɵɵproperty("ngIf", ctx.isRecording);
223
349
  i0.ɵɵadvance();
224
- i0.ɵɵproperty("ngIf", ctx.isRecording);
225
- i0.ɵɵadvance(6);
226
- i0.ɵɵproperty("ngIf", ctx.isRecording);
227
- i0.ɵɵadvance(3);
228
- i0.ɵɵproperty("disabled", ctx.isRecording && ctx.timeRemaining > 5);
350
+ i0.ɵɵproperty("ngIf", ctx.currentStep === 1);
229
351
  i0.ɵɵadvance();
230
- i0.ɵɵtextInterpolate1(" ", ctx.isRecording ? "Detener Grabaci\u00F3n" : "Iniciar Grabaci\u00F3n", " ");
231
- } }, dependencies: [i3.NgIf, i1.IonButton, i1.IonContent, i1.IonIcon], styles: [".video-container[_ngcontent-%COMP%] {\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n background: black;\r\n \r\n video {\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n }\r\n \r\n .overlay {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n align-items: center;\r\n background: rgba(0, 0, 0, 0.5);\r\n \r\n .overlay-text {\r\n display: flex;\r\n align-items: center; \r\n justify-content: center; \r\n margin-top: 20px;\r\n color: white;\r\n font-size: 14px;\r\n // text-align: center;\r\n gap: 8px;\r\n \r\n ion-icon {\r\n padding-top: 4px;\r\n color: red;\r\n font-size: 12px;\r\n // margin-left: 5px;\r\n }\r\n }\r\n \r\n .instruction-text-1 {\r\n color: red;\r\n font-size: 14px;\r\n text-align: center;\r\n }\r\n \r\n .instruction-text {\r\n color: black;\r\n text-align: center;\r\n padding: 0px 15px;\r\n }\r\n \r\n .button-container {\r\n background-color: white;\r\n bottom: 20px;\r\n padding: 10px;\r\n \r\n // ion-button {\r\n // width: 100%;\r\n // }\r\n\r\n ion-button {\r\n width: 90%;\r\n max-width: 300px;\r\n margin: 0 auto;\r\n background-color: #ffcc00;\r\n color: #ffffff;\r\n font-weight: bold;\r\n border-radius: 20px;\r\n \r\n --background: var(--purple-primary)\r\n --background-hover: var(--purple-secondary);\r\n --background-activated: var(--purple-secondary);\r\n --background-focused: var(--purple-secondary);\r\n \r\n --color: var(--purple-primary);\r\n \r\n --border-radius: 20px;\r\n --border-color: var(--purple-primary);\r\n --border-style: solid;\r\n --border-width: 1px;\r\n \r\n --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.25);\r\n \r\n --ripple-color: var(--purple-secondary);\r\n \r\n \r\n &:hover {\r\n background-color: #ffb300;\r\n }\r\n \r\n &:active {\r\n background-color: #e6a800;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n \r\n .countdown-overlay[_ngcontent-%COMP%] {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.6);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n z-index: 1000;\r\n \r\n .countdown {\r\n font-size: 100px;\r\n font-weight: bold;\r\n color: white;\r\n }\r\n }\r\n\r\n.recording-timer[_ngcontent-%COMP%] {\r\n color: red;\r\n text-align: center;\r\n padding: 0;\r\n font-size: 13px;\r\n}\r\n.close-button[_ngcontent-%COMP%] {\r\n position: absolute;\r\n top: 10px;\r\n right: 10px;\r\n border-radius: 50%;\r\n padding: 10px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n \r\n ion-icon {\r\n color: white;\r\n font-size: 18px;\r\n }\r\n \r\n &:hover {\r\n background: rgba(0, 0, 0, 0.7);\r\n }\r\n }\r\n\r\n video[_ngcontent-%COMP%] {\r\n transform: scaleX(-1);\r\n }"] }); }
352
+ i0.ɵɵproperty("ngIf", ctx.currentStep === 2);
353
+ } }, dependencies: [i3.NgIf, i1.IonButton, i1.IonContent, i1.IonIcon, i1.IonProgressBar, i1.IonSpinner], styles: [".sdk-metag-acuerdo-content[_ngcontent-%COMP%] {\n --background: #ffffff;\n --padding-top: 0;\n --padding-bottom: 0;\n}\n\n.sdk-metag-countdown-overlay[_ngcontent-%COMP%] {\n position: fixed;\n inset: 0;\n z-index: 999;\n display: grid;\n place-items: center;\n background: rgba(15, 23, 42, 0.55);\n backdrop-filter: blur(3px);\n}\n\n.sdk-metag-countdown[_ngcontent-%COMP%] {\n width: 120px;\n height: 120px;\n border-radius: 50%;\n display: grid;\n place-items: center;\n font-size: 56px;\n font-weight: 800;\n color: #ffffff;\n background: #111827;\n}\n\n.sdk-metag-step-one[_ngcontent-%COMP%] {\n min-height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n gap: 20px;\n padding: 28px 20px 24px;\n background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);\n}\n\n.sdk-metag-avatar-shell[_ngcontent-%COMP%] {\n margin: 0 auto;\n width: 112px;\n height: 112px;\n border-radius: 30px;\n display: grid;\n place-items: center;\n background: #eef2ff;\n\n ion-icon {\n font-size: 72px;\n color: #3730a3;\n }\n}\n\n.sdk-metag-title[_ngcontent-%COMP%] {\n margin: 0;\n text-align: center;\n color: #111827;\n font-size: 28px;\n font-weight: 700;\n letter-spacing: -0.3px;\n}\n\n.sdk-metag-instruction-card[_ngcontent-%COMP%] {\n padding: 18px 16px;\n border-radius: 20px;\n border: 1px solid #e5e7eb;\n background: #ffffff;\n box-shadow: 0 10px 28px rgba(2, 6, 23, 0.06);\n\n p {\n margin: 0 0 10px;\n color: #374151;\n line-height: 1.45;\n font-size: 14px;\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n}\n\n.sdk-metag-primary-btn[_ngcontent-%COMP%] {\n margin-top: 4px;\n --background: #2563eb;\n --background-hover: #1d4ed8;\n --background-activated: #1e40af;\n --border-radius: 14px;\n --box-shadow: 0 12px 24px rgba(37, 99, 235, 0.28);\n font-weight: 600;\n}\n\n.sdk-metag-step-two[_ngcontent-%COMP%] {\n min-height: 100%;\n display: grid;\n grid-template-rows: auto 1fr auto;\n gap: 12px;\n padding: 12px 14px 18px;\n background: #ffffff;\n}\n\n.sdk-metag-player-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n h2 {\n margin: 0;\n color: #0f172a;\n font-size: 20px;\n font-weight: 700;\n letter-spacing: -0.2px;\n }\n}\n\n.sdk-metag-close-btn[_ngcontent-%COMP%] {\n --color: #334155;\n}\n\n.sdk-metag-player-card[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n border-radius: 22px;\n background: #f8fafc;\n border: 1px solid #e2e8f0;\n box-shadow: 0 18px 34px rgba(15, 23, 42, 0.1);\n padding: 14px 14px 16px;\n}\n\n.sdk-metag-camera-frame[_ngcontent-%COMP%] {\n position: relative;\n width: 100%;\n aspect-ratio: 1 / 1;\n border-radius: 18px;\n overflow: hidden;\n background: #111827;\n\n video {\n width: 100%;\n height: 100%;\n object-fit: cover;\n transform: scaleX(-1);\n }\n}\n\n.sdk-metag-camera-overlay[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0;\n display: grid;\n place-items: center;\n gap: 10px;\n background: rgba(2, 6, 23, 0.64);\n color: #ffffff;\n font-size: 13px;\n text-align: center;\n}\n\n.sdk-metag-script-current[_ngcontent-%COMP%] {\n margin: 0;\n color: #0f172a;\n font-size: 18px;\n font-weight: 700;\n line-height: 1.35;\n}\n\n.sdk-metag-script-full[_ngcontent-%COMP%] {\n margin: 0;\n color: #64748b;\n font-size: 13px;\n line-height: 1.4;\n}\n\n.sdk-metag-progress-meta[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n color: #334155;\n font-size: 13px;\n font-weight: 600;\n}\n\n.sdk-metag-player-footer[_ngcontent-%COMP%] {\n padding-top: 4px;\n}\n\n.sdk-metag-record-btn[_ngcontent-%COMP%] {\n --background: #e11d48;\n --background-hover: #be123c;\n --background-activated: #9f1239;\n --border-radius: 14px;\n --box-shadow: 0 14px 26px rgba(225, 29, 72, 0.28);\n font-weight: 700;\n}"] }); }
232
354
  }
233
355
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CamaraAcuerdoVideoComponent, [{
234
356
  type: Component,
235
- args: [{ selector: 'app-acuerdo-video', template: "<ion-content class=\"video-container\">\r\n <div *ngIf=\"countdown > 0\" class=\"countdown-overlay\">\r\n <div class=\"countdown\">{{ countdown }}</div>\r\n </div>\r\n \r\n <video #videoElement autoplay muted playsinline></video>\r\n \r\n <div class=\"overlay\">\r\n <div class=\"overlay-text\">\r\n <p *ngIf=\"!isRecording\">Toca 'Inicia la grabaci\u00F3n' cuando est\u00E9s listo</p>\r\n <p *ngIf=\"isRecording\" class=\"recording-text\">\r\n Grabando...\r\n </p>\r\n <div *ngIf=\"isRecording\" class=\"icon-text\"><ion-icon size=\"small\" name=\"radio-button-on-outline\"></ion-icon></div>\r\n </div>\r\n\r\n <div class=\"close-button\">\r\n <ion-icon name=\"close-outline\" (click)=\"closeOverlayVideo()\"></ion-icon>\r\n </div>\r\n \r\n \r\n <div class=\"button-container\">\r\n <p class=\"instruction-text-1\">Repite el siguiente texto</p>\r\n <p class=\"recording-timer\" *ngIf=\"isRecording\">00:{{ timeRemaining < 10 ? '0' + timeRemaining : timeRemaining }}</p>\r\n <p class=\"instruction-text\">Acepto los t\u00E9rminos y condiciones del cr\u00E9dito que estoy solicitando en Fundaci\u00F3n G\u00E9nesis Empresarial</p>\r\n \r\n <ion-button expand=\"block\" \r\n (click)=\"isRecording ? stopRecording() : recordVideo()\" \r\n [disabled]=\"isRecording && timeRemaining > 5\">\r\n {{ isRecording ? 'Detener Grabaci\u00F3n' : 'Iniciar Grabaci\u00F3n' }}\r\n </ion-button>\r\n \r\n </div>\r\n </div>\r\n </ion-content>\r\n ", styles: [".video-container {\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n background: black;\r\n \r\n video {\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n }\r\n \r\n .overlay {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n align-items: center;\r\n background: rgba(0, 0, 0, 0.5);\r\n \r\n .overlay-text {\r\n display: flex;\r\n align-items: center; \r\n justify-content: center; \r\n margin-top: 20px;\r\n color: white;\r\n font-size: 14px;\r\n // text-align: center;\r\n gap: 8px;\r\n \r\n ion-icon {\r\n padding-top: 4px;\r\n color: red;\r\n font-size: 12px;\r\n // margin-left: 5px;\r\n }\r\n }\r\n \r\n .instruction-text-1 {\r\n color: red;\r\n font-size: 14px;\r\n text-align: center;\r\n }\r\n \r\n .instruction-text {\r\n color: black;\r\n text-align: center;\r\n padding: 0px 15px;\r\n }\r\n \r\n .button-container {\r\n background-color: white;\r\n bottom: 20px;\r\n padding: 10px;\r\n \r\n // ion-button {\r\n // width: 100%;\r\n // }\r\n\r\n ion-button {\r\n width: 90%;\r\n max-width: 300px;\r\n margin: 0 auto;\r\n background-color: #ffcc00;\r\n color: #ffffff;\r\n font-weight: bold;\r\n border-radius: 20px;\r\n \r\n --background: var(--purple-primary)\r\n --background-hover: var(--purple-secondary);\r\n --background-activated: var(--purple-secondary);\r\n --background-focused: var(--purple-secondary);\r\n \r\n --color: var(--purple-primary);\r\n \r\n --border-radius: 20px;\r\n --border-color: var(--purple-primary);\r\n --border-style: solid;\r\n --border-width: 1px;\r\n \r\n --box-shadow: 0 2px 6px 0 rgb(0, 0, 0, 0.25);\r\n \r\n --ripple-color: var(--purple-secondary);\r\n \r\n \r\n &:hover {\r\n background-color: #ffb300;\r\n }\r\n \r\n &:active {\r\n background-color: #e6a800;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n \r\n .countdown-overlay {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.6);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n z-index: 1000;\r\n \r\n .countdown {\r\n font-size: 100px;\r\n font-weight: bold;\r\n color: white;\r\n }\r\n }\r\n\r\n.recording-timer {\r\n color: red;\r\n text-align: center;\r\n padding: 0;\r\n font-size: 13px;\r\n}\r\n.close-button {\r\n position: absolute;\r\n top: 10px;\r\n right: 10px;\r\n border-radius: 50%;\r\n padding: 10px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n \r\n ion-icon {\r\n color: white;\r\n font-size: 18px;\r\n }\r\n \r\n &:hover {\r\n background: rgba(0, 0, 0, 0.7);\r\n }\r\n }\r\n\r\n video {\r\n transform: scaleX(-1);\r\n }"] }]
357
+ args: [{ selector: 'app-acuerdo-video', template: "<ion-content class=\"sdk-metag-acuerdo-content\" [fullscreen]=\"true\">\n <div *ngIf=\"countdown > 0\" class=\"sdk-metag-countdown-overlay\">\n <div class=\"sdk-metag-countdown\">{{ countdown }}</div>\n </div>\n\n <section *ngIf=\"currentStep === 1\" class=\"sdk-metag-step-one\">\n <div class=\"sdk-metag-avatar-shell\">\n <ion-icon name=\"person-circle-outline\"></ion-icon>\n </div>\n\n <h1 class=\"sdk-metag-title\">Acuerdo de video</h1>\n\n <article class=\"sdk-metag-instruction-card\">\n <p>Lee en voz alta el texto mostrado para confirmar tu autorizaci\u00F3n.</p>\n <p>Busca un lugar con buena iluminaci\u00F3n, mant\u00E9n tu rostro centrado y evita ruido.</p>\n <p>La grabaci\u00F3n dura aproximadamente {{ timeRemaining }} segundos.</p>\n </article>\n\n <ion-button class=\"sdk-metag-primary-btn\" expand=\"block\" (click)=\"goToRecordingStep()\">\n Continuar\n </ion-button>\n </section>\n\n <section *ngIf=\"currentStep === 2\" class=\"sdk-metag-step-two\">\n <header class=\"sdk-metag-player-header\">\n <h2>Acuerdo de video</h2>\n <ion-button fill=\"clear\" class=\"sdk-metag-close-btn\" (click)=\"handleClose()\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </header>\n\n <div class=\"sdk-metag-player-card\">\n <div class=\"sdk-metag-camera-frame\">\n <video #videoElement autoplay muted playsinline></video>\n\n <div class=\"sdk-metag-camera-overlay\" *ngIf=\"isInitializingCamera || !isCameraReady\">\n <ion-spinner name=\"crescent\"></ion-spinner>\n <span>Preparando c\u00E1mara...</span>\n </div>\n </div>\n\n <p class=\"sdk-metag-script-current\">\n {{ currentScriptLine }}\n </p>\n <p class=\"sdk-metag-script-full\">\n {{ scriptText }}\n </p>\n\n <ion-progress-bar [value]=\"progressValue\"></ion-progress-bar>\n\n <div class=\"sdk-metag-progress-meta\">\n <span>{{ isRecording ? 'Grabando' : 'Listo para grabar' }}</span>\n <span>00:{{ timeRemaining < 10 ? '0' + timeRemaining : timeRemaining }}</span>\n </div>\n </div>\n\n <footer class=\"sdk-metag-player-footer\">\n <ion-button\n class=\"sdk-metag-record-btn\"\n expand=\"block\"\n [disabled]=\"isInitializingCamera || !isCameraReady\"\n (click)=\"isRecording ? stopRecording() : recordVideo()\">\n <ion-icon slot=\"start\" [name]=\"isRecording ? 'stop-circle-outline' : 'radio-button-on-outline'\"></ion-icon>\n {{ isRecording ? 'Detener grabaci\u00F3n' : 'Iniciar grabaci\u00F3n' }}\n </ion-button>\n </footer>\n </section>\n</ion-content>\n", styles: [".sdk-metag-acuerdo-content {\n --background: #ffffff;\n --padding-top: 0;\n --padding-bottom: 0;\n}\n\n.sdk-metag-countdown-overlay {\n position: fixed;\n inset: 0;\n z-index: 999;\n display: grid;\n place-items: center;\n background: rgba(15, 23, 42, 0.55);\n backdrop-filter: blur(3px);\n}\n\n.sdk-metag-countdown {\n width: 120px;\n height: 120px;\n border-radius: 50%;\n display: grid;\n place-items: center;\n font-size: 56px;\n font-weight: 800;\n color: #ffffff;\n background: #111827;\n}\n\n.sdk-metag-step-one {\n min-height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n gap: 20px;\n padding: 28px 20px 24px;\n background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);\n}\n\n.sdk-metag-avatar-shell {\n margin: 0 auto;\n width: 112px;\n height: 112px;\n border-radius: 30px;\n display: grid;\n place-items: center;\n background: #eef2ff;\n\n ion-icon {\n font-size: 72px;\n color: #3730a3;\n }\n}\n\n.sdk-metag-title {\n margin: 0;\n text-align: center;\n color: #111827;\n font-size: 28px;\n font-weight: 700;\n letter-spacing: -0.3px;\n}\n\n.sdk-metag-instruction-card {\n padding: 18px 16px;\n border-radius: 20px;\n border: 1px solid #e5e7eb;\n background: #ffffff;\n box-shadow: 0 10px 28px rgba(2, 6, 23, 0.06);\n\n p {\n margin: 0 0 10px;\n color: #374151;\n line-height: 1.45;\n font-size: 14px;\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n}\n\n.sdk-metag-primary-btn {\n margin-top: 4px;\n --background: #2563eb;\n --background-hover: #1d4ed8;\n --background-activated: #1e40af;\n --border-radius: 14px;\n --box-shadow: 0 12px 24px rgba(37, 99, 235, 0.28);\n font-weight: 600;\n}\n\n.sdk-metag-step-two {\n min-height: 100%;\n display: grid;\n grid-template-rows: auto 1fr auto;\n gap: 12px;\n padding: 12px 14px 18px;\n background: #ffffff;\n}\n\n.sdk-metag-player-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n h2 {\n margin: 0;\n color: #0f172a;\n font-size: 20px;\n font-weight: 700;\n letter-spacing: -0.2px;\n }\n}\n\n.sdk-metag-close-btn {\n --color: #334155;\n}\n\n.sdk-metag-player-card {\n display: flex;\n flex-direction: column;\n gap: 12px;\n border-radius: 22px;\n background: #f8fafc;\n border: 1px solid #e2e8f0;\n box-shadow: 0 18px 34px rgba(15, 23, 42, 0.1);\n padding: 14px 14px 16px;\n}\n\n.sdk-metag-camera-frame {\n position: relative;\n width: 100%;\n aspect-ratio: 1 / 1;\n border-radius: 18px;\n overflow: hidden;\n background: #111827;\n\n video {\n width: 100%;\n height: 100%;\n object-fit: cover;\n transform: scaleX(-1);\n }\n}\n\n.sdk-metag-camera-overlay {\n position: absolute;\n inset: 0;\n display: grid;\n place-items: center;\n gap: 10px;\n background: rgba(2, 6, 23, 0.64);\n color: #ffffff;\n font-size: 13px;\n text-align: center;\n}\n\n.sdk-metag-script-current {\n margin: 0;\n color: #0f172a;\n font-size: 18px;\n font-weight: 700;\n line-height: 1.35;\n}\n\n.sdk-metag-script-full {\n margin: 0;\n color: #64748b;\n font-size: 13px;\n line-height: 1.4;\n}\n\n.sdk-metag-progress-meta {\n display: flex;\n justify-content: space-between;\n align-items: center;\n color: #334155;\n font-size: 13px;\n font-weight: 600;\n}\n\n.sdk-metag-player-footer {\n padding-top: 4px;\n}\n\n.sdk-metag-record-btn {\n --background: #e11d48;\n --background-hover: #be123c;\n --background-activated: #9f1239;\n --border-radius: 14px;\n --box-shadow: 0 14px 26px rgba(225, 29, 72, 0.28);\n font-weight: 700;\n}\n"] }]
236
358
  }], () => [{ type: i1.Platform }, { type: i0.ChangeDetectorRef }, { type: i2.ModalDpiServices }, { type: i1.ModalController }], { videoElement: [{
237
359
  type: ViewChild,
238
360
  args: ['videoElement', { static: false }]
239
361
  }], backFunction: [{
240
362
  type: Input
363
+ }], closeRequested: [{
364
+ type: Input
241
365
  }] }); })();
242
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CamaraAcuerdoVideoComponent, { className: "CamaraAcuerdoVideoComponent", filePath: "src\\app\\pages\\id-vision\\components\\camara-acuerdo-video\\camara-acuerdo.video.component.ts", lineNumber: 10 }); })();
366
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CamaraAcuerdoVideoComponent, { className: "CamaraAcuerdoVideoComponent" }); })();
243
367
  //# sourceMappingURL=camara-acuerdo.video.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"camara-acuerdo.video.component.js","sourceRoot":"","sources":["../../../../../../../src/app/pages/id-vision/components/camara-acuerdo-video/camara-acuerdo.video.component.ts","../../../../../../../src/app/pages/id-vision/components/camara-acuerdo-video/camara-acuerdo.video.component.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"camara-acuerdo.video.component.js","sourceRoot":"","sources":["../../../../../../../src/app/pages/id-vision/components/camara-acuerdo-video/camara-acuerdo.video.component.ts","../../../../../../../src/app/pages/id-vision/components/camara-acuerdo-video/camara-acuerdo.video.component.html"],"names":[],"mappings":"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"}