@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
TypeScript
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