infodocviewdoc 2.0.4 → 3.0.0

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # MFE Document Viewer Integration Guide
2
2
 
3
- `infodocviewdoc` es una librería Angular para previsualizar documentos en microfrontends SGDEA.
3
+ `infodocviewdoc` es una librería Angular para previsualizar documentos en microfrontends.
4
4
 
5
5
  ## 1) Instalacion del paquete (ultima version)
6
6
 
@@ -15,7 +15,7 @@ Si tu MFE ya existe (con Angular y dependencias base), **solo debes agregar esta
15
15
  ```json
16
16
  {
17
17
  "dependencies": {
18
- "infodocviewdoc": "2.0.4",
18
+ "infodocviewdoc": "3.0.0",
19
19
  "@handsontable/angular": "^16.2.0",
20
20
  "handsontable": "^16.2.0",
21
21
  "jspdf": "^4.1.0",
@@ -50,7 +50,7 @@ Si creas un microfront desde cero, ademas de Angular/base, tu bloque de `depende
50
50
  "rxjs": "~7.8.0",
51
51
  "tslib": "2.3.0",
52
52
  "zone.js": "~0.15.0",
53
- "infodocviewdoc": "^2.0.4",
53
+ "infodocviewdoc": "^3.0.0",
54
54
  "@handsontable/angular": "^16.2.0",
55
55
  "handsontable": "^16.2.0",
56
56
  "jspdf": "^4.1.0",
@@ -140,31 +140,43 @@ export class PdfPreviewModalComponent {}
140
140
 
141
141
  ```html
142
142
  <sgdea-document-viewer
143
+ [fileBlob]="blob"
144
+ [fileBlobName]="fileName"
143
145
  [url]="apiUrl"
144
- [nameFile]="objectName"
145
- [nameBucket]="bucketName"
146
- [nameSpaceBucket]="''"
147
- [token]="token">
146
+ [token]="token"
147
+ [pdfAssetsBaseUrl]="'https://mi-dominio.com/assets'">
148
148
  </sgdea-document-viewer>
149
149
  ```
150
150
 
151
151
  ## 5) Inputs del componente
152
152
 
153
- - `url`: base URL del microservicio de archivos (ej: `https://host-backend`)
154
- - `nameFile`: ruta/nombre del archivo en bucket (`objectName`)
155
- - `nameBucket`: nombre del bucket (ej: `attachments`)
156
- - `nameSpaceBucket`: namespace (si aplica; puede ir vacio)
157
- - `token`: JWT para `Authorization: Bearer <token>`
158
- - `pdfAssetsBaseUrl` (opcional): URL base donde el host publica los assets de `ngx-extended-pdf-viewer` (p. ej. `https://mi-app.com/assets`). Si no se define, se usa CDN o, si estan copiados en el build, la ruta por defecto del viewer.
153
+ - `fileBlob`: `File | Blob` del documento ya resuelto por el microfront (requerido).
154
+ - `fileBlobName` (opcional): nombre del archivo para inferir la extensión (p. ej. `documento.pdf`).
155
+ - `url` (requerido solo para Office->PDF): base URL del microservicio de conversión (ej: `https://host-backend`).
156
+ - `token` (requerido solo para Office->PDF): JWT para `Authorization: Bearer <token>`.
157
+ - `pdfAssetsBaseUrl` (opcional): URL base donde el host publica los assets de `ngx-extended-pdf-viewer` (p. ej. `https://mi-app.com/assets`).
159
158
 
160
- ## 6) Consideraciones de integracion en MFE
159
+ Notas:
160
+ - Para PDFs/imágenes/texto/Excel el visor renderiza el `fileBlob` directamente.
161
+ - Para Word/PowerPoint el visor llama al microservicio de conversión y requiere `url` y `token`.
161
162
 
162
- - El componente prioriza `@Input()`; si no llegan valores por inputs, usa `queryParams` como fallback.
163
+ ## 6) Checklist de integración (microfront)
164
+
165
+ 1. **Tu microfront descarga/prepara el archivo** y le pasa el contenido al componente con `[fileBlob]`.
166
+ 2. **Opcional pero recomendado:** pasa `[fileBlobName]` para que el visor detecte la extensión con precisión (especialmente en blobs cuyo `type` es vacío o genérico).
167
+ 3. Si el documento es **Office (doc/docx/ppt/pptx)**, el microfront debe pasar `[url]` y `[token]` para que el visor ejecute la conversión a PDF.
168
+ 4. Verifica en red que el visor carga `viewer-*.mjs` y workers:
169
+ - recomendado: copiar `node_modules/ngx-extended-pdf-viewer/assets` al build vía `angular.json` (ver sección 3).
170
+ - alternativa: usar fallback CDN o definir `[pdfAssetsBaseUrl]`.
171
+
172
+ ## 7) Consideraciones de integracion en MFE
173
+
174
+ - El componente requiere `[fileBlob]` para renderizar.
163
175
  - En modales, usa contenedor con `height` definido y `overflow` para Excel grandes.
164
176
  - Para obtener token en host, puedes usar `localStorage` o tu servicio de autenticacion central.
165
- - Mantener contrato estable: ruta y forma de datos enviados al visor via inputs.
177
+ - Mantener contrato estable: forma de datos enviados al visor via inputs (`[fileBlob]`, `[fileBlobName]`, y `[url]`/`[token]` solo para Office->PDF).
166
178
 
167
- ## 7) Formatos soportados por el visor
179
+ ## 8) Formatos soportados por el visor
168
180
 
169
181
  - Procesamiento de texto: `.docx`, `.doc`
170
182
  - Hojas de calculo: `.xlsx`, `.xls`
@@ -173,7 +185,7 @@ export class PdfPreviewModalComponent {}
173
185
  - Texto plano: `.txt`
174
186
  - Imagenes: `.jpg`, `.png`, `.tiff`, `.gif`
175
187
 
176
- ## 8) Ejemplo rapido de instalacion local (desarrollo)
188
+ ## 9) Ejemplo rapido de instalacion local (desarrollo)
177
189
 
178
190
  Desde el repositorio de la libreria:
179
191
 
@@ -189,7 +201,7 @@ En el MFE host:
189
201
  npm install "C:/ruta/a/infodocviewdoc-<version>.tgz"
190
202
  ```
191
203
 
192
- ## 9) Public API exportada
204
+ ## 10) Public API exportada
193
205
 
194
206
  `public-api.ts` exporta:
195
207
 
@@ -200,4 +212,4 @@ npm install "C:/ruta/a/infodocviewdoc-<version>.tgz"
200
212
  Si integras este paquete en otro microfront, valida primero:
201
213
  1. dependencias del host,
202
214
  2. assets de `ngx-extended-pdf-viewer` en `angular.json` del target de build (recomendado) o, si no, que el entorno permita el fallback CDN / `pdfAssetsBaseUrl`,
203
- 3. envio correcto de `url`, `nameFile`, `nameBucket` y `token`.
215
+ 3. envio correcto de `fileBlob`/`fileBlobName`; y `url`/`token` **solo** si el archivo es Office (para conversión).