thingsboard/ui-ngx/src/app/core/core.module.ts

106 lines
3.4 KiB
TypeScript
Raw Normal View History

///
/// Copyright © 2016-2019 The Thingsboard Authors
///
/// 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 { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { HTTP_INTERCEPTORS, HttpClient, HttpClientModule } from '@angular/common/http';
import { StoreModule } from '@ngrx/store';
import { EffectsModule } from '@ngrx/effects';
import { StoreDevtoolsModule } from '@ngrx/store-devtools';
import { GlobalHttpInterceptor } from './interceptors/global-http-interceptor';
import { effects, metaReducers, reducers } from './core.state';
import { environment as env } from '@env/environment';
import {
MissingTranslationHandler,
TranslateCompiler,
TranslateLoader,
TranslateModule
} from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { TbMissingTranslationHandler } from './translate/missing-translate-handler';
import { MatButtonModule, MatDialogModule, MatSnackBarModule } from '@angular/material';
import { ConfirmDialogComponent } from '@core/services/dialog/confirm-dialog.component';
import { FlexLayoutModule } from '@angular/flex-layout';
import { TranslateDefaultCompiler } from '@core/translate/translate-default-compiler';
import { AlertDialogComponent } from '@core/services/dialog/alert-dialog.component';
import { WINDOW_PROVIDERS } from '@core/services/window.service';
import {TodoDialogComponent} from '@core/services/dialog/todo-dialog.component';
import { HotkeyModule } from 'angular2-hotkeys';
export function HttpLoaderFactory(http: HttpClient) {
return new TranslateHttpLoader(http, './assets/locale/locale.constant-', '.json');
}
@NgModule({
entryComponents: [
ConfirmDialogComponent,
2019-08-21 13:36:39 +03:00
AlertDialogComponent,
TodoDialogComponent
],
declarations: [
ConfirmDialogComponent,
2019-08-21 13:36:39 +03:00
AlertDialogComponent,
TodoDialogComponent
],
imports: [
CommonModule,
HttpClientModule,
FlexLayoutModule.withConfig({addFlexToParent: false}),
MatDialogModule,
MatButtonModule,
MatSnackBarModule,
// ngx-translate
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [HttpClient]
},
missingTranslationHandler: {
provide: MissingTranslationHandler,
useClass: TbMissingTranslationHandler
},
compiler: {
provide: TranslateCompiler,
useClass: TranslateDefaultCompiler
}
}),
HotkeyModule.forRoot(),
// ngrx
StoreModule.forRoot(reducers, { metaReducers }),
EffectsModule.forRoot(effects),
env.production
? []
: StoreDevtoolsModule.instrument({
name: env.appTitle
})
],
providers: [
{
provide: HTTP_INTERCEPTORS,
useClass: GlobalHttpInterceptor,
multi: true
},
WINDOW_PROVIDERS
],
exports: []
})
export class CoreModule {
}