sf-documents 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, Pipe, InjectionToken, EventEmitter, ViewChild, Output, Input, Component, inject, ElementRef } from '@angular/core';
3
+ import { BehaviorSubject } from 'rxjs';
3
4
  import * as i3 from 'primeng/api';
4
5
  import { ConfirmationService } from 'primeng/api';
5
6
  import * as i2$1 from 'primeng/dynamicdialog';
@@ -8,26 +9,30 @@ import { ToastModule } from 'primeng/toast';
8
9
  import * as _ from 'lodash';
9
10
  import * as i1$1 from 'primeng/button';
10
11
  import { ButtonModule } from 'primeng/button';
11
- import * as i5 from 'primeng/confirmdialog';
12
+ import * as i6 from 'primeng/confirmdialog';
12
13
  import { ConfirmDialogModule } from 'primeng/confirmdialog';
13
- import * as i6 from 'primeng/panel';
14
+ import * as i7 from 'primeng/panel';
14
15
  import { PanelModule } from 'primeng/panel';
15
- import * as i7 from 'primeng/checkbox';
16
+ import * as i8 from 'primeng/checkbox';
16
17
  import { CheckboxModule } from 'primeng/checkbox';
17
18
  import * as i2 from 'primeng/dialog';
18
19
  import { DialogModule } from 'primeng/dialog';
19
- import * as i9 from '@angular/common';
20
+ import * as i10 from '@angular/common';
20
21
  import { CommonModule } from '@angular/common';
21
- import * as i10 from '@angular/forms';
22
+ import * as i11 from '@angular/forms';
22
23
  import { FormsModule } from '@angular/forms';
23
24
  import * as i1 from '@angular/platform-browser';
24
- import * as i11 from 'primeng/inputtext';
25
+ import * as i12 from 'primeng/inputtext';
25
26
  import { InputTextModule } from 'primeng/inputtext';
26
27
  import { InputIcon } from 'primeng/inputicon';
27
28
  import { IconField } from 'primeng/iconfield';
28
- import { firstValueFrom } from 'rxjs';
29
29
 
30
30
  class SfDocumentsService {
31
+ _loading = new BehaviorSubject(false);
32
+ loading$ = this._loading.asObservable();
33
+ set loading(loading) {
34
+ this._loading.next(loading);
35
+ }
31
36
  constructor() { }
32
37
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SfDocumentsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
33
38
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SfDocumentsService, providedIn: 'root' });
@@ -74,18 +79,21 @@ class UploadDialogComponent {
74
79
  }
75
80
  fileChange(event) {
76
81
  const input = event.target;
77
- let fileList = input.files;
82
+ if (!input.files?.length)
83
+ return;
84
+ const files = Array.from(input.files);
85
+ const pdfs = files.filter(f => f.type === 'application/pdf' || f.name.toLowerCase().endsWith('.pdf'));
78
86
  const imagePathInput = input.value;
79
- if (fileList?.length)
80
- this.onUploaded.emit({ fileList, tagValue: imagePathInput });
87
+ if (pdfs?.length)
88
+ this.onUploaded.emit({ fileList: pdfs, tagValue: imagePathInput });
81
89
  this.visible = false;
82
90
  }
83
91
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: UploadDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
84
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: UploadDialogComponent, isStandalone: true, selector: "lib-upload-dialog", inputs: { selectedDocument: "selectedDocument" }, outputs: { onUploaded: "onUploaded", loadFile: "loadFile" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true, static: true }], ngImport: i0, template: "<button pButton type=\"button\" label=\"Adicionar\" icon=\"pi pi-plus\"\r\n (click)=\"showDialog()\"></button>\r\n\r\n<p-dialog [header] = \"'Adicionar ' + selectedDocument.label\" [(visible)]=\"visible\" [modal]=\"true\" [style]=\"{ width: '30rem' }\" [breakpoints]=\"{ '1199px': '75vw', '575px': '90vw' }\"\r\nposition = \"top\" [closable]=\"true\" (onHide)=\"visible=false\">\r\n <div class=\"div-table\">\r\n <div class=\"div-table-row\" style=\"text-align: center\">\r\n <input #fileInput type=\"file\" (change)=\"fileChange($event)\" class=\"hidden\"\r\n placeholder=\"Upload file\" multiple>\r\n </div>\r\n <div class=\"div-table-row\" style=\"text-align: center\">\r\n <p-button\r\n icon=\"pi pi-upload\"\r\n (click)=\"loadFileClick()\"\r\n [text] = \"true\"\r\n [rounded]=\"true\"\r\n size=\"large\"\r\n ></p-button>\r\n\r\n <!-- <label *ngIf=\"isMobile\" (click)=\"openModal2(scanContent)\" class=\"btn\">\r\n <mat-icon style=\"font-size: 2.5em; color:#0056b2\">camera_alt</mat-icon>\r\n </label> -->\r\n </div>\r\n </div>\r\n</p-dialog>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i1$1.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "component", type: i1$1.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i2.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }] });
92
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: UploadDialogComponent, isStandalone: true, selector: "lib-upload-dialog", inputs: { selectedDocument: "selectedDocument" }, outputs: { onUploaded: "onUploaded", loadFile: "loadFile" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true, static: true }], ngImport: i0, template: "<button pButton type=\"button\" label=\"Adicionar\" icon=\"pi pi-plus\"\r\n (click)=\"showDialog()\"></button>\r\n\r\n<p-dialog [header] = \"'Adicionar ' + selectedDocument.label\" [(visible)]=\"visible\" [modal]=\"true\" [style]=\"{ width: '30rem' }\" [breakpoints]=\"{ '1199px': '75vw', '575px': '90vw' }\"\r\nposition = \"top\" [closable]=\"true\" (onHide)=\"visible=false\">\r\n <div class=\"mt-3\">\r\n <div class=\"text-center\">\r\n <input #fileInput type=\"file\" (change)=\"fileChange($event)\" class=\"hidden\"\r\n placeholder=\"Upload file\" accept=\"application/pdf,.pdf\" multiple>\r\n </div>\r\n <div class=\"text-center\">\r\n <p-button\r\n icon=\"pi pi-upload\"\r\n (click)=\"loadFileClick()\"\r\n [text] = \"true\"\r\n [rounded]=\"true\"\r\n ></p-button>\r\n\r\n <!-- <label *ngIf=\"isMobile\" (click)=\"openModal2(scanContent)\" class=\"btn\">\r\n <mat-icon style=\"font-size: 2.5em; color:#0056b2\">camera_alt</mat-icon>\r\n </label> -->\r\n </div>\r\n </div>\r\n</p-dialog>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i1$1.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "component", type: i1$1.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i2.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }] });
85
93
  }
86
94
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: UploadDialogComponent, decorators: [{
87
95
  type: Component,
88
- args: [{ selector: 'lib-upload-dialog', imports: [CommonModule, ButtonModule, DialogModule], template: "<button pButton type=\"button\" label=\"Adicionar\" icon=\"pi pi-plus\"\r\n (click)=\"showDialog()\"></button>\r\n\r\n<p-dialog [header] = \"'Adicionar ' + selectedDocument.label\" [(visible)]=\"visible\" [modal]=\"true\" [style]=\"{ width: '30rem' }\" [breakpoints]=\"{ '1199px': '75vw', '575px': '90vw' }\"\r\nposition = \"top\" [closable]=\"true\" (onHide)=\"visible=false\">\r\n <div class=\"div-table\">\r\n <div class=\"div-table-row\" style=\"text-align: center\">\r\n <input #fileInput type=\"file\" (change)=\"fileChange($event)\" class=\"hidden\"\r\n placeholder=\"Upload file\" multiple>\r\n </div>\r\n <div class=\"div-table-row\" style=\"text-align: center\">\r\n <p-button\r\n icon=\"pi pi-upload\"\r\n (click)=\"loadFileClick()\"\r\n [text] = \"true\"\r\n [rounded]=\"true\"\r\n size=\"large\"\r\n ></p-button>\r\n\r\n <!-- <label *ngIf=\"isMobile\" (click)=\"openModal2(scanContent)\" class=\"btn\">\r\n <mat-icon style=\"font-size: 2.5em; color:#0056b2\">camera_alt</mat-icon>\r\n </label> -->\r\n </div>\r\n </div>\r\n</p-dialog>\r\n" }]
96
+ args: [{ selector: 'lib-upload-dialog', imports: [CommonModule, ButtonModule, DialogModule], template: "<button pButton type=\"button\" label=\"Adicionar\" icon=\"pi pi-plus\"\r\n (click)=\"showDialog()\"></button>\r\n\r\n<p-dialog [header] = \"'Adicionar ' + selectedDocument.label\" [(visible)]=\"visible\" [modal]=\"true\" [style]=\"{ width: '30rem' }\" [breakpoints]=\"{ '1199px': '75vw', '575px': '90vw' }\"\r\nposition = \"top\" [closable]=\"true\" (onHide)=\"visible=false\">\r\n <div class=\"mt-3\">\r\n <div class=\"text-center\">\r\n <input #fileInput type=\"file\" (change)=\"fileChange($event)\" class=\"hidden\"\r\n placeholder=\"Upload file\" accept=\"application/pdf,.pdf\" multiple>\r\n </div>\r\n <div class=\"text-center\">\r\n <p-button\r\n icon=\"pi pi-upload\"\r\n (click)=\"loadFileClick()\"\r\n [text] = \"true\"\r\n [rounded]=\"true\"\r\n ></p-button>\r\n\r\n <!-- <label *ngIf=\"isMobile\" (click)=\"openModal2(scanContent)\" class=\"btn\">\r\n <mat-icon style=\"font-size: 2.5em; color:#0056b2\">camera_alt</mat-icon>\r\n </label> -->\r\n </div>\r\n </div>\r\n</p-dialog>\r\n" }]
89
97
  }], ctorParameters: () => [], propDecorators: { selectedDocument: [{
90
98
  type: Input
91
99
  }], onUploaded: [{
@@ -103,6 +111,7 @@ class SfDocumentsComponent {
103
111
  snackBar;
104
112
  appRef;
105
113
  confirmationService;
114
+ documentService;
106
115
  documentsService = inject(DOCUMENT_SERVICE);
107
116
  accion = "";
108
117
  entidad = "";
@@ -147,12 +156,13 @@ class SfDocumentsComponent {
147
156
  UsuarioNdoc;
148
157
  UsuarioTdoc;
149
158
  idKatios;
150
- constructor(sanitizer, dialog, snackBar, appRef, confirmationService) {
159
+ constructor(sanitizer, dialog, snackBar, appRef, confirmationService, documentService) {
151
160
  this.sanitizer = sanitizer;
152
161
  this.dialog = dialog;
153
162
  this.snackBar = snackBar;
154
163
  this.appRef = appRef;
155
164
  this.confirmationService = confirmationService;
165
+ this.documentService = documentService;
156
166
  }
157
167
  ngOnInit() {
158
168
  if (this.oSession != null && this.oSession.UsuarioSistema.TDOC !== undefined && this.oSession.UsuarioSistema.NDOC !== undefined) {
@@ -167,9 +177,18 @@ class SfDocumentsComponent {
167
177
  var data;
168
178
  switch (tipo) {
169
179
  case "1":
170
- this.enProceso = true;
171
- data = { "Accion": this.accion, "Entidad": this.entidad, "IdKatios": this.idKatios, "TDoc": this.tdoc, "NDoc": this.ndoc, "Solicitud": this.Solicitud, "perfilDocumentos": this.perfilDocumentos, "Producto": this.Producto };
172
- this.documentsService.getCarptasByAccion(this.idKatios, data, this.okCargoArbol, this.errorCargarArbol);
180
+ this.documentService.loading = true;
181
+ data = { "action": this.accion, "entity": this.entidad, "tdoc": this.tdoc, "ndoc": this.ndoc, "request": this.Solicitud, "documentProfile": this.perfilDocumentos, "product": this.Producto };
182
+ this.documentsService.getFolders(this.idKatios, data).subscribe({
183
+ next: (response) => {
184
+ const res = response.data.RESPUESTA;
185
+ this.okCargoArbol(res);
186
+ },
187
+ error: (error) => {
188
+ this.documentService.loading = false;
189
+ this.errorCargarArbol(error);
190
+ }
191
+ });
173
192
  this.tab = 1;
174
193
  this.documentoSeleccionado = null;
175
194
  break;
@@ -210,11 +229,11 @@ class SfDocumentsComponent {
210
229
  this.files = iArbol;
211
230
  this.filesFilter = iArbol;
212
231
  this.expandAll();
213
- this.enProceso = false;
232
+ this.documentService.loading = false;
214
233
  };
215
234
  errorCargarArbol = (iError) => {
216
- this.message("Error al traer la información del servidor", "Ups!");
217
- this.enProceso = false;
235
+ this.message("error", "Error al traer la información", iError.message);
236
+ this.documentService.loading = false;
218
237
  };
219
238
  onClickedCheckDelete($event, document) {
220
239
  if ($event.checked)
@@ -227,16 +246,16 @@ class SfDocumentsComponent {
227
246
  if (this.totalDocsEliminadosApi.existoso + this.totalDocsEliminadosApi.fallido === this.docsEliminables.length) {
228
247
  this.cargarParametros(this.tipo);
229
248
  if (this.totalDocsEliminadosApi.fallido > 0)
230
- this.message("Algunos documentos no pudieron ser eliminados", "Entiendo");
249
+ this.message("warn", "", "Algunos documentos no pudieron ser eliminados");
231
250
  else
232
- this.message("Documentos eliminados satisfactoriamente", "");
251
+ this.message("success", "", "Documentos eliminados satisfactoriamente");
233
252
  }
234
253
  };
235
254
  funcErrDelDocumentMasivo = () => {
236
255
  this.totalDocsEliminadosApi.fallido += 1;
237
256
  if (this.totalDocsEliminadosApi.existoso + this.totalDocsEliminadosApi.fallido === this.docsEliminables.length) {
238
257
  this.cargarParametros(this.tipo);
239
- this.message("Algunos documentos no pudieron ser eliminados", "Entiendo");
258
+ this.message("warn", "", "Algunos documentos no pudieron ser eliminados");
240
259
  }
241
260
  };
242
261
  eliminarMasivo() {
@@ -245,11 +264,19 @@ class SfDocumentsComponent {
245
264
  acceptLabel: 'Si',
246
265
  rejectLabel: 'No',
247
266
  accept: () => {
248
- this.enProceso = true;
267
+ this.documentService.loading = true;
249
268
  this.totalDocsEliminadosApi = { existoso: 0, fallido: 0 };
250
269
  this.docsEliminables.forEach(doc => {
251
- let data = { "idKatios": this.idKatios, "codigo": doc.codigo, "estado": "DES" };
252
- this.documentsService.updateEstadoFileSystemByCodigo(data, this.funcOkDelDocumentMasivo, this.funcErrDelDocumentMasivo);
270
+ let data = { "code": doc.codigo, "status": "DES" };
271
+ this.documentsService.updateStatus(this.idKatios, data).subscribe({
272
+ next: (response) => {
273
+ this.funcOkDelDocumentMasivo();
274
+ },
275
+ error: (error) => {
276
+ this.documentService.loading = false;
277
+ this.funcErrDelDocumentMasivo();
278
+ }
279
+ });
253
280
  });
254
281
  }
255
282
  });
@@ -312,12 +339,12 @@ class SfDocumentsComponent {
312
339
  // } else {
313
340
  // this.loadFileToList(file);
314
341
  // }
315
- // this.enProceso = false;
342
+ // this.documentService.loading = false;
316
343
  // })
317
344
  // .catch((error: Error) => {
318
345
  // console.error('Error processing camera image:', error);
319
346
  // this.message("Error al procesar la imagen de la cámara", "Error");
320
- // this.enProceso = false;
347
+ // this.documentService.loading = false;
321
348
  // });
322
349
  // }
323
350
  loadFileToList(file) {
@@ -325,8 +352,8 @@ class SfDocumentsComponent {
325
352
  file["name"] = "scan" + Date.now() + this.scanFileList.length + ".jpg";
326
353
  this.scanFileList.push(file);
327
354
  this.scanFileList = this.scanFileList.slice();
328
- this.enProceso = false;
329
- this.message("Archivo cargado", "");
355
+ this.documentService.loading = false;
356
+ this.message("success", "", "Archivo cargado exitosamente");
330
357
  this.appRef.tick();
331
358
  }, 200);
332
359
  }
@@ -345,7 +372,7 @@ class SfDocumentsComponent {
345
372
  window.FileReader = orig;
346
373
  }
347
374
  makeFileIntoBlob(_imagePath) {
348
- this.enProceso = true;
375
+ this.documentService.loading = true;
349
376
  // INSTALL PLUGIN - cordova plugin add cordova-plugin-file
350
377
  return new Promise((resolve, reject) => {
351
378
  try {
@@ -377,38 +404,39 @@ class SfDocumentsComponent {
377
404
  });
378
405
  }
379
406
  subirImagen(data, fileList) {
380
- this.enProceso = true;
407
+ this.documentService.loading = true;
381
408
  const formData = new FormData();
382
409
  var dataDocs;
383
410
  var sIdKatios = this.idKatios;
384
- let json;
385
- let headers = new Headers();
386
411
  dataDocs = { "data": data };
387
412
  formData.append('data', JSON.stringify(dataDocs));
388
- formData.append('unificar', "true");
413
+ formData.append('merge', "true");
389
414
  for (let _i = 0; _i < fileList.length; _i++) {
390
- formData.append('uploadFile_' + data.id + '_' + _i, fileList[_i], fileList[_i].name);
415
+ formData.append('files', fileList[_i], fileList[_i].name);
391
416
  }
392
- firstValueFrom(this.documentsService.postServiceHttpOptionsDocs(sIdKatios, formData, headers)).then((posts) => {
393
- this.scanFileList = new Array();
394
- if (this.modalReference2) {
395
- this.modalReference2.close();
396
- }
397
- if (this.modalReference) {
398
- this.modalReference.close();
399
- }
400
- this.message("Se almaceno exitosamente el documento", "Felicidades");
401
- this.cargarParametros(this.tipo);
402
- this.enProceso = false;
403
- this.appRef.tick();
404
- }, (err) => {
405
- this.enProceso = false;
406
- this.message("Se presentaron inconvenientes almacenando el documento", "Ups!");
407
- console.error("Error : " + err);
417
+ this.documentsService.uploadFiles(sIdKatios, formData).subscribe({
418
+ next: (response) => {
419
+ this.scanFileList = new Array();
420
+ if (this.modalReference2) {
421
+ this.modalReference2.close();
422
+ }
423
+ if (this.modalReference) {
424
+ this.modalReference.close();
425
+ }
426
+ this.message("success", "Felicidades", "Se almacenó el documento correctamente");
427
+ this.cargarParametros(this.tipo);
428
+ this.documentService.loading = false;
429
+ this.appRef.tick();
430
+ },
431
+ error: (err) => {
432
+ this.documentService.loading = false;
433
+ this.message("error", "Se presentaron inconvenientes almacenando el documento", err.message);
434
+ console.error("Error : " + err);
435
+ },
408
436
  });
409
437
  }
410
438
  generarData(fileList) {
411
- this.enProceso = true;
439
+ this.documentService.loading = true;
412
440
  var sPath1;
413
441
  var dataClientes;
414
442
  let sPaths = "";
@@ -445,7 +473,7 @@ class SfDocumentsComponent {
445
473
  this.scanFileList = new Array();
446
474
  this.documentoSeleccionado = iNodo;
447
475
  }
448
- openDoc(item, pdfContent) {
476
+ async openDoc(item, pdfContent) {
449
477
  if (this.carpetaSeleccionada.TipoArchivo == '1' && this.isMobile) {
450
478
  cordova.InAppBrowser.open(item.Path, '_system', 'location=yes');
451
479
  }
@@ -465,20 +493,20 @@ class SfDocumentsComponent {
465
493
  this.displayPDF = true;
466
494
  }
467
495
  }
468
- openNewWindow(item) {
496
+ async openNewWindow(item) {
469
497
  window.open(item.Path, '_blank').focus();
470
498
  }
471
- seleccionoDocs(iNodo) {
499
+ async seleccionoDocs(iNodo) {
472
500
  var path = iNodo.Path + iNodo.label;
473
- this.pdfUrl = this.server + "//imagenes//" + iNodo.idKatios + "//" + path;
501
+ this.pdfUrl = "//imagenes//" + iNodo.idKatios + "//" + path;
474
502
  this.pdfUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.pdfUrl);
475
- ;
476
503
  this.gotoBottom();
477
504
  }
478
- message(mensaje, tipo) {
505
+ message(severity, summary, message) {
479
506
  this.snackBar.add({
480
- severity: tipo,
481
- summary: mensaje,
507
+ severity: severity,
508
+ summary: summary,
509
+ detail: message,
482
510
  life: 4000
483
511
  });
484
512
  }
@@ -500,7 +528,6 @@ class SfDocumentsComponent {
500
528
  this.docsEliminables = [];
501
529
  this.totalDocsEliminadosApi = { existoso: 0, fallido: 0 };
502
530
  this.carpetaSeleccionada.children.forEach((element) => element.delete = false);
503
- console.log(this.carpetaSeleccionada);
504
531
  this.tab = 2;
505
532
  }
506
533
  isEmptyString(str) {
@@ -511,20 +538,27 @@ class SfDocumentsComponent {
511
538
  this.confirmationService.confirm({
512
539
  message: `¿Desea eliminar el documento?`,
513
540
  accept: () => {
514
- let data = { "idKatios": this.idKatios, "codigo": docEliminar.codigo, "estado": "DES" };
515
- this.documentsService.updateEstadoFileSystemByCodigo(data, funcOkDelDocument, funcErrDelDocument);
541
+ let data = { "code": docEliminar.codigo, "status": "DES" };
542
+ this.documentsService.updateStatus(this.idKatios, data).subscribe({
543
+ next: (response) => {
544
+ funcOkDelDocument();
545
+ },
546
+ error: (error) => {
547
+ this.documentService.loading = false;
548
+ funcErrDelDocument(error);
549
+ }
550
+ });
516
551
  }
517
552
  });
518
553
  }
519
554
  ok_eliminarDocumento = () => {
520
- this.message("Documento eliminado satisfactoriamente", "");
555
+ this.message("success", "", "Documento eliminado satisfactoriamente");
521
556
  if (this.tipo !== undefined) {
522
557
  this.cargarParametros(this.tipo);
523
558
  }
524
559
  };
525
560
  err_eliminarDocumento = (err) => {
526
- this.message("No se pudo eliminar el documento", "Ups!");
527
- console.log(err);
561
+ this.message("error", "No se pudo eliminar el documento", err.message);
528
562
  };
529
563
  goToTab(tab) {
530
564
  this.tab = tab;
@@ -541,7 +575,7 @@ class SfDocumentsComponent {
541
575
  this.nextTabPapa.emit(iValor);
542
576
  }
543
577
  else {
544
- this.message(respuesta, "Ups!");
578
+ this.message("warn", "Ups!", respuesta);
545
579
  }
546
580
  }
547
581
  }
@@ -575,15 +609,15 @@ class SfDocumentsComponent {
575
609
  this.modalReference2.close();
576
610
  }
577
611
  }
578
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SfDocumentsComponent, deps: [{ token: i1.DomSanitizer }, { token: i2$1.DialogService }, { token: i3.MessageService }, { token: i0.ApplicationRef }, { token: i3.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component });
579
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: SfDocumentsComponent, isStandalone: true, selector: "app-sf-documents", inputs: { accion: "accion", entidad: "entidad", ndoc: "ndoc", tdoc: "tdoc", tipo: "tipo", Kasociada: "Kasociada", Producto: "Producto", Solicitud: "Solicitud", oSession: "oSession", perfilDocumentos: "perfilDocumentos", subestado: "subestado", isMobile: "isMobile", bAtras: "bAtras", bFinal: "bFinal", botones: "botones", aplFiltro: "aplFiltro", nmco: "nmco", server: "server", idKatios: "idKatios" }, outputs: { nextTabPapa: "nextTabPapa" }, providers: [DialogService, ConfirmationService], viewQueries: [{ propertyName: "panel", first: true, predicate: ["pdf"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"buttons\" *ngIf=\"botones\">\r\n <div class=\"div-table-col50\" style=\"text-align: center\" *ngIf=\"bAtras\">\r\n <button pButton type=\"button\" label=\"Atras\" icon=\"pi pi-arrow-left\" (click)=\"next(-1)\"></button>\r\n </div>\r\n <div class=\"div-table-col50\" style=\"text-align: center\" *ngIf=\"!bFinal && botones\">\r\n <button pButton type=\"button\" label=\"Siguiente\" icon=\"pi pi-arrow-right\" (click)=\"next(1)\"></button>\r\n </div>\r\n <div class=\"div-table-col50\" *ngIf=\"bFinal\">\r\n <button pButton type=\"button\" label=\"Finalizar\" icon=\"pi pi-home\" (click)=\"next(0)\"></button>\r\n </div>\r\n</div>\r\n<p-iconfield *ngIf=\"aplFiltro\">\r\n <p-inputicon class=\"pi pi-search\" />\r\n <input type=\"text\" pInputText placeholder=\"Busqueda\" [(ngModel)]=\"valorFiltro\" (keyup)=\"filtrarDocumentos()\" class=\"w-full\">\r\n</p-iconfield>\r\n<p-confirmDialog header=\"Atencion\" icon=\"pi pi-exclamation-triangle\"></p-confirmDialog>\r\n<ng-container *ngIf=\"tab==1\" class=\"tablaGestor\">\r\n <ng-container *ngFor=\"let carpeta of filesFilter\" class=\"tablaGestor\">\r\n <p-panel header=\"{{carpeta.label}}\" [style]=\"{'height':'100%'}\">\r\n <ul class=\"contacts\">\r\n <li *ngFor=\"let item of carpeta.children\">\r\n <a (click)=\"VerDetalleTab(item)\">\r\n <span class=\"imagen\" [ngStyle]=\"{'color': item.children?.length > 0 ? 'green':'red' }\"> <i\r\n class=\"{{item.collapsedIcon || 'pi pi-folder'}}\"></i>\r\n </span>\r\n <span class=\"name\">{{item.label}}</span>\r\n <span class=\"email\" *ngIf=\"item.children !== undefined && item.children.length > 0\">Documentos cargados:\r\n {{item.children.length}}</span>\r\n <span class=\"email\" *ngIf=\"item.children?.length === undefined || item.children?.length == 0\">Sin documentos cargados</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </p-panel>\r\n </ng-container>\r\n <ng-container class=\"buttons\" *ngIf=\"botones\">\r\n <div class=\"div-table-col50\" style=\"text-align: center\" *ngIf=\"bAtras\">\r\n <button pButton type=\"button\" label=\"Atras\" icon=\"pi pi-arrow-left\" (click)=\"next(-1)\"></button>\r\n </div>\r\n <div class=\"div-table-col50\" style=\"text-align: center\" *ngIf=\"!bFinal && botones\">\r\n <button pButton type=\"button\" label=\"Siguiente\" icon=\"pi pi-arrow-right\" (click)=\"next(1)\"></button>\r\n </div>\r\n <div class=\"div-table-col50\" *ngIf=\"bFinal\">\r\n <button pButton type=\"button\" label=\"Finalizar\" icon=\"pi pi-home\" (click)=\"next(0)\"></button>\r\n </div>\r\n </ng-container>\r\n</ng-container>\r\n<ng-container *ngIf=\"tab==2\">\r\n <div style=\"margin-block: 15px; display: flex;\">\r\n <button pButton type=\"button\" icon=\"pi pi-arrow-left\" label=\"Volver\" (click)=\"goToTab('1')\"></button>\r\n </div>\r\n <p-panel [header]=\"carpetaSeleccionada.label.replace('#toolbar=0&navpanes=0&statusbar=0','')\"\r\n [style]=\"{'height':'100%'}\">\r\n <ul class=\"contacts\">\r\n <li *ngFor=\"let item of carpetaSeleccionada.children\">\r\n <p-checkbox *ngIf=\"carpetaSeleccionada?.reglas?.permisos?.borrarFront\" [binary]=\"true\" [(ngModel)]=\"item.delete\"\r\n (onChange)=\"onClickedCheckDelete($event, item)\"></p-checkbox>\r\n <a (click)=\"openVisorDoc(item)\">\r\n <span class=\"imagen\" [ngStyle]=\"{'color': item.color }\">\r\n <embed *ngIf=\"carpetaSeleccionada.TipoArchivo == '2'\" class=\"frameDoc\" scrolling=\"no\"\r\n [src]=\"item.Path | safe\" style=\"width:75px; height:90px;\">\r\n <img *ngIf=\"carpetaSeleccionada.TipoArchivo == '1' && isMobile\" class=\"frameDoc\" scrolling=\"no\"\r\n src=\"https://macuna.tecfinanzas.com/Imagenes/pdf_icon.png\" style=\"width:75px; height:90px;\">\r\n <iframe *ngIf=\"carpetaSeleccionada.TipoArchivo == '1' && !isMobile\" class=\"frameDoc\"\r\n style=\"width:85px; height:90px;\" [src]=\"item.Path | safe\" frameborder=\"0\"></iframe>\r\n </span>\r\n <div>\r\n <div>\r\n <span class=\"name\">{{item.label}}</span>\r\n </div>\r\n <div>\r\n <span class=\"Label\" *ngIf=\"item.FechaSubida && !isMobile\">Fecha Subida: {{item.FechaSubida}}</span>\r\n <span class=\"Label\" *ngIf=\"item.FechaSubida && isMobile\">{{item.FechaSubida}}</span>\r\n </div>\r\n </div>\r\n <span class=\"celular\">\r\n <i\r\n class=\"pi pi-external-link text-blue-500 text-2xl cursor-pointer\"\r\n (click)=\"openNewWindow(item); $event.stopPropagation()\"\r\n role=\"button\"\r\n tabindex=\"0\"\r\n aria-label=\"Abrir en una nueva ventana\"\r\n (keydown.enter)=\"openNewWindow(item); $event.stopPropagation()\"\r\n (keydown.space)=\"openNewWindow(item); $event.stopPropagation()\"\r\n ></i>\r\n </span>\r\n </a>\r\n </li>\r\n </ul>\r\n </p-panel>\r\n <div class=\"div-table\" style=\"text-align: center;\">\r\n <div class=\"div-table-row\" style=\"text-align: center;\" class=\"buttons\">\r\n <lib-upload-dialog *ngIf=\"carpetaSeleccionada?.reglas?.permisos?.cargarFront\" [selectedDocument]=\"carpetaSeleccionada\" (onUploaded)=\"fileChange($event)\" (loadFile)=\"cargarArchivo(carpetaSeleccionada)\"></lib-upload-dialog>\r\n <button pButton type=\"button\" label=\"Eliminar\" icon=\"pi pi-trash\"\r\n *ngIf=\"carpetaSeleccionada?.reglas?.permisos?.borrarFront\" (click)=\"eliminarMasivo()\"\r\n [disabled]=\"docsEliminables.length === 0\"></button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"div-table\" style=\"font-size: 5px\">\r\n V1.0.3\r\n </div>\r\n</ng-container>\r\n\r\n<p-dialog *ngIf=\"displayPDF\" [(visible)]=\"displayPDF\"\r\n header=\"{{current_label.replace('#toolbar=0&navpanes=0&statusbar=0','')}}\" [modal]=\"true\" [style]=\"{width: '70vw'}\">\r\n <embed *ngIf=\"carpetaSeleccionada.TipoArchivo == '2'\" [src]=\"current_path | safe\"\r\n style=\"width:100%; min-height: 600px\">\r\n <iframe *ngIf=\"carpetaSeleccionada.TipoArchivo == '1'\" style=\"width:100%; min-height: 600px\"\r\n [src]=\"current_path | safe\"></iframe>\r\n</p-dialog>\r\n\r\n\r\n<ng-template #pdfContent>\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\" id=\"modal-basic-title\">{{current_label.replace('#toolbar=0&navpanes=0&statusbar=0','')}}\r\n </h4>\r\n <button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"modalReference?.close()\">\r\n <span aria-hidden=\"true\">&times;</span>\r\n </button>\r\n </div>\r\n <div>\r\n <embed *ngIf=\"carpetaSeleccionada.TipoArchivo == '2'\" [src]=\"current_path | safe\"\r\n style=\"width:100%; min-height: 600px\">\r\n <iframe *ngIf=\"carpetaSeleccionada.TipoArchivo == '1'\" style=\"width:100%; min-height: 600px\"\r\n [src]=\"current_path | safe\"></iframe>\r\n\r\n </div>\r\n</ng-template>\r\n\r\n<!-- <ng-template #scanContent>\r\n <div class=\"div-table\">\r\n <div class=\"div-table-row\" style=\"text-align: center\">\r\n <h4>Escanear documentos</h4>\r\n </div>\r\n <div class=\"div-table-row\" style=\"text-align: center\">\r\n Archivos cargados: <h4>{{scanFileList.length}}</h4>\r\n </div>\r\n <div class=\"div-table-row\" style=\"text-align: center\">\r\n <label (click)=\"takePhotoClick()\" class=\"btn\">\r\n <mat-icon style=\"font-size: 2.5em; color:#0056b2\">add_to_photos</mat-icon>\r\n </label>\r\n\r\n <label *ngIf=\"scanFileList.length != 0\" (click)=\"subirFotosScan()\" class=\"btn\">\r\n <mat-icon style=\"font-size: 2.5em; color:#0056b2\">share</mat-icon>\r\n </label>\r\n </div>\r\n </div>\r\n</ng-template> -->\r\n\r\n\r\n<div *ngIf=\"enProceso\" id=\"divProceso\" class=\"cCargando\">\r\n <div id=\"divProcesoMsg\" class=\"cCargandoImg\">\r\n <br />\r\n <i style=\"font-size: 50px\" class=\"pi pi-cog pi-spin\"></i>\r\n <br />\r\n </div>\r\n</div>", styles: [".iconWhatsApp{font-size:40px;color:#6495ed}.buttons{display:flex;justify-content:space-around;margin-block:15px}.frameDoc{overflow:hidden;border:none}.contacts{list-style-type:none;padding:0;margin:0}.contacts li{display:flex;border-bottom:1px solid #e3e3e3}.contacts li>p-checkbox{margin-inline:10px}.contacts li a{padding:0;width:100%;height:90px;box-sizing:border-box;text-decoration:none;position:relative;display:flex;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-transition:background-color .2s;-o-transition:background-color .2s;-webkit-transition:background-color .2s;transition:background-color .2s}.contacts li a .name{position:absolute;right:0;top:3px;font-size:18px}.contacts li a .Label{position:absolute;right:0;top:22px;font-size:13px}.contacts li a .email{position:absolute;right:0;top:30px;font-size:14px;color:#a4a4a4}.contacts li a .imagen{height:40px;width:40px;border-radius:50%;font-size:25px;color:#000;top:5px;display:absolute;text-align:left;vertical-align:center}.contacts li a .celular{position:absolute;right:10px;top:45px;font-size:14px;color:#a4a4a4}.contacts li a:hover{cursor:pointer;background-color:#eee}.contacts li:last-child{border:0}@media only screen and (max-width: 656px),(max-device-width: 656px){.contacts li a .name{position:absolute;right:0;top:10px;font-size:15px;width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contacts li>p-checkbox{margin-left:0}.contacts li a .email{position:absolute;right:0;top:30px;font-size:12px;color:#a4a4a4}.contacts li a .imagen{height:40px;width:40px;border-radius:50%;left:0%;font-size:25px;color:#000;top:5px;display:inline-block;text-align:center;vertical-align:center}.contacts li a .celular{position:absolute;right:10px;top:45px;font-size:15px;color:#00f}.tablaGestor{width:100%}}.buttonResponsive,buttonResponsiveBotonFinal{display:inline-block;border-radius:4px;background-color:#00f;border:none;color:#fff;text-align:center;font-size:12px;padding:10px;width:200px;transition:all .5s;cursor:pointer;margin:20px 5px 5px}\n"], dependencies: [{ kind: "ngmodule", type: ToastModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i1$1.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i5.ConfirmDialog, selector: "p-confirmDialog, p-confirmdialog, p-confirm-dialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position", "draggable"], outputs: ["onHide"] }, { kind: "ngmodule", type: PanelModule }, { kind: "component", type: i6.Panel, selector: "p-panel", inputs: ["toggleable", "header", "collapsed", "style", "styleClass", "iconPos", "expandIcon", "collapseIcon", "showHeader", "toggler", "transitionOptions", "toggleButtonProps"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i7.Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["value", "name", "disabled", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "inputStyle", "styleClass", "inputClass", "indeterminate", "size", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "trueValue", "falseValue", "variant"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i2.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i9.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i10.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: SafePipe, name: "safe" }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i11.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "component", type: InputIcon, selector: "p-inputicon, p-inputIcon", inputs: ["styleClass"] }, { kind: "component", type: IconField, selector: "p-iconfield, p-iconField, p-icon-field", inputs: ["iconPosition", "styleClass"] }, { kind: "component", type: UploadDialogComponent, selector: "lib-upload-dialog", inputs: ["selectedDocument"], outputs: ["onUploaded", "loadFile"] }] });
612
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SfDocumentsComponent, deps: [{ token: i1.DomSanitizer }, { token: i2$1.DialogService }, { token: i3.MessageService }, { token: i0.ApplicationRef }, { token: i3.ConfirmationService }, { token: SfDocumentsService }], target: i0.ɵɵFactoryTarget.Component });
613
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: SfDocumentsComponent, isStandalone: true, selector: "app-sf-documents", inputs: { accion: "accion", entidad: "entidad", ndoc: "ndoc", tdoc: "tdoc", tipo: "tipo", Kasociada: "Kasociada", Producto: "Producto", Solicitud: "Solicitud", oSession: "oSession", perfilDocumentos: "perfilDocumentos", subestado: "subestado", isMobile: "isMobile", bAtras: "bAtras", bFinal: "bFinal", botones: "botones", aplFiltro: "aplFiltro", nmco: "nmco", server: "server", idKatios: "idKatios" }, outputs: { nextTabPapa: "nextTabPapa" }, providers: [DialogService, ConfirmationService], viewQueries: [{ propertyName: "panel", first: true, predicate: ["pdf"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"buttons\" *ngIf=\"botones\">\r\n <div class=\"div-table-col50\" style=\"text-align: center\" *ngIf=\"bAtras\">\r\n <button pButton type=\"button\" label=\"Atras\" icon=\"pi pi-arrow-left\" (click)=\"next(-1)\"></button>\r\n </div>\r\n <div class=\"div-table-col50\" style=\"text-align: center\" *ngIf=\"!bFinal && botones\">\r\n <button pButton type=\"button\" label=\"Siguiente\" icon=\"pi pi-arrow-right\" (click)=\"next(1)\"></button>\r\n </div>\r\n <div class=\"div-table-col50\" *ngIf=\"bFinal\">\r\n <button pButton type=\"button\" label=\"Finalizar\" icon=\"pi pi-home\" (click)=\"next(0)\"></button>\r\n </div>\r\n</div>\r\n<p-iconfield *ngIf=\"aplFiltro\">\r\n <p-inputicon class=\"pi pi-search\" />\r\n <input type=\"text\" pInputText placeholder=\"Busqueda\" [(ngModel)]=\"valorFiltro\" (keyup)=\"filtrarDocumentos()\" class=\"w-full\">\r\n</p-iconfield>\r\n<p-confirmDialog header=\"Atencion\" icon=\"pi pi-exclamation-triangle\"></p-confirmDialog>\r\n<ng-container *ngIf=\"tab==1\" class=\"tablaGestor\">\r\n <ng-container *ngFor=\"let carpeta of filesFilter\" class=\"tablaGestor\">\r\n <p-panel header=\"{{carpeta.label}}\" [style]=\"{'height':'100%'}\">\r\n <ul class=\"contacts\">\r\n <li *ngFor=\"let item of carpeta.children\">\r\n <a (click)=\"VerDetalleTab(item)\">\r\n <i class=\"{{item.collapsedIcon || 'pi pi-folder'}} imagen\" [ngStyle]=\"{'color': item.children?.length > 0 ? 'green':'red' }\"></i>\r\n <span class=\"name\">{{item.label}}</span>\r\n <span class=\"email\" *ngIf=\"item.children !== undefined && item.children.length > 0\">Documentos cargados:\r\n {{item.children.length}}</span>\r\n <span class=\"email\" *ngIf=\"item.children?.length === undefined || item.children?.length == 0\">Sin documentos cargados</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </p-panel>\r\n </ng-container>\r\n <ng-container class=\"buttons\" *ngIf=\"botones\">\r\n <div class=\"div-table-col50\" style=\"text-align: center\" *ngIf=\"bAtras\">\r\n <button pButton type=\"button\" label=\"Atras\" icon=\"pi pi-arrow-left\" (click)=\"next(-1)\"></button>\r\n </div>\r\n <div class=\"div-table-col50\" style=\"text-align: center\" *ngIf=\"!bFinal && botones\">\r\n <button pButton type=\"button\" label=\"Siguiente\" icon=\"pi pi-arrow-right\" (click)=\"next(1)\"></button>\r\n </div>\r\n <div class=\"div-table-col50\" *ngIf=\"bFinal\">\r\n <button pButton type=\"button\" label=\"Finalizar\" icon=\"pi pi-home\" (click)=\"next(0)\"></button>\r\n </div>\r\n </ng-container>\r\n</ng-container>\r\n<ng-container *ngIf=\"tab==2\">\r\n <div style=\"margin-block: 15px; display: flex;\">\r\n <button pButton type=\"button\" icon=\"pi pi-arrow-left\" label=\"Volver\" (click)=\"goToTab('1')\"></button>\r\n </div>\r\n <p-panel [header]=\"carpetaSeleccionada.label.replace('#toolbar=0&navpanes=0&statusbar=0','')\"\r\n [style]=\"{'height':'100%'}\">\r\n <ul class=\"contacts\">\r\n <li *ngFor=\"let item of carpetaSeleccionada.children\">\r\n <p-checkbox *ngIf=\"carpetaSeleccionada?.reglas?.permisos?.borrarFront\" [binary]=\"true\" [(ngModel)]=\"item.delete\"\r\n (onChange)=\"onClickedCheckDelete($event, item)\"></p-checkbox>\r\n <a (click)=\"openVisorDoc(item)\">\r\n <span class=\"imagen\" [ngStyle]=\"{'color': item.color }\">\r\n <embed *ngIf=\"carpetaSeleccionada.TipoArchivo == '2'\" class=\"frameDoc\" scrolling=\"no\"\r\n [src]=\"item.Path | safe\" style=\"width:75px; height:90px;\">\r\n <img *ngIf=\"carpetaSeleccionada.TipoArchivo == '1' && isMobile\" class=\"frameDoc\" scrolling=\"no\"\r\n src=\"https://macuna.tecfinanzas.com/Imagenes/pdf_icon.png\" style=\"width:75px; height:90px;\">\r\n <iframe *ngIf=\"carpetaSeleccionada.TipoArchivo == '1' && !isMobile\" class=\"frameDoc\"\r\n style=\"width:85px; height:90px;\" [src]=\"item.Path | safe\" frameborder=\"0\"></iframe>\r\n </span>\r\n <div>\r\n <div>\r\n <span class=\"name\">{{item.label}}</span>\r\n </div>\r\n <div>\r\n <span class=\"Label\" *ngIf=\"item.FechaSubida && !isMobile\">Fecha Subida: {{item.FechaSubida}}</span>\r\n <span class=\"Label\" *ngIf=\"item.FechaSubida && isMobile\">{{item.FechaSubida}}</span>\r\n </div>\r\n </div>\r\n <span class=\"celular\">\r\n <i\r\n class=\"pi pi-external-link text-blue-500 text-2xl cursor-pointer\"\r\n (click)=\"openNewWindow(item); $event.stopPropagation()\"\r\n role=\"button\"\r\n tabindex=\"0\"\r\n aria-label=\"Abrir en una nueva ventana\"\r\n (keydown.enter)=\"openNewWindow(item); $event.stopPropagation()\"\r\n (keydown.space)=\"openNewWindow(item); $event.stopPropagation()\"\r\n ></i>\r\n </span>\r\n </a>\r\n </li>\r\n </ul>\r\n </p-panel>\r\n <div class=\"div-table\" style=\"text-align: center;\">\r\n <div class=\"div-table-row\" style=\"text-align: center;\" class=\"buttons\">\r\n <lib-upload-dialog *ngIf=\"carpetaSeleccionada?.reglas?.permisos?.cargarFront\" [selectedDocument]=\"carpetaSeleccionada\" (onUploaded)=\"fileChange($event)\" (loadFile)=\"cargarArchivo(carpetaSeleccionada)\"></lib-upload-dialog>\r\n <button pButton type=\"button\" label=\"Eliminar\" icon=\"pi pi-trash\"\r\n *ngIf=\"carpetaSeleccionada?.reglas?.permisos?.borrarFront\" (click)=\"eliminarMasivo()\"\r\n [disabled]=\"docsEliminables.length === 0\"></button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"div-table\" style=\"font-size: 5px\">\r\n V1.0.3\r\n </div>\r\n</ng-container>\r\n\r\n<p-dialog *ngIf=\"displayPDF\" [(visible)]=\"displayPDF\"\r\n header=\"{{current_label.replace('#toolbar=0&navpanes=0&statusbar=0','')}}\" [modal]=\"true\" [style]=\"{width: '70vw'}\">\r\n <embed *ngIf=\"carpetaSeleccionada.TipoArchivo == '2'\" [src]=\"current_path | safe\"\r\n style=\"width:100%; min-height: 600px\">\r\n <iframe *ngIf=\"carpetaSeleccionada.TipoArchivo == '1'\" style=\"width:100%; min-height: 600px\"\r\n [src]=\"current_path | safe\"></iframe>\r\n</p-dialog>\r\n\r\n\r\n<ng-template #pdfContent>\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\" id=\"modal-basic-title\">{{current_label.replace('#toolbar=0&navpanes=0&statusbar=0','')}}\r\n </h4>\r\n <button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"modalReference?.close()\">\r\n <span aria-hidden=\"true\">&times;</span>\r\n </button>\r\n </div>\r\n <div>\r\n <embed *ngIf=\"carpetaSeleccionada.TipoArchivo == '2'\" [src]=\"current_path | safe\"\r\n style=\"width:100%; min-height: 600px\">\r\n <iframe *ngIf=\"carpetaSeleccionada.TipoArchivo == '1'\" style=\"width:100%; min-height: 600px\"\r\n [src]=\"current_path | safe\"></iframe>\r\n\r\n </div>\r\n</ng-template>\r\n\r\n<!-- <ng-template #scanContent>\r\n <div class=\"div-table\">\r\n <div class=\"div-table-row\" style=\"text-align: center\">\r\n <h4>Escanear documentos</h4>\r\n </div>\r\n <div class=\"div-table-row\" style=\"text-align: center\">\r\n Archivos cargados: <h4>{{scanFileList.length}}</h4>\r\n </div>\r\n <div class=\"div-table-row\" style=\"text-align: center\">\r\n <label (click)=\"takePhotoClick()\" class=\"btn\">\r\n <mat-icon style=\"font-size: 2.5em; color:#0056b2\">add_to_photos</mat-icon>\r\n </label>\r\n\r\n <label *ngIf=\"scanFileList.length != 0\" (click)=\"subirFotosScan()\" class=\"btn\">\r\n <mat-icon style=\"font-size: 2.5em; color:#0056b2\">share</mat-icon>\r\n </label>\r\n </div>\r\n </div>\r\n</ng-template> -->\r\n\r\n\r\n", styles: [".iconWhatsApp{font-size:40px;color:#6495ed}.buttons{display:flex;justify-content:space-around;margin-block:15px}.frameDoc{overflow:hidden;border:none}.contacts{list-style-type:none;padding:0;margin:0}.contacts li{display:flex;border-bottom:1px solid #e3e3e3}.contacts li>p-checkbox{margin-inline:10px}.contacts li a{padding:0;width:100%;height:90px;box-sizing:border-box;text-decoration:none;position:relative;display:flex;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-transition:background-color .2s;-o-transition:background-color .2s;-webkit-transition:background-color .2s;transition:background-color .2s}.contacts li a .name{position:absolute;right:0;top:3px;font-size:18px}.contacts li a .Label{position:absolute;right:0;top:22px;font-size:13px}.contacts li a .email{position:absolute;right:0;top:30px;font-size:14px;color:#a4a4a4}.contacts li a .imagen{height:40px;width:40px;border-radius:50%;font-size:25px;color:#000;top:5px;display:absolute;text-align:left;vertical-align:center}.contacts li a .celular{position:absolute;right:10px;top:45px;font-size:14px;color:#a4a4a4}.contacts li a:hover{cursor:pointer;background-color:#eee}.contacts li:last-child{border:0}@media only screen and (max-width: 656px),(max-device-width: 656px){.contacts li a .name{position:absolute;right:0;top:10px;font-size:15px;width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contacts li>p-checkbox{margin-left:0}.contacts li a .email{position:absolute;right:0;top:30px;font-size:12px;color:#a4a4a4}.contacts li a .imagen{height:40px;width:40px;border-radius:50%;left:0%;font-size:25px;color:#000;top:5px;display:inline-block;text-align:center;vertical-align:center}.contacts li a .celular{position:absolute;right:10px;top:45px;font-size:15px;color:#00f}.tablaGestor{width:100%}}.buttonResponsive,buttonResponsiveBotonFinal{display:inline-block;border-radius:4px;background-color:#00f;border:none;color:#fff;text-align:center;font-size:12px;padding:10px;width:200px;transition:all .5s;cursor:pointer;margin:20px 5px 5px}\n"], dependencies: [{ kind: "ngmodule", type: ToastModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i1$1.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i6.ConfirmDialog, selector: "p-confirmDialog, p-confirmdialog, p-confirm-dialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position", "draggable"], outputs: ["onHide"] }, { kind: "ngmodule", type: PanelModule }, { kind: "component", type: i7.Panel, selector: "p-panel", inputs: ["toggleable", "header", "collapsed", "style", "styleClass", "iconPos", "expandIcon", "collapseIcon", "showHeader", "toggler", "transitionOptions", "toggleButtonProps"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i8.Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["value", "name", "disabled", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "inputStyle", "styleClass", "inputClass", "indeterminate", "size", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "trueValue", "falseValue", "variant"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i2.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i10.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i11.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: SafePipe, name: "safe" }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i12.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "component", type: InputIcon, selector: "p-inputicon, p-inputIcon", inputs: ["styleClass"] }, { kind: "component", type: IconField, selector: "p-iconfield, p-iconField, p-icon-field", inputs: ["iconPosition", "styleClass"] }, { kind: "component", type: UploadDialogComponent, selector: "lib-upload-dialog", inputs: ["selectedDocument"], outputs: ["onUploaded", "loadFile"] }] });
580
614
  }
581
615
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SfDocumentsComponent, decorators: [{
582
616
  type: Component,
583
617
  args: [{ selector: 'app-sf-documents', imports: [ToastModule, ButtonModule, ConfirmDialogModule, PanelModule, CheckboxModule, DialogModule, CommonModule, FormsModule, SafePipe, InputTextModule, InputIcon,
584
618
  IconField, UploadDialogComponent
585
- ], providers: [DialogService, ConfirmationService], standalone: true, template: "<div class=\"buttons\" *ngIf=\"botones\">\r\n <div class=\"div-table-col50\" style=\"text-align: center\" *ngIf=\"bAtras\">\r\n <button pButton type=\"button\" label=\"Atras\" icon=\"pi pi-arrow-left\" (click)=\"next(-1)\"></button>\r\n </div>\r\n <div class=\"div-table-col50\" style=\"text-align: center\" *ngIf=\"!bFinal && botones\">\r\n <button pButton type=\"button\" label=\"Siguiente\" icon=\"pi pi-arrow-right\" (click)=\"next(1)\"></button>\r\n </div>\r\n <div class=\"div-table-col50\" *ngIf=\"bFinal\">\r\n <button pButton type=\"button\" label=\"Finalizar\" icon=\"pi pi-home\" (click)=\"next(0)\"></button>\r\n </div>\r\n</div>\r\n<p-iconfield *ngIf=\"aplFiltro\">\r\n <p-inputicon class=\"pi pi-search\" />\r\n <input type=\"text\" pInputText placeholder=\"Busqueda\" [(ngModel)]=\"valorFiltro\" (keyup)=\"filtrarDocumentos()\" class=\"w-full\">\r\n</p-iconfield>\r\n<p-confirmDialog header=\"Atencion\" icon=\"pi pi-exclamation-triangle\"></p-confirmDialog>\r\n<ng-container *ngIf=\"tab==1\" class=\"tablaGestor\">\r\n <ng-container *ngFor=\"let carpeta of filesFilter\" class=\"tablaGestor\">\r\n <p-panel header=\"{{carpeta.label}}\" [style]=\"{'height':'100%'}\">\r\n <ul class=\"contacts\">\r\n <li *ngFor=\"let item of carpeta.children\">\r\n <a (click)=\"VerDetalleTab(item)\">\r\n <span class=\"imagen\" [ngStyle]=\"{'color': item.children?.length > 0 ? 'green':'red' }\"> <i\r\n class=\"{{item.collapsedIcon || 'pi pi-folder'}}\"></i>\r\n </span>\r\n <span class=\"name\">{{item.label}}</span>\r\n <span class=\"email\" *ngIf=\"item.children !== undefined && item.children.length > 0\">Documentos cargados:\r\n {{item.children.length}}</span>\r\n <span class=\"email\" *ngIf=\"item.children?.length === undefined || item.children?.length == 0\">Sin documentos cargados</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </p-panel>\r\n </ng-container>\r\n <ng-container class=\"buttons\" *ngIf=\"botones\">\r\n <div class=\"div-table-col50\" style=\"text-align: center\" *ngIf=\"bAtras\">\r\n <button pButton type=\"button\" label=\"Atras\" icon=\"pi pi-arrow-left\" (click)=\"next(-1)\"></button>\r\n </div>\r\n <div class=\"div-table-col50\" style=\"text-align: center\" *ngIf=\"!bFinal && botones\">\r\n <button pButton type=\"button\" label=\"Siguiente\" icon=\"pi pi-arrow-right\" (click)=\"next(1)\"></button>\r\n </div>\r\n <div class=\"div-table-col50\" *ngIf=\"bFinal\">\r\n <button pButton type=\"button\" label=\"Finalizar\" icon=\"pi pi-home\" (click)=\"next(0)\"></button>\r\n </div>\r\n </ng-container>\r\n</ng-container>\r\n<ng-container *ngIf=\"tab==2\">\r\n <div style=\"margin-block: 15px; display: flex;\">\r\n <button pButton type=\"button\" icon=\"pi pi-arrow-left\" label=\"Volver\" (click)=\"goToTab('1')\"></button>\r\n </div>\r\n <p-panel [header]=\"carpetaSeleccionada.label.replace('#toolbar=0&navpanes=0&statusbar=0','')\"\r\n [style]=\"{'height':'100%'}\">\r\n <ul class=\"contacts\">\r\n <li *ngFor=\"let item of carpetaSeleccionada.children\">\r\n <p-checkbox *ngIf=\"carpetaSeleccionada?.reglas?.permisos?.borrarFront\" [binary]=\"true\" [(ngModel)]=\"item.delete\"\r\n (onChange)=\"onClickedCheckDelete($event, item)\"></p-checkbox>\r\n <a (click)=\"openVisorDoc(item)\">\r\n <span class=\"imagen\" [ngStyle]=\"{'color': item.color }\">\r\n <embed *ngIf=\"carpetaSeleccionada.TipoArchivo == '2'\" class=\"frameDoc\" scrolling=\"no\"\r\n [src]=\"item.Path | safe\" style=\"width:75px; height:90px;\">\r\n <img *ngIf=\"carpetaSeleccionada.TipoArchivo == '1' && isMobile\" class=\"frameDoc\" scrolling=\"no\"\r\n src=\"https://macuna.tecfinanzas.com/Imagenes/pdf_icon.png\" style=\"width:75px; height:90px;\">\r\n <iframe *ngIf=\"carpetaSeleccionada.TipoArchivo == '1' && !isMobile\" class=\"frameDoc\"\r\n style=\"width:85px; height:90px;\" [src]=\"item.Path | safe\" frameborder=\"0\"></iframe>\r\n </span>\r\n <div>\r\n <div>\r\n <span class=\"name\">{{item.label}}</span>\r\n </div>\r\n <div>\r\n <span class=\"Label\" *ngIf=\"item.FechaSubida && !isMobile\">Fecha Subida: {{item.FechaSubida}}</span>\r\n <span class=\"Label\" *ngIf=\"item.FechaSubida && isMobile\">{{item.FechaSubida}}</span>\r\n </div>\r\n </div>\r\n <span class=\"celular\">\r\n <i\r\n class=\"pi pi-external-link text-blue-500 text-2xl cursor-pointer\"\r\n (click)=\"openNewWindow(item); $event.stopPropagation()\"\r\n role=\"button\"\r\n tabindex=\"0\"\r\n aria-label=\"Abrir en una nueva ventana\"\r\n (keydown.enter)=\"openNewWindow(item); $event.stopPropagation()\"\r\n (keydown.space)=\"openNewWindow(item); $event.stopPropagation()\"\r\n ></i>\r\n </span>\r\n </a>\r\n </li>\r\n </ul>\r\n </p-panel>\r\n <div class=\"div-table\" style=\"text-align: center;\">\r\n <div class=\"div-table-row\" style=\"text-align: center;\" class=\"buttons\">\r\n <lib-upload-dialog *ngIf=\"carpetaSeleccionada?.reglas?.permisos?.cargarFront\" [selectedDocument]=\"carpetaSeleccionada\" (onUploaded)=\"fileChange($event)\" (loadFile)=\"cargarArchivo(carpetaSeleccionada)\"></lib-upload-dialog>\r\n <button pButton type=\"button\" label=\"Eliminar\" icon=\"pi pi-trash\"\r\n *ngIf=\"carpetaSeleccionada?.reglas?.permisos?.borrarFront\" (click)=\"eliminarMasivo()\"\r\n [disabled]=\"docsEliminables.length === 0\"></button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"div-table\" style=\"font-size: 5px\">\r\n V1.0.3\r\n </div>\r\n</ng-container>\r\n\r\n<p-dialog *ngIf=\"displayPDF\" [(visible)]=\"displayPDF\"\r\n header=\"{{current_label.replace('#toolbar=0&navpanes=0&statusbar=0','')}}\" [modal]=\"true\" [style]=\"{width: '70vw'}\">\r\n <embed *ngIf=\"carpetaSeleccionada.TipoArchivo == '2'\" [src]=\"current_path | safe\"\r\n style=\"width:100%; min-height: 600px\">\r\n <iframe *ngIf=\"carpetaSeleccionada.TipoArchivo == '1'\" style=\"width:100%; min-height: 600px\"\r\n [src]=\"current_path | safe\"></iframe>\r\n</p-dialog>\r\n\r\n\r\n<ng-template #pdfContent>\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\" id=\"modal-basic-title\">{{current_label.replace('#toolbar=0&navpanes=0&statusbar=0','')}}\r\n </h4>\r\n <button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"modalReference?.close()\">\r\n <span aria-hidden=\"true\">&times;</span>\r\n </button>\r\n </div>\r\n <div>\r\n <embed *ngIf=\"carpetaSeleccionada.TipoArchivo == '2'\" [src]=\"current_path | safe\"\r\n style=\"width:100%; min-height: 600px\">\r\n <iframe *ngIf=\"carpetaSeleccionada.TipoArchivo == '1'\" style=\"width:100%; min-height: 600px\"\r\n [src]=\"current_path | safe\"></iframe>\r\n\r\n </div>\r\n</ng-template>\r\n\r\n<!-- <ng-template #scanContent>\r\n <div class=\"div-table\">\r\n <div class=\"div-table-row\" style=\"text-align: center\">\r\n <h4>Escanear documentos</h4>\r\n </div>\r\n <div class=\"div-table-row\" style=\"text-align: center\">\r\n Archivos cargados: <h4>{{scanFileList.length}}</h4>\r\n </div>\r\n <div class=\"div-table-row\" style=\"text-align: center\">\r\n <label (click)=\"takePhotoClick()\" class=\"btn\">\r\n <mat-icon style=\"font-size: 2.5em; color:#0056b2\">add_to_photos</mat-icon>\r\n </label>\r\n\r\n <label *ngIf=\"scanFileList.length != 0\" (click)=\"subirFotosScan()\" class=\"btn\">\r\n <mat-icon style=\"font-size: 2.5em; color:#0056b2\">share</mat-icon>\r\n </label>\r\n </div>\r\n </div>\r\n</ng-template> -->\r\n\r\n\r\n<div *ngIf=\"enProceso\" id=\"divProceso\" class=\"cCargando\">\r\n <div id=\"divProcesoMsg\" class=\"cCargandoImg\">\r\n <br />\r\n <i style=\"font-size: 50px\" class=\"pi pi-cog pi-spin\"></i>\r\n <br />\r\n </div>\r\n</div>", styles: [".iconWhatsApp{font-size:40px;color:#6495ed}.buttons{display:flex;justify-content:space-around;margin-block:15px}.frameDoc{overflow:hidden;border:none}.contacts{list-style-type:none;padding:0;margin:0}.contacts li{display:flex;border-bottom:1px solid #e3e3e3}.contacts li>p-checkbox{margin-inline:10px}.contacts li a{padding:0;width:100%;height:90px;box-sizing:border-box;text-decoration:none;position:relative;display:flex;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-transition:background-color .2s;-o-transition:background-color .2s;-webkit-transition:background-color .2s;transition:background-color .2s}.contacts li a .name{position:absolute;right:0;top:3px;font-size:18px}.contacts li a .Label{position:absolute;right:0;top:22px;font-size:13px}.contacts li a .email{position:absolute;right:0;top:30px;font-size:14px;color:#a4a4a4}.contacts li a .imagen{height:40px;width:40px;border-radius:50%;font-size:25px;color:#000;top:5px;display:absolute;text-align:left;vertical-align:center}.contacts li a .celular{position:absolute;right:10px;top:45px;font-size:14px;color:#a4a4a4}.contacts li a:hover{cursor:pointer;background-color:#eee}.contacts li:last-child{border:0}@media only screen and (max-width: 656px),(max-device-width: 656px){.contacts li a .name{position:absolute;right:0;top:10px;font-size:15px;width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contacts li>p-checkbox{margin-left:0}.contacts li a .email{position:absolute;right:0;top:30px;font-size:12px;color:#a4a4a4}.contacts li a .imagen{height:40px;width:40px;border-radius:50%;left:0%;font-size:25px;color:#000;top:5px;display:inline-block;text-align:center;vertical-align:center}.contacts li a .celular{position:absolute;right:10px;top:45px;font-size:15px;color:#00f}.tablaGestor{width:100%}}.buttonResponsive,buttonResponsiveBotonFinal{display:inline-block;border-radius:4px;background-color:#00f;border:none;color:#fff;text-align:center;font-size:12px;padding:10px;width:200px;transition:all .5s;cursor:pointer;margin:20px 5px 5px}\n"] }]
586
- }], ctorParameters: () => [{ type: i1.DomSanitizer }, { type: i2$1.DialogService }, { type: i3.MessageService }, { type: i0.ApplicationRef }, { type: i3.ConfirmationService }], propDecorators: { accion: [{
619
+ ], providers: [DialogService, ConfirmationService], standalone: true, template: "<div class=\"buttons\" *ngIf=\"botones\">\r\n <div class=\"div-table-col50\" style=\"text-align: center\" *ngIf=\"bAtras\">\r\n <button pButton type=\"button\" label=\"Atras\" icon=\"pi pi-arrow-left\" (click)=\"next(-1)\"></button>\r\n </div>\r\n <div class=\"div-table-col50\" style=\"text-align: center\" *ngIf=\"!bFinal && botones\">\r\n <button pButton type=\"button\" label=\"Siguiente\" icon=\"pi pi-arrow-right\" (click)=\"next(1)\"></button>\r\n </div>\r\n <div class=\"div-table-col50\" *ngIf=\"bFinal\">\r\n <button pButton type=\"button\" label=\"Finalizar\" icon=\"pi pi-home\" (click)=\"next(0)\"></button>\r\n </div>\r\n</div>\r\n<p-iconfield *ngIf=\"aplFiltro\">\r\n <p-inputicon class=\"pi pi-search\" />\r\n <input type=\"text\" pInputText placeholder=\"Busqueda\" [(ngModel)]=\"valorFiltro\" (keyup)=\"filtrarDocumentos()\" class=\"w-full\">\r\n</p-iconfield>\r\n<p-confirmDialog header=\"Atencion\" icon=\"pi pi-exclamation-triangle\"></p-confirmDialog>\r\n<ng-container *ngIf=\"tab==1\" class=\"tablaGestor\">\r\n <ng-container *ngFor=\"let carpeta of filesFilter\" class=\"tablaGestor\">\r\n <p-panel header=\"{{carpeta.label}}\" [style]=\"{'height':'100%'}\">\r\n <ul class=\"contacts\">\r\n <li *ngFor=\"let item of carpeta.children\">\r\n <a (click)=\"VerDetalleTab(item)\">\r\n <i class=\"{{item.collapsedIcon || 'pi pi-folder'}} imagen\" [ngStyle]=\"{'color': item.children?.length > 0 ? 'green':'red' }\"></i>\r\n <span class=\"name\">{{item.label}}</span>\r\n <span class=\"email\" *ngIf=\"item.children !== undefined && item.children.length > 0\">Documentos cargados:\r\n {{item.children.length}}</span>\r\n <span class=\"email\" *ngIf=\"item.children?.length === undefined || item.children?.length == 0\">Sin documentos cargados</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </p-panel>\r\n </ng-container>\r\n <ng-container class=\"buttons\" *ngIf=\"botones\">\r\n <div class=\"div-table-col50\" style=\"text-align: center\" *ngIf=\"bAtras\">\r\n <button pButton type=\"button\" label=\"Atras\" icon=\"pi pi-arrow-left\" (click)=\"next(-1)\"></button>\r\n </div>\r\n <div class=\"div-table-col50\" style=\"text-align: center\" *ngIf=\"!bFinal && botones\">\r\n <button pButton type=\"button\" label=\"Siguiente\" icon=\"pi pi-arrow-right\" (click)=\"next(1)\"></button>\r\n </div>\r\n <div class=\"div-table-col50\" *ngIf=\"bFinal\">\r\n <button pButton type=\"button\" label=\"Finalizar\" icon=\"pi pi-home\" (click)=\"next(0)\"></button>\r\n </div>\r\n </ng-container>\r\n</ng-container>\r\n<ng-container *ngIf=\"tab==2\">\r\n <div style=\"margin-block: 15px; display: flex;\">\r\n <button pButton type=\"button\" icon=\"pi pi-arrow-left\" label=\"Volver\" (click)=\"goToTab('1')\"></button>\r\n </div>\r\n <p-panel [header]=\"carpetaSeleccionada.label.replace('#toolbar=0&navpanes=0&statusbar=0','')\"\r\n [style]=\"{'height':'100%'}\">\r\n <ul class=\"contacts\">\r\n <li *ngFor=\"let item of carpetaSeleccionada.children\">\r\n <p-checkbox *ngIf=\"carpetaSeleccionada?.reglas?.permisos?.borrarFront\" [binary]=\"true\" [(ngModel)]=\"item.delete\"\r\n (onChange)=\"onClickedCheckDelete($event, item)\"></p-checkbox>\r\n <a (click)=\"openVisorDoc(item)\">\r\n <span class=\"imagen\" [ngStyle]=\"{'color': item.color }\">\r\n <embed *ngIf=\"carpetaSeleccionada.TipoArchivo == '2'\" class=\"frameDoc\" scrolling=\"no\"\r\n [src]=\"item.Path | safe\" style=\"width:75px; height:90px;\">\r\n <img *ngIf=\"carpetaSeleccionada.TipoArchivo == '1' && isMobile\" class=\"frameDoc\" scrolling=\"no\"\r\n src=\"https://macuna.tecfinanzas.com/Imagenes/pdf_icon.png\" style=\"width:75px; height:90px;\">\r\n <iframe *ngIf=\"carpetaSeleccionada.TipoArchivo == '1' && !isMobile\" class=\"frameDoc\"\r\n style=\"width:85px; height:90px;\" [src]=\"item.Path | safe\" frameborder=\"0\"></iframe>\r\n </span>\r\n <div>\r\n <div>\r\n <span class=\"name\">{{item.label}}</span>\r\n </div>\r\n <div>\r\n <span class=\"Label\" *ngIf=\"item.FechaSubida && !isMobile\">Fecha Subida: {{item.FechaSubida}}</span>\r\n <span class=\"Label\" *ngIf=\"item.FechaSubida && isMobile\">{{item.FechaSubida}}</span>\r\n </div>\r\n </div>\r\n <span class=\"celular\">\r\n <i\r\n class=\"pi pi-external-link text-blue-500 text-2xl cursor-pointer\"\r\n (click)=\"openNewWindow(item); $event.stopPropagation()\"\r\n role=\"button\"\r\n tabindex=\"0\"\r\n aria-label=\"Abrir en una nueva ventana\"\r\n (keydown.enter)=\"openNewWindow(item); $event.stopPropagation()\"\r\n (keydown.space)=\"openNewWindow(item); $event.stopPropagation()\"\r\n ></i>\r\n </span>\r\n </a>\r\n </li>\r\n </ul>\r\n </p-panel>\r\n <div class=\"div-table\" style=\"text-align: center;\">\r\n <div class=\"div-table-row\" style=\"text-align: center;\" class=\"buttons\">\r\n <lib-upload-dialog *ngIf=\"carpetaSeleccionada?.reglas?.permisos?.cargarFront\" [selectedDocument]=\"carpetaSeleccionada\" (onUploaded)=\"fileChange($event)\" (loadFile)=\"cargarArchivo(carpetaSeleccionada)\"></lib-upload-dialog>\r\n <button pButton type=\"button\" label=\"Eliminar\" icon=\"pi pi-trash\"\r\n *ngIf=\"carpetaSeleccionada?.reglas?.permisos?.borrarFront\" (click)=\"eliminarMasivo()\"\r\n [disabled]=\"docsEliminables.length === 0\"></button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"div-table\" style=\"font-size: 5px\">\r\n V1.0.3\r\n </div>\r\n</ng-container>\r\n\r\n<p-dialog *ngIf=\"displayPDF\" [(visible)]=\"displayPDF\"\r\n header=\"{{current_label.replace('#toolbar=0&navpanes=0&statusbar=0','')}}\" [modal]=\"true\" [style]=\"{width: '70vw'}\">\r\n <embed *ngIf=\"carpetaSeleccionada.TipoArchivo == '2'\" [src]=\"current_path | safe\"\r\n style=\"width:100%; min-height: 600px\">\r\n <iframe *ngIf=\"carpetaSeleccionada.TipoArchivo == '1'\" style=\"width:100%; min-height: 600px\"\r\n [src]=\"current_path | safe\"></iframe>\r\n</p-dialog>\r\n\r\n\r\n<ng-template #pdfContent>\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\" id=\"modal-basic-title\">{{current_label.replace('#toolbar=0&navpanes=0&statusbar=0','')}}\r\n </h4>\r\n <button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"modalReference?.close()\">\r\n <span aria-hidden=\"true\">&times;</span>\r\n </button>\r\n </div>\r\n <div>\r\n <embed *ngIf=\"carpetaSeleccionada.TipoArchivo == '2'\" [src]=\"current_path | safe\"\r\n style=\"width:100%; min-height: 600px\">\r\n <iframe *ngIf=\"carpetaSeleccionada.TipoArchivo == '1'\" style=\"width:100%; min-height: 600px\"\r\n [src]=\"current_path | safe\"></iframe>\r\n\r\n </div>\r\n</ng-template>\r\n\r\n<!-- <ng-template #scanContent>\r\n <div class=\"div-table\">\r\n <div class=\"div-table-row\" style=\"text-align: center\">\r\n <h4>Escanear documentos</h4>\r\n </div>\r\n <div class=\"div-table-row\" style=\"text-align: center\">\r\n Archivos cargados: <h4>{{scanFileList.length}}</h4>\r\n </div>\r\n <div class=\"div-table-row\" style=\"text-align: center\">\r\n <label (click)=\"takePhotoClick()\" class=\"btn\">\r\n <mat-icon style=\"font-size: 2.5em; color:#0056b2\">add_to_photos</mat-icon>\r\n </label>\r\n\r\n <label *ngIf=\"scanFileList.length != 0\" (click)=\"subirFotosScan()\" class=\"btn\">\r\n <mat-icon style=\"font-size: 2.5em; color:#0056b2\">share</mat-icon>\r\n </label>\r\n </div>\r\n </div>\r\n</ng-template> -->\r\n\r\n\r\n", styles: [".iconWhatsApp{font-size:40px;color:#6495ed}.buttons{display:flex;justify-content:space-around;margin-block:15px}.frameDoc{overflow:hidden;border:none}.contacts{list-style-type:none;padding:0;margin:0}.contacts li{display:flex;border-bottom:1px solid #e3e3e3}.contacts li>p-checkbox{margin-inline:10px}.contacts li a{padding:0;width:100%;height:90px;box-sizing:border-box;text-decoration:none;position:relative;display:flex;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-transition:background-color .2s;-o-transition:background-color .2s;-webkit-transition:background-color .2s;transition:background-color .2s}.contacts li a .name{position:absolute;right:0;top:3px;font-size:18px}.contacts li a .Label{position:absolute;right:0;top:22px;font-size:13px}.contacts li a .email{position:absolute;right:0;top:30px;font-size:14px;color:#a4a4a4}.contacts li a .imagen{height:40px;width:40px;border-radius:50%;font-size:25px;color:#000;top:5px;display:absolute;text-align:left;vertical-align:center}.contacts li a .celular{position:absolute;right:10px;top:45px;font-size:14px;color:#a4a4a4}.contacts li a:hover{cursor:pointer;background-color:#eee}.contacts li:last-child{border:0}@media only screen and (max-width: 656px),(max-device-width: 656px){.contacts li a .name{position:absolute;right:0;top:10px;font-size:15px;width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contacts li>p-checkbox{margin-left:0}.contacts li a .email{position:absolute;right:0;top:30px;font-size:12px;color:#a4a4a4}.contacts li a .imagen{height:40px;width:40px;border-radius:50%;left:0%;font-size:25px;color:#000;top:5px;display:inline-block;text-align:center;vertical-align:center}.contacts li a .celular{position:absolute;right:10px;top:45px;font-size:15px;color:#00f}.tablaGestor{width:100%}}.buttonResponsive,buttonResponsiveBotonFinal{display:inline-block;border-radius:4px;background-color:#00f;border:none;color:#fff;text-align:center;font-size:12px;padding:10px;width:200px;transition:all .5s;cursor:pointer;margin:20px 5px 5px}\n"] }]
620
+ }], ctorParameters: () => [{ type: i1.DomSanitizer }, { type: i2$1.DialogService }, { type: i3.MessageService }, { type: i0.ApplicationRef }, { type: i3.ConfirmationService }, { type: SfDocumentsService }], propDecorators: { accion: [{
587
621
  type: Input
588
622
  }], entidad: [{
589
623
  type: Input
@@ -1 +1 @@
1
- {"version":3,"file":"sf-documents.mjs","sources":["../../../projects/sf-documents/src/lib/sf-documents.service.ts","../../../projects/sf-documents/src/lib/pipes/safe.pipe.ts","../../../projects/sf-documents/src/lib/gateways/document.port.ts","../../../projects/sf-documents/src/dialog/upload-dialog/upload-dialog.component.ts","../../../projects/sf-documents/src/dialog/upload-dialog/upload-dialog.component.html","../../../projects/sf-documents/src/lib/sf-documents.component.ts","../../../projects/sf-documents/src/lib/sf-documents.component.html","../../../projects/sf-documents/src/public-api.ts","../../../projects/sf-documents/src/sf-documents.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SfDocumentsService {\r\n\r\n constructor() { }\r\n}\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\n\r\n@Pipe({ name: 'safe' })\r\n\r\nexport class SafePipe implements PipeTransform {\r\n\r\n constructor(private sanitizer: DomSanitizer) { }\r\n transform(url:any) {\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\r\n }\r\n}","import { InjectionToken } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nexport interface DocumentGatewayService{\r\n getCarptasByAccion(idKatios: string, data: any, okCallback: any, errorCallback: any): Promise<any>;\r\n updateEstadoFileSystemByCodigo(data: any, okCallback: any, errorCallback: any): Promise<any>;\r\n postServiceHttpOptionsDocs(idKatios: string, formData: FormData, headers: any): Observable<any>;\r\n}\r\n\r\nexport const DOCUMENT_SERVICE = new InjectionToken<DocumentGatewayService>('DOCUMENT_SERVICE');","import { CommonModule } from '@angular/common';\r\nimport { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { DialogModule } from 'primeng/dialog';\r\n\r\n@Component({\r\n selector: 'lib-upload-dialog',\r\n imports: [CommonModule, ButtonModule, DialogModule],\r\n templateUrl: './upload-dialog.component.html',\r\n styleUrl: './upload-dialog.component.css'\r\n})\r\nexport class UploadDialogComponent {\r\n @Input() selectedDocument: any;\r\n @Output() onUploaded = new EventEmitter<{ fileList: FileList, tagValue: any }>();\r\n @Output() loadFile = new EventEmitter<void>();\r\n visible: boolean = false;\r\n @ViewChild('fileInput', { static: true })\r\n fileInput!: ElementRef<HTMLInputElement>;\r\n\r\n constructor() { }\r\n\r\n showDialog(){\r\n this.loadFile.emit();\r\n this.visible = true;\r\n }\r\n loadFileClick() {\r\n this.fileInput.nativeElement.value = '';\r\n this.fileInput.nativeElement.click();\r\n }\r\n fileChange(event: any) {\r\n const input = event.target as HTMLInputElement;\r\n let fileList = input.files as FileList | null;\r\n const imagePathInput = input.value;\r\n if(fileList?.length) this.onUploaded.emit({ fileList, tagValue: imagePathInput });\r\n this.visible = false;\r\n }\r\n\r\n}\r\n","<button pButton type=\"button\" label=\"Adicionar\" icon=\"pi pi-plus\"\r\n (click)=\"showDialog()\"></button>\r\n\r\n<p-dialog [header] = \"'Adicionar ' + selectedDocument.label\" [(visible)]=\"visible\" [modal]=\"true\" [style]=\"{ width: '30rem' }\" [breakpoints]=\"{ '1199px': '75vw', '575px': '90vw' }\"\r\nposition = \"top\" [closable]=\"true\" (onHide)=\"visible=false\">\r\n <div class=\"div-table\">\r\n <div class=\"div-table-row\" style=\"text-align: center\">\r\n <input #fileInput type=\"file\" (change)=\"fileChange($event)\" class=\"hidden\"\r\n placeholder=\"Upload file\" multiple>\r\n </div>\r\n <div class=\"div-table-row\" style=\"text-align: center\">\r\n <p-button\r\n icon=\"pi pi-upload\"\r\n (click)=\"loadFileClick()\"\r\n [text] = \"true\"\r\n [rounded]=\"true\"\r\n size=\"large\"\r\n ></p-button>\r\n\r\n <!-- <label *ngIf=\"isMobile\" (click)=\"openModal2(scanContent)\" class=\"btn\">\r\n <mat-icon style=\"font-size: 2.5em; color:#0056b2\">camera_alt</mat-icon>\r\n </label> -->\r\n </div>\r\n </div>\r\n</p-dialog>\r\n","import { ApplicationRef, Component, ElementRef, EventEmitter, inject, Input, OnChanges, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ConfirmationService, MessageService, TreeNode } from 'primeng/api';\r\nimport { DialogService, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { ToastModule } from 'primeng/toast';\r\n\r\nimport * as _ from \"lodash\";\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { PanelModule } from 'primeng/panel';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SafePipe } from './pipes/safe.pipe';\r\nimport { DOCUMENT_SERVICE, DocumentGatewayService } from './gateways/document.port';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { InputIcon } from 'primeng/inputicon';\r\nimport { IconField } from 'primeng/iconfield';\r\nimport { UploadDialogComponent } from '../dialog/upload-dialog/upload-dialog.component';\r\nimport { firstValueFrom } from 'rxjs';\r\n\r\ndeclare var cordova: any;\r\ndeclare var window: any;\r\n\r\n@Component({\r\n selector: 'app-sf-documents',\r\n imports: [ToastModule, ButtonModule, ConfirmDialogModule,PanelModule,CheckboxModule, DialogModule, CommonModule, FormsModule,SafePipe, InputTextModule, InputIcon,\r\n IconField, UploadDialogComponent\r\n ],\r\n templateUrl: './sf-documents.component.html',\r\n styleUrls: ['./sf-documents.component.scss'],\r\n providers: [DialogService, ConfirmationService],\r\n standalone: true\r\n})\r\nexport class SfDocumentsComponent implements OnDestroy, OnInit{\r\n private documentsService = inject<DocumentGatewayService>(DOCUMENT_SERVICE);\r\n @Input() accion: string = \"\";\r\n @Input() entidad: string = \"\";\r\n @Input() ndoc: string = \"\";\r\n @Input() tdoc: string = \"\";\r\n @Input() tipo: string = \"\";\r\n //Información necesaria para cargar documentos de productos\r\n @Input() Kasociada: string = \"\";\r\n @Input() Producto: string = \"\";\r\n @Input() Solicitud: string = \"\";\r\n @Input() oSession: any;\r\n @Input() perfilDocumentos: any;\r\n @Input() subestado: string = '';\r\n @Input() isMobile: boolean = false;\r\n @Output() nextTabPapa: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n @Input() bAtras: boolean = false;\r\n @Input() bFinal: boolean = false;\r\n @Input() botones: boolean = true;\r\n @Input() aplFiltro: boolean = false;\r\n\r\n @Input() nmco: string[] = [];\r\n\r\n @Input() server: string = \"\";\r\n valorFiltro: string = \"\";\r\n\r\n tab = 1;\r\n enProceso = false;\r\n carpetaSeleccionada: any;\r\n files: any;\r\n filesFilter: any;\r\n imagePathInput: any;\r\n modalReference: DynamicDialogRef | undefined;\r\n modalReference2: DynamicDialogRef | undefined;\r\n documentoSeleccionado: any;\r\n docsEliminables: any[] = [];\r\n totalDocsEliminadosApi = {existoso: 0, fallido: 0};\r\n file: any;\r\n urlDoc: any;\r\n pdfUrl: any;\r\n current_path: string = \"\";\r\n current_label: string = \"\";\r\n scanFileList = new Array<any>();\r\n displayPDF: boolean = false;\r\n\r\n @ViewChild('pdf', { read: ElementRef }) public panel!: ElementRef<any>;\r\n UsuarioNdoc: any;\r\n UsuarioTdoc: any;\r\n @Input() idKatios: any;\r\n constructor(\r\n private sanitizer: DomSanitizer,\r\n private dialog: DialogService,\r\n public snackBar: MessageService,\r\n private appRef: ApplicationRef,\r\n private confirmationService: ConfirmationService\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (this.oSession != null && this.oSession.UsuarioSistema.TDOC !== undefined && this.oSession.UsuarioSistema.NDOC !== undefined) {\r\n this.idKatios = this.oSession.UsuarioSistema.IDKATIOS.trim();\r\n this.perfilDocumentos = this.oSession.UsuarioSistema.PERDOCUMENTOS.trim();\r\n } \r\n if (this.tipo && this.perfilDocumentos) {\r\n this.cargarParametros(this.tipo)\r\n }\r\n }\r\n\r\n cargarParametros(tipo: string) {\r\n var data;\r\n switch (tipo) {\r\n case \"1\":\r\n this.enProceso = true;\r\n data = { \"Accion\": this.accion, \"Entidad\": this.entidad, \"IdKatios\": this.idKatios, \"TDoc\": this.tdoc, \"NDoc\": this.ndoc, \"Solicitud\": this.Solicitud, \"perfilDocumentos\": this.perfilDocumentos,\"Producto\": this.Producto }\r\n this.documentsService.getCarptasByAccion(this.idKatios, data, this.okCargoArbol, this.errorCargarArbol)\r\n this.tab = 1\r\n this.documentoSeleccionado = null\r\n break;\r\n }\r\n }\r\n\r\n expandAll() {\r\n this.files.forEach((node: any) => {\r\n this.expandRecursive(node, true);\r\n });\r\n }\r\n\r\n private expandRecursive(node: TreeNode, isExpand: boolean) {\r\n node.expanded = isExpand;\r\n var objeto: any;\r\n objeto = node\r\n if (node.children && node.children?.length > 0) {\r\n node.children.forEach(childNode => {\r\n this.expandRecursive(childNode, isExpand);\r\n });\r\n } else if (objeto.Path !== undefined) {\r\n var path = 'Imagenes/' + objeto.Path + objeto.label\r\n var re = /[\\\\]/gi;\r\n path = path.replace(re, \"/\")\r\n objeto.Path = this.server + path\r\n //this.sanitizer.bypassSecurityTrustUrl(this.server + path)\r\n }\r\n }\r\n \r\n public okCargoArbol = (iArbol: any) => {\r\n if (iArbol.CARPETA.length === undefined) {\r\n iArbol = new Array(iArbol.CARPETA)\r\n }\r\n\r\n iArbol.forEach((element: any) => {\r\n this.convertirArrayChildren(element)\r\n });\r\n\r\n //\r\n this.filtrarTipoDocumento(iArbol)\r\n //\r\n this.files = iArbol;\r\n this.filesFilter = iArbol;\r\n this.expandAll();\r\n this.enProceso = false;\r\n }\r\n public errorCargarArbol = (iError: any) => {\r\n this.message(\"Error al traer la información del servidor\", \"Ups!\")\r\n this.enProceso = false;\r\n }\r\n\r\n onClickedCheckDelete($event: any, document: any) {\r\n if ($event.checked) this.docsEliminables.push(document);\r\n else this.docsEliminables = this.docsEliminables.filter(doc => doc !== document);\r\n }\r\n\r\n funcOkDelDocumentMasivo = () => {\r\n this.totalDocsEliminadosApi.existoso += 1;\r\n if (this.totalDocsEliminadosApi.existoso + this.totalDocsEliminadosApi.fallido === this.docsEliminables.length) {\r\n this.cargarParametros(this.tipo);\r\n if ( this.totalDocsEliminadosApi.fallido > 0) this.message(\"Algunos documentos no pudieron ser eliminados\", \"Entiendo\");\r\n else this.message(\"Documentos eliminados satisfactoriamente\", \"\");\r\n\r\n }\r\n }\r\n\r\n funcErrDelDocumentMasivo = () => {\r\n this.totalDocsEliminadosApi.fallido += 1;\r\n if (this.totalDocsEliminadosApi.existoso + this.totalDocsEliminadosApi.fallido === this.docsEliminables.length) {\r\n this.cargarParametros(this.tipo);\r\n this.message(\"Algunos documentos no pudieron ser eliminados\", \"Entiendo\");\r\n }\r\n }\r\n\r\n eliminarMasivo(){\r\n this.confirmationService.confirm({\r\n message: `¿Desea eliminar los ${this.docsEliminables.length} documentos seleccionados?`,\r\n acceptLabel: 'Si',\r\n rejectLabel: 'No',\r\n accept: () => {\r\n this.enProceso = true\r\n this.totalDocsEliminadosApi = {existoso: 0, fallido: 0};\r\n this.docsEliminables.forEach(doc => {\r\n let data = { \"idKatios\": this.idKatios, \"codigo\": doc.codigo, \"estado\": \"DES\" };\r\n this.documentsService.updateEstadoFileSystemByCodigo(data, this.funcOkDelDocumentMasivo, this.funcErrDelDocumentMasivo);\r\n })\r\n }\r\n });\r\n }\r\n\r\n filtrarTipoDocumento(iArbol: any){\r\n if(this.nmco.length !== 0){\r\n iArbol.forEach((element: any) => {\r\n element.children = element.children.filter((child: any) => this.nmco.includes(child.NMCo));\r\n })\r\n }\r\n }\r\n\r\n convertirArrayChildren(node: any) {\r\n if (node.children === undefined) node.children = []\r\n else if (node.children.length == undefined) {\r\n node.children = new Array(node.children)\r\n }\r\n node.children.forEach((childNode: any) => {\r\n this.convertirArrayChildren(childNode);\r\n });\r\n\r\n }\r\n openBigModal(content: any) {\r\n this.modalReference = this.dialog.open(content, { \r\n width: '70%',\r\n modal: true,\r\n closable: true\r\n });\r\n this.modalReference.onClose.subscribe((result: any) => {\r\n //this.closeResult = `Closed with: ${result}`;\r\n });\r\n // this.modalReference.onHide.subscribe(() => {\r\n // //this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\r\n // });\r\n }\r\n\r\n openModal2(content: any) {\r\n this.modalReference2 = this.dialog.open(content,{});\r\n this.modalReference2.onClose.subscribe((result: any) => {\r\n //this.closeResult = `Closed with: ${result}`;\r\n });\r\n }\r\n\r\n\r\n // takePhotoClick() {\r\n // this.documentsService.openCamera(this.ok_openCamera, this.error_openCamera);\r\n // }\r\n /////Cuando se cargar archivos adjuntos\r\n fileChange(data: any) {\r\n const fileList = data.fileList;\r\n const tagValue = data.tagValue;\r\n this.file = fileList[0];\r\n this.imagePathInput = tagValue;\r\n this.generarData(fileList);\r\n }\r\n\r\n // ok_openCamera = (imageUri: any) => {\r\n // this.makeFileIntoBlob(imageUri)\r\n // .then((file: Blob) => {\r\n // this.appRef.tick();\r\n // if (file.size > 1000000) {\r\n // if (confirm(\"Este archivo es bastate pesado, le recomendamos bajar la calidad de la cámara. ¿Desea subir este archivo?\")) {\r\n // this.loadFileToList(file);\r\n // }\r\n // } else {\r\n // this.loadFileToList(file);\r\n // }\r\n // this.enProceso = false;\r\n // })\r\n // .catch((error: Error) => {\r\n // console.error('Error processing camera image:', error);\r\n // this.message(\"Error al procesar la imagen de la cámara\", \"Error\");\r\n // this.enProceso = false;\r\n // });\r\n // }\r\n\r\n loadFileToList(file: any) {\r\n\r\n setTimeout(() => {\r\n file[\"name\"] = \"scan\" + Date.now() + this.scanFileList.length + \".jpg\"\r\n this.scanFileList.push(file);\r\n this.scanFileList = this.scanFileList.slice();\r\n this.enProceso = false\r\n this.message(\"Archivo cargado\", \"\")\r\n\r\n this.appRef.tick();\r\n }, 200)\r\n }\r\n\r\n subirFotosScan() {\r\n this.generarData(this.scanFileList);\r\n }\r\n // error_openCamera = (err: any) => {\r\n // console.log(err);\r\n // this.message(\"No se pudo acceder a la camara\", \"Error\")\r\n // }\r\n\r\n noZonePatch(cb: () => void) {\r\n const orig = FileReader;\r\n const unpatched = ((window as any).FileReader as any).__zone_symbol__OriginalDelegate;\r\n (window as any).FileReader = unpatched;\r\n cb();\r\n (window as any).FileReader = orig;\r\n }\r\n\r\n makeFileIntoBlob(_imagePath: any): Promise<Blob> {\r\n this.enProceso = true;\r\n // INSTALL PLUGIN - cordova plugin add cordova-plugin-file\r\n return new Promise((resolve, reject) => {\r\n try {\r\n window.resolveLocalFileSystemURL(_imagePath, (fileEntry: any) => {\r\n fileEntry.file((resFile: any) => {\r\n this.noZonePatch(() => {//! Alert 1: Comentarear esta linea y una de de abajo para ambiente de prueba\r\n var reader = new FileReader();\r\n\r\n reader.onloadend = (evt: any) => {\r\n var imgBlob: any = new Blob([evt.target.result], { type: 'image/jpeg' });\r\n imgBlob.name = 'scan.jpg';\r\n resolve(imgBlob);\r\n };\r\n\r\n reader.onerror = (e) => {\r\n console.log('Failed file read: ' + e.toString());\r\n reject(e);\r\n };\r\n reader.readAsArrayBuffer(resFile);\r\n });//!Comentarear esta linea y una de de arriba para ambiente de prueba\r\n });\r\n }, (error: any) => {\r\n console.error('Error resolving file system URL:', error);\r\n reject(error);\r\n });\r\n } catch (ex) {\r\n console.error('Error in makeFileIntoBlob:', ex);\r\n reject(ex);\r\n }\r\n });\r\n }\r\n\r\n subirImagen(data: any, fileList: any) {\r\n this.enProceso = true;\r\n const formData: FormData = new FormData();\r\n var dataDocs;\r\n var sIdKatios = this.idKatios;\r\n let json;\r\n let headers = new Headers()\r\n dataDocs = { \"data\": data };\r\n formData.append('data', JSON.stringify(dataDocs));\r\n formData.append('unificar', \"true\");\r\n\r\n for (let _i = 0; _i < fileList.length; _i++) {\r\n formData.append('uploadFile_' + data.id + '_' + _i, fileList[_i], fileList[_i].name);\r\n }\r\n\r\n firstValueFrom(this.documentsService.postServiceHttpOptionsDocs(sIdKatios, formData, headers)).then((posts: any) => {\r\n this.scanFileList = new Array<any>();\r\n if (this.modalReference2) {\r\n this.modalReference2.close();\r\n }\r\n if(this.modalReference) {\r\n this.modalReference.close();\r\n }\r\n this.message(\"Se almaceno exitosamente el documento\", \"Felicidades\")\r\n this.cargarParametros(this.tipo)\r\n this.enProceso = false;\r\n this.appRef.tick();\r\n },\r\n\r\n (err: any) => {\r\n this.enProceso = false;\r\n this.message(\"Se presentaron inconvenientes almacenando el documento\", \"Ups!\")\r\n console.error(\"Error : \" + err);\r\n },\r\n );\r\n }\r\n\r\n generarData(fileList: any) {\r\n this.enProceso = true\r\n var sPath1;\r\n var dataClientes\r\n let sPaths = \"\";\r\n if (this.documentoSeleccionado.Tipo.trim().toUpperCase() == \"PERSONA\") {\r\n sPath1 = this.documentoSeleccionado.Tipo.trim() + \"\\\\\" + this.tdoc.trim() +\r\n \"\\\\\" + this.ndoc.trim() + \"\\\\Cliente\\\\\" + this.documentoSeleccionado.NMCo.trim();\r\n } else {\r\n //Kasociada\r\n //producto\r\n //Falta numero de solicitud\r\n\r\n\r\n\r\n sPath1 = this.documentoSeleccionado.Tipo.trim() + \"\\\\\" + this.Kasociada +\r\n \"\\\\\" + this.Producto + \"\\\\\" + this.Solicitud + \"\\\\\" + this.documentoSeleccionado.NMCo;\r\n }\r\n\r\n dataClientes = {\r\n \"Tipo\": this.documentoSeleccionado.Tipo,\r\n \"id\": \"1\",\r\n \"documento\": this.documentoSeleccionado.NMCo,\r\n \"tdoc\": this.tdoc.trim(),\r\n \"ndoc\": this.ndoc.trim(),\r\n \"IdProducto\": this.Solicitud,\r\n \"TipoProducto\": this.Producto,\r\n \"Kasociada\": this.Kasociada,\r\n \"archivoUpload\": fileList[0],\r\n \"nombre\": this.tdoc.trim() + '-' + this.ndoc.trim(),\r\n \"fileCargado\": fileList[0],\r\n \"pathArchivo\": sPath1,\r\n \"TipoArchivo\": this.documentoSeleccionado.TipoArchivo\r\n }\r\n sPaths = sPaths + sPath1 + \",\";\r\n this.subirImagen(dataClientes, fileList)\r\n }\r\n\r\n cargarArchivo(iNodo: any) {\r\n this.scanFileList = new Array<any>();\r\n this.documentoSeleccionado = iNodo;\r\n }\r\n\r\n openDoc(item: any, pdfContent: any) {\r\n if (this.carpetaSeleccionada.TipoArchivo == '1' && this.isMobile) {\r\n cordova.InAppBrowser.open(item.Path, '_system', 'location=yes');\r\n } else {\r\n this.current_path = item.Path;\r\n this.current_label = item.label;\r\n this.openBigModal(pdfContent);\r\n }\r\n }\r\n\r\n openVisorDoc(item: any) {\r\n if (this.carpetaSeleccionada.TipoArchivo == '1' && this.isMobile) {//is mobile\r\n cordova.InAppBrowser.open(item.Path, '_system', 'location=yes');\r\n } else {\r\n this.current_path = item.Path;\r\n this.current_label = item.label;\r\n this.displayPDF = true;\r\n }\r\n }\r\n\r\n openNewWindow(item: any) {\r\n window.open(item.Path, '_blank').focus();\r\n }\r\n\r\n seleccionoDocs(iNodo: any) {\r\n var path = iNodo.Path + iNodo.label\r\n this.pdfUrl = this.server + \"//imagenes//\" + iNodo.idKatios + \"//\" + path;\r\n this.pdfUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.pdfUrl);;\r\n this.gotoBottom();\r\n }\r\n\r\n\r\n message(mensaje: any, tipo: any) {\r\n this.snackBar.add({\r\n severity: tipo,\r\n summary: mensaje,\r\n life: 4000\r\n });\r\n }\r\n\r\n\r\n public gotoBottom(): void {\r\n window.scrollBy(0, this.panel.nativeElement.scrollHeight)\r\n }\r\n\r\n\r\n public VerDetalleTab(items: any) {\r\n if(items?.reglas && typeof(items.reglas) == 'string') items.reglas = JSON.parse(items.reglas);\r\n if (!items?.reglas?.permisos?.subestados && items?.reglas?.permisos){\r\n items.reglas.permisos.cargarFront = items.reglas.permisos.cargar;\r\n items.reglas.permisos.borrarFront = items.reglas.permisos.borrar;\r\n }\r\n else if (items?.reglas?.permisos?.subestados && !this.isEmptyString(this.subestado)){\r\n items.reglas.permisos.cargarFront = Array.isArray(items.reglas.permisos.subestados.cargar) ? items.reglas.permisos.subestados.cargar.map((c: any) => c.toLowerCase().trim()).includes(this.subestado.toLowerCase().trim()): items.reglas.permisos.cargar;\r\n items.reglas.permisos.borrarFront = Array.isArray(items.reglas.permisos.subestados.borrar) ? items.reglas.permisos.subestados.borrar.map((b: any) => b.toLowerCase().trim()).includes(this.subestado.toLowerCase().trim()): items.reglas.permisos.borrar;\r\n }\r\n this.carpetaSeleccionada = items\r\n this.docsEliminables = []\r\n this.totalDocsEliminadosApi = {existoso: 0, fallido: 0};\r\n this.carpetaSeleccionada.children.forEach((element: any) => element.delete = false);\r\n console.log(this.carpetaSeleccionada)\r\n this.tab = 2\r\n }\r\n\r\n private isEmptyString(str: string): boolean {\r\n return str === undefined || str === null || str.trim() === '';\r\n }\r\n\r\n eliminarDocumento(docEliminar: any, e: any, funcOkDelDocument=this.ok_eliminarDocumento, funcErrDelDocument=this.err_eliminarDocumento) {\r\n e.stopPropagation();\r\n this.confirmationService.confirm({\r\n message: `¿Desea eliminar el documento?`,\r\n accept: () => {\r\n let data = { \"idKatios\": this.idKatios, \"codigo\": docEliminar.codigo, \"estado\": \"DES\" };\r\n this.documentsService.updateEstadoFileSystemByCodigo(data, funcOkDelDocument, funcErrDelDocument);\r\n }\r\n });\r\n }\r\n ok_eliminarDocumento = () => {\r\n this.message(\"Documento eliminado satisfactoriamente\", \"\");\r\n\r\n if (this.tipo !== undefined) {\r\n this.cargarParametros(this.tipo)\r\n }\r\n }\r\n err_eliminarDocumento = (err: any) => {\r\n this.message(\"No se pudo eliminar el documento\", \"Ups!\");\r\n console.log(err);\r\n }\r\n\r\n goToTab(tab: any) {\r\n this.tab = tab;\r\n }\r\n\r\n next(iValor: any) {\r\n if (iValor < 0) {\r\n this.nextTabPapa.emit(iValor)\r\n } else {\r\n var respuesta = \"\"\r\n if (this.files) respuesta = this.valorDocumentosPendientes(this.files[0])\r\n\r\n if (respuesta == \"\") {\r\n this.nextTabPapa.emit(iValor)\r\n } else {\r\n this.message(respuesta, \"Ups!\");\r\n }\r\n }\r\n }\r\n\r\n valorDocumentosPendientes(carpetas: any) {\r\n\r\n var respuesta = \"\";\r\n if (carpetas.children) {\r\n carpetas.children.forEach((carpeta: any) => {\r\n\r\n if (carpeta.Obligatorio == 1 && (!carpeta.children || carpeta.children.length == 0)) respuesta = \"Falta \" + carpeta.label\r\n })\r\n }\r\n return respuesta\r\n\r\n }\r\n\r\n filtrarDocumentos() {\r\n this.filesFilter = _.cloneDeep(this.files);\r\n for (let i = 0; i < this.files.length; i++) {\r\n let node = [];\r\n for (let j = 0; j < this.files[i].children.length; j++) {\r\n let file = this.files[i].children[j];\r\n if (file.label.toLowerCase().indexOf(this.valorFiltro.toLowerCase()) == 0) node.push(file)\r\n }\r\n this.filesFilter[i].children = node;\r\n }\r\n }\r\n ngOnDestroy() {\r\n if (this.modalReference) {\r\n this.modalReference.close();\r\n }\r\n if(this.modalReference2) {\r\n this.modalReference2.close();\r\n }\r\n }\r\n}\r\n","<div class=\"buttons\" *ngIf=\"botones\">\r\n <div class=\"div-table-col50\" style=\"text-align: center\" *ngIf=\"bAtras\">\r\n <button pButton type=\"button\" label=\"Atras\" icon=\"pi pi-arrow-left\" (click)=\"next(-1)\"></button>\r\n </div>\r\n <div class=\"div-table-col50\" style=\"text-align: center\" *ngIf=\"!bFinal && botones\">\r\n <button pButton type=\"button\" label=\"Siguiente\" icon=\"pi pi-arrow-right\" (click)=\"next(1)\"></button>\r\n </div>\r\n <div class=\"div-table-col50\" *ngIf=\"bFinal\">\r\n <button pButton type=\"button\" label=\"Finalizar\" icon=\"pi pi-home\" (click)=\"next(0)\"></button>\r\n </div>\r\n</div>\r\n<p-iconfield *ngIf=\"aplFiltro\">\r\n <p-inputicon class=\"pi pi-search\" />\r\n <input type=\"text\" pInputText placeholder=\"Busqueda\" [(ngModel)]=\"valorFiltro\" (keyup)=\"filtrarDocumentos()\" class=\"w-full\">\r\n</p-iconfield>\r\n<p-confirmDialog header=\"Atencion\" icon=\"pi pi-exclamation-triangle\"></p-confirmDialog>\r\n<ng-container *ngIf=\"tab==1\" class=\"tablaGestor\">\r\n <ng-container *ngFor=\"let carpeta of filesFilter\" class=\"tablaGestor\">\r\n <p-panel header=\"{{carpeta.label}}\" [style]=\"{'height':'100%'}\">\r\n <ul class=\"contacts\">\r\n <li *ngFor=\"let item of carpeta.children\">\r\n <a (click)=\"VerDetalleTab(item)\">\r\n <span class=\"imagen\" [ngStyle]=\"{'color': item.children?.length > 0 ? 'green':'red' }\"> <i\r\n class=\"{{item.collapsedIcon || 'pi pi-folder'}}\"></i>\r\n </span>\r\n <span class=\"name\">{{item.label}}</span>\r\n <span class=\"email\" *ngIf=\"item.children !== undefined && item.children.length > 0\">Documentos cargados:\r\n {{item.children.length}}</span>\r\n <span class=\"email\" *ngIf=\"item.children?.length === undefined || item.children?.length == 0\">Sin documentos cargados</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </p-panel>\r\n </ng-container>\r\n <ng-container class=\"buttons\" *ngIf=\"botones\">\r\n <div class=\"div-table-col50\" style=\"text-align: center\" *ngIf=\"bAtras\">\r\n <button pButton type=\"button\" label=\"Atras\" icon=\"pi pi-arrow-left\" (click)=\"next(-1)\"></button>\r\n </div>\r\n <div class=\"div-table-col50\" style=\"text-align: center\" *ngIf=\"!bFinal && botones\">\r\n <button pButton type=\"button\" label=\"Siguiente\" icon=\"pi pi-arrow-right\" (click)=\"next(1)\"></button>\r\n </div>\r\n <div class=\"div-table-col50\" *ngIf=\"bFinal\">\r\n <button pButton type=\"button\" label=\"Finalizar\" icon=\"pi pi-home\" (click)=\"next(0)\"></button>\r\n </div>\r\n </ng-container>\r\n</ng-container>\r\n<ng-container *ngIf=\"tab==2\">\r\n <div style=\"margin-block: 15px; display: flex;\">\r\n <button pButton type=\"button\" icon=\"pi pi-arrow-left\" label=\"Volver\" (click)=\"goToTab('1')\"></button>\r\n </div>\r\n <p-panel [header]=\"carpetaSeleccionada.label.replace('#toolbar=0&navpanes=0&statusbar=0','')\"\r\n [style]=\"{'height':'100%'}\">\r\n <ul class=\"contacts\">\r\n <li *ngFor=\"let item of carpetaSeleccionada.children\">\r\n <p-checkbox *ngIf=\"carpetaSeleccionada?.reglas?.permisos?.borrarFront\" [binary]=\"true\" [(ngModel)]=\"item.delete\"\r\n (onChange)=\"onClickedCheckDelete($event, item)\"></p-checkbox>\r\n <a (click)=\"openVisorDoc(item)\">\r\n <span class=\"imagen\" [ngStyle]=\"{'color': item.color }\">\r\n <embed *ngIf=\"carpetaSeleccionada.TipoArchivo == '2'\" class=\"frameDoc\" scrolling=\"no\"\r\n [src]=\"item.Path | safe\" style=\"width:75px; height:90px;\">\r\n <img *ngIf=\"carpetaSeleccionada.TipoArchivo == '1' && isMobile\" class=\"frameDoc\" scrolling=\"no\"\r\n src=\"https://macuna.tecfinanzas.com/Imagenes/pdf_icon.png\" style=\"width:75px; height:90px;\">\r\n <iframe *ngIf=\"carpetaSeleccionada.TipoArchivo == '1' && !isMobile\" class=\"frameDoc\"\r\n style=\"width:85px; height:90px;\" [src]=\"item.Path | safe\" frameborder=\"0\"></iframe>\r\n </span>\r\n <div>\r\n <div>\r\n <span class=\"name\">{{item.label}}</span>\r\n </div>\r\n <div>\r\n <span class=\"Label\" *ngIf=\"item.FechaSubida && !isMobile\">Fecha Subida: {{item.FechaSubida}}</span>\r\n <span class=\"Label\" *ngIf=\"item.FechaSubida && isMobile\">{{item.FechaSubida}}</span>\r\n </div>\r\n </div>\r\n <span class=\"celular\">\r\n <i\r\n class=\"pi pi-external-link text-blue-500 text-2xl cursor-pointer\"\r\n (click)=\"openNewWindow(item); $event.stopPropagation()\"\r\n role=\"button\"\r\n tabindex=\"0\"\r\n aria-label=\"Abrir en una nueva ventana\"\r\n (keydown.enter)=\"openNewWindow(item); $event.stopPropagation()\"\r\n (keydown.space)=\"openNewWindow(item); $event.stopPropagation()\"\r\n ></i>\r\n </span>\r\n </a>\r\n </li>\r\n </ul>\r\n </p-panel>\r\n <div class=\"div-table\" style=\"text-align: center;\">\r\n <div class=\"div-table-row\" style=\"text-align: center;\" class=\"buttons\">\r\n <lib-upload-dialog *ngIf=\"carpetaSeleccionada?.reglas?.permisos?.cargarFront\" [selectedDocument]=\"carpetaSeleccionada\" (onUploaded)=\"fileChange($event)\" (loadFile)=\"cargarArchivo(carpetaSeleccionada)\"></lib-upload-dialog>\r\n <button pButton type=\"button\" label=\"Eliminar\" icon=\"pi pi-trash\"\r\n *ngIf=\"carpetaSeleccionada?.reglas?.permisos?.borrarFront\" (click)=\"eliminarMasivo()\"\r\n [disabled]=\"docsEliminables.length === 0\"></button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"div-table\" style=\"font-size: 5px\">\r\n V1.0.3\r\n </div>\r\n</ng-container>\r\n\r\n<p-dialog *ngIf=\"displayPDF\" [(visible)]=\"displayPDF\"\r\n header=\"{{current_label.replace('#toolbar=0&navpanes=0&statusbar=0','')}}\" [modal]=\"true\" [style]=\"{width: '70vw'}\">\r\n <embed *ngIf=\"carpetaSeleccionada.TipoArchivo == '2'\" [src]=\"current_path | safe\"\r\n style=\"width:100%; min-height: 600px\">\r\n <iframe *ngIf=\"carpetaSeleccionada.TipoArchivo == '1'\" style=\"width:100%; min-height: 600px\"\r\n [src]=\"current_path | safe\"></iframe>\r\n</p-dialog>\r\n\r\n\r\n<ng-template #pdfContent>\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\" id=\"modal-basic-title\">{{current_label.replace('#toolbar=0&navpanes=0&statusbar=0','')}}\r\n </h4>\r\n <button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"modalReference?.close()\">\r\n <span aria-hidden=\"true\">&times;</span>\r\n </button>\r\n </div>\r\n <div>\r\n <embed *ngIf=\"carpetaSeleccionada.TipoArchivo == '2'\" [src]=\"current_path | safe\"\r\n style=\"width:100%; min-height: 600px\">\r\n <iframe *ngIf=\"carpetaSeleccionada.TipoArchivo == '1'\" style=\"width:100%; min-height: 600px\"\r\n [src]=\"current_path | safe\"></iframe>\r\n\r\n </div>\r\n</ng-template>\r\n\r\n<!-- <ng-template #scanContent>\r\n <div class=\"div-table\">\r\n <div class=\"div-table-row\" style=\"text-align: center\">\r\n <h4>Escanear documentos</h4>\r\n </div>\r\n <div class=\"div-table-row\" style=\"text-align: center\">\r\n Archivos cargados: <h4>{{scanFileList.length}}</h4>\r\n </div>\r\n <div class=\"div-table-row\" style=\"text-align: center\">\r\n <label (click)=\"takePhotoClick()\" class=\"btn\">\r\n <mat-icon style=\"font-size: 2.5em; color:#0056b2\">add_to_photos</mat-icon>\r\n </label>\r\n\r\n <label *ngIf=\"scanFileList.length != 0\" (click)=\"subirFotosScan()\" class=\"btn\">\r\n <mat-icon style=\"font-size: 2.5em; color:#0056b2\">share</mat-icon>\r\n </label>\r\n </div>\r\n </div>\r\n</ng-template> -->\r\n\r\n\r\n<div *ngIf=\"enProceso\" id=\"divProceso\" class=\"cCargando\">\r\n <div id=\"divProcesoMsg\" class=\"cCargandoImg\">\r\n <br />\r\n <i style=\"font-size: 50px\" class=\"pi pi-cog pi-spin\"></i>\r\n <br />\r\n </div>\r\n</div>","/*\r\n * Public API Surface of sf-documents\r\n */\r\n\r\nexport * from './lib/sf-documents.service';\r\nexport * from './lib/sf-documents.component';\r\nexport * from './lib/gateways/document.port';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i8"],"mappings":"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"}
1
+ {"version":3,"file":"sf-documents.mjs","sources":["../../../projects/sf-documents/src/lib/sf-documents.service.ts","../../../projects/sf-documents/src/lib/pipes/safe.pipe.ts","../../../projects/sf-documents/src/lib/gateways/document.port.ts","../../../projects/sf-documents/src/lib/components/dialog/upload-dialog/upload-dialog.component.ts","../../../projects/sf-documents/src/lib/components/dialog/upload-dialog/upload-dialog.component.html","../../../projects/sf-documents/src/lib/sf-documents.component.ts","../../../projects/sf-documents/src/lib/sf-documents.component.html","../../../projects/sf-documents/src/public-api.ts","../../../projects/sf-documents/src/sf-documents.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SfDocumentsService {\r\n _loading = new BehaviorSubject<boolean>(false);\r\n loading$ = this._loading.asObservable();\r\n\r\n set loading(loading: boolean) {\r\n this._loading.next(loading);\r\n }\r\n constructor() { }\r\n}\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\n\r\n@Pipe({ name: 'safe' })\r\n\r\nexport class SafePipe implements PipeTransform {\r\n\r\n constructor(private sanitizer: DomSanitizer) { }\r\n transform(url:any) {\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\r\n }\r\n}","import { InjectionToken } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nexport interface DocumentGatewayService{\r\n getFolders(idKatios:string, data: any): Observable<any>;\r\n updateStatus(idKatios:string, data: any): Observable<any>;\r\n uploadFiles(idKatios: string, formData: FormData): Observable<any>;\r\n}\r\n\r\nexport const DOCUMENT_SERVICE = new InjectionToken<DocumentGatewayService>('DOCUMENT_SERVICE');","import { CommonModule } from '@angular/common';\r\nimport { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { DialogModule } from 'primeng/dialog';\r\n\r\n@Component({\r\n selector: 'lib-upload-dialog',\r\n imports: [CommonModule, ButtonModule, DialogModule],\r\n templateUrl: './upload-dialog.component.html',\r\n styleUrl: './upload-dialog.component.scss'\r\n})\r\nexport class UploadDialogComponent {\r\n @Input() selectedDocument: any;\r\n @Output() onUploaded = new EventEmitter<{ fileList: File[], tagValue: any }>();\r\n @Output() loadFile = new EventEmitter<void>();\r\n visible: boolean = false;\r\n @ViewChild('fileInput', { static: true })\r\n fileInput!: ElementRef<HTMLInputElement>;\r\n\r\n constructor() { }\r\n\r\n showDialog(){\r\n this.loadFile.emit();\r\n this.visible = true;\r\n }\r\n loadFileClick() {\r\n this.fileInput.nativeElement.value = '';\r\n this.fileInput.nativeElement.click();\r\n }\r\n fileChange(event: any) {\r\n const input = event.target as HTMLInputElement;\r\n if (!input.files?.length) return;\r\n const files = Array.from(input.files);\r\n const pdfs = files.filter(f =>\r\n f.type === 'application/pdf' || f.name.toLowerCase().endsWith('.pdf')\r\n );\r\n const imagePathInput = input.value;\r\n if(pdfs?.length) this.onUploaded.emit({ fileList: pdfs, tagValue: imagePathInput });\r\n this.visible = false;\r\n }\r\n\r\n}\r\n","<button pButton type=\"button\" label=\"Adicionar\" icon=\"pi pi-plus\"\r\n (click)=\"showDialog()\"></button>\r\n\r\n<p-dialog [header] = \"'Adicionar ' + selectedDocument.label\" [(visible)]=\"visible\" [modal]=\"true\" [style]=\"{ width: '30rem' }\" [breakpoints]=\"{ '1199px': '75vw', '575px': '90vw' }\"\r\nposition = \"top\" [closable]=\"true\" (onHide)=\"visible=false\">\r\n <div class=\"mt-3\">\r\n <div class=\"text-center\">\r\n <input #fileInput type=\"file\" (change)=\"fileChange($event)\" class=\"hidden\"\r\n placeholder=\"Upload file\" accept=\"application/pdf,.pdf\" multiple>\r\n </div>\r\n <div class=\"text-center\">\r\n <p-button\r\n icon=\"pi pi-upload\"\r\n (click)=\"loadFileClick()\"\r\n [text] = \"true\"\r\n [rounded]=\"true\"\r\n ></p-button>\r\n\r\n <!-- <label *ngIf=\"isMobile\" (click)=\"openModal2(scanContent)\" class=\"btn\">\r\n <mat-icon style=\"font-size: 2.5em; color:#0056b2\">camera_alt</mat-icon>\r\n </label> -->\r\n </div>\r\n </div>\r\n</p-dialog>\r\n","import { ApplicationRef, Component, ElementRef, EventEmitter, inject, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ConfirmationService, MessageService, TreeNode } from 'primeng/api';\r\nimport { DialogService, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { ToastModule } from 'primeng/toast';\r\nimport * as _ from \"lodash\";\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { PanelModule } from 'primeng/panel';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SafePipe } from './pipes/safe.pipe';\r\nimport { DOCUMENT_SERVICE, DocumentGatewayService } from './gateways/document.port';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { InputIcon } from 'primeng/inputicon';\r\nimport { IconField } from 'primeng/iconfield';\r\nimport { UploadDialogComponent } from './components/dialog/upload-dialog/upload-dialog.component';\r\nimport { SfDocumentsService } from './sf-documents.service';\r\n\r\ndeclare var cordova: any;\r\ndeclare var window: any;\r\n\r\n@Component({\r\n selector: 'app-sf-documents',\r\n imports: [ToastModule, ButtonModule, ConfirmDialogModule,PanelModule,CheckboxModule, DialogModule, CommonModule, FormsModule,SafePipe, InputTextModule, InputIcon,\r\n IconField, UploadDialogComponent\r\n ],\r\n templateUrl: './sf-documents.component.html',\r\n styleUrls: ['./sf-documents.component.scss'],\r\n providers: [DialogService, ConfirmationService],\r\n standalone: true\r\n})\r\nexport class SfDocumentsComponent implements OnDestroy, OnInit{\r\n private documentsService = inject<DocumentGatewayService>(DOCUMENT_SERVICE);\r\n @Input() accion: string = \"\";\r\n @Input() entidad: string = \"\";\r\n @Input() ndoc: string = \"\";\r\n @Input() tdoc: string = \"\";\r\n @Input() tipo: string = \"\";\r\n //Información necesaria para cargar documentos de productos\r\n @Input() Kasociada: string = \"\";\r\n @Input() Producto: string = \"\";\r\n @Input() Solicitud: string = \"\";\r\n @Input() oSession: any;\r\n @Input() perfilDocumentos: any;\r\n @Input() subestado: string = '';\r\n @Input() isMobile: boolean = false;\r\n @Output() nextTabPapa: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n @Input() bAtras: boolean = false;\r\n @Input() bFinal: boolean = false;\r\n @Input() botones: boolean = true;\r\n @Input() aplFiltro: boolean = false;\r\n\r\n @Input() nmco: string[] = [];\r\n\r\n @Input() server: string = \"\";\r\n valorFiltro: string = \"\";\r\n\r\n tab = 1;\r\n enProceso = false;\r\n carpetaSeleccionada: any;\r\n files: any;\r\n filesFilter: any;\r\n imagePathInput: any;\r\n modalReference: DynamicDialogRef | undefined;\r\n modalReference2: DynamicDialogRef | undefined;\r\n documentoSeleccionado: any;\r\n docsEliminables: any[] = [];\r\n totalDocsEliminadosApi = {existoso: 0, fallido: 0};\r\n file: any;\r\n urlDoc: any;\r\n pdfUrl: any;\r\n current_path: string = \"\";\r\n current_label: string = \"\";\r\n scanFileList = new Array<any>();\r\n displayPDF: boolean = false;\r\n\r\n @ViewChild('pdf', { read: ElementRef }) public panel!: ElementRef<any>;\r\n UsuarioNdoc: any;\r\n UsuarioTdoc: any;\r\n @Input() idKatios: any;\r\n constructor(\r\n private sanitizer: DomSanitizer,\r\n private dialog: DialogService,\r\n public snackBar: MessageService,\r\n private appRef: ApplicationRef,\r\n private confirmationService: ConfirmationService,\r\n private documentService: SfDocumentsService\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (this.oSession != null && this.oSession.UsuarioSistema.TDOC !== undefined && this.oSession.UsuarioSistema.NDOC !== undefined) {\r\n this.idKatios = this.oSession.UsuarioSistema.IDKATIOS.trim();\r\n this.perfilDocumentos = this.oSession.UsuarioSistema.PERDOCUMENTOS.trim();\r\n } \r\n if (this.tipo && this.perfilDocumentos) {\r\n this.cargarParametros(this.tipo)\r\n }\r\n }\r\n\r\n cargarParametros(tipo: string) {\r\n var data;\r\n switch (tipo) {\r\n case \"1\":\r\n this.documentService.loading = true;\r\n data = { \"action\": this.accion, \"entity\": this.entidad, \"tdoc\": this.tdoc, \"ndoc\": this.ndoc, \"request\": this.Solicitud, \"documentProfile\": this.perfilDocumentos,\"product\": this.Producto }\r\n this.documentsService.getFolders(this.idKatios, data).subscribe({\r\n next: (response: any) => {\r\n const res = response.data.RESPUESTA;\r\n this.okCargoArbol(res);\r\n },\r\n error: (error: any) => {\r\n this.documentService.loading = false;\r\n this.errorCargarArbol(error);\r\n }\r\n });\r\n this.tab = 1\r\n this.documentoSeleccionado = null\r\n break;\r\n }\r\n }\r\n\r\n expandAll() {\r\n this.files.forEach((node: any) => {\r\n this.expandRecursive(node, true);\r\n });\r\n }\r\n\r\n private expandRecursive(node: TreeNode, isExpand: boolean) {\r\n node.expanded = isExpand;\r\n var objeto: any;\r\n objeto = node\r\n if (node.children && node.children?.length > 0) {\r\n node.children.forEach(childNode => {\r\n this.expandRecursive(childNode, isExpand);\r\n });\r\n } else if (objeto.Path !== undefined) {\r\n var path = 'Imagenes/' + objeto.Path + objeto.label\r\n var re = /[\\\\]/gi;\r\n path = path.replace(re, \"/\")\r\n objeto.Path = this.server + path\r\n //this.sanitizer.bypassSecurityTrustUrl(this.server + path)\r\n }\r\n }\r\n \r\n public okCargoArbol = (iArbol: any) => {\r\n if (iArbol.CARPETA.length === undefined) {\r\n iArbol = new Array(iArbol.CARPETA)\r\n }\r\n\r\n iArbol.forEach((element: any) => {\r\n this.convertirArrayChildren(element)\r\n });\r\n\r\n //\r\n this.filtrarTipoDocumento(iArbol)\r\n //\r\n this.files = iArbol;\r\n this.filesFilter = iArbol;\r\n this.expandAll();\r\n this.documentService.loading = false;\r\n }\r\n public errorCargarArbol = (iError: any) => {\r\n this.message(\"error\", \"Error al traer la información\", iError.message);\r\n this.documentService.loading = false;\r\n }\r\n\r\n onClickedCheckDelete($event: any, document: any) {\r\n if ($event.checked) this.docsEliminables.push(document);\r\n else this.docsEliminables = this.docsEliminables.filter(doc => doc !== document);\r\n }\r\n\r\n funcOkDelDocumentMasivo = () => {\r\n this.totalDocsEliminadosApi.existoso += 1;\r\n if (this.totalDocsEliminadosApi.existoso + this.totalDocsEliminadosApi.fallido === this.docsEliminables.length) {\r\n this.cargarParametros(this.tipo);\r\n if ( this.totalDocsEliminadosApi.fallido > 0) this.message(\"warn\", \"\", \"Algunos documentos no pudieron ser eliminados\");\r\n else this.message(\"success\", \"\", \"Documentos eliminados satisfactoriamente\");\r\n\r\n }\r\n }\r\n\r\n funcErrDelDocumentMasivo = () => {\r\n this.totalDocsEliminadosApi.fallido += 1;\r\n if (this.totalDocsEliminadosApi.existoso + this.totalDocsEliminadosApi.fallido === this.docsEliminables.length) {\r\n this.cargarParametros(this.tipo);\r\n this.message(\"warn\", \"\", \"Algunos documentos no pudieron ser eliminados\");\r\n }\r\n }\r\n\r\n eliminarMasivo(){\r\n this.confirmationService.confirm({\r\n message: `¿Desea eliminar los ${this.docsEliminables.length} documentos seleccionados?`,\r\n acceptLabel: 'Si',\r\n rejectLabel: 'No',\r\n accept: () => {\r\n this.documentService.loading = true\r\n this.totalDocsEliminadosApi = {existoso: 0, fallido: 0};\r\n this.docsEliminables.forEach(doc => {\r\n let data = { \"code\": doc.codigo, \"status\": \"DES\" };\r\n this.documentsService.updateStatus(this.idKatios,data).subscribe({\r\n next: (response: any) => {\r\n this.funcOkDelDocumentMasivo();\r\n },\r\n error: (error: any) => {\r\n this.documentService.loading = false;\r\n this.funcErrDelDocumentMasivo();\r\n }\r\n });\r\n })\r\n }\r\n });\r\n }\r\n\r\n filtrarTipoDocumento(iArbol: any){\r\n if(this.nmco.length !== 0){\r\n iArbol.forEach((element: any) => {\r\n element.children = element.children.filter((child: any) => this.nmco.includes(child.NMCo));\r\n })\r\n }\r\n }\r\n\r\n convertirArrayChildren(node: any) {\r\n if (node.children === undefined) node.children = []\r\n else if (node.children.length == undefined) {\r\n node.children = new Array(node.children)\r\n }\r\n node.children.forEach((childNode: any) => {\r\n this.convertirArrayChildren(childNode);\r\n });\r\n\r\n }\r\n openBigModal(content: any) {\r\n this.modalReference = this.dialog.open(content, { \r\n width: '70%',\r\n modal: true,\r\n closable: true\r\n });\r\n this.modalReference.onClose.subscribe((result: any) => {\r\n //this.closeResult = `Closed with: ${result}`;\r\n });\r\n // this.modalReference.onHide.subscribe(() => {\r\n // //this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\r\n // });\r\n }\r\n\r\n openModal2(content: any) {\r\n this.modalReference2 = this.dialog.open(content,{});\r\n this.modalReference2.onClose.subscribe((result: any) => {\r\n //this.closeResult = `Closed with: ${result}`;\r\n });\r\n }\r\n\r\n\r\n // takePhotoClick() {\r\n // this.documentsService.openCamera(this.ok_openCamera, this.error_openCamera);\r\n // }\r\n /////Cuando se cargar archivos adjuntos\r\n fileChange(data: any) {\r\n const fileList = data.fileList;\r\n const tagValue = data.tagValue;\r\n this.file = fileList[0];\r\n this.imagePathInput = tagValue;\r\n this.generarData(fileList);\r\n }\r\n\r\n // ok_openCamera = (imageUri: any) => {\r\n // this.makeFileIntoBlob(imageUri)\r\n // .then((file: Blob) => {\r\n // this.appRef.tick();\r\n // if (file.size > 1000000) {\r\n // if (confirm(\"Este archivo es bastate pesado, le recomendamos bajar la calidad de la cámara. ¿Desea subir este archivo?\")) {\r\n // this.loadFileToList(file);\r\n // }\r\n // } else {\r\n // this.loadFileToList(file);\r\n // }\r\n // this.documentService.loading = false;\r\n // })\r\n // .catch((error: Error) => {\r\n // console.error('Error processing camera image:', error);\r\n // this.message(\"Error al procesar la imagen de la cámara\", \"Error\");\r\n // this.documentService.loading = false;\r\n // });\r\n // }\r\n\r\n loadFileToList(file: any) {\r\n\r\n setTimeout(() => {\r\n file[\"name\"] = \"scan\" + Date.now() + this.scanFileList.length + \".jpg\"\r\n this.scanFileList.push(file);\r\n this.scanFileList = this.scanFileList.slice();\r\n this.documentService.loading = false\r\n this.message(\"success\", \"\", \"Archivo cargado exitosamente\");\r\n\r\n this.appRef.tick();\r\n }, 200)\r\n }\r\n\r\n subirFotosScan() {\r\n this.generarData(this.scanFileList);\r\n }\r\n // error_openCamera = (err: any) => {\r\n // console.log(err);\r\n // this.message(\"No se pudo acceder a la camara\", \"Error\")\r\n // }\r\n\r\n noZonePatch(cb: () => void) {\r\n const orig = FileReader;\r\n const unpatched = ((window as any).FileReader as any).__zone_symbol__OriginalDelegate;\r\n (window as any).FileReader = unpatched;\r\n cb();\r\n (window as any).FileReader = orig;\r\n }\r\n\r\n makeFileIntoBlob(_imagePath: any): Promise<Blob> {\r\n this.documentService.loading = true;\r\n // INSTALL PLUGIN - cordova plugin add cordova-plugin-file\r\n return new Promise((resolve, reject) => {\r\n try {\r\n window.resolveLocalFileSystemURL(_imagePath, (fileEntry: any) => {\r\n fileEntry.file((resFile: any) => {\r\n this.noZonePatch(() => {//! Alert 1: Comentarear esta linea y una de de abajo para ambiente de prueba\r\n var reader = new FileReader();\r\n\r\n reader.onloadend = (evt: any) => {\r\n var imgBlob: any = new Blob([evt.target.result], { type: 'image/jpeg' });\r\n imgBlob.name = 'scan.jpg';\r\n resolve(imgBlob);\r\n };\r\n\r\n reader.onerror = (e) => {\r\n console.log('Failed file read: ' + e.toString());\r\n reject(e);\r\n };\r\n reader.readAsArrayBuffer(resFile);\r\n });//!Comentarear esta linea y una de de arriba para ambiente de prueba\r\n });\r\n }, (error: any) => {\r\n console.error('Error resolving file system URL:', error);\r\n reject(error);\r\n });\r\n } catch (ex) {\r\n console.error('Error in makeFileIntoBlob:', ex);\r\n reject(ex);\r\n }\r\n });\r\n }\r\n\r\n subirImagen(data: any, fileList: any) {\r\n this.documentService.loading = true;\r\n const formData: FormData = new FormData();\r\n var dataDocs;\r\n var sIdKatios = this.idKatios;\r\n dataDocs = { \"data\": data };\r\n formData.append('data', JSON.stringify(dataDocs));\r\n formData.append('merge', \"true\");\r\n\r\n for (let _i = 0; _i < fileList.length; _i++) {\r\n formData.append('files', fileList[_i], fileList[_i].name);\r\n }\r\n\r\n this.documentsService.uploadFiles(sIdKatios, formData).subscribe({\r\n next: (response: any) => {\r\n this.scanFileList = new Array<any>();\r\n if (this.modalReference2) {\r\n this.modalReference2.close();\r\n }\r\n if(this.modalReference) {\r\n this.modalReference.close();\r\n }\r\n this.message(\"success\", \"Felicidades\", \"Se almacenó el documento correctamente\");\r\n this.cargarParametros(this.tipo)\r\n this.documentService.loading = false;\r\n this.appRef.tick();\r\n },\r\n error: (err: any) => {\r\n this.documentService.loading = false;\r\n this.message(\"error\", \"Se presentaron inconvenientes almacenando el documento\", err.message);\r\n console.error(\"Error : \" + err);\r\n },\r\n });\r\n }\r\n\r\n generarData(fileList: any) {\r\n this.documentService.loading = true\r\n var sPath1;\r\n var dataClientes\r\n let sPaths = \"\";\r\n if (this.documentoSeleccionado.Tipo.trim().toUpperCase() == \"PERSONA\") {\r\n sPath1 = this.documentoSeleccionado.Tipo.trim() + \"\\\\\" + this.tdoc.trim() +\r\n \"\\\\\" + this.ndoc.trim() + \"\\\\Cliente\\\\\" + this.documentoSeleccionado.NMCo.trim();\r\n } else {\r\n //Kasociada\r\n //producto\r\n //Falta numero de solicitud\r\n\r\n\r\n\r\n sPath1 = this.documentoSeleccionado.Tipo.trim() + \"\\\\\" + this.Kasociada +\r\n \"\\\\\" + this.Producto + \"\\\\\" + this.Solicitud + \"\\\\\" + this.documentoSeleccionado.NMCo;\r\n }\r\n\r\n dataClientes = {\r\n \"Tipo\": this.documentoSeleccionado.Tipo,\r\n \"id\": \"1\",\r\n \"documento\": this.documentoSeleccionado.NMCo,\r\n \"tdoc\": this.tdoc.trim(),\r\n \"ndoc\": this.ndoc.trim(),\r\n \"IdProducto\": this.Solicitud,\r\n \"TipoProducto\": this.Producto,\r\n \"Kasociada\": this.Kasociada,\r\n \"archivoUpload\": fileList[0],\r\n \"nombre\": this.tdoc.trim() + '-' + this.ndoc.trim(),\r\n \"fileCargado\": fileList[0],\r\n \"pathArchivo\": sPath1,\r\n \"TipoArchivo\": this.documentoSeleccionado.TipoArchivo\r\n }\r\n sPaths = sPaths + sPath1 + \",\";\r\n this.subirImagen(dataClientes, fileList)\r\n }\r\n\r\n cargarArchivo(iNodo: any) {\r\n this.scanFileList = new Array<any>();\r\n this.documentoSeleccionado = iNodo;\r\n }\r\n\r\n async openDoc(item: any, pdfContent: any) {\r\n if (this.carpetaSeleccionada.TipoArchivo == '1' && this.isMobile) {\r\n cordova.InAppBrowser.open(item.Path, '_system', 'location=yes');\r\n } else {\r\n this.current_path = item.Path;\r\n this.current_label = item.label;\r\n this.openBigModal(pdfContent);\r\n }\r\n }\r\n\r\n openVisorDoc(item: any) {\r\n if (this.carpetaSeleccionada.TipoArchivo == '1' && this.isMobile) {//is mobile\r\n cordova.InAppBrowser.open(item.Path, '_system', 'location=yes');\r\n } else {\r\n this.current_path = item.Path;\r\n this.current_label = item.label;\r\n this.displayPDF = true;\r\n }\r\n }\r\n\r\n async openNewWindow(item: any) {\r\n window.open(item.Path, '_blank').focus();\r\n }\r\n\r\n async seleccionoDocs(iNodo: any) {\r\n var path = iNodo.Path + iNodo.label\r\n this.pdfUrl = \"//imagenes//\" + iNodo.idKatios + \"//\" + path;\r\n this.pdfUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.pdfUrl);\r\n this.gotoBottom();\r\n }\r\n\r\n\r\n message(severity: string, summary: string, message: any) {\r\n this.snackBar.add({\r\n severity: severity,\r\n summary: summary,\r\n detail: message,\r\n life: 4000\r\n });\r\n }\r\n\r\n\r\n public gotoBottom(): void {\r\n window.scrollBy(0, this.panel.nativeElement.scrollHeight)\r\n }\r\n\r\n\r\n public VerDetalleTab(items: any) {\r\n if(items?.reglas && typeof(items.reglas) == 'string') items.reglas = JSON.parse(items.reglas);\r\n if (!items?.reglas?.permisos?.subestados && items?.reglas?.permisos){\r\n items.reglas.permisos.cargarFront = items.reglas.permisos.cargar;\r\n items.reglas.permisos.borrarFront = items.reglas.permisos.borrar;\r\n }\r\n else if (items?.reglas?.permisos?.subestados && !this.isEmptyString(this.subestado)){\r\n items.reglas.permisos.cargarFront = Array.isArray(items.reglas.permisos.subestados.cargar) ? items.reglas.permisos.subestados.cargar.map((c: any) => c.toLowerCase().trim()).includes(this.subestado.toLowerCase().trim()): items.reglas.permisos.cargar;\r\n items.reglas.permisos.borrarFront = Array.isArray(items.reglas.permisos.subestados.borrar) ? items.reglas.permisos.subestados.borrar.map((b: any) => b.toLowerCase().trim()).includes(this.subestado.toLowerCase().trim()): items.reglas.permisos.borrar;\r\n }\r\n this.carpetaSeleccionada = items\r\n this.docsEliminables = []\r\n this.totalDocsEliminadosApi = {existoso: 0, fallido: 0};\r\n this.carpetaSeleccionada.children.forEach((element: any) => element.delete = false);\r\n this.tab = 2\r\n }\r\n\r\n private isEmptyString(str: string): boolean {\r\n return str === undefined || str === null || str.trim() === '';\r\n }\r\n\r\n eliminarDocumento(docEliminar: any, e: any, funcOkDelDocument=this.ok_eliminarDocumento, funcErrDelDocument=this.err_eliminarDocumento) {\r\n e.stopPropagation();\r\n this.confirmationService.confirm({\r\n message: `¿Desea eliminar el documento?`,\r\n accept: () => {\r\n let data = { \"code\": docEliminar.codigo, \"status\": \"DES\" };\r\n this.documentsService.updateStatus(this.idKatios,data).subscribe({\r\n next: (response: any) => {\r\n funcOkDelDocument();\r\n },\r\n error: (error: any) => {\r\n this.documentService.loading = false;\r\n funcErrDelDocument(error);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n ok_eliminarDocumento = () => {\r\n this.message(\"success\", \"\", \"Documento eliminado satisfactoriamente\");\r\n\r\n if (this.tipo !== undefined) {\r\n this.cargarParametros(this.tipo)\r\n }\r\n }\r\n err_eliminarDocumento = (err: any) => {\r\n this.message(\"error\", \"No se pudo eliminar el documento\", err.message);\r\n }\r\n\r\n goToTab(tab: any) {\r\n this.tab = tab;\r\n }\r\n\r\n next(iValor: any) {\r\n if (iValor < 0) {\r\n this.nextTabPapa.emit(iValor)\r\n } else {\r\n var respuesta = \"\"\r\n if (this.files) respuesta = this.valorDocumentosPendientes(this.files[0])\r\n\r\n if (respuesta == \"\") {\r\n this.nextTabPapa.emit(iValor)\r\n } else {\r\n this.message(\"warn\", \"Ups!\", respuesta);\r\n }\r\n }\r\n }\r\n\r\n valorDocumentosPendientes(carpetas: any) {\r\n\r\n var respuesta = \"\";\r\n if (carpetas.children) {\r\n carpetas.children.forEach((carpeta: any) => {\r\n\r\n if (carpeta.Obligatorio == 1 && (!carpeta.children || carpeta.children.length == 0)) respuesta = \"Falta \" + carpeta.label\r\n })\r\n }\r\n return respuesta\r\n\r\n }\r\n\r\n filtrarDocumentos() {\r\n this.filesFilter = _.cloneDeep(this.files);\r\n for (let i = 0; i < this.files.length; i++) {\r\n let node = [];\r\n for (let j = 0; j < this.files[i].children.length; j++) {\r\n let file = this.files[i].children[j];\r\n if (file.label.toLowerCase().indexOf(this.valorFiltro.toLowerCase()) == 0) node.push(file)\r\n }\r\n this.filesFilter[i].children = node;\r\n }\r\n }\r\n ngOnDestroy() {\r\n if (this.modalReference) {\r\n this.modalReference.close();\r\n }\r\n if(this.modalReference2) {\r\n this.modalReference2.close();\r\n }\r\n }\r\n}\r\n","<div class=\"buttons\" *ngIf=\"botones\">\r\n <div class=\"div-table-col50\" style=\"text-align: center\" *ngIf=\"bAtras\">\r\n <button pButton type=\"button\" label=\"Atras\" icon=\"pi pi-arrow-left\" (click)=\"next(-1)\"></button>\r\n </div>\r\n <div class=\"div-table-col50\" style=\"text-align: center\" *ngIf=\"!bFinal && botones\">\r\n <button pButton type=\"button\" label=\"Siguiente\" icon=\"pi pi-arrow-right\" (click)=\"next(1)\"></button>\r\n </div>\r\n <div class=\"div-table-col50\" *ngIf=\"bFinal\">\r\n <button pButton type=\"button\" label=\"Finalizar\" icon=\"pi pi-home\" (click)=\"next(0)\"></button>\r\n </div>\r\n</div>\r\n<p-iconfield *ngIf=\"aplFiltro\">\r\n <p-inputicon class=\"pi pi-search\" />\r\n <input type=\"text\" pInputText placeholder=\"Busqueda\" [(ngModel)]=\"valorFiltro\" (keyup)=\"filtrarDocumentos()\" class=\"w-full\">\r\n</p-iconfield>\r\n<p-confirmDialog header=\"Atencion\" icon=\"pi pi-exclamation-triangle\"></p-confirmDialog>\r\n<ng-container *ngIf=\"tab==1\" class=\"tablaGestor\">\r\n <ng-container *ngFor=\"let carpeta of filesFilter\" class=\"tablaGestor\">\r\n <p-panel header=\"{{carpeta.label}}\" [style]=\"{'height':'100%'}\">\r\n <ul class=\"contacts\">\r\n <li *ngFor=\"let item of carpeta.children\">\r\n <a (click)=\"VerDetalleTab(item)\">\r\n <i class=\"{{item.collapsedIcon || 'pi pi-folder'}} imagen\" [ngStyle]=\"{'color': item.children?.length > 0 ? 'green':'red' }\"></i>\r\n <span class=\"name\">{{item.label}}</span>\r\n <span class=\"email\" *ngIf=\"item.children !== undefined && item.children.length > 0\">Documentos cargados:\r\n {{item.children.length}}</span>\r\n <span class=\"email\" *ngIf=\"item.children?.length === undefined || item.children?.length == 0\">Sin documentos cargados</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </p-panel>\r\n </ng-container>\r\n <ng-container class=\"buttons\" *ngIf=\"botones\">\r\n <div class=\"div-table-col50\" style=\"text-align: center\" *ngIf=\"bAtras\">\r\n <button pButton type=\"button\" label=\"Atras\" icon=\"pi pi-arrow-left\" (click)=\"next(-1)\"></button>\r\n </div>\r\n <div class=\"div-table-col50\" style=\"text-align: center\" *ngIf=\"!bFinal && botones\">\r\n <button pButton type=\"button\" label=\"Siguiente\" icon=\"pi pi-arrow-right\" (click)=\"next(1)\"></button>\r\n </div>\r\n <div class=\"div-table-col50\" *ngIf=\"bFinal\">\r\n <button pButton type=\"button\" label=\"Finalizar\" icon=\"pi pi-home\" (click)=\"next(0)\"></button>\r\n </div>\r\n </ng-container>\r\n</ng-container>\r\n<ng-container *ngIf=\"tab==2\">\r\n <div style=\"margin-block: 15px; display: flex;\">\r\n <button pButton type=\"button\" icon=\"pi pi-arrow-left\" label=\"Volver\" (click)=\"goToTab('1')\"></button>\r\n </div>\r\n <p-panel [header]=\"carpetaSeleccionada.label.replace('#toolbar=0&navpanes=0&statusbar=0','')\"\r\n [style]=\"{'height':'100%'}\">\r\n <ul class=\"contacts\">\r\n <li *ngFor=\"let item of carpetaSeleccionada.children\">\r\n <p-checkbox *ngIf=\"carpetaSeleccionada?.reglas?.permisos?.borrarFront\" [binary]=\"true\" [(ngModel)]=\"item.delete\"\r\n (onChange)=\"onClickedCheckDelete($event, item)\"></p-checkbox>\r\n <a (click)=\"openVisorDoc(item)\">\r\n <span class=\"imagen\" [ngStyle]=\"{'color': item.color }\">\r\n <embed *ngIf=\"carpetaSeleccionada.TipoArchivo == '2'\" class=\"frameDoc\" scrolling=\"no\"\r\n [src]=\"item.Path | safe\" style=\"width:75px; height:90px;\">\r\n <img *ngIf=\"carpetaSeleccionada.TipoArchivo == '1' && isMobile\" class=\"frameDoc\" scrolling=\"no\"\r\n src=\"https://macuna.tecfinanzas.com/Imagenes/pdf_icon.png\" style=\"width:75px; height:90px;\">\r\n <iframe *ngIf=\"carpetaSeleccionada.TipoArchivo == '1' && !isMobile\" class=\"frameDoc\"\r\n style=\"width:85px; height:90px;\" [src]=\"item.Path | safe\" frameborder=\"0\"></iframe>\r\n </span>\r\n <div>\r\n <div>\r\n <span class=\"name\">{{item.label}}</span>\r\n </div>\r\n <div>\r\n <span class=\"Label\" *ngIf=\"item.FechaSubida && !isMobile\">Fecha Subida: {{item.FechaSubida}}</span>\r\n <span class=\"Label\" *ngIf=\"item.FechaSubida && isMobile\">{{item.FechaSubida}}</span>\r\n </div>\r\n </div>\r\n <span class=\"celular\">\r\n <i\r\n class=\"pi pi-external-link text-blue-500 text-2xl cursor-pointer\"\r\n (click)=\"openNewWindow(item); $event.stopPropagation()\"\r\n role=\"button\"\r\n tabindex=\"0\"\r\n aria-label=\"Abrir en una nueva ventana\"\r\n (keydown.enter)=\"openNewWindow(item); $event.stopPropagation()\"\r\n (keydown.space)=\"openNewWindow(item); $event.stopPropagation()\"\r\n ></i>\r\n </span>\r\n </a>\r\n </li>\r\n </ul>\r\n </p-panel>\r\n <div class=\"div-table\" style=\"text-align: center;\">\r\n <div class=\"div-table-row\" style=\"text-align: center;\" class=\"buttons\">\r\n <lib-upload-dialog *ngIf=\"carpetaSeleccionada?.reglas?.permisos?.cargarFront\" [selectedDocument]=\"carpetaSeleccionada\" (onUploaded)=\"fileChange($event)\" (loadFile)=\"cargarArchivo(carpetaSeleccionada)\"></lib-upload-dialog>\r\n <button pButton type=\"button\" label=\"Eliminar\" icon=\"pi pi-trash\"\r\n *ngIf=\"carpetaSeleccionada?.reglas?.permisos?.borrarFront\" (click)=\"eliminarMasivo()\"\r\n [disabled]=\"docsEliminables.length === 0\"></button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"div-table\" style=\"font-size: 5px\">\r\n V1.0.3\r\n </div>\r\n</ng-container>\r\n\r\n<p-dialog *ngIf=\"displayPDF\" [(visible)]=\"displayPDF\"\r\n header=\"{{current_label.replace('#toolbar=0&navpanes=0&statusbar=0','')}}\" [modal]=\"true\" [style]=\"{width: '70vw'}\">\r\n <embed *ngIf=\"carpetaSeleccionada.TipoArchivo == '2'\" [src]=\"current_path | safe\"\r\n style=\"width:100%; min-height: 600px\">\r\n <iframe *ngIf=\"carpetaSeleccionada.TipoArchivo == '1'\" style=\"width:100%; min-height: 600px\"\r\n [src]=\"current_path | safe\"></iframe>\r\n</p-dialog>\r\n\r\n\r\n<ng-template #pdfContent>\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\" id=\"modal-basic-title\">{{current_label.replace('#toolbar=0&navpanes=0&statusbar=0','')}}\r\n </h4>\r\n <button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"modalReference?.close()\">\r\n <span aria-hidden=\"true\">&times;</span>\r\n </button>\r\n </div>\r\n <div>\r\n <embed *ngIf=\"carpetaSeleccionada.TipoArchivo == '2'\" [src]=\"current_path | safe\"\r\n style=\"width:100%; min-height: 600px\">\r\n <iframe *ngIf=\"carpetaSeleccionada.TipoArchivo == '1'\" style=\"width:100%; min-height: 600px\"\r\n [src]=\"current_path | safe\"></iframe>\r\n\r\n </div>\r\n</ng-template>\r\n\r\n<!-- <ng-template #scanContent>\r\n <div class=\"div-table\">\r\n <div class=\"div-table-row\" style=\"text-align: center\">\r\n <h4>Escanear documentos</h4>\r\n </div>\r\n <div class=\"div-table-row\" style=\"text-align: center\">\r\n Archivos cargados: <h4>{{scanFileList.length}}</h4>\r\n </div>\r\n <div class=\"div-table-row\" style=\"text-align: center\">\r\n <label (click)=\"takePhotoClick()\" class=\"btn\">\r\n <mat-icon style=\"font-size: 2.5em; color:#0056b2\">add_to_photos</mat-icon>\r\n </label>\r\n\r\n <label *ngIf=\"scanFileList.length != 0\" (click)=\"subirFotosScan()\" class=\"btn\">\r\n <mat-icon style=\"font-size: 2.5em; color:#0056b2\">share</mat-icon>\r\n </label>\r\n </div>\r\n </div>\r\n</ng-template> -->\r\n\r\n\r\n","/*\r\n * Public API Surface of sf-documents\r\n */\r\n\r\nexport * from './lib/sf-documents.service';\r\nexport * from './lib/sf-documents.component';\r\nexport * from './lib/gateways/document.port';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i4.SfDocumentsService","i9"],"mappings":"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"}
@@ -3,7 +3,7 @@ import * as i0 from "@angular/core";
3
3
  export declare class UploadDialogComponent {
4
4
  selectedDocument: any;
5
5
  onUploaded: EventEmitter<{
6
- fileList: FileList;
6
+ fileList: File[];
7
7
  tagValue: any;
8
8
  }>;
9
9
  loadFile: EventEmitter<void>;
@@ -1,8 +1,8 @@
1
1
  import { InjectionToken } from "@angular/core";
2
2
  import { Observable } from "rxjs";
3
3
  export interface DocumentGatewayService {
4
- getCarptasByAccion(idKatios: string, data: any, okCallback: any, errorCallback: any): Promise<any>;
5
- updateEstadoFileSystemByCodigo(data: any, okCallback: any, errorCallback: any): Promise<any>;
6
- postServiceHttpOptionsDocs(idKatios: string, formData: FormData, headers: any): Observable<any>;
4
+ getFolders(idKatios: string, data: any): Observable<any>;
5
+ updateStatus(idKatios: string, data: any): Observable<any>;
6
+ uploadFiles(idKatios: string, formData: FormData): Observable<any>;
7
7
  }
8
8
  export declare const DOCUMENT_SERVICE: InjectionToken<DocumentGatewayService>;
@@ -2,6 +2,7 @@ import { ApplicationRef, ElementRef, EventEmitter, OnDestroy, OnInit } from '@an
2
2
  import { DomSanitizer } from '@angular/platform-browser';
3
3
  import { ConfirmationService, MessageService } from 'primeng/api';
4
4
  import { DialogService, DynamicDialogRef } from 'primeng/dynamicdialog';
5
+ import { SfDocumentsService } from './sf-documents.service';
5
6
  import * as i0 from "@angular/core";
6
7
  export declare class SfDocumentsComponent implements OnDestroy, OnInit {
7
8
  private sanitizer;
@@ -9,6 +10,7 @@ export declare class SfDocumentsComponent implements OnDestroy, OnInit {
9
10
  snackBar: MessageService;
10
11
  private appRef;
11
12
  private confirmationService;
13
+ private documentService;
12
14
  private documentsService;
13
15
  accion: string;
14
16
  entidad: string;
@@ -55,7 +57,7 @@ export declare class SfDocumentsComponent implements OnDestroy, OnInit {
55
57
  UsuarioNdoc: any;
56
58
  UsuarioTdoc: any;
57
59
  idKatios: any;
58
- constructor(sanitizer: DomSanitizer, dialog: DialogService, snackBar: MessageService, appRef: ApplicationRef, confirmationService: ConfirmationService);
60
+ constructor(sanitizer: DomSanitizer, dialog: DialogService, snackBar: MessageService, appRef: ApplicationRef, confirmationService: ConfirmationService, documentService: SfDocumentsService);
59
61
  ngOnInit(): void;
60
62
  cargarParametros(tipo: string): void;
61
63
  expandAll(): void;
@@ -78,11 +80,11 @@ export declare class SfDocumentsComponent implements OnDestroy, OnInit {
78
80
  subirImagen(data: any, fileList: any): void;
79
81
  generarData(fileList: any): void;
80
82
  cargarArchivo(iNodo: any): void;
81
- openDoc(item: any, pdfContent: any): void;
83
+ openDoc(item: any, pdfContent: any): Promise<void>;
82
84
  openVisorDoc(item: any): void;
83
- openNewWindow(item: any): void;
84
- seleccionoDocs(iNodo: any): void;
85
- message(mensaje: any, tipo: any): void;
85
+ openNewWindow(item: any): Promise<void>;
86
+ seleccionoDocs(iNodo: any): Promise<void>;
87
+ message(severity: string, summary: string, message: any): void;
86
88
  gotoBottom(): void;
87
89
  VerDetalleTab(items: any): void;
88
90
  private isEmptyString;
@@ -1,5 +1,9 @@
1
+ import { BehaviorSubject } from 'rxjs';
1
2
  import * as i0 from "@angular/core";
2
3
  export declare class SfDocumentsService {
4
+ _loading: BehaviorSubject<boolean>;
5
+ loading$: import("rxjs").Observable<boolean>;
6
+ set loading(loading: boolean);
3
7
  constructor();
4
8
  static ɵfac: i0.ɵɵFactoryDeclaration<SfDocumentsService, never>;
5
9
  static ɵprov: i0.ɵɵInjectableDeclaration<SfDocumentsService>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sf-documents",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^19.2.0",
6
6
  "@angular/core": "^19.2.0",