ngx-right-click-menu
Version:
ngx-right-click-menu is right click context menu for Angular 2+.
125 lines • 9.64 kB
JavaScript
/**
* @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