UNPKG

ontimize-web-ngx

Version:
50 lines 7.15 kB
import { DOCUMENT } from '@angular/common'; import { inject, Injectable, Injector } from '@angular/core'; import { BehaviorSubject } from 'rxjs'; import { LocalStorageService } from './local-storage.service'; import * as i0 from "@angular/core"; export class AppearanceService { constructor(injector) { this.injector = injector; this.darkThemeClass = 'o-dark'; this.isDarkModeSubject = new BehaviorSubject(false); this.isDarkMode$ = this.isDarkModeSubject.asObservable(); this.localStorageService = this.injector.get(LocalStorageService); this._document = inject(DOCUMENT); const config = this.localStorageService.getStoredData(); this.isDarkMode$.subscribe(x => this.updateThemeClass(x)); if (config && config["theme"] && typeof config["theme"].isDark === 'boolean') { const isDark = config["theme"].isDark; this.isDarkModeSubject.next(isDark); } } setDarkMode(isDarkMode) { const config = this.localStorageService.getStoredData(); if (config) { config["theme"] = config["theme"] || {}; config["theme"].isDark = isDarkMode; } this.localStorageService.setLocalStorage(config); this.isDarkModeSubject.next(isDarkMode); } isDarkMode() { return this.isDarkModeSubject.value; } updateThemeClass(isDark) { if (isDark) { this._document.body.classList.add(this.darkThemeClass); } else { this._document.body.classList.remove(this.darkThemeClass); } } } AppearanceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppearanceService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); AppearanceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppearanceService, providedIn: 'root' }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppearanceService, decorators: [{ type: Injectable, args: [{ providedIn: 'root', }] }], ctorParameters: function () { return [{ type: i0.Injector }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwZWFyYW5jZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3NlcnZpY2VzL2FwcGVhcmFuY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFHbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBTTlELE1BQU0sT0FBTyxpQkFBaUI7SUFRNUIsWUFBc0IsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVAvQixtQkFBYyxHQUFHLFFBQVEsQ0FBQztRQUUzQixzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNoRSxnQkFBVyxHQUF3QixJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFLdkUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXhELElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFMUQsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDNUUsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUN0QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3JDO0lBRUgsQ0FBQztJQUVELFdBQVcsQ0FBQyxVQUFtQjtRQUM3QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDeEQsSUFBSSxNQUFNLEVBQUU7WUFDVixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4QyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQztTQUNyQztRQUNELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQztJQUN0QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsTUFBZ0I7UUFDL0IsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUN4RDthQUFNO1lBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDM0Q7SUFDSCxDQUFDOzsrR0ExQ1UsaUJBQWlCO21IQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs0RkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFwcENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy9hcHAtY29uZmlnJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFwcGVhcmFuY2VTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgZGFya1RoZW1lQ2xhc3MgPSAnby1kYXJrJztcblxuICBwcml2YXRlIGlzRGFya01vZGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIGlzRGFya01vZGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5pc0RhcmtNb2RlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgcHJvdGVjdGVkIF9hcHBDb25maWc6IEFwcENvbmZpZztcbiAgcHJvdGVjdGVkIF9kb2N1bWVudDogRG9jdW1lbnQ7XG4gIHByb3RlY3RlZCBsb2NhbFN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlO1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoTG9jYWxTdG9yYWdlU2VydmljZSk7XG4gICAgdGhpcy5fZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5nZXRTdG9yZWREYXRhKCk7XG5cbiAgICB0aGlzLmlzRGFya01vZGUkLnN1YnNjcmliZSh4ID0+IHRoaXMudXBkYXRlVGhlbWVDbGFzcyh4KSk7XG5cbiAgICBpZiAoY29uZmlnICYmIGNvbmZpZ1tcInRoZW1lXCJdICYmIHR5cGVvZiBjb25maWdbXCJ0aGVtZVwiXS5pc0RhcmsgPT09ICdib29sZWFuJykge1xuICAgICAgY29uc3QgaXNEYXJrID0gY29uZmlnW1widGhlbWVcIl0uaXNEYXJrO1xuICAgICAgdGhpcy5pc0RhcmtNb2RlU3ViamVjdC5uZXh0KGlzRGFyayk7XG4gICAgfVxuXG4gIH1cblxuICBzZXREYXJrTW9kZShpc0RhcmtNb2RlOiBib29sZWFuKSB7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldFN0b3JlZERhdGEoKTtcbiAgICBpZiAoY29uZmlnKSB7XG4gICAgICBjb25maWdbXCJ0aGVtZVwiXSA9IGNvbmZpZ1tcInRoZW1lXCJdIHx8IHt9O1xuICAgICAgY29uZmlnW1widGhlbWVcIl0uaXNEYXJrID0gaXNEYXJrTW9kZTtcbiAgICB9XG4gICAgdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldExvY2FsU3RvcmFnZShjb25maWcpO1xuICAgIHRoaXMuaXNEYXJrTW9kZVN1YmplY3QubmV4dChpc0RhcmtNb2RlKTtcbiAgfVxuXG4gIGlzRGFya01vZGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNEYXJrTW9kZVN1YmplY3QudmFsdWU7XG4gIH1cblxuICB1cGRhdGVUaGVtZUNsYXNzKGlzRGFyaz86IGJvb2xlYW4pIHtcbiAgICBpZiAoaXNEYXJrKSB7XG4gICAgICB0aGlzLl9kb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQodGhpcy5kYXJrVGhlbWVDbGFzcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLmRhcmtUaGVtZUNsYXNzKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==