2 lines
12 KiB
JavaScript
2 lines
12 KiB
JavaScript
import{a8 as De,X as N,a9 as $,aa as R,ab as Ee,Y as P,ac as Z,ad as re,ae as U,af as Oe,a2 as $e,L as Le,N as _e,ag as Ae,R as Pe,T as We,ah as Fe,ai as K,aj as ze,D,U as Xe,ak as Ye,w as y,a4 as le,o as Ie,W as He,x as Ve,M as W,al as se,a1 as Qe,$ as je,am as Ne,E as v,an as Re}from"./index-DAvBaevK.js";import{g as de,s as ce}from"./touch-BjYP5sR0.js";import{c as Ue}from"./selection-DrSF90ET.js";import{c as F}from"./format-DaKpMo2W.js";function G(a,o,r){const p=Z(a);let e,u=p.left-o.event.x,l=p.top-o.event.y,f=Math.abs(u),m=Math.abs(l);const s=o.direction;s.horizontal===!0&&s.vertical!==!0?e=u<0?"left":"right":s.horizontal!==!0&&s.vertical===!0?e=l<0?"up":"down":s.up===!0&&l<0?(e="up",f>m&&(s.left===!0&&u<0?e="left":s.right===!0&&u>0&&(e="right"))):s.down===!0&&l>0?(e="down",f>m&&(s.left===!0&&u<0?e="left":s.right===!0&&u>0&&(e="right"))):s.left===!0&&u<0?(e="left",f<m&&(s.up===!0&&l<0?e="up":s.down===!0&&l>0&&(e="down"))):s.right===!0&&u>0&&(e="right",f<m&&(s.up===!0&&l<0?e="up":s.down===!0&&l>0&&(e="down")));let n=!1;if(e===void 0&&r===!1){if(o.event.isFirst===!0||o.event.lastDir===void 0)return{};e=o.event.lastDir,n=!0,e==="left"||e==="right"?(p.left-=u,f=0,u=0):(p.top-=l,m=0,l=0)}return{synthetic:n,payload:{evt:a,touch:o.event.mouse!==!0,mouse:o.event.mouse===!0,position:p,direction:e,isFirst:o.event.isFirst,isFinal:r===!0,duration:Date.now()-o.event.time,distance:{x:f,y:m},offset:{x:u,y:l},delta:{x:p.left-o.event.lastX,y:p.top-o.event.lastY}}}}let Ke=0;const J=De({name:"touch-pan",beforeMount(a,{value:o,modifiers:r}){if(r.mouse!==!0&&$.has.touch!==!0)return;function p(u,l){r.mouse===!0&&l===!0?$e(u):(r.stop===!0&&U(u),r.prevent===!0&&re(u))}const e={uid:"qvtp_"+Ke++,handler:o,modifiers:r,direction:de(r),noop:Ee,mouseStart(u){ce(u,e)&&Oe(u)&&(P(e,"temp",[[document,"mousemove","move","notPassiveCapture"],[document,"mouseup","end","passiveCapture"]]),e.start(u,!0))},touchStart(u){if(ce(u,e)){const l=u.target;P(e,"temp",[[l,"touchmove","move","notPassiveCapture"],[l,"touchcancel","end","passiveCapture"],[l,"touchend","end","passiveCapture"]]),e.start(u)}},start(u,l){if($.is.firefox===!0&&R(a,!0),e.lastEvt=u,l===!0||r.stop===!0){if(e.direction.all!==!0&&(l!==!0||e.modifiers.mouseAllDir!==!0&&e.modifiers.mousealldir!==!0)){const s=u.type.indexOf("mouse")!==-1?new MouseEvent(u.type,u):new TouchEvent(u.type,u);u.defaultPrevented===!0&&re(s),u.cancelBubble===!0&&U(s),Object.assign(s,{qKeyEvent:u.qKeyEvent,qClickOutside:u.qClickOutside,qAnchorHandled:u.qAnchorHandled,qClonedBy:u.qClonedBy===void 0?[e.uid]:u.qClonedBy.concat(e.uid)}),e.initialEvent={target:u.target,event:s}}U(u)}const{left:f,top:m}=Z(u);e.event={x:f,y:m,time:Date.now(),mouse:l===!0,detected:!1,isFirst:!0,isFinal:!1,lastX:f,lastY:m}},move(u){if(e.event===void 0)return;const l=Z(u),f=l.left-e.event.x,m=l.top-e.event.y;if(f===0&&m===0)return;e.lastEvt=u;const s=e.event.mouse===!0,n=()=>{p(u,s);let b;r.preserveCursor!==!0&&r.preservecursor!==!0&&(b=document.documentElement.style.cursor||"",document.documentElement.style.cursor="grabbing"),s===!0&&document.body.classList.add("no-pointer-events--children"),document.body.classList.add("non-selectable"),Ue(),e.styleCleanup=d=>{if(e.styleCleanup=void 0,b!==void 0&&(document.documentElement.style.cursor=b),document.body.classList.remove("non-selectable"),s===!0){const B=()=>{document.body.classList.remove("no-pointer-events--children")};d!==void 0?setTimeout(()=>{B(),d()},50):B()}else d!==void 0&&d()}};if(e.event.detected===!0){e.event.isFirst!==!0&&p(u,e.event.mouse);const{payload:b,synthetic:d}=G(u,e,!1);b!==void 0&&(e.handler(b)===!1?e.end(u):(e.styleCleanup===void 0&&e.event.isFirst===!0&&n(),e.event.lastX=b.position.left,e.event.lastY=b.position.top,e.event.lastDir=d===!0?void 0:b.direction,e.event.isFirst=!1));return}if(e.direction.all===!0||s===!0&&(e.modifiers.mouseAllDir===!0||e.modifiers.mousealldir===!0)){n(),e.event.detected=!0,e.move(u);return}const q=Math.abs(f),h=Math.abs(m);q!==h&&(e.direction.horizontal===!0&&q>h||e.direction.vertical===!0&&q<h||e.direction.up===!0&&q<h&&m<0||e.direction.down===!0&&q<h&&m>0||e.direction.left===!0&&q>h&&f<0||e.direction.right===!0&&q>h&&f>0?(e.event.detected=!0,e.move(u)):e.end(u,!0))},end(u,l){if(e.event!==void 0){if(N(e,"temp"),$.is.firefox===!0&&R(a,!1),l===!0)e.styleCleanup?.(),e.event.detected!==!0&&e.initialEvent!==void 0&&e.initialEvent.target.dispatchEvent(e.initialEvent.event);else if(e.event.detected===!0){e.event.isFirst===!0&&e.handler(G(u===void 0?e.lastEvt:u,e).payload);const{payload:f}=G(u===void 0?e.lastEvt:u,e,!0),m=()=>{e.handler(f)};e.styleCleanup!==void 0?e.styleCleanup(m):m()}e.event=void 0,e.initialEvent=void 0,e.lastEvt=void 0}}};if(a.__qtouchpan=e,r.mouse===!0){const u=r.mouseCapture===!0||r.mousecapture===!0?"Capture":"";P(e,"main",[[a,"mousedown","mouseStart",`passive${u}`]])}$.has.touch===!0&&P(e,"main",[[a,"touchstart","touchStart",`passive${r.capture===!0?"Capture":""}`],[a,"touchmove","noop","notPassiveCapture"]])},updated(a,o){const r=a.__qtouchpan;r!==void 0&&(o.oldValue!==o.value&&(typeof value!="function"&&r.end(),r.handler=o.value),r.direction=de(o.modifiers))},beforeUnmount(a){const o=a.__qtouchpan;o!==void 0&&(o.event!==void 0&&o.end(),N(o,"main"),N(o,"temp"),$.is.firefox===!0&&R(a,!1),o.styleCleanup?.(),delete a.__qtouchpan)}}),ve=150,at=Le({name:"QDrawer",inheritAttrs:!1,props:{...Pe,...Ae,side:{type:String,default:"left",validator:a=>["left","right"].includes(a)},width:{type:Number,default:300},mini:Boolean,miniToOverlay:Boolean,miniWidth:{type:Number,default:57},noMiniAnimation:Boolean,breakpoint:{type:Number,default:1023},showIfAbove:Boolean,behavior:{type:String,validator:a=>["default","desktop","mobile"].includes(a),default:"default"},bordered:Boolean,elevated:Boolean,overlay:Boolean,persistent:Boolean,noSwipeOpen:Boolean,noSwipeClose:Boolean,noSwipeBackdrop:Boolean},emits:[..._e,"onLayout","miniState"],setup(a,{slots:o,emit:r,attrs:p}){const e=je(),{proxy:{$q:u}}=e,l=Re(a,u),{preventBodyScroll:f}=Ne(),{registerTimeout:m,removeTimeout:s}=We(),n=Fe(ze,K);if(n===K)return console.error("QDrawer needs to be child of QLayout"),K;let q,h=null,b;const d=D(a.behavior==="mobile"||a.behavior!=="desktop"&&n.totalWidth.value<=a.breakpoint),B=v(()=>a.mini===!0&&d.value!==!0),g=v(()=>B.value===!0?a.miniWidth:a.width),c=D(a.showIfAbove===!0&&d.value===!1?!0:a.modelValue===!0),ee=v(()=>a.persistent!==!0&&(d.value===!0||he.value===!0));function te(t,i){if(fe(),t!==!1&&n.animate(),C(0),d.value===!0){const w=n.instances[_.value];w?.belowBreakpoint===!0&&w.hide(!1),S(1),n.isContainer.value!==!0&&f(!0)}else S(0),t!==!1&&V(!1);m(()=>{t!==!1&&V(!0),i!==!0&&r("show",t)},ve)}function ae(t,i){me(),t!==!1&&n.animate(),S(0),C(x.value*g.value),Q(),i!==!0?m(()=>{r("hide",t)},ve):s()}const{show:z,hide:E}=Xe({showing:c,hideOnRouteChange:ee,handleShow:te,handleHide:ae}),{addToHistory:fe,removeFromHistory:me}=Ye(c,E,ee),L={belowBreakpoint:d,hide:E},k=v(()=>a.side==="right"),x=v(()=>(u.lang.rtl===!0?-1:1)*(k.value===!0?1:-1)),ue=D(0),T=D(!1),X=D(!1),ne=D(g.value*x.value),_=v(()=>k.value===!0?"left":"right"),Y=v(()=>c.value===!0&&d.value===!1&&a.overlay===!1?a.miniToOverlay===!0?a.miniWidth:g.value:0),I=v(()=>a.overlay===!0||a.miniToOverlay===!0||n.view.value.indexOf(k.value?"R":"L")!==-1||u.platform.is.ios===!0&&n.isContainer.value===!0),O=v(()=>a.overlay===!1&&c.value===!0&&d.value===!1),he=v(()=>a.overlay===!0&&c.value===!0&&d.value===!1),ye=v(()=>"fullscreen q-drawer__backdrop"+(c.value===!1&&T.value===!1?" hidden":"")),be=v(()=>({backgroundColor:`rgba(0,0,0,${ue.value*.4})`})),ie=v(()=>k.value===!0?n.rows.value.top[2]==="r":n.rows.value.top[0]==="l"),pe=v(()=>k.value===!0?n.rows.value.bottom[2]==="r":n.rows.value.bottom[0]==="l"),we=v(()=>{const t={};return n.header.space===!0&&ie.value===!1&&(I.value===!0?t.top=`${n.header.offset}px`:n.header.space===!0&&(t.top=`${n.header.size}px`)),n.footer.space===!0&&pe.value===!1&&(I.value===!0?t.bottom=`${n.footer.offset}px`:n.footer.space===!0&&(t.bottom=`${n.footer.size}px`)),t}),ge=v(()=>{const t={width:`${g.value}px`,transform:`translateX(${ne.value}px)`};return d.value===!0?t:Object.assign(t,we.value)}),Ce=v(()=>"q-drawer__content fit "+(n.isContainer.value!==!0?"scroll":"overflow-auto")),qe=v(()=>`q-drawer q-drawer--${a.side}`+(X.value===!0?" q-drawer--mini-animate":"")+(a.bordered===!0?" q-drawer--bordered":"")+(l.value===!0?" q-drawer--dark q-dark":"")+(T.value===!0?" no-transition":c.value===!0?"":" q-layout--prevent-focus")+(d.value===!0?" fixed q-drawer--on-top q-drawer--mobile q-drawer--top-padding":` q-drawer--${B.value===!0?"mini":"standard"}`+(I.value===!0||O.value!==!0?" fixed":"")+(a.overlay===!0||a.miniToOverlay===!0?" q-drawer--on-top":"")+(ie.value===!0?" q-drawer--top-padding":""))),ke=v(()=>{const t=u.lang.rtl===!0?a.side:_.value;return[[J,xe,void 0,{[t]:!0,mouse:!0}]]}),Be=v(()=>{const t=u.lang.rtl===!0?_.value:a.side;return[[J,oe,void 0,{[t]:!0,mouse:!0}]]}),Se=v(()=>{const t=u.lang.rtl===!0?_.value:a.side;return[[J,oe,void 0,{[t]:!0,mouse:!0,mouseAllDir:!0}]]});function H(){Te(d,a.behavior==="mobile"||a.behavior!=="desktop"&&n.totalWidth.value<=a.breakpoint)}y(d,t=>{t===!0?(q=c.value,c.value===!0&&E(!1)):a.overlay===!1&&a.behavior!=="mobile"&&q!==!1&&(c.value===!0?(C(0),S(0),Q()):z(!1))}),y(()=>a.side,(t,i)=>{n.instances[i]===L&&(n.instances[i]=void 0,n[i].space=!1,n[i].offset=0),n.instances[t]=L,n[t].size=g.value,n[t].space=O.value,n[t].offset=Y.value}),y(n.totalWidth,()=>{(n.isContainer.value===!0||document.qScrollPrevented!==!0)&&H()}),y(()=>a.behavior+a.breakpoint,H),y(n.isContainer,t=>{c.value===!0&&f(t!==!0),t===!0&&H()}),y(n.scrollbarWidth,()=>{C(c.value===!0?0:void 0)}),y(Y,t=>{M("offset",t)}),y(O,t=>{r("onLayout",t),M("space",t)}),y(k,()=>{C()}),y(g,t=>{C(),j(a.miniToOverlay,t)}),y(()=>a.miniToOverlay,t=>{j(t,g.value)}),y(()=>u.lang.rtl,()=>{C()}),y(()=>a.mini,()=>{a.noMiniAnimation||a.modelValue===!0&&(Me(),n.animate())}),y(B,t=>{r("miniState",t)});function C(t){t===void 0?le(()=>{t=c.value===!0?0:g.value,C(x.value*t)}):(n.isContainer.value===!0&&k.value===!0&&(d.value===!0||Math.abs(t)===g.value)&&(t+=x.value*n.scrollbarWidth.value),ne.value=t)}function S(t){ue.value=t}function V(t){const i=t===!0?"remove":n.isContainer.value!==!0?"add":"";i!==""&&document.body.classList[i]("q-body--drawer-toggle")}function Me(){h!==null&&clearTimeout(h),e.proxy&&e.proxy.$el&&e.proxy.$el.classList.add("q-drawer--mini-animate"),X.value=!0,h=setTimeout(()=>{h=null,X.value=!1,e?.proxy?.$el?.classList.remove("q-drawer--mini-animate")},150)}function xe(t){if(c.value!==!1)return;const i=g.value,w=F(t.distance.x,0,i);if(t.isFinal===!0){w>=Math.min(75,i)===!0?z():(n.animate(),S(0),C(x.value*i)),T.value=!1;return}C((u.lang.rtl===!0?k.value!==!0:k.value)?Math.max(i-w,0):Math.min(0,w-i)),S(F(w/i,0,1)),t.isFirst===!0&&(T.value=!0)}function oe(t){if(c.value!==!0)return;const i=g.value,w=t.direction===a.side,A=(u.lang.rtl===!0?w!==!0:w)?F(t.distance.x,0,i):0;if(t.isFinal===!0){Math.abs(A)<Math.min(75,i)===!0?(n.animate(),S(1),C(0)):E(),T.value=!1;return}C(x.value*A),S(F(1-A/i,0,1)),t.isFirst===!0&&(T.value=!0)}function Q(){f(!1),V(!0)}function M(t,i){n.update(a.side,t,i)}function Te(t,i){t.value!==i&&(t.value=i)}function j(t,i){M("size",t===!0?a.miniWidth:i)}return n.instances[a.side]=L,j(a.miniToOverlay,g.value),M("space",O.value),M("offset",Y.value),a.showIfAbove===!0&&a.modelValue!==!0&&c.value===!0&&a["onUpdate:modelValue"]!==void 0&&r("update:modelValue",!0),Ie(()=>{r("onLayout",O.value),r("miniState",B.value),q=a.showIfAbove===!0;const t=()=>{(c.value===!0?te:ae)(!1,!0)};if(n.totalWidth.value!==0){le(t);return}b=y(n.totalWidth,()=>{b(),b=void 0,c.value===!1&&a.showIfAbove===!0&&d.value===!1?z(!1):t()})}),He(()=>{b?.(),h!==null&&(clearTimeout(h),h=null),c.value===!0&&Q(),n.instances[a.side]===L&&(n.instances[a.side]=void 0,M("size",0),M("offset",0),M("space",!1))}),()=>{const t=[];d.value===!0&&(a.noSwipeOpen===!1&&t.push(Ve(W("div",{key:"open",class:`q-drawer__opener fixed-${a.side}`,"aria-hidden":"true"}),ke.value)),t.push(se("div",{ref:"backdrop",class:ye.value,style:be.value,"aria-hidden":"true",onClick:E},void 0,"backdrop",a.noSwipeBackdrop!==!0&&c.value===!0,()=>Se.value)));const i=B.value===!0&&o.mini!==void 0,w=[W("div",{...p,key:""+i,class:[Ce.value,p.class]},i===!0?o.mini():Qe(o.default))];return a.elevated===!0&&c.value===!0&&w.push(W("div",{class:"q-layout__shadow absolute-full overflow-hidden no-pointer-events"})),t.push(se("aside",{ref:"content",class:qe.value,style:ge.value},w,"contentclose",a.noSwipeClose!==!0&&d.value===!0,()=>Be.value)),W("div",{class:"q-drawer-container"},t)}}});export{at as Q};
|