Validate sessions against the API, honor configurable base paths, and route unknown pages to 404. Keep development ports stable so user and admin apps cannot be confused. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 line
3.6 KiB
JavaScript
1 line
3.6 KiB
JavaScript
import{$ as e,Ct as t,G as n,J as r,K as i,O as a,P as o,Q as s,St as c,V as l,X as u,Y as d,Z as f,ct as p,dt as m,et as h,ft as g,gt as _,it as v,lt as y,mt as b,ot as x,q as S,rt as C,xt as w,yt as T}from"./index-B2VD3zy8.js";var E=[`id`],D=[`aria-label`,`aria-expanded`],O={class:`admin-select__trigger-content`},k={class:`admin-select__value`},A={class:`admin-select__chevron`,"aria-hidden":`true`},j=[`aria-label`],M={key:0,class:`admin-select__search`,role:`presentation`},N=[`placeholder`],P={key:1,class:`admin-select__empty`,role:`presentation`},F=[`aria-selected`,`onClick`],I={class:`admin-select__option-label`},L=l(v({__name:`AdminSelect`,props:{modelValue:{},options:{},placeholder:{default:`انتخاب کنید`},ariaLabel:{default:`انتخاب`},block:{type:Boolean,default:!1},searchable:{type:Boolean,default:!1},searchPlaceholder:{default:`جستجو…`},id:{default:void 0}},emits:[`update:modelValue`],setup(l,{emit:v}){let L=l,R=v,z=T(!1),B=T(``),V=T(null),H=T(null),U=T(null),W=T({});a(V,()=>{z.value=!1,B.value=``},{ignore:[H]});let G=u(()=>L.options.find(e=>e.value===L.modelValue)),K=u(()=>G.value?.label??L.placeholder),q=u(()=>{let e=B.value.trim().toLowerCase();return e?L.options.filter(t=>t.label.toLowerCase().includes(e)):L.options});function J(){let e=V.value;if(!e)return;let t=e.getBoundingClientRect(),n=Math.min(320,window.innerHeight*.5),r=window.innerHeight-t.bottom-6,i=t.top-6,a=r<Math.min(160,n)&&i>r,o=Math.max(120,Math.min(n,a?i:r));W.value={position:`fixed`,left:`${Math.max(8,Math.min(t.left,window.innerWidth-Math.max(t.width,220)-8))}px`,width:`${Math.max(t.width,220)}px`,zIndex:`1100`,maxHeight:`${o}px`,...a?{top:`auto`,bottom:`${window.innerHeight-t.top+6}px`}:{top:`${t.bottom+6}px`,bottom:`auto`}}}function Y(e){e?(window.addEventListener(`resize`,J),window.addEventListener(`scroll`,J,!0)):(window.removeEventListener(`resize`,J),window.removeEventListener(`scroll`,J,!0))}async function X(){z.value=!z.value,z.value&&(await x(),J(),L.searchable&&(B.value=``,await x(),U.value?.focus()))}function Z(e){R(`update:modelValue`,e),z.value=!1,B.value=``}return b(z,e=>{Y(e),e&&x(()=>J())}),p(()=>{Y(!1)}),(a,u)=>(y(),h(`div`,{id:l.id,ref_key:`rootRef`,ref:V,class:w([`admin-select`,{"admin-select--open":z.value,"admin-select--block":l.block}])},[f(`button`,{type:`button`,class:`admin-select__trigger`,"aria-label":l.ariaLabel,"aria-expanded":z.value,"aria-haspopup":`listbox`,onClick:X},[f(`span`,O,[g(a.$slots,`option-leading`,{option:G.value},void 0,!0),f(`span`,k,t(K.value),1)]),f(`span`,A,[C(o,{name:`chevron-down`,size:16})])],8,D),(y(),s(d,{to:`body`},[z.value?(y(),h(`ul`,{key:0,ref_key:`menuRef`,ref:H,class:`admin-select__menu`,role:`listbox`,"aria-label":l.ariaLabel,style:c(W.value)},[l.searchable?(y(),h(`li`,M,[_(f(`input`,{ref_key:`searchInputRef`,ref:U,"onUpdate:modelValue":u[0]||=e=>B.value=e,type:`search`,class:`admin-select__search-input`,placeholder:l.searchPlaceholder,onClick:u[1]||=S(()=>{},[`stop`]),onKeydown:u[2]||=i(S(e=>z.value=!1,[`stop`]),[`esc`])},null,40,N),[[n,B.value]])])):e(``,!0),q.value.length?e(``,!0):(y(),h(`li`,P,` موردی یافت نشد `)),(y(!0),h(r,null,m(q.value,n=>(y(),h(`li`,{key:n.value,role:`presentation`},[f(`button`,{type:`button`,class:w([`admin-select__option`,{"admin-select__option--active":n.value===l.modelValue}]),role:`option`,"aria-selected":n.value===l.modelValue,onClick:e=>Z(n.value)},[f(`span`,I,[g(a.$slots,`option-leading`,{option:n},void 0,!0),f(`span`,null,t(n.label),1)]),n.value===l.modelValue?(y(),s(o,{key:0,name:`check`,size:16,class:`admin-select__check`})):e(``,!0)],10,F)]))),128))],12,j)):e(``,!0)]))],10,E))}}),[[`__scopeId`,`data-v-4623e322`]]);export{L as t}; |