| 1 |
(()=>{"use strict";var e={n:t=>{var a=t&&t.__esModule?()=>t.default:()=>t;return e.d(a,{a}),a},d:(t,a)=>{for(var r in a)e.o(a,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:a[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,a=window.wp.i18n,r=window.wp.apiFetch;var n=e.n(r);const i=window.wp.element,l=window.wp.data,o=window.wp.plugins,s=window.wp.editPost,c=window.wp.components,u=window.wp.notices,d=({name:e,layer:a,fieldset:r,updateFieldset:n,attribute:o})=>{const[s,u]=(0,i.useState)(!1),d=(0,l.useSelect)((e=>e("core/editor").getEditedPostAttribute(o)));return(0,i.useEffect)((()=>{s||n(e,d)}),[d]),(0,t.createElement)(c.TextareaControl,{name:e,label:a.title,value:r?.[e]||"",onChange:t=>(t=>{n(e,t),u(!0)})(t)})},m=({name:e,layer:a,fieldset:r,updateFieldset:n,attribute:o,entity:s})=>{const[u,d]=(0,i.useState)(!1),m=(0,l.useSelect)((e=>{const t=[];let r=e("core/editor").getEditedPostAttribute(o);return r||(r=[]),r.forEach((a=>{const r=e("core").getEntityRecord("taxonomy",s,a);r&&t.push(r.name)})),t.join(a.separator||", ")}));return(0,i.useEffect)((()=>{u||n(e,m)}),[m]),(0,t.createElement)(c.TextareaControl,{name:e,label:a.title,value:r?.[e]||"",onChange:t=>(t=>{n(e,t),d(!0)})(t)})},g=(0,i.forwardRef)((function({icon:e,size:t=24,...a},r){return(0,i.cloneElement)(e,{width:t,height:t,...a,ref:r})})),p=window.wp.primitives,w=(0,t.createElement)(p.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,t.createElement)(p.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 4.5h14c.3 0 .5.2.5.5v8.4l-3-2.9c-.3-.3-.8-.3-1 0L11.9 14 9 12c-.3-.2-.6-.2-.8 0l-3.6 2.6V5c-.1-.3.1-.5.4-.5zm14 15H5c-.3 0-.5-.2-.5-.5v-2.4l4.1-3 3 1.9c.3.2.7.2.9-.1L16 12l3.5 3.4V19c0 .3-.2.5-.5.5z"})),E=window.wp.blockEditor,f=({name:e,layer:r,mode:n,fieldset:o,updateFieldset:s})=>{const u=(0,l.useSelect)((e=>e("core/editor").getEditedPostAttribute("featured_media"))),d=(0,l.useSelect)((t=>{if(!o?.[e])return null;const a=t("core").getMedia(o?.[e]);let r=a?.media_details?.sizes?.thumbnail?.source_url;return r||(r=a?.source_url),r}),[o]);(0,i.useEffect)((()=>{"manual"!==n&&"featured"===r.preset&&s(e,u)}),[u,e]);const m=()=>{s(e,0)};return(0,t.createElement)(E.MediaUploadCheck,null,(0,t.createElement)(E.MediaUpload,{onSelect:t=>{var a;a=t.id,s(e,a)},allowedTypes:["image"],value:o?.[e],render:({open:r})=>o?.[e]?(0,t.createElement)(t.Fragment,null,d&&(0,t.createElement)("img",{src:d,alt:"",className:"g4qkvGu7xkyoImxRZ6GR"}),(0,t.createElement)(c.Button,{variant:"link",onClick:m},(0,a.__)("Remove image","sharing-image"))):(e=>(0,t.createElement)(t.Fragment,null,(0,t.createElement)(g,{icon:w,className:"ipnonin6Xj5A9QU3K38L"}),(0,t.createElement)(c.Button,{variant:"link",onClick:e},(0,a.__)("Set layer image","sharing-image"))))(r)}))},h=({layers:e,mode:a,fieldset:r,updateFieldset:n})=>{const i=(e,a)=>(0,t.createElement)(c.TextareaControl,{name:a,label:e.title,defaultValue:r?.[a]||"",onChange:e=>n(a,e)}),l=(e,l)=>{if("manual"===a)return i(e,l);const o={name:l,layer:e,fieldset:r,updateFieldset:n};switch(e.preset){case"title":return(0,t.createElement)(d,{...o,attribute:"title"});case"excerpt":return(0,t.createElement)(d,{...o,attribute:"excerpt"});case"categories":return(0,t.createElement)(m,{...o,attribute:"categories",entity:"category"});case"tags":return(0,t.createElement)(m,{...o,attribute:"tags",entity:"post_tag"})}return i(e,l)},o=(e,i)=>{const l={name:i,layer:e,mode:a,fieldset:r,updateFieldset:n};return(0,t.createElement)(c.BaseControl,{id:null,label:e.title},(0,t.createElement)(c.Flex,{justify:"flex-start",style:{border:"solid 1px #ccc",padding:"4px",borderRadius:"4px"}},(0,t.createElement)(f,{...l})))};return(()=>{const t=[];for(const a in e){const r=e[a];if(r.dynamic)switch(r.type){case"text":t.push(l(r,a));break;case"image":t.push(o(r,a))}}return t})()},y=({meta:e,templates:r,autogenerate:o})=>{const{createErrorNotice:s,removeNotice:d}=(0,l.useDispatch)(u.store),m=(0,l.useSelect)((e=>e("core/editor").getCurrentPostId())),g=(0,l.useSelect)((e=>e("core/editor").getEditedPostAttribute("meta")||{})),{editPost:p}=(0,l.useDispatch)("core/editor",[g]),[w,E]=(0,i.useState)(g[e.source]?.template),[f,y]=(0,i.useState)(g[e.fieldset]),[b,v]=(0,i.useState)(!1);return(0,i.useEffect)((()=>{p({meta:{[e.fieldset]:f}})}),[f]),(0,i.useEffect)((()=>{if(r[w])return;if(o&&r[o])return void E(o);const[e]=Object.keys(r);e&&E(e)}),[r,w,o]),(0,t.createElement)(c.Flex,{direction:"column",gap:2,style:{position:"relative"}},g[e.source]?.poster&&(0,t.createElement)("img",{src:g[e.source].poster,alt:(0,a.__)("Sharing Image poster","sharing-image")}),"auto"===g[e.source]?.mode&&(()=>{const e=(0,a.__)("Poster was generated automatically and will update on post saving.","sharing-image");return(0,t.createElement)(c.Dashicon,{icon:"awards",className:"BygBjwYpqPpeTZbVCcRT",title:e})})(),(0,t.createElement)(c.SelectControl,{value:w,options:Object.keys(r).map((e=>({label:r[e].title||(0,a.__)("Untitled","sharing-image"),value:e}))),onChange:t=>{p({meta:{[e.source]:{...g[e.source],template:t}}}),E(t)}}),r[w]&&(0,t.createElement)(c.Flex,{direction:"column",gap:2},(0,t.createElement)(h,{layers:r[w].layers||[],mode:g[e.source]?.mode,fieldset:f,updateFieldset:(e,t)=>{y((a=>({...a,[e]:t})))}})),(0,t.createElement)(c.Flex,{justify:"flex-start"},(0,t.createElement)(c.Button,{variant:"secondary",type:"button",onClick:()=>(async()=>{if(b)return;d("sharing-image-generate");const t={path:"sharing-image/v1/poster/"+m,method:"POST",data:{fieldset:f,template:w}};v(!0);try{const a=await n()(t);if(!a.data)throw new Error;p({meta:{[e.source]:{...a.data,template:w}}})}catch(e){s((0,a.__)("An unexpected error occurred","sharing-image"),{id:"sharing-image-generate",type:"snackbar"})}v(!1)})()},(0,a.__)("Generate","sharing-image")),(0,t.createElement)(c.Button,{variant:"tertiary",isDestructive:!0,onClick:()=>{p({meta:{[e.source]:{}}})}},(0,a.__)("Remove","sharing-image")),b&&(0,t.createElement)(c.Spinner,null)))};(0,o.registerPlugin)("sharing-image-sidebar",{render:()=>{const e=window.sharingImageSidebar||{};if(e.meta?.source&&e.meta?.fieldset)return(0,t.createElement)(s.PluginDocumentSettingPanel,{name:"sharing-image-sidebar",title:(0,a.__)("Sharing Image","sharing-image")},(0,t.createElement)(y,{...e}))}})})(); |