|
import config from "$lib/component_json";
|
|
|
|
const comps = {
|
|
accordion: () => import("@gradio/accordion"),
|
|
annotatedimage: () => import("@gradio/annotatedimage"),
|
|
audio: () => import("@gradio/audio"),
|
|
button: () => import("@gradio/button"),
|
|
chatbot: () => import("@gradio/chatbot"),
|
|
checkbox: () => import("@gradio/checkbox"),
|
|
checkboxgroup: () => import("@gradio/checkboxgroup"),
|
|
code: () => import("@gradio/code"),
|
|
colorpicker: () => import("@gradio/colorpicker"),
|
|
dataframe: () => import("@gradio/dataframe"),
|
|
dataset: () => import("@gradio/dataset"),
|
|
datetime: () => import("@gradio/datetime"),
|
|
downloadbutton: () => import("@gradio/downloadbutton"),
|
|
dropdown: () => import("@gradio/dropdown"),
|
|
file: () => import("@gradio/file"),
|
|
form: () => import("@gradio/form"),
|
|
gallery: () => import("@gradio/gallery"),
|
|
highlightedtext: () => import("@gradio/highlightedtext"),
|
|
html: () => import("@gradio/html"),
|
|
image: () => import("@gradio/image"),
|
|
imageeditor: () => import("@gradio/imageeditor"),
|
|
json: () => import("@gradio/json"),
|
|
label: () => import("@gradio/label"),
|
|
markdown: () => import("@gradio/markdown"),
|
|
model3d: () => import("@gradio/model3d"),
|
|
multimodaltextbox: () => import("@gradio/multimodaltextbox"),
|
|
nativeplot: () => import("@gradio/nativeplot"),
|
|
number: () => import("@gradio/number"),
|
|
paramviewer: () => import("@gradio/paramviewer"),
|
|
plot: () => import("@gradio/plot"),
|
|
radio: () => import("@gradio/radio"),
|
|
simpleimage: () => import("@gradio/simpleimage"),
|
|
slider: () => import("@gradio/slider"),
|
|
state: () => import("@gradio/state"),
|
|
textbox: () => import("@gradio/textbox"),
|
|
timer: () => import("@gradio/timer"),
|
|
uploadbutton: () => import("@gradio/uploadbutton"),
|
|
video: () => import("@gradio/video")
|
|
};
|
|
|
|
import type { PageLoad } from "./$types";
|
|
|
|
export const load: PageLoad = async ({ url }) => {
|
|
const route_name = url.pathname.split("/").slice(-1)[0];
|
|
const interactive_component = config.find(
|
|
(c) => c.name === route_name && c.props.interactive
|
|
);
|
|
const non_interactive_component = config.find(
|
|
(c) => c.name === route_name && !c.props.interactive
|
|
);
|
|
|
|
const comp =
|
|
route_name in comps
|
|
? await comps[route_name as keyof typeof comps]()
|
|
: await import("@gradio/label");
|
|
|
|
return {
|
|
component: comp,
|
|
interactive_component: interactive_component,
|
|
non_interactive_component: non_interactive_component,
|
|
name: route_name
|
|
};
|
|
};
|
|
|