UNPKG

vuux

Version:

Vue3 Nuxt3 Nuxt4 组件库

2 lines (1 loc) 1.55 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("vue"),g=require("../utils.cjs"),y=(n,u,a,h)=>{const $=s.computed(()=>{const{r:e,g:t,b:i}=g.HSVtoRGB({h:n.hue,s:n.sat,v:n.val}),b=`rgba(${e}, ${t}, ${i}, 0)`,E=`rgba(${e}, ${t}, ${i}, 1)`;return`linear-gradient(to right, ${b}, ${E})`}),f=s.computed(()=>{const{r:e,g:t,b:i}=g.HSVtoRGB({h:n.hue,s:n.sat,v:n.val});return`rgba(${e}, ${t}, ${i}, ${n.alpha})`}),c=s.computed(()=>n.width),o=s.ref(0),r=e=>{if(a.value){a.value.style.transform=`translate(${e}px, 0px)`;const t=e/c.value*100/100;h("update:alpha",t)}},l=e=>{if(e.cancelable&&e.preventDefault(),!u.value||!a.value)return;let t=0;e instanceof MouseEvent?t=e.pageX-o.value:t=e.touches[0].pageX-o.value,t=Math.min(c.value,Math.max(0,t)),r(t)},v=()=>{if(u.value){const e=u.value.getBoundingClientRect();o.value=e.left}},p=()=>{if(u.value){const e=n.alpha*(c.value??0);a.value.style.transform=`translate(${e}px, 0px)`}},d=()=>{document.removeEventListener("mousemove",l),document.removeEventListener("touchmove",l)},m=()=>{d()},M=()=>{document.addEventListener("mouseup",m,{once:!0}),document.addEventListener("touchend",m,{once:!0,passive:!1}),document.addEventListener("mousemove",l),document.addEventListener("touchmove",l,{passive:!1})},L=e=>{M(),v();let t;e instanceof MouseEvent?t=e.pageX-o.value:t=e.touches[0].pageX-o.value,t=Math.min(c.value,Math.max(0,t)),r(t)};return s.onBeforeUnmount(()=>{d()}),{alphaBgColor:$,cursorColor:f,setSizePoses:v,setCursor:p,onMousedown:L}};exports.useAlpha=y;