UNPKG

mine-h5-ui

Version:

一款轻量级、模块化基于 Vue3.x 的 H5 前端 UI 组件库 👍

95 lines (94 loc) 3.25 kB
import { ref as b } from "vue"; import j from "./area.js"; /*! * mine-h5-ui v2.16.0 * Copyright (c) 2025 biaov * @license MIT */ const f = j, F = () => { const u = b([Object.values(f[86]), [], []]), o = b([88, 88, 88]), d = b(0), r = [u.value[0][0]]; let v = 0, h = 0, m = 0; const p = (n) => { d.value = n, setTimeout(() => { d.value = 0; }, n); }, T = () => { let n = 0; for (const t in f[86]) if (f[86][t] === r[0]) { for (const c in f[t]) if (f[t][c] === r[1]) { n = +c; break; } break; } const [e] = u.value[2] = Object.values(f[n]); r[2] = e; }, Y = (n) => { let e = o.value[n]; const t = u.value[n].length - 1; e > 88 ? e = 88 : e < 88 - t * 44 && (e = 88 - t * 44), o.value[n] = e, p(400); }, w = () => { let n = 0; for (const t in f[86]) if (f[86][t] === r[0]) { n = +t; break; } const [e] = u.value[1] = Object.values(f[n]); r[1] = e, T(); }, g = (n, e) => { const t = Math.abs(n / 44 - 2); r[e] = u.value[e][t], e !== 2 && Y(e + 1), e !== 2 && (e === 0 ? w() : T(), Y(e + 1)); }, y = (n, e) => { v = n.changedTouches[0].clientY, h = o.value[e], m = +/* @__PURE__ */ new Date(); }, x = (n, e) => { const c = n.changedTouches[0].clientY - v, i = h + c; o.value[e] = i; }, M = (n, e) => { let t = o.value[e]; const c = +/* @__PURE__ */ new Date(), i = +((n.changedTouches[0].clientY - v) / (c - m)).toFixed(2); if (i > 0.12 || i < -0.12) { const s = Math.ceil(i * 400); t += s; } const a = t % 44; if (a !== 0) { let s = 0; a > 0 ? s = a > 44 / 2 ? t + (44 - a) : t - a : s = a < -44 / 2 ? t - (44 + a) : t - a; const l = u.value[e], D = typeof l == "number" ? l - 1 : l.length - 1; s > 88 ? s = 88 : s < 88 - D * 44 && (s = 88 - D * 44), o.value[e] = s, p(400), g(s, e); } }, O = (n, e) => { v = n.clientY, h = o.value[e], m = +/* @__PURE__ */ new Date(), document.onmousemove = (t) => { const i = t.clientY - v, a = h + i; o.value[e] = a; }, document.onmouseup = (t) => { let c = o.value[e]; const i = +/* @__PURE__ */ new Date(), a = +((t.clientY - v) / (i - m)).toFixed(2); if (a > 0.12 || a < -0.12) { const l = Math.ceil(a * 400); c += l; } const s = c % 44; if (s !== 0) { let l = 0; s > 0 ? l = s > 44 / 2 ? c + (44 - s) : c - s : l = s < -44 / 2 ? c - (44 + s) : c - s; const D = u.value[e], k = typeof D == "number" ? D - 1 : D.length - 1; l > 88 ? l = 88 : l < 88 - k * 44 && (l = 88 - k * 44), o.value[e] = l, p(400), g(l, e); } document.onmousemove = null, document.onmouseup = null; }; }; return w(), { listData: u, distance: o, duration: d, currentValue: r, onTouchstart: y, onTouchmove: x, onTouchend: M, onMousedown: O }; }, S = ({ props: u, emit: o, currentValue: d, modelValue: r }) => ({ onCancel: () => { o("cancel"); }, onSure: () => { const m = d.reduce((p, T, Y) => p + (Y === 0 ? "" : u.separator) + T, ""); r.value = m, o("sure", d); } }); export { S as useBtns, F as useHandMove };