UNPKG

mss-doc-viewer

Version:

A simple typehead library developed by MSS development team to be used for document viewer

1 lines 25.2 kB
{"version":3,"file":"mss-doc-viewer.mjs","sources":["../../../projects/mss-doc-viewer/src/lib/mss-doc-viewer.service.ts","../../../projects/mss-doc-viewer/src/lib/dynamic-viewers/doc-viewer/doc-viewer.component.ts","../../../projects/mss-doc-viewer/src/lib/dynamic-viewers/doc-viewer/doc-viewer.component.html","../../../projects/mss-doc-viewer/src/lib/dynamic-viewers/img-viewer/img-viewer.component.ts","../../../projects/mss-doc-viewer/src/lib/dynamic-viewers/img-viewer/img-viewer.component.html","../../../projects/mss-doc-viewer/src/lib/dynamic-viewers/pdf-viewer/pdf-viewer.component.ts","../../../projects/mss-doc-viewer/src/lib/dynamic-viewers/pdf-viewer/pdf-viewer.component.html","../../../projects/mss-doc-viewer/src/lib/dynamic-viewers/xml-viewer/xml-viewer.component.ts","../../../projects/mss-doc-viewer/src/lib/dynamic-viewers/xml-viewer/xml-viewer.component.html","../../../projects/mss-doc-viewer/src/lib/_helpers/_enums/supported-documents.enum.ts","../../../projects/mss-doc-viewer/src/lib/_helpers/supported-documents.ts","../../../projects/mss-doc-viewer/src/lib/mss-doc-viewer.component.ts","../../../projects/mss-doc-viewer/src/lib/mss-doc-viewer.component.html","../../../projects/mss-doc-viewer/src/lib/mss-doc-viewer.module.ts","../../../projects/mss-doc-viewer/src/lib/_helpers/document.model.ts","../../../projects/mss-doc-viewer/src/public-api.ts","../../../projects/mss-doc-viewer/src/mss-doc-viewer.ts"],"sourcesContent":["import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { Document } from './_helpers/document.model'\n@Injectable({\n providedIn: 'root'\n})\nexport class MssDocViewerService {\n\n constructor(private _http: HttpClient) { }\n\n getDocument(document: Document) {\n let headers = {}\n if (document.authorization) {\n headers = {\n authorization: document.authorization\n }\n }\n return this._http.get(document.url, { responseType: 'blob' as 'json', headers: headers })\n }\n\n getXMLDoc(uri: string) {\n const headers = new HttpHeaders(\n {\n 'Access-Control-Allow-Headers': 'Content-Type',\n 'Access-Control-Allow-Methods': 'GET',\n 'Access-Control-Allow-Origin': '*'\n });\n\n headers.set('Content-Type', 'text/xml');\n return this._http.get(uri, { headers, responseType: 'text' })\n }\n\n downloadDoc(url: string): Observable<Blob> {\n return this._http.get(url, {\n responseType: 'blob'\n })\n }\n}\n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\n\n@Component({\n selector: 'lib-doc-viewer',\n templateUrl: './doc-viewer.component.html',\n styleUrls: ['./doc-viewer.component.css']\n})\nexport class DocViewerComponent implements OnInit, OnChanges {\n\n @Input() document: any\n isLoading: boolean = true\n\n constructor() { }\n ngOnChanges(changes: SimpleChanges): void {\n console.log({ changes })\n }\n\n ngOnInit(): void {\n }\n\n loaded(event: any) {\n console.log({ event })\n this.isLoading = false\n }\n\n}\n","<ngx-doc-viewer\n [url]=\"document?.url\"\n style=\"width:100%;height:50vh;\"\n [overrideLocalhost]=\"document.overrideLocalhost\"\n (loaded)=\"loaded($event)\"\n></ngx-doc-viewer>\n<div *ngIf=\"isLoading\" class=\"w-100 text-center\">\n <div class=\"spinner-border text-secondary\"></div>\n</div>","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\n\n@Component({\n selector: 'lib-img-viewer',\n templateUrl: './img-viewer.component.html',\n styleUrls: ['./img-viewer.component.css']\n})\nexport class ImgViewerComponent implements OnInit, OnChanges {\n\n @Input() document: any\n imageUri: any\n\n\n constructor() { }\n\n ngOnChanges(changes: SimpleChanges): void {\n // this.blobToBase64(this.document)\n // .then((res) => {\n // this.imageUri = res\n // })\n }\n\n ngOnInit(): void {\n }\n\n blobToBase64(blob: any) {\n return new Promise((resolve, _) => {\n const reader = new FileReader();\n reader.onloadend = () => resolve(reader.result);\n reader.readAsDataURL(blob);\n });\n }\n\n}\n","<img [src]=\"document?.url\" alt=\"document\">","import { Component, Input, OnChanges, OnInit } from '@angular/core';\nimport { MssDocViewerService } from '../../mss-doc-viewer.service';\nimport * as xml2js from 'xml2js';\n\n@Component({\n selector: 'lib-pdf-viewer',\n templateUrl: './pdf-viewer.component.html',\n styleUrls: ['./pdf-viewer.component.css']\n})\nexport class PdfViewerComponent implements OnInit, OnChanges {\n\n @Input() document: any\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n ngOnChanges(): void {\n \n }\n\n\n}\n","<pdf-viewer style=\"width:100%;height:600px\" [src]=\"document?.url\" [render-text]=\"false\"\r\n[original-size]=\"true\"></pdf-viewer>","import { Component, Input, OnChanges, OnInit } from '@angular/core';\nimport { MssDocViewerService } from '../../mss-doc-viewer.service';\nimport * as xml2js from 'xml2js';\n\n@Component({\n selector: 'lib-xml-viewer',\n templateUrl: './xml-viewer.component.html',\n styleUrls: ['./xml-viewer.component.css']\n})\nexport class XmlViewerComponent implements OnInit, OnChanges {\n\n @Input() document: any\n\n XmlJSONPreview: any\n XmlPreview: any\n\n constructor(private _mss_doc: MssDocViewerService) { }\n\n ngOnInit(): void {\n }\n\n ngOnChanges(): void {\n if (this.document) this.getXMLData()\n }\n\n\n getXMLData() {\n this._mss_doc.getXMLDoc(this.document?.url).subscribe((xmlData: any) => {\n console.log({xmlData})\n this.XmlPreview = xmlData\n // xml2js.Parser.\n // xml2js.parseString(xmlData, (err, result) => {\n // if (err) {\n // console.error({ err });\n // // return err\n // } else {\n // console.log({ result });\n // this.XmlJSONPreview = result\n // // return result\n // }\n // });\n });\n\n }\n\n}\n","<!-- <pre>\r\n {{ XmlPreview | json}}\r\n </pre> -->\r\n <pre >{{XmlPreview}}</pre>","export enum SupportedDocumentsTypes {\r\n DOC = 'application/msword',\r\n DOCX = 'docx',\r\n EXCEL = 'application/vnd.ms-excel',\r\n PPT = 'application/vnd.ms-powerpoint',\r\n PDF = \"application/pdf\",\r\n PNG = \"image/png\",\r\n JPG = \"image/jpeg\",\r\n SVG = \"image/svg+xml\",\r\n XML = \"application/xml\",\r\n TXT = \"txt\"\r\n}","import { DocViewerComponent } from \"../dynamic-viewers/doc-viewer/doc-viewer.component\";\r\nimport { ImgViewerComponent } from \"../dynamic-viewers/img-viewer/img-viewer.component\";\r\nimport { PdfViewerComponent } from \"../dynamic-viewers/pdf-viewer/pdf-viewer.component\";\r\nimport { XmlViewerComponent } from \"../dynamic-viewers/xml-viewer/xml-viewer.component\";\r\nimport { SupportedDocumentsTypes } from \"./_enums/supported-documents.enum\";\r\nimport { SupportedDocument } from \"./_types/supported-documents\";\r\n\r\nexport const SupportedDocuments: SupportedDocument[] = [\r\n {\r\n type: SupportedDocumentsTypes.DOC,\r\n component: DocViewerComponent\r\n },\r\n {\r\n type: SupportedDocumentsTypes.DOCX,\r\n component: DocViewerComponent\r\n },\r\n {\r\n type: SupportedDocumentsTypes.XML,\r\n component: XmlViewerComponent\r\n },\r\n {\r\n type: SupportedDocumentsTypes.PNG,\r\n component: ImgViewerComponent\r\n },\r\n {\r\n type: SupportedDocumentsTypes.JPG,\r\n component: ImgViewerComponent\r\n },\r\n {\r\n type: SupportedDocumentsTypes.SVG,\r\n component: ImgViewerComponent\r\n },\r\n {\r\n type: SupportedDocumentsTypes.PDF,\r\n component: PdfViewerComponent\r\n },\r\n]","import { AfterViewInit, ChangeDetectorRef, Component, Input, OnChanges, OnInit, SimpleChanges, ViewChild, ViewContainerRef } from '@angular/core';\nimport { DocViewerComponent } from './dynamic-viewers/doc-viewer/doc-viewer.component';\nimport { MssDocViewerService } from './mss-doc-viewer.service';\nimport { Document } from './_helpers/document.model';\nimport { SupportedDocuments } from './_helpers/supported-documents';\n\n@Component({\n selector: 'lib-mss-doc-viewer',\n templateUrl: './mss-doc-viewer.component.html',\n styles: [\n ]\n})\nexport class MssDocViewerComponent implements OnInit, OnChanges, AfterViewInit {\n\n @ViewChild('dynamicViewerContainer', { read: ViewContainerRef }) dynamicViewerContainer!: ViewContainerRef;\n @Input() document: Document = { url: \"\" }\n @Input() documents: Document[] = []\n apiDoc: any = null\n activeDoc: Document = { url: '' }\n constructor(private cd: ChangeDetectorRef, private _doc_viewer: MssDocViewerService) { }\n\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes && this.dynamicViewerContainer) {\n this.getDocument(this.documents[0])\n }\n }\n\n ngAfterViewInit(): void {\n this.getDocument(this.documents[0])\n }\n\n ngOnInit(): void {\n }\n\n getDocument(doc: Document) {\n this.activeDoc = doc\n this._doc_viewer.getDocument(doc)\n .subscribe({\n next: (res) => {\n this.apiDoc = res\n this.registerDynamicViewer(res)\n },\n error: (err) => {\n console.error({ err })\n this.registerDynamicViewer({ type: this.get_url_extension(doc.url) })\n }\n })\n }\n\n get_url_extension(url: string) {\n return url.split('.').pop()\n }\n get_filename(url: string) {\n return url.substring(url.lastIndexOf('/') + 1)\n }\n\n private registerDynamicViewer(doc: any) {\n console.log({ registerDynamicViewer: doc })\n this.dynamicViewerContainer.clear();\n const componentInstance = this.getComponentByType(doc?.type)\n const dynamicComponent = this.dynamicViewerContainer.createComponent(componentInstance)\n dynamicComponent.setInput('document', this.activeDoc);\n this.cd.detectChanges();\n }\n\n getComponentByType(type: string): any {\n console.log({ type })\n let componentDynamic = SupportedDocuments.find(c => c.type?.includes(type));\n console.log({ componentDynamic })\n return componentDynamic?.component || DocViewerComponent;\n }\n\n download(uri: string): void {\n this._doc_viewer\n .downloadDoc(uri)\n .subscribe(blob => {\n const a = document.createElement('a')\n const objectUrl = URL.createObjectURL(blob)\n a.href = objectUrl\n a.download = this.get_filename(uri) || 'doc';\n a.click();\n URL.revokeObjectURL(objectUrl);\n })\n }\n print(url: string) {\n const printWindow = window.open(url, '_blank', 'height=400,width=600');\n console.log({ printWindow })\n setTimeout(() => {\n console.log({ printWindow })\n if (printWindow) printWindow.onload = function () {\n printWindow?.print();\n printWindow?.close();\n };\n }, 500);\n }\n}\n","<div class=\"mss-doc-container\">\r\n <div class=\"actions-container\">\r\n <a *ngIf=\"activeDoc?.download\" (click)=\"download(activeDoc.url)\">\r\n Download\r\n </a>\r\n <a *ngIf=\"activeDoc?.print\" (click)=\"print(activeDoc.url)\">\r\n Print\r\n </a>\r\n </div>\r\n <div *ngIf=\"documents.length>1\" class=\"documents-list-container\">\r\n <div *ngFor=\"let doc of documents\" (click)=\"getDocument(doc)\" class=\"document-item\">\r\n {{doc.url}}\r\n </div>\r\n </div>\r\n <ng-container #dynamicViewerContainer>\r\n </ng-container>\r\n</div>","import { NgModule } from '@angular/core';\nimport { NgxDocViewerModule } from 'ngx-doc-viewer';\nimport { MssDocViewerComponent } from './mss-doc-viewer.component';\nimport { DocViewerComponent } from './dynamic-viewers/doc-viewer/doc-viewer.component';\nimport { ImgViewerComponent } from './dynamic-viewers/img-viewer/img-viewer.component';\nimport { XmlViewerComponent } from './dynamic-viewers/xml-viewer/xml-viewer.component';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { HttpClientModule } from '@angular/common/http';\nimport { PdfViewerModule } from 'ng2-pdf-viewer';\nimport { PdfViewerComponent } from './dynamic-viewers/pdf-viewer/pdf-viewer.component';\n\n\n@NgModule({\n declarations: [\n MssDocViewerComponent,\n DocViewerComponent,\n ImgViewerComponent,\n XmlViewerComponent,\n PdfViewerComponent\n ],\n imports: [\n BrowserModule,\n HttpClientModule,\n NgxDocViewerModule,\n PdfViewerModule\n ],\n exports: [\n MssDocViewerComponent\n ]\n})\nexport class MssDocViewerModule { }\n","\r\nexport class Document {\r\n url: string = \"\";\r\n onLoad?: (payload: any) => void;\r\n authorization?: string\r\n queryParams?: string | '';\r\n viewerUrl?: string | '';\r\n disableContent?: 'none' | 'all' | 'popout' | 'popout-hide' = 'none';\r\n googleCheckContentLoaded?: boolean = true;\r\n overrideLocalhost?: string = '';\r\n viewer?: string | 'google' | 'office';\r\n googleCheckInterval?:number=3000;\r\n googleMaxChecks?:number=5;\r\n download?:boolean;\r\n print?:boolean\r\n}","/*\n * Public API Surface of mss-doc-viewer\n */\n\nexport * from './lib/mss-doc-viewer.service';\nexport * from './lib/mss-doc-viewer.component';\nexport * from './lib/mss-doc-viewer.module';\nexport * from './lib/_helpers/document.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i1.MssDocViewerService"],"mappings":"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"}