cv-dialog-sdk
Version:
Catavolt Dialog Javascript API
35 lines (34 loc) • 1.12 kB
JavaScript
import { DataUrl } from '../util';
import { TypeNames } from './types';
export class LargeProperty {
constructor(encodedData, contentType, hasMore = false, type = TypeNames.LargePropertyTypeName, url) {
this.encodedData = encodedData;
this.contentType = contentType;
this.hasMore = hasMore;
this.type = type;
this.url = url;
}
get isLoaded() {
return !!this.url || !this.hasMore;
}
get mimeType() {
return this.contentType || LargeProperty.DEFAULT_MIME_TYPE;
}
toUrl() {
if (this.isLoaded) {
if (this.url) {
return this.url;
}
else {
return DataUrl.createDataUrl(this.mimeType, this.encodedData);
}
}
else {
throw new Error('LargeProperty::toUrl: encodedData is not yet loaded');
}
}
asNewLargeProperty(encodedData, hasMore = false) {
return new LargeProperty(encodedData, this.contentType, hasMore, this.type, this.url);
}
}
LargeProperty.DEFAULT_MIME_TYPE = 'application/octet-stream';