UNPKG

@taiga-ui/core

Version:

Core library for creating Angular components and applications using Taiga UI

99 lines 11.9 kB
import { Directive, EventEmitter, inject, INJECTOR, Input, Output, 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.visible = new EventEmitter(); 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); } this.visible.emit(show); } 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" }, outputs: { visible: "tuiHintVisible" }, 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", "tuiHintOffset", "tuiHintOffset"], 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', 'tuiHintOffset'], outputs: ['tuiHintDirectionChange'], }, ], }] }], propDecorators: { context: [{ type: Input, args: ['tuiHintContext'] }], appearance: [{ type: Input, args: ['tuiHintAppearance'] }], visible: [{ type: Output, args: ['tuiHintVisible'] }], tuiHint: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2RpcmVjdGl2ZXMvaGludC9oaW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFFTCxNQUFNLEVBQ04sTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFlBQVksR0FHZixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sRUFBQyxxQkFBcUIsRUFBMkIsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7Ozs7O0FBRTFELE1BeUJhLGdCQUFnQjtJQXpCN0I7UUE0QnFCLFlBQU8sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFNM0MsZUFBVSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUd4QyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUUvQyxZQUFPLEdBQUcsTUFBTSxDQUF5QixJQUFJLENBQUMsQ0FBQztRQUMvQyxjQUFTLEdBQUcsTUFBTSxDQUFDLENBQUEscUJBQThCLENBQUEsQ0FBQyxDQUFDO1FBQzFDLE9BQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLGVBQVUsR0FBSSxNQUFNLENBQUMsYUFBYSxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDdEQsU0FBSSxHQUFHLE1BQU0sQ0FBQztLQTRCakM7SUExQkcsSUFDVyxPQUFPLENBQUMsT0FBK0I7UUFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFMUIsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdEI7SUFDTCxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVNLGFBQWE7UUFDaEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVNLE1BQU0sQ0FBQyxJQUFhO1FBQ3ZCLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMxQjthQUFNO1lBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDN0I7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDOytHQTdDUSxnQkFBZ0I7bUdBQWhCLGdCQUFnQiw0UEF0QmQ7WUFDUCxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQztZQUNuQyxZQUFZLENBQUMsZ0JBQWdCLENBQUM7WUFDOUI7Z0JBQ0ksT0FBTyxFQUFFLHFCQUFxQjtnQkFDOUIsSUFBSSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxDQUFDO2dCQUNwQyxRQUFRLEVBQUUscUJBQXFCO2FBQ2xDO1NBQ0o7O1NBY1EsZ0JBQWdCOzRGQUFoQixnQkFBZ0I7a0JBekI1QixTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsOENBQThDO29CQUN4RCxTQUFTLEVBQUU7d0JBQ1AsaUJBQWlCLGtCQUFrQjt3QkFDbkMsWUFBWSxrQkFBa0I7d0JBQzlCOzRCQUNJLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLElBQUksRUFBRSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQzs0QkFDcEMsUUFBUSxFQUFFLHFCQUFxQjt5QkFDbEM7cUJBQ0o7b0JBQ0QsY0FBYyxFQUFFO3dCQUNaLGFBQWE7d0JBQ2I7NEJBQ0ksU0FBUyxFQUFFLFlBQVk7NEJBQ3ZCLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixFQUFFLGtCQUFrQixDQUFDO3lCQUNuRDt3QkFDRDs0QkFDSSxTQUFTLEVBQUUsZUFBZTs0QkFDMUIsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsZUFBZSxDQUFDOzRCQUM3QyxPQUFPLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQzt5QkFDdEM7cUJBQ0o7aUJBQ0o7OEJBT1UsT0FBTztzQkFEYixLQUFLO3VCQUFDLGdCQUFnQjtnQkFJaEIsVUFBVTtzQkFEaEIsS0FBSzt1QkFBQyxtQkFBbUI7Z0JBSVYsT0FBTztzQkFEdEIsTUFBTTt1QkFBQyxnQkFBZ0I7Z0JBVWIsT0FBTztzQkFEakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSU5KRUNUT1IsXG4gICAgSW5wdXQsXG4gICAgdHlwZSBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1R1aUFjdGl2ZVpvbmV9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9hY3RpdmUtem9uZSc7XG5pbXBvcnQge3R1aUluamVjdEVsZW1lbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tJztcbmltcG9ydCB7XG4gICAgdHVpQXNSZWN0QWNjZXNzb3IsXG4gICAgdHVpQXNWZWhpY2xlLFxuICAgIHR5cGUgVHVpUmVjdEFjY2Vzc29yLFxuICAgIHR5cGUgVHVpVmVoaWNsZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY2xhc3Nlcyc7XG5pbXBvcnQge3R5cGUgVHVpUG9ydGFsSXRlbX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb21wb25lbnQsIHR5cGUgUG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5cbmltcG9ydCB7VFVJX0hJTlRfQ09NUE9ORU5UfSBmcm9tICcuL2hpbnQucHJvdmlkZXJzJztcbmltcG9ydCB7VHVpSGludFNlcnZpY2V9IGZyb20gJy4vaGludC5zZXJ2aWNlJztcbmltcG9ydCB7VHVpSGludERyaXZlcn0gZnJvbSAnLi9oaW50LWRyaXZlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtUdWlIaW50SG92ZXJ9IGZyb20gJy4vaGludC1ob3Zlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtUVUlfSElOVF9PUFRJT05TfSBmcm9tICcuL2hpbnQtb3B0aW9ucy5kaXJlY3RpdmUnO1xuaW1wb3J0IHtUdWlIaW50UG9zaXRpb259IGZyb20gJy4vaGludC1wb3NpdGlvbi5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW3R1aUhpbnRdOm5vdChuZy1jb250YWluZXIpOm5vdChuZy10ZW1wbGF0ZSknLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB0dWlBc1JlY3RBY2Nlc3NvcihUdWlIaW50RGlyZWN0aXZlKSxcbiAgICAgICAgdHVpQXNWZWhpY2xlKFR1aUhpbnREaXJlY3RpdmUpLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBQb2x5bW9ycGhldXNDb21wb25lbnQsXG4gICAgICAgICAgICBkZXBzOiBbVFVJX0hJTlRfQ09NUE9ORU5ULCBJTkpFQ1RPUl0sXG4gICAgICAgICAgICB1c2VDbGFzczogUG9seW1vcnBoZXVzQ29tcG9uZW50LFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICAgICAgVHVpSGludERyaXZlcixcbiAgICAgICAge1xuICAgICAgICAgICAgZGlyZWN0aXZlOiBUdWlIaW50SG92ZXIsXG4gICAgICAgICAgICBpbnB1dHM6IFsndHVpSGludEhpZGVEZWxheScsICd0dWlIaW50U2hvd0RlbGF5J10sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGRpcmVjdGl2ZTogVHVpSGludFBvc2l0aW9uLFxuICAgICAgICAgICAgaW5wdXRzOiBbJ3R1aUhpbnREaXJlY3Rpb24nLCAndHVpSGludE9mZnNldCddLFxuICAgICAgICAgICAgb3V0cHV0czogWyd0dWlIaW50RGlyZWN0aW9uQ2hhbmdlJ10sXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSGludERpcmVjdGl2ZTxDPlxuICAgIGltcGxlbWVudHMgT25EZXN0cm95LCBUdWlQb3J0YWxJdGVtPEM+LCBUdWlSZWN0QWNjZXNzb3IsIFR1aVZlaGljbGVcbntcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2UgPSBpbmplY3QoVHVpSGludFNlcnZpY2UpO1xuXG4gICAgQElucHV0KCd0dWlIaW50Q29udGV4dCcpXG4gICAgcHVibGljIGNvbnRleHQ/OiBDO1xuXG4gICAgQElucHV0KCd0dWlIaW50QXBwZWFyYW5jZScpXG4gICAgcHVibGljIGFwcGVhcmFuY2UgPSBpbmplY3QoVFVJX0hJTlRfT1BUSU9OUykuYXBwZWFyYW5jZTtcblxuICAgIEBPdXRwdXQoJ3R1aUhpbnRWaXNpYmxlJylcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmlzaWJsZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIHB1YmxpYyBjb250ZW50ID0gc2lnbmFsPFBvbHltb3JwaGV1c0NvbnRlbnQ8Qz4+KG51bGwpO1xuICAgIHB1YmxpYyBjb21wb25lbnQgPSBpbmplY3QoUG9seW1vcnBoZXVzQ29tcG9uZW50PHVua25vd24+KTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgZWwgPSB0dWlJbmplY3RFbGVtZW50KCk7XG4gICAgcHVibGljIHJlYWRvbmx5IGFjdGl2ZVpvbmU/ID0gaW5qZWN0KFR1aUFjdGl2ZVpvbmUsIHtvcHRpb25hbDogdHJ1ZX0pO1xuICAgIHB1YmxpYyByZWFkb25seSB0eXBlID0gJ2hpbnQnO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHR1aUhpbnQoY29udGVudDogUG9seW1vcnBoZXVzQ29udGVudDxDPikge1xuICAgICAgICB0aGlzLmNvbnRlbnQuc2V0KGNvbnRlbnQpO1xuXG4gICAgICAgIGlmICghY29udGVudCkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGUoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRvZ2dsZShmYWxzZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENsaWVudFJlY3QoKTogRE9NUmVjdCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b2dnbGUoc2hvdzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAoc2hvdyAmJiB0aGlzLmNvbnRlbnQoKSkge1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmFkZCh0aGlzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5yZW1vdmUodGhpcyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZpc2libGUuZW1pdChzaG93KTtcbiAgICB9XG59XG4iXX0=