2019-08-09 19:13:18 +03:00
|
|
|
///
|
|
|
|
|
/// 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';
|
2019-10-31 10:06:57 +02:00
|
|
|
import {TodoDialogComponent} from '@core/services/dialog/todo-dialog.component';
|
2019-09-19 20:10:52 +03:00
|
|
|
import { HotkeyModule } from 'angular2-hotkeys';
|
2019-08-09 19:13:18 +03:00
|
|
|
|
|
|
|
|
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
|
2019-08-09 19:13:18 +03:00
|
|
|
],
|
|
|
|
|
declarations: [
|
|
|
|
|
ConfirmDialogComponent,
|
2019-08-21 13:36:39 +03:00
|
|
|
AlertDialogComponent,
|
|
|
|
|
TodoDialogComponent
|
2019-08-09 19:13:18 +03:00
|
|
|
],
|
|
|
|
|
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
|
|
|
|
|
}
|
|
|
|
|
}),
|
2019-09-19 20:10:52 +03:00
|
|
|
HotkeyModule.forRoot(),
|
2019-08-09 19:13:18 +03:00
|
|
|
|
|
|
|
|
// 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 {
|
|
|
|
|
}
|