theme-lib
Version:
This is a simple example Angular Library published to npm.
105 lines • 6.82 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { InjectionToken, Optional, Inject, Injectable } from '@angular/core';
import { ReplaySubject } from 'rxjs';
import { share } from 'rxjs/operators';
/** @enum {string} */
const NbLayoutDirection = {
LTR: 'ltr',
RTL: 'rtl',
};
export { NbLayoutDirection };
;
/*
* Layout direction setting injection token.
* */
/** @type {?} */
export const NB_LAYOUT_DIRECTION = new InjectionToken('Layout direction');
/*
* Layout Direction Service.
* Allows to set or get layout direction and listen to its changes
*/
export class NbLayoutDirectionService {
/**
* @param {?=} direction
*/
constructor(direction = NbLayoutDirection.LTR) {
this.direction = direction;
this.$directionChange = new ReplaySubject(1);
this.setDirection(direction);
}
/*
* Returns true if layout direction set to left to right.
* @returns boolean.
* */
/**
* @return {?}
*/
isLtr() {
return this.direction === NbLayoutDirection.LTR;
}
/*
* Returns true if layout direction set to right to left.
* @returns boolean.
* */
/**
* @return {?}
*/
isRtl() {
return this.direction === NbLayoutDirection.RTL;
}
/*
* Returns current layout direction.
* @returns NbLayoutDirection.
* */
/**
* @return {?}
*/
getDirection() {
return this.direction;
}
/*
* Sets layout direction
* @param {NbLayoutDirection} direction
*/
/**
* @param {?} direction
* @return {?}
*/
setDirection(direction) {
this.direction = direction;
this.$directionChange.next(direction);
}
/*
* Triggered when direction was changed.
* @returns Observable<NbLayoutDirection>.
*/
/**
* @return {?}
*/
onDirectionChange() {
return this.$directionChange.pipe(share());
}
}
NbLayoutDirectionService.decorators = [
{ type: Injectable }
];
/** @nocollapse */
NbLayoutDirectionService.ctorParameters = () => [
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NB_LAYOUT_DIRECTION,] }] }
];
if (false) {
/**
* @type {?}
* @private
*/
NbLayoutDirectionService.prototype.$directionChange;
/**
* @type {?}
* @private
*/
NbLayoutDirectionService.prototype.direction;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly90aGVtZS1saWIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvZGlyZWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztJQU1yQyxLQUFNLEtBQUs7SUFDWCxLQUFNLEtBQUs7OztBQUNaLENBQUM7Ozs7O0FBS0YsTUFBTSxPQUFPLG1CQUFtQixHQUFHLElBQUksY0FBYyxDQUFvQixrQkFBa0IsQ0FBQzs7Ozs7QUFPNUYsTUFBTSxPQUFPLHdCQUF3Qjs7OztJQUduQyxZQUNtRCxZQUFZLGlCQUFpQixDQUFDLEdBQUc7UUFBakMsY0FBUyxHQUFULFNBQVMsQ0FBd0I7UUFINUUscUJBQWdCLEdBQUcsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFLOUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQixDQUFDOzs7Ozs7OztJQU1NLEtBQUs7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLEtBQUssaUJBQWlCLENBQUMsR0FBRyxDQUFDO0lBQ2xELENBQUM7Ozs7Ozs7O0lBTU0sS0FBSztRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxpQkFBaUIsQ0FBQyxHQUFHLENBQUM7SUFDbEQsQ0FBQzs7Ozs7Ozs7SUFNRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7Ozs7Ozs7OztJQU1ELFlBQVksQ0FBQyxTQUE0QjtRQUN2QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7Ozs7Ozs7O0lBTUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBcUIsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7OztZQWpERixVQUFVOzs7OzRDQUtOLFFBQVEsWUFBSSxNQUFNLFNBQUMsbUJBQW1COzs7Ozs7O0lBSHpDLG9EQUFnRDs7Ozs7SUFHOUMsNkNBQWtGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsLCBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBzaGFyZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbi8qXHJcbiAqIExheW91dCBkaXJlY3Rpb24uXHJcbiAqICovXHJcbmV4cG9ydCBlbnVtIE5iTGF5b3V0RGlyZWN0aW9uIHtcclxuICBMVFIgPSAnbHRyJyxcclxuICBSVEwgPSAncnRsJyxcclxufTtcclxuXHJcbi8qXHJcbiAqIExheW91dCBkaXJlY3Rpb24gc2V0dGluZyBpbmplY3Rpb24gdG9rZW4uXHJcbiAqICovXHJcbmV4cG9ydCBjb25zdCBOQl9MQVlPVVRfRElSRUNUSU9OID0gbmV3IEluamVjdGlvblRva2VuPE5iTGF5b3V0RGlyZWN0aW9uPignTGF5b3V0IGRpcmVjdGlvbicpO1xyXG5cclxuLypcclxuICogTGF5b3V0IERpcmVjdGlvbiBTZXJ2aWNlLlxyXG4gKiBBbGxvd3MgdG8gc2V0IG9yIGdldCBsYXlvdXQgZGlyZWN0aW9uIGFuZCBsaXN0ZW4gdG8gaXRzIGNoYW5nZXNcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE5iTGF5b3V0RGlyZWN0aW9uU2VydmljZSB7XHJcbiAgcHJpdmF0ZSAkZGlyZWN0aW9uQ2hhbmdlID0gbmV3IFJlcGxheVN1YmplY3QoMSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChOQl9MQVlPVVRfRElSRUNUSU9OKSBwcml2YXRlIGRpcmVjdGlvbiA9IE5iTGF5b3V0RGlyZWN0aW9uLkxUUixcclxuICApIHtcclxuICAgIHRoaXMuc2V0RGlyZWN0aW9uKGRpcmVjdGlvbik7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybnMgdHJ1ZSBpZiBsYXlvdXQgZGlyZWN0aW9uIHNldCB0byBsZWZ0IHRvIHJpZ2h0LlxyXG4gICAqIEByZXR1cm5zIGJvb2xlYW4uXHJcbiAgICogKi9cclxuICBwdWJsaWMgaXNMdHIoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXJlY3Rpb24gPT09IE5iTGF5b3V0RGlyZWN0aW9uLkxUUjtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJucyB0cnVlIGlmIGxheW91dCBkaXJlY3Rpb24gc2V0IHRvIHJpZ2h0IHRvIGxlZnQuXHJcbiAgICogQHJldHVybnMgYm9vbGVhbi5cclxuICAgKiAqL1xyXG4gIHB1YmxpYyBpc1J0bCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmRpcmVjdGlvbiA9PT0gTmJMYXlvdXREaXJlY3Rpb24uUlRMO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm5zIGN1cnJlbnQgbGF5b3V0IGRpcmVjdGlvbi5cclxuICAgKiBAcmV0dXJucyBOYkxheW91dERpcmVjdGlvbi5cclxuICAgKiAqL1xyXG4gIGdldERpcmVjdGlvbigpOiBOYkxheW91dERpcmVjdGlvbiB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXJlY3Rpb247XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIFNldHMgbGF5b3V0IGRpcmVjdGlvblxyXG4gICAqIEBwYXJhbSB7TmJMYXlvdXREaXJlY3Rpb259IGRpcmVjdGlvblxyXG4gICAqL1xyXG4gIHNldERpcmVjdGlvbihkaXJlY3Rpb246IE5iTGF5b3V0RGlyZWN0aW9uKSB7XHJcbiAgICB0aGlzLmRpcmVjdGlvbiA9IGRpcmVjdGlvbjtcclxuICAgIHRoaXMuJGRpcmVjdGlvbkNoYW5nZS5uZXh0KGRpcmVjdGlvbik7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIFRyaWdnZXJlZCB3aGVuIGRpcmVjdGlvbiB3YXMgY2hhbmdlZC5cclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPE5iTGF5b3V0RGlyZWN0aW9uPi5cclxuICAgKi9cclxuICBvbkRpcmVjdGlvbkNoYW5nZSgpOiBPYnNlcnZhYmxlPE5iTGF5b3V0RGlyZWN0aW9uPiB7XHJcbiAgICByZXR1cm4gdGhpcy4kZGlyZWN0aW9uQ2hhbmdlLnBpcGUoc2hhcmU8TmJMYXlvdXREaXJlY3Rpb24+KCkpO1xyXG4gIH1cclxufVxyXG4iXX0=