{"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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"}