/
Filter.tsx
35 lines (29 loc) · 916 Bytes
/
Filter.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import * as React from 'react';
import {FilterTransform} from 'vega';
import parseExpr from 'vega-parser/src/parsers/expression';
import {Property} from '../../inspectors/Property';
interface OwnProps {
dsId: number;
index: number;
update: (obj: FilterTransform) => void;
}
export class Filter extends React.Component<OwnProps> {
public updateFilter = (value) => {
const val = value.target ? value.target.value : value;
try {
parseExpr(val);
this.props.update({type: 'filter', expr: val});
} catch (e) {
// TODO: Indicate error in parsing expression.
}
}
public render() {
const props = this.props;
const dsId = props.dsId;
return (
<Property type='autocomplete' autoType='expr' label='Filter'
primType='datasets' primId={dsId} name={'transform.' + props.index + '.expr'}
dsId={dsId} onChange={this.updateFilter} />
);
}
}