/* Copyright (c) 2019 AT&T Intellectual Property. # | |
# # | |
# Licensed under the Apache License, Version 2.0 (the "License"); # | |
# you may not use this file except in compliance with the License. # | |
# You may obtain a copy of the License at # | |
# # | |
# http://www.apache.org/licenses/LICENSE-2.0 # | |
# # | |
# Unless required by applicable law or agreed to in writing, software # | |
# distributed under the License is distributed on an "AS IS" BASIS, # | |
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # | |
# See the License for the specific language governing permissions and # | |
# limitations under the License. # | |
##############################################################################*/ | |
import {CommonModule} from '@angular/common'; | |
import {HTTP_INTERCEPTORS, HttpClient, HttpClientModule} from '@angular/common/http'; | |
import {NgModule} from '@angular/core'; | |
import {BrowserModule} from '@angular/platform-browser'; | |
import {BrowserAnimationsModule} from '@angular/platform-browser/animations'; | |
import {TranslateLoader, TranslateModule} from '@ngx-translate/core'; | |
import {TranslateHttpLoader} from '@ngx-translate/http-loader'; | |
import {AppRoutingModule} from './app-routing.module'; | |
import {AppComponent} from './app.component'; | |
import {AuthGuard, AdminGuard, SharedPipesModule, PageHeaderModule} from './shared'; | |
import {FormsModule} from '@angular/forms'; | |
import {ListService} from './shared/services/list.service'; | |
import {MatButtonModule, MatDatepickerModule, MatDialogModule, MatIconModule, MatInputModule, MatRadioModule, MatMenu, MatMenuModule} from '@angular/material'; | |
import {AppGlobals} from './app.global'; | |
import {ErrorInterceptor} from './error.interceptor'; | |
import {CookieService} from 'ngx-cookie-service'; | |
import {NgxMaterialTimepickerModule} from 'ngx-material-timepicker'; | |
import { SocketIoModule, SocketIoConfig } from 'ngx-socket-io'; | |
import { FeathersService } from './shared/services/feathers.service'; | |
import { CoreModule } from './core/core.module'; | |
import { AbilityModule } from '@casl/angular' | |
const config: SocketIoConfig = { url: '/', options: {transports: ['websocket']} }; | |
// AoT requires an exported function for factories | |
export const createTranslateLoader = (http: HttpClient) => { | |
/* for development | |
return new TranslateHttpLoader( | |
http, | |
'/start-angular/SB-Admin-BS4-Angular-6/master/dist/assets/i18n/', | |
'.json' | |
); */ | |
return new TranslateHttpLoader(http, './assets/i18n/', '.json'); | |
}; | |
@NgModule({ | |
imports: [ | |
CommonModule, | |
BrowserModule, | |
FormsModule, | |
PageHeaderModule, | |
BrowserAnimationsModule, | |
HttpClientModule, | |
TranslateModule.forRoot({ | |
loader: { | |
provide: TranslateLoader, | |
useFactory: createTranslateLoader, | |
deps: [HttpClient] | |
} | |
}), | |
AppRoutingModule, | |
SharedPipesModule, | |
NgxMaterialTimepickerModule.forRoot(), | |
MatButtonModule, | |
MatDialogModule, | |
MatRadioModule, | |
MatInputModule, | |
MatIconModule, | |
MatDatepickerModule, | |
SocketIoModule.forRoot(config), | |
CoreModule, | |
MatMenuModule, | |
AbilityModule.forRoot() | |
], | |
declarations: [ | |
AppComponent, | |
], | |
providers: [ | |
FeathersService, {provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true}, AuthGuard, AdminGuard, ListService, AppGlobals, CookieService], | |
bootstrap: [AppComponent] | |
}) | |
export class AppModule { | |
} |