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