import {Component, HostListener, Input} from '@angular/core'; import {CommonModule, NgOptimizedImage} from '@angular/common'; import {ThemeComponent} from '../theme/theme.component'; import {RouterLink} from '@angular/router'; @Component({ standalone: true, imports: [ CommonModule, ThemeComponent, RouterLink, NgOptimizedImage ], selector: 'app-header', templateUrl: './header.component.html', styleUrls: ['./header.component.scss'] }) export class HeaderComponent { @Input() current_page: string = ''; @Input() background_image: string = ''; @Input() height: string = ''; @Input() overlay_gradient: number = 0; public active: string = ''; public inverseYPos: number = 0; @HostListener('window:scroll', []) onWindowScroll(): void { const scrollPosition = window.scrollY; if (scrollPosition > 0) { this.active = 'active'; this.inverseYPos = (scrollPosition / 4) * -1; } else { this.active = ''; } } public getBackgroundImage() { if (this.overlay_gradient) { return `linear-gradient(rgba(0, 0, 0, ${this.overlay_gradient}), rgba(0, 0, 0, ${this.overlay_gradient})), url(${this.background_image})`; } else { return `url(${this.background_image})`; } } public getCurrentPageId(options: string[]) { if (options.includes(this.current_page)) { return 'current_page' } return null; } public getBackgroundPosition() { if (this.current_page === 'home') { return 'center ' + this.inverseYPos + 'px' } else { return ''; } } }