ode-explorer 1.3.3-develop.202402061659 → 1.3.3-develop.202402071721
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/ActionBarContainer.js +1 -1
- package/dist/AppAction.js +1 -1
- package/dist/DeleteModal.js +1 -1
- package/dist/EmptyScreenApp.js +1 -1
- package/dist/FolderModal.js +1 -1
- package/dist/FoldersList.js +1 -1
- package/dist/MoveModal.js +1 -1
- package/dist/ResourcesList.js +1 -1
- package/dist/edifice-react.js +64 -64
- package/dist/index.html +25 -14
- package/dist/index.js +4 -4
- package/dist/react.js +8 -8
- package/dist/version.txt +1 -1
- package/lib/ActionBarContainer.js +211 -193
- package/lib/AppAction.js +29 -22
- package/lib/DeleteModal.js +3 -3
- package/lib/EmptyScreenApp.js +26 -20
- package/lib/FolderModal.js +8 -8
- package/lib/FoldersList.js +7 -7
- package/lib/MoveModal.js +7 -7
- package/lib/ResourcesList.js +1 -1
- package/lib/index2.js +219 -198
- package/lib/services/api/index.d.ts +12 -0
- package/package.json +23 -25
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{e as Y,f as re,b as ce,h as ae,i as G,j as ie,k as le,l as ue,m as de,d as he,u as J,a as fe,n as pe,o as Re,p as Se,q as Ee,_ as A}from"./index.js";import{h as me,j as s,B as K,a as Oe,z as _e,C as ve,E as Ie,L as be,n as ye,t as Ae,H as Ce,J as xe}from"./edifice-react.js";import{r as S,u as Q}from"./react.js";import{odeServices as F,ACTION as d}from"/assets/js/edifice-ts-client/index.js";import"./edifice-icons.js";function ge({roles:c,rights:n,action:r}){const[h,t]=S.useState(!1),{user:m}=me(),f=Y();S.useEffect(()=>{E()},[c,n]);const R=async function(l){const a=l instanceof Array?l:[l];if(c instanceof Array){const p=await F.rights().sessionHasAtLeastOneResourceRight(c,a);t(p)}else{const p=await F.rights().sessionHasResourceRight(c,a);t(p)}},i=async function(l){if(c instanceof Array){const a=await F.rights().sessionHasAtLeastOneResourceRightForEachList(c,l);t(a)}else{const a=await F.rights().sessionHasResourceRightForEachList(c,l);t(a)}},E=async function(){var l,a,p;if(c===void 0){t(!0);return}if(f&&((a=(l=n[0])==null?void 0:l.trashedBy)!=null&&a.includes(m==null?void 0:m.userId))&&r==="restore"&&!((p=n[0])!=null&&p.trashed)){t(!0);return}if(n instanceof Array)if(n.length>0)if(typeof n[0]=="string")await R(n);else{const O=n.map(_=>_.rights);await i(O)}else t(!1);else typeof n=="string"?await R(n):await R(n.rights)};return{visible:h,refreshState:E}}function X(){const[c,n]=S.useState(!1),[r,h]=S.useState("void"),[t,m]=S.useState(),f=re(e=>e.config),R=ce(),i=ae(),E=G(),l=ie(),a=le(),p=Y(),O=ue(),_=de(),v=he(),{openResource:j,printSelectedResource:w,openFolder:T,clearSelectedItems:L,clearSelectedIds:B}=J(),{data:D}=fe();S.useEffect(()=>{if(i.length===0&&a.length===0){n(!1);return}if(_){n(!1);return}n(!0)},[i,a]);async function H(e){var P;switch((P=document.getElementById("root"))==null||P.setAttribute("aria-hidden","true"),m(e),e.id){case d.OPEN:return i.length>0?j(E[0]):T({folder:l[0],folderId:l[0].id});case d.MOVE:return h("move");case d.PRINT:return w();case d.DELETE:return h("delete");case d.RESTORE:return await C();case d.PUBLISH:return h("publish");case d.UPD_PROPS:case"edit":return te();case"export":return oe();case d.SHARE:return h("share");default:throw Error(`Unknown action: ${e.id}`)}}function N(e){const P=i.length+a.length,y=i.length===1||a.length===1,q=P===1,M=a.length===0;switch(e.id){case d.OPEN:return q;case d.MANAGE:return y;case d.PUBLISH:return y&&M;case d.UPD_PROPS:return y&&M;case d.SHARE:return M&&y;case d.PRINT:return y&&M;case"edit":return q;default:return!0}}const k=()=>!0;async function C(){try{if(p)await O.mutate();else throw new Error("Cannot restore untrashed resources");x()}catch(e){console.error(e)}}function x(){var e;h("void"),t!=null&&t.id&&((e=document.getElementById(t==null?void 0:t.id))==null||e.focus())}const o=e=>()=>{r===e&&(x(),L(),B())},U=o("move"),g=o("move"),z=o("delete"),I=o("delete"),b=o("publish"),u=o("publish"),V=o("edit_folder"),$=o("edit_folder"),Z=o("edit_resource"),W=o("edit_resource"),ee=o("share"),se=o("share");function te(){if(i&&i.length>0){const e=E[0].assetId;(f==null?void 0:f.app)=="scrapbook"?pe({searchParams:v,assetId:e}):h("edit_resource")}else h("edit_folder")}function oe(){if(i&&i.length>0){const e=E[0].assetId;Re({searchParams:v,assetId:e})}}function ne(e){return e.id==="edit"&&a.length>0?"explorer.rename":`explorer.actions.${e.id}`}return{onRestore:C,actions:p?f==null?void 0:f.trashActions:D,selectedElement:[...E,...l],currentFolderId:R==null?void 0:R.id,overrideLabel:ne,handleClick:H,isActivable:p?k:N,isActionBarOpen:c,isMoveModalOpen:r==="move",onMoveCancel:U,onMoveSuccess:g,isDeleteModalOpen:r==="delete",onDeleteCancel:I,onDeleteSuccess:z,isPublishModalOpen:r==="publish",onPublishCancel:u,onPublishSuccess:b,isEditFolderOpen:r==="edit_folder",onEditFolderCancel:$,onEditFolderSuccess:V,isEditResourceOpen:r==="edit_resource",onEditResourceCancel:W,onEditResourceSuccess:Z,isShareResourceOpen:r==="share",onShareResourceCancel:se,onShareResourceSuccess:ee,onClearActionBar:x}}function Pe({resourceRights:c,roleExpected:n,action:r,children:h,renderWhenForbidden:t}){const{t:m}=Q(),{overrideLabel:f}=X(),{visible:R}=ge({roles:n,rights:c,action:r==null?void 0:r.id}),{setResourceActionDisable:i}=J(),E=Y();return R?s.jsx(s.Fragment,{children:h}):t?t():E&&!R?s.jsx(K,{type:"button",color:"primary",variant:"filled",onClick:()=>{i(!0)},children:m(f(r))}):s.jsx(s.Fragment,{})}const Me=S.lazy(async()=>await A(()=>import("./PublishModal.js"),__vite__mapDeps([0,1,2,3]))),Fe=S.lazy(async()=>await A(()=>import("./ResourceModal.js"),__vite__mapDeps([4,1,2,3]))),je=S.lazy(async()=>await A(()=>import("./DeleteModal.js"),__vite__mapDeps([5,1,2,3,6]))),we=S.lazy(async()=>await A(()=>import("./MoveModal.js"),__vite__mapDeps([7,1,2,3,6]))),Te=S.lazy(async()=>await A(()=>import("./FolderModal.js"),__vite__mapDeps([8,1,2,3,6])));function ke(){const{appCode:c}=Oe(),{t:n}=Q(),{actions:r,selectedElement:h,isMoveModalOpen:t,isDeleteModalOpen:m,isPublishModalOpen:f,isActionBarOpen:R,isEditFolderOpen:i,overrideLabel:E,onEditFolderCancel:l,onEditFolderSuccess:a,isEditResourceOpen:p,onEditResourceCancel:O,onEditResourceSuccess:_,isShareResourceOpen:v,onShareResourceCancel:j,onShareResourceSuccess:w,onMoveCancel:T,onMoveSuccess:L,onDeleteCancel:B,onDeleteSuccess:D,onPublishCancel:H,onPublishSuccess:N,isActivable:k,handleClick:C}=X(),o=G()[0],U=Se(c),g=Ee(c),z=_e(R,{from:{opacity:0,transform:"translateY(100%)"},enter:{opacity:1,transform:"translateY(0)"},leave:{opacity:0,transform:"translateY(100%)"}});return s.jsxs(s.Fragment,{children:[z((I,b)=>b&&s.jsx(ve.div,{className:"position-fixed bottom-0 start-0 end-0 z-3",style:I,children:s.jsx(Ie,{children:r==null?void 0:r.filter(u=>u.available&&u.target==="actionbar").map(u=>k(u)&&s.jsx(Pe,{resourceRights:h,roleExpected:u.right,action:u,children:s.jsx(K,{id:u.id,type:"button",color:"primary",variant:"filled",onClick:()=>{C(u)},children:n(E(u))},u.id)},u.id))})})),s.jsxs(S.Suspense,{fallback:s.jsx(be,{}),children:[t&&s.jsx(we,{isOpen:t,onCancel:T,onSuccess:L}),m&&s.jsx(je,{isOpen:m,onCancel:B,onSuccess:D}),f&&o&&s.jsx(Me,{isOpen:f,resourceId:o.assetId,onCancel:H,onSuccess:N}),i&&s.jsx(Te,{edit:!0,isOpen:i,onCancel:l,onSuccess:a}),p&&o&&s.jsx(Fe,{mode:"update",isOpen:p,resourceId:o.assetId,updateResource:g,onCancel:O,onSuccess:_,children:(I,b,u,V,$)=>c==="blog"&&ye("createPublic",r)&&s.jsx(Ae,{appCode:c,isUpdating:b,resource:I,watch:u,setValue:V,register:$})}),v&&o&&s.jsx(Ce,{isOpen:v,resourceId:o.assetId,shareResource:U,onCancel:j,onSuccess:w,children:c==="blog"?s.jsx(xe,{resource:o,updateResource:g}):null})]})]})}export{ke as default};
|
|
2
2
|
function __vite__mapDeps(indexes) {
|
|
3
3
|
if (!__vite__mapDeps.viteFileDeps) {
|
|
4
4
|
__vite__mapDeps.viteFileDeps = ["PublishModal.js","edifice-react.js","react.js","edifice-icons.js","ResourceModal.js","DeleteModal.js","index.js","MoveModal.js","FolderModal.js"]
|
package/dist/AppAction.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{u as
|
|
1
|
+
import{u as b,a as S,b as _,c as h,d as A,_ as P,g as R}from"./index.js";import{l as v,a as I,j as e,B as O,L as y,n as E,t as T}from"./edifice-react.js";import{u as $,r as n}from"./react.js";import{t as k}from"./edifice-icons.js";import"/assets/js/edifice-ts-client/index.js";const B=n.lazy(async()=>await P(()=>import("./ResourceModal.js"),__vite__mapDeps([0,1,2,3])));function M(){const[o,t]=v(),{appCode:s}=I(),{t:l}=$(s),{clearSelectedItems:i,clearSelectedIds:u}=b(),{data:a}=S(),d=a==null?void 0:a.find(r=>r.id==="create"),c=_(),p=h(),m=A(),f=()=>{if(s=="scrapbook"){R({searchParams:m,folderId:c.id});return}i(),u(),t()};return d?e.jsxs(e.Fragment,{children:[e.jsx(O,{type:"button",color:"primary",variant:"filled",leftIcon:e.jsx(k,{}),className:"ms-auto",onClick:f,children:l("explorer.create.title")}),e.jsx(n.Suspense,{fallback:e.jsx(y,{}),children:o&&e.jsx(B,{mode:"create",currentFolder:c,createResource:p,isOpen:o,onSuccess:t,onCancel:t,children:(r,x,g,C,j)=>s==="blog"&&E("createPublic",a)&&e.jsx(T,{appCode:s,isUpdating:x,resource:r,watch:g,setValue:C,register:j})})})]}):null}export{M as default};
|
|
2
2
|
function __vite__mapDeps(indexes) {
|
|
3
3
|
if (!__vite__mapDeps.viteFileDeps) {
|
|
4
4
|
__vite__mapDeps.viteFileDeps = ["ResourceModal.js","edifice-react.js","react.js","edifice-icons.js"]
|
package/dist/DeleteModal.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as t,M as a,B as n}from"./edifice-react.js";import{u as d,a as c}from"./react.js";import{
|
|
1
|
+
import{j as t,M as a,B as n}from"./edifice-react.js";import{u as d,a as c}from"./react.js";import{t as p,v as x,e as h}from"./index.js";import"/assets/js/edifice-ts-client/index.js";import"./edifice-icons.js";function m({onSuccess:r}){const s=p(),o=x(),e=h();async function l(){try{e?await s.mutate():await o.mutate(),r==null||r()}catch(i){console.error(i)}}return{isTrashFolder:e,onDelete:l}}function D({isOpen:r,onSuccess:s=()=>({}),onCancel:o=()=>({})}){const{t:e}=d(),{isTrashFolder:l,onDelete:i}=m({onSuccess:s});return c.createPortal(t.jsxs(a,{isOpen:r,onModalClose:o,id:"deleteModal",children:[t.jsx(a.Header,{onModalClose:o,children:e(l?"explorer.delete.title":"explorer.trash.title")}),t.jsx(a.Body,{children:t.jsx("p",{className:"body",children:e(l?"explorer.delete.subtitle":"explorer.trash.subtitle")})}),t.jsxs(a.Footer,{children:[t.jsx(n,{color:"tertiary",onClick:o,type:"button",variant:"ghost",children:e("explorer.cancel")}),t.jsx(n,{color:"danger",onClick:i,type:"button",variant:"filled",children:e(l?"explorer.delete":"explorer.trash")})]})]}),document.getElementById("portal"))}export{D as default};
|
package/dist/EmptyScreenApp.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a
|
|
1
|
+
import{a,v as u,j as c,N as d,y as x}from"./edifice-react.js";import{a as m}from"./index.js";import{u as y}from"./react.js";import"/assets/js/edifice-ts-client/index.js";import"./edifice-icons.js";function E(){const{appCode:r}=a(),{theme:e}=u(),[n]=x(),{t:s}=y(),{data:l}=m(),t=l==null?void 0:l.find(o=>o.id==="create"),i=()=>t!=null&&t.available&&(e!=null&&e.is1d)?s("explorer.emptyScreen.txt1d.create",{ns:r}):t!=null&&t.available&&!(e!=null&&e.is1d)?s("explorer.emptyScreen.txt2d.create",{ns:r}):!(t!=null&&t.available)&&(e!=null&&e.is1d)?s("explorer.emptyScreen.txt1d.consultation",{ns:r}):s("explorer.emptyScreen.txt2d.consultation",{ns:r}),p=()=>t!=null&&t.available&&(e!=null&&e.is1d)?s("explorer.emptyScreen.title1d.create",{ns:r}):t!=null&&t.available&&!(e!=null&&e.is1d)?s("explorer.emptyScreen.title2d.create",{ns:r}):!(t!=null&&t.available)&&(e!=null&&e.is1d)?s("explorer.emptyScreen.title1d.consultation",{ns:r}):s("explorer.emptyScreen.title2d.consultation",{ns:r});return c.jsx(d,{imageSrc:`${n}/emptyscreen/illu-${r}.svg`,imageAlt:s("explorer.emptyScreen.app.alt",{ns:r}),title:p(),text:i()})}export{E as default};
|
package/dist/FolderModal.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as r,M as i,F as D,$ as B,k as q,B as y}from"./edifice-react.js";import{e as L,r as C,u as R,a as k}from"./react.js";import{FOLDER as w}from"/assets/js/edifice-ts-client/index.js";import{
|
|
1
|
+
import{j as r,M as i,F as D,$ as B,k as q,B as y}from"./edifice-react.js";import{e as L,r as C,u as R,a as k}from"./react.js";import{FOLDER as w}from"/assets/js/edifice-ts-client/index.js";import{j as T,b as U,r as V,s as _}from"./index.js";import"./edifice-icons.js";function z({edit:o,onSuccess:e,onClose:m}){var F;const l=T(),t=U(),c=V(),u=_(),f=o?(F=l[0])==null?void 0:F.name:void 0,{reset:a,register:p,handleSubmit:n,setFocus:x,formState:{errors:h,isSubmitting:s,isDirty:I,isValid:g}}=L({mode:"onChange",values:{name:f||""}}),E=C.useId(),M=async function({name:j}){var b;try{if(o){const d=(b=l[0])==null?void 0:b.parentId,v=l[0].id;await u.mutate({folderId:v,parentId:d,name:j}),a(),e==null||e()}else{const d=(t==null?void 0:t.id)||w.DEFAULT;await c.mutate({name:j,parentId:d}),a(),e==null||e()}}catch(d){console.error(d)}};function $(){a(),m()}return{formId:`createModal_${E}`,errors:h,isSubmitting:s,isDirty:I,isValid:g,register:p,setFocus:x,handleSubmit:n,onCancel:$,onSubmit:M}}function Q({isOpen:o,edit:e,onSuccess:m,onCancel:l}){const{t}=R(),{isDirty:c,isValid:u,isSubmitting:f,formId:a,onSubmit:p,onCancel:n,handleSubmit:x,register:h,setFocus:s}=z({edit:e,onSuccess:m,onClose:l});return C.useEffect(()=>{o&&s("name")},[o,s]),o?k.createPortal(r.jsxs(i,{isOpen:o,onModalClose:n,id:"modal_"+a,children:[r.jsx(i.Header,{onModalClose:n,children:t(e?"explorer.rename.folder":"explorer.create.folder")}),r.jsx(i.Body,{children:r.jsx("form",{id:a,onSubmit:x(p),children:r.jsxs(D,{id:"nameFolder",isRequired:!0,children:[r.jsx(B,{children:t("explorer.create.folder.name")}),r.jsx(q,{type:"text",...h("name",{required:!0,pattern:{value:/[^ ]/,message:"invalid title"}}),placeholder:t("explorer.create.folder.name"),size:"md","aria-required":!0})]})})}),r.jsxs(i.Footer,{children:[r.jsx(y,{color:"tertiary",onClick:n,type:"button",variant:"ghost",children:t("explorer.cancel")}),r.jsx(y,{form:a,type:"submit",color:"primary",variant:"filled",disabled:!c||!u||f,children:t(e?"explorer.rename":"explorer.create")})]})]}),document.getElementById("portal")):null}export{Q as default};
|
package/dist/FoldersList.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as
|
|
1
|
+
import{j as l,P as p,a as S,R as f,u as y,C as m}from"./edifice-react.js";import{v as C}from"./edifice-icons.js";import{j as T,k as I,u as N}from"./index.js";import"./react.js";import"/assets/js/edifice-ts-client/index.js";const g=({app:e,name:c,isSelected:r=!1,isSelectable:o=!0,onClick:t,onSelect:n})=>l.jsx(p,{app:e,isSelectable:o,isSelected:r,onClick:t,onSelect:n,children:d=>l.jsxs(p.Body,{children:[l.jsx(C,{width:"48",height:"48",className:`color-app-${d}`}),l.jsx(p.Title,{children:c})]})});g.displayName="FolderCard";const b=({data:e})=>{var u,a;const{currentApp:c}=S(),r=T(),o=I(),{setSelectedFolders:t,setFolderIds:n,openFolder:d}=N();function j(s){o.includes(s.id)?(n(o.filter(i=>i!==s.id)),t(r.filter(i=>i.id!==s.id))):(n([...o,s.id]),t([...r,s]))}const x=f({from:{opacity:0},to:{opacity:1}}),F=y();return(u=e==null?void 0:e.pages[0])!=null&&u.folders.length?l.jsx(m.ul,{className:"grid ps-0 list-unstyled mb-24",children:(a=e==null?void 0:e.pages[0])==null?void 0:a.folders.map(s=>{const{id:i,name:h}=s;return l.jsx(m.li,{className:"g-col-4 z-1",style:{position:"relative",...x},children:l.jsx(g,{name:h,app:c,isSelected:o.includes(s.id),onClick:()=>{F(),d({folder:s,folderId:s.id})},onSelect:()=>j(s)})},i)})}):null};export{b as default};
|
package/dist/MoveModal.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as I,j as o,M as n,T as v,B as
|
|
1
|
+
import{d as I,j as o,M as n,T as v,B as x}from"./edifice-react.js";import{r as T,u as M,a as y}from"./react.js";import{w as j,j as b,i as F,u as w,x as S}from"./index.js";import"/assets/js/edifice-ts-client/index.js";import"./edifice-icons.js";function E({onSuccess:a}){const[s,r]=T.useState(),l=j(),d=b(),i=F(),{foldTreeItem:c,unfoldTreeItem:m}=w(),u=I();async function f(){try{if(!s)throw new Error("explorer.move.selection.empty");await l.mutate(s),await(a==null?void 0:a())}catch(e){console.error(e)}}const h=e=>{var p;for(const t of d)if(e===t.id||e===t.parentId)return!1;for(const t of i)if(e===((t==null?void 0:t.folderIds)&&t.folderIds[0])||((p=t==null?void 0:t.folderIds)==null?void 0:p.length)===0&&e==="default")return!1;return!0};return{disableSubmit:!s,handleTreeItemSelect:e=>{h(e)?r(e):r(void 0)},handleTreeItemFold:c,handleTreeItemUnfold:async e=>await m(e,u),onMove:()=>{f()}}}function $({isOpen:a,onSuccess:s,onCancel:r}){const{t:l}=M(),{handleTreeItemFold:d,handleTreeItemSelect:i,handleTreeItemUnfold:c,onMove:m,disableSubmit:u}=E({onSuccess:s}),f=S();return y.createPortal(o.jsxs(n,{isOpen:a,onModalClose:r,id:"moveModal",children:[o.jsx(n.Header,{onModalClose:r,children:l("explorer.move.title")}),o.jsx(n.Subtitle,{children:l("explorer.move.subtitle")}),o.jsx(n.Body,{children:o.jsx(v,{data:f,onTreeItemSelect:i,onTreeItemFold:d,onTreeItemUnfold:c})}),o.jsxs(n.Footer,{children:[o.jsx(x,{color:"tertiary",onClick:r,type:"button",variant:"ghost",children:l("explorer.cancel")}),o.jsx(x,{color:"primary",onClick:m,type:"button",variant:"filled",disabled:u,children:l("explorer.move")})]})]}),document.getElementById("portal"))}export{$ as default};
|
package/dist/ResourcesList.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as s,P as l,x as z,U as B,V as M,W as O,X as I,Y as y,Z as E,a as L,R as U,_ as G,C as N,B as V}from"./edifice-react.js";import{u as $,r as W,b}from"./react.js";import{w as X,x as Y}from"./edifice-icons.js";import{
|
|
1
|
+
import{j as s,P as l,x as z,U as B,V as M,W as O,X as I,Y as y,Z as E,a as L,R as U,_ as G,C as N,B as V}from"./edifice-react.js";import{u as $,r as W,b}from"./react.js";import{w as X,x as Y}from"./edifice-icons.js";import{d as Z,h as _,i as q,u as D,e as H}from"./index.js";import"/assets/js/edifice-ts-client/index.js";const T=({app:i,resource:t,time:p,isSelected:g=!1,isSelectable:j=!0,onClick:c,onSelect:e})=>{const d=`/userbook/avatar/${t==null?void 0:t.creatorId}`;function o(n){const{rights:u,creatorId:v}=n||{};return u.filter(R=>!R.includes(v)).length>=1}const x=o(t),f=t==null?void 0:t.public,{t:h}=$();return s.jsx(l,{app:i,isSelected:g,isSelectable:j,onClick:c,onSelect:e,children:n=>s.jsxs(s.Fragment,{children:[s.jsxs(l.Body,{children:[s.jsx("div",{className:"card-image medium",children:t!=null&&t.thumbnail?s.jsx(z,{alt:"",src:t==null?void 0:t.thumbnail,objectFit:"cover",className:"h-full w-100"}):s.jsx(B,{app:i,iconFit:"ratio",size:"80",variant:"rounded"})}),s.jsxs("div",{className:"text-truncate",children:[s.jsx(l.Title,{children:t==null?void 0:t.name}),s.jsx(l.Text,{children:s.jsx("em",{children:p})})]})]}),s.jsxs(l.Footer,{children:[s.jsxs("div",{className:"d-inline-flex align-items-center gap-8 text-truncate",children:[d?s.jsx(M,{alt:(t==null?void 0:t.creatorName)||"",size:"xs",src:d,variant:"circle",width:"24",height:"24"}):s.jsx(O,{}),s.jsx(l.Text,{children:t==null?void 0:t.creatorName})]}),s.jsxs("div",{className:"d-inline-flex align-items-center gap-8",children:[x&&s.jsx(I,{message:h("tooltip.shared",{ns:n}),placement:"top",children:s.jsx(X,{width:16,height:16})}),f&&s.jsx(I,{message:h("tooltip.public",{ns:n}),placement:"top",children:s.jsx(Y,{width:16,height:16})})]})]})]})})};T.displayName="ResourceCard";y.extend(E);const as=({data:i,fetchNextPage:t})=>{const{currentApp:p,currentLanguage:g}=L(),{t:j}=$(),c=Z(),e=_(),d=q(),{setSelectedResources:o,setResourceIds:x,openResource:f,setResourceIsTrash:h}=D(),n=H(),u=U({from:{opacity:0},to:{opacity:1}}),S=c.pagination.startIdx+c.pagination.pageSize<(c.pagination.maxIdx||0),R=W.useCallback(()=>{t()},[]),C=a=>{n?(h(!0),x([a.id]),o([a])):f(a)};async function F(a){if(e.includes(a.id)){x(e.filter(m=>m!==a.id)),o(d.filter(m=>m.id!==a.id));return}x([...e,a.id]),o([...d,a])}const w=G("grid ps-0 list-unstyled");return s.jsxs(b.Fragment,{children:[s.jsx(N.ul,{className:w,children:i==null?void 0:i.pages.map((a,m)=>s.jsx(b.Fragment,{children:a.resources.map(r=>{const{id:P,updatedAt:k}=r,A=y(k).locale(g).fromNow();return s.jsx(N.li,{className:"g-col-4 z-1",style:{position:"relative",...u},children:s.jsx(T,{app:p,resource:r,time:A,isSelectable:!0,isSelected:e.includes(r.id),onClick:()=>C(r),onSelect:()=>F(r)})},P)})},m))}),S&&s.jsx("div",{className:"d-grid gap-2 col-4 mx-auto my-24",children:s.jsx(V,{type:"button",color:"secondary",variant:"filled",onClick:R,children:j("explorer.see.more")})})]})};export{as as default};
|