BO2UtWXE.js
5.47 KB
import{K as F,af as W,aD as j,az as D,U as _,V as k,p as S,o as B,k as M,S as U,g as n,_ as V,s as y,a0 as E,bk as $,bA as I,j as x,y as P,w as H,x as N,Y as G,P as K}from"./BtEn9SvP.js";const[Y,ee]=F("DashboardGroup"),J={base:"lg:hidden",variants:{side:{left:"",right:""}}},ae=Object.assign({inheritAttrs:!1},{__name:"UDashboardSidebarToggle",props:{color:{type:null,required:!1,default:"neutral"},variant:{type:null,required:!1,default:"ghost"},side:{type:String,required:!1,default:"left"},ui:{type:Object,required:!1},label:{type:String,required:!1},activeColor:{type:null,required:!1},activeVariant:{type:null,required:!1},size:{type:null,required:!1},square:{type:Boolean,required:!1},block:{type:Boolean,required:!1},loadingAuto:{type:Boolean,required:!1},onClick:{type:[Function,Array],required:!1},class:{type:null,required:!1},icon:{type:null,required:!1},avatar:{type:Object,required:!1},leading:{type:Boolean,required:!1},leadingIcon:{type:null,required:!1},trailing:{type:Boolean,required:!1},trailingIcon:{type:null,required:!1},loading:{type:Boolean,required:!1},loadingIcon:{type:null,required:!1},as:{type:null,required:!1},type:{type:null,required:!1},disabled:{type:Boolean,required:!1},exactActiveClass:{type:String,required:!1},viewTransition:{type:Boolean,required:!1}},setup(f){const o=f,u=W(j(o,"icon","side","class")),{t}=D(),e=_(),g=k("dashboardSidebarToggle",o),{sidebarOpen:p,toggleSidebar:d}=Y({sidebarOpen:S(!1),toggleSidebar:()=>{}}),i=y(()=>E({extend:E(J),...e.ui?.dashboardSidebarToggle||{}}));return(C,m)=>(B(),M(V,U({...n(u),icon:o.icon||(n(p)?n(e).ui.icons.close:n(e).ui.icons.menu),"aria-label":n(p)?n(t)("dashboardSidebarToggle.close"):n(t)("dashboardSidebarToggle.open"),...C.$attrs},{class:i.value({class:[n(g)?.base,o.class],side:o.side}),onClick:n(d)}),null,16,["class","onClick"]))}});function le(f,o={},{collapsed:u=S(!1)}={}){const t=S(null),e=y(()=>({side:"left",minSize:0,maxSize:100,defaultSize:0,storage:"cookie",persistent:!0,collapsible:!1,collapsedSize:0,resizable:!0,unit:"%",...x(o)?o.value:o})),{dir:g}=D(),p={size:e.value.defaultSize,collapsed:n(u)??!1},d=e.value.persistent&&(e.value.resizable||e.value.collapsible)?e.value.storage==="cookie"?$(f,{default:()=>p}):I(f,p):S(p),i=y({get:()=>d.value.collapsed,set:a=>{e.value.collapsible&&(x(u)&&(u.value=a),d.value.collapsed=a)}}),C=S(e.value.defaultSize),m=y({get:()=>d.value.size,set:a=>{d.value.size=a}}),X=y(()=>i.value?e.value.collapsedSize:m.value),q=S(!1),L=(a,l,b)=>{if(!t.value||!e.value.resizable)return;const h=t.value.parentElement?.offsetWidth||1,v=g.value==="rtl";let s;v?s=e.value.side==="left"?l-a.clientX:a.clientX-l:s=e.value.side==="left"?a.clientX-l:l-a.clientX;const r=b+s;let c;if(e.value.unit==="rem"){const w=Number.parseFloat(getComputedStyle(document.documentElement).fontSize);c=r/w}else e.value.unit==="px"?c=r:c=r/h*100;if(e.value.collapsible&&c<e.value.collapsedSize+4){z(!0);return}else i.value&&z(!1);m.value=Math.min(e.value.maxSize,Math.max(e.value.minSize,c))},T=a=>{if(!t.value||!e.value.resizable)return;a.preventDefault(),a.stopPropagation();const l=t.value.getBoundingClientRect().width;if(!l)return;const b=a.clientX,h=l;q.value=!0;const v=r=>{L(r,b,h)},s=()=>{q.value=!1,document.removeEventListener("mousemove",v),document.removeEventListener("mouseup",s)};document.addEventListener("mousemove",v),document.addEventListener("mouseup",s)},R=(a,l,b)=>{if(!t.value||!e.value.resizable||!a.touches[0])return;const h=t.value.parentElement?.offsetWidth||1,v=g.value==="rtl";let s;v?s=e.value.side==="left"?l-a.touches[0].clientX:a.touches[0].clientX-l:s=e.value.side==="left"?a.touches[0].clientX-l:l-a.touches[0].clientX;const r=b+s;let c;if(e.value.unit==="rem"){const w=Number.parseFloat(getComputedStyle(document.documentElement).fontSize);c=r/w}else e.value.unit==="px"?c=r:c=r/h*100;if(e.value.collapsible&&c<e.value.collapsedSize+4){z(!0);return}else i.value&&z(!1);m.value=Math.min(e.value.maxSize,Math.max(e.value.minSize,c))},O=a=>{if(!t.value||!e.value.resizable||!a.touches[0])return;a.preventDefault(),a.stopPropagation();const l=t.value.getBoundingClientRect().width;if(!l)return;const b=a.touches[0].clientX,h=l;q.value=!0;const v=r=>{R(r,b,h)},s=()=>{q.value=!1,document.removeEventListener("touchmove",v),document.removeEventListener("touchend",s),document.removeEventListener("touchcancel",s)};document.addEventListener("touchmove",v,{passive:!1}),document.addEventListener("touchend",s),document.addEventListener("touchcancel",s)},A=a=>{!t.value||!e.value.resizable||(a.preventDefault(),a.stopPropagation(),i.value&&z(!1),m.value=e.value.defaultSize)},z=a=>{if(!e.value.collapsible)return;const l=a??!i.value;l&&!i.value?C.value=m.value:!l&&i.value&&(m.value=C.value),i.value=l};return x(u)&&d.value.collapsed&&(u.value=d.value.collapsed),x(u)&&P(u,a=>{e.value.collapsible&&d.value.collapsed!==a&&(d.value.collapsed=a)}),{el:t,size:X,isDragging:q,isCollapsed:i,onMouseDown:T,onTouchStart:O,onDoubleClick:A,collapse:z}}const Q={base:"hidden lg:block touch-none select-none cursor-ew-resize relative before:absolute before:inset-y-0 before:-left-1.5 before:-right-1.5 before:z-1"},te={__name:"UDashboardResizeHandle",props:{as:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(f){const o=f,u=_(),t=k("dashboardResizeHandle",o),e=y(()=>E({extend:E(Q),...u.ui?.dashboardResizeHandle||{}}));return(g,p)=>(B(),M(n(K),{as:f.as,role:"separator",class:G(e.value({class:[n(t)?.base,o.class]}))},{default:H(()=>[N(g.$slots,"default")]),_:3},8,["as","class"]))}};export{ae as _,le as a,te as b,ee as p,Y as u};