gradio
1import { format } from "svelte-i18n";
2import { get } from "svelte/store";
3
4const x = get(format);
5
6export type I18nFormatter = typeof x;
7export class Gradio<T extends Record<string, any> = Record<string, any>> {
8#id: number;
9theme: string;
10version: string;
11i18n: typeof x;
12#el: HTMLElement;
13root: string;
14autoscroll: boolean;
15
16constructor(
17id: number,
18el: HTMLElement,
19theme: string,
20version: string,
21root: string,
22autoscroll: boolean
23) {
24this.#id = id;
25this.theme = theme;
26this.version = version;
27this.#el = el;
28this.i18n = get(format);
29this.root = root;
30this.autoscroll = autoscroll;
31}
32
33dispatch<E extends keyof T>(event_name: E, data?: T[E]): void {
34const e = new CustomEvent("gradio", {
35bubbles: true,
36detail: { data, id: this.#id, event: event_name }
37});
38this.#el.dispatchEvent(e);
39}
40}
41