doc-viewer-angular
Version:
Angular document viewer.
67 lines (61 loc) • 2.62 kB
text/typescript
import { Component, ViewChild } from '@angular/core';
import { viewerType } from 'modules/document-viewer.component';
({
selector: 'app-root',
templateUrl: 'app.component.html',
styles: []
})
export class AppComponent {
viewers: { name: viewerType, docs: string[], custom: boolean, acceptedUploadTypes: string }[] = [
{
name: 'google', docs: [
'https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.docx',
'https://file-examples.com/wp-content/uploads/2017/02/file_example_XLSX_10.xlsx',
'https://file-examples.com/wp-content/uploads/2017/10/file_example_TIFF_1MB.tiff',
'https://file-examples.com/wp-content/uploads/2017/10/file-sample_150kB.pdf',
'https://file-examples.com/wp-content/uploads/2017/08/file_example_PPT_250kB.ppt'
], custom: true, acceptedUploadTypes: null
},
{
name: 'office', docs: [
'https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.docx',
'https://file-examples.com/wp-content/uploads/2017/02/file_example_XLSX_10.xlsx',
'https://file-examples.com/wp-content/uploads/2017/10/file_example_TIFF_1MB.tiff',
'https://file-examples.com/wp-content/uploads/2017/10/file-sample_150kB.pdf',
'https://file-examples.com/wp-content/uploads/2017/08/file_example_PPT_250kB.ppt'
], custom: true, acceptedUploadTypes: null
},
{
name: 'mammoth', docs: [
`${window.location.href}/assets/file-sample_100kB.docx`
], custom: false, acceptedUploadTypes: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
},
{
name: 'pdf', docs: [
`${window.location.href}/assets/file-sample_150kB.pdf`
], custom: false, acceptedUploadTypes: 'application/pdf'
}
];
selectedViewer = this.viewers[0];
selectedDoc = this.selectedViewer.docs[0];
constructor() { }
selectViewer(viewerName: viewerType) {
if (viewerName !== this.selectViewer.name) {
this.selectedViewer = this.viewers.find(v => v.name === viewerName);
this.selectedDoc = this.selectedViewer.docs[0];
}
}
getDocExtension(doc: string) {
const splittedDoc = doc.split('.');
return splittedDoc[splittedDoc.length - 1];
}
handleFiles(fileInput: any) {
if (fileInput.target.files && fileInput.target.files[0]) {
const reader = new FileReader();
reader.onload = (e: any) => {
this.selectedDoc = e.target.result;
};
reader.readAsDataURL(fileInput.target.files[0]);
}
}
}