diff --git a/packages/portal/src/composables/itemMediaPresentation.js b/packages/portal/src/composables/itemMediaPresentation.js index 10e38fa49f..dad1b61744 100644 --- a/packages/portal/src/composables/itemMediaPresentation.js +++ b/packages/portal/src/composables/itemMediaPresentation.js @@ -81,8 +81,8 @@ const fetchPresentation = async(uri) => { const setPresentationFromWebResources = (webResources) => { presentation.value = new EuropeanaMediaPresentation({ - canvases: webResources.map((resource) => ({ - resource: EuropeanaMediaResource.fromEDM(resource) + canvases: webResources.map((wr) => ({ + resource: EuropeanaMediaResource.fromEDM(wr) })) }); }; diff --git a/packages/portal/src/utils/europeana/media/Resource.js b/packages/portal/src/utils/europeana/media/Resource.js index 6f79629d0b..23330af1b4 100644 --- a/packages/portal/src/utils/europeana/media/Resource.js +++ b/packages/portal/src/utils/europeana/media/Resource.js @@ -3,7 +3,7 @@ import Service from './Service.js'; import EDMWebResource from '@/plugins/europeana/edm/WebResource.js'; export default class EuropeanaMediaResource extends Base { - $edm; + #edm; static fromEDM(edm) { if (!edm) { @@ -15,7 +15,6 @@ export default class EuropeanaMediaResource extends Base { data.id = edm; } else { data = this.omitIsUndefined({ - edm, id: edm.about, format: edm.ebucoreHasMimeType, height: edm.ebucoreHeight, @@ -24,7 +23,9 @@ export default class EuropeanaMediaResource extends Base { }); } - return new this(data); + const resource = new this(data); + resource.edm = edm; + return resource; } parseData(data) { @@ -42,7 +43,7 @@ export default class EuropeanaMediaResource extends Base { } get edm() { - if (!this.$edm) { + if (!this.#edm) { const data = this.constructor.omitIsUndefined({ about: this.id, ebucoreHasMimeType: this.format, @@ -51,12 +52,12 @@ export default class EuropeanaMediaResource extends Base { svcsHasService: [].concat(this.service || [])[0]?.edm }); - this.$edm = new EDMWebResource(data); + this.#edm = new EDMWebResource(data); } - return this.$edm; + return this.#edm; } set edm(value) { - this.$edm = value; + this.#edm = value; } } diff --git a/packages/portal/src/utils/europeana/media/Service.js b/packages/portal/src/utils/europeana/media/Service.js index 733caa6c8e..bffc0f35ed 100644 --- a/packages/portal/src/utils/europeana/media/Service.js +++ b/packages/portal/src/utils/europeana/media/Service.js @@ -2,7 +2,7 @@ import Base from './Base.js'; import EDMService from '@/plugins/europeana/edm/Service.js'; export default class EuropeanaMediaService extends Base { - $edm; + #edm; static fromEDM(edm) { if (!edm) { @@ -14,14 +14,15 @@ export default class EuropeanaMediaService extends Base { data.id = edm; } else { data = this.omitIsUndefined({ - edm, context: 'http://iiif.io/api/image/2/context.json', id: edm.about, profile: edm.doapImplements }); } - return new this(data); + const service = new this(data); + service.edm = edm; + return service; } get infoUrl() { @@ -35,19 +36,19 @@ export default class EuropeanaMediaService extends Base { } get edm() { - if (!this.$edm) { + if (!this.#edm) { const data = this.constructor.omitIsUndefined({ about: this.id, doapImplements: this.profile, dctermsConformsTo: ['http://iiif.io/api/image'] }); - this.$edm = new EDMService(data); + this.#edm = new EDMService(data); } - return this.$edm; + return this.#edm; } set edm(value) { - this.$edm = value; + this.#edm = value; } }