Repository URL to install this package:
|
Version:
0.3.1 ▾
|
motif-web-admin-core
/
esm2015
/
lib
/
sections
/
AccessControl
/
components
/
grid-context-menu.component.js
|
|---|
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, ContentChild, EventEmitter, Input, Output, Renderer2, TemplateRef } from '@angular/core';
import { GridComponent } from '@progress/kendo-angular-grid';
export class GridContextMenuComponent {
/**
* @param {?} renderer
*/
constructor(renderer) {
this.renderer = renderer;
this.menuItems = [];
this.select = new EventEmitter();
this.onCellClick = this.onCellClick.bind(this);
this.documentClickSubscription = this.renderer.listen('document', 'click', (/**
* @return {?}
*/
() => {
this.show = false;
}));
}
/**
* @param {?} grid
* @return {?}
*/
set for(grid) {
this.unsubscribe();
this.cellClickSubscription = grid.cellClick.subscribe(this.onCellClick);
}
/**
* @return {?}
*/
ngOnDestroy() {
this.unsubscribe();
this.documentClickSubscription();
}
/**
* @param {?} item
* @return {?}
*/
menuItemSelected(item) {
this.select.emit({ item: item, dataItem: this.dataItem });
}
/**
* @private
* @param {?} __0
* @return {?}
*/
onCellClick({ dataItem, type, originalEvent }) {
if (type === 'contextmenu') {
originalEvent.preventDefault();
this.dataItem = dataItem;
this.show = true;
this.offset = { left: originalEvent.pageX, top: originalEvent.pageY };
}
}
/**
* @private
* @return {?}
*/
unsubscribe() {
if (this.cellClickSubscription) {
this.cellClickSubscription.unsubscribe();
this.cellClickSubscription = null;
}
}
}
GridContextMenuComponent.decorators = [
{ type: Component, args: [{
selector: 'grid-context-menu',
template: `
<kendo-popup *ngIf="show" [offset]="offset">
<ul class="menu">
<li *ngFor="let item of menuItems" (click)="menuItemSelected(item)">
<ng-template *ngIf="menuItemTemplate" [ngTemplateOutlet]="menuItemTemplate"
[ngTemplateOutletContext]="{ item: item, dataItem: dataItem }">
</ng-template>
<ng-container *ngIf="!menuItemTemplate">
{{ item }}
</ng-container>
</li>
</ul>
</kendo-popup>
`,
styles: [`
.menu {
list-style:none;
margin: 0;
padding: 0;
cursor: pointer;
}
.menu li {
border-bottom: 1px solid rgba(0,0,0,.08);
padding: 8px 12px;
transition: background .2s, color .2s;
}
.menu li:last-child {
border-bottom: 0;
}
.menu li:hover {
background: #e8e8e8;
}
.menu li:active {
background: #ff6358;
color: #fff;
}
`]
}] }
];
/** @nocollapse */
GridContextMenuComponent.ctorParameters = () => [
{ type: Renderer2 }
];
GridContextMenuComponent.propDecorators = {
menuItemTemplate: [{ type: ContentChild, args: [TemplateRef,] }],
menuItems: [{ type: Input }],
select: [{ type: Output }],
for: [{ type: Input }]
};
if (false) {
/** @type {?} */
GridContextMenuComponent.prototype.menuItemTemplate;
/** @type {?} */
GridContextMenuComponent.prototype.menuItems;
/** @type {?} */
GridContextMenuComponent.prototype.select;
/** @type {?} */
GridContextMenuComponent.prototype.show;
/** @type {?} */
GridContextMenuComponent.prototype.dataItem;
/** @type {?} */
GridContextMenuComponent.prototype.offset;
/**
* @type {?}
* @private
*/
GridContextMenuComponent.prototype.cellClickSubscription;
/**
* @type {?}
* @private
*/
GridContextMenuComponent.prototype.documentClickSubscription;
/**
* @type {?}
* @private
*/
GridContextMenuComponent.prototype.renderer;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1jb250ZXh0LW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbW90aWYtd2ViLWFkbWluLWNvcmUvIiwic291cmNlcyI6WyJsaWIvc2VjdGlvbnMvQWNjZXNzQ29udHJvbC9jb21wb25lbnRzL2dyaWQtY29udGV4dC1tZW51LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4SCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUE4QzdELE1BQU0sT0FBTyx3QkFBd0I7Ozs7SUF1QmpDLFlBQW9CLFFBQW1CO1FBQW5CLGFBQVEsR0FBUixRQUFRLENBQVc7UUFqQmhDLGNBQVMsR0FBVSxFQUFFLENBQUM7UUFHdEIsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBZXZELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxPQUFPOzs7UUFBRSxHQUFHLEVBQUU7WUFDNUUsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDdEIsQ0FBQyxFQUFDLENBQUM7SUFDUCxDQUFDOzs7OztJQWpCRCxJQUFvQixHQUFHLENBQUMsSUFBbUI7UUFDdkMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDNUUsQ0FBQzs7OztJQWdCTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO0lBQ3JDLENBQUM7Ozs7O0lBRU0sZ0JBQWdCLENBQUMsSUFBUztRQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7Ozs7OztJQUVPLFdBQVcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFO1FBQ25ELElBQUksSUFBSSxLQUFLLGFBQWEsRUFBRTtZQUMxQixhQUFhLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7WUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDdkU7SUFDSCxDQUFDOzs7OztJQUVPLFdBQVc7UUFDZixJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUM1QixJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztTQUNyQztJQUNMLENBQUM7OztZQWpHSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7O0tBYVQ7eUJBQ1E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBMEJSO2FBQ0o7Ozs7WUEvQ3lFLFNBQVM7OzsrQkFrRDlFLFlBQVksU0FBQyxXQUFXO3dCQUd4QixLQUFLO3FCQUdMLE1BQU07a0JBR04sS0FBSzs7OztJQVROLG9EQUMwQzs7SUFFMUMsNkNBQzZCOztJQUU3QiwwQ0FDMkQ7O0lBTzNELHdDQUFxQjs7SUFDckIsNENBQXFCOztJQUNyQiwwQ0FBbUI7Ozs7O0lBRW5CLHlEQUE0Qzs7Ozs7SUFDNUMsNkRBQXVDOzs7OztJQUUzQiw0Q0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBPbkRlc3Ryb3ksIFJlbmRlcmVyMiwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgR3JpZENvbXBvbmVudCB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWdyaWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2dyaWQtY29udGV4dC1tZW51JyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8a2VuZG8tcG9wdXAgKm5nSWY9XCJzaG93XCIgW29mZnNldF09XCJvZmZzZXRcIj5cbiAgICAgICAgICAgIDx1bCBjbGFzcz1cIm1lbnVcIj5cbiAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIG1lbnVJdGVtc1wiIChjbGljayk9XCJtZW51SXRlbVNlbGVjdGVkKGl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwibWVudUl0ZW1UZW1wbGF0ZVwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm1lbnVJdGVtVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBpdGVtOiBpdGVtLCBkYXRhSXRlbTogZGF0YUl0ZW0gfVwiPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtZW51SXRlbVRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0gfX1cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwva2VuZG8tcG9wdXA+XG4gICAgYCxcbiAgICBzdHlsZXM6IFtgXG4gICAgIC5tZW51IHtcbiAgICAgICAgbGlzdC1zdHlsZTpub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cblxuICAgICAgLm1lbnUgbGkge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLDAsMCwuMDgpO1xuICAgICAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMnMsIGNvbG9yIC4ycztcbiAgICAgIH1cblxuICAgICAgLm1lbnUgbGk6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICB9XG5cbiAgICAgIC5tZW51IGxpOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2U4ZThlODtcbiAgICAgIH1cblxuICAgICAgLm1lbnUgbGk6YWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmNjM1ODtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB9XG4gICAgYF1cbn0pXG5leHBvcnQgY2xhc3MgR3JpZENvbnRleHRNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICAgIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpXG4gICAgcHVibGljIG1lbnVJdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtZW51SXRlbXM6IGFueVtdID0gW107XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgc2VsZWN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgQElucHV0KCkgcHVibGljIHNldCBmb3IoZ3JpZDogR3JpZENvbXBvbmVudCkge1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuY2VsbENsaWNrU3Vic2NyaXB0aW9uID0gZ3JpZC5jZWxsQ2xpY2suc3Vic2NyaWJlKHRoaXMub25DZWxsQ2xpY2spO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG93OiBib29sZWFuO1xuICAgIHB1YmxpYyBkYXRhSXRlbTogYW55O1xuICAgIHB1YmxpYyBvZmZzZXQ6IGFueTtcblxuICAgIHByaXZhdGUgY2VsbENsaWNrU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBkb2N1bWVudENsaWNrU3Vic2NyaXB0aW9uOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcbiAgICAgICAgdGhpcy5vbkNlbGxDbGljayA9IHRoaXMub25DZWxsQ2xpY2suYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5kb2N1bWVudENsaWNrU3Vic2NyaXB0aW9uID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zaG93ID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmRvY3VtZW50Q2xpY2tTdWJzY3JpcHRpb24oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWVudUl0ZW1TZWxlY3RlZChpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3QuZW1pdCh7IGl0ZW06IGl0ZW0sIGRhdGFJdGVtOiB0aGlzLmRhdGFJdGVtIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25DZWxsQ2xpY2soeyBkYXRhSXRlbSwgdHlwZSwgb3JpZ2luYWxFdmVudCB9KTogdm9pZCB7XG4gICAgICBpZiAodHlwZSA9PT0gJ2NvbnRleHRtZW51Jykge1xuICAgICAgICBvcmlnaW5hbEV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuZGF0YUl0ZW0gPSBkYXRhSXRlbTtcbiAgICAgICAgdGhpcy5zaG93ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vZmZzZXQgPSB7IGxlZnQ6IG9yaWdpbmFsRXZlbnQucGFnZVgsIHRvcDogb3JpZ2luYWxFdmVudC5wYWdlWSB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdW5zdWJzY3JpYmUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNlbGxDbGlja1N1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5jZWxsQ2xpY2tTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuY2VsbENsaWNrU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxufVxuIl19