@avdbrink/ngx-contextmenu
Version:
An Angular component to show a context menu on an arbitrary component
145 lines (144 loc) • 8.3 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import { Directive, ElementRef, EventEmitter, Input, Output, TemplateRef } from '@angular/core';
var ContextMenuItemDirective = /** @class */ (function () {
function ContextMenuItemDirective(template, elementRef) {
this.template = template;
this.elementRef = elementRef;
this.divider = false;
this.enabled = true;
this.passive = false;
this.visible = true;
this.execute = new EventEmitter();
this.isActive = false;
this.isActiveParent = false;
}
Object.defineProperty(ContextMenuItemDirective.prototype, "disabled", {
get: /**
* @return {?}
*/
function () {
return this.passive ||
this.divider ||
!this.evaluateIfFunction(this.enabled, this.currentItem);
},
enumerable: true,
configurable: true
});
/**
* @param {?} value
* @param {?} item
* @return {?}
*/
ContextMenuItemDirective.prototype.evaluateIfFunction = /**
* @param {?} value
* @param {?} item
* @return {?}
*/
function (value, item) {
if (value instanceof Function) {
return value(item);
}
return value;
};
/**
* @return {?}
*/
ContextMenuItemDirective.prototype.setActiveStyles = /**
* @return {?}
*/
function () {
this.isActive = true;
};
/**
* @return {?}
*/
ContextMenuItemDirective.prototype.setInactiveStyles = /**
* @return {?}
*/
function () {
this.isActive = false;
};
/**
* @return {?}
*/
ContextMenuItemDirective.prototype.setActiveParentStyles = /**
* @return {?}
*/
function () {
this.isActiveParent = true;
};
/**
* @return {?}
*/
ContextMenuItemDirective.prototype.setInActiveParentStyles = /**
* @return {?}
*/
function () {
this.isActiveParent = false;
};
/**
* @param {?} item
* @param {?=} $event
* @return {?}
*/
ContextMenuItemDirective.prototype.triggerExecute = /**
* @param {?} item
* @param {?=} $event
* @return {?}
*/
function (item, $event) {
if (!this.evaluateIfFunction(this.enabled, item)) {
return;
}
this.execute.emit({ event: $event, item: item });
};
ContextMenuItemDirective.decorators = [
{ type: Directive, args: [{
/* tslint:disable:directive-selector-type */
selector: '[contextMenuItem]',
},] },
];
/** @nocollapse */
ContextMenuItemDirective.ctorParameters = function () { return [
{ type: TemplateRef },
{ type: ElementRef }
]; };
ContextMenuItemDirective.propDecorators = {
subMenu: [{ type: Input }],
divider: [{ type: Input }],
enabled: [{ type: Input }],
passive: [{ type: Input }],
visible: [{ type: Input }],
execute: [{ type: Output }]
};
return ContextMenuItemDirective;
}());
export { ContextMenuItemDirective };
function ContextMenuItemDirective_tsickle_Closure_declarations() {
/** @type {?} */
ContextMenuItemDirective.prototype.subMenu;
/** @type {?} */
ContextMenuItemDirective.prototype.divider;
/** @type {?} */
ContextMenuItemDirective.prototype.enabled;
/** @type {?} */
ContextMenuItemDirective.prototype.passive;
/** @type {?} */
ContextMenuItemDirective.prototype.visible;
/** @type {?} */
ContextMenuItemDirective.prototype.execute;
/** @type {?} */
ContextMenuItemDirective.prototype.currentItem;
/** @type {?} */
ContextMenuItemDirective.prototype.isActive;
/** @type {?} */
ContextMenuItemDirective.prototype.isActiveParent;
/** @type {?} */
ContextMenuItemDirective.prototype.template;
/** @type {?} */
ContextMenuItemDirective.prototype.elementRef;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dE1lbnUuaXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYXZkYnJpbmsvbmd4LWNvbnRleHRtZW51LyIsInNvdXJjZXMiOlsibGliL2NvbnRleHRNZW51Lml0ZW0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7O0lBd0I5RixrQ0FBbUIsUUFBb0MsRUFBUyxVQUFzQjtRQUFuRSxhQUFRLEdBQVIsUUFBUSxDQUE0QjtRQUFTLGVBQVUsR0FBVixVQUFVLENBQVk7dUJBZjVELEtBQUs7dUJBQytCLElBQUk7dUJBQ3hDLEtBQUs7dUJBQytCLElBQUk7dUJBQ0ksSUFBSSxZQUFZLEVBQUU7d0JBR3RFLEtBQUs7OEJBQ0MsS0FBSztLQU84RDswQkFOaEYsOENBQVE7Ozs7O1lBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTztnQkFDakIsSUFBSSxDQUFDLE9BQU87Z0JBQ1osQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Ozs7Ozs7Ozs7SUFLdEQscURBQWtCOzs7OztjQUFDLEtBQVUsRUFBRSxJQUFTO1FBQzdDLEVBQUUsQ0FBQyxDQUFDLEtBQUssWUFBWSxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzlCLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDcEI7UUFDRCxNQUFNLENBQUMsS0FBSyxDQUFDOzs7OztJQUdSLGtEQUFlOzs7O1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDOzs7OztJQUVoQixvREFBaUI7Ozs7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7Ozs7O0lBR2pCLHdEQUFxQjs7OztRQUMxQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQzs7Ozs7SUFFdEIsMERBQXVCOzs7O1FBQzVCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDOzs7Ozs7O0lBR3ZCLGlEQUFjOzs7OztjQUFDLElBQVMsRUFBRSxNQUFtQztRQUNsRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqRCxNQUFNLENBQUM7U0FDUjtRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLE1BQUEsRUFBRSxDQUFDLENBQUM7OztnQkFqRDlDLFNBQVMsU0FBQzs7b0JBRVQsUUFBUSxFQUFFLG1CQUFtQjtpQkFFOUI7Ozs7Z0JBTjRELFdBQVc7Z0JBQXBELFVBQVU7OzswQkFRM0IsS0FBSzswQkFDTCxLQUFLOzBCQUNMLEtBQUs7MEJBQ0wsS0FBSzswQkFDTCxLQUFLOzBCQUNMLE1BQU07O21DQWRUOztTQVFhLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhpZ2hsaWdodGFibGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIC8qIHRzbGludDpkaXNhYmxlOmRpcmVjdGl2ZS1zZWxlY3Rvci10eXBlICovXG4gIHNlbGVjdG9yOiAnW2NvbnRleHRNZW51SXRlbV0nLFxuICAvKiB0c2xpbnQ6ZW5hYmxlOmRpcmVjdGl2ZS1zZWxlY3Rvci10eXBlICovXG59KVxuZXhwb3J0IGNsYXNzIENvbnRleHRNZW51SXRlbURpcmVjdGl2ZSBpbXBsZW1lbnRzIEhpZ2hsaWdodGFibGUge1xuICBASW5wdXQoKSBwdWJsaWMgc3ViTWVudTogYW55O1xuICBASW5wdXQoKSBwdWJsaWMgZGl2aWRlciA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgZW5hYmxlZDogYm9vbGVhbiB8ICgoaXRlbTogYW55KSA9PiBib29sZWFuKSA9IHRydWU7XG4gIEBJbnB1dCgpIHB1YmxpYyBwYXNzaXZlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyB2aXNpYmxlOiBib29sZWFuIHwgKChpdGVtOiBhbnkpID0+IGJvb2xlYW4pID0gdHJ1ZTtcbiAgQE91dHB1dCgpIHB1YmxpYyBleGVjdXRlOiBFdmVudEVtaXR0ZXI8eyBldmVudDogRXZlbnQsIGl0ZW06IGFueSB9PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgY3VycmVudEl0ZW06IGFueTtcbiAgcHVibGljIGlzQWN0aXZlID0gZmFsc2U7XG4gIHB1YmxpYyBpc0FjdGl2ZVBhcmVudCA9IGZhbHNlO1xuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLnBhc3NpdmUgfHxcbiAgICAgIHRoaXMuZGl2aWRlciB8fFxuICAgICAgIXRoaXMuZXZhbHVhdGVJZkZ1bmN0aW9uKHRoaXMuZW5hYmxlZCwgdGhpcy5jdXJyZW50SXRlbSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPHsgaXRlbTogYW55IH0+LCBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZikgeyB9XG5cbiAgcHVibGljIGV2YWx1YXRlSWZGdW5jdGlvbih2YWx1ZTogYW55LCBpdGVtOiBhbnkpOiBhbnkge1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICByZXR1cm4gdmFsdWUoaXRlbSk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRBY3RpdmVTdHlsZXMoKTogdm9pZCB7XG4gICAgdGhpcy5pc0FjdGl2ZSA9IHRydWU7XG4gIH1cbiAgcHVibGljIHNldEluYWN0aXZlU3R5bGVzKCk6IHZvaWQge1xuICAgIHRoaXMuaXNBY3RpdmUgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRBY3RpdmVQYXJlbnRTdHlsZXMoKTogdm9pZCB7XG4gICAgdGhpcy5pc0FjdGl2ZVBhcmVudCA9IHRydWU7XG4gIH1cbiAgcHVibGljIHNldEluQWN0aXZlUGFyZW50U3R5bGVzKCk6IHZvaWQge1xuICAgIHRoaXMuaXNBY3RpdmVQYXJlbnQgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyB0cmlnZ2VyRXhlY3V0ZShpdGVtOiBhbnksICRldmVudD86IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmV2YWx1YXRlSWZGdW5jdGlvbih0aGlzLmVuYWJsZWQsIGl0ZW0pKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZXhlY3V0ZS5lbWl0KHsgZXZlbnQ6ICRldmVudCwgaXRlbSB9KTtcbiAgfVxufVxuIl19