greek-manifests/src/Sequence.js

42 lines
994 B
JavaScript

import IIIFResource from './IIIFResource.js';
import Canvas from './Canvas.js';
/**
* @todo Not needed in IIIF API v3,
* replaced by items
* @implements IIIFResource
*/
class Sequence {
canvases = [];
id = '';
#type = 'sc:Sequence';
resourceId = '';
constructor(baseUrl) {
this.BASE_URL = baseUrl;
}
/**
* @param {string} resourceId The resource ID for this sequence
* @param {int|string} name A unique name for this sequence
*/
generateID(resourceId, name) {
this.id = `${this.BASE_URL}/${resourceId}/sequence/${name}`;
this.resourceId = resourceId;
}
/**
* @param {Canvas} canvas The Canvas object
*/
addCanvas(canvas) {
this.canvases.push(canvas.toObject());
}
/**
* @todo Implement
*/
toObject() {
return {
"@id" : this.id,
"@type" : this.#type,
canvases : this.canvases
}
}
}
export default Sequence;