refactor(types): use typed SvelteComponent interface for typing components

This commit is contained in:
Eric Liu 2020-11-25 15:29:55 -08:00
commit dab82d3479
156 changed files with 1379 additions and 1667 deletions

View file

@ -1,4 +1,5 @@
/// <reference types="svelte" />
import { SvelteComponent } from "svelte";
export type Files = string[];
@ -71,17 +72,17 @@ export interface FileUploaderProps extends svelte.JSX.HTMLAttributes<HTMLElement
name?: string;
}
export default class FileUploader {
$$prop_def: FileUploaderProps;
$$slot_def: {};
$on(eventname: "add", cb: (event: CustomEvent<Files>) => void): () => void;
$on(eventname: "remove", cb: (event: CustomEvent<Files>) => void): () => void;
$on(eventname: "click", cb: (event: WindowEventMap["click"]) => void): () => void;
$on(eventname: "mouseover", cb: (event: WindowEventMap["mouseover"]) => void): () => void;
$on(eventname: "mouseenter", cb: (event: WindowEventMap["mouseenter"]) => void): () => void;
$on(eventname: "mouseleave", cb: (event: WindowEventMap["mouseleave"]) => void): () => void;
$on(eventname: "change", cb: (event: WindowEventMap["change"]) => void): () => void;
$on(eventname: "keydown", cb: (event: WindowEventMap["keydown"]) => void): () => void;
$on(eventname: string, cb: (event: Event) => void): () => void;
}
export default class FileUploader extends SvelteComponent<
FileUploaderProps,
{
add: CustomEvent<Files>;
remove: CustomEvent<Files>;
click: WindowEventMap["click"];
mouseover: WindowEventMap["mouseover"];
mouseenter: WindowEventMap["mouseenter"];
mouseleave: WindowEventMap["mouseleave"];
change: WindowEventMap["change"];
keydown: WindowEventMap["keydown"];
},
{}
> {}

View file

@ -1,4 +1,5 @@
/// <reference types="svelte" />
import { SvelteComponent } from "svelte";
export type Files = string[];
@ -70,12 +71,8 @@ export interface FileUploaderButtonProps extends svelte.JSX.HTMLAttributes<HTMLE
ref?: null | HTMLInputElement;
}
export default class FileUploaderButton {
$$prop_def: FileUploaderButtonProps;
$$slot_def: {};
$on(eventname: "keydown", cb: (event: WindowEventMap["keydown"]) => void): () => void;
$on(eventname: "change", cb: (event: WindowEventMap["change"]) => void): () => void;
$on(eventname: "click", cb: (event: WindowEventMap["click"]) => void): () => void;
$on(eventname: string, cb: (event: Event) => void): () => void;
}
export default class FileUploaderButton extends SvelteComponent<
FileUploaderButtonProps,
{ keydown: WindowEventMap["keydown"]; change: WindowEventMap["change"]; click: WindowEventMap["click"] },
{}
> {}

View file

@ -1,4 +1,5 @@
/// <reference types="svelte" />
import { SvelteComponent } from "svelte";
export type Files = string[];
@ -65,16 +66,16 @@ export interface FileUploaderDropContainerProps extends svelte.JSX.HTMLAttribute
ref?: null | HTMLInputElement;
}
export default class FileUploaderDropContainer {
$$prop_def: FileUploaderDropContainerProps;
$$slot_def: {};
$on(eventname: "add", cb: (event: CustomEvent<Files>) => void): () => void;
$on(eventname: "dragover", cb: (event: WindowEventMap["dragover"]) => void): () => void;
$on(eventname: "dragleave", cb: (event: WindowEventMap["dragleave"]) => void): () => void;
$on(eventname: "drop", cb: (event: WindowEventMap["drop"]) => void): () => void;
$on(eventname: "keydown", cb: (event: WindowEventMap["keydown"]) => void): () => void;
$on(eventname: "change", cb: (event: WindowEventMap["change"]) => void): () => void;
$on(eventname: "click", cb: (event: WindowEventMap["click"]) => void): () => void;
$on(eventname: string, cb: (event: Event) => void): () => void;
}
export default class FileUploaderDropContainer extends SvelteComponent<
FileUploaderDropContainerProps,
{
add: CustomEvent<Files>;
dragover: WindowEventMap["dragover"];
dragleave: WindowEventMap["dragleave"];
drop: WindowEventMap["drop"];
keydown: WindowEventMap["keydown"];
change: WindowEventMap["change"];
click: WindowEventMap["click"];
},
{}
> {}

View file

@ -1,4 +1,5 @@
/// <reference types="svelte" />
import { SvelteComponent } from "svelte";
export interface FileUploaderItemProps extends svelte.JSX.HTMLAttributes<HTMLElementTagNameMap["span"]> {
/**
@ -44,13 +45,13 @@ export interface FileUploaderItemProps extends svelte.JSX.HTMLAttributes<HTMLEle
name?: string;
}
export default class FileUploaderItem {
$$prop_def: FileUploaderItemProps;
$$slot_def: {};
$on(eventname: "delete", cb: (event: CustomEvent<string>) => void): () => void;
$on(eventname: "mouseover", cb: (event: WindowEventMap["mouseover"]) => void): () => void;
$on(eventname: "mouseenter", cb: (event: WindowEventMap["mouseenter"]) => void): () => void;
$on(eventname: "mouseleave", cb: (event: WindowEventMap["mouseleave"]) => void): () => void;
$on(eventname: string, cb: (event: Event) => void): () => void;
}
export default class FileUploaderItem extends SvelteComponent<
FileUploaderItemProps,
{
delete: CustomEvent<string>;
mouseover: WindowEventMap["mouseover"];
mouseenter: WindowEventMap["mouseenter"];
mouseleave: WindowEventMap["mouseleave"];
},
{}
> {}

View file

@ -1,14 +1,15 @@
/// <reference types="svelte" />
import { SvelteComponent } from "svelte";
export interface FileUploaderSkeletonProps extends svelte.JSX.HTMLAttributes<HTMLElementTagNameMap["div"]> {}
export default class FileUploaderSkeleton {
$$prop_def: FileUploaderSkeletonProps;
$$slot_def: {};
$on(eventname: "click", cb: (event: WindowEventMap["click"]) => void): () => void;
$on(eventname: "mouseover", cb: (event: WindowEventMap["mouseover"]) => void): () => void;
$on(eventname: "mouseenter", cb: (event: WindowEventMap["mouseenter"]) => void): () => void;
$on(eventname: "mouseleave", cb: (event: WindowEventMap["mouseleave"]) => void): () => void;
$on(eventname: string, cb: (event: Event) => void): () => void;
}
export default class FileUploaderSkeleton extends SvelteComponent<
FileUploaderSkeletonProps,
{
click: WindowEventMap["click"];
mouseover: WindowEventMap["mouseover"];
mouseenter: WindowEventMap["mouseenter"];
mouseleave: WindowEventMap["mouseleave"];
},
{}
> {}

View file

@ -1,4 +1,5 @@
/// <reference types="svelte" />
import { SvelteComponent } from "svelte";
export interface FilenameProps {
/**
@ -20,11 +21,8 @@ export interface FilenameProps {
invalid?: boolean;
}
export default class Filename {
$$prop_def: FilenameProps;
$$slot_def: {};
$on(eventname: "click", cb: (event: WindowEventMap["click"]) => void): () => void;
$on(eventname: "keydown", cb: (event: WindowEventMap["keydown"]) => void): () => void;
$on(eventname: string, cb: (event: Event) => void): () => void;
}
export default class Filename extends SvelteComponent<
FilenameProps,
{ click: WindowEventMap["click"]; keydown: WindowEventMap["keydown"] },
{}
> {}