ngx-tags
Version:
To install this library, run:
78 lines • 5.1 kB
JavaScript
/**
* @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 */
var InViewDirective = /** @class */ (function () {
function InViewDirective(el) {
this.el = el;
this.dropdown = this.el.nativeElement.closest('.dropdown');
}
/**
* @param {?} values
* @return {?}
*/
InViewDirective.prototype.ngOnChanges = /**
* @param {?} values
* @return {?}
*/
function (values) {
if (values.InView.currentValue) {
this.setInView();
}
};
/**
* @return {?}
*/
InViewDirective.prototype.setInView = /**
* @return {?}
*/
function () {
/** @type {?} */
var dropdown = this.el.nativeElement.closest('.dropdown');
/** @type {?} */
var currentPos = this.el.nativeElement.offsetTop;
/** @type {?} */
var dropdownScrollPos = dropdown.scrollTop;
/** @type {?} */
var dropdownHeight = dropdown.offsetHeight;
/** @type {?} */
var 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 = function () { return [
{ type: ElementRef }
]; };
InViewDirective.propDecorators = {
InView: [{ type: Input }]
};
return InViewDirective;
}());
export { InViewDirective };
if (false) {
/** @type {?} */
InViewDirective.prototype.InView;
/**
* @type {?}
* @private
*/
InViewDirective.prototype.dropdown;
/**
* @type {?}
* @private
*/
InViewDirective.prototype.el;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tdmlldy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtdGFncy8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmVzL2luLXZpZXcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7O0FBR3hFO0lBT0UseUJBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBRjFCLGFBQVEsR0FBZ0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRXJDLENBQUM7Ozs7O0lBRXZDLHFDQUFXOzs7O0lBQVgsVUFBWSxNQUFNO1FBQ2hCLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUU7WUFDOUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQzs7OztJQUVELG1DQUFTOzs7SUFBVDs7WUFDUSxRQUFRLEdBQWdCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7O1lBQ2xFLFVBQVUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTOztZQUM1QyxpQkFBaUIsR0FBRyxRQUFRLENBQUMsU0FBUzs7WUFDdEMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxZQUFZOztZQUN0QyxRQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsWUFBWTtRQUNuRCxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEdBQUcsY0FBYyxDQUFDLEVBQUU7WUFDbEUsUUFBUSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUM7U0FDakM7YUFBTSxJQUFJLGlCQUFpQixHQUFHLFVBQVUsRUFBRTtZQUN6QyxRQUFRLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQztTQUNqQztJQUNILENBQUM7O2dCQTFCRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLFVBQVU7aUJBQ3JCOzs7O2dCQUwwQixVQUFVOzs7eUJBT2xDLEtBQUs7O0lBdUJSLHNCQUFDO0NBQUEsQUEzQkQsSUEyQkM7U0F4QlksZUFBZTs7O0lBQzFCLGlDQUFnQjs7Ozs7SUFDaEIsbUNBQTJFOzs7OztJQUUvRCw2QkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBFbGVtZW50UmVmLCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyogdHNsaW50OmRpc2FibGU6ZGlyZWN0aXZlLXNlbGVjdG9yICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbSW5WaWV3XSdcbn0pXG5leHBvcnQgY2xhc3MgSW5WaWV3RGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgSW5WaWV3O1xuICBwcml2YXRlIGRyb3Bkb3duOiBIVE1MRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbG9zZXN0KCcuZHJvcGRvd24nKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7IH1cblxuICBuZ09uQ2hhbmdlcyh2YWx1ZXMpIHtcbiAgICBpZiAodmFsdWVzLkluVmlldy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuc2V0SW5WaWV3KCk7XG4gICAgfVxuICB9XG5cbiAgc2V0SW5WaWV3KCkge1xuICAgIGNvbnN0IGRyb3Bkb3duOiBIVE1MRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbG9zZXN0KCcuZHJvcGRvd24nKTtcbiAgICBjb25zdCBjdXJyZW50UG9zID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFRvcDtcbiAgICBjb25zdCBkcm9wZG93blNjcm9sbFBvcyA9IGRyb3Bkb3duLnNjcm9sbFRvcDtcbiAgICBjb25zdCBkcm9wZG93bkhlaWdodCA9IGRyb3Bkb3duLm9mZnNldEhlaWdodDtcbiAgICBjb25zdCBlbEhlaWdodCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgaWYgKChjdXJyZW50UG9zICsgZWxIZWlnaHQpID4gKGRyb3Bkb3duU2Nyb2xsUG9zICsgZHJvcGRvd25IZWlnaHQpKSB7XG4gICAgICBkcm9wZG93bi5zY3JvbGxUb3AgPSBjdXJyZW50UG9zO1xuICAgIH0gZWxzZSBpZiAoZHJvcGRvd25TY3JvbGxQb3MgPiBjdXJyZW50UG9zKSB7XG4gICAgICBkcm9wZG93bi5zY3JvbGxUb3AgPSBjdXJyZW50UG9zO1xuICAgIH1cbiAgfVxufVxuIl19