UNPKG

@accounter/client

Version:
1 lines 19.7 kB
import{s as e}from"./dist-BmACi7k_.js";import{i as t,o as n,t as r}from"./utils-BxkqV8PM.js";import{C as i,Ln as a,Lo as o,Ro as s,Wt as c,it as l,r as u,t as d}from"./error-handling-wXZrXhQp.js";import{s as f,t as p}from"./routes-C4NpBRv7.js";import{a as m,c as h,d as g,dt as _,f as v,i as y,l as b,m as x,mt as S,n as C,o as w,p as T,r as E,s as D,t as ee,u as te}from"./select-C2i-wLGF.js";import{A as O,K as ne,St as k,U as re,bt as ie,dt as ae,ot as oe,pt as se,tt as ce,x as A,xt as le}from"./common-DUYHPekf.js";import{t as ue}from"./building-2-fRJtZUOY.js";import{c as de,d as fe,f as pe,h as me,l as he,m as ge,u as _e,y as j}from"./separator-D3vGB2Vv.js";import{t as M}from"./button-BZ6z_NAl.js";import{a as ve,c as N,i as P,l as F,n as ye,o as be,r as xe,s as Se,t as Ce}from"./alert-dialog-lQFwCtD8.js";import{Kl as we,Uc as I,a as Te,c as Ee,i as De,m as Oe,n as ke,o as L,p as Ae,r as R,s as z,t as je,u as Me}from"./table-BiqHkTL_.js";import{n as Ne,r as Pe,t as Fe}from"./alert-inbp4t8N.js";import{t as Ie}from"./page-layout-BcxA2__m.js";import{a as Le,i as Re,n as ze,r as Be,t as Ve}from"./empty-CxO5-Qiy.js";var B=e(n(),1),V=`batchUpdateBusinesses`,He=()=>{let[{fetching:e},t]=o(l);return{fetching:e,batchUpdateBusinesses:(0,B.useCallback)(async e=>{let n=`Error updating ${e.businessIds.length} businesses`;u.loading(`Updating businesses`,{id:V});try{if(d(await t(e),n,V))return u.success(`Success`,{id:V,description:`Businesses updated`}),!0}catch(e){console.error(`${n}: ${e}`),u.error(`Error`,{id:V,description:n,duration:1e5,closeButton:!0})}return!1},[t])}},H=t(),U={country:``,city:``,zipCode:``,sortCode:``,irsCode:``,taxCategory:``,description:``,tags:[],isActive:`unset`,isReceiptEnough:`unset`,isDocumentsOptional:`unset`,optionalVAT:`unset`,exemptDealer:`unset`},Ue=[{key:`city`,label:`City`},{key:`zipCode`,label:`Zip code`},{key:`sortCode`,label:`Sort code`,numeric:!0},{key:`irsCode`,label:`IRS code`,numeric:!0},{key:`taxCategory`,label:`Tax category (UUID)`,fullWidth:!0},{key:`description`,label:`Suggestion description`,fullWidth:!0}],W=[{key:`isActive`,label:`Is active`},{key:`isReceiptEnough`,label:`Is receipt enough`},{key:`isDocumentsOptional`,label:`No docs required`},{key:`optionalVAT`,label:`Is VAT optional`},{key:`exemptDealer`,label:`Exempt dealer`}],G=/^\d+$/;function We(e){let t={};e.country.trim()&&(t.country=e.country.trim()),e.city.trim()&&(t.city=e.city.trim()),e.zipCode.trim()&&(t.zipCode=e.zipCode.trim()),e.sortCode.trim()&&(t.sortCode=Number(e.sortCode)),e.irsCode.trim()&&(t.irsCode=Number(e.irsCode)),e.taxCategory.trim()&&(t.taxCategory=e.taxCategory.trim());let n={};e.description.trim()&&(n.description=e.description.trim()),e.tags.length>0&&(n.tags=e.tags.map(e=>({id:e}))),Object.keys(n).length>0&&(t.suggestions=n);for(let{key:n}of W)e[n]!==`unset`&&(t[n]=e[n]===`true`);return t}function Ge({businessIds:e,onDone:t}){let[n,i]=(0,B.useState)(!1),[a,o]=(0,B.useState)(U),{fetching:s,batchUpdateBusinesses:c}=He(),{countries:l,fetching:u}=se(),{selectableTags:d,fetching:f}=ie(),p=We(a),_=Object.keys(p).length===0,S=a.sortCode.trim()!==``&&!G.test(a.sortCode.trim())||a.irsCode.trim()!==``&&!G.test(a.irsCode.trim()),O=async()=>{Object.keys(p).length!==0&&await c({businessIds:e,fields:p})&&(o(U),i(!1),t())};return(0,H.jsxs)(h,{open:n,onOpenChange:i,children:[(0,H.jsx)(x,{asChild:!0,children:(0,H.jsxs)(M,{variant:`outline`,size:`sm`,disabled:e.length===0,children:[`Batch update`,e.length?` (${e.length})`:``]})}),(0,H.jsxs)(b,{className:`flex max-h-[90vh] flex-col sm:max-w-2xl`,children:[(0,H.jsxs)(v,{children:[(0,H.jsxs)(T,{children:[`Batch update `,e.length,` businesses`]}),(0,H.jsx)(te,{children:`Only the fields you fill in are applied to every selected business.`})]}),(0,H.jsxs)(`div`,{className:`-mx-1 grid flex-1 grid-cols-1 gap-3 overflow-y-auto px-1 sm:grid-cols-2`,children:[(0,H.jsxs)(`div`,{className:`grid gap-1 sm:col-span-2`,children:[(0,H.jsx)(w,{children:`Country`}),(0,H.jsx)(oe,{data:l.map(e=>({value:e.code,label:e.name})),value:a.country||null,onChange:e=>o(t=>({...t,country:e??``})),disabled:u,placeholder:`Select country`})]}),Ue.map(e=>(0,H.jsxs)(`div`,{className:r(`grid gap-1`,e.fullWidth&&`sm:col-span-2`),children:[(0,H.jsx)(w,{htmlFor:`batch-${e.key}`,children:e.label}),(0,H.jsx)(D,{id:`batch-${e.key}`,type:e.numeric?`number`:`text`,value:a[e.key],placeholder:e.placeholder,onChange:t=>o(n=>({...n,[e.key]:t.target.value}))})]},e.key)),(0,H.jsxs)(`div`,{className:`grid gap-1 sm:col-span-2`,children:[(0,H.jsx)(w,{children:`Tags`}),(0,H.jsx)(ce,{options:d,onValueChange:e=>o(t=>({...t,tags:e})),defaultValue:a.tags,placeholder:`Select tags`,variant:`default`,disabled:f})]}),W.map(e=>(0,H.jsxs)(`div`,{className:`grid gap-1`,children:[(0,H.jsx)(w,{htmlFor:`batch-${e.key}`,children:e.label}),(0,H.jsxs)(ee,{value:a[e.key],onValueChange:t=>o(n=>({...n,[e.key]:t})),children:[(0,H.jsx)(y,{id:`batch-${e.key}`,children:(0,H.jsx)(m,{})}),(0,H.jsxs)(C,{children:[(0,H.jsx)(E,{value:`unset`,children:`No change`}),(0,H.jsx)(E,{value:`true`,children:`Yes`}),(0,H.jsx)(E,{value:`false`,children:`No`})]})]})]},e.key))]}),(0,H.jsxs)(g,{children:[(0,H.jsx)(M,{variant:`outline`,onClick:()=>i(!1),children:`Cancel`}),(0,H.jsx)(M,{onClick:()=>void O(),disabled:s||_||S,children:`Save`})]})]})]})}function K(e){return e.totalTransactions===0&&e.totalDocuments===0&&e.totalMiscExpenses===0&&e.totalLedgerRecords===0}function q(e){if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t}function Ke(e){return e.filter(e=>e.__typename===`LtdFinancialEntity`).map(e=>({id:e.id,name:e.name,hebrewName:e.hebrewName??null,governmentId:e.governmentId??null,countryCode:e.country?.code??null,city:e.city??null,zipCode:e.zipCode??null,createdAt:q(e.createdAt),updatedAt:q(e.updatedAt),sortCodeKey:e.sortCode?.key??null,sortCodeName:e.sortCode?.name??null,taxCategoryName:e.taxCategory?.name??null,irsCode:e.irsCode??null,pcn874RecordType:e.pcn874RecordType??null,isClient:e.isClient??!1,isAdmin:e.isAdmin??!1,isActive:e.isActive??!0,suggestionDescription:e.suggestions?.description??null,suggestionTags:e.suggestions?.tags?.map(e=>e.name).filter(e=>!!e)??[]})).sort((e,t)=>e.name.localeCompare(t.name,void 0,{sensitivity:`base`}))}function J(e){return ae(e.countryCode)??``}function qe(e,t){let n=new Map;for(let e of t)n.set(e.businessId,e);return e.map(e=>{let t=n.get(e.id);return{...e,totalTransactions:t?.totalTransactions??null,totalDocuments:t?.totalDocuments??null,totalMiscExpenses:t?.totalMiscExpenses??null,totalLedgerRecords:t?.totalLedgerRecords??null}})}function Je(e,t){let n=t.name.trim().toLowerCase(),r=t.sortCode.trim().toLowerCase(),i=t.taxCategory.trim().toLowerCase();return e.filter(e=>{if(n&&!`${e.name} ${e.hebrewName??``}`.toLowerCase().includes(n)||t.client&&!e.isClient||t.admin&&!e.isAdmin||t.inactive&&e.isActive||t.unusedOnly&&!K(e))return!1;if(r){let t=String(e.sortCodeKey??``).includes(r),n=(e.sortCodeName??``).toLowerCase().includes(r);if(!t&&!n)return!1}return!(i&&!(e.taxCategoryName??``).toLowerCase().includes(i))})}var Ye=[{key:`client`,label:`Client`},{key:`admin`,label:`Admin`},{key:`inactive`,label:`Inactive`},{key:`unusedOnly`,label:`Unused only`}];function Xe({filters:e,setFilters:t,usageLoading:n=!1}){let[r,i]=(0,B.useState)(e.name),[a,o]=(0,B.useState)(e.sortCode),[s,c]=(0,B.useState)(e.taxCategory);return(0,B.useEffect)(()=>{let e=setTimeout(()=>{t(e=>({...e,name:r}))},600);return()=>{clearTimeout(e)}},[r,t]),(0,B.useEffect)(()=>{let e=setTimeout(()=>{t(e=>({...e,sortCode:a}))},600);return()=>{clearTimeout(e)}},[a,t]),(0,B.useEffect)(()=>{let e=setTimeout(()=>{t(e=>({...e,taxCategory:s}))},600);return()=>{clearTimeout(e)}},[s,t]),(0,H.jsxs)(`div`,{className:`flex flex-row gap-5 items-center`,children:[(0,H.jsx)(D,{className:`w-72`,placeholder:`Business Name`,value:r,onChange:e=>i(e.target.value)}),Ye.map(r=>{let i=r.key===`unusedOnly`&&e.unusedOnly&&n;return(0,H.jsxs)(M,{size:`sm`,variant:e[r.key]?`default`:`outline`,onClick:()=>t(e=>({...e,[r.key]:!e[r.key]})),children:[i?(0,H.jsx)(_,{className:`mr-2 h-4 w-4 animate-spin`}):null,r.label]},r.key)}),(0,H.jsx)(D,{className:`w-24`,placeholder:`Sort code`,value:a,onChange:e=>o(e.target.value)}),(0,H.jsx)(D,{className:`w-40`,placeholder:`Tax category`,value:s,onChange:e=>c(e.target.value)})]})}var Ze=`deleteBusiness`,Qe=()=>{let[{fetching:e},t]=o(a);return{fetching:e,deleteBusiness:(0,B.useCallback)(async e=>{let n=`Error deleting business ID [${e.businessId}]`,r=`${Ze}-${e.businessId}`;u.loading(`Deleting business`,{id:r});try{if(d(await t(e),n,r))return u.success(`Success`,{id:r,description:`Business deleted`}),!0}catch(e){console.error(`${n}: ${e}`),u.error(`Error`,{id:r,description:n,duration:1e5,closeButton:!0})}return!1},[t])}};function Y({row:e,table:t}){let[n,r]=(0,B.useState)(!1),{fetching:i,deleteBusiness:a}=Qe(),o=t.options.meta,s=K(e),c=async()=>{await a({businessId:e.id})&&(r(!1),o?.refetchBusinesses?.())};return s?(0,H.jsxs)(Ce,{open:n,onOpenChange:r,children:[(0,H.jsx)(F,{asChild:!0,children:(0,H.jsx)(M,{variant:`ghost`,size:`icon`,className:`text-red-600 hover:text-red-700`,title:`Delete business`,children:(0,H.jsx)(j,{className:`h-4 w-4`})})}),(0,H.jsxs)(P,{children:[(0,H.jsxs)(Se,{children:[(0,H.jsxs)(N,{children:[`Delete "`,e.name,`"?`]}),(0,H.jsx)(ve,{children:`This permanently deletes the business and cannot be undone.`})]}),(0,H.jsxs)(be,{children:[(0,H.jsx)(xe,{children:`Cancel`}),(0,H.jsx)(ye,{onClick:e=>{e.preventDefault(),c()},disabled:i,className:`bg-red-600 hover:bg-red-700`,children:`Delete`})]})]})]}):(0,H.jsx)(`span`,{title:e.totalTransactions===null?`Only unused businesses can be deleted — enable a usage column to load usage`:`This business is in use and cannot be deleted`,className:`inline-block cursor-not-allowed`,children:(0,H.jsx)(M,{variant:`ghost`,size:`icon`,className:`text-red-600 hover:text-red-700 pointer-events-none`,disabled:!0,children:(0,H.jsx)(j,{className:`h-4 w-4`})})})}function X(e){return e&&!Number.isNaN(e.getTime())?we(e,`dd/MM/yyyy`):`—`}function Z(e){return(t,n)=>(t.original[e]?.getTime()??0)-(n.original[e]?.getTime()??0)}function Q(e,t){return e??(t.options.meta?.usageFetching?(0,H.jsx)(_,{className:`h-4 w-4 animate-spin`}):`—`)}var $=[{id:`select`,header:({table:e})=>(0,H.jsx)(A,{checked:e.getIsAllPageRowsSelected()||e.getIsSomePageRowsSelected()&&`indeterminate`,onCheckedChange:t=>e.toggleAllPageRowsSelected(!!t),"aria-label":`Select all`}),cell:({row:e})=>(0,H.jsx)(A,{checked:e.getIsSelected(),onCheckedChange:t=>e.toggleSelected(!!t),"aria-label":`Select row`}),enableSorting:!1,enableHiding:!1},{accessorKey:`name`,header:({column:e})=>(0,H.jsx)(k,{column:e,title:`Name`}),cell:({row:e})=>{let{id:t,name:n,hebrewName:r}=e.original;return(0,H.jsxs)(f,{to:p.BUSINESSES.DETAIL(t),state:{from:p.BUSINESSES.ALL},className:`font-medium text-blue-600 hover:underline`,children:[n,r?(0,H.jsx)(`span`,{className:`block text-xs text-muted-foreground`,children:r}):null]})}},{id:`locality`,accessorFn:e=>J(e),header:({column:e})=>(0,H.jsx)(k,{column:e,title:`Locality`}),cell:({row:e})=>J(e.original)||`—`},{accessorKey:`governmentId`,header:({column:e})=>(0,H.jsx)(k,{column:e,title:`VAT number`}),cell:({row:e})=>e.original.governmentId??`—`},{accessorKey:`createdAt`,header:({column:e})=>(0,H.jsx)(k,{column:e,title:`Created`}),sortingFn:Z(`createdAt`),cell:({row:e})=>X(e.original.createdAt)},{accessorKey:`updatedAt`,header:({column:e})=>(0,H.jsx)(k,{column:e,title:`Updated`}),sortingFn:Z(`updatedAt`),cell:({row:e})=>X(e.original.updatedAt)},{id:`sortCode`,accessorFn:e=>e.sortCodeKey,header:({column:e})=>(0,H.jsx)(k,{column:e,title:`Sort code`}),cell:({row:e})=>{let{sortCodeKey:t,sortCodeName:n}=e.original;return t==null&&!n?`—`:(0,H.jsxs)(`div`,{className:`flex flex-col leading-tight`,children:[t!=null&&(0,H.jsx)(`span`,{className:`font-medium`,children:t}),n&&(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:n})]})}},{id:`taxCategory`,header:`Tax category`,cell:({row:e})=>e.original.taxCategoryName??`—`},{id:`irsCode`,accessorFn:e=>e.irsCode,header:({column:e})=>(0,H.jsx)(k,{column:e,title:`IRS code`}),cell:({row:e})=>e.original.irsCode??`—`},{id:`pcn874RecordType`,header:`PCN874 type`,cell:({row:e})=>e.original.pcn874RecordType??`—`},{id:`isClient`,header:`Client`,cell:({row:e})=>e.original.isClient?(0,H.jsx)(I,{variant:`outline`,children:`Client`}):`—`},{id:`isAdmin`,header:`Admin`,cell:({row:e})=>e.original.isAdmin?(0,H.jsx)(I,{variant:`outline`,children:`Admin`}):`—`},{id:`status`,header:`Status`,cell:({row:e})=>e.original.isActive?(0,H.jsx)(I,{variant:`secondary`,children:`Active`}):(0,H.jsx)(I,{variant:`destructive`,children:`Inactive`})},{id:`description`,header:`Description`,cell:({row:e})=>e.original.suggestionDescription??`—`},{id:`tags`,header:`Tags`,cell:({row:e})=>e.original.suggestionTags.length?(0,H.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:e.original.suggestionTags.map(e=>(0,H.jsx)(I,{variant:`outline`,children:e},e))}):`—`},{accessorKey:`totalTransactions`,header:({column:e})=>(0,H.jsx)(k,{column:e,title:`Transactions`}),cell:({row:e,table:t})=>Q(e.original.totalTransactions,t)},{accessorKey:`totalDocuments`,header:({column:e})=>(0,H.jsx)(k,{column:e,title:`Documents`}),cell:({row:e,table:t})=>Q(e.original.totalDocuments,t)},{accessorKey:`totalMiscExpenses`,header:({column:e})=>(0,H.jsx)(k,{column:e,title:`Misc expenses`}),cell:({row:e,table:t})=>Q(e.original.totalMiscExpenses,t)},{accessorKey:`totalLedgerRecords`,header:({column:e})=>(0,H.jsx)(k,{column:e,title:`Ledger records`}),cell:({row:e,table:t})=>Q(e.original.totalLedgerRecords,t)},{id:`actions`,enableHiding:!1,enableSorting:!1,cell:({row:e,table:t})=>(0,H.jsx)(Y,{row:e.original,table:t})}],$e=[`totalTransactions`,`totalDocuments`,`totalMiscExpenses`,`totalLedgerRecords`],et=[{label:`Core`,columns:[{id:`name`,label:`Name`}]},{label:`Main`,columns:[{id:`locality`,label:`Locality`},{id:`governmentId`,label:`VAT number`},{id:`createdAt`,label:`Created`},{id:`updatedAt`,label:`Updated`}]},{label:`Categorization`,columns:[{id:`sortCode`,label:`Sort code`},{id:`taxCategory`,label:`Tax category`},{id:`irsCode`,label:`IRS code`},{id:`pcn874RecordType`,label:`PCN874 type`}]},{label:`Extension tags`,columns:[{id:`isClient`,label:`Client`},{id:`isAdmin`,label:`Admin`},{id:`status`,label:`Status`}]},{label:`Suggestion defaults`,columns:[{id:`description`,label:`Description`},{id:`tags`,label:`Tags`}]},{label:`Usage`,columns:[{id:`totalTransactions`,label:`Transactions`},{id:`totalDocuments`,label:`Documents`},{id:`totalMiscExpenses`,label:`Misc expenses`},{id:`totalLedgerRecords`,label:`Ledger records`}]}],tt={sortCode:!1,taxCategory:!1,irsCode:!1,pcn874RecordType:!1,description:!1,tags:!1,totalTransactions:!1,totalDocuments:!1,totalMiscExpenses:!1,totalLedgerRecords:!1};function nt({children:e,className:t}){let n=(0,B.useRef)(null),[i,a]=(0,B.useState)({left:!1,right:!1});return(0,B.useEffect)(()=>{let e=n.current;if(!e)return;let t=e.querySelector(`[data-slot="table-container"]`);if(!t)return;let r=()=>{let{scrollLeft:e,scrollWidth:n,clientWidth:r}=t;a({left:e>0,right:Math.ceil(e+r)<n})};r(),t.addEventListener(`scroll`,r,{passive:!0});let i=new ResizeObserver(r);return i.observe(t),t.firstElementChild&&i.observe(t.firstElementChild),()=>{t.removeEventListener(`scroll`,r),i.disconnect()}},[]),(0,H.jsxs)(`div`,{ref:n,className:r(`relative`,t),children:[e,(0,H.jsx)(`div`,{className:r(`pointer-events-none absolute inset-y-0 left-0 w-6 bg-gradient-to-r from-black/15 to-transparent transition-opacity dark:from-black/40`,i.left?`opacity-100`:`opacity-0`)}),(0,H.jsx)(`div`,{className:r(`pointer-events-none absolute inset-y-0 right-0 w-6 bg-gradient-to-l from-black/15 to-transparent transition-opacity dark:from-black/40`,i.right?`opacity-100`:`opacity-0`)})]})}var rt=()=>{let{setFiltersContext:e}=(0,B.useContext)(de),[{data:t,fetching:n,error:r},a]=s({query:i}),o=(0,B.useMemo)(()=>Ke(t?.allBusinesses?.nodes??[]),[t?.allBusinesses?.nodes]),[l,u]=(0,B.useState)({}),[d,f]=(0,B.useState)(tt),[p,m]=(0,B.useState)([]),[h,g]=(0,B.useState)({name:``,client:!1,admin:!1,inactive:!1,unusedOnly:!1,sortCode:``,taxCategory:``}),_=(0,B.useMemo)(()=>o.map(e=>e.id),[o]),v=$e.some(e=>d[e])||h.unusedOnly,[{data:y,fetching:b}]=s({query:c,variables:{ids:_},pause:!v||_.length===0}),x=(0,B.useMemo)(()=>qe(o,y?.businessesUsage??[]),[o,y]),C=(0,B.useMemo)(()=>Je(x,h),[x,h]),w=Ee({data:C,columns:$,getRowId:e=>e.id,getCoreRowModel:Me(),getSortedRowModel:Oe(),getPaginationRowModel:Ae(),initialState:{pagination:{pageSize:100}},enableRowSelection:!0,onRowSelectionChange:u,onColumnVisibilityChange:f,onSortingChange:m,state:{rowSelection:l,columnVisibility:d,sorting:p},meta:{usageFetching:v&&b,refetchBusinesses:()=>a()}}),T=(0,B.useMemo)(()=>C.filter(e=>l[e.id]).map(e=>e.id),[C,l]);return(0,B.useEffect)(()=>{let t=!1,n=()=>{t||(t=!0,a())},r=T.map(e=>({id:e,onChange:n}));e((0,H.jsxs)(`div`,{className:`flex flex-row gap-x-5`,children:[(0,H.jsx)(Xe,{filters:h,setFilters:g,usageLoading:v&&b}),(0,H.jsx)(re,{selected:r,resetMerge:()=>u({})}),(0,H.jsx)(Ge,{businessIds:T,onDone:()=>{a(),u({})}})]}))},[e,T,a,h,g,v,b]),(0,H.jsx)(Ie,{title:`Businesses (${o.length})`,description:`All businesses`,headerActions:(0,H.jsxs)(`div`,{className:`flex items-center py-4 gap-4`,children:[(0,H.jsx)(O,{description:``,onAdd:()=>a()}),(0,H.jsxs)(he,{children:[(0,H.jsx)(me,{asChild:!0,children:(0,H.jsxs)(M,{variant:`outline`,children:[`Columns `,(0,H.jsx)(S,{})]})}),(0,H.jsx)(fe,{align:`end`,children:et.map(e=>({...e,columns:e.columns.filter(e=>w.getColumn(e.id)?.getCanHide())})).filter(e=>e.columns.length>0).map((e,t)=>{let n=e.columns.every(e=>w.getColumn(e.id)?.getIsVisible()??!1);return(0,H.jsxs)(B.Fragment,{children:[t>0?(0,H.jsx)(ge,{}):null,(0,H.jsxs)(pe,{className:`flex w-full items-center justify-between gap-4 font-semibold`,onSelect:t=>{t.preventDefault();for(let t of e.columns)w.getColumn(t.id)?.toggleVisibility(!n)},children:[e.label,(0,H.jsx)(`span`,{className:`text-xs font-normal text-muted-foreground`,children:n?`Hide all`:`Show all`})]}),e.columns.map(e=>{let t=w.getColumn(e.id);return t?(0,H.jsx)(_e,{checked:t.getIsVisible(),onCheckedChange:e=>t.toggleVisibility(!!e),children:e.label},e.id):null})]},e.label)})})]})]}),children:r?(0,H.jsxs)(Fe,{variant:`destructive`,children:[(0,H.jsx)(Pe,{children:`Failed to load businesses`}),(0,H.jsx)(Ne,{children:r.message})]}):n?(0,H.jsx)(`div`,{className:`rounded-md border p-4`,children:(0,H.jsx)(ne,{columns:8,rows:10})}):o.length===0?(0,H.jsxs)(Ve,{className:`py-8 sm:py-12`,children:[(0,H.jsx)(Re,{children:(0,H.jsx)(ue,{className:`size-8 sm:size-10 text-muted-foreground`})}),(0,H.jsx)(Le,{children:`No businesses yet`}),(0,H.jsx)(Be,{children:`Add your first business, or generate businesses from your transactions.`}),(0,H.jsx)(ze,{children:(0,H.jsx)(O,{description:``,onAdd:()=>a()})})]}):(0,H.jsxs)(`div`,{className:`space-y-4`,children:[(0,H.jsx)(nt,{className:`overflow-hidden rounded-md border`,children:(0,H.jsxs)(je,{children:[(0,H.jsx)(Te,{children:w.getHeaderGroups().map(e=>(0,H.jsx)(L,{children:e.headers.map(e=>(0,H.jsx)(De,{colSpan:e.colSpan,children:e.isPlaceholder?null:z(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,H.jsx)(ke,{children:w.getRowModel().rows.length?w.getRowModel().rows.map(e=>(0,H.jsx)(L,{"data-state":e.getIsSelected()&&`selected`,children:e.getVisibleCells().map(e=>(0,H.jsx)(R,{children:z(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,H.jsx)(L,{children:(0,H.jsx)(R,{colSpan:$.length,className:`h-24 text-center`,children:`No results.`})})})]})}),(0,H.jsx)(le,{table:w})]})})};export{rt as Businesses};