vuux
Version:
Vue3 Nuxt3 Nuxt4 组件库
71 lines (70 loc) • 2.3 kB
JavaScript
import { defineComponent as M, useTemplateRef as T, createElementBlock as t, openBlock as n, unref as e, Fragment as f, renderList as P, withDirectives as c, createVNode as u, vShow as i } from "vue";
import { useRate as g } from "./hook/useRate.mjs";
import { Icon as m } from "@vuux/icons";
const B = ["onMousemovePassive", "onClick", "onTouchendPassive"], _ = /* @__PURE__ */ M({
name: "Rate",
__name: "index",
props: {
modelValue: { default: 0 },
length: { default: 5 },
readonly: { type: Boolean },
size: { default: 22 },
color: { default: "#ffb800" },
heart: { type: Boolean }
},
emits: ["update:modelValue", "select"],
setup(v, { emit: h }) {
const o = v, k = h, p = T("rateEl"), { onTouchMove: y, onMousemove: I, onMouseleave: d, handleAction: z, getIconType: s } = g(o, p, k);
return (E, r) => (n(), t("div", {
class: "app-rate",
ref_key: "rateEl",
ref: p,
onMouseleave: r[1] || (r[1] = //@ts-ignore
(...l) => e(d) && e(d)(...l))
}, [
(n(!0), t(f, null, P(v.length, (l) => (n(), t("div", {
class: "rate-data",
key: l,
onMousemovePassive: (a) => e(I)(l),
onClick: (a) => e(z)(l),
onTouchendPassive: (a) => e(z)(l),
onTouchmovePassive: r[0] || (r[0] = (a) => e(y)(a))
}, [
o.heart ? (n(), t(f, { key: 0 }, [
c(u(e(m), {
name: "Icon2043232",
size: o.size,
color: o.color
}, null, 8, ["size", "color"]), [
[i, e(s)(l) === "full"]
]),
c(u(e(m), {
name: "Icon8834439",
size: o.size,
color: o.color
}, null, 8, ["size", "color"]), [
[i, e(s)(l) !== "full"]
])
], 64)) : (n(), t(f, { key: 1 }, [
c(u(e(m), {
size: o.size,
color: o.color,
name: "Icon4585273"
}, null, 8, ["size", "color"]), [
[i, e(s)(l) === "full"]
]),
c(u(e(m), {
name: "Icon9699566",
size: o.size,
color: o.color
}, null, 8, ["size", "color"]), [
[i, e(s)(l) !== "full"]
])
], 64))
], 40, B))), 128))
], 544));
}
});
export {
_ as default
};