UNPKG

@lucidcms/core

Version:

The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.

1 lines 6.37 kB
import{Pn as e,fn as t,o as n,u as r}from"./ErrorBlock-CuwX01Wv.js";import{A as i,D as a,F as o,M as s,S as c,j as l,m as u,s as d,u as f}from"./web-BWdORzMO.js";import{h as p,t as m}from"./userStore-BExk_Pfb.js";import{t as h}from"./permissions-kIH5Rv10.js";import{t as g}from"./Layout-4UKP18vE.js";import{C as _,D as v,E as y,S as b,T as x,nt as S,w as C,z as ee}from"./publish-operations-D4J5WbXS.js";import{a as te,m as ne,o as re,p as ie}from"./Content-DzC1IbOX.js";import{t as ae}from"./Standard-D4PJGqo4.js";import{i as oe,r as se}from"./PublishOperationReviewers-BFOaiV7V.js";import"./Headers-CX-ZCzBz.js";import{t as ce}from"./Alert-DBQOge--.js";import{t as le}from"./Row-DCxdbdkd.js";var w=u(`<div class="pointer-events-none fixed inset-0 z-60 flex items-center justify-center bg-overlay-base p-6 backdrop-blur-xs"><div class="flex min-h-72 w-full max-w-xl flex-col items-center justify-center rounded-md border-2 border-dashed border-primary-base bg-card-base p-8 text-center shadow-lg"><p class="text-base font-semibold text-title"></p><p class="mt-0.5 max-w-xs text-sm text-body">`),T=u(`<section class=relative>`),E=()=>{let u=e(),E=b({mode:`url`,schema:{filters:{title:v(),extension:v(),type:v(),mimeType:v(),key:v(),public:_(),origin:v(),deletedBy:C(),width:C(),height:C(),createdAt:v(),updatedAt:v()},sorts:{fileSize:y(),title:y(),width:y(),height:y(),mimeType:y(),extension:y(),createdAt:y(),updatedAt:y({defaultValue:`desc`})},pagination:x({defaultPerPage:20})},options:{singleSort:!0}}),D=p(),O=S(),[k,A]=o(!1),[j,M]=o(!1),[N,P]=o(!1),[F,I]=o(!1),[L,R]=o(null),[z,B]=o([]),[V,H]=o(0),[U,ue]=o(!1),W=l(()=>{if(U())return;let e=D.folderId;if(!e)return``;let t=Number.parseInt(e,10);return Number.isNaN(t)?``:t}),G=l(()=>m.get.hasPermission([h.MediaCreate]).all),K=l(()=>r.get.isAiFeatureEnabled(`imageGeneration`)),q=l(()=>O.accessState()),de=l(()=>{let e=q();if(e.disabled)return{title:e.title,message:e.message,status:`warning`}}),J=l(()=>G()&&!U()),fe=l(()=>J()&&V()>0),pe=n.settings.useGetSettings({queryParams:{include:{media:!0}}});i(()=>{if(U()){re.get.reset();return}E.clearFilter(`deletedBy`)});let Y=()=>{R(null),I(!1)},X=e=>Array.from(e.dataTransfer?.types??[]).includes(`Files`),Z=e=>{e&&Y(),e||Y(),A(e)},Q=e=>{e&&B([]),e||B([]),P(e)},me=e=>{I(!1),R(e),A(!0)},he=e=>{B(e),P(!0)},ge=()=>{K()&&(q().disabled||(R(null),I(!0),A(!0)))},$=e=>{!J()||!X(e)||(e.preventDefault(),H(e=>e+1))},_e=e=>{!J()||!X(e)||(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`copy`))},ve=e=>{!J()||!X(e)||(e.preventDefault(),H(e=>Math.max(0,e-1)))},ye=e=>{if(!J()||!X(e))return;e.preventDefault(),H(0);let t=Array.from(e.dataTransfer?.files??[]);if(t.length!==0){if(t.length===1&&t[0]){me(t[0]);return}he(t)}};return(()=>{var e=T();return e.addEventListener(`drop`,ye),e.addEventListener(`dragleave`,ve),e.addEventListener(`dragover`,_e),e.addEventListener(`dragenter`,$),d(e,a(c,{get when(){return fe()},get children(){var e=w(),n=e.firstChild.firstChild,r=n.nextSibling;return d(n,()=>t()(`media.upload.drop.title`)),d(r,()=>t()(`media.upload.drop.description`)),e}}),null),d(e,a(g,{get slots(){return{topBar:a(ce,{style:`layout`,get alerts(){return[{type:`warning`,message:t()(`media.storage.strategy.missing.message`),show:pe.data?.data?.media?.enabled===!1}]}}),header:a(ae,{get copy(){return{title:t()(`routes.media.title`),description:t()(`routes.media.description`)}},get actions(){return{create:[{open:j(),setOpen:M,permission:G(),label:t()(`media.folders.add`),icon:`folder-plus`,secondary:!0},{open:k(),setOpen:Z,permission:G(),label:t()(`media.upload.action`),icon:`upload`},{open:k(),setOpen:Z,onClick:ge,permission:G()&&K(),disabled:q().disabled,disabledClickable:!0,disabledToast:de(),label:t()(`ai.media.image.generate.modal.title`),icon:`sparkle`},{open:N(),setOpen:Q,permission:G(),label:t()(`media.upload.bulk.action`),icon:`images`}],contentLocale:!0}},get slots(){return{bottom:a(le,{searchParams:E,showingDeleted:U,setShowingDeleted:ue,onRefresh:()=>{u.invalidateQueries({queryKey:[`media.getMultiple`]}),u.invalidateQueries({queryKey:[`mediaFolders.getMultiple`]})},get filterSection(){return{subject:t()(`routes.media.title`),fields:[{label:t()(`common.name`),key:`title`,type:`text`},{label:t()(`common.visibility`),key:`public`,type:`checkbox`,trueLabel:t()(`common.public`),falseLabel:t()(`common.private`)},{label:t()(`common.mime.type`),key:`mimeType`,type:`text`},{label:t()(`common.key`),key:`key`,type:`text`},{label:t()(`common.type`),key:`type`,type:`select`,options:[{label:t()(`media.types.image`),value:`image`},{label:t()(`media.types.video`),value:`video`},{label:t()(`media.types.audio`),value:`audio`},{label:t()(`media.types.document`),value:`document`},{label:t()(`media.types.archive`),value:`archive`},{label:t()(`media.types.unknown`),value:`unknown`}]},{label:t()(`common.file.extension`),key:`extension`,type:`text`},{label:t()(`common.origin`),key:`origin`,type:`select`,options:[{label:t()(`common.human`),value:`human`},{label:t()(`media.origin.ai.generated`),value:`ai_generated`},{label:t()(`media.origin.ai.modified`),value:`ai_modified`}]},{label:t()(`common.width`),key:`width`,type:`number`},{label:t()(`common.height`),key:`height`,type:`number`},{label:t()(`common.created.at`),key:`createdAt`,type:`datetime`},{label:t()(`common.updated.at`),key:`updatedAt`,type:`datetime`},...U()?[{label:t()(`common.deleted.by`),key:`deletedBy`,type:`user`}]:[]]}},get sorts(){return[{label:t()(`common.title`),key:`title`},{label:t()(`common.file.size`),key:`fileSize`},{label:t()(`common.mime.type`),key:`mimeType`},{label:t()(`common.file.extension`),key:`extension`},{label:t()(`common.width`),key:`width`},{label:t()(`common.height`),key:`height`},{label:t()(`common.created.at`),key:`createdAt`},{label:t()(`common.updated.at`),key:`updatedAt`}]},perPage:[10,20,40]})}}})}},get children(){return[a(oe,{}),a(se,{}),a(te,{state:{searchParams:E,showingDeleted:U,setOpenCreateMediaPanel:Z,parentFolderId:W}}),a(ee,{initialFile:L,openImageGenerationOnCreate:F,get state(){return{open:k(),setOpen:Z,parentFolderId:W}},callbacks:{onImageGenerationOpened:()=>{I(!1)}}}),a(ne,{initialFiles:z,get state(){return{open:N(),setOpen:Q,parentFolderId:W}}}),a(ie,{get state(){return{open:j(),setOpen:M,parentFolderId:W}}})]}}),null),s(()=>f(e,`aria-label`,t()(`routes.media.title`))),e})()};export{E as default};