bootstrap-vue-next
Version:
Seamless integration of Vue 3, Bootstrap 5, and TypeScript for modern, type-safe UI development
41 lines (40 loc) • 2.32 kB
TypeScript
import { MaybeRef, MaybeRefOrGetter, Ref } from 'vue';
import { ItemTrackerReturn, TableDetailsReturn, TableField, TableFieldRaw, TableHeadClickedEventObject, TablePrimaryKey, TableRowEventObject } from '../types/TableTypes';
import { StackedProps } from '../utils/tableUtils';
export declare const useTableFieldsMapper: <Item>({ fields, items, stackedProps, }: {
fields: MaybeRefOrGetter<readonly TableFieldRaw<Item>[]>;
items: MaybeRefOrGetter<readonly Item[]>;
stackedProps: {
stacked: MaybeRefOrGetter<StackedProps["stacked"]>;
labelStacked: MaybeRefOrGetter<StackedProps["labelStacked"]>;
};
}) => {
total: import('vue').ComputedRef<number>;
showHeaders: import('vue').ComputedRef<boolean>;
fields: import('vue').ComputedRef<TableField[]>;
};
export declare const useItemTracker: <Item>({ allItems, selectedItems, primaryKey, }: {
allItems: MaybeRefOrGetter<readonly Item[]>;
selectedItems: Ref<readonly unknown[]>;
primaryKey?: MaybeRef<TablePrimaryKey<Item> | undefined>;
}) => ItemTrackerReturn<Item>;
export declare const useItemExpansion: <Item>({ allItems, primaryKey, expandedItems, }: {
allItems: MaybeRefOrGetter<readonly Item[]>;
primaryKey: MaybeRef<TablePrimaryKey<Item> | undefined>;
expandedItems: Ref<readonly unknown[]>;
}) => TableDetailsReturn<Item>;
export declare const useTableKeyboardNavigation: <Item>({ items, id, }: {
items: MaybeRefOrGetter<readonly Item[]>;
id: MaybeRefOrGetter<string>;
}, events: {
onHeadClicked: (obj: TableHeadClickedEventObject<Item, Readonly<KeyboardEvent> | Readonly<MouseEvent>>) => void;
onRowClicked: (obj: TableRowEventObject<Item, Readonly<KeyboardEvent> | Readonly<MouseEvent>>) => void;
onRowMiddleClicked: (obj: TableRowEventObject<Item>) => void;
}) => {
shouldHeaderBeFocusable: (field: TableField) => boolean;
headerClicked: (field: TableField, event: Readonly<MouseEvent> | Readonly<KeyboardEvent>, isFooter?: boolean) => void;
handleHeaderKeydown: (field: TableField, event: KeyboardEvent, isFooter?: boolean) => void;
shouldRowBeFocusable: import('vue').ComputedRef<boolean>;
handleRowKeydown: (item: Item, itemIndex: number, event: KeyboardEvent) => void;
handleMiddleClick: (item: Item, itemIndex: number, event: MouseEvent) => void;
};