@flexkit/studio 0.2.15 → 0.2.17
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/{chat-page-L427VVVR.js → chat-page-X3MIN6YC.js} +3 -3
- package/dist/{chat-page-L427VVVR.js.map → chat-page-X3MIN6YC.js.map} +1 -1
- package/dist/{chunk-6YJ3DLIU.js → chunk-3KMR2CXS.js} +2 -2
- package/dist/{chunk-6YJ3DLIU.js.map → chunk-3KMR2CXS.js.map} +1 -1
- package/dist/{chunk-XWBACTNR.js → chunk-7ZFUS62K.js} +3 -3
- package/dist/{chunk-XWBACTNR.js.map → chunk-7ZFUS62K.js.map} +1 -1
- package/dist/{chunk-R64ELY3B.js → chunk-D6H64Z37.js} +3 -3
- package/dist/{chunk-R64ELY3B.js.map → chunk-D6H64Z37.js.map} +1 -1
- package/dist/{chunk-7ELMTFZ4.js → chunk-FDN23BPI.js} +2 -2
- package/dist/{chunk-7ELMTFZ4.js.map → chunk-FDN23BPI.js.map} +1 -1
- package/dist/chunk-FNWEP2NM.js +2 -0
- package/dist/chunk-FNWEP2NM.js.map +1 -0
- package/dist/{chunk-MJVWFANP.js → chunk-PKAWL5W4.js} +3 -3
- package/dist/{chunk-MJVWFANP.js.map → chunk-PKAWL5W4.js.map} +1 -1
- package/dist/{chunk-MGXG5PWU.js → chunk-RNMAR527.js} +3 -3
- package/dist/{chunk-MGXG5PWU.js.map → chunk-RNMAR527.js.map} +1 -1
- package/dist/{chunk-P5ZRTZ5Z.js → chunk-RYKUNA7Z.js} +2 -2
- package/dist/{chunk-P5ZRTZ5Z.js.map → chunk-RYKUNA7Z.js.map} +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -1
- package/dist/{list-WJLU3K2X.js → list-EXNTXASK.js} +2 -2
- package/dist/{list-WJLU3K2X.js.map → list-EXNTXASK.js.map} +1 -1
- package/dist/{pages-3EK5GS2T.js → pages-NWZLOKQM.js} +3 -3
- package/dist/{pages-3EK5GS2T.js.map → pages-NWZLOKQM.js.map} +1 -1
- package/dist/{plugin-pages-PQO22EOE.js → plugin-pages-2KMZFNFB.js} +2 -2
- package/dist/{plugin-pages-PQO22EOE.js.map → plugin-pages-2KMZFNFB.js.map} +1 -1
- package/dist/{root-ZF62TR5Z.js → root-A6FK3OR6.js} +2 -2
- package/dist/{root-ZF62TR5Z.js.map → root-A6FK3OR6.js.map} +1 -1
- package/dist/{root-YNGCF5QM.js → root-BRCN3D2D.js} +3 -3
- package/dist/{root-YNGCF5QM.js.map → root-BRCN3D2D.js.map} +1 -1
- package/dist/{root-BA7BLCFR.js → root-CUNQWMK4.js} +3 -3
- package/dist/{root-BA7BLCFR.js.map → root-CUNQWMK4.js.map} +1 -1
- package/dist/{root-4EALW3G6.js → root-SCCUPXFD.js} +2 -2
- package/dist/{root-4EALW3G6.js.map → root-SCCUPXFD.js.map} +1 -1
- package/dist/search-7IJJYUSR.js +2 -0
- package/dist/search-7IJJYUSR.js.map +1 -0
- package/dist/{skills-pages-HIBSAVOP.js → skills-pages-4ELHNJVY.js} +2 -2
- package/dist/{skills-pages-HIBSAVOP.js.map → skills-pages-4ELHNJVY.js.map} +1 -1
- package/package.json +4 -4
- package/dist/chunk-W7Z4MY43.js +0 -2
- package/dist/chunk-W7Z4MY43.js.map +0 -1
- package/dist/search-QHMCAT7O.js +0 -2
- package/dist/search-QHMCAT7O.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import'./index.css';import {c as c$3,a as a$3}from'./chunk-
|
|
1
|
+
import'./index.css';import {c as c$3,a as a$3}from'./chunk-3KMR2CXS.js';import {a as a$1}from'./chunk-FNWEP2NM.js';import {a as a$2}from'./chunk-3C2EG3SI.js';import {s,K,u,v,w,y as y$1,D,j,e,h,g,B,C,x as x$1,F,H,G,I}from'./chunk-RNMAR527.js';import {c}from'./chunk-P6BZ4QP7.js';import {b as b$4}from'./chunk-CAZ6EUR2.js';import {b as b$1}from'./chunk-ZZRA4567.js';import'./chunk-2DXR5NJV.js';import {f,b}from'./chunk-7ZFUS62K.js';import'./chunk-2HYQVMP3.js';import'./chunk-5CVDMZUI.js';import {x,y,z,s as s$1,ma,c as c$4,d as d$1,o as o$2}from'./chunk-YCCFUGWJ.js';import {c as c$2,d,h as h$1,i,k,l,j as j$1,w as w$1,n,o as o$1,p,q,r,t as t$1,s as s$2}from'./chunk-32ZU4MLE.js';import'./chunk-HDOIOXMP.js';import {e as e$2,g as g$1,h as h$2,j as j$2,o,t}from'./chunk-SZEGGBOC.js';import'./chunk-U45E5X3H.js';import {a,b as b$2,c as c$1,e as e$1}from'./chunk-USNXQOMJ.js';import {b as b$3}from'./chunk-6NRQMG26.js';import'./chunk-O2QMYUPS.js';import {useState,useMemo,useCallback,useRef,useEffect}from'react';import {TagIcon,PlusIcon,Loader2,Ellipsis,Check,Copy,Link,MinusIcon,Trash2,LoaderCircle,Search,X,ImagePlayIcon,ImageIcon,FilePlayIcon,LayersIcon,SplinePointerIcon,ListChecks,Trash2Icon,LayoutGrid,List}from'lucide-react';import {gql}from'@apollo/client';import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {useLocation,Outlet,useParams}from'react-router-dom';import {useReactTable,getSortedRowModel,getPaginationRowModel,getFilteredRowModel,getCoreRowModel}from'@tanstack/react-table';import {defaultStyles,FileIcon}from'react-file-icon';var we={where:{},limit:500,offset:0,sort:[{name:"ASC"}]},Y={selection:"display",includeCount:false};function Pt(){let{scope:e$3}=c(),{currentProjectSchema:n}=f(),[t,a$1,i$1]=D(),[f$1,c$3]=useState(""),[d$1,w]=useState(false),[v,u$1]=useState(false),[l$1,r]=useState(null),[M,g$2]=useState(false),[E,I]=useState(null),[J,x]=useState(""),[_,U]=useState(false),[R,B]=useState(false),h$3=b$1(),D$1="_tag",m="_tags",{data:C,isLoading:S}=u({entityNamePlural:m,schema:n,scope:e$3,variables:we,...Y}),z=(Array.isArray(C)?C:[]).map(s=>{let O=s;return {_id:O._id,name:O.name}}),L=useCallback(async()=>{let s=f$1.trim();if(!s)return;U(true);let O=typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`${Date.now()}`,F=j(m,n,{name:{value:s,disabled:false,scope:"default"}},O),H=e(m,e$3,n,Y),K=gql`
|
|
2
2
|
${H.query}
|
|
3
3
|
`;await new Promise(y=>{a$1(gql`
|
|
4
4
|
${F}
|
|
@@ -19,5 +19,5 @@ import'./index.css';import {c as c$3,a as a$3}from'./chunk-6YJ3DLIU.js';import {
|
|
|
19
19
|
${D}
|
|
20
20
|
`),w({variables:{where:{_id:{in:e}}},onCompleted:S=>{x(S),m();},onError:S=>C(S)}),c$1(!0);}),a?.(),I(),t(null);}catch{}finally{M(false);}}},[x,e,r$1,a,t,I,c$1,v,i,u$1,d,w]),U=useCallback(async()=>{if(!(e.length===0||u$1.length===0||r$1)){M(true);try{let h={tags:{relationships:{disconnect:u$1},disabled:!1,scope:i}},D=g("_assets",e[0]??"",i,v,{},h,{responseFields:Vt});await new Promise((m,C)=>{d(gql`
|
|
21
21
|
${D}
|
|
22
|
-
`),w({variables:{where:{_id:{in:e}}},onCompleted:S=>{x(S),m();},onError:S=>C(S)}),c$1(!0);}),a?.(),I(),t(null);}catch{}finally{M(false);}}},[x,e,r$1,a,t,I,c$1,v,i,u$1,d,w]),R=n$1==="remove",B=R?"Remove tag(s)":"Add tag(s)";return e.length>1&&(B=R?"Remove tag(s) from selected assets":"Add tag(s) to selected assets"),jsxs(n,{open:n$1!==null,onOpenChange:J,children:[jsx(o$1,{placeholder:"Search tags..."}),jsxs(p,{className:"fk:h-75",children:[jsx(q,{children:"No tags found."}),jsx(r,{heading:"Tags",children:E.map(h=>{let D=u$1.includes(h._id);return jsxs(t$1,{disabled:r$1,onSelect:()=>{r$1||l(m=>D?m.filter(C=>C!==h._id):[...m,h._id]);},children:[jsx("input",{className:"fk:mr-2",checked:D,onChange:()=>{},type:"checkbox"}),h.name]},h._id)})})]}),jsx(s$2,{}),jsx("div",{className:"fk:p-2",children:jsxs(b$3,{className:"fk:w-full",disabled:u$1.length===0||r$1,onClick:R?U:_,children:[r$1?jsx(LoaderCircle,{className:"fk:mr-2 fk:h-4 fk:w-4 fk:animate-spin"}):null,B]})})]})}function qe({overlay:e=false,row:n}){let[t,a]=useState(null),[i,f]=useState(null),c=B(),d=b$1(),w=n.original,v=w._id??"",u=w.url??"";function l(){c({type:"DeleteEntity",payload:{entityId:v,entityName:b.name}});}function r(g,E){navigator.clipboard.writeText(E),a(g),window.setTimeout(()=>a(null),1500);}return jsxs(Fragment,{children:[jsxs(e$2,{children:[jsx(g$1,{asChild:true,children:jsxs(b$3,{className:e?"fk:flex fk:h-7 fk:w-7 fk:p-0 fk:text-white fk:group-hover:bg-background/10 fk:group-hover:text-white! fk:data-[state=open]:bg-background/15":"fk:flex fk:h-8 fk:w-8 fk:p-0 fk:data-[state=open]:bg-muted",onClick:g=>g.stopPropagation(),variant:"ghost",children:[jsx(Ellipsis,{className:"fk:h-4 fk:w-4"}),jsx("span",{className:"fk:sr-only",children:"Open menu"})]})}),jsxs(h$2,{align:"start",className:"fk:w-45",children:[jsxs(j$2,{disabled:!v,onClick:g=>{g.stopPropagation(),r("id",v);},children:[t==="id"?jsx(Check,{className:"fk:mr-2 fk:h-4 fk:w-4"}):jsx(Copy,{className:"fk:mr-2 fk:h-4 fk:w-4"}),"Copy ID"]}),jsxs(j$2,{disabled:!u,onClick:g=>{g.stopPropagation(),r("url",u);},children:[t==="url"?jsx(Check,{className:"fk:mr-2 fk:h-4 fk:w-4"}):jsx(Link,{className:"fk:mr-2 fk:h-4 fk:w-4"}),"Copy URL"]}),jsx(o,{}),jsxs(j$2,{disabled:!v||!d,onClick:g=>{g.stopPropagation(),f("add");},children:[jsx(TagIcon,{className:"fk:mr-2 fk:h-4 fk:w-4"}),"Add tag"]}),jsxs(j$2,{disabled:!v||!d,onClick:g=>{g.stopPropagation(),f("remove");},children:[jsx(MinusIcon,{className:"fk:mr-2 fk:h-4 fk:w-4"}),"Remove tag"]}),jsx(o,{}),jsxs(j$2,{className:"fk:text-destructive",disabled:!v||!d,onClick:g=>{g.stopPropagation(),l();},children:[jsx(Trash2,{className:"fk:mr-2 fk:h-4 fk:w-4"}),"Delete"]})]})]}),i!==null?jsx(Ve,{assetIds:v?[v]:[],mode:i,onModeChange:f}):null]})}var Do=FileIcon,Co="fk:bg-[#fafafa] [--asset-checker:#f0f0f0] [background-image:linear-gradient(45deg,var(--asset-checker)_25%,transparent_25%),linear-gradient(-45deg,var(--asset-checker)_25%,transparent_25%),linear-gradient(45deg,transparent_75%,var(--asset-checker)_75%),linear-gradient(-45deg,transparent_75%,var(--asset-checker)_75%)] [background-position:0_0,0_4px,4px_-4px,-4px_0px] [background-size:8px_8px] fk:dark:bg-[#222] dark:[--asset-checker:#2a2a2a]";function To(e){return e==null||Number.isNaN(e)?"":e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function Bt({columns:e,data:n,entityName:t$1,hasMore:a=false,isLoading:i=false,isLoadingMore:f=false,onLoadMore:c,onSortingChange:d,pageSize:w,sorting:v,toolbarComponent:u}){let l=useRef(null),{schemaErrorMessage:r}=s(),[M,g]=useState({}),[E,I]=useState({}),[J,x]=useState([]),[_,U]=useState([]),R=v??_;useEffect(()=>{l.current?.scrollTo({top:0});},[t$1]);function B(b){if(d){d(b);return}U(b);}let h=useReactTable({data:n,columns:e,state:{sorting:R,columnVisibility:E,rowSelection:M,columnFilters:J},initialState:{pagination:{pageSize:w??50}},enableRowSelection:true,onRowSelectionChange:g,onSortingChange:B,onColumnFiltersChange:x,onColumnVisibilityChange:I,getCoreRowModel:getCoreRowModel(),getFilteredRowModel:getFilteredRowModel(),getPaginationRowModel:getPaginationRowModel(),getSortedRowModel:getSortedRowModel(),getRowId:b=>b._id,manualFiltering:true,manualPagination:true,manualSorting:true}),{rows:D}=h.getRowModel(),m=useRef(c),C=useRef(a),S=useRef(f);m.current=c,C.current=a,S.current=f;let z=useCallback(b=>{if(!m.current||!C.current||S.current)return;let s=b??l.current;s&&x$1(s)&&(S.current=true,m.current());},[]),L=b$4();useEffect(()=>{L&&z();},[z,D.length,a,f,L]);function q(b){z(b.currentTarget);}return r?jsx(Fragment,{}):jsxs("div",{className:"fk:flex fk:h-full fk:min-h-0 fk:w-full fk:min-w-0 fk:flex-col fk:gap-4",children:[u?u(h):null,jsxs("div",{className:"fk:relative fk:min-h-0 fk:min-w-0 fk:flex-1",children:[f?jsx("div",{"aria-hidden":true,className:"fk:pointer-events-none fk:absolute fk:top-0 fk:right-px fk:left-px fk:z-20 fk:h-0.5 fk:overflow-hidden fk:opacity-40",children:jsx("div",{className:"fk:animate-progress fk:h-full fk:w-full fk:bg-foreground"})}):null,jsxs("div",{className:"fk:h-full fk:overflow-auto fk:pt-px fk:pb-20 fk:-ml-0.5 fk:pr-3",onScroll:q,ref:l,children:[i?jsx("div",{className:"fk:grid fk:grid-cols-[repeat(auto-fill,minmax(10rem,1fr))] fk:gap-3",children:Array.from({length:w??50},(b,s)=>jsxs("div",{className:"fk:rounded-md fk:border fk:border-border fk:p-2 fk:corner-squircle",children:[jsx(t,{className:"fk:aspect-square fk:w-full fk:rounded-sm fk:corner-squircle"}),jsx(t,{className:"fk:mt-2 fk:h-3 fk:w-[75%]"}),jsx(t,{className:"fk:mt-1.5 fk:h-3 fk:w-[50%]"})]},`skeleton-${s}`))}):null,!i&&D.length===0?jsx("div",{className:"fk:flex fk:h-24 fk:items-center fk:justify-center fk:text-sm fk:text-muted-foreground",children:"No results."}):null,!i&&D.length>0?jsx("div",{className:"fk:grid fk:grid-cols-[repeat(auto-fill,minmax(10rem,1fr))] fk:pl-0.5 fk:gap-3",children:D.map(b=>jsx(So,{row:b},b.id))}):null]})]})]})}function So({row:e}){let n=e.original,t=F(n)||"Untitled",a=n.mimeType??"",i=To(n.size),f=e.getIsSelected(),c=[a,i].filter(Boolean).join(" \xB7 ");return jsxs("div",{className:`fk:relative fk:rounded-md fk:border fk:p-2 fk:transition-colors ${f?"fk:border-primary fk:ring-1 fk:ring-primary/40 fk:bg-muted/40":"fk:border-border fk:bg-background fk:hover:border-muted-foreground/30"} fk:corner-squircle`,"data-state":f?"selected":void 0,children:[jsx("div",{className:"fk:absolute fk:left-3 fk:top-3 fk:z-10 fk:mix-blend-difference",children:jsx(o$2,{className:"fk:border-white!","aria-label":`Select ${t}`,checked:f,onCheckedChange:d=>{e.toggleSelected(!!d);},onClick:d=>d.stopPropagation()})}),jsx("div",{className:"fk:group fk:absolute fk:right-2 fk:top-2 fk:z-10 fk:mix-blend-difference",children:jsx(qe,{overlay:true,row:e})}),jsx(No,{asset:n,filename:t}),jsx("div",{className:"fk:mt-2 fk:truncate fk:text-xs fk:font-medium",title:t,children:t}),c?jsx("div",{className:"fk:mt-0.5 fk:truncate fk:text-[11px] fk:text-muted-foreground",title:c,children:c}):null]})}function No({asset:e,filename:n}){let[t,a]=useState(false),[i$1,f]=useState(false),c=e.url??"";if(!c&&!e.path)return jsx("div",{className:"fk:flex fk:aspect-square fk:items-center fk:justify-center fk:rounded-sm fk:bg-muted fk:corner-squircle",children:jsx("span",{className:"fk:text-xs fk:text-muted-foreground",children:"No preview"})});if(!H(e)||!c){let r=G(e),M=defaultStyles[r];return jsx("div",{className:"fk:flex fk:aspect-square fk:items-center fk:justify-center fk:rounded-sm fk:bg-muted fk:[&>svg]:h-12 fk:[&>svg]:w-auto fk:corner-squircle",children:jsx(Do,{extension:r,...M||{}})})}let w=I(c,{width:320,height:320}),v=c;function u(r){r.stopPropagation(),f(false),a(true);}function l$1(r){a(r),r||f(false);}return jsxs(Fragment,{children:[jsx("button",{className:`fk:aspect-square fk:w-full fk:cursor-zoom-in fk:overflow-hidden fk:rounded-sm fk:border-0 fk:p-0 ${Co} fk:corner-squircle`,onClick:u,type:"button",children:jsx("img",{alt:n,className:"fk:h-full fk:w-full fk:object-contain",src:w})}),jsx(c$2,{open:t,onOpenChange:l$1,children:jsxs(h$1,{className:"fk:sm:max-w-4xl fk:p-3",children:[jsxs(i,{children:[jsx(k,{className:"fk:sr-only",children:"Asset preview"}),jsx(l,{className:"fk:sr-only",children:"Enlarged asset preview"})]}),jsxs("div",{className:"fk:relative fk:flex fk:h-[min(85vh,56rem)] fk:w-full fk:items-center fk:justify-center fk:overflow-hidden fk:rounded-md fk:corner-squircle",children:[i$1?null:jsx(LoaderCircle,{"aria-label":"Loading image",className:"fk:absolute fk:h-8 fk:w-8 fk:animate-spin fk:text-muted-foreground"}),jsx("img",{alt:n,className:`fk:max-h-full fk:max-w-full fk:object-contain fk:transition-opacity ${i$1?"fk:opacity-100":"fk:opacity-0"}`,onError:()=>f(true),onLoad:()=>f(true),src:v})]})]})})]})}var Uo=[{value:"image/gif",label:"GIF",icon:ImagePlayIcon},{value:"image/jpeg",label:"JPEG",icon:ImageIcon},{value:"video/mp4",label:"MP4",icon:FilePlayIcon},{value:"image/png",label:"PNG",icon:LayersIcon},{value:"image/svg+xml",label:"SVG",icon:SplinePointerIcon},{value:"image/webp",label:"WebP",icon:ImageIcon}];function Ze({entityName:e,isUploading:n=false,table:t,viewMode:a,onUploadClick:i,onViewModeChange:f$1,onSearchLoadingChange:c$1,onSearchWhereChange:d}){let w=t.getState().columnFilters.length>0,{projectId:v}=useParams(),u$1=B(),{scope:l}=c(),[r,M]=useState(null),{currentProjectSchema:g}=f(),E=b$1(),[I,J]=useState(""),x=useRef({}),_=useRef({});function U(){return {searchRequests:{searches:[{collection:"_assets"},{collection:"_tags"}]},commonParams:{q:""}}}let R=useMemo(()=>U(),[]),[B$1,h]=useState(R),{results:D,isLoading:m}=a$1(v??"",B$1),C$1=useRef(""),S=I.trim(),z=B$1.commonParams.q??"",L=S.length>0&&(m||z!==S),q=useMemo(()=>Bo(p=>{h({...R,commonParams:{q:p}});},300),[R]);useEffect(()=>()=>{q.cancel();},[q]);let b=t.getSelectedRowModel().rows.map(p=>p.original._id),{data:s}=u({entityNamePlural:"_tags",schema:g,scope:l,variables:we,...Y}),O=useMemo(()=>(Array.isArray(s)?s:[]).map(N=>({_id:N._id,name:N.name})),[s]),Z=useMemo(()=>O.map(p=>({value:p._id,label:p.name})),[O]),F=useCallback(()=>{if(!d)return;let p=[];Object.keys(x.current).length>0&&p.push(x.current),Object.keys(_.current).length>0&&p.push(_.current);let N=p.length===0?{}:p.length===1?p[0]:{AND:p},j=JSON.stringify(N);C$1.current!==j&&(C$1.current=j,d(N));},[d]);function H(){q.cancel(),J(""),h({...R,commonParams:{q:""}}),x.current={},F();}async function K(){u$1({type:"AlertDialog",payload:{options:{dialogTitle:`Delete ${b.length} asset${b.length>1?"s":""}`,dialogMessage:b.length>1?"Are you sure you want to delete the selected assets? They will be deleted permanently.":"Are you sure you want to delete the selected asset? The item will be deleted permanently.",dialogCancelTitle:"Cancel",dialogActionLabel:"Delete",isDestructive:true,dialogActionCancel:()=>{},dialogActionSubmit:()=>{u$1({type:"DeleteEntity",_id:`delete-batch-${Date.now()}`,payload:{entityId:b,entityName:e,silent:true}}),t.resetRowSelection();}}}});}useEffect(()=>{c$1?.(L);},[L,c$1]),useEffect(()=>{if(!d)return;if(S.length===0){x.current={},F();return}if(L)return;let p=D??[],N={};if(p.length===0)N={_id:{in:[]}};else {let j=p.filter(V=>V._entityNamePlural==="_assets").map(V=>V._id),xe=p.filter(V=>V._entityNamePlural==="_tags").map(V=>({tags:{some:{_id:{eq:V._id}}}})),Q=[];j.length>0&&Q.push({_id:{in:j}}),Q.push(...xe),Q.length===0?N={_id:{in:[]}}:Q.length===1?N=Q[0]:N={OR:Q};}x.current=N,F();},[F,L,d,D,S]);let y=JSON.stringify(t.getState().columnFilters);return useEffect(()=>{if(!d)return;let p=t.getState().columnFilters.find(V=>V.id==="mimeType"),N=Array.isArray(p?.value)?p?.value:[],j=t.getState().columnFilters.find(V=>V.id==="tags"),xe=Array.isArray(j?.value)?j?.value:[],Q=[];if(N.length>0&&Q.push({mimeType:{in:N}}),xe.length>0){let V=xe.map(Zt=>({tags:{some:{_id:{eq:Zt}}}}));Q.push(V.length===1?V[0]:{OR:V});}Q.length===0?_.current={}:Q.length===1?_.current=Q[0]:_.current={AND:Q},F();},[y,F,d,t]),jsxs("div",{className:"fk:flex fk:items-center fk:justify-between fk:pr-3",children:[jsxs("div",{className:"fk:flex fk:flex-1 fk:items-center fk:space-x-2",children:[jsxs("div",{className:"fk:relative",children:[m?jsx(LoaderCircle,{className:"fk:absolute fk:left-2 fk:top-2 fk:h-4 fk:w-4 fk:shrink-0 fk:opacity-50 fk:animate-spin"}):jsx(Search,{className:"fk:absolute fk:left-2 fk:top-2 fk:h-4 fk:w-4 fk:shrink-0 fk:opacity-50"}),jsx(s$1,{placeholder:"Search assets...",name:"search-assets",value:I,onChange:p=>{let{value:N}=p.target;if(J(N),N.trim().length===0){H();return}q(N.trim());},className:"fk:h-8 fk:w-37.5 fk:lg:w-70 fk:px-7"}),I?jsx(b$3,{"aria-label":"Clear search",className:"fk:absolute fk:right-1 fk:top-1 fk:h-6 fk:w-6 fk:text-muted-foreground fk:hover:text-foreground fk:hover:bg-foreground/10 fk:cursor-pointer fk:rounded-full fk:bg-transparent fk:corner-squircle",onClick:H,type:"button",children:jsx(X,{className:"fk:h-4 fk:w-4"})}):null]}),t.getColumn("mimeType")&&jsx(a$2,{column:t.getColumn("mimeType"),options:Uo,title:"File type"}),t.getColumn("tags")&&jsx(a$2,{column:t.getColumn("tags"),options:Z,title:"Tags"}),w&&jsxs(b$3,{variant:"ghost",onClick:()=>{t.resetColumnFilters(),_.current={},F();},className:"fk:h-8 fk:px-2 fk:lg:px-3",children:["Reset",jsx(X,{className:"fk:ml-2 fk:h-4 fk:w-4"})]}),jsx(C,{table:t})]}),b.length>0?jsx("div",{className:"fk:flex fk:items-center fk:gap-2",children:jsxs(e$2,{children:[jsx(ma,{disabled:!E,children:jsx(g$1,{asChild:true,children:jsxs(b$3,{className:"fk:h-8 fk:mr-2 fk:lg:flex",disabled:!E,size:"sm",variant:"secondary",children:["Actions ",jsx(ListChecks,{className:"fk:ml-2 fk:h-4 fk:w-4"})]})})}),jsxs(h$2,{align:"end",className:"fk:w-[240px]",children:[jsxs(j$2,{onClick:()=>M("add"),children:[jsx(TagIcon,{className:"fk:mr-2 fk:h-4 fk:w-4"})," Add tag"]}),jsxs(j$2,{onClick:()=>M("remove"),children:[jsx(MinusIcon,{className:"fk:mr-2 fk:h-4 fk:w-4"})," Remove tag"]}),jsx(o,{}),jsxs(j$2,{onClick:K,className:"fk:text-destructive",children:[jsx(Trash2Icon,{className:"fk:mr-2 fk:h-4 fk:w-4"})," Delete asset",b.length>1?"s":""," (",b.length,")"]})]})]})}):null,jsxs("div",{className:"fk:ml-auto fk:flex fk:items-center fk:gap-2",children:[jsxs(c$4,{size:"sm",type:"single",value:a,onValueChange:p=>{(p==="list"||p==="grid")&&f$1(p);},children:[jsx(d$1,{"aria-label":"Grid view",value:"grid",children:jsx(LayoutGrid,{className:"fk:h-4 fk:w-4"})}),jsx(d$1,{"aria-label":"List view",value:"list",children:jsx(List,{className:"fk:h-4 fk:w-4"})})]}),jsx(ma,{disabled:!E,children:jsxs(b$3,{"aria-busy":n,className:"fk:h-8 fk:lg:flex",disabled:!E||n,onClick:i,size:"sm",variant:"default",children:[n?jsx(LoaderCircle,{className:"fk:mr-2 fk:h-4 fk:w-4 fk:animate-spin"}):null,"Upload assets"]})})]}),r!==null?jsx(Ve,{assetIds:b,mode:r,onCompleted:()=>t.resetRowSelection(),onModeChange:M}):null]})}function Bo(e,n=300){let t,a=function(...i){t!==void 0&&clearTimeout(t),t=setTimeout(()=>{t=void 0,e.apply(this,i);},n);};return a.cancel=()=>{t!==void 0&&(clearTimeout(t),t=void 0);},a}var Go=4*1024*1024;function $t(){let{projectId:e}=useParams(),n=c$3(),t=b$1(),[a,i]=useState(false);async function f(c){if(!(!t||a)&&!(c&&c.length===0))try{await n({files:c,maxBytes:Go,multiple:!0,onUploadStart:()=>{i(!0);},projectId:e});}finally{i(false);}}return {canMutate:t,isUploading:a,uploadFiles:c=>f(c),uploadFromDialog:()=>f()}}var Jt="flexkit-asset-manager:viewMode";function Xt(){if(typeof localStorage>"u")return "grid";try{let e=localStorage.getItem(Jt);if(e==="list"||e==="grid")return e}catch{}return "grid"}function Ht(e){if(!(typeof localStorage>"u"))try{localStorage.setItem(Jt,e);}catch{}}var Me=36,Xo=[{_updatedAt:"DESC"},{_id:"DESC"}];function jt(){let e="_assets",{search:n}=useLocation(),a=new URLSearchParams(n).get("id"),{scope:i}=c(),{schemaErrorMessage:f$1}=s(),{currentProject:c$1}=f(),d=c$1?.schema??[],[w$1,v$1]=useState([]),[u$1,l]=useState(()=>Xt()),r=K({attributesSchema:b.attributes,actionsComponent:y=>jsx(qe,{row:y}),checkboxSelect:"multiple",enableColumnSorting:true}),[M,g]=useState({}),[E,I]=useState(false),{canMutate:J,isUploading:x,uploadFiles:_,uploadFromDialog:U}=$t(),R=useMemo(()=>{let y=a?{_id:{eq:a}}:{NOT:{path:{eq:null}}};return !M||Object.keys(M).length===0||a?y:{AND:[y,M]}},[a,M]),B=useMemo(()=>{if(w$1.length===0)return Xo;let y=w$1.map(({id:N,desc:j})=>({[N]:j?"DESC":"ASC"}));return y.some(N=>"_id"in N)?y:[...y,{_id:"DESC"}]},[w$1]),h=useMemo(()=>({where:R,offset:0,limit:Me,sort:B}),[R,B]);function D(y){v$1(y);}function m(y){l(y),Ht(y);}let{isLoading:C,isLoadingMore:S,fetchMore:z,count:L,data:q,isProjectDisabled:b$1}=u({entityNamePlural:e,schema:d,scope:i,variables:h,selection:"list"}),s$1=E||C&&(q==null||q.length===0),O=q?.length??0,Z=!E&&L>0&&O>0&&O<L,F=useCallback(()=>{z({variables:{offset:0,limit:Me}});},[z]),H=useMemo(()=>Array.from({length:Me},(y,p)=>({_id:`loading-${p}`})),[]),K$1=useMemo(()=>Ho(r),[r]);return b$1?jsx("div",{className:"fk:flex fk:flex-col fk:h-full fk:pl-3",children:jsx(v,{})}):jsxs("div",{className:"fk:flex fk:flex-col fk:h-full fk:pl-3",children:[jsx(w,{}),jsxs("div",{className:"fk:mb-4 fk:flex fk:items-center fk:gap-2 fk:pr-3",children:[jsx("h2",{className:"fk:text-lg fk:font-semibold fk:leading-none fk:tracking-tight",children:"Asset Manager"}),s$1?null:jsxs("span",{className:"fk:ml-auto fk:text-sm fk:font-normal fk:text-muted-foreground",children:[L.toLocaleString()," ",L===1?"record":"records"]})]}),f$1?null:jsx(Rt,{disabled:!J||x,onDropFiles:_,children:u$1==="list"?jsx(y$1,{classNames:{row:"fk:h-20"},columns:s$1?K$1:r,data:s$1?H:q??[],entityName:b.name,hasMore:Z,isLoadingMore:S,pageSize:Me,sorting:w$1,onLoadMore:F,onSortingChange:D,toolbarComponent:y=>jsx(Ze,{entityName:b.name,isUploading:x,table:y,viewMode:u$1,onSearchLoadingChange:I,onSearchWhereChange:g,onUploadClick:U,onViewModeChange:m})}):jsx(Bt,{columns:r,data:s$1?[]:q??[],entityName:b.name,hasMore:Z,isLoading:s$1,isLoadingMore:S,pageSize:Me,sorting:w$1,onLoadMore:F,onSortingChange:D,toolbarComponent:y=>jsx(Ze,{entityName:b.name,isUploading:x,table:y,viewMode:u$1,onSearchLoadingChange:I,onSearchWhereChange:g,onUploadClick:U,onViewModeChange:m})})}),jsx(Outlet,{})]})}function Ho(e){return e.map(n=>({...n,cell:()=>jsx(t,{className:"fk:h-4 fk:w-full",style:{marginTop:"7px",marginBottom:"6px"}})}))}function zn(){return jsxs(x,{orientation:"horizontal",className:"fk:h-full",children:[jsx(y,{className:"fk:p-3",defaultSize:"82%",children:jsx("div",{className:"fk:flex fk:flex-col fk:h-full",children:jsx(jt,{})})}),jsx(z,{className:"fk:hover:bg-blue-500 fk:transition-colors",withHandle:true}),jsx(y,{defaultSize:"18%",minSize:"10%",children:jsx("div",{className:"fk:sm:hidden fk:md:block",children:jsx(Pt,{})})})]})}export{zn as Root};//# sourceMappingURL=root-BA7BLCFR.js.map
|
|
23
|
-
//# sourceMappingURL=root-
|
|
22
|
+
`),w({variables:{where:{_id:{in:e}}},onCompleted:S=>{x(S),m();},onError:S=>C(S)}),c$1(!0);}),a?.(),I(),t(null);}catch{}finally{M(false);}}},[x,e,r$1,a,t,I,c$1,v,i,u$1,d,w]),R=n$1==="remove",B=R?"Remove tag(s)":"Add tag(s)";return e.length>1&&(B=R?"Remove tag(s) from selected assets":"Add tag(s) to selected assets"),jsxs(n,{open:n$1!==null,onOpenChange:J,children:[jsx(o$1,{placeholder:"Search tags..."}),jsxs(p,{className:"fk:h-75",children:[jsx(q,{children:"No tags found."}),jsx(r,{heading:"Tags",children:E.map(h=>{let D=u$1.includes(h._id);return jsxs(t$1,{disabled:r$1,onSelect:()=>{r$1||l(m=>D?m.filter(C=>C!==h._id):[...m,h._id]);},children:[jsx("input",{className:"fk:mr-2",checked:D,onChange:()=>{},type:"checkbox"}),h.name]},h._id)})})]}),jsx(s$2,{}),jsx("div",{className:"fk:p-2",children:jsxs(b$3,{className:"fk:w-full",disabled:u$1.length===0||r$1,onClick:R?U:_,children:[r$1?jsx(LoaderCircle,{className:"fk:mr-2 fk:h-4 fk:w-4 fk:animate-spin"}):null,B]})})]})}function qe({overlay:e=false,row:n}){let[t,a]=useState(null),[i,f]=useState(null),c=B(),d=b$1(),w=n.original,v=w._id??"",u=w.url??"";function l(){c({type:"DeleteEntity",payload:{entityId:v,entityName:b.name}});}function r(g,E){navigator.clipboard.writeText(E),a(g),window.setTimeout(()=>a(null),1500);}return jsxs(Fragment,{children:[jsxs(e$2,{children:[jsx(g$1,{asChild:true,children:jsxs(b$3,{className:e?"fk:flex fk:h-7 fk:w-7 fk:p-0 fk:text-white fk:group-hover:bg-background/10 fk:group-hover:text-white! fk:data-[state=open]:bg-background/15":"fk:flex fk:h-8 fk:w-8 fk:p-0 fk:data-[state=open]:bg-muted",onClick:g=>g.stopPropagation(),variant:"ghost",children:[jsx(Ellipsis,{className:"fk:h-4 fk:w-4"}),jsx("span",{className:"fk:sr-only",children:"Open menu"})]})}),jsxs(h$2,{align:"start",className:"fk:w-45",children:[jsxs(j$2,{disabled:!v,onClick:g=>{g.stopPropagation(),r("id",v);},children:[t==="id"?jsx(Check,{className:"fk:mr-2 fk:h-4 fk:w-4"}):jsx(Copy,{className:"fk:mr-2 fk:h-4 fk:w-4"}),"Copy ID"]}),jsxs(j$2,{disabled:!u,onClick:g=>{g.stopPropagation(),r("url",u);},children:[t==="url"?jsx(Check,{className:"fk:mr-2 fk:h-4 fk:w-4"}):jsx(Link,{className:"fk:mr-2 fk:h-4 fk:w-4"}),"Copy URL"]}),jsx(o,{}),jsxs(j$2,{disabled:!v||!d,onClick:g=>{g.stopPropagation(),f("add");},children:[jsx(TagIcon,{className:"fk:mr-2 fk:h-4 fk:w-4"}),"Add tag"]}),jsxs(j$2,{disabled:!v||!d,onClick:g=>{g.stopPropagation(),f("remove");},children:[jsx(MinusIcon,{className:"fk:mr-2 fk:h-4 fk:w-4"}),"Remove tag"]}),jsx(o,{}),jsxs(j$2,{className:"fk:text-destructive",disabled:!v||!d,onClick:g=>{g.stopPropagation(),l();},children:[jsx(Trash2,{className:"fk:mr-2 fk:h-4 fk:w-4"}),"Delete"]})]})]}),i!==null?jsx(Ve,{assetIds:v?[v]:[],mode:i,onModeChange:f}):null]})}var Do=FileIcon,Co="fk:bg-[#fafafa] [--asset-checker:#f0f0f0] [background-image:linear-gradient(45deg,var(--asset-checker)_25%,transparent_25%),linear-gradient(-45deg,var(--asset-checker)_25%,transparent_25%),linear-gradient(45deg,transparent_75%,var(--asset-checker)_75%),linear-gradient(-45deg,transparent_75%,var(--asset-checker)_75%)] [background-position:0_0,0_4px,4px_-4px,-4px_0px] [background-size:8px_8px] fk:dark:bg-[#222] dark:[--asset-checker:#2a2a2a]";function To(e){return e==null||Number.isNaN(e)?"":e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function Bt({columns:e,data:n,entityName:t$1,hasMore:a=false,isLoading:i=false,isLoadingMore:f=false,onLoadMore:c,onSortingChange:d,pageSize:w,sorting:v,toolbarComponent:u}){let l=useRef(null),{schemaErrorMessage:r}=s(),[M,g]=useState({}),[E,I]=useState({}),[J,x]=useState([]),[_,U]=useState([]),R=v??_;useEffect(()=>{l.current?.scrollTo({top:0});},[t$1]);function B(b){if(d){d(b);return}U(b);}let h=useReactTable({data:n,columns:e,state:{sorting:R,columnVisibility:E,rowSelection:M,columnFilters:J},initialState:{pagination:{pageSize:w??50}},enableRowSelection:true,onRowSelectionChange:g,onSortingChange:B,onColumnFiltersChange:x,onColumnVisibilityChange:I,getCoreRowModel:getCoreRowModel(),getFilteredRowModel:getFilteredRowModel(),getPaginationRowModel:getPaginationRowModel(),getSortedRowModel:getSortedRowModel(),getRowId:b=>b._id,manualFiltering:true,manualPagination:true,manualSorting:true}),{rows:D}=h.getRowModel(),m=useRef(c),C=useRef(a),S=useRef(f);m.current=c,C.current=a,S.current=f;let z=useCallback(b=>{if(!m.current||!C.current||S.current)return;let s=b??l.current;s&&x$1(s)&&(S.current=true,m.current());},[]),L=b$4();useEffect(()=>{L&&z();},[z,D.length,a,f,L]);function q(b){z(b.currentTarget);}return r?jsx(Fragment,{}):jsxs("div",{className:"fk:flex fk:h-full fk:min-h-0 fk:w-full fk:min-w-0 fk:flex-col fk:gap-4",children:[u?u(h):null,jsxs("div",{className:"fk:relative fk:min-h-0 fk:min-w-0 fk:flex-1",children:[f?jsx("div",{"aria-hidden":true,className:"fk:pointer-events-none fk:absolute fk:top-0 fk:right-px fk:left-px fk:z-20 fk:h-0.5 fk:overflow-hidden fk:opacity-40",children:jsx("div",{className:"fk:animate-progress fk:h-full fk:w-full fk:bg-foreground"})}):null,jsxs("div",{className:"fk:h-full fk:overflow-auto fk:pt-px fk:pb-20 fk:-ml-0.5 fk:pr-3",onScroll:q,ref:l,children:[i?jsx("div",{className:"fk:grid fk:grid-cols-[repeat(auto-fill,minmax(10rem,1fr))] fk:gap-3",children:Array.from({length:w??50},(b,s)=>jsxs("div",{className:"fk:rounded-md fk:border fk:border-border fk:p-2 fk:corner-squircle",children:[jsx(t,{className:"fk:aspect-square fk:w-full fk:rounded-sm fk:corner-squircle"}),jsx(t,{className:"fk:mt-2 fk:h-3 fk:w-[75%]"}),jsx(t,{className:"fk:mt-1.5 fk:h-3 fk:w-[50%]"})]},`skeleton-${s}`))}):null,!i&&D.length===0?jsx("div",{className:"fk:flex fk:h-24 fk:items-center fk:justify-center fk:text-sm fk:text-muted-foreground",children:"No results."}):null,!i&&D.length>0?jsx("div",{className:"fk:grid fk:grid-cols-[repeat(auto-fill,minmax(10rem,1fr))] fk:pl-0.5 fk:gap-3",children:D.map(b=>jsx(So,{row:b},b.id))}):null]})]})]})}function So({row:e}){let n=e.original,t=F(n)||"Untitled",a=n.mimeType??"",i=To(n.size),f=e.getIsSelected(),c=[a,i].filter(Boolean).join(" \xB7 ");return jsxs("div",{className:`fk:relative fk:rounded-md fk:border fk:p-2 fk:transition-colors ${f?"fk:border-primary fk:ring-1 fk:ring-primary/40 fk:bg-muted/40":"fk:border-border fk:bg-background fk:hover:border-muted-foreground/30"} fk:corner-squircle`,"data-state":f?"selected":void 0,children:[jsx("div",{className:"fk:absolute fk:left-3 fk:top-3 fk:z-10 fk:mix-blend-difference",children:jsx(o$2,{className:"fk:border-white!","aria-label":`Select ${t}`,checked:f,onCheckedChange:d=>{e.toggleSelected(!!d);},onClick:d=>d.stopPropagation()})}),jsx("div",{className:"fk:group fk:absolute fk:right-2 fk:top-2 fk:z-10 fk:mix-blend-difference",children:jsx(qe,{overlay:true,row:e})}),jsx(No,{asset:n,filename:t}),jsx("div",{className:"fk:mt-2 fk:truncate fk:text-xs fk:font-medium",title:t,children:t}),c?jsx("div",{className:"fk:mt-0.5 fk:truncate fk:text-[11px] fk:text-muted-foreground",title:c,children:c}):null]})}function No({asset:e,filename:n}){let[t,a]=useState(false),[i$1,f]=useState(false),c=e.url??"";if(!c&&!e.path)return jsx("div",{className:"fk:flex fk:aspect-square fk:items-center fk:justify-center fk:rounded-sm fk:bg-muted fk:corner-squircle",children:jsx("span",{className:"fk:text-xs fk:text-muted-foreground",children:"No preview"})});if(!H(e)||!c){let r=G(e),M=defaultStyles[r];return jsx("div",{className:"fk:flex fk:aspect-square fk:items-center fk:justify-center fk:rounded-sm fk:bg-muted fk:[&>svg]:h-12 fk:[&>svg]:w-auto fk:corner-squircle",children:jsx(Do,{extension:r,...M||{}})})}let w=I(c,{width:320,height:320}),v=c;function u(r){r.stopPropagation(),f(false),a(true);}function l$1(r){a(r),r||f(false);}return jsxs(Fragment,{children:[jsx("button",{className:`fk:aspect-square fk:w-full fk:cursor-zoom-in fk:overflow-hidden fk:rounded-sm fk:border-0 fk:p-0 ${Co} fk:corner-squircle`,onClick:u,type:"button",children:jsx("img",{alt:n,className:"fk:h-full fk:w-full fk:object-contain",src:w})}),jsx(c$2,{open:t,onOpenChange:l$1,children:jsxs(h$1,{className:"fk:sm:max-w-4xl fk:p-3",children:[jsxs(i,{children:[jsx(k,{className:"fk:sr-only",children:"Asset preview"}),jsx(l,{className:"fk:sr-only",children:"Enlarged asset preview"})]}),jsxs("div",{className:"fk:relative fk:flex fk:h-[min(85vh,56rem)] fk:w-full fk:items-center fk:justify-center fk:overflow-hidden fk:rounded-md fk:corner-squircle",children:[i$1?null:jsx(LoaderCircle,{"aria-label":"Loading image",className:"fk:absolute fk:h-8 fk:w-8 fk:animate-spin fk:text-muted-foreground"}),jsx("img",{alt:n,className:`fk:max-h-full fk:max-w-full fk:object-contain fk:transition-opacity ${i$1?"fk:opacity-100":"fk:opacity-0"}`,onError:()=>f(true),onLoad:()=>f(true),src:v})]})]})})]})}var Uo=[{value:"image/gif",label:"GIF",icon:ImagePlayIcon},{value:"image/jpeg",label:"JPEG",icon:ImageIcon},{value:"video/mp4",label:"MP4",icon:FilePlayIcon},{value:"image/png",label:"PNG",icon:LayersIcon},{value:"image/svg+xml",label:"SVG",icon:SplinePointerIcon},{value:"image/webp",label:"WebP",icon:ImageIcon}];function Ze({entityName:e,isUploading:n=false,table:t,viewMode:a,onUploadClick:i,onViewModeChange:f$1,onSearchLoadingChange:c$1,onSearchWhereChange:d}){let w=t.getState().columnFilters.length>0,{projectId:v}=useParams(),u$1=B(),{scope:l}=c(),[r,M]=useState(null),{currentProjectSchema:g}=f(),E=b$1(),[I,J]=useState(""),x=useRef({}),_=useRef({});function U(){return {searchRequests:{searches:[{collection:"_assets"},{collection:"_tags"}]},commonParams:{q:""}}}let R=useMemo(()=>U(),[]),[B$1,h]=useState(R),{results:D,isLoading:m}=a$1(v??"",B$1),C$1=useRef(""),S=I.trim(),z=B$1.commonParams.q??"",L=S.length>0&&(m||z!==S),q=useMemo(()=>Bo(p=>{h({...R,commonParams:{q:p}});},300),[R]);useEffect(()=>()=>{q.cancel();},[q]);let b=t.getSelectedRowModel().rows.map(p=>p.original._id),{data:s}=u({entityNamePlural:"_tags",schema:g,scope:l,variables:we,...Y}),O=useMemo(()=>(Array.isArray(s)?s:[]).map(N=>({_id:N._id,name:N.name})),[s]),Z=useMemo(()=>O.map(p=>({value:p._id,label:p.name})),[O]),F=useCallback(()=>{if(!d)return;let p=[];Object.keys(x.current).length>0&&p.push(x.current),Object.keys(_.current).length>0&&p.push(_.current);let N=p.length===0?{}:p.length===1?p[0]:{AND:p},j=JSON.stringify(N);C$1.current!==j&&(C$1.current=j,d(N));},[d]);function H(){q.cancel(),J(""),h({...R,commonParams:{q:""}}),x.current={},F();}async function K(){u$1({type:"AlertDialog",payload:{options:{dialogTitle:`Delete ${b.length} asset${b.length>1?"s":""}`,dialogMessage:b.length>1?"Are you sure you want to delete the selected assets? They will be deleted permanently.":"Are you sure you want to delete the selected asset? The item will be deleted permanently.",dialogCancelTitle:"Cancel",dialogActionLabel:"Delete",isDestructive:true,dialogActionCancel:()=>{},dialogActionSubmit:()=>{u$1({type:"DeleteEntity",_id:`delete-batch-${Date.now()}`,payload:{entityId:b,entityName:e,silent:true}}),t.resetRowSelection();}}}});}useEffect(()=>{c$1?.(L);},[L,c$1]),useEffect(()=>{if(!d)return;if(S.length===0){x.current={},F();return}if(L)return;let p=D??[],N={};if(p.length===0)N={_id:{in:[]}};else {let j=p.filter(V=>V._entityNamePlural==="_assets").map(V=>V._id),xe=p.filter(V=>V._entityNamePlural==="_tags").map(V=>({tags:{some:{_id:{eq:V._id}}}})),Q=[];j.length>0&&Q.push({_id:{in:j}}),Q.push(...xe),Q.length===0?N={_id:{in:[]}}:Q.length===1?N=Q[0]:N={OR:Q};}x.current=N,F();},[F,L,d,D,S]);let y=JSON.stringify(t.getState().columnFilters);return useEffect(()=>{if(!d)return;let p=t.getState().columnFilters.find(V=>V.id==="mimeType"),N=Array.isArray(p?.value)?p?.value:[],j=t.getState().columnFilters.find(V=>V.id==="tags"),xe=Array.isArray(j?.value)?j?.value:[],Q=[];if(N.length>0&&Q.push({mimeType:{in:N}}),xe.length>0){let V=xe.map(Zt=>({tags:{some:{_id:{eq:Zt}}}}));Q.push(V.length===1?V[0]:{OR:V});}Q.length===0?_.current={}:Q.length===1?_.current=Q[0]:_.current={AND:Q},F();},[y,F,d,t]),jsxs("div",{className:"fk:flex fk:items-center fk:justify-between fk:pr-3",children:[jsxs("div",{className:"fk:flex fk:flex-1 fk:items-center fk:space-x-2",children:[jsxs("div",{className:"fk:relative",children:[m?jsx(LoaderCircle,{className:"fk:absolute fk:left-2 fk:top-2 fk:h-4 fk:w-4 fk:shrink-0 fk:opacity-50 fk:animate-spin"}):jsx(Search,{className:"fk:absolute fk:left-2 fk:top-2 fk:h-4 fk:w-4 fk:shrink-0 fk:opacity-50"}),jsx(s$1,{placeholder:"Search assets...",name:"search-assets",value:I,onChange:p=>{let{value:N}=p.target;if(J(N),N.trim().length===0){H();return}q(N.trim());},className:"fk:h-8 fk:w-37.5 fk:lg:w-70 fk:px-7"}),I?jsx(b$3,{"aria-label":"Clear search",className:"fk:absolute fk:right-1 fk:top-1 fk:h-6 fk:w-6 fk:text-muted-foreground fk:hover:text-foreground fk:hover:bg-foreground/10 fk:cursor-pointer fk:rounded-full fk:bg-transparent fk:corner-squircle",onClick:H,type:"button",children:jsx(X,{className:"fk:h-4 fk:w-4"})}):null]}),t.getColumn("mimeType")&&jsx(a$2,{column:t.getColumn("mimeType"),options:Uo,title:"File type"}),t.getColumn("tags")&&jsx(a$2,{column:t.getColumn("tags"),options:Z,title:"Tags"}),w&&jsxs(b$3,{variant:"ghost",onClick:()=>{t.resetColumnFilters(),_.current={},F();},className:"fk:h-8 fk:px-2 fk:lg:px-3",children:["Reset",jsx(X,{className:"fk:ml-2 fk:h-4 fk:w-4"})]}),jsx(C,{table:t})]}),b.length>0?jsx("div",{className:"fk:flex fk:items-center fk:gap-2",children:jsxs(e$2,{children:[jsx(ma,{disabled:!E,children:jsx(g$1,{asChild:true,children:jsxs(b$3,{className:"fk:h-8 fk:mr-2 fk:lg:flex",disabled:!E,size:"sm",variant:"secondary",children:["Actions ",jsx(ListChecks,{className:"fk:ml-2 fk:h-4 fk:w-4"})]})})}),jsxs(h$2,{align:"end",className:"fk:w-[240px]",children:[jsxs(j$2,{onClick:()=>M("add"),children:[jsx(TagIcon,{className:"fk:mr-2 fk:h-4 fk:w-4"})," Add tag"]}),jsxs(j$2,{onClick:()=>M("remove"),children:[jsx(MinusIcon,{className:"fk:mr-2 fk:h-4 fk:w-4"})," Remove tag"]}),jsx(o,{}),jsxs(j$2,{onClick:K,className:"fk:text-destructive",children:[jsx(Trash2Icon,{className:"fk:mr-2 fk:h-4 fk:w-4"})," Delete asset",b.length>1?"s":""," (",b.length,")"]})]})]})}):null,jsxs("div",{className:"fk:ml-auto fk:flex fk:items-center fk:gap-2",children:[jsxs(c$4,{size:"sm",type:"single",value:a,onValueChange:p=>{(p==="list"||p==="grid")&&f$1(p);},children:[jsx(d$1,{"aria-label":"Grid view",value:"grid",children:jsx(LayoutGrid,{className:"fk:h-4 fk:w-4"})}),jsx(d$1,{"aria-label":"List view",value:"list",children:jsx(List,{className:"fk:h-4 fk:w-4"})})]}),jsx(ma,{disabled:!E,children:jsxs(b$3,{"aria-busy":n,className:"fk:h-8 fk:lg:flex",disabled:!E||n,onClick:i,size:"sm",variant:"default",children:[n?jsx(LoaderCircle,{className:"fk:mr-2 fk:h-4 fk:w-4 fk:animate-spin"}):null,"Upload assets"]})})]}),r!==null?jsx(Ve,{assetIds:b,mode:r,onCompleted:()=>t.resetRowSelection(),onModeChange:M}):null]})}function Bo(e,n=300){let t,a=function(...i){t!==void 0&&clearTimeout(t),t=setTimeout(()=>{t=void 0,e.apply(this,i);},n);};return a.cancel=()=>{t!==void 0&&(clearTimeout(t),t=void 0);},a}var Go=4*1024*1024;function $t(){let{projectId:e}=useParams(),n=c$3(),t=b$1(),[a,i]=useState(false);async function f(c){if(!(!t||a)&&!(c&&c.length===0))try{await n({files:c,maxBytes:Go,multiple:!0,onUploadStart:()=>{i(!0);},projectId:e});}finally{i(false);}}return {canMutate:t,isUploading:a,uploadFiles:c=>f(c),uploadFromDialog:()=>f()}}var Jt="flexkit-asset-manager:viewMode";function Xt(){if(typeof localStorage>"u")return "grid";try{let e=localStorage.getItem(Jt);if(e==="list"||e==="grid")return e}catch{}return "grid"}function Ht(e){if(!(typeof localStorage>"u"))try{localStorage.setItem(Jt,e);}catch{}}var Me=36,Xo=[{_updatedAt:"DESC"},{_id:"DESC"}];function jt(){let e="_assets",{search:n}=useLocation(),a=new URLSearchParams(n).get("id"),{scope:i}=c(),{schemaErrorMessage:f$1}=s(),{currentProject:c$1}=f(),d=c$1?.schema??[],[w$1,v$1]=useState([]),[u$1,l]=useState(()=>Xt()),r=K({attributesSchema:b.attributes,actionsComponent:y=>jsx(qe,{row:y}),checkboxSelect:"multiple",enableColumnSorting:true}),[M,g]=useState({}),[E,I]=useState(false),{canMutate:J,isUploading:x,uploadFiles:_,uploadFromDialog:U}=$t(),R=useMemo(()=>{let y=a?{_id:{eq:a}}:{NOT:{path:{eq:null}}};return !M||Object.keys(M).length===0||a?y:{AND:[y,M]}},[a,M]),B=useMemo(()=>{if(w$1.length===0)return Xo;let y=w$1.map(({id:N,desc:j})=>({[N]:j?"DESC":"ASC"}));return y.some(N=>"_id"in N)?y:[...y,{_id:"DESC"}]},[w$1]),h=useMemo(()=>({where:R,offset:0,limit:Me,sort:B}),[R,B]);function D(y){v$1(y);}function m(y){l(y),Ht(y);}let{isLoading:C,isLoadingMore:S,fetchMore:z,count:L,data:q,isProjectDisabled:b$1}=u({entityNamePlural:e,schema:d,scope:i,variables:h,selection:"list"}),s$1=E||C&&(q==null||q.length===0),O=q?.length??0,Z=!E&&L>0&&O>0&&O<L,F=useCallback(()=>{z({variables:{offset:0,limit:Me}});},[z]),H=useMemo(()=>Array.from({length:Me},(y,p)=>({_id:`loading-${p}`})),[]),K$1=useMemo(()=>Ho(r),[r]);return b$1?jsx("div",{className:"fk:flex fk:flex-col fk:h-full fk:pl-3",children:jsx(v,{})}):jsxs("div",{className:"fk:flex fk:flex-col fk:h-full fk:pl-3",children:[jsx(w,{}),jsxs("div",{className:"fk:mb-4 fk:flex fk:items-center fk:gap-2 fk:pr-3",children:[jsx("h2",{className:"fk:text-lg fk:font-semibold fk:leading-none fk:tracking-tight",children:"Asset Manager"}),s$1?null:jsxs("span",{className:"fk:ml-auto fk:text-sm fk:font-normal fk:text-muted-foreground",children:[L.toLocaleString()," ",L===1?"record":"records"]})]}),f$1?null:jsx(Rt,{disabled:!J||x,onDropFiles:_,children:u$1==="list"?jsx(y$1,{classNames:{row:"fk:h-20"},columns:s$1?K$1:r,data:s$1?H:q??[],entityName:b.name,hasMore:Z,isLoadingMore:S,pageSize:Me,sorting:w$1,onLoadMore:F,onSortingChange:D,toolbarComponent:y=>jsx(Ze,{entityName:b.name,isUploading:x,table:y,viewMode:u$1,onSearchLoadingChange:I,onSearchWhereChange:g,onUploadClick:U,onViewModeChange:m})}):jsx(Bt,{columns:r,data:s$1?[]:q??[],entityName:b.name,hasMore:Z,isLoading:s$1,isLoadingMore:S,pageSize:Me,sorting:w$1,onLoadMore:F,onSortingChange:D,toolbarComponent:y=>jsx(Ze,{entityName:b.name,isUploading:x,table:y,viewMode:u$1,onSearchLoadingChange:I,onSearchWhereChange:g,onUploadClick:U,onViewModeChange:m})})}),jsx(Outlet,{})]})}function Ho(e){return e.map(n=>({...n,cell:()=>jsx(t,{className:"fk:h-4 fk:w-full",style:{marginTop:"7px",marginBottom:"6px"}})}))}function zn(){return jsxs(x,{orientation:"horizontal",className:"fk:h-full",children:[jsx(y,{className:"fk:p-3",defaultSize:"82%",children:jsx("div",{className:"fk:flex fk:flex-col fk:h-full",children:jsx(jt,{})})}),jsx(z,{className:"fk:hover:bg-blue-500 fk:transition-colors",withHandle:true}),jsx(y,{defaultSize:"18%",minSize:"10%",children:jsx("div",{className:"fk:sm:hidden fk:md:block",children:jsx(Pt,{})})})]})}export{zn as Root};//# sourceMappingURL=root-CUNQWMK4.js.map
|
|
23
|
+
//# sourceMappingURL=root-CUNQWMK4.js.map
|