2022-03-08 21:35:42 +08:00
|
|
|
<script lang="ts">
|
2022-03-17 00:34:30 +08:00
|
|
|
import { createEventDispatcher } from "svelte";
|
2022-03-08 21:35:42 +08:00
|
|
|
import { Label } from "@gradio/label";
|
2022-05-13 01:47:40 +08:00
|
|
|
import { LineChart as LabelIcon } from "@gradio/icons";
|
|
|
|
import { Block, BlockLabel } from "@gradio/atoms";
|
2022-04-26 22:48:39 +08:00
|
|
|
import StatusTracker from "../StatusTracker/StatusTracker.svelte";
|
2022-05-06 03:05:05 +08:00
|
|
|
import type { LoadingStatus } from "../StatusTracker/types";
|
2022-03-08 21:35:42 +08:00
|
|
|
|
2022-05-12 12:40:41 +08:00
|
|
|
export let elem_id: string = "";
|
2022-03-08 21:35:42 +08:00
|
|
|
export let value: {
|
|
|
|
label: string;
|
|
|
|
confidences?: Array<{ label: string; confidence: number }>;
|
|
|
|
};
|
2022-05-13 08:23:45 +08:00
|
|
|
export let label: string = "Label";
|
2022-03-29 21:10:35 +08:00
|
|
|
|
2022-05-06 03:05:05 +08:00
|
|
|
export let loading_status: LoadingStatus;
|
2022-04-27 18:47:15 +08:00
|
|
|
export let show_label: boolean;
|
2022-03-17 00:34:30 +08:00
|
|
|
|
|
|
|
const dispatch = createEventDispatcher<{ change: undefined }>();
|
|
|
|
|
|
|
|
$: value, dispatch("change");
|
2022-03-08 21:35:42 +08:00
|
|
|
</script>
|
|
|
|
|
2022-05-12 12:40:41 +08:00
|
|
|
<Block {elem_id}>
|
2022-05-06 03:05:05 +08:00
|
|
|
<StatusTracker {...loading_status} />
|
2022-05-13 01:47:40 +08:00
|
|
|
<BlockLabel Icon={LabelIcon} {label} />
|
2022-04-26 22:48:39 +08:00
|
|
|
|
|
|
|
{#if value !== undefined && value !== null}
|
2022-05-12 12:40:41 +08:00
|
|
|
<Label {value} {show_label} />
|
2022-05-13 01:47:40 +08:00
|
|
|
{:else}
|
|
|
|
<div class="min-h-[6rem] flex justify-center items-center">
|
|
|
|
<div class="h-5 dark:text-white opacity-50"><LabelIcon /></div>
|
|
|
|
</div>
|
2022-04-26 22:48:39 +08:00
|
|
|
{/if}
|
|
|
|
</Block>
|