@europeana/portal
Version:
Europeana Portal
2 lines • 6.04 kB
JavaScript
(window.webpackJsonp=window.webpackJsonp||[]).push([[65],{1148:function(e,t,n){"use strict";n.r(t);var r=n(23);n(75),n(30),n(21),n(52),n(111),n(10),n(41),n(34),n(68),n(43),n(15),n(64),n(71),n(46);function o(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var i=0,r=function(){};return{s:r,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,c=!0,d=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return c=e.done,e},e:function(e){d=!0,o=e},f:function(){try{c||null==n.return||n.return()}finally{if(d)throw o}}}}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i<t;i++)n[i]=e[i];return n}var c={name:"ContentfulSlugValidationPage",layout:"contentful",data:function(){return{value:null,contentTypes:[],slugField:null,titleField:null,slugFromTitle:!1,errorMessage:null,debouncedDuplicateStatus:null,contentfulExtensionSdk:null}},head:function(){return{title:this.$pageHeadTitle("Slug validation - Contentful app"),script:[{src:"https://cdn.jsdelivr.net/npm/speakingurl@13.0.0/speakingurl.min.js"}]}},watch:{value:"updateContentfulField",debouncedDuplicateStatus:"handleStatus"},mounted:function(){var e=this;window.contentfulExtension.init((function(t){if(e.contentfulExtensionSdk=t,t.location.is(window.contentfulExtension.locations.LOCATION_ENTRY_FIELD)){t.window.startAutoResizer(),e.contentTypes=[t.contentType.sys.id].concat(t.parameters.instance.contentTypes.split(",")),e.value=t.field.getValue(),e.slugField=t.field;var n=t.contentType.displayField;e.titleField=t.entry.fields[n],e.titleField.onValueChanged(e.handleTitleChange);var r=e.titleField.getValue();e.value&&"undefined"!==e.value&&""!==e.value?e.value===e.convertToSlug(r)&&(e.slugFromTitle=!0):(e.slugFromTitle=!0,e.handleTitleChange(r))}}))},methods:{updateContentfulField:function(){var e,t;null===(e=this.contentfulExtensionSdk)||void 0===e||null===(t=e.field)||void 0===t||t.setValue(this.value)},convertToSlug:function(text){return window.getSlug(text)},handleValueChange:function(e){this.value=e,this.getDebouncedDuplicateStatus(e)},handleSlugChange:function(e){this.slugFromTitle=!1,this.handleValueChange(e)},handleTitleChange:function(e){this.slugFromTitle&&this.handleValueChange(this.convertToSlug(e||""))},handleStatus:function(){var e=this;return Object(r.a)(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.debouncedDuplicateStatus;case 2:t.sent?(e.slugField.removeValue(),e.slugField.setInvalid(!0),e.errorMessage="This slug has already been published in another entry"):(e.slugField.setInvalid(!1),e.errorMessage=null);case 4:case"end":return t.stop()}}),t)})))()},getDebouncedDuplicateStatus:function(e){var t=this;this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout((function(){t.debouncedDuplicateStatus=t.getDuplicates(e)}),500)},getDuplicates:function(e){var t=this;return Object(r.a)(regeneratorRuntime.mark((function n(){var r,l,c,d;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(e){n.next=2;break}return n.abrupt("return",Promise.resolve(!1));case 2:(r={})["fields."+t.slugField.id]=e,r["sys.id[ne]"]=t.contentfulExtensionSdk.entry.getSys().id,r["sys.publishedAt[exists]"]=!0,l=o(t.contentTypes),n.prev=7,l.s();case 9:if((c=l.n()).done){n.next=19;break}return d=c.value,r.content_type=d,n.next=14,t.contentfulExtensionSdk.space.getEntries(r);case 14:if(!(n.sent.total>=1)){n.next=17;break}return n.abrupt("return",!0);case 17:n.next=9;break;case 19:n.next=24;break;case 21:n.prev=21,n.t0=n.catch(7),l.e(n.t0);case 24:return n.prev=24,l.f(),n.finish(24);case 27:return n.abrupt("return",!1);case 28:case"end":return n.stop()}}),n,null,[[7,21,24,27]])})))()}}},d=(n(952),n(59)),component=Object(d.a)(c,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"contentful"},[n("b-form",[n("b-form-group",[n("b-form-input",{class:e.errorMessage?"error":"",attrs:{autocomplete:"off"},on:{input:e.handleSlugChange},model:{value:e.value,callback:function(t){e.value=t},expression:"value"}}),e._v(" "),e.errorMessage?n("label",{staticClass:"error-message",domProps:{textContent:e._s(e.errorMessage)}}):e._e()],1)],1)],1)}),[],!1,null,"04b474bb",null);t.default=component.exports},853:function(e,t,n){var content=n(953);content.__esModule&&(content=content.default),"string"==typeof content&&(content=[[e.i,content,""]]),content.locals&&(e.exports=content.locals);(0,n(138).default)("d3ad8346",content,!0,{sourceMap:!1})},952:function(e,t,n){"use strict";n(853)},953:function(e,t,n){var r=n(137)(!1);r.push([e.i,'.contentful[data-v-04b474bb]{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:.875rem}.contentful .form-control[data-v-04b474bb]{font-size:.875rem;border-radius:0;outline:none;background-color:#fff;border:1px solid #d3dce0;max-height:2.5rem;color:#536171;padding:.6563rem;padding-left:.6563rem;margin:0;width:100%;appearance:textfield}.contentful .form-control[data-v-04b474bb]:focus{border:1px solid #2e75d4;box-shadow:0 0 7px #2e75d4}.contentful .form-control.error[data-v-04b474bb]{border:1px solid #bf3045}.contentful .form-control.error[data-v-04b474bb]:focus{box-shadow:0 0 7px #bf3045}.contentful .error-message[data-v-04b474bb]{color:#bf3045;margin-top:.75em}',""]),e.exports=r}}]);
//# sourceMappingURL=dc262a3.js.map