UNPKG

dk-plus

Version:
60 lines (59 loc) 1.7 kB
import { defineComponent as r, ref as d, reactive as f, watch as o } from "vue"; import { dkCheckboxProps as g } from "./index3.js"; import "../../_icon/index.js"; import { getCheckbox as V } from "../../_hooks/get-checkbox/index.js"; const D = r({ name: "DkCheckbox", props: g, emits: ["update:modelValue", "change", "detail-change"], setup(e, { emit: n, slots: b }) { const l = d(""), m = d(), u = d(e.modelValue), a = f({ checkedLabel: e.checkedLabel, uncheckedLabel: e.uncheckedLabel, label: e.label, value: e.value, hasSlot: !!b.default }), i = a.checkedLabel || a.uncheckedLabel, h = d(""); (() => { h.value = e.modelValue ? a.checkedLabel : a.uncheckedLabel; })(); const s = (c) => { const t = c.target.checked; l.value = t ? "checked" : "", i && (h.value = t ? a.checkedLabel : a.uncheckedLabel), n("update:modelValue", t), n("change", t), n("detail-change", { checked: t, value: e.value && e.value.toString() || a.label, label: a.label }); }, { classList: L, styleList: v } = V(e); o( () => e.modelValue, (c) => { u.value = c, l.value = e.modelValue ? "checked" : ""; }, { immediate: !0 } ); const k = d(e.indeterminate); return o( () => e.indeterminate, (c) => { k.value = c, u.value ? l.value = "checked" : l.value = c ? "checked" : ""; } ), { modelValue: u, change: s, classList: L, styleList: v, checkbox: m, checkedClass: l, indeterminate: k, ...a, labelValue: h, isCheckLabel: i }; } }); export { D as default };