"use strict";(self.webpackChunkPlesk=self.webpackChunkPlesk||[]).push([["components/pages/SpamFilterWhiteListPage"],{1096:(e,t,s)=>{s.r(t),s.d(t,{SORT_ASC:()=>c,SORT_DESC:()=>m,default:()=>f});var n=s(245),i=s(247),o=s.n(i),r=s(246),a=s(90);const l=a.Locale.getTranslate("components.list"),d=a.Locale.getSection("components.list"),c="ASC",m="DESC",u="all",p={set(e,t){localStorage.setItem(e,JSON.stringify(t))},get(e){const t=localStorage.getItem(e);return JSON.parse(t)}},g=e=>`list-sort_${e}`,y=e=>`list-page_${e}`,h=({id:e,data:t,columns:s,itemsPerPage:i,itemsPerPageOptions:o,sortColumn:a,sortDirection:m,searchField:h,locale:f,emptyView:P,emptyFilteredView:x,toolbar:T,selection:j,onSelectionChange:S,searchBarInputProps:b,rowKey:C,...L})=>{const{sortColumn:F,sortDirection:w,setSortState:A}=((e,{sortColumn:t,sortDirection:s})=>{const[{sortColumn:i,sortDirection:o},r]=(0,n.useState)({sortColumn:p.get(g(e))?.sortColumn??t,sortDirection:p.get(g(e))?.sortDirection??s});return{sortColumn:i,sortDirection:o,setSortState:t=>{r((e=>({...e,...t}))),p.set(g(e),{...p.get(g(e)),...t})}}})(e,{sortColumn:a??s.find((({sortable:e})=>e))?.key,sortDirection:m}),{page:D,itemsPerPage:v,searchPattern:k,setPageState:B}=((e,{itemsPerPage:t})=>{const[{page:s,itemsPerPage:i,searchPattern:o},r]=(0,n.useState)({page:p.get(y(e))?.page??1,itemsPerPage:p.get(y(e))?.itemsPerPage??t,searchPattern:p.get(y(e))?.searchPattern??""});return{page:s,itemsPerPage:i,searchPattern:o,setPageState:t=>{r((e=>({...e,...t}))),p.set(y(e),{...p.get(y(e)),...t})}}})(e,{itemsPerPage:o.includes(i)?i:o[0]}),R=(0,n.useMemo)((()=>k?x??(0,n.jsx)(r.ListEmptyView,{reason:"filtered",title:(0,n.jsx)(l,{content:"emptyViewFilteredTitle"}),description:(0,n.jsx)(l,{content:"emptyViewFilteredDescription"})}):P??(0,n.jsx)(r.ListEmptyView,{title:(0,n.jsx)(l,{content:"emptyViewTitle"})})),[k,P,x]),O=(0,n.useMemo)((()=>s.map((({sortDataField:e,...t})=>t))),[s]),M=(0,n.useMemo)((()=>h&&k?t.filter((e=>(Array.isArray(h)?h:[h]).some((t=>e[t]&&String(e[t]).toLowerCase().includes(k.toLowerCase()))))):t),[t,k,h]),V=(0,n.useMemo)((()=>{if(!F)return M;const e=s.find((({key:e})=>e===F))?.sortDataField??F,t=s.find((({key:e})=>e===F))?.sort??((t,s)=>t[e]<s[e]?-1:t[e]>s[e]?1:0);return[...M].sort(((e,s)=>c===w?t(e,s):t(s,e)))}),[M,F,w,s]),E=(0,n.useMemo)((()=>{if(v===u)return V;const e=v*(D-1),t=e+v;return V.slice(e,t)}),[D,V,v]),q=(0,n.useCallback)((e=>{B({searchPattern:e}),e!==k&&B({page:1})}),[k]),$=(0,n.useCallback)((e=>{B({itemsPerPage:e});(e===u?1:Math.ceil(M.length/e))<D&&B({page:1})}),[M.length,D]);return(0,n.useEffect)((()=>{if("function"==typeof S&&j.length){const e=M.map((e=>{return t=e,"function"==typeof(s=C)?s(t):t[s];var t,s})).filter((e=>j.includes(e)));S(e)}}),[M]),(0,n.jsx)(r.List,{pagination:(0,n.jsx)(r.Pagination,{current:D,total:v===u?1:Math.ceil(M.length/v),onSelect:e=>B({page:e}),itemsPerPage:v,itemsPerPageOptions:o,onItemsPerPageChange:$}),toolbar:(T||h)&&(0,n.jsxs)(r.Toolbar,{children:[T,h&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.ToolbarExpander,{}),(0,n.jsx)(r.ToolbarGroup,{title:"",children:(0,n.jsx)(r.SearchBar,{inputProps:{placeholder:d.lmsg("searchPlaceholder"),"data-testid":"list-searchbar",value:k,...b??{}},onTyping:q})})]})]}),totalRows:M.length,sortColumn:F,sortDirection:w,onSortChange:A,columns:O,data:E,filtered:!!k,locale:{totalRows:({totalRows:e})=>d.formatMessage("recordsTotal",{total:e}),...f},emptyView:R,onSelectionChange:S,selection:j,rowKey:C,...L})};h.propTypes={id:o().string.isRequired,data:o().array.isRequired,columns:o().array.isRequired,itemsPerPage:o().number,itemsPerPageOptions:o().array,sortColumn:o().string,sortDirection:o().string,searchField:o().oneOfType([o().string,o().arrayOf(o().string.isRequired)]),locale:o().object,emptyView:o().node,emptyFilteredView:o().node,toolbar:o().node,onSelectionChange:o().func,selection:o().array,rowKey:o().oneOfType([o().string,o().func]),searchBarInputProps:o().object},h.defaultProps={itemsPerPage:25,itemsPerPageOptions:[10,25,100,u],sortColumn:void 0,sortDirection:c,searchField:void 0,locale:{},emptyView:void 0,emptyFilteredView:void 0,toolbar:void 0,onSelectionChange:void 0,selection:[],searchBarInputProps:void 0,rowKey:"key"};const f=h},2043:(e,t,s)=>{s.r(t),s.d(t,{default:()=>j});var n=s(247),i=s(246),o=s(90),r=s(245),a=s(458),l=s(774),d=s(688),c=s(959),m=s(955),u=s.n(m),p=s(956),g=s.n(p);const y=o.Locale.getTranslate("components.forms.spam-filter.add"),h=o.Locale.getSection("components.forms.spam-filter.add"),f=a.gql`
    mutation AddAddressesToSpamFilterList($input: AddAddressesToSpamFilterListInput!) {
        addAddressesToSpamFilterList(input: $input) {
            warnings
        }
    }
`,P="file",x="string",T=({isBlackList:e,isOpen:t,onClose:s})=>{const[n,o]=(0,r.useState)({dataType:P,file:null,addresses:""}),[a,{loading:m}]=(0,l.useMutation)(f,{refetchQueries:[{query:e?u():g()}],awaitRefetchQueries:!0});return(0,r.jsx)(i.Drawer,{"data-type":"add-domain-to-spam-filter-list",title:(0,r.jsx)(y,{content:e?"titleBlack":"titleWhite"}),isOpen:t,onClose:s,size:"sm",form:(0,r.jsxs)(c.default,{state:m?"submit":null,applyButton:!1,submitButton:{id:"btn-save"},onSubmit:({dataType:t,file:s,addresses:n})=>({listType:e?"blacklist_from":"whitelist_from",dataType:t,addresses:n,file:s}),onSuccess:({addAddressesToSpamFilterList:{warnings:e}})=>{e.length?e.forEach((e=>{(0,d.addToast)({intent:"danger",message:e})})):(0,d.addToast)({intent:"success",message:(0,r.jsx)(y,{content:"success"})}),s(),o({dataType:P,file:null,addresses:""})},onFieldChange:(e,t)=>o((0,i.setIn)(n,e,t)),values:n,mutation:a,children:[(0,r.jsx)(i.Text,{component:"p",children:(0,r.jsx)("div",{dangerouslySetInnerHTML:{__html:h.lmsg("listDescription")}})}),(0,r.jsx)(i.FormFieldRadioButtons,{label:null,name:"dataType",options:[{value:P,label:(0,r.jsx)(y,{content:"fromFile"}),indentFields:[(0,r.jsx)(i.FormField,{name:"file",label:null,description:(0,r.jsx)(y,{content:"fileDescription"}),children:({getId:e,getName:t,setValue:s,isDisabled:n})=>(0,r.jsx)(i.InputFile,{id:e(),name:t(),disabled:n(),onChange:e=>s(e)})},"file")]},{value:x,label:(0,r.jsx)(y,{content:"fromList"}),indentFields:[(0,r.jsx)(i.FormFieldText,{name:"addresses",label:null,multiline:!0,size:"xl"},"addresses")]}]})]})})};T.propTypes={isOpen:n.PropTypes.bool,isBlackList:n.PropTypes.bool.isRequired,onClose:n.PropTypes.func.isRequired},T.defaultProps={isOpen:!1};const j=T},2042:(e,t,s)=>{s.r(t),s.d(t,{default:()=>j});var n=s(247),i=s(246),o=s(90),r=s(1096),a=s(245),l=s(688),d=s(458),c=s(774),m=s(955),u=s.n(m),p=s(956),g=s.n(p);const y=o.Locale.getTranslate("components.lists.spam-filter"),h=o.Locale.getSection("components.lists.spam-filter"),f=o.Locale.getTranslate("components.buttons"),P="BlackList",x=d.gql`
    mutation DeleteAddressesFromSpamFilterList($input: DeleteAddressesFromSpamFilterListInput!) {
        deleteAddressesFromSpamFilterList(input: $input) {
            __typename
        }
    }
`,T=({list:e,type:t,onAddDomain:s})=>{const[n,o]=(0,a.useState)([]),[d,m]=(0,a.useState)([]),p=(0,a.useMemo)((()=>e.filter((({id:e})=>n.includes(e)))),[e,n]),[T]=(0,c.useMutation)(x,{refetchQueries:[{query:"BlackList"===t?u():g()}],awaitRefetchQueries:!0});return(0,a.jsx)(r.default,{id:`server-mail-${t}`,toolbar:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.ToolbarGroup,{title:h.lmsg("groupAdd"),children:(0,a.jsx)(i.Button,{id:`add${t}edDomain`,intent:"primary",icon:"plus",tooltip:(0,a.jsx)(y,{content:t===P?"buttonAddAddressToBlackListHint":"buttonAddAddressToWhiteListHint"}),"aria-label":h.lmsg(t===P?"buttonAddAddressToBlackListHint":"buttonAddAddressToWhiteListHint"),onClick:s})}),(0,a.jsx)(i.ToolbarGroup,{title:h.lmsg("groupActions"),children:(0,a.jsx)(i.ListOperation,{critical:!0,noSelectionText:(0,a.jsx)(y,{content:"removeEmptySelection"}),confirmationText:h.formatMessage("removeConfirmation",{name:(0,a.jsx)("b",{children:p[0]?.name}),count:p.length}),actionButtonText:(0,a.jsx)(f,{content:"yesRemove"}),cancelButtonText:(0,a.jsx)(f,{content:"cancel"}),children:(0,a.jsx)(i.Button,{id:`remove${t}edDomain`,onClick:async()=>{m(n);try{await T({variables:{input:{ids:n}}}),(0,l.addToast)({intent:"success",message:(0,a.jsx)(y,{content:"removeSuccess"})})}catch(e){e.graphQLErrors?e.graphQLErrors.forEach((({message:e,debugMessage:t})=>{(0,l.addToast)({intent:"danger",message:t||e})})):(0,l.addToast)({intent:"danger",message:e.message})}finally{o([]),m([])}},children:(0,a.jsx)(y,{content:"buttonRemove"})})})})]}),columns:[{key:"name",title:(0,a.jsx)(y,{content:"entries"}),type:"title",sortable:!0}],rowKey:"id",data:e,searchField:"name",selection:n,onSelectionChange:e=>o(e),loadingRows:d,emptyView:(0,a.jsx)(i.ListEmptyView,{title:(0,a.jsx)(y,{content:`addAddressTo${t}EmptyTitle`}),description:(0,a.jsx)(y,{content:`addAddressTo${t}EmptyDescription`}),actions:(0,a.jsx)(i.Button,{id:`add${t}edDomain`,intent:"primary",tooltip:(0,a.jsx)(y,{content:`buttonAddAddressTo${t}Hint`}),onClick:s,children:(0,a.jsx)(y,{content:"buttonAddAddress"})})})})};T.propTypes={list:n.PropTypes.array.isRequired,type:n.PropTypes.string.isRequired,onAddDomain:n.PropTypes.func.isRequired};const j=T},2044:(e,t,s)=>{s.r(t),s.d(t,{default:()=>d});var n=s(745),i=s(2042),o=s(2043),r=s(956),a=s.n(r),l=s(245);const d=()=>{const[e,t]=(0,l.useState)(!1),{data:{serverMail:{spamAssassin:{whiteList:s}}}}=(0,n.useQuery)(a());return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(o.default,{isOpen:e,isBlackList:!1,onClose:()=>t(!1)}),(0,l.jsx)(i.default,{list:s,type:"WhiteList",onAddDomain:()=>t(!0)})]})}}}]);
//# sourceMappingURL=SpamFilterWhiteListPage.js.map?9880c05ecaf1f827e715