UNPKG

comic-plus

Version:

<p align="center"> <img width="200px" src="./logo.png"/> </p>

41 lines (40 loc) 1.23 kB
import { defineComponent, ref, computed, provide, h } from "vue"; import { CHECKBOXGROUP_PROVIDE } from "./type.mjs"; import { useItemValidate } from "../../../hooks/validate.mjs"; import "../../../utils/config.mjs"; import "@vueuse/core"; import { checkboxGroupProps, checkboxGroupEmits } from "./group.props.mjs"; const CheckboxGroup = defineComponent({ name: "CuCheckboxGroup", props: checkboxGroupProps, emits: checkboxGroupEmits, setup(props, { slots, emit }) { const { itemValidate } = useItemValidate(); const activeValue = 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 = computed(() => props.size); provide(CHECKBOXGROUP_PROVIDE, { groupSize, activeValue, changeItemCheck }); return () => { return h("span", { class: "cu-checkbox-group" }, slots); }; } }); export { CheckboxGroup as default };