mirror of
https://github.com/element-plus/element-plus.git
synced 2026-03-13 07:51:17 +08:00
60 lines
1.4 KiB
TypeScript
60 lines
1.4 KiB
TypeScript
import { UPDATE_MODEL_EVENT } from '@element-plus/constants'
|
|
import { useSizeProp } from '@element-plus/hooks'
|
|
import { isBoolean, isNumber, isString } from '@element-plus/utils'
|
|
|
|
import type { ExtractPropTypes } from 'vue'
|
|
import type Checkbox from './checkbox.vue'
|
|
|
|
export type CheckboxValueType = string | number | boolean
|
|
|
|
export const checkboxProps = {
|
|
modelValue: {
|
|
type: [Number, String, Boolean],
|
|
default: undefined,
|
|
},
|
|
label: {
|
|
type: [String, Boolean, Number, Object],
|
|
},
|
|
indeterminate: Boolean,
|
|
disabled: Boolean,
|
|
checked: Boolean,
|
|
name: {
|
|
type: String,
|
|
default: undefined,
|
|
},
|
|
trueLabel: {
|
|
type: [String, Number],
|
|
default: undefined,
|
|
},
|
|
falseLabel: {
|
|
type: [String, Number],
|
|
default: undefined,
|
|
},
|
|
id: {
|
|
type: String,
|
|
default: undefined,
|
|
},
|
|
controls: {
|
|
type: String,
|
|
default: undefined,
|
|
},
|
|
border: Boolean,
|
|
size: useSizeProp,
|
|
tabindex: [String, Number],
|
|
validateEvent: {
|
|
type: Boolean,
|
|
default: true,
|
|
},
|
|
}
|
|
|
|
export const checkboxEmits = {
|
|
[UPDATE_MODEL_EVENT]: (val: CheckboxValueType) =>
|
|
isString(val) || isNumber(val) || isBoolean(val),
|
|
change: (val: CheckboxValueType) =>
|
|
isString(val) || isNumber(val) || isBoolean(val),
|
|
}
|
|
|
|
export type CheckboxProps = ExtractPropTypes<typeof checkboxProps>
|
|
export type CheckboxEmits = typeof checkboxEmits
|
|
export type CheckboxInstance = InstanceType<typeof Checkbox>
|