UNPKG

nakedobjects.spa

Version:

Single Page Application client for a Naked Objects application.

172 lines (167 loc) 7.13 kB
import { BrowserModule } from '@angular/platform-browser'; import { NgModule, ErrorHandler, APP_INITIALIZER, LOCALE_ID } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { HttpModule } from '@angular/http'; import { RoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; import { FooterComponent } from 'nakedobjects.spa'; import { HomeComponent } from 'nakedobjects.spa'; import { ObjectComponent } from 'nakedobjects.spa'; import { ListComponent } from 'nakedobjects.spa'; import { ErrorComponent } from 'nakedobjects.spa'; import { PropertiesComponent } from 'nakedobjects.spa'; import { CollectionsComponent } from 'nakedobjects.spa'; import { DialogComponent } from 'nakedobjects.spa'; import { ParametersComponent } from 'nakedobjects.spa'; import { EditPropertyComponent } from 'nakedobjects.spa'; import { ViewPropertyComponent } from 'nakedobjects.spa'; import { EditParameterComponent } from 'nakedobjects.spa'; import { RecentComponent } from 'nakedobjects.spa'; import { ApplicationPropertiesComponent } from 'nakedobjects.spa'; import { ClickDirective } from 'nakedobjects.spa'; import { ClearDirective } from 'nakedobjects.spa'; import { ErrorService } from 'nakedobjects.spa'; import { ContextService } from 'nakedobjects.spa'; import { UrlManagerService } from 'nakedobjects.spa'; import { ClickHandlerService } from 'nakedobjects.spa'; import { RepLoaderService } from 'nakedobjects.spa'; import { ViewModelFactoryService } from 'nakedobjects.spa'; import { ColorService } from 'nakedobjects.spa'; import { MaskService } from 'nakedobjects.spa'; import { CollectionComponent } from 'nakedobjects.spa'; import { DndModule } from 'ng2-dnd'; import { ReactiveFormsModule } from '@angular/forms'; import { AttachmentComponent } from 'nakedobjects.spa'; import { MultiLineDialogComponent } from 'nakedobjects.spa'; import { ViewParameterComponent } from 'nakedobjects.spa'; import { GeminiErrorHandler } from 'nakedobjects.spa'; import { MenuBarComponent } from 'nakedobjects.spa'; import { ActionComponent } from 'nakedobjects.spa'; import { DynamicObjectComponent } from 'nakedobjects.spa' import { CustomComponentService } from 'nakedobjects.spa'; import { CustomComponentConfigService } from 'nakedobjects.spa'; import { DynamicListComponent } from 'nakedobjects.spa'; import { ConfigService, configFactory, localeFactory } from 'nakedobjects.spa'; import { LoggerService } from 'nakedobjects.spa'; import { AttachmentPropertyComponent } from 'nakedobjects.spa'; import { DynamicErrorComponent } from 'nakedobjects.spa'; import { CiceroComponent } from 'nakedobjects.spa'; import { CiceroCommandFactoryService } from 'nakedobjects.spa'; import { CiceroRendererService } from 'nakedobjects.spa'; import { ActionBarComponent } from 'nakedobjects.spa'; import { ActionListComponent } from 'nakedobjects.spa'; import { RowComponent } from 'nakedobjects.spa'; import { HeaderComponent } from 'nakedobjects.spa'; import { AuthService, Auth0AuthService, NullAuthService } from 'nakedobjects.spa'; import { AuthHttp, AuthConfig } from 'angular2-jwt'; import { Http, RequestOptions } from '@angular/http'; import { LoginComponent } from 'nakedobjects.spa'; import { LogoffComponent } from 'nakedobjects.spa'; import { CiceroContextService } from 'nakedobjects.spa'; import { DatePickerFacadeComponent } from 'nakedobjects.spa'; import { AutoCompleteComponent } from 'nakedobjects.spa'; import { DatePickerComponent } from 'nakedobjects.spa'; import { TimePickerComponent } from 'nakedobjects.spa'; import { TimePickerFacadeComponent } from 'nakedobjects.spa'; import { ObjectNotFoundErrorComponent } from 'nakedobjects.spa'; export function authHttpServiceFactory(http: Http, configService: ConfigService, options: RequestOptions): any { if (configService.config.authenticate) { return new AuthHttp(new AuthConfig({ tokenName: 'id_token' }), http, options); } else { return http; } } export function authServiceFactory(configService: ConfigService, auth0AuthService: Auth0AuthService, nullAuthService: NullAuthService): any { if (configService.config.authenticate) { return auth0AuthService; } else { return nullAuthService; } } @NgModule({ declarations: [ AppComponent, FooterComponent, HomeComponent, ObjectComponent, ListComponent, ErrorComponent, ActionListComponent, ActionBarComponent, PropertiesComponent, CollectionsComponent, DialogComponent, ParametersComponent, EditPropertyComponent, ViewPropertyComponent, EditParameterComponent, RecentComponent, ApplicationPropertiesComponent, ClickDirective, ClearDirective, CollectionComponent, AttachmentComponent, MultiLineDialogComponent, ViewParameterComponent, MenuBarComponent, ActionComponent, DynamicObjectComponent, DynamicListComponent, AttachmentPropertyComponent, DynamicErrorComponent, CiceroComponent, RowComponent, HeaderComponent, LoginComponent, LogoffComponent, DatePickerFacadeComponent, AutoCompleteComponent, DatePickerComponent, TimePickerComponent, TimePickerFacadeComponent, ObjectNotFoundErrorComponent ], entryComponents: [ ObjectComponent, ListComponent, ErrorComponent, ObjectNotFoundErrorComponent ], imports: [ BrowserModule, DndModule.forRoot(), FormsModule, HttpModule, RoutingModule, ReactiveFormsModule, ], providers: [ UrlManagerService, ClickHandlerService, ContextService, RepLoaderService, ViewModelFactoryService, ColorService, ErrorService, MaskService, CustomComponentService, // to configure custom components create implementation of ICustomComponentConfigService and bind in here { provide: CustomComponentConfigService, useClass: CustomComponentConfigService }, LoggerService, ConfigService, CiceroCommandFactoryService, CiceroRendererService, CiceroContextService, Auth0AuthService, NullAuthService, { provide: ErrorHandler, useClass: GeminiErrorHandler }, { provide: APP_INITIALIZER, useFactory: configFactory, deps: [ConfigService], multi: true }, { provide: LOCALE_ID, useFactory: localeFactory, deps: [ConfigService] }, { provide: AuthHttp, useFactory: authHttpServiceFactory, deps: [Http, ConfigService, RequestOptions] }, { provide: AuthService, useFactory: authServiceFactory, deps: [ConfigService, Auth0AuthService, NullAuthService] } ], bootstrap: [AppComponent] }) export class AppModule { }