@gradio/imageslider 0.3.0 → 0.3.1-dev.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +45 -0
- package/Index.svelte +80 -102
- package/dist/Example.svelte +5 -4
- package/dist/Example.svelte.d.ts +21 -19
- package/dist/Index.svelte +123 -115
- package/dist/Index.svelte.d.ts +3 -155
- package/dist/shared/ClearImage.svelte +6 -4
- package/dist/shared/ClearImage.svelte.d.ts +18 -16
- package/dist/shared/Image.svelte +78 -46
- package/dist/shared/Image.svelte.d.ts +50 -39
- package/dist/shared/ImageEl.svelte +82 -45
- package/dist/shared/ImageEl.svelte.d.ts +32 -30
- package/dist/shared/Slider.svelte +80 -58
- package/dist/shared/Slider.svelte.d.ts +37 -28
- package/dist/shared/SliderPreview.svelte +128 -96
- package/dist/shared/SliderPreview.svelte.d.ts +34 -32
- package/dist/shared/SliderUpload.svelte +20 -13
- package/dist/shared/SliderUpload.svelte.d.ts +58 -68
- package/dist/types.d.ts +29 -0
- package/dist/types.js +1 -0
- package/package.json +9 -9
- package/shared/Image.svelte +3 -0
- package/shared/SliderUpload.svelte +2 -0
- package/types.ts +31 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,50 @@
|
|
|
1
1
|
# @gradio/imageslider
|
|
2
2
|
|
|
3
|
+
## 0.3.1-dev.2
|
|
4
|
+
|
|
5
|
+
### Dependency updates
|
|
6
|
+
|
|
7
|
+
- @gradio/atoms@0.19.0-dev.1
|
|
8
|
+
- @gradio/client@2.0.0-dev.2
|
|
9
|
+
- @gradio/statustracker@0.12.0-dev.1
|
|
10
|
+
- @gradio/upload@0.17.2-dev.2
|
|
11
|
+
|
|
12
|
+
## 0.3.1-dev.1
|
|
13
|
+
|
|
14
|
+
### Dependency updates
|
|
15
|
+
|
|
16
|
+
- @gradio/atoms@0.18.2-dev.0
|
|
17
|
+
- @gradio/upload@0.17.2-dev.1
|
|
18
|
+
- @gradio/utils@0.10.3-dev.0
|
|
19
|
+
- @gradio/statustracker@0.12.0-dev.0
|
|
20
|
+
- @gradio/icons@0.15.0-dev.0
|
|
21
|
+
|
|
22
|
+
## 0.3.1-dev.0
|
|
23
|
+
|
|
24
|
+
### Dependency updates
|
|
25
|
+
|
|
26
|
+
- @gradio/client@2.0.0-dev.1
|
|
27
|
+
|
|
28
|
+
## 0.3.1-dev.0
|
|
29
|
+
|
|
30
|
+
### Dependency updates
|
|
31
|
+
|
|
32
|
+
- @gradio/upload@0.17.2-dev.0
|
|
33
|
+
- @gradio/client@2.0.0-dev.0
|
|
34
|
+
|
|
35
|
+
## 0.3.0
|
|
36
|
+
|
|
37
|
+
### Dependency updates
|
|
38
|
+
|
|
39
|
+
- @gradio/client@1.19.1
|
|
40
|
+
|
|
41
|
+
## 0.3.0
|
|
42
|
+
|
|
43
|
+
### Dependency updates
|
|
44
|
+
|
|
45
|
+
- @gradio/upload@0.17.1
|
|
46
|
+
- @gradio/atoms@0.18.1
|
|
47
|
+
|
|
3
48
|
## 0.3.0
|
|
4
49
|
|
|
5
50
|
### Features
|
package/Index.svelte
CHANGED
|
@@ -1,84 +1,56 @@
|
|
|
1
1
|
<svelte:options accessors={true} />
|
|
2
2
|
|
|
3
3
|
<script lang="ts">
|
|
4
|
-
import
|
|
4
|
+
import { tick } from "svelte";
|
|
5
|
+
import type { ImageSliderProps, ImageSliderEvents } from "./types";
|
|
6
|
+
import { Gradio } from "@gradio/utils";
|
|
5
7
|
import StaticImage from "./shared/SliderPreview.svelte";
|
|
6
8
|
import ImageUploader from "./shared/SliderUpload.svelte";
|
|
7
|
-
import { afterUpdate } from "svelte";
|
|
8
9
|
|
|
9
10
|
import { Block, Empty, UploadText } from "@gradio/atoms";
|
|
10
11
|
import { Image } from "@gradio/icons";
|
|
11
12
|
import { StatusTracker } from "@gradio/statustracker";
|
|
12
|
-
import { type FileData } from "@gradio/client";
|
|
13
|
-
import type { LoadingStatus } from "@gradio/statustracker";
|
|
14
13
|
|
|
15
14
|
type sources = "upload" | "webcam" | "clipboard" | null;
|
|
16
15
|
|
|
17
|
-
|
|
18
|
-
export let elem_id = "";
|
|
19
|
-
export let elem_classes: string[] = [];
|
|
20
|
-
export let visible: boolean | "hidden" = true;
|
|
21
|
-
export let value: [FileData | null, FileData | null] = [null, null];
|
|
22
|
-
let old_value: [FileData | null, FileData | null] = [null, null];
|
|
23
|
-
export let label: string;
|
|
24
|
-
export let show_label: boolean;
|
|
25
|
-
export let show_download_button: boolean;
|
|
26
|
-
export let root: string;
|
|
27
|
-
export let height: number | undefined;
|
|
28
|
-
export let width: number | undefined;
|
|
29
|
-
export let container = true;
|
|
30
|
-
export let scale: number | null = null;
|
|
31
|
-
export let min_width: number | undefined = undefined;
|
|
32
|
-
export let loading_status: LoadingStatus;
|
|
33
|
-
export let interactive: boolean;
|
|
34
|
-
export let placeholder: string | undefined = undefined;
|
|
35
|
-
export let show_fullscreen_button: boolean;
|
|
36
|
-
let fullscreen = false;
|
|
37
|
-
export let input_ready: boolean;
|
|
38
|
-
export let slider_position: number;
|
|
39
|
-
export let upload_count = 1;
|
|
40
|
-
export let slider_color = "var(--border-color-primary)";
|
|
41
|
-
export let max_height: number;
|
|
42
|
-
let uploading = false;
|
|
16
|
+
let upload_promise = $state<Promise<any>>();
|
|
43
17
|
|
|
44
|
-
|
|
45
|
-
|
|
18
|
+
class ImageSliderGradio extends Gradio<ImageSliderEvents, ImageSliderProps> {
|
|
19
|
+
async get_data() {
|
|
20
|
+
if (upload_promise) {
|
|
21
|
+
await upload_promise;
|
|
22
|
+
await tick();
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const data = await super.get_data();
|
|
26
|
+
return data;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const props = $props();
|
|
31
|
+
const gradio = new ImageSliderGradio(props);
|
|
46
32
|
|
|
47
|
-
|
|
33
|
+
let value_is_output = $state(false);
|
|
34
|
+
let old_value = $state(gradio.props.value);
|
|
35
|
+
let fullscreen = $state(false);
|
|
36
|
+
let dragging = $state(false);
|
|
37
|
+
let active_source: sources = $state(null);
|
|
38
|
+
let upload_component: ImageUploader;
|
|
48
39
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
error: string;
|
|
53
|
-
edit: never;
|
|
54
|
-
stream: ValueData;
|
|
55
|
-
drag: never;
|
|
56
|
-
upload: never;
|
|
57
|
-
clear: never;
|
|
58
|
-
select: SelectData;
|
|
59
|
-
share: ShareData;
|
|
60
|
-
clear_status: LoadingStatus;
|
|
61
|
-
close_stream: string;
|
|
62
|
-
}>;
|
|
40
|
+
let normalised_slider_position = $derived(
|
|
41
|
+
Math.max(0, Math.min(100, gradio.props.slider_position)) / 100
|
|
42
|
+
);
|
|
63
43
|
|
|
64
|
-
|
|
65
|
-
if (
|
|
66
|
-
old_value = value;
|
|
44
|
+
$effect(() => {
|
|
45
|
+
if (old_value != gradio.props.value) {
|
|
46
|
+
old_value = gradio.props.value;
|
|
67
47
|
gradio.dispatch("change");
|
|
68
48
|
if (!value_is_output) {
|
|
69
49
|
gradio.dispatch("input");
|
|
70
50
|
}
|
|
71
51
|
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
afterUpdate(() => {
|
|
75
|
-
value_is_output = false;
|
|
76
52
|
});
|
|
77
53
|
|
|
78
|
-
let dragging: boolean;
|
|
79
|
-
let active_source: sources = null;
|
|
80
|
-
let upload_component: ImageUploader;
|
|
81
|
-
|
|
82
54
|
const handle_drag_event = (event: Event): void => {
|
|
83
55
|
const drag_event = event as DragEvent;
|
|
84
56
|
drag_event.preventDefault();
|
|
@@ -91,7 +63,7 @@
|
|
|
91
63
|
};
|
|
92
64
|
|
|
93
65
|
const handle_drop = (event: Event): void => {
|
|
94
|
-
if (interactive) {
|
|
66
|
+
if (gradio.shared.interactive) {
|
|
95
67
|
const drop_event = event as DragEvent;
|
|
96
68
|
drop_event.preventDefault();
|
|
97
69
|
drop_event.stopPropagation();
|
|
@@ -104,26 +76,26 @@
|
|
|
104
76
|
};
|
|
105
77
|
</script>
|
|
106
78
|
|
|
107
|
-
{#if !interactive || (value?.[1] && value?.[0])}
|
|
79
|
+
{#if !gradio.shared.interactive || (gradio.props.value?.[1] && gradio.props.value?.[0])}
|
|
108
80
|
<Block
|
|
109
|
-
{visible}
|
|
81
|
+
visible={gradio.shared.visible}
|
|
110
82
|
variant={"solid"}
|
|
111
83
|
border_mode={dragging ? "focus" : "base"}
|
|
112
84
|
padding={false}
|
|
113
|
-
{elem_id}
|
|
114
|
-
{elem_classes}
|
|
115
|
-
height={height || undefined}
|
|
116
|
-
{width}
|
|
85
|
+
elem_id={gradio.shared.elem_id}
|
|
86
|
+
elem_classes={gradio.shared.elem_classes}
|
|
87
|
+
height={gradio.props.height || undefined}
|
|
88
|
+
width={gradio.props.width}
|
|
117
89
|
allow_overflow={false}
|
|
118
|
-
{container}
|
|
119
|
-
{scale}
|
|
120
|
-
{min_width}
|
|
90
|
+
container={gradio.shared.container}
|
|
91
|
+
scale={gradio.shared.scale}
|
|
92
|
+
min_width={gradio.shared.min_width}
|
|
121
93
|
bind:fullscreen
|
|
122
94
|
>
|
|
123
95
|
<StatusTracker
|
|
124
|
-
autoscroll={gradio.autoscroll}
|
|
96
|
+
autoscroll={gradio.shared.autoscroll}
|
|
125
97
|
i18n={gradio.i18n}
|
|
126
|
-
{...loading_status}
|
|
98
|
+
{...gradio.shared.loading_status}
|
|
127
99
|
/>
|
|
128
100
|
<StaticImage
|
|
129
101
|
on:select={({ detail }) => gradio.dispatch("select", detail)}
|
|
@@ -134,49 +106,51 @@
|
|
|
134
106
|
fullscreen = detail;
|
|
135
107
|
}}
|
|
136
108
|
{fullscreen}
|
|
137
|
-
{interactive}
|
|
138
|
-
bind:value
|
|
139
|
-
{label}
|
|
140
|
-
{show_label}
|
|
141
|
-
{
|
|
109
|
+
interactive={gradio.shared.interactive}
|
|
110
|
+
bind:value={gradio.props.value}
|
|
111
|
+
label={gradio.shared.label}
|
|
112
|
+
show_label={gradio.shared.show_label}
|
|
113
|
+
show_download_button={gradio.props.buttons.includes("download")}
|
|
142
114
|
i18n={gradio.i18n}
|
|
143
|
-
{
|
|
115
|
+
show_fullscreen_button={gradio.props.buttons.includes("fullscreen")}
|
|
144
116
|
position={normalised_slider_position}
|
|
145
|
-
{slider_color}
|
|
146
|
-
{max_height}
|
|
117
|
+
slider_color={gradio.props.slider_color}
|
|
118
|
+
max_height={gradio.props.max_height}
|
|
147
119
|
/>
|
|
148
120
|
</Block>
|
|
149
121
|
{:else}
|
|
150
122
|
<Block
|
|
151
|
-
{visible}
|
|
152
|
-
variant={value === null ? "dashed" : "solid"}
|
|
123
|
+
visible={gradio.shared.visible}
|
|
124
|
+
variant={gradio.props.value === null ? "dashed" : "solid"}
|
|
153
125
|
border_mode={dragging ? "focus" : "base"}
|
|
154
126
|
padding={false}
|
|
155
|
-
{elem_id}
|
|
156
|
-
{elem_classes}
|
|
157
|
-
height={height || undefined}
|
|
158
|
-
{width}
|
|
127
|
+
elem_id={gradio.shared.elem_id}
|
|
128
|
+
elem_classes={gradio.shared.elem_classes}
|
|
129
|
+
height={gradio.props.height || undefined}
|
|
130
|
+
width={gradio.props.width}
|
|
159
131
|
allow_overflow={false}
|
|
160
|
-
{container}
|
|
161
|
-
{scale}
|
|
162
|
-
{min_width}
|
|
132
|
+
container={gradio.shared.container}
|
|
133
|
+
scale={gradio.shared.scale}
|
|
134
|
+
min_width={gradio.shared.min_width}
|
|
163
135
|
on:dragenter={handle_drag_event}
|
|
164
136
|
on:dragleave={handle_drag_event}
|
|
165
137
|
on:dragover={handle_drag_event}
|
|
166
138
|
on:drop={handle_drop}
|
|
167
139
|
>
|
|
168
140
|
<StatusTracker
|
|
169
|
-
autoscroll={gradio.autoscroll}
|
|
141
|
+
autoscroll={gradio.shared.autoscroll}
|
|
170
142
|
i18n={gradio.i18n}
|
|
171
|
-
{...loading_status}
|
|
172
|
-
on:clear_status={() =>
|
|
143
|
+
{...gradio.shared.loading_status}
|
|
144
|
+
on:clear_status={() =>
|
|
145
|
+
gradio.dispatch("clear_status", gradio.shared.loading_status)}
|
|
173
146
|
/>
|
|
174
147
|
|
|
175
148
|
<ImageUploader
|
|
149
|
+
bind:upload_promise
|
|
176
150
|
bind:this={upload_component}
|
|
177
|
-
bind:value
|
|
151
|
+
bind:value={gradio.props.value}
|
|
178
152
|
bind:dragging
|
|
179
|
-
{root}
|
|
153
|
+
root={gradio.shared.root}
|
|
180
154
|
on:edit={() => gradio.dispatch("edit")}
|
|
181
155
|
on:clear={() => {
|
|
182
156
|
gradio.dispatch("clear");
|
|
@@ -184,24 +158,28 @@
|
|
|
184
158
|
on:drag={({ detail }) => (dragging = detail)}
|
|
185
159
|
on:upload={() => gradio.dispatch("upload")}
|
|
186
160
|
on:error={({ detail }) => {
|
|
187
|
-
|
|
188
|
-
|
|
161
|
+
if (gradio.shared.loading_status)
|
|
162
|
+
gradio.shared.loading_status.status = "error";
|
|
189
163
|
gradio.dispatch("error", detail);
|
|
190
164
|
}}
|
|
191
165
|
on:close_stream={() => {
|
|
192
166
|
gradio.dispatch("close_stream", "stream");
|
|
193
167
|
}}
|
|
194
|
-
{label}
|
|
195
|
-
{show_label}
|
|
196
|
-
{upload_count}
|
|
197
|
-
max_file_size={gradio.max_file_size}
|
|
168
|
+
label={gradio.shared.label}
|
|
169
|
+
show_label={gradio.shared.show_label}
|
|
170
|
+
upload_count={gradio.props.upload_count}
|
|
171
|
+
max_file_size={gradio.shared.max_file_size}
|
|
198
172
|
i18n={gradio.i18n}
|
|
199
|
-
upload={(...args) => gradio.client.upload(...args)}
|
|
200
|
-
stream_handler={gradio.client?.stream}
|
|
201
|
-
{max_height}
|
|
173
|
+
upload={(...args) => gradio.shared.client.upload(...args)}
|
|
174
|
+
stream_handler={gradio.shared.client?.stream}
|
|
175
|
+
max_height={gradio.props.max_height}
|
|
202
176
|
>
|
|
203
177
|
{#if active_source === "upload" || !active_source}
|
|
204
|
-
<UploadText
|
|
178
|
+
<UploadText
|
|
179
|
+
i18n={gradio.i18n}
|
|
180
|
+
type="image"
|
|
181
|
+
placeholder={gradio.props.placeholder}
|
|
182
|
+
/>
|
|
205
183
|
{:else if active_source === "clipboard"}
|
|
206
184
|
<UploadText i18n={gradio.i18n} type="clipboard" mode="short" />
|
|
207
185
|
{:else}
|
package/dist/Example.svelte
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
export let
|
|
3
|
-
export let
|
|
4
|
-
export let
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
export let value: [string, string];
|
|
3
|
+
export let samples_dir: string;
|
|
4
|
+
export let type: "gallery" | "table";
|
|
5
|
+
export let selected = false;
|
|
5
6
|
</script>
|
|
6
7
|
|
|
7
8
|
<!-- TODO: fix -->
|
package/dist/Example.svelte.d.ts
CHANGED
|
@@ -1,21 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
2
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
3
|
+
$$bindings?: Bindings;
|
|
4
|
+
} & Exports;
|
|
5
|
+
(internal: unknown, props: Props & {
|
|
6
|
+
$$events?: Events;
|
|
7
|
+
$$slots?: Slots;
|
|
8
|
+
}): Exports & {
|
|
9
|
+
$set?: any;
|
|
10
|
+
$on?: any;
|
|
8
11
|
};
|
|
9
|
-
|
|
10
|
-
[evt: string]: CustomEvent<any>;
|
|
11
|
-
};
|
|
12
|
-
slots: {};
|
|
13
|
-
exports?: {} | undefined;
|
|
14
|
-
bindings?: string | undefined;
|
|
15
|
-
};
|
|
16
|
-
export type ExampleProps = typeof __propDef.props;
|
|
17
|
-
export type ExampleEvents = typeof __propDef.events;
|
|
18
|
-
export type ExampleSlots = typeof __propDef.slots;
|
|
19
|
-
export default class Example extends SvelteComponent<ExampleProps, ExampleEvents, ExampleSlots> {
|
|
12
|
+
z_$$bindings?: Bindings;
|
|
20
13
|
}
|
|
21
|
-
|
|
14
|
+
declare const Example: $$__sveltets_2_IsomorphicComponent<{
|
|
15
|
+
value: [string, string];
|
|
16
|
+
samples_dir: string;
|
|
17
|
+
type: "gallery" | "table";
|
|
18
|
+
selected?: boolean;
|
|
19
|
+
}, {
|
|
20
|
+
[evt: string]: CustomEvent<any>;
|
|
21
|
+
}, {}, {}, string>;
|
|
22
|
+
type Example = InstanceType<typeof Example>;
|
|
23
|
+
export default Example;
|
package/dist/Index.svelte
CHANGED
|
@@ -1,99 +1,101 @@
|
|
|
1
1
|
<svelte:options accessors={true} />
|
|
2
2
|
|
|
3
|
-
<script
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
let
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
const handle_drag_event = (event) => {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
3
|
+
<script lang="ts">
|
|
4
|
+
import { tick } from "svelte";
|
|
5
|
+
import type { ImageSliderProps, ImageSliderEvents } from "./types";
|
|
6
|
+
import { Gradio } from "@gradio/utils";
|
|
7
|
+
import StaticImage from "./shared/SliderPreview.svelte";
|
|
8
|
+
import ImageUploader from "./shared/SliderUpload.svelte";
|
|
9
|
+
|
|
10
|
+
import { Block, Empty, UploadText } from "@gradio/atoms";
|
|
11
|
+
import { Image } from "@gradio/icons";
|
|
12
|
+
import { StatusTracker } from "@gradio/statustracker";
|
|
13
|
+
|
|
14
|
+
type sources = "upload" | "webcam" | "clipboard" | null;
|
|
15
|
+
|
|
16
|
+
let upload_promise = $state<Promise<any>>();
|
|
17
|
+
|
|
18
|
+
class ImageSliderGradio extends Gradio<ImageSliderEvents, ImageSliderProps> {
|
|
19
|
+
async get_data() {
|
|
20
|
+
if (upload_promise) {
|
|
21
|
+
await upload_promise;
|
|
22
|
+
await tick();
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const data = await super.get_data();
|
|
26
|
+
return data;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const props = $props();
|
|
31
|
+
const gradio = new ImageSliderGradio(props);
|
|
32
|
+
|
|
33
|
+
let value_is_output = $state(false);
|
|
34
|
+
let old_value = $state(gradio.props.value);
|
|
35
|
+
let fullscreen = $state(false);
|
|
36
|
+
let dragging = $state(false);
|
|
37
|
+
let active_source: sources = $state(null);
|
|
38
|
+
let upload_component: ImageUploader;
|
|
39
|
+
|
|
40
|
+
let normalised_slider_position = $derived(
|
|
41
|
+
Math.max(0, Math.min(100, gradio.props.slider_position)) / 100
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
$effect(() => {
|
|
45
|
+
if (old_value != gradio.props.value) {
|
|
46
|
+
old_value = gradio.props.value;
|
|
47
|
+
gradio.dispatch("change");
|
|
48
|
+
if (!value_is_output) {
|
|
49
|
+
gradio.dispatch("input");
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
const handle_drag_event = (event: Event): void => {
|
|
55
|
+
const drag_event = event as DragEvent;
|
|
56
|
+
drag_event.preventDefault();
|
|
57
|
+
drag_event.stopPropagation();
|
|
58
|
+
if (drag_event.type === "dragenter" || drag_event.type === "dragover") {
|
|
59
|
+
dragging = true;
|
|
60
|
+
} else if (drag_event.type === "dragleave") {
|
|
61
|
+
dragging = false;
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
const handle_drop = (event: Event): void => {
|
|
66
|
+
if (gradio.shared.interactive) {
|
|
67
|
+
const drop_event = event as DragEvent;
|
|
68
|
+
drop_event.preventDefault();
|
|
69
|
+
drop_event.stopPropagation();
|
|
70
|
+
dragging = false;
|
|
71
|
+
|
|
72
|
+
if (upload_component) {
|
|
73
|
+
upload_component.loadFilesFromDrop(drop_event);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
};
|
|
75
77
|
</script>
|
|
76
78
|
|
|
77
|
-
{#if !interactive || (value?.[1] && value?.[0])}
|
|
79
|
+
{#if !gradio.shared.interactive || (gradio.props.value?.[1] && gradio.props.value?.[0])}
|
|
78
80
|
<Block
|
|
79
|
-
{visible}
|
|
81
|
+
visible={gradio.shared.visible}
|
|
80
82
|
variant={"solid"}
|
|
81
83
|
border_mode={dragging ? "focus" : "base"}
|
|
82
84
|
padding={false}
|
|
83
|
-
{elem_id}
|
|
84
|
-
{elem_classes}
|
|
85
|
-
height={height || undefined}
|
|
86
|
-
{width}
|
|
85
|
+
elem_id={gradio.shared.elem_id}
|
|
86
|
+
elem_classes={gradio.shared.elem_classes}
|
|
87
|
+
height={gradio.props.height || undefined}
|
|
88
|
+
width={gradio.props.width}
|
|
87
89
|
allow_overflow={false}
|
|
88
|
-
{container}
|
|
89
|
-
{scale}
|
|
90
|
-
{min_width}
|
|
90
|
+
container={gradio.shared.container}
|
|
91
|
+
scale={gradio.shared.scale}
|
|
92
|
+
min_width={gradio.shared.min_width}
|
|
91
93
|
bind:fullscreen
|
|
92
94
|
>
|
|
93
95
|
<StatusTracker
|
|
94
|
-
autoscroll={gradio.autoscroll}
|
|
96
|
+
autoscroll={gradio.shared.autoscroll}
|
|
95
97
|
i18n={gradio.i18n}
|
|
96
|
-
{...loading_status}
|
|
98
|
+
{...gradio.shared.loading_status}
|
|
97
99
|
/>
|
|
98
100
|
<StaticImage
|
|
99
101
|
on:select={({ detail }) => gradio.dispatch("select", detail)}
|
|
@@ -104,49 +106,51 @@ const handle_drop = (event) => {
|
|
|
104
106
|
fullscreen = detail;
|
|
105
107
|
}}
|
|
106
108
|
{fullscreen}
|
|
107
|
-
{interactive}
|
|
108
|
-
bind:value
|
|
109
|
-
{label}
|
|
110
|
-
{show_label}
|
|
111
|
-
{
|
|
109
|
+
interactive={gradio.shared.interactive}
|
|
110
|
+
bind:value={gradio.props.value}
|
|
111
|
+
label={gradio.shared.label}
|
|
112
|
+
show_label={gradio.shared.show_label}
|
|
113
|
+
show_download_button={gradio.props.buttons.includes("download")}
|
|
112
114
|
i18n={gradio.i18n}
|
|
113
|
-
{
|
|
115
|
+
show_fullscreen_button={gradio.props.buttons.includes("fullscreen")}
|
|
114
116
|
position={normalised_slider_position}
|
|
115
|
-
{slider_color}
|
|
116
|
-
{max_height}
|
|
117
|
+
slider_color={gradio.props.slider_color}
|
|
118
|
+
max_height={gradio.props.max_height}
|
|
117
119
|
/>
|
|
118
120
|
</Block>
|
|
119
121
|
{:else}
|
|
120
122
|
<Block
|
|
121
|
-
{visible}
|
|
122
|
-
variant={value === null ? "dashed" : "solid"}
|
|
123
|
+
visible={gradio.shared.visible}
|
|
124
|
+
variant={gradio.props.value === null ? "dashed" : "solid"}
|
|
123
125
|
border_mode={dragging ? "focus" : "base"}
|
|
124
126
|
padding={false}
|
|
125
|
-
{elem_id}
|
|
126
|
-
{elem_classes}
|
|
127
|
-
height={height || undefined}
|
|
128
|
-
{width}
|
|
127
|
+
elem_id={gradio.shared.elem_id}
|
|
128
|
+
elem_classes={gradio.shared.elem_classes}
|
|
129
|
+
height={gradio.props.height || undefined}
|
|
130
|
+
width={gradio.props.width}
|
|
129
131
|
allow_overflow={false}
|
|
130
|
-
{container}
|
|
131
|
-
{scale}
|
|
132
|
-
{min_width}
|
|
132
|
+
container={gradio.shared.container}
|
|
133
|
+
scale={gradio.shared.scale}
|
|
134
|
+
min_width={gradio.shared.min_width}
|
|
133
135
|
on:dragenter={handle_drag_event}
|
|
134
136
|
on:dragleave={handle_drag_event}
|
|
135
137
|
on:dragover={handle_drag_event}
|
|
136
138
|
on:drop={handle_drop}
|
|
137
139
|
>
|
|
138
140
|
<StatusTracker
|
|
139
|
-
autoscroll={gradio.autoscroll}
|
|
141
|
+
autoscroll={gradio.shared.autoscroll}
|
|
140
142
|
i18n={gradio.i18n}
|
|
141
|
-
{...loading_status}
|
|
142
|
-
on:clear_status={() =>
|
|
143
|
+
{...gradio.shared.loading_status}
|
|
144
|
+
on:clear_status={() =>
|
|
145
|
+
gradio.dispatch("clear_status", gradio.shared.loading_status)}
|
|
143
146
|
/>
|
|
144
147
|
|
|
145
148
|
<ImageUploader
|
|
149
|
+
bind:upload_promise
|
|
146
150
|
bind:this={upload_component}
|
|
147
|
-
bind:value
|
|
151
|
+
bind:value={gradio.props.value}
|
|
148
152
|
bind:dragging
|
|
149
|
-
{root}
|
|
153
|
+
root={gradio.shared.root}
|
|
150
154
|
on:edit={() => gradio.dispatch("edit")}
|
|
151
155
|
on:clear={() => {
|
|
152
156
|
gradio.dispatch("clear");
|
|
@@ -154,24 +158,28 @@ const handle_drop = (event) => {
|
|
|
154
158
|
on:drag={({ detail }) => (dragging = detail)}
|
|
155
159
|
on:upload={() => gradio.dispatch("upload")}
|
|
156
160
|
on:error={({ detail }) => {
|
|
157
|
-
|
|
158
|
-
|
|
161
|
+
if (gradio.shared.loading_status)
|
|
162
|
+
gradio.shared.loading_status.status = "error";
|
|
159
163
|
gradio.dispatch("error", detail);
|
|
160
164
|
}}
|
|
161
165
|
on:close_stream={() => {
|
|
162
166
|
gradio.dispatch("close_stream", "stream");
|
|
163
167
|
}}
|
|
164
|
-
{label}
|
|
165
|
-
{show_label}
|
|
166
|
-
{upload_count}
|
|
167
|
-
max_file_size={gradio.max_file_size}
|
|
168
|
+
label={gradio.shared.label}
|
|
169
|
+
show_label={gradio.shared.show_label}
|
|
170
|
+
upload_count={gradio.props.upload_count}
|
|
171
|
+
max_file_size={gradio.shared.max_file_size}
|
|
168
172
|
i18n={gradio.i18n}
|
|
169
|
-
upload={(...args) => gradio.client.upload(...args)}
|
|
170
|
-
stream_handler={gradio.client?.stream}
|
|
171
|
-
{max_height}
|
|
173
|
+
upload={(...args) => gradio.shared.client.upload(...args)}
|
|
174
|
+
stream_handler={gradio.shared.client?.stream}
|
|
175
|
+
max_height={gradio.props.max_height}
|
|
172
176
|
>
|
|
173
177
|
{#if active_source === "upload" || !active_source}
|
|
174
|
-
<UploadText
|
|
178
|
+
<UploadText
|
|
179
|
+
i18n={gradio.i18n}
|
|
180
|
+
type="image"
|
|
181
|
+
placeholder={gradio.props.placeholder}
|
|
182
|
+
/>
|
|
175
183
|
{:else if active_source === "clipboard"}
|
|
176
184
|
<UploadText i18n={gradio.i18n} type="clipboard" mode="short" />
|
|
177
185
|
{:else}
|