/// /// Copyright 2015-2026 Micro Focus or one of its affiliates. /// /// Licensed under the Apache License, Version 2.0 (the "License"); /// you may not use this file except in compliance with the License. /// You may obtain a copy of the License at /// /// http://www.apache.org/licenses/LICENSE-2.0 /// /// Unless required by applicable law or agreed to in writing, software /// distributed under the License is distributed on an "AS IS" BASIS, /// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. /// See the License for the specific language governing permissions and /// limitations under the License. /// import { AfterViewInit, Directive, ElementRef, inject, Input } from '@angular/core'; @Directive({ selector: '[uxScrollIntoView]' }) export class ScrollIntoViewDirective implements AfterViewInit { readonly _elementRef = inject(ElementRef); /** Allow a condition around whether or not this should scroll into view */ @Input() uxScrollIntoView: boolean = true; /** Allow user to provide the browser supported options */ @Input() scrollIntoViewOptions: ScrollIntoViewOptions | boolean = true; ngAfterViewInit(): void { if (this.uxScrollIntoView) { this._elementRef.nativeElement.scrollIntoView(this.scrollIntoViewOptions); } } }