class RenuoUploadHtmlGenerator {
constructor(private event:RenuoUploadEvent) {
}
generateElement():HTMLImageElement|HTMLAnchorElement {
if (this.isImage()) return this.imageElement();
return this.anchorElement();
}
private isImage() {
const imageExtensions = ['jpg', 'png', 'gif', 'jpeg', 'bmp', 'tiff', 'jp2', 'ico'];
return imageExtensions.indexOf(this.event.extension.toLowerCase()) > -1;
};
private imageElement():HTMLImageElement {
const element = new Image();
element.src = this.thumborPath(this.event.publicUrl);
return element;
}
private thumborPath(imageUrl:string) {
const index = imageUrl.indexOf('/o/');
if (index === -1) {
return imageUrl;
}
const filePath = imageUrl.slice(index);
const host = imageUrl.slice(0, index);
return `https:${host}/t/x/u${filePath}`;
}
private anchorElement():HTMLAnchorElement {
const element = document.createElement('a');
element.href = this.event.publicUrl;
element.innerText = this.event.cleanName;
return element;
}
}