/* Copyright © 2024 Melbet - All Rights Reserved */ import{defineComponent as c,ref as n,computed as u,openBlock as d,createElementBlock as f,normalizeClass as m,renderSlot as p}from"../../../../shared-assets/__shared_vue_deps_SRT2KB67.js";import{defaultThemeType as v,defaultSizeType as y,t as b}from"./entry-Bl6dkD65.js";var S=c({name:"UiScrollbar",props:{theme:{type:String,default:v},size:{type:String,default:y},outside:{type:Boolean,default:!1},isFixed:{type:Boolean,default:!1},isOnlyVertical:{type:Boolean,default:!1},isOnlyHorizontal:{type:Boolean,default:!1},isBodyNotScrollable:{type:Boolean,default:!1}},emits:["mouseenter","mouseleave","scroll"],setup(e,{emit:l}){let a;const s=n(!1),r=n(null);return{uiScrollbarClasses:u(()=>({[`ui-scrollbar--theme-${e.theme}`]:!!e.theme,[`ui-scrollbar--size-${e.size}`]:!!e.size,"ui-scrollbar--outside":e.outside,"ui-scrollbar--is-fixed":e.isFixed,"ui-scrollbar--vertical":e.isOnlyVertical,"ui-scrollbar--horizontal":e.isOnlyHorizontal})),isScrolled:s,container:r,onScroll:o=>{l("scroll",o),clearTimeout(a),a=setTimeout(()=>{s.value=!1},150),s.value=!0},scrollInToView:o=>{var t;const i=(t=o.firstElementChild)==null?void 0:t.offsetHeight;requestAnimationFrame(()=>{o.offsetTop+o.offsetHeight>r.value.scrollTop+(r.value.offsetHeight-i)&&(r.value.scrollTop=o.offsetTop-i)})},onMouseEnter:o=>{l("mouseenter",o);const{scrollHeight:t,clientHeight:i}=o.target;t>i&&e.isBodyNotScrollable&&document.body.classList.add("body--not-scrollable")},onMouseLeave:o=>{l("mouseleave",o),document.body.classList.remove("body--not-scrollable")},scrollToView:o=>{requestAnimationFrame(()=>{r.value.scrollTop=o.offsetTop})}}}}),B=b(S,[["render",function(e,l,a,s,r,o){return d(),f("div",{ref:"container",onScroll:l[0]||(l[0]=(...t)=>e.onScroll&&e.onScroll(...t)),onMouseenter:l[1]||(l[1]=(...t)=>e.onMouseEnter&&e.onMouseEnter(...t)),onMouseleave:l[2]||(l[2]=(...t)=>e.onMouseLeave&&e.onMouseLeave(...t)),class:m(["ui-scrollbar",e.uiScrollbarClasses])},[p(e.$slots,"default",{isScrolled:e.isScrolled,inToView:e.scrollInToView,toView:e.scrollToView},void 0,!0)],34)}],["__scopeId","data-v-2c1fcf31"]]);export{B as i};