@taiga-ui/core
Version:
Core library for creating Angular components and applications using Taiga UI
94 lines • 11.2 kB
JavaScript
import { Directive, inject, INJECTOR, Input, signal } from '@angular/core';
import { TuiActiveZone } from '@taiga-ui/cdk/directives/active-zone';
import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
import { tuiAsRectAccessor, tuiAsVehicle, } from '@taiga-ui/core/classes';
import { PolymorpheusComponent } from '@taiga-ui/polymorpheus';
import { TUI_HINT_COMPONENT } from './hint.providers';
import { TuiHintService } from './hint.service';
import { TuiHintDriver } from './hint-driver.directive';
import { TuiHintHover } from './hint-hover.directive';
import { TUI_HINT_OPTIONS } from './hint-options.directive';
import { TuiHintPosition } from './hint-position.directive';
import * as i0 from "@angular/core";
import * as i1 from "./hint-driver.directive";
import * as i2 from "./hint-hover.directive";
import * as i3 from "./hint-position.directive";
class TuiHintDirective {
constructor() {
this.service = inject(TuiHintService);
this.appearance = inject(TUI_HINT_OPTIONS).appearance;
this.content = signal(null);
this.component = inject((PolymorpheusComponent));
this.el = tuiInjectElement();
this.activeZone = inject(TuiActiveZone, { optional: true });
this.type = 'hint';
}
set tuiHint(content) {
this.content.set(content);
if (!content) {
this.toggle(false);
}
}
ngOnDestroy() {
this.toggle(false);
}
getClientRect() {
return this.el.getBoundingClientRect();
}
toggle(show) {
if (show && this.content()) {
this.service.add(this);
}
else {
this.service.remove(this);
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiHintDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiHintDirective, isStandalone: true, selector: "[tuiHint]:not(ng-container):not(ng-template)", inputs: { context: ["tuiHintContext", "context"], appearance: ["tuiHintAppearance", "appearance"], tuiHint: "tuiHint" }, providers: [
tuiAsRectAccessor(TuiHintDirective),
tuiAsVehicle(TuiHintDirective),
{
provide: PolymorpheusComponent,
deps: [TUI_HINT_COMPONENT, INJECTOR],
useClass: PolymorpheusComponent,
},
], hostDirectives: [{ directive: i1.TuiHintDriver }, { directive: i2.TuiHintHover, inputs: ["tuiHintHideDelay", "tuiHintHideDelay", "tuiHintShowDelay", "tuiHintShowDelay"] }, { directive: i3.TuiHintPosition, inputs: ["tuiHintDirection", "tuiHintDirection"], outputs: ["tuiHintDirectionChange", "tuiHintDirectionChange"] }], ngImport: i0 }); }
}
export { TuiHintDirective };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiHintDirective, decorators: [{
type: Directive,
args: [{
standalone: true,
selector: '[tuiHint]:not(ng-container):not(ng-template)',
providers: [
tuiAsRectAccessor(TuiHintDirective),
tuiAsVehicle(TuiHintDirective),
{
provide: PolymorpheusComponent,
deps: [TUI_HINT_COMPONENT, INJECTOR],
useClass: PolymorpheusComponent,
},
],
hostDirectives: [
TuiHintDriver,
{
directive: TuiHintHover,
inputs: ['tuiHintHideDelay', 'tuiHintShowDelay'],
},
{
directive: TuiHintPosition,
inputs: ['tuiHintDirection'],
outputs: ['tuiHintDirectionChange'],
},
],
}]
}], propDecorators: { context: [{
type: Input,
args: ['tuiHintContext']
}], appearance: [{
type: Input,
args: ['tuiHintAppearance']
}], tuiHint: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2RpcmVjdGl2ZXMvaGludC9oaW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFrQixNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsWUFBWSxHQUdmLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxFQUFDLHFCQUFxQixFQUEyQixNQUFNLHdCQUF3QixDQUFDO0FBRXZGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7QUFFMUQsTUF5QmEsZ0JBQWdCO0lBekI3QjtRQTRCcUIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQU0zQyxlQUFVLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsVUFBVSxDQUFDO1FBRWpELFlBQU8sR0FBRyxNQUFNLENBQXlCLElBQUksQ0FBQyxDQUFDO1FBQy9DLGNBQVMsR0FBRyxNQUFNLENBQUMsQ0FBQSxxQkFBOEIsQ0FBQSxDQUFDLENBQUM7UUFDMUMsT0FBRSxHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsZUFBVSxHQUFJLE1BQU0sQ0FBQyxhQUFhLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUN0RCxTQUFJLEdBQUcsTUFBTSxDQUFDO0tBMEJqQztJQXhCRyxJQUNXLE9BQU8sQ0FBQyxPQUErQjtRQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUxQixJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN0QjtJQUNMLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRU0sYUFBYTtRQUNoQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRU0sTUFBTSxDQUFDLElBQWE7UUFDdkIsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFCO2FBQU07WUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3QjtJQUNMLENBQUM7K0dBeENRLGdCQUFnQjttR0FBaEIsZ0JBQWdCLG9OQXRCZDtZQUNQLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDO1lBQ25DLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQztZQUM5QjtnQkFDSSxPQUFPLEVBQUUscUJBQXFCO2dCQUM5QixJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLENBQUM7Z0JBQ3BDLFFBQVEsRUFBRSxxQkFBcUI7YUFDbEM7U0FDSjs7U0FjUSxnQkFBZ0I7NEZBQWhCLGdCQUFnQjtrQkF6QjVCLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSw4Q0FBOEM7b0JBQ3hELFNBQVMsRUFBRTt3QkFDUCxpQkFBaUIsa0JBQWtCO3dCQUNuQyxZQUFZLGtCQUFrQjt3QkFDOUI7NEJBQ0ksT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsSUFBSSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxDQUFDOzRCQUNwQyxRQUFRLEVBQUUscUJBQXFCO3lCQUNsQztxQkFDSjtvQkFDRCxjQUFjLEVBQUU7d0JBQ1osYUFBYTt3QkFDYjs0QkFDSSxTQUFTLEVBQUUsWUFBWTs0QkFDdkIsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsa0JBQWtCLENBQUM7eUJBQ25EO3dCQUNEOzRCQUNJLFNBQVMsRUFBRSxlQUFlOzRCQUMxQixNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQzs0QkFDNUIsT0FBTyxFQUFFLENBQUMsd0JBQXdCLENBQUM7eUJBQ3RDO3FCQUNKO2lCQUNKOzhCQU9VLE9BQU87c0JBRGIsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBSWhCLFVBQVU7c0JBRGhCLEtBQUs7dUJBQUMsbUJBQW1CO2dCQVVmLE9BQU87c0JBRGpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgaW5qZWN0LCBJTkpFQ1RPUiwgSW5wdXQsIHR5cGUgT25EZXN0cm95LCBzaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUdWlBY3RpdmVab25lfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvYWN0aXZlLXpvbmUnO1xuaW1wb3J0IHt0dWlJbmplY3RFbGVtZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2RvbSc7XG5pbXBvcnQge1xuICAgIHR1aUFzUmVjdEFjY2Vzc29yLFxuICAgIHR1aUFzVmVoaWNsZSxcbiAgICB0eXBlIFR1aVJlY3RBY2Nlc3NvcixcbiAgICB0eXBlIFR1aVZlaGljbGUsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NsYXNzZXMnO1xuaW1wb3J0IHt0eXBlIFR1aVBvcnRhbEl0ZW19IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29tcG9uZW50LCB0eXBlIFBvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0YWlnYS11aS9wb2x5bW9ycGhldXMnO1xuXG5pbXBvcnQge1RVSV9ISU5UX0NPTVBPTkVOVH0gZnJvbSAnLi9oaW50LnByb3ZpZGVycyc7XG5pbXBvcnQge1R1aUhpbnRTZXJ2aWNlfSBmcm9tICcuL2hpbnQuc2VydmljZSc7XG5pbXBvcnQge1R1aUhpbnREcml2ZXJ9IGZyb20gJy4vaGludC1kcml2ZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7VHVpSGludEhvdmVyfSBmcm9tICcuL2hpbnQtaG92ZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7VFVJX0hJTlRfT1BUSU9OU30gZnJvbSAnLi9oaW50LW9wdGlvbnMuZGlyZWN0aXZlJztcbmltcG9ydCB7VHVpSGludFBvc2l0aW9ufSBmcm9tICcuL2hpbnQtcG9zaXRpb24uZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1t0dWlIaW50XTpub3QobmctY29udGFpbmVyKTpub3QobmctdGVtcGxhdGUpJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgdHVpQXNSZWN0QWNjZXNzb3IoVHVpSGludERpcmVjdGl2ZSksXG4gICAgICAgIHR1aUFzVmVoaWNsZShUdWlIaW50RGlyZWN0aXZlKSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogUG9seW1vcnBoZXVzQ29tcG9uZW50LFxuICAgICAgICAgICAgZGVwczogW1RVSV9ISU5UX0NPTVBPTkVOVCwgSU5KRUNUT1JdLFxuICAgICAgICAgICAgdXNlQ2xhc3M6IFBvbHltb3JwaGV1c0NvbXBvbmVudCxcbiAgICAgICAgfSxcbiAgICBdLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgICAgIFR1aUhpbnREcml2ZXIsXG4gICAgICAgIHtcbiAgICAgICAgICAgIGRpcmVjdGl2ZTogVHVpSGludEhvdmVyLFxuICAgICAgICAgICAgaW5wdXRzOiBbJ3R1aUhpbnRIaWRlRGVsYXknLCAndHVpSGludFNob3dEZWxheSddLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBkaXJlY3RpdmU6IFR1aUhpbnRQb3NpdGlvbixcbiAgICAgICAgICAgIGlucHV0czogWyd0dWlIaW50RGlyZWN0aW9uJ10sXG4gICAgICAgICAgICBvdXRwdXRzOiBbJ3R1aUhpbnREaXJlY3Rpb25DaGFuZ2UnXSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlIaW50RGlyZWN0aXZlPEM+XG4gICAgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIFR1aVBvcnRhbEl0ZW08Qz4sIFR1aVJlY3RBY2Nlc3NvciwgVHVpVmVoaWNsZVxue1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc2VydmljZSA9IGluamVjdChUdWlIaW50U2VydmljZSk7XG5cbiAgICBASW5wdXQoJ3R1aUhpbnRDb250ZXh0JylcbiAgICBwdWJsaWMgY29udGV4dD86IEM7XG5cbiAgICBASW5wdXQoJ3R1aUhpbnRBcHBlYXJhbmNlJylcbiAgICBwdWJsaWMgYXBwZWFyYW5jZSA9IGluamVjdChUVUlfSElOVF9PUFRJT05TKS5hcHBlYXJhbmNlO1xuXG4gICAgcHVibGljIGNvbnRlbnQgPSBzaWduYWw8UG9seW1vcnBoZXVzQ29udGVudDxDPj4obnVsbCk7XG4gICAgcHVibGljIGNvbXBvbmVudCA9IGluamVjdChQb2x5bW9ycGhldXNDb21wb25lbnQ8dW5rbm93bj4pO1xuICAgIHB1YmxpYyByZWFkb25seSBlbCA9IHR1aUluamVjdEVsZW1lbnQoKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgYWN0aXZlWm9uZT8gPSBpbmplY3QoVHVpQWN0aXZlWm9uZSwge29wdGlvbmFsOiB0cnVlfSk7XG4gICAgcHVibGljIHJlYWRvbmx5IHR5cGUgPSAnaGludCc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgdHVpSGludChjb250ZW50OiBQb2x5bW9ycGhldXNDb250ZW50PEM+KSB7XG4gICAgICAgIHRoaXMuY29udGVudC5zZXQoY29udGVudCk7XG5cbiAgICAgICAgaWYgKCFjb250ZW50KSB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZShmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMudG9nZ2xlKGZhbHNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q2xpZW50UmVjdCgpOiBET01SZWN0IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIHRvZ2dsZShzaG93OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChzaG93ICYmIHRoaXMuY29udGVudCgpKSB7XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2UuYWRkKHRoaXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnJlbW92ZSh0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==