@europeana/portal
Version:
Europeana Portal
1,009 lines (826 loc) • 34.2 kB
JavaScript
exports.ids = [75,102,103];
exports.modules = {
/***/ 209:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
;
/* WEBPACK VAR INJECTION */(function(URL) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return urlIsContentfulAsset; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return optimisedSrcForContentfulAsset; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return responsiveImageSrcset; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return responsiveBackgroundImageCSSVars; });
function urlIsContentfulAsset(url) {
return new URL(url).host === 'images.ctfassets.net';
}
function optimisedSrcForContentfulAsset(asset, params = {}) {
if (!(asset !== null && asset !== void 0 && asset.url)) {
return null;
}
const imageUrl = new URL(asset.url); // TODO: are optimisations possible on any other content types?
if (asset.contentType === 'image/jpeg') {
params['fm'] = 'jpg';
params['fl'] = 'progressive';
if (!params.q) {
params.q = 80;
}
}
for (const key in params) {
imageUrl.searchParams.set(key, params[key]);
}
return imageUrl.toString();
}
function responsiveImageSrcset(image, params) {
if (image !== null && image !== void 0 && image.url && urlIsContentfulAsset(image.url) && params) {
return [`${optimisedSrcForContentfulAsset(image, params.small)} ${params.small.w}w`, `${optimisedSrcForContentfulAsset(image, params.medium)} ${params.medium.w}w`, `${optimisedSrcForContentfulAsset(image, params.large)} ${params.large.w}w`, `${optimisedSrcForContentfulAsset(image, params.xl)} ${params.xl.w}w`, `${optimisedSrcForContentfulAsset(image, params.xxl)} ${params.xxl.w}w`, `${optimisedSrcForContentfulAsset(image, params.xxxl)} ${params.xxxl.w}w`, `${optimisedSrcForContentfulAsset(image, params.wqhd)} ${params.wqhd.w}w`, `${optimisedSrcForContentfulAsset(image, params['4k'])} ${params['4k'].w}w`].join(',');
} else if (image !== null && image !== void 0 && image.url) {
return image.url;
} else {
return null;
}
}
function responsiveBackgroundImageCSSVars(image, params) {
if (image.url && urlIsContentfulAsset(image.url) && params) {
return {
'--bg-img-small': `url('${optimisedSrcForContentfulAsset(image, params.small)}')`,
'--bg-img-medium': `url('${optimisedSrcForContentfulAsset(image, params.medium)}')`,
'--bg-img-large': `url('${optimisedSrcForContentfulAsset(image, params.large)}')`,
'--bg-img-xl': `url('${optimisedSrcForContentfulAsset(image, params.xl)}')`,
'--bg-img-xxl': `url('${optimisedSrcForContentfulAsset(image, params.xxl)}')`,
'--bg-img-xxxl': `url('${optimisedSrcForContentfulAsset(image, params.xxxl)}')`,
'--bg-img-wqhd': `url('${optimisedSrcForContentfulAsset(image, params.wqhd)}')`,
'--bg-img-4k': `url('${optimisedSrcForContentfulAsset(image, params['4k'])}')`
};
} else if (image.url) {
return {
'--bg-img-small': `url('${image.url}')`
};
} else {
return null;
}
}
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(9)["URL"]))
/***/ }),
/***/ 218:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
;
const ICON_CLASS_BY = 'icon-license-by';
const ICON_CLASS_CC = 'icon-license-cc';
const ICON_CLASS_COPYRIGHT_NOT_EVALUATED = 'icon-license-rs-unknown';
const ICON_CLASS_IN_COPYRIGHT = 'icon-license-rs-yes';
const ICON_CLASS_NC = 'icon-license-nc';
const ICON_CLASS_ND = 'icon-license-nd';
const ICON_CLASS_NO_COPYRIGHT = 'icon-license-rs-no';
const ICON_CLASS_PUBLIC_DOMAIN = 'icon-license-pd';
const ICON_CLASS_RIGHTS_RESERVED = 'icon-license-rr';
const ICON_CLASS_SA = 'icon-license-sa';
const ICON_CLASS_ZERO = 'icon-license-zero';
/* harmony default export */ __webpack_exports__["a"] = ({
methods: {
rightsNameAndIcon(rightsStatementUrl) {
const rights = {};
switch (true) {
case new RegExp('https?://creativecommons.org/(licenses/)?publicdomain/mark').test(rightsStatementUrl):
rights.name = 'Public Domain';
rights.iconClass = [ICON_CLASS_PUBLIC_DOMAIN];
break;
case new RegExp('https?://creativecommons.org/(licenses/)?publicdomain/zero').test(rightsStatementUrl):
rights.name = 'CC0';
rights.iconClass = [ICON_CLASS_ZERO];
break;
case new RegExp('https?://creativecommons.org/licenses/by/').test(rightsStatementUrl):
rights.name = 'CC BY';
rights.iconClass = [ICON_CLASS_CC, ICON_CLASS_BY];
break;
case new RegExp('https?://creativecommons.org/licenses/by-sa/').test(rightsStatementUrl):
rights.name = 'CC BY-SA';
rights.iconClass = [ICON_CLASS_CC, ICON_CLASS_BY, ICON_CLASS_SA];
break;
case new RegExp('https?://creativecommons.org/licenses/by-nc/').test(rightsStatementUrl):
rights.name = 'CC BY-NC';
rights.iconClass = [ICON_CLASS_CC, ICON_CLASS_BY, ICON_CLASS_NC];
break;
case new RegExp('https?://creativecommons.org/licenses/by-nc-sa/').test(rightsStatementUrl):
rights.name = 'CC BY-NC-SA';
rights.iconClass = [ICON_CLASS_CC, ICON_CLASS_BY, ICON_CLASS_NC, ICON_CLASS_SA];
break;
case new RegExp('https?://creativecommons.org/licenses/by-nc-nd/').test(rightsStatementUrl):
rights.name = 'CC BY-NC-ND';
rights.iconClass = [ICON_CLASS_CC, ICON_CLASS_BY, ICON_CLASS_NC, ICON_CLASS_ND];
break;
case new RegExp('https?://creativecommons.org/licenses/by-nd/').test(rightsStatementUrl):
rights.name = 'CC BY-ND';
rights.iconClass = [ICON_CLASS_CC, ICON_CLASS_BY, ICON_CLASS_ND];
break;
case new RegExp('https?://rightsstatements.org/(vocab|page)/InC-EDU/').test(rightsStatementUrl):
rights.name = 'In Copyright - Educational Use Permitted';
rights.iconClass = [ICON_CLASS_IN_COPYRIGHT];
break;
case new RegExp('https?://rightsstatements.org/(vocab|page)/NoC-NC/').test(rightsStatementUrl):
case new RegExp('https?://www.europeana.eu/rights/out-of-copyright-non-commercial/').test(rightsStatementUrl):
rights.name = 'No Copyright - Non-Commercial Use Only';
rights.iconClass = [ICON_CLASS_NO_COPYRIGHT];
break;
case new RegExp('https?://rightsstatements.org/(vocab|page)/NoC-OKLR/').test(rightsStatementUrl):
rights.name = 'No Copyright - Other Known Legal Restrictions';
rights.iconClass = [ICON_CLASS_NO_COPYRIGHT];
break;
case new RegExp('https?://www.europeana.eu/rights/rr-f/').test(rightsStatementUrl):
rights.name = 'Rights Reserved - Free Access';
rights.iconClass = [ICON_CLASS_RIGHTS_RESERVED];
break;
case new RegExp('https?://www.europeana.eu/rights/rr-p/').test(rightsStatementUrl):
rights.name = 'Rights Reserved - Paid Access';
rights.iconClass = [ICON_CLASS_RIGHTS_RESERVED];
break;
case new RegExp('https?://www.europeana.eu/rights/rr-r/').test(rightsStatementUrl):
rights.name = 'Rights Reserved - Restricted Access';
rights.iconClass = [ICON_CLASS_RIGHTS_RESERVED];
break;
case new RegExp('https?://www.europeana.eu/rights/unknown/').test(rightsStatementUrl):
rights.name = 'Unknown copyright status';
rights.iconClass = [];
break;
case new RegExp('https?://rightsstatements.org/(vocab|page)/InC/').test(rightsStatementUrl):
rights.name = 'In Copyright';
rights.iconClass = [ICON_CLASS_IN_COPYRIGHT];
break;
case new RegExp('https?://rightsstatements.org/(vocab|page)/InC-OW-EU/').test(rightsStatementUrl):
rights.name = 'In Copyright - EU Orphan Work';
rights.iconClass = [ICON_CLASS_IN_COPYRIGHT];
break;
case new RegExp('https?://rightsstatements.org/(vocab|page)/CNE/').test(rightsStatementUrl):
rights.name = 'Copyright Not Evaluated';
rights.iconClass = [ICON_CLASS_COPYRIGHT_NOT_EVALUATED];
break;
default:
rights.name = rightsStatementUrl;
break;
}
return rights;
}
}
});
/***/ }),
/***/ 225:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
;
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/generic/RightsStatement.vue?vue&type=template&id=488721ec&
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:"license-label d-inline-flex align-items-center",class:{ 'text-uppercase': _vm.variant === 'simple' },attrs:{"data-qa":"rights statement"}},[_vm._ssrNode(((_vm.variant === 'icons')?((_vm._ssrList((_vm.rightsNameAndIcon(_vm.rightsStatementUrl).iconClass),function(icon){return ("<span"+(_vm._ssrClass("license",icon))+"></span>")}))):("<span class=\"icon-license\"></span>"))+" <span class=\"license-label-text\">"+_vm._ssrEscape("\n "+_vm._s(_vm.rightsNameAndIcon(_vm.rightsStatementUrl).name)+"\n ")+"</span>")])}
var staticRenderFns = []
// CONCATENATED MODULE: ./src/components/generic/RightsStatement.vue?vue&type=template&id=488721ec&
// EXTERNAL MODULE: ./src/mixins/rightsStatement.js
var rightsStatement = __webpack_require__(218);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/generic/RightsStatement.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ var RightsStatementvue_type_script_lang_js_ = ({
mixins: [rightsStatement["a" /* default */]],
props: {
rightsStatementUrl: {
type: String,
required: true
},
/**
* Style variant to use
* @values icons, simple
*/
variant: {
type: String,
default: 'icons'
}
}
});
// CONCATENATED MODULE: ./src/components/generic/RightsStatement.vue?vue&type=script&lang=js&
/* harmony default export */ var generic_RightsStatementvue_type_script_lang_js_ = (RightsStatementvue_type_script_lang_js_);
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(3);
// CONCATENATED MODULE: ./src/components/generic/RightsStatement.vue
/* normalize component */
var component = Object(componentNormalizer["a" /* default */])(
generic_RightsStatementvue_type_script_lang_js_,
render,
staticRenderFns,
false,
null,
null,
"65327e37"
)
/* harmony default export */ var RightsStatement = __webpack_exports__["default"] = (component.exports);
/***/ }),
/***/ 232:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
;
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/generic/CiteAttribution.vue?vue&type=template&id=fddd3be8&
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.extended)?_c('cite',[(_vm.name)?_vm._ssrNode("<p>","</p>",[_vm._ssrNode(_vm._ssrEscape(_vm._s(_vm.$t('attribution.title'))+"\n ")),(_vm.url)?_c('SmartLink',{attrs:{"destination":_vm.url}},[_vm._v("\n "+_vm._s(_vm.name)+"\n ")]):_c('span',[_vm._v("\n "+_vm._s(_vm.name)+"\n ")])],2):_vm._e(),_vm._ssrNode(" "),(_vm.creator)?_vm._ssrNode("<p>","</p>",[_vm._ssrNode(_vm._ssrEscape(_vm._s(_vm.$t('attribution.creator'))+"\n ")),(_vm.url)?_c('SmartLink',{attrs:{"destination":_vm.url}},[_vm._v("\n "+_vm._s(_vm.creator)+"\n ")]):_c('span',[_vm._v("\n "+_vm._s(_vm.creator)+"\n ")])],2):_vm._e(),_vm._ssrNode(" "),(_vm.provider)?_vm._ssrNode("<p>","</p>",[_vm._ssrNode(_vm._ssrEscape(_vm._s(_vm.$t('attribution.institution'))+"\n ")),(_vm.url)?_c('SmartLink',{attrs:{"destination":_vm.url}},[_vm._v("\n "+_vm._s(_vm.provider)+"\n ")]):_c('span',[_vm._v("\n "+_vm._s(_vm.provider)+"\n ")])],2):_vm._e(),_vm._ssrNode(" "),_vm._ssrNode("<p>","</p>",[_c('SmartLink',{attrs:{"destination":_vm.rightsStatement,"link-class":"attribution"}},[(_vm.rightsStatement)?_c('RightsStatement',{attrs:{"rights-statement-url":_vm.rightsStatement}}):_vm._e()],1)],1)],2):_c('cite',[_c('SmartLink',{attrs:{"destination":_vm.url,"link-class":"attribution"}},[_vm._v("\n "+_vm._s(_vm.linkText)+"\n "),(_vm.rightsStatement)?_c('RightsStatement',{attrs:{"rights-statement-url":_vm.rightsStatement}}):_vm._e()],1)],1)}
var staticRenderFns = []
// CONCATENATED MODULE: ./src/components/generic/CiteAttribution.vue?vue&type=template&id=fddd3be8&
// EXTERNAL MODULE: ./src/components/generic/RightsStatement.vue + 4 modules
var RightsStatement = __webpack_require__(225);
// EXTERNAL MODULE: ./src/components/generic/SmartLink.vue + 3 modules
var SmartLink = __webpack_require__(26);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/generic/CiteAttribution.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/**
* Attribution for a cited resource
*/
/* harmony default export */ var CiteAttributionvue_type_script_lang_js_ = ({
name: 'CiteAttribution',
components: {
RightsStatement: RightsStatement["default"],
SmartLink: SmartLink["a" /* default */]
},
props: {
/**
* Name of the cited resource
*/
name: {
type: String,
default: null
},
/**
* Creator of the cited resource
*/
creator: {
type: String,
default: null
},
/**
* Provider of the cited resource
*/
provider: {
type: String,
default: null
},
/**
* Rights statement URL of the cited resource
*/
rightsStatement: {
type: String,
required: true
},
/**
* URL of the cited resource
*/
url: {
type: String,
default: null
},
/**
* If `true`, use the extended format
*/
extended: {
type: Boolean,
default: false
}
},
computed: {
linkText() {
return [this.name, this.creator, this.provider].filter(Boolean).join(', ');
}
}
});
// CONCATENATED MODULE: ./src/components/generic/CiteAttribution.vue?vue&type=script&lang=js&
/* harmony default export */ var generic_CiteAttributionvue_type_script_lang_js_ = (CiteAttributionvue_type_script_lang_js_);
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(3);
// EXTERNAL MODULE: ./src/components/generic/CiteAttribution.vue?vue&type=custom&index=0&blockType=docs&lang=md
var CiteAttributionvue_type_custom_index_0_blockType_docs_lang_md = __webpack_require__(233);
var CiteAttributionvue_type_custom_index_0_blockType_docs_lang_md_default = /*#__PURE__*/__webpack_require__.n(CiteAttributionvue_type_custom_index_0_blockType_docs_lang_md);
// CONCATENATED MODULE: ./src/components/generic/CiteAttribution.vue
/* normalize component */
var component = Object(componentNormalizer["a" /* default */])(
generic_CiteAttributionvue_type_script_lang_js_,
render,
staticRenderFns,
false,
null,
null,
"3da4c0f2"
)
/* custom blocks */
if (typeof CiteAttributionvue_type_custom_index_0_blockType_docs_lang_md_default.a === 'function') CiteAttributionvue_type_custom_index_0_blockType_docs_lang_md_default()(component)
/* harmony default export */ var CiteAttribution = __webpack_exports__["a"] = (component.exports);
/***/ }),
/***/ 233:
/***/ (function(module, exports) {
/***/ }),
/***/ 253:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
;
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/generic/OptimisedImage.vue?vue&type=template&id=2bfc3fc3&
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.lazy)?_c('b-img-lazy',{attrs:{"src":_vm.optimisedSrc,"blank-color":"#fff","blank-width":_vm.optimisedWidth,"blank-height":_vm.optimisedHeight,"alt":_vm.alt}}):_c('b-img',{attrs:{"src":_vm.optimisedSrc,"width":_vm.optimisedWidth,"height":_vm.optimisedHeight,"alt":_vm.alt}})}
var staticRenderFns = []
// CONCATENATED MODULE: ./src/components/generic/OptimisedImage.vue?vue&type=template&id=2bfc3fc3&
// EXTERNAL MODULE: ./src/plugins/contentful-utils.js
var contentful_utils = __webpack_require__(209);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/generic/OptimisedImage.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ var OptimisedImagevue_type_script_lang_js_ = ({
name: 'OptimisedImage',
props: {
src: {
type: String,
required: true
},
width: {
type: Number,
required: true
},
height: {
type: Number,
required: true
},
alt: {
type: String,
default: ''
},
contentType: {
// TODO: required?
type: String,
default: null
},
quality: {
type: Number,
default: 80
},
maxWidth: {
type: Number,
default: null
},
lazy: {
type: Boolean,
default: true
}
},
computed: {
aspectRatio() {
return this.width / this.height;
},
optimisedWidth() {
return this.maxWidth === null || this.width <= this.maxWidth ? this.width : this.maxWidth;
},
optimisedHeight() {
return Math.round(this.optimisedWidth / this.aspectRatio);
},
optimisedSrc() {
if (typeof this.contentType !== 'string' || !Object(contentful_utils["d" /* urlIsContentfulAsset */])(this.src)) {
return this.src;
}
return Object(contentful_utils["a" /* optimisedSrcForContentfulAsset */])({
url: this.src,
contentType: this.contentType
}, {
w: this.maxWidth,
q: this.quality
});
}
}
});
// CONCATENATED MODULE: ./src/components/generic/OptimisedImage.vue?vue&type=script&lang=js&
/* harmony default export */ var generic_OptimisedImagevue_type_script_lang_js_ = (OptimisedImagevue_type_script_lang_js_);
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(3);
// CONCATENATED MODULE: ./src/components/generic/OptimisedImage.vue
/* normalize component */
var component = Object(componentNormalizer["a" /* default */])(
generic_OptimisedImagevue_type_script_lang_js_,
render,
staticRenderFns,
false,
null,
null,
"1ab8704c"
)
/* harmony default export */ var OptimisedImage = __webpack_exports__["default"] = (component.exports);
/***/ }),
/***/ 347:
/***/ (function(module, exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a <style> tag
// load the styles
var content = __webpack_require__(454);
if(content.__esModule) content = content.default;
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add CSS to SSR context
var add = __webpack_require__(13).default
module.exports.__inject__ = function (context) {
add("75f9cd27", content, true, context)
};
/***/ }),
/***/ 453:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
;
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_vue_loader_lib_index_js_vue_loader_options_CompareImageSlider_vue_vue_type_style_index_0_id_a8dbc07c_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(347);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_vue_loader_lib_index_js_vue_loader_options_CompareImageSlider_vue_vue_type_style_index_0_id_a8dbc07c_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_vue_loader_lib_index_js_vue_loader_options_CompareImageSlider_vue_vue_type_style_index_0_id_a8dbc07c_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_vue_loader_lib_index_js_vue_loader_options_CompareImageSlider_vue_vue_type_style_index_0_id_a8dbc07c_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_vue_loader_lib_index_js_vue_loader_options_CompareImageSlider_vue_vue_type_style_index_0_id_a8dbc07c_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
/***/ }),
/***/ 454:
/***/ (function(module, exports, __webpack_require__) {
// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(12);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
// Module
___CSS_LOADER_EXPORT___.push([module.i, "figure[data-v-a8dbc07c]{display:inline-block}.compare-image[data-v-a8dbc07c]{position:relative;overflow:hidden}.compare-image img[data-v-a8dbc07c]{width:auto}.compare-image img[data-v-a8dbc07c]:nth-child(1){position:absolute;top:0;left:0}.compare-image .slider[data-v-a8dbc07c]{width:48px;height:100%;position:absolute;top:0;align-items:center;display:flex}.compare-image .slider .slider-handle[data-v-a8dbc07c]{position:absolute;background:rgba(255,255,255,.5);width:48px;height:48px;border:0;border-radius:50%;box-shadow:0 0 6px rgba(0,0,0,0)}.compare-image .slider .slider-handle.is-active[data-v-a8dbc07c]{background:rgba(255,255,255,.85)}.compare-image .slider .slider-handle[data-v-a8dbc07c]::before,.compare-image .slider .slider-handle[data-v-a8dbc07c]::after{content:\"\";position:absolute;width:10px;height:10px;top:50%;border-top:solid 2px;border-left:solid 2px;transform-origin:0 0}.compare-image .slider .slider-handle[data-v-a8dbc07c]::before{left:10px;transform:rotate(-45deg)}.compare-image .slider .slider-handle[data-v-a8dbc07c]::after{right:0;transform:rotate(135deg)}.compare-image .slider .slider-handle[data-v-a8dbc07c]:hover{box-shadow:0 0 3px rgba(0,0,0,.4)}.compare-image .slider .slider-handle[data-v-a8dbc07c]:hover::before{left:9px}.compare-image .slider .slider-handle[data-v-a8dbc07c]:hover::after{right:-1px}.compare-image+figcaption cite[data-v-a8dbc07c]{display:block;margin:0;position:static}.compare-image+figcaption cite[data-v-a8dbc07c]::before{content:attr(data-prefix);font-style:normal}@media(min-width: 992px){.compare-image+figcaption cite[data-v-a8dbc07c]{max-width:45%;position:absolute;transition:opacity .2s ease-out}.compare-image+figcaption cite[data-v-a8dbc07c]::before{display:none}.compare-image+figcaption cite[data-v-a8dbc07c]:nth-child(2){left:auto;margin-left:1rem;margin-right:0;right:1rem}.compare-image+figcaption .cite-hidden[data-v-a8dbc07c]{opacity:0}}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;
/***/ }),
/***/ 455:
/***/ (function(module, exports) {
/***/ }),
/***/ 579:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
;
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/generic/CompareImageSlider.vue?vue&type=template&id=a8dbc07c&scoped=true&
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('figure',{ref:"container",staticClass:"compare-image-wrapper"},[_vm._ssrNode("<div data-qa=\"compare image\" class=\"compare-image\" data-v-a8dbc07c>","</div>",[_c('OptimisedImage',{ref:"leftImage",style:(_vm.leftImageClip),attrs:{"src":_vm.leftImageSrc,"width":_vm.leftImageWidth,"height":_vm.leftImageHeight,"content-type":_vm.leftImageContentType,"max-width":1100,"lazy":_vm.lazy,"data-qa":"compare image left image"}}),_vm._ssrNode(" "),_c('OptimisedImage',{ref:"rightImage",attrs:{"src":_vm.rightImageSrc,"width":_vm.rightImageWidth,"height":_vm.rightImageHeight,"content-type":_vm.rightImageContentType,"max-width":1100,"lazy":_vm.lazy,"data-qa":"compare image right image"}}),_vm._ssrNode(" <div data-qa=\"compare image slider\" class=\"slider\""+(_vm._ssrStyle(null,_vm.sliderBarPosition, null))+" data-v-a8dbc07c><span class=\"slider-bar\" data-v-a8dbc07c></span> <button data-qa=\"compare image slider handler\""+(_vm._ssrClass("slider-handle",{ 'is-active' : _vm.dragging }))+" data-v-a8dbc07c><span class=\"sr-only\" data-v-a8dbc07c>"+_vm._ssrEscape(_vm._s(_vm.$t('imageSlider.handle')))+"</span></button></div>")],2),_vm._ssrNode(" "),_vm._ssrNode("<figcaption data-v-a8dbc07c>","</figcaption>",[_c('CiteAttribution',{class:_vm.hideAttribution === 'left' && 'cite-hidden',attrs:{"name":_vm.leftImageAttribution.name,"creator":_vm.leftImageAttribution.creator,"provider":_vm.leftImageAttribution.provider,"rights-statement":_vm.leftImageAttribution.rightsStatement,"url":_vm.leftImageAttribution.url,"data-qa":"compare image left attribution","data-prefix":_vm.$t('directions.left')}}),_vm._ssrNode(" "),_c('CiteAttribution',{class:_vm.hideAttribution === 'right' && 'cite-hidden',attrs:{"name":_vm.rightImageAttribution.name,"creator":_vm.rightImageAttribution.creator,"provider":_vm.rightImageAttribution.provider,"rights-statement":_vm.rightImageAttribution.rightsStatement,"url":_vm.rightImageAttribution.url,"data-qa":"compare image right attribution","data-prefix":_vm.$t('directions.right')}})],2)],2)}
var staticRenderFns = []
// CONCATENATED MODULE: ./src/components/generic/CompareImageSlider.vue?vue&type=template&id=a8dbc07c&scoped=true&
// EXTERNAL MODULE: ./src/components/generic/CiteAttribution.vue + 4 modules
var CiteAttribution = __webpack_require__(232);
// EXTERNAL MODULE: ./src/components/generic/OptimisedImage.vue + 4 modules
var OptimisedImage = __webpack_require__(253);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/generic/CompareImageSlider.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/**
* Slider to compare two images side-by-side
*/
/* harmony default export */ var CompareImageSlidervue_type_script_lang_js_ = ({
name: 'CompareImageSlider',
components: {
CiteAttribution: CiteAttribution["a" /* default */],
OptimisedImage: OptimisedImage["default"]
},
props: {
/**
* URL of the left image
*/
leftImageSrc: {
type: String,
required: true
},
/**
* Content type of the left image
*/
leftImageContentType: {
type: String,
default: null
},
/**
* Width of the left image
*/
leftImageWidth: {
type: Number,
required: true
},
/**
* Height of the left image
*/
leftImageHeight: {
type: Number,
required: true
},
/**
* Attribution for the left image
*
* Properties are passed as props to CiteAttribution
*/
leftImageAttribution: {
type: Object,
required: true
},
/**
* URL of the right image
*/
rightImageSrc: {
type: String,
required: true
},
/**
* Content type of the right image
*/
rightImageContentType: {
type: String,
default: null
},
/**
* Width of the right image
*/
rightImageWidth: {
type: Number,
required: true
},
/**
* Height of the right image
*/
rightImageHeight: {
type: Number,
required: true
},
/**
* Attribution for the right image
*
* Properties are passed as props to CiteAttribution
*/
rightImageAttribution: {
type: Object,
required: true
},
/**
* If `true`, lazy-load the images
*/
lazy: {
type: Boolean,
default: true
}
},
data() {
return {
dragging: false,
imageWidth: 0,
sliderWidth: 0,
sliderPosition: 0.5,
hideAttribution: null
};
},
computed: {
leftImageClip() {
const rightLength = this.imageWidth * this.sliderPosition;
return {
clip: `rect(auto, ${rightLength}px, auto, auto)`
};
},
sliderBarPosition() {
const leftPosition = this.imageWidth * this.sliderPosition - this.sliderWidth / 2;
return {
left: `${leftPosition}px`
};
}
},
beforeDestroy() {
window.removeEventListener('touchmove', this.stopDrag);
window.removeEventListener('mousemove', this.drag);
},
mounted() {
this.setSliderWidth();
window.addEventListener('resize', this.resize);
window.addEventListener('mousemove', this.mousemove);
window.addEventListener('mouseup', this.mouseup);
window.addEventListener('touchmove', this.mousemove);
window.addEventListener('touchend', this.mouseup);
this.$refs.rightImage.$el.addEventListener('load', this.setImageWidth);
},
methods: {
resize() {
this.setImageWidth();
},
mousemove(event) {
this.drag(event);
},
mouseup() {
this.stopDrag();
},
setImageWidth() {
this.imageWidth = this.$refs.rightImage.$el.getBoundingClientRect().width;
},
setSliderWidth() {
this.sliderWidth = this.$refs.slider.getBoundingClientRect().width;
},
initDrag() {
this.dragging = true;
},
stopDrag() {
this.dragging = false;
},
showHideAttribution() {
if (this.sliderPosition < 0.2) {
this.hideAttribution = 'left';
} else if (this.sliderPosition > 0.8) {
this.hideAttribution = 'right';
} else {
this.hideAttribution = '';
}
},
drag(event) {
if (!this.dragging) {
return;
} // Calc Cursor Position from the left edge of the viewport
const cursorXfromViewport = event.touches ? event.touches[0].pageX : event.pageX; // Calc Cursor Position from the left edge of the window (consider any page scrolling)
const cursorXfromWindow = cursorXfromViewport - window.pageXOffset; // Calc Cursor Position from the left edge of the image
const imagePosition = this.$refs.rightImage.$el.getBoundingClientRect();
let pos = cursorXfromWindow - imagePosition.left;
const minPos = 0 + this.sliderWidth / 2;
const maxPos = this.imageWidth - this.sliderWidth / 2;
if (pos < minPos) {
pos = minPos;
}
if (pos > maxPos) {
pos = maxPos;
}
this.sliderPosition = pos / this.imageWidth;
this.showHideAttribution();
}
}
});
// CONCATENATED MODULE: ./src/components/generic/CompareImageSlider.vue?vue&type=script&lang=js&
/* harmony default export */ var generic_CompareImageSlidervue_type_script_lang_js_ = (CompareImageSlidervue_type_script_lang_js_);
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(3);
// EXTERNAL MODULE: ./src/components/generic/CompareImageSlider.vue?vue&type=custom&index=0&blockType=docs&lang=md
var CompareImageSlidervue_type_custom_index_0_blockType_docs_lang_md = __webpack_require__(455);
var CompareImageSlidervue_type_custom_index_0_blockType_docs_lang_md_default = /*#__PURE__*/__webpack_require__.n(CompareImageSlidervue_type_custom_index_0_blockType_docs_lang_md);
// CONCATENATED MODULE: ./src/components/generic/CompareImageSlider.vue
function injectStyles (context) {
var style0 = __webpack_require__(453)
if (style0.__inject__) style0.__inject__(context)
}
/* normalize component */
var component = Object(componentNormalizer["a" /* default */])(
generic_CompareImageSlidervue_type_script_lang_js_,
render,
staticRenderFns,
false,
injectStyles,
"a8dbc07c",
"1a8b4f68"
)
/* custom blocks */
if (typeof CompareImageSlidervue_type_custom_index_0_blockType_docs_lang_md_default.a === 'function') CompareImageSlidervue_type_custom_index_0_blockType_docs_lang_md_default()(component)
/* harmony default export */ var CompareImageSlider = __webpack_exports__["default"] = (component.exports);
/***/ })
};;
//# sourceMappingURL=75.js.map