diff --git a/build/Automation_Rules/assets/js/automation-rule-editor.asset.php b/build/Automation_Rules/assets/js/automation-rule-editor.asset.php index e70ae70b..1f0f7b15 100644 --- a/build/Automation_Rules/assets/js/automation-rule-editor.asset.php +++ b/build/Automation_Rules/assets/js/automation-rule-editor.asset.php @@ -1 +1 @@ - array('react', 'react-dom', 'wp-api-fetch', 'wp-components', 'wp-compose', 'wp-date', 'wp-dom-ready', 'wp-element', 'wp-i18n', 'wp-keycodes', 'wp-primitives', 'wp-url'), 'version' => '67e4a075b6b19c29f580'); + array('react', 'react-dom', 'wp-api-fetch', 'wp-components', 'wp-compose', 'wp-date', 'wp-dom-ready', 'wp-element', 'wp-i18n', 'wp-keycodes', 'wp-primitives', 'wp-url'), 'version' => '4daa673e8995726ede04'); diff --git a/build/Automation_Rules/assets/js/automation-rule-editor.js b/build/Automation_Rules/assets/js/automation-rule-editor.js index e905250d..97973b08 100644 --- a/build/Automation_Rules/assets/js/automation-rule-editor.js +++ b/build/Automation_Rules/assets/js/automation-rule-editor.js @@ -36,4 +36,4 @@ `,Ct=bt.div` direction: ltr; display: flex; -`,St=({value:e,onChange:t,...n})=>{const{baseControlProps:a,controlProps:o}=(0,i.useBaseControlProps)(n),l=e?e.split(":"):["07","00"],[c,u]=(0,r.useState)(l[0]),[p,m]=(0,r.useState)(l[1]),d=(e,t="00")=>(e=Number(e),isNaN(e)?t:e<10?`0${e}`:e),f=`${d(c)}:${d(p)}`;return(0,r.useEffect)((()=>{e!==f&&t(f)}),[f]),(0,r.createElement)(i.BaseControl,{...a},(0,r.createElement)(i.__experimentalHStack,null,(0,r.createElement)(Ct,null,(0,r.createElement)(wt,{value:d(c),onChange:u,min:0,max:23,step:1,...o,label:(0,s.__)("Hours"),spinControls:"none",isDragEnabled:!1,isShiftStepEnabled:!1,isPressEnterToChange:!0,hideLabelFromVision:!0,__next40pxDefaultSize:!0,__unstableStateReducer:yt(2)}),(0,r.createElement)(Et,{"aria-hidden":"true"},":"),(0,r.createElement)(kt,{value:d(p),onChange:m,min:0,max:59,step:1,label:(0,s.__)("Minutes"),spinControls:"none",isDragEnabled:!1,isShiftStepEnabled:!1,isPressEnterToChange:!0,hideLabelFromVision:!0,__next40pxDefaultSize:!0,__unstableStateReducer:yt(2)})),(0,r.createElement)(xt,null)))},At=[{label:(0,s.__)("Only run if","newsletter-optin-box"),value:"allow"},{label:(0,s.__)("Do not run if","newsletter-optin-box"),value:"prevent"}],Tt=[{label:(0,s.__)("all","newsletter-optin-box"),value:"all"},{label:(0,s.__)("any","newsletter-optin-box"),value:"any"}];function Pt(e,t){return(0,r.useMemo)((()=>[{label:t,value:"",disabled:!0},...e]),[e,t])}function Mt({type:e,action:t,ruleCount:n,setConditionalLogicAttribute:a}){const o=n>1;return(0,r.createElement)(i.__experimentalHStack,{justify:"flex-start",wrap:!0},(0,r.createElement)(i.SelectControl,{label:(0,s.__)("If","newsletter-optin-box"),hideLabelFromVision:!0,value:t||"allow",options:At,onChange:e=>a("action",e),size:"default",__nextHasNoMarginBottom:!0}),o&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.SelectControl,{label:(0,s.__)("all","newsletter-optin-box"),hideLabelFromVision:!0,value:e||"all",options:Tt,onChange:e=>a("type",e),size:"default",__nextHasNoMarginBottom:!0}),(0,r.createElement)(i.__experimentalText,null,(0,s.__)("of the following rules are true:","newsletter-optin-box"))))}function Ot({rule:e,comparisons:t,availableSmartTags:n,mergeTagsArray:a,index:o,updateRule:l,removeRule:c}){var u;const p=e=>l(o,{value:e}),m=null!==(u=e.full)&&void 0!==u?u:e.type?`[[${e.type}]]`:"",d=m.indexOf("]]"),f=m.indexOf("[[",d),g=-1===d||-1!==f&&f>d,_=e=>{const t={full:e};if(e){const n=e.match(/\[\[([^\s\]]+)/)?.[1]||"";n&&(t.type=n.replace("[[","").replace("]]",""))}l(o,t)},h=Ut({availableSmartTags:a,onMergeTagClick:e=>{_(m?`${m} ${e}`.trim():e)}}),b=Ut({availableSmartTags:a,onMergeTagClick:t=>{p(e.value?`${e.value} ${t}`.trim():t)}}),y=(0,r.useMemo)((()=>{const t=e.type;if(void 0!==n[t])return n[t];const r=t.replace("_",".",1);if(void 0!==n[r])return n[r];for(const[e,r]of Object.entries(n)){if(-1!==e.indexOf(".")&&e.split(".").slice(1).join(".")===t)return r;const n=e=>Array.isArray(e)?e:e.split(/[\s,]+/);if(r.deprecated&&n(r.deprecated).includes(t))return r}return null}),[e.type,n]),v=Pt((x=y?.options,(0,r.useMemo)((()=>x?Array.isArray(x)?x.map(((e,t)=>({label:e,value:t}))):Object.keys(x).map((e=>({label:x[e],value:e}))):[]),[x])),(0,s.__)("Select a value","newsletter-optin-box"));var x;const E=!g&&v.length>1,w=g?"string":y?.conditional_logic||"string",k=Pt((0,r.useMemo)((()=>{const e=[];return Object.keys(t).forEach((n=>{let r=t[n].type;if(E){if("string"===w&&"is"!=n&&"is_not"!=n)return;if("is_empty"===n||"is_not_empty"===n||"is_between"===n)return}"any"!==r&&r!=w||e.push({label:t[n].name,value:n})})),e}),[w,t]),(0,s.__)("Select a comparison","newsletter-optin-box")),C="is_empty"===e.condition||"is_not_empty"===e.condition;return(0,r.createElement)(i.__experimentalHStack,{justify:"flex-start",wrap:!0,expanded:!0},(0,r.createElement)("div",{style:{minWidth:320}},(0,r.createElement)(i.__experimentalInputControl,{type:"text",label:(0,s.__)("Smart Tag","newsletter-optin-box"),hideLabelFromVision:!0,placeholder:(0,s.__)("Enter a smart tag","newsletter-optin-box"),value:m,onChange:_,autoComplete:"off",suffix:h,__next40pxDefaultSize:!0})),(0,r.createElement)("div",{style:{width:150}},(0,r.createElement)(i.SelectControl,{label:(0,s.__)("Comparison","newsletter-optin-box"),hideLabelFromVision:!0,value:e.condition?e.condition:"is",options:k,onChange:e=>l(o,{condition:e}),size:"default",__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0})),!C&&(0,r.createElement)("div",{style:{minWidth:320}},E&&(0,r.createElement)(i.SelectControl,{label:(0,s.__)("Value","newsletter-optin-box"),hideLabelFromVision:!0,value:e.value?e.value:"",options:v,onChange:p,size:"default",__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0}),!E&&(0,r.createElement)(i.__experimentalInputControl,{type:"number"===w?"number":"text",label:(0,s.__)("Value","newsletter-optin-box"),placeholder:(0,s.__)("Enter a value","newsletter-optin-box"),hideLabelFromVision:!0,value:e.value?e.value:"",onChange:p,suffix:b,__next40pxDefaultSize:!0})),(0,r.createElement)(i.Button,{onClick:()=>c(o),icon:"trash",variant:"tertiary",isDestructive:!0}))}function Nt({rules:e,comparisons:t,availableSmartTags:n,setConditionalLogicAttribute:a,disableTags:o,disableProps:l,closeModal:c}){const u=(0,r.useMemo)((()=>Array.isArray(e)?e.filter((e=>e.type&&""!==e.type)):[]),[e]),p=(0,r.useMemo)((()=>{const e={};return n.forEach((t=>{t.conditional_logic&&(e[t.smart_tag]={...t,key:t.smart_tag,type:t.conditional_logic,isPremium:Array.isArray(o)&&o.some((e=>t.smart_tag.startsWith(e)))||Array.isArray(l)&&l.some((e=>!!t[e]))})})),e}),[n]),m=(0,r.useCallback)((e=>{const t=[...u];t.splice(e,1),a("rules",t)}),[u,a]),d=(0,r.useCallback)(((e,t)=>{const n=[...u];n[e]={...n[e],...t},a("rules",n)}),[u,a]),f=(0,r.useMemo)((()=>Object.values(p)),[p]),g=(0,r.useCallback)(((e,t)=>{const n=p[e],r=n?.options||[],o=n?.placeholder||"";let l=Array.isArray(r)&&r.length?Object.keys(r)[0]:o;n?.default&&(l=n.default);const i=[...u];i.push({type:e,condition:"is",full:t,value:l}),a("rules",i)}),[u]),_=0===u.length?(0,s.__)("Add a conditional logic rule","newsletter-optin-box"):(0,s.__)("Add another rule","newsletter-optin-box"),h=Ut({availableSmartTags:f,onMergeTagClick:g,raw:!0,icon:"plus",label:_,text:_,toggleProps:{variant:"primary"}});return(0,r.createElement)(r.Fragment,null,u.map(((e,n)=>(0,r.createElement)(Ot,{key:n,rule:e,index:n,updateRule:d,removeRule:m,comparisons:t,availableSmartTags:p,mergeTagsArray:f}))),(0,r.createElement)(i.__experimentalHStack,{justify:"flex-start",wrap:!0},h,c&&(0,r.createElement)(i.Button,{onClick:c,variant:"secondary"},(0,s.__)("Return to editor","newsletter-optin-box"))))}function Bt({onChange:e,value:t,comparisons:n,toggleText:a,availableSmartTags:o,className:l,inModal:c=!1,...u}){const[p,m]=(0,r.useState)(!1),d=(0,r.useMemo)((()=>"object"!=typeof t?{enabled:!1,action:"allow",rules:[],type:"all"}:t),[t]),f=(0,r.useCallback)(((t,n)=>{e({...d,[t]:n})}),[e,d]),g=(0,r.createElement)(i.__experimentalVStack,{spacing:5},(0,r.createElement)(Mt,{ruleCount:Array.isArray(d.rules)?d.rules.length:0,type:d.type,action:d.action,setConditionalLogicAttribute:f}),(0,r.createElement)(Nt,{rules:d.rules,comparisons:n,availableSmartTags:o,setConditionalLogicAttribute:f,closeModal:c&&(()=>m(!1)),...u}));return(0,r.createElement)(i.__experimentalVStack,{spacing:5,className:l},(0,r.createElement)(i.ToggleControl,{checked:!!d.enabled,onChange:e=>f("enabled",e),label:a||(0,s.__)("Optionally enable/disable this trigger depending on specific conditions.","newsletter-optin-box"),__nextHasNoMarginBottom:!0}),d.enabled&&(0,r.createElement)(r.Fragment,null,c?(0,r.createElement)(r.Fragment,null,p&&(0,r.createElement)(i.Modal,{title:(0,s.__)("Conditional Logic","newsletter-optin-box"),onRequestClose:()=>m(!1),isFullScreen:!0},g),(0,r.createElement)(i.Button,{variant:"secondary",className:"noptin-block-button",onClick:()=>m(!0)},(0,s.__)("Edit Conditional Logic","newsletter-optin-box"))):(0,r.createElement)(r.Fragment,null,g)))}const Rt={"==":(e,t)=>e==t,"===":(e,t)=>e===t,"!=":(e,t)=>e!=t,"!==":(e,t)=>e!==t,">":(e,t)=>e>t,">=":(e,t)=>e>=t,"<":(e,t)=>ee<=t,includes:(e,t)=>e.includes(t),"!includes":(e,t)=>!e.includes(t),"^includes":(e,t)=>t.includes(e),"^!includes":(e,t)=>!t.includes(e),empty:(e,t)=>!t,"!empty":(e,t)=>t},$t=(e,t,n)=>!!Rt[t]&&Rt[t](e,n),zt=["number","search","email","password","tel","url","date"];function It({setting:e,availableSmartTags:t,isPressEnterToChange:n,...a}){void 0===n&&(n=!0);const o=Ut({availableSmartTags:t,onMergeTagClick:(0,r.useCallback)((e=>{a.onChange&&a.onChange(a.value?`${a.value} ${e}`.trim():e)}),[a.value,a.onChange])});return"string"==typeof a.suffix||a.suffix instanceof String?a.suffix=(0,r.createElement)(i.__experimentalInputControlSuffixWrapper,null,a.suffix):e.disabled||!o||a.suffix||(a.suffix=o),"datetime-local"===e.type&&(a.suffix=(0,r.createElement)(i.__experimentalInputControlSuffixWrapper,null,(0,r.createElement)(i.Dropdown,{popoverProps:{placement:"bottom-start"},renderToggle:({isOpen:e,onToggle:t})=>(0,r.createElement)(i.Button,{onClick:t,"aria-expanded":e,icon:H}),renderContent:()=>(0,r.createElement)(i.DateTimePicker,{currentDate:a.value,onChange:e=>{e&&(e=(0,W.format)("c",e)),a.onChange(e||"")}})}))),e.disabled&&(a.readOnly=!0,a.onFocus=e=>e.target.select(),e.value&&(a.value=e.value)),("string"==typeof a.prefix||a.prefix instanceof String)&&(a.prefix=(0,r.createElement)(i.__experimentalInputControlPrefixWrapper,null,a.prefix)),(0,r.createElement)(i.__experimentalInputControl,{...a,type:zt.includes(e.type)?e.type:"text",placeholder:e.placeholder?e.placeholder:"",isPressEnterToChange:n,__next40pxDefaultSize:!0})}function jt({value:e,onChange:t,...n}){const{baseControlProps:a,controlProps:o}=(0,i.useBaseControlProps)({...n});return(0,r.createElement)(i.BaseControl,{...a},(0,r.createElement)(i.Dropdown,{popoverProps:{placement:"bottom-start"},renderToggle:({isOpen:t,onToggle:n})=>(0,r.createElement)(i.Button,{onClick:n,"aria-expanded":t},(0,r.createElement)(i.ColorIndicator,{colorValue:e})),renderContent:()=>(0,r.createElement)(i.ColorPicker,{color:e,onChange:t}),...o}))}function Dt({availableSmartTags:e,autoGrow:t=!1,label:n,id:a,setting:o,...l}){const s=Ut({availableSmartTags:e,onMergeTagClick:(0,r.useCallback)((e=>{l.onChange&&l.onChange(l.value?`${l.value} ${e}`.trim():e)}),[l.value,l.onChange]),toggleProps:{size:"small"}}),c=!o.disabled&&s?(0,r.createElement)(i.__experimentalHStack,null,(0,r.createElement)("span",null,n),s):n,u=a||(0,U.useInstanceId)(Dt,"noptin-textarea");return(0,r.useEffect)((()=>{if(t){const e=document.getElementById(u);e&&(e.style.height="auto",e.style.height=`${e.scrollHeight}px`)}}),[l.value,t,u]),o.disabled&&(l.readOnly=!0,l.onFocus=e=>e.target.select(),o.value&&(l.value=o.value)),(0,r.createElement)(i.TextareaControl,{...l,id:u,label:c,__nextHasNoMarginBottom:!0})}function Ft({options:e,...t}){return(0,r.createElement)(i.__experimentalToggleGroupControl,{__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0,isBlock:!0,...t},e.map(((e,t)=>(0,r.createElement)(i.__experimentalToggleGroupControlOption,{key:t,...e}))))}function Lt({options:e,...t}){const[n,a]=(0,r.useState)(e);return(0,r.createElement)(i.ComboboxControl,{...t,options:n,onFilterValueChange:t=>{a(t?e.filter((e=>!e.disabled&&""!==e.value&&(e.search?e.search.toLowerCase():e.label.toLowerCase()).includes(t.toLowerCase()))):e)},__experimentalRenderItem:({item:e,...t})=>e.render?"string"==typeof e.render?(0,r.createElement)("div",{...t,dangerouslySetInnerHTML:{__html:e.render}}):e.render:e.label,autocomplete:"off"})}function Ht({options:e,value:t,onChange:n,...a}){const o=Array.isArray(t)?t:[],l=(0,r.useMemo)((()=>e.map((e=>e.label))),[e]),s=(0,r.useCallback)((e=>l.includes(e)),[l]),c=(0,r.useMemo)((()=>o.map((t=>{const n=e.find((e=>e.value===t));return n?n.label:t}))),[t,e]),u=(0,r.useCallback)((t=>{const r=new Set;for(const n of t){const t=e.find((e=>e.label===n));t&&r.add(t.value)}n(Array.from(r))}),[n,e]),p=(0,r.useCallback)((t=>{const n=e.find((e=>e.label===t.item));return n&&n.render?(0,r.createElement)(L.RawHTML,null,n.render):(0,r.createElement)(r.Fragment,null,t.item)}),[e]);return(0,r.createElement)(i.FormTokenField,{value:c,suggestions:l,onChange:u,__experimentalShowHowTo:!1,__experimentalExpandOnFocus:!0,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0,__experimentalValidateInput:s,__experimentalRenderItem:p,...a})}const Vt=[{id:"key",label:(0,s.__)("Key","noptin-addons-pack"),type:"text"},{id:"value",label:(0,s.__)("Value","noptin-addons-pack"),type:"text"}];function Ut({availableSmartTags:e=[],onMergeTagClick:t=((e,t)=>{}),raw:n=!1,icon:a="shortcode",label:o=(0,s.__)("Insert merge tag","newsletter-optin-box"),...l}){const c=function(e){return(0,r.useMemo)((()=>{if(!Array.isArray(e))return{};const t={};return e.forEach((e=>{const n=e.group?e.group:(0,s.__)("General","newsletter-optin-box");Array.isArray(t[n])||(t[n]=[]),t[n].push(e)})),t}),[e])}(e),u=Object.keys(c).length;let p=null;return u>0&&(p=(0,r.createElement)(i.DropdownMenu,{icon:a,label:o,...l},(({onClose:e})=>(0,r.createElement)(r.Fragment,null,Object.keys(c).map(((a,o)=>(0,r.createElement)(i.MenuGroup,{label:u>1?a:void 0,key:o},c[a].map((a=>(0,r.createElement)(i.MenuItem,{icon:a.isPremium?w:a.icon||V,iconPosition:"left",disabled:a.isPremium,onClick:()=>{if(!a.isPremium){if(t){const e=n?a.smart_tag:`[[${Gt(a)}]]`;t(e,`[[${Gt(a)}]]`)}e()}},key:a.smart_tag},(0,r.createElement)(L.RawHTML,null,a.isPremium?`${a.label} - Premium`:a.label))))))))))),p}function Gt(e){return e.example?e.example:e.default?`${e.smart_tag} default="${e.default}"`:`${e.smart_tag}`}function Wt({availableSmartTags:e,value:t,onChange:n,button:a,fields:o,openModal:l,prepend:c,disable:u,disabled:p,onDisable:m,cardProps:d,repeaterKey:f,id:g,defaultItem:_,...h}){const[b,y]=(0,r.useState)(!1),v=Array.isArray(t)?t:[],x=g||(0,U.useInstanceId)(Wt,"noptin-repeater"),{baseControlProps:E,controlProps:w}=(0,i.useBaseControlProps)({...h,id:x}),k=_||{};if(f?.newOnly&&(k.new=!0),!o)return console.warn("No fields provided to repeater control."),null;Object.keys(o).forEach((e=>{void 0!==o[e].default&&(k[e]=o[e].default)}));const C=!!l,S=(e,t)=>e.key?e.key:f?.to&&Jt(e,f.to)?Jt(e,f.to):t,A=(0,r.createElement)(i.__experimentalVStack,null,c,v.map(((t,a)=>(0,r.createElement)(i.Card,{size:"small",className:"noptin-no-shadow",id:`${x}__item-${S(t,a)}`,"data-index":a,borderBottom:!0,borderLeft:!0,borderRight:!0,borderTop:!0,...d||{},key:S(t,a)},(0,r.createElement)(qt,{id:`${x}__item-${S(t,a)}`,fields:o,value:t,availableSmartTags:e,onChange:e=>{let t={...e};if(f?.to&&f.from&&Jt(t,f.from)&&(!f.newOnly||t.new)){const e=Jt(t,f.from).toString().trim().toLowerCase().replace(/[^a-z0-9]+/g,"_");t=Zt(t,f.to,e.substring(0,f.maxLength||64)),v.find(((e,n)=>a!==n&&Jt(e,f.to)===Jt(t,f.to)))&&(t=Zt(t,f.to,`${Jt(t,f.to)}_${a}`))}const r=[...v];r[a]=t,n(r)},onDelete:()=>{const e=[...v];e.splice(a,1),n(e)},onMoveUp:a>0?()=>{const e=[...v],t=e[a];e.splice(a,1),e.splice(a-1,0,t),n(e)}:null,onMoveDown:a{const e=[...v],t=e[a];e.splice(a,1),e.splice(a+1,0,t),n(e)}:null,repeaterKey:f})))),(0,r.createElement)(i.__experimentalHStack,null,(0,r.createElement)(i.Button,{onClick:()=>{const e=[...v],t=Date.now().toString(36),r=Math.random().toString(36).substring(2,8);e.push({key:`${t}_${r}`,...k}),n(e)},variant:"primary"},a||(0,s.__)("Add Item","newsletter-optin-box")),C&&(0,r.createElement)(i.Button,{onClick:()=>y(!1),variant:"secondary"},(0,s.__)("Go Back","newsletter-optin-box")))),T=!u||!p;return(0,r.createElement)(i.BaseControl,{...E},(0,r.createElement)("div",{...w},C&&(0,r.createElement)(i.__experimentalVStack,null,u&&(0,r.createElement)(i.ToggleControl,{label:u,checked:p,onChange:e=>{m&&m(e)}}),T&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.Button,{onClick:()=>y(!0),variant:"secondary"},l||(0,s.__)("Set Items","newsletter-optin-box")),b&&(0,r.createElement)(i.Modal,{title:h.label||l||(0,s.__)("Set Items","newsletter-optin-box"),onRequestClose:()=>y(!1),size:"medium"},A))),!C&&A))}function qt({fields:e,availableSmartTags:t,value:n,onChange:a,repeaterKey:o,onDelete:l,onMoveUp:c,onMoveDown:u,id:p}){const[m,d]=(0,r.useState)(!o?.from),f=(0,r.useCallback)((()=>{d(!m)}),[m]),g=!m&&o?.from;let _=null;if(o){const e=!1!==o.display&&o.to&&n?.[o.to]?(0,r.createElement)("code",null,(0,s.sprintf)(o.display||"%s",n?.[o.to])):null,t={paddingLeft:16,paddingRight:16,height:48},a=Jt(n,o.from)||Jt(n,o.fallback);_=(0,r.createElement)(i.CardHeader,{style:{padding:0}},(0,r.createElement)(i.Flex,{as:i.Button,onClick:f,style:t,"aria-controls":`${p}__body`,"aria-expanded":!g,type:"button"},(0,r.createElement)(i.__experimentalHStack,{as:i.FlexBlock},(0,r.createElement)(i.__experimentalText,{weight:600},a||(0,s.__)("(new)","newsletter-optin-box"))),(0,r.createElement)(i.FlexItem,null,(0,r.createElement)(i.__experimentalHStack,null,e,(0,r.createElement)(i.Icon,{icon:m?"arrow-up-alt2":"arrow-down-alt2"})))))}return(0,r.createElement)(r.Fragment,null,_,!g&&(0,r.createElement)(i.CardBody,{id:`${p}__body`,hidden:g},(0,r.createElement)(i.__experimentalVStack,null,Object.keys(e).map((o=>(0,r.createElement)(en,{key:o,settingKey:o,availableSmartTags:t,setting:e[o],saved:n,setAttributes:e=>{a({...n,...e})}}))),(0,r.createElement)(i.__experimentalHStack,{className:"noptin-repeater-item__actions",justify:"flex-start"},!n?.predefined&&(0,r.createElement)(i.Button,{variant:"link",onClick:l,text:(0,s.__)("Remove Item","newsletter-optin-box"),isDestructive:!0}),c&&(0,r.createElement)(i.Button,{onClick:c,icon:"arrow-up-alt",text:(0,s.__)("Move Up","newsletter-optin-box"),size:"small",iconSize:16}),u&&(0,r.createElement)(i.Button,{onClick:u,icon:"arrow-down-alt",text:(0,s.__)("Move Down","newsletter-optin-box"),size:"small",iconSize:16})))))}function Kt({setting:e,availableSmartTags:t,value:n,onChange:a,...o}){const{baseControlProps:l,controlProps:c}=(0,i.useBaseControlProps)(o);Array.isArray(n)||(n=[]);const u=(0,r.useCallback)((({item:e,index:o})=>(0,r.createElement)(i.Flex,{className:"noptin-repeater-item",wrap:!0},Vt.map(((l,i)=>(0,r.createElement)(Qt,{key:i,availableSmartTags:t,field:l,value:void 0===e[l.id]?"":e[l.id],onChange:e=>{const t=[...n];t[o][l.id]=e,a(t)}}))),(0,r.createElement)(i.FlexItem,null,(0,r.createElement)(i.Button,{icon:"trash",variant:"tertiary",className:"noptin-component__field",label:(0,s.__)("Delete","noptin-addons-pack"),showTooltip:!0,onClick:()=>{const e=[...n];e.splice(o,1),a(e)},isDestructive:!0})))),[n,a]);return(0,r.createElement)(i.BaseControl,{...l},(0,r.createElement)("div",{...c},n.map(((e,t)=>(0,r.createElement)(u,{key:t,item:e,index:t}))),(0,r.createElement)(i.Button,{onClick:()=>{const e=[...n];e.push({}),a(e)},variant:"secondary"},e.add_field?e.add_field:(0,s.__)("Add","newsletter-optin-box"))))}function Qt({field:e,availableSmartTags:t,value:n,onChange:a}){const o=Ut({availableSmartTags:t,onMergeTagClick:(0,r.useCallback)((e=>{a&&a(n?`${n} ${e}`.trim():e)}),[n,a])});return(0,r.createElement)(i.FlexBlock,null,(0,r.createElement)(i.__experimentalInputControl,{label:e.label,type:e.type,value:n,placeholder:(0,s.sprintf)((0,s.__)("Enter %s","noptin-addons-pack"),e.label),className:"noptin-component__field noptin-condition-field",suffix:o,onChange:a,isPressEnterToChange:!0,__next40pxDefaultSize:!0}))}function Xt({setting:e,value:t,options:n,onChange:a,...o}){const{baseControlProps:l,controlProps:s}=(0,i.useBaseControlProps)(o);return Array.isArray(t)||(t=[]),(0,r.createElement)(i.BaseControl,{...l},(0,r.createElement)("div",{...s},n.map(((e,n)=>(0,r.createElement)(i.CheckboxControl,{key:n,label:e.label,checked:t.includes(e.value),onChange:n=>{a(n?[...t,e.value]:t.filter((t=>t!==e.value)))}})))))}function Yt({value:e,onChange:t,id:n,...a}){const{baseControlProps:o,controlProps:l}=(0,i.useBaseControlProps)({...a,id:n,__nextHasNoMarginBottom:!0}),{wp:s,tinymce:c}=window,u=(0,r.useRef)(!1),p=(0,r.useRef)(null);return(0,r.useEffect)((()=>{if(!u.current)return;const t=t=>{t?.target?.classList?.contains("wp-switch-editor")&&setTimeout((()=>{const t=c?.get(n);t&&(t.setContent(e||""),t._lastChange=e)}),50)};return p.current?.addEventListener("click",t),()=>{p.current?.removeEventListener("click",t)}}),[p.current,e]),(0,r.useEffect)((()=>{if(!u.current)return;const e=c?.get(n);e&&e._lastChange}),[e]),(0,r.useEffect)((()=>{function r(){s.oldEditor.initialize(n,{tinymce:!!window.tinymce&&{content_css:!1,theme_advanced_buttons:"bold,italic,underline,|,bullist,numlist,blockquote,|,link,unlink,|,spellchecker,fullscreen,|,formatselect,styleselect",drag_drop_upload:!0,toolbar1:"formatselect,bold,italic,bullist,numlist,blockquote,alignleft,aligncenter,alignright,link,spellchecker,wp_adv,dfw",toolbar2:"strikethrough,hr,forecolor,pastetext,removeformat,charmap,outdent,indent,undo,redo,wp_help",min_height:400,wpautop:!1,setup(n){e&&n.on("loadContent",(()=>n.setContent(e))),n.on("blur",(()=>(t(n.getContent()),!1)));const r=(0,U.debounce)((()=>{const e=n.getContent();e!==n._lastChange&&(n._lastChange=e,t(e))}),250);n.on("Paste Change input Undo Redo",r),n.on("remove",r.cancel),n.on("keydown",(e=>{G.isKeyboardEvent.primary(e,"z")&&e.stopPropagation(),G.isKeyboardEvent.primary(e,"s")&&r.flush();const{altKey:t}=e;t&&e.keyCode===G.F10&&e.stopPropagation()})),u.current=!0},...window?.tinyMCEPreInit?.mceInit[n]||{}},mediaButtons:!0,quicktags:{buttons:"strong,em,link,block,del,ins,img,ul,ol,li,code,close"}})}function a(){"complete"===document.readyState&&r()}return c?.execCommand("mceRemoveEditor",!0,n),"complete"===document.readyState?r():document.addEventListener("readystatechange",a),()=>{document.removeEventListener("readystatechange",a),s.oldEditor.remove(n)}}),[]),(0,r.createElement)(i.BaseControl,{...o},(0,r.createElement)("div",{ref:p},(0,r.createElement)("textarea",{...l,className:"wp-editor-area",style:{width:"100%"},value:e,onChange:e=>t(e.target.value),rows:10})))}const Jt=(e,t)=>{if(!t||0===t.length)return;if("string"==typeof t&&(t=t.split(".")),0===t.length||!e||"object"!=typeof e)return;const[n,...r]=t;return 0===r.length?e[n]:Jt(e[n],r)},Zt=(e,t,n)=>{if(!t||0===t.length)return e;"string"==typeof t&&(t=t.split("."));const[r,...a]=t;return 0===a.length?{...e,[r]:n}:{...e,[r]:Zt(e[r]||{},a,n)}};function en({settingKey:e,setting:t,availableSmartTags:n,prop:a,saved:o,setAttributes:l}){const c=(a?`${a}.${e}`:e).split("."),u=t.sanitize?t.sanitize:e=>e,p=(0,r.useCallback)((e=>{if(Jt(o,c)===e)return;const[t,...n]=c;return 0===n.length?l(u({[t]:e})):l(u({[t]:Zt(o[t]||{},n,e)}))}),[o,c,l,u]);if(t.if||t.restrict){const e=t.restrict?t.restrict.split("."):t.if.split(".");if(!Jt(o,e))return null}if(Array.isArray(t.conditions)&&!t.conditions.every((e=>{const t=e.key.split("."),n=e.operator?e.operator:"==";return $t(e.value,n,Jt(o,t))})))return null;if(t.condition&&!t.condition(o))return null;let m=Jt(o,c);(void 0===m||t.disabled)&&(m=t.default);const d=void 0!==m&&""!==m&&null!==m;let f=[];t.options&&(f=Array.isArray(t.options)?[...t.options]:Object.keys(t.options).map((e=>({label:t.options?.[e],value:e}))));const g=`noptin-component__field-${e}`,_="string"==typeof t.description?(0,r.createElement)("span",{dangerouslySetInnerHTML:{__html:t.description}}):t.description,h=t.customAttributes?t.customAttributes:{},b={label:t.label,value:d?m:"",onChange:p,className:g,help:_,...h};if(t.tooltip&&(b.label=(0,r.createElement)(i.__experimentalHStack,{justify:"flex-start"},(0,r.createElement)("span",null,t.label),(0,r.createElement)(i.Tooltip,{delay:0,placement:"top",text:t.tooltip},(0,r.createElement)("span",null,(0,r.createElement)(i.Icon,{icon:"info",style:{color:"#454545"}}))))),t.type&&!t.el&&(t.el=t.type,["toggle","switch","checkbox","checkbox_alt","text","number","email","tel","date","color","image"].includes(t.type)&&(t.el="input")),"button"===t.el)return(0,r.createElement)("div",null,(0,r.createElement)(i.Button,{...t.buttonProps||{}}));if("toggle_group"===t.el)return(0,r.createElement)(Ft,{...b,options:f});if("select"===t.el)return t.multiple?(0,r.createElement)(Ht,{...b,options:f}):(f.find((e=>""===e?.value))||f.unshift({label:t.placeholder?t.placeholder:(0,s.__)("Select an option","newsletter-optin-box"),value:"",disabled:!t.canSelectPlaceholder}),(0,r.createElement)(i.SelectControl,{...b,options:f,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}));if("combobox"===t.el)return f.unshift({label:t.placeholder?t.placeholder:(0,s.__)("Select an option","newsletter-optin-box"),value:"",disabled:!t.canSelectPlaceholder}),(0,r.createElement)(Lt,{...b,options:f,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0});if("form_token"===t.el||"token"===t.el)return(0,r.createElement)(i.FormTokenField,{...b,value:Array.isArray(b.value)?b.value:[],suggestions:Array.isArray(t.suggestions)?t.suggestions:[],__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0,__experimentalShowHowTo:!1,__experimentalExpandOnFocus:!0,tokenizeOnBlur:!0});if("multi_checkbox"===t.el||"multi_checkbox_alt"===t.el)return(0,r.createElement)(Xt,{...b,options:f});if("conditional_logic"===t.el)return(0,r.createElement)(Bt,{...b,availableSmartTags:n,comparisons:t.comparisons,toggleText:t.toggle_text,inModal:t.in_modal});if("time"===t.el)return(0,r.createElement)(St,{...b});if("color"===t.el||"input"===t.el&&"color"===t.type)return(0,r.createElement)(jt,{...b,__nextHasNoMarginBottom:!0});if("unit"===t.el)return(0,r.createElement)(i.__experimentalUnitControl,{labelPosition:"edge",__unstableInputWidth:"80px",__next40pxDefaultSize:!0,isPressEnterToChange:!0,...b});if("input"===t.el){if(t.type&&["toggle","switch","checkbox","checkbox_alt"].includes(t.type))return(0,r.createElement)(i.ToggleControl,{...b,checked:!!d&&m});if("number"===t.type){const e=e=>{if(e)return"string"==typeof e||e instanceof String?(0,r.createElement)(i.__experimentalInputControlSuffixWrapper,null,e):e},n=e=>{if(e)return"string"==typeof e||e instanceof String?(0,r.createElement)(i.__experimentalInputControlPrefixWrapper,null,e):e};return Array.isArray(b.suffix)?b.suffix=e(1===m||"1"===m?b.suffix[0]:b.suffix[1]):b.suffix=e(b.suffix),Array.isArray(b.prefix)?b.prefix=n(1===m||"1"===m?b.prefix[0]:b.prefix[1]):b.prefix=n(b.prefix),(0,r.createElement)(i.__experimentalNumberControl,{...b,placeholder:t.placeholder?t.placeholder:"",__next40pxDefaultSize:!0})}return"image"===t.type&&(b.suffix=(0,r.createElement)(i.Button,{onClick:()=>{var e=window.wp.media({title:(0,s.__)("Upload Image","newsletter-optin-box"),multiple:!1,library:{type:"image"}}).open().on("select",(t=>{let n=e.state().get("selection").first();p(n.toJSON().sizes.full.url)}))},icon:"upload",label:(0,s.__)("Upload Image","newsletter-optin-box"),showTooltip:!0})),(0,r.createElement)(It,{...b,setting:t,availableSmartTags:"trigger_settings"===a?[]:n,isPressEnterToChange:!t.isInputToChange})}return"textarea"===t.el?(0,r.createElement)(Dt,{...b,setting:t,placeholder:t.placeholder?t.placeholder:"",availableSmartTags:"trigger_settings"===a?[]:n}):"tinymce"===t.el?(0,r.createElement)(Yt,{...b}):"paragraph"===t.el?(0,r.createElement)("div",{className:g},(0,r.createElement)(i.Tip,null,t.raw?(0,r.createElement)(L.RawHTML,null,t.content):t.content)):"hero"===t.el?(0,r.createElement)("div",{className:g},(0,r.createElement)("h3",null,t.content)):"key_value_repeater"===t.el||"webhook_key_value_repeater"===t.el?(0,r.createElement)(Kt,{...b,setting:t,availableSmartTags:"trigger_settings"===a?[]:n}):"repeater"===t.el?(0,r.createElement)(Wt,{...b,availableSmartTags:"trigger_settings"===a?[]:n}):(console.log(t),e)}const tn=(0,r.createContext)([]),nn=()=>(0,r.useContext)(tn),rn=({children:e})=>{const{automationRule:{trigger_settings:t,smartTags:n}}=h(),a=(0,r.useMemo)((()=>function(e,t){const n=[];return e?(Object.keys(e).forEach((r=>{const a=e[r];if(a.hidden)return;if(a.conditions&&!a.conditions.every((e=>{let n=!1;return n=Array.isArray(e.value)?e.value.some((n=>n==t[e.key])):e.value==t[e.key],n===("is"===e.operator)})))return;let o=r;a.label?o=a.label:a.description&&(o=a.description),n.push({...a,smart_tag:r,label:o,example:a.example?a.example:"",description:a.description?a.description:"",placeholder:a.placeholder?a.placeholder:"",conditional_logic:!!a.conditional_logic&&a.conditional_logic,options:a.options?a.options:[]})})),n):n}(n,t||{})),[n,t]);return(0,r.createElement)(tn.Provider,{value:a},e)};function an({sectionKey:e,label:t,prop:n,settings:a}){const o=nn(),l=Object.keys(a);if(!l.length)return null;const{automationRule:s,setAttributes:c}=h();return(0,r.createElement)(F,null,(0,r.createElement)(p,{title:t,className:`noptin-automation-rule-editor__section noptin-automation-rule-editor__section-${e}`},(0,r.createElement)(i.__experimentalVStack,{spacing:5,as:i.CardBody},l.map((e=>(0,r.createElement)(en,{key:e,settingKey:e,prop:n,availableSmartTags:o,saved:s,setAttributes:c,setting:a[e]}))))))}function on(){const{error:e,success:t,resetMessages:n,automationRule:{settings:a}}=h(),o=(0,r.createElement)(r.Fragment,null,e&&(0,r.createElement)(i.Notice,{status:"error",onDismiss:n},e),t&&(0,r.createElement)(i.Notice,{status:"success",onDismiss:n},t));if(!a)return o;const l=Object.keys(a);return l.length?(0,r.createElement)(i.__experimentalVStack,{className:"noptin-automation-rule-editor__sections"},o,(0,r.createElement)(F,null,l.map((e=>(0,r.createElement)(an,{key:e,sectionKey:e,...a[e]}))))):o}const ln=window.noptinEmailSettingsMisc||{};function sn(e,t){const n={};Array.isArray(e)||Object.entries(e).forEach((([e,r])=>{if("email"!==e){if(!r.category){if(!ln.isTest)return;r.category="Deprecated"}n[r.category]||(n[r.category]={}),n[r.category][e]={...r,selectText:"triggers"===t?(0,s.__)("Use trigger","newsletter-optin-box"):(0,s.__)("Set-up","newsletter-optin-box"),forcePremium:I(e,r.category)},r.alt_category&&(n[r.alt_category]||(n[r.alt_category]={}),n[r.alt_category][e]=n[r.category][e])}})),Array.isArray(ln.integrations)&&ln.integrations.forEach((r=>{r.plan&&"free"!==r.plan&&r[t]&&!Array.isArray(r[t])&&Object.entries(r[t]).forEach((([t,a])=>{a.forEach((({id:a,label:o,description:l,premium:i=!1})=>{if("premium"===r.plan||i)if(e[a]){const t=e[a].category;t&&n[t][a]&&(n[t][a].forcePremium=!0)}else n[t]||(n[t]={}),n[t][a]={name:a,label:o,description:l,category:t,image:r.icon_url,forcePremium:!0,is_installed:!1,installation:r.installation}}))}))}));const r={},a=(0,s.__)("General","newsletter-optin-box");return n.hasOwnProperty(a)&&(r[a]=n[a]),Object.keys(n).sort().forEach((e=>{e!==a&&(r[e]=n[e])})),r}ln.license;const cn={"noptin-trigger":{title:(0,s.__)("Select a trigger for your automation rule","newsletter-optin-box"),show:!0,arg:"noptin-trigger",cardGroups:sn(ln.data?.triggers||{},"triggers")},"noptin-action":{title:(0,s.__)("Select an action for your automation rule","newsletter-optin-box"),show:!0,arg:"noptin-action",cardGroups:sn(ln.data?.actions||{},"actions")}},un=(0,r.createContext)(void 0),pn=({children:e})=>{const[t,n]=(0,r.useState)(ln.data?.add_new||(0,k.addQueryArgs)(window.location.href,{noptin_edit_automation_rule:"0"})),a=(0,r.useMemo)((()=>{let e="";const r={};for(const[n,a]of Object.entries(cn)){const o=a.arg?(0,k.getQueryArg)(t,a.arg):"";if(!o){e=n;break}r[n]=o}return{currentTitle:cn[e]?.title||"",currentStep:e,isLastStep:e===Object.keys(cn).pop(),isFirstStep:e===Object.keys(cn)[0],hasSteps:Object.keys(cn).length>0,stepValues:r,steps:cn,campaign:"automation-rules",removeQueryArgs:(...e)=>{n((0,k.removeQueryArgs)(t,...e))},addQueryArg:(e,r)=>{n((0,k.addQueryArgs)(t,{[e]:r}))},withQueryArg:(e,n)=>(0,k.addQueryArgs)(t,{[e]:n}),url:t}}),[t,n]);return(0,r.createElement)(un.Provider,{value:a},e)},mn=({categories:e,selectedCategory:t,onClickCategory:n})=>{const a="noptin-campaign-explorer__sidebar";return(0,r.createElement)("div",{className:a},(0,r.createElement)("div",{className:`${a}__categories-list`},e.map((e=>(0,r.createElement)(i.Button,{key:e,label:e,className:`${a}__categories-list__item`,isPressed:t===e,onClick:()=>{n(e)}},e)))))},dn=({image:e,title:t})=>{if("string"==typeof e&&e.startsWith("http"))return(0,r.createElement)("img",{src:e,width:24,alt:t,style:{maxWidth:24}});if("string"==typeof e)return(0,r.createElement)(i.Icon,{size:24,icon:e,style:{color:"#424242"}});if(e&&"object"==typeof e){const t=e.fill||"#008000",n=e.path||"",a=e.viewBox||"0 0 24 24";return e.path?(0,r.createElement)(i.SVG,{viewBox:a,xmlns:"http://www.w3.org/2000/svg",style:{maxWidth:24}},(0,r.createElement)(i.Path,{fill:t,d:n})):(0,r.createElement)(i.Icon,{size:24,style:{color:t},icon:e.icon})}return(0,r.createElement)(i.Icon,{size:24,icon:"email",style:{color:"#424242"}})},fn=({learnMoreUrl:e,previewURL:t,action:n})=>{const[a,o]=(0,r.useState)(!1),[l,c]=(0,r.useState)(!0),u=()=>o(!1);return e?(0,r.createElement)(i.Button,{variant:"secondary",href:e,target:"_blank"},(0,r.createElement)("span",{className:"noptin-selectable-card-action__label"},(0,s.__)("Learn More"))," ",(0,r.createElement)(i.Icon,{size:16,icon:"arrow-right-alt"})):t?(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.Button,{variant:"secondary",onClick:()=>o(!0)},(0,r.createElement)("span",{className:"noptin-selectable-card-action__label"},(0,s.__)("Preview"))," ",(0,r.createElement)(i.Icon,{size:16,icon:"visibility"})),a&&(0,r.createElement)(i.Modal,{title:(0,s.__)("Preview"),onRequestClose:u,className:"noptin-preview-modal",headerActions:(0,r.createElement)(i.__experimentalHStack,{justify:"flex-end",wrap:!0},n,(0,r.createElement)(i.Button,{variant:n?"secondary":"primary",onClick:u},(0,s.__)("Back to templates"))),isDismissible:!1,isFullScreen:!0},l&&(0,r.createElement)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%"}},(0,r.createElement)(i.Spinner,null)),(0,r.createElement)("iframe",{src:t,style:{width:"100%",height:"100%",border:"none",display:l?"none":"block"},onLoad:()=>c(!1)}))):null},gn=({name:e,label:t,description:n,image:a,useValue:o,onSelect:l,hrefCallback:c,href:p,isTemplate:m,...d})=>{const f=void 0===o?e:o,g=(e=>{if(e.forcePremium?!1!==e.is_installed&&e?.licenseDetails?.key:!1!==e.is_installed){const t=(0,r.createElement)(i.Button,{variant:"primary",onClick:e.onClick,href:e.href},(0,r.createElement)("span",{className:"noptin-selectable-card__label"},e.selectText||(0,s.__)("Select"))," ",(0,r.createElement)(i.Icon,{size:16,icon:"arrow-right-alt"}));return{upgradeText:null,button:t,secondaryButton:(0,r.createElement)(fn,{learnMoreUrl:e.learnMoreUrl,previewURL:e.previewURL,action:t})}}const t=(t,n)=>!1===e.is_installed&&e.installation?.[t]?e.installation?.[t]:e.licenseDetails[t]||n,n=t("install_desc",(0,s.__)("Activate your license key to unlock","newsletter-optin-box")),a=t("install_text",(0,s.__)("View Pricing","newsletter-optin-box")),o=t("install_url",(0,k.addQueryArgs)("https://noptin.com/pricing/",{utm_source:e.name||"license",utm_campaign:e.campaign||"noptin",utm_medium:"plugin-dashboard"})),l=(0,r.createElement)(i.Button,{variant:"primary",href:o},(0,r.createElement)("span",{className:"noptin-selectable-card-action__label"},a)," ",(0,r.createElement)(i.Icon,{size:16,icon:"lock"})),c=!e.licenseDetails?.key&&(0,r.createElement)(i.Button,{variant:"secondary",href:e.licenseDetails?.activate_url},(0,r.createElement)("span",{className:"noptin-selectable-card-action__label"},(0,s.__)("Activate"))," ",(0,r.createElement)(i.Icon,{size:16,icon:"unlock"}));return{upgradeText:n,button:l,secondaryButton:e.licenseDetails?.key||e.previewURL?(0,r.createElement)(fn,{learnMoreUrl:e.learnMoreUrl,previewURL:e.previewURL,action:[l,c]}):c}})({onClick:(0,r.useCallback)((()=>l?l(f):null),[f,l]),name:e.replace("automation_rule_",""),href:c?c(f):p,...d}),_=u("noptin-selectable-card",`noptin-selectable-card__${f}`,m&&"noptin-selectable-card--template");return(0,r.createElement)(i.Card,{className:_,size:"small"},(0,r.createElement)(i.CardHeader,null,(0,r.createElement)(i.__experimentalHeading,{level:4,numberOfLines:1},t),(0,r.createElement)(dn,{image:a,title:t})),m&&a?(0,r.createElement)(r.Fragment,null,(0,r.createElement)("div",{style:{width:"100%",flexGrow:1}},(0,r.createElement)("img",{src:a,alt:t,className:"noptin-template-preview__image"})),(0,r.createElement)(i.CardBody,null,g.upgradeText&&(0,r.createElement)(i.__experimentalText,{as:"em",isDestructive:!0},g.upgradeText))):(0,r.createElement)(i.CardBody,{style:{flexGrow:1}},(0,r.createElement)(i.__experimentalVStack,{spacing:4},n&&(0,r.createElement)(i.__experimentalText,{as:"p",variant:"muted"},n),m&&!a&&(0,r.createElement)(i.__experimentalText,{as:"em",variant:"muted"},(0,s.__)("No preview available","newsletter-optin-box")),g.upgradeText&&(0,r.createElement)(i.__experimentalText,{as:"em",isDestructive:!0},g.upgradeText))),(0,r.createElement)(i.CardFooter,{isBorderless:!0,justify:g.secondaryButton?"space-between":"flex-end"},g.secondaryButton,g.button),(0,r.createElement)(i.__experimentalElevation,{value:1,hover:3}))},hn=({showTitle:e,selectedCategory:t,cards:n,...a})=>{const o="noptin-campaign-explorer";let l=Object.entries(n);l.some((([,e])=>e.isTemplate))||l.sort(((e,t)=>{const n=["latest_posts_digest","periodic","manual_recipients"],r=n.includes(e[0])||e[1].orderFirst,a=n.includes(t[0])||t[1].orderFirst;return r&&!a?-1:!r&&a?1:e[1].label.localeCompare(t[1].label)}));const s=l.reduce(((e,[t,n])=>(n.forcePremium&&!a.licenseDetails?.key?e[1].push([t,n]):e[0].push([t,n]),e)),[[],[]]);return(0,r.createElement)("div",{className:`${o}__list`},e&&(0,r.createElement)(i.__experimentalHeading,{level:2,lineHeight:"48px",className:`${o}__category-name`},t),(0,r.createElement)("div",{role:"listbox",className:`${o}-list`},s[0].map((([e,t])=>(0,r.createElement)(gn,{key:e,name:e,...a,...t}))),s[1].map((([e,t])=>(0,r.createElement)(gn,{key:e,name:e,...a,...t})))))},bn=({cardGroups:e,...t})=>{const n=Object.keys(e).length,[a,o]=(0,r.useState)(Object.keys(e)[0]);(0,r.useEffect)((()=>{n>0&&!e[a]&&o(Object.keys(e)[0])}),[e,a]);const l=n>1,i=(0,r.useMemo)((()=>Object.keys(e)),[e]),s=(0,r.useMemo)((()=>e[a]||{}),[e,a]),c=u("noptin-campaign-explorer",{"noptin-campaign-explorer--show-sidebar":l});return(0,E.jsxs)("div",{className:c,children:[l&&(0,E.jsx)(mn,{selectedCategory:a,categories:i,onClickCategory:o}),(0,E.jsx)(hn,{showTitle:l,selectedCategory:a,cards:s,...t})]})},yn=e=>{if(!e.isOpen)return null;const t=e.steps[e.currentStep];if(t.modal)return(0,r.createElement)(i.Modal,{onRequestClose:e.closeModal,...t.modal.props},t.modal.content);if(t.cardGroups){const n=[...Object.keys(e.stepValues)].pop(),a=(0,r.createElement)(r.Fragment,null,n&&!e.isFirstStep&&(0,r.createElement)(i.Button,{icon:"arrow-left-alt",onClick:()=>e.removeQueryArgs(e.steps[n]?.arg||""),label:(0,s.__)("Back","newsletter-optin-box"),showTooltip:!0})),o=e.isLastStep?void 0:n=>{t.arg&&e.addQueryArg(t.arg,n)};return(0,r.createElement)(i.Modal,{title:e.currentTitle,onRequestClose:e.closeModal,headerActions:a,isFullScreen:!0},(0,r.createElement)(bn,{cardGroups:"function"==typeof t.cardGroups?t.cardGroups(e.stepValues):t.cardGroups,licenseDetails:e.licenseDetails,onSelect:o,hrefCallback:t.arg&&e.isLastStep?n=>e.withQueryArg(t.arg,n):void 0,campaign:e.campaign}))}return null},vn=({buttonProps:e,...t})=>{const[n,a]=(0,r.useState)(!1),o=(0,r.useCallback)((()=>{a(!0)}),[a]),l=(0,r.useCallback)((()=>{a(!1)}),[a]),s=t.currentStep&&t.hasSteps,c={...e,onClick:s?o:void 0,href:s?void 0:t.url};return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.Button,{...c}),(0,r.createElement)(yn,{isOpen:n,closeModal:l,...t}))},xn=({text:e})=>{const t=(()=>{const e=(0,r.useContext)(un);if(!e)throw new Error("useModal must be used within a ModalProvider");return e})();return(0,r.createElement)(vn,{licenseDetails:ln.license||{},buttonProps:{variant:"primary",type:"button",text:e||(0,s.__)("Add New Automation","newsletter-optin-box")},...t})},En=({text:e})=>(0,r.createElement)(pn,null,(0,r.createElement)(xn,{text:e})),wn=({children:e})=>{const{automationRule:{trigger_id:t}}=h(),n=I(t,window.noptinEmailSettingsMisc?.triggers?.[t]?.category),[r,a]=P({heading:(0,s.__)("Unlock Premium Feature","newsletter-optin-box"),helpText:(0,s.__)("This automation trigger is only available to premium license holders.","newsletter-optin-box"),needsAddonsPack:!1,slug:"automation-rule-trigger-"+t});return!r&&n?a:e};function kn(){const{automationRule:{id:e}}=h(),t=!!(e&&e>0);return(0,r.createElement)(i.__experimentalHStack,{justify:"flex-start"},(0,r.createElement)(i.__experimentalText,{as:"h1",size:23,weight:500},t?(0,s.__)("Edit Automation Rule","newsletter-optin-box"):(0,s.__)("Add Automation Rule","newsletter-optin-box")),t&&(0,r.createElement)(En,{text:(0,s.__)("Add New","newsletter-optin-box")}))}function Cn({automationRule:e}){return(0,r.createElement)("div",{className:"noptin-automation-rule__editor"},(0,r.createElement)(F,null,(0,r.createElement)(i.SlotFillProvider,null,(0,r.createElement)(b,{automationRule:e},(0,r.createElement)(wn,null,(0,r.createElement)(rn,null,(0,r.createElement)(i.__experimentalVStack,{spacing:4},(0,r.createElement)(kn,null),(0,r.createElement)(i.Flex,{wrap:!0,align:"top"},(0,r.createElement)(i.FlexBlock,{className:"noptin-es6-editor__main"},(0,r.createElement)(on,null)),(0,r.createElement)(i.FlexItem,{className:"noptin-component-editor__sidebar"},(0,r.createElement)(i.__experimentalVStack,null,(0,r.createElement)(j,null),(0,r.createElement)(v,null)))))))))))}var Sn=n(338);const An=e=>{const t=window.noptinEmailSettingsMisc?.data?.app||{};return(0,r.createElement)(L.StrictMode,null,(0,r.createElement)(F,null,(0,r.createElement)(Cn,{...e,...t})))};l()((()=>{((e,t)=>{if(t){const n=t.getAttribute("data-app"),a=n?JSON.parse(n):{};(0,Sn.H)(t).render((0,r.createElement)(e,{...a}))}})(An,document.getElementById("noptin-automation-rule__editor-app"))}))},338:(e,t,n)=>{var r=n(795);t.H=r.createRoot,r.hydrateRoot},20:(e,t,n)=>{var r=n(609),a=Symbol.for("react.element"),o=(Symbol.for("react.fragment"),Object.prototype.hasOwnProperty),l=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,i={key:!0,ref:!0,__self:!0,__source:!0};function s(e,t,n){var r,s={},c=null,u=null;for(r in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)o.call(t,r)&&!i.hasOwnProperty(r)&&(s[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===s[r]&&(s[r]=t[r]);return{$$typeof:a,type:e,key:c,ref:u,props:s,_owner:l.current}}t.jsx=s,t.jsxs=s},848:(e,t,n)=>{e.exports=n(20)},609:e=>{e.exports=window.React},795:e=>{e.exports=window.ReactDOM}},n={};function r(e){var a=n[e];if(void 0!==a)return a.exports;var o=n[e]={exports:{}};return t[e](o,o.exports,r),o.exports}r.m=t,e=[],r.O=(t,n,a,o)=>{if(!n){var l=1/0;for(u=0;u=o)&&Object.keys(r.O).every((e=>r.O[e](n[s])))?n.splice(s--,1):(i=!1,o0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[n,a,o]},r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={180:0,856:0};r.O.j=t=>0===e[t];var t=(t,n)=>{var a,o,l=n[0],i=n[1],s=n[2],c=0;if(l.some((t=>0!==e[t]))){for(a in i)r.o(i,a)&&(r.m[a]=i[a]);if(s)var u=s(r)}for(t&&t(n);cr(430)));a=r.O(a)})(); \ No newline at end of file +`,St=({value:e,onChange:t,...n})=>{const{baseControlProps:a,controlProps:o}=(0,i.useBaseControlProps)(n),l=e?e.split(":"):["07","00"],[c,u]=(0,r.useState)(l[0]),[p,m]=(0,r.useState)(l[1]),d=(e,t="00")=>(e=Number(e),isNaN(e)?t:e<10?`0${e}`:e),f=`${d(c)}:${d(p)}`;return(0,r.useEffect)((()=>{e!==f&&t(f)}),[f]),(0,r.createElement)(i.BaseControl,{...a},(0,r.createElement)(i.__experimentalHStack,null,(0,r.createElement)(Ct,null,(0,r.createElement)(wt,{value:d(c),onChange:u,min:0,max:23,step:1,...o,label:(0,s.__)("Hours"),spinControls:"none",isDragEnabled:!1,isShiftStepEnabled:!1,isPressEnterToChange:!0,hideLabelFromVision:!0,__next40pxDefaultSize:!0,__unstableStateReducer:yt(2)}),(0,r.createElement)(Et,{"aria-hidden":"true"},":"),(0,r.createElement)(kt,{value:d(p),onChange:m,min:0,max:59,step:1,label:(0,s.__)("Minutes"),spinControls:"none",isDragEnabled:!1,isShiftStepEnabled:!1,isPressEnterToChange:!0,hideLabelFromVision:!0,__next40pxDefaultSize:!0,__unstableStateReducer:yt(2)})),(0,r.createElement)(xt,null)))},At=[{label:(0,s.__)("Only run if","newsletter-optin-box"),value:"allow"},{label:(0,s.__)("Do not run if","newsletter-optin-box"),value:"prevent"}],Tt=[{label:(0,s.__)("all","newsletter-optin-box"),value:"all"},{label:(0,s.__)("any","newsletter-optin-box"),value:"any"}];function Pt(e,t){return(0,r.useMemo)((()=>[{label:t,value:"",disabled:!0},...e]),[e,t])}function Mt({type:e,action:t,ruleCount:n,setConditionalLogicAttribute:a}){const o=n>1;return(0,r.createElement)(i.__experimentalHStack,{justify:"flex-start",wrap:!0},(0,r.createElement)(i.SelectControl,{label:(0,s.__)("If","newsletter-optin-box"),hideLabelFromVision:!0,value:t||"allow",options:At,onChange:e=>a("action",e),size:"default",__nextHasNoMarginBottom:!0}),o&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.SelectControl,{label:(0,s.__)("all","newsletter-optin-box"),hideLabelFromVision:!0,value:e||"all",options:Tt,onChange:e=>a("type",e),size:"default",__nextHasNoMarginBottom:!0}),(0,r.createElement)(i.__experimentalText,null,(0,s.__)("of the following rules are true:","newsletter-optin-box"))))}function Ot({rule:e,comparisons:t,availableSmartTags:n,mergeTagsArray:a,index:o,updateRule:l,removeRule:c}){var u;const p=e=>l(o,{value:e}),m=null!==(u=e.full)&&void 0!==u?u:e.type?`[[${e.type}]]`:"",d=m.indexOf("]]"),f=m.indexOf("[[",d),g=-1===d||-1!==f&&f>d,_=e=>{const t={full:e};if(e){const n=e.match(/\[\[([^\s\]]+)/)?.[1]||"";n&&(t.type=n.replace("[[","").replace("]]",""))}l(o,t)},h=Ut({availableSmartTags:a,onMergeTagClick:e=>{_(m?`${m} ${e}`.trim():e)}}),b=Ut({availableSmartTags:a,onMergeTagClick:t=>{p(e.value?`${e.value} ${t}`.trim():t)}}),y=(0,r.useMemo)((()=>{const t=e.type;if(void 0!==n[t])return n[t];const r=t.replace("_",".",1);if(void 0!==n[r])return n[r];for(const[e,r]of Object.entries(n)){if(-1!==e.indexOf(".")&&e.split(".").slice(1).join(".")===t)return r;const n=e=>Array.isArray(e)?e:e.split(/[\s,]+/);if(r.deprecated&&n(r.deprecated).includes(t))return r}return null}),[e.type,n]),v=Pt((x=y?.options,(0,r.useMemo)((()=>x?Array.isArray(x)?x.map(((e,t)=>({label:e,value:t}))):Object.keys(x).map((e=>({label:x[e],value:e}))):[]),[x])),(0,s.__)("Select a value","newsletter-optin-box"));var x;const E=!g&&v.length>1,w=g?"string":y?.conditional_logic||"string",k=Pt((0,r.useMemo)((()=>{const e=[];return Object.keys(t).forEach((n=>{let r=t[n].type;if(E){if("string"===w&&"is"!=n&&"is_not"!=n)return;if("is_empty"===n||"is_not_empty"===n||"is_between"===n)return}"any"!==r&&r!=w||e.push({label:t[n].name,value:n})})),e}),[w,t]),(0,s.__)("Select a comparison","newsletter-optin-box")),C="is_empty"===e.condition||"is_not_empty"===e.condition;return(0,r.createElement)(i.__experimentalHStack,{justify:"flex-start",wrap:!0,expanded:!0},(0,r.createElement)("div",{style:{minWidth:320}},(0,r.createElement)(i.__experimentalInputControl,{type:"text",label:(0,s.__)("Smart Tag","newsletter-optin-box"),hideLabelFromVision:!0,placeholder:(0,s.__)("Enter a smart tag","newsletter-optin-box"),value:m,onChange:_,autoComplete:"off",suffix:h,__next40pxDefaultSize:!0})),(0,r.createElement)("div",{style:{width:150}},(0,r.createElement)(i.SelectControl,{label:(0,s.__)("Comparison","newsletter-optin-box"),hideLabelFromVision:!0,value:e.condition?e.condition:"is",options:k,onChange:e=>l(o,{condition:e}),size:"default",__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0})),!C&&(0,r.createElement)("div",{style:{minWidth:320}},E&&(0,r.createElement)(i.SelectControl,{label:(0,s.__)("Value","newsletter-optin-box"),hideLabelFromVision:!0,value:e.value?e.value:"",options:v,onChange:p,size:"default",__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0}),!E&&(0,r.createElement)(i.__experimentalInputControl,{type:"number"===w?"number":"text",label:(0,s.__)("Value","newsletter-optin-box"),placeholder:(0,s.__)("Enter a value","newsletter-optin-box"),hideLabelFromVision:!0,value:e.value?e.value:"",onChange:p,suffix:b,__next40pxDefaultSize:!0})),(0,r.createElement)(i.Button,{onClick:()=>c(o),icon:"trash",variant:"tertiary",isDestructive:!0}))}function Nt({rules:e,comparisons:t,availableSmartTags:n,setConditionalLogicAttribute:a,disableTags:o,disableProps:l,closeModal:c}){const u=(0,r.useMemo)((()=>Array.isArray(e)?e.filter((e=>e.type&&""!==e.type)):[]),[e]),p=(0,r.useMemo)((()=>{const e={};return n.forEach((t=>{t.conditional_logic&&(e[t.smart_tag]={...t,key:t.smart_tag,type:t.conditional_logic,isPremium:Array.isArray(o)&&o.some((e=>t.smart_tag.startsWith(e)))||Array.isArray(l)&&l.some((e=>!!t[e]))})})),e}),[n]),m=(0,r.useCallback)((e=>{const t=[...u];t.splice(e,1),a("rules",t)}),[u,a]),d=(0,r.useCallback)(((e,t)=>{const n=[...u];n[e]={...n[e],...t},a("rules",n)}),[u,a]),f=(0,r.useMemo)((()=>Object.values(p)),[p]),g=(0,r.useCallback)(((e,t)=>{const n=p[e],r=n?.options||[],o=n?.placeholder||"";let l=Array.isArray(r)&&r.length?Object.keys(r)[0]:o;n?.default&&(l=n.default);const i=[...u];i.push({type:e,condition:"is",full:t,value:l}),a("rules",i)}),[u]),_=0===u.length?(0,s.__)("Add a conditional logic rule","newsletter-optin-box"):(0,s.__)("Add another rule","newsletter-optin-box"),h=Ut({availableSmartTags:f,onMergeTagClick:g,raw:!0,icon:"plus",label:_,text:_,toggleProps:{variant:"primary"}});return(0,r.createElement)(r.Fragment,null,u.map(((e,n)=>(0,r.createElement)(Ot,{key:n,rule:e,index:n,updateRule:d,removeRule:m,comparisons:t,availableSmartTags:p,mergeTagsArray:f}))),(0,r.createElement)(i.__experimentalHStack,{justify:"flex-start",wrap:!0},h,c&&(0,r.createElement)(i.Button,{onClick:c,variant:"secondary"},(0,s.__)("Return to editor","newsletter-optin-box"))))}function Bt({onChange:e,value:t,comparisons:n,toggleText:a,availableSmartTags:o,className:l,inModal:c=!1,...u}){const[p,m]=(0,r.useState)(!1),d=(0,r.useMemo)((()=>"object"!=typeof t?{enabled:!1,action:"allow",rules:[],type:"all"}:t),[t]),f=(0,r.useCallback)(((t,n)=>{e({...d,[t]:n})}),[e,d]),g=(0,r.createElement)(i.__experimentalVStack,{spacing:5},(0,r.createElement)(Mt,{ruleCount:Array.isArray(d.rules)?d.rules.length:0,type:d.type,action:d.action,setConditionalLogicAttribute:f}),(0,r.createElement)(Nt,{rules:d.rules,comparisons:n,availableSmartTags:o,setConditionalLogicAttribute:f,closeModal:c&&(()=>m(!1)),...u}));return(0,r.createElement)(i.__experimentalVStack,{spacing:5,className:l},(0,r.createElement)(i.ToggleControl,{checked:!!d.enabled,onChange:e=>f("enabled",e),label:a||(0,s.__)("Optionally enable/disable this trigger depending on specific conditions.","newsletter-optin-box"),__nextHasNoMarginBottom:!0}),d.enabled&&(0,r.createElement)(r.Fragment,null,c?(0,r.createElement)(r.Fragment,null,p&&(0,r.createElement)(i.Modal,{title:(0,s.__)("Conditional Logic","newsletter-optin-box"),onRequestClose:()=>m(!1),isFullScreen:!0},g),(0,r.createElement)(i.Button,{variant:"secondary",className:"noptin-block-button",onClick:()=>m(!0)},(0,s.__)("Edit Conditional Logic","newsletter-optin-box"))):(0,r.createElement)(r.Fragment,null,g)))}const Rt={"==":(e,t)=>e==t,"===":(e,t)=>e===t,"!=":(e,t)=>e!=t,"!==":(e,t)=>e!==t,">":(e,t)=>e>t,">=":(e,t)=>e>=t,"<":(e,t)=>ee<=t,includes:(e,t)=>e.includes(t),"!includes":(e,t)=>!e.includes(t),"^includes":(e,t)=>t.includes(e),"^!includes":(e,t)=>!t.includes(e),empty:(e,t)=>!t,"!empty":(e,t)=>t},$t=(e,t,n)=>!!Rt[t]&&Rt[t](e,n),zt=["number","search","email","password","tel","url","date"];function It({setting:e,availableSmartTags:t,isPressEnterToChange:n,...a}){void 0===n&&(n=!0);const o=Ut({availableSmartTags:t,onMergeTagClick:(0,r.useCallback)((e=>{a.onChange&&a.onChange(a.value?`${a.value} ${e}`.trim():e)}),[a.value,a.onChange])});return"string"==typeof a.suffix||a.suffix instanceof String?a.suffix=(0,r.createElement)(i.__experimentalInputControlSuffixWrapper,null,a.suffix):e.disabled||!o||a.suffix||(a.suffix=o),"datetime-local"===e.type&&(a.suffix=(0,r.createElement)(i.__experimentalInputControlSuffixWrapper,null,(0,r.createElement)(i.Dropdown,{popoverProps:{placement:"bottom-start"},renderToggle:({isOpen:e,onToggle:t})=>(0,r.createElement)(i.Button,{onClick:t,"aria-expanded":e,icon:H}),renderContent:()=>(0,r.createElement)(i.DateTimePicker,{currentDate:a.value,onChange:e=>{e&&(e=(0,W.format)("c",e)),a.onChange(e||"")}})}))),e.disabled&&(a.readOnly=!0,a.onFocus=e=>e.target.select(),e.value&&(a.value=e.value)),("string"==typeof a.prefix||a.prefix instanceof String)&&(a.prefix=(0,r.createElement)(i.__experimentalInputControlPrefixWrapper,null,a.prefix)),(0,r.createElement)(i.__experimentalInputControl,{...a,type:zt.includes(e.type)?e.type:"text",placeholder:e.placeholder?e.placeholder:"",isPressEnterToChange:n,__next40pxDefaultSize:!0})}function jt({value:e,onChange:t,...n}){const{baseControlProps:a,controlProps:o}=(0,i.useBaseControlProps)({...n});return(0,r.createElement)(i.BaseControl,{...a},(0,r.createElement)(i.Dropdown,{popoverProps:{placement:"bottom-start"},renderToggle:({isOpen:t,onToggle:n})=>(0,r.createElement)(i.Button,{onClick:n,"aria-expanded":t},(0,r.createElement)(i.ColorIndicator,{colorValue:e})),renderContent:()=>(0,r.createElement)(i.ColorPicker,{color:e,onChange:t}),...o}))}function Dt({availableSmartTags:e,autoGrow:t=!1,label:n,id:a,setting:o,...l}){const s=Ut({availableSmartTags:e,onMergeTagClick:(0,r.useCallback)((e=>{l.onChange&&l.onChange(l.value?`${l.value} ${e}`.trim():e)}),[l.value,l.onChange]),toggleProps:{size:"small"}}),c=!o.disabled&&s?(0,r.createElement)(i.__experimentalHStack,null,(0,r.createElement)("span",null,n),s):n,u=a||(0,U.useInstanceId)(Dt,"noptin-textarea");return(0,r.useEffect)((()=>{if(t){const e=document.getElementById(u);e&&(e.style.height="auto",e.style.height=`${e.scrollHeight}px`)}}),[l.value,t,u]),o.disabled&&(l.readOnly=!0,l.onFocus=e=>e.target.select(),o.value&&(l.value=o.value)),(0,r.createElement)(i.TextareaControl,{...l,id:u,label:c,__nextHasNoMarginBottom:!0})}function Ft({options:e,...t}){return(0,r.createElement)(i.__experimentalToggleGroupControl,{__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0,isBlock:!0,...t},e.map(((e,t)=>(0,r.createElement)(i.__experimentalToggleGroupControlOption,{key:t,...e}))))}function Lt({options:e,...t}){const[n,a]=(0,r.useState)(e);return(0,r.createElement)(i.ComboboxControl,{...t,options:n,onFilterValueChange:t=>{a(t?e.filter((e=>!e.disabled&&""!==e.value&&(e.search?e.search.toLowerCase():e.label.toLowerCase()).includes(t.toLowerCase()))):e)},__experimentalRenderItem:({item:e,...t})=>e.render?"string"==typeof e.render?(0,r.createElement)("div",{...t,dangerouslySetInnerHTML:{__html:e.render}}):e.render:e.label,autocomplete:"off"})}function Ht({options:e,value:t,onChange:n,...a}){const o=Array.isArray(t)?t:[],l=(0,r.useMemo)((()=>e.map((e=>e.label))),[e]),s=(0,r.useCallback)((e=>l.includes(e)),[l]),c=(0,r.useMemo)((()=>o.map((t=>{const n=e.find((e=>e.value===t));return n?n.label:t}))),[t,e]),u=(0,r.useCallback)((t=>{const r=new Set;for(const n of t){const t=e.find((e=>e.label===n));t&&r.add(t.value)}n(Array.from(r))}),[n,e]),p=(0,r.useCallback)((t=>{const n=e.find((e=>e.label===t.item));return n&&n.render?(0,r.createElement)(L.RawHTML,null,n.render):(0,r.createElement)(r.Fragment,null,t.item)}),[e]);return(0,r.createElement)(i.FormTokenField,{value:c,suggestions:l,onChange:u,__experimentalShowHowTo:!1,__experimentalExpandOnFocus:!0,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0,__experimentalValidateInput:s,__experimentalRenderItem:p,...a})}const Vt=[{id:"key",label:(0,s.__)("Key","noptin-addons-pack"),type:"text"},{id:"value",label:(0,s.__)("Value","noptin-addons-pack"),type:"text"}];function Ut({availableSmartTags:e=[],onMergeTagClick:t=((e,t)=>{}),raw:n=!1,icon:a="shortcode",label:o=(0,s.__)("Insert merge tag","newsletter-optin-box"),...l}){const c=function(e){return(0,r.useMemo)((()=>{if(!Array.isArray(e))return{};const t={};return e.forEach((e=>{const n=e.group?e.group:(0,s.__)("General","newsletter-optin-box");Array.isArray(t[n])||(t[n]=[]),t[n].push(e)})),t}),[e])}(e),u=Object.keys(c).length;let p=null;return u>0&&(p=(0,r.createElement)(i.DropdownMenu,{icon:a,label:o,...l},(({onClose:e})=>(0,r.createElement)(r.Fragment,null,Object.keys(c).map(((a,o)=>(0,r.createElement)(i.MenuGroup,{label:u>1?a:void 0,key:o},c[a].map((a=>(0,r.createElement)(i.MenuItem,{icon:a.isPremium?w:a.icon||V,iconPosition:"left",disabled:a.isPremium,onClick:()=>{if(!a.isPremium){if(t){const e=n?a.smart_tag:`[[${Gt(a)}]]`;t(e,`[[${Gt(a)}]]`)}e()}},key:a.smart_tag},(0,r.createElement)(L.RawHTML,null,a.isPremium?`${a.label} - Premium`:a.label))))))))))),p}function Gt(e){return e.example?e.example:e.default?`${e.smart_tag} default="${e.default}"`:`${e.smart_tag}`}function Wt({availableSmartTags:e,value:t,onChange:n,button:a,fields:o,openModal:l,prepend:c,disable:u,disabled:p,onDisable:m,cardProps:d,repeaterKey:f,id:g,defaultItem:_,...h}){const[b,y]=(0,r.useState)(!1),v=Array.isArray(t)?t:[],x=g||(0,U.useInstanceId)(Wt,"noptin-repeater"),{baseControlProps:E,controlProps:w}=(0,i.useBaseControlProps)({...h,id:x}),k=_||{};if(f?.newOnly&&(k.new=!0),!o)return console.warn("No fields provided to repeater control."),null;Object.keys(o).forEach((e=>{void 0!==o[e].default&&(k[e]=o[e].default)}));const C=!!l,S=(e,t)=>e.key?e.key:f?.to&&Jt(e,f.to)?Jt(e,f.to):t,A=(0,r.createElement)(i.__experimentalVStack,null,c,v.map(((t,a)=>(0,r.createElement)(i.Card,{size:"small",className:"noptin-no-shadow",id:`${x}__item-${S(t,a)}`,"data-index":a,borderBottom:!0,borderLeft:!0,borderRight:!0,borderTop:!0,...d||{},key:S(t,a)},(0,r.createElement)(qt,{id:`${x}__item-${S(t,a)}`,fields:o,value:t,availableSmartTags:e,onChange:e=>{let t={...e};if(f?.to&&f.from&&Jt(t,f.from)&&(!f.newOnly||t.new)){const e=Jt(t,f.from).toString().trim().toLowerCase().replace(/[^a-z0-9]+/g,"_");t=Zt(t,f.to,e.substring(0,f.maxLength||64)),v.find(((e,n)=>a!==n&&Jt(e,f.to)===Jt(t,f.to)))&&(t=Zt(t,f.to,`${Jt(t,f.to)}_${a}`))}const r=[...v];r[a]=t,n(r)},onDelete:()=>{const e=[...v];e.splice(a,1),n(e)},onMoveUp:a>0?()=>{const e=[...v],t=e[a];e.splice(a,1),e.splice(a-1,0,t),n(e)}:null,onMoveDown:a{const e=[...v],t=e[a];e.splice(a,1),e.splice(a+1,0,t),n(e)}:null,repeaterKey:f})))),(0,r.createElement)(i.__experimentalHStack,null,(0,r.createElement)(i.Button,{onClick:()=>{const e=[...v],t=Date.now().toString(36),r=Math.random().toString(36).substring(2,8);e.push({key:`${t}_${r}`,...k}),n(e)},variant:"primary"},a||(0,s.__)("Add Item","newsletter-optin-box")),C&&(0,r.createElement)(i.Button,{onClick:()=>y(!1),variant:"secondary"},(0,s.__)("Go Back","newsletter-optin-box")))),T=!u||!p;return(0,r.createElement)(i.BaseControl,{...E},(0,r.createElement)("div",{...w},C&&(0,r.createElement)(i.__experimentalVStack,null,u&&(0,r.createElement)(i.ToggleControl,{label:u,checked:p,onChange:e=>{m&&m(e)}}),T&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.Button,{onClick:()=>y(!0),variant:"secondary"},l||(0,s.__)("Set Items","newsletter-optin-box")),b&&(0,r.createElement)(i.Modal,{title:h.label||l||(0,s.__)("Set Items","newsletter-optin-box"),onRequestClose:()=>y(!1),size:"medium"},A))),!C&&A))}function qt({fields:e,availableSmartTags:t,value:n,onChange:a,repeaterKey:o,onDelete:l,onMoveUp:c,onMoveDown:u,id:p}){const[m,d]=(0,r.useState)(!o?.from),f=(0,r.useCallback)((()=>{d(!m)}),[m]),g=!m&&o?.from;let _=null;if(o){const e=!1!==o.display&&o.to&&n?.[o.to]?(0,r.createElement)("code",null,(0,s.sprintf)(o.display||"%s",n?.[o.to])):null,t={paddingLeft:16,paddingRight:16,height:48},a=Jt(n,o.from)||Jt(n,o.fallback);_=(0,r.createElement)(i.CardHeader,{style:{padding:0}},(0,r.createElement)(i.Flex,{as:i.Button,onClick:f,style:t,"aria-controls":`${p}__body`,"aria-expanded":!g,type:"button"},(0,r.createElement)(i.__experimentalHStack,{as:i.FlexBlock},(0,r.createElement)(i.__experimentalText,{weight:600},a||(0,s.__)("(new)","newsletter-optin-box"))),(0,r.createElement)(i.FlexItem,null,(0,r.createElement)(i.__experimentalHStack,null,e,(0,r.createElement)(i.Icon,{icon:m?"arrow-up-alt2":"arrow-down-alt2"})))))}return(0,r.createElement)(r.Fragment,null,_,!g&&(0,r.createElement)(i.CardBody,{id:`${p}__body`,hidden:g},(0,r.createElement)(i.__experimentalVStack,null,Object.keys(e).map((o=>(0,r.createElement)(en,{key:o,settingKey:o,availableSmartTags:t,setting:e[o],saved:n,setAttributes:e=>{a({...n,...e})}}))),(0,r.createElement)(i.__experimentalHStack,{className:"noptin-repeater-item__actions",justify:"flex-start"},!n?.predefined&&(0,r.createElement)(i.Button,{variant:"link",onClick:l,text:(0,s.__)("Remove Item","newsletter-optin-box"),isDestructive:!0}),c&&(0,r.createElement)(i.Button,{onClick:c,icon:"arrow-up-alt",text:(0,s.__)("Move Up","newsletter-optin-box"),size:"small",iconSize:16}),u&&(0,r.createElement)(i.Button,{onClick:u,icon:"arrow-down-alt",text:(0,s.__)("Move Down","newsletter-optin-box"),size:"small",iconSize:16})))))}function Kt({setting:e,availableSmartTags:t,value:n,onChange:a,...o}){const{baseControlProps:l,controlProps:c}=(0,i.useBaseControlProps)(o);Array.isArray(n)||(n=[]);const u=(0,r.useCallback)((({item:e,index:o})=>(0,r.createElement)(i.Flex,{className:"noptin-repeater-item",wrap:!0},Vt.map(((l,i)=>(0,r.createElement)(Qt,{key:i,availableSmartTags:t,field:l,value:void 0===e[l.id]?"":e[l.id],onChange:e=>{const t=[...n];t[o][l.id]=e,a(t)}}))),(0,r.createElement)(i.FlexItem,null,(0,r.createElement)(i.Button,{icon:"trash",variant:"tertiary",className:"noptin-component__field",label:(0,s.__)("Delete","noptin-addons-pack"),showTooltip:!0,onClick:()=>{const e=[...n];e.splice(o,1),a(e)},isDestructive:!0})))),[n,a]);return(0,r.createElement)(i.BaseControl,{...l},(0,r.createElement)("div",{...c},n.map(((e,t)=>(0,r.createElement)(u,{key:t,item:e,index:t}))),(0,r.createElement)(i.Button,{onClick:()=>{const e=[...n];e.push({}),a(e)},variant:"secondary"},e.add_field?e.add_field:(0,s.__)("Add","newsletter-optin-box"))))}function Qt({field:e,availableSmartTags:t,value:n,onChange:a}){const o=Ut({availableSmartTags:t,onMergeTagClick:(0,r.useCallback)((e=>{a&&a(n?`${n} ${e}`.trim():e)}),[n,a])});return(0,r.createElement)(i.FlexBlock,null,(0,r.createElement)(i.__experimentalInputControl,{label:e.label,type:e.type,value:n,placeholder:(0,s.sprintf)((0,s.__)("Enter %s","noptin-addons-pack"),e.label),className:"noptin-component__field noptin-condition-field",suffix:o,onChange:a,isPressEnterToChange:!0,__next40pxDefaultSize:!0}))}function Xt({setting:e,value:t,options:n,onChange:a,...o}){const{baseControlProps:l,controlProps:s}=(0,i.useBaseControlProps)(o);return Array.isArray(t)||(t=[]),(0,r.createElement)(i.BaseControl,{...l},(0,r.createElement)("div",{...s},n.map(((e,n)=>(0,r.createElement)(i.CheckboxControl,{key:n,label:e.label,checked:t.includes(e.value),onChange:n=>{a(n?[...t,e.value]:t.filter((t=>t!==e.value)))}})))))}function Yt({value:e,onChange:t,id:n,...a}){const{baseControlProps:o,controlProps:l}=(0,i.useBaseControlProps)({...a,id:n,__nextHasNoMarginBottom:!0}),{wp:s,tinymce:c}=window,u=(0,r.useRef)(!1),p=(0,r.useRef)(null);return(0,r.useEffect)((()=>{if(!u.current)return;const t=t=>{t?.target?.classList?.contains("wp-switch-editor")&&setTimeout((()=>{const t=c?.get(n);t&&(t.setContent(e||""),t._lastChange=e)}),50)};return p.current?.addEventListener("click",t),()=>{p.current?.removeEventListener("click",t)}}),[p.current,e]),(0,r.useEffect)((()=>{if(!u.current)return;const e=c?.get(n);e&&e._lastChange}),[e]),(0,r.useEffect)((()=>{function r(){s.oldEditor.initialize(n,{tinymce:!!window.tinymce&&{content_css:!1,theme_advanced_buttons:"bold,italic,underline,|,bullist,numlist,blockquote,|,link,unlink,|,spellchecker,fullscreen,|,formatselect,styleselect",drag_drop_upload:!0,toolbar1:"formatselect,bold,italic,bullist,numlist,blockquote,alignleft,aligncenter,alignright,link,spellchecker,wp_adv,dfw",toolbar2:"strikethrough,hr,forecolor,pastetext,removeformat,charmap,outdent,indent,undo,redo,wp_help",min_height:400,wpautop:!1,setup(n){e&&n.on("loadContent",(()=>n.setContent(e))),n.on("blur",(()=>(t(n.getContent()),!1)));const r=(0,U.debounce)((()=>{const e=n.getContent();e!==n._lastChange&&(n._lastChange=e,t(e))}),250);n.on("Paste Change input Undo Redo",r),n.on("remove",r.cancel),n.on("keydown",(e=>{G.isKeyboardEvent.primary(e,"z")&&e.stopPropagation(),G.isKeyboardEvent.primary(e,"s")&&r.flush();const{altKey:t}=e;t&&e.keyCode===G.F10&&e.stopPropagation()})),u.current=!0},...window?.tinyMCEPreInit?.mceInit[n]||{}},mediaButtons:!0,quicktags:{buttons:"strong,em,link,block,del,ins,img,ul,ol,li,code,close"}})}function a(){"complete"===document.readyState&&r()}return c?.execCommand("mceRemoveEditor",!0,n),"complete"===document.readyState?r():document.addEventListener("readystatechange",a),()=>{document.removeEventListener("readystatechange",a),s.oldEditor.remove(n)}}),[]),(0,r.createElement)(i.BaseControl,{...o},(0,r.createElement)("div",{ref:p},(0,r.createElement)("textarea",{...l,className:"wp-editor-area",style:{width:"100%"},value:e,onChange:e=>t(e.target.value),rows:10})))}const Jt=(e,t)=>{if(!t||0===t.length)return;if("string"==typeof t&&(t=t.split(".")),0===t.length||!e||"object"!=typeof e)return;const[n,...r]=t;return 0===r.length?e[n]:Jt(e[n],r)},Zt=(e,t,n)=>{if(!t||0===t.length)return e;"string"==typeof t&&(t=t.split("."));const[r,...a]=t;return 0===a.length?{...e,[r]:n}:{...e,[r]:Zt(e[r]||{},a,n)}};function en({settingKey:e,setting:t,availableSmartTags:n,prop:a,saved:o,setAttributes:l}){const c=(a?`${a}.${e}`:e).split("."),u=t.sanitize?t.sanitize:e=>e,p=(0,r.useCallback)((e=>{if(Jt(o,c)===e)return;const[t,...n]=c;return 0===n.length?l(u({[t]:e})):l(u({[t]:Zt(o[t]||{},n,e)}))}),[o,c,l,u]);if(t.if||t.restrict){const e=t.restrict?t.restrict.split("."):t.if.split(".");if(!Jt(o,e))return null}if(Array.isArray(t.conditions)&&!t.conditions.every((e=>{const t=e.key.split("."),n=e.operator?e.operator:"==";return $t(e.value,n,Jt(o,t))})))return null;if(t.condition&&!t.condition(o))return null;let m=Jt(o,c);(void 0===m||t.disabled)&&(m=t.default);const d=void 0!==m&&""!==m&&null!==m;let f=[];t.options&&(f=Array.isArray(t.options)?[...t.options]:Object.keys(t.options).map((e=>({label:t.options?.[e],value:e}))));const g=`noptin-component__field-${e}`,_="string"==typeof t.description?(0,r.createElement)("span",{dangerouslySetInnerHTML:{__html:t.description}}):t.description,h=t.customAttributes?t.customAttributes:{},b={label:t.label,value:d?m:"",onChange:p,className:g,help:_,...h};if(t.tooltip&&(b.label=(0,r.createElement)(i.__experimentalHStack,{justify:"flex-start"},(0,r.createElement)("span",null,t.label),(0,r.createElement)(i.Tooltip,{delay:0,placement:"top",text:t.tooltip},(0,r.createElement)("span",null,(0,r.createElement)(i.Icon,{icon:"info",style:{color:"#454545"}}))))),t.type&&!t.el&&(t.el=t.type,["toggle","switch","checkbox","checkbox_alt","text","number","email","tel","date","color","image"].includes(t.type)&&(t.el="input")),"button"===t.el)return(0,r.createElement)("div",null,(0,r.createElement)(i.Button,{...t.buttonProps||{}}));if("toggle_group"===t.el)return(0,r.createElement)(Ft,{...b,options:f});if("select"===t.el)return t.multiple?(0,r.createElement)(Ht,{...b,options:f}):(f.find((e=>""===e?.value))||f.unshift({label:t.placeholder?t.placeholder:(0,s.__)("Select an option","newsletter-optin-box"),value:"",disabled:!t.canSelectPlaceholder}),(0,r.createElement)(i.SelectControl,{...b,options:f,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0}));if("combobox"===t.el)return f.unshift({label:t.placeholder?t.placeholder:(0,s.__)("Select an option","newsletter-optin-box"),value:"",disabled:!t.canSelectPlaceholder}),(0,r.createElement)(Lt,{...b,options:f,__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0});if("form_token"===t.el||"token"===t.el)return(0,r.createElement)(i.FormTokenField,{...b,value:Array.isArray(b.value)?b.value:[],suggestions:Array.isArray(t.suggestions)?t.suggestions:[],__nextHasNoMarginBottom:!0,__next40pxDefaultSize:!0,__experimentalShowHowTo:!1,__experimentalExpandOnFocus:!0,tokenizeOnBlur:!0});if("multi_checkbox"===t.el||"multi_checkbox_alt"===t.el)return(0,r.createElement)(Xt,{...b,options:f});if("conditional_logic"===t.el)return(0,r.createElement)(Bt,{...b,availableSmartTags:n,comparisons:t.comparisons,toggleText:t.toggle_text,inModal:t.in_modal});if("time"===t.el)return(0,r.createElement)(St,{...b});if("color"===t.el||"input"===t.el&&"color"===t.type)return(0,r.createElement)(jt,{...b,__nextHasNoMarginBottom:!0});if("unit"===t.el)return(0,r.createElement)(i.__experimentalUnitControl,{labelPosition:"edge",__unstableInputWidth:"80px",__next40pxDefaultSize:!0,isPressEnterToChange:!0,...b});if("input"===t.el){if(t.type&&["toggle","switch","checkbox","checkbox_alt"].includes(t.type))return(0,r.createElement)(i.ToggleControl,{...b,checked:!!d&&m});if("number"===t.type){const e=e=>{if(e)return"string"==typeof e||e instanceof String?(0,r.createElement)(i.__experimentalInputControlSuffixWrapper,null,e):e},n=e=>{if(e)return"string"==typeof e||e instanceof String?(0,r.createElement)(i.__experimentalInputControlPrefixWrapper,null,e):e};return Array.isArray(b.suffix)?b.suffix=e(1===m||"1"===m?b.suffix[0]:b.suffix[1]):b.suffix=e(b.suffix),Array.isArray(b.prefix)?b.prefix=n(1===m||"1"===m?b.prefix[0]:b.prefix[1]):b.prefix=n(b.prefix),(0,r.createElement)(i.__experimentalNumberControl,{...b,placeholder:t.placeholder?t.placeholder:"",__next40pxDefaultSize:!0})}return"image"===t.type&&(b.suffix=(0,r.createElement)(i.Button,{onClick:()=>{var e=window.wp.media({title:(0,s.__)("Upload Image","newsletter-optin-box"),multiple:!1,library:{type:"image"}}).open().on("select",(t=>{let n=e.state().get("selection").first();p(n.toJSON().sizes.full.url)}))},icon:"upload",label:(0,s.__)("Upload Image","newsletter-optin-box"),showTooltip:!0})),(0,r.createElement)(It,{...b,setting:t,availableSmartTags:"trigger_settings"===a?[]:n,isPressEnterToChange:!t.isInputToChange})}return"textarea"===t.el?(0,r.createElement)(Dt,{...b,setting:t,placeholder:t.placeholder?t.placeholder:"",availableSmartTags:"trigger_settings"===a?[]:n}):"tinymce"===t.el?(0,r.createElement)(Yt,{...b}):"paragraph"===t.el?(0,r.createElement)("div",{className:g},(0,r.createElement)(i.Tip,null,t.raw?(0,r.createElement)(L.RawHTML,null,t.content):t.content)):"hero"===t.el?(0,r.createElement)("div",{className:g},(0,r.createElement)("h3",null,t.content)):"key_value_repeater"===t.el||"webhook_key_value_repeater"===t.el?(0,r.createElement)(Kt,{...b,setting:t,availableSmartTags:"trigger_settings"===a?[]:n}):"repeater"===t.el?(0,r.createElement)(Wt,{...b,availableSmartTags:"trigger_settings"===a?[]:n}):(console.log(t),e)}const tn=(0,r.createContext)([]),nn=()=>(0,r.useContext)(tn),rn=({children:e})=>{const{automationRule:{trigger_settings:t,smartTags:n}}=h(),a=(0,r.useMemo)((()=>function(e,t){const n=[];return e?(Object.keys(e).forEach((r=>{const a=e[r];if(a.hidden)return;if(a.conditions&&!a.conditions.every((e=>{let n=!1;return n=Array.isArray(e.value)?e.value.some((n=>n==t[e.key])):e.value==t[e.key],n===("is"===e.operator)})))return;let o=r;a.label?o=a.label:a.description&&(o=a.description),n.push({...a,smart_tag:r,label:o,example:a.example?a.example:"",description:a.description?a.description:"",placeholder:a.placeholder?a.placeholder:"",conditional_logic:!!a.conditional_logic&&a.conditional_logic,options:a.options?a.options:[]})})),n):n}(n,t||{})),[n,t]);return(0,r.createElement)(tn.Provider,{value:a},e)};function an({sectionKey:e,label:t,prop:n,settings:a}){const o=nn(),l=Object.keys(a);if(!l.length)return null;const{automationRule:s,setAttributes:c}=h();return(0,r.createElement)(F,null,(0,r.createElement)(p,{title:t,className:`noptin-automation-rule-editor__section noptin-automation-rule-editor__section-${e}`},(0,r.createElement)(i.__experimentalVStack,{spacing:5,as:i.CardBody},l.map((e=>(0,r.createElement)(en,{key:e,settingKey:e,prop:n,availableSmartTags:o,saved:s,setAttributes:c,setting:a[e]}))))))}function on(){const{error:e,success:t,resetMessages:n,automationRule:{settings:a}}=h(),o=(0,r.createElement)(r.Fragment,null,e&&(0,r.createElement)(i.Notice,{status:"error",onDismiss:n},e),t&&(0,r.createElement)(i.Notice,{status:"success",onDismiss:n},t));if(!a)return o;const l=Object.keys(a);return l.length?(0,r.createElement)(i.__experimentalVStack,{className:"noptin-automation-rule-editor__sections"},o,(0,r.createElement)(F,null,l.map((e=>(0,r.createElement)(an,{key:e,sectionKey:e,...a[e]}))))):o}const ln=window.noptinEmailSettingsMisc||{};function sn(e,t){const n={};Array.isArray(e)||Object.entries(e).forEach((([e,r])=>{if("email"!==e){if(!r.category){if(!ln.isTest)return;r.category="Deprecated"}n[r.category]||(n[r.category]={}),n[r.category][e]={...r,selectText:"triggers"===t?(0,s.__)("Use trigger","newsletter-optin-box"):(0,s.__)("Set-up","newsletter-optin-box"),forcePremium:I(e,r.category)},r.image&&r.image.icon&&["category","editor-table"].includes(r.image.icon)&&(n[r.category][e].forcePremium=!0),r.alt_category&&(n[r.alt_category]||(n[r.alt_category]={}),n[r.alt_category][e]=n[r.category][e])}})),Array.isArray(ln.integrations)&&ln.integrations.forEach((r=>{r.plan&&"free"!==r.plan&&r[t]&&!Array.isArray(r[t])&&Object.entries(r[t]).forEach((([t,a])=>{a.forEach((({id:a,label:o,description:l,premium:i=!1})=>{if("premium"===r.plan||i)if(e[a]){const t=e[a].category;t&&n[t][a]&&(n[t][a].forcePremium=!0)}else n[t]||(n[t]={}),n[t][a]={name:a,label:o,description:l,category:t,image:r.icon_url,forcePremium:!0,is_installed:!1,installation:r.installation}}))}))}));const r={},a=(0,s.__)("General","newsletter-optin-box");return n.hasOwnProperty(a)&&(r[a]=n[a]),Object.keys(n).sort().forEach((e=>{e!==a&&(r[e]=n[e])})),r}ln.license;const cn={"noptin-trigger":{title:(0,s.__)("Select a trigger for your automation rule","newsletter-optin-box"),show:!0,arg:"noptin-trigger",cardGroups:sn(ln.data?.triggers||{},"triggers")},"noptin-action":{title:(0,s.__)("Select an action for your automation rule","newsletter-optin-box"),show:!0,arg:"noptin-action",cardGroups:sn(ln.data?.actions||{},"actions")}},un=(0,r.createContext)(void 0),pn=({children:e})=>{const[t,n]=(0,r.useState)(ln.data?.add_new||(0,k.addQueryArgs)(window.location.href,{noptin_edit_automation_rule:"0"})),a=(0,r.useMemo)((()=>{let e="";const r={};for(const[n,a]of Object.entries(cn)){const o=a.arg?(0,k.getQueryArg)(t,a.arg):"";if(!o){e=n;break}r[n]=o}return{currentTitle:cn[e]?.title||"",currentStep:e,isLastStep:e===Object.keys(cn).pop(),isFirstStep:e===Object.keys(cn)[0],hasSteps:Object.keys(cn).length>0,stepValues:r,steps:cn,campaign:"automation-rules",removeQueryArgs:(...e)=>{n((0,k.removeQueryArgs)(t,...e))},addQueryArg:(e,r)=>{n((0,k.addQueryArgs)(t,{[e]:r}))},withQueryArg:(e,n)=>(0,k.addQueryArgs)(t,{[e]:n}),url:t}}),[t,n]);return(0,r.createElement)(un.Provider,{value:a},e)},mn=({categories:e,selectedCategory:t,onClickCategory:n})=>{const a="noptin-campaign-explorer__sidebar";return(0,r.createElement)("div",{className:a},(0,r.createElement)("div",{className:`${a}__categories-list`},e.map((e=>(0,r.createElement)(i.Button,{key:e,label:e,className:`${a}__categories-list__item`,isPressed:t===e,onClick:()=>{n(e)}},e)))))},dn=({image:e,title:t})=>{if("string"==typeof e&&e.startsWith("http"))return(0,r.createElement)("img",{src:e,width:24,alt:t,style:{maxWidth:24}});if("string"==typeof e)return(0,r.createElement)(i.Icon,{size:24,icon:e,style:{color:"#424242"}});if(e&&"object"==typeof e){const t=e.fill||"#008000",n=e.path||"",a=e.viewBox||"0 0 24 24";return e.path?(0,r.createElement)(i.SVG,{viewBox:a,xmlns:"http://www.w3.org/2000/svg",style:{maxWidth:24}},(0,r.createElement)(i.Path,{fill:t,d:n})):(0,r.createElement)(i.Icon,{size:24,style:{color:t},icon:e.icon})}return(0,r.createElement)(i.Icon,{size:24,icon:"email",style:{color:"#424242"}})},fn=({learnMoreUrl:e,previewURL:t,action:n})=>{const[a,o]=(0,r.useState)(!1),[l,c]=(0,r.useState)(!0),u=()=>o(!1);return e?(0,r.createElement)(i.Button,{variant:"secondary",href:e,target:"_blank"},(0,r.createElement)("span",{className:"noptin-selectable-card-action__label"},(0,s.__)("Learn More"))," ",(0,r.createElement)(i.Icon,{size:16,icon:"arrow-right-alt"})):t?(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.Button,{variant:"secondary",onClick:()=>o(!0)},(0,r.createElement)("span",{className:"noptin-selectable-card-action__label"},(0,s.__)("Preview"))," ",(0,r.createElement)(i.Icon,{size:16,icon:"visibility"})),a&&(0,r.createElement)(i.Modal,{title:(0,s.__)("Preview"),onRequestClose:u,className:"noptin-preview-modal",headerActions:(0,r.createElement)(i.__experimentalHStack,{justify:"flex-end",wrap:!0},n,(0,r.createElement)(i.Button,{variant:n?"secondary":"primary",onClick:u},(0,s.__)("Back to templates"))),isDismissible:!1,isFullScreen:!0},l&&(0,r.createElement)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%"}},(0,r.createElement)(i.Spinner,null)),(0,r.createElement)("iframe",{src:t,style:{width:"100%",height:"100%",border:"none",display:l?"none":"block"},onLoad:()=>c(!1)}))):null},gn=({name:e,label:t,description:n,image:a,useValue:o,onSelect:l,hrefCallback:c,href:p,isTemplate:m,...d})=>{const f=void 0===o?e:o,g=(e=>{if(e.forcePremium?!1!==e.is_installed&&e?.licenseDetails?.key:!1!==e.is_installed){const t=(0,r.createElement)(i.Button,{variant:"primary",onClick:e.onClick,href:e.href},(0,r.createElement)("span",{className:"noptin-selectable-card__label"},e.selectText||(0,s.__)("Select"))," ",(0,r.createElement)(i.Icon,{size:16,icon:"arrow-right-alt"}));return{upgradeText:null,button:t,secondaryButton:(0,r.createElement)(fn,{learnMoreUrl:e.learnMoreUrl,previewURL:e.previewURL,action:t})}}const t=(t,n)=>!1===e.is_installed&&e.installation?.[t]?e.installation?.[t]:e.licenseDetails[t]||n,n=t("install_desc",(0,s.__)("Activate your license key to unlock","newsletter-optin-box")),a=t("install_text",(0,s.__)("View Pricing","newsletter-optin-box")),o=t("install_url",(0,k.addQueryArgs)("https://noptin.com/pricing/",{utm_source:e.name||"license",utm_campaign:e.campaign||"noptin",utm_medium:"plugin-dashboard"})),l=(0,r.createElement)(i.Button,{variant:"primary",href:o},(0,r.createElement)("span",{className:"noptin-selectable-card-action__label"},a)," ",(0,r.createElement)(i.Icon,{size:16,icon:"lock"})),c=!e.licenseDetails?.key&&(0,r.createElement)(i.Button,{variant:"secondary",href:e.licenseDetails?.activate_url},(0,r.createElement)("span",{className:"noptin-selectable-card-action__label"},(0,s.__)("Activate"))," ",(0,r.createElement)(i.Icon,{size:16,icon:"unlock"}));return{upgradeText:n,button:l,secondaryButton:e.licenseDetails?.key||e.previewURL?(0,r.createElement)(fn,{learnMoreUrl:e.learnMoreUrl,previewURL:e.previewURL,action:[l,c]}):c}})({onClick:(0,r.useCallback)((()=>l?l(f):null),[f,l]),name:e.replace("automation_rule_",""),href:c?c(f):p,...d}),_=u("noptin-selectable-card",`noptin-selectable-card__${f}`,m&&"noptin-selectable-card--template");return(0,r.createElement)(i.Card,{className:_,size:"small"},(0,r.createElement)(i.CardHeader,null,(0,r.createElement)(i.__experimentalHeading,{level:4,numberOfLines:1},t),(0,r.createElement)(dn,{image:a,title:t})),m&&a?(0,r.createElement)(r.Fragment,null,(0,r.createElement)("div",{style:{width:"100%",flexGrow:1}},(0,r.createElement)("img",{src:a,alt:t,className:"noptin-template-preview__image"})),(0,r.createElement)(i.CardBody,null,g.upgradeText&&(0,r.createElement)(i.__experimentalText,{as:"em",isDestructive:!0},g.upgradeText))):(0,r.createElement)(i.CardBody,{style:{flexGrow:1}},(0,r.createElement)(i.__experimentalVStack,{spacing:4},n&&(0,r.createElement)(i.__experimentalText,{as:"p",variant:"muted"},n),m&&!a&&(0,r.createElement)(i.__experimentalText,{as:"em",variant:"muted"},(0,s.__)("No preview available","newsletter-optin-box")),g.upgradeText&&(0,r.createElement)(i.__experimentalText,{as:"em",isDestructive:!0},g.upgradeText))),(0,r.createElement)(i.CardFooter,{isBorderless:!0,justify:g.secondaryButton?"space-between":"flex-end"},g.secondaryButton,g.button),(0,r.createElement)(i.__experimentalElevation,{value:1,hover:3}))},hn=({showTitle:e,selectedCategory:t,cards:n,...a})=>{const o="noptin-campaign-explorer";let l=Object.entries(n);l.some((([,e])=>e.isTemplate))||l.sort(((e,t)=>{const n=["latest_posts_digest","periodic","manual_recipients"],r=n.includes(e[0])||e[1].orderFirst,a=n.includes(t[0])||t[1].orderFirst;return r&&!a?-1:!r&&a?1:e[1].label.localeCompare(t[1].label)}));const s=l.reduce(((e,[t,n])=>(n.forcePremium&&!a.licenseDetails?.key?e[1].push([t,n]):e[0].push([t,n]),e)),[[],[]]);return(0,r.createElement)("div",{className:`${o}__list`},e&&(0,r.createElement)(i.__experimentalHeading,{level:2,lineHeight:"48px",className:`${o}__category-name`},t),(0,r.createElement)("div",{role:"listbox",className:`${o}-list`},s[0].map((([e,t])=>(0,r.createElement)(gn,{key:e,name:e,...a,...t}))),s[1].map((([e,t])=>(0,r.createElement)(gn,{key:e,name:e,...a,...t})))))},bn=({cardGroups:e,...t})=>{const n=Object.keys(e).length,[a,o]=(0,r.useState)(Object.keys(e)[0]);(0,r.useEffect)((()=>{n>0&&!e[a]&&o(Object.keys(e)[0])}),[e,a]);const l=n>1,i=(0,r.useMemo)((()=>Object.keys(e)),[e]),s=(0,r.useMemo)((()=>e[a]||{}),[e,a]),c=u("noptin-campaign-explorer",{"noptin-campaign-explorer--show-sidebar":l});return(0,E.jsxs)("div",{className:c,children:[l&&(0,E.jsx)(mn,{selectedCategory:a,categories:i,onClickCategory:o}),(0,E.jsx)(hn,{showTitle:l,selectedCategory:a,cards:s,...t})]})},yn=e=>{if(!e.isOpen)return null;const t=e.steps[e.currentStep];if(t.modal)return(0,r.createElement)(i.Modal,{onRequestClose:e.closeModal,...t.modal.props},t.modal.content);if(t.cardGroups){const n=[...Object.keys(e.stepValues)].pop(),a=(0,r.createElement)(r.Fragment,null,n&&!e.isFirstStep&&(0,r.createElement)(i.Button,{icon:"arrow-left-alt",onClick:()=>e.removeQueryArgs(e.steps[n]?.arg||""),label:(0,s.__)("Back","newsletter-optin-box"),showTooltip:!0})),o=e.isLastStep?void 0:n=>{t.arg&&e.addQueryArg(t.arg,n)};return(0,r.createElement)(i.Modal,{title:e.currentTitle,onRequestClose:e.closeModal,headerActions:a,isFullScreen:!0},(0,r.createElement)(bn,{cardGroups:"function"==typeof t.cardGroups?t.cardGroups(e.stepValues):t.cardGroups,licenseDetails:e.licenseDetails,onSelect:o,hrefCallback:t.arg&&e.isLastStep?n=>e.withQueryArg(t.arg,n):void 0,campaign:e.campaign}))}return null},vn=({buttonProps:e,...t})=>{const[n,a]=(0,r.useState)(!1),o=(0,r.useCallback)((()=>{a(!0)}),[a]),l=(0,r.useCallback)((()=>{a(!1)}),[a]),s=t.currentStep&&t.hasSteps,c={...e,onClick:s?o:void 0,href:s?void 0:t.url};return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.Button,{...c}),(0,r.createElement)(yn,{isOpen:n,closeModal:l,...t}))},xn=({text:e})=>{const t=(()=>{const e=(0,r.useContext)(un);if(!e)throw new Error("useModal must be used within a ModalProvider");return e})();return(0,r.createElement)(vn,{licenseDetails:ln.license||{},buttonProps:{variant:"primary",type:"button",text:e||(0,s.__)("Add New Automation","newsletter-optin-box")},...t})},En=({text:e})=>(0,r.createElement)(pn,null,(0,r.createElement)(xn,{text:e})),wn=({children:e})=>{const{automationRule:{trigger_id:t}}=h(),n=I(t,window.noptinEmailSettingsMisc?.triggers?.[t]?.category),[r,a]=P({heading:(0,s.__)("Unlock Premium Feature","newsletter-optin-box"),helpText:(0,s.__)("This automation trigger is only available to premium license holders.","newsletter-optin-box"),needsAddonsPack:!1,slug:"automation-rule-trigger-"+t});return!r&&n?a:e};function kn(){const{automationRule:{id:e}}=h(),t=!!(e&&e>0);return(0,r.createElement)(i.__experimentalHStack,{justify:"flex-start"},(0,r.createElement)(i.__experimentalText,{as:"h1",size:23,weight:500},t?(0,s.__)("Edit Automation Rule","newsletter-optin-box"):(0,s.__)("Add Automation Rule","newsletter-optin-box")),t&&(0,r.createElement)(En,{text:(0,s.__)("Add New","newsletter-optin-box")}))}function Cn({automationRule:e}){return(0,r.createElement)("div",{className:"noptin-automation-rule__editor"},(0,r.createElement)(F,null,(0,r.createElement)(i.SlotFillProvider,null,(0,r.createElement)(b,{automationRule:e},(0,r.createElement)(wn,null,(0,r.createElement)(rn,null,(0,r.createElement)(i.__experimentalVStack,{spacing:4},(0,r.createElement)(kn,null),(0,r.createElement)(i.Flex,{wrap:!0,align:"top"},(0,r.createElement)(i.FlexBlock,{className:"noptin-es6-editor__main"},(0,r.createElement)(on,null)),(0,r.createElement)(i.FlexItem,{className:"noptin-component-editor__sidebar"},(0,r.createElement)(i.__experimentalVStack,null,(0,r.createElement)(j,null),(0,r.createElement)(v,null)))))))))))}var Sn=n(338);const An=e=>{const t=window.noptinEmailSettingsMisc?.data?.app||{};return(0,r.createElement)(L.StrictMode,null,(0,r.createElement)(F,null,(0,r.createElement)(Cn,{...e,...t})))};l()((()=>{((e,t)=>{if(t){const n=t.getAttribute("data-app"),a=n?JSON.parse(n):{};(0,Sn.H)(t).render((0,r.createElement)(e,{...a}))}})(An,document.getElementById("noptin-automation-rule__editor-app"))}))},338:(e,t,n)=>{var r=n(795);t.H=r.createRoot,r.hydrateRoot},20:(e,t,n)=>{var r=n(609),a=Symbol.for("react.element"),o=(Symbol.for("react.fragment"),Object.prototype.hasOwnProperty),l=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,i={key:!0,ref:!0,__self:!0,__source:!0};function s(e,t,n){var r,s={},c=null,u=null;for(r in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)o.call(t,r)&&!i.hasOwnProperty(r)&&(s[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===s[r]&&(s[r]=t[r]);return{$$typeof:a,type:e,key:c,ref:u,props:s,_owner:l.current}}t.jsx=s,t.jsxs=s},848:(e,t,n)=>{e.exports=n(20)},609:e=>{e.exports=window.React},795:e=>{e.exports=window.ReactDOM}},n={};function r(e){var a=n[e];if(void 0!==a)return a.exports;var o=n[e]={exports:{}};return t[e](o,o.exports,r),o.exports}r.m=t,e=[],r.O=(t,n,a,o)=>{if(!n){var l=1/0;for(u=0;u=o)&&Object.keys(r.O).every((e=>r.O[e](n[s])))?n.splice(s--,1):(i=!1,o0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[n,a,o]},r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={180:0,856:0};r.O.j=t=>0===e[t];var t=(t,n)=>{var a,o,l=n[0],i=n[1],s=n[2],c=0;if(l.some((t=>0!==e[t]))){for(a in i)r.o(i,a)&&(r.m[a]=i[a]);if(s)var u=s(r)}for(t&&t(n);cr(430)));a=r.O(a)})(); \ No newline at end of file diff --git a/build/Automation_Rules/assets/js/automation-rules.asset.php b/build/Automation_Rules/assets/js/automation-rules.asset.php index e1c2e174..08c1f37d 100644 --- a/build/Automation_Rules/assets/js/automation-rules.asset.php +++ b/build/Automation_Rules/assets/js/automation-rules.asset.php @@ -1 +1 @@ - array('react', 'react-dom', 'wp-api-fetch', 'wp-components', 'wp-dom-ready', 'wp-element', 'wp-i18n', 'wp-url'), 'version' => '82b9a8a2ac5cf70554f9'); + array('react', 'react-dom', 'wp-api-fetch', 'wp-components', 'wp-dom-ready', 'wp-element', 'wp-i18n', 'wp-url'), 'version' => 'd44e2d534e1734b7c7db'); diff --git a/build/Automation_Rules/assets/js/automation-rules.js b/build/Automation_Rules/assets/js/automation-rules.js index 6fface48..eccb1c40 100644 --- a/build/Automation_Rules/assets/js/automation-rules.js +++ b/build/Automation_Rules/assets/js/automation-rules.js @@ -1 +1 @@ -(()=>{"use strict";var e,t={481:(e,t,r)=>{const n=window.wp.domReady;var a=r.n(n),l=r(609);const o=window.wp.i18n,i=window.noptinEmailSettingsMisc||{},s=(i.license,window.wp.url),c=window.wp.components,u=window.noptinEmailEditorSettings||{},m=window.noptinEmailSettingsMisc||{},p=(m.license,u.types||{}),d=(Object.keys(p).map((e=>({value:e,label:p[e].label}))),Object.keys(u.templates||{}).map((e=>({value:e,label:u.templates[e]}))),m.license||{}),_=(d.is_usable&&d.key,/_published|_unpublished|_deleted|_user_role$/),g=["noptin_subscriber_","delete_user","new_user","update_user","wp_login","after_password_reset","create_or_update_"],y=[["woocommerce","subscription"],["latest_","_digest"]],f=["WordPress Users"],b=["latest_posts_digest"],E=["periodic"],w=(e,t=void 0)=>{if(!e||b.includes(e))return!1;if(E.includes(e))return!0;if(t&&f.includes(t))return!0;if(y.some((t=>t.every((t=>e.includes(t))))))return!0;const r=e.replace(/^automation_rule_/,"");return _.test(r)?"post_published"!==r:g.some((e=>r.startsWith(e)))};function h(e,t){const r={};Array.isArray(e)||Object.entries(e).forEach((([e,n])=>{if("email"!==e){if(!n.category){if(!i.isTest)return;n.category="Deprecated"}r[n.category]||(r[n.category]={}),r[n.category][e]={...n,selectText:"triggers"===t?(0,o.__)("Use trigger","newsletter-optin-box"):(0,o.__)("Set-up","newsletter-optin-box"),forcePremium:w(e,n.category)},n.alt_category&&(r[n.alt_category]||(r[n.alt_category]={}),r[n.alt_category][e]=r[n.category][e])}})),Array.isArray(i.integrations)&&i.integrations.forEach((n=>{n.plan&&"free"!==n.plan&&n[t]&&!Array.isArray(n[t])&&Object.entries(n[t]).forEach((([t,a])=>{a.forEach((({id:a,label:l,description:o,premium:i=!1})=>{if("premium"===n.plan||i)if(e[a]){const t=e[a].category;t&&r[t][a]&&(r[t][a].forcePremium=!0)}else r[t]||(r[t]={}),r[t][a]={name:a,label:l,description:o,category:t,image:n.icon_url,forcePremium:!0,is_installed:!1,installation:n.installation}}))}))}));const n={},a=(0,o.__)("General","newsletter-optin-box");return r.hasOwnProperty(a)&&(n[a]=r[a]),Object.keys(r).sort().forEach((e=>{e!==a&&(n[e]=r[e])})),n}const v={"noptin-trigger":{title:(0,o.__)("Select a trigger for your automation rule","newsletter-optin-box"),show:!0,arg:"noptin-trigger",cardGroups:h(i.data?.triggers||{},"triggers")},"noptin-action":{title:(0,o.__)("Select an action for your automation rule","newsletter-optin-box"),show:!0,arg:"noptin-action",cardGroups:h(i.data?.actions||{},"actions")}},x=(0,l.createContext)(void 0),k=({children:e})=>{const[t,r]=(0,l.useState)(i.data?.add_new||(0,s.addQueryArgs)(window.location.href,{noptin_edit_automation_rule:"0"})),n=(0,l.useMemo)((()=>{let e="";const n={};for(const[r,a]of Object.entries(v)){const l=a.arg?(0,s.getQueryArg)(t,a.arg):"";if(!l){e=r;break}n[r]=l}return{currentTitle:v[e]?.title||"",currentStep:e,isLastStep:e===Object.keys(v).pop(),isFirstStep:e===Object.keys(v)[0],hasSteps:Object.keys(v).length>0,stepValues:n,steps:v,campaign:"automation-rules",removeQueryArgs:(...e)=>{r((0,s.removeQueryArgs)(t,...e))},addQueryArg:(e,n)=>{r((0,s.addQueryArgs)(t,{[e]:n}))},withQueryArg:(e,r)=>(0,s.addQueryArgs)(t,{[e]:r}),url:t}}),[t,r]);return(0,l.createElement)(x.Provider,{value:n},e)};function C(e){var t,r,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e)){var a=e.length;for(t=0;t{const n="noptin-campaign-explorer__sidebar";return(0,l.createElement)("div",{className:n},(0,l.createElement)("div",{className:`${n}__categories-list`},e.map((e=>(0,l.createElement)(c.Button,{key:e,label:e,className:`${n}__categories-list__item`,isPressed:t===e,onClick:()=>{r(e)}},e)))))}),A=({image:e,title:t})=>{if("string"==typeof e&&e.startsWith("http"))return(0,l.createElement)("img",{src:e,width:24,alt:t,style:{maxWidth:24}});if("string"==typeof e)return(0,l.createElement)(c.Icon,{size:24,icon:e,style:{color:"#424242"}});if(e&&"object"==typeof e){const t=e.fill||"#008000",r=e.path||"",n=e.viewBox||"0 0 24 24";return e.path?(0,l.createElement)(c.SVG,{viewBox:n,xmlns:"http://www.w3.org/2000/svg",style:{maxWidth:24}},(0,l.createElement)(c.Path,{fill:t,d:r})):(0,l.createElement)(c.Icon,{size:24,style:{color:t},icon:e.icon})}return(0,l.createElement)(c.Icon,{size:24,icon:"email",style:{color:"#424242"}})},j=({learnMoreUrl:e,previewURL:t,action:r})=>{const[n,a]=(0,l.useState)(!1),[i,s]=(0,l.useState)(!0),u=()=>a(!1);return e?(0,l.createElement)(c.Button,{variant:"secondary",href:e,target:"_blank"},(0,l.createElement)("span",{className:"noptin-selectable-card-action__label"},(0,o.__)("Learn More"))," ",(0,l.createElement)(c.Icon,{size:16,icon:"arrow-right-alt"})):t?(0,l.createElement)(l.Fragment,null,(0,l.createElement)(c.Button,{variant:"secondary",onClick:()=>a(!0)},(0,l.createElement)("span",{className:"noptin-selectable-card-action__label"},(0,o.__)("Preview"))," ",(0,l.createElement)(c.Icon,{size:16,icon:"visibility"})),n&&(0,l.createElement)(c.Modal,{title:(0,o.__)("Preview"),onRequestClose:u,className:"noptin-preview-modal",headerActions:(0,l.createElement)(c.__experimentalHStack,{justify:"flex-end",wrap:!0},r,(0,l.createElement)(c.Button,{variant:r?"secondary":"primary",onClick:u},(0,o.__)("Back to templates"))),isDismissible:!1,isFullScreen:!0},i&&(0,l.createElement)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%"}},(0,l.createElement)(c.Spinner,null)),(0,l.createElement)("iframe",{src:t,style:{width:"100%",height:"100%",border:"none",display:i?"none":"block"},onLoad:()=>s(!1)}))):null},T=({name:e,label:t,description:r,image:n,useValue:a,onSelect:i,hrefCallback:u,href:m,isTemplate:p,...d})=>{const _=void 0===a?e:a,g=(e=>{if(e.forcePremium?!1!==e.is_installed&&e?.licenseDetails?.key:!1!==e.is_installed){const t=(0,l.createElement)(c.Button,{variant:"primary",onClick:e.onClick,href:e.href},(0,l.createElement)("span",{className:"noptin-selectable-card__label"},e.selectText||(0,o.__)("Select"))," ",(0,l.createElement)(c.Icon,{size:16,icon:"arrow-right-alt"}));return{upgradeText:null,button:t,secondaryButton:(0,l.createElement)(j,{learnMoreUrl:e.learnMoreUrl,previewURL:e.previewURL,action:t})}}const t=(t,r)=>!1===e.is_installed&&e.installation?.[t]?e.installation?.[t]:e.licenseDetails[t]||r,r=t("install_desc",(0,o.__)("Activate your license key to unlock","newsletter-optin-box")),n=t("install_text",(0,o.__)("View Pricing","newsletter-optin-box")),a=t("install_url",(0,s.addQueryArgs)("https://noptin.com/pricing/",{utm_source:e.name||"license",utm_campaign:e.campaign||"noptin",utm_medium:"plugin-dashboard"})),i=(0,l.createElement)(c.Button,{variant:"primary",href:a},(0,l.createElement)("span",{className:"noptin-selectable-card-action__label"},n)," ",(0,l.createElement)(c.Icon,{size:16,icon:"lock"})),u=!e.licenseDetails?.key&&(0,l.createElement)(c.Button,{variant:"secondary",href:e.licenseDetails?.activate_url},(0,l.createElement)("span",{className:"noptin-selectable-card-action__label"},(0,o.__)("Activate"))," ",(0,l.createElement)(c.Icon,{size:16,icon:"unlock"}));return{upgradeText:r,button:i,secondaryButton:e.licenseDetails?.key||e.previewURL?(0,l.createElement)(j,{learnMoreUrl:e.learnMoreUrl,previewURL:e.previewURL,action:[i,u]}):u}})({onClick:(0,l.useCallback)((()=>i?i(_):null),[_,i]),name:e.replace("automation_rule_",""),href:u?u(_):m,...d}),y=S("noptin-selectable-card",`noptin-selectable-card__${_}`,p&&"noptin-selectable-card--template");return(0,l.createElement)(c.Card,{className:y,size:"small"},(0,l.createElement)(c.CardHeader,null,(0,l.createElement)(c.__experimentalHeading,{level:4,numberOfLines:1},t),(0,l.createElement)(A,{image:n,title:t})),p&&n?(0,l.createElement)(l.Fragment,null,(0,l.createElement)("div",{style:{width:"100%",flexGrow:1}},(0,l.createElement)("img",{src:n,alt:t,className:"noptin-template-preview__image"})),(0,l.createElement)(c.CardBody,null,g.upgradeText&&(0,l.createElement)(c.__experimentalText,{as:"em",isDestructive:!0},g.upgradeText))):(0,l.createElement)(c.CardBody,{style:{flexGrow:1}},(0,l.createElement)(c.__experimentalVStack,{spacing:4},r&&(0,l.createElement)(c.__experimentalText,{as:"p",variant:"muted"},r),p&&!n&&(0,l.createElement)(c.__experimentalText,{as:"em",variant:"muted"},(0,o.__)("No preview available","newsletter-optin-box")),g.upgradeText&&(0,l.createElement)(c.__experimentalText,{as:"em",isDestructive:!0},g.upgradeText))),(0,l.createElement)(c.CardFooter,{isBorderless:!0,justify:g.secondaryButton?"space-between":"flex-end"},g.secondaryButton,g.button),(0,l.createElement)(c.__experimentalElevation,{value:1,hover:3}))},B=({showTitle:e,selectedCategory:t,cards:r,...n})=>{const a="noptin-campaign-explorer";let o=Object.entries(r);o.some((([,e])=>e.isTemplate))||o.sort(((e,t)=>{const r=["latest_posts_digest","periodic","manual_recipients"],n=r.includes(e[0])||e[1].orderFirst,a=r.includes(t[0])||t[1].orderFirst;return n&&!a?-1:!n&&a?1:e[1].label.localeCompare(t[1].label)}));const i=o.reduce(((e,[t,r])=>(r.forcePremium&&!n.licenseDetails?.key?e[1].push([t,r]):e[0].push([t,r]),e)),[[],[]]);return(0,l.createElement)("div",{className:`${a}__list`},e&&(0,l.createElement)(c.__experimentalHeading,{level:2,lineHeight:"48px",className:`${a}__category-name`},t),(0,l.createElement)("div",{role:"listbox",className:`${a}-list`},i[0].map((([e,t])=>(0,l.createElement)(T,{key:e,name:e,...n,...t}))),i[1].map((([e,t])=>(0,l.createElement)(T,{key:e,name:e,...n,...t})))))};var M=r(848);const N=({cardGroups:e,...t})=>{const r=Object.keys(e).length,[n,a]=(0,l.useState)(Object.keys(e)[0]);(0,l.useEffect)((()=>{r>0&&!e[n]&&a(Object.keys(e)[0])}),[e,n]);const o=r>1,i=(0,l.useMemo)((()=>Object.keys(e)),[e]),s=(0,l.useMemo)((()=>e[n]||{}),[e,n]),c=S("noptin-campaign-explorer",{"noptin-campaign-explorer--show-sidebar":o});return(0,M.jsxs)("div",{className:c,children:[o&&(0,M.jsx)(O,{selectedCategory:n,categories:i,onClickCategory:a}),(0,M.jsx)(B,{showTitle:o,selectedCategory:n,cards:s,...t})]})},P=e=>{if(!e.isOpen)return null;const t=e.steps[e.currentStep];if(t.modal)return(0,l.createElement)(c.Modal,{onRequestClose:e.closeModal,...t.modal.props},t.modal.content);if(t.cardGroups){const r=[...Object.keys(e.stepValues)].pop(),n=(0,l.createElement)(l.Fragment,null,r&&!e.isFirstStep&&(0,l.createElement)(c.Button,{icon:"arrow-left-alt",onClick:()=>e.removeQueryArgs(e.steps[r]?.arg||""),label:(0,o.__)("Back","newsletter-optin-box"),showTooltip:!0})),a=e.isLastStep?void 0:r=>{t.arg&&e.addQueryArg(t.arg,r)};return(0,l.createElement)(c.Modal,{title:e.currentTitle,onRequestClose:e.closeModal,headerActions:n,isFullScreen:!0},(0,l.createElement)(N,{cardGroups:"function"==typeof t.cardGroups?t.cardGroups(e.stepValues):t.cardGroups,licenseDetails:e.licenseDetails,onSelect:a,hrefCallback:t.arg&&e.isLastStep?r=>e.withQueryArg(t.arg,r):void 0,campaign:e.campaign}))}return null},D=({buttonProps:e,...t})=>{const[r,n]=(0,l.useState)(!1),a=(0,l.useCallback)((()=>{n(!0)}),[n]),o=(0,l.useCallback)((()=>{n(!1)}),[n]),i=t.currentStep&&t.hasSteps,s={...e,onClick:i?a:void 0,href:i?void 0:t.url};return(0,l.createElement)(l.Fragment,null,(0,l.createElement)(c.Button,{...s}),(0,l.createElement)(P,{isOpen:r,closeModal:o,...t}))},I=({text:e})=>{const t=(()=>{const e=(0,l.useContext)(x);if(!e)throw new Error("useModal must be used within a ModalProvider");return e})();return(0,l.createElement)(D,{licenseDetails:i.license||{},buttonProps:{variant:"primary",type:"button",text:e||(0,o.__)("Add New Automation","newsletter-optin-box")},...t})},R=({text:e})=>(0,l.createElement)(k,null,(0,l.createElement)(I,{text:e})),L=()=>(0,l.createElement)(c.__experimentalVStack,{alignment:"center",justify:"center",spacing:6,style:{minHeight:320}},(0,l.createElement)(c.Icon,{icon:"admin-generic",size:100,style:{color:"#646970"}}),(0,l.createElement)(c.__experimentalText,{align:"center",color:"#646970",size:16,isBlock:!0},(0,o.__)('Automation rules are simple "if this, then that" commands. Trigger an action when a product is purchased, a user creates an account, someone is tagged, etc.',"newsletter-optin-box")),(0,l.createElement)(R,{text:(0,o.__)("Create your first automation rule","newsletter-optin-box")}),(0,l.createElement)(c.__experimentalText,{align:"center",size:14,isBlock:!0},(0,l.createElement)("a",{href:"https://noptin.com/guide/automation-rules/",style:{color:"#646970"},target:"_blank"},(0,o.__)("Or Learn more","newsletter-optin-box")))),U=window.wp.apiFetch;var z=r.n(U);const F=({ruleId:e})=>{const[t,r]=(0,l.useState)(!1);return(0,l.createElement)(l.Fragment,null,(0,l.createElement)(c.Button,{icon:"trash",size:"compact",showTooltip:!0,label:(0,o.__)("Delete","newsletter-optin-box"),type:"button",onClick:()=>r(!0),isDestructive:!0}),t&&(0,l.createElement)(c.Modal,{onRequestClose:()=>r(!1),title:(0,o.__)("Delete Rule","newsletter-optin-box"),size:"small"},(0,l.createElement)(c.__experimentalVStack,{spacing:4},(0,l.createElement)(c.__experimentalText,null,(0,o.__)("Are you sure you want to delete this automation rule?","newsletter-optin-box")),(0,l.createElement)(c.__experimentalHStack,{spacing:4,justify:"flex-start",alignment:"flex-start"},(0,l.createElement)(c.Button,{variant:"primary",text:(0,o.__)("Delete","newsletter-optin-box"),type:"button",onClick:()=>{r(!1);const t=document.querySelector(`.noptin_automation_rule_${e}`);t&&t.classList.add("noptin-fade-out"),z()({path:`/noptin/v1/automation_rules/${e}`,method:"DELETE"}).then((e=>(t&&t.remove(),e))).catch((e=>{alert(e.message),t&&t.classList.remove("noptin-fade-out")}))},isDestructive:!0}),(0,l.createElement)(c.Button,{variant:"secondary",text:(0,o.__)("Cancel","newsletter-optin-box"),type:"button",onClick:()=>r(!1)})))))},G=({ruleId:e,status:t})=>{const[r,n]=(0,l.useState)(t);return(0,l.createElement)(c.ToggleControl,{checked:r,label:r?(0,o.__)("Active","newsletter-optin-box"):(0,o.__)("Inactive","newsletter-optin-box"),className:"noptin-toggle-button",onChange:()=>{n(!r),z()({path:`/noptin/v1/automation_rules/${e}`,method:"PATCH",data:{status:!r}}).catch((e=>{alert(e.message),n(r)}))},__nextHasNoMarginBottom:!0})},H=e=>(0,l.createElement)(c.__experimentalHStack,{alignment:"center",justify:"flex-end",spacing:1},(0,l.createElement)(c.Button,{href:e.editUrl,label:(0,o.__)("Edit","newsletter-optin-box"),size:"compact",icon:"edit",showTooltip:!0}),(0,l.createElement)(F,{ruleId:e.ruleId}),(0,l.createElement)(G,{ruleId:e.ruleId,status:e.status}));var Q=r(338);const $=(e,t)=>{if(t){const r=t.getAttribute("data-app"),n=r?JSON.parse(r):{};(0,Q.H)(t).render((0,l.createElement)(e,{...n}))}};a()((()=>{$(L,document.getElementById("noptin-automation-rules__editor--add-new__in-table")),document.querySelectorAll(".noptin-automation-rules__editor--add-new__button").forEach((e=>{$(R,e)})),document.querySelectorAll(".noptin-automation-rule-actions__app").forEach((e=>{$(H,e)}))}))},338:(e,t,r)=>{var n=r(795);t.H=n.createRoot,n.hydrateRoot},20:(e,t,r)=>{var n=r(609),a=Symbol.for("react.element"),l=(Symbol.for("react.fragment"),Object.prototype.hasOwnProperty),o=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,i={key:!0,ref:!0,__self:!0,__source:!0};function s(e,t,r){var n,s={},c=null,u=null;for(n in void 0!==r&&(c=""+r),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)l.call(t,n)&&!i.hasOwnProperty(n)&&(s[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps)void 0===s[n]&&(s[n]=t[n]);return{$$typeof:a,type:e,key:c,ref:u,props:s,_owner:o.current}}t.jsx=s,t.jsxs=s},848:(e,t,r)=>{e.exports=r(20)},609:e=>{e.exports=window.React},795:e=>{e.exports=window.ReactDOM}},r={};function n(e){var a=r[e];if(void 0!==a)return a.exports;var l=r[e]={exports:{}};return t[e](l,l.exports,n),l.exports}n.m=t,e=[],n.O=(t,r,a,l)=>{if(!r){var o=1/0;for(u=0;u=l)&&Object.keys(n.O).every((e=>n.O[e](r[s])))?r.splice(s--,1):(i=!1,l0&&e[u-1][2]>l;u--)e[u]=e[u-1];e[u]=[r,a,l]},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={229:0,833:0};n.O.j=t=>0===e[t];var t=(t,r)=>{var a,l,o=r[0],i=r[1],s=r[2],c=0;if(o.some((t=>0!==e[t]))){for(a in i)n.o(i,a)&&(n.m[a]=i[a]);if(s)var u=s(n)}for(t&&t(r);cn(481)));a=n.O(a)})(); \ No newline at end of file +(()=>{"use strict";var e,t={481:(e,t,r)=>{const n=window.wp.domReady;var a=r.n(n),l=r(609);const o=window.wp.i18n,i=window.noptinEmailSettingsMisc||{},s=(i.license,window.wp.url),c=window.wp.components,u=window.noptinEmailEditorSettings||{},m=window.noptinEmailSettingsMisc||{},p=(m.license,u.types||{}),d=(Object.keys(p).map((e=>({value:e,label:p[e].label}))),Object.keys(u.templates||{}).map((e=>({value:e,label:u.templates[e]}))),m.license||{}),_=(d.is_usable&&d.key,/_published|_unpublished|_deleted|_user_role$/),g=["noptin_subscriber_","delete_user","new_user","update_user","wp_login","after_password_reset","create_or_update_"],y=[["woocommerce","subscription"],["latest_","_digest"]],f=["WordPress Users"],b=["latest_posts_digest"],E=["periodic"],w=(e,t=void 0)=>{if(!e||b.includes(e))return!1;if(E.includes(e))return!0;if(t&&f.includes(t))return!0;if(y.some((t=>t.every((t=>e.includes(t))))))return!0;const r=e.replace(/^automation_rule_/,"");return _.test(r)?"post_published"!==r:g.some((e=>r.startsWith(e)))};function h(e,t){const r={};Array.isArray(e)||Object.entries(e).forEach((([e,n])=>{if("email"!==e){if(!n.category){if(!i.isTest)return;n.category="Deprecated"}r[n.category]||(r[n.category]={}),r[n.category][e]={...n,selectText:"triggers"===t?(0,o.__)("Use trigger","newsletter-optin-box"):(0,o.__)("Set-up","newsletter-optin-box"),forcePremium:w(e,n.category)},n.image&&n.image.icon&&["category","editor-table"].includes(n.image.icon)&&(r[n.category][e].forcePremium=!0),n.alt_category&&(r[n.alt_category]||(r[n.alt_category]={}),r[n.alt_category][e]=r[n.category][e])}})),Array.isArray(i.integrations)&&i.integrations.forEach((n=>{n.plan&&"free"!==n.plan&&n[t]&&!Array.isArray(n[t])&&Object.entries(n[t]).forEach((([t,a])=>{a.forEach((({id:a,label:l,description:o,premium:i=!1})=>{if("premium"===n.plan||i)if(e[a]){const t=e[a].category;t&&r[t][a]&&(r[t][a].forcePremium=!0)}else r[t]||(r[t]={}),r[t][a]={name:a,label:l,description:o,category:t,image:n.icon_url,forcePremium:!0,is_installed:!1,installation:n.installation}}))}))}));const n={},a=(0,o.__)("General","newsletter-optin-box");return r.hasOwnProperty(a)&&(n[a]=r[a]),Object.keys(r).sort().forEach((e=>{e!==a&&(n[e]=r[e])})),n}const v={"noptin-trigger":{title:(0,o.__)("Select a trigger for your automation rule","newsletter-optin-box"),show:!0,arg:"noptin-trigger",cardGroups:h(i.data?.triggers||{},"triggers")},"noptin-action":{title:(0,o.__)("Select an action for your automation rule","newsletter-optin-box"),show:!0,arg:"noptin-action",cardGroups:h(i.data?.actions||{},"actions")}},x=(0,l.createContext)(void 0),k=({children:e})=>{const[t,r]=(0,l.useState)(i.data?.add_new||(0,s.addQueryArgs)(window.location.href,{noptin_edit_automation_rule:"0"})),n=(0,l.useMemo)((()=>{let e="";const n={};for(const[r,a]of Object.entries(v)){const l=a.arg?(0,s.getQueryArg)(t,a.arg):"";if(!l){e=r;break}n[r]=l}return{currentTitle:v[e]?.title||"",currentStep:e,isLastStep:e===Object.keys(v).pop(),isFirstStep:e===Object.keys(v)[0],hasSteps:Object.keys(v).length>0,stepValues:n,steps:v,campaign:"automation-rules",removeQueryArgs:(...e)=>{r((0,s.removeQueryArgs)(t,...e))},addQueryArg:(e,n)=>{r((0,s.addQueryArgs)(t,{[e]:n}))},withQueryArg:(e,r)=>(0,s.addQueryArgs)(t,{[e]:r}),url:t}}),[t,r]);return(0,l.createElement)(x.Provider,{value:n},e)};function C(e){var t,r,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e)){var a=e.length;for(t=0;t{const n="noptin-campaign-explorer__sidebar";return(0,l.createElement)("div",{className:n},(0,l.createElement)("div",{className:`${n}__categories-list`},e.map((e=>(0,l.createElement)(c.Button,{key:e,label:e,className:`${n}__categories-list__item`,isPressed:t===e,onClick:()=>{r(e)}},e)))))}),A=({image:e,title:t})=>{if("string"==typeof e&&e.startsWith("http"))return(0,l.createElement)("img",{src:e,width:24,alt:t,style:{maxWidth:24}});if("string"==typeof e)return(0,l.createElement)(c.Icon,{size:24,icon:e,style:{color:"#424242"}});if(e&&"object"==typeof e){const t=e.fill||"#008000",r=e.path||"",n=e.viewBox||"0 0 24 24";return e.path?(0,l.createElement)(c.SVG,{viewBox:n,xmlns:"http://www.w3.org/2000/svg",style:{maxWidth:24}},(0,l.createElement)(c.Path,{fill:t,d:r})):(0,l.createElement)(c.Icon,{size:24,style:{color:t},icon:e.icon})}return(0,l.createElement)(c.Icon,{size:24,icon:"email",style:{color:"#424242"}})},j=({learnMoreUrl:e,previewURL:t,action:r})=>{const[n,a]=(0,l.useState)(!1),[i,s]=(0,l.useState)(!0),u=()=>a(!1);return e?(0,l.createElement)(c.Button,{variant:"secondary",href:e,target:"_blank"},(0,l.createElement)("span",{className:"noptin-selectable-card-action__label"},(0,o.__)("Learn More"))," ",(0,l.createElement)(c.Icon,{size:16,icon:"arrow-right-alt"})):t?(0,l.createElement)(l.Fragment,null,(0,l.createElement)(c.Button,{variant:"secondary",onClick:()=>a(!0)},(0,l.createElement)("span",{className:"noptin-selectable-card-action__label"},(0,o.__)("Preview"))," ",(0,l.createElement)(c.Icon,{size:16,icon:"visibility"})),n&&(0,l.createElement)(c.Modal,{title:(0,o.__)("Preview"),onRequestClose:u,className:"noptin-preview-modal",headerActions:(0,l.createElement)(c.__experimentalHStack,{justify:"flex-end",wrap:!0},r,(0,l.createElement)(c.Button,{variant:r?"secondary":"primary",onClick:u},(0,o.__)("Back to templates"))),isDismissible:!1,isFullScreen:!0},i&&(0,l.createElement)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100%"}},(0,l.createElement)(c.Spinner,null)),(0,l.createElement)("iframe",{src:t,style:{width:"100%",height:"100%",border:"none",display:i?"none":"block"},onLoad:()=>s(!1)}))):null},T=({name:e,label:t,description:r,image:n,useValue:a,onSelect:i,hrefCallback:u,href:m,isTemplate:p,...d})=>{const _=void 0===a?e:a,g=(e=>{if(e.forcePremium?!1!==e.is_installed&&e?.licenseDetails?.key:!1!==e.is_installed){const t=(0,l.createElement)(c.Button,{variant:"primary",onClick:e.onClick,href:e.href},(0,l.createElement)("span",{className:"noptin-selectable-card__label"},e.selectText||(0,o.__)("Select"))," ",(0,l.createElement)(c.Icon,{size:16,icon:"arrow-right-alt"}));return{upgradeText:null,button:t,secondaryButton:(0,l.createElement)(j,{learnMoreUrl:e.learnMoreUrl,previewURL:e.previewURL,action:t})}}const t=(t,r)=>!1===e.is_installed&&e.installation?.[t]?e.installation?.[t]:e.licenseDetails[t]||r,r=t("install_desc",(0,o.__)("Activate your license key to unlock","newsletter-optin-box")),n=t("install_text",(0,o.__)("View Pricing","newsletter-optin-box")),a=t("install_url",(0,s.addQueryArgs)("https://noptin.com/pricing/",{utm_source:e.name||"license",utm_campaign:e.campaign||"noptin",utm_medium:"plugin-dashboard"})),i=(0,l.createElement)(c.Button,{variant:"primary",href:a},(0,l.createElement)("span",{className:"noptin-selectable-card-action__label"},n)," ",(0,l.createElement)(c.Icon,{size:16,icon:"lock"})),u=!e.licenseDetails?.key&&(0,l.createElement)(c.Button,{variant:"secondary",href:e.licenseDetails?.activate_url},(0,l.createElement)("span",{className:"noptin-selectable-card-action__label"},(0,o.__)("Activate"))," ",(0,l.createElement)(c.Icon,{size:16,icon:"unlock"}));return{upgradeText:r,button:i,secondaryButton:e.licenseDetails?.key||e.previewURL?(0,l.createElement)(j,{learnMoreUrl:e.learnMoreUrl,previewURL:e.previewURL,action:[i,u]}):u}})({onClick:(0,l.useCallback)((()=>i?i(_):null),[_,i]),name:e.replace("automation_rule_",""),href:u?u(_):m,...d}),y=S("noptin-selectable-card",`noptin-selectable-card__${_}`,p&&"noptin-selectable-card--template");return(0,l.createElement)(c.Card,{className:y,size:"small"},(0,l.createElement)(c.CardHeader,null,(0,l.createElement)(c.__experimentalHeading,{level:4,numberOfLines:1},t),(0,l.createElement)(A,{image:n,title:t})),p&&n?(0,l.createElement)(l.Fragment,null,(0,l.createElement)("div",{style:{width:"100%",flexGrow:1}},(0,l.createElement)("img",{src:n,alt:t,className:"noptin-template-preview__image"})),(0,l.createElement)(c.CardBody,null,g.upgradeText&&(0,l.createElement)(c.__experimentalText,{as:"em",isDestructive:!0},g.upgradeText))):(0,l.createElement)(c.CardBody,{style:{flexGrow:1}},(0,l.createElement)(c.__experimentalVStack,{spacing:4},r&&(0,l.createElement)(c.__experimentalText,{as:"p",variant:"muted"},r),p&&!n&&(0,l.createElement)(c.__experimentalText,{as:"em",variant:"muted"},(0,o.__)("No preview available","newsletter-optin-box")),g.upgradeText&&(0,l.createElement)(c.__experimentalText,{as:"em",isDestructive:!0},g.upgradeText))),(0,l.createElement)(c.CardFooter,{isBorderless:!0,justify:g.secondaryButton?"space-between":"flex-end"},g.secondaryButton,g.button),(0,l.createElement)(c.__experimentalElevation,{value:1,hover:3}))},B=({showTitle:e,selectedCategory:t,cards:r,...n})=>{const a="noptin-campaign-explorer";let o=Object.entries(r);o.some((([,e])=>e.isTemplate))||o.sort(((e,t)=>{const r=["latest_posts_digest","periodic","manual_recipients"],n=r.includes(e[0])||e[1].orderFirst,a=r.includes(t[0])||t[1].orderFirst;return n&&!a?-1:!n&&a?1:e[1].label.localeCompare(t[1].label)}));const i=o.reduce(((e,[t,r])=>(r.forcePremium&&!n.licenseDetails?.key?e[1].push([t,r]):e[0].push([t,r]),e)),[[],[]]);return(0,l.createElement)("div",{className:`${a}__list`},e&&(0,l.createElement)(c.__experimentalHeading,{level:2,lineHeight:"48px",className:`${a}__category-name`},t),(0,l.createElement)("div",{role:"listbox",className:`${a}-list`},i[0].map((([e,t])=>(0,l.createElement)(T,{key:e,name:e,...n,...t}))),i[1].map((([e,t])=>(0,l.createElement)(T,{key:e,name:e,...n,...t})))))};var P=r(848);const M=({cardGroups:e,...t})=>{const r=Object.keys(e).length,[n,a]=(0,l.useState)(Object.keys(e)[0]);(0,l.useEffect)((()=>{r>0&&!e[n]&&a(Object.keys(e)[0])}),[e,n]);const o=r>1,i=(0,l.useMemo)((()=>Object.keys(e)),[e]),s=(0,l.useMemo)((()=>e[n]||{}),[e,n]),c=S("noptin-campaign-explorer",{"noptin-campaign-explorer--show-sidebar":o});return(0,P.jsxs)("div",{className:c,children:[o&&(0,P.jsx)(O,{selectedCategory:n,categories:i,onClickCategory:a}),(0,P.jsx)(B,{showTitle:o,selectedCategory:n,cards:s,...t})]})},N=e=>{if(!e.isOpen)return null;const t=e.steps[e.currentStep];if(t.modal)return(0,l.createElement)(c.Modal,{onRequestClose:e.closeModal,...t.modal.props},t.modal.content);if(t.cardGroups){const r=[...Object.keys(e.stepValues)].pop(),n=(0,l.createElement)(l.Fragment,null,r&&!e.isFirstStep&&(0,l.createElement)(c.Button,{icon:"arrow-left-alt",onClick:()=>e.removeQueryArgs(e.steps[r]?.arg||""),label:(0,o.__)("Back","newsletter-optin-box"),showTooltip:!0})),a=e.isLastStep?void 0:r=>{t.arg&&e.addQueryArg(t.arg,r)};return(0,l.createElement)(c.Modal,{title:e.currentTitle,onRequestClose:e.closeModal,headerActions:n,isFullScreen:!0},(0,l.createElement)(M,{cardGroups:"function"==typeof t.cardGroups?t.cardGroups(e.stepValues):t.cardGroups,licenseDetails:e.licenseDetails,onSelect:a,hrefCallback:t.arg&&e.isLastStep?r=>e.withQueryArg(t.arg,r):void 0,campaign:e.campaign}))}return null},D=({buttonProps:e,...t})=>{const[r,n]=(0,l.useState)(!1),a=(0,l.useCallback)((()=>{n(!0)}),[n]),o=(0,l.useCallback)((()=>{n(!1)}),[n]),i=t.currentStep&&t.hasSteps,s={...e,onClick:i?a:void 0,href:i?void 0:t.url};return(0,l.createElement)(l.Fragment,null,(0,l.createElement)(c.Button,{...s}),(0,l.createElement)(N,{isOpen:r,closeModal:o,...t}))},I=({text:e})=>{const t=(()=>{const e=(0,l.useContext)(x);if(!e)throw new Error("useModal must be used within a ModalProvider");return e})();return(0,l.createElement)(D,{licenseDetails:i.license||{},buttonProps:{variant:"primary",type:"button",text:e||(0,o.__)("Add New Automation","newsletter-optin-box")},...t})},R=({text:e})=>(0,l.createElement)(k,null,(0,l.createElement)(I,{text:e})),L=()=>(0,l.createElement)(c.__experimentalVStack,{alignment:"center",justify:"center",spacing:6,style:{minHeight:320}},(0,l.createElement)(c.Icon,{icon:"admin-generic",size:100,style:{color:"#646970"}}),(0,l.createElement)(c.__experimentalText,{align:"center",color:"#646970",size:16,isBlock:!0},(0,o.__)('Automation rules are simple "if this, then that" commands. Trigger an action when a product is purchased, a user creates an account, someone is tagged, etc.',"newsletter-optin-box")),(0,l.createElement)(R,{text:(0,o.__)("Create your first automation rule","newsletter-optin-box")}),(0,l.createElement)(c.__experimentalText,{align:"center",size:14,isBlock:!0},(0,l.createElement)("a",{href:"https://noptin.com/guide/automation-rules/",style:{color:"#646970"},target:"_blank"},(0,o.__)("Or Learn more","newsletter-optin-box")))),U=window.wp.apiFetch;var z=r.n(U);const F=({ruleId:e})=>{const[t,r]=(0,l.useState)(!1);return(0,l.createElement)(l.Fragment,null,(0,l.createElement)(c.Button,{icon:"trash",size:"compact",showTooltip:!0,label:(0,o.__)("Delete","newsletter-optin-box"),type:"button",onClick:()=>r(!0),isDestructive:!0}),t&&(0,l.createElement)(c.Modal,{onRequestClose:()=>r(!1),title:(0,o.__)("Delete Rule","newsletter-optin-box"),size:"small"},(0,l.createElement)(c.__experimentalVStack,{spacing:4},(0,l.createElement)(c.__experimentalText,null,(0,o.__)("Are you sure you want to delete this automation rule?","newsletter-optin-box")),(0,l.createElement)(c.__experimentalHStack,{spacing:4,justify:"flex-start",alignment:"flex-start"},(0,l.createElement)(c.Button,{variant:"primary",text:(0,o.__)("Delete","newsletter-optin-box"),type:"button",onClick:()=>{r(!1);const t=document.querySelector(`.noptin_automation_rule_${e}`);t&&t.classList.add("noptin-fade-out"),z()({path:`/noptin/v1/automation_rules/${e}`,method:"DELETE"}).then((e=>(t&&t.remove(),e))).catch((e=>{alert(e.message),t&&t.classList.remove("noptin-fade-out")}))},isDestructive:!0}),(0,l.createElement)(c.Button,{variant:"secondary",text:(0,o.__)("Cancel","newsletter-optin-box"),type:"button",onClick:()=>r(!1)})))))},G=({ruleId:e,status:t})=>{const[r,n]=(0,l.useState)(t);return(0,l.createElement)(c.ToggleControl,{checked:r,label:r?(0,o.__)("Active","newsletter-optin-box"):(0,o.__)("Inactive","newsletter-optin-box"),className:"noptin-toggle-button",onChange:()=>{n(!r),z()({path:`/noptin/v1/automation_rules/${e}`,method:"PATCH",data:{status:!r}}).catch((e=>{alert(e.message),n(r)}))},__nextHasNoMarginBottom:!0})},H=e=>(0,l.createElement)(c.__experimentalHStack,{alignment:"center",justify:"flex-end",spacing:1},(0,l.createElement)(c.Button,{href:e.editUrl,label:(0,o.__)("Edit","newsletter-optin-box"),size:"compact",icon:"edit",showTooltip:!0}),(0,l.createElement)(F,{ruleId:e.ruleId}),(0,l.createElement)(G,{ruleId:e.ruleId,status:e.status}));var Q=r(338);const $=(e,t)=>{if(t){const r=t.getAttribute("data-app"),n=r?JSON.parse(r):{};(0,Q.H)(t).render((0,l.createElement)(e,{...n}))}};a()((()=>{$(L,document.getElementById("noptin-automation-rules__editor--add-new__in-table")),document.querySelectorAll(".noptin-automation-rules__editor--add-new__button").forEach((e=>{$(R,e)})),document.querySelectorAll(".noptin-automation-rule-actions__app").forEach((e=>{$(H,e)}))}))},338:(e,t,r)=>{var n=r(795);t.H=n.createRoot,n.hydrateRoot},20:(e,t,r)=>{var n=r(609),a=Symbol.for("react.element"),l=(Symbol.for("react.fragment"),Object.prototype.hasOwnProperty),o=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,i={key:!0,ref:!0,__self:!0,__source:!0};function s(e,t,r){var n,s={},c=null,u=null;for(n in void 0!==r&&(c=""+r),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)l.call(t,n)&&!i.hasOwnProperty(n)&&(s[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps)void 0===s[n]&&(s[n]=t[n]);return{$$typeof:a,type:e,key:c,ref:u,props:s,_owner:o.current}}t.jsx=s,t.jsxs=s},848:(e,t,r)=>{e.exports=r(20)},609:e=>{e.exports=window.React},795:e=>{e.exports=window.ReactDOM}},r={};function n(e){var a=r[e];if(void 0!==a)return a.exports;var l=r[e]={exports:{}};return t[e](l,l.exports,n),l.exports}n.m=t,e=[],n.O=(t,r,a,l)=>{if(!r){var o=1/0;for(u=0;u=l)&&Object.keys(n.O).every((e=>n.O[e](r[s])))?r.splice(s--,1):(i=!1,l0&&e[u-1][2]>l;u--)e[u]=e[u-1];e[u]=[r,a,l]},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={229:0,833:0};n.O.j=t=>0===e[t];var t=(t,r)=>{var a,l,o=r[0],i=r[1],s=r[2],c=0;if(o.some((t=>0!==e[t]))){for(a in i)n.o(i,a)&&(n.m[a]=i[a]);if(s)var u=s(n)}for(t&&t(r);cn(481)));a=n.O(a)})(); \ No newline at end of file diff --git a/build/Subscribers/Records.php b/build/Subscribers/Records.php index 997ceba4..d78c5feb 100644 --- a/build/Subscribers/Records.php +++ b/build/Subscribers/Records.php @@ -181,7 +181,7 @@ public function get_triggers() { strtolower( $label ) ); - $triggers[ $state ]['extra_args'] = array( + $triggers[ $state ]['extra_args'] = array( 'previous_status' => array( 'label' => __( 'Previous status', 'newsletter-optin-box' ), 'description' => __( 'The previous subscriber status.', 'newsletter-optin-box' ), @@ -258,8 +258,8 @@ public function get_triggers() { 'previous_name' => 'add_to_' . $merge_tag, 'description' => sprintf( /* translators: %s: field label */ - __( 'When a %1$s is added to %2$s', 'newsletter-optin-box' ), - strtolower( $this->singular_label ), + __( 'When a %1$s is added to %2$s', 'newsletter-optin-box' ), + strtolower( $this->singular_label ), strtolower( $field['label'] ) ), 'subject' => 'subscriber', @@ -288,8 +288,8 @@ public function get_triggers() { 'previous_name' => 'remove_from_' . $merge_tag, 'description' => sprintf( /* translators: %s: field label */ - __( 'When a %1$s is removed from %2$s', 'newsletter-optin-box' ), - strtolower( $this->label ), + __( 'When a %1$s is removed from %2$s', 'newsletter-optin-box' ), + strtolower( $this->label ), strtolower( $field['label'] ) ), 'subject' => 'subscriber', @@ -479,7 +479,7 @@ public function on_field_add( $subscriber, $value ) { * @param \Hizzle\Noptin\DB\Subscriber $subscriber The subscriber. * @param $campaign_id The campaign that was opened. */ - public function on_open( $subscriber, $campaign_id ) { + public function on_open( $subscriber, $campaign_id ) { $subscriber = noptin_get_subscriber( $subscriber ); if ( empty( $subscriber ) || ! is_a( $subscriber, '\Hizzle\Noptin\DB\Subscriber' ) ) { @@ -496,7 +496,7 @@ public function on_open( $subscriber, $campaign_id ) { ); $this->trigger( 'open_email', $args ); - } + } /** * Fired when a subscriber clicks on a link in an email campaign. @@ -505,7 +505,7 @@ public function on_open( $subscriber, $campaign_id ) { * @param $campaign_id The campaign that was opened. * @param $url The url that was clicked. */ - public function on_click( $subscriber, $campaign_id, $url ) { + public function on_click( $subscriber, $campaign_id, $url ) { $subscriber = noptin_get_subscriber( $subscriber ); if ( empty( $subscriber ) || ! is_a( $subscriber, '\Hizzle\Noptin\DB\Subscriber' ) ) { @@ -525,7 +525,7 @@ public function on_click( $subscriber, $campaign_id, $url ) { ); $this->trigger( 'open_email', $args ); - } + } /** * Retrieves several subscribers. @@ -857,7 +857,7 @@ public function get_test_id() { * @return array $actions The actions. */ public function get_actions() { - return array_merge( + $actions = array_merge( parent::get_actions(), array( 'subscribe' => array( @@ -965,6 +965,122 @@ public function get_actions() { ), ) ); + + // Custom fields. + if ( ! class_exists( '\Noptin\Addons_Pack\Custom_Fields\Main' ) ) { + foreach ( $this->subscriber_fields() as $merge_tag => $field ) { + + if ( 'confirmed' === $merge_tag ) { + $field['label'] = __( 'Email confirmation status', 'newsletter-optin-box' ); + } + + if ( empty( $field['multiple'] ) ) { + $actions[ "change_{$merge_tag}" ] = array( + 'label' => sprintf( + // translators: %1$s: Object type label, %2$s: Field label. + __( '%1$s > Update %2$s', 'newsletter-optin-box' ), + $this->singular_label, + $field['label'] + ), + 'description' => sprintf( + /* translators: %s: field label */ + __( 'Updates %s', 'newsletter-optin-box' ), + strtolower( $field['label'] ) + ), + 'icon' => array( + 'icon' => 'editor-table', + 'fill' => '#008000', + ), + 'callback' => __CLASS__ . '::update_subscriber_field', + 'extra_settings' => array( + 'email' => array( + 'label' => __( 'Subscriber ID or email address', 'newsletter-optin-box' ), + 'type' => 'string', + 'default' => '[[email]]', + 'required' => true, + ), + $merge_tag => array( + 'el' => 'select', + 'label' => $field['label'], + 'options' => $field['options'], + 'required' => true, + 'default' => '', + ), + ), + ); + } else { + $actions[ "add_to_{$merge_tag}" ] = array( + 'label' => sprintf( + // translators: %1$s: Object type label, %2$s: Field label. + __( '%1$s > Add to %2$s', 'newsletter-optin-box' ), + $this->singular_label, + $field['label'] + ), + 'description' => sprintf( + /* translators: %s: field label */ + __( 'Adds the subscriber to %s', 'newsletter-optin-box' ), + strtolower( $field['label'] ) + ), + 'icon' => array( + 'icon' => 'category', + 'fill' => '#008000', + ), + 'callback' => __CLASS__ . '::add_to_subscriber_field', + 'extra_settings' => array( + 'email' => array( + 'label' => __( 'Subscriber ID or email address', 'newsletter-optin-box' ), + 'type' => 'string', + 'default' => '[[email]]', + 'required' => true, + ), + $merge_tag => array( + 'el' => 'tags' === $merge_tag ? 'input' : 'multi_checkbox_alt', + 'label' => $field['label'], + 'options' => $field['options'], + 'required' => true, + 'default' => array(), + ), + ), + ); + + $actions[ "remove_from_{$merge_tag}" ] = array( + 'label' => sprintf( + // translators: %1$s: Object type label, %2$s: Field label. + __( '%1$s > Remove from %2$s', 'newsletter-optin-box' ), + $this->singular_label, + $field['label'] + ), + 'description' => sprintf( + /* translators: %s: field label */ + __( 'Removes the subscriber from %s', 'newsletter-optin-box' ), + strtolower( $field['label'] ) + ), + 'icon' => array( + 'icon' => 'category', + 'fill' => '#008000', + ), + 'callback' => __CLASS__ . '::remove_from_subscriber_field', + 'extra_settings' => array( + 'email' => array( + 'label' => __( 'Subscriber ID or email address', 'newsletter-optin-box' ), + 'type' => 'string', + 'default' => '[[email]]', + 'required' => true, + ), + $merge_tag => array( + 'el' => 'tags' === $merge_tag ? 'input' : 'multi_checkbox_alt', + 'label' => $field['label'], + 'options' => $field['options'], + 'required' => true, + 'default' => array(), + ), + ), + ); + } + } + } + + return $actions; } /** @@ -972,17 +1088,80 @@ public function get_actions() { * * @param array $args */ - public static function update_subscriber_field( $args ) { + public static function update_subscriber_field( $args, $action_id = 'custom-field' ) { if ( empty( $args['email'] ) ) { return new \WP_Error( 'noptin_invalid_email', 'Invalid email address or subscriber ID.' ); } + $action_args = array(); + + if ( 'custom-field' === $action_id ) { + $action_args = array( + $args['field_name'] => isset( $args['field_value'] ) ? $args['field_value'] : '', + ); + } + + if ( 0 === strpos( $action_id, 'change_' ) ) { + $field_name = str_replace( 'change_', '', $action_id ); + $action_args = array( + $field_name => isset( $args[ $field_name ] ) ? $args[ $field_name ] : '', + ); + } + return update_noptin_subscriber( $args['email'], - array( - $args['field_name'] => isset( $args['field_value'] ) ? $args['field_value'] : '', - ) + $action_args ); } + + /** + * Processes a subscriber action. + * + * @param array $args + */ + public static function add_to_subscriber_field( $args, $action_id ) { + + if ( empty( $args['email'] ) ) { + return new \WP_Error( 'noptin_invalid_email', 'Invalid email address or subscriber ID.' ); + } + + $subscriber = noptin_get_subscriber( $args['email'] ); + + if ( ! $subscriber->exists() ) { + return new \WP_Error( 'noptin_subscriber_not_found', 'Subscriber not found.' ); + } + + $field_name = str_replace( 'add_to_', '', $action_id ); + $field_value = noptin_parse_list( isset( $args[ $field_name ] ) ? $args[ $field_name ] : array(), true ); + $existing = noptin_parse_list( $subscriber->get( $field_name, array() ), true ); + + $subscriber->set( $field_name, array_unique( array_merge( $existing, $field_value ) ) ); + $subscriber->save(); + } + + /** + * Processes a subscriber action. + * + * @param array $args + */ + public static function remove_from_subscriber_field( $args, $action_id ) { + + if ( empty( $args['email'] ) ) { + return new \WP_Error( 'noptin_invalid_email', 'Invalid email address or subscriber ID.' ); + } + + $subscriber = noptin_get_subscriber( $args['email'] ); + + if ( ! $subscriber->exists() ) { + return new \WP_Error( 'noptin_subscriber_not_found', 'Subscriber not found.' ); + } + + $field_name = str_replace( 'remove_from_', '', $action_id ); + $field_value = noptin_parse_list( isset( $args[ $field_name ] ) ? $args[ $field_name ] : array(), true ); + $existing = noptin_parse_list( $subscriber->get( $field_name, array() ), true ); + + $subscriber->set( $field_name, array_unique( array_diff( $existing, $field_value ) ) ); + $subscriber->save(); + } } diff --git a/includes/class-noptin-custom-fields.php b/includes/class-noptin-custom-fields.php index 46b376d6..2116aaa8 100644 --- a/includes/class-noptin-custom-fields.php +++ b/includes/class-noptin-custom-fields.php @@ -88,7 +88,7 @@ public static function default_fields() { 'label' => __( 'First Name', 'newsletter-optin-box' ), 'visible' => true, 'required' => false, - 'predefined' => true, + 'predefined' => false, ), array( 'type' => 'last_name', @@ -96,7 +96,7 @@ public static function default_fields() { 'label' => __( 'Last Name', 'newsletter-optin-box' ), 'visible' => true, 'required' => false, - 'predefined' => true, + 'predefined' => false, ), array( 'type' => 'email', diff --git a/includes/class-noptin-dynamic-content-tags.php b/includes/class-noptin-dynamic-content-tags.php index d8fd6087..d3a44d3f 100644 --- a/includes/class-noptin-dynamic-content-tags.php +++ b/includes/class-noptin-dynamic-content-tags.php @@ -357,6 +357,14 @@ protected function replace_with_brackets( $content, $escape_function = '' ) { */ protected function replace_with_regex( $content, $regex, $escape_function = '' ) { + if ( is_array( $content ) ) { + foreach ( $content as $key => $value ) { + $content[ $key ] = $this->replace_with_regex( $value, $regex, $escape_function ); + } + + return $content; + } + if ( ! is_string( $content ) || empty( $content ) ) { return $content; } diff --git a/includes/field-types/class-text.php b/includes/field-types/class-text.php index 85f418db..74fcdb60 100644 --- a/includes/field-types/class-text.php +++ b/includes/field-types/class-text.php @@ -77,6 +77,12 @@ public function filter_db_schema( $schema, $custom_field ) { ) ); + if ( 'first_name' === $custom_field['merge_tag'] || 'last_name' === $custom_field['merge_tag'] ) { + $schema[ $column ]['length'] = 100; + $schema[ $column ]['nullable'] = false; + $schema[ $column ]['default'] = ''; + } + // Sanitize options. if ( is_callable( array( $this, 'sanitize_value' ) ) ) { $schema[ $column ]['sanitize_callback'] = array( $this, 'sanitize_value' ); diff --git a/includes/subscriber.php b/includes/subscriber.php index 1487d866..c974c5d2 100644 --- a/includes/subscriber.php +++ b/includes/subscriber.php @@ -1256,6 +1256,10 @@ function get_noptin_custom_fields( $public_only = false ) { } } + if ( 'first_name' === $field['merge_tag'] || 'last_name' === $field['merge_tag'] ) { + $prepared_field['predefined'] = false; + } + $fields[] = $prepared_field; } diff --git a/noptin.php b/noptin.php index a2dc720c..c5ec7ccb 100644 --- a/noptin.php +++ b/noptin.php @@ -11,7 +11,7 @@ * Description: A very fast and lightweight WordPress newsletter plugin * Author: Noptin Newsletter * Author URI: https://github.com/picocodes - * Version: 3.6.1 + * Version: 3.6.2 * Text Domain: newsletter-optin-box * License: GPLv3 * License URI: http://www.gnu.org/licenses/gpl-3.0.txt @@ -46,7 +46,7 @@ class Noptin { * @var string Plugin version * @since 1.0.0 */ - public $version = '3.6.1'; + public $version = '3.6.2'; /** * The current database version. diff --git a/package.json b/package.json index 38bb5d04..bcbf14f2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "noptin", - "version": "3.6.0", + "version": "3.6.2", "private": true, "description": "WordPress Newsletter Plugin", "scripts": { diff --git a/readme.txt b/readme.txt index e3e68bda..912a9ec2 100644 --- a/readme.txt +++ b/readme.txt @@ -4,8 +4,8 @@ Tags: newsletter, newsletter form, newsletter subscribers, newsletter widget, wo Requires at least: 6.4 Tested up to: 6.6 Requires PHP: 7.2 -Version: 3.6.1 -Stable tag: 3.6.1 +Version: 3.6.2 +Stable tag: 3.6.2 License: GPLv3 License URI: https://www.gnu.org/licenses/gpl-3.0.html Donate link: https://noptin.com/products/?utm_source=wp-repo&utm_medium=donate&utm_campaign=readme @@ -137,6 +137,9 @@ Yeah. Your newsletter subscription forms will take your theme's default styling. == Changelog == += 3.6.2 = +* Fix: Subscriber imported automated emails not sending. + = 3.6.1 = * Fix: Submission redirect not working for newsletter forms created using the advanced form builder. diff --git a/src/DB/Schema.php b/src/DB/Schema.php index 1433a2eb..5ccf1770 100644 --- a/src/DB/Schema.php +++ b/src/DB/Schema.php @@ -180,22 +180,6 @@ public function add_subscribers_table( $schema ) { 'is_dynamic' => true, ), - 'first_name' => array( - 'type' => 'VARCHAR', - 'length' => 100, - 'description' => __( "The subscriber's first name.", 'newsletter-optin-box' ), - 'nullable' => false, - 'default' => '', - ), - - 'last_name' => array( - 'type' => 'VARCHAR', - 'length' => 100, - 'description' => __( "The subscriber's last name.", 'newsletter-optin-box' ), - 'nullable' => false, - 'default' => '', - ), - 'email' => array( 'type' => 'VARCHAR', 'length' => 255, @@ -208,7 +192,7 @@ public function add_subscribers_table( $schema ) { foreach ( get_noptin_custom_fields() as $custom_field ) { // Skip first name, last name and email. - if ( ! in_array( $custom_field['merge_tag'], array( 'first_name', 'last_name', 'email' ), true ) ) { + if ( ! in_array( $custom_field['merge_tag'], array( 'email' ), true ) ) { $props = array_merge( $props, noptin_convert_custom_field_to_schema( $custom_field ) ); } } diff --git a/src/Objects/Action.php b/src/Objects/Action.php index ac70c298..a69e4e3f 100644 --- a/src/Objects/Action.php +++ b/src/Objects/Action.php @@ -142,14 +142,28 @@ public function get_rule_table_description( $rule ) { } if ( ! empty( $args['show_in_meta'] ) || ! empty( $args['required'] ) ) { - $value = isset( $settings[ $key ] ) ? esc_html( $settings[ $key ] ) : ''; + $value = isset( $settings[ $key ] ) ? $settings[ $key ] : ''; if ( $value && ! empty( $args['options'] ) ) { - $value = isset( $args['options'][ $value ] ) ? $args['options'][ $value ] : $value; + $new_value = array(); + + foreach ( (array) $value as $v ) { + if ( isset( $args['options'][ $v ] ) ) { + $new_value[] = $args['options'][ $v ]; + } else { + $new_value[] = $v; + } + } + + $value = $new_value; + } + + if ( is_array( $value ) ) { + $value = implode( ', ', $value ); } if ( $value ) { - $meta[ esc_html( $args['label'] ) ] = $value; + $meta[ esc_html( $args['label'] ) ] = esc_html( $value ); } } }