@cryptlex/web-components 6.7.6 → 6.7.8
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.
- package/dist/components/calendar.js +1 -1
- package/dist/components/data-table.d.ts +5 -5
- package/dist/components/data-table.js +1 -1
- package/dist/components/data-table.js.map +1 -1
- package/dist/components/date-picker.js +1 -1
- package/dist/components/date-picker.js.map +1 -1
- package/dist/components/datefield.js +1 -1
- package/dist/components/form.js +1 -1
- package/dist/components/icons.d.ts +1 -0
- package/dist/components/icons.js +1 -1
- package/dist/components/icons.js.map +1 -1
- package/dist/utilities/form-hook.d.ts +7 -0
- package/dist/utilities/form-hook.js +1 -1
- package/dist/utilities/form-hook.js.map +1 -1
- package/dist/utilities/resources.d.ts +1 -1
- package/dist/utilities/resources.js +1 -1
- package/dist/utilities/resources.js.map +1 -1
- package/dist/utilities/string.js +1 -1
- package/dist/utilities/string.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";import{jsxs as o,jsx as e}from"react/jsx-runtime";import{today as b,getLocalTimeZone as v}from"@internationalized/date";import{
|
|
1
|
+
"use client";import{jsxs as o,jsx as e}from"react/jsx-runtime";import{today as b,getLocalTimeZone as v}from"@internationalized/date";import{Calendar as y,CalendarGridHeader as S,composeRenderProps as l,useLocale as G,Heading as H,CalendarGrid as N,CalendarHeaderCell as R,CalendarGridBody as $,RangeCalendarStateContext as w,CalendarCell as B,RangeCalendar as z}from"react-aria-components";import{use as E}from"react";import{Button as c,buttonVariants as I}from"./button.js";import{classNames as n}from"../utilities/theme.js";import{FormFieldError as m}from"./form.js";import{IcRight as s,IcLeft as u}from"./icons.js";import"class-variance-authority";import"./loader.js";import"clsx";import"@icons-pack/react-simple-icons";import"./card.js";function f(a){let{direction:t}=G();return o("header",{className:"flex w-full items-center gap-1 px-1 pb-icon",...a,children:[e(c,{slot:"previous",size:"icon",children:t==="rtl"?e(s,{"aria-hidden":!0}):e(u,{"aria-hidden":!0})}),e(H,{className:"grow text-center body font-medium"}),e(c,{slot:"next",size:"icon",children:t==="rtl"?e(u,{"aria-hidden":!0}):e(s,{"aria-hidden":!0})})]})}function g({className:a,...t}){return e(N,{className:n(" border-separate border-spacing-x-0 border-spacing-y-1 ",a),...t})}const C=S;function h({className:a,...t}){return e(R,{className:n("w-9 body-sm font-normal text-muted-foreground",a),...t})}function x({className:a,...t}){return e($,{className:n("[&>tr>td]:p-0",a),...t})}function p({className:a,...t}){const i=!!E(w);return e(B,{className:l(a,(d,r)=>n(I({variant:"ghost",size:"icon"}),r.isDisabled&&"text-muted-foreground opacity-50",r.isSelected&&"bg-primary text-primary-foreground data-[focused]:bg-primary data-[focused]:text-primary-foreground",r.isHovered&&r.isSelected&&(r.isSelectionStart||r.isSelectionEnd||!i)&&"data-[hovered]:bg-primary data-[hovered]:text-primary-foreground",r.isSelected&&i&&!r.isSelectionStart&&!r.isSelectionEnd&&"rounded-none bg-accent text-accent-foreground",r.isOutsideMonth&&"text-muted-foreground opacity-50 data-[selected]:bg-accent/50 data-[selected]:text-muted-foreground data-[selected]:opacity-30",r.date.compare(b(v()))===0&&!r.isSelected&&"bg-accent text-accent-foreground",r.isUnavailable&&"cursor-default text-destructive ",r.isInvalid&&"bg-destructive text-destructive-foreground data-[focused]:bg-destructive data-[hovered]:bg-destructive data-[focused]:text-destructive-foreground data-[hovered]:text-destructive-foreground",d)),...t})}function K({errorMessage:a,className:t,...i}){return o(y,{className:l(t,d=>n("w-fit",d)),...i,children:[e(f,{}),o(g,{children:[e(C,{children:d=>e(h,{children:d})}),e(x,{children:d=>e(p,{date:d})})]}),a&&e(m,{children:a})]})}function M({errorMessage:a,className:t,...i}){return o(z,{className:l(t,d=>n("w-fit",d)),...i,children:[e(f,{}),o(g,{children:[e(C,{children:d=>e(h,{children:d})}),e(x,{children:d=>e(p,{date:d})})]}),a&&e(m,{slot:"errorMessage",children:a})]})}export{K as Calendar,p as CalendarCell,g as CalendarGrid,x as CalendarGridBody,C as CalendarGridHeader,h as CalendarHeaderCell,f as CalendarHeading,M as RangeCalendar};
|
|
2
2
|
//# sourceMappingURL=calendar.js.map
|
|
@@ -3,7 +3,7 @@ import { ColumnDef, PaginationState, RowData, SortingState, ColumnHelper } from
|
|
|
3
3
|
import { default as React } from 'react';
|
|
4
4
|
import { Button } from '../components/button';
|
|
5
5
|
import { FilterConfig, FiltersConfig, TableFilter } from '../components/data-table-filter';
|
|
6
|
-
import { ApiFilter, ApiPathParameters, ApiResponseBody } from '../utilities/resources';
|
|
6
|
+
import { ApiFilter, ApiPathParameters, ApiResponseBody, CtxResourceName } from '../utilities/resources';
|
|
7
7
|
import { CtxIcon } from './icons';
|
|
8
8
|
import { ClientPathsWithMethod } from 'openapi-fetch';
|
|
9
9
|
import { PressEvent } from 'react-aria-components';
|
|
@@ -16,7 +16,7 @@ declare module '@tanstack/react-table' {
|
|
|
16
16
|
}
|
|
17
17
|
type DataTableFactoryBase<T extends object, TOperation extends keyof operations, TFilterConfig extends FiltersConfig<TOperation> = FiltersConfig<TOperation>> = {
|
|
18
18
|
path: NoInfer<ClientPathsWithMethod<CtxClientType, 'get'>>;
|
|
19
|
-
resourceName?:
|
|
19
|
+
resourceName?: CtxResourceName;
|
|
20
20
|
pathParameters?: NoInfer<ApiPathParameters<TOperation>>;
|
|
21
21
|
queryParameters?: NoInfer<Partial<ApiFilter<TOperation>>>;
|
|
22
22
|
columns: ColumnDef<T, any>[];
|
|
@@ -368,7 +368,7 @@ export declare function useDataTableState<T extends object, TOperation extends k
|
|
|
368
368
|
readonly disableTableView: boolean | undefined;
|
|
369
369
|
readonly hideViewToggle: boolean | undefined;
|
|
370
370
|
readonly onRowNavigate: ((row: T) => void) | undefined;
|
|
371
|
-
readonly resourceName:
|
|
371
|
+
readonly resourceName: "access-token" | "account" | "activation" | "activation-log" | "address" | "admin-role" | "audit-log" | "automated-email" | "automated-email-event-log" | "card" | "entitlement-set" | "event-log" | "feature-entitlement" | "feature-flag" | "feature" | "invoice" | "license" | "license-template" | "maintenance-policy" | "organization" | "plan" | "product" | "product-version" | "profile" | "release" | "release-channel" | "release-file" | "release-platform" | "role" | "role-claim" | "saml-configuration" | "segment" | "sending-domain" | "stat" | "tag" | "trial" | "trial-activation" | "trial-policy" | "user" | "user-group" | "webhook" | "webhook-event-log" | "webhook-event" | "reseller" | "oidc-configuration" | "tenant-database-cluster" | "team-member" | undefined;
|
|
372
372
|
};
|
|
373
373
|
export declare const DataTableContext: React.Context<{
|
|
374
374
|
readonly tableState: DataTableState;
|
|
@@ -1274,7 +1274,7 @@ export declare const DataTableContext: React.Context<{
|
|
|
1274
1274
|
readonly disableTableView: boolean | undefined;
|
|
1275
1275
|
readonly hideViewToggle: boolean | undefined;
|
|
1276
1276
|
readonly onRowNavigate: ((row: object) => void) | undefined;
|
|
1277
|
-
readonly resourceName:
|
|
1277
|
+
readonly resourceName: "access-token" | "account" | "activation" | "activation-log" | "address" | "admin-role" | "audit-log" | "automated-email" | "automated-email-event-log" | "card" | "entitlement-set" | "event-log" | "feature-entitlement" | "feature-flag" | "feature" | "invoice" | "license" | "license-template" | "maintenance-policy" | "organization" | "plan" | "product" | "product-version" | "profile" | "release" | "release-channel" | "release-file" | "release-platform" | "role" | "role-claim" | "saml-configuration" | "segment" | "sending-domain" | "stat" | "tag" | "trial" | "trial-activation" | "trial-policy" | "user" | "user-group" | "webhook" | "webhook-event-log" | "webhook-event" | "reseller" | "oidc-configuration" | "tenant-database-cluster" | "team-member" | undefined;
|
|
1278
1278
|
} | null>;
|
|
1279
1279
|
export declare function useDataTable(): {
|
|
1280
1280
|
readonly tableState: DataTableState;
|
|
@@ -2180,7 +2180,7 @@ export declare function useDataTable(): {
|
|
|
2180
2180
|
readonly disableTableView: boolean | undefined;
|
|
2181
2181
|
readonly hideViewToggle: boolean | undefined;
|
|
2182
2182
|
readonly onRowNavigate: ((row: object) => void) | undefined;
|
|
2183
|
-
readonly resourceName:
|
|
2183
|
+
readonly resourceName: "access-token" | "account" | "activation" | "activation-log" | "address" | "admin-role" | "audit-log" | "automated-email" | "automated-email-event-log" | "card" | "entitlement-set" | "event-log" | "feature-entitlement" | "feature-flag" | "feature" | "invoice" | "license" | "license-template" | "maintenance-policy" | "organization" | "plan" | "product" | "product-version" | "profile" | "release" | "release-channel" | "release-file" | "release-platform" | "role" | "role-claim" | "saml-configuration" | "segment" | "sending-domain" | "stat" | "tag" | "trial" | "trial-activation" | "trial-policy" | "user" | "user-group" | "webhook" | "webhook-event-log" | "webhook-event" | "reseller" | "oidc-configuration" | "tenant-database-cluster" | "team-member" | undefined;
|
|
2184
2184
|
};
|
|
2185
2185
|
export declare function DataTableProvider<T extends object, TOperation extends keyof operations>({ children, ...props }: {
|
|
2186
2186
|
children: React.ReactNode;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";import{jsx as t,Fragment as M,jsxs as m}from"react/jsx-runtime";import{parseAbsolute as Y,getLocalTimeZone as J}from"@internationalized/date";import{createContext as et,useContext as tt,useState as D,useMemo as W,useEffect as ie,useRef as Te,Fragment as rt}from"react";import{Pressable as De}from"react-aria-components";import{Button as x}from"./button.js";import{useSensors as nt,useSensor as Se,PointerSensor as at,KeyboardSensor as it,DndContext as ot,closestCenter as st,DragOverlay as lt}from"@dnd-kit/core";import{sortableKeyboardCoordinates as ct,SortableContext as ut,verticalListSortingStrategy as dt,arrayMove as mt,useSortable as gt}from"@dnd-kit/sortable";import{CSS as pt}from"@dnd-kit/utilities";import{useQuery as ft,useInfiniteQuery as bt}from"@tanstack/react-query";import{createColumnHelper as Oe,useReactTable as ht,getCoreRowModel as yt,flexRender as ne}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 O,MenuTrigger as St,MenuPopover as xt,MenuHeader as wt,Menu as Nt}from"./menu.js";import{MultiSelect as Ct}from"./multi-select.js";import{NumberField as Pt}from"./numberfield.js";import{PopoverTrigger as It,Popover as Ft}from"./popover.js";import{SelectTrigger as At}from"./select.js";import{TextField as Tt}from"./textfield.js";import{formatDate as H}from"../utilities/date.js";import{useProjectName as oe,useResourceFormatter as B,ALL_OS as Dt}from"../utilities/resources.js";import{classNames as w}from"../utilities/theme.js";import{ControlledDialogProvider as Ot,useControlledDialog as se,DialogHeader as Mt,DialogTitle as zt,DialogBody as Rt,DialogFooter as jt}from"./dialog.js";import{IcRefresh as _t,IcMenu as Lt,IcLayoutGrid as $t,IcColumns as Et,IcGrip as qt,IcFirst as Vt,IcLeft as kt,IcRight as Ht,IcLast as Bt,IcMoreVertical as Kt,IcInfo as Qt,IcSortAsc as Gt,IcSortDesc as Ut,IcSortNone as Zt,IcCheck as re,IcMinus as Xt,IcAccount as Yt,IcLicense as Jt,IcDate as Wt,IcFile as er,IcFilter as le,IcClose as Me}from"./icons.js";import{MultipleIdSearchInput as tr}from"./id-search.js";import{useIsMobile as K}from"../utilities/use-mobile.js";import{Loader as ze}from"./loader.js";import{SearchField as rr}from"./searchfield.js";import{Table as nr,TableHeader as ar,TableRow as we,TableHead as ir,TableBody as or,TableCell as sr}from"./table.js";import{CountryName as lr}from"../utilities/countries.js";import{Duration as cr}from"../utilities/duration.js";import{formatDays as ur,formatFilesize as dr,formatNumber as mr}from"../utilities/numbers.js";import{Checkbox as Ne}from"./checkbox.js";import{TooltipTrigger as gr,Tooltip as pr}from"./tooltip.js";import{getSubscriptionStartTriggerLabel as fr,ALL_LICENSE_TYPES as br}from"./select-options.js";import{useCtxClient as hr}from"../utilities/ctx-client.js";import{ProgressBar as yr}from"./progress-bar.js";import{TagGroup as vr,Tag as Sr}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 xr(e){return e?e.desc?`-${e.id}`:`+${e.id}`:"-createdAt"}const Re=Oe(),wr=[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 Nr(e){return e.length===0?[]:[Re.accessor(F,{header:"Actions",id:F,enableHiding:!1,cell:({row:n})=>t(zr,{label:t(Kt,{className:"text-icon-primary"}),data:n.original,items:e}),enableSorting:!1})]}function kn(){return Oe()}function Hn({path:e,resourceName:n,pathParameters:r,queryParameters:o,columns:c,filterConfig:i,columnsToHideByDefault:a={},allowSelection:d=!1,allowToolbar:l=!0,initialFilters:s=[],previewFilters:g,tableActions:b,Card:v,onRowNavigate:y,disableTableView:S,hideViewToggle:C,include:A}){const[R,$]=D({pagination:{pageIndex:0,pageSize:20},sorting:[]}),{sorting:p,pagination:h}=R,[E,qe]=D(""),[ue,de]=D({}),[Q,Ve]=D(s),G=W(()=>Q.filter(u=>u.active!==!1).map(u=>{if(u.type==="derived-select"){const I=i[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,i]),q=A?.length?A.join(","):void 0,V={...o,...G,limit:h.pageSize,sort:xr(p[0]),search:E,...q?{include:q}:{}},ke=hr(),He=["get",e,{...V,page:h.pageIndex+1},"table"],Be=["get",e,V,"card"],U=`${e}_ctx`,[me,ge]=ee(`${U}_column_order_preference`,[]),[pe,Ke]=ee(`${U}_column_visibility_preference`,{id:!1,...a}),[Qe,Ge]=ee(`${U}_view_mode_preference`,S?"card":"table"),Ue=K(),T=S||Ue&&v?"card":Qe,Z=u=>{$(f=>({...f,...u}))};async function fe(u){const f=await ke.GET(e,{params:{query:{...o,page:u,limit:h.pageSize,sort:V.sort,search:V.search,...q?{include:q}:{},...G},path:r}});return{data:f.data??[],total:Number.parseInt(f.response.headers.get("Pagination-Count")||"0"),nextPage:u+1}}const j=ft({queryKey:He,enabled:T==="table",queryFn:()=>fe(h.pageIndex+1),placeholderData:u=>u}),P=bt({queryKey:Be,enabled:T==="card",initialPageParam:1,queryFn:({pageParam:u})=>fe(u),getNextPageParam:(u,f)=>f.flatMap(k=>k.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]),ye=T==="table"?j:{...P,data:{data:be,total:he},isLoading:P.isLoading,isFetching:P.isFetching,isError:P.isError,error:P.error,refetch:P.refetch},Ze=b.filter(ce),Xe=[...d?wr:[],...c,...Nr(Ze??[])];function Ye(u){return typeof u=="function"}function _(u,f){return Ye(u)?u(f):u}const ve=ht({data:be,columns:Xe,getCoreRowModel:yt(),rowCount:he,manualPagination:!0,onPaginationChange:u=>{Z({pagination:_(u,h)})},manualSorting:!0,onSortingChange:u=>{de({}),Z({sorting:[..._(u,p)]})},manualFiltering:!0,onColumnVisibilityChange:u=>{Ke(_(u,pe))},onRowSelectionChange:u=>{de(_(u,ue))},onColumnOrderChange:u=>{ge(_(u,me))},state:{sorting:p,columnVisibility:pe,pagination:h,rowSelection:ue,columnOrder:me},meta:{refetch:ye.refetch}});return ie(()=>{const u=ve.getAllFlatColumns().map(I=>I.id),f=u.filter(I=>I!=="checkbox"&&I!==F);ge(I=>{const k=I.filter(X=>f.includes(X)),Je=f.filter(X=>!I.includes(X)),We=k.length>0?[...k,...Je]:f;return[...u.includes("checkbox")?["checkbox"]:[],...We,...u.includes(F)?[F]:[]]})},[]),{tableState:R,updateTableState:Z,query:ye,setSearchQuery:qe,searchQuery:E,tanTable:ve,mergedFilters:G,filters:Q,setFilters:Ve,filterConfig:i,tableActions:b,pathParameters:r,queryParameters:o,viewMode:T,setViewMode:Ge,Card:v,allowSelection:d,allowToolbar:l,previewFilters:g,infiniteQuery:P,disableTableView:S,hideViewToggle:C,onRowNavigate:y,resourceName:n}}const je=et(null);function N(){const e=tt(je);if(!e)throw Error("DataTable should be used within DataTableProvider.");return e}function Bn({children:e,...n}){return t(je.Provider,{value:n,children:e})}function Cr(){const{query:e,resourceName:n,allowToolbar:r}=N();return e.isFetching?null:e.isError?m("span",{className:"flex gap-3 items-center",children:[t(Qt,{className:"text-icon-primary"}),t("span",{children:e.error?.message})]}):e.data?.data?.length===0?m("div",{className:"text-center flex flex-col gap-2",children:[t("p",{className:"font-semibold text-text-primary",children:n?`No ${n} found.`:"No results found."}),r&&t("p",{className:"text-text-secondary",children:"Adjust your filter or search request."})]}):t(M,{children:"Unknown error. Please contact customer support."})}function Pr({cardGridClassName:e}){const{query:n,tanTable:r,viewMode:o,tableActions:c,Card:i}=N(),a=c.filter(ce),d=o==="card"&&!!i;return n.isLoading?t("div",{className:"body-sm flex items-center justify-center min-h-32",children:t(ze,{})}):r.getRowModel().rows.length===0?t("div",{className:"body-sm flex items-center justify-center min-h-32 text-muted",children:t(Cr,{})}):d?t(Ir,{Card:i,actions:a,className:e}):t(Mr,{className:"w-full"})}function Kn({className:e,cardGridClassName:n,...r}){const{viewMode:o,Card:c,allowToolbar:i}=N(),a=o==="card"&&!!c;return t(M,{children:m(Ot,{children:[i&&t(Dr,{}),m("section",{...r,className:w("z-20 flex flex-col",a?"":"border rounded-lg",e),children:[t("div",{className:"w-full overflow-auto relative rounded-t-lg [scrollbar-width:none]",tabIndex:0,children:t(Pr,{cardGridClassName:n})}),!a&&m("div",{className:"flex w-full justify-between border-t gap-icon py-2 px-icon bg-surface-secondary rounded-b-lg overflow-x-auto",children:[m("div",{className:"flex gap-icon",children:[t(Fr,{}),t(Tr,{})]}),t(Ar,{})]})]})]})})}function Ir({Card:e,actions:n,className:r,...o}){const{tanTable:c,allowSelection:i}=N(),{infiniteQuery:a}=N(),d=Te(null);return ie(()=>{const l=d.current;if(!l)return;const s=new IntersectionObserver(g=>{g[0].isIntersecting&&a.hasNextPage&&!a.isFetchingNextPage&&a.fetchNextPage()},{threshold:.1});return s.observe(l),()=>s.disconnect()},[a.hasNextPage,a.isFetchingNextPage]),m("div",{...o,className:w(r,"grid grid-cols-1 lg:grid-cols-2 gap-icon pb-input"),children:[c.getRowModel().rows.map((l,s)=>{const g={isSelected:l.getIsSelected(),onToggle:()=>l.toggleSelected(),allowSelection:i};return t(rt,{children:e(l.original,n,g,s)},l.id)}),t("div",{ref:d,className:"col-span-full h-4 flex items-center justify-center",children:a.isFetchingNextPage&&t(ze,{})})]})}function Fr(){if(oe()==="customer-portal")return null;const{tanTable:n}=N(),[r,o]=D(null),c=B(),i=nt(Se(at),Se(it,{coordinateGetter:ct}));return t(ot,{sensors:i,collisionDetection:st,onDragStart:d=>{const{active:l}=d;o(l.id.toString())},onDragEnd:d=>{const{active:l,over:s}=d;if(s&&l.id!==s.id){const g=n.getState().columnOrder,b=g.indexOf(l.id.toString()),v=g.indexOf(s.id.toString());n.setColumnOrder([...mt(g,b,v)])}o(null)},children:m(ut,{items:n.getState().columnOrder,strategy:dt,children:[m(L,{label:m(M,{children:[t(Et,{className:"inline align-bottom me-1 text-icon-primary"}),"Columns"]}),selectionMode:"multiple",size:"sm",items:n.getAllFlatColumns(),selectedKeys:n.getVisibleFlatColumns().map(d=>d.id),children:[t(O,{onAction:()=>n.toggleAllColumnsVisible(),className:"italic",children:"(select all)"}),n.getState().columnOrder.map(d=>{const l=n.getAllFlatColumns().find(s=>s.id===d);return!l||l.id==="checkbox"||l.id===F?null:t(a,{column:l},l.id)})]}),t(lt,{children:r?t("div",{className:"opacity-70 border-2 border-primary",children:c(r)}):null})]})});function a({column:d}){const{attributes:l,listeners:s,setNodeRef:g,transform:b,transition:v}=gt({id:d.id}),y={transform:pt.Transform.toString(b),transition:v,zIndex:"999"};return m(O,{ref:g,style:y,...l,id:d.id,onAction:()=>d.toggleVisibility(),isDisabled:!d.getCanHide(),className:"flex items-center",children:[t(qt,{...s,className:"size-icon cursor-grab text-icon-primary"}),ae(d),d.getIsSorted()&&t(_e,{className:"size-icon",direction:d.getIsSorted()})]})}}function Ar(){const{tanTable:e}=N(),n=e.getRowCount();return m("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,n)} of ${n?.toLocaleString()}`}),(e.getCanNextPage()||e.getCanPreviousPage())&&m(M,{children:[t(x,{"aria-label":"First page",onPress:()=>e.firstPage(),isDisabled:!e.getCanPreviousPage(),variant:"neutral",size:"icon-sm",children:t(Vt,{})}),t(x,{"aria-label":"Previous page",onPress:()=>e.previousPage(),isDisabled:!e.getCanPreviousPage(),variant:"neutral",size:"icon-sm",children:t(kt,{})}),t(x,{"aria-label":"Next page",onPress:()=>e.nextPage(),isDisabled:!e.getCanNextPage(),variant:"neutral",size:"icon-sm",children:t(Ht,{})}),t(x,{"aria-label":"Last page",onClick:()=>e.lastPage(),isDisabled:!e.getCanNextPage(),variant:"neutral",size:"icon-sm",children:t(Bt,{})})]})]})}function Tr(){if(oe()==="customer-portal")return null;const{tanTable:n}=N(),r=[10,20,30,40,50];return t(L,{label:n.getState().pagination.pageSize.toString(),selectionMode:"single",size:"sm",selectedKeys:[n.getState().pagination.pageSize.toString()],items:r.map(o=>({id:o.toString(),value:o})),children:o=>t(O,{onAction:()=>n.setPageSize(o.value),children:o.value})})}function Dr(){const{query:e,tanTable:n,searchQuery:r,setSearchQuery:o,tableActions:c,viewMode:i,setViewMode:a,Card:d,previewFilters:l,disableTableView:s,hideViewToggle:g}=N(),b=n.getSelectedRowModel().rows.length>0,v=K(),y=c.filter(S=>S.resourceType!=="single").filter(S=>S.resourceType==="multiple"===b);return m("section",{className:"flex justify-between my-0 mb-icon gap-icon overflow-x-auto py-1",children:[m("div",{className:w("flex gap-icon max-md:min-w-0 max-md:flex-1"),children:[t(x,{"aria-label":"Refresh",isPending:e.isFetching,onClick:()=>e.refetch(),variant:"neutral",size:"icon",className:w("max-md:shrink-0"),children:t(_t,{})}),t(rr,{value:r,onChange:o,className:w("max-md:min-w-0 max-md:flex-1")}),t(qr,{previewFilters:l,className:w("max-md:shrink-0")})]}),!v&&m("div",{className:"flex gap-icon",children:[t(Fe,{items:y,isFetching:e.isFetching}),d&&!s&&!g&&m("div",{className:"flex gap-1 bg-surface-primary 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(Lt,{})}),t(x,{variant:i==="card"?"primary":"neutral",size:"icon",onPress:()=>a("card"),"aria-label":"Card view",className:"border-none",children:t($t,{})})]})]}),v&&y.length>0&&t("div",{className:"fixed inset-x-0 bottom-0 z-30 flex gap-icon border-t bg-surface-primary p-icon",children:t(Fe,{items:y,isFetching:e.isFetching,buttonClassName:"flex-1 justify-center"})})]})}function _e({direction:e,...n}){return e==="asc"?t(Gt,{className:"size-3.5",...n}):e==="desc"?t(Ut,{className:"size-3.5",...n}):t(Zt,{className:"size-3.5",...n})}function ae(e){const n=B(),r=e.columnDef.header;return typeof r=="string"?r:n(e.id)}function Or(e){const n=e.column.columnDef.meta?.displayType,r=e.getValue();if(r==null)return null;switch(n){case"date":return t("span",{className:"tabular-nums",children:H(r)});case"number":return t("span",{className:"block text-right tabular-nums",children:mr(r)});case"boolean":return t(xe,{variant:r?"success":"destructive",className:"capitalize",children:String(r)});case"badge":return t(xe,{children:String(r)});case"tags":let o=Array.isArray(r)?r:[String(r)];return t(vr,{items:o.map(a=>({id:a,name:a})),className:"!flex-nowrap",children:a=>t(Sr,{children:a.name})});case"progressBar":const[c,i]=r;return t(yr,{meterClassName:"w-16",label:`${c}/${i}`,minValue:0,maxValue:i,value:c});case"country":return t(lr,{value:r});case"enum":return t("span",{className:"uppercase w-full",children:String(r)});case"fileSize":return dr(r);case"days":return ur(r);case"os":return Dt[r]??r;case"licenseType":return br[r]??r;case"subscriptionInterval":return cr.formatISODuration(r);case"subscriptionStartTrigger":return fr(r);default:return String(r)}}function Ce({header:e}){const n=e.column.columnDef.header;return typeof n=="string"||!n?ae(e.column):typeof n=="function"?typeof n(e.getContext())=="string"?ae(e.column):ne(n,e.getContext()):ne(n,e.getContext())}function Mr({className:e}){const{tanTable:n,onRowNavigate:r}=N(),o=(c,i,a="z-50")=>w("text-left body-sm font-medium whitespace-nowrap",c&&`sticky right-0 ${a} text-center justify-center`,i);return m(nr,{className:w("table-auto border-0",e),children:[t(ar,{className:"sticky top-0 z-10 rounded-lg border-stroke-secondary!",children:n.getHeaderGroups().map(c=>t(we,{className:"border-stroke-secondary!",children:c.headers.map(i=>m(ir,{scope:"col",colSpan:i.colSpan,className:o(i.id===F,"bg-surface-secondary"),children:[!i.column.getCanSort()&&!i.isPlaceholder&&t("div",{className:w("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()&&m(x,{variant:"ghost",size:"none",className:w("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(or,{children:n.getRowModel().rows.map(c=>t(we,{className:w("group border-stroke-secondary! bg-surface-primary hover:not-data-[selected=true]:bg-surface-secondary data-[selected=true]:bg-surface-tertiary",r&&"cursor-pointer focus-visible:outline focus-visible:outline-ring"),"data-selected":c.getIsSelected(),...r&&{role:"link",tabIndex:0,onClick:i=>{i.target.closest('a, button, input, select, textarea, [role="button"]')||r(c.original)},onKeyDown:i=>{i.key==="Enter"&&r(c.original)}},children:c.getVisibleCells().map(i=>{const a=i.column.id===F,d=i.column.columnDef.meta?.displayType?Or(i):ne(i.column.columnDef.cell,i.getContext());return t(sr,{className:w(o(a,a?"bg-surface-primary group-hover:not-group-data-[selected=true]:bg-surface-secondary group-data-[selected=true]:bg-surface-tertiary":"","z-1"),a&&"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:n,buttonClassName:r}){const{openDialog:o,closeDialog:c}=se(),{tanTable:i,mergedFilters:a}=N();function d(s,g){return s.isDisabled?Pe(s)?s.isDisabled():Ie(s)?s.isDisabled(g):!1:!1}const l=i.getSelectedRowModel().rows.map(s=>s.original);return t(M,{children:e.map((s,g)=>{const b=s.icon,v=d(s,l)||n;return m(x,{"aria-label":s.label,type:"button",isDisabled:v,className:w("animate-in fade-in slide-in-from-right-15 duration-300 transition-transform",r),onPress:y=>{const S={event:y,openDialog:o,closeDialog:c,activeFilters:a};Pe(s)?s.onPress(S):Ie(s)&&s.onPress({...S,data:l})},variant:s.variant??"neutral",children:[b&&t(b,{"aria-hidden":!0}),t("span",{children:s.label})]},`${s.label}-${g}`)})})}function zr({label:e,items:n,data:r}){const{openDialog:o,closeDialog:c}=se(),{mergedFilters:i}=N();return n.length<5?t("div",{className:"flex items-center gap-2",children:n.map((a,d)=>{const l=a.icon,s=typeof a.label=="function"?a.label(r):a.label;return m(gr,{children:[t(x,{"aria-label":typeof s=="string"?s:void 0,isDisabled:a.isDisabled?.(r)??!1,variant:"ghost",size:"icon",onPress:()=>{const g={openDialog:o,closeDialog:c};a.onPress({...g,data:r,activeFilters:i})},children:t(l,{className:"size-icon"})}),t(pr,{children:s})]},`${d}-${typeof s=="string"?s:""}`)})}):t(L,{withChevron:!1,"aria-label":"Actions",label:e,size:"icon",children:n.map((a,d)=>{const l=a.icon,s=typeof a.label=="function"?a.label(r):a.label;return m(O,{id:typeof s=="string"?s:void 0,isDisabled:a.isDisabled?.(r)??!1,onAction:()=>{const g={openDialog:o,closeDialog:c};ce(a)&&a.onPress({...g,data:r,activeFilters:i})},children:[t(l,{className:"size-icon"}),s]},`${d}-${typeof s=="string"?s:""}`)})})}const Qn=["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"},Rr={eq:"=",ne:"≠",cn:"contains",nc:"!contains",sw:"starts with",ew:"ends with",in:"in",nin:"not in",gt:">",gte:"≥",lt:"<",lte:"≤",between:"↔"};function z(e,n){const r=n.type,o=`${e}-${Date.now()}`,c=r==="bool"||r==="derived-select"?!1:n.needOperator??!0,i=c?Le[r][0]:"eq",a={id:o,property:e,operator:i,needOperator:c};switch(r){case"bool":return{...a,type:r,value:!0};case"derived-select":return{...a,type:r,value:n.options[0]?.id??""};case"string":return{...a,type:r,value:""};case"date":return{...a,type:r,value:i==="between"?[new Date().toISOString(),new Date().toISOString()]:new Date().toISOString()};case"id":return{...a,type:r,value:""};case"id-search":return{...a,type:r,value:[]};case"enum":return{...a,type:r,value:new Set};case"number":return{...a,type:r,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 jr(e,n){let r=n.value!==void 0?n.value:e.value;const o=n.operator??e.operator;if(e.type==="date"&&n.operator!==void 0)if(o==="between"&&!Array.isArray(r)){const c=typeof r=="string"?r:new Date().toISOString();r=[c,c]}else o!=="between"&&Array.isArray(r)&&(r=r[0]??new Date().toISOString());return r}function $e(){const{setFilters:e,filterConfig:n}=N();return{updateFilter:(i,a)=>{e(d=>{const l=d.find(g=>g.property===i)??z(i,n[i]),s={...l,...a,value:jr(l,a),active:!0};return d.some(g=>g.id===l.id)?d.map(g=>g.id===l.id?s:g):[...d,s]})},removeFilter:i=>{e(a=>{const d=a.find(l=>l.id===i);return d?d.isPreview?a.map(l=>l.id===i?{...z(l.property,n[l.property]),active:!1,isPreview:!0}:l):a.filter(l=>l.id!==i):a})},clearAllFilters:()=>{e(i=>i.filter(a=>a.isPreview).map(a=>({...z(a.property,n[a.property]),active:!1,isPreview:!0})))}}}function _r(e,n){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 r=n[e.property];if(!r||r.type!=="derived-select")return e.value??"";const o=r.options.find(c=>c.id===e.value);return typeof o?.label=="string"?o.label:e.value??""}case"date":if(Array.isArray(e.value)){const[r,o]=e.value;return`${H(r,{dateStyle:"short"})??""} – ${H(o,{dateStyle:"short"})??""}`}return e.value?H(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 Lr({filter:e,filterConfig:n,onChange:r}){if(e.type==="string"||e.type==="id")return t(Tt,{autoFocus:!0,value:e.value??"",onChange:r,"aria-label":"Filter value"});if(e.type==="number")return t(Pt,{autoFocus:!0,value:e.value,onChange:r,"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()],a=Y(c,J()),d=Y(i,J());return m("div",{className:"flex flex-col gap-icon",children:[t(te,{autoFocus:!0,hideTimeZone:!0,label:"From",value:a,onChange:l=>r([l?l.toAbsoluteString():c,i])}),t(te,{hideTimeZone:!0,label:"To",value:d,onChange:l=>r([c,l?l.toAbsoluteString():i])})]})}const o=e.value&&!Array.isArray(e.value)?Y(e.value,J()):null;return t(te,{autoFocus:!0,hideTimeZone:!0,value:o,onChange:c=>r(c?c.toAbsoluteString():new Date().toISOString()),"aria-label":"Filter date"})}if(e.type==="enum"){const o=n[e.property];return o.type!=="enum"?null:t(Ct,{autoFocus:!0,items:o.options,value:e.value??new Set,onChange:r,"aria-label":"Filter value"})}if(e.type==="id-search"){const o=n[e.property];if(o.type!=="id-search")return null;const c=o.defaultParams;return t(tr,{autoFocus:!0,path:o.path,accessor:o.accessor,defaultParams:c,value:e.value??[],onChange:r,"aria-label":"Filter value"})}return null}function Ee({filter:e,filterConfig:n,resourceFormatter:r,onRemove:o,onUpdate:c,isOpen:i,onOpenChange:a}){const d=e.needOperator===!1?["eq"]:Le[e.type],l=_r(e,n),s=oe(),g=K(),b=e.type==="bool"||e.type==="derived-select",v=g?m("div",{className:"flex flex-col gap-1",children:[t("span",{className:"body-sm text-muted",children:r(e.property)}),t(At,{type:"button",className:"w-full","aria-label":r(e.property),children:l})]}):m(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(le,{}),b?t("span",{className:"font-medium",children:l}):m(M,{children:[t("span",{className:"font-medium",children:r(e.property)}),s!=="customer-portal"&&t("span",{children:Rr[e.operator]}),s!=="customer-portal"&&l&&t("span",{children:l})]}),e.active!==!1&&t(De,{onPress:()=>o(),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-surface-primary"})})})]});if(b){let y,S;if(e.type==="bool")y=[{id:"true",label:"True"},{id:"false",label:"False"}],S=e.value?"true":"false";else{const C=n[e.property];y=C?.type==="derived-select"?C.options:[],S=e.value??""}return m(St,{isOpen:i,onOpenChange:a,children:[t("div",{className:"relative",children:v}),m(xt,{className:"min-w-48",children:[t(wt,{inset:!0,separator:!1,children:r(e.property)}),t(Nt,{selectionMode:"single",disallowEmptySelection:!0,selectedKeys:new Set([S]),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:y.map(C=>t(O,{id:C.id,children:C.label},C.id))})]})]})}return m(It,{isOpen:i,onOpenChange:a,children:[t("div",{className:"relative",children:v}),t(Ft,{className:"p-icon min-w-48",children:m("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(y=>t(O,{onAction:()=>c({operator:y}),children:Ae[y]},y))}),t(Lr,{filter:e,filterConfig:n,onChange:y=>c({value:y})}),t(x,{type:"button",variant:"neutral",className:"self-end",onPress:o,"aria-label":`Remove ${r(e.property)} filter`,children:"Clear"})]})})]})}function $r({onApply:e}){const{filters:n,filterConfig:r}=N(),o=B(),{updateFilter:c,removeFilter:i,clearAllFilters:a}=$e(),[d,l]=D(null);return m(M,{children:[t(Mt,{children:t(zt,{children:"Filter"})}),t(Rt,{className:"flex flex-col gap-input",children:Object.keys(r).map(s=>{const g=n.find(b=>b.property===s)??z(s,r[s]);return t(Ee,{filter:g,filterConfig:r,resourceFormatter:o,onRemove:()=>i(g.id),onUpdate:b=>c(s,b),isOpen:d===s,onOpenChange:b=>l(b?s:null)},s)})}),m(jt,{children:[t(x,{variant:"neutral",onPress:()=>{a(),l(null)},children:"Clear All"}),t(x,{variant:"primary",onPress:e,children:"Apply"})]})]})}function Er({className:e,hasClearableFilters:n,isDisabled:r,onClearAll:o,...c}){const{openDialog:i,closeDialog:a}=se();return t("section",{...c,className:w("flex items-center",e),children:m(x,{variant:n?"primary_neutral":"neutral",isDisabled:r,"aria-label":"Filter",onPress:()=>i(t($r,{onApply:a})),className:"min-w-0 flex-1",children:[t(le,{}),"Filters",n&&t(De,{onPress:o,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-surface-primary"})})})]})})}function qr({className:e,previewFilters:n,...r}){const{filters:o,query:c,setFilters:i,filterConfig:a}=N(),d=K(),l=B(),s=Object.keys(a).filter(p=>!o.some(h=>h.property===p)).sort(),[g,b]=D(null),v=Te(!1);ie(()=>{if(!v.current&&o.length===0){const p=[];n&&n.length>0&&p.push(...n.filter(h=>a[h]).map(h=>({...z(h,a[h]),active:!1,isPreview:!0}))),p.length>0&&i(p)}v.current=!0},[]);const{updateFilter:y,removeFilter:S,clearAllFilters:C}=$e(),A=p=>{const h=z(p,a[p]);i([...o,h]),b(h.id)},R=o.some(p=>!p.isPreview||p.active!==!1),$=()=>{C(),b(null)};return d?t(Er,{...r,className:e,hasClearableFilters:R,isDisabled:c.isPending,onClearAll:$}):m("section",{...r,className:w("flex flex-wrap gap-icon items-center",e),children:[o.filter(p=>p.property in a).map(p=>t(Ee,{filter:p,filterConfig:a,resourceFormatter:l,onRemove:()=>S(p.id),onUpdate:h=>y(p.property,h),isOpen:g===p.id,onOpenChange:h=>b(h?p.id:null)},p.id)),s.length>0&&t(L,{label:t(le,{}),isDisabled:c.isPending,variant:"neutral","aria-label":"Add filter",children:s.map(p=>{const h=a[p].type,E=Vr[h];return m(O,{className:"!justify-between",onAction:()=>A(p),children:[l(p),t(E,{})]},p)})}),R&&t(x,{variant:"ghost",onPress:$,"aria-label":"Clear all filters",className:"animate-in fade-in",children:"Clear All"})]})}const Vr={"id-search":er,bool:re,"derived-select":re,date:Wt,enum:Jt,id:Yt,number:Xt,string:re};export{Ae as C,qr as D,Kn as DataTable,je as DataTableContext,Bn as DataTableProvider,Qn as F,kn as getColumnHelper,N as useDataTable,Hn as useDataTableState};
|
|
1
|
+
"use client";import{jsx as t,Fragment as M,jsxs as m}from"react/jsx-runtime";import{parseAbsolute as Y,getLocalTimeZone as J}from"@internationalized/date";import{createContext as et,useContext as tt,useState as D,useMemo as W,useEffect as ie,useRef as Te,Fragment as rt}from"react";import{Pressable as De}from"react-aria-components";import{Button as x}from"./button.js";import{useSensors as nt,useSensor as Se,PointerSensor as at,KeyboardSensor as it,DndContext as ot,closestCenter as st,DragOverlay as lt}from"@dnd-kit/core";import{sortableKeyboardCoordinates as ct,SortableContext as ut,verticalListSortingStrategy as dt,arrayMove as mt,useSortable as pt}from"@dnd-kit/sortable";import{CSS as gt}from"@dnd-kit/utilities";import{useQuery as ft,useInfiniteQuery as bt}from"@tanstack/react-query";import{createColumnHelper as Oe,useReactTable as ht,getCoreRowModel as yt,flexRender as ne}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 _,MenuItem as O,MenuTrigger as St,MenuPopover as xt,MenuHeader as wt,Menu as Nt}from"./menu.js";import{MultiSelect as Ct}from"./multi-select.js";import{NumberField as Pt}from"./numberfield.js";import{PopoverTrigger as Ft,Popover as It}from"./popover.js";import{SelectTrigger as At}from"./select.js";import{TextField as Tt}from"./textfield.js";import{formatDate as B}from"../utilities/date.js";import{useProjectName as oe,useResourceFormatter as $,ALL_OS as Dt}from"../utilities/resources.js";import{classNames as w}from"../utilities/theme.js";import{ControlledDialogProvider as Ot,useControlledDialog as se,DialogHeader as Mt,DialogTitle as zt,DialogBody as Rt,DialogFooter as jt}from"./dialog.js";import{IcRefresh as Lt,IcMenu as _t,IcLayoutGrid as $t,IcColumns as Et,IcGrip as qt,IcFirst as Vt,IcLeft as kt,IcRight as Ht,IcLast as Bt,IcMoreVertical as Kt,IcInfo as Qt,IcSortAsc as Gt,IcSortDesc as Ut,IcSortNone as Zt,IcCheck as re,IcMinus as Xt,IcAccount as Yt,IcLicense as Jt,IcDate as Wt,IcFile as er,IcFilter as le,IcClose as Me}from"./icons.js";import{MultipleIdSearchInput as tr}from"./id-search.js";import{useIsMobile as K}from"../utilities/use-mobile.js";import{Loader as ze}from"./loader.js";import{SearchField as rr}from"./searchfield.js";import{Table as nr,TableHeader as ar,TableRow as we,TableHead as ir,TableBody as or,TableCell as sr}from"./table.js";import{CountryName as lr}from"../utilities/countries.js";import{Duration as cr}from"../utilities/duration.js";import{formatDays as ur,formatFilesize as dr,formatNumber as mr}from"../utilities/numbers.js";import{pluralizeTimes as pr}from"../utilities/string.js";import{Checkbox as Ne}from"./checkbox.js";import{TooltipTrigger as gr,Tooltip as fr}from"./tooltip.js";import{getSubscriptionStartTriggerLabel as br,ALL_LICENSE_TYPES as hr}from"./select-options.js";import{useCtxClient as yr}from"../utilities/ctx-client.js";import{ProgressBar as vr}from"./progress-bar.js";import{TagGroup as Sr,Tag as xr}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/empty-option.js";function wr(e){return e?e.desc?`-${e.id}`:`+${e.id}`:"-createdAt"}const Re=Oe(),Nr=[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})],I="TableActions";function Cr(e){return e.length===0?[]:[Re.accessor(I,{header:"Actions",id:I,enableHiding:!1,cell:({row:n})=>t(Rr,{label:t(Kt,{className:"text-icon-primary"}),data:n.original,items:e}),enableSorting:!1})]}function Hn(){return Oe()}function Bn({path:e,resourceName:n,pathParameters:r,queryParameters:o,columns:l,filterConfig:i,columnsToHideByDefault:a={},allowSelection:d=!1,allowToolbar:c=!0,initialFilters:s=[],previewFilters:p,tableActions:b,Card:v,onRowNavigate:y,disableTableView:S,hideViewToggle:C,include:A}){const[R,E]=D({pagination:{pageIndex:0,pageSize:20},sorting:[]}),{sorting:g,pagination:h}=R,[q,qe]=D(""),[ue,de]=D({}),[Q,Ve]=D(s),G=W(()=>Q.filter(u=>u.active!==!1).map(u=>{if(u.type==="derived-select"){const F=i[u.property];return F?.type==="derived-select"?F.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,i]),V=A?.length?A.join(","):void 0,k={...o,...G,limit:h.pageSize,sort:wr(g[0]),search:q,...V?{include:V}:{}},ke=yr(),He=["get",e,{...k,page:h.pageIndex+1},"table"],Be=["get",e,k,"card"],U=`${e}_ctx`,[me,pe]=ee(`${U}_column_order_preference`,[]),[ge,Ke]=ee(`${U}_column_visibility_preference`,{id:!1,...a}),[Qe,Ge]=ee(`${U}_view_mode_preference`,S?"card":"table"),Ue=K(),T=S||Ue&&v?"card":Qe,Z=u=>{E(f=>({...f,...u}))};async function fe(u){const f=await ke.GET(e,{params:{query:{...o,page:u,limit:h.pageSize,sort:k.sort,search:k.search,...V?{include:V}:{},...G},path:r}});return{data:f.data??[],total:Number.parseInt(f.response.headers.get("Pagination-Count")||"0"),nextPage:u+1}}const j=ft({queryKey:He,enabled:T==="table",queryFn:()=>fe(h.pageIndex+1),placeholderData:u=>u}),P=bt({queryKey:Be,enabled:T==="card",initialPageParam:1,queryFn:({pageParam:u})=>fe(u),getNextPageParam:(u,f)=>f.flatMap(H=>H.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]),ye=T==="table"?j:{...P,data:{data:be,total:he},isLoading:P.isLoading,isFetching:P.isFetching,isError:P.isError,error:P.error,refetch:P.refetch},Ze=b.filter(ce),Xe=[...d?Nr:[],...l,...Cr(Ze??[])];function Ye(u){return typeof u=="function"}function L(u,f){return Ye(u)?u(f):u}const ve=ht({data:be,columns:Xe,getCoreRowModel:yt(),rowCount:he,manualPagination:!0,onPaginationChange:u=>{Z({pagination:L(u,h)})},manualSorting:!0,onSortingChange:u=>{de({}),Z({sorting:[...L(u,g)]})},manualFiltering:!0,onColumnVisibilityChange:u=>{Ke(L(u,ge))},onRowSelectionChange:u=>{de(L(u,ue))},onColumnOrderChange:u=>{pe(L(u,me))},state:{sorting:g,columnVisibility:ge,pagination:h,rowSelection:ue,columnOrder:me},meta:{refetch:ye.refetch}});return ie(()=>{const u=ve.getAllFlatColumns().map(F=>F.id),f=u.filter(F=>F!=="checkbox"&&F!==I);pe(F=>{const H=F.filter(X=>f.includes(X)),Je=f.filter(X=>!F.includes(X)),We=H.length>0?[...H,...Je]:f;return[...u.includes("checkbox")?["checkbox"]:[],...We,...u.includes(I)?[I]:[]]})},[]),{tableState:R,updateTableState:Z,query:ye,setSearchQuery:qe,searchQuery:q,tanTable:ve,mergedFilters:G,filters:Q,setFilters:Ve,filterConfig:i,tableActions:b,pathParameters:r,queryParameters:o,viewMode:T,setViewMode:Ge,Card:v,allowSelection:d,allowToolbar:c,previewFilters:p,infiniteQuery:P,disableTableView:S,hideViewToggle:C,onRowNavigate:y,resourceName:n}}const je=et(null);function N(){const e=tt(je);if(!e)throw Error("DataTable should be used within DataTableProvider.");return e}function Kn({children:e,...n}){return t(je.Provider,{value:n,children:e})}function Pr(){const{query:e,resourceName:n,allowToolbar:r}=N(),o=$();if(e.isFetching)return null;if(e.isError)return m("span",{className:"flex gap-3 items-center",children:[t(Qt,{className:"text-icon-primary"}),t("span",{children:e.error?.message})]});if(e.data?.data?.length===0){const l=n&&pr(o(n),2).toLowerCase();return m("div",{className:"text-center flex flex-col gap-2",children:[t("p",{className:"font-semibold text-text-primary",children:l?`No ${l} found.`:"No results found."}),r&&t("p",{className:"text-text-secondary",children:"Adjust your filter or search request."})]})}return t(M,{children:"Unknown error. Please contact customer support."})}function Fr({cardGridClassName:e}){const{query:n,tanTable:r,viewMode:o,tableActions:l,Card:i}=N(),a=l.filter(ce),d=o==="card"&&!!i;return n.isLoading?t("div",{className:"body-sm flex items-center justify-center min-h-32",children:t(ze,{})}):r.getRowModel().rows.length===0?t("div",{className:"body-sm flex items-center justify-center min-h-32 text-muted",children:t(Pr,{})}):d?t(Ir,{Card:i,actions:a,className:e}):t(zr,{className:"w-full"})}function Qn({className:e,cardGridClassName:n,...r}){const{viewMode:o,Card:l,allowToolbar:i}=N(),a=o==="card"&&!!l;return t(M,{children:m(Ot,{children:[i&&t(Or,{}),m("section",{...r,className:w("z-20 flex flex-col",a?"":"border rounded-lg",e),children:[t("div",{className:"w-full overflow-auto relative rounded-t-lg [scrollbar-width:none]",tabIndex:0,children:t(Fr,{cardGridClassName:n})}),!a&&m("div",{className:"flex w-full justify-between border-t gap-icon py-2 px-icon bg-surface-secondary rounded-b-lg overflow-x-auto",children:[m("div",{className:"flex gap-icon",children:[t(Ar,{}),t(Dr,{})]}),t(Tr,{})]})]})]})})}function Ir({Card:e,actions:n,className:r,...o}){const{tanTable:l,allowSelection:i}=N(),{infiniteQuery:a}=N(),d=Te(null);return ie(()=>{const c=d.current;if(!c)return;const s=new IntersectionObserver(p=>{p[0].isIntersecting&&a.hasNextPage&&!a.isFetchingNextPage&&a.fetchNextPage()},{threshold:.1});return s.observe(c),()=>s.disconnect()},[a.hasNextPage,a.isFetchingNextPage]),m("div",{...o,className:w(r,"grid grid-cols-1 lg:grid-cols-2 gap-icon pb-input"),children:[l.getRowModel().rows.map((c,s)=>{const p={isSelected:c.getIsSelected(),onToggle:()=>c.toggleSelected(),allowSelection:i};return t(rt,{children:e(c.original,n,p,s)},c.id)}),t("div",{ref:d,className:"col-span-full h-4 flex items-center justify-center",children:a.isFetchingNextPage&&t(ze,{})})]})}function Ar(){if(oe()==="customer-portal")return null;const{tanTable:n}=N(),[r,o]=D(null),l=$(),i=nt(Se(at),Se(it,{coordinateGetter:ct}));return t(ot,{sensors:i,collisionDetection:st,onDragStart:d=>{const{active:c}=d;o(c.id.toString())},onDragEnd:d=>{const{active:c,over:s}=d;if(s&&c.id!==s.id){const p=n.getState().columnOrder,b=p.indexOf(c.id.toString()),v=p.indexOf(s.id.toString());n.setColumnOrder([...mt(p,b,v)])}o(null)},children:m(ut,{items:n.getState().columnOrder,strategy:dt,children:[m(_,{label:m(M,{children:[t(Et,{className:"inline align-bottom me-1 text-icon-primary"}),"Columns"]}),selectionMode:"multiple",size:"sm",items:n.getAllFlatColumns(),selectedKeys:n.getVisibleFlatColumns().map(d=>d.id),children:[t(O,{onAction:()=>n.toggleAllColumnsVisible(),className:"italic",children:"(select all)"}),n.getState().columnOrder.map(d=>{const c=n.getAllFlatColumns().find(s=>s.id===d);return!c||c.id==="checkbox"||c.id===I?null:t(a,{column:c},c.id)})]}),t(lt,{children:r?t("div",{className:"opacity-70 border-2 border-primary",children:l(r)}):null})]})});function a({column:d}){const{attributes:c,listeners:s,setNodeRef:p,transform:b,transition:v}=pt({id:d.id}),y={transform:gt.Transform.toString(b),transition:v,zIndex:"999"};return m(O,{ref:p,style:y,...c,id:d.id,onAction:()=>d.toggleVisibility(),isDisabled:!d.getCanHide(),className:"flex items-center",children:[t(qt,{...s,className:"size-icon cursor-grab text-icon-primary"}),ae(d),d.getIsSorted()&&t(Le,{className:"size-icon",direction:d.getIsSorted()})]})}}function Tr(){const{tanTable:e}=N(),n=e.getRowCount();return m("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,n)} of ${n?.toLocaleString()}`}),(e.getCanNextPage()||e.getCanPreviousPage())&&m(M,{children:[t(x,{"aria-label":"First page",onPress:()=>e.firstPage(),isDisabled:!e.getCanPreviousPage(),variant:"neutral",size:"icon-sm",children:t(Vt,{})}),t(x,{"aria-label":"Previous page",onPress:()=>e.previousPage(),isDisabled:!e.getCanPreviousPage(),variant:"neutral",size:"icon-sm",children:t(kt,{})}),t(x,{"aria-label":"Next page",onPress:()=>e.nextPage(),isDisabled:!e.getCanNextPage(),variant:"neutral",size:"icon-sm",children:t(Ht,{})}),t(x,{"aria-label":"Last page",onClick:()=>e.lastPage(),isDisabled:!e.getCanNextPage(),variant:"neutral",size:"icon-sm",children:t(Bt,{})})]})]})}function Dr(){if(oe()==="customer-portal")return null;const{tanTable:n}=N(),r=[10,20,30,40,50];return t(_,{label:n.getState().pagination.pageSize.toString(),selectionMode:"single",size:"sm",selectedKeys:[n.getState().pagination.pageSize.toString()],items:r.map(o=>({id:o.toString(),value:o})),children:o=>t(O,{onAction:()=>n.setPageSize(o.value),children:o.value})})}function Or(){const{query:e,tanTable:n,searchQuery:r,setSearchQuery:o,tableActions:l,viewMode:i,setViewMode:a,Card:d,previewFilters:c,disableTableView:s,hideViewToggle:p}=N(),b=n.getSelectedRowModel().rows.length>0,v=K(),y=l.filter(S=>S.resourceType!=="single").filter(S=>S.resourceType==="multiple"===b);return m("section",{className:"flex justify-between my-0 mb-icon gap-icon overflow-x-auto py-1",children:[m("div",{className:w("flex gap-icon max-md:min-w-0 max-md:flex-1"),children:[t(x,{"aria-label":"Refresh",isPending:e.isFetching,onClick:()=>e.refetch(),variant:"neutral",size:"icon",className:w("max-md:shrink-0"),children:t(Lt,{})}),t(rr,{value:r,onChange:o,className:w("max-md:min-w-0 max-md:flex-1")}),t(Vr,{previewFilters:c,className:w("max-md:shrink-0")})]}),!v&&m("div",{className:"flex gap-icon",children:[t(Ie,{items:y,isFetching:e.isFetching}),d&&!s&&!p&&m("div",{className:"flex gap-1 bg-surface-primary 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(_t,{})}),t(x,{variant:i==="card"?"primary":"neutral",size:"icon",onPress:()=>a("card"),"aria-label":"Card view",className:"border-none",children:t($t,{})})]})]}),v&&y.length>0&&t("div",{className:"fixed inset-x-0 bottom-0 z-30 flex gap-icon border-t bg-surface-primary p-icon",children:t(Ie,{items:y,isFetching:e.isFetching,buttonClassName:"flex-1 justify-center"})})]})}function Le({direction:e,...n}){return e==="asc"?t(Gt,{className:"size-3.5",...n}):e==="desc"?t(Ut,{className:"size-3.5",...n}):t(Zt,{className:"size-3.5",...n})}function ae(e){const n=$(),r=e.columnDef.header;return typeof r=="string"?r:n(e.id)}function Mr(e){const n=e.column.columnDef.meta?.displayType,r=e.getValue();if(r==null)return null;switch(n){case"date":return t("span",{className:"tabular-nums",children:B(r)});case"number":return t("span",{className:"block text-right tabular-nums",children:mr(r)});case"boolean":return t(xe,{variant:r?"success":"destructive",className:"capitalize",children:String(r)});case"badge":return t(xe,{children:String(r)});case"tags":let o=Array.isArray(r)?r:[String(r)];return t(Sr,{items:o.map(a=>({id:a,name:a})),className:"!flex-nowrap",children:a=>t(xr,{children:a.name})});case"progressBar":const[l,i]=r;return t(vr,{meterClassName:"w-16",label:`${l}/${i}`,minValue:0,maxValue:i,value:l});case"country":return t(lr,{value:r});case"enum":return t("span",{className:"uppercase w-full",children:String(r)});case"fileSize":return dr(r);case"days":return ur(r);case"os":return Dt[r]??r;case"licenseType":return hr[r]??r;case"subscriptionInterval":return cr.formatISODuration(r);case"subscriptionStartTrigger":return br(r);default:return String(r)}}function Ce({header:e}){const n=e.column.columnDef.header;return typeof n=="string"||!n?ae(e.column):typeof n=="function"?typeof n(e.getContext())=="string"?ae(e.column):ne(n,e.getContext()):ne(n,e.getContext())}function zr({className:e}){const{tanTable:n,onRowNavigate:r}=N(),o=(l,i,a="z-50")=>w("text-left body-sm font-medium whitespace-nowrap",l&&`sticky right-0 ${a} text-center justify-center`,i);return m(nr,{className:w("table-auto border-0",e),children:[t(ar,{className:"sticky top-0 z-10 rounded-lg border-stroke-secondary!",children:n.getHeaderGroups().map(l=>t(we,{className:"border-stroke-secondary!",children:l.headers.map(i=>m(ir,{scope:"col",colSpan:i.colSpan,className:o(i.id===I,"bg-surface-secondary"),children:[!i.column.getCanSort()&&!i.isPlaceholder&&t("div",{className:w("w-full flex items-center gap-1 text-xs uppercase font-semibold text-text-secondary",i.id===I?"justify-center":"justify-start"),children:t(Ce,{header:i})}),i.column.getCanSort()&&m(x,{variant:"ghost",size:"none",className:w("w-full p-1 rounded-md uppercase text-text-secondary text-xs font-semibold",i.id===I?"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(Le,{direction:i.column.getIsSorted()})]})]},i.id))},l.id))}),t(or,{children:n.getRowModel().rows.map(l=>t(we,{className:w("group border-stroke-secondary! bg-surface-primary hover:not-data-[selected=true]:bg-surface-secondary data-[selected=true]:bg-surface-tertiary",r&&"cursor-pointer focus-visible:outline focus-visible:outline-ring"),"data-selected":l.getIsSelected(),...r&&{role:"link",tabIndex:0,onClick:i=>{i.target.closest('a, button, input, select, textarea, [role="button"]')||r(l.original)},onKeyDown:i=>{i.key==="Enter"&&r(l.original)}},children:l.getVisibleCells().map(i=>{const a=i.column.id===I,d=i.column.columnDef.meta?.displayType?Mr(i):ne(i.column.columnDef.cell,i.getContext());return t(sr,{className:w(o(a,a?"bg-surface-primary group-hover:not-group-data-[selected=true]:bg-surface-secondary group-data-[selected=true]:bg-surface-tertiary":"","z-1"),a&&"flex justify-center items-center"),children:d},i.id)})},l.id))})]})}function Pe(e){return e.resourceType==="none"}function ce(e){return e.resourceType==="single"}function Fe(e){return e.resourceType==="multiple"}function Ie({items:e,isFetching:n,buttonClassName:r}){const{openDialog:o,closeDialog:l}=se(),{tanTable:i,mergedFilters:a}=N();function d(s,p){return s.isDisabled?Pe(s)?s.isDisabled():Fe(s)?s.isDisabled(p):!1:!1}const c=i.getSelectedRowModel().rows.map(s=>s.original);return t(M,{children:e.map((s,p)=>{const b=s.icon,v=d(s,c)||n;return m(x,{"aria-label":s.label,type:"button",isDisabled:v,className:w("animate-in fade-in slide-in-from-right-15 duration-300 transition-transform",r),onPress:y=>{const S={event:y,openDialog:o,closeDialog:l,activeFilters:a};Pe(s)?s.onPress(S):Fe(s)&&s.onPress({...S,data:c})},variant:s.variant??"neutral",children:[b&&t(b,{"aria-hidden":!0}),t("span",{children:s.label})]},`${s.label}-${p}`)})})}function Rr({label:e,items:n,data:r}){const{openDialog:o,closeDialog:l}=se(),{mergedFilters:i}=N();return n.length<5?t("div",{className:"flex items-center gap-2",children:n.map((a,d)=>{const c=a.icon,s=typeof a.label=="function"?a.label(r):a.label;return m(gr,{children:[t(x,{"aria-label":typeof s=="string"?s:void 0,isDisabled:a.isDisabled?.(r)??!1,variant:"ghost",size:"icon",onPress:()=>{const p={openDialog:o,closeDialog:l};a.onPress({...p,data:r,activeFilters:i})},children:t(c,{className:"size-icon"})}),t(fr,{children:s})]},`${d}-${typeof s=="string"?s:""}`)})}):t(_,{withChevron:!1,"aria-label":"Actions",label:e,size:"icon",children:n.map((a,d)=>{const c=a.icon,s=typeof a.label=="function"?a.label(r):a.label;return m(O,{id:typeof s=="string"?s:void 0,isDisabled:a.isDisabled?.(r)??!1,onAction:()=>{const p={openDialog:o,closeDialog:l};ce(a)&&a.onPress({...p,data:r,activeFilters:i})},children:[t(c,{className:"size-icon"}),s]},`${d}-${typeof s=="string"?s:""}`)})})}const Gn=["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"},jr={eq:"=",ne:"≠",cn:"contains",nc:"!contains",sw:"starts with",ew:"ends with",in:"in",nin:"not in",gt:">",gte:"≥",lt:"<",lte:"≤",between:"↔"};function z(e,n){const r=n.type,o=`${e}-${Date.now()}`,l=r==="bool"||r==="derived-select"?!1:n.needOperator??!0,i=l?_e[r][0]:"eq",a={id:o,property:e,operator:i,needOperator:l};switch(r){case"bool":return{...a,type:r,value:!0};case"derived-select":return{...a,type:r,value:n.options[0]?.id??""};case"string":return{...a,type:r,value:""};case"date":return{...a,type:r,value:i==="between"?[new Date().toISOString(),new Date().toISOString()]:new Date().toISOString()};case"id":return{...a,type:r,value:""};case"id-search":return{...a,type:r,value:[]};case"enum":return{...a,type:r,value:new Set};case"number":return{...a,type:r,value:0}}}const _e={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 Lr(e,n){let r=n.value!==void 0?n.value:e.value;const o=n.operator??e.operator;if(e.type==="date"&&n.operator!==void 0)if(o==="between"&&!Array.isArray(r)){const l=typeof r=="string"?r:new Date().toISOString();r=[l,l]}else o!=="between"&&Array.isArray(r)&&(r=r[0]??new Date().toISOString());return r}function $e(){const{setFilters:e,filterConfig:n}=N();return{updateFilter:(i,a)=>{e(d=>{const c=d.find(p=>p.property===i)??z(i,n[i]),s={...c,...a,value:Lr(c,a),active:!0};return d.some(p=>p.id===c.id)?d.map(p=>p.id===c.id?s:p):[...d,s]})},removeFilter:i=>{e(a=>{const d=a.find(c=>c.id===i);return d?d.isPreview?a.map(c=>c.id===i?{...z(c.property,n[c.property]),active:!1,isPreview:!0}:c):a.filter(c=>c.id!==i):a})},clearAllFilters:()=>{e(i=>i.filter(a=>a.isPreview).map(a=>({...z(a.property,n[a.property]),active:!1,isPreview:!0})))}}}function _r(e,n){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 r=n[e.property];if(!r||r.type!=="derived-select")return e.value??"";const o=r.options.find(l=>l.id===e.value);return typeof o?.label=="string"?o.label:e.value??""}case"date":if(Array.isArray(e.value)){const[r,o]=e.value;return`${B(r,{dateStyle:"short"})??""} – ${B(o,{dateStyle:"short"})??""}`}return e.value?B(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 $r({filter:e,filterConfig:n,onChange:r}){if(e.type==="string"||e.type==="id")return t(Tt,{autoFocus:!0,value:e.value??"",onChange:r,"aria-label":"Filter value"});if(e.type==="number")return t(Pt,{autoFocus:!0,value:e.value,onChange:r,"aria-label":"Filter value"});if(e.type==="date"){if(e.operator==="between"){const[l,i]=Array.isArray(e.value)?e.value:[new Date().toISOString(),new Date().toISOString()],a=Y(l,J()),d=Y(i,J());return m("div",{className:"flex flex-col gap-icon",children:[t(te,{autoFocus:!0,hideTimeZone:!0,label:"From",value:a,onChange:c=>r([c?c.toAbsoluteString():l,i])}),t(te,{hideTimeZone:!0,label:"To",value:d,onChange:c=>r([l,c?c.toAbsoluteString():i])})]})}const o=e.value&&!Array.isArray(e.value)?Y(e.value,J()):null;return t(te,{autoFocus:!0,hideTimeZone:!0,value:o,onChange:l=>r(l?l.toAbsoluteString():new Date().toISOString()),"aria-label":"Filter date"})}if(e.type==="enum"){const o=n[e.property];return o.type!=="enum"?null:t(Ct,{autoFocus:!0,items:o.options,value:e.value??new Set,onChange:r,"aria-label":"Filter value"})}if(e.type==="id-search"){const o=n[e.property];if(o.type!=="id-search")return null;const l=o.defaultParams;return t(tr,{autoFocus:!0,path:o.path,accessor:o.accessor,defaultParams:l,value:e.value??[],onChange:r,"aria-label":"Filter value"})}return null}function Ee({filter:e,filterConfig:n,resourceFormatter:r,onRemove:o,onUpdate:l,isOpen:i,onOpenChange:a}){const d=e.needOperator===!1?["eq"]:_e[e.type],c=_r(e,n),s=oe(),p=K(),b=e.type==="bool"||e.type==="derived-select",v=p?m("div",{className:"flex flex-col gap-1",children:[t("span",{className:"body-sm text-muted",children:r(e.property)}),t(At,{type:"button",className:"w-full","aria-label":r(e.property),children:c})]}):m(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(le,{}),b?t("span",{className:"font-medium",children:c}):m(M,{children:[t("span",{className:"font-medium",children:r(e.property)}),s!=="customer-portal"&&t("span",{children:jr[e.operator]}),s!=="customer-portal"&&c&&t("span",{children:c})]}),e.active!==!1&&t(De,{onPress:()=>o(),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-surface-primary"})})})]});if(b){let y,S;if(e.type==="bool")y=[{id:"true",label:"True"},{id:"false",label:"False"}],S=e.value?"true":"false";else{const C=n[e.property];y=C?.type==="derived-select"?C.options:[],S=e.value??""}return m(St,{isOpen:i,onOpenChange:a,children:[t("div",{className:"relative",children:v}),m(xt,{className:"min-w-48",children:[t(wt,{inset:!0,separator:!1,children:r(e.property)}),t(Nt,{selectionMode:"single",disallowEmptySelection:!0,selectedKeys:new Set([S]),onSelectionChange:C=>{if(C==="all")return;const A=C.values().next().value;A!=null&&l({value:e.type==="bool"?String(A)==="true":String(A)})},"aria-label":"Filter value",children:y.map(C=>t(O,{id:C.id,children:C.label},C.id))})]})]})}return m(Ft,{isOpen:i,onOpenChange:a,children:[t("div",{className:"relative",children:v}),t(It,{className:"p-icon min-w-48",children:m("div",{className:"flex flex-col gap-icon",children:[d.length>1&&t(_,{label:Ae[e.operator],variant:"neutral","aria-label":"Change operator",children:d.map(y=>t(O,{onAction:()=>l({operator:y}),children:Ae[y]},y))}),t($r,{filter:e,filterConfig:n,onChange:y=>l({value:y})}),t(x,{type:"button",variant:"neutral",className:"self-end",onPress:o,"aria-label":`Remove ${r(e.property)} filter`,children:"Clear"})]})})]})}function Er({onApply:e}){const{filters:n,filterConfig:r}=N(),o=$(),{updateFilter:l,removeFilter:i,clearAllFilters:a}=$e(),[d,c]=D(null);return m(M,{children:[t(Mt,{children:t(zt,{children:"Filter"})}),t(Rt,{className:"flex flex-col gap-input",children:Object.keys(r).map(s=>{const p=n.find(b=>b.property===s)??z(s,r[s]);return t(Ee,{filter:p,filterConfig:r,resourceFormatter:o,onRemove:()=>i(p.id),onUpdate:b=>l(s,b),isOpen:d===s,onOpenChange:b=>c(b?s:null)},s)})}),m(jt,{children:[t(x,{variant:"neutral",onPress:()=>{a(),c(null)},children:"Clear All"}),t(x,{variant:"primary",onPress:e,children:"Apply"})]})]})}function qr({className:e,hasClearableFilters:n,isDisabled:r,onClearAll:o,...l}){const{openDialog:i,closeDialog:a}=se();return t("section",{...l,className:w("flex items-center",e),children:m(x,{variant:n?"primary_neutral":"neutral",isDisabled:r,"aria-label":"Filter",onPress:()=>i(t(Er,{onApply:a})),className:"min-w-0 flex-1",children:[t(le,{}),"Filters",n&&t(De,{onPress:o,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-surface-primary"})})})]})})}function Vr({className:e,previewFilters:n,...r}){const{filters:o,query:l,setFilters:i,filterConfig:a}=N(),d=K(),c=$(),s=Object.keys(a).filter(g=>!o.some(h=>h.property===g)).sort(),[p,b]=D(null),v=Te(!1);ie(()=>{if(!v.current&&o.length===0){const g=[];n&&n.length>0&&g.push(...n.filter(h=>a[h]).map(h=>({...z(h,a[h]),active:!1,isPreview:!0}))),g.length>0&&i(g)}v.current=!0},[]);const{updateFilter:y,removeFilter:S,clearAllFilters:C}=$e(),A=g=>{const h=z(g,a[g]);i([...o,h]),b(h.id)},R=o.some(g=>!g.isPreview||g.active!==!1),E=()=>{C(),b(null)};return d?t(qr,{...r,className:e,hasClearableFilters:R,isDisabled:l.isPending,onClearAll:E}):m("section",{...r,className:w("flex flex-wrap gap-icon items-center",e),children:[o.filter(g=>g.property in a).map(g=>t(Ee,{filter:g,filterConfig:a,resourceFormatter:c,onRemove:()=>S(g.id),onUpdate:h=>y(g.property,h),isOpen:p===g.id,onOpenChange:h=>b(h?g.id:null)},g.id)),s.length>0&&t(_,{label:t(le,{}),isDisabled:l.isPending,variant:"neutral","aria-label":"Add filter",children:s.map(g=>{const h=a[g].type,q=kr[h];return m(O,{className:"!justify-between",onAction:()=>A(g),children:[c(g),t(q,{})]},g)})}),R&&t(x,{variant:"ghost",onPress:E,"aria-label":"Clear all filters",className:"animate-in fade-in",children:"Clear All"})]})}const kr={"id-search":er,bool:re,"derived-select":re,date:Wt,enum:Jt,id:Yt,number:Xt,string:re};export{Ae as C,Vr as D,Qn as DataTable,je as DataTableContext,Kn as DataTableProvider,Gn as F,Hn as getColumnHelper,N as useDataTable,Bn as useDataTableState};
|
|
2
2
|
//# sourceMappingURL=data-table.js.map
|