UNPKG

@taiga-ui/layout

Version:

A package with Taiga UI layout components

34 lines 5.11 kB
import { Directive, inject, signal, TemplateRef, ViewContainerRef, } from '@angular/core'; import { WaIntersectionObserverDirective } from '@ng-web-apis/intersection-observer'; import { TuiDynamicHeaderContainerDirective } from './dynamic-header-container.directive'; import * as i0 from "@angular/core"; class TuiDynamicHeaderAnchorDirective { constructor() { this.viewContainer = inject(ViewContainerRef); this.observer = inject(WaIntersectionObserverDirective); this.container = inject(TuiDynamicHeaderContainerDirective); this.templateRef = inject((TemplateRef)); this.view = this.viewContainer.createEmbeddedView(this.templateRef); this.visible = signal(false); } ngAfterViewInit() { this.observer.observe(this.view.rootNodes[0], ([e]) => { this.visible.set(!e?.isIntersecting); this.container.update(); }); } ngOnDestroy() { this.observer.unobserve(this.view.rootNodes[0]); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDynamicHeaderAnchorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiDynamicHeaderAnchorDirective, isStandalone: true, selector: "[tuiDynamicHeaderAnchor]", ngImport: i0 }); } } export { TuiDynamicHeaderAnchorDirective }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDynamicHeaderAnchorDirective, decorators: [{ type: Directive, args: [{ standalone: true, selector: '[tuiDynamicHeaderAnchor]', }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1oZWFkZXItYW5jaG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xheW91dC9jb21wb25lbnRzL2R5bmFtaWMtaGVhZGVyL2R5bmFtaWMtaGVhZGVyLWFuY2hvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxNQUFNLEVBRU4sTUFBTSxFQUNOLFdBQVcsRUFDWCxnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFFbkYsT0FBTyxFQUFDLGtDQUFrQyxFQUFDLE1BQU0sc0NBQXNDLENBQUM7O0FBRXhGLE1BSWEsK0JBQStCO0lBSjVDO1FBS3FCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekMsYUFBUSxHQUFHLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ25ELGNBQVMsR0FBRyxNQUFNLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUN4RCxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxDQUFBLFdBQW9CLENBQUEsQ0FBQyxDQUFDO1FBQzNDLFNBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvRCxZQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBWTNDO0lBVlUsZUFBZTtRQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNsRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7K0dBakJRLCtCQUErQjttR0FBL0IsK0JBQStCOztTQUEvQiwrQkFBK0I7NEZBQS9CLCtCQUErQjtrQkFKM0MsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLDBCQUEwQjtpQkFDdkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIHR5cGUgQWZ0ZXJWaWV3SW5pdCxcbiAgICBEaXJlY3RpdmUsXG4gICAgaW5qZWN0LFxuICAgIHR5cGUgT25EZXN0cm95LFxuICAgIHNpZ25hbCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7V2FJbnRlcnNlY3Rpb25PYnNlcnZlckRpcmVjdGl2ZX0gZnJvbSAnQG5nLXdlYi1hcGlzL2ludGVyc2VjdGlvbi1vYnNlcnZlcic7XG5cbmltcG9ydCB7VHVpRHluYW1pY0hlYWRlckNvbnRhaW5lckRpcmVjdGl2ZX0gZnJvbSAnLi9keW5hbWljLWhlYWRlci1jb250YWluZXIuZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1t0dWlEeW5hbWljSGVhZGVyQW5jaG9yXScsXG59KVxuZXhwb3J0IGNsYXNzIFR1aUR5bmFtaWNIZWFkZXJBbmNob3JEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lciA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9ic2VydmVyID0gaW5qZWN0KFdhSW50ZXJzZWN0aW9uT2JzZXJ2ZXJEaXJlY3RpdmUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGFpbmVyID0gaW5qZWN0KFR1aUR5bmFtaWNIZWFkZXJDb250YWluZXJEaXJlY3RpdmUpO1xuICAgIHB1YmxpYyByZWFkb25seSB0ZW1wbGF0ZVJlZiA9IGluamVjdChUZW1wbGF0ZVJlZjx1bmtub3duPik7XG4gICAgcHVibGljIHJlYWRvbmx5IHZpZXcgPSB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYpO1xuICAgIHB1YmxpYyByZWFkb25seSB2aXNpYmxlID0gc2lnbmFsKGZhbHNlKTtcblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLnZpZXcucm9vdE5vZGVzWzBdLCAoW2VdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnZpc2libGUuc2V0KCFlPy5pc0ludGVyc2VjdGluZyk7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lci51cGRhdGUoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9ic2VydmVyLnVub2JzZXJ2ZSh0aGlzLnZpZXcucm9vdE5vZGVzWzBdKTtcbiAgICB9XG59XG4iXX0=