UNPKG

@bimeister/pupakit.kit

Version:

PupaKit is an open source collection of Angular components based on an atomic approach to building interfaces, which guarantees better performance and greater development flexibility.

24 lines 4.28 kB
import { Injectable } from '@angular/core'; import { DARK_THEME_CLASS, LIGHT_THEME_CLASS, Theme, ThemeService } from '@bimeister/pupakit.common'; import '@bimeister/utilities'; import { BehaviorSubject, combineLatest } from 'rxjs'; import { map } from 'rxjs/operators'; import * as i0 from "@angular/core"; import * as i1 from "@bimeister/pupakit.common"; export class ThemeWrapperService { constructor(themeService) { this.themeService = themeService; this.themeState$ = new BehaviorSubject(null); this.theme$ = combineLatest([this.themeService.theme$, this.themeState$]).pipe(map(([globalTheme, localTheme]) => localTheme ?? globalTheme)); this.themeClass$ = this.theme$.pipe(map((theme) => (theme === Theme.Dark ? DARK_THEME_CLASS : LIGHT_THEME_CLASS))); } setTheme(theme) { this.themeState$.next(theme); } } ThemeWrapperService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ThemeWrapperService, deps: [{ token: i1.ThemeService }], target: i0.ɵɵFactoryTarget.Injectable }); ThemeWrapperService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ThemeWrapperService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ThemeWrapperService, decorators: [{ type: Injectable }], ctorParameters: function () { return [{ type: i1.ThemeService }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtd3JhcHBlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdGhlbWUtd3JhcHBlci9zZXJ2aWNlcy90aGVtZS13cmFwcGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JHLE9BQXlCLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBR3JDLE1BQU0sT0FBTyxtQkFBbUI7SUFXOUIsWUFBNkIsWUFBMEI7UUFBMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFWdEMsZ0JBQVcsR0FBcUMsSUFBSSxlQUFlLENBQWtCLElBQUksQ0FBQyxDQUFDO1FBRTVGLFdBQU0sR0FBc0IsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUMxRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQWlCLEVBQUUsRUFBRSxDQUFDLFVBQVUsSUFBSSxXQUFXLENBQUMsQ0FDOUUsQ0FBQztRQUVjLGdCQUFXLEdBQXVCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNoRSxHQUFHLENBQUMsQ0FBQyxLQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQ3JGLENBQUM7SUFFd0QsQ0FBQztJQUVwRCxRQUFRLENBQUMsS0FBWTtRQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDOztpSEFmVSxtQkFBbUI7cUhBQW5CLG1CQUFtQjs0RkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgREFSS19USEVNRV9DTEFTUywgTElHSFRfVEhFTUVfQ0xBU1MsIFRoZW1lLCBUaGVtZVNlcnZpY2UgfSBmcm9tICdAYmltZWlzdGVyL3B1cGFraXQuY29tbW9uJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGJpbWVpc3Rlci91dGlsaXRpZXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUaGVtZVdyYXBwZXJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSB0aGVtZVN0YXRlJDogQmVoYXZpb3JTdWJqZWN0PE51bGxhYmxlPFRoZW1lPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE51bGxhYmxlPFRoZW1lPj4obnVsbCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHRoZW1lJDogT2JzZXJ2YWJsZTxUaGVtZT4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnRoZW1lU2VydmljZS50aGVtZSQsIHRoaXMudGhlbWVTdGF0ZSRdKS5waXBlKFxuICAgIG1hcCgoW2dsb2JhbFRoZW1lLCBsb2NhbFRoZW1lXTogW1RoZW1lLCBUaGVtZV0pID0+IGxvY2FsVGhlbWUgPz8gZ2xvYmFsVGhlbWUpXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHRoZW1lQ2xhc3MkOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLnRoZW1lJC5waXBlKFxuICAgIG1hcCgodGhlbWU6IFRoZW1lKSA9PiAodGhlbWUgPT09IFRoZW1lLkRhcmsgPyBEQVJLX1RIRU1FX0NMQVNTIDogTElHSFRfVEhFTUVfQ0xBU1MpKVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgdGhlbWVTZXJ2aWNlOiBUaGVtZVNlcnZpY2UpIHt9XG5cbiAgcHVibGljIHNldFRoZW1lKHRoZW1lOiBUaGVtZSk6IHZvaWQge1xuICAgIHRoaXMudGhlbWVTdGF0ZSQubmV4dCh0aGVtZSk7XG4gIH1cbn1cbiJdfQ==