Files
vxe-table/types/radio-button.d.ts
2023-06-03 01:05:36 +08:00

92 lines
2.6 KiB
TypeScript

import { SetupContext, RenderFunction, ComponentPublicInstance } from 'vue'
import { VXEComponent, VxeComponentBase, VxeEvent, ValueOf } from './component'
import { VxeRadioPropTypes } from './radio'
/* eslint-disable no-use-before-define */
/**
* 组件 - 单选框按钮
* @example import { VxeRadioButton } from 'vxe-table'
*/
export const VxeRadioButton: VXEComponent<VxeRadioButtonProps, VxeRadioButtonEventProps, VxeRadioButtonSlots>
/**
* 组件 - 单选框按钮
*/
export const RadioButton: typeof VxeRadioButton
export type VxeRadioButtonInstance = ComponentPublicInstance<VxeRadioButtonProps, VxeRadioButtonConstructor>
export interface VxeRadioButtonConstructor extends VxeComponentBase, VxeRadioButtonMethods {
props: VxeRadioButtonProps
context: SetupContext<VxeRadioButtonEmits>
renderVN: RenderFunction
}
export interface RadioButtonMethods {
dispatchEvent(type: ValueOf<VxeRadioButtonEmits>, params: any, evnt: Event): void
}
export interface VxeRadioButtonMethods extends RadioButtonMethods { }
export interface RadioButtonPrivateMethods { }
export interface VxeRadioButtonPrivateMethods extends RadioButtonPrivateMethods { }
export type VxeRadioButtonEmits = [
'update:modelValue',
'change'
]
export type VxeRadioButtonProps = {
size?: VxeRadioButtonPropTypes.Size
modelValue?: VxeRadioButtonPropTypes.ModelValue
/**
* 严格模式,不允许取消
*/
strict?: VxeRadioButtonPropTypes.Strict
label?: VxeRadioButtonPropTypes.Label
title?: VxeRadioButtonPropTypes.Title
content?: VxeRadioButtonPropTypes.Content
disabled?: VxeRadioButtonPropTypes.Disabled
}
export namespace VxeRadioButtonPropTypes {
export type Size = VxeRadioPropTypes.Size
export type ModelValue = any
export type Strict = boolean
export type Label = VxeRadioPropTypes.Label
export type Title = string | number
export type Content = string | number
export type Disabled = boolean
}
export namespace VxeRadioButtonDefines {
interface RadioButtonEventParams extends VxeEvent {
$radioButton: VxeRadioButtonConstructor
}
export interface ChangeParams {
label: any
}
export interface ChangeEventParams extends RadioButtonEventParams, ChangeParams { }
}
export type VxeRadioButtonEventProps = {
onChange?: VxeRadioButtonEvents.Change
}
export interface VxeRadioButtonListeners {
change?: VxeRadioButtonEvents.Change
}
export namespace VxeRadioButtonEvents {
export type Change = (params: VxeRadioButtonDefines.ChangeEventParams) => void
}
export interface VxeRadioButtonSlots {
/**
* 自定义插槽模板
*/
[key: string]: ((params: {
[key: string]: any
}) => any) | undefined
}