UNPKG

ngx-tags

Version:
72 lines 4.75 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Directive, Input, ElementRef } from '@angular/core'; /* tslint:disable:directive-selector */ export class InViewDirective { /** * @param {?} el */ constructor(el) { this.el = el; this.dropdown = this.el.nativeElement.closest('.dropdown'); } /** * @param {?} values * @return {?} */ ngOnChanges(values) { if (values.InView.currentValue) { this.setInView(); } } /** * @return {?} */ setInView() { /** @type {?} */ const dropdown = this.el.nativeElement.closest('.dropdown'); /** @type {?} */ const currentPos = this.el.nativeElement.offsetTop; /** @type {?} */ const dropdownScrollPos = dropdown.scrollTop; /** @type {?} */ const dropdownHeight = dropdown.offsetHeight; /** @type {?} */ const elHeight = this.el.nativeElement.offsetHeight; if ((currentPos + elHeight) > (dropdownScrollPos + dropdownHeight)) { dropdown.scrollTop = currentPos; } else if (dropdownScrollPos > currentPos) { dropdown.scrollTop = currentPos; } } } InViewDirective.decorators = [ { type: Directive, args: [{ selector: '[InView]' },] } ]; /** @nocollapse */ InViewDirective.ctorParameters = () => [ { type: ElementRef } ]; InViewDirective.propDecorators = { InView: [{ type: Input }] }; if (false) { /** @type {?} */ InViewDirective.prototype.InView; /** * @type {?} * @private */ InViewDirective.prototype.dropdown; /** * @type {?} * @private */ InViewDirective.prototype.el; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tdmlldy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtdGFncy8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmVzL2luLXZpZXcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7O0FBTXhFLE1BQU0sT0FBTyxlQUFlOzs7O0lBSTFCLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBRjFCLGFBQVEsR0FBZ0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRXJDLENBQUM7Ozs7O0lBRXZDLFdBQVcsQ0FBQyxNQUFNO1FBQ2hCLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUU7WUFDOUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQzs7OztJQUVELFNBQVM7O2NBQ0QsUUFBUSxHQUFnQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDOztjQUNsRSxVQUFVLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUzs7Y0FDNUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLFNBQVM7O2NBQ3RDLGNBQWMsR0FBRyxRQUFRLENBQUMsWUFBWTs7Y0FDdEMsUUFBUSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFlBQVk7UUFDbkQsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixHQUFHLGNBQWMsQ0FBQyxFQUFFO1lBQ2xFLFFBQVEsQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDO1NBQ2pDO2FBQU0sSUFBSSxpQkFBaUIsR0FBRyxVQUFVLEVBQUU7WUFDekMsUUFBUSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUM7U0FDakM7SUFDSCxDQUFDOzs7WUExQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxVQUFVO2FBQ3JCOzs7O1lBTDBCLFVBQVU7OztxQkFPbEMsS0FBSzs7OztJQUFOLGlDQUFnQjs7Ozs7SUFDaEIsbUNBQTJFOzs7OztJQUUvRCw2QkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBFbGVtZW50UmVmLCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyogdHNsaW50OmRpc2FibGU6ZGlyZWN0aXZlLXNlbGVjdG9yICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbSW5WaWV3XSdcbn0pXG5leHBvcnQgY2xhc3MgSW5WaWV3RGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgSW5WaWV3O1xuICBwcml2YXRlIGRyb3Bkb3duOiBIVE1MRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbG9zZXN0KCcuZHJvcGRvd24nKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7IH1cblxuICBuZ09uQ2hhbmdlcyh2YWx1ZXMpIHtcbiAgICBpZiAodmFsdWVzLkluVmlldy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuc2V0SW5WaWV3KCk7XG4gICAgfVxuICB9XG5cbiAgc2V0SW5WaWV3KCkge1xuICAgIGNvbnN0IGRyb3Bkb3duOiBIVE1MRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbG9zZXN0KCcuZHJvcGRvd24nKTtcbiAgICBjb25zdCBjdXJyZW50UG9zID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFRvcDtcbiAgICBjb25zdCBkcm9wZG93blNjcm9sbFBvcyA9IGRyb3Bkb3duLnNjcm9sbFRvcDtcbiAgICBjb25zdCBkcm9wZG93bkhlaWdodCA9IGRyb3Bkb3duLm9mZnNldEhlaWdodDtcbiAgICBjb25zdCBlbEhlaWdodCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgaWYgKChjdXJyZW50UG9zICsgZWxIZWlnaHQpID4gKGRyb3Bkb3duU2Nyb2xsUG9zICsgZHJvcGRvd25IZWlnaHQpKSB7XG4gICAgICBkcm9wZG93bi5zY3JvbGxUb3AgPSBjdXJyZW50UG9zO1xuICAgIH0gZWxzZSBpZiAoZHJvcGRvd25TY3JvbGxQb3MgPiBjdXJyZW50UG9zKSB7XG4gICAgICBkcm9wZG93bi5zY3JvbGxUb3AgPSBjdXJyZW50UG9zO1xuICAgIH1cbiAgfVxufVxuIl19