@cryptlex/web-components 6.6.118 → 6.6.120

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- import"react/jsx-runtime";import"@internationalized/date";import"react";import"react-aria-components";import"./button.js";import{C as tr,D as or,F as ir}from"./data-table.js";import"./date-picker.js";import"./menu.js";import"./multi-select.js";import"./numberfield.js";import"./popover.js";import"./textfield.js";import"../utilities/date.js";import"../utilities/resources.js";import"../utilities/theme.js";import"./icons.js";import"./id-search.js";import"class-variance-authority";import"./loader.js";import"clsx";import"@icons-pack/react-simple-icons";import"@dnd-kit/core";import"@dnd-kit/sortable";import"@dnd-kit/utilities";import"@tanstack/react-query";import"@tanstack/react-table";import"@uidotdev/usehooks";import"lodash-es";import"./badge.js";import"./searchfield.js";import"./form.js";import"./card.js";import"./table.js";import"../utilities/countries.js";import"./select-options.js";import"../utilities/string.js";import"../utilities/duration.js";import"../utilities/numbers.js";import"../utilities/use-mobile.js";import"./checkbox.js";import"../utilities/form-context.js";import"@tanstack/react-form";import"./tooltip.js";import"../utilities/ctx-client.js";import"./dialog.js";import"./progress-bar.js";import"./tag-group.js";import"./calendar.js";import"./datefield.js";import"../utilities/form.js";import"./list-box.js";import"./select.js";import"./kbd.js";import"../utilities/empty-option.js";export{tr as COMPARISON_OPERATOR_LABELS,or as DataTableFilter,ir as FILTER_COMPARISON_OPERATORS};
1
+ import"react/jsx-runtime";import"@internationalized/date";import"react";import"react-aria-components";import"./button.js";import{C as tr,D as or,F as ir}from"./data-table.js";import"./date-picker.js";import"./menu.js";import"./multi-select.js";import"./numberfield.js";import"./popover.js";import"./select.js";import"./textfield.js";import"../utilities/date.js";import"../utilities/resources.js";import"../utilities/theme.js";import"./dialog.js";import"./icons.js";import"./id-search.js";import"../utilities/use-mobile.js";import"class-variance-authority";import"./loader.js";import"clsx";import"@icons-pack/react-simple-icons";import"@dnd-kit/core";import"@dnd-kit/sortable";import"@dnd-kit/utilities";import"@tanstack/react-query";import"@tanstack/react-table";import"@uidotdev/usehooks";import"lodash-es";import"./badge.js";import"./searchfield.js";import"./form.js";import"./card.js";import"./table.js";import"../utilities/countries.js";import"./select-options.js";import"../utilities/string.js";import"../utilities/duration.js";import"../utilities/numbers.js";import"./checkbox.js";import"../utilities/form-context.js";import"@tanstack/react-form";import"./tooltip.js";import"../utilities/ctx-client.js";import"./progress-bar.js";import"./tag-group.js";import"./calendar.js";import"./datefield.js";import"../utilities/form.js";import"./list-box.js";import"./kbd.js";import"../utilities/empty-option.js";export{tr as COMPARISON_OPERATOR_LABELS,or as DataTableFilter,ir as FILTER_COMPARISON_OPERATORS};
2
2
  //# sourceMappingURL=data-table-filter.js.map
@@ -355,7 +355,6 @@ export declare function useDataTableState<T extends object, TOperation extends k
355
355
  readonly queryParameters: NoInfer<Partial<ApiFilter<TOperation>>> | undefined;
356
356
  readonly viewMode: "card" | "table";
357
357
  readonly setViewMode: React.Dispatch<React.SetStateAction<"card" | "table">>;
358
- readonly isMobile: boolean;
359
358
  readonly Card: CardRenderer<T> | undefined;
360
359
  readonly allowSelection: boolean;
361
360
  readonly allowToolbar: boolean;
@@ -1255,11 +1254,12 @@ export declare const DataTableContext: React.Context<{
1255
1254
  id: string;
1256
1255
  } | {
1257
1256
  id: string;
1257
+ } | {
1258
+ id: string;
1258
1259
  } | undefined> | undefined;
1259
1260
  readonly queryParameters: NoInfer<Partial<ApiFilter<keyof operations>>> | undefined;
1260
1261
  readonly viewMode: "card" | "table";
1261
1262
  readonly setViewMode: React.Dispatch<React.SetStateAction<"card" | "table">>;
1262
- readonly isMobile: boolean;
1263
1263
  readonly Card: CardRenderer<object> | undefined;
1264
1264
  readonly allowSelection: boolean;
1265
1265
  readonly allowToolbar: boolean;
@@ -2159,11 +2159,12 @@ export declare function useDataTable(): {
2159
2159
  id: string;
2160
2160
  } | {
2161
2161
  id: string;
2162
+ } | {
2163
+ id: string;
2162
2164
  } | undefined> | undefined;
2163
2165
  readonly queryParameters: NoInfer<Partial<ApiFilter<keyof operations>>> | undefined;
2164
2166
  readonly viewMode: "card" | "table";
2165
2167
  readonly setViewMode: React.Dispatch<React.SetStateAction<"card" | "table">>;
2166
- readonly isMobile: boolean;
2167
2168
  readonly Card: CardRenderer<object> | undefined;
2168
2169
  readonly allowSelection: boolean;
2169
2170
  readonly allowToolbar: boolean;
@@ -1,2 +1,2 @@
1
- "use client";import{jsx as t,Fragment as O,jsxs as g}from"react/jsx-runtime";import{parseAbsolute as X,getLocalTimeZone as Y}from"@internationalized/date";import{createContext as Ze,useContext as Ue,useState as z,useMemo as J,useEffect as ae,useRef as Te,Fragment as Xe}from"react";import{Pressable as Ye}from"react-aria-components";import{Button as x}from"./button.js";import{useSensors as Je,useSensor as ve,PointerSensor as We,KeyboardSensor as et,DndContext as tt,closestCenter as nt,DragOverlay as rt}from"@dnd-kit/core";import{sortableKeyboardCoordinates as at,SortableContext as it,verticalListSortingStrategy as ot,arrayMove as st,useSortable as lt}from"@dnd-kit/sortable";import{CSS as ct}from"@dnd-kit/utilities";import{useQuery as ut,useInfiniteQuery as dt}from"@tanstack/react-query";import{createColumnHelper as Ae,useReactTable as mt,getCoreRowModel as gt,flexRender as ne}from"@tanstack/react-table";import{useLocalStorage as W}from"@uidotdev/usehooks";import{merge as pt}from"lodash-es";import{Badge as ye}from"./badge.js";import{DatePicker as ee}from"./date-picker.js";import{EasyMenu as j,MenuItem as M,MenuTrigger as ft,MenuPopover as bt,MenuHeader as ht,Menu as vt}from"./menu.js";import{MultiSelect as yt}from"./multi-select.js";import{NumberField as St}from"./numberfield.js";import{PopoverTrigger as wt,Popover as xt}from"./popover.js";import{TextField as Nt}from"./textfield.js";import{formatDate as K}from"../utilities/date.js";import{useProjectName as ie,useResourceFormatter as oe,ALL_OS as Ct}from"../utilities/resources.js";import{classNames as T}from"../utilities/theme.js";import{IcRefresh as It,IcMenu as Pt,IcLayoutGrid as Tt,IcColumns as At,IcGrip as Ft,IcFirst as Dt,IcLeft as Ot,IcRight as Mt,IcLast as zt,IcMoreVertical as Rt,IcInfo as Lt,IcSortAsc as _t,IcSortDesc as jt,IcSortNone as $t,IcCheck as te,IcMinus as Et,IcAccount as qt,IcLicense as Vt,IcDate as kt,IcFile as Ht,IcFilter as Fe,IcClose as Kt}from"./icons.js";import{MultipleIdSearchInput as Bt}from"./id-search.js";import{Loader as De}from"./loader.js";import{SearchField as Qt}from"./searchfield.js";import{Table as Gt,TableHeader as Zt,TableRow as Se,TableHead as Ut,TableBody as Xt,TableCell as Yt}from"./table.js";import{CountryName as Jt}from"../utilities/countries.js";import{Duration as Wt}from"../utilities/duration.js";import{formatDays as en,formatFilesize as tn,formatNumber as nn}from"../utilities/numbers.js";import{useIsMobile as rn}from"../utilities/use-mobile.js";import{Checkbox as we}from"./checkbox.js";import{TooltipTrigger as an,Tooltip as on}from"./tooltip.js";import{getSubscriptionStartTriggerLabel as sn,ALL_LICENSE_TYPES as ln}from"./select-options.js";import{useCtxClient as cn}from"../utilities/ctx-client.js";import{ControlledDialogProvider as un,useControlledDialog as Oe}from"./dialog.js";import{ProgressBar as dn}from"./progress-bar.js";import{TagGroup as mn,Tag as gn}from"./tag-group.js";import"class-variance-authority";import"clsx";import"@icons-pack/react-simple-icons";import"./calendar.js";import"./form.js";import"./card.js";import"./datefield.js";import"../utilities/form.js";import"../utilities/form-context.js";import"@tanstack/react-form";import"./list-box.js";import"./select.js";import"./kbd.js";import"../utilities/string.js";import"../utilities/empty-option.js";function pn(e){return e?e.desc?`-${e.id}`:`+${e.id}`:"-createdAt"}const Me=Ae(),fn=[Me.accessor("checkbox",{header:({table:e})=>t(we,{isIndeterminate:e.getIsSomeRowsSelected()&&!e.getIsAllPageRowsSelected(),isSelected:e.getIsAllPageRowsSelected()||e.getIsSomePageRowsSelected(),onChange:()=>e.toggleAllPageRowsSelected(),"aria-label":"Select all",size:"sm"}),cell:({row:e})=>t(we,{isSelected:e.getIsSelected(),onChange:()=>e.toggleSelected(),"aria-label":"Select row",size:"sm"}),enableSorting:!1,enableHiding:!1})],A="TableActions";function bn(e){return e.length===0?[]:[Me.accessor(A,{header:"Actions",id:A,enableHiding:!1,cell:({row:r})=>t(Pn,{label:t(Rt,{}),data:r.original,items:e}),enableSorting:!1})]}function Mr(){return Ae()}function zr({path:e,pathParameters:r,queryParameters:n,columns:o,filterConfig:s,columnsToHideByDefault:i={},allowSelection:a=!1,allowToolbar:d=!0,initialFilters:u=[],previewFilters:l,tableActions:p,Card:S,onRowNavigate:v,disableTableView:w,hideViewToggle:y,include:F}){const[$,m]=z({pagination:{pageIndex:0,pageSize:20},sorting:[]}),{sorting:f,pagination:h}=$,[C,E]=z(""),[R,le]=z({}),[B,_e]=z(u),Q=J(()=>B.filter(c=>c.active!==!1).map(c=>{if(c.type==="derived-select"){const P=s[c.property];return P?.type==="derived-select"?P.toApiQuery(String(c.value??"")):{}}const b=c.value instanceof Set?Array.from(c.value):c.value;return c.needOperator===!1?{[c.property]:Array.isArray(b)?b.join(","):b}:c.operator==="between"&&Array.isArray(b)&&b.length===2?{[c.property]:{gte:b[0],lte:b[1]}}:Array.isArray(b)?{[c.property]:{[c.operator]:b.join(",")}}:{[c.property]:{[c.operator]:b}}}).reduce((c,b)=>pt(c,b),{}),[B,s]),q=F?.length?F.join(","):void 0,V={...n,...Q,limit:h.pageSize,sort:pn(f[0]),search:C,...q?{include:q}:{}},je=cn(),$e=["get",e,{...V,page:h.pageIndex+1},"table"],Ee=["get",e,V,"card"],G=`${e}_ctx`,[ce,ue]=W(`${G}_column_order_preference`,[]),[de,qe]=W(`${G}_column_visibility_preference`,{id:!1,...i}),[Ve,ke]=W(`${G}_view_mode_preference`,w?"card":"table"),me=rn(),D=w||me&&S?"card":Ve,Z=c=>{m(b=>({...b,...c}))};async function ge(c){const b=await je.GET(e,{params:{query:{...n,page:c,limit:h.pageSize,sort:V.sort,search:V.search,...q?{include:q}:{},...Q},path:r}});return{data:b.data??[],total:Number.parseInt(b.response.headers.get("Pagination-Count")||"0"),nextPage:c+1}}const L=ut({queryKey:$e,enabled:D==="table",queryFn:()=>ge(h.pageIndex+1),placeholderData:c=>c}),I=dt({queryKey:Ee,enabled:D==="card",initialPageParam:1,queryFn:({pageParam:c})=>ge(c),getNextPageParam:(c,b)=>b.flatMap(k=>k.data).length<c.total?c.nextPage:void 0}),pe=J(()=>D==="table"?L.data?.data??[]:I.data?.pages.flatMap(c=>c.data)??[],[D,L.data,I.data]),fe=J(()=>D==="table"?L.data?.total??0:I.data?.pages[0]?.total??0,[D,L.data,I.data]),be=D==="table"?L:{...I,data:{data:pe,total:fe},isLoading:I.isLoading,isFetching:I.isFetching,isError:I.isError,error:I.error,refetch:I.refetch},He=p.filter(se),Ke=[...a?fn:[],...o,...bn(He??[])];function Be(c){return typeof c=="function"}function _(c,b){return Be(c)?c(b):c}const he=mt({data:pe,columns:Ke,getCoreRowModel:gt(),rowCount:fe,manualPagination:!0,onPaginationChange:c=>{Z({pagination:_(c,h)})},manualSorting:!0,onSortingChange:c=>{le({}),Z({sorting:[..._(c,f)]})},manualFiltering:!0,onColumnVisibilityChange:c=>{qe(_(c,de))},onRowSelectionChange:c=>{le(_(c,R))},onColumnOrderChange:c=>{ue(_(c,ce))},state:{sorting:f,columnVisibility:de,pagination:h,rowSelection:R,columnOrder:ce},meta:{refetch:be.refetch}});return ae(()=>{const c=he.getAllFlatColumns().map(P=>P.id),b=c.filter(P=>P!=="checkbox"&&P!==A);ue(P=>{const k=P.filter(U=>b.includes(U)),Qe=b.filter(U=>!P.includes(U)),Ge=k.length>0?[...k,...Qe]:b;return[...c.includes("checkbox")?["checkbox"]:[],...Ge,...c.includes(A)?[A]:[]]})},[]),{tableState:$,updateTableState:Z,query:be,setSearchQuery:E,searchQuery:C,tanTable:he,mergedFilters:Q,filters:B,setFilters:_e,filterConfig:s,tableActions:p,pathParameters:r,queryParameters:n,viewMode:D,setViewMode:ke,isMobile:me,Card:S,allowSelection:a,allowToolbar:d,previewFilters:l,infiniteQuery:I,disableTableView:w,hideViewToggle:y,onRowNavigate:v}}const ze=Ze(null);function N(){const e=Ue(ze);if(!e)throw Error("DataTable should be used within DataTableProvider.");return e}function Rr({children:e,...r}){return t(ze.Provider,{value:r,children:e})}function hn(){const{query:e}=N();return e.isFetching?null:e.isError?g("span",{className:"flex gap-3 items-center",children:[t(Lt,{}),t("span",{children:e.error?.message})]}):e.data?.data?.length===0?t(O,{children:"No results found."}):t(O,{children:"Unknown error. Please contact customer support."})}function vn({cardGridClassName:e}){const{query:r,tanTable:n,viewMode:o,tableActions:s,Card:i}=N(),a=s.filter(se),d=o==="card"&&!!i;return r.isLoading?t("div",{className:"body-sm flex items-center justify-center min-h-32",children:t(De,{})}):n.getRowModel().rows.length===0?t("div",{className:"body-sm flex items-center justify-center min-h-32 text-muted",children:t(hn,{})}):d?t(yn,{Card:i,actions:a,className:e}):t(In,{className:"w-full"})}function Lr({className:e,cardGridClassName:r,...n}){const{viewMode:o,Card:s,allowToolbar:i}=N(),a=o==="card"&&!!s;return t(O,{children:g(un,{children:[i&&t(Nn,{}),g("section",{...n,className:T("z-20 flex flex-col",a?"":"border rounded-lg",e),children:[t("div",{className:"w-full overflow-auto relative rounded-lg [scrollbar-width:none]",tabIndex:0,children:t(vn,{cardGridClassName:r})}),!a&&g("div",{className:"flex w-full justify-between border-t gap-icon py-2 px-icon bg-elevation-mid rounded-b-lg overflow-x-auto",children:[g("div",{className:"flex gap-icon",children:[t(Sn,{}),t(xn,{})]}),t(wn,{})]})]})]})})}function yn({Card:e,actions:r,className:n,...o}){const{tanTable:s,allowSelection:i}=N(),{infiniteQuery:a}=N(),d=Te(null);return ae(()=>{const u=d.current;if(!u)return;const l=new IntersectionObserver(p=>{p[0].isIntersecting&&a.hasNextPage&&!a.isFetchingNextPage&&a.fetchNextPage()},{threshold:.1});return l.observe(u),()=>l.disconnect()},[a.hasNextPage,a.isFetchingNextPage]),g("div",{...o,className:T(n,"grid grid-cols-1 lg:grid-cols-2 gap-icon pb-input"),children:[s.getRowModel().rows.map((u,l)=>{const p={isSelected:u.getIsSelected(),onToggle:()=>u.toggleSelected(),allowSelection:i};return t(Xe,{children:e(u.original,r,p,l)},u.id)}),t("div",{ref:d,className:"col-span-full h-4 flex items-center justify-center",children:a.isFetchingNextPage&&t(De,{})})]})}function Sn(){if(ie()==="customer-portal")return null;const{tanTable:r}=N(),[n,o]=z(null),s=oe(),i=Je(ve(We),ve(et,{coordinateGetter:at}));return t(tt,{sensors:i,collisionDetection:nt,onDragStart:d=>{const{active:u}=d;o(u.id.toString())},onDragEnd:d=>{const{active:u,over:l}=d;if(l&&u.id!==l.id){const p=r.getState().columnOrder,S=p.indexOf(u.id.toString()),v=p.indexOf(l.id.toString());r.setColumnOrder([...st(p,S,v)])}o(null)},children:g(it,{items:r.getState().columnOrder,strategy:ot,children:[g(j,{label:g(O,{children:[t(At,{className:"inline align-bottom me-1"}),"Columns"]}),selectionMode:"multiple",size:"sm",items:r.getAllFlatColumns(),selectedKeys:r.getVisibleFlatColumns().map(d=>d.id),children:[t(M,{onAction:()=>r.toggleAllColumnsVisible(),className:"italic",children:"(select all)"}),r.getState().columnOrder.map(d=>{const u=r.getAllFlatColumns().find(l=>l.id===d);return!u||u.id==="checkbox"||u.id===A?null:t(a,{column:u},u.id)})]}),t(rt,{children:n?t("div",{className:"opacity-70 border-2 border-primary",children:s(n)}):null})]})});function a({column:d}){const{attributes:u,listeners:l,setNodeRef:p,transform:S,transition:v}=lt({id:d.id}),w={transform:ct.Transform.toString(S),transition:v,zIndex:"999"};return g(M,{ref:p,style:w,...u,id:d.id,onAction:()=>d.toggleVisibility(),isDisabled:!d.getCanHide(),className:"flex items-center",children:[t(Ft,{...l,className:"size-icon cursor-grab"}),re(d),d.getIsSorted()&&t(Re,{className:"size-icon",direction:d.getIsSorted()})]})}}function wn(){const{tanTable:e}=N(),r=e.getRowCount();return g("div",{className:"flex items-center gap-2",children:[t("span",{className:"whitespace-nowrap body-sm text-muted",children:`${e.getState().pagination.pageIndex*e.getState().pagination.pageSize+1} - ${Math.min((e.getState().pagination.pageIndex+1)*e.getState().pagination.pageSize,r)} of ${r?.toLocaleString()}`}),(e.getCanNextPage()||e.getCanPreviousPage())&&g(O,{children:[t(x,{"aria-label":"First page",onPress:()=>e.firstPage(),isDisabled:!e.getCanPreviousPage(),variant:"neutral",size:"icon-sm",children:t(Dt,{})}),t(x,{"aria-label":"Previous page",onPress:()=>e.previousPage(),isDisabled:!e.getCanPreviousPage(),variant:"neutral",size:"icon-sm",children:t(Ot,{})}),t(x,{"aria-label":"Next page",onPress:()=>e.nextPage(),isDisabled:!e.getCanNextPage(),variant:"neutral",size:"icon-sm",children:t(Mt,{})}),t(x,{"aria-label":"Last page",onClick:()=>e.lastPage(),isDisabled:!e.getCanNextPage(),variant:"neutral",size:"icon-sm",children:t(zt,{})})]})]})}function xn(){if(ie()==="customer-portal")return null;const{tanTable:r}=N(),n=[10,20,30,40,50];return t(j,{label:r.getState().pagination.pageSize.toString(),selectionMode:"single",size:"sm",selectedKeys:[r.getState().pagination.pageSize.toString()],items:n.map(o=>({id:o.toString(),value:o})),children:o=>t(M,{onAction:()=>r.setPageSize(o.value),children:o.value})})}function Nn(){const{query:e,tanTable:r,searchQuery:n,setSearchQuery:o,tableActions:s,viewMode:i,setViewMode:a,isMobile:d,Card:u,previewFilters:l,disableTableView:p,hideViewToggle:S}=N(),v=r.getSelectedRowModel().rows.length>0,w=s.filter(y=>y.resourceType!=="single").filter(y=>y.resourceType==="multiple"===v);return g("section",{className:"flex justify-between my-0 mb-icon gap-icon overflow-x-auto py-1",children:[g("div",{className:"flex gap-icon",children:[t(x,{"aria-label":"Refresh",isPending:e.isFetching,onClick:()=>e.refetch(),variant:"neutral",size:"icon",children:t(It,{})}),t(Qt,{value:n,onChange:o}),t(On,{previewFilters:l})]}),g("div",{className:"flex gap-icon",children:[!d&&t(Ie,{items:w,isFetching:e.isFetching}),u&&!p&&!d&&!S&&g("div",{className:"flex gap-1 bg-elevation-1 rounded-md overflow-hidden",children:[t(x,{variant:i==="table"?"primary":"neutral",size:"icon",onPress:()=>a("table"),"aria-label":"Table view",className:"border-none",children:t(Pt,{})}),t(x,{variant:i==="card"?"primary":"neutral",size:"icon",onPress:()=>a("card"),"aria-label":"Card view",className:"border-none",children:t(Tt,{})})]})]}),d&&w.length>0&&t("div",{className:"fixed inset-x-0 bottom-0 z-30 flex gap-icon border-t bg-elevation-1 p-icon",children:t(Ie,{items:w,isFetching:e.isFetching,buttonClassName:"flex-1 justify-center"})})]})}function Re({direction:e,...r}){return e==="asc"?t(_t,{className:"size-3.5",...r}):e==="desc"?t(jt,{className:"size-3.5",...r}):t($t,{className:"size-3.5",...r})}function re(e){const r=oe(),n=e.columnDef.header;return typeof n=="string"?n:r(e.id)}function Cn(e){const r=e.column.columnDef.meta?.displayType,n=e.getValue();if(n==null)return null;switch(r){case"date":return t("span",{className:"tabular-nums",children:K(n)});case"number":return t("span",{className:"block text-right tabular-nums",children:nn(n)});case"boolean":return t(ye,{variant:n?"success":"destructive",className:"capitalize",children:String(n)});case"badge":return t(ye,{children:String(n)});case"tags":let o=Array.isArray(n)?n:[String(n)];return t(mn,{items:o.map(a=>({id:a,name:a})),className:"!flex-nowrap",children:a=>t(gn,{children:a.name})});case"progressBar":const[s,i]=n;return t(dn,{meterClassName:"w-16",label:`${s}/${i}`,minValue:0,maxValue:i,value:s});case"country":return t(Jt,{value:n});case"enum":return t("span",{className:"uppercase w-full",children:String(n)});case"fileSize":return tn(n);case"days":return en(n);case"os":return Ct[n]??n;case"licenseType":return ln[n]??n;case"subscriptionInterval":return Wt.formatISODuration(n);case"subscriptionStartTrigger":return sn(n);default:return String(n)}}function xe({header:e}){const r=e.column.columnDef.header;return typeof r=="string"||!r?re(e.column):typeof r=="function"?typeof r(e.getContext())=="string"?re(e.column):ne(r,e.getContext()):ne(r,e.getContext())}function In({className:e}){const{tanTable:r,onRowNavigate:n}=N(),o=(s,i,a="z-50")=>T("text-left body-sm font-medium whitespace-nowrap",s&&`sticky right-0 ${a} text-center justify-center`,i);return g(Gt,{className:T("table-auto border-0 rounded-lg",e),children:[t(Zt,{className:"sticky top-0 z-10 rounded-lg",children:r.getHeaderGroups().map(s=>t(Se,{children:s.headers.map(i=>g(Ut,{scope:"col",colSpan:i.colSpan,className:o(i.id===A,"bg-elevation-mid"),children:[!i.column.getCanSort()&&!i.isPlaceholder&&t("div",{className:T("w-full flex items-center gap-1 text-xs uppercase font-semibold",i.id===A?"justify-center":"justify-start"),children:t(xe,{header:i})}),i.column.getCanSort()&&g(x,{variant:"ghost",size:"none",className:T("w-full p-1 rounded-md uppercase text-muted text-xs font-semibold",i.id===A?"justify-center":"justify-start",i.column.getIsSorted()?"text-primary":""),onPress:i.column.getToggleSortingHandler(),children:[t("span",{children:t(xe,{header:i})}),i.column.getIsSorted()&&t(Re,{direction:i.column.getIsSorted()})]})]},i.id))},s.id))}),t(Xt,{children:r.getRowModel().rows.map(s=>t(Se,{className:T("group bg-elevation-1 data-[selected=true]:bg-primary-100 hover:bg-elevation-mid",n&&"cursor-pointer focus-visible:outline focus-visible:outline-ring"),"data-selected":s.getIsSelected(),...n&&{role:"link",tabIndex:0,onClick:i=>{i.target.closest('a, button, input, select, textarea, [role="button"]')||n(s.original)},onKeyDown:i=>{i.key==="Enter"&&n(s.original)}},children:s.getVisibleCells().map(i=>{const a=i.column.id===A,d=i.column.columnDef.meta?.displayType?Cn(i):ne(i.column.columnDef.cell,i.getContext());return t(Yt,{className:T(o(a,a?"bg-elevation-1 group-data-[selected=true]:bg-primary-100 group-hover:bg-elevation-mid":"","z-1"),a&&"flex justify-center items-center"),children:d},i.id)})},s.id))})]})}function Ne(e){return e.resourceType==="none"}function se(e){return e.resourceType==="single"}function Ce(e){return e.resourceType==="multiple"}function Ie({items:e,isFetching:r,buttonClassName:n}){const{openDialog:o,closeDialog:s}=Oe(),{tanTable:i,mergedFilters:a}=N();function d(l,p){return l.isDisabled?Ne(l)?l.isDisabled():Ce(l)?l.isDisabled(p):!1:!1}const u=i.getSelectedRowModel().rows.map(l=>l.original);return t(O,{children:e.map((l,p)=>{const S=l.icon,v=d(l,u)||r;return g(x,{"aria-label":l.label,type:"button",isDisabled:v,className:T("animate-in fade-in slide-in-from-right-15 duration-300 transition-transform",n),onPress:w=>{const y={event:w,openDialog:o,closeDialog:s,activeFilters:a};Ne(l)?l.onPress(y):Ce(l)&&l.onPress({...y,data:u})},variant:l.variant??"neutral",children:[S&&t(S,{"aria-hidden":!0}),t("span",{children:l.label})]},`${l.label}-${p}`)})})}function Pn({label:e,items:r,data:n}){const{openDialog:o,closeDialog:s}=Oe(),{mergedFilters:i}=N();return r.length<5?t("div",{className:"flex items-center gap-2",children:r.map((a,d)=>{const u=a.icon,l=typeof a.label=="function"?a.label(n):a.label;return g(an,{children:[t(x,{"aria-label":typeof l=="string"?l:void 0,isDisabled:a.isDisabled?.(n)??!1,variant:"ghost",size:"icon",onPress:()=>{const p={openDialog:o,closeDialog:s};a.onPress({...p,data:n,activeFilters:i})},children:t(u,{className:"size-icon"})}),t(on,{children:l})]},`${d}-${typeof l=="string"?l:""}`)})}):t(j,{withChevron:!1,"aria-label":"Actions",label:e,size:"icon",children:r.map((a,d)=>{const u=a.icon,l=typeof a.label=="function"?a.label(n):a.label;return g(M,{id:typeof l=="string"?l:void 0,isDisabled:a.isDisabled?.(n)??!1,onAction:()=>{const p={openDialog:o,closeDialog:s};se(a)&&a.onPress({...p,data:n,activeFilters:i})},children:[t(u,{className:"size-icon"}),l]},`${d}-${typeof l=="string"?l:""}`)})})}const _r=["eq","ne","cn","nc","sw","ew","in","nin","gt","gte","lt","lte","between"],Pe={eq:"equal to",ne:"not equal to",cn:"contains",nc:"does not contain",sw:"starts with",ew:"ends with",in:"includes",nin:"does not include",gt:"greater than",gte:"greater than or equal to",lt:"less than",lte:"less than or equal to",between:"between"},Tn={eq:"=",ne:"≠",cn:"contains",nc:"!contains",sw:"starts with",ew:"ends with",in:"in",nin:"not in",gt:">",gte:"≥",lt:"<",lte:"≤",between:"↔"};function H(e,r){const n=r.type,o=`${e}-${Date.now()}`,s=n==="bool"||n==="derived-select"?!1:r.needOperator??!0,i=s?Le[n][0]:"eq",a={id:o,property:e,operator:i,needOperator:s};switch(n){case"bool":return{...a,type:n,value:!0};case"derived-select":return{...a,type:n,value:r.options[0]?.id??""};case"string":return{...a,type:n,value:""};case"date":return{...a,type:n,value:i==="between"?[new Date().toISOString(),new Date().toISOString()]:new Date().toISOString()};case"id":return{...a,type:n,value:""};case"id-search":return{...a,type:n,value:[]};case"enum":return{...a,type:n,value:new Set};case"number":return{...a,type:n,value:0}}}const Le={bool:["eq"],"derived-select":["eq"],enum:["in","nin"],id:["in","nin"],"id-search":["in","nin"],string:["eq","ne","cn","nc","sw","ew","in","nin"],date:["between","lt","gt"],number:["eq","ne","gt","gte","lt","lte"]};function An(e,r){switch(e.type){case"string":case"id":return e.value??"";case"number":return e.value?.toString()??"";case"bool":return e.value?"true":"false";case"derived-select":{const n=r[e.property];if(!n||n.type!=="derived-select")return e.value??"";const o=n.options.find(s=>s.id===e.value);return typeof o?.label=="string"?o.label:e.value??""}case"date":if(Array.isArray(e.value)){const[n,o]=e.value;return`${K(n,{dateStyle:"short"})??""} – ${K(o,{dateStyle:"short"})??""}`}return e.value?K(e.value,{dateStyle:"short"})??"":"";case"enum":return e.value&&e.value.size>0?`${e.value.size} selected`:"";case"id-search":return e.value&&e.value.length>0?e.value.length===1?"1 item":`${e.value.length} items`:""}}function Fn({filter:e,filterConfig:r,onChange:n}){if(e.type==="string"||e.type==="id")return t(Nt,{autoFocus:!0,value:e.value??"",onChange:n,"aria-label":"Filter value"});if(e.type==="number")return t(St,{autoFocus:!0,value:e.value,onChange:n,"aria-label":"Filter value"});if(e.type==="date"){if(e.operator==="between"){const[s,i]=Array.isArray(e.value)?e.value:[new Date().toISOString(),new Date().toISOString()],a=X(s,Y()),d=X(i,Y());return g("div",{className:"flex flex-col gap-icon",children:[t(ee,{autoFocus:!0,hideTimeZone:!0,label:"From",value:a,onChange:u=>n([u?u.toAbsoluteString():s,i])}),t(ee,{hideTimeZone:!0,label:"To",value:d,onChange:u=>n([s,u?u.toAbsoluteString():i])})]})}const o=e.value&&!Array.isArray(e.value)?X(e.value,Y()):null;return t(ee,{autoFocus:!0,hideTimeZone:!0,value:o,onChange:s=>n(s?s.toAbsoluteString():new Date().toISOString()),"aria-label":"Filter date"})}if(e.type==="enum"){const o=r[e.property];return o.type!=="enum"?null:t(yt,{autoFocus:!0,items:o.options,value:e.value??new Set,onChange:n,"aria-label":"Filter value"})}if(e.type==="id-search"){const o=r[e.property];if(o.type!=="id-search")return null;const s=o.defaultParams;return t(Bt,{autoFocus:!0,path:o.path,accessor:o.accessor,defaultParams:s,value:e.value??[],onChange:n,"aria-label":"Filter value"})}return null}function Dn({filter:e,filterConfig:r,resourceFormatter:n,onRemove:o,onUpdate:s,isOpen:i,onOpenChange:a}){const d=e.needOperator===!1?["eq"]:Le[e.type],u=An(e,r),l=ie(),p=e.type==="bool"||e.type==="derived-select",S=g(x,{type:"button",variant:e.active===!1?"neutral":"primary_neutral",className:"animate-in slide-in-from-left-10 fade-in flex justify-between gap-2",children:[t(Fe,{}),p?t("span",{className:"font-medium",children:u}):g(O,{children:[t("span",{className:"font-medium",children:n(e.property)}),l!=="customer-portal"&&t("span",{children:Tn[e.operator]}),l!=="customer-portal"&&u&&t("span",{children:u})]}),e.active!==!1&&t(Ye,{onPress:()=>o(),children:t("span",{className:"bg-primary hover:bg-destructive rounded-full size-icon flex justify-center items-center",children:t(Kt,{className:"size-2.5 text-elevation-1"})})})]});if(p){let v,w;if(e.type==="bool")v=[{id:"true",label:"True"},{id:"false",label:"False"}],w=e.value?"true":"false";else{const y=r[e.property];v=y?.type==="derived-select"?y.options:[],w=e.value??""}return g(ft,{isOpen:i,onOpenChange:a,children:[t("div",{className:"relative",children:S}),g(bt,{className:"min-w-48",children:[t(ht,{inset:!0,separator:!1,children:n(e.property)}),t(vt,{selectionMode:"single",disallowEmptySelection:!0,selectedKeys:new Set([w]),onSelectionChange:y=>{if(y==="all")return;const F=y.values().next().value;F!=null&&s({value:e.type==="bool"?String(F)==="true":String(F)})},"aria-label":"Filter value",children:v.map(y=>t(M,{id:y.id,children:y.label},y.id))})]})]})}return g(wt,{isOpen:i,onOpenChange:a,children:[t("div",{className:"relative",children:S}),t(xt,{className:"p-icon min-w-48",children:g("div",{className:"flex flex-col gap-icon",children:[d.length>1&&t(j,{label:Pe[e.operator],variant:"neutral","aria-label":"Change operator",children:d.map(v=>t(M,{onAction:()=>s({operator:v}),children:Pe[v]},v))}),t(Fn,{filter:e,filterConfig:r,onChange:v=>s({value:v})}),t(x,{type:"button",variant:"neutral",className:"self-end",onPress:o,"aria-label":`Remove ${n(e.property)} filter`,children:"Clear"})]})})]})}function On({className:e,previewFilters:r,...n}){const{filters:o,query:s,setFilters:i,filterConfig:a}=N(),d=oe(),u=Object.keys(a).filter(m=>!o.some(f=>f.property===m)).sort(),[l,p]=z(null),S=Te(!1);ae(()=>{if(!S.current&&o.length===0){const m=[];r&&r.length>0&&m.push(...r.filter(f=>a[f]).map(f=>({...H(f,a[f]),active:!1,isPreview:!0}))),m.length>0&&i(m)}S.current=!0},[]);const v=m=>{const f=H(m,a[m]);i([...o,f]),p(f.id)},w=m=>{o.find(h=>h.id===m)?.isPreview?i(o.map(h=>h.id===m?{...H(h.property,a[h.property]),active:!1,isPreview:!0}:h)):i(o.filter(h=>h.id!==m))},y=()=>{i(o.filter(m=>m.isPreview).map(m=>({...H(m.property,a[m.property]),active:!1,isPreview:!0}))),p(null)},F=o.some(m=>!m.isPreview||m.active!==!1),$=(m,f)=>{i(o.map(h=>{if(h.id!==m)return h;let C=f.value!==void 0?f.value:h.value;const E=f.operator??h.operator;if(h.type==="date"&&f.operator!==void 0)if(E==="between"&&!Array.isArray(C)){const R=typeof C=="string"?C:new Date().toISOString();C=[R,R]}else E!=="between"&&Array.isArray(C)&&(C=C[0]??new Date().toISOString());return{...h,...f,value:C,active:!0}}))};return g("section",{...n,className:T("flex flex-wrap gap-icon items-center",e),children:[o.filter(m=>m.property in a).map(m=>t(Dn,{filter:m,filterConfig:a,resourceFormatter:d,onRemove:()=>w(m.id),onUpdate:f=>$(m.id,f),isOpen:l===m.id,onOpenChange:f=>p(f?m.id:null)},m.id)),u.length>0&&t(j,{label:t(Fe,{}),isDisabled:s.isPending,variant:"neutral","aria-label":"Add filter",children:u.map(m=>{const f=a[m].type,h=Mn[f];return g(M,{className:"!justify-between",onAction:()=>v(m),children:[d(m),t(h,{})]},m)})}),F&&t(x,{variant:"ghost",onPress:y,"aria-label":"Clear all filters",className:"animate-in fade-in",children:"Clear All"})]})}const Mn={"id-search":Ht,bool:te,"derived-select":te,date:kt,enum:Vt,id:qt,number:Et,string:te};export{Pe as C,On as D,Lr as DataTable,ze as DataTableContext,Rr as DataTableProvider,_r as F,Mr as getColumnHelper,N as useDataTable,zr as useDataTableState};
1
+ "use client";import{jsx as t,Fragment as D,jsxs as g}from"react/jsx-runtime";import{parseAbsolute as Y,getLocalTimeZone as J}from"@internationalized/date";import{createContext as We,useContext as et,useState as O,useMemo as W,useEffect as ie,useRef as Te,Fragment as tt}from"react";import{Pressable as De}from"react-aria-components";import{Button as S}from"./button.js";import{useSensors as nt,useSensor as Se,PointerSensor as rt,KeyboardSensor as at,DndContext as it,closestCenter as ot,DragOverlay as st}from"@dnd-kit/core";import{sortableKeyboardCoordinates as lt,SortableContext as ct,verticalListSortingStrategy as ut,arrayMove as dt,useSortable as mt}from"@dnd-kit/sortable";import{CSS as gt}from"@dnd-kit/utilities";import{useQuery as pt,useInfiniteQuery as ft}from"@tanstack/react-query";import{createColumnHelper as Oe,useReactTable as bt,getCoreRowModel as ht,flexRender as re}from"@tanstack/react-table";import{useLocalStorage as ee}from"@uidotdev/usehooks";import{merge as vt}from"lodash-es";import{Badge as xe}from"./badge.js";import{DatePicker as te}from"./date-picker.js";import{EasyMenu as L,MenuItem as M,MenuTrigger as yt,MenuPopover as St,MenuHeader as xt,Menu as wt}from"./menu.js";import{MultiSelect as Nt}from"./multi-select.js";import{NumberField as Ct}from"./numberfield.js";import{PopoverTrigger as Pt,Popover as It}from"./popover.js";import{SelectTrigger as Ft}from"./select.js";import{TextField as At}from"./textfield.js";import{formatDate as k}from"../utilities/date.js";import{useProjectName as oe,useResourceFormatter as H,ALL_OS as Tt}from"../utilities/resources.js";import{classNames as x}from"../utilities/theme.js";import{ControlledDialogProvider as Dt,useControlledDialog as se,DialogHeader as Ot,DialogTitle as Mt,DialogBody as zt,DialogFooter as Rt}from"./dialog.js";import{IcRefresh as jt,IcMenu as _t,IcLayoutGrid as Lt,IcColumns as $t,IcGrip as Et,IcFirst as qt,IcLeft as Vt,IcRight as kt,IcLast as Ht,IcMoreVertical as Bt,IcInfo as Kt,IcSortAsc as Qt,IcSortDesc as Gt,IcSortNone as Ut,IcCheck as ne,IcMinus as Zt,IcAccount as Xt,IcLicense as Yt,IcDate as Jt,IcFile as Wt,IcFilter as le,IcClose as Me}from"./icons.js";import{MultipleIdSearchInput as en}from"./id-search.js";import{useIsMobile as B}from"../utilities/use-mobile.js";import{Loader as ze}from"./loader.js";import{SearchField as tn}from"./searchfield.js";import{Table as nn,TableHeader as rn,TableRow as we,TableHead as an,TableBody as on,TableCell as sn}from"./table.js";import{CountryName as ln}from"../utilities/countries.js";import{Duration as cn}from"../utilities/duration.js";import{formatDays as un,formatFilesize as dn,formatNumber as mn}from"../utilities/numbers.js";import{Checkbox as Ne}from"./checkbox.js";import{TooltipTrigger as gn,Tooltip as pn}from"./tooltip.js";import{getSubscriptionStartTriggerLabel as fn,ALL_LICENSE_TYPES as bn}from"./select-options.js";import{useCtxClient as hn}from"../utilities/ctx-client.js";import{ProgressBar as vn}from"./progress-bar.js";import{TagGroup as yn,Tag as Sn}from"./tag-group.js";import"class-variance-authority";import"clsx";import"@icons-pack/react-simple-icons";import"./calendar.js";import"./form.js";import"./card.js";import"./datefield.js";import"../utilities/form.js";import"../utilities/form-context.js";import"@tanstack/react-form";import"./list-box.js";import"./kbd.js";import"../utilities/string.js";import"../utilities/empty-option.js";function xn(e){return e?e.desc?`-${e.id}`:`+${e.id}`:"-createdAt"}const Re=Oe(),wn=[Re.accessor("checkbox",{header:({table:e})=>t(Ne,{isIndeterminate:e.getIsSomeRowsSelected()&&!e.getIsAllPageRowsSelected(),isSelected:e.getIsAllPageRowsSelected()||e.getIsSomePageRowsSelected(),onChange:()=>e.toggleAllPageRowsSelected(),"aria-label":"Select all",size:"sm"}),cell:({row:e})=>t(Ne,{isSelected:e.getIsSelected(),onChange:()=>e.toggleSelected(),"aria-label":"Select row",size:"sm"}),enableSorting:!1,enableHiding:!1})],F="TableActions";function Nn(e){return e.length===0?[]:[Re.accessor(F,{header:"Actions",id:F,enableHiding:!1,cell:({row:a})=>t(zn,{label:t(Bt,{className:"text-icon-primary"}),data:a.original,items:e}),enableSorting:!1})]}function Vr(){return Oe()}function kr({path:e,pathParameters:a,queryParameters:n,columns:s,filterConfig:c,columnsToHideByDefault:i={},allowSelection:r=!1,allowToolbar:d=!0,initialFilters:l=[],previewFilters:o,tableActions:m,Card:b,onRowNavigate:y,disableTableView:h,hideViewToggle:N,include:C}){const[A,$]=O({pagination:{pageIndex:0,pageSize:20},sorting:[]}),{sorting:z,pagination:p}=A,[v,K]=O(""),[ue,de]=O({}),[Q,qe]=O(l),G=W(()=>Q.filter(u=>u.active!==!1).map(u=>{if(u.type==="derived-select"){const I=c[u.property];return I?.type==="derived-select"?I.toApiQuery(String(u.value??"")):{}}const f=u.value instanceof Set?Array.from(u.value):u.value;return u.needOperator===!1?{[u.property]:Array.isArray(f)?f.join(","):f}:u.operator==="between"&&Array.isArray(f)&&f.length===2?{[u.property]:{gte:f[0],lte:f[1]}}:Array.isArray(f)?{[u.property]:{[u.operator]:f.join(",")}}:{[u.property]:{[u.operator]:f}}}).reduce((u,f)=>vt(u,f),{}),[Q,c]),E=C?.length?C.join(","):void 0,q={...n,...G,limit:p.pageSize,sort:xn(z[0]),search:v,...E?{include:E}:{}},Ve=hn(),ke=["get",e,{...q,page:p.pageIndex+1},"table"],He=["get",e,q,"card"],U=`${e}_ctx`,[me,ge]=ee(`${U}_column_order_preference`,[]),[pe,Be]=ee(`${U}_column_visibility_preference`,{id:!1,...i}),[Ke,Qe]=ee(`${U}_view_mode_preference`,h?"card":"table"),Ge=B(),T=h||Ge&&b?"card":Ke,Z=u=>{$(f=>({...f,...u}))};async function fe(u){const f=await Ve.GET(e,{params:{query:{...n,page:u,limit:p.pageSize,sort:q.sort,search:q.search,...E?{include:E}:{},...G},path:a}});return{data:f.data??[],total:Number.parseInt(f.response.headers.get("Pagination-Count")||"0"),nextPage:u+1}}const j=pt({queryKey:ke,enabled:T==="table",queryFn:()=>fe(p.pageIndex+1),placeholderData:u=>u}),P=ft({queryKey:He,enabled:T==="card",initialPageParam:1,queryFn:({pageParam:u})=>fe(u),getNextPageParam:(u,f)=>f.flatMap(V=>V.data).length<u.total?u.nextPage:void 0}),be=W(()=>T==="table"?j.data?.data??[]:P.data?.pages.flatMap(u=>u.data)??[],[T,j.data,P.data]),he=W(()=>T==="table"?j.data?.total??0:P.data?.pages[0]?.total??0,[T,j.data,P.data]),ve=T==="table"?j:{...P,data:{data:be,total:he},isLoading:P.isLoading,isFetching:P.isFetching,isError:P.isError,error:P.error,refetch:P.refetch},Ue=m.filter(ce),Ze=[...r?wn:[],...s,...Nn(Ue??[])];function Xe(u){return typeof u=="function"}function _(u,f){return Xe(u)?u(f):u}const ye=bt({data:be,columns:Ze,getCoreRowModel:ht(),rowCount:he,manualPagination:!0,onPaginationChange:u=>{Z({pagination:_(u,p)})},manualSorting:!0,onSortingChange:u=>{de({}),Z({sorting:[..._(u,z)]})},manualFiltering:!0,onColumnVisibilityChange:u=>{Be(_(u,pe))},onRowSelectionChange:u=>{de(_(u,ue))},onColumnOrderChange:u=>{ge(_(u,me))},state:{sorting:z,columnVisibility:pe,pagination:p,rowSelection:ue,columnOrder:me},meta:{refetch:ve.refetch}});return ie(()=>{const u=ye.getAllFlatColumns().map(I=>I.id),f=u.filter(I=>I!=="checkbox"&&I!==F);ge(I=>{const V=I.filter(X=>f.includes(X)),Ye=f.filter(X=>!I.includes(X)),Je=V.length>0?[...V,...Ye]:f;return[...u.includes("checkbox")?["checkbox"]:[],...Je,...u.includes(F)?[F]:[]]})},[]),{tableState:A,updateTableState:Z,query:ve,setSearchQuery:K,searchQuery:v,tanTable:ye,mergedFilters:G,filters:Q,setFilters:qe,filterConfig:c,tableActions:m,pathParameters:a,queryParameters:n,viewMode:T,setViewMode:Qe,Card:b,allowSelection:r,allowToolbar:d,previewFilters:o,infiniteQuery:P,disableTableView:h,hideViewToggle:N,onRowNavigate:y}}const je=We(null);function w(){const e=et(je);if(!e)throw Error("DataTable should be used within DataTableProvider.");return e}function Hr({children:e,...a}){return t(je.Provider,{value:a,children:e})}function Cn(){const{query:e}=w();return e.isFetching?null:e.isError?g("span",{className:"flex gap-3 items-center",children:[t(Kt,{className:"text-icon-primary"}),t("span",{children:e.error?.message})]}):e.data?.data?.length===0?t(D,{children:"No results found."}):t(D,{children:"Unknown error. Please contact customer support."})}function Pn({cardGridClassName:e}){const{query:a,tanTable:n,viewMode:s,tableActions:c,Card:i}=w(),r=c.filter(ce),d=s==="card"&&!!i;return a.isLoading?t("div",{className:"body-sm flex items-center justify-center min-h-32",children:t(ze,{})}):n.getRowModel().rows.length===0?t("div",{className:"body-sm flex items-center justify-center min-h-32 text-muted",children:t(Cn,{})}):d?t(In,{Card:i,actions:r,className:e}):t(Mn,{className:"w-full"})}function Br({className:e,cardGridClassName:a,...n}){const{viewMode:s,Card:c,allowToolbar:i}=w(),r=s==="card"&&!!c;return t(D,{children:g(Dt,{children:[i&&t(Dn,{}),g("section",{...n,className:x("z-20 flex flex-col",r?"":"border rounded-lg",e),children:[t("div",{className:"w-full overflow-auto relative rounded-lg [scrollbar-width:none]",tabIndex:0,children:t(Pn,{cardGridClassName:a})}),!r&&g("div",{className:"flex w-full justify-between border-t gap-icon py-2 px-icon bg-elevation-mid rounded-b-lg overflow-x-auto",children:[g("div",{className:"flex gap-icon",children:[t(Fn,{}),t(Tn,{})]}),t(An,{})]})]})]})})}function In({Card:e,actions:a,className:n,...s}){const{tanTable:c,allowSelection:i}=w(),{infiniteQuery:r}=w(),d=Te(null);return ie(()=>{const l=d.current;if(!l)return;const o=new IntersectionObserver(m=>{m[0].isIntersecting&&r.hasNextPage&&!r.isFetchingNextPage&&r.fetchNextPage()},{threshold:.1});return o.observe(l),()=>o.disconnect()},[r.hasNextPage,r.isFetchingNextPage]),g("div",{...s,className:x(n,"grid grid-cols-1 lg:grid-cols-2 gap-icon pb-input"),children:[c.getRowModel().rows.map((l,o)=>{const m={isSelected:l.getIsSelected(),onToggle:()=>l.toggleSelected(),allowSelection:i};return t(tt,{children:e(l.original,a,m,o)},l.id)}),t("div",{ref:d,className:"col-span-full h-4 flex items-center justify-center",children:r.isFetchingNextPage&&t(ze,{})})]})}function Fn(){if(oe()==="customer-portal")return null;const{tanTable:a}=w(),[n,s]=O(null),c=H(),i=nt(Se(rt),Se(at,{coordinateGetter:lt}));return t(it,{sensors:i,collisionDetection:ot,onDragStart:d=>{const{active:l}=d;s(l.id.toString())},onDragEnd:d=>{const{active:l,over:o}=d;if(o&&l.id!==o.id){const m=a.getState().columnOrder,b=m.indexOf(l.id.toString()),y=m.indexOf(o.id.toString());a.setColumnOrder([...dt(m,b,y)])}s(null)},children:g(ct,{items:a.getState().columnOrder,strategy:ut,children:[g(L,{label:g(D,{children:[t($t,{className:"inline align-bottom me-1 text-icon-primary"}),"Columns"]}),selectionMode:"multiple",size:"sm",items:a.getAllFlatColumns(),selectedKeys:a.getVisibleFlatColumns().map(d=>d.id),children:[t(M,{onAction:()=>a.toggleAllColumnsVisible(),className:"italic",children:"(select all)"}),a.getState().columnOrder.map(d=>{const l=a.getAllFlatColumns().find(o=>o.id===d);return!l||l.id==="checkbox"||l.id===F?null:t(r,{column:l},l.id)})]}),t(st,{children:n?t("div",{className:"opacity-70 border-2 border-primary",children:c(n)}):null})]})});function r({column:d}){const{attributes:l,listeners:o,setNodeRef:m,transform:b,transition:y}=mt({id:d.id}),h={transform:gt.Transform.toString(b),transition:y,zIndex:"999"};return g(M,{ref:m,style:h,...l,id:d.id,onAction:()=>d.toggleVisibility(),isDisabled:!d.getCanHide(),className:"flex items-center",children:[t(Et,{...o,className:"size-icon cursor-grab text-icon-primary"}),ae(d),d.getIsSorted()&&t(_e,{className:"size-icon",direction:d.getIsSorted()})]})}}function An(){const{tanTable:e}=w(),a=e.getRowCount();return g("div",{className:"flex items-center gap-2",children:[t("span",{className:"whitespace-nowrap body-sm text-muted",children:`${e.getState().pagination.pageIndex*e.getState().pagination.pageSize+1} - ${Math.min((e.getState().pagination.pageIndex+1)*e.getState().pagination.pageSize,a)} of ${a?.toLocaleString()}`}),(e.getCanNextPage()||e.getCanPreviousPage())&&g(D,{children:[t(S,{"aria-label":"First page",onPress:()=>e.firstPage(),isDisabled:!e.getCanPreviousPage(),variant:"neutral",size:"icon-sm",children:t(qt,{})}),t(S,{"aria-label":"Previous page",onPress:()=>e.previousPage(),isDisabled:!e.getCanPreviousPage(),variant:"neutral",size:"icon-sm",children:t(Vt,{})}),t(S,{"aria-label":"Next page",onPress:()=>e.nextPage(),isDisabled:!e.getCanNextPage(),variant:"neutral",size:"icon-sm",children:t(kt,{})}),t(S,{"aria-label":"Last page",onClick:()=>e.lastPage(),isDisabled:!e.getCanNextPage(),variant:"neutral",size:"icon-sm",children:t(Ht,{})})]})]})}function Tn(){if(oe()==="customer-portal")return null;const{tanTable:a}=w(),n=[10,20,30,40,50];return t(L,{label:a.getState().pagination.pageSize.toString(),selectionMode:"single",size:"sm",selectedKeys:[a.getState().pagination.pageSize.toString()],items:n.map(s=>({id:s.toString(),value:s})),children:s=>t(M,{onAction:()=>a.setPageSize(s.value),children:s.value})})}function Dn(){const{query:e,tanTable:a,searchQuery:n,setSearchQuery:s,tableActions:c,viewMode:i,setViewMode:r,Card:d,previewFilters:l,disableTableView:o,hideViewToggle:m}=w(),b=a.getSelectedRowModel().rows.length>0,y=B(),h=c.filter(N=>N.resourceType!=="single").filter(N=>N.resourceType==="multiple"===b);return g("section",{className:"flex justify-between my-0 mb-icon gap-icon overflow-x-auto py-1",children:[g("div",{className:x("flex gap-icon max-md:min-w-0 max-md:flex-1"),children:[t(S,{"aria-label":"Refresh",isPending:e.isFetching,onClick:()=>e.refetch(),variant:"neutral",size:"icon",className:x("max-md:shrink-0"),children:t(jt,{})}),t(tn,{value:n,onChange:s,className:x("max-md:min-w-0 max-md:flex-1")}),t(qn,{previewFilters:l,className:x("max-md:shrink-0")})]}),!y&&g("div",{className:"flex gap-icon",children:[t(Fe,{items:h,isFetching:e.isFetching}),d&&!o&&!m&&g("div",{className:"flex gap-1 bg-elevation-1 rounded-md overflow-hidden",children:[t(S,{variant:i==="table"?"primary":"neutral",size:"icon",onPress:()=>r("table"),"aria-label":"Table view",className:"border-none",children:t(_t,{})}),t(S,{variant:i==="card"?"primary":"neutral",size:"icon",onPress:()=>r("card"),"aria-label":"Card view",className:"border-none",children:t(Lt,{})})]})]}),y&&h.length>0&&t("div",{className:"fixed inset-x-0 bottom-0 z-30 flex gap-icon border-t bg-elevation-1 p-icon",children:t(Fe,{items:h,isFetching:e.isFetching,buttonClassName:"flex-1 justify-center"})})]})}function _e({direction:e,...a}){return e==="asc"?t(Qt,{className:"size-3.5",...a}):e==="desc"?t(Gt,{className:"size-3.5",...a}):t(Ut,{className:"size-3.5",...a})}function ae(e){const a=H(),n=e.columnDef.header;return typeof n=="string"?n:a(e.id)}function On(e){const a=e.column.columnDef.meta?.displayType,n=e.getValue();if(n==null)return null;switch(a){case"date":return t("span",{className:"tabular-nums",children:k(n)});case"number":return t("span",{className:"block text-right tabular-nums",children:mn(n)});case"boolean":return t(xe,{variant:n?"success":"destructive",className:"capitalize",children:String(n)});case"badge":return t(xe,{children:String(n)});case"tags":let s=Array.isArray(n)?n:[String(n)];return t(yn,{items:s.map(r=>({id:r,name:r})),className:"!flex-nowrap",children:r=>t(Sn,{children:r.name})});case"progressBar":const[c,i]=n;return t(vn,{meterClassName:"w-16",label:`${c}/${i}`,minValue:0,maxValue:i,value:c});case"country":return t(ln,{value:n});case"enum":return t("span",{className:"uppercase w-full",children:String(n)});case"fileSize":return dn(n);case"days":return un(n);case"os":return Tt[n]??n;case"licenseType":return bn[n]??n;case"subscriptionInterval":return cn.formatISODuration(n);case"subscriptionStartTrigger":return fn(n);default:return String(n)}}function Ce({header:e}){const a=e.column.columnDef.header;return typeof a=="string"||!a?ae(e.column):typeof a=="function"?typeof a(e.getContext())=="string"?ae(e.column):re(a,e.getContext()):re(a,e.getContext())}function Mn({className:e}){const{tanTable:a,onRowNavigate:n}=w(),s=(c,i,r="z-50")=>x("text-left body-sm font-medium whitespace-nowrap",c&&`sticky right-0 ${r} text-center justify-center`,i);return g(nn,{className:x("table-auto border-0 rounded-lg",e),children:[t(rn,{className:"sticky top-0 z-10 rounded-lg border-stroke-secondary!",children:a.getHeaderGroups().map(c=>t(we,{className:"border-stroke-secondary!",children:c.headers.map(i=>g(an,{scope:"col",colSpan:i.colSpan,className:s(i.id===F,"bg-surface-secondary"),children:[!i.column.getCanSort()&&!i.isPlaceholder&&t("div",{className:x("w-full flex items-center gap-1 text-xs uppercase font-semibold text-text-secondary",i.id===F?"justify-center":"justify-start"),children:t(Ce,{header:i})}),i.column.getCanSort()&&g(S,{variant:"ghost",size:"none",className:x("w-full p-1 rounded-md uppercase text-text-secondary text-xs font-semibold",i.id===F?"justify-center":"justify-start",i.column.getIsSorted()?"text-primary":""),onPress:i.column.getToggleSortingHandler(),children:[t("span",{children:t(Ce,{header:i})}),i.column.getIsSorted()&&t(_e,{direction:i.column.getIsSorted()})]})]},i.id))},c.id))}),t(on,{children:a.getRowModel().rows.map(c=>t(we,{className:x("group border-stroke-secondary! bg-elevation-1 data-[selected=true]:bg-primary-100 hover:bg-elevation-mid",n&&"cursor-pointer focus-visible:outline focus-visible:outline-ring"),"data-selected":c.getIsSelected(),...n&&{role:"link",tabIndex:0,onClick:i=>{i.target.closest('a, button, input, select, textarea, [role="button"]')||n(c.original)},onKeyDown:i=>{i.key==="Enter"&&n(c.original)}},children:c.getVisibleCells().map(i=>{const r=i.column.id===F,d=i.column.columnDef.meta?.displayType?On(i):re(i.column.columnDef.cell,i.getContext());return t(sn,{className:x(s(r,r?"bg-elevation-1 group-data-[selected=true]:bg-primary-100 group-hover:bg-elevation-mid":"","z-1"),r&&"flex justify-center items-center"),children:d},i.id)})},c.id))})]})}function Pe(e){return e.resourceType==="none"}function ce(e){return e.resourceType==="single"}function Ie(e){return e.resourceType==="multiple"}function Fe({items:e,isFetching:a,buttonClassName:n}){const{openDialog:s,closeDialog:c}=se(),{tanTable:i,mergedFilters:r}=w();function d(o,m){return o.isDisabled?Pe(o)?o.isDisabled():Ie(o)?o.isDisabled(m):!1:!1}const l=i.getSelectedRowModel().rows.map(o=>o.original);return t(D,{children:e.map((o,m)=>{const b=o.icon,y=d(o,l)||a;return g(S,{"aria-label":o.label,type:"button",isDisabled:y,className:x("animate-in fade-in slide-in-from-right-15 duration-300 transition-transform",n),onPress:h=>{const N={event:h,openDialog:s,closeDialog:c,activeFilters:r};Pe(o)?o.onPress(N):Ie(o)&&o.onPress({...N,data:l})},variant:o.variant??"neutral",children:[b&&t(b,{"aria-hidden":!0}),t("span",{children:o.label})]},`${o.label}-${m}`)})})}function zn({label:e,items:a,data:n}){const{openDialog:s,closeDialog:c}=se(),{mergedFilters:i}=w();return a.length<5?t("div",{className:"flex items-center gap-2",children:a.map((r,d)=>{const l=r.icon,o=typeof r.label=="function"?r.label(n):r.label;return g(gn,{children:[t(S,{"aria-label":typeof o=="string"?o:void 0,isDisabled:r.isDisabled?.(n)??!1,variant:"ghost",size:"icon",onPress:()=>{const m={openDialog:s,closeDialog:c};r.onPress({...m,data:n,activeFilters:i})},children:t(l,{className:"size-icon"})}),t(pn,{children:o})]},`${d}-${typeof o=="string"?o:""}`)})}):t(L,{withChevron:!1,"aria-label":"Actions",label:e,size:"icon",children:a.map((r,d)=>{const l=r.icon,o=typeof r.label=="function"?r.label(n):r.label;return g(M,{id:typeof o=="string"?o:void 0,isDisabled:r.isDisabled?.(n)??!1,onAction:()=>{const m={openDialog:s,closeDialog:c};ce(r)&&r.onPress({...m,data:n,activeFilters:i})},children:[t(l,{className:"size-icon"}),o]},`${d}-${typeof o=="string"?o:""}`)})})}const Kr=["eq","ne","cn","nc","sw","ew","in","nin","gt","gte","lt","lte","between"],Ae={eq:"equal to",ne:"not equal to",cn:"contains",nc:"does not contain",sw:"starts with",ew:"ends with",in:"includes",nin:"does not include",gt:"greater than",gte:"greater than or equal to",lt:"less than",lte:"less than or equal to",between:"between"},Rn={eq:"=",ne:"≠",cn:"contains",nc:"!contains",sw:"starts with",ew:"ends with",in:"in",nin:"not in",gt:">",gte:"≥",lt:"<",lte:"≤",between:"↔"};function R(e,a){const n=a.type,s=`${e}-${Date.now()}`,c=n==="bool"||n==="derived-select"?!1:a.needOperator??!0,i=c?Le[n][0]:"eq",r={id:s,property:e,operator:i,needOperator:c};switch(n){case"bool":return{...r,type:n,value:!0};case"derived-select":return{...r,type:n,value:a.options[0]?.id??""};case"string":return{...r,type:n,value:""};case"date":return{...r,type:n,value:i==="between"?[new Date().toISOString(),new Date().toISOString()]:new Date().toISOString()};case"id":return{...r,type:n,value:""};case"id-search":return{...r,type:n,value:[]};case"enum":return{...r,type:n,value:new Set};case"number":return{...r,type:n,value:0}}}const Le={bool:["eq"],"derived-select":["eq"],enum:["in","nin"],id:["in","nin"],"id-search":["in","nin"],string:["eq","ne","cn","nc","sw","ew","in","nin"],date:["between","lt","gt"],number:["eq","ne","gt","gte","lt","lte"]};function jn(e,a){let n=a.value!==void 0?a.value:e.value;const s=a.operator??e.operator;if(e.type==="date"&&a.operator!==void 0)if(s==="between"&&!Array.isArray(n)){const c=typeof n=="string"?n:new Date().toISOString();n=[c,c]}else s!=="between"&&Array.isArray(n)&&(n=n[0]??new Date().toISOString());return n}function $e(){const{setFilters:e,filterConfig:a}=w();return{updateFilter:(i,r)=>{e(d=>{const l=d.find(m=>m.property===i)??R(i,a[i]),o={...l,...r,value:jn(l,r),active:!0};return d.some(m=>m.id===l.id)?d.map(m=>m.id===l.id?o:m):[...d,o]})},removeFilter:i=>{e(r=>{const d=r.find(l=>l.id===i);return d?d.isPreview?r.map(l=>l.id===i?{...R(l.property,a[l.property]),active:!1,isPreview:!0}:l):r.filter(l=>l.id!==i):r})},clearAllFilters:()=>{e(i=>i.filter(r=>r.isPreview).map(r=>({...R(r.property,a[r.property]),active:!1,isPreview:!0})))}}}function _n(e,a){switch(e.type){case"string":case"id":return e.value??"";case"number":return e.value?.toString()??"";case"bool":return e.value?"true":"false";case"derived-select":{const n=a[e.property];if(!n||n.type!=="derived-select")return e.value??"";const s=n.options.find(c=>c.id===e.value);return typeof s?.label=="string"?s.label:e.value??""}case"date":if(Array.isArray(e.value)){const[n,s]=e.value;return`${k(n,{dateStyle:"short"})??""} – ${k(s,{dateStyle:"short"})??""}`}return e.value?k(e.value,{dateStyle:"short"})??"":"";case"enum":return e.value&&e.value.size>0?`${e.value.size} selected`:"";case"id-search":return e.value&&e.value.length>0?e.value.length===1?"1 item":`${e.value.length} items`:""}}function Ln({filter:e,filterConfig:a,onChange:n}){if(e.type==="string"||e.type==="id")return t(At,{autoFocus:!0,value:e.value??"",onChange:n,"aria-label":"Filter value"});if(e.type==="number")return t(Ct,{autoFocus:!0,value:e.value,onChange:n,"aria-label":"Filter value"});if(e.type==="date"){if(e.operator==="between"){const[c,i]=Array.isArray(e.value)?e.value:[new Date().toISOString(),new Date().toISOString()],r=Y(c,J()),d=Y(i,J());return g("div",{className:"flex flex-col gap-icon",children:[t(te,{autoFocus:!0,hideTimeZone:!0,label:"From",value:r,onChange:l=>n([l?l.toAbsoluteString():c,i])}),t(te,{hideTimeZone:!0,label:"To",value:d,onChange:l=>n([c,l?l.toAbsoluteString():i])})]})}const s=e.value&&!Array.isArray(e.value)?Y(e.value,J()):null;return t(te,{autoFocus:!0,hideTimeZone:!0,value:s,onChange:c=>n(c?c.toAbsoluteString():new Date().toISOString()),"aria-label":"Filter date"})}if(e.type==="enum"){const s=a[e.property];return s.type!=="enum"?null:t(Nt,{autoFocus:!0,items:s.options,value:e.value??new Set,onChange:n,"aria-label":"Filter value"})}if(e.type==="id-search"){const s=a[e.property];if(s.type!=="id-search")return null;const c=s.defaultParams;return t(en,{autoFocus:!0,path:s.path,accessor:s.accessor,defaultParams:c,value:e.value??[],onChange:n,"aria-label":"Filter value"})}return null}function Ee({filter:e,filterConfig:a,resourceFormatter:n,onRemove:s,onUpdate:c,isOpen:i,onOpenChange:r}){const d=e.needOperator===!1?["eq"]:Le[e.type],l=_n(e,a),o=oe(),m=B(),b=e.type==="bool"||e.type==="derived-select",y=m?g("div",{className:"flex flex-col gap-1",children:[t("span",{className:"body-sm text-muted",children:n(e.property)}),t(Ft,{type:"button",className:"w-full","aria-label":n(e.property),children:l})]}):g(S,{type:"button",variant:e.active===!1?"neutral":"primary_neutral",className:"animate-in slide-in-from-left-10 fade-in flex justify-between gap-2",children:[t(le,{}),b?t("span",{className:"font-medium",children:l}):g(D,{children:[t("span",{className:"font-medium",children:n(e.property)}),o!=="customer-portal"&&t("span",{children:Rn[e.operator]}),o!=="customer-portal"&&l&&t("span",{children:l})]}),e.active!==!1&&t(De,{onPress:()=>s(),children:t("span",{className:"bg-primary hover:bg-destructive rounded-full size-icon flex justify-center items-center",children:t(Me,{className:"size-2.5 text-elevation-1"})})})]});if(b){let h,N;if(e.type==="bool")h=[{id:"true",label:"True"},{id:"false",label:"False"}],N=e.value?"true":"false";else{const C=a[e.property];h=C?.type==="derived-select"?C.options:[],N=e.value??""}return g(yt,{isOpen:i,onOpenChange:r,children:[t("div",{className:"relative",children:y}),g(St,{className:"min-w-48",children:[t(xt,{inset:!0,separator:!1,children:n(e.property)}),t(wt,{selectionMode:"single",disallowEmptySelection:!0,selectedKeys:new Set([N]),onSelectionChange:C=>{if(C==="all")return;const A=C.values().next().value;A!=null&&c({value:e.type==="bool"?String(A)==="true":String(A)})},"aria-label":"Filter value",children:h.map(C=>t(M,{id:C.id,children:C.label},C.id))})]})]})}return g(Pt,{isOpen:i,onOpenChange:r,children:[t("div",{className:"relative",children:y}),t(It,{className:"p-icon min-w-48",children:g("div",{className:"flex flex-col gap-icon",children:[d.length>1&&t(L,{label:Ae[e.operator],variant:"neutral","aria-label":"Change operator",children:d.map(h=>t(M,{onAction:()=>c({operator:h}),children:Ae[h]},h))}),t(Ln,{filter:e,filterConfig:a,onChange:h=>c({value:h})}),t(S,{type:"button",variant:"neutral",className:"self-end",onPress:s,"aria-label":`Remove ${n(e.property)} filter`,children:"Clear"})]})})]})}function $n({onApply:e}){const{filters:a,filterConfig:n}=w(),s=H(),{updateFilter:c,removeFilter:i,clearAllFilters:r}=$e(),[d,l]=O(null);return g(D,{children:[t(Ot,{children:t(Mt,{children:"Filter"})}),t(zt,{className:"flex flex-col gap-input",children:Object.keys(n).map(o=>{const m=a.find(b=>b.property===o)??R(o,n[o]);return t(Ee,{filter:m,filterConfig:n,resourceFormatter:s,onRemove:()=>i(m.id),onUpdate:b=>c(o,b),isOpen:d===o,onOpenChange:b=>l(b?o:null)},o)})}),g(Rt,{children:[t(S,{variant:"neutral",onPress:()=>{r(),l(null)},children:"Clear All"}),t(S,{variant:"primary",onPress:e,children:"Apply"})]})]})}function En({className:e,hasClearableFilters:a,isDisabled:n,onClearAll:s,...c}){const{openDialog:i,closeDialog:r}=se();return t("section",{...c,className:x("flex items-center",e),children:g(S,{variant:a?"primary_neutral":"neutral",isDisabled:n,"aria-label":"Filter",onPress:()=>i(t($n,{onApply:r})),className:"min-w-0 flex-1",children:[t(le,{}),"Filters",a&&t(De,{onPress:s,children:t("span",{className:"animate-slide-in bg-primary hover:bg-destructive rounded-full size-icon flex justify-center items-center",children:t(Me,{className:"size-2.5 text-elevation-1"})})})]})})}function qn({className:e,previewFilters:a,...n}){const{filters:s,query:c,setFilters:i,filterConfig:r}=w(),d=B(),l=H(),o=Object.keys(r).filter(p=>!s.some(v=>v.property===p)).sort(),[m,b]=O(null),y=Te(!1);ie(()=>{if(!y.current&&s.length===0){const p=[];a&&a.length>0&&p.push(...a.filter(v=>r[v]).map(v=>({...R(v,r[v]),active:!1,isPreview:!0}))),p.length>0&&i(p)}y.current=!0},[]);const{updateFilter:h,removeFilter:N,clearAllFilters:C}=$e(),A=p=>{const v=R(p,r[p]);i([...s,v]),b(v.id)},$=s.some(p=>!p.isPreview||p.active!==!1),z=()=>{C(),b(null)};return d?t(En,{...n,className:e,hasClearableFilters:$,isDisabled:c.isPending,onClearAll:z}):g("section",{...n,className:x("flex flex-wrap gap-icon items-center",e),children:[s.filter(p=>p.property in r).map(p=>t(Ee,{filter:p,filterConfig:r,resourceFormatter:l,onRemove:()=>N(p.id),onUpdate:v=>h(p.property,v),isOpen:m===p.id,onOpenChange:v=>b(v?p.id:null)},p.id)),o.length>0&&t(L,{label:t(le,{}),isDisabled:c.isPending,variant:"neutral","aria-label":"Add filter",children:o.map(p=>{const v=r[p].type,K=Vn[v];return g(M,{className:"!justify-between",onAction:()=>A(p),children:[l(p),t(K,{})]},p)})}),$&&t(S,{variant:"ghost",onPress:z,"aria-label":"Clear all filters",className:"animate-in fade-in",children:"Clear All"})]})}const Vn={"id-search":Wt,bool:ne,"derived-select":ne,date:Jt,enum:Yt,id:Xt,number:Zt,string:ne};export{Ae as C,qn as D,Br as DataTable,je as DataTableContext,Hr as DataTableProvider,Kr as F,Vr as getColumnHelper,w as useDataTable,kr as useDataTableState};
2
2
  //# sourceMappingURL=data-table.js.map