UNPKG

@syncfusion/ej2-grids

Version:

Feature-rich JavaScript datagrid (datatable) control with built-in support for editing, filtering, grouping, paging, sorting, and exporting to Excel.

821 lines (820 loc) 35.5 kB
import { closest, isNullOrUndefined, EventHandler } from '@syncfusion/ej2-base'; import { remove } from '@syncfusion/ej2-base'; import { ContextMenu as Menu } from '@syncfusion/ej2-navigations'; import * as events from '../base/constant'; import { Resize } from '../actions/resize'; import { Page } from '../actions/page'; import { parentsUntil, applyBiggerTheme } from '../base/util'; import { Group } from '../actions/group'; import { Sort } from '../actions/sort'; import { PdfExport } from '../actions/pdf-export'; import { ExcelExport } from '../actions/excel-export'; import * as literals from '../base/string-literals'; export var menuClass = { header: '.' + literals.gridHeader, content: '.' + literals.gridContent, edit: '.e-inline-edit', batchEdit: '.e-editedbatchcell', editIcon: 'e-edit', pager: '.e-gridpager', delete: 'e-delete', save: 'e-save', cancel: 'e-cancel', copy: 'e-copy', pdf: 'e-pdfexport', group: 'e-icon-group', ungroup: 'e-icon-ungroup', csv: 'e-csvexport', excel: 'e-excelexport', fPage: 'e-icon-first', nPage: 'e-icon-next', lPage: 'e-icon-last', pPage: 'e-icon-prev', ascending: 'e-icon-ascending', descending: 'e-icon-descending', groupHeader: 'e-groupdroparea', touchPop: 'e-gridpopup', autofit: 'e-icon-autofit', autofitall: 'e-icon-autofitall', chart: 'e-grid-chart-icon', barChart: 'e-grid-bar-chart-icon', bar: 'e-grid-bar-icon', stackingBar: 'e-grid-stacking-bar-icon', stackingBar100: 'e-grid-stacking-bar-100-icon', pie: 'e-grid-pie-icon', columnChart: 'e-grid-column-chart-icon', column: 'e-grid-column-icon', stackingColumn: 'e-grid-stacking-column-icon', stackingColumn100: 'e-grid-stacking-column-100-icon', lineChart: 'e-grid-line-chart-icon', line: 'e-grid-line-icon', stackingLine: 'e-grid-stacking-line-icon', stackingLine100: 'e-grid-stacking-line-100-icon', areaChart: 'e-grid-area-chart-icon', area: 'e-grid-area-icon', stackingArea: 'e-grid-stacking-area-icon', stackingArea100: 'e-grid-stacking-area-100-icon', scatter: 'e-grid-scatter-icon' }; /** * The `ContextMenu` module is used to handle context menu actions. */ var ContextMenu = /** @class */ (function () { function ContextMenu(parent, serviceLocator) { this.defaultItems = {}; this.disableItems = []; this.hiddenItems = []; this.barChartList = ['Bar', 'StackingBar', 'StackingBar100']; this.pieChartList = ['Pie']; this.columnChartList = ['Column', 'StackingColumn', 'StackingColumn100']; this.lineChartList = ['Line', 'StackingLine', 'StackingLine100']; this.areaChartList = ['Area', 'StackingArea', 'StackingArea100']; this.scatterChartList = ['Scatter']; this.chartList = this.barChartList.concat(this.pieChartList, this.columnChartList, this.lineChartList, this.areaChartList, this.scatterChartList); this.localeText = this.setLocaleKey(); this.parent = parent; this.gridID = parent.element.id; this.serviceLocator = serviceLocator; this.addEventListener(); } /** * @returns {void} * @hidden */ ContextMenu.prototype.addEventListener = function () { if (this.parent.isDestroyed) { return; } this.parent.on(events.uiUpdate, this.enableAfterRenderMenu, this); this.parent.on(events.initialLoad, this.render, this); this.parent.on(events.destroy, this.destroy, this); }; /** * @returns {void} * @hidden */ ContextMenu.prototype.removeEventListener = function () { if (this.parent.isDestroyed) { return; } this.parent.off(events.initialLoad, this.render); this.parent.off(events.uiUpdate, this.enableAfterRenderMenu); this.parent.off(events.destroy, this.destroy); EventHandler.remove(this.element, 'keydown', this.keyDownHandler.bind(this)); }; ContextMenu.prototype.keyDownHandler = function (e) { if (e.code === 'Tab' || e.which === 9) { this.contextMenu.close(); } if (e.code === 'Escape') { this.contextMenu.close(); this.parent.notify(events.restoreFocus, {}); } }; ContextMenu.prototype.render = function () { this.parent.element.classList.add('e-noselect'); this.l10n = this.serviceLocator.getService('localization'); this.element = this.parent.createElement('ul', { id: this.gridID + '_cmenu' }); EventHandler.add(this.element, 'keydown', this.keyDownHandler.bind(this)); this.parent.element.appendChild(this.element); var target = '#' + this.gridID; this.contextMenu = new Menu({ items: this.getMenuItems(), enableRtl: this.parent.enableRtl, enablePersistence: this.parent.enablePersistence, locale: this.parent.locale, target: target, select: this.contextMenuItemClick.bind(this), beforeOpen: this.contextMenuBeforeOpen.bind(this), onOpen: this.contextMenuOpen.bind(this), onClose: this.contextMenuOnClose.bind(this), beforeClose: this.contextMenuBeforeClose.bind(this), cssClass: this.parent.cssClass ? 'e-grid-menu' + ' ' + this.parent.cssClass : 'e-grid-menu' }); this.contextMenu.appendTo(this.element); }; ContextMenu.prototype.enableAfterRenderMenu = function (e) { if (e.module === this.getModuleName() && e.enable) { if (this.contextMenu) { this.contextMenu.destroy(); remove(this.element); this.parent.element.classList.remove('e-noselect'); } this.render(); } }; ContextMenu.prototype.getMenuItems = function () { var menuItems = []; var exportItems = []; var chartItems = []; var barChartItems = []; var pieChart; var columnChartItems = []; var lineChartItems = []; var areaChartItems = []; var scatterChart; for (var _i = 0, _a = this.parent.contextMenuItems; _i < _a.length; _i++) { var item = _a[_i]; if (typeof item === 'string' && this.getDefaultItems().indexOf(item) !== -1) { if (this.barChartList.indexOf(item) !== -1) { barChartItems.push(this.buildDefaultItems(item)); } else if (this.pieChartList.indexOf(item) !== -1) { pieChart = this.buildDefaultItems(item); } else if (this.columnChartList.indexOf(item) !== -1) { columnChartItems.push(this.buildDefaultItems(item)); } else if (this.lineChartList.indexOf(item) !== -1) { lineChartItems.push(this.buildDefaultItems(item)); } else if (this.areaChartList.indexOf(item) !== -1) { areaChartItems.push(this.buildDefaultItems(item)); } else if (this.scatterChartList.indexOf(item) !== -1) { scatterChart = this.buildDefaultItems(item); } else if (item.toLocaleLowerCase().indexOf('export') !== -1) { exportItems.push(this.buildDefaultItems(item)); } else { menuItems.push(this.buildDefaultItems(item)); } } else if (typeof item !== 'string') { menuItems.push(item); } } if (lineChartItems.length > 0) { var lineChartGroup = this.buildDefaultItems('LineChart'); lineChartGroup.items = lineChartItems; chartItems.push(lineChartGroup); } if (areaChartItems.length > 0) { var areaChartGroup = this.buildDefaultItems('AreaChart'); areaChartGroup.items = areaChartItems; chartItems.push(areaChartGroup); } if (columnChartItems.length > 0) { var columnChartGroup = this.buildDefaultItems('ColumnChart'); columnChartGroup.items = columnChartItems; chartItems.push(columnChartGroup); } if (barChartItems.length > 0) { var barChartGroup = this.buildDefaultItems('BarChart'); barChartGroup.items = barChartItems; chartItems.push(barChartGroup); } if (scatterChart) { chartItems.push(scatterChart); } if (pieChart) { chartItems.push(pieChart); } if (chartItems.length > 0) { var chartGroup = this.buildDefaultItems('Chart'); chartGroup.items = chartItems; menuItems.push(chartGroup); } if (exportItems.length > 0) { var exportGroup = this.buildDefaultItems('export'); exportGroup.items = exportItems; menuItems.push(exportGroup); } return menuItems; }; ContextMenu.prototype.getLastPage = function () { var totalpage = Math.floor(this.parent.pageSettings.totalRecordsCount / this.parent.pageSettings.pageSize); if (this.parent.pageSettings.totalRecordsCount % this.parent.pageSettings.pageSize) { totalpage += 1; } return totalpage; }; ContextMenu.prototype.contextMenuOpen = function () { this.isOpen = true; }; /** * @param {ContextMenuClickEventArgs} args - specifies the ContextMenuClickEventArgs argument type * @returns {void} * @hidden */ ContextMenu.prototype.contextMenuItemClick = function (args) { var item = this.getKeyFromId(args.item.id); switch (item) { case 'AutoFitAll': this.parent.autoFitColumns([]); break; case 'AutoFit': this.parent.autoFitColumns(this.targetColumn.field); break; case 'Group': this.parent.groupColumn(this.targetColumn.field); break; case 'Ungroup': this.parent.ungroupColumn(this.targetColumn.field); break; case 'Edit': if (this.parent.editModule) { if (this.parent.editSettings.mode === 'Batch') { if (this.row && this.cell && !isNaN(parseInt(this.cell.getAttribute(literals.ariaColIndex), 10) - 1)) { this.parent.editModule.editCell(parseInt(this.row.getAttribute(literals.ariaRowIndex), 10) - 1, // eslint-disable-next-line this.parent.getColumns()[parseInt(this.cell.getAttribute(literals.ariaColIndex), 10) - 1].field); } } else { this.parent.editModule.endEdit(); this.parent.editModule.startEdit(this.row); } } break; case 'Delete': if (this.parent.editModule) { if (this.parent.editSettings.mode !== 'Batch') { this.parent.editModule.endEdit(); } if (this.parent.getSelectedRecords().length === 1) { if (!this.parent.isCheckBoxSelection) { this.parent.isFocusFirstCell = true; } this.parent.editModule.deleteRow(this.row); } else { this.parent.deleteRecord(); } } break; case 'Save': if (this.parent.editModule) { if (this.parent.isEdit && this.parent.editSettings.mode !== 'Batch') { this.parent.isFocusFirstCell = true; } this.parent.editModule.endEdit(); } break; case 'Cancel': if (this.parent.editModule) { if (this.parent.isEdit) { this.parent.isFocusFirstCell = true; } this.parent.editModule.closeEdit(); } break; case 'Copy': this.parent.copy(); break; case 'PdfExport': this.parent.pdfExport(); break; case 'ExcelExport': this.parent.excelExport(); break; case 'CsvExport': this.parent.csvExport(); break; case 'SortAscending': this.isOpen = false; this.parent.sortColumn(this.targetColumn.field, 'Ascending'); break; case 'SortDescending': this.isOpen = false; this.parent.sortColumn(this.targetColumn.field, 'Descending'); break; case 'FirstPage': this.parent.goToPage(1); break; case 'PrevPage': this.parent.goToPage(this.parent.pageSettings.currentPage - 1); break; case 'LastPage': this.parent.goToPage(this.getLastPage()); break; case 'NextPage': this.parent.goToPage(this.parent.pageSettings.currentPage + 1); break; case 'Bar': case 'StackingBar': case 'StackingBar100': case 'Pie': case 'Column': case 'StackingColumn': case 'StackingColumn100': case 'Line': case 'StackingLine': case 'StackingLine100': case 'Area': case 'StackingArea': case 'StackingArea100': case 'Scatter': args.records = this.parent.getSelectedRecords(); args.gridInstance = this.parent; args.chartType = item; break; } args.column = this.targetColumn; args.rowInfo = this.targetRowdata; this.parent.trigger(events.contextMenuClick, args); }; ContextMenu.prototype.contextMenuOnClose = function (args) { var parent = 'parentObj'; if (args.items.length > 0 && args.items[0]["" + parent] instanceof Menu) { this.updateItemStatus(); } this.parent.notify(events.selectRowOnContextOpen, { isOpen: false }); }; ContextMenu.prototype.getLocaleText = function (item) { return this.l10n.getConstant(this.localeText["" + item]); }; ContextMenu.prototype.updateItemStatus = function () { this.contextMenu.showItems(this.hiddenItems); this.contextMenu.enableItems(this.disableItems); this.hiddenItems = []; this.disableItems = []; this.isOpen = false; }; ContextMenu.prototype.contextMenuBeforeOpen = function (args) { var closestGrid = closest(args.event.target, '.e-grid'); if (args.event && closestGrid && closestGrid !== this.parent.element) { args.cancel = true; } else if (args.event && (closest(args.event.target, '.' + menuClass.groupHeader) || closest(args.event.target, '.' + menuClass.touchPop) || closest(args.event.target, '.e-summarycell') || closest(args.event.target, '.e-groupcaption') || closest(args.event.target, '.e-filterbarcell')) || (this.parent.editSettings.showAddNewRow && closest(args.event.target, '.e-addedrow') && this.parent.element.querySelector('.e-editedrow'))) { args.cancel = true; } else { this.targetColumn = this.getColumn(args.event); if (parentsUntil(args.event.target, 'e-grid')) { this.targetRowdata = this.parent.getRowInfo(args.event.target); } if ((isNullOrUndefined(args.parentItem)) && this.targetColumn) { if (this.targetRowdata.cell) { this.parent.notify(events.selectRowOnContextOpen, { isOpen: true }); this.selectRow(args.event, (this.targetRowdata.cell.classList.contains('e-selectionbackground') && this.parent.selectionSettings.type === 'Multiple') ? false : true); } } var hideSepItems = []; var showSepItems = []; for (var _i = 0, _a = args.items; _i < _a.length; _i++) { var item = _a[_i]; var key = this.getKeyFromId(item.id); var dItem = this.defaultItems["" + key]; if (this.getDefaultItems().indexOf(key) !== -1) { if (this.ensureDisabledStatus(key)) { this.disableItems.push(item.text); } if (args.event && (this.ensureTarget(args.event.target, menuClass.edit) || this.ensureTarget(args.event.target, menuClass.batchEdit))) { if (key !== 'Save' && key !== 'Cancel') { this.hiddenItems.push(item.text); } } else if (this.parent.editModule && this.parent.editSettings.mode === 'Batch' && ((closest(args.event.target, '.e-gridform')) || this.parent.editModule.getBatchChanges()[literals.changedRecords].length || this.parent.editModule.getBatchChanges()[literals.addedRecords].length || this.parent.editModule.getBatchChanges()[literals.deletedRecords].length) && (key === 'Save' || key === 'Cancel')) { continue; } else if (isNullOrUndefined(args.parentItem) && args.event && !isNullOrUndefined(dItem) && !this.ensureTarget(args.event.target, dItem.target)) { this.hiddenItems.push(item.text); } } else if (item.target && args.event && !this.ensureTarget(args.event.target, item.target)) { if (item.separator) { hideSepItems.push(item.id); } else { this.hiddenItems.push(item.text); } } else if (this.ensureTarget(args.event.target, item.target) && item.separator) { showSepItems.push(item.id); } } if (showSepItems.length > 0) { this.contextMenu.showItems(showSepItems, true); } this.contextMenu.enableItems(this.disableItems, false); this.contextMenu.hideItems(this.hiddenItems); if (hideSepItems.length > 0) { this.contextMenu.hideItems(hideSepItems, true); } this.eventArgs = args.event; args.column = this.targetColumn; args.rowInfo = this.targetRowdata; this.parent.trigger(events.contextMenuOpen, args); if (args.cancel || (this.hiddenItems.length === args.items.length && !args.parentItem)) { this.updateItemStatus(); args.cancel = true; } } applyBiggerTheme(this.parent.element, this.contextMenu.element.parentElement); }; ContextMenu.prototype.contextMenuBeforeClose = function (args) { args.column = this.targetColumn; args.rowInfo = this.targetRowdata; this.parent.trigger(events.contextMenuClose, args); }; ContextMenu.prototype.ensureTarget = function (targetElement, selector) { var target = targetElement; if (this.ensureFrozenHeader(targetElement) && (selector === menuClass.header || selector === menuClass.content)) { target = closest(targetElement, selector === menuClass.header ? 'thead' : literals.tbody); } else if (selector === menuClass.content || selector === menuClass.header) { target = parentsUntil(closest(targetElement, '.' + literals.table), selector.substr(1, selector.length)); } else { target = closest(targetElement, selector); } return target && parentsUntil(target, 'e-grid') === this.parent.element; }; ContextMenu.prototype.ensureFrozenHeader = function (targetElement) { return (this.parent.frozenRows) && closest(targetElement, menuClass.header) ? true : false; }; ContextMenu.prototype.ensureDisabledStatus = function (item) { var status = false; switch (item) { case 'AutoFitAll': case 'AutoFit': status = !(this.parent.ensureModuleInjected(Resize) && !this.parent.isEdit) || (this.targetColumn && !this.targetColumn.field && item === 'AutoFit'); break; case 'Group': if (!this.parent.allowGrouping || (this.parent.ensureModuleInjected(Group) && this.targetColumn && this.parent.groupSettings.columns.indexOf(this.targetColumn.field) >= 0) || (this.targetColumn && !this.targetColumn.field)) { status = true; } break; case 'Ungroup': if (!this.parent.allowGrouping || !this.parent.ensureModuleInjected(Group) || (this.parent.ensureModuleInjected(Group) && this.targetColumn && this.parent.groupSettings.columns.indexOf(this.targetColumn.field) < 0)) { status = true; } break; case 'Edit': case 'Delete': case 'Save': case 'Cancel': if (!this.parent.editModule || (this.parent.getDataRows().length === 0)) { status = true; } break; case 'Copy': if ((this.parent.getSelectedRowIndexes().length === 0 && this.parent.getSelectedRowCellIndexes().length === 0) || this.parent.getCurrentViewRecords().length === 0) { status = true; } break; case 'export': if (!(this.parent.allowExcelExport && this.parent.ensureModuleInjected(ExcelExport)) && !(this.parent.allowPdfExport && this.parent.ensureModuleInjected(PdfExport))) { status = true; } break; case 'PdfExport': if (!(this.parent.allowPdfExport) || !this.parent.ensureModuleInjected(PdfExport)) { status = true; } break; case 'ExcelExport': case 'CsvExport': if (!(this.parent.allowExcelExport) || !this.parent.ensureModuleInjected(ExcelExport)) { status = true; } break; case 'SortAscending': case 'SortDescending': if ((!this.parent.allowSorting) || !this.parent.ensureModuleInjected(Sort) || (this.targetColumn && !this.targetColumn.field)) { status = true; } else if (this.parent.ensureModuleInjected(Sort) && this.parent.sortSettings.columns.length > 0 && this.targetColumn) { var sortColumns = this.parent.sortSettings.columns; for (var i = 0; i < sortColumns.length; i++) { if (sortColumns[parseInt(i.toString(), 10)].field === this.targetColumn.field && sortColumns[parseInt(i.toString(), 10)].direction.toLowerCase() === item.toLowerCase().replace('sort', '').toLocaleLowerCase()) { status = true; } } } break; case 'FirstPage': case 'PrevPage': if (!this.parent.allowPaging || !this.parent.ensureModuleInjected(Page) || this.parent.getCurrentViewRecords().length === 0 || (this.parent.ensureModuleInjected(Page) && this.parent.pageSettings.currentPage === 1)) { status = true; } break; case 'LastPage': case 'NextPage': if (!this.parent.allowPaging || !this.parent.ensureModuleInjected(Page) || this.parent.getCurrentViewRecords().length === 0 || (this.parent.ensureModuleInjected(Page) && this.parent.pageSettings.currentPage === this.getLastPage())) { status = true; } break; case 'Chart': status = !this.parent.getSelectedRecords().length; break; } return status; }; /** * Gets the context menu element from the Grid. * * @returns {Element} returns the element */ ContextMenu.prototype.getContextMenu = function () { return this.element; }; /** * Destroys the context menu component in the Grid. * * @function destroy * @returns {void} * @hidden */ ContextMenu.prototype.destroy = function () { var gridElement = this.parent.element; if (!gridElement || (!gridElement.querySelector('.' + literals.gridHeader) && !gridElement.querySelector('.' + literals.gridContent))) { return; } if (this.contextMenu) { this.contextMenu.select = null; this.contextMenu.beforeOpen = null; this.contextMenu.onOpen = null; this.contextMenu.onClose = null; } this.removeEventListener(); this.contextMenu.destroy(); if (this.element.parentNode) { remove(this.element); } this.parent.element.classList.remove('e-noselect'); }; ContextMenu.prototype.getModuleName = function () { return 'contextMenu'; }; /** * @param {string} item - Defines the Key * @hidden * @returns {string} - Returns the ID */ ContextMenu.prototype.generateID = function (item) { return this.gridID + '_cmenu_' + item; }; /** * @param {string} id - Defines the ID * @hidden * @returns {string} - Returns the Key */ ContextMenu.prototype.getKeyFromId = function (id) { return id.replace(this.gridID + '_cmenu_', ''); }; ContextMenu.prototype.buildDefaultItems = function (item) { var menuItem; switch (item) { case 'AutoFitAll': menuItem = { target: menuClass.header, iconCss: menuClass.autofitall }; break; case 'AutoFit': menuItem = { target: menuClass.header, iconCss: menuClass.autofit }; break; case 'Group': menuItem = { target: menuClass.header, iconCss: menuClass.group }; break; case 'Ungroup': menuItem = { target: menuClass.header, iconCss: menuClass.ungroup }; break; case 'Edit': menuItem = { target: menuClass.content, iconCss: menuClass.editIcon }; break; case 'Delete': menuItem = { target: menuClass.content, iconCss: menuClass.delete }; break; case 'Save': menuItem = { target: menuClass.edit, iconCss: menuClass.save }; break; case 'Cancel': menuItem = { target: menuClass.edit, iconCss: menuClass.cancel }; break; case 'Copy': menuItem = { target: menuClass.content, iconCss: menuClass.copy }; break; case 'export': menuItem = { target: menuClass.content }; break; case 'PdfExport': menuItem = { target: menuClass.content, iconCss: menuClass.pdf }; break; case 'ExcelExport': menuItem = { target: menuClass.content, iconCss: menuClass.excel }; break; case 'CsvExport': menuItem = { target: menuClass.content, iconCss: menuClass.csv }; break; case 'SortAscending': menuItem = { target: menuClass.header, iconCss: menuClass.ascending }; break; case 'SortDescending': menuItem = { target: menuClass.header, iconCss: menuClass.descending }; break; case 'FirstPage': menuItem = { target: menuClass.pager, iconCss: menuClass.fPage }; break; case 'PrevPage': menuItem = { target: menuClass.pager, iconCss: menuClass.pPage }; break; case 'LastPage': menuItem = { target: menuClass.pager, iconCss: menuClass.lPage }; break; case 'NextPage': menuItem = { target: menuClass.pager, iconCss: menuClass.nPage }; break; case 'Chart': menuItem = { target: menuClass.content, iconCss: menuClass.chart }; break; case 'BarChart': menuItem = { target: menuClass.content, iconCss: menuClass.barChart }; break; case 'Bar': menuItem = { target: menuClass.content, iconCss: menuClass.bar }; break; case 'StackingBar': menuItem = { target: menuClass.content, iconCss: menuClass.stackingBar }; break; case 'StackingBar100': menuItem = { target: menuClass.content, iconCss: menuClass.stackingBar100 }; break; case 'Pie': menuItem = { target: menuClass.content, iconCss: menuClass.pie }; break; case 'ColumnChart': menuItem = { target: menuClass.content, iconCss: menuClass.columnChart }; break; case 'Column': menuItem = { target: menuClass.content, iconCss: menuClass.column }; break; case 'StackingColumn': menuItem = { target: menuClass.content, iconCss: menuClass.stackingColumn }; break; case 'StackingColumn100': menuItem = { target: menuClass.content, iconCss: menuClass.stackingColumn100 }; break; case 'LineChart': menuItem = { target: menuClass.content, iconCss: menuClass.lineChart }; break; case 'Line': menuItem = { target: menuClass.content, iconCss: menuClass.line }; break; case 'StackingLine': menuItem = { target: menuClass.content, iconCss: menuClass.stackingLine }; break; case 'StackingLine100': menuItem = { target: menuClass.content, iconCss: menuClass.stackingLine100 }; break; case 'AreaChart': menuItem = { target: menuClass.content, iconCss: menuClass.areaChart }; break; case 'Area': menuItem = { target: menuClass.content, iconCss: menuClass.area }; break; case 'StackingArea': menuItem = { target: menuClass.content, iconCss: menuClass.stackingArea }; break; case 'StackingArea100': menuItem = { target: menuClass.content, iconCss: menuClass.stackingArea100 }; break; case 'Scatter': menuItem = { target: menuClass.content, iconCss: menuClass.scatter }; break; } this.defaultItems["" + item] = { text: this.getLocaleText(item), id: this.generateID(item), target: menuItem.target, iconCss: menuItem.iconCss ? 'e-icons ' + menuItem.iconCss : '' }; return this.defaultItems["" + item]; }; ContextMenu.prototype.getDefaultItems = function () { return ['AutoFitAll', 'AutoFit', 'Group', 'Ungroup', 'Edit', 'Delete', 'Save', 'Cancel', 'Copy', 'export', 'PdfExport', 'ExcelExport', 'CsvExport', 'SortAscending', 'SortDescending', 'FirstPage', 'PrevPage', 'LastPage', 'NextPage', 'Chart', 'BarChart', 'ColumnChart', 'LineChart', 'AreaChart'].concat(this.chartList); }; ContextMenu.prototype.setLocaleKey = function () { var localeKeys = { 'AutoFitAll': 'autoFitAll', 'AutoFit': 'autoFit', 'Copy': 'Copy', 'Group': 'Group', 'Ungroup': 'Ungroup', 'Edit': 'EditRecord', 'Delete': 'DeleteRecord', 'Save': 'Save', 'Cancel': 'CancelButton', 'PdfExport': 'Pdfexport', 'ExcelExport': 'Excelexport', 'CsvExport': 'Csvexport', 'export': 'Export', 'SortAscending': 'SortAscending', 'SortDescending': 'SortDescending', 'FirstPage': 'FirstPage', 'LastPage': 'LastPage', 'PrevPage': 'PreviousPage', 'NextPage': 'NextPage', 'Chart': 'Chart', 'BarChart': 'BarChart', 'Bar': 'Bar', 'StackingBar': 'StackingBar', 'StackingBar100': 'StackingBar100', 'Pie': 'Pie', 'ColumnChart': 'ColumnChart', 'Column': 'Column', 'StackingColumn': 'StackingColumn', 'StackingColumn100': 'StackingColumn100', 'LineChart': 'LineChart', 'Line': 'Line', 'StackingLine': 'StackingLine', 'StackingLine100': 'StackingLine100', 'AreaChart': 'AreaChart', 'Area': 'Area', 'StackingArea': 'StackingArea', 'StackingArea100': 'StackingArea100', 'Scatter': 'Scatter' }; return localeKeys; }; ContextMenu.prototype.getColumn = function (e) { var cell = closest(e.target, 'th.e-headercell'); if (cell) { var uid = cell.querySelector('.e-headercelldiv, .e-stackedheadercelldiv').getAttribute('data-mappinguid'); return this.parent.getColumnByUid(uid); } else { var ele = (this.parent.getRowInfo(e.target).column); return ele || null; } }; ContextMenu.prototype.selectRow = function (e, isSelectable) { this.cell = e.target; this.row = closest(e.target, 'tr.e-row') || this.row; if (this.row && isSelectable && !parentsUntil(e.target, 'e-gridpager')) { this.parent.selectRow(parseInt(this.row.getAttribute(literals.ariaRowIndex), 10) - 1); } }; return ContextMenu; }()); export { ContextMenu };