From 84f1e0c66edf3cdebb4aa793cddd1dc772986189 Mon Sep 17 00:00:00 2001 From: Lutz Helm Date: Fri, 3 May 2019 15:26:33 +0200 Subject: [PATCH] Avoid minification/compilation errors in IIIFInfo Unquoted properties might be renamed, resulting in errors while accessing these properties via intented string values. See also: https://github.com/openlayers/openlayers/pull/9430#pullrequestreview-232622522 https://github.com/openlayers/openlayers/pull/9430#pullrequestreview-232622575 --- src/ol/format/IIIFInfo.js | 135 +++++++++++++++++++------------------- 1 file changed, 67 insertions(+), 68 deletions(-) diff --git a/src/ol/format/IIIFInfo.js b/src/ol/format/IIIFInfo.js index 6c05e66ef0..9159bf5d42 100644 --- a/src/ol/format/IIIFInfo.js +++ b/src/ol/format/IIIFInfo.js @@ -21,83 +21,82 @@ import {assert} from '../asserts.js'; * @property {Array} [qualities] Supported IIIF image qualities. */ +/** +* @enum {string} +*/ +export const Versions = { + VERSION1: 'version1', + VERSION2: 'version2', + VERSION3: 'version3' +}; + /** * Supported image formats, qualities and supported region / size calculation features * for different image API versions and compliance levels * @const * @type {Object} */ -const IIIF_PROFILE_VALUES = { - version1: { - level0: { - supports: [], - formats: [], - qualities: ['native'] - }, - level1: { - supports: ['regionByPx', 'sizeByW', 'sizeByH', 'sizeByPct'], - formats: ['jpg'], - qualities: ['native'] - }, - level2: { - supports: ['regionByPx', 'regionByPct', 'sizeByW', 'sizeByH', 'sizeByPct', - 'sizeByConfinedWh', 'sizeByWh'], - formats: ['jpg', 'png'], - qualities: ['native', 'color', 'grey', 'bitonal'] - } +const IIIF_PROFILE_VALUES = {}; +IIIF_PROFILE_VALUES[Versions.VERSION1] = { + 'level0': { + supports: [], + formats: [], + qualities: ['native'] }, - version2: { - level0: { - supports: [], - formats: ['jpg'], - qualities: ['default'] - }, - level1: { - supports: ['regionByPx', 'sizeByW', 'sizeByH', 'sizeByPct'], - formats: ['jpg'], - qualities: ['default'] - }, - level2: { - supports: ['regionByPx', 'regionByPct', 'sizeByW', 'sizeByH', 'sizeByPct', - 'sizeByConfinedWh', 'sizeByDistortedWh', 'sizeByWh'], - formats: ['jpg', 'png'], - qualities: ['default', 'bitonal'] - } + 'level1': { + supports: ['regionByPx', 'sizeByW', 'sizeByH', 'sizeByPct'], + formats: ['jpg'], + qualities: ['native'] }, - version3: { - level0: { - supports: [], - formats: ['jpg'], - qualities: ['default'] - }, - level1: { - supports: ['regionByPx', 'regionSquare', 'sizeByW', 'sizeByH'], - formats: ['jpg'], - qualities: ['default'] - }, - level2: { - supports: ['regionByPx', 'regionSquare', 'regionByPct', - 'sizeByW', 'sizeByH', 'sizeByPct', 'sizeByConfinedWh', 'sizeByWh'], - formats: ['jpg'], - qualities: ['default', 'bitonal'] - } - }, - none: { - none: { - supports: [], - formats: [], - qualities: [] - } + 'level2': { + supports: ['regionByPx', 'regionByPct', 'sizeByW', 'sizeByH', 'sizeByPct', + 'sizeByConfinedWh', 'sizeByWh'], + formats: ['jpg', 'png'], + qualities: ['native', 'color', 'grey', 'bitonal'] } }; - -/** - * @enum {string} - */ -export const Versions = { - VERSION1: 'version1', - VERSION2: 'version2', - VERSION3: 'version3' +IIIF_PROFILE_VALUES[Versions.VERSION2] = { + 'level0': { + supports: [], + formats: ['jpg'], + qualities: ['default'] + }, + 'level1': { + supports: ['regionByPx', 'sizeByW', 'sizeByH', 'sizeByPct'], + formats: ['jpg'], + qualities: ['default'] + }, + 'level2': { + supports: ['regionByPx', 'regionByPct', 'sizeByW', 'sizeByH', 'sizeByPct', + 'sizeByConfinedWh', 'sizeByDistortedWh', 'sizeByWh'], + formats: ['jpg', 'png'], + qualities: ['default', 'bitonal'] + } +}; +IIIF_PROFILE_VALUES[Versions.VERSION3] = { + 'level0': { + supports: [], + formats: ['jpg'], + qualities: ['default'] + }, + 'level1': { + supports: ['regionByPx', 'regionSquare', 'sizeByW', 'sizeByH'], + formats: ['jpg'], + qualities: ['default'] + }, + 'level2': { + supports: ['regionByPx', 'regionSquare', 'regionByPct', + 'sizeByW', 'sizeByH', 'sizeByPct', 'sizeByConfinedWh', 'sizeByWh'], + formats: ['jpg'], + qualities: ['default', 'bitonal'] + } +}; +IIIF_PROFILE_VALUES['none'] = { + 'none': { + supports: [], + formats: [], + qualities: [] + } }; const COMPLIANCE_VERSION1 = new RegExp('^https?\:\/\/library\.stanford\.edu\/iiif\/image-api\/(1\.1\/)?compliance\.html#level[0-2]$'); @@ -108,7 +107,7 @@ function generateVersion1Options(iiifInfo) { let levelProfile = iiifInfo.getComplianceLevelSupportedFeatures(); // Version 1.0 and 1.1 do not require a profile. if (levelProfile === undefined) { - levelProfile = IIIF_PROFILE_VALUES.version1.level0; + levelProfile = IIIF_PROFILE_VALUES[Versions.VERSION1]['level0']; } return { url: iiifInfo.imageInfo['@id'] === undefined ? undefined : iiifInfo.imageInfo['@id'].replace(/\/?(info.json)?$/g, ''),