UNPKG

ll-package

Version:

2 lines (1 loc) 2.35 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const x=require("../../../../@babel/runtime/helpers/esm/objectSpread2.js"),r=require("../../../../@babel/runtime/helpers/esm/extends.js"),a=require("vue"),O=require("../../_util/classNames.js"),d=require("../../_util/vue-types/index.js"),P=require("../../vc-util/Dom/addEventListener.js"),U=a.defineComponent({compatConfig:{MODE:3},name:"Handle",inheritAttrs:!1,props:{prefixCls:String,vertical:{type:Boolean,default:void 0},offset:Number,disabled:{type:Boolean,default:void 0},min:Number,max:Number,value:Number,tabindex:d.default.oneOfType([d.default.number,d.default.string]),reverse:{type:Boolean,default:void 0},ariaLabel:String,ariaLabelledBy:String,ariaValueTextFormatter:Function,onMouseenter:{type:Function},onMouseleave:{type:Function},onMousedown:{type:Function}},setup(c,M){let{attrs:s,emit:f,expose:h}=M;const l=a.shallowRef(!1),n=a.shallowRef(),g=()=>{document.activeElement===n.value&&(l.value=!0)},w=e=>{l.value=!1,f("blur",e)},B=()=>{l.value=!1},i=()=>{var e;(e=n.value)===null||e===void 0||e.focus()},F=()=>{var e;(e=n.value)===null||e===void 0||e.blur()},S=()=>{l.value=!0,i()},N=e=>{e.preventDefault(),i(),f("mousedown",e)};h({focus:i,blur:F,clickFocus:S,ref:n});let u=null;a.onMounted(()=>{u=P.default(document,"mouseup",g)}),a.onBeforeUnmount(()=>{u==null||u.remove()});const q=a.computed(()=>{const{vertical:e,offset:o,reverse:t}=c;return e?{[t?"top":"bottom"]:`${o}%`,[t?"bottom":"top"]:"auto",transform:t?null:"translateY(+50%)"}:{[t?"right":"left"]:`${o}%`,[t?"left":"right"]:"auto",transform:`translateX(${t?"+":"-"}50%)`}});return()=>{const{prefixCls:e,disabled:o,min:t,max:L,value:v,tabindex:m,ariaLabel:T,ariaLabelledBy:V,ariaValueTextFormatter:b,onMouseenter:_,onMouseleave:C}=c,$=O.default(s.class,{[`${e}-handle-click-focused`]:l.value}),k={"aria-valuemin":t,"aria-valuemax":L,"aria-valuenow":v,"aria-disabled":!!o},D=[s.style,q.value];let p=m||0;(o||m===null)&&(p=null);let y;b&&(y=b(v));const E=r.default(r.default(r.default(r.default({},s),{role:"slider",tabindex:p}),k),{class:$,onBlur:w,onKeydown:B,onMousedown:N,onMouseenter:_,onMouseleave:C,ref:n,style:D});return a.createVNode("div",x.default(x.default({},E),{},{"aria-label":T,"aria-labelledby":V,"aria-valuetext":y}),null)}}});exports.default=U;