Checkbox.js 968 B

1234567891011121314151617181920212223242526272829
  1. import { createVNode as _createVNode } from "vue";
  2. import { useInjectCascader } from '../context';
  3. export default function Checkbox(_ref) {
  4. let {
  5. prefixCls,
  6. checked,
  7. halfChecked,
  8. disabled,
  9. onClick
  10. } = _ref;
  11. const {
  12. customSlots,
  13. checkable
  14. } = useInjectCascader();
  15. const mergedCheckable = checkable.value !== false ? customSlots.value.checkable : checkable.value;
  16. const customCheckbox = typeof mergedCheckable === 'function' ? mergedCheckable() : typeof mergedCheckable === 'boolean' ? null : mergedCheckable;
  17. return _createVNode("span", {
  18. "class": {
  19. [prefixCls]: true,
  20. [`${prefixCls}-checked`]: checked,
  21. [`${prefixCls}-indeterminate`]: !checked && halfChecked,
  22. [`${prefixCls}-disabled`]: disabled
  23. },
  24. "onClick": onClick
  25. }, [customCheckbox]);
  26. }
  27. Checkbox.props = ['prefixCls', 'checked', 'halfChecked', 'disabled', 'onClick'];
  28. Checkbox.displayName = 'Checkbox';
  29. Checkbox.inheritAttrs = false;