@tplc/wot
Version:
116 lines (115 loc) • 2.16 kB
TypeScript
import { type ExtractPropTypes, type InjectionKey } from 'vue'
export type TabsProvide = {
state: {
activeIndex: number
}
}
export declare const TABS_KEY: InjectionKey<TabsProvide>
export type TagsMode = 'semicircle' | 'default'
export declare const tabsProps: {
/**
* 绑定值
*/
modelValue: {
type: (NumberConstructor | StringConstructor)[]
default: number
}
/**
* 标签数超过阈值可滑动
*/
slidableNum: {
type: NumberConstructor
default: number
}
/**
* 标签数超过阈值显示导航地图
*/
mapNum: {
type: NumberConstructor
default: number
}
/**
* 粘性布局
*/
sticky: {
type: BooleanConstructor
default: boolean
}
/**
* 粘性布局吸顶位置
*/
offsetTop: {
type: NumberConstructor
default: number
}
/**
* 开启手势滑动
*/
swipeable: {
type: BooleanConstructor
default: boolean
}
/**
* 底部条宽度,单位像素
*/
lineWidth: (NumberConstructor | StringConstructor)[]
/**
* 底部条高度,单位像素
*/
lineHeight: (NumberConstructor | StringConstructor)[]
/**
* 颜色
*/
color: {
type: import('vue').PropType<string>
default: string
}
/**
* 非活动状态颜色
*/
inactiveColor: {
type: import('vue').PropType<string>
default: string
}
/**
* 是否开启切换标签内容时的过渡动画
*/
animated: {
type: BooleanConstructor
default: boolean
}
/**
* 切换动画过渡时间,单位毫秒
*/
duration: {
type: NumberConstructor
default: number
}
mode: {
type: import('vue').PropType<TagsMode>
default: TagsMode
}
/**
* 字体大小
*/
itemFontSize: {
type: import('vue').PropType<number>
default: number
}
/**
* 字体粗细
*/
itemFontWeight: {
type: import('vue').PropType<string>
default: string
}
customStyle: {
type: import('vue').PropType<string>
default: string
}
customClass: {
type: import('vue').PropType<string>
default: string
}
}
export type TabsProps = ExtractPropTypes<typeof tabsProps>