UNPKG

@europeana/portal

Version:
1,879 lines 63.8 kB
exports.ids = [68];
exports.modules = {

/***/ 198:
/***/ (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__(202);
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("688b9c6f", content, true, context)
};

/***/ }),

/***/ 200:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/sharing/SocialShare.vue?vue&type=template&id=a553b8a4&scoped=true&
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._l((_vm.networks),function(network,index){return _c('b-link',{key:index,class:("social-share mr-1 " + (network.identifier)),attrs:{"title":_vm.$t('actions.shareOn', { social: network.name }),"href":network.url,"data-qa":("share " + (network.identifier) + " button")},nativeOn:{"click":function($event){_vm.$matomo && _vm.$matomo.trackEvent('Item_share', 'Click social share button', network.url);}}},[_c('span',{class:("icon-" + (network.identifier))}),_vm._v(" "),(_vm.withText)?_c('span',{staticClass:"text"},[_vm._v(_vm._s(network.name)+"\n    ")]):_vm._e()])}),1)}
var staticRenderFns = []


// CONCATENATED MODULE: ./src/components/sharing/SocialShare.vue?vue&type=template&id=a553b8a4&scoped=true&

// EXTERNAL MODULE: external "vuex"
var external_vuex_ = __webpack_require__(8);

// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/sharing/SocialShare.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//

/* harmony default export */ var SocialSharevue_type_script_lang_js_ = ({
  name: 'SocialShare',
  props: {
    mediaUrl: {
      type: String,
      default: ''
    },
    withText: {
      type: Boolean,
      default: false
    }
  },
  computed: { ...Object(external_vuex_["mapGetters"])({
      shareUrl: 'http/canonicalUrlWithoutLocale'
    }),

    networks() {
      return [{
        identifier: 'facebook',
        name: 'Facebook',
        url: `https://www.facebook.com/sharer/sharer.php?display=page&u=${this.shareUrl}`
      }, {
        identifier: 'twitter',
        name: 'Twitter',
        url: `https://twitter.com/intent/tweet?text=${this.shareUrl}`
      }, {
        identifier: 'pinterest',
        name: 'Pinterest',
        url: `https://pinterest.com/pin/create/link/?url=${this.shareUrl}` + (this.mediaUrl ? `&media=${this.mediaUrl}` : '')
      }];
    }

  }
});
// CONCATENATED MODULE: ./src/components/sharing/SocialShare.vue?vue&type=script&lang=js&
 /* harmony default export */ var sharing_SocialSharevue_type_script_lang_js_ = (SocialSharevue_type_script_lang_js_); 
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(3);

// CONCATENATED MODULE: ./src/components/sharing/SocialShare.vue



function injectStyles (context) {
  
  var style0 = __webpack_require__(201)
if (style0.__inject__) style0.__inject__(context)

}

/* normalize component */

var component = Object(componentNormalizer["a" /* default */])(
  sharing_SocialSharevue_type_script_lang_js_,
  render,
  staticRenderFns,
  false,
  injectStyles,
  "a553b8a4",
  "c7505654"
  
)

/* harmony default export */ var SocialShare = __webpack_exports__["a"] = (component.exports);

/***/ }),

/***/ 201:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__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_SocialShare_vue_vue_type_style_index_0_id_a553b8a4_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(198);
/* 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_SocialShare_vue_vue_type_style_index_0_id_a553b8a4_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_SocialShare_vue_vue_type_style_index_0_id_a553b8a4_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_SocialShare_vue_vue_type_style_index_0_id_a553b8a4_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_SocialShare_vue_vue_type_style_index_0_id_a553b8a4_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));


/***/ }),

/***/ 202:
/***/ (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, "a[data-v-a553b8a4]{align-items:center;background:transparent;border:1px solid #1a1a1a;border-radius:50%;color:#1a1a1a;display:inline-flex;height:calc(2.5rem - 1px);justify-content:center;text-decoration:none;transition:background .25s;width:calc(2.5rem - 1px)}a [class^=icon][data-v-a553b8a4]{color:#1a1a1a;font-size:1.25rem}a[data-v-a553b8a4]:hover{background:#1a1a1a}a:hover [class^=icon][data-v-a553b8a4]{color:#fff}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 203:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// 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/ContentCard.vue?vue&type=template&id=28c51dc4&
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',{staticClass:"text-left content-card",class:_vm.cardClass,attrs:{"data-qa":"content card","no-body":""}},[_c('div',{staticClass:"card-wrapper"},[_c('SmartLink',{attrs:{"destination":_vm.url,"link-class":"card-link","aria-label":_vm.displayTitle ? _vm.displayTitle.value : null,"title":(_vm.variant === 'mosaic' && _vm.displayTitle) ? _vm.displayTitle.value : null}}),_vm._v(" "),(_vm.variant !== 'mini')?_c('MediaDefaultThumbnail',{directives:[{name:"show",rawName:"v-show",value:(!_vm.cardImageUrl),expression:"!cardImageUrl"}],attrs:{"media-type":_vm.mediaType,"offset":_vm.offset}}):_vm._e(),_vm._v(" "),(_vm.cardImageUrl)?_c('div',{staticClass:"card-img",class:{ logo: _vm.logo }},[(_vm.lazy)?_c('b-img-lazy',{attrs:{"src":_vm.optimisedImageUrl,"blank-width":_vm.blankImageWidth,"blank-height":_vm.blankImageHeight,"width":_vm.imageWidth,"height":_vm.imageHeight,"alt":_vm.imageAlt},nativeOn:{"error":function($event){return _vm.imageNotFound.apply(null, arguments)},"load":function($event){return _vm.imageLoaded.apply(null, arguments)}}}):_c('b-img',{attrs:{"src":_vm.optimisedImageUrl,"width":_vm.imageWidth,"height":_vm.imageHeight,"alt":_vm.imageAlt},on:{"error":_vm.imageNotFound,"load":_vm.imageLoaded}})],1):_vm._e(),_vm._v(" "),(_vm.variant !== 'mosaic')?_c('b-card-body',{attrs:{"data-qa":"card body"}},[((_vm.displaySubTitle && _vm.variant !== 'mini') && _vm.showSubtitle)?_c('b-card-sub-title',{staticClass:"mt-0",attrs:{"sub-title-tag":"div","sub-title-text-variant":"default"}},[_vm._v("\n        "+_vm._s(_vm.displaySubTitle)+"\n      ")]):_vm._e(),_vm._v(" "),_c('div',{staticClass:"title-texts-wrapper"},[(_vm.displayTitle)?_c('b-card-title',{attrs:{"title-tag":"div","data-qa":"card title","lang":_vm.displayTitle.code}},[_c('span',[_vm._v("\n            "+_vm._s(_vm._f("truncate")(_vm.displayTitle.value,90, _vm.$t('formatting.ellipsis')))+"\n          ")])]):_vm._e(),_vm._v(" "),(_vm.hitsText)?_c('b-card-text',{attrs:{"text-tag":"div","data-qa":"highlighted search term"}},[_c('p',[_vm._v("\n            "+_vm._s(_vm.hitsText.prefix)),_c('strong',{staticClass:"has-text-highlight"},[_vm._v(_vm._s(_vm.hitsText.exact))]),_vm._v(_vm._s(_vm.hitsText.suffix)+"\n          ")])]):_vm._e(),_vm._v(" "),(_vm.displayTexts.length > 0)?_vm._l((_vm.displayTexts),function(text,index){return _c('b-card-text',{key:index,attrs:{"lang":text.code,"text-tag":"div"}},[_c('p',{domProps:{"innerHTML":_vm._s(_vm.cardText(text.values))}})])}):_vm._e()],2),_vm._v(" "),_c('client-only',[_vm._t("footer")],2)],1):_vm._e()],1),_vm._v(" "),_c('client-only',[_vm._t("image-overlay")],2)],1)}
var staticRenderFns = []


// CONCATENATED MODULE: ./src/components/generic/ContentCard.vue?vue&type=template&id=28c51dc4&

// EXTERNAL MODULE: external "vue-client-only"
var external_vue_client_only_ = __webpack_require__(20);
var external_vue_client_only_default = /*#__PURE__*/__webpack_require__.n(external_vue_client_only_);

// EXTERNAL MODULE: ./src/components/generic/SmartLink.vue + 3 modules
var SmartLink = __webpack_require__(26);

// EXTERNAL MODULE: ./src/mixins/stripMarkdown.js
var stripMarkdown = __webpack_require__(204);

// EXTERNAL MODULE: ./src/plugins/europeana/utils.js
var utils = __webpack_require__(2);

// EXTERNAL MODULE: ./src/plugins/europeana/themes.js
var themes = __webpack_require__(27);

// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/generic/ContentCard.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//





/* harmony default export */ var ContentCardvue_type_script_lang_js_ = ({
  name: 'ContentCard',
  components: {
    ClientOnly: external_vue_client_only_default.a,
    SmartLink: SmartLink["a" /* default */],
    MediaDefaultThumbnail: () => __webpack_require__.e(/* import() */ 15).then(__webpack_require__.bind(null, 578))
  },
  mixins: [stripMarkdown["a" /* default */]],
  props: {
    /**
     * Card title
     *
     * If an object is supplied, it is expected to be a LangMap.
     */
    title: {
      type: [String, Object],
      default: ''
    },

    /**
     * Card subtitle
     */
    subTitle: {
      type: String,
      default: null
    },

    /**
     * Card texts
     *
     * Each element may be a string, an array of strings, or a LangMap
     */
    texts: {
      type: Array,
      default: () => []
    },

    /**
     * Hits from a search to highlight in the card texts
     */
    hitsText: {
      type: Object,
      default: null
    },

    /**
     * URL for the card to link to
     *
     * An object should be a Vue route
     */
    url: {
      type: [String, Object],
      default: ''
    },

    /**
     * URL of an image to display
     */
    imageUrl: {
      type: String,
      default: ''
    },

    /**
     * Content type of the image
     */
    imageContentType: {
      type: String,
      default: null
    },

    /**
     * Width of the image
     */
    imageWidth: {
      type: Number,
      default: null
    },

    /**
     * Height of the image
     */
    imageHeight: {
      type: Number,
      default: null
    },

    /**
     * Image alt text
     */
    imageAlt: {
      type: String,
      default: ''
    },

    /**
     * Image optimisation options
     *
     * Passed to `optimisedImageUrl` filter
     */
    imageOptimisationOptions: {
      type: Object,
      default: () => ({})
    },

    /**
     * If `true`, image will be lazy-loaded
     */
    lazy: {
      type: Boolean,
      default: true
    },

    /**
     * If `true`, subtitle will be shown
     */
    showSubtitle: {
      type: Boolean,
      default: true
    },

    /**
     * Style variant to use
     * @values default, entity, mini, list, mosaic
     */
    variant: {
      type: String,
      default: 'default'
    },

    /**
     * If `true`, will omit all URIs from texts
     */
    omitAllUris: {
      type: Boolean,
      default: false
    },

    /**
     * If `true`, will omit URIs from texts only if other values are present
     */
    omitUrisIfOtherValues: {
      type: Boolean,
      default: false
    },

    /**
     * For each element of `texts`, limit the number of values shown
     *
     * Default is no limit
     */
    limitValuesWithinEachText: {
      type: Number,
      default: -1
    },

    /**
     * Height of image placeholder when lazy-loading image
     */
    blankImageHeight: {
      type: Number,
      default: null
    },

    /**
     * Width of image placeholder when lazy-loading image
     */
    blankImageWidth: {
      type: Number,
      default: null
    },

    /**
     * If `true`, the image is a logo and will be styled differently
     */
    logo: {
      type: Boolean,
      default: false
    },

    /**
     * Type of media
     */
    mediaType: {
      type: String,
      default: null
    },

    /**
     * Offset, used for random color picking
     */
    offset: {
      type: Number,
      default: null
    }
  },

  data() {
    return {
      cardImageUrl: this.imageUrl,
      displayLabelTypes: 'exhibitions|galleries|blog|collections',
      themes: themes["a" /* default */].map(theme => theme.id)
    };
  },

  computed: {
    cardClass() {
      return `${this.variant}-card`;
    },

    displayTitle() {
      if (!this.title) {
        return null;
      } else if (typeof this.title === 'string') {
        return {
          value: this.title,
          code: null
        };
      } else {
        const langMapValue = Object(utils["h" /* langMapValueForLocale */])(this.title, this.$i18n.locale);
        return {
          value: langMapValue.values[0],
          code: langMapValue.code
        };
      }
    },

    displaySubTitle() {
      return this.subTitle || this.displayLabel;
    },

    displayLabel() {
      if (!this.displayLabelType) {
        return false;
      }

      if (this.displayLabelType === 'collections') {
        const entityId = typeof this.url === 'string' ? this.url.split('/').pop().split('-').shift() : this.url.params.pathMatch; // TODO: remove when thematic collections topics get their own 'theme' type

        return this.themes.includes(entityId) ? this.$t('cardLabels.theme') : this.$t(`cardLabels.${this.displayLabelTypeCollections}`);
      }

      if (this.displayLabelType === 'blog') {
        return this.$tc('blog.posts', 1);
      }

      return this.$tc(`${this.displayLabelType}.${this.displayLabelType}`, 1);
    },

    displayLabelTypeCollections() {
      return typeof this.url === 'object' ? this.url.params.type : this.url.split('/').slice(-2, -1);
    },

    displayLabelType() {
      return this.displayLabelMatch ? this.displayLabelMatch[1] : false;
    },

    displayLabelMatch() {
      return typeof this.url === 'object' ? this.displayLabelMatchObject : this.displayLabelMatchString;
    },

    displayLabelMatchObject() {
      return this.url.name.match(new RegExp(`(${this.displayLabelTypes})`));
    },

    displayLabelMatchString() {
      return this.url.match(new RegExp(`/(${this.displayLabelTypes})[/.]`));
    },

    displayTexts() {
      return this.texts.filter(Boolean).map(value => {
        if (typeof value === 'string') {
          return {
            values: [value],
            code: null
          };
        } else if (Array.isArray(value)) {
          return {
            values: value,
            code: null
          };
        } else {
          return Object(utils["h" /* langMapValueForLocale */])(value, this.$i18n.locale, {
            omitUrisIfOtherValues: this.omitUrisIfOtherValues,
            omitAllUris: this.omitAllUris
          });
        }
      });
    },

    optimisedImageUrl() {
      return this.$options.filters.optimisedImageUrl(this.imageUrl, this.imageContentType, this.imageOptimisationOptions);
    }

  },
  watch: {
    imageUrl() {
      this.cardImageUrl = this.imageUrl;
    }

  },
  methods: {
    cardText(values) {
      const limited = this.limitValuesWithinEachText > -1 ? values.slice(0, this.limitValuesWithinEachText) : [].concat(values);

      if (values.length > limited.length) {
        limited.push(this.$t('formatting.ellipsis'));
      }

      const joined = limited.join(this.$t('formatting.listSeperator') + ' ');
      const stripped = this.stripMarkdown(joined);
      return this.$options.filters.truncate(stripped, 255, this.$t('formatting.ellipsis'));
    },

    redrawMasonry() {
      if (this.$redrawVueMasonry) {
        this.$nextTick(() => {
          this.$redrawVueMasonry();
        });
      }
    },

    imageNotFound() {
      this.cardImageUrl = '';
      this.redrawMasonry();
    },

    imageLoaded(event) {
      // ignore b-img-lazy's blank placeholder images
      if (!event.target.src.startsWith('data:')) {
        this.redrawMasonry();
      }
    }

  }
});
// CONCATENATED MODULE: ./src/components/generic/ContentCard.vue?vue&type=script&lang=js&
 /* harmony default export */ var generic_ContentCardvue_type_script_lang_js_ = (ContentCardvue_type_script_lang_js_); 
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(3);

// EXTERNAL MODULE: ./src/components/generic/ContentCard.vue?vue&type=custom&index=0&blockType=docs&lang=md
var ContentCardvue_type_custom_index_0_blockType_docs_lang_md = __webpack_require__(205);
var ContentCardvue_type_custom_index_0_blockType_docs_lang_md_default = /*#__PURE__*/__webpack_require__.n(ContentCardvue_type_custom_index_0_blockType_docs_lang_md);

// CONCATENATED MODULE: ./src/components/generic/ContentCard.vue





/* normalize component */

var component = Object(componentNormalizer["a" /* default */])(
  generic_ContentCardvue_type_script_lang_js_,
  render,
  staticRenderFns,
  false,
  null,
  null,
  "473081f0"
  
)

/* custom blocks */

if (typeof ContentCardvue_type_custom_index_0_blockType_docs_lang_md_default.a === 'function') ContentCardvue_type_custom_index_0_blockType_docs_lang_md_default()(component)

/* harmony default export */ var ContentCard = __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ 204:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var marked__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(184);
/* harmony import */ var marked__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(marked__WEBPACK_IMPORTED_MODULE_0__);


const htmlRemovalPatternsFromTags = tags => {
  return [/\n$/].concat(tags.map(tag => new RegExp(`</?${tag}.*?>`, 'gi')));
};

/* harmony default export */ __webpack_exports__["a"] = ({
  methods: {
    /**
     * Strip markdown from text.
     * This method FIRST converts markdown to HTML, then removes HTML tags.
     * WARNING: This also means any HTML tags already present before will be stripped.
     *
     * As an optional parameter specific HTML tag names can be supplied. In which case,
     * only these will be removed.
     * @param {string} text String containing mark1down
     * @param {string[]} tags the HTML tags to be removed.
     * @return {String} text value with HTML breaks
     */
    stripMarkdown(text, tags = ['']) {
      text = marked__WEBPACK_IMPORTED_MODULE_0__["marked"].parse(text); // Marked adds newlines to the end of the string, and wraps it in a <p> tag.

      for (const pattern of htmlRemovalPatternsFromTags(tags)) {
        text = text.replace(pattern, '');
      }

      return text;
    }

  }
});

/***/ }),

/***/ 205:
/***/ (function(module, exports) {



/***/ }),

/***/ 206:
/***/ (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__(211);
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("7d1c1bc9", content, true, context)
};

/***/ }),

/***/ 210:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__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_SocialShareModal_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(206);
/* 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_SocialShareModal_vue_vue_type_style_index_0_lang_scss___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_SocialShareModal_vue_vue_type_style_index_0_lang_scss___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_SocialShareModal_vue_vue_type_style_index_0_lang_scss___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_SocialShareModal_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));


/***/ }),

/***/ 211:
/***/ (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, "#share-modal .modal-content .modal-body .icon-wrapper>div{display:flex;justify-content:space-between}#share-modal .modal-content .modal-body a{border-radius:.25rem;width:calc(33.3333333333% - 10px);height:3rem;margin-right:0 !important;justify-content:flex-start;padding-left:1rem}#share-modal .modal-content .modal-body a.facebook{border:solid 1px #4064ac}#share-modal .modal-content .modal-body a.facebook span{color:#4064ac}#share-modal .modal-content .modal-body a.twitter{border:solid 1px #1c9ceb}#share-modal .modal-content .modal-body a.twitter span{color:#1c9ceb}#share-modal .modal-content .modal-body a.pinterest{border:solid 1px #ba0a21}#share-modal .modal-content .modal-body a.pinterest span{color:#ba0a21}#share-modal .modal-content .modal-body a:hover{background:#fff}#share-modal .modal-content .modal-body a span.text{font-family:\"Open Sans\",\"Arial\",sans-serif;font-weight:600;padding-left:.75rem}@media(max-width: 576px){#share-modal .modal-content .modal-body .icon-wrapper>div{flex-direction:column}#share-modal .modal-content .modal-body .icon-wrapper>div a{width:100%;margin-bottom:10px}}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 212:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/sharing/SocialShareModal.vue?vue&type=template&id=549aa3e2&
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{attrs:{"id":"share-modal","title":_vm.$t('actions.share'),"hide-header-close":"","hide-footer":"","data-qa":"share modal"}},[_c('div',{staticClass:"icon-wrapper"},[_c('SocialShare',{attrs:{"media-url":_vm.mediaUrl,"with-text":""}})],1),_vm._v(" "),_vm._t("default"),_vm._v(" "),_c('b-button',{staticClass:"mt-4",attrs:{"variant":"outline-primary"},on:{"click":function($event){return _vm.$bvModal.hide('share-modal')}}},[_vm._v("\n    "+_vm._s(_vm.$t('actions.close'))+"\n  ")])],2)}
var staticRenderFns = []


// CONCATENATED MODULE: ./src/components/sharing/SocialShareModal.vue?vue&type=template&id=549aa3e2&

// EXTERNAL MODULE: ./src/components/sharing/SocialShare.vue + 4 modules
var SocialShare = __webpack_require__(200);

// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/sharing/SocialShareModal.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//

/* harmony default export */ var SocialShareModalvue_type_script_lang_js_ = ({
  name: 'SocialShareModal',
  components: {
    SocialShare: SocialShare["a" /* default */]
  },
  props: {
    mediaUrl: {
      type: String,
      default: null
    }
  }
});
// CONCATENATED MODULE: ./src/components/sharing/SocialShareModal.vue?vue&type=script&lang=js&
 /* harmony default export */ var sharing_SocialShareModalvue_type_script_lang_js_ = (SocialShareModalvue_type_script_lang_js_); 
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(3);

// CONCATENATED MODULE: ./src/components/sharing/SocialShareModal.vue



function injectStyles (context) {
  
  var style0 = __webpack_require__(210)
if (style0.__inject__) style0.__inject__(context)

}

/* normalize component */

var component = Object(componentNormalizer["a" /* default */])(
  sharing_SocialShareModalvue_type_script_lang_js_,
  render,
  staticRenderFns,
  false,
  injectStyles,
  null,
  "4ba64327"
  
)

/* harmony default export */ var SocialShareModal = __webpack_exports__["a"] = (component.exports);

/***/ }),

/***/ 220:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/item/ItemPreviewCardGroup.vue?vue&type=template&id=0aef77f9&
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.masonryActive)?_c('div',{directives:[{name:"masonry",rawName:"v-masonry"}],key:("searchResultsGrid" + _vm.view),staticClass:"masonry-container",attrs:{"transition-duration":"0.1","item-selector":".card","horizontal-order":"true","column-width":".masonry-container .card:not(.header-card)","data-qa":("item previews " + _vm.view)}},[_vm._t("default"),_vm._ssrNode(" "),_c(_vm.draggableItems ? 'draggable' : 'div',{tag:"component",attrs:{"draggable":_vm.draggableItems && '.item',"handle":".move-button"},on:{"end":_vm.endItemDrag},model:{value:(_vm.cards),callback:function ($$v) {_vm.cards=$$v},expression:"cards"}},[_vm._l((_vm.cards),function(card,index){return [(card === 'related')?[_c('b-card',{directives:[{name:"show",rawName:"v-show",value:(_vm.showRelated),expression:"showRelated"}],key:index,staticClass:"text-left related-collections-card mb-4"},[_vm._t("related")],2)]:_c('ItemPreviewCard',{key:index,staticClass:"item",attrs:{"item":card,"hit-selector":_vm.itemHitSelector(card),"variant":_vm.cardVariant,"lazy":true,"enable-accept-recommendation":_vm.enableAcceptRecommendations,"enable-reject-recommendation":_vm.enableRejectRecommendations,"show-pins":_vm.showPins,"show-move":_vm.draggableItems,"offset":_vm.items.findIndex(function (item) { return item.id === card.id; }),"data-qa":"item preview"},on:{"like":function($event){return _vm.$emit('like', card.id)},"unlike":function($event){return _vm.$emit('unlike', card.id)}}})]})],2)],2):_c(_vm.draggableItems ? 'draggable' : 'b-card-group',{tag:"component",class:_vm.cardGroupClass,attrs:{"draggable":_vm.draggableItems && '.item',"data-qa":("item previews " + _vm.view),"deck":""},on:{"end":_vm.endItemDrag},model:{value:(_vm.cards),callback:function ($$v) {_vm.cards=$$v},expression:"cards"}},[_vm._t("default"),_vm._v(" "),_vm._l((_vm.cards),function(card,index){return [(card === 'related')?[_c('b-card',{directives:[{name:"show",rawName:"v-show",value:(_vm.showRelated),expression:"showRelated"}],key:index,staticClass:"text-left related-collections-card mb-4"},[_vm._t("related")],2)]:_c('ItemPreviewCard',{key:card.id,staticClass:"item",attrs:{"item":card,"hit-selector":_vm.itemHitSelector(card),"variant":_vm.cardVariant,"show-pins":_vm.showPins,"show-move":_vm.draggableItems,"offset":_vm.items.findIndex(function (item) { return item.id === card.id; }),"data-qa":"item preview"},on:{"like":function($event){return _vm.$emit('like', card.id)},"unlike":function($event){return _vm.$emit('unlike', card.id)}}})]})],2)}
var staticRenderFns = []


// CONCATENATED MODULE: ./src/components/item/ItemPreviewCardGroup.vue?vue&type=template&id=0aef77f9&

// EXTERNAL MODULE: external "vuedraggable"
var external_vuedraggable_ = __webpack_require__(185);
var external_vuedraggable_default = /*#__PURE__*/__webpack_require__.n(external_vuedraggable_);

// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/item/ItemPreviewCard.vue?vue&type=template&id=590e4d1e&
var ItemPreviewCardvue_type_template_id_590e4d1e_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ContentCard',{class:_vm.cardClass,attrs:{"title":_vm.dcTitle || _vm.item.dcDescriptionLangAware,"url":_vm.url,"image-url":_vm.imageUrl,"texts":_vm.texts,"hits-text":_vm.hitsText,"limit-values-within-each-text":3,"omit-all-uris":true,"blank-image-height":280,"variant":_vm.variant,"lazy":_vm.lazy,"sub-title":_vm.subTitle,"media-type":_vm.type,"offset":_vm.offset},scopedSlots:_vm._u([(_vm.variant === 'list')?{key:"footer",fn:function(){return [_c('div',{staticClass:"data-and-buttons-wrapper d-flex"},[(_vm.rights)?_c('RightsStatement',{attrs:{"rights-statement-url":_vm.rights,"variant":"simple"}}):_vm._e(),_vm._v(" "),(_vm.type)?_c('span',{staticClass:"d-inline-flex align-items-center text-uppercase"},[_c('span',{staticClass:"icon-file"}),_vm._v(_vm._s(_vm.type)+"\n      ")]):_vm._e(),_vm._v(" "),_c('UserButtons',{attrs:{"identifier":_vm.identifier,"show-pins":_vm.showPins,"show-move":_vm.showMove,"button-text":true,"button-variant":"light-flat"},on:{"like":function($event){return _vm.$emit('like', _vm.identifier)},"unlike":function($event){return _vm.$emit('unlike', _vm.identifier)}}})],1)]},proxy:true}:{key:"image-overlay",fn:function(){return [(_vm.enableAcceptRecommendation || _vm.enableRejectRecommendation)?_c('RecommendationButtons',{attrs:{"identifier":_vm.identifier,"enable-accept-button":_vm.enableAcceptRecommendation,"enable-reject-button":_vm.enableRejectRecommendation}}):_c('UserButtons',{attrs:{"identifier":_vm.identifier,"show-pins":_vm.showPins,"show-move":_vm.showMove},on:{"like":function($event){return _vm.$emit('like', _vm.identifier)},"unlike":function($event){return _vm.$emit('unlike', _vm.identifier)}}})]},proxy:true}],null,true)})}
var ItemPreviewCardvue_type_template_id_590e4d1e_staticRenderFns = []


// CONCATENATED MODULE: ./src/components/item/ItemPreviewCard.vue?vue&type=template&id=590e4d1e&

// EXTERNAL MODULE: ./src/plugins/europeana/utils.js
var utils = __webpack_require__(2);

// EXTERNAL MODULE: ./src/components/generic/ContentCard.vue + 4 modules
var ContentCard = __webpack_require__(203);

// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/item/ItemPreviewCard.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//


/* harmony default export */ var ItemPreviewCardvue_type_script_lang_js_ = ({
  name: 'ItemPreviewCard',
  components: {
    ContentCard: ContentCard["default"],
    RecommendationButtons: () => __webpack_require__.e(/* import() */ 111).then(__webpack_require__.bind(null, 592)),
    UserButtons: () => __webpack_require__.e(/* import() */ 13).then(__webpack_require__.bind(null, 583)),
    RightsStatement: () => __webpack_require__.e(/* import() */ 102).then(__webpack_require__.bind(null, 225))
  },
  props: {
    /**
     * Item the card links to
     * expects an object containing minimal-profile item metadata
     */
    item: {
      type: Object,
      required: true
    },

    /**
     * Hits from a search to highlight in the item description
     * Only used on list variant
     */
    hitSelector: {
      type: Object,
      default: null
    },

    /**
     * Style variant to use
     * @values default, entity, mini, mosaic, list, explore
     */
    variant: {
      type: String,
      default: 'default'
    },

    /**
     * If `true`, image will be lazy-loaded
     */
    lazy: {
      type: Boolean,
      default: true
    },

    /**
     * If `true`, pin button will be rendered
     */
    showPins: {
      type: Boolean,
      default: false
    },

    /**
     * If `true`, move button will be rendered
     */
    showMove: {
      type: Boolean,
      default: false
    },

    /**
     * If `true`, accept recommendation (thumb up) button will be rendered
     */
    enableAcceptRecommendation: {
      type: Boolean,
      default: false
    },

    /**
     * If `true`, reject recommendation (thumb down) button will be rendered
     */
    enableRejectRecommendation: {
      type: Boolean,
      default: false
    },

    /**
     * Offset, used for random color picking
     */
    offset: {
      type: Number,
      default: null
    }
  },
  computed: {
    dcTitle() {
      return this.unpublishedItem ? {
        [this.$i18n.locale]: [this.$t('record.status.unpublished')]
      } : this.item.dcTitleLangAware;
    },

    unpublishedItem() {
      const itemProperties = Object.keys(this.item);
      return itemProperties.length === 1 && itemProperties[0] === 'id';
    },

    texts() {
      const textlessVariants = ['explore', 'mosaic'];

      if (textlessVariants.includes(this.variant)) {
        return [];
      }

      const texts = [];

      if (this.variant === 'list') {
        if (!this.hitSelector && this.item.dcDescriptionLangAware) {
          texts.unshift(this.item.dcDescriptionLangAware);
        }
      } else {
        if (this.item.dcCreatorLangAware) {
          texts.unshift(this.item.dcCreatorLangAware);
        }

        texts.push(this.item.dataProvider);
      }

      return texts;
    },

    hitsText() {
      return this.variant === 'list' ? this.hitSelector : null;
    },

    cardClass() {
      return this.variant === 'list' ? 'mx-0' : null;
    },

    identifier() {
      return this.item.id.replace('http://data.europeana.eu/item/', '');
    },

    url() {
      return {
        name: 'item-all',
        params: {
          pathMatch: this.identifier.slice(1)
        }
      };
    },

    imageUrl() {
      var _this$item$edmPreview;

      return this.$apis.thumbnail.edmPreview((_this$item$edmPreview = this.item.edmPreview) === null || _this$item$edmPreview === void 0 ? void 0 : _this$item$edmPreview[0], {
        size: 400,
        type: this.item.type
      }) || this.$apis.thumbnail.generic(this.item.id, {
        size: 400,
        type: this.item.type
      });
    },

    subTitle() {
      return this.variant === 'list' ? Object(utils["h" /* langMapValueForLocale */])(this.item.dataProvider, this.$i18n.locale).values[0] : null;
    },

    rights() {
      var _this$item$rights;

      return this.variant === 'list' ? (_this$item$rights = this.item.rights) === null || _this$item$rights === void 0 ? void 0 : _this$item$rights[0] : null;
    },

    type() {
      return this.item.type;
    }

  }
});
// CONCATENATED MODULE: ./src/components/item/ItemPreviewCard.vue?vue&type=script&lang=js&
 /* harmony default export */ var item_ItemPreviewCardvue_type_script_lang_js_ = (ItemPreviewCardvue_type_script_lang_js_); 
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(3);

// EXTERNAL MODULE: ./src/components/item/ItemPreviewCard.vue?vue&type=custom&index=0&blockType=docs&lang=md
var ItemPreviewCardvue_type_custom_index_0_blockType_docs_lang_md = __webpack_require__(222);
var ItemPreviewCardvue_type_custom_index_0_blockType_docs_lang_md_default = /*#__PURE__*/__webpack_require__.n(ItemPreviewCardvue_type_custom_index_0_blockType_docs_lang_md);

// CONCATENATED MODULE: ./src/components/item/ItemPreviewCard.vue





/* normalize component */

var component = Object(componentNormalizer["a" /* default */])(
  item_ItemPreviewCardvue_type_script_lang_js_,
  ItemPreviewCardvue_type_template_id_590e4d1e_render,
  ItemPreviewCardvue_type_template_id_590e4d1e_staticRenderFns,
  false,
  null,
  null,
  "2ce10abc"
  
)

/* custom blocks */

if (typeof ItemPreviewCardvue_type_custom_index_0_blockType_docs_lang_md_default.a === 'function') ItemPreviewCardvue_type_custom_index_0_blockType_docs_lang_md_default()(component)

/* harmony default export */ var ItemPreviewCard = (component.exports);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/item/ItemPreviewCardGroup.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//


/* harmony default export */ var ItemPreviewCardGroupvue_type_script_lang_js_ = ({
  name: 'ItemPreviewCardGroup',
  components: {
    draggable: external_vuedraggable_default.a,
    ItemPreviewCard: ItemPreviewCard
  },
  props: {
    items: {
      type: Array,
      default: () => []
    },
    hits: {
      type: Array,
      default: null
    },

    /**
     * Layout view to use
     * @values grid, mosaic, list, explore
     */
    view: {
      type: String,
      default: 'grid'
    },
    showPins: {
      type: Boolean,
      default: false
    },
    showRelated: {
      type: Boolean,
      default: false
    },
    draggableItems: {
      type: Boolean,
      default: false
    },
    enableAcceptRecommendations: {
      type: Boolean,
      default: false
    },
    enableRejectRecommendations: {
      type: Boolean,
      default: false
    }
  },

  data() {
    return {
      cards: []
    };
  },

  fetch() {
    this.cards = this.items.slice(0, 4).concat('related').concat(this.items.slice(4));
  },

  computed: {
    cardGroupClass() {
      let cardGroupClass;

      switch (this.view) {
        case 'list':
          cardGroupClass = 'card-group-list mx-0';
          break;

        case 'explore':
          cardGroupClass = 'card-deck-4-cols narrow-gutter explore-more';
          break;
      }

      return cardGroupClass;
    },

    cardVariant() {
      return this.view === 'grid' ? 'default' : this.view;
    },

    masonryActive() {
      return this.view === 'grid' || this.view === 'mosaic';
    }

  },
  watch: {
    'cards.length': 'redrawMasonry',

    items() {
      this.$fetch();
    }

  },

  mounted() {
    this.redrawMasonry();
  },

  methods: {
    endItemDrag() {
      this.$emit('endItemDrag', this.cards.filter(card => card !== 'related'));
    },

    itemHitSelector(item) {
      if (!this.hits) {
        return null;
      }

      const hit = this.hits.find(hit => item.id === hit.scope);
      return hit ? hit.selectors[0] : null;
    },

    redrawMasonry() {
      if (typeof this.$redrawVueMasonry === 'function' && this.masonryActive) {
        this.$nextTick(() => {
          this.$redrawVueMasonry();
        });
      }
    }

  }
});
// CONCATENATED MODULE: ./src/components/item/ItemPreviewCardGroup.vue?vue&type=script&lang=js&
 /* harmony default export */ var item_ItemPreviewCardGroupvue_type_script_lang_js_ = (ItemPreviewCardGroupvue_type_script_lang_js_); 
// CONCATENATED MODULE: ./src/components/item/ItemPreviewCardGroup.vue





/* normalize component */

var ItemPreviewCardGroup_component = Object(componentNormalizer["a" /* default */])(
  item_ItemPreviewCardGroupvue_type_script_lang_js_,
  render,
  staticRenderFns,
  false,
  null,
  null,
  "8a5dc0a6"
  
)

/* harmony default export */ var ItemPreviewCardGroup = __webpack_exports__["a"] = (ItemPreviewCardGroup_component.exports);

/***/ }),

/***/ 222:
/***/ (function(module, exports) {



/***/ }),

/***/ 297:
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "img/il-gallery-unauthorised.a8a707f.svg";

/***/ }),

/***/ 343:
/***/ (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__(443);
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("5bd2083d", content, true, context)
};

/***/ }),

/***/ 442:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__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_vue_vue_type_style_index_0_id_b42f47b2_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(343);
/* 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_vue_vue_type_style_index_0_id_b42f47b2_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_vue_vue_type_style_index_0_id_b42f47b2_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_vue_vue_type_style_index_0_id_b42f47b2_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_vue_vue_type_style_index_0_id_b42f47b2_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));


/***/ }),

/***/ 443:
/***/ (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, ".usergallery-metadata .visibility[data-v-b42f47b2]::before,.usergallery-metadata .curator[data-v-b42f47b2]::before,[class^=icon-][data-v-b42f47b2],[class*=\" icon-\"][data-v-b42f47b2]{font-family:\"icomoon\";speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;vertical-align:middle;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-accept[data-v-b42f47b2]::before{content:\"\"}.icon-ic-add[data-v-b42f47b2]::before{content:\"\"}.icon-arrow-down[data-v-b42f47b2]::before{content:\"\"}.icon-back[data-v-b42f47b2]::before{content:\"\"}.icon-cancel-circle[data-v-b42f47b2]::before{content:\"\"}.icon-caret-down[data-v-b42f47b2]::before{content:\"\"}.icon-check-circle[data-v-b42f47b2]::before{content:\"\"}.icon-clear[data-v-b42f47b2]::before{content:\"\"}.icon-close[data-v-b42f47b2]::before{content:\"\"}.icon-ic-download[data-v-b42f47b2]::before{content:\"\"}.icon-edit[data-v-b42f47b2]::before{content:\"\"}.icon-external-link[data-v-b42f47b2]::before{content:\"\"}.icon-facebook[data-v-b42f47b2]::before{content:\"\"}.icon-ic-feedback[data-v-b42f47b2]::before{content:\"\"}.icon-file[data-v-b42f47b2]::before{content:\"\"}.icon-filter[data-v-b42f47b2]::before{content:\"\"}.icon-globe[data-v-b42f47b2]::before{content:\"\"}.icon-heart[data-v-b42f47b2]::before{content:\"\"}.icon-info[data-v-b42f47b2]::before{content:\"\"}.icon-info-outline[data-v-b42f47b2]::before{content:\"\"}.icon-instagram[data-v-b42f47b2]::before{content:\"\"}.icon-language[data-v-b42f47b2]::before{content:\"\"}.icon-license[data-v-b42f47b2]::before{content:\"\"}.icon-link[data-v-b42f47b2]::before{content:\"\"}.icon-linkedin[data-v-b42f47b2]::before{content:\"\"}.icon-pinterest[data-v-b42f47b2]::before{content:\"\"}.icon-push-pin[data-v-b42f47b2]::before{content:\"\"}.icon-reject[data-v-b42f47b2]::before{content:\"\"}.icon-search[data-v-b42f47b2]::before{content:\"\"}.icon-share[data-v-b42f47b2]::before{content:\"\"}.icon-ic-tag[data-v-b42f47b2]::before{content:\"\"}.icon-temporary-tag[data-v-b42f47b2]::before{content:\"\"}.icon-translate[data-v-b42f47b2]::before{content:\"\"}.icon-twitter[data-v-b42f47b2]::before{content:\"\"}.icon-3d[data-v-b42f47b2]::before{content:\"\"}.icon-sound[data-v-b42f47b2]::before{content:\"\"}.icon-text[data-v-b42f47b2]::before{content:\"\"}.icon-image[data-v-b42f47b2]::before{content:\"\"}.icon-video[data-v-b42f47b2]::before{content:\"\"}.icon-unavailable[data-v-b42f47b2]::before{content:\"\"}.icon-ic-move-vert[data-v-b42f47b2]::before{content:\"\"}.icon-ic-move-xy[data-v-b42f47b2]::before{content:\"\"}.icon-menu[data-v-b42f47b2]::before{content:\"\"}.usergallery-description[data-v-b42f47b2]{color:#4d4d4d}.usergallery-metadata[data-v-b42f47b2]{font-size:.875rem;font-weight:600;line-height:1.125;color:#4d4d4d}.usergallery-metadata .curator[data-v-b42f47b2],.usergallery-metadata .visibility[data-v-b42f47b2]{display:inline-flex;align-items:center}.usergallery-metadata .curator[data-v-b42f47b2]::before,.usergallery-metadata .visibility[data-v-b42f47b2]::before{font-size:1.5rem;padding-right:.2rem}.usergallery-metadata .curator[data-v-b42f47b2]{margin-right:1.5rem}.usergallery-metadata .curator[data-v-b42f47b2]::before{content:\"\";font-size:1.125rem}.usergallery-metadata .visibility[data-v-b42f47b2]::before{content:\"\";font-size:1.125rem}.collection-buttons .text[data-v-b42f47b2]{font-weight:600}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 563:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// 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/pages/set/_.vue?vue&type=template&id=b42f47b2&scoped=true&
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:_vm.$fetchState.error && 'white-page'},[(_vm.$fetchState.pending)?_c('b-container',{attrs:{"data-qa":"loading spinner container"}},[_c('b-row',{staticClass:"flex-md-row py-4 text-center"},[_c('b-col',{attrs:{"cols":"12"}},[_c('LoadingSpinner')],1)],1)],1):(_vm.$fetchState.error)?_c('ErrorMessage',{attrs:{"data-qa":"error message container","error":_vm.$fetchState.error.message,"title-path":_vm.$fetchState.error.titlePath,"description-path":_vm.$fetchState.error.descriptionPath,"illustration-src":_vm.$fetchState.error.illustrationSrc}}):(_vm.set.id)?_c('div',{staticClass:"mt-n3",attrs:{"data-qa":"user gallery page"}},[_c('b-container',{attrs:{"fluid":""}},[_c('b-row',{staticClass:"flex-md-row pt-5 bg-white mb-4"},[_c('b-col',{attrs:{"cols":"12"}},[_c('b-container',{staticClass:"mb-5"},[_c('b-row',{staticClass:"mb-4"},[_c('b-col',[_c('div',{staticClass:"context-label"},[_vm._v("\n                  "+_vm._s(_vm.$tc('galleries.galleries', 1))+"\n                ")]),_vm._v(" "),_c('h1',{attrs:{"lang":_vm.displayTitle.code}},[_vm._v("\n                  "+_vm._s(_vm.displayTitle.values[0])+"\n                ")]),_vm._v(" "),_c('p',{staticClass:"usergallery-description mb-3 w-75",attrs:{"lang":_vm.displayDescription.code}},[_vm._v("\n                  "+_vm._s(_vm.displayDescription.values[0])+"\n                ")]),_vm._v(" "),(_vm.set.visibility === 'private' || _vm.set.creator.nickname)?_c('div',{staticClass:"usergallery-metadata mb-2"},[(_vm.set.creator.nickname)?_c('span',{staticClass:"curator mb-2"},[_vm._v("\n                    "+_vm._s(_vm.$t('set.labels.curatedBy'))+" @"+_vm._s(_vm.set.creator.nickname)+"\n                  ")]):_vm._e(),_vm._v(" "),(_vm.set.visibility === 'private')?_c('span',{staticClass:"\n                    visibility mb-2"},[_vm._v("\n                    "+_vm._s(_vm.$t('set.labels.private'))+"\n                  ")]):_vm._e()]):_vm._e()])],1),_vm._v(" "),_c('div',{staticClass:"d-inline-flex collection-buttons"},[(_vm.userIsOwner)?[_c('b-button',{staticClass:"text-decoration-none mr-2",attrs:{"variant":"outline-primary","data-qa":"edit set button"},on:{"click":function($event){return _vm.$bvModal.show(_vm.setFormModalId)}}},[_vm._v("\n                  "+_vm._s(_vm.$t('actions.edit'))+"\n                ")]),_vm._v(" "),_c('SetFormModal',{attrs:{"set-id":_vm.set.id,"modal-id":_vm.setFormModalId,"title":_vm.set.title,"description":_vm.set.description,"visibility":_vm.set.visibility}})]:_vm._e(),_vm._v(" "),_c('b-button',{directives:[{name:"b-modal",rawName:"v-b-modal.share-modal",modifiers:{"share-modal":true}}],staticClass:"text-decoration-none",attrs:{"variant":"outline-primary"}},[_vm._v("\n                "+_vm._s(_vm.$t('actions.share'))+"\n              ")]),_vm._v(" "),_c('SocialShareModal',{attrs:{"media-url":_vm.shareMediaUrl}})],2)],1)],1)],1)],1),_vm._v(" "),_c('b-container',{staticClass:"mb-3",attrs:{"data-qa":"user set"}},[_c('b-row',[_c('b-col',[_c('h2',{staticClass:"related-heading text-uppercase",attrs:{"data-qa":"item count"}},[_vm._v("\n            "+_vm._s(_vm.displayItemCount)+"\n          ")])])],1),_vm._v(" "),_c('b-row',[_c('b-col',[_c('b-container',{staticClass:"px-0"},[_c('b-row',{staticClass:"mb-3"},[_c('b-col',{attrs:{"cols":"12"}},[_c('ItemPreviewCardGroup',{attrs:{"items":_vm.set.items,"show-pins":_vm.setIsEntityBestItems && _vm.userIsEntityEditor,"draggable-items":_vm.userIsOwner},on:{"endItemDrag":_vm.reorderItems}})],1)],1)],1)],1)],1),_vm._v(" "),_c('client-only',[(_vm.displayRecommendations)?_c('SetRecommendations',{attrs:{"identifier":("/" + (_vm.$route.params.pathMatch)),"type":_vm.set.type}}):_vm._e()],1)],1)],1):_vm._e()],1)}
var staticRenderFns = []


// CONCATENATED MODULE: ./src/pages/set/_.vue?vue&type=template&id=b42f47b2&scoped=true&

// EXTERNAL MODULE: external "vue-client-only"
var external_vue_client_only_ = __webpack_require__(20);
var external_vue_client_only_default = /*#__PURE__*/__webpack_require__.n(external_vue_client_only_);

// EXTERNAL MODULE: external "http-errors"
var external_http_errors_ = __webpack_require__(187);
var external_http_errors_default = /*#__PURE__*/__webpack_require__.n(external_http_errors_);

// EXTERNAL MODULE: ./src/plugins/europeana/data.js
var data = __webpack_require__(10);

// EXTERNAL MODULE: ./src/plugins/europeana/utils.js
var utils = __webpack_require__(2);

// EXTERNAL MODULE: ./src/components/item/ItemPreviewCardGroup.vue + 9 modules
var ItemPreviewCardGroup = __webpack_require__(220);

// EXTERNAL MODULE: ./src/components/sharing/SocialShareModal.vue + 4 modules
var SocialShareModal = __webpack_require__(212);

// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/set/_.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
// TODO: This file will be deprecated when set-driven galleries are in production.
// TODO: Also move the beforeRouteEnter redirect to the legacy middleware.






/* harmony default export */ var _vue_type_script_lang_js_ = ({
  name: 'SetPage',
  components: {
    ClientOnly: external_vue_client_only_default.a,
    ErrorMessage: () => __webpack_require__.e(/* import() */ 10).then(__webpack_require__.bind(null, 502)),
    LoadingSpinner: () => __webpack_require__.e(/* import() */ 2).then(__webpack_require__.bind(null, 221)),
    ItemPreviewCardGroup: ItemPreviewCardGroup["a" /* default */],
    SocialShareModal: SocialShareModal["a" /* default */],
    SetFormModal: () => __webpack_require__.e(/* import() */ 6).then(__webpack_require__.bind(null, 574)),
    SetRecommendations: () => __webpack_require__.e(/* import() */ 11).then(__webpack_require__.bind(null, 575))
  },

  async beforeRouteLeave(to, from, next) {
    await this.$store.commit('set/setActive', null);
    await this.$store.commit('set/setActiveRecommendations', []);
    await this.$store.commit('entity/setFeaturedSetId', null);
    await this.$store.commit('entity/setPinned', []);
    next();
  },

  middleware({
    app,
    params,
    redirect
  }) {
    if (app.$features.setGalleries) {
      redirect({
        name: `galleries-all___${app.i18n.locale}`,
        params
      });
    }
  },

  async fetch() {
    try {
      this.validateRoute();
      await this.$store.dispatch('set/fetchActive', this.setId);

      if (this.setIsEntityBestItems && this.userIsEntityEditor) {
        await this.$store.commit('entity/setFeaturedSetId', this.setId);
        await this.$store.dispatch('entity/getPins');
      }
    } catch (error) {
      if (true) {
        this.$nuxt.context.res.statusCode = error.statusCode || 500;
      }

      if (error.statusCode === 403) {
        error.titlePath = 'errorMessage.galleryUnauthorised.title';
        error.descriptionPath = 'errorMessage.galleryUnauthorised.description';
        error.metaTitlePath = 'errorMessage.galleryUnauthorised.metaTitle';
        error.illustrationSrc = __webpack_require__(297);
      }

      throw error;
    }
  },

  head() {
    return {
      title: this.$pageHeadTitle(this.displayTitle.values[0]),
      meta: [{
        hid: 'title',
        name: 'title',
        content: this.displayTitle.values[0]
      }, {
        hid: 'og:title',
        property: 'og:title',
        content: this.displayTitle.values[0]
      }, {
        hid: 'og:image',
        property: 'og:image',
        content: this.shareMediaUrl
      }, {
        hid: 'og:type',
        property: 'og:type',
        content: 'article'
      }].concat(this.displayDescription && this.displayDescription.values[0] ? [{
        hid: 'description',
        name: 'description',
        content: this.displayDescription.values[0]
      }, {
        hid: 'og:description',
        property: 'og:description',
        content: this.displayDescription.values[0]
      }] : [])
    };
  },

  computed: {
    fetchState() {
      return this.$fetchState;
    },

    set() {
      return this.$store.state.set.active || {};
    },

    setId() {
      return this.$route.params.pathMatch;
    },

    setFormModalId() {
      return `set-form-modal-${this.setId}`;
    },

    setCreatorId() {
      return this.set.creator && typeof this.set.creator === 'string' ? this.set.creator : this.set.creator.id;
    },

    userIsOwner() {
      return this.$auth.loggedIn && this.$store.state.auth.user && this.setCreatorId && this.setCreatorId.endsWith(`/${this.$store.state.auth.user.sub}`);
    },

    userIsEntityEditor() {
      var _user$resource_access, _user$resource_access2, _user$resource_access3, _user$resource_access4, _user$resource_access5, _user$resource_access6;

      const user = this.$store.state.auth.user;
      const entitiesEditor = user === null || user === void 0 ? void 0 : (_user$resource_access = user.resource_access) === null || _user$resource_access === void 0 ? void 0 : (_user$resource_access2 = _user$resource_access.entities) === null || _user$resource_access2 === void 0 ? void 0 : (_user$resource_access3 = _user$resource_access2.roles) === null || _user$resource_access3 === void 0 ? void 0 : _user$resource_access3.includes('editor');
      const usersetsEditor = user === null || user === void 0 ? void 0 : (_user$resource_access4 = user.resource_access) === null || _user$resource_access4 === void 0 ? void 0 : (_user$resource_access5 = _user$resource_access4.usersets) === null || _user$resource_access5 === void 0 ? void 0 : (_user$resource_access6 = _user$resource_access5.roles) === null || _user$resource_access6 === void 0 ? void 0 : _user$resource_access6.includes('editor');
      return entitiesEditor && usersetsEditor;
    },

    userCanEdit() {
      return this.userIsOwner || this.setIsEntityBestItems && this.userIsEntityEditor;
    },

    setIsEntityBestItems() {
      return this.set.type === 'EntityBestItemsSet';
    },

    displayTitle() {
      if (this.$fetchState.error) {
        return {
          values: [this.$t(this.$fetchState.error.metaTitlePath ? this.$fetchState.error.metaTitlePath : 'error')]
        };
      }

      return Object(utils["h" /* langMapValueForLocale */])(this.set.title, this.$i18n.locale);
    },

    displayDescription() {
      return Object(utils["h" /* langMapValueForLocale */])(this.set.description, this.$i18n.locale);
    },

    displayRecommendations() {
      return this.enableRecommendations && this.$auth.loggedIn && this.userCanEdit;
    },

    enableRecommendations() {
      if (this.setIsEntityBestItems) {
        return this.$features.acceptEntityRecommendations || this.$features.rejectEntityRecommendations;
      }

      return true;
    },

    displayItemCount() {
      const max = 100;
      const label = this.set.total > max ? 'items.itemOf' : 'items.itemCount';
      return this.$tc(label, this.set.total, {
        max
      });
    },

    shareMediaUrl() {
      var _this$set, _this$set$items, _this$set$items$, _this$set$items$$edmP;

      return this.$apis.thumbnail.edmPreview((_this$set = this.set) === null || _this$set === void 0 ? void 0 : (_this$set$items = _this$set.items) === null || _this$set$items === void 0 ? void 0 : (_this$set$items$ = _this$set$items[0]) === null || _this$set$items$ === void 0 ? void 0 : (_this$set$items$$edmP = _this$set$items$.edmPreview) === null || _this$set$items$$edmP === void 0 ? void 0 : _this$set$items$$edmP[0], {
        size: 400
      });
    }

  },
  methods: {
    validateRoute() {
      if (!/^\d+$/.test(this.$route.params.pathMatch)) {
        throw external_http_errors_default()(400, 'Invalid set ID');
      }
    },

    reorderItems(items) {
      this.$store.dispatch('set/update', {
        id: `${data["c" /* SET_URL_PREFIX */]}/${this.setId}`,
        body: {
          type: this.set.type,
          title: this.set.title,
          description: this.set.description,
          visibility: this.set.visibility,
          items: items.map(item => `${data["b" /* ITEM_URL_PREFIX */]}${item.id}`)
        },
        params: {
          profile: 'standard'
        }
      });
    }

  }
});
// CONCATENATED MODULE: ./src/pages/set/_.vue?vue&type=script&lang=js&
 /* harmony default export */ var set_vue_type_script_lang_js_ = (_vue_type_script_lang_js_); 
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(3);

// CONCATENATED MODULE: ./src/pages/set/_.vue



function injectStyles (context) {
  
  var style0 = __webpack_require__(442)
if (style0.__inject__) style0.__inject__(context)

}

/* normalize component */

var component = Object(componentNormalizer["a" /* default */])(
  set_vue_type_script_lang_js_,
  render,
  staticRenderFns,
  false,
  injectStyles,
  "b42f47b2",
  "77ad73e7"
  
)

/* harmony default export */ var _ = __webpack_exports__["default"] = (component.exports);

/***/ })

};;
//# sourceMappingURL=_.js.map