infodocviewdoc 1.0.0 → 2.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/fesm2022/infodocviewdoc.mjs +400 -41
- package/fesm2022/infodocviewdoc.mjs.map +1 -1
- package/lib/document-viewer/pages/pdf-viewer-page/pdf-viewer.component.d.ts +66 -6
- package/lib/document-viewer/services/file.service.d.ts +1 -0
- package/package.json +11 -23
- package/src/lib/document-viewer/assets/PPTXjs/css/nv.d3.min.css +4 -0
- package/src/lib/document-viewer/assets/PPTXjs/css/pptxjs.css +200 -0
- package/src/lib/document-viewer/assets/PPTXjs/js/d3.min.js +5 -0
- package/src/lib/document-viewer/assets/PPTXjs/js/dingbat.js +872 -0
- package/src/lib/document-viewer/assets/PPTXjs/js/divs2slides.js +517 -0
- package/src/lib/document-viewer/assets/PPTXjs/js/divs2slides.min.js +12 -0
- package/src/lib/document-viewer/assets/PPTXjs/js/filereader.js +455 -0
- package/src/lib/document-viewer/assets/PPTXjs/js/jquery-1.11.3.min.js +5 -0
- package/src/lib/document-viewer/assets/PPTXjs/js/jquery.fullscreen-min.js +10 -0
- package/src/lib/document-viewer/assets/PPTXjs/js/jszip.min.js +14 -0
- package/src/lib/document-viewer/assets/PPTXjs/js/nv.d3.min.js +10 -0
- package/src/lib/document-viewer/assets/PPTXjs/js/pptxjs.js +14104 -0
- package/src/lib/document-viewer/assets/PPTXjs/js/pptxjs.min.js +10 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infodocviewdoc.mjs","sources":["../../../projects/ui-components/src/lib/ui-components.service.ts","../../../projects/ui-components/src/lib/ui-components.component.ts","../../../projects/ui-components/src/lib/button/button.component.ts","../../../projects/ui-components/src/lib/button/button.component.html","../../../projects/ui-components/src/lib/document-viewer/services/file.service.ts","../../../projects/ui-components/src/lib/document-viewer/pages/pdf-viewer-page/pdf-viewer.component.ts","../../../projects/ui-components/src/lib/document-viewer/pages/pdf-viewer-page/pdf-viewer.component.html","../../../projects/ui-components/src/public-api.ts","../../../projects/ui-components/src/infodocviewdoc.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UiComponentsService {\r\n\r\n constructor() { }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'sgdea-ui-components',\r\n imports: [],\r\n template: `\r\n <p>\r\n ui-components works!\r\n </p>\r\n `,\r\n styles: ``\r\n})\r\nexport class UiComponentsComponent {\r\n\r\n}\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'sgdea-button',\r\n imports: [],\r\n templateUrl: './button.component.html',\r\n styleUrl: './button.component.css'\r\n})\r\nexport class ButtonComponent {\r\n @Input() label: string = 'Click me';\r\n @Input() type: 'primary' | 'secondary' | 'danger' = 'primary';\r\n @Input() disabled: boolean = false;\r\n @Input() size: 'small' | 'medium' | 'large' = 'medium';\r\n @Output() clicked = new EventEmitter<void>();\r\n\r\n onClick() {\r\n if (!this.disabled) {\r\n this.clicked.emit();\r\n }\r\n }\r\n}\r\n","<button \r\n class=\"sgdea-btn sgdea-btn--{{ type }} sgdea-btn--{{ size }}\"\r\n [disabled]=\"disabled\"\r\n (click)=\"onClick()\">\r\n {{ label }}\r\n</button>\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpClient,\r\n HttpErrorResponse,\r\n HttpHeaders\r\n} from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DocumentViewerFileService {\r\n constructor(private http: HttpClient) {}\r\n\r\n getFileByParams(params: {\r\n nameFile: string;\r\n nameBucket: string;\r\n nameSpaceBucket: string;\r\n url: string;\r\n token: string;\r\n }): Observable<Blob> {\r\n const endpoint = `${params.url}/api/v1/file/download?objectName=${encodeURIComponent(\r\n params.nameFile\r\n )}&bucketName=${params.nameBucket}`;\r\n\r\n const headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${params.token}`\r\n });\r\n\r\n return this.http\r\n .post(endpoint, {}, { headers, responseType: 'blob' })\r\n .pipe(\r\n catchError((error: HttpErrorResponse) => {\r\n const errorMessages: Record<number, string> = {\r\n 0: 'No hay conexión con el servidor',\r\n 400: 'Solicitud inválida',\r\n 401: 'No autorizado. Token inválido o expirado',\r\n 403: 'Acceso denegado',\r\n 404: 'Archivo no encontrado',\r\n 500: 'Error interno del servidor'\r\n };\r\n\r\n const message =\r\n errorMessages[error.status] ??\r\n 'Error inesperado al descargar el archivo';\r\n\r\n return throwError(() => new Error(message));\r\n })\r\n );\r\n }\r\n}\r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, OnInit, signal } from '@angular/core';\r\nimport { ActivatedRoute, Params } from '@angular/router';\r\nimport { NgxExtendedPdfViewerModule, NgxExtendedPdfViewerService } from 'ngx-extended-pdf-viewer';\r\nimport { DocumentViewerFileService } from '../../services/file.service';\r\n\r\n@Component({\r\n selector: 'sgdea-document-viewer',\r\n standalone: true,\r\n imports: [CommonModule, NgxExtendedPdfViewerModule],\r\n templateUrl: './pdf-viewer.component.html',\r\n styleUrls: ['./pdf-viewer.component.css'],\r\n providers: [NgxExtendedPdfViewerService]\r\n})\r\nexport class PdfViewerComponent implements OnInit {\r\n @Input() nameFile?: string;\r\n @Input() nameBucket?: string;\r\n @Input() nameSpaceBucket?: string;\r\n @Input() url?: string;\r\n @Input() token: string = '';\r\n\r\n pdfSrc?: string;\r\n loading = signal<boolean>(false);\r\n errorMessage = signal<string | null>(null);\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private fileService: DocumentViewerFileService,\r\n private pdfService: NgxExtendedPdfViewerService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n // 1) Si el host ya pasó valores por @Input, usarlos directamente\r\n if (\r\n this.url ||\r\n this.nameFile ||\r\n this.nameBucket ||\r\n this.nameSpaceBucket ||\r\n this.token\r\n ) {\r\n this.loadPdf();\r\n return;\r\n }\r\n\r\n // 2) Si no hay @Input, intentar leer desde query params (modo microfront original)\r\n this.route.queryParams.subscribe((params: Params) => {\r\n this.nameFile = this.nameFile ?? params['nameFile'];\r\n this.nameBucket = this.nameBucket ?? params['nameBucket'];\r\n this.nameSpaceBucket = this.nameSpaceBucket ?? params['nameSpaceBucket'];\r\n this.token = this.token || params['token'];\r\n this.url = this.url ?? params['url'];\r\n\r\n if (\r\n this.url ||\r\n this.nameFile ||\r\n this.nameBucket ||\r\n this.nameSpaceBucket ||\r\n this.token\r\n ) {\r\n this.loadPdf();\r\n } else {\r\n this.errorMessage.set(\r\n `No se han proporcionado los parámetros necesarios {url: ${this.url} nameFile: ${this.nameFile} nameBucket: ${this.nameBucket} nameSpaceBucket: ${this.nameSpaceBucket} token: ${this.token}}`\r\n );\r\n this.loading.set(false);\r\n this.errorMessage.set(null);\r\n }\r\n });\r\n }\r\n\r\n private loadPdf() {\r\n this.loading.set(true);\r\n this.errorMessage.set(null);\r\n\r\n this.fileService\r\n .getFileByParams({\r\n nameFile: this.nameFile!,\r\n nameBucket: this.nameBucket!,\r\n nameSpaceBucket: this.nameSpaceBucket!,\r\n url: this.url!,\r\n token: this.token!,\r\n })\r\n .subscribe({\r\n next: (blob) => {\r\n this.pdfSrc = URL.createObjectURL(blob);\r\n this.loading.set(false);\r\n this.errorMessage.set(null);\r\n },\r\n error: (err: Error) => {\r\n this.loading.set(false);\r\n this.errorMessage.set(err.message || 'Error al cargar el documento');\r\n },\r\n });\r\n }\r\n}\r\n\r\n","<div *ngIf=\"loading()\" class=\"loader\">\r\n Cargando documento...\r\n</div>\r\n\r\n<div *ngIf=\"errorMessage() && !loading()\" class=\"error-message\">\r\n {{ errorMessage() }}\r\n</div>\r\n\r\n<div class=\"pdf-viewer-container\">\r\n <ngx-extended-pdf-viewer\r\n *ngIf=\"pdfSrc && !loading()\"\r\n [src]=\"pdfSrc\"\r\n height=\"auto\"\r\n useBrowserLocale=\"false\"\r\n [showDownloadButton]=\"false\"\r\n [showPrintButton]=\"false\"\r\n [showOpenFileButton]=\"false\"\r\n [showSecondaryToolbarButton]=\"false\"\r\n [showFirstAndLastPageButtons]=\"false\"\r\n [showPagingButtons]=\"false\"\r\n [showZoomButtons]=\"false\"\r\n [showDrawEditor]=\"false\"\r\n [showTextEditor]=\"false\"\r\n [showStampEditor]=\"false\"\r\n [showHighlightEditor]=\"false\"\r\n >\r\n </ngx-extended-pdf-viewer>\r\n</div>\r\n\r\n","/*\r\n * Public API Surface of ui-components\r\n */\r\n\r\nexport * from './lib/ui-components.service';\r\nexport * from './lib/ui-components.component';\r\nexport * from './lib/button/button.component';\r\nexport * from './lib/document-viewer/pages/pdf-viewer-page/pdf-viewer.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.DocumentViewerFileService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"infodocviewdoc.mjs","sources":["../../../projects/ui-components/src/lib/ui-components.service.ts","../../../projects/ui-components/src/lib/ui-components.component.ts","../../../projects/ui-components/src/lib/button/button.component.ts","../../../projects/ui-components/src/lib/button/button.component.html","../../../projects/ui-components/src/lib/document-viewer/services/file.service.ts","../../../projects/ui-components/src/lib/document-viewer/pages/pdf-viewer-page/pdf-viewer.component.ts","../../../projects/ui-components/src/lib/document-viewer/pages/pdf-viewer-page/pdf-viewer.component.html","../../../projects/ui-components/src/public-api.ts","../../../projects/ui-components/src/infodocviewdoc.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UiComponentsService {\r\n\r\n constructor() { }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'sgdea-ui-components',\r\n imports: [],\r\n template: `\r\n <p>\r\n ui-components works!\r\n </p>\r\n `,\r\n styles: ``\r\n})\r\nexport class UiComponentsComponent {\r\n\r\n}\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'sgdea-button',\r\n imports: [],\r\n templateUrl: './button.component.html',\r\n styleUrl: './button.component.css'\r\n})\r\nexport class ButtonComponent {\r\n @Input() label: string = 'Click me';\r\n @Input() type: 'primary' | 'secondary' | 'danger' = 'primary';\r\n @Input() disabled: boolean = false;\r\n @Input() size: 'small' | 'medium' | 'large' = 'medium';\r\n @Output() clicked = new EventEmitter<void>();\r\n\r\n onClick() {\r\n if (!this.disabled) {\r\n this.clicked.emit();\r\n }\r\n }\r\n}\r\n","<button \r\n class=\"sgdea-btn sgdea-btn--{{ type }} sgdea-btn--{{ size }}\"\r\n [disabled]=\"disabled\"\r\n (click)=\"onClick()\">\r\n {{ label }}\r\n</button>\r\n","import { Injectable } from '@angular/core';\nimport {\n HttpClient,\n HttpErrorResponse,\n HttpHeaders\n} from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, switchMap } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DocumentViewerFileService {\n constructor(private http: HttpClient) {}\n\n getFileByParams(params: {\n nameFile: string;\n nameBucket: string;\n nameSpaceBucket: string;\n url: string;\n token: string;\n }): Observable<Blob> {\n const endpoint = `${params.url}/api/v1/file/download?objectName=${encodeURIComponent(\n params.nameFile\n )}&bucketName=${params.nameBucket}`;\n\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${params.token}`\n });\n\n return this.http\n .post(endpoint, {}, { headers, responseType: 'blob' })\n .pipe(\n catchError((error: HttpErrorResponse) => {\n const errorMessages: Record<number, string> = {\n 0: 'No hay conexión con el servidor',\n 400: 'Solicitud inválida',\n 401: 'No autorizado. Token inválido o expirado',\n 403: 'Acceso denegado',\n 404: 'Archivo no encontrado',\n 500: 'Error interno del servidor'\n };\n\n const message =\n errorMessages[error.status] ??\n 'Error inesperado al descargar el archivo';\n\n return throwError(() => new Error(message));\n })\n );\n }\n\n convertDocumentToPdf(file: Blob, token: string, baseApiUrl: string): Observable<Blob> {\n const url = `${baseApiUrl}/api/v1/file/${\n file.type === '.ppt' || file.type === '.pptx'\n ? 'conversion-ppt-to-pdf'\n : 'conversion-word-to-pdf'\n }`;\n\n const headers = new HttpHeaders({\n Authorization: `Bearer ${token}`,\n });\n\n const formData = new FormData();\n formData.append('file', file, 'documento.docx');\n\n return this.http\n .post<{ downloadUrl: string }>(url, formData, { headers })\n .pipe(\n switchMap((response) => {\n if (!response?.downloadUrl) {\n throw new Error('No se recibió downloadUrl');\n }\n\n return this.http.get(`${baseApiUrl}${response.downloadUrl}`, {\n headers,\n responseType: 'blob',\n });\n }),\n catchError((error: HttpErrorResponse) => {\n const errorMessages: Record<number, string> = {\n 0: 'No hay conexión con el servidor',\n 400: 'Solicitud inválida',\n 401: 'No autorizado. Token inválido o expirado',\n 403: 'Acceso denegado',\n 404: 'Archivo no encontrado',\n 500: 'Error interno del servidor',\n };\n\n const message =\n errorMessages[error.status] ??\n 'Error inesperado al convertir el archivo a PDF';\n\n return throwError(() => new Error(message));\n }),\n );\n }\n}\n\n","import {\n Component,\n OnInit,\n OnDestroy,\n signal,\n ViewChild,\n ElementRef,\n Input,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ActivatedRoute, Params } from '@angular/router';\nimport { NgxExtendedPdfViewerModule } from 'ngx-extended-pdf-viewer';\nimport { DocumentViewerFileService } from '../../services/file.service';\n\nimport Handsontable from 'handsontable';\nimport { HotTableModule } from '@handsontable/angular';\nimport 'handsontable/dist/handsontable.full.css';\n\n@Component({\n selector: 'sgdea-document-viewer',\n standalone: true,\n imports: [CommonModule, NgxExtendedPdfViewerModule, HotTableModule],\n templateUrl: './pdf-viewer.component.html',\n styleUrls: ['./pdf-viewer.component.css'],\n})\nexport class PdfViewerComponent implements OnInit, OnDestroy {\n // Entradas directas desde el host (opcionalmente se pueden pasar por @Input)\n @Input() nameFile?: string;\n @Input() nameBucket?: string;\n @Input() nameSpaceBucket?: string;\n @Input() url?: string;\n @Input() token: string = '';\n\n pdfSrc?: string;\n imageSrc?: string;\n textContent?: string;\n officeContent?: string;\n\n loading = signal(false);\n errorMessage = signal<string | null>(null);\n fileType = signal<string>('unknown');\n fileName = signal<string>('');\n\n private readonly extensionToType: { [key: string]: string } = {\n pdf: 'pdf',\n docx: 'docx',\n doc: 'doc',\n xlsx: 'xlsx',\n xls: 'xls',\n pptx: 'pptx',\n ppt: 'ppt',\n txt: 'txt',\n md: 'txt',\n csv: 'txt',\n log: 'txt',\n json: 'txt',\n xml: 'txt',\n html: 'txt',\n css: 'txt',\n js: 'txt',\n ts: 'txt',\n java: 'txt',\n py: 'txt',\n cpp: 'txt',\n c: 'txt',\n h: 'txt',\n php: 'txt',\n rb: 'txt',\n go: 'txt',\n rs: 'txt',\n swift: 'txt',\n kt: 'txt',\n sql: 'txt',\n jpg: 'image',\n jpeg: 'image',\n png: 'image',\n gif: 'image',\n tiff: 'image',\n bmp: 'image',\n svg: 'image',\n webp: 'image',\n };\n\n // Excel\n excelData: any[][] = [];\n excelColumns: any[] = [];\n excelColumnHeaders: string[] = [];\n excelSettings: any = {};\n excelSheetNames: string[] = [];\n excelCurrentSheetIndex = signal(0);\n showExcelViewer = false;\n private excelWorkbook: any = null;\n private xlsxModule: any = null;\n\n // Imagen (zoom, rotación, arrastre)\n zoomLevel = signal(100);\n rotation = signal(0);\n minZoom = 25;\n maxZoom = 400;\n zoomStep = 25;\n isDragging = false;\n dragStart = { x: 0, y: 0 };\n imagePosition = { x: 0, y: 0 };\n imageDimensions = { width: 0, height: 0 };\n\n @ViewChild('imageContainer') imageContainer!: ElementRef;\n @ViewChild('mainImage') mainImage!: ElementRef;\n\n private librariesPreloaded = {\n pdf: false,\n excel: false,\n xlsx: false,\n jspdf: false,\n };\n\n constructor(\n private route: ActivatedRoute,\n private fileService: DocumentViewerFileService,\n ) {}\n\n ngOnInit(): void {\n // 1) Si el host pasó valores por @Input, usarlos directamente\n if (\n this.url ||\n this.nameFile ||\n this.nameBucket ||\n this.nameSpaceBucket ||\n this.token\n ) {\n if (this.nameFile) this.fileName.set(this.nameFile);\n this.detectFileType();\n void this.loadWithPreload();\n return;\n }\n\n // 2) Si no hay @Input, leer query params (modo microfront)\n this.route.queryParams.subscribe((params: Params) => {\n this.nameFile = this.nameFile ?? params['nameFile'];\n this.nameBucket = this.nameBucket ?? params['nameBucket'];\n this.nameSpaceBucket = this.nameSpaceBucket ?? params['nameSpaceBucket'];\n this.token = this.token || params['token'];\n this.url = this.url ?? params['url'];\n\n if (this.nameFile) {\n this.fileName.set(this.nameFile);\n }\n\n this.detectFileType();\n void this.loadWithPreload();\n });\n }\n\n ngOnDestroy(): void {\n if (this.pdfSrc) URL.revokeObjectURL(this.pdfSrc);\n if (this.imageSrc) URL.revokeObjectURL(this.imageSrc);\n }\n\n private detectFileType(): void {\n let extension = '';\n if (this.url) {\n extension = this.url.split('.').pop()?.toLowerCase() || '';\n } else if (this.nameFile) {\n extension = this.nameFile.split('.').pop()?.toLowerCase() || '';\n }\n this.fileType.set(this.extensionToType[extension] || 'unknown');\n if (this.fileType() !== 'unknown') {\n void this.preloadLibrariesForType(this.fileType());\n }\n }\n\n private async loadWithPreload(): Promise<void> {\n this.loading.set(true);\n this.errorMessage.set(null);\n\n try {\n const preloadPromise = this.preloadLibrariesForType(this.fileType());\n const documentPromise = this.fileService\n .getFileByParams({\n nameFile: this.nameFile!,\n nameBucket: this.nameBucket!,\n nameSpaceBucket: this.nameSpaceBucket!,\n url: this.url!,\n token: this.token!,\n })\n .toPromise();\n\n const [blob] = await Promise.all([documentPromise, preloadPromise]);\n this.processFile(blob!);\n } catch (error: any) {\n this.errorMessage.set(error.message || 'Error al cargar el documento');\n this.loading.set(false);\n }\n }\n\n private async preloadLibrariesForType(type: string): Promise<void> {\n const preloadTasks: Promise<any>[] = [];\n\n if (!this.librariesPreloaded.pdf) {\n preloadTasks.push(import('ngx-extended-pdf-viewer').then(() => (this.librariesPreloaded.pdf = true)));\n }\n\n if (type === 'txt' && !this.librariesPreloaded.jspdf) {\n preloadTasks.push(import('jspdf').then(() => (this.librariesPreloaded.jspdf = true)));\n }\n\n if (type === 'xlsx' || type === 'xls') {\n if (!this.librariesPreloaded.xlsx) {\n preloadTasks.push(\n import('xlsx').then((module) => {\n this.xlsxModule = module;\n this.librariesPreloaded.xlsx = true;\n }),\n );\n }\n if (!this.librariesPreloaded.excel) {\n preloadTasks.push(import('handsontable').then(() => (this.librariesPreloaded.excel = true)));\n }\n }\n\n if (preloadTasks.length > 0) {\n await Promise.allSettled(preloadTasks);\n }\n }\n\n private processFile(blob: Blob): void {\n const type = this.fileType();\n\n switch (true) {\n case type === 'pdf':\n this.handlePdfFile(blob);\n break;\n case type === 'image':\n this.handleImageFile(blob);\n break;\n case type === 'txt':\n void this.convertTextToPdf(blob);\n break;\n case ['xlsx', 'xls'].includes(type):\n void this.processExcelFile(blob);\n break;\n case ['docx', 'doc', 'pptx', 'ppt'].includes(type):\n this.convertOfficeToPdf(blob);\n break;\n default:\n this.errorMessage.set('Formato no soportado');\n this.loading.set(false);\n }\n }\n\n private handlePdfFile(blob: Blob): void {\n this.pdfSrc = URL.createObjectURL(blob);\n this.loading.set(false);\n }\n\n private handleImageFile(blob: Blob): void {\n this.imageSrc = URL.createObjectURL(blob);\n this.loading.set(false);\n }\n\n private convertOfficeToPdf(blob: Blob): void {\n this.fileService.convertDocumentToPdf(blob, this.token!, this.url!).subscribe({\n next: (pdfBlob) => {\n this.pdfSrc = URL.createObjectURL(pdfBlob);\n this.fileType.set('pdf');\n this.loading.set(false);\n },\n error: (error) => {\n this.errorMessage.set(error.message || 'Error al convertir el archivo a PDF');\n this.loading.set(false);\n },\n });\n }\n\n private async convertTextToPdf(blob: Blob): Promise<void> {\n try {\n const text = await blob.text();\n if (!this.librariesPreloaded.jspdf) {\n await import('jspdf');\n }\n const { default: jsPDF } = await import('jspdf');\n const pdf = new jsPDF({ orientation: 'portrait', unit: 'pt', format: 'a4' });\n const pageWidth = pdf.internal.pageSize.getWidth();\n const pageHeight = pdf.internal.pageSize.getHeight();\n const margin = 40;\n const maxLineWidth = pageWidth - margin * 2;\n pdf.setFontSize(11);\n pdf.setFont('helvetica');\n let yPosition = margin;\n const lineHeight = 15;\n const paragraphs = text.split('\\n');\n for (const paragraph of paragraphs) {\n if (paragraph.trim() === '') {\n yPosition += lineHeight;\n continue;\n }\n const lines = pdf.splitTextToSize(paragraph, maxLineWidth);\n for (const line of lines) {\n if (yPosition > pageHeight - margin) {\n pdf.addPage();\n yPosition = margin;\n }\n pdf.text(line, margin, yPosition);\n yPosition += lineHeight;\n }\n yPosition += lineHeight / 2;\n }\n const pdfBlob = pdf.output('blob');\n this.pdfSrc = URL.createObjectURL(pdfBlob);\n this.fileType.set('pdf');\n this.loading.set(false);\n } catch {\n const reader = new FileReader();\n reader.onload = (e) => {\n this.textContent = e.target?.result as string;\n this.loading.set(false);\n };\n reader.readAsText(blob);\n }\n }\n\n private async processExcelFile(blob: Blob): Promise<void> {\n try {\n if (!this.xlsxModule) {\n this.xlsxModule = await import('xlsx');\n }\n const buffer = await blob.arrayBuffer();\n this.excelWorkbook = this.xlsxModule.read(buffer, { type: 'array' });\n this.excelSheetNames = [...this.excelWorkbook.SheetNames];\n await this.loadExcelSheetByIndex(0);\n this.buildExcelSettings();\n this.showExcelViewer = true;\n this.loading.set(false);\n } catch {\n this.errorMessage.set('Error procesando Excel');\n this.loading.set(false);\n }\n }\n\n private async loadExcelSheetByIndex(index: number): Promise<void> {\n if (!this.excelWorkbook || !this.xlsxModule) return;\n this.showExcelViewer = false;\n const sheetName = this.excelSheetNames[index];\n const worksheet = this.excelWorkbook.Sheets[sheetName];\n if (!worksheet) return;\n let jsonData = this.xlsxModule.utils.sheet_to_json(worksheet, { header: 1, defval: '' }) as any[][];\n if (!Array.isArray(jsonData) || jsonData.length === 0) {\n jsonData = [['(Hoja vacía)']];\n }\n const headers = (jsonData[0] ?? []).map((h: any) => String(h ?? ''));\n const data = jsonData.slice(1);\n this.excelColumnHeaders = headers.length > 0 ? headers : [''];\n const maxColumns = Math.max(this.excelColumnHeaders.length, ...data.map((row) => row.length));\n this.excelColumnHeaders = Array.from({ length: maxColumns }, (_, i) => this.excelColumnHeaders[i] ?? `Col ${i + 1}`);\n this.excelData = data.map((row) => Array.from({ length: maxColumns }, (_, i) => row[i] ?? ''));\n this.excelColumns = Array.from({ length: maxColumns }, () => ({ type: 'text' }));\n this.excelCurrentSheetIndex.set(index);\n this.showExcelViewer = true;\n }\n\n selectExcelSheet(index: number): void {\n void this.loadExcelSheetByIndex(index);\n }\n\n private buildExcelSettings(): void {\n this.excelSettings = {\n licenseKey: 'non-commercial-and-evaluation',\n colHeaders: this.excelColumnHeaders,\n rowHeaders: true,\n stretchH: 'all',\n contextMenu: true,\n filters: true,\n dropdownMenu: true,\n readOnly: true,\n manualColumnResize: true,\n manualRowResize: true,\n columnSorting: true,\n height: '100%',\n width: '100%',\n };\n }\n\n // Helpers para template\n isExcelType(): boolean {\n return ['xlsx', 'xls'].includes(this.fileType());\n }\n\n isImageType(): boolean {\n return this.fileType() === 'image';\n }\n\n // Imagen: zoom/rotación/arrastre\n zoomIn(): void {\n this.zoomLevel.set(Math.min(this.zoomLevel() + this.zoomStep, this.maxZoom));\n }\n\n zoomOut(): void {\n this.zoomLevel.set(Math.max(this.zoomLevel() - this.zoomStep, this.minZoom));\n }\n\n rotateLeft(): void {\n this.rotation.set((this.rotation() - 90) % 360);\n }\n\n rotateRight(): void {\n this.rotation.set((this.rotation() + 90) % 360);\n }\n\n getImageTransform(): string {\n const scale = this.zoomLevel() / 100;\n const translate = `translate(${this.imagePosition.x}px, ${this.imagePosition.y}px)`;\n const rotate = `rotate(${this.rotation()}deg)`;\n const scaleStr = `scale(${scale})`;\n return `${translate} ${rotate} ${scaleStr}`;\n }\n\n getCursorStyle(): string {\n return this.zoomLevel() > 100 ? (this.isDragging ? 'grabbing' : 'grab') : 'default';\n }\n\n onImageLoad(): void {\n try {\n const imgEl = this.mainImage?.nativeElement as HTMLImageElement;\n this.imageDimensions = { width: imgEl.naturalWidth, height: imgEl.naturalHeight };\n } catch { /* noop */ }\n }\n\n onMouseWheel(event: WheelEvent): void {\n event.preventDefault();\n if (event.deltaY < 0) this.zoomIn();\n else this.zoomOut();\n }\n\n startDrag(event: MouseEvent): void {\n if (this.zoomLevel() <= 100) return;\n this.isDragging = true;\n this.dragStart = { x: event.clientX - this.imagePosition.x, y: event.clientY - this.imagePosition.y };\n }\n\n onDrag(event: MouseEvent): void {\n if (!this.isDragging) return;\n this.imagePosition = { x: event.clientX - this.dragStart.x, y: event.clientY - this.dragStart.y };\n }\n\n stopDrag(): void {\n this.isDragging = false;\n }\n}\n\n","<div *ngIf=\"loading()\" class=\"loader\">Cargando documento...</div>\n\n<div *ngIf=\"errorMessage() && !loading()\" class=\"error-message\">\n {{ errorMessage() }}\n</div>\n\n<div *ngIf=\"!loading() && !errorMessage()\" class=\"document-viewer-container\">\n\n <!-- PDF -->\n <ngx-extended-pdf-viewer\n *ngIf=\"fileType() === 'pdf' && pdfSrc\"\n [src]=\"pdfSrc\"\n height=\"auto\"\n useBrowserLocale=\"false\"\n [showDownloadButton]=\"false\"\n [showPrintButton]=\"false\"\n [showOpenFileButton]=\"false\"\n [showSecondaryToolbarButton]=\"false\"\n [showFirstAndLastPageButtons]=\"false\"\n [showPagingButtons]=\"false\"\n [showZoomButtons]=\"true\"\n [showDrawEditor]=\"false\"\n [showTextEditor]=\"false\"\n [showStampEditor]=\"false\"\n [showHighlightEditor]=\"false\"\n >\n </ngx-extended-pdf-viewer>\n\n <!-- Imagen -->\n <div *ngIf=\"isImageType() && imageSrc\" class=\"image-viewer\">\n <div class=\"image-toolbar\">\n <button (click)=\"zoomIn()\" title=\"Acercar (Ctrl +)\">➕</button>\n <button (click)=\"zoomOut()\" title=\"Alejar (Ctrl -)\">➖</button>\n <span class=\"separator\"></span>\n <button (click)=\"rotateLeft()\" title=\"Rotar izquierda (↺)\">↺</button>\n <button (click)=\"rotateRight()\" title=\"Rotar derecha (↻)\">↻</button>\n\n <span class=\"zoom-info\">{{ zoomLevel() }}%</span>\n <span class=\"rotation-info\" *ngIf=\"rotation() !== 0\">\n {{ rotation() }}°\n </span>\n\n <span class=\"image-dimensions\" *ngIf=\"imageDimensions.width\">\n {{ imageDimensions.width }} x {{ imageDimensions.height }}\n </span>\n </div>\n\n <div class=\"image-container\" #imageContainer (wheel)=\"onMouseWheel($event)\">\n <img\n #mainImage\n [src]=\"imageSrc\"\n [alt]=\"fileName()\"\n [style.transform]=\"getImageTransform()\"\n [style.cursor]=\"getCursorStyle()\"\n (load)=\"onImageLoad()\"\n (mousedown)=\"startDrag($event)\"\n (mousemove)=\"onDrag($event)\"\n (mouseup)=\"stopDrag()\"\n (mouseleave)=\"stopDrag()\"\n class=\"zoomable-image\"\n />\n </div>\n\n <div class=\"image-footer\" *ngIf=\"zoomLevel() > 100\">\n <small>Arrastra para mover la imagen</small>\n </div>\n </div>\n\n <!-- Excel -->\n <div *ngIf=\"isExcelType()\" class=\"excel-viewer-container\">\n <div *ngIf=\"excelSheetNames.length > 1\" class=\"excel-sheet-tabs\">\n <button\n *ngFor=\"let sheet of excelSheetNames; let i = index\"\n type=\"button\"\n class=\"excel-sheet-tab\"\n [class.active]=\"excelCurrentSheetIndex() === i\"\n (click)=\"selectExcelSheet(i)\"\n >\n {{ sheet }}\n </button>\n </div>\n\n <hot-table\n *ngIf=\"showExcelViewer\"\n #hotTable\n [settings]=\"excelSettings\"\n [data]=\"excelData\"\n [colHeaders]=\"excelColumnHeaders\"\n [rowHeaders]=\"true\"\n [width]=\"'100%'\"\n [height]=\"'100%'\"\n licenseKey=\"non-commercial-and-evaluation\"\n [columns]=\"excelColumns\"\n >\n </hot-table>\n\n <div *ngIf=\"!showExcelViewer\" class=\"loader\">\n Cargando hoja...\n </div>\n </div>\n</div>\n\n","/*\r\n * Public API Surface of ui-components\r\n */\r\n\r\nexport * from './lib/ui-components.service';\r\nexport * from './lib/ui-components.component';\r\nexport * from './lib/button/button.component';\r\nexport * from './lib/document-viewer/pages/pdf-viewer-page/pdf-viewer.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.DocumentViewerFileService"],"mappings":"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"}
|
|
@@ -1,23 +1,83 @@
|
|
|
1
|
-
import { OnInit } from '@angular/core';
|
|
1
|
+
import { OnInit, OnDestroy, ElementRef } from '@angular/core';
|
|
2
2
|
import { ActivatedRoute } from '@angular/router';
|
|
3
|
-
import { NgxExtendedPdfViewerService } from 'ngx-extended-pdf-viewer';
|
|
4
3
|
import { DocumentViewerFileService } from '../../services/file.service';
|
|
4
|
+
import 'handsontable/dist/handsontable.full.css';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class PdfViewerComponent implements OnInit {
|
|
6
|
+
export declare class PdfViewerComponent implements OnInit, OnDestroy {
|
|
7
7
|
private route;
|
|
8
8
|
private fileService;
|
|
9
|
-
private pdfService;
|
|
10
9
|
nameFile?: string;
|
|
11
10
|
nameBucket?: string;
|
|
12
11
|
nameSpaceBucket?: string;
|
|
13
12
|
url?: string;
|
|
14
13
|
token: string;
|
|
15
14
|
pdfSrc?: string;
|
|
15
|
+
imageSrc?: string;
|
|
16
|
+
textContent?: string;
|
|
17
|
+
officeContent?: string;
|
|
16
18
|
loading: import("@angular/core").WritableSignal<boolean>;
|
|
17
19
|
errorMessage: import("@angular/core").WritableSignal<string | null>;
|
|
18
|
-
|
|
20
|
+
fileType: import("@angular/core").WritableSignal<string>;
|
|
21
|
+
fileName: import("@angular/core").WritableSignal<string>;
|
|
22
|
+
private readonly extensionToType;
|
|
23
|
+
excelData: any[][];
|
|
24
|
+
excelColumns: any[];
|
|
25
|
+
excelColumnHeaders: string[];
|
|
26
|
+
excelSettings: any;
|
|
27
|
+
excelSheetNames: string[];
|
|
28
|
+
excelCurrentSheetIndex: import("@angular/core").WritableSignal<number>;
|
|
29
|
+
showExcelViewer: boolean;
|
|
30
|
+
private excelWorkbook;
|
|
31
|
+
private xlsxModule;
|
|
32
|
+
zoomLevel: import("@angular/core").WritableSignal<number>;
|
|
33
|
+
rotation: import("@angular/core").WritableSignal<number>;
|
|
34
|
+
minZoom: number;
|
|
35
|
+
maxZoom: number;
|
|
36
|
+
zoomStep: number;
|
|
37
|
+
isDragging: boolean;
|
|
38
|
+
dragStart: {
|
|
39
|
+
x: number;
|
|
40
|
+
y: number;
|
|
41
|
+
};
|
|
42
|
+
imagePosition: {
|
|
43
|
+
x: number;
|
|
44
|
+
y: number;
|
|
45
|
+
};
|
|
46
|
+
imageDimensions: {
|
|
47
|
+
width: number;
|
|
48
|
+
height: number;
|
|
49
|
+
};
|
|
50
|
+
imageContainer: ElementRef;
|
|
51
|
+
mainImage: ElementRef;
|
|
52
|
+
private librariesPreloaded;
|
|
53
|
+
constructor(route: ActivatedRoute, fileService: DocumentViewerFileService);
|
|
19
54
|
ngOnInit(): void;
|
|
20
|
-
|
|
55
|
+
ngOnDestroy(): void;
|
|
56
|
+
private detectFileType;
|
|
57
|
+
private loadWithPreload;
|
|
58
|
+
private preloadLibrariesForType;
|
|
59
|
+
private processFile;
|
|
60
|
+
private handlePdfFile;
|
|
61
|
+
private handleImageFile;
|
|
62
|
+
private convertOfficeToPdf;
|
|
63
|
+
private convertTextToPdf;
|
|
64
|
+
private processExcelFile;
|
|
65
|
+
private loadExcelSheetByIndex;
|
|
66
|
+
selectExcelSheet(index: number): void;
|
|
67
|
+
private buildExcelSettings;
|
|
68
|
+
isExcelType(): boolean;
|
|
69
|
+
isImageType(): boolean;
|
|
70
|
+
zoomIn(): void;
|
|
71
|
+
zoomOut(): void;
|
|
72
|
+
rotateLeft(): void;
|
|
73
|
+
rotateRight(): void;
|
|
74
|
+
getImageTransform(): string;
|
|
75
|
+
getCursorStyle(): string;
|
|
76
|
+
onImageLoad(): void;
|
|
77
|
+
onMouseWheel(event: WheelEvent): void;
|
|
78
|
+
startDrag(event: MouseEvent): void;
|
|
79
|
+
onDrag(event: MouseEvent): void;
|
|
80
|
+
stopDrag(): void;
|
|
21
81
|
static ɵfac: i0.ɵɵFactoryDeclaration<PdfViewerComponent, never>;
|
|
22
82
|
static ɵcmp: i0.ɵɵComponentDeclaration<PdfViewerComponent, "sgdea-document-viewer", never, { "nameFile": { "alias": "nameFile"; "required": false; }; "nameBucket": { "alias": "nameBucket"; "required": false; }; "nameSpaceBucket": { "alias": "nameSpaceBucket"; "required": false; }; "url": { "alias": "url"; "required": false; }; "token": { "alias": "token"; "required": false; }; }, {}, never, never, true, never>;
|
|
23
83
|
}
|
|
@@ -11,6 +11,7 @@ export declare class DocumentViewerFileService {
|
|
|
11
11
|
url: string;
|
|
12
12
|
token: string;
|
|
13
13
|
}): Observable<Blob>;
|
|
14
|
+
convertDocumentToPdf(file: Blob, token: string, baseApiUrl: string): Observable<Blob>;
|
|
14
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<DocumentViewerFileService, never>;
|
|
15
16
|
static ɵprov: i0.ɵɵInjectableDeclaration<DocumentViewerFileService>;
|
|
16
17
|
}
|
package/package.json
CHANGED
|
@@ -1,32 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "infodocviewdoc",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/
|
|
6
|
-
"@angular/
|
|
7
|
-
"@angular/
|
|
8
|
-
"@angular/
|
|
9
|
-
"@angular/core": "19.2.4",
|
|
10
|
-
"@angular/forms": "19.2.4",
|
|
11
|
-
"@angular/material": "^19.2.9",
|
|
12
|
-
"@angular/platform-browser": "19.2.4",
|
|
13
|
-
"@angular/platform-browser-dynamic": "19.2.4",
|
|
14
|
-
"@angular/router": "19.2.4",
|
|
15
|
-
"@ngxs/devtools-plugin": "^19.0.0",
|
|
16
|
-
"@ngxs/storage-plugin": "^19.0.0",
|
|
17
|
-
"@ngxs/store": "^19.0.0",
|
|
18
|
-
"@softarc/native-federation-node": "^2.0.10",
|
|
19
|
-
"@swimlane/ngx-datatable": "^21.0.0-alpha.1",
|
|
20
|
-
"es-module-shims": "1.5.12",
|
|
5
|
+
"@angular/common": "^19.2.0",
|
|
6
|
+
"@angular/core": "^19.2.0",
|
|
7
|
+
"@angular/platform-browser": "^19.2.0",
|
|
8
|
+
"@angular/router": "^19.2.0",
|
|
21
9
|
"ngx-extended-pdf-viewer": "^25.6.4",
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
10
|
+
"@handsontable/angular": "^16.2.0",
|
|
11
|
+
"handsontable": "^16.2.0",
|
|
12
|
+
"xlsx": "^0.18.5",
|
|
13
|
+
"jspdf": "^4.1.0",
|
|
14
|
+
"rxjs": "~7.8.0"
|
|
27
15
|
},
|
|
28
16
|
"dependencies": {
|
|
29
|
-
"tslib": "2.3.0"
|
|
17
|
+
"tslib": "^2.3.0"
|
|
30
18
|
},
|
|
31
19
|
"sideEffects": false,
|
|
32
20
|
"module": "fesm2022/infodocviewdoc.mjs",
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
.nvd3 .nv-axis line,.nvd3 .nv-axis path{fill:none;shape-rendering:crispEdges}.nv-brush .extent,.nvd3 .background path,.nvd3 .nv-axis line,.nvd3 .nv-axis path{shape-rendering:crispEdges}.nv-distx,.nv-disty,.nv-noninteractive,.nvd3 .nv-axis,.nvd3.nv-pie .nv-label,.nvd3.nv-sparklineplus g.nv-hoverValue{pointer-events:none}.nvtooltip,svg.nvd3-svg{display:block;-webkit-touch-callout:none;-khtml-user-select:none}.nvd3 .nv-axis{opacity:1}.nvd3 .nv-axis.nv-disabled,.nvd3 .nv-controlsWrap .nv-legend .nv-check-box .nv-check{opacity:0}.nvd3 .nv-axis path{stroke:#000;stroke-opacity:.75}.nvd3 .nv-axis path.domain{stroke-opacity:.75}.nvd3 .nv-axis.nv-x path.domain{stroke-opacity:0}.nvd3 .nv-axis line{stroke:#e5e5e5}.nvd3 .nv-axis .zero line, .nvd3 .nv-axis line.zero{stroke-opacity:.75}.nvd3 .nv-axis .nv-axisMaxMin text{font-weight:700}.nvd3 .x .nv-axis .nv-axisMaxMin text,.nvd3 .x2 .nv-axis .nv-axisMaxMin text,.nvd3 .x3 .nv-axis .nv-axisMaxMin text{text-anchor:middle}.nvd3 .nv-bars rect{fill-opacity:.75;transition:fill-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear}.nvd3 .nv-bars rect.hover{fill-opacity:1}.nvd3 .nv-bars .hover rect{fill:#add8e6}.nvd3 .nv-bars text{fill:transparent}.nvd3 .nv-bars .hover text{fill:rgba(0,0,0,1)}.nvd3 .nv-discretebar .nv-groups rect,.nvd3 .nv-multibar .nv-groups rect,.nvd3 .nv-multibarHorizontal .nv-groups rect{stroke-opacity:0;transition:fill-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear}.nvd3 .nv-candlestickBar .nv-ticks rect:hover,.nvd3 .nv-discretebar .nv-groups rect:hover,.nvd3 .nv-multibar .nv-groups rect:hover,.nvd3 .nv-multibarHorizontal .nv-groups rect:hover{fill-opacity:1}.nvd3 .nv-discretebar .nv-groups text,.nvd3 .nv-multibarHorizontal .nv-groups text{font-weight:700;fill:rgba(0,0,0,1);stroke:transparent}.nvd3.nv-pie .nv-label rect{fill-opacity:0;stroke-opacity:0}.nvd3 .nv-groups .nv-point.hover{stroke-width:20px;stroke-opacity:.5}.nvtooltip{position:absolute;color:rgba(0,0,0,1);padding:1px;z-index:10000;font-family:Arial;font-size:13px;text-align:left;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:rgba(255,255,255,.8);border:1px solid rgba(0,0,0,.5);border-radius:4px}.nvd3 line.nv-guideline{stroke:#ccc}
|
|
2
|
+
/* trimmed for package size */
|
|
3
|
+
.nvd3 .nv-axis line,.nvd3 .nv-axis path{fill:none;shape-rendering:crispEdges}.nv-brush .extent,.nvd3 .background path,.nvd3 .nv-axis line,.nvd3 .nv-axis path{shape-rendering:crispEdges}.nv-distx,.nv-disty,.nv-noninteractive,.nvd3 .nv-axis,.nvd3.nv-pie .nv-label,.nvd3.nv-sparklineplus g.nv-hoverValue{pointer-events:none}.nvtooltip,svg.nvd3-svg{display:block;-webkit-touch-callout:none;-khtml-user-select:none}.nvd3 .nv-axis{opacity:1}.nvd3 .nv-axis.nv-disabled,.nvd3 .nv-controlsWrap .nv-legend .nv-check-box .nv-check{opacity:0}.nvd3 .nv-axis path{stroke:#000;stroke-opacity:.75}.nvd3 .nv-axis path.domain{stroke-opacity:.75}.nvd3 .nv-axis.nv-x path.domain{stroke-opacity:0}.nvd3 .nv-axis line{stroke:#e5e5e5}.nvd3 .nv-axis .zero line, .nvd3 .nv-axis line.zero{stroke-opacity:.75}.nvd3 .nv-axis .nv-axisMaxMin text{font-weight:700}.nvd3 .x .nv-axis .nv-axisMaxMin text,.nvd3 .x2 .nv-axis .nv-axisMaxMin text,.nvd3 .x3 .nv-axis .nv-axisMaxMin text{text-anchor:middle}.nvd3 .nv-bars rect{fill-opacity:.75;transition:fill-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear}.nvd3 .nv-bars rect.hover{fill-opacity:1}.nvd3 .nv-bars .hover rect{fill:#add8e6}.nvd3 .nv-bars text{fill:transparent}.nvd3 .nv-bars .hover text{fill:rgba(0,0,0,1)}.nvd3 .nv-discretebar .nv-groups rect,.nvd3 .nv-multibar .nv-groups rect,.nvd3 .nv-multibarHorizontal .nv-groups rect{stroke-opacity:0;transition:fill-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear}.nvd3 .nv-candlestickBar .nv-ticks rect:hover,.nvd3 .nv-discretebar .nv-groups rect:hover,.nvd3 .nv-multibar .nv-groups rect:hover,.nvd3 .nv-multibarHorizontal .nv-groups rect:hover{fill-opacity:1}.nvd3 .nv-discretebar .nv-groups text,.nvd3 .nv-multibarHorizontal .nv-groups text{font-weight:700;fill:rgba(0,0,0,1);stroke:transparent}.nvd3 .nv-boxplot circle{fill-opacity:.5}.nvd3 .nv-boxplot circle:hover,.nvd3 .nv-boxplot rect:hover{fill-opacity:1}.nvd3 line.nv-boxplot-median{stroke:#000}.nv-boxplot-tick:hover{stroke-width:2.5px}.nvd3.nv-bullet{font:10px sans-serif}.nvd3.nv-bullet .nv-measure{fill-opacity:.8}.nvd3.nv-bullet .nv-measure:hover{fill-opacity:1}.nvd3.nv-bullet .nv-marker{stroke:#000;stroke-width:2px}.nvd3.nv-bullet .nv-markerTriangle{stroke:#000;fill:#fff;stroke-width:1.5px}.nvd3.nv-bullet .nv-tick line{stroke:#666;stroke-width:.5px}.nvd3.nv-bullet .nv-range.nv-s0{fill:#eee}.nvd3.nv-bullet .nv-range.nv-s1{fill:#ddd}.nvd3.nv-bullet .nv-range.nv-s2{fill:#ccc}.nvd3.nv-bullet .nv-title{font-size:14px;font-weight:700}.nvd3.nv-bullet .nv-subtitle{fill:#999}.nvd3.nv-bullet .nv-range{fill:#bababa;fill-opacity:.4}.nvd3.nv-bullet .nv-range:hover{fill-opacity:.7}.nvd3.nv-candlestickBar .nv-ticks .nv-tick{stroke-width:1px}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.hover{stroke-width:2px}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.positive rect{stroke:#2ca02c;fill:#2ca02c}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.negative rect{stroke:#d62728;fill:#d62728}.with-transitions .nv-candlestickBar .nv-ticks .nv-tick{transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-moz-transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-webkit-transition:stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-candlestickBar .nv-ticks line{stroke:#333}.nvd3 .nv-check-box .nv-box{fill-opacity:0;stroke-width:2}.nvd3 .nv-check-box .nv-check{fill-opacity:0;stroke-width:4}.nvd3 .nv-series.nv-disabled .nv-check-box .nv-check{fill-opacity:0;stroke-opacity:0}.nvd3.nv-linePlusBar .nv-bar rect{fill-opacity:.75}.nvd3.nv-linePlusBar .nv-bar rect:hover{fill-opacity:1}.nvd3 .nv-groups path.nv-line{fill:none}.nvd3 .nv-groups path.nv-area{stroke:none}.nvd3.nv-line .nvd3.nv-scatter .nv-groups .nv-point{fill-opacity:0;stroke-opacity:0}.nvd3.nv-scatter.nv-single-point .nv-groups .nv-point{fill-opacity:.5!important;stroke-opacity:.5!important}.with-transitions .nvd3 .nv-groups .nv-point{transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-moz-transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-webkit-transition:stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3 .nv-groups .nv-point.hover,.nvd3.nv-scatter .nv-groups .nv-point.hover{stroke-width:7px;fill-opacity:.95!important;stroke-opacity:.95!important}.nvd3 .nv-point-paths path{stroke:#aaa;stroke-opacity:0;fill:#eee;fill-opacity:0}.nvd3 .nv-indexLine{cursor:ew-resize}svg.nvd3-svg{-webkit-user-select:none;-ms-user-select:none;-moz-user-select:none;user-select:none;width:100%;height:100%}.nvtooltip.with-3d-shadow,.with-3d-shadow .nvtooltip{-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nvd3 text{font:400 12px Arial}.nvd3 .title{font:700 14px Arial}.nvd3 .nv-background{fill:#fff;fill-opacity:0}.nvd3.nv-noData{font-size:18px;font-weight:700}.nv-brush .extent{fill-opacity:.125}.nv-brush .resize path{fill:#eee;stroke:#666}.nvd3 .nv-legend .nv-series{cursor:pointer}.nvd3 .nv-legend .nv-disabled circle{fill-opacity:0}.nvd3 .nv-brush .extent{fill-opacity:0!important}.nvd3 .nv-brushBackground rect{stroke:#000;stroke-width:.4;fill:#fff;fill-opacity:.7}.nvd3.nv-ohlcBar .nv-ticks .nv-tick{stroke-width:1px}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.hover{stroke-width:2px}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.positive{stroke:#2ca02c}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.negative{stroke:#d62728}.nvd3 .background path{fill:none;stroke:#EEE;stroke-opacity:.4}.nvd3 .foreground path{fill:none;stroke-opacity:.7}.nvd3 .nv-parallelCoordinates-brush .extent{fill:#fff;fill-opacity:.6;stroke:gray;shape-rendering:crispEdges}.nvd3 .nv-parallelCoordinates .hover{fill-opacity:1;stroke-width:3px}.nvd3 .missingValuesline line{fill:none;stroke:#000;stroke-width:1;stroke-opacity:1;stroke-dasharray:5,5}.nvd3.nv-pie .nv-pie-title{font-size:24px;fill:rgba(19,196,249,.59)}.nvd3.nv-pie .nv-slice text{stroke:#000;stroke-width:0}.nvd3.nv-pie path{transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear;stroke:#fff;stroke-width:1px;stroke-opacity:1}.nvd3.nv-pie .hover path{fill-opacity:.7}.nvd3.nv-pie .nv-label rect{fill-opacity:0;stroke-opacity:0}.nvd3 .nv-groups .nv-point.hover{stroke-width:20px;stroke-opacity:.5}.nvd3 .nv-scatter .nv-point.hover{fill-opacity:1}.nvd3.nv-sparkline path{fill:none}.nvd3.nv-sparklineplus .nv-hoverValue line{stroke:#333;stroke-width:1.5px}.nvd3.nv-sparklineplus,.nvd3.nv-sparklineplus g{pointer-events:all}.nvd3 .nv-interactiveGuideLine,.nvtooltip{pointer-events:none}.nvd3 .nv-hoverArea{fill-opacity:0;stroke-opacity:0}.nvd3.nv-sparklineplus .nv-xValue,.nvd3.nv-sparklineplus .nv-yValue{stroke-width:0;font-size:.9em;font-weight:400}.nvd3.nv-sparklineplus .nv-yValue{stroke:#f66}.nvd3.nv-sparklineplus .nv-maxValue{stroke:#2ca02c;fill:#2ca02c}.nvd3.nv-sparklineplus .nv-minValue{stroke:#d62728;fill:#d62728}.nvd3.nv-sparklineplus .nv-currentValue{font-weight:700;font-size:1.1em}.nvtooltip h3,.nvtooltip table td.key{font-weight:400}.nvd3.nv-stackedarea path.nv-area{fill-opacity:.7;stroke-opacity:0;transition:fill-opacity 250ms linear,stroke-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear,stroke-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-stackedarea path.nv-area.hover{fill-opacity:.9}.nvd3.nv-stackedarea .nv-groups .nv-point{stroke-opacity:0;fill-opacity:0}.nvtooltip{position:absolute;color:rgba(0,0,0,1);padding:1px;z-index:10000;font-family:Arial;font-size:13px;text-align:left;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:rgba(255,255,255,.8);border:1px solid rgba(0,0,0,.5);border-radius:4px}.nvtooltip h3,.nvtooltip p{margin:0;text-align:center}.nvtooltip.with-transitions,.with-transitions .nvtooltip{transition:opacity 50ms linear;-moz-transition:opacity 50ms linear;-webkit-transition:opacity 50ms linear;transition-delay:200ms;-moz-transition-delay:200ms;-webkit-transition-delay:200ms}.nvtooltip.x-nvtooltip,.nvtooltip.y-nvtooltip{padding:8px}.nvtooltip h3{padding:4px 14px;line-height:18px;background-color:rgba(247,247,247,.75);color:rgba(0,0,0,1);border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.nvtooltip p{padding:5px 14px}.nvtooltip span{display:inline-block;margin:2px 0}.nvtooltip table{margin:6px;border-spacing:0}.nvtooltip table td{padding:2px 9px 2px 0;vertical-align:middle}.nvtooltip table td.key.total{font-weight:700}.nvtooltip table td.value{text-align:right;font-weight:700}.nvtooltip table tr.highlight td{padding:1px 9px 1px 0;border-bottom-style:solid;border-bottom-width:1px;border-top-style:solid;border-top-width:1px}.nvtooltip table td.legend-color-guide div{vertical-align:middle;width:12px;height:12px;border:1px solid #999}.nvtooltip .footer{padding:3px;text-align:center}.nvtooltip-pending-removal{pointer-events:none;display:none}.nvd3 line.nv-guideline{stroke:#ccc}
|
|
4
|
+
/*# sourceMappingURL=nv.d3.min.css.map */
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
.slide {
|
|
2
|
+
position: relative;
|
|
3
|
+
border: 1px solid #333;
|
|
4
|
+
border-radius: 10px;
|
|
5
|
+
overflow: hidden;
|
|
6
|
+
margin-bottom: 50px;
|
|
7
|
+
margin-left: auto;
|
|
8
|
+
margin-right: auto;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.slide div.block {
|
|
12
|
+
position: absolute;
|
|
13
|
+
top: 0px;
|
|
14
|
+
left: 0px;
|
|
15
|
+
width: 100%;
|
|
16
|
+
line-height: 1;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.slide div.content {
|
|
20
|
+
display: flex;
|
|
21
|
+
flex-direction: column;
|
|
22
|
+
}
|
|
23
|
+
.slide div.diagram-content{
|
|
24
|
+
display: flex;
|
|
25
|
+
flex-direction: column;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.slide div.content-rtl {
|
|
29
|
+
display: flex;
|
|
30
|
+
flex-direction: column;
|
|
31
|
+
direction: rtl;
|
|
32
|
+
}
|
|
33
|
+
.slide .pregraph-rtl{
|
|
34
|
+
direction: rtl;
|
|
35
|
+
}
|
|
36
|
+
.slide .pregraph-ltr{
|
|
37
|
+
direction: ltr;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
.slide {
|
|
43
|
+
position: relative;
|
|
44
|
+
border: 1px solid #333;
|
|
45
|
+
border-radius: 10px;
|
|
46
|
+
overflow: hidden;
|
|
47
|
+
margin-bottom: 50px;
|
|
48
|
+
margin-left: auto;
|
|
49
|
+
margin-right: auto;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.slide div.block {
|
|
53
|
+
position: absolute;
|
|
54
|
+
top: 0px;
|
|
55
|
+
left: 0px;
|
|
56
|
+
width: 100%;
|
|
57
|
+
line-height: 1;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.slide div.content {
|
|
61
|
+
display: flex;
|
|
62
|
+
flex-direction: column;
|
|
63
|
+
}
|
|
64
|
+
.slide div.diagram-content{
|
|
65
|
+
display: flex;
|
|
66
|
+
flex-direction: column;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.slide div.content-rtl {
|
|
70
|
+
display: flex;
|
|
71
|
+
flex-direction: column;
|
|
72
|
+
direction: rtl;
|
|
73
|
+
}
|
|
74
|
+
.slide .pregraph-rtl{
|
|
75
|
+
direction: rtl;
|
|
76
|
+
}
|
|
77
|
+
.slide .pregraph-ltr{
|
|
78
|
+
direction: ltr;
|
|
79
|
+
}
|
|
80
|
+
.slide .pregraph-inherit{
|
|
81
|
+
direction: inherit;
|
|
82
|
+
}
|
|
83
|
+
.slide .slide-prgrph{
|
|
84
|
+
width: 100%;
|
|
85
|
+
/* overflow-wrap:break-word;
|
|
86
|
+
word-wrap: break-word; */
|
|
87
|
+
|
|
88
|
+
/* word-break: break-word; */
|
|
89
|
+
/* unicode-bidi: bidi-override; */
|
|
90
|
+
/* hyphens: auto;
|
|
91
|
+
overflow-wrap: break-word; */
|
|
92
|
+
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.slide .line-break-br::before{
|
|
96
|
+
content: "\A";
|
|
97
|
+
white-space: pre;
|
|
98
|
+
}
|
|
99
|
+
.slide div.v-up {
|
|
100
|
+
justify-content: flex-start;
|
|
101
|
+
}
|
|
102
|
+
.slide div.v-mid {
|
|
103
|
+
justify-content: center;
|
|
104
|
+
}
|
|
105
|
+
.slide div.v-down {
|
|
106
|
+
justify-content: flex-end;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.slide div.h-left {
|
|
110
|
+
justify-content: flex-start;
|
|
111
|
+
align-items: flex-start;
|
|
112
|
+
text-align: left;
|
|
113
|
+
}
|
|
114
|
+
.slide div.h-left-rtl {
|
|
115
|
+
justify-content: flex-end;
|
|
116
|
+
align-items: flex-end;
|
|
117
|
+
text-align: left;
|
|
118
|
+
}
|
|
119
|
+
.slide div.h-mid {
|
|
120
|
+
justify-content: center;
|
|
121
|
+
align-items: center;
|
|
122
|
+
text-align: center;
|
|
123
|
+
}
|
|
124
|
+
.slide div.h-right {
|
|
125
|
+
justify-content: flex-end;
|
|
126
|
+
align-items: flex-end;
|
|
127
|
+
text-align: right;
|
|
128
|
+
}
|
|
129
|
+
.slide div.h-right-rtl {
|
|
130
|
+
justify-content: flex-start;
|
|
131
|
+
align-items: flex-start;
|
|
132
|
+
text-align: right;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.slide div.h-just,
|
|
136
|
+
.slide div.h-dist {
|
|
137
|
+
text-align: justify;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
.slide div.up-left {
|
|
142
|
+
justify-content: flex-start;
|
|
143
|
+
align-items: flex-start;
|
|
144
|
+
text-align: left;
|
|
145
|
+
}
|
|
146
|
+
.slide div.up-center {
|
|
147
|
+
justify-content: flex-start;
|
|
148
|
+
align-items: center;
|
|
149
|
+
}
|
|
150
|
+
.slide div.up-right {
|
|
151
|
+
justify-content: flex-start;
|
|
152
|
+
align-items: flex-end;
|
|
153
|
+
}
|
|
154
|
+
.slide div.center-left {
|
|
155
|
+
justify-content: center;
|
|
156
|
+
align-items: flex-start;
|
|
157
|
+
text-align: left;
|
|
158
|
+
}
|
|
159
|
+
.slide div.center-center {
|
|
160
|
+
justify-content: center;
|
|
161
|
+
align-items: center;
|
|
162
|
+
}
|
|
163
|
+
.slide div.center-right {
|
|
164
|
+
justify-content: center;
|
|
165
|
+
align-items: flex-end;
|
|
166
|
+
}
|
|
167
|
+
.slide div.down-left {
|
|
168
|
+
justify-content: flex-end;
|
|
169
|
+
align-items: flex-start;
|
|
170
|
+
text-align: left;
|
|
171
|
+
}
|
|
172
|
+
.slide div.down-center {
|
|
173
|
+
justify-content: flex-end;
|
|
174
|
+
align-items: center;
|
|
175
|
+
}
|
|
176
|
+
.slide div.down-right {
|
|
177
|
+
justify-content: flex-end;
|
|
178
|
+
align-items: flex-end;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
.slide li.slide {
|
|
183
|
+
margin: 10px 0px;
|
|
184
|
+
font-size: 18px;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.slide table {
|
|
188
|
+
position: absolute;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.slide svg.drawing {
|
|
192
|
+
position: absolute;
|
|
193
|
+
overflow: visible;
|
|
194
|
+
}
|
|
195
|
+
/*
|
|
196
|
+
#pptx-thumb {
|
|
197
|
+
min-width: 240px;
|
|
198
|
+
height: 180px;
|
|
199
|
+
}
|
|
200
|
+
*/
|