@taiga-ui/layout
Version:
A package with Taiga UI layout components
34 lines • 5.11 kB
JavaScript
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=