Files

1 line
7.1 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{t as e}from"./VuesaxIcon-UCFGkXBv.js";import{Bt as t,Ct as n,Dt as r,It as i,Lt as a,Nt as o,Tt as s,_t as c,ct as l,dt as u,ft as d,gt as f,ht as p,i as m,kt as h,n as g,ot as _,pt as v,t as y,ut as b,wt as x}from"./index-1U5l_fLl.js";import{a as S,i as C,r as w}from"./format-BwvWvVfG.js";import{t as T}from"./PageHeader-C9oHYjmE.js";var E={class:`grid grid-cols-3 gap-2.5 sm:grid-cols-4 md:grid-cols-6 xl:grid-cols-9`},D=[`title`,`onClick`],O=[`src`,`alt`],k={class:`absolute inset-x-0 bottom-0 bg-gradient-to-t from-black/60 to-transparent p-1 text-[9px] text-white opacity-0 transition group-hover:opacity-100 max-lg:hidden truncate`},A={class:`mt-4 flex justify-center`},j={class:`lg:hidden fixed bottom-20 left-4 z-30`},M=[`disabled`],N={key:1,class:`text-xs font-bold`},ee={class:`overflow-hidden rounded-xl border border-gray-200 bg-gray-50 flex items-center justify-center p-2`},te=[`src`,`alt`],ne={dir:`ltr`,class:`truncate block max-w-[240px] text-xs font-mono text-gray-700`},re={dir:`ltr`,class:`text-xs font-mono`},ie={class:`max-lg:grid max-lg:grid-cols-2 max-lg:gap-2 max-lg:mt-4 max-lg:hidden`},ae={class:`lg:hidden grid grid-cols-2 gap-2 mt-4`},P=36,F=c({__name:`MediaPage`,setup(c){let F=y(),I=i([]),L=i(0),R=i(1),z=i(``),B=i(!1),V=i(0),H=i(null),U=i(``),W=i(!1);function G(){typeof window<`u`&&(W.value=window.innerWidth<1024)}async function K(){B.value=!0;try{let e=await g(`/admin/media`,{query:{page:R.value,pageSize:P,q:z.value||void 0}});I.value=e.items,L.value=e.total}catch(e){_.error(m(e))}finally{B.value=!1}}async function q(e){V.value++;try{let t=new FormData;t.append(`file`,e),await g(`/admin/media`,{method:`POST`,body:t}),_.success(`«${e.name}» آپلود شد`),R.value=1,await K()}catch(t){_.error(`${e.name}: ${m(t)}`)}finally{V.value--}return!1}function oe(e){H.value=e,U.value=e.alt}async function J(){if(H.value)try{let e=await g(`/admin/media/${H.value.id}`,{method:`PATCH`,body:{alt:U.value}});Object.assign(H.value,e),_.success(`ذخیره شد`)}catch(e){_.error(m(e))}}async function Y(){if(H.value)try{await g(`/admin/media/${H.value.id}`,{method:`DELETE`}),_.success(`تصویر حذف شد`),H.value=null,await K()}catch(e){_.error(m(e))}}async function X(e){await navigator.clipboard.writeText(new URL(e,location.origin).toString()),_.success(`آدرس کپی شد`)}return n(()=>{G(),window.addEventListener(`resize`,G),K()}),x(()=>{typeof window<`u`&&window.removeEventListener(`resize`,G)}),(n,i)=>{let c=h(`a-button`),m=h(`a-upload`),g=h(`a-input-search`),_=h(`a-empty`),y=h(`a-spin`),x=h(`a-pagination`),G=h(`a-card`),Z=h(`a-descriptions-item`),se=h(`a-descriptions`),ce=h(`a-input`),le=h(`a-form-item`),Q=h(`a-popconfirm`),$=h(`a-space`),ue=h(`a-form`),de=h(`a-drawer`);return s(),v(l,null,[f(T,{title:`کتابخانه رسانه`,subtitle:`${a(w)(L.value)} تصویر`},{default:o(()=>[f(m,{accept:`image/jpeg,image/png,image/webp,image/avif,image/gif`,multiple:``,"show-upload-list":!1,"before-upload":q},{default:o(()=>[f(c,{type:`primary`,loading:V.value>0},{icon:o(()=>[f(e,{name:`document-upload`,size:16})]),default:o(()=>[i[7]||=p(` آپلود تصویر `,-1)]),_:1},8,[`loading`])]),_:1})]),_:1},8,[`subtitle`]),f(G,null,{default:o(()=>[f(g,{value:z.value,"onUpdate:value":i[0]||=e=>z.value=e,"allow-clear":``,placeholder:`جستجو در نام فایل یا متن جایگزین`,class:`mb-4 w-full md:max-w-md`,onSearch:i[1]||=()=>{R.value=1,K()}},null,8,[`value`]),f(y,{spinning:B.value},{default:o(()=>[!I.value.length&&!B.value?(s(),u(_,{key:0,description:`تصویری پیدا نشد`})):d(``,!0),b(`div`,E,[(s(!0),v(l,null,r(I.value,e=>(s(),v(`button`,{key:e.id,type:`button`,class:`group relative overflow-hidden rounded-xl border border-gray-200 bg-gray-50 transition active:scale-95 hover:border-[#ff5a00] focus:outline-none`,title:e.originalName,onClick:t=>oe(e)},[b(`img`,{src:e.url,alt:e.alt,class:`aspect-square w-full object-contain p-1`,loading:`lazy`},null,8,O),b(`div`,k,t(e.originalName),1)],8,D))),128))])]),_:1},8,[`spinning`]),b(`div`,A,[f(x,{current:R.value,"onUpdate:current":i[2]||=e=>R.value=e,total:L.value,"page-size":P,"show-size-changer":!1,simple:W.value,onChange:K},null,8,[`current`,`total`,`simple`])])]),_:1}),b(`div`,j,[f(m,{accept:`image/jpeg,image/png,image/webp,image/avif,image/gif`,multiple:``,"show-upload-list":!1,"before-upload":q},{default:o(()=>[b(`button`,{type:`button`,class:`flex size-13 items-center justify-center rounded-full bg-[#ff5a00] text-white shadow-lg shadow-orange-500/30 transition-transform active:scale-95`,title:`آپلود تصویر`,disabled:V.value>0},[V.value===0?(s(),u(e,{key:0,name:`document-upload`,size:24})):(s(),v(`span`,N,t(V.value),1))],8,M)]),_:1})]),f(de,{open:!!H.value,title:`جزئیات تصویر`,width:W.value?`100%`:380,height:W.value?`82vh`:void 0,placement:W.value?`bottom`:`left`,"body-style":{paddingBottom:W.value?`80px`:`24px`},onClose:i[6]||=e=>H.value=null},{default:o(()=>[H.value?(s(),v(l,{key:0},[b(`div`,ee,[b(`img`,{src:H.value.url,alt:H.value.alt,class:`max-h-60 w-full object-contain`},null,8,te)]),f(se,{column:W.value?2:1,size:`small`,class:`mt-4`},{default:o(()=>[f(Z,{label:`نام فایل`,span:W.value?2:1},{default:o(()=>[b(`span`,ne,t(H.value.originalName),1)]),_:1},8,[`span`]),f(Z,{label:`ابعاد`},{default:o(()=>[b(`span`,re,t(H.value.width)+`×`+t(H.value.height),1)]),_:1}),f(Z,{label:`حجم`},{default:o(()=>[p(t(a(C)(H.value.size)),1)]),_:1}),f(Z,{label:`تاریخ`,span:W.value?2:1},{default:o(()=>[p(t(a(S)(H.value.createdAt)),1)]),_:1},8,[`span`])]),_:1},8,[`column`]),f(ue,{layout:`vertical`,class:`mt-4`},{default:o(()=>[f(le,{label:`متن جایگزین (alt)`,class:`!mb-3`},{default:o(()=>[f(ce,{value:U.value,"onUpdate:value":i[3]||=e=>U.value=e,placeholder:`توضیح کوتاه برای سئو و دسترس‌پذیری`},null,8,[`value`])]),_:1}),b(`div`,ie,[f($,{wrap:``},{default:o(()=>[f(c,{type:`primary`,onClick:J},{default:o(()=>[...i[8]||=[p(`ذخیره`,-1)]]),_:1}),f(c,{onClick:i[4]||=e=>X(H.value.url)},{icon:o(()=>[f(e,{name:`copy`,size:16})]),default:o(()=>[i[9]||=p(`کپی آدرس`,-1)]),_:1}),a(F).isAdmin?(s(),u(Q,{key:0,title:`این تصویر حذف شود؟`,"ok-text":`حذف`,"cancel-text":`انصراف`,onConfirm:Y},{default:o(()=>[f(c,{danger:``},{icon:o(()=>[f(e,{name:`trash`,size:16})]),default:o(()=>[i[10]||=p(`حذف`,-1)]),_:1})]),_:1})):d(``,!0)]),_:1})]),b(`div`,ae,[f(c,{type:`primary`,class:`h-10 !font-bold`,onClick:J},{default:o(()=>[...i[11]||=[p(`ذخیره متن`,-1)]]),_:1}),f(c,{class:`h-10 !flex !items-center !justify-center !gap-1`,onClick:i[5]||=e=>X(H.value.url)},{icon:o(()=>[f(e,{name:`copy`,size:16})]),default:o(()=>[i[12]||=b(`span`,null,`کپی آدرس`,-1)]),_:1}),a(F).isAdmin?(s(),u(Q,{key:0,title:`این تصویر حذف شود؟`,"ok-text":`حذف`,"cancel-text":`انصراف`,onConfirm:Y},{default:o(()=>[f(c,{danger:``,class:`col-span-2 h-10 !flex !items-center !justify-center !gap-1`},{icon:o(()=>[f(e,{name:`trash`,size:16})]),default:o(()=>[i[13]||=b(`span`,null,`حذف تصویر`,-1)]),_:1})]),_:1})):d(``,!0)])]),_:1})],64)):d(``,!0)]),_:1},8,[`open`,`width`,`height`,`placement`,`body-style`])],64)}}});export{F as default};