| 2 |
(()=>{"use strict";var e={1020(e,t,n){var o=n(1594),l=Symbol.for("react.element"),s=(Symbol.for("react.fragment"),Object.prototype.hasOwnProperty),r=o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,a={key:!0,ref:!0,__self:!0,__source:!0};function i(e,t,n){var o,i={},c=null,p=null;for(o in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(p=t.ref),t)s.call(t,o)&&!a.hasOwnProperty(o)&&(i[o]=t[o]);if(e&&e.defaultProps)for(o in t=e.defaultProps)void 0===i[o]&&(i[o]=t[o]);return{$$typeof:l,type:e,key:c,ref:p,props:i,_owner:r.current}}t.jsx=i,t.jsxs=i},4848(e,t,n){e.exports=n(1020)},1594(e){e.exports=React}};const t={};function n(o){const l=t[o];if(void 0!==l)return l.exports;const s=t[o]={exports:{}};return e[o](s,s.exports,n),s.exports}n.n=e=>{const t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{if(Array.isArray(t))for(var o=0;o<t.length;){var l=t[o++],s=t[o++];n.o(e,l)?0===s&&o++:0===s?Object.defineProperty(e,l,{enumerable:!0,value:t[o++]}):Object.defineProperty(e,l,{enumerable:!0,get:s})}else for(var l in t)n.o(t,l)&&!n.o(e,l)&&Object.defineProperty(e,l,{enumerable:!0,get:t[l]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);const o=wp.plugins,l=wp.i18n,s=wp.editPost,r=wp.coreData,a=wp.data,i=wp.components;var c=n(4848);const p={category:"category",tag:"post_tag"};function u({rule:e,types:t,onChange:n,onRemove:o}){const s=t.map(e=>({value:e.slug,label:e.label}));return(0,c.jsxs)(i.Flex,{className:"blocksparetb-rule-row",align:"flex-end",children:[(0,c.jsx)(i.FlexBlock,{children:(0,c.jsx)(i.SelectControl,{label:(0,l.__)("Condition","blockspare"),value:e.type,options:s.length?s:[{value:e.type,label:e.type}],onChange:e=>{n({type:e,settings:{}})}})}),(0,c.jsx)(i.FlexBlock,{children:(0,c.jsx)(d,{rule:e,setSetting:(t,o)=>{n({...e,settings:{...e.settings,[t]:o}})}})}),(0,c.jsx)(i.FlexItem,{children:(0,c.jsx)(i.Button,{icon:"no-alt",label:(0,l.__)("Remove rule","blockspare"),onClick:o,isDestructive:!0})})]})}function d({rule:e,setSetting:t}){return p[e.type]?(0,c.jsx)(b,{taxonomy:p[e.type],value:e.settings?.term_id,onChange:e=>t("term_id",e)}):"author"===e.type?(0,c.jsx)(_,{value:e.settings?.user_id,onChange:e=>t("user_id",e)}):"single"===e.type?(0,c.jsx)(g,{value:e.settings?.post_type,onChange:e=>t("post_type",e)}):(0,c.jsx)("span",{className:"blocksparetb-rule-row__no-settings",children:(0,l.__)("Applies to all matching pages — no extra settings.","blockspare")})}function b({taxonomy:e,value:t,onChange:n}){const o=(0,a.useSelect)(t=>t(r.store).getEntityRecords("taxonomy",e,{per_page:-1,orderby:"name",order:"asc"}),[e]),s=[{value:"",label:(0,l.__)("Any","blockspare")},...(o||[]).map(e=>({value:String(e.id),label:e.name}))];return(0,c.jsx)(i.SelectControl,{label:"category"===e?(0,l.__)("Specific category","blockspare"):(0,l.__)("Specific tag","blockspare"),value:t?String(t):"",options:s,onChange:e=>n(e?Number(e):void 0)})}function _({value:e,onChange:t}){const n=(0,a.useSelect)(e=>e(r.store).getEntityRecords("root","user",{per_page:-1}),[]),o=[{value:"",label:(0,l.__)("Any","blockspare")},...(n||[]).map(e=>({value:String(e.id),label:e.name}))];return(0,c.jsx)(i.SelectControl,{label:(0,l.__)("Specific author","blockspare"),value:e?String(e):"",options:o,onChange:e=>t(e?Number(e):void 0)})}function g({value:e,onChange:t}){const n=((0,a.useSelect)(e=>e(r.store).getEntityRecords("root","postType",{per_page:-1}),[])||[]).filter(e=>e.viewable&&"blockspare_template"!==e.slug),o=[{value:"",label:(0,l.__)("Any post type","blockspare")},...n.map(e=>({value:e.slug,label:e.name}))];return(0,c.jsx)(i.SelectControl,{label:(0,l.__)("Specific post type","blockspare"),value:e||"",options:o,onChange:t})}function y({label:e,addLabel:t,rules:n,types:o,isLoadingTypes:s,onChange:r}){return(0,c.jsxs)(i.BaseControl,{label:e,className:"blocksparetb-rule-list",children:[0===n.length&&(0,c.jsx)("p",{className:"blocksparetb-rule-list__empty",children:(0,l.__)("No rules yet — this bucket will never match.","blockspare")}),n.map((e,t)=>(0,c.jsx)(u,{rule:e,types:o,onChange:e=>((e,t)=>{const o=n.slice();o[e]=t,r(o)})(t,e),onRemove:()=>(e=>{r(n.filter((t,n)=>n!==e))})(t)},t)),(0,c.jsx)(i.Button,{variant:"secondary",onClick:()=>{const e=o[0]?.slug||"entire_site";r([...n,{type:e,settings:{}}])},disabled:s,isBusy:s,children:t})]})}const m=wp.element,x=wp.apiFetch;var h=n.n(x);const f="blockspare_template";(0,o.registerPlugin)("blocksparetb-conditions-panel",{render:function(){const e=(0,a.useSelect)(e=>e("core/editor").getCurrentPostType(),[]),[t,n]=(0,r.useEntityProp)("postType",f,"conditions"),[o,p]=(0,r.useEntityProp)("postType",f,"priority"),{types:u,isLoading:d,error:b}=function(){const[e,t]=(0,m.useState)([]),[n,o]=(0,m.useState)(!0),[l,s]=(0,m.useState)(null);return(0,m.useEffect)(()=>{let e=!0;return h()({path:"/stbldr/v1/conditions"}).then(n=>{e&&t(n)}).catch(t=>{e&&s(t.message||"Failed to load condition types.")}).finally(()=>{e&&o(!1)}),()=>{e=!1}},[]),{types:e,isLoading:n,error:l}}();if(f!==e)return null;const _=t&&"object"==typeof t?t:{include:[],exclude:[]},g=(e,t)=>{n({..._,[e]:t})};return console.log(u),(0,c.jsxs)(s.PluginDocumentSettingPanel,{name:"blocksparetb-conditions-panel",title:(0,l.__)("Display Conditions","blockspare"),className:"blocksparetb-conditions-panel",children:[b&&(0,c.jsx)(i.Notice,{status:"error",isDismissible:!1,children:b}),(0,c.jsx)(i.PanelRow,{children:(0,c.jsx)(i.__experimentalNumberControl,{label:(0,l.__)("Priority","blockspare"),help:(0,l.__)("Lower number wins when multiple templates match the same page.","blockspare"),value:o??10,min:1,onChange:e=>p(Number(e)||10)})}),(0,c.jsx)(y,{label:(0,l.__)("Include on","blockspare"),addLabel:(0,l.__)("+ Add include rule","blockspare"),rules:_.include||[],types:u,isLoadingTypes:d,onChange:e=>g("include",e)}),(0,c.jsx)(y,{label:(0,l.__)("Exclude on","blockspare"),addLabel:(0,l.__)("+ Add exclude rule","blockspare"),rules:_.exclude||[],types:u,isLoadingTypes:d,onChange:e=>g("exclude",e)}),(0,c.jsx)("p",{className:"blocksparetb-conditions-panel__hint",children:(0,l.__)("Exclude rules always win over include rules.","blockspare")})]})}})})(); |