vuetify
Version:
Vue Material Component Framework
281 lines (274 loc) • 8.55 kB
TypeScript
import * as vue from 'vue';
import { ComponentInternalInstance, Ref, ComputedRef, JSXComponent, PropType } from 'vue';
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 IconValue = string | JSXComponent;
declare const IconValue: PropType<IconValue>;
interface TouchHandlers {
start?: (wrapperEvent: {
originalEvent: TouchEvent;
} & TouchData) => void;
end?: (wrapperEvent: {
originalEvent: TouchEvent;
} & TouchData) => void;
move?: (wrapperEvent: {
originalEvent: TouchEvent;
} & TouchData) => void;
left?: (wrapper: TouchData) => void;
right?: (wrapper: TouchData) => void;
up?: (wrapper: TouchData) => void;
down?: (wrapper: TouchData) => void;
}
interface TouchData {
touchstartX: number;
touchstartY: number;
touchmoveX: number;
touchmoveY: number;
touchendX: number;
touchendY: number;
offsetX: number;
offsetY: number;
}
type ControlProps = {
icon: IconValue;
class: string;
onClick: () => void;
ariaLabel: string;
};
declare const VWindow: vue.DefineComponent<{
reverse: boolean;
direction: string;
disabled: boolean;
tag: string;
mandatory: "force";
selectedClass: string;
continuous: boolean;
nextIcon: IconValue;
prevIcon: IconValue;
} & {
touch?: boolean | TouchHandlers | undefined;
theme?: string | undefined;
modelValue?: any;
showArrows?: string | boolean | undefined;
} & {
$children?: {} | vue.VNodeChild | {
default?: ((args_0: {
group: GroupProvide;
}) => vue.VNodeChild) | undefined;
additional?: ((args_0: {
group: GroupProvide;
}) => vue.VNodeChild) | undefined;
prev?: ((args_0: {
props: ControlProps;
}) => vue.VNodeChild) | undefined;
next?: ((args_0: {
props: ControlProps;
}) => vue.VNodeChild) | undefined;
};
$slots?: {
default?: ((args_0: {
group: GroupProvide;
}) => vue.VNodeChild) | undefined;
additional?: ((args_0: {
group: GroupProvide;
}) => vue.VNodeChild) | undefined;
prev?: ((args_0: {
props: ControlProps;
}) => vue.VNodeChild) | undefined;
next?: ((args_0: {
props: ControlProps;
}) => vue.VNodeChild) | undefined;
} | undefined;
'v-slots'?: {
default?: false | ((args_0: {
group: GroupProvide;
}) => vue.VNodeChild) | undefined;
additional?: false | ((args_0: {
group: GroupProvide;
}) => vue.VNodeChild) | undefined;
prev?: false | ((args_0: {
props: ControlProps;
}) => vue.VNodeChild) | undefined;
next?: false | ((args_0: {
props: ControlProps;
}) => vue.VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | ((args_0: {
group: GroupProvide;
}) => vue.VNodeChild) | undefined;
"v-slot:additional"?: false | ((args_0: {
group: GroupProvide;
}) => vue.VNodeChild) | undefined;
"v-slot:prev"?: false | ((args_0: {
props: ControlProps;
}) => vue.VNodeChild) | undefined;
"v-slot:next"?: false | ((args_0: {
props: ControlProps;
}) => vue.VNodeChild) | undefined;
}, {
group: GroupProvide;
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
'update:modelValue': (v: any) => boolean;
}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, {
reverse: boolean;
direction: string;
disabled: boolean;
tag: string;
mandatory: "force";
selectedClass: string;
continuous: boolean;
nextIcon: IconValue;
prevIcon: IconValue;
} & {
touch?: boolean | TouchHandlers | undefined;
theme?: string | undefined;
modelValue?: any;
showArrows?: string | boolean | undefined;
} & {
$children?: {} | vue.VNodeChild | {
default?: ((args_0: {
group: GroupProvide;
}) => vue.VNodeChild) | undefined;
additional?: ((args_0: {
group: GroupProvide;
}) => vue.VNodeChild) | undefined;
prev?: ((args_0: {
props: ControlProps;
}) => vue.VNodeChild) | undefined;
next?: ((args_0: {
props: ControlProps;
}) => vue.VNodeChild) | undefined;
};
$slots?: {
default?: ((args_0: {
group: GroupProvide;
}) => vue.VNodeChild) | undefined;
additional?: ((args_0: {
group: GroupProvide;
}) => vue.VNodeChild) | undefined;
prev?: ((args_0: {
props: ControlProps;
}) => vue.VNodeChild) | undefined;
next?: ((args_0: {
props: ControlProps;
}) => vue.VNodeChild) | undefined;
} | undefined;
'v-slots'?: {
default?: false | ((args_0: {
group: GroupProvide;
}) => vue.VNodeChild) | undefined;
additional?: false | ((args_0: {
group: GroupProvide;
}) => vue.VNodeChild) | undefined;
prev?: false | ((args_0: {
props: ControlProps;
}) => vue.VNodeChild) | undefined;
next?: false | ((args_0: {
props: ControlProps;
}) => vue.VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | ((args_0: {
group: GroupProvide;
}) => vue.VNodeChild) | undefined;
"v-slot:additional"?: false | ((args_0: {
group: GroupProvide;
}) => vue.VNodeChild) | undefined;
"v-slot:prev"?: false | ((args_0: {
props: ControlProps;
}) => vue.VNodeChild) | undefined;
"v-slot:next"?: false | ((args_0: {
props: ControlProps;
}) => vue.VNodeChild) | undefined;
} & {
"onUpdate:modelValue"?: ((v: any) => any) | undefined;
}, {
reverse: boolean;
direction: string;
disabled: boolean;
tag: string;
mandatory: "force";
touch: boolean | TouchHandlers;
selectedClass: string;
continuous: boolean;
nextIcon: IconValue;
prevIcon: IconValue;
}>;
type VWindow = InstanceType<typeof VWindow>;
declare const VWindowItem: vue.DefineComponent<{
eager: boolean;
disabled: boolean;
} & {
transition?: string | boolean | undefined;
value?: any;
selectedClass?: string | undefined;
reverseTransition?: string | boolean | undefined;
} & {
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
default?: (() => vue.VNodeChild) | undefined;
};
$slots?: {
default?: (() => vue.VNodeChild) | undefined;
} | undefined;
'v-slots'?: {
default?: false | (() => vue.VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
'group:selected': (val: {
value: boolean;
}) => boolean;
}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, {
eager: boolean;
disabled: boolean;
} & {
transition?: string | boolean | undefined;
value?: any;
selectedClass?: string | undefined;
reverseTransition?: string | boolean | undefined;
} & {
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
default?: (() => vue.VNodeChild) | undefined;
};
$slots?: {
default?: (() => vue.VNodeChild) | undefined;
} | undefined;
'v-slots'?: {
default?: false | (() => vue.VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
} & {
"onGroup:selected"?: ((val: {
value: boolean;
}) => any) | undefined;
}, {
transition: string | boolean;
eager: boolean;
disabled: boolean;
reverseTransition: string | boolean;
}>;
type VWindowItem = InstanceType<typeof VWindowItem>;
export { VWindow, VWindowItem };