From 01e5aa67f2eaaeb2a54cb8545bde0a3dfae564e6 Mon Sep 17 00:00:00 2001 From: mertsincan Date: Wed, 1 Dec 2021 23:56:44 +0300 Subject: [PATCH] Fixed #1836 - For TabView --- src/components/tabview/TabView.d.ts | 84 +++++++++++++++++++++++++---- 1 file changed, 73 insertions(+), 11 deletions(-) diff --git a/src/components/tabview/TabView.d.ts b/src/components/tabview/TabView.d.ts index 33135a9c1..964e41692 100755 --- a/src/components/tabview/TabView.d.ts +++ b/src/components/tabview/TabView.d.ts @@ -1,19 +1,81 @@ import { VNode } from 'vue'; +import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers'; -interface TabViewProps { - activeIndex?: number; - lazy?: boolean; - scrollable?: boolean; +export interface TabViewChangeEvent { + /** + * Browser event + */ + originalEvent: Event; + /** + * Index of the selected tab + */ + index: number; } -declare class TabView { - $props: TabViewProps; - $emit(eventName: 'update:modelValue', value: number): this; - $emit(eventName: 'tab-change', e: { originalEvent: Event, index: number }): this; - $emit(eventName: 'tab-click', e: { originalEvent: Event, index: number }): this; - $slots: { - '': VNode[]; +/** + * @extends TabViewChangeEvent + */ +export interface TabViewClickEvent extends TabViewChangeEvent { } + +export interface TabViewProps { + /** + * Index of the active tab. + */ + activeIndex?: number | undefined; + /** + * When enabled, hidden tabs are not rendered at all. Defaults to false that hides tabs with css. + */ + lazy?: boolean | undefined; + /** + * When enabled displays buttons at each side of the tab headers to scroll the tab list. + */ + scrollable?: boolean | undefined; +} + +export interface TabViewSlots { + /** + * Default slot to detect TabPanel components. + */ + default: () => VNode[]; +} + +export declare type TabViewEmits = { + /** + * Emitted when the value changes. + * @param {number} value - New value. + */ + 'update:modelValue': (value: number) => void; + /** + * Callback to invoke when an active tab is changed. + * @param {TabViewChangeEvent} event - Custom tab change event. + */ + 'tab-change': (event: TabViewChangeEvent) => void; + /** + * Callback to invoke when an active tab is clicked. + * @param {TabViewClickEvent} event - Custom tab click event. + */ + 'tab-click': (event: TabViewClickEvent) => void; +} + +declare class TabView extends ClassComponent { } + +declare module '@vue/runtime-core' { + interface GlobalComponents { + TabView: GlobalComponentConstructor } } +/** + * + * TabView is a container component to group content with tabs. + * + * Helper Components: + * + * - TabPanel + * + * Demos: + * + * - [TabView](https://www.primefaces.org/primevue/showcase/#/tabview) + * + */ export default TabView;