1 line
11 KiB
JavaScript
1 line
11 KiB
JavaScript
import{N as ee,Z as Le,O as Be,_ as Pe,Q as te,R as pe,aJ as Oe,aC as de,aD as D,a as w,c as i,a0 as We,bG as De,w as d,o as Me,H as re,a1 as Qe,I as Re,U as g,bm as ue,a3 as ve,aE as ae,bH as He,bI as fe,aF as Fe,bJ as _e,bk as Z,r as V,b as Ie,aw as Ae}from"./index-3a2b6cd5.js";import{T as Y}from"./TouchPan-3cb133b6.js";import{b as E}from"./format-312d1398.js";import{a as Ve}from"./QScrollArea-eb9227a3.js";import{Q as se}from"./QResizeObserver-889eb2e3.js";const ce=150,Ge=ee({name:"QDrawer",inheritAttrs:!1,props:{...Le,...Be,side:{type:String,default:"left",validator:t=>["left","right"].includes(t)},width:{type:Number,default:300},mini:Boolean,miniToOverlay:Boolean,miniWidth:{type:Number,default:57},breakpoint:{type:Number,default:1023},showIfAbove:Boolean,behavior:{type:String,validator:t=>["default","desktop","mobile"].includes(t),default:"default"},bordered:Boolean,elevated:Boolean,overlay:Boolean,persistent:Boolean,noSwipeOpen:Boolean,noSwipeClose:Boolean,noSwipeBackdrop:Boolean},emits:[...Pe,"onLayout","miniState"],setup(t,{slots:C,emit:v,attrs:r}){const f=te(),{proxy:{$q:u}}=f,M=pe(t,u),{preventBodyScroll:p}=He(),{registerTimeout:$,removeTimeout:S}=Oe(),a=de(ae,D);if(a===D)return console.error("QDrawer needs to be child of QLayout"),D;let Q,R,T;const c=w(t.behavior==="mobile"||t.behavior!=="desktop"&&a.totalWidth.value<=t.breakpoint),z=i(()=>t.mini===!0&&c.value!==!0),h=i(()=>z.value===!0?t.miniWidth:t.width),n=w(t.showIfAbove===!0&&c.value===!1?!0:t.modelValue===!0),L=i(()=>t.persistent!==!0&&(c.value===!0||he.value===!0));function H(e,o){if(B(),e!==!1&&a.animate(),b(0),c.value===!0){const m=a.instances[I.value];m!==void 0&&m.belowBreakpoint===!0&&m.hide(!1),k(1),a.isContainer.value!==!0&&p(!0)}else k(0),e!==!1&&K(!1);$(()=>{e!==!1&&K(!0),o!==!0&&v("show",e)},ce)}function l(e,o){F(),e!==!1&&a.animate(),k(0),b(O.value*h.value),G(),o!==!0?$(()=>{v("hide",e)},ce):S()}const{show:s,hide:y}=We({showing:n,hideOnRouteChange:L,handleShow:H,handleHide:l}),{addToHistory:B,removeFromHistory:F}=De(n,y,L),P={belowBreakpoint:c,hide:y},x=i(()=>t.side==="right"),O=i(()=>(u.lang.rtl===!0?-1:1)*(x.value===!0?1:-1)),oe=w(0),W=w(!1),N=w(!1),le=w(h.value*O.value),I=i(()=>x.value===!0?"left":"right"),U=i(()=>n.value===!0&&c.value===!1&&t.overlay===!1?t.miniToOverlay===!0?t.miniWidth:h.value:0),j=i(()=>t.overlay===!0||t.miniToOverlay===!0||a.view.value.indexOf(x.value?"R":"L")>-1||u.platform.is.ios===!0&&a.isContainer.value===!0),_=i(()=>t.overlay===!1&&n.value===!0&&c.value===!1),he=i(()=>t.overlay===!0&&n.value===!0&&c.value===!1),me=i(()=>"fullscreen q-drawer__backdrop"+(n.value===!1&&W.value===!1?" hidden":"")),ye=i(()=>({backgroundColor:`rgba(0,0,0,${oe.value*.4})`})),ie=i(()=>x.value===!0?a.rows.value.top[2]==="r":a.rows.value.top[0]==="l"),be=i(()=>x.value===!0?a.rows.value.bottom[2]==="r":a.rows.value.bottom[0]==="l"),ge=i(()=>{const e={};return a.header.space===!0&&ie.value===!1&&(j.value===!0?e.top=`${a.header.offset}px`:a.header.space===!0&&(e.top=`${a.header.size}px`)),a.footer.space===!0&&be.value===!1&&(j.value===!0?e.bottom=`${a.footer.offset}px`:a.footer.space===!0&&(e.bottom=`${a.footer.size}px`)),e}),we=i(()=>{const e={width:`${h.value}px`,transform:`translateX(${le.value}px)`};return c.value===!0?e:Object.assign(e,ge.value)}),Se=i(()=>"q-drawer__content fit "+(a.isContainer.value!==!0?"scroll":"overflow-auto")),xe=i(()=>`q-drawer q-drawer--${t.side}`+(N.value===!0?" q-drawer--mini-animate":"")+(t.bordered===!0?" q-drawer--bordered":"")+(M.value===!0?" q-drawer--dark q-dark":"")+(W.value===!0?" no-transition":n.value===!0?"":" q-layout--prevent-focus")+(c.value===!0?" fixed q-drawer--on-top q-drawer--mobile q-drawer--top-padding":` q-drawer--${z.value===!0?"mini":"standard"}`+(j.value===!0||_.value!==!0?" fixed":"")+(t.overlay===!0||t.miniToOverlay===!0?" q-drawer--on-top":"")+(ie.value===!0?" q-drawer--top-padding":""))),ke=i(()=>{const e=u.lang.rtl===!0?t.side:I.value;return[[Y,Te,void 0,{[e]:!0,mouse:!0}]]}),qe=i(()=>{const e=u.lang.rtl===!0?I.value:t.side;return[[Y,ne,void 0,{[e]:!0,mouse:!0}]]}),Ce=i(()=>{const e=u.lang.rtl===!0?I.value:t.side;return[[Y,ne,void 0,{[e]:!0,mouse:!0,mouseAllDir:!0}]]});function J(){ze(c,t.behavior==="mobile"||t.behavior!=="desktop"&&a.totalWidth.value<=t.breakpoint)}d(c,e=>{e===!0?(Q=n.value,n.value===!0&&y(!1)):t.overlay===!1&&t.behavior!=="mobile"&&Q!==!1&&(n.value===!0?(b(0),k(0),G()):s(!1))}),d(()=>t.side,(e,o)=>{a.instances[o]===P&&(a.instances[o]=void 0,a[o].space=!1,a[o].offset=0),a.instances[e]=P,a[e].size=h.value,a[e].space=_.value,a[e].offset=U.value}),d(a.totalWidth,()=>{(a.isContainer.value===!0||document.qScrollPrevented!==!0)&&J()}),d(()=>t.behavior+t.breakpoint,J),d(a.isContainer,e=>{n.value===!0&&p(e!==!0),e===!0&&J()}),d(a.scrollbarWidth,()=>{b(n.value===!0?0:void 0)}),d(U,e=>{q("offset",e)}),d(_,e=>{v("onLayout",e),q("space",e)}),d(x,()=>{b()}),d(h,e=>{b(),X(t.miniToOverlay,e)}),d(()=>t.miniToOverlay,e=>{X(e,h.value)}),d(()=>u.lang.rtl,()=>{b()}),d(()=>t.mini,()=>{t.modelValue===!0&&($e(),a.animate())}),d(z,e=>{v("miniState",e)});function b(e){e===void 0?re(()=>{e=n.value===!0?0:h.value,b(O.value*e)}):(a.isContainer.value===!0&&x.value===!0&&(c.value===!0||Math.abs(e)===h.value)&&(e+=O.value*a.scrollbarWidth.value),le.value=e)}function k(e){oe.value=e}function K(e){const o=e===!0?"remove":a.isContainer.value!==!0?"add":"";o!==""&&document.body.classList[o]("q-body--drawer-toggle")}function $e(){clearTimeout(R),f.proxy&&f.proxy.$el&&f.proxy.$el.classList.add("q-drawer--mini-animate"),N.value=!0,R=setTimeout(()=>{N.value=!1,f&&f.proxy&&f.proxy.$el&&f.proxy.$el.classList.remove("q-drawer--mini-animate")},150)}function Te(e){if(n.value!==!1)return;const o=h.value,m=E(e.distance.x,0,o);if(e.isFinal===!0){m>=Math.min(75,o)===!0?s():(a.animate(),k(0),b(O.value*o)),W.value=!1;return}b((u.lang.rtl===!0?x.value!==!0:x.value)?Math.max(o-m,0):Math.min(0,m-o)),k(E(m/o,0,1)),e.isFirst===!0&&(W.value=!0)}function ne(e){if(n.value!==!0)return;const o=h.value,m=e.direction===t.side,A=(u.lang.rtl===!0?m!==!0:m)?E(e.distance.x,0,o):0;if(e.isFinal===!0){Math.abs(A)<Math.min(75,o)===!0?(a.animate(),k(1),b(0)):y(),W.value=!1;return}b(O.value*A),k(E(1-A/o,0,1)),e.isFirst===!0&&(W.value=!0)}function G(){p(!1),K(!0)}function q(e,o){a.update(t.side,e,o)}function ze(e,o){e.value!==o&&(e.value=o)}function X(e,o){q("size",e===!0?t.miniWidth:o)}return a.instances[t.side]=P,X(t.miniToOverlay,h.value),q("space",_.value),q("offset",U.value),t.showIfAbove===!0&&t.modelValue!==!0&&n.value===!0&&t["onUpdate:modelValue"]!==void 0&&v("update:modelValue",!0),Me(()=>{v("onLayout",_.value),v("miniState",z.value),Q=t.showIfAbove===!0;const e=()=>{(n.value===!0?H:l)(!1,!0)};if(a.totalWidth.value!==0){re(e);return}T=d(a.totalWidth,()=>{T(),T=void 0,n.value===!1&&t.showIfAbove===!0&&c.value===!1?s(!1):e()})}),Qe(()=>{T!==void 0&&T(),clearTimeout(R),n.value===!0&&G(),a.instances[t.side]===P&&(a.instances[t.side]=void 0,q("size",0),q("offset",0),q("space",!1))}),()=>{const e=[];c.value===!0&&(t.noSwipeOpen===!1&&e.push(Re(g("div",{key:"open",class:`q-drawer__opener fixed-${t.side}`,"aria-hidden":"true"}),ke.value)),e.push(ue("div",{ref:"backdrop",class:me.value,style:ye.value,"aria-hidden":"true",onClick:y},void 0,"backdrop",t.noSwipeBackdrop!==!0&&n.value===!0,()=>Ce.value)));const o=z.value===!0&&C.mini!==void 0,m=[g("div",{...r,key:""+o,class:[Se.value,r.class]},o===!0?C.mini():ve(C.default))];return t.elevated===!0&&n.value===!0&&m.push(g("div",{class:"q-layout__shadow absolute-full overflow-hidden no-pointer-events"})),e.push(ue("aside",{ref:"content",class:xe.value,style:we.value},m,"contentclose",t.noSwipeClose!==!0&&c.value===!0,()=>qe.value)),g("div",{class:"q-drawer-container"},e)}}}),Xe=ee({name:"QPageContainer",setup(t,{slots:C}){const{proxy:{$q:v}}=te(),r=de(ae,D);if(r===D)return console.error("QPageContainer needs to be child of QLayout"),D;fe(Fe,!0);const f=i(()=>{const u={};return r.header.space===!0&&(u.paddingTop=`${r.header.size}px`),r.right.space===!0&&(u[`padding${v.lang.rtl===!0?"Left":"Right"}`]=`${r.right.size}px`),r.footer.space===!0&&(u.paddingBottom=`${r.footer.size}px`),r.left.space===!0&&(u[`padding${v.lang.rtl===!0?"Right":"Left"}`]=`${r.left.size}px`),u});return()=>g("div",{class:"q-page-container",style:f.value},ve(C.default))}}),Ze=ee({name:"QLayout",props:{container:Boolean,view:{type:String,default:"hhh lpr fff",validator:t=>/^(h|l)h(h|r) lpr (f|l)f(f|r)$/.test(t.toLowerCase())},onScroll:Function,onScrollHeight:Function,onResize:Function},setup(t,{slots:C,emit:v}){const{proxy:{$q:r}}=te(),f=w(null),u=w(r.screen.height),M=w(t.container===!0?0:r.screen.width),p=w({position:0,direction:"down",inflectionPoint:0}),$=w(0),S=w(_e.value===!0?0:Z()),a=i(()=>"q-layout q-layout--"+(t.container===!0?"containerized":"standard")),Q=i(()=>t.container===!1?{minHeight:r.screen.height+"px"}:null),R=i(()=>S.value!==0?{[r.lang.rtl===!0?"left":"right"]:`${S.value}px`}:null),T=i(()=>S.value!==0?{[r.lang.rtl===!0?"right":"left"]:0,[r.lang.rtl===!0?"left":"right"]:`-${S.value}px`,width:`calc(100% + ${S.value}px)`}:null);function c(l){if(t.container===!0||document.qScrollPrevented!==!0){const s={position:l.position.top,direction:l.direction,directionChanged:l.directionChanged,inflectionPoint:l.inflectionPoint.top,delta:l.delta.top};p.value=s,t.onScroll!==void 0&&v("scroll",s)}}function z(l){const{height:s,width:y}=l;let B=!1;u.value!==s&&(B=!0,u.value=s,t.onScrollHeight!==void 0&&v("scrollHeight",s),n()),M.value!==y&&(B=!0,M.value=y),B===!0&&t.onResize!==void 0&&v("resize",l)}function h({height:l}){$.value!==l&&($.value=l,n())}function n(){if(t.container===!0){const l=u.value>$.value?Z():0;S.value!==l&&(S.value=l)}}let L;const H={instances:{},view:i(()=>t.view),isContainer:i(()=>t.container),rootRef:f,height:u,containerHeight:$,scrollbarWidth:S,totalWidth:i(()=>M.value+S.value),rows:i(()=>{const l=t.view.toLowerCase().split(" ");return{top:l[0].split(""),middle:l[1].split(""),bottom:l[2].split("")}}),header:V({size:0,offset:0,space:!1}),right:V({size:300,offset:0,space:!1}),footer:V({size:0,offset:0,space:!1}),left:V({size:300,offset:0,space:!1}),scroll:p,animate(){L!==void 0?clearTimeout(L):document.body.classList.add("q-body--layout-animate"),L=setTimeout(()=>{document.body.classList.remove("q-body--layout-animate"),L=void 0},155)},update(l,s,y){H[l][s]=y}};if(fe(ae,H),Z()>0){let y=function(){l=null,s.classList.remove("hide-scrollbar")},B=function(){if(l===null){if(s.scrollHeight>r.screen.height)return;s.classList.add("hide-scrollbar")}else clearTimeout(l);l=setTimeout(y,300)},F=function(P){l!==null&&P==="remove"&&(clearTimeout(l),y()),window[`${P}EventListener`]("resize",B)},l=null;const s=document.body;d(()=>t.container!==!0?"add":"remove",F),t.container!==!0&&F("add"),Ie(()=>{F("remove")})}return()=>{const l=Ae(C.default,[g(Ve,{onScroll:c}),g(se,{onResize:z})]),s=g("div",{class:a.value,style:Q.value,ref:t.container===!0?void 0:f,tabindex:-1},l);return t.container===!0?g("div",{class:"q-layout-container overflow-hidden",ref:f},[g(se,{onResize:h}),g("div",{class:"absolute-full",style:R.value},[g("div",{class:"scroll",style:T.value},[s])])]):s}}});export{Ge as Q,Xe as a,Ze as b};
|