@jerry-fd/ui 0.5.1 → 0.5.2

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.
Files changed (2) hide show
  1. package/data-table.js +2 -2
  2. package/package.json +1 -1
package/data-table.js CHANGED
@@ -1,2 +1,2 @@
1
- import {j,k,l as l$1,e,b as b$1,c as c$1,n as n$1,f as f$1,g as g$1,h as h$1,p as p$1,d}from'./chunk-CR56HN5M.js';import {h,g,f}from'./chunk-YZCMMM4D.js';export{b as DATE_FORMATS,d as formatDateRange,c as getDateDisplayFormat,e as getPickerInputFormat}from'./chunk-YZCMMM4D.js';import {P as P$1,l,m,q,t,c,s,u,r,o,n,p,O as O$1,i,F,G,H,w,x,z,y,A,C}from'./chunk-33W2J6TQ.js';export{P as useTransition}from'./chunk-33W2J6TQ.js';import {b}from'./chunk-M7AD2PUT.js';import {Table,Pagination,Checkbox}from'antd';import {AnimatePresence,m as m$1}from'motion/react';import P,{useState,useCallback}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {create,useStore,createStore}from'zustand';import {useShallow}from'zustand/react/shallow';import {persist}from'zustand/middleware';import {immer}from'zustand/middleware/immer';import {Check,Upload,Download,Settings2,RefreshCw,FolderUp}from'lucide-react';import {Progress,Portal}from'radix-ui';function me(e){P.useEffect(e,[]);}var ca={small:"min-h-22",medium:"min-h-26",middle:"min-h-30",large:"min-h-38"};function ut({count:e,size:n="small",classNames:a,columns:t,scroll:o}){let r=P.useCallback(()=>da(t,ca[n]),[t,n]);return jsx(Table,{rowKey:"id",size:n,rowHoverable:false,classNames:a,dataSource:Array.from({length:e},(s,c)=>({id:c})),pagination:false,scroll:o,children:t.map((s,c)=>jsx(Table.Column,{dataIndex:s.dataIndex,width:s.width,title:jsx(n$1,{className:"h-22 w-full animate-none bg-bg-antd"}),render:r,onCell:()=>c===0?{colSpan:t.length}:{colSpan:0}},s.key||s.dataIndex))})}var pt=16;function da(e,n){let a=e.length,o=`calc((100% - ${pt*(a-1)}px) / ${a})`,r=e.some(s=>s.skeleton==="avatar"||s.skeleton==="double-line");return jsx("div",{className:c("flex items-center",n),style:{gap:`${pt}px`},children:e.map((s,c)=>{let l=s?.key??c;return jsx("div",{style:{width:o},children:pa(s.skeleton,r)},l)})})}function pa(e,n){switch(e){case "avatar":return jsx(ma,{});case "double-line":return jsx(ba,{});case "group":return jsx(fa,{needAlignment:n});default:return jsx(ua,{needAlignment:n})}}function ua({needAlignment:e}){return jsxs("div",{className:"grid h-full gap-4",children:[e&&jsx("div",{className:"h-12 w-1"}),jsx(n$1,{className:"h-10"})]})}function ma(){return jsxs("div",{className:"flex w-full items-center gap-6",children:[jsx(n$1,{className:"shrink-0 rounded-full",style:{width:"var(--avatar-size, 32px)",height:"var(--avatar-size, 32px)"}}),jsxs("div",{className:"grid flex-1 gap-4",children:[jsx(n$1,{className:"h-12 w-[60%]"}),jsx(n$1,{className:"h-10"})]})]})}function ba(){return jsxs("div",{className:"grid h-full w-full gap-4 py-4",children:[jsx(n$1,{className:"h-12 w-[60%]"}),jsx(n$1,{className:"h-10"})]})}function fa({needAlignment:e}){return jsxs("div",{className:"grid h-full gap-4",children:[e&&jsx("div",{className:"h-12 w-1"}),jsxs("div",{className:"flex w-full items-center gap-4",children:[jsx(n$1,{className:"h-10 w-[20%]"}),jsx(n$1,{className:"h-10 w-[20%]"}),jsx(n$1,{className:"h-10 w-[20%]"}),jsx(n$1,{className:"h-10 w-[20%]"}),jsx(n$1,{className:"h-10 w-[20%]"})]})]})}var O={pagination:{current:1,pageSize:10},filters:[],sorter:{},extra:{action:"paginate",currentDataSource:[]},tableSize:"small",columnVisibility:{},exporting:false,loading:false,syncing:false,disabled:false},Q=(e,n)=>(e.tabs[n]||(e.tabs[n]={...O}),e.tabs[n]),Ca="APP_UI_TABLE_CONFIG",Da=(e,n)=>({activeTabId:n,tabs:{},stateVersion:0,changeReason:"mount",setActiveTab:a=>e(t=>{t.activeTabId=a,Q(t,a),t.changeReason="tab_switch",t.stateVersion++;}),syncTabExternal:(a,t)=>e(o=>{let r=o.tabs[a];r&&(r.loading=t.loading,r.syncing=t.syncing,r.exporting=t.exporting,r.disabled=t.disabled);}),initTab:(a,t)=>e(o=>{let r=o.tabs[a];r?(t.pagination&&(r.pagination=t.pagination),t.filters&&(r.filters=t.filters),t.sorter&&(r.sorter=t.sorter),r.loading=t.loading,r.syncing=t.syncing,r.exporting=t.exporting,r.disabled=t.disabled):o.tabs[a]={...O,...t};}),setFilters:(a,t)=>e(o=>{let r=Q(o,a);r.filters=t,r.pagination.current=1,o.changeReason="filter",o.stateVersion++;}),setPagination:(a,t,o)=>e(r=>{let s=Q(r,a);s.pagination={current:t,pageSize:o},r.changeReason="paginate",r.stateVersion++;}),setTableChange:(a,t,o)=>e(r=>{let s=Q(r,a);s.sorter=t,s.extra=o,r.changeReason="sort",r.stateVersion++;}),setTableSize:a=>e(t=>{Q(t,t.activeTabId).tableSize=a;}),setColumnVisibility:(a,t)=>e(o=>{Q(o,o.activeTabId).columnVisibility[a]=t;}),setColumnVisibilityState:a=>e(t=>{let o=Q(t,t.activeTabId);o.columnVisibility=typeof a=="function"?a(o.columnVisibility):a;}),toggleColumnVisibility:a=>e(t=>{let o=Q(t,t.activeTabId);o.columnVisibility[a]=!o.columnVisibility[a];}),resetTabUIState:a=>e(t=>{let o=a??t.activeTabId,r=t.tabs[o];r&&(r.tableSize=O.tableSize,r.columnVisibility={});})}),mt=(e,n=Ca)=>createStore()(persist(immer(a=>Da(a,e)),{name:n,partialize:a=>({tableUIStatus:Object.fromEntries(Object.entries(a.tabs).map(([t,o])=>[t,{tableSize:o.tableSize,columnVisibility:o.columnVisibility}]))}),merge:(a,t)=>{let o=a,r={...t};if(!o?.tableUIStatus)return r;for(let[s,c]of Object.entries(o.tableUIStatus)){let l=r.tabs[s];l?(c.tableSize&&(l.tableSize=c.tableSize),c.columnVisibility&&(l.columnVisibility=c.columnVisibility)):r.tabs[s]={...O,tableSize:c.tableSize??O.tableSize,columnVisibility:c.columnVisibility??{}};}return r}}));var ft=P.createContext(null),Tt=["id","action","actions"],gt=P.createContext({alwaysShowingColumns:Tt});function yt({store:e,tabList:n,alwaysShowingColumns:a,children:t}){let o=P.useMemo(()=>({tabList:n,alwaysShowingColumns:a??Tt}),[n,a]);return jsx(gt.Provider,{value:o,children:jsx(ft.Provider,{value:e,children:t})})}function fe(){let e=P.useContext(ft);if(!e)throw new Error("useDataTableStoreApi must be used within DataTableProvider");return e}function J(e){let n=fe();return useStore(n,e)}function Ct(){let e=fe();return useStore(e,useShallow(n=>n.tabs[n.activeTabId]??O))}function Dt(){return J(e=>e.tabs[e.activeTabId]?.tableSize??O.tableSize)}function ht(){let e=fe();return useStore(e,useShallow(n=>n.tabs[n.activeTabId]?.columnVisibility??O.columnVisibility))}function St(){let e=fe();return useStore(e,useShallow(n=>{let a=n.tabs[n.activeTabId];return {loading:a?.loading??false,syncing:a?.syncing??false,exporting:a?.exporting??false,disabled:a?.disabled??false}}))}function re(){return P.useContext(gt)}function vt(e){let{tabList:n}=re(),a=J(o=>o.activeTabId),t=J(o=>o.setActiveTab);return !n||!n?.length||n.length===1?null:jsx(o,{...e,children:jsx(f$1,{className:c("w-full"),value:a,onValueChange:t,children:jsx(g$1,{variant:"line",size:"medium",className:"w-full px-12",children:n.map(o=>jsx(h$1,{value:o.value,className:"px-8 py-8",children:o.label},o.id))})})})}var Z=create((e,n)=>({activeTableId:"",tasks:{},updateTableId:a=>e(()=>({activeTableId:a})),addTask:a=>e(t=>{let o=t.activeTableId;return {tasks:{...t.tasks,[o]:[...t.tasks[o]??[],a]}}}),removeTask:a=>e(t=>{let o=t.activeTableId;return {tasks:{...t.tasks,[o]:(t.tasks[o]??[]).filter(r=>r.localTaskId!==a)}}}),updateTask:(a,t)=>e(o=>{let r=o.activeTableId;return {tasks:{...o.tasks,[r]:(o.tasks[r]??[]).map(s=>s.localTaskId===a?{...s,...t}:s)}}}),getTasks:()=>{let a=n();return a.tasks[a.activeTableId]??[]}})),ge=()=>Z(useShallow(e=>e.tasks[e.activeTableId]??[]));function It({className:e,...n}){let a=P$1(),[t,o]=P.useState(false),r=J(l=>l.setTableSize),s=Dt(),c$1=P.useMemo(()=>[{groupType:"radio",value:s,options:[{label:a("large"),value:"large"},{label:a("middle"),value:"middle"},{label:a("compact"),value:"small"}],onValueChange:r}],[r,a,s]);return jsx(p$1,{side:"bottom",align:"end",collisionPadding:6,items:c$1,className:"min-w-100",open:t,onOpenChange:o,children:jsxs(O$1,{mode:"stroke",variant:"neutral",size:"small",className:c("gap-0",e,t&&"active"),...n,children:[jsx(i,{content:a("density"),size:"small",children:jsx("div",{className:"absolute inset-0"})}),jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"size-16",viewBox:"0 0 1024 1024",children:jsx("path",{d:"M840 836H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm0-724H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM610.8 378c6 0 9.4-7 5.7-11.7L515.7 238.7a7.14 7.14 0 0 0-11.3 0L403.6 366.3a7.23 7.23 0 0 0 5.7 11.7H476v268h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V378h62.8z"})})]})})}function Et(e,n){return new Promise((a,t)=>{let r=Object.assign({},{method:"GET",responseType:"json"},n),{method:s,timeout:c,responseType:l,headers:p,body:i,validateResponse:f}=r,h;function g(){r.signal&&r.signal.removeEventListener("abort",h);}if(r.signal&&r.signal.aborted)return t(new D("Aborted"));let m=new XMLHttpRequest,b=null,u=null;m.open(s.toUpperCase(),e,true),m.timeout=c||0,m.withCredentials=r.withCredentials===true,m.onloadend=function(){if(!m)return;let x=m.status,N=m.getResponseHeader("Content-Type")??"",z=l&&l!=="text"&&l!=="json",k=z?m.response:m.responseText,G=m.getAllResponseHeaders().split(`\r
2
- `).reduce((y,I)=>{let V=I.indexOf(": ");return V!==-1&&(y[I.slice(0,V).toLowerCase()]=I.slice(V+2)),y},{});function L(y){if(b){b.cancel();let I=y instanceof Blob?y.size:y instanceof ArrayBuffer?y.byteLength:typeof y=="string"?y.length:0;r.onDownloadProgress?.({loaded:I,total:I,lengthComputable:true,percentage:100});}r.withResponseHeaders?a({data:y,status:x,headers:G}):a(y);}if(x>=200&&x<300)if(l==="json"){let y=k;try{let I=y!==""?JSON.parse(y):null;if(!(f?.(I)??!0))throw new D("invalid response");L(I);}catch(I){t(I);}}else f?.(k)??true?L(k):t(new D("invalid response"));else {let y=null;if(!z)if(N.includes("application/json"))try{y=k!==""?JSON.parse(k):null;}catch{}else y=k||null;t(new D("Xhr Request failed",x,y));}g(),m=null;},m.onabort=function(){m&&(b?.cancel(),u?.cancel(),t(new D(D.ECONNABORTED)),g(),m=null);},m.onerror=function(){b?.cancel(),u?.cancel(),t(new D("Network Error",D.ERR_NETWORK)),g(),m=null;},m.ontimeout=function(){b?.cancel(),u?.cancel(),t(new D("Timeout exceeded",D.ETIMEDOUT)),g(),m=null;},typeof p=="object"&&Object.keys(p).forEach(E=>{m?.setRequestHeader(E,p[E]);}),i==null&&m.setRequestHeader("Content-Type",""),l&&l!=="json"&&(m.responseType=l),r.onDownloadProgress&&(b=Rt(r.onDownloadProgress),m.addEventListener("progress",b)),r.onUploadProgress&&m.upload&&(u=Rt(r.onUploadProgress),m.upload.addEventListener("progress",u),m.upload.addEventListener("loadend",E=>{u?.cancel(),r.onUploadProgress?.({loaded:E.loaded,total:E.loaded,lengthComputable:true,percentage:100});})),r.signal&&(h=()=>{m&&(t(new D(D.REQUEST_CANCELED,D.REQUEST_CANCELED)),m.abort(),m=null);},r.signal.aborted?h():r.signal.addEventListener("abort",h)),m.send(i??null);})}function Rt(e){return d(a=>{e({loaded:a.loaded,total:a.lengthComputable?a.total:0,lengthComputable:a.lengthComputable,percentage:a.lengthComputable&&a.total>0?Math.round(a.loaded/a.total*100):null});},250)}var D=class extends Error{constructor(a,t,o){super(a);b(this,"message");b(this,"code");b(this,"data");this.name="RequestError",this.message=a,t&&(this.code=t),o!==void 0&&(this.data=o);}};b(D,"ETIMEDOUT","ETIMEDOUT"),b(D,"ERR_NETWORK","ERR_NETWORK"),b(D,"ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION_VALUE"),b(D,"ERR_BAD_OPTION","ERR_BAD_OPTION"),b(D,"ECONNABORTED","ECONNABORTED"),b(D,"ERR_FR_TOO_MANY_REDIRECTS","ERR_FR_TOO_MANY_REDIRECTS"),b(D,"ERR_DEPRECATED","ERR_DEPRECATED"),b(D,"ERR_BAD_RESPONSE","ERR_BAD_RESPONSE"),b(D,"ERR_BAD_REQUEST","ERR_BAD_REQUEST"),b(D,"ERR_CANCELED","ERR_CANCELED"),b(D,"REQUEST_CANCELED","REQUEST_CANCELED"),b(D,"ERR_NOT_SUPPORT","ERR_NOT_SUPPORT"),b(D,"ERR_INVALID_URL","ERR_INVALID_URL");var kt=(e=false)=>{let[n,a]=useState(e),t=useCallback(()=>{a(true);},[]),o=useCallback(()=>{a(false);},[]);return [n,t,o]};var wt=150,ye={ease:[.26,.08,.25,1],duration:.25},ka={initial:{opacity:0,scale:.95},visible:{opacity:1,scale:1,transition:{...ye,when:"beforeChildren"}},hidden:{opacity:0,scale:1.05,transition:{...ye,when:"afterChildren"}}},wa={initial:{y:10,opacity:0},visible:{y:0,opacity:1,transition:ye},hidden:{y:-10,opacity:0,transition:ye}};function Nt({containerRef:e,accept:n,acceptHint:a,onFileSelect:t}){let o=P.useRef(null),r=P.useRef(null),[s,c,l]=kt(false),p=P.useCallback(g=>{g.stopPropagation();let{target:m,relatedTarget:b}=g;m.matches(".data-drop-target, .data-drop-area")&&(!b||!b.matches(".data-drop-target, .data-drop-area"))&&(o.current=window.setTimeout(()=>{l();},wt));},[l]),i=P.useCallback(()=>{o.current&&window.clearTimeout(o.current);},[]),f=P.useCallback(()=>{o.current&&window.clearTimeout(o.current),o.current=window.setTimeout(()=>{l();},wt);},[l]),h=P.useEffectEvent(async g=>{let{dataTransfer:m}=g,b=[];m.files&&m.files.length>0&&(b=b.concat(Array.from(m.files))),b.length&&(r.current&&window.clearTimeout(r.current),r.current=window.setTimeout(()=>{t?.(b);},600));});return me(()=>{if(!e?.current)return;let g=e.current;return g.addEventListener("dragenter",c),()=>{g.removeEventListener("dragenter",c),o.current&&window.clearTimeout(o.current),r.current&&window.clearTimeout(r.current);}}),jsx(Portal.Root,{container:e?.current,asChild:true,children:jsx(AnimatePresence,{children:s&&jsx(m$1.div,{className:"data-drop-area absolute inset-0 bottom-8 z-10 flex items-center justify-center select-none",onDragLeave:p,onDragOver:i,onDrop:f,initial:"hidden",animate:"visible",exit:"hidden",variants:ka,children:jsx(Aa,{accept:n,acceptHint:a,onFileSelect:h})})})})}function Aa({accept:e,acceptHint:n,onFileSelect:a}){let t=P$1(),[o,r]=P.useState(false),s=P.useCallback(p=>{if(!e||!p.dataTransfer.items.length){r(false);return}let i=[...p.dataTransfer.items].every(f=>Na(f.type,e));r(!i);},[e]),c$1=P.useCallback(p=>{let{relatedTarget:i,currentTarget:f}=p;i&&f.contains(i)&&p.stopPropagation();},[]),l=P.useCallback(p=>{if(o){p.preventDefault();return}a(p);},[o,a]);return jsxs("div",{"data-dropzone":true,onDragEnter:s,onDrop:l,onDragLeave:c$1,className:"data-drop-target relative flex h-full w-full items-center justify-center rounded-[8px] bg-bg-weak p-16",children:[jsx("svg",{className:c("pointer-events-none absolute top-16 left-16 h-[calc(100%-32px)] w-[calc(100%-32px)] overflow-visible",o?"text-error-base":"text-primary-base"),children:jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",rx:"8",fill:"none",stroke:"currentColor",strokeDasharray:"11, 8",strokeDashoffset:"0",strokeLinecap:"round",strokeWidth:"2",children:jsx("animate",{attributeName:"stroke-dashoffset",from:"0",to:"-19",dur:"0.5s",repeatCount:"indefinite"})})}),jsxs(m$1.div,{className:c("pointer-events-none flex flex-col items-center gap-4",o?"text-error-base":"text-primary-base"),variants:wa,children:[jsxs("div",{className:"flex flex-col items-center",children:[jsx(FolderUp,{className:"size-48"}),jsx("strong",{className:"text-title-h6",children:t(o?"file_type_rejected":"drop_file_hint")})]}),jsx("span",{className:"text-text-soft",children:n?t("file_support_list",{formats:n}):t("file_support_all")})]})]})}function Na(e,n,a=""){if(!n||n==="*")return true;if(!e&&!a)return false;let t=n.split(",").map(s=>s.trim().toLowerCase()),o=(e||"").toLowerCase(),r=(a||"").toLowerCase();return t.some(s=>{if(s.startsWith("."))return r.endsWith(s);if(s.endsWith("/*")){let c=s.slice(0,-1);return o.startsWith(c)}return o===s})}function _t(e=""){return `${e}-${Date.now().toString(36)+Math.random().toString(36).slice(2)}`}function Lt(e){return e?e.filter(n=>n.filter!==void 0).map(n=>{let{filter:a,dataIndex:t,title:o}=n,r=Array.isArray(t)?t.join("."):t,s=a.displayName??(typeof o=="string"?o:r);return {...a,columnId:r,displayName:s}}):[]}function Ot(e){return e.key?String(e.key):Array.isArray(e.dataIndex)?e.dataIndex.join("."):String(e.dataIndex)}function _a(e){return typeof e=="string"&&e.length>0}function Bt(e){return [Array.isArray(e.dataIndex)?e.dataIndex.join(" "):typeof e.dataIndex=="string"?e.dataIndex:null,typeof e.title=="string"?e.title:null,e.key!==null?String(e.key):null].filter(_a)}function Mt(e,n=22){if(!e)return "";if(e.length<=n)return e;let a=Math.floor(n/2.5),t=e.lastIndexOf("."),o,r;if(t>0?(o=e.substring(0,t),r=e.substring(t)):(o=e,r=""),o.length<=a*2)return e;let s=o.substring(0,a),c=o.substring(o.length-a);return `${s}\u2026${c}${r}`}function Ft(e,n){return {type:"import",localTaskId:_t(n?`import-file-${n}`:"import-file"),status:"pending",progress:0,file:e}}function Vt({tooltip:e,btnProps:n,disabled:a,loading:t,containerRef:o,accept:r,acceptHint:s,requestConfig:c,onBeforeUpload:l}){let p=P$1(),i$1=P.useId(),f=Z(b=>b.addTask),h=Z(b=>b.updateTask),g=a||t,m=P.useCallback(async b=>{if(b=[b[0]],l&&typeof l=="function"){let u=await l(b);if(u===false)return;Array.isArray(u)&&(b=u);}b.forEach((u,E)=>{let x=new AbortController,N={...Ft(u,E),abortController:x};if(f(N),!c)throw Error("requestConfig is required.");let{url:z,method:k="POST",fieldName:G="file",body:L,onSuccess:y,onFailed:I,onUploadProgress:V,...W}=c,B=new FormData;B.append(G,u),L instanceof FormData?L.forEach((_,$)=>B.append($,_)):L&&Object.keys(L).forEach(_=>{B.append(_,L[_]);}),Et(z,{...W,onUploadProgress:_=>{V?.(_),h(N.localTaskId,{status:"importing",progress:_.percentage??0});},method:k,body:B,signal:x.signal}).then(_=>{y?.(_),h(N.localTaskId,{status:"done"});}).catch(_=>{I?.(_),h(N.localTaskId,{status:"failed"});});});},[c,l,f,h]);return jsxs(Fragment,{children:[jsx(Nt,{containerRef:o,onFileSelect:m,accept:r,acceptHint:s}),jsx("input",{type:"file",id:i$1,accept:r,multiple:false,onChange:b=>{let u=Array.from(b.target.files??[]);u.length&&(m(u),b.target.value="");},className:"invisible absolute -top-9999 -left-9999"}),jsx(i,{content:e??p("import_tooltip"),children:jsx("label",{htmlFor:i$1,className:"m-0 inline-flex cursor-pointer p-0 leading-none",children:jsx(O$1,{variant:"neutral",mode:"stroke",loading:t,startContent:jsx(Upload,{}),disabled:g,className:"pointer-events-none",...n,children:p("data_import")})})})]})}function Ut({disabled:e,columns:n}){let a=P$1(),{alwaysShowingColumns:t}=re(),[o,r]=P.useState(false),s=ht(),c$1=J(p=>p.setColumnVisibilityState),l=P.useCallback((p,i)=>{c$1(f=>({...f,[p]:i}));},[c$1]);return jsxs(F,{open:o,onOpenChange:r,children:[jsx(G,{asChild:true,children:jsx(O$1,{mode:"stroke",variant:"neutral",size:"small",className:c(o&&"active","relative gap-0"),disabled:e,startContent:jsx(Settings2,{}),children:jsx(i,{content:a("column_set"),children:jsx("div",{className:"absolute inset-0"})})})}),jsx(H,{align:"end",side:"bottom",arrow:false,className:"w-fit rounded-xl p-0",sideOffset:6,children:jsxs(w,{children:[jsx(x,{autoFocus:true,placeholder:"Search..."}),jsx(z,{children:a("no_results")}),jsx(y,{className:"max-h-256",children:jsx(A,{children:n.map(p=>{let i=Ot(p),f=s[i]!==false,h=typeof p.title=="string"&&p.title?.trim()==="",g=h?p.key:p.title;return jsxs(C,{keywords:Bt(p),onSelect:()=>l(i,!f),className:"group flex items-center gap-6",value:i,disabled:t?.includes(i),children:[jsx(Checkbox,{checked:f,tabIndex:-1,className:c("mr-4 opacity-100")}),jsx("span",{className:c(h&&"capitalize"),children:g})]},i)})})})]})})]})}var Xt=["data_refresh","size_setting","column_setting","filter_btn"];function Ua({btnProps:e,disabled:n,loading:a,onAction:t}){let o=P$1();return jsx(O$1,{variant:"primary",startContent:jsx(Download,{}),loading:a,disabled:n||a,onClick:()=>t({action:"data_export"}),...e,children:o("data_export")})}var $a={initial:{opacity:0,scale:.85,x:10,originX:1},animate:{opacity:1,scale:1,x:0,originX:1},exit:{opacity:0,scale:.85,x:10,originX:1}},Xa={ease:[.26,.08,.25,1],duration:.25};function Kt({containerRef:e,columns:n,filter:a,items:t=Xt,className:o,onAction:r,...s}){let{loading:c$1,syncing:l,exporting:p,disabled:i}=Ct(),f=P.useMemo(()=>t.map(u=>Wa(u)),[t]),h=P.useMemo(()=>f.filter(u=>!u.hidden),[f]),g=P.useCallback(u=>{r?.(u);},[r]),m=P.useMemo(()=>({disabled:i,loading:c$1,syncing:l,exporting:p,columns:n,onAction:g}),[i,c$1,p,l,n,g]),b=u=>{let E={btnProps:u.btnProps,tooltip:u.tooltip,disabled:i||l||c$1,loading:c$1,onAction:g};switch(u.type){case "data_refresh":return jsx(Ka,{...E,syncing:l});case "size_setting":return jsx(It,{...u.btnProps});case "column_setting":return jsx(Ut,{...u.btnProps,columns:n});case "data_export":return jsx(Ua,{...E,loading:p});case "data_import":return jsx(Vt,{...E,loading:p,containerRef:e,requestConfig:u.requestConfig,onBeforeUpload:u.onBeforeUpload,acceptHint:u.acceptHint,accept:u.accept});case "custom":return u.render?.(m);case "filter_btn":return a;default:return null}};return jsx(m$1.div,{"data-slot":"data-table-toolbar",className:c("flex items-center gap-8 transition-opacity",o),...s,children:jsx(AnimatePresence,{mode:"popLayout",initial:false,children:h.map(u=>jsx(m$1.div,{layout:true,variants:$a,initial:"initial",animate:"animate",exit:"exit",className:"leading-none",transition:Xa,children:b(u)},u.key))})})}function Ka({btnProps:e,tooltip:n,disabled:a,loading:t,syncing:o,onAction:r}){let s=P$1(),c=n??s("refresh");return jsx(i,{content:c,children:jsx(O$1,{mode:"stroke",variant:"neutral",startContent:jsx(RefreshCw,{}),loading:o||t,disabled:a||t||o,className:"gap-0",onClick:()=>r({action:"data_refresh"}),...e})})}function Wa(e){return typeof e=="string"?{type:e,key:e}:e.type==="custom"?{type:"custom",key:e.key,hidden:e.hidden,render:e.render}:e.type==="data_import"?{type:"data_import",key:e.key??e.type,hidden:e.hidden,btnProps:e.btnProps,tooltip:e.tooltip,accept:e.accept,acceptHint:e.acceptHint,requestConfig:e.requestConfig,onBeforeUpload:e.onBeforeUpload}:{type:e.type,key:e.key??e.type,hidden:e.hidden,btnProps:e.btnProps,tooltip:e.tooltip}}function qt({className:e,value:n,...a}){return jsx(Progress.Root,{"data-slot":"progress",className:c("relative flex h-4 w-full items-center overflow-x-hidden rounded-full bg-bg-soft",e),...a,children:jsx(Progress.Indicator,{"data-slot":"progress-indicator",className:"size-full flex-1 bg-primary-base transition-all",style:{transform:`translateX(-${100-(n||0)}%)`}})})}function Gt({onAction:e,...n}){let a=ge();return jsx(m$1.div,{"data-slot":"data-table-taskbar",className:"w-fit items-center justify-center bg-bg-white select-none",...n,children:a.map(t=>t.type==="import"?jsx(Ga,{...t,onSuccess:()=>{e?.({action:"import_done"});}},t.localTaskId):jsx(Ya,{...t},t.localTaskId))})}function Ga(e){let n=P$1(),a=Z(s=>s.removeTask),t=e.status==="failed",o=e.status==="done";return jsxs("div",{className:"flex h-full items-center gap-8",children:[jsxs("span",{className:c("truncate text-md font-medium",o?"text-success-base":t?"text-error-base":"text-text-strong"),children:[n(t?"import_failed":o?"import_done":e.status)," ",Mt(e.file.name)]}),jsxs("span",{className:"min-w-34 shrink-0 text-right text-sm text-text-sub",children:[e.progress,"%"]}),jsx(O$1,{variant:"neutral",mode:"ghost",size:"xsmall",className:"min-w-28 rounded-full px-0",onClick:()=>{e.abortController?.signal.aborted===false&&!t&&!o&&e.abortController?.abort("User canceled"),a(e.localTaskId),o&&e.onSuccess?.(e.localTaskId);},startContent:o?jsx(Check,{className:"text-success-base"}):jsx(Qa,{})})]})}function Ya(e){return jsxs("div",{className:"flex w-fit min-w-220 flex-col justify-center gap-6",children:[jsxs("div",{className:"lable flex items-center justify-center gap-12",children:[jsx("span",{className:"font-medium text-text-strong",children:"Task Name"}),jsx("span",{className:"ml-auto text-sm text-text-sub",children:e.progress})]}),jsx(qt,{value:66})]})}function Qa(){return jsxs("svg",{width:"0.8em",height:"0.8em",viewBox:"0 0 12 12",fill:"none",children:[jsx("path",{d:"M10.4854 1.99998L2.00007 10.4853",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),jsx("path",{d:"M10.4854 10.4844L2.00007 1.99908",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})}var Yt={initial:{y:10,opacity:0},animate:{y:0,opacity:1},exit:{y:-10,opacity:0}},Qt={ease:[.26,.08,.25,1],duration:.25};function Jt({containerRef:e,items:n,filter:a,columns:t,onAction:o}){let r=ge();return jsx(AnimatePresence,{initial:false,mode:"popLayout",children:r.length?jsx(Gt,{variants:Yt,initial:"initial",animate:"animate",exit:"exit",transition:Qt,onAction:o},"task-bar"):jsx(Kt,{variants:Yt,initial:"initial",animate:"animate",exit:"exit",transition:Qt,containerRef:e,onAction:o,filter:a,columns:t,items:n},"toolbar")})}var Za=26,Zt=44,eo=200,to=250,ao={},oo=e=>e.querySelector(".ant-table-thead")?.offsetHeight??Zt,ke=(e,n)=>{if(!e)return 0;let a=e.querySelectorAll(':scope [data-id^="data-table-card-"]'),t=0;return a.forEach(o=>{let r=o.getAttribute("data-id")==="data-table-card-content";t+=r?0:o.clientHeight;}),document.documentElement.clientHeight-n-window.scrollY-Za-oo(e)-t-3};function ea(e,n,{x:a,y:t,...o}=ao,r,s,c){let[l,p]=P.useState(t),i=P.useRef(0),f=P.useRef(null);if(P.useLayoutEffect(()=>{if(!s)return;i.current=e.current?.offsetTop??0,f.current||(f.current=c$1(()=>{i.current=e.current?.offsetTop??0,p(ke(e.current,i.current));},eo,false,true)),window.addEventListener("resize",f.current);let g=null;return e.current&&(g=new MutationObserver(f.current),g.observe(e.current,{childList:true,subtree:true,attributes:true,attributeFilter:["style","class","hidden"]})),()=>{f.current&&(window.removeEventListener("resize",f.current),f.current.cancel()),g?.disconnect();}},[e,s]),P.useEffect(()=>{if(!s||t!==void 0)return;p(ke(e.current,i.current));let g=setTimeout(()=>{p(ke(e.current,i.current));},to);return ()=>{clearTimeout(g);}},[t,n,e,s]),!s)return {x:a,y:t,...o};let h=l&&typeof l=="number"?l+(r?Zt:0):l;return {x:c&&!a?1280:a??"max-content",y:c&&!h?620:h,...o}}var so={ease:[.26,.08,.25,1],duration:.3},io={},lo={root:"m-0 flex w-full [&_.ant-pagination-total-text]:ps-6 [&_.ant-pagination-total-text]:mr-auto"};function co(e){let{store:n,tabList:a,alwaysShowingColumns:t,...o}=e;return me(()=>{let r=document.body,s=l=>{l.preventDefault(),l.dataTransfer&&(l.target.closest("[data-dropzone]")?l.dataTransfer.dropEffect="copy":l.dataTransfer.dropEffect="none");},c=l=>{l.preventDefault();};return r.addEventListener("drop",c),r.addEventListener("dragover",s),r.addEventListener("dragenter",s),()=>{r.removeEventListener("drop",c),r.removeEventListener("dragover",s),r.removeEventListener("dragenter",s);}}),jsx(yt,{store:n,tabList:a,alwaysShowingColumns:t,children:jsx(po,{...o})})}function po(e$1){let{ref:n$1,activeTabId:a,variant:t$1,style:o$1,cardTitle:r$1,cardIcon:s$1,cardDescription:c$1,classNames:l$2,enableTableAutoScrollSizer:p$1,slots:i,columns:f$1,filterColumns:h$1,tableColumns:g$1,defaultFilters:m$2,tableProps:b,paginationProps:u$1,toolbarItems:E,isCustomTab:x,tabRenderCtx:N,customRender:z,onToolbarAction:k$1,onFiltersChange:G}=e$1,L=P$1(),y=P.useRef(null),I=P.useRef(null),{tabList:V}=re(),{syncing:W,loading:B}=St(),_=Z(S=>S.updateTableId),[$,ue]=h({filters:m$2,onFiltersChange:G});P.useEffect(()=>{_(a);},[a]);let ee=$&&$.length!==0,he=!!(B&&g$1.some(S=>S.skeleton)),Se=Math.min(u$1.pageSize,15),ve=P.useCallback(S=>L("pagination_total").replace("{total}",String(S)),[L]),ie=ea(I,`${$?.length}-${a}`,b.scroll,x,p$1,b.virtual),d=he?jsx(ut,{id:`${a}-skeleton`,columns:g$1,size:b.size,count:Se,scroll:ie}):jsx(Table,{id:`${a}-data-table`,columns:g$1,loading:B,showSorterTooltip:false,...b,scroll:ie}),T=!!u$1.total&&(u$1.hideOnSinglePage!==true||u$1.total>u$1.pageSize);return jsxs(l,{ref:e([I,n$1]),style:o$1,className:c("relative rounded-[16px]",p$1&&"h-full max-h-[calc(100vh-var(--offset-top))] overflow-hidden",l$2?.root),variant:t$1,children:[jsxs(m,{"data-id":"data-table-card-header",className:c("data-table-card-header relative min-h-56 grow-0 px-14 pt-12 pb-10",t$1==="accent"&&"pt-10",V&&V?.length>1&&"border-b-0",l$2?.cardHeader),children:[jsxs(q,{className:c("flex items-center gap-12",l$2?.cardHeading),children:[s$1&&jsx(t,{className:c("size-32 border border-stone-200 bg-stone-100 text-text-sub",!!(r$1&&c$1)&&"size-44 [&_svg]:size-24",l$2?.cardIcon),children:s$1}),r$1&&jsxs("div",{className:c(c$1&&"flex flex-col gap-4"),children:[jsx(s,{children:r$1}),c$1&&jsx(u,{children:c$1})]})]}),jsx(AnimatePresence,{initial:false,children:E!==false&&jsx(r,{as:m$1.div,className:l$2?.cardToolbar,...j,children:jsx(Jt,{containerRef:y,items:E,columns:f$1,onAction:k$1,filter:h$1.length!==0&&jsx(g,{columns:h$1,filters:$,actions:ue,disabled:B||W,align:"end",enableAutoBack:true},`${a}-filter`)})})})]}),i?.cardSummary&&jsx(o,{"data-id":"data-table-card-summary",className:c("grow-0 p-12",l$2?.cardSummary),children:i.cardSummary}),jsx(vt,{"data-id":"data-table-card-tabs",className:"grow-0 p-0"}),jsx(AnimatePresence,{initial:false,children:ee&&jsx(m$1.div,{"data-id":"data-table-card-filter-values",...k,children:jsx(o,{className:"p-0",children:jsx(f,{columns:h$1,filters:$,actions:ue,"data-id":"data-table-active-filters",className:"flex flex-wrap gap-10 px-12 pt-16",disabled:W||B,enableAutoClose:true})})},a)}),jsxs(n,{"data-id":"data-table-card-content",className:c("relative grow p-12 pb-0",(W||B)&&"pointer-events-none",p$1&&"overflow-hidden",l$2?.cardContent),children:[i?.tableSummary&&jsx(o,{"data-id":"data-table-card-table-summary",className:c("grow-0 p-0 pb-12",l$2?.tableSummary),children:i.tableSummary}),jsx(AnimatePresence,{mode:"popLayout",initial:false,children:jsx(m$1.div,{ref:y,className:c("relative w-full",x&&p$1&&"overflow-auto"),style:x&&p$1?{maxHeight:ie.y}:io,...l$1,transition:so,children:x?z?.(N):d},a)})]}),T&&jsx(p,{"data-id":"data-table-card-pager",className:"flex min-h-44 w-full grow-0 items-center justify-between",children:jsx(Pagination,{classNames:lo,disabled:B||W,size:"small",showTotal:ve,...u$1})}),i?.cardFooter&&jsx(p,{"data-id":"data-table-card-footer",className:c("grow-0 px-16 py-12",l$2?.cardFooter),children:i.cardFooter})]})}function mo(e){let{tabList:n,fireOnMount:a=true,storageKey:t,onTabChange:o,onTableChange:r,onToolbarAction:s}=e,{pagination:c,tableStateStorageKey:l}=b$1(),p=P.useRef(new Set),[i]=P.useState(()=>{let d=mt(n[0].id,t??l);for(let T of n)d.getState().initTab(T.id,aa(T)),p.current.add(T.id);return d}),f=P.useRef({onTabChange:o,onTableChange:r,onToolbarAction:s});f.current={onTabChange:o,onTableChange:r,onToolbarAction:s};let h=P.useRef(new Map);h.current=new Map(n.map(d=>[d.id,d]));let g=n.map(d=>d.id).join(),m=P.useRef(true);P.useEffect(()=>{if(m.current){m.current=false;return}for(let d of n)p.current.has(d.id)||(i.getState().initTab(d.id,aa(d)),p.current.add(d.id));},[i,g]);let b=n.map(d=>`${d.id}:${d.loading}:${d.syncing}:${d.exporting}:${d.disabled}`).join();P.useEffect(()=>{let{syncTabExternal:d}=i.getState();for(let T of n)d(T.id,{loading:T.loading,syncing:T.syncing,exporting:T.exporting,disabled:T.disabled});},[i,b]),P.useEffect(()=>{let d=i.getState().stateVersion;return i.subscribe(T=>{if(T.stateVersion===d)return;d=T.stateVersion;let S=T.activeTabId,H=T.tabs[S];if(!H)return;let te={pagination:H.pagination,filters:H.filters,sorter:H.sorter},Ne=T.changeReason;Ne==="tab_switch"&&f.current.onTabChange?.(S),f.current.onTableChange?.(te,Ne,S);})},[i]);let u=P.useRef(false);P.useEffect(()=>{if(u.current||(u.current=true,!a))return;let d=i.getState(),T=d.activeTabId,S=d.tabs[T];S&&f.current.onTableChange?.(S,"mount",T);},[i,a]);let E=useStore(i,d=>d.activeTabId),x=useStore(i,useShallow(d=>d.tabs[d.activeTabId]??O)),N=h.current.get(E),z=N?.type==="custom",k=z?void 0:N,G=z?N:void 0,{columnVisibility:L,pagination:y}=x,I=k?.columns,V=G?.filterColumns,W=P.useMemo(()=>I?I.filter(d=>!d.hidden):[],[I]),B=P.useMemo(()=>z?V??[]:Lt(I),[z,V,I]),_=P.useMemo(()=>W.filter(d=>{let T=d.key??d.dataIndex;return !T||L[T]!==false}),[W,L]),$=P.useCallback(d=>{let T=i.getState(),S=T.activeTabId,H=T.tabs[S]?.filters??[],te=typeof d=="function"?d(H):d;T.setFilters(S,te);},[i]),ue=P.useCallback((d,T,S,H)=>{let te=i.getState().activeTabId;i.getState().setTableChange(te,S,H);},[i]),ee=P.useCallback((d,T)=>{let S=i.getState().activeTabId;i.getState().setPagination(S,d,T);},[i]),he=P.useCallback(d=>{let T=i.getState(),S=T.activeTabId,H=T.tabs[S],te={pagination:H?.pagination??O.pagination,filters:H?.filters??O.filters,sorter:H?.sorter??O.sorter};d.tableState=te,f.current.onToolbarAction?.(d,S);},[i]),Se=P.useMemo(()=>({...c,current:y.current,pageSize:y.pageSize,total:N?.total,onChange:ee,onShowSizeChange:ee}),[c,y,N?.total,ee]),ve=P.useMemo(()=>({loading:x.loading,syncing:x.syncing,exporting:x.exporting,disabled:x.disabled,filters:x.filters,pagination:y,onFiltersChange:$,onPaginationChange:ee}),[x,y,$,ee]),ie=P.useMemo(()=>n.map(({id:d,label:T,value:S})=>({id:d,label:T,value:S})),[g]);return {store:i,activeTabId:E,tabList:ie,columns:W,filterColumns:B,tableColumns:_,tableProps:{dataSource:k?.dataSource,rowKey:k?.rowKey,size:x.tableSize,pagination:false,scroll:k?.scroll,virtual:k?.virtual,onChange:ue},paginationProps:Se,defaultFilters:x.filters,onFiltersChange:$,toolbarItems:N?.toolbarItems,onToolbarAction:he,isCustomTab:z,customRender:G?.render,tabRenderCtx:ve,enableTableAutoScrollSizer:k?.enableTableAutoScrollSizer??G?.enableTableAutoScrollSizer??true}}function aa(e){return {pagination:e.defaultPagination,filters:e.defaultFilters,sorter:e.type!=="custom"?e.defaultSorter:void 0,loading:e.loading,syncing:e.syncing,exporting:e.exporting,disabled:e.disabled}}export{Xt as DEFAULT_TOOLBAR_ITEMS,co as DataTable,mo as useDataTable};
1
+ import {j,k as k$1,l as l$1,e,b as b$1,c as c$1,n as n$1,f as f$1,g as g$1,h as h$1,p as p$1,d}from'./chunk-CR56HN5M.js';import {h,g,f}from'./chunk-YZCMMM4D.js';export{b as DATE_FORMATS,d as formatDateRange,c as getDateDisplayFormat,e as getPickerInputFormat}from'./chunk-YZCMMM4D.js';import {P,l,m,q,t,c,s,u,r,o,n,p,O,i,F,G,H,w,x,z,y,A,C}from'./chunk-33W2J6TQ.js';export{P as useTransition}from'./chunk-33W2J6TQ.js';import {b}from'./chunk-M7AD2PUT.js';import {Table,Pagination,Checkbox}from'antd';import {AnimatePresence,m as m$1}from'motion/react';import k,{useState,useCallback}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {create,useStore,createStore}from'zustand';import {useShallow}from'zustand/react/shallow';import {persist}from'zustand/middleware';import {immer}from'zustand/middleware/immer';import {Check,Upload,Download,Settings2,RefreshCw,FolderUp}from'lucide-react';import {Progress,Portal}from'radix-ui';function me(e){k.useEffect(e,[]);}var ca={small:"min-h-22",medium:"min-h-26",middle:"min-h-30",large:"min-h-38"};function pt({count:e,size:n="small",classNames:a,columns:t,scroll:o}){let r=k.useCallback(()=>da(t,ca[n]),[t,n]);return jsx(Table,{rowKey:"id",size:n,rowHoverable:false,classNames:a,dataSource:Array.from({length:e},(s,c)=>({id:c})),pagination:false,scroll:o,children:t.map((s,c)=>jsx(Table.Column,{dataIndex:s.dataIndex,width:s.width,title:jsx(n$1,{className:"h-22 w-full animate-none bg-bg-antd"}),render:r,onCell:()=>c===0?{colSpan:t.length}:{colSpan:0}},s.key||s.dataIndex))})}var ut=16;function da(e,n){let a=e.length,o=`calc((100% - ${ut*(a-1)}px) / ${a})`,r=e.some(s=>s.skeleton==="avatar"||s.skeleton==="double-line");return jsx("div",{className:c("flex items-center",n),style:{gap:`${ut}px`},children:e.map((s,c)=>{let l=s?.key??c;return jsx("div",{style:{width:o},children:ua(s.skeleton,r)},l)})})}function ua(e,n){switch(e){case "avatar":return jsx(ma,{});case "double-line":return jsx(ba,{});case "group":return jsx(fa,{needAlignment:n});default:return jsx(pa,{needAlignment:n})}}function pa({needAlignment:e}){return jsxs("div",{className:"grid h-full gap-4",children:[e&&jsx("div",{className:"h-12 w-1"}),jsx(n$1,{className:"h-10"})]})}function ma(){return jsxs("div",{className:"flex w-full items-center gap-6",children:[jsx(n$1,{className:"shrink-0 rounded-full",style:{width:"var(--avatar-size, 32px)",height:"var(--avatar-size, 32px)"}}),jsxs("div",{className:"grid flex-1 gap-4",children:[jsx(n$1,{className:"h-12 w-[60%]"}),jsx(n$1,{className:"h-10"})]})]})}function ba(){return jsxs("div",{className:"grid h-full w-full gap-4 py-4",children:[jsx(n$1,{className:"h-12 w-[60%]"}),jsx(n$1,{className:"h-10"})]})}function fa({needAlignment:e}){return jsxs("div",{className:"grid h-full gap-4",children:[e&&jsx("div",{className:"h-12 w-1"}),jsxs("div",{className:"flex w-full items-center gap-4",children:[jsx(n$1,{className:"h-10 w-[20%]"}),jsx(n$1,{className:"h-10 w-[20%]"}),jsx(n$1,{className:"h-10 w-[20%]"}),jsx(n$1,{className:"h-10 w-[20%]"}),jsx(n$1,{className:"h-10 w-[20%]"})]})]})}var B={pagination:{current:1,pageSize:10},filters:[],sorter:{},extra:{action:"paginate",currentDataSource:[]},tableSize:"small",columnVisibility:{},exporting:false,loading:false,syncing:false,disabled:false},J=(e,n)=>(e.tabs[n]||(e.tabs[n]={...B}),e.tabs[n]),Ca="APP_UI_TABLE_CONFIG",Da=(e,n)=>({activeTabId:n,tabs:{},stateVersion:0,changeReason:"mount",setActiveTab:a=>e(t=>{t.activeTabId=a,J(t,a),t.changeReason="tab_switch",t.stateVersion++;}),syncTabExternal:(a,t)=>e(o=>{let r=o.tabs[a];r&&(r.loading=t.loading,r.syncing=t.syncing,r.exporting=t.exporting,r.disabled=t.disabled);}),initTab:(a,t)=>e(o=>{let r=o.tabs[a];r?(t.pagination&&(r.pagination=t.pagination),t.filters&&(r.filters=t.filters),t.sorter&&(r.sorter=t.sorter),r.loading=t.loading,r.syncing=t.syncing,r.exporting=t.exporting,r.disabled=t.disabled):o.tabs[a]={...B,...t};}),setFilters:(a,t)=>e(o=>{let r=J(o,a);r.filters=t,r.pagination.current=1,o.changeReason="filter",o.stateVersion++;}),setPagination:(a,t,o)=>e(r=>{let s=J(r,a);s.pagination={current:t,pageSize:o},r.changeReason="paginate",r.stateVersion++;}),setTableChange:(a,t,o)=>e(r=>{let s=J(r,a);s.sorter=t,s.extra=o,r.changeReason="sort",r.stateVersion++;}),setTableSize:a=>e(t=>{J(t,t.activeTabId).tableSize=a;}),setColumnVisibility:(a,t)=>e(o=>{J(o,o.activeTabId).columnVisibility[a]=t;}),setColumnVisibilityState:a=>e(t=>{let o=J(t,t.activeTabId);o.columnVisibility=typeof a=="function"?a(o.columnVisibility):a;}),toggleColumnVisibility:a=>e(t=>{let o=J(t,t.activeTabId);o.columnVisibility[a]=!o.columnVisibility[a];}),resetTabUIState:a=>e(t=>{let o=a??t.activeTabId,r=t.tabs[o];r&&(r.tableSize=B.tableSize,r.columnVisibility={});})}),mt=(e,n=Ca)=>createStore()(persist(immer(a=>Da(a,e)),{name:n,partialize:a=>({tableUIStatus:Object.fromEntries(Object.entries(a.tabs).map(([t,o])=>[t,{tableSize:o.tableSize,columnVisibility:o.columnVisibility}]))}),merge:(a,t)=>{let o=a,r={...t};if(!o?.tableUIStatus)return r;for(let[s,c]of Object.entries(o.tableUIStatus)){let l=r.tabs[s];l?(c.tableSize&&(l.tableSize=c.tableSize),c.columnVisibility&&(l.columnVisibility=c.columnVisibility)):r.tabs[s]={...B,tableSize:c.tableSize??B.tableSize,columnVisibility:c.columnVisibility??{}};}return r}}));var ft=k.createContext(null),Tt=["id","action","actions"],gt=k.createContext({alwaysShowingColumns:Tt});function yt({store:e,tabList:n,alwaysShowingColumns:a,children:t}){let o=k.useMemo(()=>({tabList:n,alwaysShowingColumns:a??Tt}),[n,a]);return jsx(gt.Provider,{value:o,children:jsx(ft.Provider,{value:e,children:t})})}function fe(){let e=k.useContext(ft);if(!e)throw new Error("useDataTableStoreApi must be used within DataTableProvider");return e}function Z(e){let n=fe();return useStore(n,e)}function Ct(){let e=fe();return useStore(e,useShallow(n=>n.tabs[n.activeTabId]??B))}function Dt(){return Z(e=>e.tabs[e.activeTabId]?.tableSize??B.tableSize)}function ht(){let e=fe();return useStore(e,useShallow(n=>n.tabs[n.activeTabId]?.columnVisibility??B.columnVisibility))}function St(){let e=fe();return useStore(e,useShallow(n=>{let a=n.tabs[n.activeTabId];return {loading:a?.loading??false,syncing:a?.syncing??false,exporting:a?.exporting??false,disabled:a?.disabled??false}}))}function re(){return k.useContext(gt)}function vt(e){let{tabList:n}=re(),a=Z(o=>o.activeTabId),t=Z(o=>o.setActiveTab);return !n||!n?.length||n.length===1?null:jsx(o,{...e,children:jsx(f$1,{className:c("w-full"),value:a,onValueChange:t,children:jsx(g$1,{variant:"line",size:"medium",className:"w-full px-12",children:n.map(o=>jsx(h$1,{value:o.value,className:"px-8 py-8",children:o.label},o.id))})})})}var ee=create((e,n)=>({activeTableId:"",tasks:{},updateTableId:a=>e(()=>({activeTableId:a})),addTask:a=>e(t=>{let o=t.activeTableId;return {tasks:{...t.tasks,[o]:[...t.tasks[o]??[],a]}}}),removeTask:a=>e(t=>{let o=t.activeTableId;return {tasks:{...t.tasks,[o]:(t.tasks[o]??[]).filter(r=>r.localTaskId!==a)}}}),updateTask:(a,t)=>e(o=>{let r=o.activeTableId;return {tasks:{...o.tasks,[r]:(o.tasks[r]??[]).map(s=>s.localTaskId===a?{...s,...t}:s)}}}),getTasks:()=>{let a=n();return a.tasks[a.activeTableId]??[]}})),ge=()=>ee(useShallow(e=>e.tasks[e.activeTableId]??[]));function It({className:e,...n}){let a=P(),[t,o]=k.useState(false),r=Z(l=>l.setTableSize),s=Dt(),c$1=k.useMemo(()=>[{groupType:"radio",value:s,options:[{label:a("large"),value:"large"},{label:a("middle"),value:"middle"},{label:a("compact"),value:"small"}],onValueChange:r}],[r,a,s]);return jsx(p$1,{side:"bottom",align:"end",collisionPadding:6,items:c$1,className:"min-w-100",open:t,onOpenChange:o,children:jsxs(O,{mode:"stroke",variant:"neutral",size:"small",className:c("gap-0",e,t&&"active"),...n,children:[jsx(i,{content:a("density"),size:"small",children:jsx("div",{className:"absolute inset-0"})}),jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"size-16",viewBox:"0 0 1024 1024",children:jsx("path",{d:"M840 836H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm0-724H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM610.8 378c6 0 9.4-7 5.7-11.7L515.7 238.7a7.14 7.14 0 0 0-11.3 0L403.6 366.3a7.23 7.23 0 0 0 5.7 11.7H476v268h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V378h62.8z"})})]})})}function Et(e,n){return new Promise((a,t)=>{let r=Object.assign({},{method:"GET",responseType:"json"},n),{method:s,timeout:c,responseType:l,headers:u,body:i,validateResponse:f}=r,h;function g(){r.signal&&r.signal.removeEventListener("abort",h);}if(r.signal&&r.signal.aborted)return t(new D("Aborted"));let m=new XMLHttpRequest,b=null,p=null;m.open(s.toUpperCase(),e,true),m.timeout=c||0,m.withCredentials=r.withCredentials===true,m.onloadend=function(){if(!m)return;let v=m.status,_=m.getResponseHeader("Content-Type")??"",V=l&&l!=="text"&&l!=="json",w=V?m.response:m.responseText,Y=m.getAllResponseHeaders().split(`\r
2
+ `).reduce((y,x)=>{let H=x.indexOf(": ");return H!==-1&&(y[x.slice(0,H).toLowerCase()]=x.slice(H+2)),y},{});function O(y){if(b){b.cancel();let x=y instanceof Blob?y.size:y instanceof ArrayBuffer?y.byteLength:typeof y=="string"?y.length:0;r.onDownloadProgress?.({loaded:x,total:x,lengthComputable:true,percentage:100});}r.withResponseHeaders?a({data:y,status:v,headers:Y}):a(y);}if(v>=200&&v<300)if(l==="json"){let y=w;try{let x=y!==""?JSON.parse(y):null;if(!(f?.(x)??!0))throw new D("invalid response");O(x);}catch(x){t(x);}}else f?.(w)??true?O(w):t(new D("invalid response"));else {let y=null;if(!V)if(_.includes("application/json"))try{y=w!==""?JSON.parse(w):null;}catch{}else y=w||null;t(new D("Xhr Request failed",v,y));}g(),m=null;},m.onabort=function(){m&&(b?.cancel(),p?.cancel(),t(new D(D.ECONNABORTED)),g(),m=null);},m.onerror=function(){b?.cancel(),p?.cancel(),t(new D("Network Error",D.ERR_NETWORK)),g(),m=null;},m.ontimeout=function(){b?.cancel(),p?.cancel(),t(new D("Timeout exceeded",D.ETIMEDOUT)),g(),m=null;},typeof u=="object"&&Object.keys(u).forEach(R=>{m?.setRequestHeader(R,u[R]);}),i==null&&m.setRequestHeader("Content-Type",""),l&&l!=="json"&&(m.responseType=l),r.onDownloadProgress&&(b=Rt(r.onDownloadProgress),m.addEventListener("progress",b)),r.onUploadProgress&&m.upload&&(p=Rt(r.onUploadProgress),m.upload.addEventListener("progress",p),m.upload.addEventListener("loadend",R=>{p?.cancel(),r.onUploadProgress?.({loaded:R.loaded,total:R.loaded,lengthComputable:true,percentage:100});})),r.signal&&(h=()=>{m&&(t(new D(D.REQUEST_CANCELED,D.REQUEST_CANCELED)),m.abort(),m=null);},r.signal.aborted?h():r.signal.addEventListener("abort",h)),m.send(i??null);})}function Rt(e){return d(a=>{e({loaded:a.loaded,total:a.lengthComputable?a.total:0,lengthComputable:a.lengthComputable,percentage:a.lengthComputable&&a.total>0?Math.round(a.loaded/a.total*100):null});},250)}var D=class extends Error{constructor(a,t,o){super(a);b(this,"message");b(this,"code");b(this,"data");this.name="RequestError",this.message=a,t&&(this.code=t),o!==void 0&&(this.data=o);}};b(D,"ETIMEDOUT","ETIMEDOUT"),b(D,"ERR_NETWORK","ERR_NETWORK"),b(D,"ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION_VALUE"),b(D,"ERR_BAD_OPTION","ERR_BAD_OPTION"),b(D,"ECONNABORTED","ECONNABORTED"),b(D,"ERR_FR_TOO_MANY_REDIRECTS","ERR_FR_TOO_MANY_REDIRECTS"),b(D,"ERR_DEPRECATED","ERR_DEPRECATED"),b(D,"ERR_BAD_RESPONSE","ERR_BAD_RESPONSE"),b(D,"ERR_BAD_REQUEST","ERR_BAD_REQUEST"),b(D,"ERR_CANCELED","ERR_CANCELED"),b(D,"REQUEST_CANCELED","REQUEST_CANCELED"),b(D,"ERR_NOT_SUPPORT","ERR_NOT_SUPPORT"),b(D,"ERR_INVALID_URL","ERR_INVALID_URL");var kt=(e=false)=>{let[n,a]=useState(e),t=useCallback(()=>{a(true);},[]),o=useCallback(()=>{a(false);},[]);return [n,t,o]};var wt=150,ye={ease:[.26,.08,.25,1],duration:.25},ka={initial:{opacity:0,scale:.95},visible:{opacity:1,scale:1,transition:{...ye,when:"beforeChildren"}},hidden:{opacity:0,scale:1.05,transition:{...ye,when:"afterChildren"}}},wa={initial:{y:10,opacity:0},visible:{y:0,opacity:1,transition:ye},hidden:{y:-10,opacity:0,transition:ye}};function Nt({containerRef:e,accept:n,acceptHint:a,onFileSelect:t}){let o=k.useRef(null),r=k.useRef(null),[s,c,l]=kt(false),u=k.useCallback(g=>{g.stopPropagation();let{target:m,relatedTarget:b}=g;m.matches(".data-drop-target, .data-drop-area")&&(!b||!b.matches(".data-drop-target, .data-drop-area"))&&(o.current=window.setTimeout(()=>{l();},wt));},[l]),i=k.useCallback(()=>{o.current&&window.clearTimeout(o.current);},[]),f=k.useCallback(()=>{o.current&&window.clearTimeout(o.current),o.current=window.setTimeout(()=>{l();},wt);},[l]),h=k.useEffectEvent(async g=>{let{dataTransfer:m}=g,b=[];m.files&&m.files.length>0&&(b=b.concat(Array.from(m.files))),b.length&&(r.current&&window.clearTimeout(r.current),r.current=window.setTimeout(()=>{t?.(b);},600));});return me(()=>{if(!e?.current)return;let g=e.current;return g.addEventListener("dragenter",c),()=>{g.removeEventListener("dragenter",c),o.current&&window.clearTimeout(o.current),r.current&&window.clearTimeout(r.current);}}),jsx(Portal.Root,{container:e?.current,asChild:true,children:jsx(AnimatePresence,{children:s&&jsx(m$1.div,{className:"data-drop-area absolute inset-0 bottom-8 z-10 flex items-center justify-center select-none",onDragLeave:u,onDragOver:i,onDrop:f,initial:"hidden",animate:"visible",exit:"hidden",variants:ka,children:jsx(Aa,{accept:n,acceptHint:a,onFileSelect:h})})})})}function Aa({accept:e,acceptHint:n,onFileSelect:a}){let t=P(),[o,r]=k.useState(false),s=k.useCallback(u=>{if(!e||!u.dataTransfer.items.length){r(false);return}let i=[...u.dataTransfer.items].every(f=>Na(f.type,e));r(!i);},[e]),c$1=k.useCallback(u=>{let{relatedTarget:i,currentTarget:f}=u;i&&f.contains(i)&&u.stopPropagation();},[]),l=k.useCallback(u=>{if(o){u.preventDefault();return}a(u);},[o,a]);return jsxs("div",{"data-dropzone":true,onDragEnter:s,onDrop:l,onDragLeave:c$1,className:"data-drop-target relative flex h-full w-full items-center justify-center rounded-[8px] bg-bg-weak p-16",children:[jsx("svg",{className:c("pointer-events-none absolute top-16 left-16 h-[calc(100%-32px)] w-[calc(100%-32px)] overflow-visible",o?"text-error-base":"text-primary-base"),children:jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",rx:"8",fill:"none",stroke:"currentColor",strokeDasharray:"11, 8",strokeDashoffset:"0",strokeLinecap:"round",strokeWidth:"2",children:jsx("animate",{attributeName:"stroke-dashoffset",from:"0",to:"-19",dur:"0.5s",repeatCount:"indefinite"})})}),jsxs(m$1.div,{className:c("pointer-events-none flex flex-col items-center gap-4",o?"text-error-base":"text-primary-base"),variants:wa,children:[jsxs("div",{className:"flex flex-col items-center",children:[jsx(FolderUp,{className:"size-48"}),jsx("strong",{className:"text-title-h6",children:t(o?"file_type_rejected":"drop_file_hint")})]}),jsx("span",{className:"text-text-soft",children:n?t("file_support_list",{formats:n}):t("file_support_all")})]})]})}function Na(e,n,a=""){if(!n||n==="*")return true;if(!e&&!a)return false;let t=n.split(",").map(s=>s.trim().toLowerCase()),o=(e||"").toLowerCase(),r=(a||"").toLowerCase();return t.some(s=>{if(s.startsWith("."))return r.endsWith(s);if(s.endsWith("/*")){let c=s.slice(0,-1);return o.startsWith(c)}return o===s})}function _t(e=""){return `${e}-${Date.now().toString(36)+Math.random().toString(36).slice(2)}`}function Lt(e){return e?e.filter(n=>n.filter!==void 0).map(n=>{let{filter:a,dataIndex:t,title:o}=n,r=Array.isArray(t)?t.join("."):t,s=a.displayName??(typeof o=="string"?o:r);return {...a,columnId:r,displayName:s}}):[]}function Ot(e){return e.key?String(e.key):Array.isArray(e.dataIndex)?e.dataIndex.join("."):String(e.dataIndex)}function _a(e){return typeof e=="string"&&e.length>0}function Bt(e){return [Array.isArray(e.dataIndex)?e.dataIndex.join(" "):typeof e.dataIndex=="string"?e.dataIndex:null,typeof e.title=="string"?e.title:null,e.key!==null?String(e.key):null].filter(_a)}function Mt(e,n=22){if(!e)return "";if(e.length<=n)return e;let a=Math.floor(n/2.5),t=e.lastIndexOf("."),o,r;if(t>0?(o=e.substring(0,t),r=e.substring(t)):(o=e,r=""),o.length<=a*2)return e;let s=o.substring(0,a),c=o.substring(o.length-a);return `${s}\u2026${c}${r}`}function Ft(e,n){return {type:"import",localTaskId:_t(n?`import-file-${n}`:"import-file"),status:"pending",progress:0,file:e}}function Vt({tooltip:e,btnProps:n,disabled:a,loading:t,containerRef:o,accept:r,acceptHint:s,requestConfig:c,onBeforeUpload:l}){let u=P(),i$1=k.useId(),f=ee(b=>b.addTask),h=ee(b=>b.updateTask),g=a||t,m=k.useCallback(async b=>{if(b=[b[0]],l&&typeof l=="function"){let p=await l(b);if(p===false)return;Array.isArray(p)&&(b=p);}b.forEach((p,R)=>{let v=new AbortController,_={...Ft(p,R),abortController:v};if(f(_),!c)throw Error("requestConfig is required.");let{url:V,method:w="POST",fieldName:Y="file",body:O,onSuccess:y,onFailed:x,onUploadProgress:H,...W}=c,M=new FormData;M.append(Y,p),O instanceof FormData?O.forEach((L,$)=>M.append($,L)):O&&Object.keys(O).forEach(L=>{M.append(L,O[L]);}),Et(V,{...W,onUploadProgress:L=>{H?.(L),h(_.localTaskId,{status:"importing",progress:L.percentage??0});},method:w,body:M,signal:v.signal}).then(L=>{y?.(L),h(_.localTaskId,{status:"done"});}).catch(L=>{x?.(L),h(_.localTaskId,{status:"failed"});});});},[c,l,f,h]);return jsxs(Fragment,{children:[jsx(Nt,{containerRef:o,onFileSelect:m,accept:r,acceptHint:s}),jsx("input",{type:"file",id:i$1,accept:r,multiple:false,onChange:b=>{let p=Array.from(b.target.files??[]);p.length&&(m(p),b.target.value="");},className:"invisible absolute -top-9999 -left-9999"}),jsx(i,{content:e??u("import_tooltip"),children:jsx("label",{htmlFor:i$1,className:"m-0 inline-flex cursor-pointer p-0 leading-none",children:jsx(O,{variant:"neutral",mode:"stroke",loading:t,startContent:jsx(Upload,{}),disabled:g,className:"pointer-events-none",...n,children:u("data_import")})})})]})}function Ut({disabled:e,columns:n}){let a=P(),{alwaysShowingColumns:t}=re(),[o,r]=k.useState(false),s=ht(),c$1=Z(u=>u.setColumnVisibilityState),l=k.useCallback((u,i)=>{c$1(f=>({...f,[u]:i}));},[c$1]);return jsxs(F,{open:o,onOpenChange:r,children:[jsx(G,{asChild:true,children:jsx(O,{mode:"stroke",variant:"neutral",size:"small",className:c(o&&"active","relative gap-0"),disabled:e,startContent:jsx(Settings2,{}),children:jsx(i,{content:a("column_set"),children:jsx("div",{className:"absolute inset-0"})})})}),jsx(H,{align:"end",side:"bottom",arrow:false,className:"w-fit rounded-xl p-0",sideOffset:6,children:jsxs(w,{children:[jsx(x,{autoFocus:true,placeholder:"Search..."}),jsx(z,{children:a("no_results")}),jsx(y,{className:"max-h-256",children:jsx(A,{children:n.map(u=>{let i=Ot(u),f=s[i]!==false,h=typeof u.title=="string"&&u.title?.trim()==="",g=h?u.key:u.title;return jsxs(C,{keywords:Bt(u),onSelect:()=>l(i,!f),className:"group flex items-center gap-6",value:i,disabled:t?.includes(i),children:[jsx(Checkbox,{checked:f,tabIndex:-1,className:c("mr-4 opacity-100")}),jsx("span",{className:c(h&&"capitalize"),children:g})]},i)})})})]})})]})}var Xt=["data_refresh","size_setting","column_setting","filter_btn"];function Ua({btnProps:e,disabled:n,loading:a,onAction:t}){let o=P();return jsx(O,{variant:"primary",startContent:jsx(Download,{}),loading:a,disabled:n||a,onClick:()=>t({action:"data_export"}),...e,children:o("data_export")})}var $a={initial:{opacity:0,scale:.85,x:10,originX:1},animate:{opacity:1,scale:1,x:0,originX:1},exit:{opacity:0,scale:.85,x:10,originX:1}},Xa={ease:[.26,.08,.25,1],duration:.25};function Kt({containerRef:e,columns:n,filter:a,items:t=Xt,className:o,onAction:r,...s}){let{loading:c$1,syncing:l,exporting:u,disabled:i}=Ct(),f=k.useMemo(()=>t.map(p=>Wa(p)),[t]),h=k.useMemo(()=>f.filter(p=>!p.hidden),[f]),g=k.useCallback(p=>{r?.(p);},[r]),m=k.useMemo(()=>({disabled:i,loading:c$1,syncing:l,exporting:u,columns:n,onAction:g}),[i,c$1,u,l,n,g]),b=p=>{let R={btnProps:p.btnProps,tooltip:p.tooltip,disabled:i||l||c$1,loading:c$1,onAction:g};switch(p.type){case "data_refresh":return jsx(Ka,{...R,syncing:l});case "size_setting":return jsx(It,{...p.btnProps});case "column_setting":return jsx(Ut,{...p.btnProps,columns:n});case "data_export":return jsx(Ua,{...R,loading:u});case "data_import":return jsx(Vt,{...R,loading:u,containerRef:e,requestConfig:p.requestConfig,onBeforeUpload:p.onBeforeUpload,acceptHint:p.acceptHint,accept:p.accept});case "custom":return p.render?.(m);case "filter_btn":return a;default:return null}};return jsx(m$1.div,{"data-slot":"data-table-toolbar",className:c("flex items-center gap-8 transition-opacity",o),...s,children:jsx(AnimatePresence,{mode:"popLayout",initial:false,children:h.map(p=>jsx(m$1.div,{layout:true,variants:$a,initial:"initial",animate:"animate",exit:"exit",className:"leading-none",transition:Xa,children:b(p)},p.key))})})}function Ka({btnProps:e,tooltip:n,disabled:a,loading:t,syncing:o,onAction:r}){let s=P(),c=n??s("refresh");return jsx(i,{content:c,children:jsx(O,{mode:"stroke",variant:"neutral",startContent:jsx(RefreshCw,{}),loading:o||t,disabled:a||t||o,className:"gap-0",onClick:()=>r({action:"data_refresh"}),...e})})}function Wa(e){return typeof e=="string"?{type:e,key:e}:e.type==="custom"?{type:"custom",key:e.key,hidden:e.hidden,render:e.render}:e.type==="data_import"?{type:"data_import",key:e.key??e.type,hidden:e.hidden,btnProps:e.btnProps,tooltip:e.tooltip,accept:e.accept,acceptHint:e.acceptHint,requestConfig:e.requestConfig,onBeforeUpload:e.onBeforeUpload}:{type:e.type,key:e.key??e.type,hidden:e.hidden,btnProps:e.btnProps,tooltip:e.tooltip}}function jt({className:e,value:n,...a}){return jsx(Progress.Root,{"data-slot":"progress",className:c("relative flex h-4 w-full items-center overflow-x-hidden rounded-full bg-bg-soft",e),...a,children:jsx(Progress.Indicator,{"data-slot":"progress-indicator",className:"size-full flex-1 bg-primary-base transition-all",style:{transform:`translateX(-${100-(n||0)}%)`}})})}function Gt({onAction:e,...n}){let a=ge();return jsx(m$1.div,{"data-slot":"data-table-taskbar",className:"w-fit items-center justify-center bg-bg-white select-none",...n,children:a.map(t=>t.type==="import"?jsx(Ga,{...t,onSuccess:()=>{e?.({action:"import_done"});}},t.localTaskId):jsx(Ya,{...t},t.localTaskId))})}function Ga(e){let n=P(),a=ee(s=>s.removeTask),t=e.status==="failed",o=e.status==="done";return jsxs("div",{className:"flex h-full items-center gap-8",children:[jsxs("span",{className:c("truncate text-md font-medium",o?"text-success-base":t?"text-error-base":"text-text-strong"),children:[n(t?"import_failed":o?"import_done":e.status)," ",Mt(e.file.name)]}),jsxs("span",{className:"min-w-34 shrink-0 text-right text-sm text-text-sub",children:[e.progress,"%"]}),jsx(O,{variant:"neutral",mode:"ghost",size:"xsmall",className:"min-w-28 rounded-full px-0",onClick:()=>{e.abortController?.signal.aborted===false&&!t&&!o&&e.abortController?.abort("User canceled"),a(e.localTaskId),o&&e.onSuccess?.(e.localTaskId);},startContent:o?jsx(Check,{className:"text-success-base"}):jsx(Qa,{})})]})}function Ya(e){return jsxs("div",{className:"flex w-fit min-w-220 flex-col justify-center gap-6",children:[jsxs("div",{className:"lable flex items-center justify-center gap-12",children:[jsx("span",{className:"font-medium text-text-strong",children:"Task Name"}),jsx("span",{className:"ml-auto text-sm text-text-sub",children:e.progress})]}),jsx(jt,{value:66})]})}function Qa(){return jsxs("svg",{width:"0.8em",height:"0.8em",viewBox:"0 0 12 12",fill:"none",children:[jsx("path",{d:"M10.4854 1.99998L2.00007 10.4853",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),jsx("path",{d:"M10.4854 10.4844L2.00007 1.99908",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})}var Yt={initial:{y:10,opacity:0},animate:{y:0,opacity:1},exit:{y:-10,opacity:0}},Qt={ease:[.26,.08,.25,1],duration:.25};function Jt({containerRef:e,items:n,filter:a,columns:t,onAction:o}){let r=ge();return jsx(AnimatePresence,{initial:false,mode:"popLayout",children:r.length?jsx(Gt,{variants:Yt,initial:"initial",animate:"animate",exit:"exit",transition:Qt,onAction:o},"task-bar"):jsx(Kt,{variants:Yt,initial:"initial",animate:"animate",exit:"exit",transition:Qt,containerRef:e,onAction:o,filter:a,columns:t,items:n},"toolbar")})}var Za=26,Zt=44,eo=200,to=250,ao={},oo=e=>e.querySelector(".ant-table-thead")?.offsetHeight??Zt,ke=(e,n)=>{if(!e)return 0;let a=e.querySelectorAll(':scope [data-id^="data-table-card-"]'),t=0;return a.forEach(o=>{let r=o.getAttribute("data-id")==="data-table-card-content";t+=r?0:o.clientHeight;}),document.documentElement.clientHeight-n-window.scrollY-Za-oo(e)-t-3};function ea(e,n,{x:a,y:t,...o}=ao,r,s,c){let[l,u]=k.useState(t),i=k.useRef(0),f=k.useRef(null);if(k.useLayoutEffect(()=>{if(!s)return;i.current=e.current?.offsetTop??0,f.current||(f.current=c$1(()=>{i.current=e.current?.offsetTop??0,u(ke(e.current,i.current));},eo,false,true)),window.addEventListener("resize",f.current);let g=null;return e.current&&(g=new MutationObserver(f.current),g.observe(e.current,{childList:true,subtree:true,attributes:true,attributeFilter:["style","class","hidden"]})),()=>{f.current&&(window.removeEventListener("resize",f.current),f.current.cancel()),g?.disconnect();}},[e,s]),k.useEffect(()=>{if(!s||t!==void 0)return;u(ke(e.current,i.current));let g=setTimeout(()=>{u(ke(e.current,i.current));},to);return ()=>{clearTimeout(g);}},[t,n,e,s]),!s)return {x:a,y:t,...o};let h=l&&typeof l=="number"?l+(r?Zt:0):l;return {x:c&&!a?1280:a??"max-content",y:c&&!h?620:h,...o}}var so={ease:[.26,.08,.25,1],duration:.3},io={},lo={root:"m-0 flex w-full [&_.ant-pagination-total-text]:ps-6 [&_.ant-pagination-total-text]:mr-auto"};function co(e){let{store:n,tabList:a,alwaysShowingColumns:t,...o}=e;return me(()=>{let r=document.body,s=l=>{l.preventDefault(),l.dataTransfer&&(l.target.closest("[data-dropzone]")?l.dataTransfer.dropEffect="copy":l.dataTransfer.dropEffect="none");},c=l=>{l.preventDefault();};return r.addEventListener("drop",c),r.addEventListener("dragover",s),r.addEventListener("dragenter",s),()=>{r.removeEventListener("drop",c),r.removeEventListener("dragover",s),r.removeEventListener("dragenter",s);}}),jsx(yt,{store:n,tabList:a,alwaysShowingColumns:t,children:jsx(uo,{...o})})}function uo(e$1){let{ref:n$1,activeTabId:a,variant:t$1,style:o$1,cardTitle:r$1,cardIcon:s$1,cardDescription:c$1,classNames:l$2,enableTableAutoScrollSizer:u$1,slots:i,columns:f$1,filterColumns:h$1,tableColumns:g$1,defaultFilters:m$2,tableProps:b,paginationProps:p$1,toolbarItems:R,isCustomTab:v,tabRenderCtx:_,customRender:V,onToolbarAction:w,onFiltersChange:Y}=e$1,O=P(),y=k.useRef(null),x=k.useRef(null),{tabList:H}=re(),{syncing:W,loading:M}=St(),L=ee(P=>P.updateTableId),[$,pe]=h({filters:m$2,onFiltersChange:Y});k.useEffect(()=>{L(a);},[a]);let{current:te}=p$1;k.useEffect(()=>{let P=setTimeout(()=>{if(u$1&&!b.virtual){let q=y.current?.querySelector(".ant-table-body");q&&(q.scrollTop=0);}else y.current?.scrollIntoView({block:"start"});},350);return ()=>clearTimeout(P)},[te]);let De=$&&$.length!==0,he=!!(M&&g$1.some(P=>P.skeleton)),Se=Math.min(p$1.pageSize,15),ve=k.useCallback(P=>O("pagination_total").replace("{total}",String(P)),[O]),d=ea(x,`${$?.length}-${a}`,b.scroll,v,u$1,b.virtual),T=he?jsx(pt,{id:`${a}-skeleton`,columns:g$1,size:b.size,count:Se,scroll:d}):jsx(Table,{id:`${a}-data-table`,columns:g$1,loading:M,showSorterTooltip:false,...b,scroll:d}),E=!!p$1.total&&(p$1.hideOnSinglePage!==true||p$1.total>p$1.pageSize);return jsxs(l,{ref:e([x,n$1]),style:o$1,className:c("relative rounded-[16px]",u$1&&"h-full max-h-[calc(100vh-var(--offset-top))] overflow-hidden",l$2?.root),variant:t$1,children:[jsxs(m,{"data-id":"data-table-card-header",className:c("data-table-card-header relative min-h-56 grow-0 px-14 pt-12 pb-10",t$1==="accent"&&"pt-10",H&&H?.length>1&&"border-b-0",l$2?.cardHeader),children:[jsxs(q,{className:c("flex items-center gap-12",l$2?.cardHeading),children:[s$1&&jsx(t,{className:c("size-32 border border-stone-200 bg-stone-100 text-text-sub",!!(r$1&&c$1)&&"size-44 [&_svg]:size-24",l$2?.cardIcon),children:s$1}),r$1&&jsxs("div",{className:c(c$1&&"flex flex-col gap-4"),children:[jsx(s,{children:r$1}),c$1&&jsx(u,{children:c$1})]})]}),jsx(AnimatePresence,{initial:false,children:R!==false&&jsx(r,{as:m$1.div,className:l$2?.cardToolbar,...j,children:jsx(Jt,{containerRef:y,items:R,columns:f$1,onAction:w,filter:h$1.length!==0&&jsx(g,{columns:h$1,filters:$,actions:pe,disabled:M||W,align:"end",enableAutoBack:true},`${a}-filter`)})})})]}),i?.cardSummary&&jsx(o,{"data-id":"data-table-card-summary",className:c("grow-0 p-12",l$2?.cardSummary),children:i.cardSummary}),jsx(vt,{"data-id":"data-table-card-tabs",className:"grow-0 p-0"}),jsx(AnimatePresence,{initial:false,children:De&&jsx(m$1.div,{"data-id":"data-table-card-filter-values",...k$1,children:jsx(o,{className:"p-0",children:jsx(f,{columns:h$1,filters:$,actions:pe,"data-id":"data-table-active-filters",className:"flex flex-wrap gap-10 px-12 pt-16",disabled:W||M,enableAutoClose:true})})},a)}),jsxs(n,{"data-id":"data-table-card-content",className:c("relative grow p-12 pb-0",(W||M)&&"pointer-events-none",u$1&&"overflow-hidden",l$2?.cardContent),children:[i?.tableSummary&&jsx(o,{"data-id":"data-table-card-table-summary",className:c("grow-0 p-0 pb-12",l$2?.tableSummary),children:i.tableSummary}),jsx(AnimatePresence,{mode:"popLayout",initial:false,children:jsx(m$1.div,{ref:y,className:c("relative w-full",v&&u$1&&"overflow-auto"),style:v&&u$1?{maxHeight:d.y}:io,...l$1,transition:so,children:v?V?.(_):T},a)})]}),E&&jsx(p,{"data-id":"data-table-card-pager",className:"flex min-h-44 w-full grow-0 items-center justify-between",children:jsx(Pagination,{classNames:lo,disabled:M||W,size:"small",showTotal:ve,...p$1})}),i?.cardFooter&&jsx(p,{"data-id":"data-table-card-footer",className:c("grow-0 px-16 py-12",l$2?.cardFooter),children:i.cardFooter})]})}function mo(e){let{tabList:n,fireOnMount:a=true,storageKey:t,onTabChange:o,onTableChange:r,onToolbarAction:s}=e,{pagination:c,tableStateStorageKey:l}=b$1(),u=k.useRef(new Set),[i]=k.useState(()=>{let d=mt(n[0].id,t??l);for(let T of n)d.getState().initTab(T.id,aa(T)),u.current.add(T.id);return d}),f=k.useRef({onTabChange:o,onTableChange:r,onToolbarAction:s});f.current={onTabChange:o,onTableChange:r,onToolbarAction:s};let h=k.useRef(new Map);h.current=new Map(n.map(d=>[d.id,d]));let g=n.map(d=>d.id).join(),m=k.useRef(true);k.useEffect(()=>{if(m.current){m.current=false;return}for(let d of n)u.current.has(d.id)||(i.getState().initTab(d.id,aa(d)),u.current.add(d.id));},[i,g]);let b=n.map(d=>`${d.id}:${d.loading}:${d.syncing}:${d.exporting}:${d.disabled}`).join();k.useEffect(()=>{let{syncTabExternal:d}=i.getState();for(let T of n)d(T.id,{loading:T.loading,syncing:T.syncing,exporting:T.exporting,disabled:T.disabled});},[i,b]),k.useEffect(()=>{let d=i.getState().stateVersion;return i.subscribe(T=>{if(T.stateVersion===d)return;d=T.stateVersion;let E=T.activeTabId,P=T.tabs[E];if(!P)return;let q={pagination:P.pagination,filters:P.filters,sorter:P.sorter},Ne=T.changeReason;Ne==="tab_switch"&&f.current.onTabChange?.(E),f.current.onTableChange?.(q,Ne,E);})},[i]);let p=k.useRef(false);k.useEffect(()=>{if(p.current||(p.current=true,!a))return;let d=i.getState(),T=d.activeTabId,E=d.tabs[T];E&&f.current.onTableChange?.(E,"mount",T);},[i,a]);let R=useStore(i,d=>d.activeTabId),v=useStore(i,useShallow(d=>d.tabs[d.activeTabId]??B)),_=h.current.get(R),V=_?.type==="custom",w=V?void 0:_,Y=V?_:void 0,{columnVisibility:O,pagination:y}=v,x=w?.columns,H=Y?.filterColumns,W=k.useMemo(()=>x?x.filter(d=>!d.hidden):[],[x]),M=k.useMemo(()=>V?H??[]:Lt(x),[V,H,x]),L=k.useMemo(()=>W.filter(d=>{let T=d.key??d.dataIndex;return !T||O[T]!==false}),[W,O]),$=k.useCallback(d=>{let T=i.getState(),E=T.activeTabId,P=T.tabs[E]?.filters??[],q=typeof d=="function"?d(P):d;T.setFilters(E,q);},[i]),pe=k.useCallback((d,T,E,P)=>{let q=i.getState().activeTabId;i.getState().setTableChange(q,E,P);},[i]),te=k.useCallback((d,T)=>{let E=i.getState().activeTabId;i.getState().setPagination(E,d,T);},[i]),De=k.useCallback(d=>{let T=i.getState(),E=T.activeTabId,P=T.tabs[E],q={pagination:P?.pagination??B.pagination,filters:P?.filters??B.filters,sorter:P?.sorter??B.sorter};d.tableState=q,f.current.onToolbarAction?.(d,E);},[i]),he=k.useMemo(()=>({...c,current:y.current,pageSize:y.pageSize,total:_?.total,onChange:te,onShowSizeChange:te}),[c,y,_?.total,te]),Se=k.useMemo(()=>({loading:v.loading,syncing:v.syncing,exporting:v.exporting,disabled:v.disabled,filters:v.filters,pagination:y,onFiltersChange:$,onPaginationChange:te}),[v,y,$,te]),ve=k.useMemo(()=>n.map(({id:d,label:T,value:E})=>({id:d,label:T,value:E})),[g]);return {store:i,activeTabId:R,tabList:ve,columns:W,filterColumns:M,tableColumns:L,tableProps:{dataSource:w?.dataSource,rowKey:w?.rowKey,size:v.tableSize,pagination:false,scroll:w?.scroll,virtual:w?.virtual,onChange:pe},paginationProps:he,defaultFilters:v.filters,onFiltersChange:$,toolbarItems:_?.toolbarItems,onToolbarAction:De,isCustomTab:V,customRender:Y?.render,tabRenderCtx:Se,enableTableAutoScrollSizer:w?.enableTableAutoScrollSizer??Y?.enableTableAutoScrollSizer??true}}function aa(e){return {pagination:e.defaultPagination,filters:e.defaultFilters,sorter:e.type!=="custom"?e.defaultSorter:void 0,loading:e.loading,syncing:e.syncing,exporting:e.exporting,disabled:e.disabled}}export{Xt as DEFAULT_TOOLBAR_ITEMS,co as DataTable,mo as useDataTable};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jerry-fd/ui",
3
- "version": "0.5.1",
3
+ "version": "0.5.2",
4
4
  "description": "UI component library based on Ant Design (Client-side only)",
5
5
  "type": "module",
6
6
  "sideEffects": ["index.js", "*.css"],