@ux-aspects/ux-aspects
Version:
Open source user interface framework for building modern, responsive, mobile big data applications
29 lines • 3.45 kB
JavaScript
import { Directive, ElementRef, inject, Input } from '@angular/core';
import * as i0 from "@angular/core";
export class ScrollIntoViewDirective {
constructor() {
this._elementRef = inject(ElementRef);
/** Allow a condition around whether or not this should scroll into view */
this.uxScrollIntoView = true;
/** Allow user to provide the browser supported options */
this.scrollIntoViewOptions = true;
}
ngAfterViewInit() {
if (this.uxScrollIntoView) {
this._elementRef.nativeElement.scrollIntoView(this.scrollIntoViewOptions);
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScrollIntoViewDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.12", type: ScrollIntoViewDirective, selector: "[uxScrollIntoView]", inputs: { uxScrollIntoView: "uxScrollIntoView", scrollIntoViewOptions: "scrollIntoViewOptions" }, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScrollIntoViewDirective, decorators: [{
type: Directive,
args: [{
selector: '[uxScrollIntoView]'
}]
}], propDecorators: { uxScrollIntoView: [{
type: Input
}], scrollIntoViewOptions: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLWludG8tdmlldy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGlyZWN0aXZlcy9zY3JvbGwvc2Nyb2xsLWludG8tdmlldy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBS3BGLE1BQU0sT0FBTyx1QkFBdUI7SUFIcEM7UUFJYSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUxQywyRUFBMkU7UUFDbEUscUJBQWdCLEdBQVksSUFBSSxDQUFDO1FBRTFDLDBEQUEwRDtRQUNqRCwwQkFBcUIsR0FBb0MsSUFBSSxDQUFDO0tBTzFFO0lBTEcsZUFBZTtRQUNYLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzlFLENBQUM7SUFDTCxDQUFDOytHQWJRLHVCQUF1QjttR0FBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQUhuQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvQkFBb0I7aUJBQ2pDOzhCQUtZLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFHRyxxQkFBcUI7c0JBQTdCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdXhTY3JvbGxJbnRvVmlld10nXG59KVxuZXhwb3J0IGNsYXNzIFNjcm9sbEludG9WaWV3RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgcmVhZG9ubHkgX2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgICAvKiogQWxsb3cgYSBjb25kaXRpb24gYXJvdW5kIHdoZXRoZXIgb3Igbm90IHRoaXMgc2hvdWxkIHNjcm9sbCBpbnRvIHZpZXcgKi9cbiAgICBASW5wdXQoKSB1eFNjcm9sbEludG9WaWV3OiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKiBBbGxvdyB1c2VyIHRvIHByb3ZpZGUgdGhlIGJyb3dzZXIgc3VwcG9ydGVkIG9wdGlvbnMgKi9cbiAgICBASW5wdXQoKSBzY3JvbGxJbnRvVmlld09wdGlvbnM6IFNjcm9sbEludG9WaWV3T3B0aW9ucyB8IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy51eFNjcm9sbEludG9WaWV3KSB7XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcodGhpcy5zY3JvbGxJbnRvVmlld09wdGlvbnMpO1xuICAgICAgICB9XG4gICAgfVxufSJdfQ==