@gradio/dataframe 0.11.4 → 0.12.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @gradio/dataframe
2
2
 
3
+ ## 0.12.0
4
+
5
+ ### Features
6
+
7
+ - [#9756](https://github.com/gradio-app/gradio/pull/9756) [`92f337c`](https://github.com/gradio-app/gradio/commit/92f337cc85d545060ea343f1cee85c22b85f6444) - Fix website build issue. Thanks @aliabd!
8
+
9
+ ### Fixes
10
+
11
+ - [#9654](https://github.com/gradio-app/gradio/pull/9654) [`cd7dab7`](https://github.com/gradio-app/gradio/commit/cd7dab7ba5c81983f133dfa9e90ac6f92ac4fa1f) - Improve select event behaviour in gr.Dataframe. Thanks @hannahblair!
12
+
13
+ ### Dependency updates
14
+
15
+ - @gradio/button@0.3.4
16
+ - @gradio/statustracker@0.9.2
17
+ - @gradio/atoms@0.10.0
18
+ - @gradio/markdown-code@0.2.0
19
+ - @gradio/upload@0.13.4
20
+
3
21
  ## 0.11.4
4
22
 
5
23
  ### Dependency updates
@@ -1,5 +1,5 @@
1
1
  <script>import { createEventDispatcher } from "svelte";
2
- import { MarkdownCode } from "@gradio/markdown";
2
+ import { MarkdownCode } from "@gradio/markdown-code";
3
3
  export let edit;
4
4
  export let value = "";
5
5
  export let display_value = null;
@@ -31,8 +31,9 @@ let t_rect;
31
31
  const dispatch = createEventDispatcher();
32
32
  let editing = false;
33
33
  const get_data_at = (row, col) => data?.[row]?.[col]?.value;
34
+ let last_selected = null;
34
35
  $: {
35
- if (selected !== false) {
36
+ if (selected !== false && !dequal(selected, last_selected)) {
36
37
  const [row, col] = selected;
37
38
  if (!isNaN(row) && !isNaN(col) && data[row]) {
38
39
  dispatch("select", {
@@ -40,6 +41,7 @@ $: {
40
41
  value: get_data_at(row, col),
41
42
  row_value: data[row].map((d) => d.value)
42
43
  });
44
+ last_selected = selected;
43
45
  }
44
46
  }
45
47
  }
@@ -262,9 +264,11 @@ async function handle_cell_click(i, j) {
262
264
  header_edit = false;
263
265
  selected_header = false;
264
266
  editing = false;
265
- selected = [i, j];
266
- await tick();
267
- parent.focus();
267
+ if (!dequal(selected, [i, j])) {
268
+ selected = [i, j];
269
+ await tick();
270
+ parent.focus();
271
+ }
268
272
  }
269
273
  let sort_direction;
270
274
  let sort_by;
@@ -362,7 +366,7 @@ function handle_click_outside(event) {
362
366
  editing = false;
363
367
  header_edit = false;
364
368
  selected_header = false;
365
- selected = false;
369
+ reset_selection();
366
370
  active_cell = null;
367
371
  active_cell_menu = null;
368
372
  active_header_menu = null;
@@ -569,6 +573,10 @@ function toggle_header_menu(event, col) {
569
573
  }
570
574
  }
571
575
  }
576
+ function reset_selection() {
577
+ selected = false;
578
+ last_selected = null;
579
+ }
572
580
  </script>
573
581
 
574
582
  <svelte:window
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gradio/dataframe",
3
- "version": "0.11.4",
3
+ "version": "0.12.0",
4
4
  "description": "Gradio UI packages",
5
5
  "type": "module",
6
6
  "author": "",
@@ -17,13 +17,13 @@
17
17
  "dompurify": "^3.0.3",
18
18
  "katex": "^0.16.7",
19
19
  "marked": "^12.0.0",
20
- "@gradio/atoms": "^0.9.2",
20
+ "@gradio/atoms": "^0.10.0",
21
+ "@gradio/button": "^0.3.4",
21
22
  "@gradio/client": "^1.7.0",
22
- "@gradio/button": "^0.3.3",
23
- "@gradio/statustracker": "^0.9.1",
24
- "@gradio/markdown": "^0.10.3",
25
- "@gradio/upload": "^0.13.3",
26
- "@gradio/utils": "^0.7.0"
23
+ "@gradio/markdown-code": "^0.2.0",
24
+ "@gradio/statustracker": "^0.9.2",
25
+ "@gradio/utils": "^0.7.0",
26
+ "@gradio/upload": "^0.13.4"
27
27
  },
28
28
  "exports": {
29
29
  ".": {
@@ -42,7 +42,7 @@
42
42
  "svelte": "^4.0.0"
43
43
  },
44
44
  "devDependencies": {
45
- "@gradio/preview": "^0.12.0"
45
+ "@gradio/preview": "^0.12.1"
46
46
  },
47
47
  "repository": {
48
48
  "type": "git",
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { createEventDispatcher } from "svelte";
3
- import { MarkdownCode } from "@gradio/markdown";
3
+ import { MarkdownCode } from "@gradio/markdown-code";
4
4
 
5
5
  export let edit: boolean;
6
6
  export let value: string | number = "";
@@ -56,8 +56,10 @@
56
56
  const get_data_at = (row: number, col: number): string | number =>
57
57
  data?.[row]?.[col]?.value;
58
58
 
59
+ let last_selected: [number, number] | null = null;
60
+
59
61
  $: {
60
- if (selected !== false) {
62
+ if (selected !== false && !dequal(selected, last_selected)) {
61
63
  const [row, col] = selected;
62
64
  if (!isNaN(row) && !isNaN(col) && data[row]) {
63
65
  dispatch("select", {
@@ -65,6 +67,7 @@
65
67
  value: get_data_at(row, col),
66
68
  row_value: data[row].map((d) => d.value)
67
69
  });
70
+ last_selected = selected;
68
71
  }
69
72
  }
70
73
  }
@@ -353,9 +356,11 @@
353
356
  header_edit = false;
354
357
  selected_header = false;
355
358
  editing = false;
356
- selected = [i, j];
357
- await tick();
358
- parent.focus();
359
+ if (!dequal(selected, [i, j])) {
360
+ selected = [i, j];
361
+ await tick();
362
+ parent.focus();
363
+ }
359
364
  }
360
365
 
361
366
  type SortDirection = "asc" | "des";
@@ -478,7 +483,7 @@
478
483
  editing = false;
479
484
  header_edit = false;
480
485
  selected_header = false;
481
- selected = false;
486
+ reset_selection();
482
487
  active_cell = null;
483
488
  active_cell_menu = null;
484
489
  active_header_menu = null;
@@ -760,6 +765,11 @@
760
765
  }
761
766
  }
762
767
  }
768
+
769
+ function reset_selection(): void {
770
+ selected = false;
771
+ last_selected = null;
772
+ }
763
773
  </script>
764
774
 
765
775
  <svelte:window