UNPKG

@taiga-ui/core

Version:

Core library for creating Angular components and applications using Taiga UI

94 lines 11.2 kB
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==