import { HostConfiguration } from './app.constants'; import { LoginOptions } from './user-management/utilties/LoginOptions'; import { LoginModule } from './user-management/login.module'; import { InvitationAcceptedComponent } from './invitation-accepted/invitation-accepted.component'; import { InvitationComponent } from './invitation/invitation.component'; import { UnauthorizedComponent } from './unauthorized/unauthorized.component'; import { PaginationService } from './form/pagination/pagination-service'; import { TableOfContentsFieldComponent } from './form/tableOfContents/table-of-content-field/table-of-content-field.component'; import { ProgressBarComponent } from './form/pprogress-bar/progress-bar.component'; import { TableOfContentsSectionComponent } from './form/tableOfContents/table-of-content-section/table-of-content-section.component'; import { TableOfContentsGroupComponent } from './form/tableOfContents/table-of-content-group/table-of-content-group.component'; import { TableOfContentsFieldSetComponent } from './form/tableOfContents/table-of-content-fieldset/table-of-content-fieldset.component'; import { TableOfContentsComponent } from './form/tableOfContents/table-of-contents.component'; import { DynamicFieldRadioBoxComponent } from './form/dynamic-fields/dynamic-field-radiobox/dynamic-field-radiobox.component'; import { DynamicFieldBooleanDecisionComponent } from './form/dynamic-fields/dynamic-field-boolean-decision/dynamic-field-boolean-decision.component'; import { AutocompleteRemoteComponent } from './form/dynamic-fields/dynamic-field-autocomplete/autocomplete-remote.component'; import { DynamicFieldDropdownComponent } from './form/dynamic-fields/dynamic-field-dropdown/dynamic-field-dropdown'; import { DynamicFieldCheckBoxComponent } from './form/dynamic-fields/dynamic-field-checkbox/dynamic-field-checkbox'; import { VisibilityRulesService } from './visibility-rules/visibility-rules.service'; import { DynamicFormSectionComponent } from './form/dynamic-form-section/dynamic-form-section'; import { DynamicFormCompositeFieldComponent } from './form/dynamic-form-composite-field/dynamic-form-composite-field'; import { BrowserModule } from '@angular/platform-browser'; import { NgModule, forwardRef } from '@angular/core'; import { FormsModule, ReactiveFormsModule, NG_VALUE_ACCESSOR } from '@angular/forms'; import { HttpClientModule, HttpClient } from '@angular/common/http'; import { HttpModule } from '@angular/http'; import { RouterModule, Routes, Router } from '@angular/router'; import { AppComponent } from './app.component'; import { DynamicFormComponent } from './form/dynamic-form.component'; import { DynamicFormFieldComponent } from './form/dynamic-fields/dynamic-form-field.component'; import { DynamicFormGroupComponent } from './form/dynamic-form-group/dynamic-form-group.component'; import { AppRoutingModule } from './app-routing.module'; import { AuthGuard } from './guards/auth.guard'; import { PageNotFoundComponent } from './not-found.component'; import { HomepageComponent } from './homepage/homepage.component'; import { HTTP_INTERCEPTORS } from '@angular/common/http'; import { CommonModule } from '@angular/common'; import { TranslateModule } from '@ngx-translate/core'; import { TranslateLoader } from '@ngx-translate/core'; import { TranslateHttpLoader } from '@ngx-translate/http-loader'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { SharedModule } from './shared/shared.module'; import { MaterialModule } from './shared/material/material.module'; import { AuthService } from './services/auth/auth.service'; import { ProjectListingComponent } from './projects/project-listing.component'; import { DashboardService } from './services/dashboard/dashboard.service'; import { DatasetService } from './services/dataset/dataset.service'; import { BaseHttpService } from './utilities/cite-http-service-module/base-http.service'; import { DataManagementPlanListingComponent } from './dmps/dmp-listing.component'; import { ProjectEditorComponent } from './projects/editor/project-editor.component'; import { DataManagementPlanEditorComponent } from './dmps/editor/dmp-editor.component'; import { FigurecardComponent } from './shared/components/figurecard/figurecard.component'; import { DatasetListingComponent } from './datasets/dataset-listing.component'; import { DatasetEditorComponent } from './datasets/editor/dataset-editor.component'; import { DatasetWizardComponent } from './dataset-wizard/dataset-wizard.component'; import { AutocompleteComponent } from './shared/components/autocomplete/autocomplete.component'; @NgModule({ declarations: [ AppComponent, DynamicFormComponent, DynamicFormFieldComponent, DynamicFormGroupComponent, DynamicFormCompositeFieldComponent, DynamicFieldBooleanDecisionComponent, DynamicFieldRadioBoxComponent, TableOfContentsComponent, TableOfContentsFieldSetComponent, TableOfContentsGroupComponent, TableOfContentsSectionComponent, PageNotFoundComponent, HomepageComponent, ProjectListingComponent, DatasetListingComponent, DataManagementPlanListingComponent, AutocompleteRemoteComponent, DynamicFieldDropdownComponent, DynamicFormSectionComponent, TableOfContentsFieldComponent, ProgressBarComponent, DynamicFieldCheckBoxComponent, ProjectEditorComponent, DataManagementPlanEditorComponent, InvitationComponent, InvitationAcceptedComponent, DatasetWizardComponent, FigurecardComponent, DatasetEditorComponent, AutocompleteComponent ], imports: [ BrowserModule, ReactiveFormsModule, SharedModule, FormsModule, LoginModule.forRoot({ loginProviders: [ LoginOptions.facebookOauth, LoginOptions.googleOauth, LoginOptions.nativeLogin, LoginOptions.linkedInOauth, LoginOptions.twitterOauth ], facebookConfiguration: { clientId: "110586756143149" }, googleConfiguration: { clientId: '524432312250-sc9qsmtmbvlv05r44onl6l93ia3k9deo.apps.googleusercontent.com' }, linkedInConfiguration: { clientId: "86bl8vfk77clh9", oauthUrl: "https://www.linkedin.com/oauth/v2/authorization", redirectUri: HostConfiguration.App + "login/linkedin", accessTokenUri: "https://www.linkedin.com/oauth/v2/accessToken", clientSecret: "2OCO9e3wKylW05Tt" }, twitterConfiguration: { clientId: "HiR4hQH9HNubKC5iKQy0l4mAZ", oauthUrl: "https://api.twitter.com/oauth/authenticate" } }), HttpModule, HttpClientModule, CommonModule, AppRoutingModule, BrowserAnimationsModule, TranslateModule.forRoot({ loader: { provide: TranslateLoader, useFactory: HttpLoaderFactory, deps: [HttpClient] } }), BrowserAnimationsModule, MaterialModule ], providers: [ VisibilityRulesService, PaginationService, AuthGuard, AuthService, DashboardService, DatasetService, BaseHttpService ], entryComponents: [ InvitationComponent, ], bootstrap: [AppComponent] }) export class AppModule { constructor() { } } export function HttpLoaderFactory(httpClient: HttpClient) { return new TranslateHttpLoader(httpClient, 'assets/lang/', '.json'); }