1import T from"./DLgqw6cz.js";import O from"./pEQvfiAS.js";import j from"./D0ZguxAo.js";import{A as N,a as q}from"./BMU4xudS.js";import{_ as C,d as m,w as o,r as v,o as s,a,e as d,t as n,i as g,f as c,c as h,F as k,y as A,g as f,p as w}from"./DO0PG5Vn.js";import{V as L,a as V,b as x,c as S}from"./NfyJbWVU.js";import{V as R}from"./DpSUpQG7.js";import{V as P,a as I,b as B}from"./B0RYeekv.js";import{A as K,S as F}from"./Ce-PNCy3.js";import{u as U}from"./CeHdhFgb.js";import"./C6i7pmxq.js";import"./DAVw7WOd.js";import"./BXE94CkJ.js";import"./Dv79XmTa.js";import"./BM44hcUz.js";import"./COXOUT7G.js";import"./BOD7uDBU.js";import"./CdwZH5Ju.js";import"./BU8Ebrjh.js";import"./0VvUL2KS.js";import"./C0OEJsYd.js";import"./DRH9bej0.js";import"./zMQNDTtr.js";import"./C1hTzUi2.js";import"./D_qxKlPu.js";import"./Cc6QCCC3.js";import"./JXrN83Gr.js";import"./3u5HroPy.js";import"./D91Uiunz.js";import"./CKrQQpLP.js";import"./ByeaBjlz.js";import"./4bAtc9BH.js";import"./DDGlMfBa.js";import"./4OvLYTxi.js";import"./CZvmPmVX.js";import"./DN36ZqlB.js";import"./DUNGBoy5.js";import"./BFvRL0Jb.js";import"./DlGBzJ4s.js";import"./CJ11Xfq3.js";import"./lMyjdaov.js";import"./lppH8FZN.js";import"./F03blSqe.js";import"./qrRUC3Ms.js";import"./CchQFwPk.js";import"./vTNChzKS.js";import"./Bkf4z1VI.js";import"./DgQvQXuP.js";import"./dLVgxLFV.js";import"./DQh1dItd.js";import"./Bgo1VZKa.js";import"./DEwqqlkk.js";import"./BEOQt-XX.js";import"./CunU3ak9.js";import"./DDfp-X_f.js";import"./DS5q1ynY.js";import"./BHI4P998.js";import"./iblz24-q.js";import"./DoBION_p.js";import"./Dzr9If9-.js";import"./iY5RtM4q.js";import"./CgwRlgUe.js";import"./BBGcPfmk.js";import"./Vw_xd_wX.js";import"./C9CVyl8z.js";import"./DpvWx4Ya.js";import"./DThhJsA6.js";import"./BAWKP4WL.js";import"./COySKRpd.js";import"./ypnpOziW.js";import"./td8e_GTp.js";import"./C7Me_Xqy.js";import"./Crraxtc7.js";import"./BcA1rf8e.js";import"./BXqnex8s.js";import"./BnD8Kz_S.js";import"./CEl7VLhM.js";import"./CvuXPBbC.js";import"./CMUsJbzi.js";import"./DUGPMYYU.js";import"./NsHd5KU1.js";import"./lK048CNB.js";import"./BekcUsU5.js";import"./BT_VV4vh.js";import"./Hu5e1Eqb.js";import"./S7rIwIKY.js";import"./DHYONTLB.js";import"./CO4NVv8M.js";import"./D4laBXqi.js";import"./BV5yUDc7.js";import"./BkqPZ41s.js";import"./CJhNqTpr.js";import"./Bp-71MuC.js";import"./D21aOXAw.js";import"./5jCffWVT.js";import"./BwWXP2dJ.js";import"./n823aaVL.js";import"./DPAFf09c.js";import"./Bw7cPR_8.js";import"./whTpWFrp.js";import"./Bl5WVzy8.js";import"./kGmsok7K.js";import"./D4Je4svy.js";import"./BtVSyvKQ.js";import"./BOMQVnYG.js";import"./DUqWZyIH.js";import"./CdGnH1RC.js";import"./eogv0mIj.js";const b=[N,q],M={name:"DialogBulkValidationAction",components:{BulkActionDialog:j},props:{modelValue:{type:Boolean,default:!1},approvals:{type:Array,default:()=>[]},approvalType:{type:String,required:!0,validator:e=>["approve","reject"].includes(e)}},emits:["update:modelValue","refresh"],data(){return{refreshOnClose:!1,openPanels:[0]}},computed:{dialogState:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e),e||(this.refreshOnClose&&this.$emit("refresh"),this.refreshOnClose=!1,this.openPanels=[0])}},textKeys(){return this.approvalType==="approve"?{title:"bulkApprove",actionButton:"approve",processSummary:"bulkApprovalProcessSummary",successSection:"xVariableValidationsApproved",errorSection:"xVariableValidationsFailedToApprove",dialogDescription:"bulkApproveDialogDescription",willBeActioned:"xVariableApprovalRequestsWillBeApproved"}:{title:"bulkReject",actionButton:"reject",processSummary:"bulkRejectionProcessSummary",successSection:"xVariableValidationsRejected",errorSection:"xVariableValidationsFailedToReject",dialogDescription:"bulkRejectDialogDescription",willBeActioned:"xVariableApprovalRequestsWillBeRejected"}},processedApprovals(){return this.approvals.map(e=>({...e,display_name:e.data?.name||e.id,contact_subtitle:`${this.$t(e.type)} · ${e.data?.organisation||"-"}`}))},actionableItems(){return this.processedApprovals.filter(e=>b.includes(e.type)&&e.status==="pending_approval")},nonActionableItems(){return this.processedApprovals.filter(e=>!(b.includes(e.type)&&e.status==="pending_approval"))}},methods:{getEndpoint(e){return`/groups/${this.$user.context}
1/approvals/${e.id}/${this.approvalType}`},skipReason(e){return b.includes(e.type)?this.$t(e.status)||this.$t("validationNotPendingApproval"):this.$t("notNis2ValidationType")},onProcessed({successItems:e}){e.length>0&&(this.refreshOnClose=!0)}}},W={class:"d-flex align-center ga-2"},Y={class:"d-flex align-center ga-2"};function z(e,r,D,E,i,t){const u=v("i18n-t"),_=j;return s(),m(_,{modelValue:t.dialogState,"onUpdate:modelValue":r[1]||(r[1]=l=>t.dialogState=l),title:e.$t(t.textKeys.title),method:"post","max-width":"700","items-to-process":t.actionableItems,"endpoint-factory":t.getEndpoint,"item-payload-factory":()=>({}),"processing-mode":"individual","item-identifier-key":"id","item-name-key":"display_name","item-description-key":"contact_subtitle","action-button-text-key":e.$t(t.textKeys.actionButton),"process-summary-key":t.textKeys.processSummary,"success-section-title-key":t.textKeys.successSection,"error-section-title-key":t.textKeys.errorSection,onProcessed:t.onProcessed},{"description-text":o(()=>[a(u,{keypath:t.textKeys.dialogDescription,tag:"p",scope:"global",class:"mb-4"},{total:o(()=>[d("strong",null,n(t.processedApprovals.length),1)]),_:1},8,["keypath"]),a(L,{modelValue:i.openPanels,"onUpdate:modelValue":r[0]||(r[0]=l=>i.openPanels=l),multiple:"",flat:"",class:"mb-2"},{default:o(()=>[t.actionableItems.length?(s(),m(V,{key:0,class:"bg-border_background mb-2"},{default:o(()=>[a(x,null,{default:o(()=>[d("div",W,[a(g,{size:"18",color:"success"},{default:o(()=>[...r[2]||(r[2]=[c("mdi-check-circle",-1)])]),_:1}),a(u,{keypath:t.textKeys.willBeActioned,plural:t.actionableItems.length,tag:"span"},{count:o(()=>[d("strong",null,n(t.actionableItems.length),1)]),_:1},8,["keypath","plural"])])]),_:1}),a(S,null,{default:o(()=>[a(R,{density:"compact",lines:"two",class:"rounded overflow-y-auto","max-height":"200"},{default:o(()=>[(s(!0),h(k,null,A(t.actionableItems,l=>(s(),m(P,{key:l.id},{default:o(()=>[a(I,null,{default:o(()=>[c(n(l.display_name),1)]),_:2},1024),a(B,null,{default:o(()=>[c(n(l.contact_subtitle),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})):f("",!0),t.nonActionableItems.length?(s(),m(V,{key:1,class:"bg-border_background"},{default:o(()=>[a(x,null,{default:o(()=>[d("div",Y,[a(g,{size:"18",color:"error"},{default:o(()=>[...r[3]||(r[3]=[c("mdi-close-circle",-1)])]),_:1}),a(u,{keypath:"xVariableApprovalRequestsCannotBeActioned",plural:t.nonActionableItems.length,tag:"span"},{count:o(()=>[d("strong",null,n(t.nonActionableItems.length),1)]),_:1},8,["plural"])])]),_:1}),a(S,null,{default:o(()=>[a(R,{density:"compact",lines:"two",class:"rounded overflow-y-auto","max-height":"200"},{default:o(()=>[(s(!0),h(k,null,A(t.nonActionableItems,l=>(s(),m(P,{key:l.id},{default:o(()=>[a(I,null,{default:o(()=>[c(n(l.display_name),1)]),_:2},1024),a(B,null,{default:o(()=>[c(n(l.contact_subtitle)+" â "+n(t.skipReason(l)),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})):f("",!0)]),_:1},8,["modelValue"])]),_:1},8,["modelValue","title","items-to-process","endpoint-factory","action-button-text-key","process-summary-key","success-section-title-key","error-section-title-key","onProcessed"])}const Q=C(M,[["render",z]]),G={name:"ApprovalRequests",components:{ApprovalRequestsTable:K,Widget:O,GeneralBar:T,DialogBulkValidationAction:Q},data(){return{searchFilters:F,selectedApprovals:[],bulkApproveOpen:!1,bulkRejectOpen:!1,refresh:0,clearSelection:0}},computed:{actions(){if(!this.$user.can("admin contact validations"))return[];const e=this.selectedApprovals.length>0;return[{icon:"mdi-check-circle",emit:"bulk-approve-validations",tooltip:this.$t("approveSelected"),color:"success",disabled:!e},{icon:"mdi-close-circle",emit:"bulk-reject-validations",tooltip:this.$t("rejectSelected"),color:"error",disabled:!e}]}},beforeCreate(){U(!(this.$user.can("staff")&&this.$user.can("view domains")&&this.$user.can("alpha rtr")))},mounted(){w().setPageTitle(this.$t("approval-requests"))},methods:{onRefresh(){this.refresh=Math.random(),this.clearSelection=Math.random()}}};function $(e,r,D,E,i,t){const u=T,_=v("approval-requests-table"),l=O,y=v("dialog-bulk-validation-action");return s(),h("div",null,[a(u,{"bar-title":e.$t("approval-requests"),"disable-fab-classes":"","enable-pql-search":"","search-filters":i.searchFilters,actions:t.actions,onBulkApproveValidationsQuickAction:r[0]||(r[0]=p=>i.bulkApproveOpen=!0),onBulkRejectValidationsQuickAction:r[1]||(r[1]=p=>i.bulkRejectOpen=!0)},null,8,["bar-title","search-filters","actions"]),a(l,null,{default:o(()=>[a(_,{"base-url":`/groups/${e.$user.context}/approvals`,"refresh-data":i.refresh,"clear-selection":i.clearSelection,"onUpdate:selected":r[2]||(r[2]=p=>i.selectedApprovals=p)},null,8,["base-url","refresh-data","clear-selection"])]),_:1}),e.$user.can("admin contact validations")?(s(),m(y,{key:0,modelValue:i.bulkApproveOpen,"onUpdate:modelValue":r[3]||(r[3]=p=>i.bulkApproveOpen=p),"approval-type":"approve",approvals:i.selectedApprovals,onRefresh:t.onRefresh},null,8,["modelValue","approvals","onRefresh"])):f("",!0),e.$user.can("admin contact validations")?(s(),m(y,{key:1,modelValue:i.bulkRejectOpen,"onUpdate:modelValue":r[4]||(r[4]=p=>i.bulkRejectOpen=p),"approval-type":"reject",approvals:i.selectedApprovals,onRefresh:t.onRefresh},null,8,["modelValue","approvals","onRefresh"])):f("",!0)])}const Ht=C(G,[["render",$]]);export{Ht as default};
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.