UNPKG

ngx-right-click-menu

Version:

ngx-right-click-menu is right click context menu for Angular 2+.

125 lines 9.64 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /* tslint:disable:member-ordering */ import { Directive, HostListener, Input, ComponentFactoryResolver, ViewContainerRef } from '@angular/core'; import { NgxRightClickMenuComponent } from './ngx-right-click-menu.component'; import { NgxRightClickMenuBackDropComponent } from './ngx-right-click-menu-backdrop.component'; var NgxRightClickMenuDirective = /** @class */ (function () { function NgxRightClickMenuDirective(_componentResolver, _viewContainerRef, _backdropRef) { var _this = this; this._componentResolver = _componentResolver; this._viewContainerRef = _viewContainerRef; this._backdropRef = _backdropRef; this.menuContext = (/** * @param {?} event * @return {?} */ function (event) { return _this.openMenu(event); }); this.items = []; } Object.defineProperty(NgxRightClickMenuDirective.prototype, "ngxContextMenu", { set: /** * @param {?} data * @return {?} */ function (data) { this.title = data.title; this.items = data.items; }, enumerable: true, configurable: true }); /** * @private * @param {?} event * @return {?} */ NgxRightClickMenuDirective.prototype.openMenu = /** * @private * @param {?} event * @return {?} */ function (event) { var _this = this; event.preventDefault(); event.stopPropagation(); this._viewContainerRef.clear(); /** @type {?} */ var backdropFactory = this._componentResolver.resolveComponentFactory(NgxRightClickMenuBackDropComponent); /** @type {?} */ var backdropRef = this._viewContainerRef.createComponent(backdropFactory); /** @type {?} */ var componentFactory = this._componentResolver.resolveComponentFactory(NgxRightClickMenuComponent); /** @type {?} */ var componentRef = this._viewContainerRef.createComponent(componentFactory); this._contextMenu = componentRef.instance; this._contextMenu.top = event.clientY; this._contextMenu.left = event.clientX; this._contextMenu.position(); this._contextMenu.title = this.title; this._contextMenu.items = this.items; backdropRef.instance['backDropClick'].subscribe((/** * @return {?} */ function () { _this._viewContainerRef.clear(); })); this._contextMenu['itemClicked'].subscribe((/** * @return {?} */ function () { _this._viewContainerRef.clear(); })); }; NgxRightClickMenuDirective.decorators = [ { type: Directive, args: [{ selector: '[ngxContextMenu]' },] } ]; /** @nocollapse */ NgxRightClickMenuDirective.ctorParameters = function () { return [ { type: ComponentFactoryResolver }, { type: ViewContainerRef }, { type: ViewContainerRef } ]; }; NgxRightClickMenuDirective.propDecorators = { ngxContextMenu: [{ type: Input }], menuContext: [{ type: HostListener, args: ['contextmenu', ['$event'],] }] }; return NgxRightClickMenuDirective; }()); export { NgxRightClickMenuDirective }; if (false) { /** @type {?} */ NgxRightClickMenuDirective.prototype.menuContext; /** * @type {?} * @private */ NgxRightClickMenuDirective.prototype.title; /** * @type {?} * @private */ NgxRightClickMenuDirective.prototype.items; /** @type {?} */ NgxRightClickMenuDirective.prototype._contextMenu; /** * @type {?} * @private */ NgxRightClickMenuDirective.prototype._componentResolver; /** * @type {?} * @private */ NgxRightClickMenuDirective.prototype._viewContainerRef; /** * @type {?} * @private */ NgxRightClickMenuDirective.prototype._backdropRef; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXJpZ2h0LWNsaWNrLW1lbnUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXJpZ2h0LWNsaWNrLW1lbnUvIiwic291cmNlcyI6WyJsaWIvbmd4LXJpZ2h0LWNsaWNrLW1lbnUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsT0FBTyxFQUNMLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLHdCQUF3QixFQUFFLGdCQUFnQixFQUMzRSxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUcvRjtJQWlCRSxvQ0FDVSxrQkFBNEMsRUFDNUMsaUJBQW1DLEVBQ25DLFlBQThCO1FBSHhDLGlCQUlLO1FBSEssdUJBQWtCLEdBQWxCLGtCQUFrQixDQUEwQjtRQUM1QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ25DLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtRQVRqQyxnQkFBVzs7OztRQUFHLFVBQUMsS0FBaUIsSUFBSyxPQUFBLEtBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQXBCLENBQW9CLEVBQUM7UUFHekQsVUFBSyxHQUFlLEVBQUUsQ0FBQztJQU8zQixDQUFDO0lBaEJMLHNCQUFhLHNEQUFjOzs7OztRQUEzQixVQUE0QixJQUFVO1lBQ3BDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDMUIsQ0FBQzs7O09BQUE7Ozs7OztJQWVPLDZDQUFROzs7OztJQUFoQixVQUFpQixLQUFpQjtRQUFsQyxpQkEwQkM7UUF6QkMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV4QixJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7O1lBRXpCLGVBQWUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsdUJBQXVCLENBQUMsa0NBQWtDLENBQUM7O1lBQ3JHLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQzs7WUFFckUsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHVCQUF1QixDQUFDLDBCQUEwQixDQUFDOztZQUM5RixZQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUU3RSxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUM7UUFDMUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNyQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBRXJDLFdBQVcsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsU0FBUzs7O1FBQUM7WUFDOUMsS0FBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pDLENBQUMsRUFBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTOzs7UUFBQztZQUN6QyxLQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakMsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOztnQkFqREYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7aUJBQzdCOzs7O2dCQVJpQyx3QkFBd0I7Z0JBQUUsZ0JBQWdCO2dCQUFoQixnQkFBZ0I7OztpQ0FXekUsS0FBSzs4QkFLTCxZQUFZLFNBQUMsYUFBYSxFQUFFLENBQUMsUUFBUSxDQUFDOztJQXlDekMsaUNBQUM7Q0FBQSxBQW5ERCxJQW1EQztTQS9DWSwwQkFBMEI7OztJQU1yQyxpREFDaUU7Ozs7O0lBRWpFLDJDQUFzQjs7Ozs7SUFDdEIsMkNBQStCOztJQUMvQixrREFBZ0Q7Ozs7O0lBRzlDLHdEQUFvRDs7Ozs7SUFDcEQsdURBQTJDOzs7OztJQUMzQyxrREFBc0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZTptZW1iZXItb3JkZXJpbmcgKi9cbmltcG9ydCB7XG4gIERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBJbnB1dCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd4UmlnaHRDbGlja01lbnVDb21wb25lbnQgfSBmcm9tICcuL25neC1yaWdodC1jbGljay1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ3hSaWdodENsaWNrTWVudUJhY2tEcm9wQ29tcG9uZW50IH0gZnJvbSAnLi9uZ3gtcmlnaHQtY2xpY2stbWVudS1iYWNrZHJvcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVudSwgTWVudUl0ZW0gfSBmcm9tICcuL25neC1yaWdodC1jbGljay1tZW51Lm1vZGVsJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW25neENvbnRleHRNZW51XSdcbn0pXG5cbmV4cG9ydCBjbGFzcyBOZ3hSaWdodENsaWNrTWVudURpcmVjdGl2ZSB7XG4gIEBJbnB1dCgpIHNldCBuZ3hDb250ZXh0TWVudShkYXRhOiBNZW51KSB7XG4gICAgdGhpcy50aXRsZSA9IGRhdGEudGl0bGU7XG4gICAgdGhpcy5pdGVtcyA9IGRhdGEuaXRlbXM7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjb250ZXh0bWVudScsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBtZW51Q29udGV4dCA9IChldmVudDogTW91c2VFdmVudCkgPT4gdGhpcy5vcGVuTWVudShldmVudCk7XG5cbiAgcHJpdmF0ZSB0aXRsZTogc3RyaW5nO1xuICBwcml2YXRlIGl0ZW1zOiBNZW51SXRlbVtdID0gW107XG4gIHB1YmxpYyBfY29udGV4dE1lbnU6IE5neFJpZ2h0Q2xpY2tNZW51Q29tcG9uZW50O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2NvbXBvbmVudFJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSBfdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIF9iYWNrZHJvcFJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgKSB7IH1cblxuICBwcml2YXRlIG9wZW5NZW51KGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIHRoaXMuX3ZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcblxuICAgIGNvbnN0IGJhY2tkcm9wRmFjdG9yeSA9IHRoaXMuX2NvbXBvbmVudFJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KE5neFJpZ2h0Q2xpY2tNZW51QmFja0Ryb3BDb21wb25lbnQpO1xuICAgIGNvbnN0IGJhY2tkcm9wUmVmID0gdGhpcy5fdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoYmFja2Ryb3BGYWN0b3J5KTtcblxuICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLl9jb21wb25lbnRSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShOZ3hSaWdodENsaWNrTWVudUNvbXBvbmVudCk7XG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5fdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50RmFjdG9yeSk7XG5cbiAgICB0aGlzLl9jb250ZXh0TWVudSA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgICB0aGlzLl9jb250ZXh0TWVudS50b3AgPSBldmVudC5jbGllbnRZO1xuICAgIHRoaXMuX2NvbnRleHRNZW51LmxlZnQgPSBldmVudC5jbGllbnRYO1xuICAgIHRoaXMuX2NvbnRleHRNZW51LnBvc2l0aW9uKCk7XG5cbiAgICB0aGlzLl9jb250ZXh0TWVudS50aXRsZSA9IHRoaXMudGl0bGU7XG4gICAgdGhpcy5fY29udGV4dE1lbnUuaXRlbXMgPSB0aGlzLml0ZW1zO1xuXG4gICAgYmFja2Ryb3BSZWYuaW5zdGFuY2VbJ2JhY2tEcm9wQ2xpY2snXS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fdmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgIH0pO1xuICAgIHRoaXMuX2NvbnRleHRNZW51WydpdGVtQ2xpY2tlZCddLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLl92aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgfSk7XG4gIH1cblxufVxuIl19