theme-lib
Version:
This is a simple example Angular Library published to npm.
127 lines • 8.05 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable } from '@angular/core';
import { Observable, Subject } from 'rxjs';
import { share } from 'rxjs/operators';
/**
* @record
*/
export function NbScrollPosition() { }
if (false) {
/** @type {?} */
NbScrollPosition.prototype.x;
/** @type {?} */
NbScrollPosition.prototype.y;
}
/*
* Layout scroll service. Provides information about current scroll position,
* as well as methods to update position of the scroll.
*
* The reason we added this service is that in Nebular there are two scroll modes:
* - the default mode when scroll is on body
* - and the `withScroll` mode, when scroll is removed from the body and moved to an element inside of the
* `nb-layout` component
*/
export class NbLayoutScrollService {
constructor() {
this.scrollPositionReq$ = new Subject();
this.manualScroll$ = new Subject();
this.scroll$ = new Subject();
}
/*
* Returns scroll position
*
* @returns {Observable<NbScrollPosition>}
*/
/**
* @return {?}
*/
getPosition() {
return Observable.create((observer) => {
/** @type {?} */
const listener = new Subject();
listener.subscribe(observer);
this.scrollPositionReq$.next({ listener });
return () => listener.complete();
});
}
/*
* Sets scroll position
*
* @param {number} x
* @param {number} y
*/
/**
* @param {?=} x
* @param {?=} y
* @return {?}
*/
scrollTo(x = null, y = null) {
this.manualScroll$.next({ x, y });
}
/*
* Returns a stream of scroll events
*
* @returns {Observable<any>}
*/
/**
* @return {?}
*/
onScroll() {
return this.scroll$.pipe(share());
}
/*
* @private
* @returns Observable<NbScrollPosition>.
*/
/**
* @return {?}
*/
onManualScroll() {
return this.manualScroll$.pipe(share());
}
/*
* @private
* @returns {Subject<any>}
*/
/**
* @return {?}
*/
onGetPosition() {
return this.scrollPositionReq$;
}
/*
* @private
* @param {any} event
*/
/**
* @param {?} event
* @return {?}
*/
fireScrollChange(event) {
this.scroll$.next(event);
}
}
NbLayoutScrollService.decorators = [
{ type: Injectable }
];
if (false) {
/**
* @type {?}
* @private
*/
NbLayoutScrollService.prototype.scrollPositionReq$;
/**
* @type {?}
* @private
*/
NbLayoutScrollService.prototype.manualScroll$;
/**
* @type {?}
* @private
*/
NbLayoutScrollService.prototype.scroll$;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly90aGVtZS1saWIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvc2Nyb2xsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBS3ZDLHNDQWFDOzs7SUFQQyw2QkFBVTs7SUFNViw2QkFBVTs7Ozs7Ozs7Ozs7QUFhWixNQUFNLE9BQU8scUJBQXFCO0lBRGxDO1FBR1UsdUJBQWtCLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztRQUN4QyxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFvQixDQUFDO1FBQ2hELFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO0lBMkR2QyxDQUFDOzs7Ozs7Ozs7SUFwREMsV0FBVztRQUNULE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQXNDLEVBQUUsRUFBRTs7a0JBQzVELFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBb0I7WUFDaEQsUUFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUUzQyxPQUFPLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7Ozs7Ozs7OztJQVFELFFBQVEsQ0FBQyxJQUFZLElBQUksRUFBRSxJQUFZLElBQUk7UUFDekMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDOzs7Ozs7Ozs7SUFPRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQU8sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7Ozs7Ozs7O0lBTUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFvQixDQUFDLENBQUM7SUFDNUQsQ0FBQzs7Ozs7Ozs7SUFNRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQzs7Ozs7Ozs7O0lBTUQsZ0JBQWdCLENBQUMsS0FBVTtRQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDOzs7WUEvREYsVUFBVTs7Ozs7OztJQUdULG1EQUFnRDs7Ozs7SUFDaEQsOENBQXdEOzs7OztJQUN4RCx3Q0FBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmliZXIgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgc2hhcmUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG4vKlxyXG4gKiBTY3JvbGwgcG9zaXRpb24gdHlwZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBOYlNjcm9sbFBvc2l0aW9uIHtcclxuXHJcbiAgLypcclxuICAgKiB4IC0gbGVmdFxyXG4gICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICovXHJcbiAgeDogbnVtYmVyO1xyXG5cclxuICAvKlxyXG4gICAqIHkgLSB0b3BcclxuICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAqL1xyXG4gIHk6IG51bWJlcjtcclxufVxyXG5cclxuLypcclxuICogTGF5b3V0IHNjcm9sbCBzZXJ2aWNlLiBQcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbixcclxuICogYXMgd2VsbCBhcyBtZXRob2RzIHRvIHVwZGF0ZSBwb3NpdGlvbiBvZiB0aGUgc2Nyb2xsLlxyXG4gKlxyXG4gKiBUaGUgcmVhc29uIHdlIGFkZGVkIHRoaXMgc2VydmljZSBpcyB0aGF0IGluIE5lYnVsYXIgdGhlcmUgYXJlIHR3byBzY3JvbGwgbW9kZXM6XHJcbiAqIC0gdGhlIGRlZmF1bHQgbW9kZSB3aGVuIHNjcm9sbCBpcyBvbiBib2R5XHJcbiAqIC0gYW5kIHRoZSBgd2l0aFNjcm9sbGAgbW9kZSwgd2hlbiBzY3JvbGwgaXMgcmVtb3ZlZCBmcm9tIHRoZSBib2R5IGFuZCBtb3ZlZCB0byBhbiBlbGVtZW50IGluc2lkZSBvZiB0aGVcclxuICogYG5iLWxheW91dGAgY29tcG9uZW50XHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBOYkxheW91dFNjcm9sbFNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIHNjcm9sbFBvc2l0aW9uUmVxJCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBwcml2YXRlIG1hbnVhbFNjcm9sbCQgPSBuZXcgU3ViamVjdDxOYlNjcm9sbFBvc2l0aW9uPigpO1xyXG4gIHByaXZhdGUgc2Nyb2xsJCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm5zIHNjcm9sbCBwb3NpdGlvblxyXG4gICAqXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8TmJTY3JvbGxQb3NpdGlvbj59XHJcbiAgICovXHJcbiAgZ2V0UG9zaXRpb24oKTogT2JzZXJ2YWJsZTxOYlNjcm9sbFBvc2l0aW9uPiB7XHJcbiAgICByZXR1cm4gT2JzZXJ2YWJsZS5jcmVhdGUoKG9ic2VydmVyOiBTdWJzY3JpYmVyPE5iU2Nyb2xsUG9zaXRpb24+KSA9PiB7XHJcbiAgICAgIGNvbnN0IGxpc3RlbmVyID0gbmV3IFN1YmplY3Q8TmJTY3JvbGxQb3NpdGlvbj4oKTtcclxuICAgICAgbGlzdGVuZXIuc3Vic2NyaWJlKG9ic2VydmVyKTtcclxuICAgICAgdGhpcy5zY3JvbGxQb3NpdGlvblJlcSQubmV4dCh7IGxpc3RlbmVyIH0pO1xyXG5cclxuICAgICAgcmV0dXJuICgpID0+IGxpc3RlbmVyLmNvbXBsZXRlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogU2V0cyBzY3JvbGwgcG9zaXRpb25cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB4XHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IHlcclxuICAgKi9cclxuICBzY3JvbGxUbyh4OiBudW1iZXIgPSBudWxsLCB5OiBudW1iZXIgPSBudWxsKSB7XHJcbiAgICB0aGlzLm1hbnVhbFNjcm9sbCQubmV4dCh7IHgsIHkgfSk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybnMgYSBzdHJlYW0gb2Ygc2Nyb2xsIGV2ZW50c1xyXG4gICAqXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8YW55Pn1cclxuICAgKi9cclxuICBvblNjcm9sbCgpIHtcclxuICAgIHJldHVybiB0aGlzLnNjcm9sbCQucGlwZShzaGFyZTxhbnk+KCkpO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8TmJTY3JvbGxQb3NpdGlvbj4uXHJcbiAgICovXHJcbiAgb25NYW51YWxTY3JvbGwoKTogT2JzZXJ2YWJsZTxOYlNjcm9sbFBvc2l0aW9uPiB7XHJcbiAgICByZXR1cm4gdGhpcy5tYW51YWxTY3JvbGwkLnBpcGUoc2hhcmU8TmJTY3JvbGxQb3NpdGlvbj4oKSk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICogQHJldHVybnMge1N1YmplY3Q8YW55Pn1cclxuICAgKi9cclxuICBvbkdldFBvc2l0aW9uKCk6IFN1YmplY3Q8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5zY3JvbGxQb3NpdGlvblJlcSQ7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICogQHBhcmFtIHthbnl9IGV2ZW50XHJcbiAgICovXHJcbiAgZmlyZVNjcm9sbENoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnNjcm9sbCQubmV4dChldmVudCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==