@@ -3,6 +3,44 @@ import { NotebookCellData, NotebookCellKind } from 'vscode';
33import type { BlockConverter } from './blockConverter' ;
44import type { DeepnoteBlock } from '../deepnoteTypes' ;
55
6+ type DataframeFilter = {
7+ column : string ;
8+ operator :
9+ | 'is-equal'
10+ | 'is-not-equal'
11+ | 'is-one-of'
12+ | 'is-not-one-of'
13+ | 'is-not-null'
14+ | 'is-null'
15+ | 'text-contains'
16+ | 'text-does-not-contain'
17+ | 'greater-than'
18+ | 'greater-than-or-equal'
19+ | 'less-than'
20+ | 'less-than-or-equal'
21+ | 'between'
22+ | 'outside-of'
23+ | 'is-relative-today'
24+ | 'is-after'
25+ | 'is-before'
26+ | 'is-on' ;
27+ comparativeValues : string [ ] ;
28+ } ;
29+
30+ interface FilterMetadata {
31+ /** @deprecated Use advancedFilters instead */
32+ filter ?: unknown ;
33+ advancedFilters ?: DataframeFilter [ ] ;
34+ }
35+
36+ interface VisualizationCellMetadata {
37+ deepnote_variable_name ?: string ;
38+ deepnote_visualization_spec ?: Record < string , unknown > ;
39+ deepnote_config_collapsed ?: boolean ;
40+ deepnote_chart_height ?: number ;
41+ deepnote_chart_filter ?: FilterMetadata ;
42+ }
43+
644/**
745 * Converter for Deepnote visualization blocks (chart blocks).
846 * Displays blocks as editable JSON with variable name, spec, and filters.
@@ -45,9 +83,10 @@ export class VisualizationBlockConverter implements BlockConverter {
4583 }
4684
4785 convertToCell ( block : DeepnoteBlock ) : NotebookCellData {
48- const variableName = ( block . metadata as any ) ?. deepnote_variable_name || 'df' ;
49- const spec = ( block . metadata as any ) ?. deepnote_visualization_spec || { } ;
50- const filters = ( block . metadata as any ) ?. deepnote_chart_filter ?. advancedFilters || [ ] ;
86+ const metadata = block . metadata as VisualizationCellMetadata | undefined ;
87+ const variableName = metadata ?. deepnote_variable_name || 'df' ;
88+ const spec = metadata ?. deepnote_visualization_spec || { } ;
89+ const filters = metadata ?. deepnote_chart_filter ?. advancedFilters || [ ] ;
5190
5291 // Create a clean JSON representation that users can edit
5392 const config = {
0 commit comments