dk-plus
Version:
60 lines (59 loc) • 1.7 kB
JavaScript
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
};