@alireza-ab/vue3-persian-datepicker
Version:
A datepicker component for select date (vue 3)
894 lines (893 loc) • 30 kB
TypeScript
import { type PropType } from 'vue';
import { PersianDate } from './utils/modules/core';
import type { Obj, Attrs, Langs, RecursivePartial, Styles, Inputs, PickerPlace, TypePart, CalendarPart, Disable, Formats, MonthDays, Months, Shortcuts, DefaultDate } from './utils/modules/types';
export { PersianDate };
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
/**
* the format of the model value
* @type String
* @see https://alireza-ab.ir/persian-date/formats#
* @desc default value in "date" type is "YYYY-MM-DD"
* default value in "datetime" type is "YYYY-MM-DD HH:mm"
* default value in "time" type is "HH:mm"
*/
format: {
type: StringConstructor;
};
/**
* the format of the input value
* @type String
* @see https://alireza-ab.ir/persian-date/formats#
* @desc default value equal to the value of "type" prop
*/
inputFormat: {
type: StringConstructor;
};
/**
* the format of the value that shows in the footer of picker
* @type String
* @see https://alireza-ab.ir/persian-date/formats#
* @desc default value in "date" type is "?D ?MMMM"
* default value in "datetime" type is "?D ?MMMM HH:mm"
* default value in "time" type is "HH:mm"
*/
displayFormat: {
type: StringConstructor;
};
/**
* the type of picker
* @default "date"
* @type String
* @values date | time | datetime
* @since 2.0.0
*/
type: {
type: PropType<"date" | "time" | "datetime">;
default: string;
validator: (val: string) => boolean;
};
/**
* the date of start of the picker
* @type String
* @example 1400/7/1 | 1400-7
*/
from: {
type: StringConstructor;
default: (props: Obj) => "" | "1300";
};
/**
* the date of end of the picker
* @type String
* @example 1400/7/1 | 1400-7
*/
to: {
type: StringConstructor;
default: (props: Obj) => "23:59" | "1499";
};
/**
* show or hide the picker
* @default false
* @type Boolean
*/
show: {
default: boolean;
type: BooleanConstructor;
};
/**
* show the picker with click on the some sections
* @default "all"
* @type String
* @values all | input | icon | none
*/
clickOn: {
default: string;
type: PropType<"all" | "input" | "icon" | "none">;
validator: (val: string) => boolean;
};
/**
* show the picker in modal mode
* @default true
* @type Boolean
*/
modal: {
default: boolean;
type: BooleanConstructor;
};
/**
* text for label tag
* @type String
*/
label: {
type: StringConstructor;
};
/**
* number of column
* @default "{ 576: 1 }"
* @type Object | Number
* @desc 1. you can send the number of column
* or send the object of the number of
* column in the breakpoint.
* 2. if the breaking point in the object
* is not specified, the default value it's 2
*/
column: {
default: () => {
576: number;
};
type: PropType<number | Record<number, number>>;
};
/**
* submit when date selected or not
* @default true
* @type Boolean
*/
autoSubmit: {
default: boolean;
type: BooleanConstructor;
};
/**
* mode of select date
* @default "range"
* @type String
* @values range | single
*/
mode: {
default: string;
type: PropType<"single" | "range">;
validator: (val: string) => boolean;
};
/**
* the locale of datepicker
* @default "fa"
* @type String
* @values fa | en | fa,en | en,fa
* @desc Except above values, you can add
* the language in "localeConfig" prop and use it.
* @since 2.0.0
*/
locale: {
default: string;
type: StringConstructor;
};
/**
* user can clear the selected dates or not
* @default false
* @type Boolean
* @since 2.0.0
*/
clearable: {
default: boolean;
type: BooleanConstructor;
};
/**
* disable some dates or time
* @type [Array, String, Function, RegExp]
* @since 2.0.0
*/
disable: {
type: PropType<Disable>;
};
/**
* the config for locales
* @type Object
* @since 2.0.0
*/
localeConfig: {
type: PropType<RecursivePartial<Langs>>;
};
/**
* the styles of the picker
* @type Object
* @since 2.0.0
*/
styles: {
type: PropType<Styles>;
};
/**
* the color of the picker
* @type String
* @values red | pink | orange | green | purple | gray
* @since 2.0.0
*/
color: {
type: PropType<"blue" | "red" | "pink" | "orange" | "green" | "purple" | "gray">;
validator: (val: string) => boolean;
};
/**
* use two input for dispaly
* @type Boolean
* @default false
* @since 2.2.0
*/
dualInput: {
type: BooleanConstructor;
default: boolean;
};
/**
* show icon inside of input
* @type Boolean
* @default false
* @since 2.2.0
*/
iconInside: {
type: BooleanConstructor;
default: boolean;
};
/**
* shortcut for select date and time quickly
* @type Boolean | Object
* @since 2.2.0
*/
shortcut: {
type: PropType<boolean | Shortcuts>;
default: boolean;
};
}>, {}, {
core: PersianDate;
onDisplay: PersianDate | undefined;
fromDate: PersianDate | undefined;
toDate: PersianDate | undefined;
selectedDates: PersianDate[];
selectedTimes: PersianDate[];
showDatePicker: boolean;
showYearSelect: boolean;
showMonthSelect: boolean;
showTopOfInput: boolean;
displayValue: string[];
inputName: Inputs;
pickerPlace: PickerPlace;
documentWidth: number;
langs: Langs;
currentLocale: string;
interval: ReturnType<typeof setInterval> | null;
submitedValue: PersianDate[];
}, {
lang(): Langs[string];
attrs(): Attrs;
years(): number[];
columnCount(): number;
monthDays(): MonthDays[][];
months(): Months;
nextLocale(): string;
formats(): Formats;
defaultDate(): DefaultDate;
inputs(): Inputs[];
tabIndex(): number | undefined;
shortcuts(): Shortcuts | false;
}, {
showPart(part: CalendarPart): void;
changeSelectedMonth(month: "add" | "sub" | number): void;
changeSelectedYear(year: number): void;
validate(date: PersianDate, part: TypePart): boolean;
isDisableBetween(first: PersianDate, second: PersianDate): boolean;
selectDate(date: PersianDate, part: TypePart): number;
setModel(date?: PersianDate | PersianDate[] | string | string[]): void;
goToToday(): void;
checkDate(date: unknown, part: CalendarPart | TypePart): boolean;
isInDisable(date: PersianDate, disable?: Disable): boolean;
showPicker(el: "icon" | "input", index: 0 | 1): void;
selectWithArrow(e: KeyboardEvent): Promise<void>;
selectInRangeDate(e: any): void;
submitDate(close?: boolean): void;
getColumn({ parentNode }: HTMLElement): number | string;
nearestDate(date: PersianDate): PersianDate;
locate(): void;
changeLocale(): void;
clear(inputName: Inputs): void;
startChangeTime(timeIndex: number, unit: "minute" | "hour", operator: "add" | "sub"): void;
stopChangeTime(): void;
selectShorcut(dates: PersianDate[]): void;
setDate(dates: string | string[]): void;
}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("open" | "clear" | "select" | "close" | "submit" | "update:modelValue")[], "open" | "clear" | "select" | "close" | "submit" | "update:modelValue", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
/**
* the format of the model value
* @type String
* @see https://alireza-ab.ir/persian-date/formats#
* @desc default value in "date" type is "YYYY-MM-DD"
* default value in "datetime" type is "YYYY-MM-DD HH:mm"
* default value in "time" type is "HH:mm"
*/
format: {
type: StringConstructor;
};
/**
* the format of the input value
* @type String
* @see https://alireza-ab.ir/persian-date/formats#
* @desc default value equal to the value of "type" prop
*/
inputFormat: {
type: StringConstructor;
};
/**
* the format of the value that shows in the footer of picker
* @type String
* @see https://alireza-ab.ir/persian-date/formats#
* @desc default value in "date" type is "?D ?MMMM"
* default value in "datetime" type is "?D ?MMMM HH:mm"
* default value in "time" type is "HH:mm"
*/
displayFormat: {
type: StringConstructor;
};
/**
* the type of picker
* @default "date"
* @type String
* @values date | time | datetime
* @since 2.0.0
*/
type: {
type: PropType<"date" | "time" | "datetime">;
default: string;
validator: (val: string) => boolean;
};
/**
* the date of start of the picker
* @type String
* @example 1400/7/1 | 1400-7
*/
from: {
type: StringConstructor;
default: (props: Obj) => "" | "1300";
};
/**
* the date of end of the picker
* @type String
* @example 1400/7/1 | 1400-7
*/
to: {
type: StringConstructor;
default: (props: Obj) => "23:59" | "1499";
};
/**
* show or hide the picker
* @default false
* @type Boolean
*/
show: {
default: boolean;
type: BooleanConstructor;
};
/**
* show the picker with click on the some sections
* @default "all"
* @type String
* @values all | input | icon | none
*/
clickOn: {
default: string;
type: PropType<"all" | "input" | "icon" | "none">;
validator: (val: string) => boolean;
};
/**
* show the picker in modal mode
* @default true
* @type Boolean
*/
modal: {
default: boolean;
type: BooleanConstructor;
};
/**
* text for label tag
* @type String
*/
label: {
type: StringConstructor;
};
/**
* number of column
* @default "{ 576: 1 }"
* @type Object | Number
* @desc 1. you can send the number of column
* or send the object of the number of
* column in the breakpoint.
* 2. if the breaking point in the object
* is not specified, the default value it's 2
*/
column: {
default: () => {
576: number;
};
type: PropType<number | Record<number, number>>;
};
/**
* submit when date selected or not
* @default true
* @type Boolean
*/
autoSubmit: {
default: boolean;
type: BooleanConstructor;
};
/**
* mode of select date
* @default "range"
* @type String
* @values range | single
*/
mode: {
default: string;
type: PropType<"single" | "range">;
validator: (val: string) => boolean;
};
/**
* the locale of datepicker
* @default "fa"
* @type String
* @values fa | en | fa,en | en,fa
* @desc Except above values, you can add
* the language in "localeConfig" prop and use it.
* @since 2.0.0
*/
locale: {
default: string;
type: StringConstructor;
};
/**
* user can clear the selected dates or not
* @default false
* @type Boolean
* @since 2.0.0
*/
clearable: {
default: boolean;
type: BooleanConstructor;
};
/**
* disable some dates or time
* @type [Array, String, Function, RegExp]
* @since 2.0.0
*/
disable: {
type: PropType<Disable>;
};
/**
* the config for locales
* @type Object
* @since 2.0.0
*/
localeConfig: {
type: PropType<RecursivePartial<Langs>>;
};
/**
* the styles of the picker
* @type Object
* @since 2.0.0
*/
styles: {
type: PropType<Styles>;
};
/**
* the color of the picker
* @type String
* @values red | pink | orange | green | purple | gray
* @since 2.0.0
*/
color: {
type: PropType<"blue" | "red" | "pink" | "orange" | "green" | "purple" | "gray">;
validator: (val: string) => boolean;
};
/**
* use two input for dispaly
* @type Boolean
* @default false
* @since 2.2.0
*/
dualInput: {
type: BooleanConstructor;
default: boolean;
};
/**
* show icon inside of input
* @type Boolean
* @default false
* @since 2.2.0
*/
iconInside: {
type: BooleanConstructor;
default: boolean;
};
/**
* shortcut for select date and time quickly
* @type Boolean | Object
* @since 2.2.0
*/
shortcut: {
type: PropType<boolean | Shortcuts>;
default: boolean;
};
}>> & Readonly<{
onSubmit?: (...args: any[]) => any;
onSelect?: (...args: any[]) => any;
onClose?: (...args: any[]) => any;
onOpen?: (...args: any[]) => any;
onClear?: (...args: any[]) => any;
"onUpdate:modelValue"?: (...args: any[]) => any;
}>, {
type: "time" | "date" | "datetime";
show: boolean;
mode: "range" | "single";
to: string;
column: number | Record<number, number>;
from: string;
clickOn: "input" | "all" | "none" | "icon";
modal: boolean;
autoSubmit: boolean;
locale: string;
clearable: boolean;
dualInput: boolean;
iconInside: boolean;
shortcut: boolean | Shortcuts;
}, {}, {
PDPArrow: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
direction: {
default: string;
type: PropType<"left" | "right" | "up" | "down">;
};
inverse: {
default: boolean;
type: BooleanConstructor;
};
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
direction: {
default: string;
type: PropType<"left" | "right" | "up" | "down">;
};
inverse: {
default: boolean;
type: BooleanConstructor;
};
}>> & Readonly<{}>, {
inverse: boolean;
direction: "left" | "right" | "up" | "down";
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
PDPIcon: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
icon: {
type: PropType<"clear" | "date" | "datetime" | "time">;
required: true;
};
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
icon: {
type: PropType<"clear" | "date" | "datetime" | "time">;
required: true;
};
}>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
PDPAlt: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
name: {
type: StringConstructor;
required: true;
};
format: {
type: StringConstructor;
required: true;
};
dates: {
type: PropType<PersianDate[]>;
required: true;
};
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
name: {
type: StringConstructor;
required: true;
};
format: {
type: StringConstructor;
required: true;
};
dates: {
type: PropType<PersianDate[]>;
required: true;
};
}>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export default _default;
declare module 'vue' {
interface GlobalComponents {
}
interface GlobalDirectives {
}
}
declare global {
const __VLS_intrinsicElements: __VLS_IntrinsicElements;
const __VLS_directiveBindingRestFields: {
instance: null;
oldValue: null;
modifiers: any;
dir: any;
};
const __VLS_unref: typeof import('vue').unref;
const __VLS_placeholder: any;
const __VLS_nativeElements: {
a: HTMLAnchorElement;
abbr: HTMLElement;
address: HTMLElement;
area: HTMLAreaElement;
article: HTMLElement;
aside: HTMLElement;
audio: HTMLAudioElement;
b: HTMLElement;
base: HTMLBaseElement;
bdi: HTMLElement;
bdo: HTMLElement;
blockquote: HTMLQuoteElement;
body: HTMLBodyElement;
br: HTMLBRElement;
button: HTMLButtonElement;
canvas: HTMLCanvasElement;
caption: HTMLTableCaptionElement;
cite: HTMLElement;
code: HTMLElement;
col: HTMLTableColElement;
colgroup: HTMLTableColElement;
data: HTMLDataElement;
datalist: HTMLDataListElement;
dd: HTMLElement;
del: HTMLModElement;
details: HTMLDetailsElement;
dfn: HTMLElement;
dialog: HTMLDialogElement;
div: HTMLDivElement;
dl: HTMLDListElement;
dt: HTMLElement;
em: HTMLElement;
embed: HTMLEmbedElement;
fieldset: HTMLFieldSetElement;
figcaption: HTMLElement;
figure: HTMLElement;
footer: HTMLElement;
form: HTMLFormElement;
h1: HTMLHeadingElement;
h2: HTMLHeadingElement;
h3: HTMLHeadingElement;
h4: HTMLHeadingElement;
h5: HTMLHeadingElement;
h6: HTMLHeadingElement;
head: HTMLHeadElement;
header: HTMLElement;
hgroup: HTMLElement;
hr: HTMLHRElement;
html: HTMLHtmlElement;
i: HTMLElement;
iframe: HTMLIFrameElement;
img: HTMLImageElement;
input: HTMLInputElement;
ins: HTMLModElement;
kbd: HTMLElement;
label: HTMLLabelElement;
legend: HTMLLegendElement;
li: HTMLLIElement;
link: HTMLLinkElement;
main: HTMLElement;
map: HTMLMapElement;
mark: HTMLElement;
menu: HTMLMenuElement;
meta: HTMLMetaElement;
meter: HTMLMeterElement;
nav: HTMLElement;
noscript: HTMLElement;
object: HTMLObjectElement;
ol: HTMLOListElement;
optgroup: HTMLOptGroupElement;
option: HTMLOptionElement;
output: HTMLOutputElement;
p: HTMLParagraphElement;
picture: HTMLPictureElement;
pre: HTMLPreElement;
progress: HTMLProgressElement;
q: HTMLQuoteElement;
rp: HTMLElement;
rt: HTMLElement;
ruby: HTMLElement;
s: HTMLElement;
samp: HTMLElement;
script: HTMLScriptElement;
search: HTMLElement;
section: HTMLElement;
select: HTMLSelectElement;
slot: HTMLSlotElement;
small: HTMLElement;
source: HTMLSourceElement;
span: HTMLSpanElement;
strong: HTMLElement;
style: HTMLStyleElement;
sub: HTMLElement;
summary: HTMLElement;
sup: HTMLElement;
table: HTMLTableElement;
tbody: HTMLTableSectionElement;
td: HTMLTableCellElement;
template: HTMLTemplateElement;
textarea: HTMLTextAreaElement;
tfoot: HTMLTableSectionElement;
th: HTMLTableCellElement;
thead: HTMLTableSectionElement;
time: HTMLTimeElement;
title: HTMLTitleElement;
tr: HTMLTableRowElement;
track: HTMLTrackElement;
u: HTMLElement;
ul: HTMLUListElement;
var: HTMLElement;
video: HTMLVideoElement;
wbr: HTMLElement;
animate: SVGAnimateElement;
animateMotion: SVGAnimateMotionElement;
animateTransform: SVGAnimateTransformElement;
circle: SVGCircleElement;
clipPath: SVGClipPathElement;
defs: SVGDefsElement;
desc: SVGDescElement;
ellipse: SVGEllipseElement;
feBlend: SVGFEBlendElement;
feColorMatrix: SVGFEColorMatrixElement;
feComponentTransfer: SVGFEComponentTransferElement;
feComposite: SVGFECompositeElement;
feConvolveMatrix: SVGFEConvolveMatrixElement;
feDiffuseLighting: SVGFEDiffuseLightingElement;
feDisplacementMap: SVGFEDisplacementMapElement;
feDistantLight: SVGFEDistantLightElement;
feDropShadow: SVGFEDropShadowElement;
feFlood: SVGFEFloodElement;
feFuncA: SVGFEFuncAElement;
feFuncB: SVGFEFuncBElement;
feFuncG: SVGFEFuncGElement;
feFuncR: SVGFEFuncRElement;
feGaussianBlur: SVGFEGaussianBlurElement;
feImage: SVGFEImageElement;
feMerge: SVGFEMergeElement;
feMergeNode: SVGFEMergeNodeElement;
feMorphology: SVGFEMorphologyElement;
feOffset: SVGFEOffsetElement;
fePointLight: SVGFEPointLightElement;
feSpecularLighting: SVGFESpecularLightingElement;
feSpotLight: SVGFESpotLightElement;
feTile: SVGFETileElement;
feTurbulence: SVGFETurbulenceElement;
filter: SVGFilterElement;
foreignObject: SVGForeignObjectElement;
g: SVGGElement;
image: SVGImageElement;
line: SVGLineElement;
linearGradient: SVGLinearGradientElement;
marker: SVGMarkerElement;
mask: SVGMaskElement;
metadata: SVGMetadataElement;
mpath: SVGMPathElement;
path: SVGPathElement;
pattern: SVGPatternElement;
polygon: SVGPolygonElement;
polyline: SVGPolylineElement;
radialGradient: SVGRadialGradientElement;
rect: SVGRectElement;
set: SVGSetElement;
stop: SVGStopElement;
svg: SVGSVGElement;
switch: SVGSwitchElement;
symbol: SVGSymbolElement;
text: SVGTextElement;
textPath: SVGTextPathElement;
tspan: SVGTSpanElement;
use: SVGUseElement;
view: SVGViewElement;
};
type __VLS_IntrinsicElements = import('vue/jsx-runtime').JSX.IntrinsicElements;
type __VLS_Element = import('vue/jsx-runtime').JSX.Element;
type __VLS_GlobalComponents = import('vue').GlobalComponents & Pick<typeof import('vue'), 'Transition' | 'TransitionGroup' | 'KeepAlive' | 'Suspense' | 'Teleport'>;
type __VLS_GlobalDirectives = import('vue').GlobalDirectives;
type __VLS_IsAny<T> = 0 extends 1 & T ? true : false;
type __VLS_PickNotAny<A, B> = __VLS_IsAny<A> extends true ? B : A;
type __VLS_unknownDirective = (arg1: unknown, arg2: unknown, arg3: unknown, arg4: unknown) => void;
type __VLS_WithComponent<N0 extends string, LocalComponents, N1 extends string, N2 extends string, N3 extends string> = N1 extends keyof LocalComponents ? N1 extends N0 ? Pick<LocalComponents, N0 extends keyof LocalComponents ? N0 : never> : {
[K in N0]: LocalComponents[N1];
} : N2 extends keyof LocalComponents ? N2 extends N0 ? Pick<LocalComponents, N0 extends keyof LocalComponents ? N0 : never> : {
[K in N0]: LocalComponents[N2];
} : N3 extends keyof LocalComponents ? N3 extends N0 ? Pick<LocalComponents, N0 extends keyof LocalComponents ? N0 : never> : {
[K in N0]: LocalComponents[N3];
} : N1 extends keyof __VLS_GlobalComponents ? N1 extends N0 ? Pick<__VLS_GlobalComponents, N0 extends keyof __VLS_GlobalComponents ? N0 : never> : {
[K in N0]: __VLS_GlobalComponents[N1];
} : N2 extends keyof __VLS_GlobalComponents ? N2 extends N0 ? Pick<__VLS_GlobalComponents, N0 extends keyof __VLS_GlobalComponents ? N0 : never> : {
[K in N0]: __VLS_GlobalComponents[N2];
} : N3 extends keyof __VLS_GlobalComponents ? N3 extends N0 ? Pick<__VLS_GlobalComponents, N0 extends keyof __VLS_GlobalComponents ? N0 : never> : {
[K in N0]: __VLS_GlobalComponents[N3];
} : {
[K in N0]: unknown;
};
type __VLS_FunctionalComponentProps<T, K> = '__ctx' extends keyof __VLS_PickNotAny<K, {}> ? K extends {
__ctx?: {
props?: infer P;
};
} ? NonNullable<P> : never : T extends (props: infer P, ...args: any) => any ? P : {};
type __VLS_IsFunction<T, K> = K extends keyof T ? __VLS_IsAny<T[K]> extends false ? unknown extends T[K] ? false : true : false : false;
type __VLS_NormalizeComponentEvent<Props, Events, onEvent extends keyof Props, Event extends keyof Events, CamelizedEvent extends keyof Events> = (__VLS_IsFunction<Props, onEvent> extends true ? Props : __VLS_IsFunction<Events, Event> extends true ? {
[K in onEvent]?: Events[Event];
} : __VLS_IsFunction<Events, CamelizedEvent> extends true ? {
[K in onEvent]?: Events[CamelizedEvent];
} : Props) & Record<string, unknown>;
type __VLS_UnionToIntersection<U> = (U extends unknown ? (arg: U) => unknown : never) extends ((arg: infer P) => unknown) ? P : never;
type __VLS_OverloadUnionInner<T, U = unknown> = U & T extends (...args: infer A) => infer R ? U extends T ? never : __VLS_OverloadUnionInner<T, Pick<T, keyof T> & U & ((...args: A) => R)> | ((...args: A) => R) : never;
type __VLS_OverloadUnion<T> = Exclude<__VLS_OverloadUnionInner<(() => never) & T>, T extends () => never ? never : () => never>;
type __VLS_ConstructorOverloads<T> = __VLS_OverloadUnion<T> extends infer F ? F extends (event: infer E, ...args: infer A) => any ? {
[K in E & string]: (...args: A) => void;
} : never : never;
type __VLS_NormalizeEmits<T> = __VLS_PrettifyGlobal<__VLS_UnionToIntersection<__VLS_ConstructorOverloads<T> & {
[K in keyof T]: T[K] extends any[] ? {
(...args: T[K]): void;
} : never;
}>>;
type __VLS_PrettifyGlobal<T> = {
[K in keyof T]: T[K];
} & {};
type __VLS_PickFunctionalComponentCtx<T, K> = NonNullable<__VLS_PickNotAny<'__ctx' extends keyof __VLS_PickNotAny<K, {}> ? K extends {
__ctx?: infer Ctx;
} ? Ctx : never : any, T extends (props: any, ctx: infer Ctx) => any ? Ctx : any>>;
type __VLS_UseTemplateRef<T> = Readonly<import('vue').ShallowRef<T | null>>;
function __VLS_getVForSourceType(source: number): [number, number, number][];
function __VLS_getVForSourceType(source: string): [string, number, number][];
function __VLS_getVForSourceType<T extends any[]>(source: T): [
item: T[number],
key: number,
index: number
][];
function __VLS_getVForSourceType<T extends {
[Symbol.iterator](): Iterator<any>;
}>(source: T): [
item: T extends {
[Symbol.iterator](): Iterator<infer T1>;
} ? T1 : never,
key: number,
index: undefined
][];
function __VLS_getVForSourceType<T extends number | {
[Symbol.iterator](): Iterator<any>;
}>(source: T): [
item: number | (Exclude<T, number> extends {
[Symbol.iterator](): Iterator<infer T1>;
} ? T1 : never),
key: number,
index: undefined
][];
function __VLS_getVForSourceType<T>(source: T): [
item: T[keyof T],
key: keyof T,
index: number
][];
function __VLS_getSlotParams<T>(slot: T): Parameters<__VLS_PickNotAny<NonNullable<T>, (...args: any[]) => any>>;
function __VLS_getSlotParam<T>(slot: T): Parameters<__VLS_PickNotAny<NonNullable<T>, (...args: any[]) => any>>[0];
function __VLS_asFunctionalDirective<T>(dir: T): T extends import('vue').ObjectDirective ? NonNullable<T['created' | 'beforeMount' | 'mounted' | 'beforeUpdate' | 'updated' | 'beforeUnmount' | 'unmounted']> : T extends (...args: any) => any ? T : __VLS_unknownDirective;
function __VLS_withScope<T, K>(ctx: T, scope: K): ctx is T & K;
function __VLS_makeOptional<T>(t: T): {
[K in keyof T]?: T[K];
};
function __VLS_asFunctionalComponent<T, K = T extends new (...args: any) => any ? InstanceType<T> : unknown>(t: T, instance?: K): T extends new (...args: any) => any ? (props: (K extends {
$props: infer Props;
} ? Props : any) & Record<string, unknown>, ctx?: any) => __VLS_Element & {
__ctx?: {
attrs?: any;
slots?: K extends {
$slots: infer Slots;
} ? Slots : any;
emit?: K extends {
$emit: infer Emit;
} ? Emit : any;
} & {
props?: (K extends {
$props: infer Props;
} ? Props : any) & Record<string, unknown>;
expose?(exposed: K): void;
};
} : T extends () => any ? (props: {}, ctx?: any) => ReturnType<T> : T extends (...args: any) => any ? T : (_: {} & Record<string, unknown>, ctx?: any) => {
__ctx?: {
attrs?: any;
expose?: any;
slots?: any;
emit?: any;
props?: {} & Record<string, unknown>;
};
};
function __VLS_elementAsFunction<T>(tag: T, endTag?: T): (_: T & Record<string, unknown>) => void;
function __VLS_functionalComponentArgsRest<T extends (...args: any) => any>(t: T): 2 extends Parameters<T>['length'] ? [any] : [];
function __VLS_normalizeSlot<S>(s: S): S extends () => infer R ? (props: {}) => R : S;
function __VLS_tryAsConstant<const T>(t: T): T;
}