1import{u as $e}from"./i18n-BGp81J-p.js";import{n as lt,b as X,r as at,d as nt}from"./index-MdVg97Mm.js";import{t as L}from"./toast-CW4P2AiD.js";import{e as Te,c as Be,d as ce,k as ie}from"./formatter-Bvp6mTDX.js";import{u as st}from"./useAbility-MBH3RUjU.js";import{u as ot}from"./usePagination-BDWIh0nS.js";import{u as ut}from"./useRowActivate-CCMvAyG8.js";import{_ as Pe}from"./LoadingText-DtcKHsRY.js";import{_ as dt}from"./TableSkeleton-DPJ-YxAU.js";import{_ as rt}from"./TableCard-Bli1ro8A.js";import{_ as it}from"./ConfirmModal-D4qNLHYZ.js";import{_ as ct}from"./ContextMenu-CTsUSx7_.js";import{ar as mt,h as D,c as A,w as be,ah as V,B as R,C as c,D as a,W as o,R as n,F as S,u as l,H as v,E as y,I as d,a3 as pt,Q as te,J as Ve,a4 as ue,d as vt,aj as gt,V as W,$ as bt,a as ft}from"./vendor-ve67P6LA.js";import{_ as Oe}from"./AppModal-D5qmiLnO.js";import{c as Ge}from"./currencies-DkWouWWu.js";/* empty css */import"./bootstrap-mryVlcM7.js";import"./pagination-CGF1MIUc.js";const yt=["disabled"],_t={class:"text-muted"},kt={key:0,class:"d-block"},ht={class:"text-muted"},Ct={__name:"BudgetModal",props:{modelValue:{type:Boolean,default:!1},item:{type:Object,default:null},assets:{type:Array,default:()=>[]},budgetTypes:{type:Array,default:()=>[]},channels:{type:Array,default:()=>[]},defaultAssetCode:{type:String,default:null},readonly:{type:Boolean,default:!1}},emits:["update:modelValue","created","updated"],setup(h,{emit:s}){const{feeTypes:B}=mt(lt()),{t:b}=$e(),r=h,C=s,u=D({budgetTypeId:null,assetCode:null,channelId:null,date:null,amount:0,currency:"USD",exchangeRate:0,fee:0,feeType:1,description:null}),U=A(()=>!u.value.fee||!u.value.amount?0:u.value.feeType===2?Math.round(u.value.amount*u.value.fee/100*100)/100:u.value.fee),_=A(()=>(u.value.amount||0)+U.value),k=A(()=>u.value.currency&&u.value.currency!=="IDR"),E=A(()=>!k.value||!u.value.exchangeRate||!u.value.amount?null:u.value.amount*u.value.exchangeRate),N=D(!1),Y=D(!1),p=D(!1);be(()=>[u.value.currency,u.value.date],async([T,f])=>{if(!(!T||T==="IDR"||!f)){p.value=!0;try{const j=new Date(f),M=`${j.getFullYear()}-${String(j.getMonth()+1).padStart(2,"0")}-${String(j.getDate()).padStart(2,"0")}`,$=await X.get(`/marketing/reports/exchange-rate?from=${T}&date=${M}`),K=$.result||$;K.rate!=null&&(u.value.exchangeRate=K.rate)}catch{}finally{p.value=!1}}});const F=A(()=>r.budgetTypes.filter(T=>T.name!=="SEO Domain")),P=A(()=>r.budgetTypes.find(f=>f.id===u.value.budgetTypeId)?.name==="Ads"),me=A(()=>{const T=u.value;return!(!T.date||!T.budgetTypeId||!T.assetCode||!T.currency||!T.amount||P.value&&!T.channelId)});be(P,T=>{T||(u.value.channelId=null)}),be(()=>r.modelValue,T=>{if(T)if(r.item){Y.value=!0;const f=r.item.fee||0,j=r.item.feeType||1,M=r.item.amount;let $=M;f>0&&(j===2?$=Math.round(M/(1+f/100)*100)/100:$=M-f),u.value={budgetTypeId:r.item.budgetTypeId,assetCode:r.item.assetCode,channelId:r.item.channelId,date:new Date(r.item.date),amount:$,currency:r.item.currency,exchangeRate:r.item.exchangeRate??0,fee:f,feeType:j,description:r.item.description}}else Y.value=!1,u.value={budgetTypeId:F.value[0]?.id||null,assetCode:r.defaultAssetCode||r.assets[0]?.code||null,channelId:null,date:new Date,amount:0,currency:"USD",exchangeRate:0,fee:0,feeType:1,description:null}});async function le(){N.value=!0;try{if(Y.value){const T=await X.put(`/marketing/budgets/${r.item.id}`,{budgetTypeId:u.value.budgetTypeId,assetCode:u.value.assetCode,channelId:u.value.channelId,date:Te(new Date(u.value.date)),amount:_.value,currency:u.value.currency,exchangeRate:k.value?u.value.exchangeRate:null,fee:P.value?u.value.fee:0,feeType:P.value?u.value.feeType:1,description:u.value.description}),f=T.result||T;C("updated",f),L.success(b("marketing.budget.messages.updated"))}else{const T=await X.post("/marketing/budgets",{budgetTypeId:u.value.budgetTypeId,assetCode:u.value.assetCode,channelId:u.value.channelId,date:Te(new Date(u.value.date)),amount:_.value,currency:u.value.currency,exchangeRate:k.value?u.value.exchangeRate:null,fee:P.value?u.value.fee:0,feeType:P.value?u.value.feeType:1,description:u.value.description}),f=T.result||T;C("created",f),L.success(b("marketing.budget.messages.created"))}C("update:modelValue",!1)}catch(T){L.error(T.message||b("common.save"))}finally{N.value=!1}}return(T,f)=>{const j=V("VueDatePicker"),M=V("BFormGroup"),$=V("BCol"),K=V("VSelect"),ee=V("BRow"),ae=V("VueNumeric"),O=V("BSpinner"),ne=V("BInputGroupText"),g=V("BInputGroup"),I=V("BFormTextarea"),Q=V("BButton");return c(),R(Oe,{"model-value":h.modelValue,title:h.readonly?l(b)("marketing.budget.viewEntry"):Y.value?l(b)("marketing.budget.editEntry"):l(b)("marketing.budget.createEntry"),icon:"bi-cash-coin",size:"lg","onUpdate:modelValue":f[11]||(f[11]=m=>T.$emit("update:modelValue",m))},{footer:a(()=>[n(Q,{variant:"secondary",onClick:f[10]||(f[10]=m=>T.$emit("update:modelValue",!1))},{default:a(()=>
1[v(d(h.readonly?l(b)("common.close"):l(b)("common.cancel")),1)]),_:1}),h.readonly?S("",!0):(c(),R(Q,{key:0,variant:"primary",disabled:N.value||!me.value,onClick:le},{default:a(()=>[N.value?(c(),R(O,{key:0,small:"",class:"me-1"})):S("",!0),v(" "+d(Y.value?l(b)("common.update"):l(b)("common.create")),1)]),_:1},8,["disabled"]))]),default:a(()=>[o("fieldset",{disabled:h.readonly,class:"border-0 p-0 m-0"},[n(ee,{class:"mb-3"},{default:a(()=>[n($,{md:"4"},{default:a(()=>[n(M,{label:l(b)("marketing.budget.form.date"),"label-for":"budgetDate"},{default:a(()=>[n(j,{modelValue:u.value.date,"onUpdate:modelValue":f[0]||(f[0]=m=>u.value.date=m),placeholder:l(b)("marketing.budget.form.selectDate"),"auto-apply":"",disabled:h.readonly,"time-config":{enableTimePicker:!1},formats:{input:"dd-MMM-yy"},teleport:!0},null,8,["modelValue","placeholder","disabled"])]),_:1},8,["label"])]),_:1}),n($,{md:"4"},{default:a(()=>[n(M,{label:l(b)("marketing.budget.form.budgetType"),"label-for":"budgetType"},{default:a(()=>[n(K,{modelValue:u.value.budgetTypeId,"onUpdate:modelValue":f[1]||(f[1]=m=>u.value.budgetTypeId=m),options:F.value.map(m=>({value:m.id,label:m.name})),reduce:m=>m.value,clearable:!1,disabled:h.readonly},null,8,["modelValue","options","reduce","disabled"])]),_:1},8,["label"])]),_:1}),n($,{md:"4"},{default:a(()=>[P.value?(c(),R(M,{key:0,label:l(b)("marketing.budget.form.channel"),"label-for":"budgetChannel"},{default:a(()=>[n(K,{modelValue:u.value.channelId,"onUpdate:modelValue":f[2]||(f[2]=m=>u.value.channelId=m),options:h.channels.filter(m=>m.isActive).map(m=>({value:m.id,label:m.name})),reduce:m=>m.value,clearable:!0,disabled:h.readonly,placeholder:l(b)("marketing.budget.form.selectChannel")},null,8,["modelValue","options","reduce","disabled","placeholder"])]),_:1},8,["label"])):S("",!0)]),_:1})]),_:1}),n(ee,{class:"mb-3"},{default:a(()=>[n($,{md:"4"},{default:a(()=>[n(M,{label:l(b)("marketing.budget.form.asset"),"label-for":"budgetAsset"},{default:a(()=>[n(K,{modelValue:u.value.assetCode,"onUpdate:modelValue":f[3]||(f[3]=m=>u.value.assetCode=m),options:h.assets.map(m=>({value:m.code,label:`${m.code} - ${m.description}`})),reduce:m=>m.value,clearable:!1,disabled:h.readonly},null,8,["modelValue","options","reduce","disabled"])]),_:1},8,["label"])]),_:1}),n($,{md:"4"},{default:a(()=>[n(M,{label:l(b)("marketing.budget.form.currency"),"label-for":"budgetCurrency"},{default:a(()=>[n(K,{modelValue:u.value.currency,"onUpdate:modelValue":f[4]||(f[4]=m=>u.value.currency=m),options:l(Ge),reduce:m=>m.value,clearable:!1,disabled:h.readonly},null,8,["modelValue","options","reduce","disabled"])]),_:1},8,["label"])]),_:1}),n($,{md:"4"},{default:a(()=>[n(M,{label:P.value?"Base Amount":l(b)("marketing.budget.form.amount"),"label-for":"budgetAmount"},{default:a(()=>[n(ae,{modelValue:u.value.amount,"onUpdate:modelValue":f[5]||(f[5]=m=>u.value.amount=m),separator:".",precision:4,min:0,class:"form-control"},null,8,["modelValue"])]),_:1},8,["label"])]),_:1})]),_:1}),P.value?(c(),R(ee,{key:0,class:"mb-3"},{default:a(()=>[n($,{md:"4"},{default:a(()=>[n(M,{label:"Fee Type","label-for":"feeType"},{default:a(()=>[n(K,{modelValue:u.value.feeType,"onUpdate:modelValue":f[6]||(f[6]=m=>u.value.feeType=m),options:l(B),reduce:m=>m.value,clearable:!1,disabled:h.readonly},null,8,["modelValue","options","reduce","disabled"])]),_:1})]),_:1}),n($,{md:"4"},{default:a(()=>[n(M,{label:u.value.feeType===2?"Fee (%)":`Fee (${u.value.currency})`,"label-for":"feeAmount"},{default:a(()=>[n(ae,{modelValue:u.value.fee,"onUpdate:modelValue":f[7]||(f[7]=m=>u.value.fee=m),separator:".",precision:2,min:0,class:"form-control"},null,8,["modelValue"])]),_:1},8,["label"])]),_:1}),n($,{md:"4",class:"d-flex align-items-end pb-2"},{default:a(()=>[o("span",_t,[f[12]||(f[12]=v(" Total: ",-1)),o("strong",null,d(u.value.currency)+" "+d(new Intl.NumberFormat("id-ID").format(_.value)),1),U.value>0?(c(),y("small",kt,"("+d(new Intl.NumberFormat("id-ID").format(u.value.amount))+" + "+d(new Intl.NumberFormat("id-ID").format(U.value))+" fee)",1)):S("",!0)])]),_:1})]),_:1})):S("",!0),k.value?(c(),R(ee,{key:1,class:"mb-3"},{default:a(()=>[n($,{md:"4"},{default:a(()=>[n(M,{label:"Exchange Rate (to IDR)","label-for":"exchangeRate"},{default:a(()=>[n(g,null,pt({default:a(()=>[n(ae,{modelValue:u.value.exchangeRate,"onUpdate:modelValue":f[8]||(f[8]=m=>u.value.exchangeRate=m),separator:".",precision:2,min:0,class:"form-control",placeholder:"e.g. 16500"},null,8,["modelValue"])]),_:2},[p.value?{name:"append",fn:a(()=>[n(ne,null,{default:a(()=>[n(O,{small:""})]),_:1})]),key:"0"}:void 0]),1024)]),_:1})]),_:1}),E.value?(c(),R($,{key:0,md:"8",class:"d-flex align-items-end pb-2"},{default:a(()=>[o("span",ht," = IDR "+d(new Intl.NumberFormat("id-ID").format(Math.round(E.value))),1)]),_:1})):S("",!0)]),_:1})):S("",!0),n(M,{label:l(b)("marketing.budget.form.description"),"label-for":"budgetDesc"},{default:a(()=>[n(I,{id:"budgetDesc",modelValue:u.value.description,"onUpdate:modelValue":f[9]||(f[9]=m=>u.value.description=m),placeholder:l(b)("marketing.budget.form.description"),rows:"3"},null,8,["modelValue","placeholder"])]),_:1},8,["label"])],8,yt)]),_:1},8,["model-value","title"])}}},Vt={date:["date","tanggal"],budgetType:["budget type","budgettype","type"],assetCode:["asset","asset code","assetcode"],channel:["channel"],
1currency:["currency"],amount:["cost","amount"],description:["description","note","notes","remark"]},Tt=["date","budgetType","assetCode","currency","amount"];function Bt(h){if(typeof h=="number")return Number.isFinite(h)?h:null;let s=String(h??"").trim();if(!s)return null;s=s.replace(/\s/g,"");const B=/^\((.*)\)$/.test(s);B&&(s=s.slice(1,-1));const b=s.lastIndexOf(","),r=s.lastIndexOf(".");if(b>=0&&r>=0?s=b>r?s.replace(/\./g,"").replace(",","."):s.replace(/,/g,""):b>=0&&(s=s.replace(",",".")),!/^[+-]?\d*\.?\d+$/.test(s))return null;const C=Number(s);return Number.isFinite(C)?B?-C:C:null}function It(h){if(h instanceof Date){if(Number.isNaN(h.getTime()))return null;const r=h.getUTCFullYear(),C=String(h.getUTCMonth()+1).padStart(2,"0"),u=String(h.getUTCDate()).padStart(2,"0");return`${r}-${C}-${u}`}const s=String(h??"").trim();if(!s)return null;const B=s.match(/^(\d{4})-(\d{1,2})-(\d{1,2})/);if(B)return`${B[1]}-${B[2].padStart(2,"0")}-${B[3].padStart(2,"0")}`;const b=s.match(/^(\d{1,2})[/.-](\d{1,2})[/.-](\d{4})$/);return b?`${b[3]}-${b[2].padStart(2,"0")}-${b[1].padStart(2,"0")}`:null}function xt(h){const s=String(h??"").split(/\r?\n/,1)[0]??"";let B=!1;const b={",":0,";":0," ":0,"|":0};for(const C of s)C==='"'?B=!B:!B&&C in b&&(b[C]+=1);const r=Object.entries(b).sort((C,u)=>u[1]-C[1])[0];return r[1]>0?r[0]:","}function St(h,s=null){const B=String(h??"").replace(/^\uFEFF/,""),b=s??xt(B),r=[];let C=[],u="",U=!1;for(let _=0;_<B.length;_+=1){const k=B[_];if(U){k==='"'?B[_+1]==='"'?(u+='"',_+=1):U=!1:u+=k;continue}k==='"'?U=!0:k===b?(C.push(u),u=""):k===` 2`?(C.push(u),r.push(C),C=[],u=""):k!=="\r"&&(u+=k)}return(u.length||C.length)&&(C.push(u),r.push(C)),r.filter(_=>_.some(k=>String(k??"").trim()!==""))}function Dt(h){const s={};return(h??[]).forEach((B,b)=>{const r=String(B??"").trim().toLowerCase();if(r)for(const[C,u]of Object.entries(Vt))s[C]===void 0&&u.includes(r)&&(s[C]=b)}),s}function Rt(h,s){const B=Dt(h[0]),b=Tt.filter(_=>B[_]===void 0);if(b.length)return{missingColumns:b,rows:[],unreadable:[]};const r=[],C=[],u=(_,k)=>B[k]===void 0?null:_[B[k]],U=(_,k)=>String(u(_,k)??"").trim();return h.slice(1).forEach((_,k)=>{const E=k+2;if(!_||_.every(P=>String(P??"").trim()===""))return;const N=It(u(_,"date")),Y=Bt(u(_,"amount")),p={rowNumber:E,date:N,budgetType:U(_,"budgetType"),assetCode:U(_,"assetCode"),channel:U(_,"channel")||null,currency:U(_,"currency"),amount:Y,description:U(_,"description")||null},F=[];N||F.push(s("date",String(u(_,"date")??""))),Y===null&&F.push(s("amount",String(u(_,"amount")??""))),F.length?C.push({...p,status:"blocked",problems:F,exchangeRate:null,amountInIdr:null}):r.push(p)}),{missingColumns:[],rows:r,unreadable:C}}function wt(h,s=""){return/\.(csv|tsv|txt)$/i.test(h??"")||/(^|\/)(csv|plain|tab-separated-values)$/i.test(s??"")}const $t={class:"bimp-pick"},Ut={class:"bimp-pick__row"},At={key:0,class:"bimp-pick__name"},Mt={class:"bimp-pick__hint"},Nt={key:0},Ft={key:1},Et={key:0,class:"bimp-totals"},Pt={class:"bimp-totals__label"},Ot={class:"bimp-totals__value"},Gt={key:0,class:"bimp-totals__idr"},Lt={key:0,class:"bimp-totals__rates"},zt={class:"bimp-table"},jt={key:0,class:"bimp-problems"},Kt={key:1,class:"bimp-status bimp-status--saved"},Qt={key:2,class:"bimp-status bimp-status--ready"},Ht={__name:"BudgetImportModal",props:{modelValue:{type:Boolean,default:!1}},emits:["update:modelValue","imported"],setup(h,{emit:s}){const B=h,b=s,{t:r}=$e(),C=D(null),u=D(null),U=D([]),_=D([]),k=D(null),E=D(!1),N=D(!1),Y=A(()=>!!u.value),p=A(()=>U.value.length+_.value.length),F=A(()=>(k.value?.blockedCount??0)+_.value.length),P=A(()=>!!k.value&&!k.value.saved&&F.value===0&&U.value.length>0),me=A(()=>[...k.value?.rows??[],..._.value].sort((I,Q)=>I.rowNumber-Q.rowNumber));function le(){u.value=null,U.value=[],_.value=[],k.value=null,C.value&&(C.value.value="")}function T(){b("update:modelValue",!1),le()}function f(){C.value?.click()}async function j(g){const I=g.target.files?.[0];le(),C.value&&(C.value.value=""),I&&(u.value=I,await M(I))}async function M(g){E.value=!0;try{let I;if(wt(g.name,g.type))I=St(await g.text());else{const x=await at(()=>import("./xlsx-BvJTHLik.js"),[]),se=await g.arrayBuffer(),de=x.read(se,{type:"array",cellDates:!0}),pe=de.Sheets[de.SheetNames[0]];I=x.utils.sheet_to_json(pe,{header:1,blankrows:!1,raw:!0})}if(!I.length){L.error(r("marketing.budget.import.emptyFile")),u.value=null;return}const Q=(x,se)=>x==="date"?r("marketing.budget.import.badDate",{value:se}):r("marketing.budget.import.badAmount",{value:se}),{missingColumns:m,rows:J,unreadable:re}=Rt(I,Q);if(m.length){L.error(r("marketing.budget.import.missingColumns",{columns:m.map(x=>r(`marketing.budget.import.column.${x}`)).join(", ")})),u.value=null;return}if(U.value=J,_.value=re,!J.length&&!re.length){L.warning(r("marketing.budget.import.nothingParsed")),u.value=null;return}J.length&&await $()}catch(I){L.error(I.message||r("marketing.budget.import.readFailed")),u.value=null}finally{E.value=!1}}async function $(){try{const g=await X.post("/marketing/budgets/import",{rows:U.value,dryRun:!0},{timeout:12e4});k.value=g.result}catch(g){L.error(g.message||r("marketing.budget.import.previewFailed"))}}async function K(){N.value=!0;try{const g=await X.post("/marketing/budgets/import",{rows:U.value,dryRun:!1},{timeout:12e4});if(k.value=g.result,g.result?.saved){L.success(r("marketing.budget.import.saved",{rows:g.result.rowCount})),b("imported"),T();return}L.warning(r("marketing.budget.import.blockedOnSave"))}catch(g){L.error(g.message||r("marketing.budget.import.saveFailed"))}finally{N.value=!1}}function ee(g){if(typeof g=="string")return g;const I=`marketing.budget.import.problems.${g.code}
2`,Q=r(I,g.values??{});return Q===I?g.text:Q}function ae(g,I){return g==null?"-":`${I==="IDR"?"Rp":I} ${ce(g,4)}`}function O(g){return g==null?"-":`Rp ${ce(g,2)}`}function ne(g){if(g.exchangeRate===null||g.exchangeRate===void 0)return"-";const I=g.rateDate?Be(g.rateDate,"dd MMM"):null;return I?`${ce(g.exchangeRate,2)} (${I})`:ce(g.exchangeRate,2)}return(g,I)=>{const Q=V("BButton"),m=V("BTh"),J=V("BTr"),re=V("BThead"),x=V("BTd"),se=V("BTbody"),de=V("BTableSimple"),pe=V("BSpinner");return c(),R(Oe,{"model-value":B.modelValue,title:l(r)("marketing.budget.import.title"),subtitle:l(r)("marketing.budget.import.subtitle"),icon:"bi-upload",size:"xl","no-close-on-backdrop":"","no-close-on-esc":E.value||N.value,"onUpdate:modelValue":T},{footer:a(()=>[n(Q,{variant:"outline-secondary",disabled:N.value,onClick:T},{default:a(()=>[v(d(l(r)("common.close")),1)]),_:1},8,["disabled"]),n(Q,{variant:"primary",disabled:!P.value||N.value,onClick:K},{default:a(()=>[N.value?(c(),R(pe,{key:0,small:"",class:"me-1"})):S("",!0),v(" "+d(l(r)("marketing.budget.import.confirm")),1)]),_:1},8,["disabled"])]),default:a(()=>[o("div",$t,[o("input",{id:"bimp-file",ref_key:"fileInput",ref:C,class:"bimp-pick__native",type:"file",accept:".csv,.xlsx,.xls",tabindex:"-1","aria-hidden":"true",onChange:j},null,544),o("div",Ut,[n(Q,{variant:"outline-primary",size:"sm",disabled:E.value||N.value,onClick:f},{default:a(()=>[I[0]||(I[0]=o("i",{class:"bi bi-folder2-open me-1"},null,-1)),v(" "+d(Y.value?l(r)("marketing.budget.import.chooseAnother"):l(r)("marketing.budget.import.choose")),1)]),_:1},8,["disabled"]),Y.value?(c(),y("span",At,[I[1]||(I[1]=o("i",{class:"bi bi-file-earmark-spreadsheet"},null,-1)),v(" "+d(u.value.name),1)])):S("",!0)]),o("p",Mt,d(l(r)("marketing.budget.import.hint")),1)]),E.value?(c(),R(Pe,{key:0,text:l(r)("marketing.budget.import.reading"),class:"my-3"},null,8,["text"])):S("",!0),k.value||_.value.length?(c(),y(te,{key:1},[o("div",{class:Ve(["bimp-verdict",F.value?"bimp-verdict--blocked":"bimp-verdict--ready"])},[o("i",{class:Ve(F.value?"bi bi-x-octagon-fill":"bi bi-check-circle-fill")},null,2),F.value?(c(),y("span",Nt,d(l(r)("marketing.budget.import.blocked",{blocked:F.value,rows:p.value})),1)):(c(),y("span",Ft,d(l(r)("marketing.budget.import.ready",{rows:p.value})),1))],2),k.value?.totals?.length?(c(),y("div",Et,[(c(!0),y(te,null,ue(k.value.totals,w=>(c(),y("div",{key:w.currency,class:"bimp-totals__item"},[o("span",Pt,d(l(r)("marketing.budget.import.totalFor",{currency:w.currency,rows:w.rowCount})),1),o("span",Ot,d(ae(w.amount,w.currency)),1),w.currency!=="IDR"&&w.amountInIdr!==null?(c(),y("span",Gt," = "+d(O(w.amountInIdr)),1)):S("",!0)]))),128)),k.value.ratesBackfilled?(c(),y("p",Lt,d(l(r)("marketing.budget.import.ratesBackfilled",{days:k.value.ratesBackfilled})),1)):S("",!0)])):S("",!0),o("div",zt,[n(de,{small:"",hover:"",responsive:"",class:"mb-0"},{default:a(()=>[n(re,null,{default:a(()=>[n(J,null,{default:a(()=>[n(m,{class:"col-shrink"},{default:a(()=>[v(d(l(r)("marketing.budget.import.fields.row")),1)]),_:1}),n(m,{class:"col-shrink"},{default:a(()=>[v(d(l(r)("marketing.budget.import.fields.date")),1)]),_:1}),n(m,null,{default:a(()=>[v(d(l(r)("marketing.budget.import.fields.type")),1)]),_:1}),n(m,{class:"col-shrink"},{default:a(()=>[v(d(l(r)("marketing.budget.import.fields.asset")),1)]),_:1}),n(m,null,{default:a(()=>[v(d(l(r)("marketing.budget.import.fields.channel")),1)]),_:1}),n(m,{class:"text-end"},{default:a(()=>[v(d(l(r)("marketing.budget.import.fields.amount")),1)]),_:1}),n(m,{class:"text-end"},{default:a(()=>[v(d(l(r)("marketing.budget.import.fields.rate")),1)]),_:1}),n(m,{class:"text-end"},{default:a(()=>[v(d(l(r)("marketing.budget.import.fields.inIdr")),1)]),_:1}),n(m,null,{default:a(()=>[v(d(l(r)("marketing.budget.import.fields.status")),1)]),_:1})]),_:1})]),_:1}),n(se,null,{default:a(()=>[(c(!0),y(te,null,ue(me.value,w=>(c(),R(J,{key:w.rowNumber,class:Ve(w.status==="blocked"?"bimp-row--blocked":"")},{default:a(()=>[n(x,{class:"col-shrink"},{default:a(()=>[v(d(w.rowNumber),1)]),_:2},1024),n(x,{class:"col-shrink"},{default:a(()=>[v(d(w.date?l(Be)(w.date,"dd MMM yyyy"):"-"),1)]),_:2},1024),n(x,null,{default:a(()=>[v(d(w.budgetType||"-"),1)]),_:2},1024),n(x,{class:"col-shrink"},{default:a(()=>[v(d(w.assetCode||"-"),1)]),_:2},1024),n(x,null,{default:a(()=>[v(d(w.channel||"-"),1)]),_:2},1024),n(x,{class:"text-end"},{default:a(()=>[v(d(ae(w.amount,w.currency)),1)]),_:2},1024),n(x,{class:"text-end"},{default:a(()=>[v(d(ne(w)),1)]),_:2},1024),n(x,{class:"text-end"},{default:a(()=>[v(d(O(w.amountInIdr)),1)]),_:2},1024),n(x,null,{default:a(()=>[w.status==="blocked"?(c(),y("span",jt,[(c(!0),y(te,null,ue(w.problems,(Ie,fe)=>(c(),y("span",{key:fe,class:"bimp-problems__item"},d(ee(Ie)),1))),128))])):w.status==="saved"?(c(),y("span",Kt,d(l(r)("marketing.budget.import.status.saved")),1)):(c(),y("span",Qt,d(l(r)("marketing.budget.import.status.ready")),1))]),_:2},1024)]),_:2},1032,["class"]))),128))]),_:1})]),_:1})])],64)):S("",!0)]),_:1},8,["model-value","title","subtitle","no-close-on-esc"])}}},Yt={class:"d-none d-md-inline ms-1"},qt={class:"d-none d-md-inline ms-1"},Wt={class:"budget-mobile-filters__row"},Xt={class:"budget-summary-card budget-summary-card--total"},Jt={class:"budget-summary-card__label"},Zt={class:"budget-summary-card__amount amount-cell"},el={class:"amount-cell__value"},tl={class:"budget-summary-card__meta"},ll={class:"budget-summary-card"},al={class:"budget-summary-card__label"},nl={class:"budget-summary-card__amount amount-cell"},sl={class:"amount-cell__value"},ol={class:"budget-summary-card__meta"},ul={key:0,class:"text-center py-5"},dl={key:1,class:"text-center py-5 text-muted"},rl={class:"budget-asset-card"},il={class:"budget-asset-card__head"},cl={class:"budget-asset-card__id"},ml={class:"budget-asset-card__code"},pl={class:"budget-asset-card__share"},vl={class:"budget-asset-card__amount"},gl={class:"budget-asset-card__amount-value"},bl={class:"budget-asset-card__progress"},fl={class:"budget-asset-card__section"},yl={class:"budget-asset-card__section-label"},_l={key:0,class:"budget-asset-card__empty"},kl={class:"budget-asset-card__row-name"},hl={class:"budget-asset-card__row-amount"},Cl={class:"budget-asset-card__section"},Vl={class:"budget-asset-card__section-label"},Tl={key:0,class:"budget-asset-card__empty"},Bl={class:"budget-asset-card__entry-main"},Il={class:"budget-asset-card__entry-name"},xl={class:"budget-asset-card__entry-date"},Sl={class:"budget-asset-card__entry-amount"},Dl={class:"budget-asset-card__footer"},Rl={class:"budget-asset-card__footer-info"},wl={class:"budget-summary-card budget-summary-card--total"},$l={class:"budget-summary-card__label"},Ul={class:"budget-summary-card__amount amount-cell"},Al={class:"amount-cell__value"},Ml={class:"budget-summary-card__meta"},Nl={class:"budget-summary-card"},Fl={class:"budget-summary-card__label"},El={class:"budget-summary-card__amount amount-cell"},Pl={class:"amount-cell__value"},Ol={class:"budget-summary-card__meta"},Gl={key:0,class:"channel-name"},Ll={key:1,class:"text-muted"},zl={class:"amount-cell fw-medium"},jl={class:"currency-badge"},Kl={class:"amount-cell__value"},Ql={key:0,class:"description-cell"},Hl={key:1,class:"text-muted"},Yl={class:"text-center py-5"},ql={class:"text-muted mt-2"},Wl={class:"table-pagination__info"},Xl={class:"table-pagination__controls"},Jl=["onClick"],Zl=["onClick"],ea={class:"budget-mobile-filters__form"},ta={class:"budget-mobile-filters__actions"},ka={__name:"List",setup(h){const{t:s}=$e(),{can:B}
2=st(),b=nt();function r(i){return b.isSuperAdmin||i.createdBy===b.userName}const C=D(null);function u(i,e,G){i.seoDomainId||C.value?.open(G,i)}const U=A(()=>[{key:"date",label:s("marketing.budget.fields.date"),sortable:!0},{key:"budgetTypeName",label:s("marketing.budget.fields.type"),thClass:"col-shrink",tdClass:"col-shrink"},{key:"assetCode",label:s("marketing.budget.fields.asset"),thClass:"col-shrink",tdClass:"col-shrink"},{key:"channelName",label:s("marketing.budget.fields.channel")},{key:"amount",label:s("marketing.budget.fields.amount"),thClass:"text-end col-amount",tdClass:"col-amount text-end"},{key:"description",label:s("marketing.budget.fields.description"),tdClass:"col-description"},{key:"createdBy",label:s("marketing.budget.fields.createdBy"),thClass:"col-shrink",tdClass:"col-shrink"},{key:"actions",label:"",thClass:"col-actions",tdClass:"col-actions"}]),_=D([]),k=D(0),E=D(null),N=D(!1);function Y(){const i=new Date,e=new Date(i.getFullYear(),i.getMonth(),1);e.setHours(0,0,0,0);const G=new Date(i);return G.setHours(23,59,59,999),[e,G]}const p=D({dateRange:Y(),assetCode:null,budgetTypeId:null,channelId:null,currency:null,createdBy:null}),F=D(!1),P=A(()=>["assetCode","budgetTypeId","channelId","currency","createdBy"].reduce((i,e)=>i+(p.value[e]?1:0),0));function me(){p.value.assetCode=null,p.value.budgetTypeId=null,p.value.channelId=null,p.value.currency=null,p.value.createdBy=null}const le=A(()=>[{value:null,label:s("common.filters.allCurrencies")},...Ge]),T=D([]),f=D([]),j=D([]),M=A(()=>[{value:null,label:s("common.filters.allAssets")},...T.value.map(i=>({value:i.code,label:`${i.code} - ${i.description}`}))]),$=A(()=>[{value:null,label:s("common.filters.allTypes")},...f.value.map(i=>({value:i.id,label:i.name}))]),K=A(()=>[{value:null,label:s("common.filters.allChannels")},...j.value.filter(i=>i.isActive).map(i=>({value:i.id,label:i.name}))]),ee=A(()=>{const i=E.value?.users||[];return[{value:null,label:s("common.filters.allUsers")},...i.map(e=>({value:e,label:e}))]});async function ae(){try{const[i,e,G]=await Promise.all([X.get("/organization/assets",{isActive:!0}),X.get("/marketing/budget-types"),X.get("/marketing/channels")]);T.value=i.result||[],f.value=e.result||[],j.value=G.result||[]}catch{}}const O=D("summary"),ne=D([{key:"date",order:"desc"}]),{currentPage:g,perPage:I,perPageOptions:Q,onPerPageChange:m}=ot(),J=A(()=>(E.value?.assets||[]).map(i=>({...i,assetName:i.assetName||i.assetCode,channels:i.channels||[],recent:i.recent||[]}))),re={id:"total",name:"Total",totalSpend:0,assetCount:0,channelCount:0,entryCount:0},x=A(()=>({total:E.value?.total||re,types:E.value?.types||[]})),se=A(()=>({totalSpend:x.value.total.totalSpend,activeAssets:x.value.total.assetCount,activeChannels:x.value.total.channelCount,entryCount:x.value.total.entryCount})),de=A(()=>J.value[0]?.totalSpend||0);function pe(i){return de.value?Math.min(100,Math.round(i.totalSpend/de.value*100)):0}function w(i){const e=se.value.totalSpend;return e?Math.round(i.totalSpend/e*100):0}function Ie(i){p.value.assetCode=i.assetCode,O.value="list"}let fe=null;be(p,()=>{clearTimeout(fe),fe=setTimeout(()=>he({resetPage:!0}),400)},{deep:!0}),be([g,I,ne],()=>Ae(),{deep:!0});const ye=D(!1),xe=D(null),Se=D(!1),De=D(!1),_e=D(!1),ke=D(null);function Le(){xe.value=null,Se.value=!1,ye.value=!0}function Re(i){if(i.seoDomainId){L.warning(s("marketing.budget.messages.seoCannotEdit"));return}xe.value=i,Se.value=!r(i),ye.value=!0}const{onRowClicked:ze,onRowDblClicked:je}=ut(i=>Re(i));function Ue(){const i=p.value;return!i.dateRange||i.dateRange.length!==2||!i.dateRange[0]||!i.dateRange[1]?null:{dateFrom:Te(new Date(i.dateRange[0])),dateTo:Te(new Date(i.dateRange[1])),assetCode:i.assetCode||void 0,budgetTypeId:i.budgetTypeId||void 0,channelId:i.channelId||void 0,currency:i.currency||void 0,createdBy:i.createdBy||void 0}}async function Ae(){const i=Ue();if(i){N.value=!0;try{const e=await X.get("/marketing/budgets",{...i,sortDescending:(ne.value?.[0]?.order??"desc")!=="asc",page:g.value,perPage:I.value});_.value=e.result||[],k.value=e.meta?.totalCount??_.value.length}catch(e){L.error(e.message||s("marketing.budget.messages.fetchError")),_.value=[],k.value=0}finally{N.value=!1}}}async function Me(){const i=Ue();if(i)try{const e=await X.get("/marketing/budgets/overview",i);E.value=e.result||null}catch{E.value=null}}function he({resetPage:i=!1}={}){i&&(g.value=1),Ae(),Me()}function Ne(){he({resetPage:!0})}function Ke(i){const e=_.value.findIndex(G=>G.id===i.id);e!==-1&&(_.value[e]=i),Me()}function Fe(i){if(i.seoDomainId){L.warning(s("marketing.budget.messages.seoCannotDelete"));return}if(!r(i)){L.warning(s("marketing.budget.messages.notOwner"));return}ke.value=i,_e.value=!0}async function Qe(){if(ke.value)try{await X.delete(`/marketing/budgets/${ke.value.id}`),L.success(s("marketing.budget.messages.deleted")),he()}catch(i){L.error(i.message||s("marketing.budget.messages.deleteError"))}finally{_e.value=!1,ke.value=null}}return vt(()=>{ae(),he()}),(i,e)=>{const G=V("BButton"),He=V("BButtonGroup"),we=V("VueDatePicker"),Ye=V("BBadge"),ve=V("BCardBody"),Z=V("BCol"),H=V("VSelect"),Ce=V("BRow"),qe=V("BSpinner"),oe=V("BTh"),We=V("BTr"),Ee=V("BDropdownItem"),Xe=V("BDropdown"),Je=V("BTable"),Ze=V("BPagination"),et=V("BCardFooter"),ge=V("BFormGroup"),tt=V("BOffcanvas"),q=gt("b-tooltip");return c(),y("div",null,[n(rt,{icon:"bi-cash-stack",title:l(s)("marketing.budget.listTitle")},{actions:a(()=>[l(B)("create","MARKETING.BUDGET")?(c(),R(G,{key:0,variant:"primary",size:"sm",onClick:Le},{default:a(()=>[e[28]||(e[28]=o("i",{class:"bi bi-plus-lg me-1"},null,-1)),v(" "+d(l(s)("marketing.budget.addEntry")),1)]),_:1})):S("",!0),l(B)("create","MARKETING.BUDGET")?(c(),R(G,{key:1,variant:"outline-primary",size:"sm",onClick:e[0]||(e[0]=t=>De.value=!0)},{default:a(()=>[e[29]||(e[29]=o("i",{class:"bi bi-upload me-1"}
2,null,-1)),v(" "+d(l(s)("marketing.budget.import.button")),1)]),_:1})):S("",!0),n(He,{size:"sm"},{default:a(()=>[n(G,{variant:O.value==="summary"?"primary":"outline-secondary","aria-label":l(s)("marketing.budget.summaryView"),onClick:e[1]||(e[1]=t=>O.value="summary")},{default:a(()=>[e[30]||(e[30]=o("i",{class:"bi bi-grid"},null,-1)),o("span",Yt,d(l(s)("marketing.budget.summaryView")),1)]),_:1},8,["variant","aria-label"]),n(G,{variant:O.value==="list"?"primary":"outline-secondary","aria-label":l(s)("marketing.budget.listView"),onClick:e[2]||(e[2]=t=>O.value="list")},{default:a(()=>[e[31]||(e[31]=o("i",{class:"bi bi-list-ul"},null,-1)),o("span",qt,d(l(s)("marketing.budget.listView")),1)]),_:1},8,["variant","aria-label"])]),_:1})]),default:a(()=>[O.value==="list"?(c(),R(ve,{key:0,class:"d-md-none pb-0 budget-mobile-filters"},{default:a(()=>[o("div",Wt,[n(we,{modelValue:p.value.dateRange,"onUpdate:modelValue":e[3]||(e[3]=t=>p.value.dateRange=t),range:"",placeholder:"Date range","auto-apply":"","time-config":{enableTimePicker:!1},teleport:!0},null,8,["modelValue"]),n(G,{variant:"outline-secondary",size:"sm",onClick:e[4]||(e[4]=t=>F.value=!0)},{default:a(()=>[e[32]||(e[32]=o("i",{class:"bi bi-funnel me-1"},null,-1)),v(" "+d(l(s)("common.filtersLabel"))+" ",1),P.value?(c(),R(Ye,{key:0,variant:"primary",class:"ms-1"},{default:a(()=>[v(d(P.value),1)]),_:1})):S("",!0)]),_:1})])]),_:1})):S("",!0),O.value==="summary"?(c(),R(ve,{key:1,class:"budget-summary-filters"},{default:a(()=>[n(Ce,{class:"g-2"},{default:a(()=>[n(Z,{cols:"12",md:"3"},{default:a(()=>[n(we,{modelValue:p.value.dateRange,"onUpdate:modelValue":e[5]||(e[5]=t=>p.value.dateRange=t),range:"",placeholder:"Date range","auto-apply":"","time-config":{enableTimePicker:!1},teleport:!0},null,8,["modelValue"])]),_:1}),n(Z,{cols:"6",md:"2"},{default:a(()=>[n(H,{modelValue:p.value.assetCode,"onUpdate:modelValue":e[6]||(e[6]=t=>p.value.assetCode=t),options:M.value,reduce:t=>t.value,clearable:!0,placeholder:l(s)("common.filters.allAssets")},null,8,["modelValue","options","reduce","placeholder"])]),_:1}),n(Z,{cols:"6",md:"2"},{default:a(()=>[n(H,{modelValue:p.value.budgetTypeId,"onUpdate:modelValue":e[7]||(e[7]=t=>p.value.budgetTypeId=t),options:$.value,reduce:t=>t.value,clearable:!0,placeholder:l(s)("common.filters.allTypes")},null,8,["modelValue","options","reduce","placeholder"])]),_:1}),n(Z,{cols:"6",md:"2"},{default:a(()=>[n(H,{modelValue:p.value.channelId,"onUpdate:modelValue":e[8]||(e[8]=t=>p.value.channelId=t),options:K.value,reduce:t=>t.value,clearable:!0,placeholder:l(s)("common.filters.allChannels")},null,8,["modelValue","options","reduce","placeholder"])]),_:1}),n(Z,{cols:"6",md:"2"},{default:a(()=>[n(H,{modelValue:p.value.currency,"onUpdate:modelValue":e[9]||(e[9]=t=>p.value.currency=t),options:le.value,reduce:t=>t.value,clearable:!0,placeholder:l(s)("common.all")},null,8,["modelValue","options","reduce","placeholder"])]),_:1})]),_:1})]),_:1})):S("",!0),O.value==="summary"?(c(),R(ve,{key:2,class:"budget-summary"},{default:a(()=>[n(Ce,{class:"g-2 mb-3"},{default:a(()=>[n(Z,{cols:"12",md:"6",lg:"4",xl:"3"},{default:a(()=>[o("div",Xt,[o("div",Jt,d(l(s)("marketing.budget.summaryStats.total")),1),o("div",Zt,[e[33]||(e[33]=o("span",{class:"currency-badge"},"IDR",-1)),o("span",el,d(l(ie)(x.value.total.totalSpend)),1)]),o("div",tl,[W((c(),y("span",null,[e[34]||(e[34]=o("i",{class:"bi bi-buildings"},null,-1)),v(" "+d(x.value.total.assetCount),1)])),[[q,l(s)("marketing.budget.summaryStats.activeAssets"),void 0,{hover:!0}]]),W((c(),y("span",null,[e[35]||(e[35]=o("i",{class:"bi bi-broadcast"},null,-1)),v(" "+d(x.value.total.channelCount),1)])),[[q,l(s)("marketing.budget.summaryStats.activeChannels"),void 0,{hover:!0}]]),W((c(),y("span",null,[e[36]||(e[36]=o("i",{class:"bi bi-list-ol"},null,-1)),v(" "+d(x.value.total.entryCount),1)])),[[q,l(s)("marketing.budget.summaryStats.entries"),void 0,{hover:!0}]])])])]),_:1}),(c(!0),y(te,null,ue(x.value.types,t=>(c(),R(Z,{key:t.id,cols:"12",md:"6",lg:"4",xl:"3"},{default:a(()=>[o("div",ll,[o("div",al,d(t.name),1),o("div",nl,[e[37]||(e[37]=o("span",{class:"currency-badge"},"IDR",-1)),o("span",sl,d(l(ie)(t.totalSpend)),1)]),o("div",ol,[W((c(),y("span",null,[e[38]||(e[38]=o("i",{class:"bi bi-buildings"},null,-1)),v(" "+d(t.assetCount),1)])),[[q,l(s)("marketing.budget.summaryStats.activeAssets"),void 0,{hover:!0}]]),W((c(),y("span",null,[e[39]||(e[39]=o("i",{class:"bi bi-broadcast"},null,-1)),v(" "+d(t.channelCount),1)])),[[q,l(s)("marketing.budget.summaryStats.activeChannels"),void 0,{hover:!0}]]),W((c(),y("span",null,[e[40]||(e[40]=o("i",{class:"bi bi-list-ol"},null,-1)),v(" "+d(t.entryCount),1)])),[[q,l(s)("marketing.budget.summaryStats.entries"),void 0,{hover:!0}]])])])]),_:2},1024))),128))]),_:1}),N.value?(c(),y("div",ul,[n(qe,{small:"",class:"me-2"}),n(Pe,{text:l(s)("marketing.budget.loading")},null,8,["text"])])):J.value.length===0?(c(),y("div",dl,[e[41]||(e[41]=o("i",{class:"bi bi-inbox fs-1 d-block mb-2"},null,-1)),v(" "+d(l(s)("marketing.budget.empty")),1)])):(c(),R(Ce,{key:2,class:"g-3"},{default:a(()=>[(c(!0),y(te,null,ue(J.value,t=>(c(),R(Z,{key:t.assetCode,cols:"12",md:"6",xl:"4"},{default:a(()=>[o("div",rl,[o("div",il,[o("div",cl,[o("div",ml,d(t.assetName||t.assetCode),1)]),o("span",pl,d(l(s)("marketing.budget.summaryStats.shareOfTotal",{percent:w(t)})),1)]),o("div",vl,[e[42]||(e[42]=o("span",{class:"currency-badge"},"IDR",-1)),o("span",gl,d(l(ie)(t.totalSpend)),1)]),o("div",bl,[o("div",{class:"budget-asset-card__progress-bar",style:bt({width:pe(t)+"%"})},null,4)]),o("div",fl,[o("div",yl,d(l(s)("marketing.budget.summaryStats.channels")),1),t.channels.length===0?(c(),y("div",_l,d(l(s)("marketing.budget.summaryStats.noChannels")),1)):S("",!0),(c(!0),y(te,null,ue(t.channels.slice(0,4),z=>(c(),y("div",{key:z.name,class:"budget-asset-card__row"},[o("span",kl,d(z.name),1),o("span",hl,d(l(ie)(z.amount)),1)]))),128))]),o("div",Cl,[o("div",Vl,d(l(s)("marketing.budget.summaryStats.recentEntries")),1),t.recent.length===0?(c(),y("div",Tl,d(l(s)("marketing.budget.summaryStats.noEntries")),1)):S("",!0),(c(!0),y(te,null,ue(t.re
2cent,z=>(c(),y("div",{key:z.id,class:"budget-asset-card__entry"},[o("div",Bl,[o("div",Il,d(z.channelName||z.budgetTypeName),1),o("div",xl,d(l(Be)(z.date,"dd MMM yyyy")),1)]),o("div",Sl,d(z.currency)+" "+d(l(ce)(z.amount)),1)]))),128))]),o("div",Dl,[o("span",Rl,d(l(s)("marketing.budget.summaryStats.entryCount",{count:t.entryCount})),1),n(G,{variant:"link",size:"sm",class:"budget-asset-card__view-all",onClick:z=>Ie(t)},{default:a(()=>[v(d(l(s)("marketing.budget.summaryStats.viewAll"))+" ",1),e[43]||(e[43]=o("i",{class:"bi bi-arrow-right ms-1"},null,-1))]),_:1},8,["onClick"])])])]),_:2},1024))),128))]),_:1}))]),_:1})):S("",!0),O.value==="list"&&k.value?(c(),R(ve,{key:3,class:"pb-0"},{default:a(()=>[n(Ce,{class:"mb-3 g-2"},{default:a(()=>[n(Z,{cols:"12",md:"6",lg:"4",xl:"3"},{default:a(()=>[o("div",wl,[o("div",$l,d(l(s)("marketing.budget.summaryStats.total")),1),o("div",Ul,[e[44]||(e[44]=o("span",{class:"currency-badge"},"IDR",-1)),o("span",Al,d(l(ie)(x.value.total.totalSpend)),1)]),o("div",Ml,[W((c(),y("span",null,[e[45]||(e[45]=o("i",{class:"bi bi-buildings"},null,-1)),v(" "+d(x.value.total.assetCount),1)])),[[q,l(s)("marketing.budget.summaryStats.activeAssets"),void 0,{hover:!0}]]),W((c(),y("span",null,[e[46]||(e[46]=o("i",{class:"bi bi-broadcast"},null,-1)),v(" "+d(x.value.total.channelCount),1)])),[[q,l(s)("marketing.budget.summaryStats.activeChannels"),void 0,{hover:!0}]]),W((c(),y("span",null,[e[47]||(e[47]=o("i",{class:"bi bi-list-ol"},null,-1)),v(" "+d(x.value.total.entryCount),1)])),[[q,l(s)("marketing.budget.summaryStats.entries"),void 0,{hover:!0}]])])])]),_:1}),(c(!0),y(te,null,ue(x.value.types,t=>(c(),R(Z,{key:t.id,cols:"12",md:"6",lg:"4",xl:"3"},{default:a(()=>[o("div",Nl,[o("div",Fl,d(t.name),1),o("div",El,[e[48]||(e[48]=o("span",{class:"currency-badge"},"IDR",-1)),o("span",Pl,d(l(ie)(t.totalSpend)),1)]),o("div",Ol,[W((c(),y("span",null,[e[49]||(e[49]=o("i",{class:"bi bi-buildings"},null,-1)),v(" "+d(t.assetCount),1)])),[[q,l(s)("marketing.budget.summaryStats.activeAssets"),void 0,{hover:!0}]]),W((c(),y("span",null,[e[50]||(e[50]=o("i",{class:"bi bi-broadcast"},null,-1)),v(" "+d(t.channelCount),1)])),[[q,l(s)("marketing.budget.summaryStats.activeChannels"),void 0,{hover:!0}]]),W((c(),y("span",null,[e[51]||(e[51]=o("i",{class:"bi bi-list-ol"},null,-1)),v(" "+d(t.entryCount),1)])),[[q,l(s)("marketing.budget.summaryStats.entries"),void 0,{hover:!0}]])])])]),_:2},1024))),128))]),_:1})]),_:1})):S("",!0),O.value==="list"?(c(),R(ve,{key:4,class:"p-0 budget-table-wrap"},{default:a(()=>[n(Je,{"sort-by":ne.value,"onUpdate:sortBy":e[16]||(e[16]=t=>ne.value=t),items:_.value,fields:U.value,busy:N.value,hover:"",responsive:"",class:"mb-0 budget-table","show-empty":"",onRowContextmenu:u,onRowClicked:l(ze),onRowDblclicked:l(je)},{"thead-top":a(()=>[n(We,{class:"filter-row"},{default:a(()=>[n(oe,{class:"col-filter"},{default:a(()=>[n(we,{modelValue:p.value.dateRange,"onUpdate:modelValue":e[10]||(e[10]=t=>p.value.dateRange=t),range:"",placeholder:"Date range","auto-apply":"","time-config":{enableTimePicker:!1},teleport:!0},null,8,["modelValue"])]),_:1}),n(oe,{class:"col-filter col-filter-select"},{default:a(()=>[n(H,{modelValue:p.value.budgetTypeId,"onUpdate:modelValue":e[11]||(e[11]=t=>p.value.budgetTypeId=t),options:$.value,reduce:t=>t.value,clearable:!0,placeholder:l(s)("common.filters.allTypes")},null,8,["modelValue","options","reduce","placeholder"])]),_:1}),n(oe,{class:"col-filter col-filter-select"},{default:a(()=>[n(H,{modelValue:p.value.assetCode,"onUpdate:modelValue":e[12]||(e[12]=t=>p.value.assetCode=t),options:M.value,reduce:t=>t.value,clearable:!0,placeholder:l(s)("common.filters.allAssets")},null,8,["modelValue","options","reduce","placeholder"])]),_:1}),n(oe,{class:"col-filter col-filter-select"},{default:a(()=>[n(H,{modelValue:p.value.channelId,"onUpdate:modelValue":e[13]||(e[13]=t=>p.value.channelId=t),options:K.value,reduce:t=>t.value,clearable:!0,placeholder:l(s)("common.filters.allChannels")},null,8,["modelValue","options","reduce","placeholder"])]),_:1}),n(oe,{class:"col-filter col-filter-select"},{default:a(()=>[n(H,{modelValue:p.value.currency,"onUpdate:modelValue":e[14]||(e[14]=t=>p.value.currency=t),options:le.value,reduce:t=>t.value,clearable:!0,placeholder:l(s)("common.all")},null,8,["modelValue","options","reduce","placeholder"])]),_:1}),n(oe),n(oe,{class:"col-filter col-filter-select"},{default:a(()=>[n(H,{modelValue:p.value.createdBy,"onUpdate:modelValue":e[15]||(e[15]=t=>p.value.createdBy=t),options:ee.value,reduce:t=>t.value,clearable:!0,placeholder:l(s)("common.all")},null,8,["modelValue","options","reduce","placeholder"])]),_:1}),n(oe)]),_:1})]),"table-busy":a(()=>[n(dt,{cols:U.value.length},null,8,["cols"])]),"cell(date)":a(({item:t})=>[v(d(l(Be)(t.date,"dd MMM yyyy")),1)]),"cell(assetCode)":a(({item:t})=>[v(d(t.assetName||t.assetCode),1)]),"cell(budgetTypeName)":a(({item:t})=>[o("span",{class:Ve(["budget-type-badge",t.budgetTypeName==="Ads"?"budget-type-badge--ads":"budget-type-badge--seo"])},d(t.budgetTypeName),3)]),"cell(channelName)":a(({item:t})=>[t.channelName?(c(),y("span",Gl,d(t.channelName),1)):(c(),y("span",Ll,"â"))]),"cell(amount)":a(({item:t})=>[o("div",zl,[o("span",jl,d(t.currency),1),o("span",Kl,d(l(ce)(t.amount)),1)])]),"cell(description)":a(({item:t})=>[t.description?W((c(),y("div",Ql,[v(d(t.description),1)])),[[q,t.description,void 0,{hover:!0}]]):(c(),y("span",Hl,"â"))]),"cell(actions)":a(({item:t})=>[t.seoDomainId?S("",!0):(c(),R(Xe,{key:0,variant:"link","no-caret":"",end:"",strategy:"fixed","menu-class":"action-menu"},{"button-content":a(()=>[...e[52]||(e[52]=[o("i",{class:"bi bi-three-dots-vertical"},null,-1)])]),default:a(()=>[l(B)("update","MARKETING.BUDGET")&&r(t)?(c(),R(Ee,{key:0,onClick:z=>Re(t)},{default:a(()=>[e[53]||(e[53]=o("i",{class:"bi bi-pencil ctx-icon-primary"},null,-1)),v(" "+d(l(s)("common.edit")),1)]),_:1},8,["onClick"])):S("",!0),l(B)("delete","MARKETING.BUDGET")&&r(t)?(c(),R(Ee,{key:1,onClick:z=>Fe(t)},{default:a(()=>[e[54]||(e[54]=o("i",{class:"bi bi-trash ctx-icon-rose"},null,-1)),v(" "+d(l(s)("common.delete")),1)]),_:1},8,["onClick"])):S("",!0)]),_:2},1024))]),empty:a(()=>[o("div",Yl,[e[55]||(e[55]=o("i",{class:"bi bi-inbox fs-1 text-muted"},null,-1)),o("p",ql,d(l(s)("marketing.budget.empty")),1)])]),_:1},8,["sort-by","items","fields","busy","onRowClicked","onRowDblclicked"])]),_:1})):S("",!0),O.value==="list"?(c(),R(et,{key:5,class:"table-pagination"},{default:a(()=>[o("div",Wl,d(k.value)+" entr"+d(k.value!==1?"ies":"y"),1),o("div",Xl,[n(Ze,{modelValue:l(g),"onUpdate:modelValue":e[17]||(e[17]=t=>ft(g)?g.value=t:null),"total-rows":k.value,"per-page":l(I),size:"sm","first-number":"","last-number":"",limit:5},null,8,["modelValue","total-rows","per-page"])])]),_:1})):S("",!0)]),_:1},8,["title"]),n(ct,{ref_key:"contextMenu",ref:C},{default:a(({item:t})=>[l(B)("update","MARKETING.BUDGET")&&!t.seoDomainId&&r(t)?(c(),y("li",{key:0,class:"context-menu__item",onClick:z=>Re(t)},[e[56]||(e[56]=o("i",{class:"bi bi-pencil ctx-icon-primary"},null,-1)),v(" "+d(l(s)("common.edit")),1)],8,Jl)):S("",!0),l(B)("delete","MARKETING.BUDGET")&&!t.seoDomainId&&r(t)?(c(),y("li",{key:1,class:"context-menu__item context-menu__item--danger",onClick:z=>Fe(t)},[e[57]||(e[57]=o("i",{class:"bi bi-trash"},null,-1)),v(" "+d(l(s)("common.delete")),1)],8,Zl)):S("",!0)]),_:1},512),n(it,{modelValue:_e.value,"onUpdate:modelValue":e[18]||(e[18]=t=>_e.value=t),title:l(s)("common.delete"),message:l(s)("common.confirm.message"),"confirm-variant":"danger","confirm-text":l(s)("common.delete"),onConfirm:Qe},null,8,["modelValue","title","message","confirm-text"]),n(Ct,{modelValue:ye.value,"onUpdate:modelValue":e[19]||(e[19]=t=>ye.value=t),item:xe.value,assets:T.value,"budget-types":f.value,channels:j.value,"default-asset-code":p.value.assetCode,readonly:Se.value,onCreated:Ne,onUpdated:Ke},null,8,["modelValue","item","assets","budget-types","channels","default-asset-code","readonly"]),n(Ht,{modelValue:De.value,"onUpdate:modelValue":e[20]||(e[20]=t=>De.value=t),onImported:Ne},null,8,["modelValue"]),n(tt,{modelValue:F.value,"onUpdate:modelValue":e[27]||(e[27]=t=>F.value=t),placement:"bottom",class:"budget-mobile-filters__sheet",title:l(s)("common.filtersLabel")},{default:a(()=>[o("div",ea,[n(ge,{label:l(s)("marketing.budget.fields.type")},{default:a(()=>[n(H,{modelValue:p.value.budgetTypeId,"onUpdate:modelValue":e[21]||(e[21]=t=>p.value.budgetTypeId=t),options:$.value,reduce:t=>t.value,clearable:!0,placeholder:l(s)("common.filters.allTypes")},null,8,["modelValue","options","reduce","placeholder"])]),_:1},8,["label"]),n(ge,{label:l(s)("marketing.budget.fields.asset")},{default:a(()=>[n(H,{modelValue:p.value.assetCode,"onUpdate:modelValue":e[22]||(e[22]=t=>p.value.assetCode=t),options:M.value,reduce:t=>t.value,clearable:!0,placeholder:l(s)("common.filters.allAssets")},null,8,["modelValue","options","reduce","placeholder"])]),_:1},8,["label"]),n(ge,{label:l(s)("marketing.budget.fields.channel")},{default:a(()=>[n(H,{modelValue:p.value.channelId,"onUpdate:modelValue":e[23]||(e[23]=t=>p.value.channelId=t),options:K.value,reduce:t=>t.value,clearable:!0,placeholder:l(s)("common.filters.allChannels")},null,8,["modelValue","options","reduce","placeholder"])]),_:1},8,["label"]),n(ge,{label:l(s)("marketing.budget.fields.amount")},{default:a(()=>[n(H,{modelValue:p.value.currency,"onUpdate:modelValue":e[24]||(e[24]=t=>p.value.currency=t),options:le.value,reduce:t=>t.value,clearable:!0,placeholder:l(s)("common.all")},null,8,["modelValue","options","reduce","placeholder"])]),_:1},8,["label"]),n(ge,{label:l(s)("marketing.budget.fields.createdBy")},{default:a(()=>[n(H,{modelValue:p.value.createdBy,"onUpdate:modelValue":e[25]||(e[25]=t=>p.value.createdBy=t),options:ee.value,reduce:t=>t.value,clearable:!0,placeholder:l(s)("common.all")},null,8,["modelValue","options","reduce","placeholder"])]),_:1},8,["label"])]),o("div",ta,[n(G,{variant:"outline-secondary",class:"flex-fill",disabled:P.value===0,onClick:me},{default:a(()=>[v(d(l(s)("common.clearFilters")),1)]),_:1},8,["disabled"]),n(G,{variant:"primary",class:"flex-fill",onClick:e[26]||(e[26]=t=>F.value=!1)},{default:a(()=>[v(d(l(s)("common.close")),1)]),_:1})])]),_:1},8,["modelValue","title"])])}}};export{ka 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.