vuetify
Version:
Vue Material Component Framework
111 lines (106 loc) • 3.88 kB
TypeScript
import * as vue from 'vue';
import { ComponentInternalInstance, Ref, ComputedRef } from 'vue';
type Density = null | 'default' | 'comfortable' | 'compact';
interface GroupItem {
id: number;
value: Ref<unknown>;
disabled: Ref<boolean | undefined>;
}
interface GroupProvide {
register: (item: GroupItem, cmp: ComponentInternalInstance) => void;
unregister: (id: number) => void;
select: (id: number, value: boolean) => void;
selected: Ref<Readonly<number[]>>;
isSelected: (id: number) => boolean;
prev: () => void;
next: () => void;
selectedClass: Ref<string | undefined>;
items: ComputedRef<{
id: number;
value: unknown;
disabled: boolean | undefined;
}[]>;
disabled: Ref<boolean | undefined>;
getItemIndex: (value: unknown) => number;
}
type BtnToggleSlotProps = 'isSelected' | 'select' | 'selected' | 'next' | 'prev';
interface DefaultBtnToggleSlot extends Pick<GroupProvide, BtnToggleSlotProps> {
}
declare const VBtnToggle: vue.DefineComponent<{
disabled: boolean;
multiple: boolean;
tag: string;
density: Density;
variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
divided: boolean;
} & {
max?: number | undefined;
border?: string | number | boolean | undefined;
color?: string | undefined;
mandatory?: boolean | "force" | undefined;
elevation?: string | number | undefined;
theme?: string | undefined;
rounded?: string | number | boolean | undefined;
modelValue?: any;
selectedClass?: string | undefined;
} & {
$children?: vue.VNodeChild | ((args_0: DefaultBtnToggleSlot) => vue.VNodeChild) | {
default?: ((args_0: DefaultBtnToggleSlot) => vue.VNodeChild) | undefined;
};
$slots?: {
default?: ((args_0: DefaultBtnToggleSlot) => vue.VNodeChild) | undefined;
} | undefined;
'v-slots'?: {
default?: false | ((args_0: DefaultBtnToggleSlot) => vue.VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | ((args_0: DefaultBtnToggleSlot) => vue.VNodeChild) | undefined;
}, {
next: () => void;
prev: () => void;
select: (id: number, value: boolean) => void;
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
'update:modelValue': (value: any) => boolean;
}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, {
disabled: boolean;
multiple: boolean;
tag: string;
density: Density;
variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
divided: boolean;
} & {
max?: number | undefined;
border?: string | number | boolean | undefined;
color?: string | undefined;
mandatory?: boolean | "force" | undefined;
elevation?: string | number | undefined;
theme?: string | undefined;
rounded?: string | number | boolean | undefined;
modelValue?: any;
selectedClass?: string | undefined;
} & {
$children?: vue.VNodeChild | ((args_0: DefaultBtnToggleSlot) => vue.VNodeChild) | {
default?: ((args_0: DefaultBtnToggleSlot) => vue.VNodeChild) | undefined;
};
$slots?: {
default?: ((args_0: DefaultBtnToggleSlot) => vue.VNodeChild) | undefined;
} | undefined;
'v-slots'?: {
default?: false | ((args_0: DefaultBtnToggleSlot) => vue.VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | ((args_0: DefaultBtnToggleSlot) => vue.VNodeChild) | undefined;
} & {
"onUpdate:modelValue"?: ((value: any) => any) | undefined;
}, {
disabled: boolean;
multiple: boolean;
tag: string;
rounded: string | number | boolean;
density: Density;
variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
modelValue: any;
divided: boolean;
}>;
type VBtnToggle = InstanceType<typeof VBtnToggle>;
export { VBtnToggle };