adverich-kun-ui
Version:
Una librería de componentes Vue.js con Tailwind CSS
31 lines (30 loc) • 928 B
JavaScript
import { ref as m, watch as c, computed as d } from "vue";
function o(e, r) {
const a = m(e.modelValue);
c(() => e.modelValue, (l) => {
a.value = l;
});
const t = e.valueComparator || ((l, u) => l === u), n = d(() => e.indeterminate ? !1 : e.multiple && Array.isArray(a.value) ? a.value.some(
(l) => t(l, e.value ?? e.trueValue)
) : t(a.value, e.value ?? e.trueValue));
function v() {
if (e.disabled || e.readonly) return;
let l;
if (e.indeterminate)
l = e.value ?? e.trueValue;
else if (e.multiple && Array.isArray(a.value)) {
const u = e.value ?? e.trueValue;
l = a.value.some((i) => t(i, u)) ? a.value.filter((i) => !t(i, u)) : [...a.value, u];
} else
l = n.value ? e.falseValue : e.value ?? e.trueValue;
a.value = l, r("update:modelValue", l);
}
return {
isChecked: n,
toggle: v,
internalValue: a
};
}
export {
o as useCheckboxModel
};