UNPKG

@memberjunction/ng-shared

Version:

MemberJunction: MJ Explorer Angular Shared Package - utility functions and other reusable elements used across other MJ Angular packages within the MJ Explorer App - do not use outside of MJ Explorer.

93 lines 2.78 kB
import { Observable } from 'rxjs'; import { UserEntity } from '@memberjunction/core-entities'; import * as i0 from "@angular/core"; /** * Service to manage Developer Mode functionality across Explorer apps. * * Developer Mode shows additional debugging tools and developer-focused * features in the UI. Only users with Developer, Admin, or System Administrator * roles can enable developer mode. * * Settings are persisted using the MJ: User Settings entity via UserInfoEngine. * * Usage: * ```typescript * constructor(private devMode: DeveloperModeService) {} * * async ngOnInit() { * await this.devMode.Initialize(userEntity); * * // Subscribe to changes * this.devMode.IsEnabled$.subscribe(enabled => { * this.showDevTools = enabled; * }); * } * ``` */ export declare class DeveloperModeService { private _isEnabled$; private _isDeveloper$; private _initialized; private _currentUser; private static readonly DEVELOPER_ROLES; /** * Observable for developer mode enabled state. * Emits whenever developer mode is toggled. */ get IsEnabled$(): Observable<boolean>; /** * Observable for whether user has developer role. * This determines if they CAN enable developer mode. */ get IsDeveloper$(): Observable<boolean>; /** * Current enabled state (synchronous access) */ get IsEnabled(): boolean; /** * Whether user has developer role (synchronous access) */ get IsDeveloper(): boolean; /** * Whether the service has been initialized */ get IsInitialized(): boolean; /** * Initialize service with current user. * Call this after login/authentication completes. */ Initialize(user: UserEntity): Promise<void>; /** * Toggle developer mode on/off. * Only works if user has developer role. * @returns The new state, or false if user cannot enable dev mode */ Toggle(): Promise<boolean>; /** * Enable developer mode (if user has developer role) */ Enable(): Promise<void>; /** * Disable developer mode */ Disable(): Promise<void>; /** * Reset the service (e.g., on logout) */ Reset(): void; /** * Load the developer mode setting from User Settings entity */ private LoadSetting; /** * Save the developer mode setting to User Settings entity */ private SaveSetting; /** * Check if user has a developer role by querying User Roles entity */ private CheckDeveloperRole; static ɵfac: i0.ɵɵFactoryDeclaration<DeveloperModeService, never>; static ɵprov: i0.ɵɵInjectableDeclaration<DeveloperModeService>; } //# sourceMappingURL=developer-mode.service.d.ts.map