PageSourceSearch

https://medischescholing.nl/_nuxt/Dp760qqP.js

js medischescholing.nl collected 2026-09-25 02:34:09 UTC 10,070 bytes, 1 lines download raw bytes

1import{_ as ue}from"./C84s8UAe.js";import{d as H,a as Q,o as i,c as h,w as c,p as I,t as r,f as d,n as g,h as de,i as pe,D as me,Y as ge,l as m,b as u,A as _,e as M,G as ye,Z as ve,r as o,o8 as be}from"./CyOz8q9n.js";import{_ as b}from"./CFuktNVM.js";import{B as fe}from"./DpjR_sre.js";import{_ as _e}from"./DuWzwVpq.js";import{u as Me}from"./iGvmfHHv.js";import{u as he}from"./BP2gHybg.js";import{u as ke}from"./DFJElbMp.js";import"./BbibDaBY.js";import"./Bn8z1B4Q.js";import"./y-sQsjO3.js";import"./yUSB_xAP.js";import"./C6E7kf58.js";import"./C8Kj2Ot0.js";import"./BCVMbtrN.js";import"./BgYc4DKJ.js";import"./D_80YID4.js";import"./DSedljvs.js";import"./DMEh0pQe.js";import"./DxoIywBh.js";import"./CznndVC0.js";import"./CfilAexJ.js";import"./GEzlBkZr.js";import"./DYpS7W5U.js";import"./DZ8XvcZ7.js";import"./jFYhBC76.js";import"./KcMTsy6g.js";import"./Cby6jaXs.js";import"./DasgpTPs.js";import"./CHuOpfRa.js";import"./kRIii9yh.js";import"./D-pctMGk.js";import"./N6x6TlHE.js";import"./BbB4T-GW.js";import"./D4k11_F0.js";import"./Cnuz5q2k.js";import"./M3o9UOyj.js";import"./TE7BN8Kd.js";import"./AQeycfIS.js";const p={DRAFT:"draft",SCHEDULED:"scheduled",QUEUED:"queued",SENDING:"sending",COMPLETED:"completed",PARTIAL:"partial",FAILED:"failed",SENT:"sent"},Y={draft:"neutral",scheduled:"info",queued:"info",sending:"primary",completed:"success",partial:"warning",failed:"error",sent:"success"};function j(l){return Object.prototype.hasOwnProperty.call(Y,l)}function Ce(l){return j(l)?Y[l]:"neutral"}function $e(l){return j(l)?`companyMailings.status.${l}`:null}function Se(l){const t=String(l??"").split("_").join(" ").split("-").join(" ").trim();return t?t.charAt(0).toUpperCase()+t.slice(1).toLowerCase():"—"}const Ae=["completed","partial","sent"];function De(l){return j(l)&&Ae.includes(l)}function Te(l){switch(l.status){case p.SCHEDULED:return{labelKey:"scheduledFor",value:l.scheduled_at??null};case p.QUEUED:return{labelKey:"queuedOn",value:l.requested_at??null};case p.SENDING:return{labelKey:"startedOn",value:l.started_at??null};case p.COMPLETED:case p.PARTIAL:return{labelKey:"completedOn",value:l.completed_at??null};case p.FAILED:return l.completed_at?{labelKey:"failedOn",value:l.completed_at}:{labelKey:null,value:null};case p.SENT:return{labelKey:null,value:l.sent_at??null};default:return{labelKey:"editedOn",value:l.updated_at??null}}}const Ee=H({__name:"CompanyMailingStatusBadge",props:{status:{}},setup(l){const t=l,{t:N}=Q(),f=g(()=>{const y=$e(t.status);return y?N(y):Se(t.status)});return(y,k)=>{const R=_e;return i(),h(R,{color:d(Ce)(l.status),variant:"subtle",class:"rounded-full whitespace-nowrap px-2.5 py-0.5 text-xs font-medium uppercase tracking-wide"},{default:c(()=>[I(r(f.value),1)]),_:1},8,["color"])}}}),we={class:"page__content"},Ke={class:"flex justify-between items-start py-4 gap-4 flex-wrap"},Le={class:"text-3xl font-semibold"},xe={class:"text-gray-500 mt-1"},Fe={class:"flex gap-2 shrink-0"},Ie={key:0,class:"mb-6"},Ne={key:1,class:"grid grid-cols-1 sm:grid-cols-2 xl:grid-cols-4 gap-4 mb-6"},Re={class:"text-xs font-semibold text-gray-500 uppercase tracking-wider"},Ue={class:"text-2xl font-bold mt-2"},Oe={key:2,class:"mb-6"},Pe={key:3,class:"overflow-x-auto"},Be={class:"font-medium"},je={class:"text-xs text-gray-500 mt-0.5"},Ge={key:0,class:"text-center"},Ea=H({__name:"index",setup(l){const{t}=Q(),N=de(),f=pe(),y=me(),{hasPermission:k}=ge(),{baseConfirm:R}=ke(),{formatNumber:U,formatPercentage:w,formatDateTime:z}=Me(),{duplicateCampaign:Z,deleteCampaign:J,fetchMailings:W,fetchMailingStats:X}=he(),s=g(()=>Number.parseInt(N.params.id)),G=g(()=>k("create_company_campaign",s.value)),ee=g(()=>k("update_company_campaign",s.value)),ae=g(()=>k("delete_company_campaign",s.value)),te=g(()=>k("viewAny_company_audience",s.value)),le=g(()=>[{accessorKey:"name",header:t("companyMailings.table.name")},{accessorKey:"status",header:t("companyMailings.table.status")},{accessorKey:"recipients_count",header:t("companyMailings.table.recipients")},{accessorKey:"open_rate",header:t("companyMailings.table.openRate")},{accessorKey:"click_rate",header:t("companyMailings.table.clickRate")},{accessorKey:"edit",header:t("companyMailings.table.edit")},{accessorKey:"copy",header:t("companyMailings.table.copy")},{accessorKey:"delete",header:t("companyMailings.table.delete")}]),C=o(!1),$=o(null),S=o(null),O=o(!1),P=o(!1),B=o(!1),A=o([]),K=o(1),L=o(10),D=o(0),V=o("updated_at:1"),T=o({total_sent:0,avg_open_rate:0,avg_click_rate:0,unsubscribes_30d:0}),ne=g(()=>[{key:"total_sent",label:t("companyMailings.stats.totalSent"),value:U(T.value.total_sent)},{key:"avg_open_rate",label:t("companyMailings.stats.avgOpenRate"),value:w(T.value.avg_open_rate)},{key:"avg_click_rate",label:t("companyMailings.stats.avgClickRate"),value:w(T.value.avg_click_rate)},{key:"unsubscribes_30d",label:t("companyMailings.stats.unsubscribes"),value:U(T.value.unsubscribes_30d)}]);function ie(e){const{labelKey:n,value:v}=Te(e),a=v?z(v):"",E=n&&a?`${t(`companyMailings.table.${n}`)} ${a}`:a;
1return De(e.status)?[E,e.category].filter(Boolean).join(" · "):E}function x(e,n="companyMailings.requestFailed"){be(e)||y.add({title:e.response?.data?.message??t(n),color:"error",icon:"i-mdi-alert-circle-outline"})}async function se(e){if($.value===null){$.value=e.id;try{const n=await Z(s.value,e.id);y.add({title:t("companyMailings.duplicateSuccess"),color:"success"}),await f.push(`/companies/${s.value}/campaigns/${n}/edit`)}catch(n){x(n)}finally{$.value=null}}}async function oe(e){if(S.value===null){S.value=e.id;try{if(!await R({type:"is-warning",title:t("companyMailings.deleteTitle"),message:t("companyMailings.deleteMessage",{name:e.name??e.subject}),confirmText:t("commonKeys.delete"),cancelText:t("commonKeys.cancel")}))return;await J(s.value,e.id),A.value=A.value.filter(v=>v.id!==e.id),D.value=Math.max(0,D.value-1),y.add({title:t("companyMailings.deleteSuccess"),color:"success"})}catch(n){x(n,"companyMailings.deleteFailed")}finally{S.value=null}}}async function F(){C.value=!0,O.value=!1;try{const e=await W(s.value,{sort:V.value,offset:K.value*L.value-L.value,limit:L.value});A.value=e.campaigns,D.value=e.totalRecords}catch(e){A.value=[],D.value=0,O.value=!0,x(e)}finally{C.value=!1}}async function q(){P.value=!0,B.value=!1;try{T.value=await X(s.value)}catch(e){B.value=!0,x(e)}finally{P.value=!1}}function re(e,n){V.value=`${e}:${n==="desc"?1:0}`,F()}function ce(e){K.value=e,F()}return F(),q(),(e,n)=>{const v=ue;return i(),m("section",we,[u("div",Ke,[u("div",null,[u("h1",Le,r(e.$t("companyMailings.title")),1),u("p",xe,r(e.$t("companyMailings.subtitle")),1)]),u("div",Fe,[te.value?(i(),h(b,{key:0,color:"neutral",variant:"outline",class:"bg-white dark:bg-gray-900",icon:"i-mdi-account-group-outline",label:e.$t("companyMailings.manageAudiences"),onClick:n[0]||(n[0]=a=>d(f).push(`/companies/${s.value}/campaigns/audiences`))},null,8,["label"])):_("",!0),G.value?(i(),h(b,{key:1,color:"primary",icon:"i-mdi-plus",label:e.$t("companyMailings.create"),onClick:n[1]||(n[1]=a=>d(f).push(`/companies/${s.value}/campaigns/create`))},null,8,["label"])):_("",!0)])]),B.value?(i(),m("div",Ie,[M(v,{color:"error",variant:"subtle",icon:"i-mdi-alert-circle-outline",title:e.$t("companyMailings.statsLoadFailedTitle"),description:e.$t("companyMailings.statsLoadFailedDescription")},null,8,["title","description"]),M(b,{color:"neutral",variant:"outline",icon:"i-mdi-refresh",class:"mt-3 bg-white dark:bg-gray-900",label:e.$t("commonKeys.retry"),loading:P.value,onClick:q},null,8,["label","loading"])])):(i(),m("div",Ne,[(i(!0),m(ye,null,ve(ne.value,a=>(i(),m("div",{key:a.key,class:"bg-white dark:bg-gray-900 rounded-lg border border-gray-200 dark:border-gray-800 p-4"},[u("div",Re,r(a.label),1),u("div",Ue,r(a.value),1)]))),128))])),O.value?(i(),m("div",Oe,[M(v,{color:"error",variant:"subtle",icon:"i-mdi-alert-circle-outline",title:e.$t("companyMailings.loadFailedTitle"),description:e.$t("companyMailings.loadFailedDescription")},null,8,["title","description"]),M(b,{color:"neutral",variant:"outline",icon:"i-mdi-refresh",class:"mt-3 bg-white dark:bg-gray-900",label:e.$t("commonKeys.retry"),loading:C.value,onClick:F},null,8,["label","loading"])])):(i(),m("div",Pe,[M(fe,{"current-page":K.value,"onUpdate:currentPage":n[2]||(n[2]=a=>K.value=a),data:A.value,columns:le.value,loading:C.value,ui:{th:"uppercase tracking-wide text-xs"},paginated:"","per-page":L.value,"backend-pagination":"",scrollable:"","backend-sorting":"",total:D.value,onPageChange:ce,onSort:re},{"name-cell":c(({row:a})=>[u("div",Be,r(a.original.name??a.original.subject),1),u("div",je,r(ie(a.original)),1)]),"status-cell":c(({row:a})=>[M(Ee,{status:a.original.status},null,8,["status"])]),"recipients_count-cell":c(({row:a})=>[I(r(d(U)(a.original.recipients_count)),1)]),"open_rate-cell":c(({row:a})=>[I(r(d(w)(a.original.open_rate)),1)]),"click_rate-cell":c(({row:a})=>[I(r(d(w)(a.original.click_rate)),1)]),"edit-cell":c(({row:a})=>[a.original.status===d(p).DRAFT&&ee.value?(i(),h(b,{key:0,color:"neutral",variant:"ghost",icon:"i-mdi-pencil-outline","aria-label":e.$t("companyMailings.editAriaLabel"),onClick:E=>d(f).push(`/companies/${s.value}/campaigns/${a.original.id}/edit`)},null,8,["aria-label","onClick"])):_("",!0)]),"copy-cell":c(({row:a})=>[G.value?(i(),h(b,{key:0,color:"neutral",variant:"ghost",icon:"i-mdi-content-copy",loading:$.value===a.original.id,disabled:$.value!==null,"aria-label":e.$t("companyMailings.duplicateAriaLabel"),onClick:E=>se(a.original)},null,8,["loading","disabled","aria-label","onClick"])):_("",!0)]),"delete-cell":c(({row:a})=>[a.original.status===d(p).DRAFT&&ae.value?(i(),h(b,{key:0,color:"error",variant:"ghost",icon:"i-mdi-delete-outline",loading:S.value===a.original.id,disabled:S.value!==null,"aria-label":e.$t("companyMailings.deleteAriaLabel"),onClick:E=>oe(a.original)},null,8,["loading","disabled","aria-label","onClick"])):_("",!0)]),empty:c(()=>
1[C.value?_("",!0):(i(),m("div",Ge,r(e.$t("companyMailings.noDataFound")),1))]),_:1},8,["current-page","data","columns","loading","per-page","total"])]))])}}});export{Ea 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.