update help-mode module

This commit is contained in:
Dan Percic 2022-07-27 16:38:07 +03:00
parent d849082482
commit 6bd4b7e934
7 changed files with 27 additions and 14 deletions

View File

@ -19,7 +19,6 @@ import { ConnectionStatusComponent, FullPageErrorComponent } from './error';
import { IqserListingModule } from './listing';
import { IqserFiltersModule } from './filtering';
import { IqserInputsModule } from './inputs';
import { IqserHelpModeModule } from './help-mode';
import { IqserIconsModule } from './icons';
import { IqserButtonsModule } from './buttons';
import { IqserScrollbarModule } from './scrollbar';
@ -53,7 +52,6 @@ const modules = [
IqserListingModule,
IqserFiltersModule,
IqserInputsModule,
IqserHelpModeModule,
IqserScrollbarModule,
IqserEmptyStatesModule,
];
@ -82,11 +80,10 @@ const pipes = [SortByPipe, HumanizePipe, CapitalizePipe];
exports: [...components, ...pipes, ...modules],
})
export class CommonUiModule extends ModuleWithOptions {
static forRoot<
UserPreference extends BaseUserPreferenceService,
static forRoot<UserPreference extends BaseUserPreferenceService,
Config extends BaseConfigService<AppConfig>,
AppConfig extends BaseAppConfig = BaseAppConfig,
>(options: CommonUiOptions<UserPreference, Config, AppConfig>): ModuleWithProviders<CommonUiModule> {
>(options: CommonUiOptions<UserPreference, Config, AppConfig>): ModuleWithProviders<CommonUiModule> {
const userPreferenceService = this._getService(
BaseUserPreferenceService,
DefaultUserPreferenceService,

View File

@ -0,0 +1 @@
export type HelpDocs = Record<string, Record<string, string>>;

View File

@ -1,4 +1,4 @@
import { NgModule } from '@angular/core';
import { ModuleWithProviders, NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { MatDialogModule } from '@angular/material/dialog';
@ -8,6 +8,9 @@ import { HelpModeDirective } from './help-mode.directive';
import { IqserButtonsModule } from '../buttons';
import { IqserIconsModule } from '../icons';
import { HelpButtonComponent } from './help-button/help-button.component';
import { HelpModeService } from './help-mode.service';
import { HelpDocs } from './help-docs';
import { HELP_DOCS } from './tokens';
const matModules = [MatDialogModule];
const components = [HelpModeComponent, HelpModeDialogComponent, HelpModeDirective, HelpButtonComponent];
@ -17,4 +20,11 @@ const components = [HelpModeComponent, HelpModeDialogComponent, HelpModeDirectiv
imports: [CommonModule, IqserIconsModule, ...matModules, TranslateModule, IqserButtonsModule],
exports: [...components],
})
export class IqserHelpModeModule {}
export class IqserHelpModeModule {
static forRoot(helpDocs: HelpDocs): ModuleWithProviders<IqserHelpModeModule> {
return {
ngModule: IqserHelpModeModule,
providers: [{ provide: HELP_DOCS, useValue: helpDocs }, HelpModeService],
};
}
}

View File

@ -4,6 +4,7 @@ import { TranslateService } from '@ngx-translate/core';
import { BehaviorSubject, firstValueFrom } from 'rxjs';
import { HelpModeDialogComponent } from './help-mode-dialog/help-mode-dialog.component';
import { HELP_DOCS, MANUAL_BASE_URL } from './tokens';
import { HelpDocs } from './help-docs';
const VIRTUAL_SCROLL_ID = 'virtual-scroll';
const ANNOTATIONS_LIST_ID = 'annotations-list';
@ -23,9 +24,7 @@ interface Helper {
readonly dialogElement: boolean;
}
@Injectable({
providedIn: 'root',
})
@Injectable()
export class HelpModeService {
helpButtonKey: string | undefined;
private readonly _isHelpModeActive$ = new BehaviorSubject(false);
@ -37,7 +36,7 @@ export class HelpModeService {
private _dialogMode = false;
constructor(
@Inject(HELP_DOCS) private readonly _docs: Record<string, Record<string, string>>,
@Inject(HELP_DOCS) private readonly _docs: HelpDocs,
@Inject(MANUAL_BASE_URL) private readonly _manualBaseURL: string,
private readonly _dialog: MatDialog,
private readonly _rendererFactory: RendererFactory2,

View File

@ -1,4 +1,5 @@
export * from './tokens';
export * from './help-docs';
export * from './help-mode.module';
export * from './help-mode.service';
export * from './help-mode.directive';

View File

@ -1,4 +1,8 @@
import { InjectionToken } from '@angular/core';
import { inject, InjectionToken } from '@angular/core';
import { BaseConfigService } from '../services';
import { HelpDocs } from './help-docs';
export const HELP_DOCS = new InjectionToken<Record<string, Record<string, string>>>('Links to user manual or help docs');
export const MANUAL_BASE_URL = new InjectionToken<Record<string, Record<string, string>>>('Base manual URL');
export const HELP_DOCS = new InjectionToken<HelpDocs>('Links to user manual or help docs');
export const MANUAL_BASE_URL = new InjectionToken<string>('Base manual URL', {
factory: () => inject(BaseConfigService).values.MANUAL_BASE_URL,
});

View File

@ -5,4 +5,5 @@ export interface BaseAppConfig {
readonly OAUTH_CLIENT_ID: string;
readonly OAUTH_IDP_HINT: string;
readonly OAUTH_URL: string;
readonly MANUAL_BASE_URL: string;
}