2 lines
8.2 KiB
JavaScript
2 lines
8.2 KiB
JavaScript
|
|
import{N as x,w as O,Q as L,o as oe,a1 as U,aS as re,aN as ie,b8 as ne,bC as ue,bD as ce,O as se,a as v,R as ve,c as i,aT as he,aU as fe,aV as be,U as f,aw as de,I as Q,bE as M,bF as E}from"./index-3a2b6cd5.js";import{Q as B}from"./QResizeObserver-889eb2e3.js";import{T as F}from"./TouchPan-3cb133b6.js";import{b as q}from"./format-312d1398.js";const{passive:N}=ne,ze=["both","horizontal","vertical"],me=x({name:"QScrollObserver",props:{axis:{type:String,validator:a=>ze.includes(a),default:"vertical"},debounce:[String,Number],scrollTarget:{default:void 0}},emits:["scroll"],setup(a,{emit:P}){const n={position:{top:0,left:0},direction:"down",directionChanged:!1,delta:{top:0,left:0},inflectionPoint:{top:0,left:0}};let u=null,c,d;O(()=>a.scrollTarget,()=>{b(),e()});function o(){u!==null&&u();const z=Math.max(0,ue(c)),s=ce(c),h={top:z-n.position.top,left:s-n.position.left};if(a.axis==="vertical"&&h.top===0||a.axis==="horizontal"&&h.left===0)return;const y=Math.abs(h.top)>=Math.abs(h.left)?h.top<0?"up":"down":h.left<0?"left":"right";n.position={top:z,left:s},n.directionChanged=n.direction!==y,n.delta=h,n.directionChanged===!0&&(n.direction=y,n.inflectionPoint=n.position),P("scroll",{...n})}function e(){c=ie(d,a.scrollTarget),c.addEventListener("scroll",S,N),S(!0)}function b(){c!==void 0&&(c.removeEventListener("scroll",S,N),c=void 0)}function S(z){if(z===!0||a.debounce===0||a.debounce==="0")o();else if(u===null){const[s,h]=a.debounce?[setTimeout(o,a.debounce),clearTimeout]:[requestAnimationFrame(o),cancelAnimationFrame];u=()=>{h(s),u=null}}}const{proxy:g}=L();return O(()=>g.$q.lang.rtl,o),oe(()=>{d=g.$el.parentNode,e()}),U(()=>{u!==null&&u(),b()}),Object.assign(g,{trigger:S,getPosition:()=>n}),re}}),R=["vertical","horizontal"],C={vertical:{offset:"offsetY",scroll:"scrollTop",dir:"down",dist:"y"},horizontal:{offset:"offsetX",scroll:"scrollLeft",dir:"right",dist:"x"}},V={prevent:!0,mouse:!0,mouseAllDir:!0},k=a=>a>=250?50:Math.ceil(a/5),_e=x({name:"QScrollArea",props:{...se,thumbStyle:Object,verticalThumbStyle:Object,horizontalThumbStyle:Object,barStyle:[Array,String,Object],verticalBarStyle:[Array,String,Object],horizontalBarStyle:[Array,String,Object],contentStyle:[Array,String,Object],contentActiveStyle:[Array,String,Object],delay:{type:[String,Number],default:1e3},visible:{type:Boolean,default:null},tabindex:[String,Number],onScroll:Function},setup(a,{slots:P,emit:n}){const u=v(!1),c=v(!1),d=v(!1),o={vertical:v(0),horizontal:v(0)},e={vertical:{ref:v(null),position:v(0),size:v(0)},horizontal:{ref:v(null),position:v(0),size:v(0)}},{proxy:b}=L(),S=ve(a,b.$q);let g,z;const s=v(null),h=i(()=>"q-scrollarea"+(S.value===!0?" q-scrollarea--dark":""));e.vertical.percentage=i(()=>{const t=e.vertical.size.value-o.vertical.value;if(t<=0)return 0;const l=q(e.vertical.position.value/t,0,1);return Math.round(l*1e4)/1e4}),e.vertical.thumbHidden=i(()=>(a.visible===null?d.value:a.visible)!==!0&&u.value===!1&&c.value===!1||e.vertical.size.value<=o.vertical.value+1),e.vertical.thumbStart=i(()=>e.vertical.percentage.value*(o.vertical.value-e.vertical.thumbSize.value)),e.vertical.thumbSize=i(()=>Math.round(q(o.vertical.value*o.vertical.value/e.vertical.size.value,k(o.vertical.value),o.vertical.value))),e.vertical.style=i(()=>({...a.thumbStyle,...a.verticalThumbStyle,top:`${e.vertical.thumbStart.value}px`,height:`${e.vertical.thumbSize.value}px`})),e.vertical.thumbClass=i(()=>"q-scrollarea__thumb q-scrollarea__thumb--v absolute-right"+(e.vertical.thumbHidden.value===!0?" q-scrollarea__thumb--invisible":"")),e.vertical.barClass=i(()=>"q-scrollarea__bar q-scrollarea__bar--v absolute-right"+(e.vertical.thumbHidden.value===!0?" q-scrollarea__bar--invisible":"")),e.horizontal.percentage=i(()=>{const t=e.horizontal.size.value-o.horizontal.value;if(t<=0)return 0;const l=q(Math.abs(e.horizontal.position.value)/t,0,1);return Math.round(l*1e4)/1e4}),e.horizontal.thumbHidden=i(()=>(a.visible===null?d.value:a.visible)!==!0&&u.value===!1&&c.value===!1||e.horizontal.size.value<=o.horizontal.value+1),e.horizontal.thumbStart=i(()=>e.horizontal.percentage.value*(o.hori
|