UNPKG

ontimize-web-ngx

Version:
84 lines 10.8 kB
import { ElementRef, HostListener, Injector, Directive } from '@angular/core'; import { OTranslateService } from '../../services/translate/o-translate.service'; import { PermissionsUtils } from '../../util/permissions'; import { Util } from '../../util/util'; import { OBarMenuBase } from './o-bar-menu-base.class'; import * as i0 from "@angular/core"; import * as i1 from "./o-bar-menu-base.class"; export const DEFAULT_INPUTS_O_BASE_MENU_ITEM = [ 'title', 'tooltip', 'icon', 'attr' ]; export class OBaseMenuItemClass { constructor(menu, elRef, injector) { this.menu = menu; this.elRef = elRef; this.injector = injector; this._isHovered = false; this.onMouseover = () => this.isHovered = true; this.onMouseout = () => this.isHovered = false; this.translateService = this.injector.get(OTranslateService); } ngOnInit() { if (!this.tooltip) { this.tooltip = this.title; } if (this.translateService) { this.onLanguageChangeSubscription = this.translateService.onLanguageChanged.subscribe(() => { this.setDOMTitle(); }); this.setDOMTitle(); } this.parsePermissions(); } ngOnDestroy() { if (this.onLanguageChangeSubscription) { this.onLanguageChangeSubscription.unsubscribe(); } if (this.mutationObserver) { this.mutationObserver.disconnect(); } } setDOMTitle() { const tooltip = this.translateService.get(this.tooltip); this.elRef.nativeElement.setAttribute('title', tooltip); } parsePermissions() { this.permissions = this.menu.getPermissionsService().getMenuPermissions(this.attr); if (!Util.isDefined(this.permissions)) { return; } this.restricted = this.permissions.visible === false; this.disabled = this.permissions.enabled === false; if (this.disabled) { this.mutationObserver = PermissionsUtils.registerDisabledChangesInDom(this.elRef.nativeElement, { checkStringValue: true }); } } get isHovered() { return this._isHovered; } set isHovered(val) { if (!this.disabled) { this._isHovered = val; } } } OBaseMenuItemClass.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OBaseMenuItemClass, deps: [{ token: i1.OBarMenuBase }, { token: i0.ElementRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); OBaseMenuItemClass.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: OBaseMenuItemClass, inputs: { title: "title", tooltip: "tooltip", icon: "icon", attr: "attr" }, host: { listeners: { "mouseover": "onMouseover()", "mouseout": "onMouseout()" } }, ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OBaseMenuItemClass, decorators: [{ type: Directive, args: [{ inputs: DEFAULT_INPUTS_O_BASE_MENU_ITEM }] }], ctorParameters: function () { return [{ type: i1.OBarMenuBase }, { type: i0.ElementRef }, { type: i0.Injector }]; }, propDecorators: { onMouseover: [{ type: HostListener, args: ['mouseover'] }], onMouseout: [{ type: HostListener, args: ['mouseout'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1iYXNlLW1lbnUtaXRlbS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2Jhci1tZW51L28tYmFzZS1tZW51LWl0ZW0uY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBRXZELE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHO0lBRTdDLE9BQU87SUFHUCxTQUFTO0lBR1QsTUFBTTtJQUVOLE1BQU07Q0FDUCxDQUFDO0FBS0YsTUFBTSxPQUFPLGtCQUFrQjtJQW1CN0IsWUFDWSxJQUFrQixFQUNsQixLQUFpQixFQUNqQixRQUFrQjtRQUZsQixTQUFJLEdBQUosSUFBSSxDQUFjO1FBQ2xCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVRwQixlQUFVLEdBQVksS0FBSyxDQUFDO1FBR1gsZ0JBQVcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUMzQyxlQUFVLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFPbEUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDM0I7UUFDRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3pGLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjtRQUNELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsNEJBQTRCLEVBQUU7WUFDckMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ2pEO1FBQ0QsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFUyxnQkFBZ0I7UUFFeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25GLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNyQyxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQztRQUNyRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQztRQUVuRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFO2dCQUM5RixnQkFBZ0IsRUFBRSxJQUFJO2FBQ3ZCLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxTQUFTLENBQUMsR0FBWTtRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztTQUN2QjtJQUNILENBQUM7O2dIQTlFVSxrQkFBa0I7b0dBQWxCLGtCQUFrQjs0RkFBbEIsa0JBQWtCO2tCQUg5QixTQUFTO21CQUFDO29CQUNULE1BQU0sRUFBRSwrQkFBK0I7aUJBQ3hDO21KQWlCNEIsV0FBVztzQkFBckMsWUFBWTt1QkFBQyxXQUFXO2dCQUNDLFVBQVU7c0JBQW5DLFlBQVk7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5qZWN0b3IsIE9uRGVzdHJveSwgT25Jbml0LCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBPVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS9vLXRyYW5zbGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9QZXJtaXNzaW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzL28tcGVybWlzc2lvbnMudHlwZSc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uc1V0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbC9wZXJtaXNzaW9ucyc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vdXRpbC91dGlsJztcbmltcG9ydCB7IE9CYXJNZW51QmFzZSB9IGZyb20gJy4vby1iYXItbWVudS1iYXNlLmNsYXNzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfSU5QVVRTX09fQkFTRV9NRU5VX0lURU0gPSBbXG4gIC8vIHRpdGxlIFtzdHJpbmddOiBtZW51IGl0ZW0gdGl0bGUuIERlZmF1bHQ6IG5vIHZhbHVlLlxuICAndGl0bGUnLFxuXG4gIC8vIHRvb2x0aXAgW3N0cmluZ106IG1lbnUgZ3JvdXAgdG9vbHRpcC4gRGVmYXVsdDogJ3RpdGxlJyB2YWx1ZS5cbiAgJ3Rvb2x0aXAnLFxuXG4gIC8vIGljb24gW3N0cmluZ106IG1hdGVyaWFsIGljb24uIERlZmF1bHQ6IG5vIHZhbHVlLlxuICAnaWNvbicsXG5cbiAgJ2F0dHInXG5dO1xuXG5ARGlyZWN0aXZlKHtcbiAgaW5wdXRzOiBERUZBVUxUX0lOUFVUU19PX0JBU0VfTUVOVV9JVEVNXG59KVxuZXhwb3J0IGNsYXNzIE9CYXNlTWVudUl0ZW1DbGFzcyBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZTogT1RyYW5zbGF0ZVNlcnZpY2U7XG4gIHByb3RlY3RlZCBvbkxhbmd1YWdlQ2hhbmdlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgcHJvdGVjdGVkIHBlcm1pc3Npb25zOiBPUGVybWlzc2lvbnM7XG4gIHByb3RlY3RlZCBtdXRhdGlvbk9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyO1xuXG4gIHRpdGxlOiBzdHJpbmc7XG4gIHRvb2x0aXA6IHN0cmluZztcbiAgaWNvbjogc3RyaW5nO1xuICByZXN0cmljdGVkOiBib29sZWFuO1xuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIF9pc0hvdmVyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgYXR0cjogc3RyaW5nO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlb3ZlcicpIG9uTW91c2VvdmVyID0gKCkgPT4gdGhpcy5pc0hvdmVyZWQgPSB0cnVlO1xuICBASG9zdExpc3RlbmVyKCdtb3VzZW91dCcpIG9uTW91c2VvdXQgPSAoKSA9PiB0aGlzLmlzSG92ZXJlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBtZW51OiBPQmFyTWVudUJhc2UsXG4gICAgcHJvdGVjdGVkIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IpIHtcblxuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KE9UcmFuc2xhdGVTZXJ2aWNlKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy50b29sdGlwKSB7XG4gICAgICB0aGlzLnRvb2x0aXAgPSB0aGlzLnRpdGxlO1xuICAgIH1cbiAgICBpZiAodGhpcy50cmFuc2xhdGVTZXJ2aWNlKSB7XG4gICAgICB0aGlzLm9uTGFuZ3VhZ2VDaGFuZ2VTdWJzY3JpcHRpb24gPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uub25MYW5ndWFnZUNoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRET01UaXRsZSgpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnNldERPTVRpdGxlKCk7XG4gICAgfVxuICAgIHRoaXMucGFyc2VQZXJtaXNzaW9ucygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub25MYW5ndWFnZUNoYW5nZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5vbkxhbmd1YWdlQ2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLm11dGF0aW9uT2JzZXJ2ZXIpIHtcbiAgICAgIHRoaXMubXV0YXRpb25PYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgfVxuICB9XG5cbiAgc2V0RE9NVGl0bGUoKSB7XG4gICAgY29uc3QgdG9vbHRpcCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQodGhpcy50b29sdGlwKTtcbiAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCd0aXRsZScsIHRvb2x0aXApO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhcnNlUGVybWlzc2lvbnMoKSB7XG4gICAgLy8gaWYgb2F0dHIgaW4gZm9ybSwgaXQgY2FuIGhhdmUgcGVybWlzc2lvbnNcbiAgICB0aGlzLnBlcm1pc3Npb25zID0gdGhpcy5tZW51LmdldFBlcm1pc3Npb25zU2VydmljZSgpLmdldE1lbnVQZXJtaXNzaW9ucyh0aGlzLmF0dHIpO1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQodGhpcy5wZXJtaXNzaW9ucykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5yZXN0cmljdGVkID0gdGhpcy5wZXJtaXNzaW9ucy52aXNpYmxlID09PSBmYWxzZTtcbiAgICB0aGlzLmRpc2FibGVkID0gdGhpcy5wZXJtaXNzaW9ucy5lbmFibGVkID09PSBmYWxzZTtcblxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXIgPSBQZXJtaXNzaW9uc1V0aWxzLnJlZ2lzdGVyRGlzYWJsZWRDaGFuZ2VzSW5Eb20odGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAgIGNoZWNrU3RyaW5nVmFsdWU6IHRydWVcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpc0hvdmVyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzSG92ZXJlZDtcbiAgfVxuXG4gIHNldCBpc0hvdmVyZWQodmFsOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLl9pc0hvdmVyZWQgPSB2YWw7XG4gICAgfVxuICB9XG59XG4iXX0=