@accounter/client
Version:
Accounter client application
1 lines • 19.8 kB
JavaScript
import{s as e}from"./dist-ypP48_Ax.js";import{i as t,o as n,t as r}from"./utils-CbS-oR5I.js";import{r as i,t as a}from"./error-handling-CKe_iwSC.js";import{s as o,t as s}from"./routes-Cawu7UJi.js";import{t as c}from"./loader-circle-CfW9jOIr.js";import{A as l,Ct as u,K as d,St as f,U as p,ft as m,mt as h,ot as g,tt as _,x as v,xt as y}from"./common-D-vYt_Yl.js";import{t as b}from"./building-2-Bwt8dSgl.js";import{a as x,c as S,d as C,f as w,i as T,l as E,m as ee,n as D,o as O,p as te,pt as ne,r as k,s as A,t as re,u as ie}from"./select-Zdatwv1b.js";import{c as ae,d as oe,f as se,h as ce,l as le,m as ue,u as de,y as j}from"./separator-BvKylNhK.js";import{t as M}from"./button-DUNsVBiu.js";import{a as fe,c as pe,i as me,l as he,n as ge,o as _e,r as ve,s as ye,t as N}from"./alert-dialog-BHNcnEKV.js";import{Bc as P,Ul as be,a as xe,c as Se,d as F,i as Ce,n as we,o as I,r as L,s as Te,t as Ee}from"./table-AJA7Uyxy.js";import{Ht as De,In as Oe,Qo as R,Zo as z,b as ke,tt as Ae}from"./graphql-DC5GYCFE.js";import{n as je,r as Me,t as Ne}from"./alert-55QsYEfR.js";import{t as Pe}from"./page-layout-DfY10rJx.js";import{a as Fe,i as Ie,n as Le,r as Re,t as ze}from"./empty-BJZb5Yi4.js";var B=e(n(),1),V=`batchUpdateBusinesses`,Be=()=>{let[{fetching:e},t]=z(Ae);return{fetching:e,batchUpdateBusinesses:(0,B.useCallback)(async e=>{let n=`Error updating ${e.businessIds.length} businesses`;i.loading(`Updating businesses`,{id:V});try{let r=await t(e);if(a(r,n,V))return i.success(`Success`,{id:V,description:`Businesses updated`}),!0}catch(e){console.error(`${n}: ${e}`),i.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`},Ve=[{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 He(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 Ue({businessIds:e,onDone:t}){let[n,i]=(0,B.useState)(!1),[a,o]=(0,B.useState)(U),{fetching:s,batchUpdateBusinesses:c}=Be(),{countries:l,fetching:u}=h(),{selectableTags:d,fetching:f}=y(),p=He(a),m=Object.keys(p).length===0,v=a.sortCode.trim()!==``&&!G.test(a.sortCode.trim())||a.irsCode.trim()!==``&&!G.test(a.irsCode.trim()),b=async()=>{Object.keys(p).length!==0&&await c({businessIds:e,fields:p})&&(o(U),i(!1),t())};return(0,H.jsxs)(S,{open:n,onOpenChange:i,children:[(0,H.jsx)(ee,{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)(E,{className:`flex max-h-[90vh] flex-col sm:max-w-2xl`,children:[(0,H.jsxs)(w,{children:[(0,H.jsxs)(te,{children:[`Batch update `,e.length,` businesses`]}),(0,H.jsx)(ie,{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)(O,{children:`Country`}),(0,H.jsx)(g,{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`})]}),Ve.map(e=>(0,H.jsxs)(`div`,{className:r(`grid gap-1`,e.fullWidth&&`sm:col-span-2`),children:[(0,H.jsx)(O,{htmlFor:`batch-${e.key}`,children:e.label}),(0,H.jsx)(A,{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)(O,{children:`Tags`}),(0,H.jsx)(_,{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)(O,{htmlFor:`batch-${e.key}`,children:e.label}),(0,H.jsxs)(re,{value:a[e.key],onValueChange:t=>o(n=>({...n,[e.key]:t})),children:[(0,H.jsx)(T,{id:`batch-${e.key}`,children:(0,H.jsx)(x,{})}),(0,H.jsxs)(D,{children:[(0,H.jsx)(k,{value:`unset`,children:`No change`}),(0,H.jsx)(k,{value:`true`,children:`Yes`}),(0,H.jsx)(k,{value:`false`,children:`No`})]})]})]},e.key))]}),(0,H.jsxs)(C,{children:[(0,H.jsx)(M,{variant:`outline`,onClick:()=>i(!1),children:`Cancel`}),(0,H.jsx)(M,{onClick:()=>void b(),disabled:s||m||v,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 We(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 m(e.countryCode)??``}function Ge(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 Ke(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 qe=[{key:`client`,label:`Client`},{key:`admin`,label:`Admin`},{key:`inactive`,label:`Inactive`},{key:`unusedOnly`,label:`Unused only`}];function Je({filters:e,setFilters:t,usageLoading:n=!1}){let[r,i]=(0,B.useState)(e.name),[a,o]=(0,B.useState)(e.sortCode),[s,l]=(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)(A,{className:`w-72`,placeholder:`Business Name`,value:r,onChange:e=>i(e.target.value)}),qe.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)(c,{className:`mr-2 h-4 w-4 animate-spin`}):null,r.label]},r.key)}),(0,H.jsx)(A,{className:`w-24`,placeholder:`Sort code`,value:a,onChange:e=>o(e.target.value)}),(0,H.jsx)(A,{className:`w-40`,placeholder:`Tax category`,value:s,onChange:e=>l(e.target.value)})]})}var Y=`deleteBusiness`,Ye=()=>{let[{fetching:e},t]=z(Oe);return{fetching:e,deleteBusiness:(0,B.useCallback)(async e=>{let n=`Error deleting business ID [${e.businessId}]`,r=`${Y}-${e.businessId}`;i.loading(`Deleting business`,{id:r});try{let o=await t(e);if(a(o,n,r))return i.success(`Success`,{id:r,description:`Business deleted`}),!0}catch(e){console.error(`${n}: ${e}`),i.error(`Error`,{id:r,description:n,duration:1e5,closeButton:!0})}return!1},[t])}};function Xe({row:e,table:t}){let[n,r]=(0,B.useState)(!1),{fetching:i,deleteBusiness:a}=Ye(),o=t.options.meta,s=K(e),c=async()=>{await a({businessId:e.id})&&(r(!1),o?.refetchBusinesses?.())};if(!s){let t=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`;return(0,H.jsx)(`span`,{title:t,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`})})})}return(0,H.jsxs)(N,{open:n,onOpenChange:r,children:[(0,H.jsx)(he,{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)(me,{children:[(0,H.jsxs)(ye,{children:[(0,H.jsxs)(pe,{children:[`Delete "`,e.name,`"?`]}),(0,H.jsx)(fe,{children:`This permanently deletes the business and cannot be undone.`})]}),(0,H.jsxs)(_e,{children:[(0,H.jsx)(ve,{children:`Cancel`}),(0,H.jsx)(ge,{onClick:e=>{e.preventDefault(),c()},disabled:i,className:`bg-red-600 hover:bg-red-700`,children:`Delete`})]})]})]})}function X(e){return e&&!Number.isNaN(e.getTime())?be(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)(c,{className:`h-4 w-4 animate-spin`}):`—`)}var $=[{id:`select`,header:({table:e})=>(0,H.jsx)(v,{checked:e.getIsAllPageRowsSelected()||e.getIsSomePageRowsSelected()&&`indeterminate`,onCheckedChange:t=>e.toggleAllPageRowsSelected(!!t),"aria-label":`Select all`}),cell:({row:e})=>(0,H.jsx)(v,{checked:e.getIsSelected(),onCheckedChange:t=>e.toggleSelected(!!t),"aria-label":`Select row`}),enableSorting:!1,enableHiding:!1},{accessorKey:`name`,header:({column:e})=>(0,H.jsx)(u,{column:e,title:`Name`}),cell:({row:e})=>{let{id:t,name:n,hebrewName:r}=e.original;return(0,H.jsxs)(o,{to:s.BUSINESSES.DETAIL(t),state:{from:s.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)(u,{column:e,title:`Locality`}),cell:({row:e})=>J(e.original)||`—`},{accessorKey:`governmentId`,header:({column:e})=>(0,H.jsx)(u,{column:e,title:`VAT number`}),cell:({row:e})=>e.original.governmentId??`—`},{accessorKey:`createdAt`,header:({column:e})=>(0,H.jsx)(u,{column:e,title:`Created`}),sortFn:Z(`createdAt`),cell:({row:e})=>X(e.original.createdAt)},{accessorKey:`updatedAt`,header:({column:e})=>(0,H.jsx)(u,{column:e,title:`Updated`}),sortFn:Z(`updatedAt`),cell:({row:e})=>X(e.original.updatedAt)},{id:`sortCode`,accessorFn:e=>e.sortCodeKey,header:({column:e})=>(0,H.jsx)(u,{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)(u,{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)(P,{variant:`outline`,children:`Client`}):`—`},{id:`isAdmin`,header:`Admin`,cell:({row:e})=>e.original.isAdmin?(0,H.jsx)(P,{variant:`outline`,children:`Admin`}):`—`},{id:`status`,header:`Status`,cell:({row:e})=>e.original.isActive?(0,H.jsx)(P,{variant:`secondary`,children:`Active`}):(0,H.jsx)(P,{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)(P,{variant:`outline`,children:e},e))}):`—`},{accessorKey:`totalTransactions`,header:({column:e})=>(0,H.jsx)(u,{column:e,title:`Transactions`}),cell:({row:e,table:t})=>Q(e.original.totalTransactions,t)},{accessorKey:`totalDocuments`,header:({column:e})=>(0,H.jsx)(u,{column:e,title:`Documents`}),cell:({row:e,table:t})=>Q(e.original.totalDocuments,t)},{accessorKey:`totalMiscExpenses`,header:({column:e})=>(0,H.jsx)(u,{column:e,title:`Misc expenses`}),cell:({row:e,table:t})=>Q(e.original.totalMiscExpenses,t)},{accessorKey:`totalLedgerRecords`,header:({column:e})=>(0,H.jsx)(u,{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)(Xe,{row:e.original,table:t})}],Ze=[`totalTransactions`,`totalDocuments`,`totalMiscExpenses`,`totalLedgerRecords`],Qe=[{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`}]}],$e={sortCode:!1,taxCategory:!1,irsCode:!1,pcn874RecordType:!1,description:!1,tags:!1,totalTransactions:!1,totalDocuments:!1,totalMiscExpenses:!1,totalLedgerRecords:!1};function et({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 tt=()=>{let{setFiltersContext:e}=(0,B.useContext)(ae),[{data:t,fetching:n,error:r},i]=R({query:ke}),a=(0,B.useMemo)(()=>We(t?.allBusinesses?.nodes??[]),[t?.allBusinesses?.nodes]),[o,s]=(0,B.useState)({}),[c,u]=(0,B.useState)($e),[m,h]=(0,B.useState)([]),[g,_]=(0,B.useState)({name:``,client:!1,admin:!1,inactive:!1,unusedOnly:!1,sortCode:``,taxCategory:``}),v=(0,B.useMemo)(()=>a.map(e=>e.id),[a]),y=Ze.some(e=>c[e])||g.unusedOnly,[{data:x,fetching:S}]=R({query:De,variables:{ids:v},pause:!y||v.length===0}),C=(0,B.useMemo)(()=>Ge(a,x?.businessesUsage??[]),[a,x]),w=(0,B.useMemo)(()=>Ke(C,g),[C,g]),T=Se({features:Te,data:w,columns:$,getRowId:e=>e.id,initialState:{pagination:{pageIndex:0,pageSize:100}},enableRowSelection:!0,onRowSelectionChange:s,onColumnVisibilityChange:u,onSortingChange:h,state:{rowSelection:o,columnVisibility:c,sorting:m},meta:{usageFetching:y&&S,refetchBusinesses:()=>i()}}),E=(0,B.useMemo)(()=>w.filter(e=>o[e.id]).map(e=>e.id),[w,o]);return(0,B.useEffect)(()=>{let t=!1,n=()=>{t||(t=!0,i())},r=E.map(e=>({id:e,onChange:n}));e((0,H.jsxs)(`div`,{className:`flex flex-row gap-x-5`,children:[(0,H.jsx)(Je,{filters:g,setFilters:_,usageLoading:y&&S}),(0,H.jsx)(p,{selected:r,resetMerge:()=>s({})}),(0,H.jsx)(Ue,{businessIds:E,onDone:()=>{i(),s({})}})]}))},[e,E,i,g,_,y,S]),(0,H.jsx)(Pe,{title:`Businesses (${a.length})`,description:`All businesses`,headerActions:(0,H.jsxs)(`div`,{className:`flex items-center py-4 gap-4`,children:[(0,H.jsx)(l,{description:``,onAdd:()=>i()}),(0,H.jsxs)(le,{children:[(0,H.jsx)(ce,{asChild:!0,children:(0,H.jsxs)(M,{variant:`outline`,children:[`Columns `,(0,H.jsx)(ne,{})]})}),(0,H.jsx)(oe,{align:`end`,children:Qe.map(e=>({...e,columns:e.columns.filter(e=>T.getColumn(e.id)?.getCanHide())})).filter(e=>e.columns.length>0).map((e,t)=>{let n=e.columns.every(e=>T.getColumn(e.id)?.getIsVisible()??!1);return(0,H.jsxs)(B.Fragment,{children:[t>0?(0,H.jsx)(ue,{}):null,(0,H.jsxs)(se,{className:`flex w-full items-center justify-between gap-4 font-semibold`,onSelect:t=>{t.preventDefault();for(let t of e.columns)T.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=T.getColumn(e.id);return t?(0,H.jsx)(de,{checked:t.getIsVisible(),onCheckedChange:e=>t.toggleVisibility(!!e),children:e.label},e.id):null})]},e.label)})})]})]}),children:r?(0,H.jsxs)(Ne,{variant:`destructive`,children:[(0,H.jsx)(Me,{children:`Failed to load businesses`}),(0,H.jsx)(je,{children:r.message})]}):n?(0,H.jsx)(`div`,{className:`rounded-md border p-4`,children:(0,H.jsx)(d,{columns:8,rows:10})}):a.length===0?(0,H.jsxs)(ze,{className:`py-8 sm:py-12`,children:[(0,H.jsx)(Ie,{children:(0,H.jsx)(b,{className:`size-8 sm:size-10 text-muted-foreground`})}),(0,H.jsx)(Fe,{children:`No businesses yet`}),(0,H.jsx)(Re,{children:`Add your first business, or generate businesses from your transactions.`}),(0,H.jsx)(Le,{children:(0,H.jsx)(l,{description:``,onAdd:()=>i()})})]}):(0,H.jsxs)(`div`,{className:`space-y-4`,children:[(0,H.jsx)(et,{className:`overflow-hidden rounded-md border`,children:(0,H.jsxs)(Ee,{children:[(0,H.jsx)(xe,{children:T.getHeaderGroups().map(e=>(0,H.jsx)(I,{children:e.headers.map(e=>(0,H.jsx)(Ce,{colSpan:e.colSpan,children:e.isPlaceholder?null:F(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,H.jsx)(we,{children:T.getRowModel().rows.length?T.getRowModel().rows.map(e=>(0,H.jsx)(I,{"data-state":e.getIsSelected()&&`selected`,children:e.getVisibleCells().map(e=>(0,H.jsx)(L,{children:F(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,H.jsx)(I,{children:(0,H.jsx)(L,{colSpan:$.length,className:`h-24 text-center`,children:`No results.`})})})]})}),(0,H.jsx)(f,{table:T})]})})};export{tt as Businesses};