Files

1 line
21 KiB
JavaScript
Raw Permalink Normal View History

2026-10-29 15:24:44 +03:30
import{A as e,At as t,D as n,N as r,O as i,Ot as a,Q as o,V as s,W as c,a as l,c as u,d,et as f,g as p,h as m,jt as h,l as g,r as _,s as v,t as y,u as b,w as x}from"./_plugin-vue_export-helper-vx-p5QAT.js";import{a as S,d as C,m as w,p as T}from"./http-CTjL79ty.js";import{D as E,L as D,M as O,w as k,y as A}from"./index-BWgYBNME.js";import{t as j}from"./AdminPageSkeleton-DacAHji8.js";import{t as M}from"./BaseSwitch-Dz4ODUhf.js";import{n as N,r as P,t as F}from"./selectOptionSearch-DNMc9NzZ.js";import{t as I}from"./AdminCurrencyInput-CpWvBhwh.js";var L=[`id`],R=[`aria-label`,`aria-expanded`,`disabled`],z={class:`admin-multi-select__value`},B={class:`admin-multi-select__chevron`,"aria-hidden":`true`},V={key:0,class:`admin-multi-select__chips`},H={class:`admin-multi-select__chip-label`},U=[`onClick`],ee=[`aria-label`],te={key:0,class:`admin-multi-select__search`,role:`presentation`},ne=[`placeholder`],re={key:1,class:`admin-multi-select__empty`,role:`presentation`},ie=[`aria-selected`,`onClick`,`onKeydown`],ae={class:`admin-multi-select__option-label`},W=y(p({__name:`AdminMultiSelect`,props:{modelValue:{},options:{},placeholder:{default:`انتخاب کنید`},ariaLabel:{default:`انتخاب چندگانه`},block:{type:Boolean,default:!1},searchable:{type:Boolean,default:!0},searchPlaceholder:{default:`جستجو…`},disabled:{type:Boolean,default:!1},id:{default:void 0}},emits:[`update:modelValue`],setup(n,{emit:o}){let p=n,y=o,S=f(!1),E=f(``),k=f(null),A=f(null),j=f(null),M=f({});function I(){S.value=!1,E.value=``}O(k,()=>{I()},{ignore:[A]});let W=v(()=>Array.isArray(p.modelValue)?p.modelValue:[]),G=v(()=>new Set(W.value)),K=v(()=>Array.isArray(p.options)?p.options:[]),q=v(()=>K.value.filter(e=>G.value.has(e.value))),J=v(()=>{let e=W.value.length;return e?e===1?q.value[0]?.label??p.placeholder:`${e} مورد انتخاب شده`:p.placeholder}),Y=v(()=>F(K.value,E.value));function X(e){e.key===`ArrowDown`?(e.preventDefault(),P(A.value,`first`)):e.key===`ArrowUp`&&(e.preventDefault(),P(A.value,`last`))}function oe(e,t){let n=e.currentTarget;e.key===`ArrowDown`?(e.preventDefault(),N(n,1)):e.key===`ArrowUp`?(e.preventDefault(),N(n,-1)):(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),$(t))}function Z(){let e=k.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));M.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 Q(e){e?(window.addEventListener(`resize`,Z),window.addEventListener(`scroll`,Z,!0)):(window.removeEventListener(`resize`,Z),window.removeEventListener(`scroll`,Z,!0))}async function se(){p.disabled||(S.value=!S.value,S.value&&(E.value=``,await x(),Z(),p.searchable&&(await x(),j.value?.focus())))}function $(e){let t=new Set(W.value);t.has(e)?t.delete(e):t.add(e),y(`update:modelValue`,[...t])}function ce(e){y(`update:modelValue`,W.value.filter(t=>t!==e))}return s(S,e=>{Q(e),e&&x(()=>Z())}),s(()=>p.disabled,e=>{e&&I()}),i(()=>{I(),Q(!1)}),(i,o)=>(e(),d(`div`,{id:n.id,ref_key:`rootRef`,ref:k,class:a([`admin-multi-select`,{"admin-multi-select--open":S.value,"admin-multi-select--block":n.block,"admin-multi-select--disabled":n.disabled}])},[u(`button`,{type:`button`,class:`admin-multi-select__trigger`,"aria-label":n.ariaLabel,"aria-expanded":S.value,"aria-haspopup":`listbox`,disabled:n.disabled,onClick:se},[u(`span`,z,h(J.value),1),u(`span`,B,[m(D,{name:`chevron-down`,size:16})])],8,R),q.value.length&&!n.disabled?(e(),d(`ul`,V,[(e(!0),d(_,null,r(q.value,t=>(e(),d(`li`,{key:t.value,class:`admin-multi-select__chip`},[u(`span`,H,h(t.label),1),u(`button`,{type:`button`,class:`admin-multi-select__chip-remove`,"aria-label":`حذف`,onClick:e=>ce(t.value)},` × `,8,U)]))),128))])):b(``,!0),(e(),g(l,{to:`body`},[S.value&&!n.disabled?(e(),d(`ul`,{key:0,ref_key:`m