2 lines
7.4 KiB
JavaScript
2 lines
7.4 KiB
JavaScript
/*! This file is auto-generated */
|
|
!function(){"use strict";var e={n:function(t){var i=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(i,{a:i}),i},d:function(t,i){for(var o in i)e.o(i,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:i[o]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{MediaUpload:function(){return p},uploadMedia:function(){return y}});var i=window.wp.element,o=window.wp.i18n;const l=[],a=()=>{const{wp:e}=window;return e.media.view.MediaFrame.Select.extend({featuredImageToolbar(t){this.createSelectToolbar(t,{text:e.media.view.l10n.setFeaturedImage,state:this.options.state})},editState(){const t=this.state("featured-image").get("selection"),i=new e.media.view.EditImage({model:t.single(),controller:this}).render();this.content.set(i),i.loadEditor()},createStates:function(){this.on("toolbar:create:featured-image",this.featuredImageToolbar,this),this.on("content:render:edit-image",this.editState,this),this.states.add([new e.media.controller.FeaturedImage,new e.media.controller.EditImage({model:this.options.editImage})])}})},r=()=>{const{wp:e}=window;return e.media.view.MediaFrame.Post.extend({galleryToolbar(){const t=this.state().get("editing");this.toolbar.set(new e.media.view.Toolbar({controller:this,items:{insert:{style:"primary",text:t?e.media.view.l10n.updateGallery:e.media.view.l10n.insertGallery,priority:80,requires:{library:!0},click(){const e=this.controller,t=e.state();e.close(),t.trigger("update",t.get("library")),e.setState(e.options.state),e.reset()}}}}))},editState(){const t=this.state("gallery").get("selection"),i=new e.media.view.EditImage({model:t.single(),controller:this}).render();this.content.set(i),i.loadEditor()},createStates:function(){this.on("toolbar:create:main-gallery",this.galleryToolbar,this),this.on("content:render:edit-image",this.editState,this),this.states.add([new e.media.controller.Library({id:"gallery",title:e.media.view.l10n.createGalleryTitle,priority:40,toolbar:"main-gallery",filterable:"uploaded",multiple:"add",editable:!1,library:e.media.query({type:"image",...this.options.library})}),new e.media.controller.EditImage({model:this.options.editImage}),new e.media.controller.GalleryEdit({library:this.options.selection,editing:this.options.editing,menu:"gallery",displaySettings:!1,multiple:!0}),new e.media.controller.GalleryAdd])}})},s=e=>["sizes","mime","type","subtype","id","url","alt","link","caption"].reduce(((t,i)=>(null!=e&&e.hasOwnProperty(i)&&(t[i]=e[i]),t)),{}),n=e=>{const{wp:t}=window;return t.media.query({order:"ASC",orderby:"post__in",post__in:e,posts_per_page:-1,query:!0,type:"image"})};class d extends i.Component{constructor(e){let{allowedTypes:t,gallery:i=!1,unstableFeaturedImageFlow:l=!1,modalClass:a,multiple:r=!1,title:s=(0,o.__)("Select or Upload Media")}=e;super(...arguments),this.openModal=this.openModal.bind(this),this.onOpen=this.onOpen.bind(this),this.onSelect=this.onSelect.bind(this),this.onUpdate=this.onUpdate.bind(this),this.onClose=this.onClose.bind(this);const{wp:n}=window;if(i)this.buildAndSetGalleryFrame();else{const e={title:s,multiple:r};t&&(e.library={type:t}),this.frame=n.media(e)}a&&this.frame.$el.addClass(a),l&&this.buildAndSetFeatureImageFrame(),this.initializeListeners()}initializeListeners(){this.frame.on("select",this.onSelect),this.frame.on("update",this.onUpdate),this.frame.on("open",this.onOpen),this.frame.on("close",this.onClose)}buildAndSetGalleryFrame(){const{addToGallery:e=!1,allowedTypes:t,multiple:i=!1,value:o=l}=this.props;if(o===this.lastGalleryValue)return;const{wp:a}=window;let s;this.lastGalleryValue=o,this.frame&&this.frame.remove(),s=e?"gallery-library":o&&o.length?"gallery-edit":"gallery",this.GalleryDetailsMediaFrame||(this.GalleryDetailsMediaFrame=r());const d=n(o),p=new a.media.model.Selection(d.models,{props:d.props.toJSON(),multiple:i});this.frame=new this.GalleryDetailsMediaFrame({mimeType:t,state:s,multiple:i,selection:p,editing:!(!o||!o.length)}),a.media.frame=this.frame,this.initializeListeners()}buildAndSetFeatureImageFrame(){const{wp:e}=window,t=a(),i=n(this.props.value),o=new e.media.model.Selection(i.models,{props:i.props.toJSON()});this.frame=new t({mimeType:this.props.allowedTypes,state:"featured-image",multiple:this.props.multiple,selection:o,editing:!!this.props.value}),e.media.frame=this.frame}componentWillUnmount(){this.frame.remove()}onUpdate(e){const{onSelect:t,multiple:i=!1}=this.props,o=this.frame.state(),l=e||o.get("selection");l&&l.models.length&&t(i?l.models.map((e=>s(e.toJSON()))):s(l.models[0].toJSON()))}onSelect(){const{onSelect:e,multiple:t=!1}=this.props,i=this.frame.state().get("selection").toJSON();e(t?i:i[0])}onOpen(){const{wp:e}=window,{value:t}=this.props;this.updateCollection(),this.props.mode&&this.frame.content.mode(this.props.mode);if(!(Array.isArray(t)?!(null==t||!t.length):!!t))return;const i=this.props.gallery,o=this.frame.state().get("selection"),l=Array.isArray(t)?t:[t];i||l.forEach((t=>{o.add(e.media.attachment(t))}));const a=n(l);a.more().done((function(){var e;i&&null!=a&&null!==(e=a.models)&&void 0!==e&&e.length&&o.add(a.models)}))}onClose(){const{onClose:e}=this.props;e&&e()}updateCollection(){const e=this.frame.content.get();if(e&&e.collection){const t=e.collection;t.toArray().forEach((e=>e.trigger("destroy",e))),t.mirroring._hasMore=!0,t.more()}}openModal(){this.props.gallery&&this.buildAndSetGalleryFrame(),this.frame.open()}render(){return this.props.render({open:this.openModal})}}var p=d,m=window.wp.apiFetch,c=e.n(m),h=window.wp.blob;const u=()=>{};async function y(e){let{allowedTypes:t,additionalData:i={},filesList:l,maxUploadFileSize:a,onError:r=u,onFileChange:s,wpAllowedMimeTypes:n=null}=e;const d=[...l],p=[],m=(e,t)=>{var i;(0,h.revokeBlobURL)(null===(i=p[e])||void 0===i?void 0:i.url),p[e]=t,s(p.filter(Boolean))},c=e=>!t||t.some((t=>t.includes("/")?t===e:e.startsWith(`${t}/`))),y=(f=n)?Object.entries(f).map((e=>{let[t,i]=e;const[o]=i.split("/");return[i,...t.split("|").map((e=>`${o}/${e}`))]})).flat():f;var f;const g=[];for(const e of d)y&&e.type&&(b=e.type,!y.includes(b))?r({code:"MIME_TYPE_NOT_ALLOWED_FOR_USER",message:(0,o.sprintf)((0,o.__)("%s: Sorry, you are not allowed to upload this file type."),e.name),file:e}):!e.type||c(e.type)?a&&e.size>a?r({code:"SIZE_ABOVE_LIMIT",message:(0,o.sprintf)((0,o.__)("%s: This file exceeds the maximum upload size for this site."),e.name),file:e}):e.size<=0?r({code:"EMPTY_FILE",message:(0,o.sprintf)((0,o.__)("%s: This file is empty."),e.name),file:e}):(g.push(e),p.push({url:(0,h.createBlobURL)(e)}),s(p)):r({code:"MIME_TYPE_NOT_SUPPORTED",message:(0,o.sprintf)((0,o.__)("%s: Sorry, this file type is not supported here."),e.name),file:e});var b;for(let e=0;e<g.length;++e){const t=g[e];try{var S,_;const o=await w(t,i),{alt_text:l,source_url:a,...r}=o;m(e,{...r,alt:o.alt_text,caption:null!==(S=null===(_=o.caption)||void 0===_?void 0:_.raw)&&void 0!==S?S:"",title:o.title.raw,url:o.source_url})}catch(i){let l;m(e,null),l=i.message?i.message:(0,o.sprintf)((0,o.__)("Error while uploading file %s to the media library."),t.name),r({code:"GENERAL",message:l,file:t})}}}function w(e,t){const i=new window.FormData;return i.append("file",e,e.name||e.type.replace("/",".")),t&&Object.entries(t).forEach((e=>{let[t,o]=e;return i.append(t,o)})),c()({path:"/wp/v2/media",body:i,method:"POST"})}(window.wp=window.wp||{}).mediaUtils=t}(); |