@tplc/wot
Version:
57 lines (53 loc) • 1.12 kB
text/typescript
import type { ExtractPropTypes, PropType } from 'vue'
import { baseProps, makeBooleanProp, makeNumberProp, makeNumericProp } from '../common/props'
export type SwitchBeforeChangeOption = {
value: number | string | boolean
resolve: (pass: boolean) => void
}
export type SwitchBeforeChange = (option: SwitchBeforeChangeOption) => void
export const switchProps = {
...baseProps,
/**
* 绑定值
*/
modelValue: {
type: [Boolean, String, Number],
required: true,
default: false,
},
/**
* 是否禁用
*/
disabled: makeBooleanProp(false),
/**
* 激活值
*/
activeValue: {
type: [Boolean, String, Number],
default: true,
},
/**
* 非激活值
*/
inactiveValue: {
type: [Boolean, String, Number],
default: false,
},
/**
* 激活颜色
*/
activeColor: String,
/**
* 非激活颜色
*/
inactiveColor: String,
/**
* 大小
*/
size: makeNumericProp(28),
/**
* 在改变前执行的函数
*/
beforeChange: Function as PropType<SwitchBeforeChange>,
}
export type SwitchProps = ExtractPropTypes<typeof switchProps>