@europeana/portal
Version:
Europeana Portal
229 lines (181 loc) • 8.38 kB
JavaScript
exports.ids = [49];
exports.modules = {
/***/ 319:
/***/ (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__(394);
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("fbd2802c", content, true, context)
};
/***/ }),
/***/ 393:
/***/ (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_index_vue_vue_type_style_index_0_id_85501a7a_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(319);
/* 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_index_vue_vue_type_style_index_0_id_85501a7a_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_index_vue_vue_type_style_index_0_id_85501a7a_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_index_vue_vue_type_style_index_0_id_85501a7a_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_index_vue_vue_type_style_index_0_id_85501a7a_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
/***/ }),
/***/ 394:
/***/ (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, ".contentful button[data-v-85501a7a]{margin-right:1rem}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;
/***/ }),
/***/ 549:
/***/ (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/pages/contentful/category-suggest/index.vue?vue&type=template&id=85501a7a&scoped=true&
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"contentful"},[_c('b-form-group',_vm._l((_vm.value),function(val){return _c('b-button',{key:val.sys.id,staticClass:"mb-2",on:{"click":function($event){return _vm.removeSelection(val)}}},[_vm._v("\n "+_vm._s(val.fields.name['en-GB'])+"\n ")])}),1),_vm._ssrNode(" "),_c('b-form',[_c('b-form-group',[_c('b-form-input',{attrs:{"type":"search","autocomplete":"off","placeholder":"Search for categories"},on:{"input":_vm.suggestCategories},model:{value:(_vm.searchText),callback:function ($$v) {_vm.searchText=$$v},expression:"searchText"}})],1),_vm._v(" "),_c('b-form-group',_vm._l((_vm.suggestions),function(suggestion){return _c('b-button',{key:suggestion.sys.id,staticClass:"mb-2",attrs:{"disabled":_vm.isSelected(suggestion)},on:{"click":function($event){return _vm.selectSuggestion(suggestion)}}},[_vm._v("\n "+_vm._s(suggestion.fields.name['en-GB'])+"\n ")])}),1)],1)],2)}
var staticRenderFns = []
// CONCATENATED MODULE: ./src/pages/contentful/category-suggest/index.vue?vue&type=template&id=85501a7a&scoped=true&
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/contentful/category-suggest/index.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
// TODO: this largely duplicates entity-suggest; refactor for DRYness
/* harmony default export */ var category_suggestvue_type_script_lang_js_ = ({
name: 'ContentfulCategorySuggestPage',
layout: 'contentful',
data() {
return {
value: [],
searchText: null,
suggestions: [],
contentfulExtensionSdk: null
};
},
head() {
return {
title: this.$pageHeadTitle('Category suggest - Contentful app')
};
},
watch: {
value: 'updateContentfulField'
},
mounted() {
window.contentfulExtension.init(sdk => {
this.contentfulExtensionSdk = sdk;
if (sdk.location.is(window.contentfulExtension.locations.LOCATION_ENTRY_FIELD)) {
sdk.window.startAutoResizer();
this.findCategories();
}
});
},
methods: {
isSelected(suggestion) {
return this.value.map(val => val.sys.id).includes(suggestion.sys.id);
},
async suggestCategories(text) {
if (text.length < 2) {
return;
}
const response = await this.contentfulExtensionSdk.space.getEntries({
'content_type': 'category',
'fields.name[match]': text
});
this.suggestions = response.items;
},
async findCategories() {
const ids = (this.contentfulExtensionSdk.field.getValue() || []).map(link => link.sys.id);
if (ids.length > 0) {
const response = await this.contentfulExtensionSdk.space.getEntries({
'sys.id[in]': ids.join(',')
}); // preserve order of stored category IDs
const value = [];
for (const id of ids) {
const category = response.items.find(item => item.sys.id === id);
if (category) {
value.push(category);
}
}
this.value = value;
}
},
removeSelection(remove) {
this.value = this.value.filter(val => val.sys.id !== remove.sys.id);
},
selectSuggestion(select) {
this.value = this.value.concat(select);
},
updateContentfulField() {
this.contentfulExtensionSdk.field.setValue(this.value.map(val => ({
sys: {
type: 'Link',
linkType: 'Entry',
id: val.sys.id
}
})));
}
}
});
// CONCATENATED MODULE: ./src/pages/contentful/category-suggest/index.vue?vue&type=script&lang=js&
/* harmony default export */ var contentful_category_suggestvue_type_script_lang_js_ = (category_suggestvue_type_script_lang_js_);
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(3);
// CONCATENATED MODULE: ./src/pages/contentful/category-suggest/index.vue
function injectStyles (context) {
var style0 = __webpack_require__(393)
if (style0.__inject__) style0.__inject__(context)
}
/* normalize component */
var component = Object(componentNormalizer["a" /* default */])(
contentful_category_suggestvue_type_script_lang_js_,
render,
staticRenderFns,
false,
injectStyles,
"85501a7a",
"3981eff8"
)
/* harmony default export */ var category_suggest = __webpack_exports__["default"] = (component.exports);
/***/ })
};;
//# sourceMappingURL=index.js.map