theme-lib
Version:
This is a simple example Angular Library published to npm.
54 lines • 4.87 kB
JavaScript
/**
* @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==