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
This commit is contained in:
Lutz Helm
2019-05-03 15:26:33 +02:00
committed by Lutz Helm
parent 72e41d3703
commit 84f1e0c66e
+67 -68
View File
@@ -21,83 +21,82 @@ import {assert} from '../asserts.js';
* @property {Array<string>} [qualities] Supported IIIF image qualities. * @property {Array<string>} [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 * Supported image formats, qualities and supported region / size calculation features
* for different image API versions and compliance levels * for different image API versions and compliance levels
* @const * @const
* @type {Object<string, Object<string, SupportedFeatures>} * @type {Object<string, Object<string, SupportedFeatures>}
*/ */
const IIIF_PROFILE_VALUES = { const IIIF_PROFILE_VALUES = {};
version1: { IIIF_PROFILE_VALUES[Versions.VERSION1] = {
level0: { 'level0': {
supports: [], supports: [],
formats: [], formats: [],
qualities: ['native'] 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']
}
}, },
version2: { 'level1': {
level0: { supports: ['regionByPx', 'sizeByW', 'sizeByH', 'sizeByPct'],
supports: [], formats: ['jpg'],
formats: ['jpg'], qualities: ['native']
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']
}
}, },
version3: { 'level2': {
level0: { supports: ['regionByPx', 'regionByPct', 'sizeByW', 'sizeByH', 'sizeByPct',
supports: [], 'sizeByConfinedWh', 'sizeByWh'],
formats: ['jpg'], formats: ['jpg', 'png'],
qualities: ['default'] qualities: ['native', 'color', 'grey', 'bitonal']
},
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: []
}
} }
}; };
IIIF_PROFILE_VALUES[Versions.VERSION2] = {
/** 'level0': {
* @enum {string} supports: [],
*/ formats: ['jpg'],
export const Versions = { qualities: ['default']
VERSION1: 'version1', },
VERSION2: 'version2', 'level1': {
VERSION3: 'version3' 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]$'); 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(); let levelProfile = iiifInfo.getComplianceLevelSupportedFeatures();
// Version 1.0 and 1.1 do not require a profile. // Version 1.0 and 1.1 do not require a profile.
if (levelProfile === undefined) { if (levelProfile === undefined) {
levelProfile = IIIF_PROFILE_VALUES.version1.level0; levelProfile = IIIF_PROFILE_VALUES[Versions.VERSION1]['level0'];
} }
return { return {
url: iiifInfo.imageInfo['@id'] === undefined ? undefined : iiifInfo.imageInfo['@id'].replace(/\/?(info.json)?$/g, ''), url: iiifInfo.imageInfo['@id'] === undefined ? undefined : iiifInfo.imageInfo['@id'].replace(/\/?(info.json)?$/g, ''),