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