UNPKG

theme-lib

Version:

This is a simple example Angular Library published to npm.

67 lines 5.57 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; 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 */ var NbRestoreScrollTopHelper = /** @class */ (function () { function NbRestoreScrollTopHelper(router) { this.router = router; } /** * @return {?} */ NbRestoreScrollTopHelper.prototype.shouldRestore = /** * @return {?} */ function () { var _this = this; return this.router.events .pipe(startWith(null), filter(function (event) { return event === null || event instanceof NavigationEnd; }), pairwise(), map(function (_a) { var _b = tslib_1.__read(_a, 2), prev = _b[0], current = _b[1]; return _this.pageChanged(prev, current); }), filter(function (res) { return !!res; })); }; /** * @private * @param {?} prev * @param {?} current * @return {?} */ NbRestoreScrollTopHelper.prototype.pageChanged = /** * @private * @param {?} prev * @param {?} current * @return {?} */ function (prev, current) { return !prev || getPathPartOfUrl(prev.url) !== getPathPartOfUrl(current.url); }; NbRestoreScrollTopHelper.decorators = [ { type: Injectable } ]; /** @nocollapse */ NbRestoreScrollTopHelper.ctorParameters = function () { return [ { type: Router } ]; }; return NbRestoreScrollTopHelper; }()); export { NbRestoreScrollTopHelper }; if (false) { /** * @type {?} * @private */ NbRestoreScrollTopHelper.prototype.router; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdG9yZS1zY3JvbGwtdG9wLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly90aGVtZS1saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9sYXlvdXQvcmVzdG9yZS1zY3JvbGwtdG9wLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHeEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7OztBQVNoRTtJQUdFLGtDQUFvQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNsQyxDQUFDOzs7O0lBRUQsZ0RBQWE7OztJQUFiO1FBQUEsaUJBU0M7UUFSQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTthQUN0QixJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUNmLE1BQU0sQ0FBQyxVQUFBLEtBQUssSUFBSSxPQUFBLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxZQUFZLGFBQWEsRUFBaEQsQ0FBZ0QsQ0FBQyxFQUNqRSxRQUFRLEVBQUUsRUFDVixHQUFHLENBQUMsVUFBQyxFQUErQztnQkFBL0MsMEJBQStDLEVBQTlDLFlBQUksRUFBRSxlQUFPO1lBQXNDLE9BQUEsS0FBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDO1FBQS9CLENBQStCLENBQUMsRUFDekYsTUFBTSxDQUFDLFVBQUEsR0FBRyxJQUFJLE9BQUEsQ0FBQyxDQUFDLEdBQUcsRUFBTCxDQUFLLENBQUMsQ0FDckIsQ0FBQztJQUNOLENBQUM7Ozs7Ozs7SUFFTyw4Q0FBVzs7Ozs7O0lBQW5CLFVBQW9CLElBQW1CLEVBQUUsT0FBc0I7UUFDN0QsT0FBTyxDQUFDLElBQUksSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9FLENBQUM7O2dCQW5CRixVQUFVOzs7O2dCQWJhLE1BQU07O0lBaUM5QiwrQkFBQztDQUFBLEFBcEJELElBb0JDO1NBbkJZLHdCQUF3Qjs7Ozs7O0lBRXZCLDBDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgZmlsdGVyLCBwYWlyd2lzZSwgc3RhcnRXaXRoLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGdldFBhdGhQYXJ0T2ZVcmwgfSBmcm9tICcuLi9tZW51L3VybC1tYXRjaGluZy1oZWxwZXJzJztcclxuXHJcbi8qXHJcbiAqIFRoaXMgc2VydmljZSBkZXRlcm1pbmVzIHdoZXRoZXIgd2Ugc2hvdWxkIHNjcm9sbCB0aGUgbGF5b3V0IGJhY2sgdG8gdG9wLlxyXG4gKiBUaGlzIG9jY3VycyB3aGVuIHRoZSBwYWdlIGlzIGNoYW5nZWQsIHNvIHdoZW4gY3VycmVudCB1cmwgUEFUSCBpcyBub3QgZXF1YWwgdG8gdGhlIHByZXZpb3VzIG9uZS5cclxuICpcclxuICogIFRPRE86IHRoaXMgaXMgbW9zdCBsaWtlbHkgYSB0ZW1wb3Jhcnkgc29sdXRpb25zIGFzIHJlY2VudGx5IEFuZ3VsYXIgaW50cm9kdWNlcyBWaWV3cG9ydFNjcm9sbFxyXG4gKiAgYW5kIHNjcm9sbCByZXN0b3JhdGlvbiBwcm9jZXNzXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBOYlJlc3RvcmVTY3JvbGxUb3BIZWxwZXIge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7XHJcbiAgfVxyXG5cclxuICBzaG91bGRSZXN0b3JlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMucm91dGVyLmV2ZW50c1xyXG4gICAgICAucGlwZShcclxuICAgICAgICBzdGFydFdpdGgobnVsbCksXHJcbiAgICAgICAgZmlsdGVyKGV2ZW50ID0+IGV2ZW50ID09PSBudWxsIHx8IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXHJcbiAgICAgICAgcGFpcndpc2UoKSxcclxuICAgICAgICBtYXAoKFtwcmV2LCBjdXJyZW50XTogW05hdmlnYXRpb25FbmQsIE5hdmlnYXRpb25FbmRdKSA9PiB0aGlzLnBhZ2VDaGFuZ2VkKHByZXYsIGN1cnJlbnQpKSxcclxuICAgICAgICBmaWx0ZXIocmVzID0+ICEhcmVzKSxcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGFnZUNoYW5nZWQocHJldjogTmF2aWdhdGlvbkVuZCwgY3VycmVudDogTmF2aWdhdGlvbkVuZCkge1xyXG4gICAgcmV0dXJuICFwcmV2IHx8IGdldFBhdGhQYXJ0T2ZVcmwocHJldi51cmwpICE9PSBnZXRQYXRoUGFydE9mVXJsKGN1cnJlbnQudXJsKTtcclxuICB9XHJcbn1cclxuIl19