UNPKG

theme-lib

Version:

This is a simple example Angular Library published to npm.

54 lines 4.87 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable } from '@angular/core'; import { NavigationEnd, Router } from '@angular/router'; import { filter, pairwise, startWith, map } from 'rxjs/operators'; import { getPathPartOfUrl } from '../menu/url-matching-helpers'; /* * This service determines whether we should scroll the layout back to top. * This occurs when the page is changed, so when current url PATH is not equal to the previous one. * * TODO: this is most likely a temporary solutions as recently Angular introduces ViewportScroll * and scroll restoration process */ export class NbRestoreScrollTopHelper { /** * @param {?} router */ constructor(router) { this.router = router; } /** * @return {?} */ shouldRestore() { return this.router.events .pipe(startWith(null), filter(event => event === null || event instanceof NavigationEnd), pairwise(), map(([prev, current]) => this.pageChanged(prev, current)), filter(res => !!res)); } /** * @private * @param {?} prev * @param {?} current * @return {?} */ pageChanged(prev, current) { return !prev || getPathPartOfUrl(prev.url) !== getPathPartOfUrl(current.url); } } NbRestoreScrollTopHelper.decorators = [ { type: Injectable } ]; /** @nocollapse */ NbRestoreScrollTopHelper.ctorParameters = () => [ { type: Router } ]; if (false) { /** * @type {?} * @private */ NbRestoreScrollTopHelper.prototype.router; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdG9yZS1zY3JvbGwtdG9wLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly90aGVtZS1saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9sYXlvdXQvcmVzdG9yZS1zY3JvbGwtdG9wLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUd4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7O0FBVWhFLE1BQU0sT0FBTyx3QkFBd0I7Ozs7SUFFbkMsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7SUFDbEMsQ0FBQzs7OztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTthQUN0QixJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUNmLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxZQUFZLGFBQWEsQ0FBQyxFQUNqRSxRQUFRLEVBQUUsRUFDVixHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPLENBQWlDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQ3pGLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FDckIsQ0FBQztJQUNOLENBQUM7Ozs7Ozs7SUFFTyxXQUFXLENBQUMsSUFBbUIsRUFBRSxPQUFzQjtRQUM3RCxPQUFPLENBQUMsSUFBSSxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0UsQ0FBQzs7O1lBbkJGLFVBQVU7Ozs7WUFiYSxNQUFNOzs7Ozs7O0lBZ0JoQiwwQ0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IGZpbHRlciwgcGFpcndpc2UsIHN0YXJ0V2l0aCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBnZXRQYXRoUGFydE9mVXJsIH0gZnJvbSAnLi4vbWVudS91cmwtbWF0Y2hpbmctaGVscGVycyc7XHJcblxyXG4vKlxyXG4gKiBUaGlzIHNlcnZpY2UgZGV0ZXJtaW5lcyB3aGV0aGVyIHdlIHNob3VsZCBzY3JvbGwgdGhlIGxheW91dCBiYWNrIHRvIHRvcC5cclxuICogVGhpcyBvY2N1cnMgd2hlbiB0aGUgcGFnZSBpcyBjaGFuZ2VkLCBzbyB3aGVuIGN1cnJlbnQgdXJsIFBBVEggaXMgbm90IGVxdWFsIHRvIHRoZSBwcmV2aW91cyBvbmUuXHJcbiAqXHJcbiAqICBUT0RPOiB0aGlzIGlzIG1vc3QgbGlrZWx5IGEgdGVtcG9yYXJ5IHNvbHV0aW9ucyBhcyByZWNlbnRseSBBbmd1bGFyIGludHJvZHVjZXMgVmlld3BvcnRTY3JvbGxcclxuICogIGFuZCBzY3JvbGwgcmVzdG9yYXRpb24gcHJvY2Vzc1xyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTmJSZXN0b3JlU2Nyb2xsVG9wSGVscGVyIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xyXG4gIH1cclxuXHJcbiAgc2hvdWxkUmVzdG9yZSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLnJvdXRlci5ldmVudHNcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxyXG4gICAgICAgIGZpbHRlcihldmVudCA9PiBldmVudCA9PT0gbnVsbCB8fCBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpLFxyXG4gICAgICAgIHBhaXJ3aXNlKCksXHJcbiAgICAgICAgbWFwKChbcHJldiwgY3VycmVudF06IFtOYXZpZ2F0aW9uRW5kLCBOYXZpZ2F0aW9uRW5kXSkgPT4gdGhpcy5wYWdlQ2hhbmdlZChwcmV2LCBjdXJyZW50KSksXHJcbiAgICAgICAgZmlsdGVyKHJlcyA9PiAhIXJlcyksXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhZ2VDaGFuZ2VkKHByZXY6IE5hdmlnYXRpb25FbmQsIGN1cnJlbnQ6IE5hdmlnYXRpb25FbmQpIHtcclxuICAgIHJldHVybiAhcHJldiB8fCBnZXRQYXRoUGFydE9mVXJsKHByZXYudXJsKSAhPT0gZ2V0UGF0aFBhcnRPZlVybChjdXJyZW50LnVybCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==