1"use strict";(globalThis.webpackChunkPlesk||=[]).push([["components/pages/SpamFilterBlackListPage"],{1609(e,t,s){s.r(t),s.d(t,{SORT_ASC:()=>l,SORT_DESC:()=>d,default:()=>y});var n=s(341),o=s(782),a=s.n(o),i=s(342);const r=s(95).Locale.getSection("components.list"),l="ASC",d="DESC",c="all",m={set(e,t){localStorage.setItem(e,JSON.stringify(t))},get(e){const t=localStorage.getItem(e);return JSON.parse(t)}},u=e=>`list-sort_${e}`,p=e=>`list-page_${e}`,g=({id:e,data:t,columns:s,itemsPerPage:o=25,itemsPerPageOptions:a=[10,25,100,c],sortColumn:d,sortDirection:g=l,searchField:y,locale:f={},emptyView:h,emptyFilteredView:P,toolbar:x,selection:T=[],onSelectionChange:S,searchBarInputProps:j,rowKey:b="key",useStorage:C=!0,...L})=>{const{sortColumn:F,sortDirection:A,setSortState:w}=((e,{sortColumn:t,sortDirection:s})=>{const[{sortColumn:o,sortDirection:a},i]=(0,n.useState)({sortColumn:m.get(u(e))?.sortColumn??t,sortDirection:m.get(u(e))?.sortDirection??s});return{sortColumn:o,sortDirection:a,setSortState:t=>{i(e=>({...e,...t})),m.set(u(e),{...m.get(u(e)),...t})}}})(e,{sortColumn:d??s.find(({sortable:e})=>e)?.key,sortDirection:g}),{page:D,itemsPerPage:k,searchPattern:v,setPageState:B}=((e,{itemsPerPage:t},s=!0)=>{const o=s?{page:m.get(p(e))?.page,itemsPerPage:m.get(p(e))?.itemsPerPage,searchPattern:m.get(p(e))?.searchPattern}:{},[{page:a,itemsPerPage:i,searchPattern:r}
1,l]=(0,n.useState)({page:o.page??1,itemsPerPage:o.itemsPerPage??t,searchPattern:o.searchPattern??""});return{page:a,itemsPerPage:i,searchPattern:r,setPageState:t=>{l(e=>({...e,...t})),s&&m.set(p(e),{...m.get(p(e)),...t})}}})(e,{itemsPerPage:a.includes(o)?o:a[0]},C),R=(0,n.useMemo)(()=>v?P??(0,n.jsx)(i.ListEmptyView,{reason:"filtered","data-testid":"list-empty-view-filtered"}):h??(0,n.jsx)(i.ListEmptyView,{}),[v,h,P]),M=(0,n.useMemo)(()=>s.map(({sortDataField:e,...t})=>t),[s]),O=(0,n.useMemo)(()=>y&&v?t.filter(e=>(Array.isArray(y)?y:[y]).some(t=>e[t]&&String(e[t]).toLowerCase().includes(v.toLowerCase()))):t,[t,v,y]),q=(0,n.useMemo)(()=>{if(!F)return O;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[...O].sort((e,s)=>l===A?t(e,s):t(s,e))},[O,F,A,s]),E=(0,n.useMemo)(()=>{if(k===c)return q;const e=k*(D-1),t=e+k;return q.slice(e,t)},[D,q,k]),$=(0,n.useCallback)(e=>{B({searchPattern:e}),e!==v&&B({page:1})},[v]),I=(0,n.useCallback)(e=>{B({itemsPerPage:e});(e===c?1:Math.ceil(O.length/e))<D&&B({page:1})},[O.length,D]);return(0,n.useEffect)(()=>{if("function"==typeof S&&T.length){const e=O.map(e=>{return t=e,"function"==typeof(s=b)?s(t):t[s];var t,s}).filter(e=>T.includes(e));S(e)}},[O]),(0,n.jsx)(i.List,{pagination:(0,n.jsx)(i.Pagination,{current:D,total:k===c?1:Math.ceil(O.length/k),onSelect:e=>B({page:e}),itemsPerPage:k,itemsPerPageOptions:a,onItemsPerPageChange:I}),toolbar:(x||y)&&(0,n.jsxs)(i.Toolbar,{children:[x,y&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.ToolbarExpander,{}),(0,n.jsx)(i.ToolbarGroup,{title:"",children:(0,n.jsx)(i.SearchBar,{inputProps:{placeholder:r.lmsg("searchPlaceholder"),"data-testid":"list-searchbar",value:v,...j??{}},onTyping:$})})]})]}),totalRows:O.length,sortColumn:F,sortDirection:A,onSortChange:w,columns:M,data:E,filtered:!!v,locale:{totalRows:({totalRows:e})=>r.formatMessage("recordsTotal",{total:e}),...f},emptyView:R,onSelectionChange:S,selection:T,rowKey:b,...L})};g.propTypes={id:a().string.isRequired,data:a().array.isRequired,columns:a().array.isRequired,itemsPerPage:a().number,itemsPerPageOptions:a().array,sortColumn:a().string,sortDirection:a().string,searchField:a().oneOfType([a().string,a().arrayOf(a().string.isRequired)]),locale:a().object,emptyView:a().node,emptyFilteredView:a().node,toolbar:a().node,onSelectionChange:a().func,selection:a().array,rowKey:a().oneOfType([a().string,a().func]),searchBarInputProps:a().object,useStorage:a().bool};const y=g},2842(e,t,s){s.r(t),s.d(t,{default:()=>S});var n=s(782),o=s(342),a=s(95),i=s(341),r=s(755),l=s(811),d=s(718),c=s(798),m=s(1441),u=s.n(m),p=s(1442),g=s.n(p);const y=a.Locale.getTranslate("components.forms.spam-filter.add"),f=a.Locale.getSection("components.forms.spam-filter.add"),h=r.gql` 2 mutation AddAddressesToSpamFilterList($input: AddAddressesToSpamFilterListInput!) { 3 addAddressesToSpamFilterList(input: $input) { 4 warnings 5 } 6 } 7`,P="file",x="string",T=({isBlackList:e,isOpen:t=!1,onClose:s})=>{const[n,a]=(0,i.useState)({dataType:P,file:null,addresses:""}),[r,{loading:m}]=(0,l.useMutation)(h,{refetchQueries:[{query:e?u():g()}],awaitRefetchQueries:!0});return(0,i.jsx)(o.Drawer,{"data-type":"add-domain-to-spam-filter-list",title:(0,i.jsx)(y,{content:e?"titleBlack":"titleWhite"}),isOpen:t,onClose:s,size:"sm",form:(0,i.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,i.jsx)(y,{content:"success"})}),s(),a({dataType:P,file:null,addresses:""})},onFieldChange:(e,t)=>
7a((0,o.setIn)(n,e,t)),values:n,mutation:r,children:[(0,i.jsx)(o.Text,{component:"p",children:(0,i.jsx)("div",{dangerouslySetInnerHTML:{__html:f.lmsg("listDescription")}})}),(0,i.jsx)(o.FormFieldRadioButtons,{label:null,name:"dataType",options:[{value:P,label:(0,i.jsx)(y,{content:"fromFile"}),indentFields:[(0,i.jsx)(o.FormField,{name:"file",label:null,description:(0,i.jsx)(y,{content:"fileDescription"}),children:({getId:e,getName:t,setValue:s,isDisabled:n})=>(0,i.jsx)(o.InputFile,{id:e(),name:t(),disabled:n(),onChange:e=>s(e)})},"file")]},{value:x,label:(0,i.jsx)(y,{content:"fromList"}),indentFields:[(0,i.jsx)(o.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};const S=T},2841(e,t,s){s.r(t),s.d(t,{default:()=>j});var n=s(782),o=s(342),a=s(95),i=s(1609),r=s(341),l=s(718),d=s(755),c=s(628),m=s(811),u=s(1441),p=s.n(u),g=s(1442),y=s.n(g);const f=a.Locale.getTranslate("components.lists.spam-filter"),h=a.Locale.getSection("components.lists.spam-filter"),P=a.Locale.getTranslate("components.buttons"),x="BlackList",T=d.gql` 8 mutation DeleteAddressesFromSpamFilterList($input: DeleteAddressesFromSpamFilterListInput!) { 9 deleteAddressesFromSpamFilterList(input: $input) { 10 __typename 11 } 12 } 13`,S=({list:e,type:t,onAddDomain:s})=>{const[n,a]=(0,r.useState)([]),[d,u]=(0,r.useState)([]),g=(0,r.useMemo)(()=>e.filter(({id:e})=>n.includes(e)),[e,n]),[S]=(0,m.useMutation)(T,{refetchQueries:[{query:"BlackList"===t?p():y()}],awaitRefetchQueries:!0});return(0,r.jsx)(i.default,{id:`server-mail-${t}`,toolbar:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.ToolbarGroup,{title:h.lmsg("groupAdd"),children:(0,r.jsx)(o.Button,{id:`add${t}edDomain`,intent:"primary",icon:"plus",tooltip:h.lmsg(t===x?"buttonAddAddressToBlackListHint":"buttonAddAddressToWhiteListHint"),tooltipAsLabel:!0,onClick:s})}),(0,r.jsx)(o.ToolbarGroup,{title:h.lmsg("groupActions"),children:(0,r.jsx)(o.ListOperation,{critical:!0,noSelectionText:(0,r.jsx)(f,{content:"removeEmptySelection"}),confirmationText:h.formatMessage("removeConfirmation",{name:(0,r.jsx)("b",{children:g[0]?.name}),count:g.length}),actionButtonText:(0,r.jsx)(P,{content:"yesRemove"}),cancelButtonText:(0,r.jsx)(P,{content:"cancel"}),children:(0,r.jsx)(o.Button,{id:`remove${t}edDomain`,onClick:async()=>{u(n);try{await S({variables:{input:{ids:n}}}),(0,l.addToast)({intent:"success",message:(0,r.jsx)(f,{content:"removeSuccess"})})}catch(e){c.CombinedGraphQLErrors.is(e)?e.errors.forEach(({message:e,extensions:t})=>{(0,l.addToast)({intent:"danger",message:t?.debugMessage||e})}):(0,l.addToast)({intent:"danger",message:e.message})}finally{a([]),u([])}},children:(0,r.jsx)(f,{content:"buttonRemove"})})})})]}),columns:[{key:"name",title:(0,r.jsx)(f,{content:"entries"}),type:"title",sortable:!0}],rowKey:"id",data:e,searchField:"name",selection:n,onSelectionChange:e=>a(e),loadingRows:d,emptyView:(0,r.jsx)(o.ListEmptyView,{title:(0,r.jsx)(f,{content:`addAddressTo${t}EmptyTitle`}),description:(0,r.jsx)(f,{content:`addAddressTo${t}EmptyDescription`}),actions:(0,r.jsx)(o.Button,{id:`add${t}edDomain`,intent:"primary",tooltip:(0,r.jsx)(f,{content:`buttonAddAddressTo${t}Hint`}),onClick:s,children:(0,r.jsx)(f,{content:"buttonAddAddress"})})})})};S.propTypes={list:n.PropTypes.array.isRequired,type:n.PropTypes.string.isRequired,onAddDomain:n.PropTypes.func.isRequired};const j=S},2840(e,t,s){s.r(t),s.d(t,{default:()=>d});var n=s(785),o=s(2841),a=s(2842),i=s(1441),r=s.n(i),l=s(341);const d=()=>{const[e,t]=(0,l.useState)(!1),{data:{serverMail:{spamAssassin:{blackList:s}}}}=(0,n.useQuery)(r());return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(a.default,{isOpen:e,isBlackList:!0,onClose:()=>t(!1)}),(0,l.jsx)(o.default,{list:s,type:"BlackList",onAddDomain:()=>t(!0)})]})}}}]); 14//# sourceMappingURL=SpamFilterBlackListPage.js.map?d65e57f76263d16222c9
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.