"use strict";(globalThis.webpackChunk=globalThis.webpackChunk||[]).push([[192],{19733(e,t,a){var i=a(79124),n=a(13722),s=a(14762),l=a(7378),r=a(69139),o=a(14755),d=a(84051),c=a(4686),u=a(25354),m=a(83673),p=a(80502),g=a(85123);let _=!1;function b(){if(_)return;const e=window.mailpoet_tags_api;p.default.use(p.default.createRootURLMiddleware(`${e.root}/`)),p.default.use(p.default.createNonceMiddleware(e.nonce)),_=!0}function h(e){const t=window.mailpoet_tags_subscribers_listing_url??"?page=mailpoet-subscribers";return void 0===e?t:`${t}#/filter[tag=${e}]`}const f=[{id:"name",label:(0,r.__)("Name","mailpoet"),type:"text",enableGlobalSearch:!0,enableSorting:!0},{id:"description",label:(0,r.__)("Description","mailpoet"),type:"text",enableSorting:!1,enableGlobalSearch:!1,render:({item:e})=>(0,l.createElement)("span",null,e.description||"—")},{id:"subscribers_count",label:(0,r.__)("Subscribers","mailpoet"),type:"integer",enableSorting:!0,enableGlobalSearch:!1,render:({item:e})=>(0,l.createElement)("a",{href:h(e.id)},e.subscribers_count.toLocaleString())},{id:"created_at",label:(0,r.__)("Created","mailpoet"),type:"datetime",enableSorting:!0,enableGlobalSearch:!1,render:({item:e})=>(0,l.createElement)("span",null,e.created_at?m.U.Date.short(e.created_at):"")}],x=[{id:"name",label:(0,r.__)("Name","mailpoet"),type:"text",isValid:{required:!0,minLength:1}},{id:"description",label:(0,r.__)("Description","mailpoet"),type:"text",Edit:{control:"textarea",rows:3}}];var y=a(77779),w=a(13911),S=a(37059),j=a(64929),v=a(69611),k=a(62391),T=a(86106);function A({initialTag:e,onClose:t,onSuccess:a}){const i=!!e,[n,s]=(0,l.useState)(()=>({name:e?.name??"",description:e?.description??""})),[o,d]=(0,l.useState)(!1),[c,u]=(0,l.useState)(null);(0,l.useEffect)(()=>{requestAnimationFrame(()=>{const e=document.querySelector(".mailpoet-tags-form-modal input");e?.focus()})},[]);const m=i?(0,r.__)("Edit tag","mailpoet"):(0,r.__)("Add new tag","mailpoet");return(0,T.jsx)(y.A,{title:m,onRequestClose:t,className:"mailpoet-tags-form-modal",focusOnMount:!0,children:(0,T.jsxs)("form",{onSubmit:async function(t){if(t.preventDefault(),n.name.trim()){d(!0),u(null);try{const t={name:n.name.trim(),description:n.description},i=e?await async function(e,t){return b(),(await(0,p.default)({path:`/mailpoet/v1/tags/${e}`,method:"PUT",data:t})).data}(e.id,t):await async function(e){return b(),(await(0,p.default)({path:"/mailpoet/v1/tags",method:"POST",data:e})).data}(t);a(i)}catch(e){const t=e;u(t?.message||(0,r.__)("Something went wrong. Please try again.","mailpoet"))}finally{d(!1)}}else u((0,r.__)("Tag name is required.","mailpoet"))},children:[(0,T.jsx)(k.A,{data:n,fields:x,form:{fields:["name","description"]},onChange:e=>s(t=>({...t,...e}))}),c&&(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(w.A,{marginTop:4}),(0,T.jsx)("div",{className:"mailpoet-tags-form-error",role:"alert",children:c})]}),(0,T.jsx)(w.A,{marginTop:6}),(0,T.jsxs)(S.A,{justify:"flex-end",gap:3,children:[(0,T.jsx)(j.A,{children:(0,T.jsx)(v.Ay,{variant:"tertiary",onClick:t,disabled:o,__next40pxDefaultSize:!0,children:(0,r.__)("Cancel","mailpoet")})}),(0,T.jsx)(j.A,{children:(0,T.jsx)(v.Ay,{variant:"primary",type:"submit",isBusy:o,disabled:o,__next40pxDefaultSize:!0,children:i?(0,r.__)("Save","mailpoet"):(0,r.__)("Create tag","mailpoet")})})]})]})})}const C={type:"table",perPage:20,page:1,sort:{field:"name",direction:"asc"},fields:["description","subscribers_count","created_at"],titleField:"name",showTitle:!0};function E(){const[e,t]=(0,l.useState)(C),[a,i]=(0,l.useState)([]),[n,s]=(0,l.useState)({count:0,pages:0}),[m,_]=(0,l.useState)(!1),[x,y]=(0,l.useState)([]),[w,S]=(0,l.useState)({kind:"closed"}),[j,v]=(0,l.useState)(null),[k,E]=(0,l.useState)(null),P=(0,l.useRef)(0),D=(0,l.useCallback)(async()=>{const a=P.current+1;P.current=a,_(!0);try{const n=e.page??1,l=await async function(e={}){return b(),(await(0,p.default)({path:(0,g.F)("/mailpoet/v1/tags",e),method:"GET"})).data}({search:e.search||"",orderby:e.sort?.field??"name",order:e.sort?.direction??"asc",page:n,per_page:e.perPage??20});if(a!==P.current)return;const r=Math.max(1,l.meta.pages);if(n>r)return void t(e=>({...e,page:r}));i(l.items),s(l.meta)}catch(e){if(a!==P.current)return;const t=e;v(t?.message||(0,r.__)("Failed to load tags.","mailpoet"))}finally{a===P.current&&_(!1)}},[e.search,e.sort,e.page,e.perPage]);(0,l.useEffect)(()=>{D()},[D]);const F=(0,l.useCallback)(async e=>{const t=1===e.length?(0,r.__)("Delete this tag? It will be removed from all subscribers.","mailpoet"):(0,r.sprintf)((0,r._n)("Delete %d tag? It will be removed from all subscribers.","Delete %d tags? They will be removed from all subscribers.",e.length,"mailpoet"),e.length);if(window.confirm(t))try{1===e.length?await async function(e){b(),await(0,p.default)({path:`/mailpoet/v1/tags/${e}`,method:"DELETE"})}(e[0]):await async function(e){return b(),(await(0,p.default)({path:"/mailpoet/v1/tags/bulk-delete",method:"POST",data:{ids:e}})).data.deleted}(e),y([]),E(1===e.length?(0,r.__)("Tag deleted.","mailpoet"):(0,r.sprintf)((0,r._n)("%d tag deleted.","%d tags deleted.",e.length,"mailpoet"),e.length)),D()}catch(e){const t=e;v(t?.message||(0,r.__)("Failed to delete tags.","mailpoet"))}},[D]),N=(0,l.useMemo)(()=>[{id:"edit",label:(0,r.__)("Edit","mailpoet"),isPrimary:!0,icon:"edit",supportsBulk:!1,callback:e=>{e[0]&&S({kind:"edit",tag:e[0]})}},{id:"delete",label:(0,r.__)("Delete","mailpoet"),isPrimary:!1,supportsBulk:!0,callback:e=>{F(e.map(e=>e.id))}}],[F]),I=(0,l.useMemo)(()=>({totalItems:n.count,totalPages:n.pages}),[n]);return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(u.x,{}),(0,T.jsx)(c.z,{heading:(0,r.__)("Tags","mailpoet"),headingPrefix:(0,T.jsx)(c.o,{href:h(),label:(0,r.__)("Subscribers","mailpoet"),"aria-label":(0,r.__)("Back to subscribers list","mailpoet")}),children:(0,T.jsx)("button",{type:"button",className:"page-title-action",onClick:()=>S({kind:"create"}),"data-automation-id":"add-new-tag-button",children:(0,r.__)("Add new tag","mailpoet")})}),j&&(0,T.jsx)(o.A,{status:"error",onRemove:()=>v(null),children:j}),k&&(0,T.jsx)(o.A,{status:"success",onRemove:()=>E(null),children:k}),(0,T.jsx)("div",{className:"mailpoet-tags-dataviews",children:(0,T.jsxs)(d.A,{data:a,fields:f,view:e,onChangeView:t,actions:N,paginationInfo:I,defaultLayouts:{table:{}},getItemId:e=>String(e.id),selection:x,onChangeSelection:y,isLoading:m,empty:(0,T.jsx)("div",{children:(0,r.__)("No tags yet.","mailpoet")}),children:[(0,T.jsx)("div",{className:"mailpoet-tags-dataviews__toolbar",children:(0,T.jsx)(d.A.Search,{label:(0,r.__)("Search tags","mailpoet")})}),(0,T.jsx)(d.A.Layout,{}),(0,T.jsx)(d.A.Footer,{})]})}),"closed"!==w.kind&&(0,T.jsx)(A,{initialTag:"edit"===w.kind?w.tag:void 0,onClose:()=>S({kind:"closed"}),onSuccess:e=>{S({kind:"closed"}),E("edit"===w.kind?(0,r.sprintf)((0,r.__)('Tag "%s" updated.',"mailpoet"),e.name):(0,r.sprintf)((0,r.__)('Tag "%s" created.',"mailpoet"),e.name)),D()}})]})}function P(){return(0,T.jsx)(n.F.Provider,{value:(0,n.f)(window),children:(0,T.jsx)(s.ErrorBoundary,{children:(0,T.jsx)(E,{})})})}const D=document.getElementById("mailpoet_tags_container");D&&((0,s.registerTranslations)(),(0,i.H)(D).render((0,T.jsx)(P,{})))},41669(e){e.exports=jQuery}},e=>{e.O(0,[223],()=>e(e.s=19733)),e.O()}]);