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 }, /** * @description 是否开启手风琴模式 */ accordion: Boolean, } export type CollapseProps = ExtractPropTypes 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