UNPKG

@accounter/client

Version:
1 lines 20.3 kB
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{t as o}from"./chunk-62JRHF6Z-CBbOZODe.js";import{St as s,Tt as c,W as l,Z as u,ct as d,ht as f,j as p,nt as m,pt as h,q as ee,rt as g,wt as _,xt as v}from"./common-CXB0UgWw.js";import{t as y}from"./building-2-DEOLLnGI.js";import{a as b,c as x,d as S,f as C,ft as w,i as T,l as E,m as te,n as ne,o as D,p as re,r as O,s as k,t as ie,u as ae}from"./select-DrAHsHyM.js";import{c as A,d as j,f as M,h as N,l as oe,m as se,u as ce,y as P}from"./separator-CQBUMn7G.js";import{t as F}from"./loader-circle-CZACSY-b.js";import{t as I}from"./routes-4W-duEv9.js";import{t as L}from"./button-DUNsVBiu.js";import{a as le,c as ue,i as de,l as fe,n as pe,o as me,r as he,s as ge,t as _e}from"./alert-dialog-zeNxWOJl.js";import{Bc as R,Kl as ve,a as ye,c as be,d as z,i as xe,n as Se,nl as Ce,o as B,r as V,s as we,t as Te}from"./table-Dje35oxp.js";import{Rn as Ee,Wt as De,b as Oe,ls as H,nt as ke,us as U}from"./graphql-BIob9ctl.js";import{n as Ae,r as je,t as Me}from"./alert-55QsYEfR.js";import{t as Ne}from"./page-layout-YKSXEkhJ.js";import{a as Pe,i as Fe,n as Ie,r as Le,t as Re}from"./empty-BJZb5Yi4.js";var W=e(n(),1),G=`batchUpdateBusinesses`,ze=()=>{let[{fetching:e},t]=H(ke);return{fetching:e,batchUpdateBusinesses:(0,W.useCallback)(async e=>{let n=`Error updating ${e.businessIds.length} businesses`;i.loading(`Updating businesses`,{id:G});try{let r=await t(e);if(a(r,n,G))return i.success(`Success`,{id:G,description:`Businesses updated`}),!0}catch(e){console.error(`${n}: ${e}`),i.error(`Error`,{id:G,description:n,duration:1e5,closeButton:!0})}return!1},[t])}},K=t(),q={country:``,city:``,zipCode:``,sortCode:``,irsCode:``,taxCategory:``,description:``,tags:[],isActive:`unset`,isReceiptEnough:`unset`,isDocumentsOptional:`unset`,optionalVAT:`unset`,exemptDealer:`unset`},Be=[{key:`city`,label:`City`},{key:`zipCode`,label:`Zip code`},{key:`irsCode`,label:`IRS code`,numeric:!0},{key:`description`,label:`Suggestion description`,fullWidth:!0}],J=[{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`}],Ve=/^\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 J)e[n]!==`unset`&&(t[n]=e[n]===`true`);return t}function Ue({businessIds:e,onDone:t}){let[n,i]=(0,W.useState)(!1),[a,o]=(0,W.useState)(q),{fetching:c,batchUpdateBusinesses:l}=ze(),{countries:p,fetching:m}=f(),{selectableTags:h,fetching:ee}=s(),{selectableTaxCategories:_,fetching:y}=v(),{userContext:w}=(0,W.useContext)(Ce),A=He(a),j=Object.keys(A).length===0,M=a.irsCode.trim()!==``&&!Ve.test(a.irsCode.trim()),N=async()=>{Object.keys(A).length!==0&&await l({businessIds:e,fields:A})&&(o(q),i(!1),t())};return(0,K.jsxs)(x,{open:n,onOpenChange:i,children:[(0,K.jsx)(te,{asChild:!0,children:(0,K.jsxs)(L,{variant:`outline`,size:`sm`,disabled:e.length===0,children:[`Batch update`,e.length?` (${e.length})`:``]})}),(0,K.jsxs)(E,{className:`flex max-h-[90vh] flex-col sm:max-w-2xl`,children:[(0,K.jsxs)(C,{children:[(0,K.jsxs)(re,{children:[`Batch update `,e.length,` businesses`]}),(0,K.jsx)(ae,{children:`Only the fields you fill in are applied to every selected business.`})]}),(0,K.jsxs)(`div`,{className:`-mx-1 grid flex-1 grid-cols-1 gap-3 overflow-y-auto px-1 sm:grid-cols-2`,children:[(0,K.jsxs)(`div`,{className:`grid gap-1 sm:col-span-2`,children:[(0,K.jsx)(D,{children:`Country`}),(0,K.jsx)(d,{data:p.map(e=>({value:e.code,label:e.name})),value:a.country||null,onChange:e=>o(t=>({...t,country:e??``})),disabled:m,placeholder:`Select country`})]}),(0,K.jsxs)(`div`,{className:`grid gap-1 sm:col-span-2`,children:[(0,K.jsx)(D,{children:`Tax category`}),(0,K.jsx)(d,{data:_,value:a.taxCategory||null,onChange:e=>o(t=>({...t,taxCategory:e??``})),disabled:y,placeholder:`Select tax category`})]}),(0,K.jsxs)(`div`,{className:`grid gap-1`,children:[(0,K.jsx)(D,{children:`Sort code`}),(0,K.jsx)(u,{ownerId:w?.context.adminBusinessId,value:a.sortCode||null,onChange:e=>o(t=>({...t,sortCode:e===null?``:e.toString()})),placeholder:`Select sort code`,triggerClassName:`w-full justify-start`})]}),Be.map(e=>(0,K.jsxs)(`div`,{className:r(`grid gap-1`,e.fullWidth&&`sm:col-span-2`),children:[(0,K.jsx)(D,{htmlFor:`batch-${e.key}`,children:e.label}),(0,K.jsx)(k,{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,K.jsxs)(`div`,{className:`grid gap-1 sm:col-span-2`,children:[(0,K.jsx)(D,{children:`Tags`}),(0,K.jsx)(g,{options:h,onValueChange:e=>o(t=>({...t,tags:e})),defaultValue:a.tags,placeholder:`Select tags`,variant:`default`,disabled:ee})]}),J.map(e=>(0,K.jsxs)(`div`,{className:`grid gap-1`,children:[(0,K.jsx)(D,{htmlFor:`batch-${e.key}`,children:e.label}),(0,K.jsxs)(ie,{value:a[e.key],onValueChange:t=>o(n=>({...n,[e.key]:t})),children:[(0,K.jsx)(T,{id:`batch-${e.key}`,children:(0,K.jsx)(b,{})}),(0,K.jsxs)(ne,{children:[(0,K.jsx)(O,{value:`unset`,children:`No change`}),(0,K.jsx)(O,{value:`true`,children:`Yes`}),(0,K.jsx)(O,{value:`false`,children:`No`})]})]})]},e.key))]}),(0,K.jsxs)(S,{children:[(0,K.jsx)(L,{variant:`outline`,onClick:()=>i(!1),children:`Cancel`}),(0,K.jsx)(L,{onClick:()=>void N(),disabled:c||j||M,children:`Save`})]})]})]})}function Y(e){return e.totalTransactions===0&&e.totalDocuments===0&&e.totalMiscExpenses===0&&e.totalLedgerRecords===0}function X(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:X(e.createdAt),updatedAt:X(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 Z(e){return h(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&&!Y(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,W.useState)(e.name),[a,o]=(0,W.useState)(e.sortCode),[s,c]=(0,W.useState)(e.taxCategory);return(0,W.useEffect)(()=>{let e=setTimeout(()=>{t(e=>({...e,name:r}))},600);return()=>{clearTimeout(e)}},[r,t]),(0,W.useEffect)(()=>{let e=setTimeout(()=>{t(e=>({...e,sortCode:a}))},600);return()=>{clearTimeout(e)}},[a,t]),(0,W.useEffect)(()=>{let e=setTimeout(()=>{t(e=>({...e,taxCategory:s}))},600);return()=>{clearTimeout(e)}},[s,t]),(0,K.jsxs)(`div`,{className:`flex flex-row gap-5 items-center`,children:[(0,K.jsx)(k,{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,K.jsxs)(L,{size:`sm`,variant:e[r.key]?`default`:`outline`,onClick:()=>t(e=>({...e,[r.key]:!e[r.key]})),children:[i?(0,K.jsx)(F,{className:`mr-2 h-4 w-4 animate-spin`}):null,r.label]},r.key)}),(0,K.jsx)(k,{className:`w-24`,placeholder:`Sort code`,value:a,onChange:e=>o(e.target.value)}),(0,K.jsx)(k,{className:`w-40`,placeholder:`Tax category`,value:s,onChange:e=>c(e.target.value)})]})}var Ye=`deleteBusiness`,Xe=()=>{let[{fetching:e},t]=H(Ee);return{fetching:e,deleteBusiness:(0,W.useCallback)(async e=>{let n=`Error deleting business ID [${e.businessId}]`,r=`${Ye}-${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 Ze({row:e,table:t}){let[n,r]=(0,W.useState)(!1),{fetching:i,deleteBusiness:a}=Xe(),o=t.options.meta,s=Y(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,K.jsx)(`span`,{title:t,className:`inline-block cursor-not-allowed`,children:(0,K.jsx)(L,{variant:`ghost`,size:`icon`,className:`text-red-600 hover:text-red-700 pointer-events-none`,disabled:!0,children:(0,K.jsx)(P,{className:`h-4 w-4`})})})}return(0,K.jsxs)(_e,{open:n,onOpenChange:r,children:[(0,K.jsx)(fe,{asChild:!0,children:(0,K.jsx)(L,{variant:`ghost`,size:`icon`,className:`text-red-600 hover:text-red-700`,title:`Delete business`,children:(0,K.jsx)(P,{className:`h-4 w-4`})})}),(0,K.jsxs)(de,{children:[(0,K.jsxs)(ge,{children:[(0,K.jsxs)(ue,{children:[`Delete "`,e.name,`"?`]}),(0,K.jsx)(le,{children:`This permanently deletes the business and cannot be undone.`})]}),(0,K.jsxs)(me,{children:[(0,K.jsx)(he,{children:`Cancel`}),(0,K.jsx)(pe,{onClick:e=>{e.preventDefault(),c()},disabled:i,className:`bg-red-600 hover:bg-red-700`,children:`Delete`})]})]})]})}function Q(e){return e&&!Number.isNaN(e.getTime())?ve(e,`dd/MM/yyyy`):`—`}function Qe(e){return(t,n)=>(t.original[e]?.getTime()??0)-(n.original[e]?.getTime()??0)}function $(e,t){return e??(t.options.meta?.usageFetching?(0,K.jsx)(F,{className:`h-4 w-4 animate-spin`}):`—`)}var $e=[{id:`select`,header:({table:e})=>(0,K.jsx)(m,{checked:e.getIsAllPageRowsSelected()||e.getIsSomePageRowsSelected()&&`indeterminate`,onCheckedChange:t=>e.toggleAllPageRowsSelected(!!t),"aria-label":`Select all`}),cell:({row:e})=>(0,K.jsx)(m,{checked:e.getIsSelected(),onCheckedChange:t=>e.toggleSelected(!!t),"aria-label":`Select row`}),enableSorting:!1,enableHiding:!1},{accessorKey:`name`,header:({column:e})=>(0,K.jsx)(c,{column:e,title:`Name`}),cell:({row:e})=>{let{id:t,name:n,hebrewName:r}=e.original;return(0,K.jsxs)(o,{to:I.BUSINESSES.DETAIL(t),state:{from:I.BUSINESSES.ALL},className:`font-medium text-blue-600 hover:underline`,children:[n,r?(0,K.jsx)(`span`,{className:`block text-xs text-muted-foreground`,children:r}):null]})}},{id:`locality`,accessorFn:e=>Z(e),header:({column:e})=>(0,K.jsx)(c,{column:e,title:`Locality`}),cell:({row:e})=>Z(e.original)||`—`},{accessorKey:`governmentId`,header:({column:e})=>(0,K.jsx)(c,{column:e,title:`VAT number`}),cell:({row:e})=>e.original.governmentId??`—`},{accessorKey:`createdAt`,header:({column:e})=>(0,K.jsx)(c,{column:e,title:`Created`}),sortFn:Qe(`createdAt`),cell:({row:e})=>Q(e.original.createdAt)},{accessorKey:`updatedAt`,header:({column:e})=>(0,K.jsx)(c,{column:e,title:`Updated`}),sortFn:Qe(`updatedAt`),cell:({row:e})=>Q(e.original.updatedAt)},{id:`sortCode`,accessorFn:e=>e.sortCodeKey,header:({column:e})=>(0,K.jsx)(c,{column:e,title:`Sort code`}),cell:({row:e})=>{let{sortCodeKey:t,sortCodeName:n}=e.original;return t==null&&!n?`—`:(0,K.jsxs)(`div`,{className:`flex flex-col leading-tight`,children:[t!=null&&(0,K.jsx)(`span`,{className:`font-medium`,children:t}),n&&(0,K.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,K.jsx)(c,{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,K.jsx)(R,{variant:`outline`,children:`Client`}):`—`},{id:`isAdmin`,header:`Admin`,cell:({row:e})=>e.original.isAdmin?(0,K.jsx)(R,{variant:`outline`,children:`Admin`}):`—`},{id:`status`,header:`Status`,cell:({row:e})=>e.original.isActive?(0,K.jsx)(R,{variant:`secondary`,children:`Active`}):(0,K.jsx)(R,{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,K.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:e.original.suggestionTags.map(e=>(0,K.jsx)(R,{variant:`outline`,children:e},e))}):`—`},{accessorKey:`totalTransactions`,header:({column:e})=>(0,K.jsx)(c,{column:e,title:`Transactions`}),cell:({row:e,table:t})=>$(e.original.totalTransactions,t)},{accessorKey:`totalDocuments`,header:({column:e})=>(0,K.jsx)(c,{column:e,title:`Documents`}),cell:({row:e,table:t})=>$(e.original.totalDocuments,t)},{accessorKey:`totalMiscExpenses`,header:({column:e})=>(0,K.jsx)(c,{column:e,title:`Misc expenses`}),cell:({row:e,table:t})=>$(e.original.totalMiscExpenses,t)},{accessorKey:`totalLedgerRecords`,header:({column:e})=>(0,K.jsx)(c,{column:e,title:`Ledger records`}),cell:({row:e,table:t})=>$(e.original.totalLedgerRecords,t)},{id:`actions`,enableHiding:!1,enableSorting:!1,cell:({row:e,table:t})=>(0,K.jsx)(Ze,{row:e.original,table:t})}],et=[`totalTransactions`,`totalDocuments`,`totalMiscExpenses`,`totalLedgerRecords`],tt=[{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`}]}],nt={sortCode:!1,taxCategory:!1,irsCode:!1,pcn874RecordType:!1,description:!1,tags:!1,totalTransactions:!1,totalDocuments:!1,totalMiscExpenses:!1,totalLedgerRecords:!1};function rt({children:e,className:t}){let n=(0,W.useRef)(null),[i,a]=(0,W.useState)({left:!1,right:!1});return(0,W.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,K.jsxs)(`div`,{ref:n,className:r(`relative`,t),children:[e,(0,K.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,K.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 it=()=>{let{setFiltersContext:e}=(0,W.useContext)(A),[{data:t,fetching:n,error:r},i]=U({query:Oe}),a=(0,W.useMemo)(()=>We(t?.allBusinesses?.nodes??[]),[t?.allBusinesses?.nodes]),[o,s]=(0,W.useState)({}),[c,u]=(0,W.useState)(nt),[d,f]=(0,W.useState)([]),[m,h]=(0,W.useState)({name:``,client:!1,admin:!1,inactive:!1,unusedOnly:!1,sortCode:``,taxCategory:``}),g=(0,W.useMemo)(()=>a.map(e=>e.id),[a]),v=et.some(e=>c[e])||m.unusedOnly,[{data:b,fetching:x}]=U({query:De,variables:{ids:g},pause:!v||g.length===0}),S=(0,W.useMemo)(()=>Ge(a,b?.businessesUsage??[]),[a,b]),C=(0,W.useMemo)(()=>Ke(S,m),[S,m]),T=be({features:we,data:C,columns:$e,getRowId:e=>e.id,initialState:{pagination:{pageIndex:0,pageSize:100}},enableRowSelection:!0,onRowSelectionChange:s,onColumnVisibilityChange:u,onSortingChange:f,state:{rowSelection:o,columnVisibility:c,sorting:d},meta:{usageFetching:v&&x,refetchBusinesses:()=>i()}}),E=(0,W.useMemo)(()=>C.filter(e=>o[e.id]).map(e=>e.id),[C,o]);return(0,W.useEffect)(()=>{let t=!1,n=()=>{t||(t=!0,i())},r=E.map(e=>({id:e,onChange:n}));e((0,K.jsxs)(`div`,{className:`flex flex-row gap-x-5`,children:[(0,K.jsx)(Je,{filters:m,setFilters:h,usageLoading:v&&x}),(0,K.jsx)(l,{selected:r,resetMerge:()=>s({})}),(0,K.jsx)(Ue,{businessIds:E,onDone:()=>{i(),s({})}})]}))},[e,E,i,m,h,v,x]),(0,K.jsx)(Ne,{title:`Businesses (${a.length})`,description:`All businesses`,headerActions:(0,K.jsxs)(`div`,{className:`flex items-center py-4 gap-4`,children:[(0,K.jsx)(p,{description:``,onAdd:()=>i()}),(0,K.jsxs)(oe,{children:[(0,K.jsx)(N,{asChild:!0,children:(0,K.jsxs)(L,{variant:`outline`,children:[`Columns `,(0,K.jsx)(w,{})]})}),(0,K.jsx)(j,{align:`end`,children:tt.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,K.jsxs)(W.Fragment,{children:[t>0?(0,K.jsx)(se,{}):null,(0,K.jsxs)(M,{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,K.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,K.jsx)(ce,{checked:t.getIsVisible(),onCheckedChange:e=>t.toggleVisibility(!!e),children:e.label},e.id):null})]},e.label)})})]})]}),children:r?(0,K.jsxs)(Me,{variant:`destructive`,children:[(0,K.jsx)(je,{children:`Failed to load businesses`}),(0,K.jsx)(Ae,{children:r.message})]}):n?(0,K.jsx)(`div`,{className:`rounded-md border p-4`,children:(0,K.jsx)(ee,{columns:8,rows:10})}):a.length===0?(0,K.jsxs)(Re,{className:`py-8 sm:py-12`,children:[(0,K.jsx)(Fe,{children:(0,K.jsx)(y,{className:`size-8 sm:size-10 text-muted-foreground`})}),(0,K.jsx)(Pe,{children:`No businesses yet`}),(0,K.jsx)(Le,{children:`Add your first business, or generate businesses from your transactions.`}),(0,K.jsx)(Ie,{children:(0,K.jsx)(p,{description:``,onAdd:()=>i()})})]}):(0,K.jsxs)(`div`,{className:`space-y-4`,children:[(0,K.jsx)(rt,{className:`overflow-hidden rounded-md border`,children:(0,K.jsxs)(Te,{children:[(0,K.jsx)(ye,{children:T.getHeaderGroups().map(e=>(0,K.jsx)(B,{children:e.headers.map(e=>(0,K.jsx)(xe,{colSpan:e.colSpan,children:e.isPlaceholder?null:z(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,K.jsx)(Se,{children:T.getRowModel().rows.length?T.getRowModel().rows.map(e=>(0,K.jsx)(B,{"data-state":e.getIsSelected()&&`selected`,children:e.getVisibleCells().map(e=>(0,K.jsx)(V,{children:z(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,K.jsx)(B,{children:(0,K.jsx)(V,{colSpan:$e.length,className:`h-24 text-center`,children:`No results.`})})})]})}),(0,K.jsx)(_,{table:T})]})})};export{it as Businesses};