@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
JavaScript
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==