fields.js 13.1 KB
!function(){var e={184:function(e,t){var n;!function(){"use strict";var o={}.hasOwnProperty;function r(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var l=typeof n;if("string"===l||"number"===l)e.push(n);else if(Array.isArray(n)){if(n.length){var a=r.apply(null,n);a&&e.push(a)}}else if("object"===l){if(n.toString!==Object.prototype.toString&&!n.toString.toString().includes("[native code]")){e.push(n.toString());continue}for(var s in n)o.call(n,s)&&n[s]&&e.push(s)}}}return e.join(" ")}e.exports?(r.default=r,e.exports=r):void 0===(n=function(){return r}.apply(t,[]))||(e.exports=n)}()}},t={};function n(o){var r=t[o];if(void 0!==r)return r.exports;var l=t[o]={exports:{}};return e[o](l,l.exports,n),l.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};!function(){"use strict";n.r(o),n.d(o,{CheckboxField:function(){return r},ColorField:function(){return l},DateField:function(){return a},Field:function(){return v},FieldContextProvider:function(){return P},Fields:function(){return g},FieldsContext:function(){return I},MeasureField:function(){return f},MulticheckField:function(){return h},NumberField:function(){return b},ObjectSelectField:function(){return _},RadioField:function(){return F},RangeSliderField:function(){return S},SelectField:function(){return T},TextAreaField:function(){return N},TextField:function(){return O},TokenSelectField:function(){return M},useFields:function(){return R}});var e=window.React,t=window.wp.components,r=({value:n,onChange:o,label:r,...l})=>(0,e.createElement)(t.CheckboxControl,{...l,label:r,checked:n,onChange:o}),l=({value:n="",onChange:o,...r})=>(0,e.createElement)(e.Fragment,null,(0,e.createElement)(t.ColorIndicator,{colorValue:n}),(0,e.createElement)(t.ColorPicker,{...r,color:n,onChangeComplete:e=>{var t;return o(null!==(t=e?.hex)&&void 0!==t?t:e)}}),(0,e.createElement)(t.ColorPalette,{value:n,onChange:e=>{o(null!=e?e:"")},colors:[{name:"red",color:"#f00"},{name:"white",color:"#fff"},{name:"blue",color:"#00f"}],clearable:!0})),a=({value:n,onChange:o,...r})=>(0,e.createElement)(e.Fragment,null,(0,e.createElement)(t.BaseControl,{...r,__nextHasNoMarginBottom:!0,hideLabelFromVision:!0},(0,e.createElement)("input",{type:"date",value:n,onChange:e=>o(e.target.value)}))),s=n(184),i=n.n(s),c=window.wp.i18n,u=window.contentControl.utils;window.wp.htmlEntities;const p=e=>"string"==typeof e?e.split(",").map((e=>({label:e,value:e}))):Array.isArray(e)||"object"!=typeof e?e.map((e=>"string"==typeof e?{label:e,value:e}:e)):Object.entries(e).map((([e,t])=>({label:t,value:e}))),d=t=>{var n,o,r,l,a,s;let c;switch(c=function(e){const t={...e};return!(!t||"object"!=typeof t||void 0===t?.std&&void 0===t?.user_roles&&(void 0===t?.type||"userselect"!==t?.type)&&void 0===t?.taxonomy&&void 0===t?.post_type)}(t)?(t=>{var n,o,r,l,a,s,c;const d={type:"select2"!==t.type?t.type:"select",default:t.std,id:null!==(n=null!==(o=t.id)&&void 0!==o?o:t.name)&&void 0!==n?n:"",...(0,u.pick)(t,"id","name","label","value","required","dependencies")},m=[];switch(void 0!==t.classes&&("string"==typeof t.classes?m.push(...t.classes.split(" ")):Array.isArray(t.classes)&&m.push(...t.classes)),void 0!==t.class&&m.push(t.class),d.className=i()(m),t.dynamic_desc?d.help=(0,e.createElement)(e.Fragment,null,t.dynamic_desc):t.desc&&(d.help=t.desc),d.type){case"checkbox":case"hidden":case"license_key":return d;case"color":return{...d,default:null!==(r=t.value)&&void 0!==r?r:""};case"text":case"email":case"tel":case"password":default:return{...d,...d.type===t.type&&{size:t?.size,placeholder:t?.placeholder}};case"radio":case"multicheck":return{...d,options:[],...d.type===t.type&&{options:null!==(l=t.options)&&void 0!==l?l:[]}};case"select":case"multiselect":var v;return d.type!==t.type&&"select2"!==t.type||(d.options=p(null!==(v=t.options)&&void 0!==v?v:[]),d.searchable="select2"===t.type,d.multiple="multiselect"===d.type||t.multiple),{options:[],...d};case"tokenselect":return{value:[],options:{},...d};case"number":case"rangeslider":return{...d,...d.type===t.type&&{size:t?.size,placeholder:t?.placeholder,min:t?.min,max:t?.max,step:t?.step}};case"measure":return{...d,units:{},...d.type===t.type&&{size:t?.size,placeholder:t?.placeholder,min:t?.min,max:t?.max,step:t?.step,units:null!==(a=t?.units)&&void 0!==a?a:{}}};case"objectselect":case"postselect":case"taxonomyselect":case"userselect":d.type="objectselect",d.multiple=null!==(s=t?.multiple)&&void 0!==s&&s,d.placeholder=null!==(c=t?.placeholder)&&void 0!==c?c:"";let e="postType",n="";var g;if("postselect"===t.type)e="postType",n=null!==(g=t?.post_type)&&void 0!==g?g:"post";else if("taxonomyselect"===t.type){var y;e="taxonomy",n=null!==(y=t?.taxonomy)&&void 0!==y?y:"category"}else if("userselect"===t.type)e="user",n="user";else{var f;e=t?.post_type?"postType":"taxonomy",n=null!==(f=t?.post_type)&&void 0!==f?f:t?.taxonomy}return{...d,entityKind:e,entityType:n};case"textarea":return{...d,...d.type===t.type&&{allowHtml:t?.allow_html}}}})(t):t,c.type){case"checkbox":case"color":case"radio":case"rangeslider":case"number":default:case"email":case"tel":case"hidden":case"text":case"password":case"license_key":case"measure":case"textarea":return{...c};case"multicheck":return{...c,options:null!==(n=c.options)&&void 0!==n?n:[]};case"select":return{...c,options:null!==(o=c.options)&&void 0!==o?o:[]};case"multiselect":return{...c,options:null!==(r=c.options)&&void 0!==r?r:[],multiple:!0};case"objectselect":case"postselect":case"taxonomyselect":case"userselect":return{...c,entityKind:null!==(l=c.entityKind)&&void 0!==l?l:""};case"tokenselect":return{...c,value:null!==(a=c.value)&&void 0!==a?a:[],options:null!==(s=c.options)&&void 0!==s?s:[]}}},m=t=>{const{type:n}=t;switch(n){case"checkbox":return(0,e.createElement)(r,{...t});case"color":return(0,e.createElement)(l,{...t});case"date":return(0,e.createElement)(a,{...t});case"measure":return(0,e.createElement)(f,{...t});case"multicheck":return(0,e.createElement)(h,{...t});case"select":case"multiselect":return(0,e.createElement)(T,{...t});case"objectselect":case"postselect":case"taxonomyselect":case"userselect":return(0,e.createElement)(_,{...t});case"radio":return(0,e.createElement)(F,{...t});case"rangeslider":return(0,e.createElement)(S,{...t});case"number":return(0,e.createElement)(b,{...t});case"email":case"tel":case"hidden":case"text":case"password":return(0,e.createElement)(O,{...t});case"textarea":return(0,e.createElement)(N,{...t});case"tokenselect":return(0,e.createElement)(M,{...t})}return(0,e.createElement)(e.Fragment,null,(0,c.sprintf)(/* translators: 1. type of field not found. */
(0,c.__)("Field type `%s` not found","content-control"),n))};var v=t=>{const{type:n,className:o,onChange:r}=t;return(0,e.createElement)("div",{className:i()(["cc-field",`cc-field--${n}`,o])},(0,e.createElement)(m,{onChange:r,...d(t)}))},g=t=>{const{fields:n}=t;return(0,e.createElement)(e.Fragment,null,n.map(((t,n)=>(0,e.createElement)(v,{key:n,...t}))))},y=window.wp.element,f=({value:n,onChange:o,units:r,...l})=>{var a;const s=n?parseInt(n):"",[i,c]=(0,y.useState)({number:s,unit:null!==(a=n?.replace(`${s}`,""))&&void 0!==a?a:""});(0,y.useEffect)((()=>{o(`${i.number}${i.unit}`)}),[i,o]);const u=Object.entries(r).map((([e,t])=>({value:e,label:t})));return(0,e.createElement)(t.__experimentalUnitControl,{...l,value:n,onChange:(e="0")=>c({...i,number:e}),disableUnits:0===u.length,units:u,onUnitChange:(e="")=>c({...i,unit:e}),__nextHasNoMarginBottom:!0})},h=({value:n,onChange:o,...r})=>{const l=null!=n?n:[],a=p(r.options),s=null!=n?n:[];return(0,e.createElement)((()=>(0,e.createElement)(e.Fragment,null,a.map((({label:n,value:r})=>{const a=l.indexOf(r)>=0;return(0,e.createElement)(t.CheckboxControl,{key:r,label:n,checked:a,onChange:()=>o(a?s.filter((e=>r!==e)):[...s,r])})})))),null)},b=({value:n,onChange:o,...r})=>(0,e.createElement)(t.__experimentalNumberControl,{...r,value:n,onChange:(e="0")=>o(parseInt(e,10)),__nextHasNoMarginBottom:!0}),C=window.wp.data,x=window.wp.compose,w=window.wp.coreData,E=window.contentControl.components,_=({label:t,value:n,onChange:o,entityKind:r="postType",entityType:l="post",multiple:a=!1})=>{const[s,i]=(0,y.useState)(""),u=(0,x.useDebounce)((e=>{i(e)}),300),{prefill:p=[]}=(0,C.useSelect)((e=>({prefill:n?e(w.store).getEntityRecords(r,l,{context:"view",include:n,per_page:-1}):[]})),[n,r,l]),{suggestions:d=[],isSearching:m=!1}=(0,C.useSelect)((e=>({suggestions:"user"===r?e(w.store).getUsers({context:"view",search:s,per_page:-1}):e(w.store).getEntityRecords(r,l,{context:"view",search:s,per_page:-1}),isSearching:"user"===r?e("core/data").isResolving("core","getUsers",[r,l,{context:"view",search:s,per_page:-1}]):e("core/data").isResolving("core","getEntityRecords",[r,l,{context:"view",search:s,per_page:-1}])})),[s,r,l]),v=e=>d&&d.find((t=>t.id.toString()===e.toString()))||p&&p.find((t=>t.id.toString()===e.toString())),g=n?"number"==typeof n||"string"==typeof n?[n]:n:[],f=e=>"object"==typeof e?e.value:e;return(0,e.createElement)("div",{className:"cc-object-search-field"},(0,e.createElement)(E.SmartTokenControl,{label:t||(0,c.sprintf)(
// translators: %s: entity type.
(0,c.__)("%s(s)","content-control"),l.replace(/_/g," ").charAt(0).toUpperCase()+l.replace(/_/g," ").slice(1)),hideLabelFromVision:!0,multiple:a,placeholder:(0,c.sprintf)(
// translators: %s: entity type.
(0,c.__)("Select %s(s)","content-control"),l.replace(/_/g," ").toLowerCase()),tokenOnComma:!0,value:g.map((e=>e.toString())),onInputChange:u,onChange:e=>{o(e.map((e=>parseInt(f(e),10))).filter((e=>!isNaN(e))))},renderToken:e=>{const t=v(f(e));return t?"postType"===r?t.title.rendered:t.name:f(e)},renderSuggestion:t=>{var n;const o=v(t);return o?(0,e.createElement)(e.Fragment,null,"postType"===r?null!==(n=o.title.rendered)&&void 0!==n?n:o.title.raw:o.name):t},suggestions:d?d.map((e=>{var t;return null!==(t=e?.id.toString())&&void 0!==t&&t})):[],messages:m?{noSuggestions:(0,c.__)("Searching…","content-control")}:void 0}))},F=({value:n,onChange:o,...r})=>{const l=r.options;return(0,e.createElement)(t.RadioControl,{...r,selected:n?.toString(),options:l,onChange:o,__nextHasNoMarginBottom:!0})},S=({value:n,onChange:o,initialPosition:r=0,...l})=>{const{step:a}=l;return(0,e.createElement)(t.RangeControl,{value:null!=n?n:r,onChange:(e=0)=>o(e),withInputField:!0,__nextHasNoMarginBottom:!0,type:a?"stepper":void 0})};const k=({options:t})=>(0,e.createElement)(e.Fragment,null,p(t).map((({label:t,value:n})=>(0,e.createElement)("option",{key:n,value:n},t)))),j=({optGroups:t})=>(0,e.createElement)(e.Fragment,null,Object.entries(t).map((([t,n])=>(0,e.createElement)("optgroup",{key:t,label:t},(0,e.createElement)(k,{options:n})))));var T=({value:n,onChange:o,...r})=>{var l;const{multiple:a=!1}=r,s=null!==(l=r.options)&&void 0!==l?l:{};return(0,e.createElement)(t.SelectControl,{...r,multiple:a,value:a&&"string"==typeof n?n.split(","):n,onChange:o,__nextHasNoMarginBottom:!0},(e=>Object.entries(e).reduce(((e,[t,n])=>!0===e?e:"string"==typeof t&&!(parseInt(t)>=0)&&"object"==typeof n),!1))(s)?(0,e.createElement)(j,{optGroups:s}):(0,e.createElement)(k,{options:s}))},N=({value:n,onChange:o,rows:r=5,...l})=>(0,e.createElement)(t.TextareaControl,{...l,value:null!=n?n:"",onChange:o,rows:r,__nextHasNoMarginBottom:!0}),O=({type:n,value:o,onChange:r,...l})=>(0,e.createElement)(t.TextControl,{...l,type:"hidden"!==n?n:void 0,value:null!=o?o:"",onChange:r,__nextHasNoMarginBottom:!0}),M=({label:t,value:n,onChange:o,multiple:r=!1,placeholder:l=(0,c.__)("Search","content-control"),options:a={}})=>{const[s,i]=(0,y.useState)(""),u=n?"number"==typeof n||"string"==typeof n?[n]:n:[],p=Object.keys(a).filter((e=>!s||e.toLowerCase().includes(s.toLowerCase()))),d=e=>{var t;const n="object"==typeof e?e.value:e;return(null!==(t=a[n])&&void 0!==t?t:null)||n};return(0,e.createElement)("div",{className:"cc-token-select-field"},(0,e.createElement)(E.SmartTokenControl,{label:t,hideLabelFromVision:!0,multiple:r,placeholder:l,value:u.map((e=>e.toString())),onInputChange:i,onChange:e=>o(e),renderToken:d,renderSuggestion:d,suggestions:p}))},V=window.wp.hooks;const I=(0,y.createContext)({context:"",fields:[],values:{},setValues:()=>{}}),P=({context:t,fields:n,values:o,setValues:r,children:l})=>(0,e.createElement)(I.Provider,{value:{context:t,fields:n,values:o,setValues:r}},l);var R=()=>{const{context:e,fields:t=[],values:n,setValues:o}=(0,y.useContext)(I),r=t=>{const o=(0,V.applyFilters)(`${e}.fieldIsVisible`,void 0,t,n);return void 0===o||o};return{context:e,fields:t,values:n,setValues:o,getFields:(n={visible:!0})=>{const o=(null!=t?t:[]).filter((e=>!(n?.tab&&e.tab!==n.tab||n?.section&&e.section!==n.section||n?.panel&&e.panel!==n.panel||n?.visible&&!r(e.id)))).sort(((e,t)=>e.priority-t.priority)).map((t=>{const n=(0,V.applyFilters)(`${e}.renderField`,t.component,t.id,t);return{...t,component:n}}));return(0,V.applyFilters)(`${e}.getFields`,o,n)},updateField:(e,t)=>{o({...n,[e]:t})},fieldIsVisible:r}}}(),(window.contentControl=window.contentControl||{}).fields=o}();