blob: 399eb9adc088cd56925530450278514950ea5a7b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
import { Component, Input, Output, EventEmitter, HostBinding, ViewChild, AfterViewInit } from '@angular/core';
import { ButtonComponent } from './button.component';
import { template } from "./button-file-opener.component.html";
export class FileObject {
filesize: string;
filetype: string;
filename: string;
base64: string;
}
@Component({
selector: "sdc-button-file-opener",
template: template,
styles: [`
input[type=file] {
display: none;
}
`]
})
export class ButtonFileOpenerComponent extends ButtonComponent implements AfterViewInit {
@Input() public extensions: string;
@Output() public fileUpload: EventEmitter<any>;
@HostBinding('class.sdc-button__wrapper') true;
public allowedExtensions: string;
private fileObject: FileObject;
constructor() {
super();
this.fileUpload = new EventEmitter<any>();
this.fileObject = new FileObject();
}
ngAfterViewInit() : void {
this.allowedExtensions = this.extensions && this.extensions.split(',').map(x => '.' + x).join(',');
}
public onFileSelectaa(event): void {
let file = event.srcElement.files[0];
debugger
this.fileUpload.emit({file: file});
}
public onFileSelect(e): void {
var file = e.dataTransfer ? e.dataTransfer.files[0] : e.target.files[0];
var reader = new FileReader();
this.fileObject.filesize = file.size;
this.fileObject.filetype = file.type;
this.fileObject.filename = file.name;
reader.onload = this._handleReaderLoaded.bind(this);
reader.readAsDataURL(file);
}
private _handleReaderLoaded(e) {
let base64 = e.target.result;
this.fileObject.base64 = base64.split('base64,')[1];
this.fileUpload.emit(this.fileObject);
}
}
|