@gradio/dataframe 0.20.2-dev.0 → 0.21.0

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.
Files changed (57) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/Example.svelte +17 -13
  3. package/Index.svelte +114 -108
  4. package/dist/Example.svelte +26 -20
  5. package/dist/Example.svelte.d.ts +21 -19
  6. package/dist/Index.svelte +121 -97
  7. package/dist/Index.svelte.d.ts +4 -164
  8. package/dist/shared/BooleanCell.svelte +12 -9
  9. package/dist/shared/BooleanCell.svelte.d.ts +20 -18
  10. package/dist/shared/CellMenu.svelte +82 -64
  11. package/dist/shared/CellMenu.svelte.d.ts +39 -37
  12. package/dist/shared/CellMenuButton.svelte +2 -1
  13. package/dist/shared/CellMenuButton.svelte.d.ts +18 -16
  14. package/dist/shared/CellMenuIcons.svelte +2 -1
  15. package/dist/shared/CellMenuIcons.svelte.d.ts +18 -16
  16. package/dist/shared/EditableCell.svelte +97 -56
  17. package/dist/shared/EditableCell.svelte.d.ts +50 -48
  18. package/dist/shared/EmptyRowButton.svelte +2 -1
  19. package/dist/shared/EmptyRowButton.svelte.d.ts +18 -16
  20. package/dist/shared/Example.svelte +2 -1
  21. package/dist/shared/Example.svelte.d.ts +18 -16
  22. package/dist/shared/FilterMenu.svelte +53 -39
  23. package/dist/shared/FilterMenu.svelte.d.ts +20 -18
  24. package/dist/shared/RowNumber.svelte +3 -2
  25. package/dist/shared/RowNumber.svelte.d.ts +19 -17
  26. package/dist/shared/Table.svelte +821 -620
  27. package/dist/shared/Table.svelte.d.ts +59 -56
  28. package/dist/shared/TableCell.svelte +95 -50
  29. package/dist/shared/TableCell.svelte.d.ts +61 -59
  30. package/dist/shared/TableHeader.svelte +86 -58
  31. package/dist/shared/TableHeader.svelte.d.ts +55 -53
  32. package/dist/shared/Toolbar.svelte +49 -39
  33. package/dist/shared/Toolbar.svelte.d.ts +27 -25
  34. package/dist/shared/VirtualTable.svelte +207 -154
  35. package/dist/shared/VirtualTable.svelte.d.ts +40 -37
  36. package/dist/shared/icons/FilterIcon.svelte +2 -1
  37. package/dist/shared/icons/FilterIcon.svelte.d.ts +16 -14
  38. package/dist/shared/icons/Padlock.svelte.d.ts +22 -21
  39. package/dist/shared/icons/SelectionButtons.svelte +15 -5
  40. package/dist/shared/icons/SelectionButtons.svelte.d.ts +20 -18
  41. package/dist/shared/icons/SortArrowDown.svelte +2 -1
  42. package/dist/shared/icons/SortArrowDown.svelte.d.ts +18 -16
  43. package/dist/shared/icons/SortArrowUp.svelte +2 -1
  44. package/dist/shared/icons/SortArrowUp.svelte.d.ts +18 -16
  45. package/dist/shared/icons/SortButtonDown.svelte.d.ts +22 -21
  46. package/dist/shared/icons/SortButtonUp.svelte.d.ts +22 -21
  47. package/dist/shared/icons/SortIcon.svelte +12 -8
  48. package/dist/shared/icons/SortIcon.svelte.d.ts +22 -20
  49. package/dist/shared/utils/data_processing.d.ts +1 -1
  50. package/dist/standalone/Index.svelte +103 -74
  51. package/dist/standalone/Index.svelte.d.ts +41 -39
  52. package/dist/standalone/stubs/Upload.svelte +5 -4
  53. package/dist/standalone/stubs/Upload.svelte.d.ts +35 -25
  54. package/package.json +16 -15
  55. package/shared/Table.svelte +4 -4
  56. package/shared/VirtualTable.svelte +1 -1
  57. package/standalone/Index.svelte +16 -15
package/CHANGELOG.md CHANGED
@@ -1,4 +1,70 @@
1
1
  # @gradio/dataframe
2
+ ## 0.21.0
3
+
4
+ ### Features
5
+
6
+ - [#11908](https://github.com/gradio-app/gradio/pull/11908) [`029034f`](https://github.com/gradio-app/gradio/commit/029034f7853ea018d110efe9b7e2ef7d1407091c) - Fix issue with boolean columns in dataframe
7
+ - [#11908](https://github.com/gradio-app/gradio/pull/11908) [`029034f`](https://github.com/gradio-app/gradio/commit/029034f7853ea018d110efe9b7e2ef7d1407091c) - Fix various event issues
8
+ - [#11908](https://github.com/gradio-app/gradio/pull/11908) [`029034f`](https://github.com/gradio-app/gradio/commit/029034f7853ea018d110efe9b7e2ef7d1407091c) - S5 df take3
9
+ - [#12438](https://github.com/gradio-app/gradio/pull/12438) [`25ffc03`](https://github.com/gradio-app/gradio/commit/25ffc0398f8feb43d817c02b2ab970c16de6d797) - Svelte5 migration and bugfix
10
+
11
+ ### Dependencies
12
+
13
+ - @gradio/atoms@0.19.0
14
+ - @gradio/button@0.5.14
15
+ - @gradio/checkbox@0.5.0
16
+ - @gradio/client@2.0.0
17
+ - @gradio/icons@0.15.0
18
+ - @gradio/markdown-code@0.6.0
19
+ - @gradio/statustracker@0.12.0
20
+ - @gradio/upload@0.17.2
21
+ - @gradio/utils@0.10.3
22
+ - @gradio/dataframe-interim@0.21.0
23
+
24
+ ## 0.21.0-dev.3
25
+
26
+ ### Dependency updates
27
+
28
+ - @gradio/markdown-code@0.5.2
29
+ - @gradio/atoms@0.19.0-dev.1
30
+ - @gradio/client@2.0.0-dev.2
31
+ - @gradio/statustracker@0.12.0-dev.1
32
+ - @gradio/button@0.5.14-dev.2
33
+ - @gradio/upload@0.17.2-dev.2
34
+ - @gradio/dataframe-interim@0.21.0-dev.3
35
+ - @gradio/checkbox@0.5.0-dev.1
36
+
37
+ ## 0.21.0-dev.2
38
+
39
+ ### Features
40
+
41
+ - [#12357](https://github.com/gradio-app/gradio/pull/12357) [`c9cf634`](https://github.com/gradio-app/gradio/commit/c9cf634a9cd34b4adadde1a6a98d60faf732639a) - Fix various event issues. Thanks @pngwn!
42
+
43
+ ### Dependency updates
44
+
45
+ - @gradio/dataframe-interim@0.21.0-dev.2
46
+
47
+ ## 0.21.0-dev.1
48
+
49
+ ### Features
50
+
51
+ - [#12110](https://github.com/gradio-app/gradio/pull/12110) [`e80fc6f`](https://github.com/gradio-app/gradio/commit/e80fc6f9eba1b895680b19803bbd15e7e303d969) - Fix issue with boolean columns in dataframe. Thanks @abidlabs!
52
+
53
+ ### Dependency updates
54
+
55
+ - @gradio/atoms@0.18.2-dev.0
56
+ - @gradio/upload@0.17.2-dev.1
57
+ - @gradio/utils@0.10.3-dev.0
58
+ - @gradio/button@0.5.14-dev.1
59
+ - @gradio/statustracker@0.12.0-dev.0
60
+ - @gradio/icons@0.15.0-dev.0
61
+ - @gradio/checkbox@0.5.0-dev.0
62
+
63
+ ## 0.20.2-dev.0
64
+
65
+ ### Dependency updates
66
+
67
+ - @gradio/client@2.0.0-dev.1
2
68
 
3
69
  ## 0.20.2-dev.0
4
70
 
package/Example.svelte CHANGED
@@ -23,22 +23,26 @@
23
23
  {value}
24
24
  {:else if is_empty}
25
25
  <table class="">
26
- <tr>
27
- <td>Empty</td>
28
- </tr>
26
+ <tbody>
27
+ <tr>
28
+ <td>Empty</td>
29
+ </tr>
30
+ </tbody>
29
31
  </table>
30
32
  {:else}
31
33
  <table class="">
32
- {#each value.slice(0, 3) as row, i}
33
- <tr>
34
- {#each row.slice(0, 3) as cell, j}
35
- <td>{cell}</td>
36
- {/each}
37
- {#if row.length > 3}
38
- <td>…</td>
39
- {/if}
40
- </tr>
41
- {/each}
34
+ <tbody>
35
+ {#each value.slice(0, 3) as row, i}
36
+ <tr>
37
+ {#each row.slice(0, 3) as cell, j}
38
+ <td>{cell}</td>
39
+ {/each}
40
+ {#if row.length > 3}
41
+ <td>…</td>
42
+ {/if}
43
+ </tr>
44
+ {/each}
45
+ </tbody>
42
46
  </table>
43
47
  {#if value.length > 3}
44
48
  <div
package/Index.svelte CHANGED
@@ -6,116 +6,122 @@
6
6
  </script>
7
7
 
8
8
  <script lang="ts">
9
- import type { Gradio, SelectData } from "@gradio/utils";
10
- import { Block } from "@gradio/atoms";
11
- import Table from "./shared/Table.svelte";
12
- import { StatusTracker } from "@gradio/statustracker";
13
- import type { LoadingStatus } from "@gradio/statustracker";
14
- import type { Datatype, DataframeValue } from "./shared/utils/utils";
15
- import Image from "@gradio/image";
9
+ import type { SharedProps } from "@gradio/utils";
10
+ import { Gradio } from "@gradio/utils";
16
11
 
17
- export let elem_id = "";
18
- export let elem_classes: string[] = [];
19
- export let visible: boolean | "hidden" = true;
20
- export let value: DataframeValue = {
21
- data: [["", "", ""]],
22
- headers: ["1", "2", "3"],
23
- metadata: null
12
+ import type { DataframeProps, DataframeEvents } from "./types";
13
+ import { dequal } from "dequal";
14
+ import { onMount } from "svelte";
15
+ import DF from "@gradio/dataframe-interim";
16
+ import "@gradio/dataframe-interim/css";
17
+
18
+ let prev_data: any = null;
19
+
20
+ let changed = false;
21
+
22
+ class DataframeGradio extends Gradio<DataframeEvents, DataframeProps> {
23
+ async set_data(data: Partial<DataframeProps & SharedProps>): Promise<void> {
24
+ console.log("DataframeGradio set_data called", data);
25
+ if (data.value) {
26
+ changed = true;
27
+ }
28
+
29
+ super.set_data(data);
30
+ if (data.value && dequal(data.value, JSON.parse(prev_data)) === false) {
31
+ // this.dispatch("change");
32
+ prev_data = JSON.stringify(data.value);
33
+ }
34
+ }
35
+ }
36
+
37
+ let props = $props();
38
+
39
+ let gradio = new DataframeGradio(props);
40
+ let el: HTMLDivElement;
41
+ let Component: typeof DF | null = null;
42
+ onMount(() => {
43
+ Component = new DF({
44
+ target: el,
45
+ props: {
46
+ elem_id: gradio.shared.elem_id,
47
+ elem_classes: gradio.shared.elem_classes,
48
+ visible: gradio.shared.visible,
49
+ value: gradio.props.value,
50
+
51
+ col_count: gradio.props.col_count,
52
+ row_count: gradio.props.row_count,
53
+ label: gradio.shared.label,
54
+ show_label: gradio.shared.show_label,
55
+ wrap: gradio.props.wrap,
56
+ datatype: gradio.props.datatype,
57
+ scale: gradio.shared.scale,
58
+ min_width: gradio.shared.min_width,
59
+ root: gradio.shared.root,
60
+ line_breaks: gradio.props.line_breaks,
61
+ column_widths: gradio.props.column_widths,
62
+ gradio: compat_gradio,
63
+ latex_delimiters: gradio.props.latex_delimiters,
64
+ max_height: gradio.props.max_height,
65
+ loading_status: gradio.shared.loading_status,
66
+ interactive: gradio.shared.interactive,
67
+ buttons: gradio.props.buttons,
68
+ max_chars: gradio.props.max_chars,
69
+ show_row_numbers: gradio.props.show_row_numbers,
70
+ show_search: gradio.props.show_search,
71
+ pinned_columns: gradio.props.pinned_columns,
72
+ static_columns: gradio.props.static_columns,
73
+ fullscreen: gradio.props.fullscreen
74
+ }
75
+ });
76
+ });
77
+
78
+ const compat_gradio = {
79
+ i18n: gradio.i18n,
80
+ client: gradio.shared.client,
81
+ dispatch(name: keyof DataframeEvents, detail?: any) {
82
+ if (name === "input" && changed) {
83
+ console.log("Skipping duplicate input event");
84
+ changed = false;
85
+ return;
86
+ }
87
+ gradio.dispatch(name, detail);
88
+ },
89
+ autoscroll: gradio.shared.autoscroll
24
90
  };
25
- export let value_is_output = false;
26
- export let col_count: [number, "fixed" | "dynamic"];
27
- export let row_count: [number, "fixed" | "dynamic"];
28
- export let label: string | null = null;
29
- export let show_label = true;
30
- export let wrap: boolean;
31
- export let datatype: Datatype | Datatype[];
32
- export let scale: number | null = null;
33
- export let min_width: number | undefined = undefined;
34
- export let root: string;
91
+ $effect(() => {
92
+ if (Component) {
93
+ Component.$set({
94
+ elem_id: gradio.shared.elem_id,
95
+ elem_classes: gradio.shared.elem_classes,
96
+ visible: gradio.shared.visible,
97
+ value: gradio.props.value,
35
98
 
36
- export let line_breaks = true;
37
- export let column_widths: string[] = [];
38
- export let gradio: Gradio<{
39
- change: never;
40
- select: SelectData;
41
- input: never;
42
- clear_status: LoadingStatus;
43
- search: string | null;
44
- edit: SelectData;
45
- }>;
46
- export let latex_delimiters: {
47
- left: string;
48
- right: string;
49
- display: boolean;
50
- }[];
51
- export let max_height: number | undefined = undefined;
52
- export let loading_status: LoadingStatus;
53
- export let interactive: boolean;
54
- export let buttons: string[] | null = null;
55
- export let max_chars: number | undefined = undefined;
56
- export let show_row_numbers = false;
57
- export let show_search: "none" | "search" | "filter" = "none";
58
- export let pinned_columns = 0;
59
- export let static_columns: (string | number)[] = [];
60
- export let fullscreen = false;
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: gradio.props.datatype,
105
+ scale: gradio.shared.scale,
106
+ min_width: gradio.shared.min_width,
107
+ root: gradio.shared.root,
108
+ line_breaks: gradio.props.line_breaks,
109
+ column_widths: gradio.props.column_widths,
110
+ gradio: compat_gradio,
111
+ latex_delimiters: gradio.props.latex_delimiters,
112
+ max_height: gradio.props.max_height,
113
+ loading_status: gradio.shared.loading_status,
114
+ interactive: gradio.shared.interactive,
115
+ buttons: gradio.props.buttons,
116
+ max_chars: gradio.props.max_chars,
117
+ show_row_numbers: gradio.props.show_row_numbers,
118
+ show_search: gradio.props.show_search,
119
+ pinned_columns: gradio.props.pinned_columns,
120
+ static_columns: gradio.props.static_columns,
121
+ fullscreen: gradio.props.fullscreen
122
+ });
123
+ }
124
+ });
61
125
  </script>
62
126
 
63
- <Block
64
- {visible}
65
- padding={false}
66
- {elem_id}
67
- {elem_classes}
68
- container={false}
69
- {scale}
70
- {min_width}
71
- overflow_behavior="visible"
72
- bind:fullscreen
73
- >
74
- <StatusTracker
75
- autoscroll={gradio.autoscroll}
76
- i18n={gradio.i18n}
77
- {...loading_status}
78
- on:clear_status={() => gradio.dispatch("clear_status", loading_status)}
79
- />
80
- <Table
81
- {root}
82
- {label}
83
- {show_label}
84
- {row_count}
85
- {col_count}
86
- values={value.data}
87
- display_value={value.metadata?.display_value}
88
- styling={value.metadata?.styling}
89
- headers={value.headers}
90
- {fullscreen}
91
- on:change={(e) => {
92
- value.data = e.detail.data;
93
- value.headers = e.detail.headers;
94
- gradio.dispatch("change");
95
- }}
96
- on:input={(e) => gradio.dispatch("input")}
97
- on:select={(e) => gradio.dispatch("select", e.detail)}
98
- on:edit={(e) => gradio.dispatch("edit", e.detail)}
99
- on:fullscreen={({ detail }) => {
100
- fullscreen = detail;
101
- }}
102
- {wrap}
103
- {datatype}
104
- {latex_delimiters}
105
- editable={interactive}
106
- {max_height}
107
- i18n={gradio.i18n}
108
- {line_breaks}
109
- {column_widths}
110
- upload={(...args) => gradio.client.upload(...args)}
111
- stream_handler={(...args) => gradio.client.stream(...args)}
112
- bind:value_is_output
113
- {buttons}
114
- {max_chars}
115
- {show_row_numbers}
116
- {show_search}
117
- {pinned_columns}
118
- components={{ image: Image }}
119
- {static_columns}
120
- />
121
- </Block>
127
+ <div bind:this={el} />
@@ -1,10 +1,12 @@
1
- <script>export let value;
2
- export let type;
3
- export let selected = false;
4
- export let index;
5
- let hovered = false;
6
- let loaded = Array.isArray(value);
7
- let is_empty = loaded && (value.length === 0 || value[0].length === 0);
1
+ <script lang="ts">
2
+ export let value: (string | number)[][] | string;
3
+ export let type: "gallery" | "table";
4
+ export let selected = false;
5
+ export let index: number;
6
+
7
+ let hovered = false;
8
+ let loaded = Array.isArray(value);
9
+ let is_empty = loaded && (value.length === 0 || value[0].length === 0);
8
10
  </script>
9
11
 
10
12
  {#if loaded}
@@ -21,22 +23,26 @@ let is_empty = loaded && (value.length === 0 || value[0].length === 0);
21
23
  {value}
22
24
  {:else if is_empty}
23
25
  <table class="">
24
- <tr>
25
- <td>Empty</td>
26
- </tr>
26
+ <tbody>
27
+ <tr>
28
+ <td>Empty</td>
29
+ </tr>
30
+ </tbody>
27
31
  </table>
28
32
  {:else}
29
33
  <table class="">
30
- {#each value.slice(0, 3) as row, i}
31
- <tr>
32
- {#each row.slice(0, 3) as cell, j}
33
- <td>{cell}</td>
34
- {/each}
35
- {#if row.length > 3}
36
- <td>…</td>
37
- {/if}
38
- </tr>
39
- {/each}
34
+ <tbody>
35
+ {#each value.slice(0, 3) as row, i}
36
+ <tr>
37
+ {#each row.slice(0, 3) as cell, j}
38
+ <td>{cell}</td>
39
+ {/each}
40
+ {#if row.length > 3}
41
+ <td>…</td>
42
+ {/if}
43
+ </tr>
44
+ {/each}
45
+ </tbody>
40
46
  </table>
41
47
  {#if value.length > 3}
42
48
  <div
@@ -1,21 +1,23 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- value: (string | number)[][] | string;
5
- type: "gallery" | "table";
6
- selected?: boolean;
7
- index: number;
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
- events: {
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
- export {};
14
+ declare const Example: $$__sveltets_2_IsomorphicComponent<{
15
+ value: (string | number)[][] | string;
16
+ type: "gallery" | "table";
17
+ selected?: boolean;
18
+ index: number;
19
+ }, {
20
+ [evt: string]: CustomEvent<any>;
21
+ }, {}, {}, string>;
22
+ type Example = InstanceType<typeof Example>;
23
+ export default Example;
package/dist/Index.svelte CHANGED
@@ -1,103 +1,127 @@
1
1
  <svelte:options accessors={true} />
2
2
 
3
- <script context="module">export { default as BaseDataFrame } from "./shared/Table.svelte";
4
- export { default as BaseExample } from "./Example.svelte";
3
+ <script context="module" lang="ts">
4
+ export { default as BaseDataFrame } from "./shared/Table.svelte";
5
+ export { default as BaseExample } from "./Example.svelte";
5
6
  </script>
6
7
 
7
- <script>import { Block } from "@gradio/atoms";
8
- import Table from "./shared/Table.svelte";
9
- import { StatusTracker } from "@gradio/statustracker";
10
- import Image from "@gradio/image";
11
- export let elem_id = "";
12
- export let elem_classes = [];
13
- export let visible = true;
14
- export let value = {
15
- data: [["", "", ""]],
16
- headers: ["1", "2", "3"],
17
- metadata: null
18
- };
19
- export let value_is_output = false;
20
- export let col_count;
21
- export let row_count;
22
- export let label = null;
23
- export let show_label = true;
24
- export let wrap;
25
- export let datatype;
26
- export let scale = null;
27
- export let min_width = void 0;
28
- export let root;
29
- export let line_breaks = true;
30
- export let column_widths = [];
31
- export let gradio;
32
- export let latex_delimiters;
33
- export let max_height = void 0;
34
- export let loading_status;
35
- export let interactive;
36
- export let buttons = null;
37
- export let max_chars = void 0;
38
- export let show_row_numbers = false;
39
- export let show_search = "none";
40
- export let pinned_columns = 0;
41
- export let static_columns = [];
42
- export let fullscreen = false;
8
+ <script lang="ts">
9
+ import type { SharedProps } from "@gradio/utils";
10
+ import { Gradio } from "@gradio/utils";
11
+
12
+ import type { DataframeProps, DataframeEvents } from "./types";
13
+ import { dequal } from "dequal";
14
+ import { onMount } from "svelte";
15
+ import DF from "@gradio/dataframe-interim";
16
+ import "@gradio/dataframe-interim/css";
17
+
18
+ let prev_data: any = null;
19
+
20
+ let changed = false;
21
+
22
+ class DataframeGradio extends Gradio<DataframeEvents, DataframeProps> {
23
+ async set_data(data: Partial<DataframeProps & SharedProps>): Promise<void> {
24
+ console.log("DataframeGradio set_data called", data);
25
+ if (data.value) {
26
+ changed = true;
27
+ }
28
+
29
+ super.set_data(data);
30
+ if (data.value && dequal(data.value, JSON.parse(prev_data)) === false) {
31
+ // this.dispatch("change");
32
+ prev_data = JSON.stringify(data.value);
33
+ }
34
+ }
35
+ }
36
+
37
+ let props = $props();
38
+
39
+ let gradio = new DataframeGradio(props);
40
+ let el: HTMLDivElement;
41
+ let Component: typeof DF | null = null;
42
+ onMount(() => {
43
+ Component = new DF({
44
+ target: el,
45
+ props: {
46
+ elem_id: gradio.shared.elem_id,
47
+ elem_classes: gradio.shared.elem_classes,
48
+ visible: gradio.shared.visible,
49
+ value: gradio.props.value,
50
+
51
+ col_count: gradio.props.col_count,
52
+ row_count: gradio.props.row_count,
53
+ label: gradio.shared.label,
54
+ show_label: gradio.shared.show_label,
55
+ wrap: gradio.props.wrap,
56
+ datatype: gradio.props.datatype,
57
+ scale: gradio.shared.scale,
58
+ min_width: gradio.shared.min_width,
59
+ root: gradio.shared.root,
60
+ line_breaks: gradio.props.line_breaks,
61
+ column_widths: gradio.props.column_widths,
62
+ gradio: compat_gradio,
63
+ latex_delimiters: gradio.props.latex_delimiters,
64
+ max_height: gradio.props.max_height,
65
+ loading_status: gradio.shared.loading_status,
66
+ interactive: gradio.shared.interactive,
67
+ buttons: gradio.props.buttons,
68
+ max_chars: gradio.props.max_chars,
69
+ show_row_numbers: gradio.props.show_row_numbers,
70
+ show_search: gradio.props.show_search,
71
+ pinned_columns: gradio.props.pinned_columns,
72
+ static_columns: gradio.props.static_columns,
73
+ fullscreen: gradio.props.fullscreen
74
+ }
75
+ });
76
+ });
77
+
78
+ const compat_gradio = {
79
+ i18n: gradio.i18n,
80
+ client: gradio.shared.client,
81
+ dispatch(name: keyof DataframeEvents, detail?: any) {
82
+ if (name === "input" && changed) {
83
+ console.log("Skipping duplicate input event");
84
+ changed = false;
85
+ return;
86
+ }
87
+ gradio.dispatch(name, detail);
88
+ },
89
+ autoscroll: gradio.shared.autoscroll
90
+ };
91
+ $effect(() => {
92
+ if (Component) {
93
+ Component.$set({
94
+ elem_id: gradio.shared.elem_id,
95
+ elem_classes: gradio.shared.elem_classes,
96
+ visible: gradio.shared.visible,
97
+ value: gradio.props.value,
98
+
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: gradio.props.datatype,
105
+ scale: gradio.shared.scale,
106
+ min_width: gradio.shared.min_width,
107
+ root: gradio.shared.root,
108
+ line_breaks: gradio.props.line_breaks,
109
+ column_widths: gradio.props.column_widths,
110
+ gradio: compat_gradio,
111
+ latex_delimiters: gradio.props.latex_delimiters,
112
+ max_height: gradio.props.max_height,
113
+ loading_status: gradio.shared.loading_status,
114
+ interactive: gradio.shared.interactive,
115
+ buttons: gradio.props.buttons,
116
+ max_chars: gradio.props.max_chars,
117
+ show_row_numbers: gradio.props.show_row_numbers,
118
+ show_search: gradio.props.show_search,
119
+ pinned_columns: gradio.props.pinned_columns,
120
+ static_columns: gradio.props.static_columns,
121
+ fullscreen: gradio.props.fullscreen
122
+ });
123
+ }
124
+ });
43
125
  </script>
44
126
 
45
- <Block
46
- {visible}
47
- padding={false}
48
- {elem_id}
49
- {elem_classes}
50
- container={false}
51
- {scale}
52
- {min_width}
53
- overflow_behavior="visible"
54
- bind:fullscreen
55
- >
56
- <StatusTracker
57
- autoscroll={gradio.autoscroll}
58
- i18n={gradio.i18n}
59
- {...loading_status}
60
- on:clear_status={() => gradio.dispatch("clear_status", loading_status)}
61
- />
62
- <Table
63
- {root}
64
- {label}
65
- {show_label}
66
- {row_count}
67
- {col_count}
68
- values={value.data}
69
- display_value={value.metadata?.display_value}
70
- styling={value.metadata?.styling}
71
- headers={value.headers}
72
- {fullscreen}
73
- on:change={(e) => {
74
- value.data = e.detail.data;
75
- value.headers = e.detail.headers;
76
- gradio.dispatch("change");
77
- }}
78
- on:input={(e) => gradio.dispatch("input")}
79
- on:select={(e) => gradio.dispatch("select", e.detail)}
80
- on:edit={(e) => gradio.dispatch("edit", e.detail)}
81
- on:fullscreen={({ detail }) => {
82
- fullscreen = detail;
83
- }}
84
- {wrap}
85
- {datatype}
86
- {latex_delimiters}
87
- editable={interactive}
88
- {max_height}
89
- i18n={gradio.i18n}
90
- {line_breaks}
91
- {column_widths}
92
- upload={(...args) => gradio.client.upload(...args)}
93
- stream_handler={(...args) => gradio.client.stream(...args)}
94
- bind:value_is_output
95
- {buttons}
96
- {max_chars}
97
- {show_row_numbers}
98
- {show_search}
99
- {pinned_columns}
100
- components={{ image: Image }}
101
- {static_columns}
102
- />
103
- </Block>
127
+ <div bind:this={el} />