@ux-aspects/ux-aspects
Version:
Open source user interface framework for building modern, responsive, mobile big data applications
30 lines • 3.8 kB
JavaScript
import { Directive, ElementRef, inject, Input } from '@angular/core';
import { ScrollIntoViewService } from './scroll-into-view.service';
import * as i0 from "@angular/core";
export class ScrollIntoViewIfDirective {
constructor() {
this._element = inject(ElementRef);
this._scrollIntoViewService = inject(ScrollIntoViewService);
this.condition = false;
}
ngOnChanges() {
if (this.condition) {
setTimeout(() => this._scrollIntoViewService.scrollIntoView(this._element.nativeElement, this.scrollParent));
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScrollIntoViewIfDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.12", type: ScrollIntoViewIfDirective, selector: "[uxScrollIntoViewIf]", inputs: { condition: ["uxScrollIntoViewIf", "condition"], scrollParent: "scrollParent" }, providers: [ScrollIntoViewService], usesOnChanges: true, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScrollIntoViewIfDirective, decorators: [{
type: Directive,
args: [{
selector: '[uxScrollIntoViewIf]',
providers: [ScrollIntoViewService]
}]
}], propDecorators: { condition: [{
type: Input,
args: ['uxScrollIntoViewIf']
}], scrollParent: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLWludG8tdmlldy1pZi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGlyZWN0aXZlcy9zY3JvbGwvc2Nyb2xsLWludG8tdmlldy1pZi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFNbkUsTUFBTSxPQUFPLHlCQUF5QjtJQUp0QztRQUtxQixhQUFRLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTlCLDJCQUFzQixHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRTNDLGNBQVMsR0FBRyxLQUFLLENBQUM7S0FRbEQ7SUFMRyxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDakgsQ0FBQztJQUNMLENBQUM7K0dBWlEseUJBQXlCO21HQUF6Qix5QkFBeUIseUlBRnZCLENBQUMscUJBQXFCLENBQUM7OzRGQUV6Qix5QkFBeUI7a0JBSnJDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsU0FBUyxFQUFFLENBQUMscUJBQXFCLENBQUM7aUJBQ3BDOzhCQU0rQixTQUFTO3NCQUFyQyxLQUFLO3VCQUFDLG9CQUFvQjtnQkFDbEIsWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTY3JvbGxJbnRvVmlld1NlcnZpY2UgfSBmcm9tICcuL3Njcm9sbC1pbnRvLXZpZXcuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3V4U2Nyb2xsSW50b1ZpZXdJZl0nLFxuICAgIHByb3ZpZGVyczogW1Njcm9sbEludG9WaWV3U2VydmljZV1cbiB9KVxuZXhwb3J0IGNsYXNzIFNjcm9sbEludG9WaWV3SWZEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnQgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zY3JvbGxJbnRvVmlld1NlcnZpY2UgPSBpbmplY3QoU2Nyb2xsSW50b1ZpZXdTZXJ2aWNlKTtcblxuICAgIEBJbnB1dCgndXhTY3JvbGxJbnRvVmlld0lmJykgY29uZGl0aW9uID0gZmFsc2U7XG4gICAgQElucHV0KCkgc2Nyb2xsUGFyZW50OiBIVE1MRWxlbWVudDtcblxuICAgIG5nT25DaGFuZ2VzKCkge1xuICAgICAgICBpZiAodGhpcy5jb25kaXRpb24pIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5fc2Nyb2xsSW50b1ZpZXdTZXJ2aWNlLnNjcm9sbEludG9WaWV3KHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCwgdGhpcy5zY3JvbGxQYXJlbnQpKTtcbiAgICAgICAgfVxuICAgIH1cbn0iXX0=