UNPKG

theme-lib

Version:

This is a simple example Angular Library published to npm.

117 lines 7.84 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /* * @license * Copyright Akveo. All Rights Reserved. * Licensed under the MIT License. See License.txt in the project root for license information. */ import { Injectable } from '@angular/core'; import { Subject } from 'rxjs'; import { share } from 'rxjs/operators'; /* * Sidebar service. * * Root module service to control the sidebar from any part of the app. * * Allows you to change sidebar state dynamically from any part of the app: * @stacked-example(Sidebar State, sidebar/sidebar-toggle.component) */ export class NbSidebarService { constructor() { this.toggle$ = new Subject(); this.expand$ = new Subject(); this.collapse$ = new Subject(); } /* * Subscribe to toggle events * * @returns Observable<{ compact: boolean, tag: string }> */ /** * @return {?} */ onToggle() { return this.toggle$.pipe(share()); } /* * Subscribe to expand events * @returns Observable<{ tag: string }> */ /** * @return {?} */ onExpand() { return this.expand$.pipe(share()); } /* * Subscribe to collapse evens * @returns Observable<{ tag: string }> */ /** * @return {?} */ onCollapse() { return this.collapse$.pipe(share()); } /* * Toggle a sidebar * @param {boolean} compact * @param {string} tag If you have multiple sidebars on the page, mark them with `tag` input property and pass it here * to specify which sidebar you want to control */ /** * @param {?=} compact * @param {?=} tag * @return {?} */ toggle(compact = false, tag) { this.toggle$.next({ compact, tag }); } /* * Expands a sidebar * @param {string} tag If you have multiple sidebars on the page, mark them with `tag` input property and pass it here * to specify which sidebar you want to control */ /** * @param {?=} tag * @return {?} */ expand(tag) { this.expand$.next({ tag }); } /* * Collapses a sidebar * @param {string} tag If you have multiple sidebars on the page, mark them with `tag` input property and pass it here * to specify which sidebar you want to control */ /** * @param {?=} tag * @return {?} */ collapse(tag) { this.collapse$.next({ tag }); } } NbSidebarService.decorators = [ { type: Injectable } ]; if (false) { /** * @type {?} * @private */ NbSidebarService.prototype.toggle$; /** * @type {?} * @private */ NbSidebarService.prototype.expand$; /** * @type {?} * @private */ NbSidebarService.prototype.collapse$; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vdGhlbWUtbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvc2lkZWJhci9zaWRlYmFyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBTUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBV3ZDLE1BQU0sT0FBTyxnQkFBZ0I7SUFEN0I7UUFHVSxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQXFDLENBQUM7UUFDM0QsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFtQixDQUFDO1FBQ3pDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBbUIsQ0FBQztJQXVEckQsQ0FBQzs7Ozs7Ozs7O0lBaERDLFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7Ozs7Ozs7SUFNRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Ozs7Ozs7O0lBTUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN0QyxDQUFDOzs7Ozs7Ozs7Ozs7SUFRRCxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssRUFBRSxHQUFZO1FBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7Ozs7Ozs7OztJQU9ELE1BQU0sQ0FBQyxHQUFZO1FBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDOzs7Ozs7Ozs7O0lBT0QsUUFBUSxDQUFDLEdBQVk7UUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7OztZQTFERixVQUFVOzs7Ozs7O0lBR1QsbUNBQW1FOzs7OztJQUNuRSxtQ0FBaUQ7Ozs7O0lBQ2pELHFDQUFtRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBBa3Zlby4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cclxuICovXHJcblxyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgc2hhcmUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG4vKlxyXG4gKiBTaWRlYmFyIHNlcnZpY2UuXHJcbiAqXHJcbiAqIFJvb3QgbW9kdWxlIHNlcnZpY2UgdG8gY29udHJvbCB0aGUgc2lkZWJhciBmcm9tIGFueSBwYXJ0IG9mIHRoZSBhcHAuXHJcbiAqXHJcbiAqIEFsbG93cyB5b3UgdG8gY2hhbmdlIHNpZGViYXIgc3RhdGUgZHluYW1pY2FsbHkgZnJvbSBhbnkgcGFydCBvZiB0aGUgYXBwOlxyXG4gKiBAc3RhY2tlZC1leGFtcGxlKFNpZGViYXIgU3RhdGUsIHNpZGViYXIvc2lkZWJhci10b2dnbGUuY29tcG9uZW50KVxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTmJTaWRlYmFyU2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgdG9nZ2xlJCA9IG5ldyBTdWJqZWN0PHsgY29tcGFjdDogYm9vbGVhbiwgdGFnOiBzdHJpbmcgfT4oKTtcclxuICBwcml2YXRlIGV4cGFuZCQgPSBuZXcgU3ViamVjdDx7IHRhZzogc3RyaW5nIH0+KCk7XHJcbiAgcHJpdmF0ZSBjb2xsYXBzZSQgPSBuZXcgU3ViamVjdDx7IHRhZzogc3RyaW5nIH0+KCk7XHJcblxyXG4gIC8qXHJcbiAgICogU3Vic2NyaWJlIHRvIHRvZ2dsZSBldmVudHNcclxuICAgKlxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8eyBjb21wYWN0OiBib29sZWFuLCB0YWc6IHN0cmluZyB9PlxyXG4gICAqL1xyXG4gIG9uVG9nZ2xlKCk6IE9ic2VydmFibGU8eyBjb21wYWN0OiBib29sZWFuLCB0YWc6IHN0cmluZyB9PiB7XHJcbiAgICByZXR1cm4gdGhpcy50b2dnbGUkLnBpcGUoc2hhcmUoKSk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIFN1YnNjcmliZSB0byBleHBhbmQgZXZlbnRzXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx7IHRhZzogc3RyaW5nIH0+XHJcbiAgICovXHJcbiAgb25FeHBhbmQoKTogT2JzZXJ2YWJsZTx7IHRhZzogc3RyaW5nIH0+IHtcclxuICAgIHJldHVybiB0aGlzLmV4cGFuZCQucGlwZShzaGFyZSgpKTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogU3Vic2NyaWJlIHRvIGNvbGxhcHNlIGV2ZW5zXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx7IHRhZzogc3RyaW5nIH0+XHJcbiAgICovXHJcbiAgb25Db2xsYXBzZSgpOiBPYnNlcnZhYmxlPHsgdGFnOiBzdHJpbmcgfT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29sbGFwc2UkLnBpcGUoc2hhcmUoKSk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIFRvZ2dsZSBhIHNpZGViYXJcclxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGNvbXBhY3RcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFnIElmIHlvdSBoYXZlIG11bHRpcGxlIHNpZGViYXJzIG9uIHRoZSBwYWdlLCBtYXJrIHRoZW0gd2l0aCBgdGFnYCBpbnB1dCBwcm9wZXJ0eSBhbmQgcGFzcyBpdCBoZXJlXHJcbiAgICogdG8gc3BlY2lmeSB3aGljaCBzaWRlYmFyIHlvdSB3YW50IHRvIGNvbnRyb2xcclxuICAgKi9cclxuICB0b2dnbGUoY29tcGFjdCA9IGZhbHNlLCB0YWc/OiBzdHJpbmcpIHtcclxuICAgIHRoaXMudG9nZ2xlJC5uZXh0KHsgY29tcGFjdCwgdGFnIH0pO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICAgKiBFeHBhbmRzIGEgc2lkZWJhclxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YWcgSWYgeW91IGhhdmUgbXVsdGlwbGUgc2lkZWJhcnMgb24gdGhlIHBhZ2UsIG1hcmsgdGhlbSB3aXRoIGB0YWdgIGlucHV0IHByb3BlcnR5IGFuZCBwYXNzIGl0IGhlcmVcclxuICAgKiB0byBzcGVjaWZ5IHdoaWNoIHNpZGViYXIgeW91IHdhbnQgdG8gY29udHJvbFxyXG4gICAqL1xyXG4gIGV4cGFuZCh0YWc/OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZXhwYW5kJC5uZXh0KHsgdGFnIH0pO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICAgKiBDb2xsYXBzZXMgYSBzaWRlYmFyXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhZyBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBzaWRlYmFycyBvbiB0aGUgcGFnZSwgbWFyayB0aGVtIHdpdGggYHRhZ2AgaW5wdXQgcHJvcGVydHkgYW5kIHBhc3MgaXQgaGVyZVxyXG4gICAqIHRvIHNwZWNpZnkgd2hpY2ggc2lkZWJhciB5b3Ugd2FudCB0byBjb250cm9sXHJcbiAgICovXHJcbiAgY29sbGFwc2UodGFnPzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmNvbGxhcHNlJC5uZXh0KHsgdGFnIH0pO1xyXG4gIH1cclxuXHJcbn1cclxuIl19