UNPKG

fui-fancyui

Version:
53 lines (52 loc) 1.23 kB
"use client"; import { jsx as M } from "react/jsx-runtime"; import { useState as f, useEffect as z } from "react"; import { StyledRawSlider as $ } from "./RawSlider.style.js"; function C(p) { const { max: m, min: l, value: t, ref: d, themeType: g = "primary", layer: y = 3, onChange: a, onTouchStart: o, style: N, onTouchEnd: i, sizeC: S = "sm", ...b } = p, [r, u] = f(t ? Number(t) : 0), [h, s] = f(!1), n = l ? Number(l) : 0, c = m ? Number(m) : 100, v = isNaN(r) ? "0% 100%" : Math.max(0, Math.min(100, (r - n) * 100 / (c - n))) + "% 100%", x = (e) => { a == null || a(e), u(Number(e.target.value)); }; return z(() => { t && u(Number(t)); }, [t]), /* @__PURE__ */ M( $, { type: "range", ref: d, $isActive: h, $sizeC: S, onMouseDown: () => s(!0), onMouseUp: () => s(!1), onTouchStart: (e) => { s(!0), o == null || o(e); }, onTouchEnd: (e) => { s(!1), i == null || i(e); }, $themeType: g, $layer: y, style: { backgroundSize: v, ...N }, value: isNaN(r) ? 0 : r, min: n, max: c, onChange: x, ...b } ); } export { C as default };