UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

54 lines (53 loc) 1.57 kB
import { defineComponent as d, ref as f, watch as m, createVNode as e, Fragment as b } from "vue"; import { withInstall as g } from "../common/index.esm.js"; const p = { /** * 单选组枚举数组 */ enumData: { type: Array, default: [{ text: "1", active: !0 }] }, /** * 后缀 */ suffixValue: { type: String, default: "" }, /** * 返回值 */ onSelectedValueChanged: { type: Function, default: () => { } } }, v = /* @__PURE__ */ d({ name: "FRadioButton", props: p, emits: ["selectedValueChanged"], setup(a, s) { const o = f(a.enumData); function u(t, n) { if (t.currentTarget.classList.value = "btn btn-secondary active", t.currentTarget.tagName.toLowerCase() === "label") { const { currentTarget: r } = t, c = r.parentElement; Array.from(c.querySelectorAll("label")).filter((l) => l !== r).forEach((l) => l.classList.remove("active")); } s.emit("selectedValueChanged", n); } function i(t) { return `${t.text}${a.suffixValue}`; } return m(() => a.enumData, (t, n) => { t !== n && (o.value = a.enumData); }), () => e("div", { class: "f-radio-button" }, [e("div", { class: ["farris-input-wrap"] }, [o.value.map((t, n) => e(b, null, [e("label", { class: t.active ? "btn btn-secondary active" : "btn btn-secondary", onClick: (r) => u(r, t) }, [e("span", { class: "f-radio-button-text" }, [i(t)])])]))])]); } }), C = g(v); export { v as RadioButton, C as default, p as radioButtonProps };