25 lines
988 B
TypeScript
25 lines
988 B
TypeScript
import type { ExtractPropTypes, PropType } from 'vue'
|
|
import { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '../_constants'
|
|
import { commonProps, isBoolean, isNumber, isString } from '../_utils'
|
|
|
|
export const collapseProps = {
|
|
...commonProps,
|
|
/**
|
|
* @description 当前展开面板的 `name`
|
|
*/
|
|
modelValue: { type: [String, Number, Array] as PropType<string | number | (string | number)[]> },
|
|
/**
|
|
* @description 是否开启手风琴模式
|
|
*/
|
|
accordion: Boolean,
|
|
}
|
|
|
|
export type CollapseProps = ExtractPropTypes<typeof collapseProps>
|
|
|
|
export const collapseEmits = {
|
|
[CHANGE_EVENT]: (val: string | number | (string | number)[], name: string | number, status: boolean) => isString(val) || isNumber(val) || (val instanceof Object && isNumber(name)) || (isString(name) && isBoolean(status)),
|
|
[UPDATE_MODEL_EVENT]: (val: string | number | (string | number)[]) => isString(val) || isNumber(val) || (val instanceof Object),
|
|
}
|
|
|
|
export type CollapseEmits = typeof collapseEmits
|