PageSourceSearch

https://www.huttonsgroup.com/build/assets/revenue-attribution-00fyTL6G.js

js huttonsgroup.com collected 2026-09-24 12:41:07 UTC 4,022 bytes, 1 lines download raw bytes

1import{i as h,j as $,e as c,w as e,a as i,b as s,u as t,f as o,H as k,s as v,o as _,c as N,F as j,v as B,t as r,n as g,A as C}from"./app-mFI3VYmo.js";import{u as R}from"./debounce-DvcxFQhK.js";import{_ as b}from"./Button.vue_vue_type_script_setup_true_lang-k3cvwrGg.js";import{_ as S}from"./Table.vue_vue_type_script_setup_true_lang-DIdnrMJe.js";import{_ as l}from"./TableHeader.vue_vue_type_script_setup_true_lang-CJrrdrcJ.js";import{_ as A,a as u}from"./TableRow.vue_vue_type_script_setup_true_lang-cqLFCsGB.js";import{_ as D}from"./Heading.vue_vue_type_script_setup_true_lang-BrV_tX0v.js";import{_ as F}from"./AppLayout.vue_vue_type_script_setup_true_lang-PeenwFxJ.js";/* empty css            */import"./Spinner.vue_vue_type_script_setup_true_lang-CpQlG5al.js";import"./Skeleton.vue_vue_type_script_setup_true_lang-Bt9peTOf.js";import"./Card.vue_vue_type_script_setup_true_lang-Be3n1fxU.js";import"./csrfMeta-BHErKF-U.js";import"./Notification.vue_vue_type_script_setup_true_lang-BudQsNki.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./AppMenu.vue_vue_type_script_setup_true_lang-B8jjtGSI.js";import"./HuttonsLogo-BWFvgf73.js";import"./AppLogout.vue_vue_type_script_setup_true_lang-5bURSVEs.js";import"./portal-DKmILsax.js";import"./keyboard-DKN2DtMa.js";import"./use-resolve-button-type-DeF0NT7J.js";import"./menuAdapter-Dl7JM_Ig.js";const H={class:"space-y-6"},L={class:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between"},V={class:"flex gap-2"},M={class:"rounded-lg border border-gray-200 bg-white p-4 shadow-sm"},P={class:"font-semibold"},T={class:"text-xs text-gray-500"},lt=h({__name:"revenue-attribution",setup(E){const d=g(null),m=g(!1),{show:x}=R(),f=async()=>{m.value=!0;try{d.value=(await C.get(v("api.admin.v1.project-booster.revenue-attribution.index"))).data?.data}catch(p){x({status:"error",title:"Unable to load attribution",message:p?.response?.data?.message??"Revenue attribution is currently unavailable."})}finally{m.value=!1}};return $(f),(p,a)=>(_(),c(t(F),{title:"Revenue Attribution"},{default:e(()=>[i("div",H,[i("div",L,[i("div",null,[s(t(D),{level:"h1",margin:"m-0"},{default:e(()=>[...a[1]||(a[1]=[o("Revenue attribution",-1)])]),_:1}),a[2]||(a[2]=i("p",{class:"mt-1 text-sm text-gray-500"},"Links Project Booster conversions to existing Huttons transactions. No Huttons transaction records are changed.",-1))]),i("div",V,[s(t(b),{label:"Refresh","is-loading":m.value,onClick:f},null,8,["is-loading"]),s(t(b),{label:"Project Booster","bg-color":"bg-gray-700 hover:bg-gray-800",onClick:a[0]||(a[0]=n=>t(k).visit(t(v)("admin.project-booster.index")))})])]),i("section",M,[s(t(S),{"has-data":(d.value?.history?.data?.length??0)>0,"empty-text":"No transaction attributions recorded."},{header:e(()=>[s(t(l),null,{default:e(()=>[...a[3]||(a[3]=[o("Transaction",-1)])]),_:1}),s(t(l),null,{default:e(()=>[...a[4]||(a[4]=[o("Conversion",-1)])]),_:1}),s(t(l),null,{default:e(()=>[...a[5]||(a[5]=[o("Method",-1)])]),_:1}),s(t(l),null,{default:e(()=>[...a[6]||(a[6]=[o("Amount snapshot",-1)])]),_:1}),s(t(l),null,{default:e(()=>[...a[7]||(a[7]=[o("Date snapshot",-1)])]),_:1}),s(t(l),null,{default:e(()=>[...a[8]||(a[8]=[o("Created",-1)])]),_:1})]),data:e(()=>[(_(!0),N(j,null,B(d.value?.history?.data??[],(n,y)=>(_(),c(t(A),{key:n.id,index:y,striped:""},{default:e(()=>[s(t(u),null,{default:e(()=>[i("div",P,r(n.transaction_reference),1),i("div",T,r(n.external_transaction_id),1)]),_:2},1024),s(t(u),null,{default:e(()=>[o("#"+r(n.conversion_id),1)]),_:2},1024),s(t(u),null,{default:e(()=>[o(r(n.attribution_method.label),1)]),_:2},1024),s(t(u),null,{default:e(()=>[o(r(n.transaction_amount_snapshot==null?"—":`S$${Number(n.transaction_amount_snapshot).toLocaleString("en-SG",{minimumFractionDigits:2})}`),1)]),_:2},1024),s(t(u),null,{default:e(()=>[o(r(n.transaction_date_snapshot||"—"),1)]),_:2},1024),s(t(u),null,{default:e(()=>[o(r(n.created_at||"—"),1)]),_:2},1024)]),_:2},1032,["index"]))),128))]),_:1},8,["has-data"])])])]),_:1}))}});export{lt 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.