1import{j as m}from"./@base-ui/react-520d3e18.js";import{r as S,R as C}from"./vendor-c4cd4da4.js";import{a as Pi,u as yi,r as gs,s as bi,t as Oi,v as $i,L as ts,S as Ei}from"./index-4b49b086.js";import{E as _i,P as Li}from"./ExportButton-8dd534a0.js";import{T as Ai,A as q,g as ki,h as Vi,O as zi}from"./ListAdminWireframeTablePage-c682fb4b.js";import{M as Ms}from"./index-38daec10.js";import{u as ti}from"./useProfile-7ebc2659.js";import{b as Mi}from"./index.esm-68973d32.js";import{M as Bi}from"./index-409786d7.js";import{getProcessedTableData as Bs}from"./RowListColumn-e95a0f91.js";import{T as Ri}from"./lucide-react-5e86fb69.js";import"./posthog-js-7564cb7c.js";import"./qr-scanner-cf010ec4.js";import"./@headlessui/react-b70c55a7.js";import"./react-loading-skeleton-d47e9ae2.js";import"./react-icons-e9f1a3c2.js";import"./@quiltt/core-1c53b267.js";import"./@fullcalendar/core-f4694655.js";import"./@quiltt/react-2bbb75b9.js";import"./react-datepicker-a15c956d.js";import"./clsx-0839fdbe.js";import"./@stripe/react-stripe-js-35547995.js";import"./@stripe/stripe-js-6b714a86.js";import"./react-toastify-31070c08.js";import"./react-select-0fd6b47b.js";import"./@mantine/core-0e7e3627.js";import"./@uppy/dashboard-912851de.js";import"./react-google-recaptcha-2585cbe7.js";import"./@tanstack/react-query-3716d31a.js";import"./@fortawesome/fontawesome-svg-core-95dad805.js";import"./@fortawesome/free-solid-svg-icons-82da594a.js";import"./@fortawesome/free-regular-svg-icons-a38012c9.js";import"./@fortawesome/free-brands-svg-icons-2c021b6b.js";import"./index-58021b51.js";const Wi=async(O,J,_)=>{if(!(O!=null&&O.length))return J;let L=J;for(const f of O)["function"].includes(typeof f)&&(L=await f(L,_));return L},Ki=new Ei,Ti=({defaultColumns:O=[],excludeColumns:J=[],columnModel:_=null,processes:L=[],actions:f={view:{show:!0,multiple:!0,action:null,locations:[q.DROPDOWN],children:"View"},edit:{show:!0,multiple:!0,action:null,locations:[q.DROPDOWN],children:"Edit"},delete:{show:!0,multiple:!0,action:null,locations:[q.DROPDOWN],children:"Delete"},select:{show:!0,multiple:!0,action:null,locations:[]},add:{show:!0,multiple:!0,action:null,locations:[],showChildren:!0,children:"Add",type:"",className:""},export:{show:!0,multiple:!0,action:null,showText:!1,className:"",locations:[]}},updateRef:ns=null,onUpdateCurrentTableData:ms=null,actionPostion:is=[q.DROPDOWN],actionId:Rs="id",tableRole:Ws="admin",table:P="user",tableTitle:Y="",hasFilter:Q=!0,showPagination:Ks=!0,defaultFilter:ws=[],refreshRef:Ss=null,allowEditing:Ts=!1,allowSortColumns:qs=!0,showSearch:Us=!0,topClasses:Gs="",join:X=[],filterDisplays:Js=[],resetFilters:Z=null,defaultPageSize:Cs=10,searchFilter:M=[],onReady:V=()=>{},maxHeight:Ns=null,externalData:i,noDataComponent:Ys,useImage:Qs=!0,canChangeLimit:Xs=!0,selectedItemsRef:vs=null,useDefaultColumns:js=!1,showScrollbar:Zs=!0})=>{var $s,Es,_s,Ls,As,ks,Vs;const{sdk:H,tdk:Hs,projectId:Ps}=Pi(),U=S.useRef(null),{globalDispatch:F,custom:Fs,globalState:{columModel:os},authDispatch:B,tokenExpireError:ys,getListByFilter:bs,create:Is,setLoading:Os}=yi(),[G,I]=C.useState([]),[d,x]=C.useState(Cs??10),[z,es]=C.useState(0),[qi,fs]=C.useState(0),[u,D]=C.useState(1),[xs,cs]=C.useState(!1),[Ds,us]=C.useState(!1),[as,rs]=C.useState(!1),[si,ls]=C.useState(!1),[ds,hs]=C.useState([]),[ii,Ui]=C.useState([]),[y,a]=C.useState([]),[n,oi]=C.useState(""),[R,W]=C.useState(!1),[ei,N]=C.useState(!1),[Gi,fi]=C.useState(!1),[Ji,ci]=C.useState("name"),[o,t]=C.useState({views:[],data:null,columns:[],columnId:0,columnsReady:!1,order:"",direction:""}),[ui,Yi]=C.useState(!1),{profile:A,getProfile:ri}=ti(),K=S.useMemo(()=>ds,[ds]),ps=S.useCallback(()=>{let s=[];return new Set(K.map(c=>c==null?void 0:c.accessor)).forEach(c=>{const r=K.filter(p=>p.accessor===c);if((r==null?void 0:r.length)>0){const p=r.filter(w=>w==null?void 0:w.value);if(p.length>
11)p.forEach(w=>{const{accessor:h,operator:l,value:g}=w,j=`${Ps}_${P}.${h},${l==="cs"||l==="eq"?gs("o"+l,g):gs(l,g)},${g}`;s.push(j)});else if(p.length===1){const{accessor:w,operator:h,value:l}=p[0];s.push(`${Ps}_${P}.${w},${gs(h,l)},${bi(l,h)}`)}}}),s},[K,P]),$=S.useCallback(async(s={limit:d,page:1})=>{const e=ps();try{const c=`/v3/api/custom/goodbadugly/generic/search/${P}?limit=${s==null?void 0:s.limit}&page=${s==null?void 0:s.page}`;N(!0);const r=await Fs({endpoint:c,method:"POST",payload:{search:n,columns:o==null?void 0:o.columns,filter:M,tree_filter:e},allowToast:!1});if(!(r!=null&&r.error)){a([]);const{data:p,total:w,limit:h,num_pages:l,page:g}=r;let j=p;if(L!=null&&L.length)for(const E of L)["function"].includes(typeof E)&&(j=await E(j,o==null?void 0:o.columns,e));let b=j;o!=null&&o.columns&&(b=await Bs(j,o==null?void 0:o.columns,F,B)),I(()=>b),x(Number(h)),es(l??z),D(Number(g)),fs(Number(w)),cs(Number(g)>1),us(Number(g)+1<=l),N(!1),V&&V(b)}N(!1)}catch{N(!1),V&&V([])}},[P,d,n,o,M,F,B,z,K]),v=S.useCallback(async(s,e,c)=>{N(!0),U.current&&U.current.abort();const r=new AbortController;U.current=r;const p=r.signal,h=[...ps(),...ws,...c==null?void 0:c.filterConditions];try{const l=await Hs.getPaginate(P,{size:e,page:s,...X&&X.length?{join:X}:null,...c!=null&&c.order||o!=null&&o.order?{order:(c==null?void 0:c.order)??(o==null?void 0:o.order),direction:(c==null?void 0:c.direction)??(o==null?void 0:o.direction)}:null,filter:h!=null&&h.length?h:void 0},p);a([]);const{list:g,total:j,limit:b,num_pages:E,page:T}=l;let k=g;o!=null&&o.columns&&(k=await Wi(L,k,o==null?void 0:o.columns),k=await Bs(k,o==null?void 0:o.columns,F,B)),I(()=>k),x(b),es(E),D(T),fs(j),cs(T>1),us(T+1<=E),N(!1),V&&V(k)}catch(l){l.name==="AbortError"||(N(!1),ys(l.message)),V&&V([])}finally{t(l=>({...l,columnsReady:!1})),U.current===r&&(console.info("abortControllerRef.current null"),U.current=null)}},[P,X,ws,B,o,ps,K]),li=S.useCallback(s=>{var c,r,p,w,h;if(!((r=(c=o==null?void 0:o.columns)==null?void 0:c[s])!=null&&r.isSorted))return;const e={...o};(w=(p=e==null?void 0:e.columns)==null?void 0:p[s])!=null&&w.isSortedDesc?e.columns=e==null?void 0:e.columns.map((l,g)=>g===s?{...l,isSortedDesc:!1}:{...l,isSortedDesc:!1}):e.columns=(h=e==null?void 0:e.columns)==null?void 0:h.map((l,g)=>g===s?{...l,isSortedDesc:!0}:{...l,isSortedDesc:!1}),t(l=>{var g,j,b,E;return{...l,...e,order:(j=(g=e==null?void 0:e.columns)==null?void 0:g[s])==null?void 0:j.accessor,direction:(E=(b=e==null?void 0:e.columns)==null?void 0:b[s])!=null&&E.isSortedDesc?"desc":"asc"}}),async function(){var l,g,j,b,E,T,k,zs;n?n&&$({limit:d,page:u}):i!=null&&i.use?(N(!0),i==null||i.fetch(u,d,{filterConditions:[],order:(g=(l=e==null?void 0:e.columns)==null?void 0:l[s])==null?void 0:g.accessor,direction:(b=(j=e==null?void 0:e.columns)==null?void 0:j[s])!=null&&b.isSortedDesc?"desc":"asc"})):await v(u,d,{filterConditions:[],order:(T=(E=e==null?void 0:e.columns)==null?void 0:E[s])==null?void 0:T.accessor,direction:(zs=(k=e==null?void 0:e.columns)==null?void 0:k[s])!=null&&zs.isSortedDesc?"desc":"asc"})}()},[o,u,d,ii,v]),di=S.useCallback(s=>{(async function(){x(s),n?n&&$({limit:s,page:u}):(await v(u,s,{filterConditions:[]}),W(!1))})()},[R,n,u,v,$]),hi=S.useCallback((s,e,c)=>{const r={value:"",config:c,accessor:s,uid:Oi(),operator:e??$i.CONTAINS};hs(p=>[...p,r])},[]),pi=S.useCallback((s,e,c)=>{hs(r=>r.map(p=>(p==null?void 0:p.uid)===c?{...p,[s]:e}:p)),s==="value"&&fi(!0)},[]),gi=S.useCallback(()=>{(async function(){if(n)n&&(i!=null&&i.use&&(i!=null&&i.search)?i==null||i.search(n,o==null?void 0:o.columns,M,{limit:d,page:u-1>0?u-1:u}):$({limit:d,page:u-1>0?u-1:u}));else{if(i!=null&&i.use){N(!0);const s=u-1>0?u-1:u;i==null||i.fetch(s,d)}else await v(u-1>0?u-1:u,d,{filterConditions:[]});W(!1)}})()},[R,n,u,d,v,$]),ni=S.useCallback(s=>{(async function(){D(s),n?n&&(i!=null&&i.use&&(i!=null&&i.search)?i==null||i.search(n,o==null?void 0:o.columns,M,{limit:d,page:s}):$({limit:d,page:s})):(i!=null&&i.use?(N(!0),i==null||i.fetch(s,d)):await v(s,d,{filterConditions:[]}),W(!1))})()},[R,n,d,v,$]),mi=S.useCallback(()=>{(async function(){n?n&&(i!=null&&i.use&&(i!=null&&i.search)?i==null||i.search(n,o==null?void 0:o.columns,M,{limit:d,page:u+1<=z?u+1:u}):$({limit:d,page:u+1<=z?u+1:u})):(i!=null&&i.use?(N(!0),i==null||i.fetch(u+1<=z?u+1:u,d)):await v(u+1<=z?u+1:u,d,{filterConditions:[]}),W(!1))})()},[R,n,u,z,d,v,$]),wi=S.useCallback(async s=>{const e=async c=>{try{ls(!0),H.setTable(P);const r=await H.callRestAPI({id:c}
1,"DELETE");r!=null&&r.error||(I(p=>p.filter(w=>Number(w.id)!==Number(c))),ls(!1),rs(!1))}catch(r){throw ls(!1),rs(!1),ys(r==null?void 0:r.message),new Error(r)}};if(Array.isArray(s))for(const c of s)await e(c);else typeof s=="number"&&await e(s)},[P,B]),Si=S.useCallback(async()=>{try{H.setTable(P),await H.exportCSV()}catch(s){throw new Error(s)}},[P,n,o,J,M]),Ci=S.useCallback(async s=>{var e,c,r;s==null||s.preventDefault(),[(e=s==null?void 0:s.code)==null?void 0:e.toLowerCase(),(c=s==null?void 0:s.key)==null?void 0:c.toLowerCase()].includes("enter")?n?n&&(i!=null&&i.use&&(i!=null&&i.search)?i==null||i.search(n,o==null?void 0:o.columns,M):$({limit:d,page:u})):(i!=null&&i.use?(N(!0),i==null||i.fetch(u,d,{filterConditions:[]})):await v(u,d,{filterConditions:[]}),W(!1)):(oi((r=s==null?void 0:s.target)==null?void 0:r.value),R||W(!0))},[R,n,u,d,v,$]),Ni=S.useCallback(()=>{n?n&&(i!=null&&i.use&&(i!=null&&i.search)?(N(!0),i==null||i.search(n,u,d,{filterConditions:[]})):$({limit:d,page:u})):i!=null&&i.use?(N(!0),i==null||i.fetch(u,d,{filterConditions:[]})):v(u,d,{filterConditions:[]})},[K,P,v,u,d]),ss=S.useCallback((s,e)=>{if(!s)return t(r=>({...r,columns:[...O],columnsReady:!0,views:e}));const c=s!=null&&s.columns?JSON.parse(s==null?void 0:s.columns):[];t(r=>({...r,data:s,views:e,columnId:e!=null&&e.length?s==null?void 0:s.column_id:s==null?void 0:s.id,columnsReady:!0,columns:c!=null&&c.length?c:O}))},[O,o]),vi=S.useCallback(async()=>{var e,c,r,p,w;t(h=>({...h,columnsReady:!1})),Os("columModel",!0);const s=await bs("column_views",{filter:[..._?[`model,eq,'${_}'`]:[`model,eq,'${P}'`],`user_id,eq,${A==null?void 0:A.id}`]});if(!(s!=null&&s.error)&&((e=s==null?void 0:s.data)!=null&&e.length)){const h=s==null?void 0:s.data.find(l=>l==null?void 0:l.current_view);ss(h,(c=s==null?void 0:s.data)==null?void 0:c.reverse())}else{const h=await bs("column",{filter:[..._?[`model,eq,'${_}'`]:[`model,eq,'${P}'`],"user_id,eq,0"]});if(!(h!=null&&h.error)&&((r=h==null?void 0:h.data)!=null&&r.length)){const l={name:"default",default_view:!0,current_view:!0,user_id:A==null?void 0:A.id,model:_||P,column_id:(p=h==null?void 0:h.data[0])==null?void 0:p.id,columns:(w=h==null?void 0:h.data[0])==null?void 0:w.columns},g=await Is("column_views",l,{allowToast:!1});ss({...l,id:g==null?void 0:g.data},[{...l,id:g==null?void 0:g.data}])}else ss(null,[])}Os("columModel",!1)},[_,P,A==null?void 0:A.id,F,B,ss,t]),ji=S.useCallback(s=>{x(s==null?void 0:s.limit),es(s==null?void 0:s.pages),D(s==null?void 0:s.page),fs(s==null?void 0:s.total),cs((s==null?void 0:s.page)>1),us(()=>(s==null?void 0:s.page)+1<=(s==null?void 0:s.pages))},[]);return C.useEffect(()=>{var s;(s=f==null?void 0:f.select)!=null&&s.action&&f.select.action(y)},[y==null?void 0:y.length]),S.useEffect(()=>{var e;const s=(e=o==null?void 0:o.columns)==null?void 0:e.find(c=>c==null?void 0:c.searchable);s&&ci(s==null?void 0:s.accessor)},[]),C.useEffect(()=>{if(js)return t(s=>({...s,columns:[...O],columnsReady:!0,views:[]}));vi()},[_,O==null?void 0:O.length,js]),S.useEffect(()=>{o!=null&&o.columnsReady&&(i!=null&&i.use?(N(!0),i==null||i.fetch(u,d,{filterConditions:[]})):v(u,d,{filterConditions:[]}))},[o==null?void 0:o.columnsReady,i==null?void 0:i.use]),S.useEffect(()=>{Z&&(i!=null&&i.use?(N(!0),i==null||i.fetch(1,d,{filterConditions:Z})):v(1,d,{filterConditions:Z}))},[Z]),S.useEffect(()=>{ri()},[]),m.jsxs("div",{className:`relative grid !h-[auto] !max-h-full !min-h-[auto] w-full min-w-full max-w-full items-start gap-2 ${Ns||"grid-rows-[auto_auto_auto]"}`,children:[vs&&m.jsx("button",{type:"button",ref:vs,onClick:()=>{y!=null&&y.length&&a([])},className:"hidden"}),ns&&m.jsx("button",{type:"button",ref:ns,onClick:()=>{ms&&ms(s=>{I(()=>s==null?void 0:s.data),ji(s)}),N(!1)},className:"hidden"}),Ss&&m.jsx("button",{type:"button",ref:Ss,onClick:()=>{i!=null&&i.use?(N(!0),i==null||i.fetch(u,d,{filterConditions:[]})):v(1,d,{filterConditions:[]})},className:"hidden"}),m.jsxs("div",{className:`flex w-full justify-between ${Y&&Q?"flex-col gap-3":"h-fit items-center"} ${Gs}`,children:[m.jsx("h4",{className:"font-inter flex items-center text-[1rem] font-bold capitalize leading-[1.5rem] tracking-[-0.011em]",children:Y||""}),m.jsxs("div",{className:`flex h-fit flex-col md:flex-row ${Q?"w-full":"w-fit"} items-start justify-between gap-2 text-center md:items-center`,children:[Q?m.jsx(Ai,{onSubmit:Ni,columnData:o,onColumnClick:hi,filterDisplays:Js,setOptionValue:pi,selectedOptions:ds,setSelectedOptions:hs,removeSelectedOption:()=>{}}):null,m.jsxs("div",{className:`flex h-full w-full justify-between gap-2 self
1-end md:w-fit md:flex-row md:justify-end ${!Y&&!Q?"w-full":""}`,children:[Object.keys(f).map((s,e)=>{var c,r,p;if(f[s].show&&f[s].hasOwnProperty("type")&&["toggle"].includes(((c=f[s])==null?void 0:c.type)??""))return m.jsx(Bi,{type:"toggle",onChange:w=>{var h,l,g;(h=f[s])!=null&&h.action&&((g=f[s])==null||g.action((l=w==null?void 0:w.target)==null?void 0:l.checked))},label:((r=f[s])==null?void 0:r.children)??s,value:(p=f[s])==null?void 0:p.value},e)}),Us?m.jsxs("div",{className:"flex cursor-pointer items-center justify-between gap-3 rounded-md border border-black px-2 py-1 focus-within:border-gray-400",children:[m.jsx(Mi,{className:"text-xl text-black"}),m.jsx("input",{type:"text",placeholder:"Search",className:"w-full border-none p-0 placeholder:text-left focus:outline-none",style:{boxShadow:"0 0 transparent"},onKeyDown:s=>{s.key==="Enter"&&s.preventDefault()},onKeyUp:s=>Ci(s)})]}):null,y!=null&&y.length&&is.includes(q.ONTOP)?m.jsx(ts,{children:m.jsx(ki,{actions:f,selectedItems:y})}):null,m.jsxs("div",{className:"flex w-[auto] items-center justify-end gap-2 self-end",children:[Object.keys(f).map((s,e)=>{var c,r,p,w,h,l;if(f[s].show&&f[s].hasOwnProperty("type")&&["static"].includes(((c=f[s])==null?void 0:c.type)??""))return m.jsxs(Ms,{onClick:()=>{var g,j,b;(g=f[s])!=null&&g.action&&((b=f[s])==null||b.action((j=f[s])==null?void 0:j.value))},title:((r=f[s])==null?void 0:r.title)??s,showPlus:!1,className:`!h-[2.5rem] ${(p=f[s])==null?void 0:p.className}`,loading:((w=f[s])==null?void 0:w.loading)??!1,disabled:((h=f[s])==null?void 0:h.disabled)??!1,icon:((l=f[s])==null?void 0:l.icon)??null,children:[s==="delete"?m.jsx(Ri,{}):null,f[s].children?f[s].children:m.jsx(m.Fragment,{children:Ki.Capitalize(s==="delete"?"Remove":s,{separator:" "})})]},e)}),(($s=f==null?void 0:f.export)==null?void 0:$s.show)&&m.jsx(_i,{showText:(Es=f==null?void 0:f.export)==null?void 0:Es.showText,onClick:Si,className:`mx-1 !h-[2.5rem] ${(_s=f==null?void 0:f.export)==null?void 0:_s.className}`}),((Ls=f==null?void 0:f.add)==null?void 0:Ls.show)&&m.jsx(Ms,{onClick:()=>{var s,e,c;(s=f==null?void 0:f.add)!=null&&s.action&&((c=f==null?void 0:f.add)==null||c.action((e=f==null?void 0:f.add)==null?void 0:e.value))},showChildren:(As=f==null?void 0:f.add)==null?void 0:As.showChildren,className:`!h-[2.5rem] ${(ks=f==null?void 0:f.add)==null?void 0:ks.className}`,children:(Vs=f==null?void 0:f.add)==null?void 0:Vs.children})]})]})]})]}),m.jsx(Vi,{onSort:li,actions:f,actionId:Rs,useImage:Qs,tableRole:Ws,deleteItem:wi,columnData:o,popoverShown:ui,allowEditing:Ts,setColumnData:t,actionPostion:is,deleteLoading:si,selectedItems:y,showScrollbar:Zs,showDeleteModal:as,noDataComponent:Ys,allowSortColumns:qs,currentTableData:G,setSelectedItems:a,setShowDeleteModal:rs,loading:ei||(os==null?void 0:os.loading)||(i==null?void 0:i.loading),columns:o==null?void 0:o.columns}),y!=null&&y.length&&is.includes(q.OVERLAY)?m.jsx(ts,{children:m.jsx(zi,{actions:f,selectedItems:y,currentTableData:G})}):null,Ks&&(G!=null&&G.length)?m.jsx("div",{className:"mt-4 w-full",children:m.jsx(Li,{currentPage:u,pageCount:z,pageSize:d,startSize:Cs,canPreviousPage:xs,canNextPage:Ds,updatePageSize:di,previousPage:gi,nextPage:mi,multiplier:16,updateCurrentPage:ni,canChangeLimit:Xs})}):null]})},Eo=S.memo(Ti);export{Eo as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.