@gradio/dataframe 0.20.2-dev.0 → 0.21.0-dev.3

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 +45 -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 +15 -14
  55. package/shared/Table.svelte +4 -4
  56. package/shared/VirtualTable.svelte +1 -1
  57. package/standalone/Index.svelte +16 -15
@@ -1,42 +1,52 @@
1
- <script>import { Copy, Check } from "@gradio/icons";
2
- import { FullscreenButton } from "@gradio/atoms";
3
- import { onDestroy } from "svelte";
4
- import { createEventDispatcher } from "svelte";
5
- import { IconButton } from "@gradio/atoms";
6
- export let show_fullscreen_button = false;
7
- export let show_copy_button = false;
8
- export let show_search = "none";
9
- export let fullscreen = false;
10
- export let on_copy;
11
- export let on_commit_filter;
12
- const dispatch = createEventDispatcher();
13
- let copied = false;
14
- let timer;
15
- export let current_search_query = null;
16
- let input_value = "";
17
- function handle_search_input(e) {
18
- const target = e.target;
19
- input_value = target.value;
20
- const new_query = input_value || null;
21
- if (current_search_query !== new_query) {
22
- current_search_query = new_query;
23
- dispatch("search", current_search_query);
24
- }
25
- }
26
- function copy_feedback() {
27
- copied = true;
28
- if (timer) clearTimeout(timer);
29
- timer = setTimeout(() => {
30
- copied = false;
31
- }, 2e3);
32
- }
33
- async function handle_copy() {
34
- await on_copy();
35
- copy_feedback();
36
- }
37
- onDestroy(() => {
38
- if (timer) clearTimeout(timer);
39
- });
1
+ <script lang="ts">
2
+ import { Copy, Check } from "@gradio/icons";
3
+ import { FullscreenButton } from "@gradio/atoms";
4
+ import { onDestroy } from "svelte";
5
+ import { createEventDispatcher } from "svelte";
6
+ import { IconButton } from "@gradio/atoms";
7
+
8
+ export let show_fullscreen_button = false;
9
+ export let show_copy_button = false;
10
+ export let show_search: "none" | "search" | "filter" = "none";
11
+ export let fullscreen = false;
12
+ export let on_copy: () => Promise<void>;
13
+ export let on_commit_filter: () => void;
14
+
15
+ const dispatch = createEventDispatcher<{
16
+ search: string | null;
17
+ }>();
18
+
19
+ let copied = false;
20
+ let timer: ReturnType<typeof setTimeout>;
21
+ export let current_search_query: string | null = null;
22
+ let input_value = "";
23
+
24
+ function handle_search_input(e: Event): void {
25
+ const target = e.target as HTMLTextAreaElement;
26
+ input_value = target.value;
27
+ const new_query = input_value || null;
28
+ if (current_search_query !== new_query) {
29
+ current_search_query = new_query;
30
+ dispatch("search", current_search_query);
31
+ }
32
+ }
33
+
34
+ function copy_feedback(): void {
35
+ copied = true;
36
+ if (timer) clearTimeout(timer);
37
+ timer = setTimeout(() => {
38
+ copied = false;
39
+ }, 2000);
40
+ }
41
+
42
+ async function handle_copy(): Promise<void> {
43
+ await on_copy();
44
+ copy_feedback();
45
+ }
46
+
47
+ onDestroy(() => {
48
+ if (timer) clearTimeout(timer);
49
+ });
40
50
  </script>
41
51
 
42
52
  <div class="toolbar" role="toolbar" aria-label="Table actions">
@@ -1,27 +1,29 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- show_fullscreen_button?: boolean;
5
- show_copy_button?: boolean;
6
- show_search?: "none" | "search" | "filter";
7
- fullscreen?: boolean;
8
- on_copy: () => Promise<void>;
9
- on_commit_filter: () => void;
10
- current_search_query?: string | null;
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;
11
11
  };
12
- events: {
13
- fullscreen: CustomEvent<boolean>;
14
- search: CustomEvent<string | null>;
15
- } & {
16
- [evt: string]: CustomEvent<any>;
17
- };
18
- slots: {};
19
- exports?: {} | undefined;
20
- bindings?: string | undefined;
21
- };
22
- export type ToolbarProps = typeof __propDef.props;
23
- export type ToolbarEvents = typeof __propDef.events;
24
- export type ToolbarSlots = typeof __propDef.slots;
25
- export default class Toolbar extends SvelteComponent<ToolbarProps, ToolbarEvents, ToolbarSlots> {
12
+ z_$$bindings?: Bindings;
26
13
  }
27
- export {};
14
+ declare const Toolbar: $$__sveltets_2_IsomorphicComponent<{
15
+ show_fullscreen_button?: boolean;
16
+ show_copy_button?: boolean;
17
+ show_search?: "none" | "search" | "filter";
18
+ fullscreen?: boolean;
19
+ on_copy: () => Promise<void>;
20
+ on_commit_filter: () => void;
21
+ current_search_query?: string | null;
22
+ }, {
23
+ fullscreen: CustomEvent<boolean>;
24
+ search: CustomEvent<string | null>;
25
+ } & {
26
+ [evt: string]: CustomEvent<any>;
27
+ }, {}, {}, string>;
28
+ type Toolbar = InstanceType<typeof Toolbar>;
29
+ export default Toolbar;
@@ -1,156 +1,209 @@
1
- <script>import { onMount, tick, createEventDispatcher } from "svelte";
2
- export let items = [];
3
- export let max_height;
4
- export let actual_height;
5
- export let table_scrollbar_width;
6
- export let start = 0;
7
- export let end = 20;
8
- export let selected;
9
- export let disable_scroll = false;
10
- export let show_scroll_button = false;
11
- export let viewport;
12
- export let label = null;
13
- const dispatch = createEventDispatcher();
14
- let height = "100%";
15
- let average_height = 30;
16
- let bottom = 0;
17
- let contents;
18
- let head_height = 0;
19
- let foot_height = 0;
20
- let height_map = [];
21
- let mounted;
22
- let rows;
23
- let top = 0;
24
- let viewport_height = 200;
25
- let visible = [];
26
- let viewport_box;
27
- $: viewport_height = viewport_box?.height || 200;
28
- const is_browser = typeof window !== "undefined";
29
- const raf = is_browser ? window.requestAnimationFrame : (cb) => cb();
30
- $: {
31
- if (mounted && viewport_height && viewport.offsetParent) {
32
- sortedItems, raf(refresh_height_map);
33
- }
34
- }
35
- async function refresh_height_map() {
36
- if (!viewport) {
37
- return;
38
- }
39
- if (sortedItems.length < start) {
40
- await scroll_to_index(sortedItems.length - 1, { behavior: "auto" });
41
- }
42
- const scrollTop = Math.max(0, viewport.scrollTop);
43
- show_scroll_button = scrollTop > 100;
44
- table_scrollbar_width = viewport.offsetWidth - viewport.clientWidth;
45
- for (let v = 0; v < rows.length; v += 1) {
46
- height_map[start + v] = rows[v].getBoundingClientRect().height;
47
- }
48
- let i = 0;
49
- let y = head_height;
50
- while (i < sortedItems.length) {
51
- const row_height = height_map[i] || average_height;
52
- if (y + row_height > scrollTop - max_height) {
53
- start = i;
54
- top = y - head_height;
55
- break;
56
- }
57
- y += row_height;
58
- i += 1;
59
- }
60
- let content_height = head_height;
61
- while (i < sortedItems.length) {
62
- const row_height = height_map[i] || average_height;
63
- content_height += row_height;
64
- i += 1;
65
- if (content_height - head_height > 3 * max_height) {
66
- break;
67
- }
68
- }
69
- end = i;
70
- const remaining = sortedItems.length - end;
71
- const scrollbar_height = viewport.offsetHeight - viewport.clientHeight;
72
- if (scrollbar_height > 0) {
73
- content_height += scrollbar_height;
74
- }
75
- let filtered_height_map = height_map.filter((v) => typeof v === "number");
76
- average_height = filtered_height_map.reduce((a, b) => a + b, 0) / filtered_height_map.length || 30;
77
- bottom = remaining * average_height;
78
- if (!isFinite(bottom)) {
79
- bottom = 2e5;
80
- }
81
- height_map.length = sortedItems.length;
82
- while (i < sortedItems.length) {
83
- i += 1;
84
- height_map[i] = average_height;
85
- }
86
- if (max_height && content_height > max_height) {
87
- actual_height = max_height;
88
- } else {
89
- actual_height = content_height;
90
- }
91
- }
92
- $: scroll_and_render(selected);
93
- async function scroll_and_render(n) {
94
- raf(async () => {
95
- if (typeof n !== "number") return;
96
- const direction = typeof n !== "number" ? false : is_in_view(n);
97
- if (direction === true) {
98
- return;
99
- }
100
- if (direction === "back") {
101
- await scroll_to_index(n, { behavior: "instant" });
102
- }
103
- if (direction === "forwards") {
104
- await scroll_to_index(n, { behavior: "instant" }, true);
105
- }
106
- });
107
- }
108
- function is_in_view(n) {
109
- const current = rows && rows[n - start];
110
- if (!current && n < start) {
111
- return "back";
112
- }
113
- if (!current && n >= end - 1) {
114
- return "forwards";
115
- }
116
- const { top: viewport_top } = viewport.getBoundingClientRect();
117
- const { top: top2, bottom: bottom2 } = current.getBoundingClientRect();
118
- if (top2 - viewport_top < 37) {
119
- return "back";
120
- }
121
- if (bottom2 - viewport_top > viewport_height) {
122
- return "forwards";
123
- }
124
- return true;
125
- }
126
- export async function scroll_to_index(index, opts, align_end = false) {
127
- await tick();
128
- const _itemHeight = average_height;
129
- let distance = index * _itemHeight;
130
- if (align_end) {
131
- distance = distance - viewport_height + _itemHeight + head_height;
132
- }
133
- const scrollbar_height = viewport.offsetHeight - viewport.clientHeight;
134
- if (scrollbar_height > 0) {
135
- distance += scrollbar_height;
136
- }
137
- const _opts = {
138
- top: distance,
139
- behavior: "smooth",
140
- ...opts
141
- };
142
- viewport.scrollTo(_opts);
143
- }
144
- $: sortedItems = items;
145
- $: visible = is_browser ? sortedItems.slice(start, end).map((data, i) => {
146
- return { index: i + start, data };
147
- }) : sortedItems.slice(0, max_height / sortedItems.length * average_height + 1).map((data, i) => {
148
- return { index: i + start, data };
149
- });
150
- onMount(() => {
151
- rows = contents.children;
152
- mounted = true;
153
- });
1
+ <script lang="ts">
2
+ import { onMount, tick, createEventDispatcher } from "svelte";
3
+
4
+ export let items: any[][] = [];
5
+
6
+ export let max_height: number;
7
+ export let actual_height: number;
8
+ export let table_scrollbar_width: number;
9
+ export let start = 0;
10
+ export let end = 20;
11
+ export let selected: number | false;
12
+ export let disable_scroll = false;
13
+ export let show_scroll_button = false;
14
+ export let viewport: HTMLTableElement;
15
+ export let label: string | null = null;
16
+
17
+ const dispatch = createEventDispatcher<{
18
+ scroll_top: number;
19
+ }>();
20
+
21
+ let height = "100%";
22
+
23
+ let average_height = 30;
24
+ let bottom = 0;
25
+ let contents: HTMLTableSectionElement;
26
+ let head_height = 0;
27
+ let foot_height = 0;
28
+ let height_map: number[] = [];
29
+ let mounted: boolean;
30
+ let rows: HTMLCollectionOf<HTMLTableRowElement>;
31
+ let top = 0;
32
+ let viewport_height = 200;
33
+ let visible: { index: number; data: any[] }[] = [];
34
+ let viewport_box: DOMRectReadOnly;
35
+
36
+ $: viewport_height = viewport_box?.height || 200;
37
+
38
+ const is_browser = typeof window !== "undefined";
39
+ const raf = is_browser
40
+ ? window.requestAnimationFrame
41
+ : (cb: (...args: any[]) => void) => cb();
42
+
43
+ $: {
44
+ if (mounted && viewport_height && viewport.offsetParent) {
45
+ (sortedItems, raf(refresh_height_map));
46
+ }
47
+ }
48
+
49
+ async function refresh_height_map(): Promise<void> {
50
+ if (!viewport) {
51
+ return;
52
+ }
53
+
54
+ if (sortedItems.length < start) {
55
+ await scroll_to_index(sortedItems.length - 1, { behavior: "auto" });
56
+ }
57
+
58
+ const scrollTop = Math.max(0, viewport.scrollTop);
59
+ show_scroll_button = scrollTop > 100;
60
+ table_scrollbar_width = viewport.offsetWidth - viewport.clientWidth;
61
+
62
+ // acquire height map for currently visible rows
63
+ for (let v = 0; v < rows.length; v += 1) {
64
+ height_map[start + v] = rows[v].getBoundingClientRect().height;
65
+ }
66
+ let i = 0;
67
+ let y = head_height;
68
+ // loop items to find new start
69
+ while (i < sortedItems.length) {
70
+ const row_height = height_map[i] || average_height;
71
+ // keep a page of rows buffered above
72
+ if (y + row_height > scrollTop - max_height) {
73
+ start = i;
74
+ top = y - head_height;
75
+ break;
76
+ }
77
+ y += row_height;
78
+ i += 1;
79
+ }
80
+
81
+ let content_height = head_height;
82
+ while (i < sortedItems.length) {
83
+ const row_height = height_map[i] || average_height;
84
+ content_height += row_height;
85
+ i += 1;
86
+ // keep a page of rows buffered below
87
+ if (content_height - head_height > 3 * max_height) {
88
+ break;
89
+ }
90
+ }
91
+
92
+ end = i;
93
+ const remaining = sortedItems.length - end;
94
+
95
+ const scrollbar_height = viewport.offsetHeight - viewport.clientHeight;
96
+ if (scrollbar_height > 0) {
97
+ content_height += scrollbar_height;
98
+ }
99
+
100
+ let filtered_height_map = height_map.filter((v) => typeof v === "number");
101
+ average_height =
102
+ filtered_height_map.reduce((a, b) => a + b, 0) /
103
+ filtered_height_map.length || 30;
104
+
105
+ bottom = remaining * average_height;
106
+ if (!isFinite(bottom)) {
107
+ bottom = 200000;
108
+ }
109
+ height_map.length = sortedItems.length;
110
+ while (i < sortedItems.length) {
111
+ i += 1;
112
+ height_map[i] = average_height;
113
+ }
114
+ if (max_height && content_height > max_height) {
115
+ actual_height = max_height;
116
+ } else {
117
+ actual_height = content_height;
118
+ }
119
+ }
120
+
121
+ $: scroll_and_render(selected);
122
+
123
+ async function scroll_and_render(n: number | false): Promise<void> {
124
+ raf(async () => {
125
+ if (typeof n !== "number") return;
126
+ const direction = typeof n !== "number" ? false : is_in_view(n);
127
+ if (direction === true) {
128
+ return;
129
+ }
130
+ if (direction === "back") {
131
+ await scroll_to_index(n, { behavior: "instant" });
132
+ }
133
+
134
+ if (direction === "forwards") {
135
+ await scroll_to_index(n, { behavior: "instant" }, true);
136
+ }
137
+ });
138
+ }
139
+
140
+ function is_in_view(n: number): "back" | "forwards" | true {
141
+ const current = rows && rows[n - start];
142
+ if (!current && n < start) {
143
+ return "back";
144
+ }
145
+ if (!current && n >= end - 1) {
146
+ return "forwards";
147
+ }
148
+
149
+ const { top: viewport_top } = viewport.getBoundingClientRect();
150
+ const { top, bottom } = current.getBoundingClientRect();
151
+
152
+ if (top - viewport_top < 37) {
153
+ return "back";
154
+ }
155
+
156
+ if (bottom - viewport_top > viewport_height) {
157
+ return "forwards";
158
+ }
159
+
160
+ return true;
161
+ }
162
+
163
+ export async function scroll_to_index(
164
+ index: number,
165
+ opts: ScrollToOptions,
166
+ align_end = false
167
+ ): Promise<void> {
168
+ await tick();
169
+
170
+ const _itemHeight = average_height;
171
+
172
+ let distance = index * _itemHeight;
173
+ if (align_end) {
174
+ distance = distance - viewport_height + _itemHeight + head_height;
175
+ }
176
+
177
+ const scrollbar_height = viewport.offsetHeight - viewport.clientHeight;
178
+ if (scrollbar_height > 0) {
179
+ distance += scrollbar_height;
180
+ }
181
+
182
+ const _opts = {
183
+ top: distance,
184
+ behavior: "smooth" as ScrollBehavior,
185
+ ...opts
186
+ };
187
+
188
+ viewport.scrollTo(_opts);
189
+ }
190
+
191
+ $: sortedItems = items;
192
+
193
+ $: visible = is_browser
194
+ ? sortedItems.slice(start, end).map((data, i) => {
195
+ return { index: i + start, data };
196
+ })
197
+ : sortedItems
198
+ .slice(0, (max_height / sortedItems.length) * average_height + 1)
199
+ .map((data, i) => {
200
+ return { index: i + start, data };
201
+ });
202
+
203
+ onMount(() => {
204
+ rows = contents.children as HTMLCollectionOf<HTMLTableRowElement>;
205
+ mounted = true;
206
+ });
154
207
  </script>
155
208
 
156
209
  <svelte-virtual-table-viewport>
@@ -187,7 +240,7 @@ onMount(() => {
187
240
  </div>
188
241
  </svelte-virtual-table-viewport>
189
242
 
190
- <style>
243
+ <style type="text/css">
191
244
  table {
192
245
  position: relative;
193
246
  overflow: auto;
@@ -1,39 +1,42 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- items?: any[][];
5
- max_height: number;
6
- actual_height: number;
7
- table_scrollbar_width: number;
8
- start?: number;
9
- end?: number;
10
- selected: number | false;
11
- disable_scroll?: boolean;
12
- show_scroll_button?: boolean;
13
- viewport: HTMLTableElement;
14
- label?: string | null;
15
- scroll_to_index?: (index: number, opts: ScrollToOptions, align_end?: boolean) => Promise<void>;
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;
16
11
  };
17
- events: {
18
- scroll_top: CustomEvent<number>;
19
- } & {
20
- [evt: string]: CustomEvent<any>;
21
- };
22
- slots: {
23
- thead: {};
24
- tbody: {
25
- item: any[];
26
- index: number;
27
- };
28
- tfoot: {};
29
- };
30
- exports?: {} | undefined;
31
- bindings?: string | undefined;
32
- };
33
- export type VirtualTableProps = typeof __propDef.props;
34
- export type VirtualTableEvents = typeof __propDef.events;
35
- export type VirtualTableSlots = typeof __propDef.slots;
36
- export default class VirtualTable extends SvelteComponent<VirtualTableProps, VirtualTableEvents, VirtualTableSlots> {
37
- get scroll_to_index(): (index: number, opts: ScrollToOptions, align_end?: boolean) => Promise<void>;
12
+ z_$$bindings?: Bindings;
38
13
  }
39
- export {};
14
+ declare const VirtualTable: $$__sveltets_2_IsomorphicComponent<{
15
+ items?: any[][];
16
+ max_height: number;
17
+ actual_height: number;
18
+ table_scrollbar_width: number;
19
+ start?: number;
20
+ end?: number;
21
+ selected: number | false;
22
+ disable_scroll?: boolean;
23
+ show_scroll_button?: boolean;
24
+ viewport: HTMLTableElement;
25
+ label?: string | null;
26
+ scroll_to_index?: (index: number, opts: ScrollToOptions, align_end?: boolean) => Promise<void>;
27
+ }, {
28
+ scroll_top: CustomEvent<number>;
29
+ } & {
30
+ [evt: string]: CustomEvent<any>;
31
+ }, {
32
+ thead: {};
33
+ tbody: {
34
+ item: any[];
35
+ index: number;
36
+ };
37
+ tfoot: {};
38
+ }, {
39
+ scroll_to_index: (index: number, opts: ScrollToOptions, align_end?: boolean) => Promise<void>;
40
+ }, string>;
41
+ type VirtualTable = InstanceType<typeof VirtualTable>;
42
+ export default VirtualTable;
@@ -1,4 +1,5 @@
1
- <script></script>
1
+ <script lang="ts">
2
+ </script>
2
3
 
3
4
  <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
4
5
  <path
@@ -1,16 +1,18 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: Record<string, never>;
4
- events: {
5
- [evt: string]: CustomEvent<any>;
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: {
6
+ $$events?: Events;
7
+ $$slots?: Slots;
8
+ }): Exports & {
9
+ $set?: any;
10
+ $on?: any;
6
11
  };
7
- slots: {};
8
- exports?: {} | undefined;
9
- bindings?: string | undefined;
10
- };
11
- export type FilterIconProps = typeof __propDef.props;
12
- export type FilterIconEvents = typeof __propDef.events;
13
- export type FilterIconSlots = typeof __propDef.slots;
14
- export default class FilterIcon extends SvelteComponent<FilterIconProps, FilterIconEvents, FilterIconSlots> {
12
+ z_$$bindings?: Bindings;
15
13
  }
16
- export {};
14
+ declare const FilterIcon: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
+ [evt: string]: CustomEvent<any>;
16
+ }, {}, {}, string>;
17
+ type FilterIcon = InstanceType<typeof FilterIcon>;
18
+ export default FilterIcon;