Select Git revision
ManifestoCanvas.js
ManifestoCanvas.js 2.63 KiB
/**
* ManifestoCanvas - adds additional, testable logic around Manifesto's Canvas
* https://iiif-commons.github.io/manifesto/classes/_canvas_.manifesto.canvas.html
*/
export default class ManifestoCanvas {
/**
* @param {ManifestoCanvas} canvas
*/
constructor(canvas) {
this.canvas = canvas;
}
/**
*/
get canonicalImageUri() {
return this.canvas.getCanonicalImageUri();
}
/**
*/
get aspectRatio() {
return this.canvas.getWidth() / this.canvas.getHeight();
}
/**
*/
get imageInformationUri() {
if (!(
this.canvas.getImages()[0]
&& this.canvas.getImages()[0].getResource()
&& this.canvas.getImages()[0].getResource().getServices()[0]
&& this.canvas.getImages()[0].getResource().getServices()[0].id
)) {
return undefined;
}
return `${
this.canvas.getImages()[0].getResource().getServices()[0].id.replace(/\/$/, '')
}/info.json`;
}
/**
* checks whether the canvas has a valid height
*/
get hasValidHeight() {
return (
typeof this.canvas.getHeight() === 'number'
&& this.canvas.getHeight() > 0
);
}
/**
* checks whether the canvas has a valid height
*/
get hasValidWidth() {
return (
typeof this.canvas.getHeight() === 'number'
&& this.canvas.getHeight() > 0
);
}
/**
* checks whether the canvas has valid dimensions
*/
get hasValidDimensions() {
return (
this.hasValidHeight
&& this.hasValidWidth
);
}