mirador
Version:
An open-source, web-based 'multi-up' viewer that supports zoom-pan-rotate functionality, ability to display/compare simple images, and images with annotations.
46 lines (36 loc) • 1.13 kB
JavaScript
/**
* MiradorManifest - adds additional, testable logic around Manifesto's Manifest
* https://iiif-commons.github.io/manifesto/classes/_canvas_.manifesto.canvas.html
*/
export default class MiradorManifest {
/** */
constructor(manifest) {
this.manifest = manifest;
}
/**
* Returns the starting canvas specified in the manifest
* @param {object} manifest manifesto instance
* @param {number} canvasIndexFromState
* @return {Canvas}
*/
get startCanvas() {
let canvasId;
const sequence = this.manifest.getSequences()[0];
if (!sequence) return undefined;
// IIIF v2
canvasId = sequence.getProperty('startCanvas');
if (!canvasId) {
// IIIF v3
const start = this.manifest.getProperty('start')
|| sequence.getProperty('start');
canvasId = start && (start.id || start.source);
}
return (canvasId && sequence.getCanvasById(canvasId)) || undefined;
}
/** */
canvasAt(index) {
const sequence = this.manifest.getSequences()[0];
const canvases = sequence && sequence.getCanvases();
return canvases && canvases[index];
}
}