1 import {Component, Input, OnInit, Host, ViewChild} from '@angular/core';
2 import {GridToolbarAction, GridContext} from '@eg/share/grid/grid';
3 import {ClipboardDialogComponent} from '@eg/share/clipboard/clipboard-dialog.component';
5 /** Models a list of toolbar action menu entries */
8 selector: 'eg-grid-toolbar-actions-menu',
9 templateUrl: 'grid-toolbar-actions-menu.component.html'
12 export class GridToolbarActionsMenuComponent {
14 @Input() gridContext: GridContext;
16 @Input() viaContextMenu = false;
18 @ViewChild('clipboardDialog') clipboardDialog: ClipboardDialogComponent;
20 performAction(action: GridToolbarAction) {
21 if (action.isGroup || action.isSeparator) {
22 return; // These don't perform actions
24 const rows = this.gridContext.getSelectedRows();
25 action.onClick.emit(rows);
26 if (action.action) { action.action(rows); }
29 shouldDisable(action: GridToolbarAction): boolean {
30 if (action.disableOnRows) {
31 return action.disableOnRows(this.gridContext.getSelectedRows());
36 openCopyToClipboard() {
37 const row = this.gridContext.getSelectedRows()[0];
40 this.gridContext.columnSet.displayColumns().forEach(col => {
43 value: this.gridContext.getRowColumnValue(row, col)
48 this.clipboardDialog.values = values;
49 this.clipboardDialog.open({size: 'lg'}).toPromise();