Files
dspace-angular/src/config/app-config.interface.ts

48 lines
1.7 KiB
TypeScript

import { InjectionToken } from '@angular/core';
import { makeStateKey } from '@angular/platform-browser';
import { Config } from './config.interface';
import { ServerConfig } from './server-config.interface';
import { CacheConfig } from './cache-config.interface';
import { UniversalConfig } from './universal-config.interface';
import { INotificationBoardOptions } from './notifications-config.interfaces';
import { SubmissionConfig } from './submission-config.interface';
import { FormConfig } from './form-config.interfaces';
import { LangConfig } from './lang-config.interface';
import { ItemPageConfig } from './item-page-config.interface';
import { CollectionPageConfig } from './collection-page-config.interface';
import { ThemeConfig } from './theme.model';
import { AuthConfig } from './auth-config.interfaces';
import { UIServerConfig } from './ui-server-config.interface';
import { MediaViewerConfig } from './media-viewer-config.interface';
import { BrowseByConfig } from './browse-by-config.interface';
interface AppConfig extends Config {
ui: UIServerConfig;
rest: ServerConfig;
production: boolean;
cache: CacheConfig;
auth?: AuthConfig;
form: FormConfig;
notifications: INotificationBoardOptions;
submission: SubmissionConfig;
universal: UniversalConfig;
debug: boolean;
defaultLanguage: string;
languages: LangConfig[];
browseBy: BrowseByConfig;
item: ItemPageConfig;
collection: CollectionPageConfig;
themes: ThemeConfig[];
mediaViewer: MediaViewerConfig;
}
const APP_CONFIG = new InjectionToken<AppConfig>('APP_CONFIG');
const APP_CONFIG_STATE = makeStateKey('APP_CONFIG_STATE');
export {
AppConfig,
APP_CONFIG,
APP_CONFIG_STATE
};