devexpress-diagram
Version:
DevExpress Diagram Control
42 lines (33 loc) • 1.55 kB
text/typescript
import { Base64Utils } from "@devexpress/utils/lib/utils/base64";
export class ImageInfo {
private static transparentWhiteImage1_1: string = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAANSURBVBhXY/j///9/AAn7A/0FQ0XKAAAAAElFTkSuQmCC";
url: string = undefined;
base64: string = undefined;
private loadFailed: boolean;
constructor(imageUrlOrBase64?: string) {
if(imageUrlOrBase64)
if(Base64Utils.checkPrependDataUrl(imageUrlOrBase64))
this.base64 = imageUrlOrBase64;
else
this.url = imageUrlOrBase64;
this.loadFailed = false;
}
clone(): ImageInfo {
const result = new ImageInfo();
result.url = this.url;
result.base64 = this.base64;
return result;
}
get isEmpty(): boolean { return this.url === undefined && this.base64 === undefined; }
get unableToLoad(): boolean { return this.loadFailed; }
get renderUrl(): string { return this.base64 || ""; }
get exportUrl(): string { return this.base64 ? this.base64 : this.url; }
get actualUrl(): string { return this.url ? this.url : this.base64; }
static get transparentOnePixelImage(): string { return this.transparentWhiteImage1_1; }
loadBase64Content(base64Content: string) {
this.base64 = Base64Utils.normalizeToDataUrl(base64Content, "image/png");
}
setUnableToLoadFlag() {
this.loadFailed = true;
}
}