ag-grid-enterprise
Version:
ag-Grid Enterprise Features
205 lines (204 loc) • 10.6 kB
JavaScript
// ag-grid-enterprise v19.1.4
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
var ag_grid_community_1 = require("ag-grid-community");
var clipboardService_1 = require("../clipboardService");
var aggFuncService_1 = require("../aggregation/aggFuncService");
var MenuItemMapper = /** @class */ (function () {
function MenuItemMapper() {
}
MenuItemMapper.prototype.mapWithStockItems = function (originalList, column) {
var _this = this;
if (!originalList) {
return [];
}
var resultList = [];
originalList.forEach(function (menuItemOrString) {
var result;
if (typeof menuItemOrString === 'string') {
result = _this.getStockMenuItem(menuItemOrString, column);
}
else {
result = menuItemOrString;
}
if (result.subMenu) {
var resultDef = result;
resultDef.subMenu = _this.mapWithStockItems(resultDef.subMenu, column);
}
resultList.push(result);
});
return resultList;
};
MenuItemMapper.prototype.getStockMenuItem = function (key, column) {
var _this = this;
var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();
switch (key) {
case 'pinSubMenu': return {
name: localeTextFunc('pinColumn', 'Pin Column'),
icon: ag_grid_community_1.Utils.createIconNoSpan('menuPin', this.gridOptionsWrapper, null),
subMenu: ['pinLeft', 'pinRight', 'clearPinned']
};
case 'pinLeft': return {
name: localeTextFunc('pinLeft', 'Pin Left'),
action: function () { return _this.columnController.setColumnPinned(column, ag_grid_community_1.Column.PINNED_LEFT, "contextMenu"); },
checked: column.isPinnedLeft()
};
case 'pinRight': return {
name: localeTextFunc('pinRight', 'Pin Right'),
action: function () { return _this.columnController.setColumnPinned(column, ag_grid_community_1.Column.PINNED_RIGHT, "contextMenu"); },
checked: column.isPinnedRight()
};
case 'clearPinned': return {
name: localeTextFunc('noPin', 'No Pin'),
action: function () { return _this.columnController.setColumnPinned(column, null, "contextMenu"); },
checked: !column.isPinned()
};
case 'valueAggSubMenu': return {
name: localeTextFunc('valueAggregation', 'Value Aggregation'),
icon: ag_grid_community_1.Utils.createIconNoSpan('menuValue', this.gridOptionsWrapper, null),
subMenu: this.createAggregationSubMenu(column)
};
case 'autoSizeThis': return {
name: localeTextFunc('autosizeThiscolumn', 'Autosize This Column'),
action: function () { return _this.columnController.autoSizeColumn(column, "contextMenu"); }
};
case 'autoSizeAll': return {
name: localeTextFunc('autosizeAllColumns', 'Autosize All Columns'),
action: function () { return _this.columnController.autoSizeAllColumns("contextMenu"); }
};
case 'rowGroup': return {
name: localeTextFunc('groupBy', 'Group by') + ' ' + ag_grid_community_1._.escape(this.columnController.getDisplayNameForColumn(column, 'header')),
action: function () { return _this.columnController.addRowGroupColumn(column, "contextMenu"); },
icon: ag_grid_community_1.Utils.createIconNoSpan('menuAddRowGroup', this.gridOptionsWrapper, null)
};
case 'rowUnGroup': return {
name: localeTextFunc('ungroupBy', 'Un-Group by') + ' ' + ag_grid_community_1._.escape(this.columnController.getDisplayNameForColumn(column, 'header')),
action: function () { return _this.columnController.removeRowGroupColumn(column, "contextMenu"); },
icon: ag_grid_community_1.Utils.createIconNoSpan('menuRemoveRowGroup', this.gridOptionsWrapper, null)
};
case 'resetColumns': return {
name: localeTextFunc('resetColumns', 'Reset Columns'),
action: function () { return _this.columnController.resetColumnState("contextMenu"); }
};
case 'expandAll': return {
name: localeTextFunc('expandAll', 'Expand All'),
action: function () { return _this.gridApi.expandAll(); }
};
case 'contractAll': return {
name: localeTextFunc('collapseAll', 'Collapse All'),
action: function () { return _this.gridApi.collapseAll(); }
};
case 'copy': return {
name: localeTextFunc('copy', 'Copy'),
shortcut: localeTextFunc('ctrlC', 'Ctrl+C'),
icon: ag_grid_community_1.Utils.createIconNoSpan('clipboardCopy', this.gridOptionsWrapper, null),
action: function () { return _this.clipboardService.copyToClipboard(false); }
};
case 'copyWithHeaders': return {
name: localeTextFunc('copyWithHeaders', 'Copy with Headers'),
// shortcut: localeTextFunc('ctrlC','Ctrl+C'),
icon: ag_grid_community_1.Utils.createIconNoSpan('clipboardCopy', this.gridOptionsWrapper, null),
action: function () { return _this.clipboardService.copyToClipboard(true); }
};
case 'paste': return {
name: localeTextFunc('paste', 'Paste'),
shortcut: localeTextFunc('ctrlV', 'Ctrl+V'),
disabled: true,
icon: ag_grid_community_1.Utils.createIconNoSpan('clipboardPaste', this.gridOptionsWrapper, null),
action: function () { return _this.clipboardService.pasteFromClipboard(); }
};
case 'export':
var exportSubMenuItems = [];
if (!this.gridOptionsWrapper.isSuppressCsvExport()) {
exportSubMenuItems.push('csvExport');
}
if (!this.gridOptionsWrapper.isSuppressExcelExport()) {
exportSubMenuItems.push('excelExport');
exportSubMenuItems.push('excelXMLExport');
}
return {
name: localeTextFunc('export', 'Export'),
subMenu: exportSubMenuItems
};
case 'csvExport': return {
name: localeTextFunc('csvExport', 'CSV Export'),
action: function () { return _this.gridApi.exportDataAsCsv({}); }
};
case 'excelExport': return {
name: localeTextFunc('excelExport', 'Excel Export (.xlsx)'),
action: function () { return _this.gridApi.exportDataAsExcel({
exportMode: 'xlsx'
}); }
};
case 'excelXMLExport': return {
name: localeTextFunc('excelXMLExport', 'Excel Export (.xml)'),
action: function () { return _this.gridApi.exportDataAsExcel({
exportMode: 'xml'
}); }
};
case 'separator': return 'separator';
default:
console.warn("ag-Grid: unknown menu item type " + key);
return null;
}
};
MenuItemMapper.prototype.createAggregationSubMenu = function (column) {
var _this = this;
var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();
var columnIsAlreadyAggValue = column.isValueActive();
var funcNames = this.aggFuncService.getFuncNames(column);
var columnToUse;
if (column.isPrimary()) {
columnToUse = column;
}
else {
columnToUse = column.getColDef().pivotValueColumn;
}
var result = [];
funcNames.forEach(function (funcName) {
result.push({
name: localeTextFunc(funcName, funcName),
action: function () {
_this.columnController.setColumnAggFunc(columnToUse, funcName, "contextMenu");
_this.columnController.addValueColumn(columnToUse, "contextMenu");
},
checked: columnIsAlreadyAggValue && columnToUse.getAggFunc() === funcName
});
});
return result;
};
__decorate([
ag_grid_community_1.Autowired('gridOptionsWrapper'),
__metadata("design:type", ag_grid_community_1.GridOptionsWrapper)
], MenuItemMapper.prototype, "gridOptionsWrapper", void 0);
__decorate([
ag_grid_community_1.Autowired('columnController'),
__metadata("design:type", ag_grid_community_1.ColumnController)
], MenuItemMapper.prototype, "columnController", void 0);
__decorate([
ag_grid_community_1.Autowired('gridApi'),
__metadata("design:type", ag_grid_community_1.GridApi)
], MenuItemMapper.prototype, "gridApi", void 0);
__decorate([
ag_grid_community_1.Autowired('clipboardService'),
__metadata("design:type", clipboardService_1.ClipboardService)
], MenuItemMapper.prototype, "clipboardService", void 0);
__decorate([
ag_grid_community_1.Autowired('aggFuncService'),
__metadata("design:type", aggFuncService_1.AggFuncService)
], MenuItemMapper.prototype, "aggFuncService", void 0);
MenuItemMapper = __decorate([
ag_grid_community_1.Bean('menuItemMapper')
], MenuItemMapper);
return MenuItemMapper;
}());
exports.MenuItemMapper = MenuItemMapper;