@addapptables/perfect-scrollbar
Version:
Perfect scrollbar library for angular
100 lines • 7.35 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Directive, ElementRef, HostListener, Input } from '@angular/core';
import PerfectScrollbar from 'perfect-scrollbar';
import { Router, NavigationEnd, NavigationError, NavigationCancel } from '@angular/router';
import { filter, delay } from 'rxjs/operators';
export class PerfectScrollbarDirective {
/**
* @param {?} _elementRef
* @param {?} _router
*/
constructor(_elementRef, _router) {
this._elementRef = _elementRef;
this._router = _router;
this.allSub = new Array();
this.options = {};
}
/**
* @param {?} value
* @return {?}
*/
set perfectScrollOptions(value) {
this.options = value;
}
/**
* @return {?}
*/
onResize() {
this.ps && this.ps.update();
}
/**
* @return {?}
*/
ngAfterViewInit() {
this.initPerfectScroll();
/** @type {?} */
const navigationEnd$ = this._router.events
.pipe(filter((/**
* @param {?} event
* @return {?}
*/
(event) => event instanceof NavigationEnd || event instanceof NavigationError || event instanceof NavigationCancel)), delay(100))
.subscribe((/**
* @return {?}
*/
() => {
this.ps && this.ps.update();
}));
this.allSub.push(navigationEnd$);
}
/**
* @return {?}
*/
initPerfectScroll() {
this.ps = new PerfectScrollbar(this._elementRef.nativeElement, {});
}
/**
* @return {?}
*/
ngOnDestroy() {
this.ps && this.ps.destroy();
this.allSub.forEach((/**
* @param {?} x
* @return {?}
*/
x => x.unsubscribe()));
}
}
PerfectScrollbarDirective.decorators = [
{ type: Directive, args: [{
selector: '[addapptablesPerfectScrollbar]'
},] }
];
/** @nocollapse */
PerfectScrollbarDirective.ctorParameters = () => [
{ type: ElementRef },
{ type: Router }
];
PerfectScrollbarDirective.propDecorators = {
perfectScrollOptions: [{ type: Input }],
onResize: [{ type: HostListener, args: ['window:resize',] }]
};
if (false) {
/** @type {?} */
PerfectScrollbarDirective.prototype.ps;
/** @type {?} */
PerfectScrollbarDirective.prototype.options;
/** @type {?} */
PerfectScrollbarDirective.prototype.allSub;
/**
* @type {?}
* @private
*/
PerfectScrollbarDirective.prototype._elementRef;
/** @type {?} */
PerfectScrollbarDirective.prototype._router;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyZmVjdC1zY3JvbGxiYXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFkZGFwcHRhYmxlcy9wZXJmZWN0LXNjcm9sbGJhci8iLCJzb3VyY2VzIjpbImxpYi9wZXJmZWN0LXNjcm9sbGJhci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBYSxLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sZ0JBQWdCLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0YsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU0vQyxNQUFNLE9BQU8seUJBQXlCOzs7OztJQVFsQyxZQUFvQixXQUF1QixFQUFXLE9BQWU7UUFBakQsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFBVyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBRnJFLFdBQU0sR0FBRyxJQUFJLEtBQUssRUFBZ0IsQ0FBQztRQUcvQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDOzs7OztJQUVELElBQ0ksb0JBQW9CLENBQUMsS0FBSztRQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDOzs7O0lBR0QsUUFBUTtRQUNKLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQyxDQUFDOzs7O0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDOztjQUNuQixjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNO2FBQ3JDLElBQUksQ0FDRCxNQUFNOzs7O1FBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssWUFBWSxhQUFhLElBQUksS0FBSyxZQUFZLGVBQWUsSUFBSSxLQUFLLFlBQVksZ0JBQWdCLEVBQUMsRUFDMUgsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUNiO2FBQ0EsU0FBUzs7O1FBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hDLENBQUMsRUFBQztRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7Ozs7SUFFRCxpQkFBaUI7UUFDYixJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdkUsQ0FBQzs7OztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUMsQ0FBQztJQUM5QyxDQUFDOzs7WUE3Q0osU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxnQ0FBZ0M7YUFDN0M7Ozs7WUFSbUIsVUFBVTtZQUVyQixNQUFNOzs7bUNBbUJWLEtBQUs7dUJBS0wsWUFBWSxTQUFDLGVBQWU7Ozs7SUFmN0IsdUNBQXFCOztJQUVyQiw0Q0FBYTs7SUFFYiwyQ0FBbUM7Ozs7O0lBRXZCLGdEQUErQjs7SUFBRSw0Q0FBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgT25EZXN0cm95LCBJbnB1dCwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgUGVyZmVjdFNjcm9sbGJhciBmcm9tICdwZXJmZWN0LXNjcm9sbGJhcic7XHJcbmltcG9ydCB7IFJvdXRlciwgTmF2aWdhdGlvbkVuZCwgTmF2aWdhdGlvbkVycm9yLCBOYXZpZ2F0aW9uQ2FuY2VsIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgZmlsdGVyLCBkZWxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW2FkZGFwcHRhYmxlc1BlcmZlY3RTY3JvbGxiYXJdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUGVyZmVjdFNjcm9sbGJhckRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gICAgcHM6IFBlcmZlY3RTY3JvbGxiYXI7XHJcblxyXG4gICAgb3B0aW9uczogYW55O1xyXG5cclxuICAgIGFsbFN1YiA9IG5ldyBBcnJheTxTdWJzY3JpcHRpb24+KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcmVhZG9ubHkgX3JvdXRlcjogUm91dGVyKSB7XHJcbiAgICAgICAgdGhpcy5vcHRpb25zID0ge307XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHNldCBwZXJmZWN0U2Nyb2xsT3B0aW9ucyh2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxyXG4gICAgb25SZXNpemUoKSB7XHJcbiAgICAgICAgdGhpcy5wcyAmJiB0aGlzLnBzLnVwZGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmluaXRQZXJmZWN0U2Nyb2xsKCk7XHJcbiAgICAgICAgY29uc3QgbmF2aWdhdGlvbkVuZCQgPSB0aGlzLl9yb3V0ZXIuZXZlbnRzXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kIHx8IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVycm9yIHx8IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkNhbmNlbCksXHJcbiAgICAgICAgICAgICAgICBkZWxheSgxMDApXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBzICYmIHRoaXMucHMudXBkYXRlKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuYWxsU3ViLnB1c2gobmF2aWdhdGlvbkVuZCQpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXRQZXJmZWN0U2Nyb2xsKCkge1xyXG4gICAgICAgIHRoaXMucHMgPSBuZXcgUGVyZmVjdFNjcm9sbGJhcih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHt9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnBzICYmIHRoaXMucHMuZGVzdHJveSgpO1xyXG4gICAgICAgIHRoaXMuYWxsU3ViLmZvckVhY2goeCA9PiB4LnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=