@adaptabletools/adaptable
Version:
Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements
31 lines (30 loc) • 1.73 kB
JavaScript
import * as React from 'react';
import { useMemo } from 'react';
import { Text } from 'rebass';
import { ExpressionEditor } from '../../../components/ExpressionEditor';
import { Tag } from '../../../components/Tag';
import { NamedQueryModuleId } from '../../../Utilities/Constants/ModuleConstants';
import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
export const isValidNamedQueryExpression = (data, api) => {
if (!data.BooleanExpression) {
return 'Expression is empty';
}
const valid = api.expressionApi.isValidBooleanExpression(data.BooleanExpression, NamedQueryModuleId);
if (!valid) {
return 'Query is not a valid Boolean Query';
}
return valid;
};
export const renderNamedQueryExpressionSummary = (data) => {
const { api } = useOnePageAdaptableWizardContext();
return (React.createElement(Text, { fontSize: 2 },
"Expression: ",
React.createElement(Tag, null, api.internalApi.getAdaptableQueryExpressionText(data))));
};
export const NamedQueryExpressionWizardSection = (props) => {
const { data, moduleInfo, api } = useOnePageAdaptableWizardContext();
const initialData = useMemo(() => api.internalApi.getQueryPreviewData(), []);
return (React.createElement(ExpressionEditor, { allowSaveNamedQuery: false, showQueryBuilder: true, type: 'boolean', module: moduleInfo.ModuleName, value: data.BooleanExpression, onChange: (BooleanExpression) => {
props.onChange({ ...data, BooleanExpression });
}, initialData: initialData, columns: api.columnApi.getQueryableColumns(), fields: api.expressionApi.internalApi.getAvailableFields(), namedQueries: api.namedQueryApi.getNamedQueries(), api: api }));
};