@gradio/dataframe 0.22.0 → 0.23.1
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 +24 -0
- package/Dataframe.test.ts +777 -31
- package/Index.svelte +107 -106
- package/dist/Index.svelte +107 -106
- package/dist/Index.svelte.d.ts +0 -1
- package/dist/shared/BooleanCell.svelte +12 -6
- package/dist/shared/BooleanCell.svelte.d.ts +4 -18
- package/dist/shared/CellMenu.svelte +74 -49
- package/dist/shared/CellMenu.svelte.d.ts +5 -19
- package/dist/shared/CellMenuButton.svelte +3 -3
- package/dist/shared/CellMenuButton.svelte.d.ts +4 -18
- package/dist/shared/CellMenuIcons.svelte +1 -1
- package/dist/shared/CellMenuIcons.svelte.d.ts +4 -18
- package/dist/shared/DataCell.svelte +189 -0
- package/dist/shared/DataCell.svelte.d.ts +44 -0
- package/dist/shared/EditableCell.svelte +88 -64
- package/dist/shared/EditableCell.svelte.d.ts +8 -26
- package/dist/shared/EmptyRowButton.svelte +2 -2
- package/dist/shared/EmptyRowButton.svelte.d.ts +4 -18
- package/dist/shared/FilterMenu.svelte +26 -18
- package/dist/shared/FilterMenu.svelte.d.ts +5 -21
- package/dist/shared/HeaderCell.svelte +218 -0
- package/dist/shared/HeaderCell.svelte.d.ts +30 -0
- package/dist/shared/RowNumber.svelte +4 -2
- package/dist/shared/RowNumber.svelte.d.ts +4 -18
- package/dist/shared/Table.svelte +1037 -949
- package/dist/shared/Table.svelte.d.ts +12 -30
- package/dist/shared/Toolbar.svelte +32 -22
- package/dist/shared/Toolbar.svelte.d.ts +6 -21
- package/dist/shared/column_measurement.svelte.d.ts +20 -0
- package/dist/shared/column_measurement.svelte.js +79 -0
- package/dist/shared/icons/FilterIcon.svelte +14 -6
- package/dist/shared/icons/FilterIcon.svelte.d.ts +14 -6
- package/dist/shared/icons/Padlock.svelte +6 -2
- package/dist/shared/icons/Padlock.svelte.d.ts +4 -25
- package/dist/shared/icons/SelectionButtons.svelte +23 -8
- package/dist/shared/icons/SelectionButtons.svelte.d.ts +4 -18
- package/dist/shared/icons/SortButtonDown.svelte +15 -4
- package/dist/shared/icons/SortButtonDown.svelte.d.ts +4 -25
- package/dist/shared/icons/SortButtonUp.svelte +15 -5
- package/dist/shared/icons/SortButtonUp.svelte.d.ts +4 -25
- package/dist/shared/icons/SortIcon.svelte +13 -7
- package/dist/shared/icons/SortIcon.svelte.d.ts +7 -21
- package/dist/shared/tanstack/index.d.ts +3 -0
- package/dist/shared/tanstack/index.js +3 -0
- package/dist/shared/tanstack/table.svelte.d.ts +26 -0
- package/dist/shared/tanstack/table.svelte.js +102 -0
- package/dist/shared/tanstack/virtual.svelte.d.ts +14 -0
- package/dist/shared/tanstack/virtual.svelte.js +76 -0
- package/dist/shared/types.d.ts +2 -0
- package/dist/shared/utils/filter.d.ts +5 -0
- package/dist/shared/utils/filter.js +62 -0
- package/dist/shared/utils/selection_utils.js +1 -1
- package/dist/shared/utils/table_utils.d.ts +1 -14
- package/dist/shared/utils/table_utils.js +0 -61
- package/dist/standalone/Index.svelte +71 -46
- package/dist/standalone/Index.svelte.d.ts +4 -23
- package/dist/types.d.ts +32 -0
- package/dist/types.js +1 -0
- package/package.json +12 -11
- package/shared/BooleanCell.svelte +12 -6
- package/shared/CellMenu.svelte +74 -49
- package/shared/CellMenuButton.svelte +3 -3
- package/shared/CellMenuIcons.svelte +1 -1
- package/shared/DataCell.svelte +189 -0
- package/shared/EditableCell.svelte +88 -64
- package/shared/EmptyRowButton.svelte +2 -2
- package/shared/FilterMenu.svelte +26 -18
- package/shared/HeaderCell.svelte +218 -0
- package/shared/RowNumber.svelte +4 -2
- package/shared/Table.svelte +1037 -949
- package/shared/Toolbar.svelte +32 -22
- package/shared/column_measurement.svelte.ts +103 -0
- package/shared/icons/FilterIcon.svelte +14 -6
- package/shared/icons/Padlock.svelte +6 -2
- package/shared/icons/SelectionButtons.svelte +23 -8
- package/shared/icons/SortButtonDown.svelte +15 -4
- package/shared/icons/SortButtonUp.svelte +15 -5
- package/shared/icons/SortIcon.svelte +13 -7
- package/shared/tanstack/index.ts +23 -0
- package/shared/tanstack/table.svelte.ts +117 -0
- package/shared/tanstack/virtual.svelte.ts +105 -0
- package/shared/types.ts +3 -0
- package/shared/utils/filter.ts +66 -0
- package/shared/utils/selection_utils.ts +1 -1
- package/shared/utils/table_utils.ts +1 -100
- package/standalone/Index.svelte +71 -46
- package/test/filter.test.ts +350 -0
- package/test/selection_utils.test.ts +416 -0
- package/test/table_utils.test.ts +45 -112
- package/types.ts +34 -0
- package/dist/shared/TableCell.svelte +0 -330
- package/dist/shared/TableCell.svelte.d.ts +0 -66
- package/dist/shared/TableHeader.svelte +0 -344
- package/dist/shared/TableHeader.svelte.d.ts +0 -61
- package/dist/shared/VirtualTable.svelte +0 -379
- package/dist/shared/VirtualTable.svelte.d.ts +0 -42
- package/dist/shared/context/dataframe_context.d.ts +0 -180
- package/dist/shared/context/dataframe_context.js +0 -412
- package/dist/shared/icons/SortArrowDown.svelte +0 -25
- package/dist/shared/icons/SortArrowDown.svelte.d.ts +0 -20
- package/dist/shared/icons/SortArrowUp.svelte +0 -25
- package/dist/shared/icons/SortArrowUp.svelte.d.ts +0 -20
- package/dist/shared/utils/data_processing.d.ts +0 -14
- package/dist/shared/utils/data_processing.js +0 -47
- package/dist/shared/utils/drag_utils.d.ts +0 -15
- package/dist/shared/utils/drag_utils.js +0 -67
- package/dist/shared/utils/filter_utils.d.ts +0 -29
- package/dist/shared/utils/filter_utils.js +0 -123
- package/dist/shared/utils/keyboard_utils.d.ts +0 -3
- package/dist/shared/utils/keyboard_utils.js +0 -236
- package/dist/shared/utils/menu_utils.d.ts +0 -42
- package/dist/shared/utils/menu_utils.js +0 -58
- package/dist/shared/utils/sort_utils.d.ts +0 -26
- package/dist/shared/utils/sort_utils.js +0 -59
- package/shared/TableCell.svelte +0 -330
- package/shared/TableHeader.svelte +0 -344
- package/shared/VirtualTable.svelte +0 -379
- package/shared/context/dataframe_context.ts +0 -701
- package/shared/icons/SortArrowDown.svelte +0 -25
- package/shared/icons/SortArrowUp.svelte +0 -25
- package/shared/utils/data_processing.ts +0 -77
- package/shared/utils/drag_utils.ts +0 -105
- package/shared/utils/filter_utils.ts +0 -208
- package/shared/utils/keyboard_utils.ts +0 -309
- package/shared/utils/menu_utils.ts +0 -115
- package/shared/utils/sort_utils.ts +0 -91
- package/test/sort_utils.test.ts +0 -323
package/Index.svelte
CHANGED
|
@@ -1,128 +1,129 @@
|
|
|
1
|
-
<
|
|
2
|
-
|
|
3
|
-
<script context="module" lang="ts">
|
|
1
|
+
<script module lang="ts">
|
|
4
2
|
export { default as BaseDataFrame } from "./shared/Table.svelte";
|
|
5
3
|
export { default as BaseExample } from "./Example.svelte";
|
|
6
4
|
</script>
|
|
7
5
|
|
|
8
6
|
<script lang="ts">
|
|
9
|
-
import
|
|
7
|
+
import { tick } from "svelte";
|
|
8
|
+
import Table from "./shared/Table.svelte";
|
|
9
|
+
import StatusTracker from "@gradio/statustracker";
|
|
10
|
+
import { Block } from "@gradio/atoms";
|
|
10
11
|
import { Gradio } from "@gradio/utils";
|
|
11
|
-
|
|
12
12
|
import type { DataframeProps, DataframeEvents } from "./types";
|
|
13
13
|
import { dequal } from "dequal";
|
|
14
|
-
import { onMount } from "svelte";
|
|
15
|
-
import DF from "@gradio/dataframe-interim";
|
|
16
|
-
import "@gradio/dataframe-interim/css";
|
|
17
14
|
|
|
18
|
-
let
|
|
15
|
+
let _props = $props();
|
|
16
|
+
const gradio = new Gradio<DataframeEvents, DataframeProps>(_props);
|
|
19
17
|
|
|
20
|
-
let
|
|
18
|
+
let fullscreen = $state(gradio.props.fullscreen ?? false);
|
|
21
19
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
// align datatype array to current value headers using the original
|
|
21
|
+
// config-time header→datatype mapping.
|
|
22
|
+
// when columns are hidden or reordered, positional indices shift but
|
|
23
|
+
// the datatype prop doesn't update, the map keeps them synced
|
|
24
|
+
let aligned_datatype = $derived.by(() => {
|
|
25
|
+
const dt = gradio.props.datatype;
|
|
26
|
+
if (!Array.isArray(dt)) return dt;
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
const config_headers: string[] | undefined = (gradio.props as any).headers;
|
|
29
|
+
const current_headers = gradio.props.value?.headers;
|
|
30
|
+
if (!config_headers || !current_headers) return dt;
|
|
31
|
+
|
|
32
|
+
const map = new Map<string, string>();
|
|
33
|
+
for (let i = 0; i < Math.min(config_headers.length, dt.length); i++) {
|
|
34
|
+
map.set(config_headers[i], dt[i]);
|
|
35
|
+
}
|
|
36
|
+
return current_headers.map(
|
|
37
|
+
(h: string, i: number) => map.get(h) ?? dt[i] ?? "str"
|
|
38
|
+
);
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
let old_value = $state(
|
|
42
|
+
gradio.props.value ? JSON.stringify(gradio.props.value) : null
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
function handle_change(detail: any): void {
|
|
46
|
+
gradio.props.value = detail;
|
|
47
|
+
const serialized = JSON.stringify(detail);
|
|
48
|
+
if (serialized !== old_value) {
|
|
49
|
+
old_value = serialized;
|
|
50
|
+
gradio.dispatch("change", detail);
|
|
33
51
|
}
|
|
34
52
|
}
|
|
35
53
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
let Component: typeof DF | null = null;
|
|
40
|
-
onMount(() => {
|
|
41
|
-
Component = new DF({
|
|
42
|
-
target: el,
|
|
43
|
-
props: {
|
|
44
|
-
elem_id: gradio.shared.elem_id,
|
|
45
|
-
elem_classes: gradio.shared.elem_classes,
|
|
46
|
-
visible: gradio.shared.visible,
|
|
47
|
-
value: gradio.props.value,
|
|
54
|
+
function handle_input(): void {
|
|
55
|
+
gradio.dispatch("input");
|
|
56
|
+
}
|
|
48
57
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
show_label: gradio.shared.show_label,
|
|
53
|
-
wrap: gradio.props.wrap,
|
|
54
|
-
datatype: gradio.props.datatype,
|
|
55
|
-
scale: gradio.shared.scale,
|
|
56
|
-
min_width: gradio.shared.min_width,
|
|
57
|
-
root: gradio.shared.root,
|
|
58
|
-
line_breaks: gradio.props.line_breaks,
|
|
59
|
-
column_widths: gradio.props.column_widths,
|
|
60
|
-
gradio: compat_gradio,
|
|
61
|
-
latex_delimiters: gradio.props.latex_delimiters,
|
|
62
|
-
max_height: gradio.props.max_height,
|
|
63
|
-
loading_status: gradio.shared.loading_status,
|
|
64
|
-
interactive: gradio.shared.interactive,
|
|
65
|
-
buttons: gradio.props.buttons,
|
|
66
|
-
max_chars: gradio.props.max_chars,
|
|
67
|
-
show_row_numbers: gradio.props.show_row_numbers,
|
|
68
|
-
show_search: gradio.props.show_search,
|
|
69
|
-
pinned_columns: gradio.props.pinned_columns,
|
|
70
|
-
static_columns: gradio.props.static_columns,
|
|
71
|
-
fullscreen: gradio.props.fullscreen,
|
|
72
|
-
show_copy_button:
|
|
73
|
-
gradio.props.buttons && gradio.props.buttons.includes("copy"),
|
|
74
|
-
show_fullscreen_button:
|
|
75
|
-
gradio.props.buttons && gradio.props.buttons.includes("fullscreen")
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
});
|
|
58
|
+
function handle_select(detail: any): void {
|
|
59
|
+
gradio.dispatch("select", detail);
|
|
60
|
+
}
|
|
79
61
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
dispatch(name: keyof DataframeEvents, detail?: any) {
|
|
84
|
-
if (name === "input" && changed) {
|
|
85
|
-
changed = false;
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
gradio.dispatch(name, detail);
|
|
89
|
-
},
|
|
90
|
-
autoscroll: gradio.shared.autoscroll
|
|
91
|
-
};
|
|
92
|
-
$effect(() => {
|
|
93
|
-
if (Component) {
|
|
94
|
-
Component.$set({
|
|
95
|
-
elem_id: gradio.shared.elem_id,
|
|
96
|
-
elem_classes: gradio.shared.elem_classes,
|
|
97
|
-
visible: gradio.shared.visible,
|
|
98
|
-
value: gradio.props.value,
|
|
62
|
+
function handle_edit(detail: any): void {
|
|
63
|
+
gradio.dispatch("edit", detail);
|
|
64
|
+
}
|
|
99
65
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
root: gradio.shared.root,
|
|
109
|
-
line_breaks: gradio.props.line_breaks,
|
|
110
|
-
column_widths: gradio.props.column_widths,
|
|
111
|
-
gradio: compat_gradio,
|
|
112
|
-
latex_delimiters: gradio.props.latex_delimiters,
|
|
113
|
-
max_height: gradio.props.max_height,
|
|
114
|
-
loading_status: gradio.shared.loading_status,
|
|
115
|
-
interactive: gradio.shared.interactive,
|
|
116
|
-
buttons: gradio.props.buttons,
|
|
117
|
-
max_chars: gradio.props.max_chars,
|
|
118
|
-
show_row_numbers: gradio.props.show_row_numbers,
|
|
119
|
-
show_search: gradio.props.show_search,
|
|
120
|
-
pinned_columns: gradio.props.pinned_columns,
|
|
121
|
-
static_columns: gradio.props.static_columns,
|
|
122
|
-
fullscreen: gradio.props.fullscreen
|
|
123
|
-
});
|
|
66
|
+
$effect(() => {
|
|
67
|
+
const v = gradio.props.value;
|
|
68
|
+
if (v) {
|
|
69
|
+
const serialized = JSON.stringify(v);
|
|
70
|
+
if (serialized !== old_value) {
|
|
71
|
+
old_value = serialized;
|
|
72
|
+
gradio.dispatch("change", v);
|
|
73
|
+
}
|
|
124
74
|
}
|
|
125
75
|
});
|
|
126
76
|
</script>
|
|
127
77
|
|
|
128
|
-
<
|
|
78
|
+
<Block
|
|
79
|
+
visible={gradio.shared.visible}
|
|
80
|
+
elem_id={gradio.shared.elem_id}
|
|
81
|
+
elem_classes={gradio.shared.elem_classes}
|
|
82
|
+
scale={gradio.shared.scale}
|
|
83
|
+
min_width={gradio.shared.min_width}
|
|
84
|
+
padding={false}
|
|
85
|
+
container={false}
|
|
86
|
+
overflow_behavior="visible"
|
|
87
|
+
{fullscreen}
|
|
88
|
+
>
|
|
89
|
+
<StatusTracker
|
|
90
|
+
autoscroll={gradio.shared.autoscroll}
|
|
91
|
+
i18n={gradio.i18n}
|
|
92
|
+
{...gradio.shared.loading_status}
|
|
93
|
+
/>
|
|
94
|
+
<Table
|
|
95
|
+
headers={gradio.props.value?.headers ?? []}
|
|
96
|
+
values={gradio.props.value?.data ?? []}
|
|
97
|
+
display_value={gradio.props.value?.metadata?.display_value ?? null}
|
|
98
|
+
styling={gradio.props.value?.metadata?.styling ?? null}
|
|
99
|
+
col_count={gradio.props.col_count}
|
|
100
|
+
row_count={gradio.props.row_count}
|
|
101
|
+
label={gradio.shared.label}
|
|
102
|
+
show_label={gradio.shared.show_label}
|
|
103
|
+
wrap={gradio.props.wrap}
|
|
104
|
+
datatype={aligned_datatype}
|
|
105
|
+
latex_delimiters={gradio.props.latex_delimiters}
|
|
106
|
+
max_height={gradio.props.max_height}
|
|
107
|
+
editable={gradio.shared.interactive ?? true}
|
|
108
|
+
line_breaks={gradio.props.line_breaks}
|
|
109
|
+
column_widths={gradio.props.column_widths ?? []}
|
|
110
|
+
root={gradio.shared.root}
|
|
111
|
+
i18n={gradio.i18n}
|
|
112
|
+
upload={gradio.shared.client?.upload}
|
|
113
|
+
stream_handler={gradio.shared.client?.stream}
|
|
114
|
+
buttons={gradio.props.buttons}
|
|
115
|
+
max_chars={gradio.props.max_chars}
|
|
116
|
+
show_row_numbers={gradio.props.show_row_numbers}
|
|
117
|
+
show_search={gradio.props.show_search}
|
|
118
|
+
pinned_columns={gradio.props.pinned_columns}
|
|
119
|
+
static_columns={gradio.props.static_columns ?? []}
|
|
120
|
+
{fullscreen}
|
|
121
|
+
onfullscreen={() => {
|
|
122
|
+
fullscreen = !fullscreen;
|
|
123
|
+
}}
|
|
124
|
+
onchange={handle_change}
|
|
125
|
+
oninput={handle_input}
|
|
126
|
+
onselect={handle_select}
|
|
127
|
+
onedit={handle_edit}
|
|
128
|
+
/>
|
|
129
|
+
</Block>
|
package/dist/Index.svelte
CHANGED
|
@@ -1,128 +1,129 @@
|
|
|
1
|
-
<
|
|
2
|
-
|
|
3
|
-
<script context="module" lang="ts">
|
|
1
|
+
<script module lang="ts">
|
|
4
2
|
export { default as BaseDataFrame } from "./shared/Table.svelte";
|
|
5
3
|
export { default as BaseExample } from "./Example.svelte";
|
|
6
4
|
</script>
|
|
7
5
|
|
|
8
6
|
<script lang="ts">
|
|
9
|
-
import
|
|
7
|
+
import { tick } from "svelte";
|
|
8
|
+
import Table from "./shared/Table.svelte";
|
|
9
|
+
import StatusTracker from "@gradio/statustracker";
|
|
10
|
+
import { Block } from "@gradio/atoms";
|
|
10
11
|
import { Gradio } from "@gradio/utils";
|
|
11
|
-
|
|
12
12
|
import type { DataframeProps, DataframeEvents } from "./types";
|
|
13
13
|
import { dequal } from "dequal";
|
|
14
|
-
import { onMount } from "svelte";
|
|
15
|
-
import DF from "@gradio/dataframe-interim";
|
|
16
|
-
import "@gradio/dataframe-interim/css";
|
|
17
14
|
|
|
18
|
-
let
|
|
15
|
+
let _props = $props();
|
|
16
|
+
const gradio = new Gradio<DataframeEvents, DataframeProps>(_props);
|
|
19
17
|
|
|
20
|
-
let
|
|
18
|
+
let fullscreen = $state(gradio.props.fullscreen ?? false);
|
|
21
19
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
// align datatype array to current value headers using the original
|
|
21
|
+
// config-time header→datatype mapping.
|
|
22
|
+
// when columns are hidden or reordered, positional indices shift but
|
|
23
|
+
// the datatype prop doesn't update, the map keeps them synced
|
|
24
|
+
let aligned_datatype = $derived.by(() => {
|
|
25
|
+
const dt = gradio.props.datatype;
|
|
26
|
+
if (!Array.isArray(dt)) return dt;
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
const config_headers: string[] | undefined = (gradio.props as any).headers;
|
|
29
|
+
const current_headers = gradio.props.value?.headers;
|
|
30
|
+
if (!config_headers || !current_headers) return dt;
|
|
31
|
+
|
|
32
|
+
const map = new Map<string, string>();
|
|
33
|
+
for (let i = 0; i < Math.min(config_headers.length, dt.length); i++) {
|
|
34
|
+
map.set(config_headers[i], dt[i]);
|
|
35
|
+
}
|
|
36
|
+
return current_headers.map(
|
|
37
|
+
(h: string, i: number) => map.get(h) ?? dt[i] ?? "str"
|
|
38
|
+
);
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
let old_value = $state(
|
|
42
|
+
gradio.props.value ? JSON.stringify(gradio.props.value) : null
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
function handle_change(detail: any): void {
|
|
46
|
+
gradio.props.value = detail;
|
|
47
|
+
const serialized = JSON.stringify(detail);
|
|
48
|
+
if (serialized !== old_value) {
|
|
49
|
+
old_value = serialized;
|
|
50
|
+
gradio.dispatch("change", detail);
|
|
33
51
|
}
|
|
34
52
|
}
|
|
35
53
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
let Component: typeof DF | null = null;
|
|
40
|
-
onMount(() => {
|
|
41
|
-
Component = new DF({
|
|
42
|
-
target: el,
|
|
43
|
-
props: {
|
|
44
|
-
elem_id: gradio.shared.elem_id,
|
|
45
|
-
elem_classes: gradio.shared.elem_classes,
|
|
46
|
-
visible: gradio.shared.visible,
|
|
47
|
-
value: gradio.props.value,
|
|
54
|
+
function handle_input(): void {
|
|
55
|
+
gradio.dispatch("input");
|
|
56
|
+
}
|
|
48
57
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
show_label: gradio.shared.show_label,
|
|
53
|
-
wrap: gradio.props.wrap,
|
|
54
|
-
datatype: gradio.props.datatype,
|
|
55
|
-
scale: gradio.shared.scale,
|
|
56
|
-
min_width: gradio.shared.min_width,
|
|
57
|
-
root: gradio.shared.root,
|
|
58
|
-
line_breaks: gradio.props.line_breaks,
|
|
59
|
-
column_widths: gradio.props.column_widths,
|
|
60
|
-
gradio: compat_gradio,
|
|
61
|
-
latex_delimiters: gradio.props.latex_delimiters,
|
|
62
|
-
max_height: gradio.props.max_height,
|
|
63
|
-
loading_status: gradio.shared.loading_status,
|
|
64
|
-
interactive: gradio.shared.interactive,
|
|
65
|
-
buttons: gradio.props.buttons,
|
|
66
|
-
max_chars: gradio.props.max_chars,
|
|
67
|
-
show_row_numbers: gradio.props.show_row_numbers,
|
|
68
|
-
show_search: gradio.props.show_search,
|
|
69
|
-
pinned_columns: gradio.props.pinned_columns,
|
|
70
|
-
static_columns: gradio.props.static_columns,
|
|
71
|
-
fullscreen: gradio.props.fullscreen,
|
|
72
|
-
show_copy_button:
|
|
73
|
-
gradio.props.buttons && gradio.props.buttons.includes("copy"),
|
|
74
|
-
show_fullscreen_button:
|
|
75
|
-
gradio.props.buttons && gradio.props.buttons.includes("fullscreen")
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
});
|
|
58
|
+
function handle_select(detail: any): void {
|
|
59
|
+
gradio.dispatch("select", detail);
|
|
60
|
+
}
|
|
79
61
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
dispatch(name: keyof DataframeEvents, detail?: any) {
|
|
84
|
-
if (name === "input" && changed) {
|
|
85
|
-
changed = false;
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
gradio.dispatch(name, detail);
|
|
89
|
-
},
|
|
90
|
-
autoscroll: gradio.shared.autoscroll
|
|
91
|
-
};
|
|
92
|
-
$effect(() => {
|
|
93
|
-
if (Component) {
|
|
94
|
-
Component.$set({
|
|
95
|
-
elem_id: gradio.shared.elem_id,
|
|
96
|
-
elem_classes: gradio.shared.elem_classes,
|
|
97
|
-
visible: gradio.shared.visible,
|
|
98
|
-
value: gradio.props.value,
|
|
62
|
+
function handle_edit(detail: any): void {
|
|
63
|
+
gradio.dispatch("edit", detail);
|
|
64
|
+
}
|
|
99
65
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
root: gradio.shared.root,
|
|
109
|
-
line_breaks: gradio.props.line_breaks,
|
|
110
|
-
column_widths: gradio.props.column_widths,
|
|
111
|
-
gradio: compat_gradio,
|
|
112
|
-
latex_delimiters: gradio.props.latex_delimiters,
|
|
113
|
-
max_height: gradio.props.max_height,
|
|
114
|
-
loading_status: gradio.shared.loading_status,
|
|
115
|
-
interactive: gradio.shared.interactive,
|
|
116
|
-
buttons: gradio.props.buttons,
|
|
117
|
-
max_chars: gradio.props.max_chars,
|
|
118
|
-
show_row_numbers: gradio.props.show_row_numbers,
|
|
119
|
-
show_search: gradio.props.show_search,
|
|
120
|
-
pinned_columns: gradio.props.pinned_columns,
|
|
121
|
-
static_columns: gradio.props.static_columns,
|
|
122
|
-
fullscreen: gradio.props.fullscreen
|
|
123
|
-
});
|
|
66
|
+
$effect(() => {
|
|
67
|
+
const v = gradio.props.value;
|
|
68
|
+
if (v) {
|
|
69
|
+
const serialized = JSON.stringify(v);
|
|
70
|
+
if (serialized !== old_value) {
|
|
71
|
+
old_value = serialized;
|
|
72
|
+
gradio.dispatch("change", v);
|
|
73
|
+
}
|
|
124
74
|
}
|
|
125
75
|
});
|
|
126
76
|
</script>
|
|
127
77
|
|
|
128
|
-
<
|
|
78
|
+
<Block
|
|
79
|
+
visible={gradio.shared.visible}
|
|
80
|
+
elem_id={gradio.shared.elem_id}
|
|
81
|
+
elem_classes={gradio.shared.elem_classes}
|
|
82
|
+
scale={gradio.shared.scale}
|
|
83
|
+
min_width={gradio.shared.min_width}
|
|
84
|
+
padding={false}
|
|
85
|
+
container={false}
|
|
86
|
+
overflow_behavior="visible"
|
|
87
|
+
{fullscreen}
|
|
88
|
+
>
|
|
89
|
+
<StatusTracker
|
|
90
|
+
autoscroll={gradio.shared.autoscroll}
|
|
91
|
+
i18n={gradio.i18n}
|
|
92
|
+
{...gradio.shared.loading_status}
|
|
93
|
+
/>
|
|
94
|
+
<Table
|
|
95
|
+
headers={gradio.props.value?.headers ?? []}
|
|
96
|
+
values={gradio.props.value?.data ?? []}
|
|
97
|
+
display_value={gradio.props.value?.metadata?.display_value ?? null}
|
|
98
|
+
styling={gradio.props.value?.metadata?.styling ?? null}
|
|
99
|
+
col_count={gradio.props.col_count}
|
|
100
|
+
row_count={gradio.props.row_count}
|
|
101
|
+
label={gradio.shared.label}
|
|
102
|
+
show_label={gradio.shared.show_label}
|
|
103
|
+
wrap={gradio.props.wrap}
|
|
104
|
+
datatype={aligned_datatype}
|
|
105
|
+
latex_delimiters={gradio.props.latex_delimiters}
|
|
106
|
+
max_height={gradio.props.max_height}
|
|
107
|
+
editable={gradio.shared.interactive ?? true}
|
|
108
|
+
line_breaks={gradio.props.line_breaks}
|
|
109
|
+
column_widths={gradio.props.column_widths ?? []}
|
|
110
|
+
root={gradio.shared.root}
|
|
111
|
+
i18n={gradio.i18n}
|
|
112
|
+
upload={gradio.shared.client?.upload}
|
|
113
|
+
stream_handler={gradio.shared.client?.stream}
|
|
114
|
+
buttons={gradio.props.buttons}
|
|
115
|
+
max_chars={gradio.props.max_chars}
|
|
116
|
+
show_row_numbers={gradio.props.show_row_numbers}
|
|
117
|
+
show_search={gradio.props.show_search}
|
|
118
|
+
pinned_columns={gradio.props.pinned_columns}
|
|
119
|
+
static_columns={gradio.props.static_columns ?? []}
|
|
120
|
+
{fullscreen}
|
|
121
|
+
onfullscreen={() => {
|
|
122
|
+
fullscreen = !fullscreen;
|
|
123
|
+
}}
|
|
124
|
+
onchange={handle_change}
|
|
125
|
+
oninput={handle_input}
|
|
126
|
+
onselect={handle_select}
|
|
127
|
+
onedit={handle_edit}
|
|
128
|
+
/>
|
|
129
|
+
</Block>
|
package/dist/Index.svelte.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export { default as BaseDataFrame } from "./shared/Table.svelte";
|
|
2
2
|
export { default as BaseExample } from "./Example.svelte";
|
|
3
|
-
import "@gradio/dataframe-interim/css";
|
|
4
3
|
declare const Index: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
5
4
|
type Index = ReturnType<typeof Index>;
|
|
6
5
|
export default Index;
|
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { BaseCheckbox } from "@gradio/checkbox";
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
let {
|
|
5
|
+
value = $bindable(false),
|
|
6
|
+
editable = true,
|
|
7
|
+
on_change
|
|
8
|
+
}: {
|
|
9
|
+
value?: boolean;
|
|
10
|
+
editable?: boolean;
|
|
11
|
+
on_change: (value: boolean) => void;
|
|
12
|
+
} = $props();
|
|
7
13
|
|
|
8
|
-
function handle_change(
|
|
14
|
+
function handle_change(val: boolean): void {
|
|
9
15
|
if (editable) {
|
|
10
|
-
on_change(
|
|
16
|
+
on_change(val);
|
|
11
17
|
}
|
|
12
18
|
}
|
|
13
19
|
</script>
|
|
@@ -17,7 +23,7 @@
|
|
|
17
23
|
bind:value
|
|
18
24
|
label=""
|
|
19
25
|
interactive={editable}
|
|
20
|
-
|
|
26
|
+
on_change={handle_change}
|
|
21
27
|
/>
|
|
22
28
|
</div>
|
|
23
29
|
|
|
@@ -1,22 +1,8 @@
|
|
|
1
|
-
|
|
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;
|
|
11
|
-
};
|
|
12
|
-
z_$$bindings?: Bindings;
|
|
13
|
-
}
|
|
14
|
-
declare const BooleanCell: $$__sveltets_2_IsomorphicComponent<{
|
|
1
|
+
type $$ComponentProps = {
|
|
15
2
|
value?: boolean;
|
|
16
3
|
editable?: boolean;
|
|
17
4
|
on_change: (value: boolean) => void;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
type BooleanCell = InstanceType<typeof BooleanCell>;
|
|
5
|
+
};
|
|
6
|
+
declare const BooleanCell: import("svelte").Component<$$ComponentProps, {}, "value">;
|
|
7
|
+
type BooleanCell = ReturnType<typeof BooleanCell>;
|
|
22
8
|
export default BooleanCell;
|