UNPKG

@addapptables/perfect-scrollbar

Version:
100 lines 7.35 kB
/** * @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=