{
setExpression(value);
},
value: expression,
disabled: !collection.loaded,
variant: 'filled',
required: false,
InputLabelProps: { shrink: true },
InputProps: {
endAdornment: (
),
},
onKeyDown: (e: any) => {
if (e.key === 'Enter') {
// reset page
setCurrentPage(0);
if (expr !== expression) {
setExpr(expression);
} else {
// ensure query
query();
}
e.preventDefault();
}
},
}}
checkValid={() => true}
/>
{
const consistency = e.target.value as string;
setConsistencyLevel(consistency);
}}
/>
{
return {
label:
f.name === DYNAMIC_FIELD
? searchTrans('dynamicFields')
: f.name,
value: f.name,
};
})}
values={outputFields}
renderValue={selected => (
{`${(selected as string[]).length} ${
gridTrans[
(selected as string[]).length > 1 ? 'fields' : 'field'
]
}`}
)}
label={searchTrans('outputFields')}
wrapperClass="selector"
variant="filled"
onChange={(e: { target: { value: unknown } }) => {
// add value to output fields if not exist, remove if exist
const newOutputFields = [...outputFields];
const values = e.target.value as string[];
const newFields = values.filter(
v => !newOutputFields.includes(v as string)
);
const removeFields = newOutputFields.filter(
v => !values.includes(v as string)
);
newOutputFields.push(...newFields);
removeFields.forEach(f => {
const index = newOutputFields.indexOf(f);
newOutputFields.splice(index, 1);
});
// sort output fields by schema order
newOutputFields.sort(
(a, b) =>
fields.findIndex(f => f.name === a) -
fields.findIndex(f => f.name === b)
);
setOutputFields(newOutputFields);
}}
/>
}
>
{btnTrans('reset')}
{
setCurrentPage(0);
if (expr !== expression) {
setExpr(expression);
} else {
// ensure query
query();
}
}}
disabled={!collection.loaded}
>
{btnTrans('query')}