@taiga-ui/layout
Version:
A package with Taiga UI layout components
34 lines • 5.09 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1oZWFkZXItYW5jaG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xheW91dC9jb21wb25lbnRzL2R5bmFtaWMtaGVhZGVyL2R5bmFtaWMtaGVhZGVyLWFuY2hvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUVuRixPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQzs7QUFFeEYsTUFJYSwrQkFBK0I7SUFKNUM7UUFLcUIsa0JBQWEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN6QyxhQUFRLEdBQUcsTUFBTSxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDbkQsY0FBUyxHQUFHLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQ3hELGdCQUFXLEdBQUcsTUFBTSxDQUFDLENBQUEsV0FBb0IsQ0FBQSxDQUFDLENBQUM7UUFDM0MsU0FBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9ELFlBQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7S0FZM0M7SUFWVSxlQUFlO1FBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQzsrR0FqQlEsK0JBQStCO21HQUEvQiwrQkFBK0I7O1NBQS9CLCtCQUErQjs0RkFBL0IsK0JBQStCO2tCQUozQyxTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsMEJBQTBCO2lCQUN2QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEaXJlY3RpdmUsIGluamVjdCwgc2lnbmFsLCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1dhSW50ZXJzZWN0aW9uT2JzZXJ2ZXJEaXJlY3RpdmV9IGZyb20gJ0BuZy13ZWItYXBpcy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXInO1xuXG5pbXBvcnQge1R1aUR5bmFtaWNIZWFkZXJDb250YWluZXJEaXJlY3RpdmV9IGZyb20gJy4vZHluYW1pYy1oZWFkZXItY29udGFpbmVyLmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdbdHVpRHluYW1pY0hlYWRlckFuY2hvcl0nLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEeW5hbWljSGVhZGVyQW5jaG9yRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXIgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBvYnNlcnZlciA9IGluamVjdChXYUludGVyc2VjdGlvbk9ic2VydmVyRGlyZWN0aXZlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRhaW5lciA9IGluamVjdChUdWlEeW5hbWljSGVhZGVyQ29udGFpbmVyRGlyZWN0aXZlKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWY8dW5rbm93bj4pO1xuICAgIHB1YmxpYyByZWFkb25seSB2aWV3ID0gdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmlzaWJsZSA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcy52aWV3LnJvb3ROb2Rlc1swXSwgKFtlXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy52aXNpYmxlLnNldCghZT8uaXNJbnRlcnNlY3RpbmcpO1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXIudXBkYXRlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlci51bm9ic2VydmUodGhpcy52aWV3LnJvb3ROb2Rlc1swXSk7XG4gICAgfVxufVxuIl19