@adaptabletools/adaptable
Version:
Powerful AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements
54 lines (53 loc) • 2.17 kB
JavaScript
import * as NamedQueryRedux from '../Redux/ActionsReducers/NamedQueryRedux';
import * as ModuleConstants from '../Utilities/Constants/ModuleConstants';
import { getObjectTagsViewItems } from '../Utilities/getObjectTagsViewItems';
import { NamedQueryWizard } from '../View/NamedQuery/Wizard/NamedQueryWizard';
import { AdaptableModuleBase } from './AdaptableModuleBase';
export class NamedQueryModule extends AdaptableModuleBase {
constructor(api) {
super(ModuleConstants.NamedQueryModuleId, ModuleConstants.NamedQueryFriendlyName, 'grid-filter', 'NamedQueryPopup', 'Creates Named Queries', api);
}
getModuleAdaptableObjects() {
return this.api.namedQueryApi.getNamedQueries();
}
getTeamSharingAction() {
return {
ModuleEntities: this.api.namedQueryApi.getNamedQueries(),
AddAction: NamedQueryRedux.NamedQueryAdd,
EditAction: NamedQueryRedux.NamedQueryEdit,
};
}
getExplicitlyReferencedColumnIds(namedQuery) {
return this.api.expressionApi.getColumnsFromExpression(namedQuery.BooleanExpression);
}
getReferencedNamedQueryNames(namedQuery) {
return this.api.namedQueryApi.internalApi.getReferencedNamedQueryNames(namedQuery.BooleanExpression);
}
toView(query) {
return {
abObject: query,
items: [
{
name: 'Query Name',
values: [query.Name],
},
{
name: 'Expression',
values: [this.api.internalApi.getAdaptableQueryExpressionText(query)],
},
getObjectTagsViewItems(query, this.api),
],
};
}
toViewAll() {
return this.getModuleAdaptableObjects().map((query) => this.toView(query));
}
getViewProperties() {
return {
getDeleteAction: NamedQueryRedux.NamedQueryDelete,
newTooltipText: 'Create New Named Query',
emptyView: "Click 'New' to create a Named Query that can be referenced in other Expressions",
getEditWizard: () => NamedQueryWizard,
};
}
}