@clr/angular
Version:
Angular components for Clarity
62 lines • 7.33 kB
JavaScript
/*
* Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.
* This software is released under MIT license.
* The full license information can be found in LICENSE in the root directory of this project.
*/
import { Directive, HostListener } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "../../utils/popover/providers/popover-toggle.service";
import * as i2 from "./providers/tooltip-id.service";
import * as i3 from "./providers/tooltip-mouse.service";
export class ClrTooltipTrigger {
constructor(toggleService, tooltipIdService, tooltipMouseService) {
this.toggleService = toggleService;
this.tooltipIdService = tooltipIdService;
this.tooltipMouseService = tooltipMouseService;
this.subs = [];
// The aria-described by comes from the id of content. It
this.subs.push(this.tooltipIdService.id.subscribe(tooltipId => (this.ariaDescribedBy = tooltipId)));
}
ngOnDestroy() {
this.subs.forEach(sub => sub.unsubscribe());
}
showTooltip() {
this.toggleService.open = true;
}
hideTooltip() {
this.toggleService.open = false;
}
onMouseEnter() {
this.tooltipMouseService.onMouseEnterTrigger();
}
onMouseLeave() {
this.tooltipMouseService.onMouseLeaveTrigger();
}
}
ClrTooltipTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrTooltipTrigger, deps: [{ token: i1.ClrPopoverToggleService }, { token: i2.TooltipIdService }, { token: i3.TooltipMouseService }], target: i0.ɵɵFactoryTarget.Directive });
ClrTooltipTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: ClrTooltipTrigger, selector: "[clrTooltipTrigger]", host: { attributes: { "tabindex": "0" }, listeners: { "focus": "showTooltip()", "blur": "hideTooltip()", "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" }, properties: { "class.tooltip-trigger": "true", "attr.aria-describedby": "ariaDescribedBy", "attr.role": "\"button\"" } }, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrTooltipTrigger, decorators: [{
type: Directive,
args: [{
selector: '[clrTooltipTrigger]',
host: {
tabindex: '0',
'[class.tooltip-trigger]': 'true',
'[attr.aria-describedby]': 'ariaDescribedBy',
'[attr.role]': '"button"',
},
}]
}], ctorParameters: function () { return [{ type: i1.ClrPopoverToggleService }, { type: i2.TooltipIdService }, { type: i3.TooltipMouseService }]; }, propDecorators: { showTooltip: [{
type: HostListener,
args: ['focus']
}], hideTooltip: [{
type: HostListener,
args: ['blur']
}], onMouseEnter: [{
type: HostListener,
args: ['mouseenter']
}], onMouseLeave: [{
type: HostListener,
args: ['mouseleave']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC10cmlnZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvcG9wb3Zlci90b29sdGlwL3Rvb2x0aXAtdHJpZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBZ0J4RCxNQUFNLE9BQU8saUJBQWlCO0lBSTVCLFlBQ1UsYUFBc0MsRUFDdEMsZ0JBQWtDLEVBQ2xDLG1CQUF3QztRQUZ4QyxrQkFBYSxHQUFiLGFBQWEsQ0FBeUI7UUFDdEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBTDFDLFNBQUksR0FBbUIsRUFBRSxDQUFDO1FBT2hDLHlEQUF5RDtRQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFHRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ2pDLENBQUM7SUFHRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFHTyxZQUFZO1FBQ2xCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFHTyxZQUFZO1FBQ2xCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQ2pELENBQUM7OzhHQW5DVSxpQkFBaUI7a0dBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQVQ3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLElBQUksRUFBRTt3QkFDSixRQUFRLEVBQUUsR0FBRzt3QkFDYix5QkFBeUIsRUFBRSxNQUFNO3dCQUNqQyx5QkFBeUIsRUFBRSxpQkFBaUI7d0JBQzVDLGFBQWEsRUFBRSxVQUFVO3FCQUMxQjtpQkFDRjsrS0FtQkMsV0FBVztzQkFEVixZQUFZO3VCQUFDLE9BQU87Z0JBTXJCLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxNQUFNO2dCQU1aLFlBQVk7c0JBRG5CLFlBQVk7dUJBQUMsWUFBWTtnQkFNbEIsWUFBWTtzQkFEbkIsWUFBWTt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIzIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IENsclBvcG92ZXJUb2dnbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9wb3Zlci9wcm92aWRlcnMvcG9wb3Zlci10b2dnbGUuc2VydmljZSc7XG5pbXBvcnQgeyBUb29sdGlwSWRTZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvdG9vbHRpcC1pZC5zZXJ2aWNlJztcbmltcG9ydCB7IFRvb2x0aXBNb3VzZVNlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy90b29sdGlwLW1vdXNlLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbY2xyVG9vbHRpcFRyaWdnZXJdJyxcbiAgaG9zdDoge1xuICAgIHRhYmluZGV4OiAnMCcsXG4gICAgJ1tjbGFzcy50b29sdGlwLXRyaWdnZXJdJzogJ3RydWUnLFxuICAgICdbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XSc6ICdhcmlhRGVzY3JpYmVkQnknLFxuICAgICdbYXR0ci5yb2xlXSc6ICdcImJ1dHRvblwiJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyVG9vbHRpcFRyaWdnZXIge1xuICBhcmlhRGVzY3JpYmVkQnk6IHN0cmluZztcbiAgcHJpdmF0ZSBzdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdG9nZ2xlU2VydmljZTogQ2xyUG9wb3ZlclRvZ2dsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0b29sdGlwSWRTZXJ2aWNlOiBUb29sdGlwSWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9vbHRpcE1vdXNlU2VydmljZTogVG9vbHRpcE1vdXNlU2VydmljZVxuICApIHtcbiAgICAvLyBUaGUgYXJpYS1kZXNjcmliZWQgYnkgY29tZXMgZnJvbSB0aGUgaWQgb2YgY29udGVudC4gSXRcbiAgICB0aGlzLnN1YnMucHVzaCh0aGlzLnRvb2x0aXBJZFNlcnZpY2UuaWQuc3Vic2NyaWJlKHRvb2x0aXBJZCA9PiAodGhpcy5hcmlhRGVzY3JpYmVkQnkgPSB0b29sdGlwSWQpKSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuICBzaG93VG9vbHRpcCgpOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbiA9IHRydWU7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdibHVyJylcbiAgaGlkZVRvb2x0aXAoKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4gPSBmYWxzZTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInKVxuICBwcml2YXRlIG9uTW91c2VFbnRlcigpIHtcbiAgICB0aGlzLnRvb2x0aXBNb3VzZVNlcnZpY2Uub25Nb3VzZUVudGVyVHJpZ2dlcigpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpXG4gIHByaXZhdGUgb25Nb3VzZUxlYXZlKCkge1xuICAgIHRoaXMudG9vbHRpcE1vdXNlU2VydmljZS5vbk1vdXNlTGVhdmVUcmlnZ2VyKCk7XG4gIH1cbn1cbiJdfQ==