@aplus-frontend/antdv
Version:
Vue basic component library maintained based on ant-design-vue
29 lines • 968 B
JavaScript
import { createVNode as _createVNode } from "vue";
import { useInjectCascader } from '../context';
export default function Checkbox(_ref) {
let {
prefixCls,
checked,
halfChecked,
disabled,
onClick
} = _ref;
const {
customSlots,
checkable
} = useInjectCascader();
const mergedCheckable = checkable.value !== false ? customSlots.value.checkable : checkable.value;
const customCheckbox = typeof mergedCheckable === 'function' ? mergedCheckable() : typeof mergedCheckable === 'boolean' ? null : mergedCheckable;
return _createVNode("span", {
"class": {
[prefixCls]: true,
[`${prefixCls}-checked`]: checked,
[`${prefixCls}-indeterminate`]: !checked && halfChecked,
[`${prefixCls}-disabled`]: disabled
},
"onClick": onClick
}, [customCheckbox]);
}
Checkbox.props = ['prefixCls', 'checked', 'halfChecked', 'disabled', 'onClick'];
Checkbox.displayName = 'Checkbox';
Checkbox.inheritAttrs = false;