import IIIFResource from './IIIFResource.js'; import Sequence from "./Sequence.js"; /** * @implements IIIFResource */ class Manifest { id = ''; type = 'sc:Manifest'; resourceId = ''; /** * @var {Sequence[]} */ sequences = []; constructor(IIIFApiVersion, baseURL) { this.context = `https://iiif.io/api/presentation/${IIIFApiVersion}/context.json`; this.BASE_URL = baseURL; } /** * @param {Sequence} sequence The Sequence object */ addSequence(sequence) { this.sequences.push(sequence.toObject()); } /** * @param {string} resourceId From the request */ generateID(resourceId) { this.id = `${this.BASE_URL}/iiif/${resourceId}/manifest` ; this.resourceId = resourceId; } /** * Object representation of this * manifest * * @todo Implement * @returns {object} */ toObject() { return { "@context" : this.context, "@id" : this.id, "@type" : this.type, sequences: this.sequences, } } } export default Manifest;