UNPKG

ng2-right-click-menu

Version:
147 lines 9.23 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Directive, ElementRef, EventEmitter, Input, Output } from '@angular/core'; import { ShContextMenuService } from './sh-context-menu.service'; import { ShContextMenuComponent } from './sh-context-menu.component'; import { fromEvent, merge } from 'rxjs'; /** * @record */ export function ContextOpenEvent() { } if (false) { /** @type {?} */ ContextOpenEvent.prototype.data; /** @type {?} */ ContextOpenEvent.prototype.preventOpen; /** @type {?} */ ContextOpenEvent.prototype.mouseEvent; } var ShAttachMenuDirective = /** @class */ (function () { function ShAttachMenuDirective(ctxService, elm) { this.ctxService = ctxService; this.elm = elm; this.open = new EventEmitter(); } /** * @return {?} */ ShAttachMenuDirective.prototype.ngOnInit = /** * @return {?} */ function () { this.setupEvents(); }; /** * @private * @return {?} */ ShAttachMenuDirective.prototype.setupEvents = /** * @private * @return {?} */ function () { var _this = this; /** @type {?} */ var observables = []; if (!this.triggers) { observables.push(fromEvent(this.elm.nativeElement, 'contextmenu')); } else { this.triggers.forEach((/** * @param {?} t * @return {?} */ function (t) { observables.push(fromEvent(_this.elm.nativeElement, t)); })); } this.sub = merge.apply(void 0, tslib_1.__spread(observables)).subscribe(this.openMenu.bind(this)); }; /** * @param {?} event * @return {?} */ ShAttachMenuDirective.prototype.openMenu = /** * @param {?} event * @return {?} */ function (event) { event.preventDefault(); event.stopPropagation(); /** @type {?} */ var preventOpen = false; this.open.emit({ data: this.data, mouseEvent: event, preventOpen: (/** * @return {?} */ function () { preventOpen = true; }) }); if (preventOpen) return; this.ctxService.openMenu({ menu: this.menu, mouseEvent: event, targetElement: this.elm, data: this.data }); }; /** * @return {?} */ ShAttachMenuDirective.prototype.ngOnDestroy = /** * @return {?} */ function () { if (this.sub) { this.sub.unsubscribe(); } }; ShAttachMenuDirective.decorators = [ { type: Directive, args: [{ selector: '[shAttachMenu]' },] } ]; /** @nocollapse */ ShAttachMenuDirective.ctorParameters = function () { return [ { type: ShContextMenuService }, { type: ElementRef } ]; }; ShAttachMenuDirective.propDecorators = { menu: [{ type: Input, args: ['shAttachMenu',] }], triggers: [{ type: Input, args: ['shMenuTriggers',] }], data: [{ type: Input, args: ['shMenuData',] }], open: [{ type: Output }] }; return ShAttachMenuDirective; }()); export { ShAttachMenuDirective }; if (false) { /** @type {?} */ ShAttachMenuDirective.prototype.menu; /** @type {?} */ ShAttachMenuDirective.prototype.triggers; /** @type {?} */ ShAttachMenuDirective.prototype.data; /** @type {?} */ ShAttachMenuDirective.prototype.open; /** @type {?} */ ShAttachMenuDirective.prototype.sub; /** * @type {?} * @private */ ShAttachMenuDirective.prototype.ctxService; /** * @type {?} * @private */ ShAttachMenuDirective.prototype.elm; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2gtYXR0YWNoLW1lbnUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmcyLXJpZ2h0LWNsaWNrLW1lbnUvIiwic291cmNlcyI6WyJsaWIvc2gtYXR0YWNoLW1lbnUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNOLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWdCLE1BQU0sTUFBTSxDQUFDOzs7O0FBRXRELHNDQUlDOzs7SUFIQSxnQ0FBVTs7SUFDVix1Q0FBd0I7O0lBQ3hCLHNDQUF1Qjs7QUFHeEI7SUFVQywrQkFDUyxVQUFnQyxFQUNoQyxHQUFlO1FBRGYsZUFBVSxHQUFWLFVBQVUsQ0FBc0I7UUFDaEMsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUxkLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBb0IsQ0FBQztJQU1uRCxDQUFDOzs7O0lBRUosd0NBQVE7OztJQUFSO1FBQ0MsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BCLENBQUM7Ozs7O0lBRU8sMkNBQVc7Ozs7SUFBbkI7UUFBQSxpQkFZQzs7WUFYTSxXQUFXLEdBQUcsRUFBRTtRQUV0QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNuQixXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO1NBQ25FO2FBQU07WUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU87Ozs7WUFBQyxVQUFBLENBQUM7Z0JBQ3RCLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEQsQ0FBQyxFQUFDLENBQUM7U0FDSDtRQUVELElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxnQ0FBSSxXQUFXLEdBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQzs7Ozs7SUFFRCx3Q0FBUTs7OztJQUFSLFVBQVMsS0FBaUI7UUFDekIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQzs7WUFFcEIsV0FBVyxHQUFHLEtBQUs7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDZCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixVQUFVLEVBQUUsS0FBSztZQUNqQixXQUFXOzs7WUFBRTtnQkFDWixXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLENBQUMsQ0FBQTtTQUNELENBQUMsQ0FBQztRQUVILElBQUksV0FBVztZQUFFLE9BQU87UUFFeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDeEIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsVUFBVSxFQUFFLEtBQUs7WUFDakIsYUFBYSxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ3ZCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtTQUNmLENBQUMsQ0FBQztJQUNKLENBQUM7Ozs7SUFFRCwyQ0FBVzs7O0lBQVg7UUFDQyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDYixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3ZCO0lBQ0YsQ0FBQzs7Z0JBNURELFNBQVMsU0FBQztvQkFDVixRQUFRLEVBQUUsZ0JBQWdCO2lCQUMxQjs7OztnQkFaUSxvQkFBb0I7Z0JBUDVCLFVBQVU7Ozt1QkFxQlQsS0FBSyxTQUFDLGNBQWM7MkJBQ3BCLEtBQUssU0FBQyxnQkFBZ0I7dUJBQ3RCLEtBQUssU0FBQyxZQUFZO3VCQUNsQixNQUFNOztJQXNEUiw0QkFBQztDQUFBLEFBN0RELElBNkRDO1NBMURZLHFCQUFxQjs7O0lBQ2pDLHFDQUFvRDs7SUFDcEQseUNBQTRDOztJQUM1QyxxQ0FBK0I7O0lBQy9CLHFDQUFzRDs7SUFDdEQsb0NBQWtCOzs7OztJQUdqQiwyQ0FBd0M7Ozs7O0lBQ3hDLG9DQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdERpcmVjdGl2ZSxcblx0RWxlbWVudFJlZixcblx0RXZlbnRFbWl0dGVyLFxuXHRJbnB1dCxcblx0T25EZXN0cm95LFxuXHRPbkluaXQsXG5cdE91dHB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNoQ29udGV4dE1lbnVTZXJ2aWNlIH0gZnJvbSAnLi9zaC1jb250ZXh0LW1lbnUuc2VydmljZSc7XG5pbXBvcnQgeyBTaENvbnRleHRNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9zaC1jb250ZXh0LW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IGZyb21FdmVudCwgbWVyZ2UsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRleHRPcGVuRXZlbnQge1xuXHRkYXRhOiBhbnk7XG5cdHByZXZlbnRPcGVuOiAoKSA9PiB2b2lkO1xuXHRtb3VzZUV2ZW50OiBNb3VzZUV2ZW50O1xufVxuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbc2hBdHRhY2hNZW51XSdcbn0pXG5leHBvcnQgY2xhc3MgU2hBdHRhY2hNZW51RGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuXHRASW5wdXQoJ3NoQXR0YWNoTWVudScpIG1lbnU6IFNoQ29udGV4dE1lbnVDb21wb25lbnQ7XG5cdEBJbnB1dCgnc2hNZW51VHJpZ2dlcnMnKSB0cmlnZ2Vyczogc3RyaW5nW107XG5cdEBJbnB1dCgnc2hNZW51RGF0YScpIGRhdGE6IGFueTtcblx0QE91dHB1dCgpIG9wZW4gPSBuZXcgRXZlbnRFbWl0dGVyPENvbnRleHRPcGVuRXZlbnQ+KCk7XG5cdHN1YjogU3Vic2NyaXB0aW9uO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByaXZhdGUgY3R4U2VydmljZTogU2hDb250ZXh0TWVudVNlcnZpY2UsXG5cdFx0cHJpdmF0ZSBlbG06IEVsZW1lbnRSZWZcblx0KSB7fVxuXG5cdG5nT25Jbml0KCk6IHZvaWQge1xuXHRcdHRoaXMuc2V0dXBFdmVudHMoKTtcblx0fVxuXG5cdHByaXZhdGUgc2V0dXBFdmVudHMoKSB7XG5cdFx0Y29uc3Qgb2JzZXJ2YWJsZXMgPSBbXTtcblxuXHRcdGlmICghdGhpcy50cmlnZ2Vycykge1xuXHRcdFx0b2JzZXJ2YWJsZXMucHVzaChmcm9tRXZlbnQodGhpcy5lbG0ubmF0aXZlRWxlbWVudCwgJ2NvbnRleHRtZW51JykpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLnRyaWdnZXJzLmZvckVhY2godCA9PiB7XG5cdFx0XHRcdG9ic2VydmFibGVzLnB1c2goZnJvbUV2ZW50KHRoaXMuZWxtLm5hdGl2ZUVsZW1lbnQsIHQpKTtcblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdHRoaXMuc3ViID0gbWVyZ2UoLi4ub2JzZXJ2YWJsZXMpLnN1YnNjcmliZSh0aGlzLm9wZW5NZW51LmJpbmQodGhpcykpO1xuXHR9XG5cblx0b3Blbk1lbnUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcblx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG5cdFx0bGV0IHByZXZlbnRPcGVuID0gZmFsc2U7XG5cdFx0dGhpcy5vcGVuLmVtaXQoe1xuXHRcdFx0ZGF0YTogdGhpcy5kYXRhLFxuXHRcdFx0bW91c2VFdmVudDogZXZlbnQsXG5cdFx0XHRwcmV2ZW50T3BlbjogKCkgPT4ge1xuXHRcdFx0XHRwcmV2ZW50T3BlbiA9IHRydWU7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRpZiAocHJldmVudE9wZW4pIHJldHVybjtcblxuXHRcdHRoaXMuY3R4U2VydmljZS5vcGVuTWVudSh7XG5cdFx0XHRtZW51OiB0aGlzLm1lbnUsXG5cdFx0XHRtb3VzZUV2ZW50OiBldmVudCxcblx0XHRcdHRhcmdldEVsZW1lbnQ6IHRoaXMuZWxtLFxuXHRcdFx0ZGF0YTogdGhpcy5kYXRhXG5cdFx0fSk7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5zdWIpIHtcblx0XHRcdHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XG5cdFx0fVxuXHR9XG59XG4iXX0=