comic-plus
Version:
<p align="center"> <img width="200px" src="./logo.png"/> </p>
41 lines (40 loc) • 1.32 kB
JavaScript
;
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
const vue = require("vue");
const type = require("./type.js");
const validate = require("../../../hooks/validate.js");
require("../../../utils/config.js");
require("@vueuse/core");
const group_props = require("./group.props.js");
const CheckboxGroup = vue.defineComponent({
name: "CuCheckboxGroup",
props: group_props.checkboxGroupProps,
emits: group_props.checkboxGroupEmits,
setup(props, { slots, emit }) {
const { itemValidate } = validate.useItemValidate();
const activeValue = vue.ref(props.modelValue);
function changeItemCheck(val, value) {
if (val) {
activeValue.value.push(value);
} else {
activeValue.value.splice(
activeValue.value.findIndex((v) => v === value),
1
);
}
emit("update:modelValue", activeValue.value);
emit("change", activeValue.value);
itemValidate("change");
}
const groupSize = vue.computed(() => props.size);
vue.provide(type.CHECKBOXGROUP_PROVIDE, {
groupSize,
activeValue,
changeItemCheck
});
return () => {
return vue.h("span", { class: "cu-checkbox-group" }, slots);
};
}
});
exports.default = CheckboxGroup;