@adaptabletools/adaptable
Version:
Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements
61 lines (60 loc) • 2.47 kB
JavaScript
import { ApiBase } from './ApiBase';
import { MENU_SEPARATOR } from '../../Utilities/Constants/GeneralConstants';
export class ColumnMenuApiImpl extends ApiBase {
constructor(adaptable) {
super(adaptable);
}
showColumnMenu(columnKey) {
this.getAgGridApi().showColumnMenu(columnKey);
}
hideColumnMenu() {
this.getAgGridApi().hidePopupMenu();
}
getColumnMenuItemsByCategory(category, context) {
return context.defaultAdaptableMenuItems.filter((item) => item.category === category);
}
getColumnMenuItemsByCategories(categories, context) {
return context.defaultAdaptableMenuItems.filter((item) => categories.includes(item.category));
}
createDefaultMenuStructure(context) {
const test = [
...context.defaultAgGridMenuStructure,
MENU_SEPARATOR,
...context.defaultAdaptableMenuStructure,
];
return test;
}
getColumnMenuItemByName(menuItemName, context) {
const openSettingsPanelMenuItem = context.defaultAdaptableMenuItems.find((item) => item.name === menuItemName);
return openSettingsPanelMenuItem;
}
getColumnMenuItemsByNames(menuItemNames, context) {
const menuItems = context.defaultAdaptableMenuItems.filter((item) => menuItemNames.includes(item.name));
return menuItems;
}
getColumnMenuItemByLabel(label, context) {
const menuItem = context.defaultAdaptableMenuItems.find((item) => item.label === label);
return menuItem;
}
getColumnMenuItemsByLabels(labels, context) {
const menuItems = context.defaultAdaptableMenuItems.filter((item) => labels.includes(item.label));
return menuItems;
}
removeAdaptableColumnMenuItemByName(menuItemName, context) {
const filteredMenuItems = context.defaultAdaptableMenuStructure.filter((item) => item !== '-' && item.name !== menuItemName);
return filteredMenuItems;
}
removeAdaptableColumnMenuItemsByNames(menuItemNames, context) {
const filteredMenuItems = context.defaultAdaptableMenuStructure.filter((item) => item !== '-' && !menuItemNames.includes(item.name));
return filteredMenuItems;
}
createGroupMenu(label, subMenuItems, disabled, icon) {
return {
menuType: 'Group',
label: label,
subMenuItems: subMenuItems,
disabled: disabled,
icon: icon,
};
}
}