|
1
|
|
-var E=Object.create;var c=Object.defineProperty;var _=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var V=Object.getPrototypeOf,I=Object.prototype.hasOwnProperty;var w=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var L=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of b(t))!I.call(e,i)&&i!==r&&c(e,i,{get:()=>t[i],enumerable:!(o=_(t,i))||o.enumerable});return e};var m=(e,t,r)=>(r=e!=null?E(V(e)):{},L(t||!e||!e.__esModule?c(r,"default",{value:e,enumerable:!0}):r,e));var f=w((j,T)=>{T.exports=window.wp.element});var F=w((S,x)=>{x.exports=window.ReactJSXRuntime});var v=m(f(),1);function k(e){return typeof e=="object"&&e!==null&&"default"in e&&typeof e.default=="function"}var W=new Map;function g(e,t){let r=W.get(e);if(r)return r;let o=(0,v.lazy)(async()=>{let i=await t(e);if(!k(i))throw new Error(`Invalid widget module: ${e}`);return i});return W.set(e,o),o}var l=m(F(),1);function h({widgetType:e,attributes:t,setAttributes:r,resolveWidgetModule:o}){let i=g(e.renderModule,o);return(0,l.jsx)(l.Fragment,{children:(0,l.jsx)(i,{attributes:t,setAttributes:r})})}var u=m(f(),1);var M=/^[a-z][a-z0-9-]*(\/[a-z][a-z0-9-]*)?$/,d=new Map;function z(e){if(!(!M.test(e.name)||d.has(e.name)))return d.set(e.name,e),e}function y(e){return e.map(t=>{let r=t.type?d.get(t.type):void 0;if(!r)return t;let{name:o,baseType:i,isValid:a,...n}=r,{type:p,isValid:s,...C}=t;return{...n,...C,type:i,...a||s?{isValid:{...a,...s}}:{}}})}function R(e){let[t,r]=(0,u.useState)([]),[o,i]=(0,u.useState)(!0);return(0,u.useEffect)(()=>{if(e==null){i(!0);return}if(e.length===0){r([]),i(!1);return}let a=!1;return i(!0),Promise.all(e.map(async n=>{if(!n.widget_module)return null;try{let p=await import(n.widget_module);if(!p?.default)return null;let s=p.default;return{...s,...s.attributes?{attributes:y(s.attributes)}:{},name:n.name,renderModule:n.render_module??"",title:n.title??s.title??n.name,...n.presentation?{presentation:n.presentation}:{},...n.category?{category:n.category}:{},...n.description?{description:n.description}:{},...n.help?{help:n.help}:{},...n.keywords?{keywords:n.keywords}:{},...n.actions?{actions:n.actions}:{}}}catch{return null}})).then(n=>{a||(r(n.filter(p=>p!==null)),i(!1))}),()=>{a=!0}},[e]),[t,o]}export{h as WidgetRender,z as registerFieldType,R as useWidgetTypes}; |
|
1
|
+var U=Object.create;var k=Object.defineProperty;var X=Object.getOwnPropertyDescriptor;var Y=Object.getOwnPropertyNames;var q=Object.getPrototypeOf,A=Object.prototype.hasOwnProperty;var E=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var G=(t,e,i,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Y(e))!A.call(t,n)&&n!==i&&k(t,n,{get:()=>e[n],enumerable:!(r=X(e,n))||r.enumerable});return t};var d=(t,e,i)=>(i=t!=null?U(q(t)):{},G(e||!t||!t.__esModule?k(i,"default",{value:t,enumerable:!0}):i,t));var v=E((et,L)=>{L.exports=window.wp.element});var W=E((rt,C)=>{C.exports=window.ReactJSXRuntime});var z=d(v(),1);function K(t){return typeof t=="object"&&t!==null&&"default"in t&&typeof t.default=="function"}var _=new Map;function V(t,e){let i=_.get(t);if(i)return i;let r=(0,z.lazy)(async()=>{let n=await e(t);if(!K(n))throw new Error(`Invalid widget module: ${t}`);return n});return _.set(t,r),r}var y=d(W(),1);function P({widgetType:t,attributes:e,setAttributes:i,resolveWidgetModule:r}){let n=V(t.renderModule,r);return(0,y.jsx)(y.Fragment,{children:(0,y.jsx)(n,{attributes:e,setAttributes:i})})}var f=d(v(),1);var Q=/^[a-z][a-z0-9-]*(\/[a-z][a-z0-9-]*)?$/,F=new Map;function M(t){if(!(!Q.test(t.name)||F.has(t.name)))return F.set(t.name,t),t}function w(t){return t.map(e=>{let i=e.type?F.get(e.type):void 0;if(!i)return e;let{name:r,baseType:n,isValid:a,...o}=i,{type:u,isValid:s,...l}=e;return{...o,...l,type:n,...a||s?{isValid:{...a,...s}}:{}}})}var I;function j(t){if(!I)return I=t,t}async function h(t){if(!I)return null;try{return await I(t)}catch{return null}}var x=(0,f.createElement)("svg",{viewBox:"0 0 24 24"});function D(t,e){return t.map(({icon:i,...r})=>(0,f.isValidElement)(i)?{...r,icon:i}:e&&typeof i=="string"?{...r,icon:x}:r)}function Z(t,e){if(!t)return e;if(!e)return t;let i=new Map(e.map(n=>[n.id,n])),r=new Set(t.map(n=>n.id));return[...t.map(n=>{let a=i.get(n.id);return!a?.isValid||!n.isValid?{...a,...n}:{...a,...n,isValid:{...a.isValid,...n.isValid}}}),...e.filter(n=>!r.has(n.id))]}var N=1;function S(t){return{name:t.name,renderModule:t.render_module??"",...t.presentation?{presentation:t.presentation}:{},...t.category?{category:t.category}:{},...t.description?{description:t.description}:{},...t.help?{help:t.help}:{},...t.keywords?{keywords:t.keywords}:{}}}function $(t){let[e,i]=(0,f.useState)([]),[r,n]=(0,f.useState)(!0);return(0,f.useEffect)(()=>{if(t==null){n(!0);return}if(t.length===0){i([]),n(!1);return}let a=!1;return n(!0),Promise.all(t.map(async o=>{if(!o.widget_module)return o.render_module?{apiVersion:N,title:o.title??o.name,...o.attributes?{attributes:w(o.attributes)}:{},...o.icon?{icon:x}:{},...o.actions?{actions:D(o.actions,!0)}:{},...S(o)}:null;try{let u=await import(o.widget_module);if(!u?.default)return null;let s=u.default,m=((0,f.isValidElement)(s.icon)?s.icon:void 0)??(o.icon?x:void 0),c=o.actions??s.actions,p=Z(o.attributes,s.attributes);return{apiVersion:N,...s,...p?{attributes:w(p)}:{},icon:m,title:o.title??s.title??o.name,...c?{actions:D(c,c===o.actions)}:{},...S(o)}}catch{return null}})).then(o=>{if(!a){i(o.filter(u=>u!==null)),n(!1);for(let u of t)u.icon&&h(u.icon).then(s=>{a||i(l=>l.map(m=>m.name!==u.name?m:s?{...m,icon:s}:m.icon===x?{...m,icon:void 0}:m))});for(let u of t)for(let s of u.actions??[])typeof s.icon=="string"&&h(s.icon).then(l=>{a||i(m=>m.map(c=>c.name!==u.name?c:{...c,actions:c.actions?.map(p=>p.id!==s.id?p:l?{...p,icon:l}:p.icon===x?{...p,icon:void 0}:p)}))})}}),()=>{a=!0}},[t]),[e,r]}var g=d(v(),1),b=d(W(),1),T=(0,g.createContext)({});function B({value:t,children:e}){let i=(0,g.useContext)(T),r=(0,g.useMemo)(()=>({...i,...t}),[i,t]);return(0,b.jsx)(T.Provider,{value:r,children:e})}function R(){return(0,g.useContext)(T)}var O=d(v(),1);var H=d(W(),1),J=(0,O.forwardRef)(function({href:e,children:i,...r},n){let{links:a}=R(),{download:o,target:u}=r,s=o!==void 0&&o!==!1||/^_blank$/i.test(u??""),l=a&&!s?a.match(e):null;return a&&l!==null?(0,H.jsx)(a.Link,{ref:n,path:l,...r,children:i}):(0,H.jsx)("a",{ref:n,href:e,...r,children:i})});export{J as HostLink,B as WidgetHostProvider,P as WidgetRender,M as registerFieldType,j as registerIconResolver,R as useWidgetHost,$ as useWidgetTypes}; |