Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
motif-web-admin-core / esm2015 / lib / sections / AccessControl / components / grid-context-menu.component.js
Size: Mime:
/**
 * @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