sf-documents 0.1.9 → 0.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -63
- package/fesm2022/sf-documents.mjs +240 -40
- package/fesm2022/sf-documents.mjs.map +1 -1
- package/lib/components/dialog/upload-dialog/upload-dialog.component.d.ts +15 -1
- package/lib/sf-documents.component.d.ts +3 -0
- package/lib/utils/error-message.util.d.ts +25 -0
- package/lib/utils/file-type.util.d.ts +15 -0
- package/lib/utils/toast.util.d.ts +5 -0
- package/package.json +1 -1
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { ElementRef, EventEmitter } from '@angular/core';
|
|
2
|
+
import { MessageService } from 'primeng/api';
|
|
3
|
+
import { RejectedFile } from '../../../utils/file-type.util';
|
|
2
4
|
import * as i0 from "@angular/core";
|
|
3
5
|
export declare class UploadDialogComponent {
|
|
6
|
+
private messageService;
|
|
4
7
|
selectedDocument: any;
|
|
5
8
|
/** Extensiones permitidas para subir (ej. ['.pdf', '.xlsx']). Si no se define, usa el default de la librería. */
|
|
6
9
|
allowedExtensions: string[] | undefined;
|
|
@@ -10,11 +13,22 @@ export declare class UploadDialogComponent {
|
|
|
10
13
|
}>;
|
|
11
14
|
loadFile: EventEmitter<void>;
|
|
12
15
|
fileInput: ElementRef<HTMLInputElement>;
|
|
13
|
-
|
|
16
|
+
readonly maxFileSize: number;
|
|
17
|
+
readonly maxBatchSize: number;
|
|
18
|
+
displayOversizedDialog: boolean;
|
|
19
|
+
allowedFiles: File[];
|
|
20
|
+
rejectedFiles: RejectedFile[];
|
|
21
|
+
private pendingTagValue;
|
|
22
|
+
constructor(messageService: MessageService);
|
|
14
23
|
private get normalizedExtensions();
|
|
15
24
|
get acceptedFileTypes(): string;
|
|
25
|
+
formatSize(bytes: number): string;
|
|
16
26
|
loadFileClick(): void;
|
|
17
27
|
fileChange(event: any): void;
|
|
28
|
+
continuarConPermitidos(): void;
|
|
29
|
+
cancelarEnvio(): void;
|
|
30
|
+
private limpiarSeleccionRechazada;
|
|
31
|
+
private addMessage;
|
|
18
32
|
static ɵfac: i0.ɵɵFactoryDeclaration<UploadDialogComponent, never>;
|
|
19
33
|
static ɵcmp: i0.ɵɵComponentDeclaration<UploadDialogComponent, "lib-upload-dialog", never, { "selectedDocument": { "alias": "selectedDocument"; "required": false; }; "allowedExtensions": { "alias": "allowedExtensions"; "required": false; }; }, { "onUploaded": "onUploaded"; "loadFile": "loadFile"; }, never, never, true, never>;
|
|
20
34
|
}
|
|
@@ -57,6 +57,9 @@ export declare class SfDocumentsComponent implements OnChanges {
|
|
|
57
57
|
UsuarioTdoc: any;
|
|
58
58
|
idKatios: any;
|
|
59
59
|
displayGenerate: boolean;
|
|
60
|
+
/** Error de la última generación; se muestra dentro del diálogo hasta reintentar o cambiar el tipo. */
|
|
61
|
+
generateError: string | null;
|
|
62
|
+
readonly toastKey = "sf-documents";
|
|
60
63
|
canGenerate: boolean;
|
|
61
64
|
documentTypes: any[];
|
|
62
65
|
documentsToGenerate: any[];
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Traduce el error de una llamada del puerto a un texto para el usuario, en español y de usted.
|
|
3
|
+
*
|
|
4
|
+
* Nunca devuelve el mensaje del backend, `err.message`, JSON ni texto en inglés: el texto sale
|
|
5
|
+
* siempre de este archivo, según el código de error. El detalle técnico va a `console.error`
|
|
6
|
+
* con el prefijo `[sf-documents]` para soporte.
|
|
7
|
+
*
|
|
8
|
+
* Formas de error que llegan hoy:
|
|
9
|
+
* - DocumentService directo (documents-manager-ui): `err.error` es su `ApiResponse`,
|
|
10
|
+
* `{ success, statusCode, message, errors: ['CODIGO'] }`.
|
|
11
|
+
* - Vía TFAServices (TFB): la fachada lanza `new Exception(response.Content)` y responde
|
|
12
|
+
* `{ success: false, message: 'Error: {json de DocumentService}' }`. Se desenvuelve ese JSON.
|
|
13
|
+
*/
|
|
14
|
+
export declare const GENERIC_ERROR_MESSAGE = "Ocurri\u00F3 un error inesperado. Intente de nuevo.";
|
|
15
|
+
export declare const NETWORK_ERROR_MESSAGE = "No hay conexi\u00F3n con el servidor. Revise su conexi\u00F3n e intente de nuevo.";
|
|
16
|
+
/**
|
|
17
|
+
* Códigos de `errors[0]` que devuelve DocumentService (`ExceptionHandlerMiddleware` y
|
|
18
|
+
* `Core/Exceptions`) → texto para el usuario. Un código que no esté aquí usa el genérico.
|
|
19
|
+
*/
|
|
20
|
+
export declare const ERROR_CODE_MESSAGES: Readonly<Record<string, string>>;
|
|
21
|
+
/**
|
|
22
|
+
* Texto para el usuario a partir de un error del puerto.
|
|
23
|
+
* @param context Qué se estaba haciendo, solo para el log de soporte (p. ej. 'generateDocument').
|
|
24
|
+
*/
|
|
25
|
+
export declare function getUserErrorMessage(err: unknown, context?: string): string;
|
|
@@ -4,11 +4,26 @@
|
|
|
4
4
|
* decisión de negocio (qué tipos de documento se aceptan).
|
|
5
5
|
*/
|
|
6
6
|
export declare const DEFAULT_ALLOWED_UPLOAD_EXTENSIONS: string[];
|
|
7
|
+
export declare const MAX_POR_ARCHIVO: number;
|
|
8
|
+
export declare const MAX_POR_LOTE: number;
|
|
9
|
+
export interface RejectedFile {
|
|
10
|
+
name: string;
|
|
11
|
+
size: number;
|
|
12
|
+
}
|
|
7
13
|
/** Normaliza una lista de extensiones dada por el host (con o sin punto, mayúsc/minúsc). */
|
|
8
14
|
export declare function normalizeExtensions(extensions: string[] | undefined | null, fallback: string[]): string[];
|
|
9
15
|
/** Arma el atributo `accept` del input file a partir de las extensiones permitidas. */
|
|
10
16
|
export declare function buildAcceptAttr(extensions: string[]): string;
|
|
11
17
|
export declare function isAllowedUploadFile(file: File, extensions: string[]): boolean;
|
|
18
|
+
/** Formatea un tamaño en bytes a MB con un decimal (ej. "12.3 MB"). */
|
|
19
|
+
export declare function formatFileSizeMB(bytes: number): string;
|
|
20
|
+
/** Tamaño total en bytes de un conjunto de archivos. */
|
|
21
|
+
export declare function getBatchSize(files: File[]): number;
|
|
22
|
+
/** Separa los archivos según superen o no el tamaño máximo permitido por archivo. */
|
|
23
|
+
export declare function splitFilesByMaxSize(files: File[], maxFileSize: number): {
|
|
24
|
+
allowed: File[];
|
|
25
|
+
rejected: RejectedFile[];
|
|
26
|
+
};
|
|
12
27
|
/** true si el navegador puede mostrar este archivo inline en un <embed>/<iframe>. */
|
|
13
28
|
export declare function canPreviewFile(name: string | undefined | null): boolean;
|
|
14
29
|
/** Ícono PrimeIcons según la extensión del archivo; 'pi-file' si no se reconoce. */
|