clearml-web/src/app/app.module.ts

95 lines
3.9 KiB
TypeScript
Raw Normal View History

2020-06-04 15:07:14 +00:00
import {APP_INITIALIZER, NgModule} from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
import {PreloadAllModules, RouteReuseStrategy, RouterModule} from '@angular/router';
import {BusinessLogicModule} from './business-logic/business-logic.module';
import {AppComponent} from './app.component';
import {routes} from './app.routes';
import {SMCoreModule} from './core/core.module';
2021-05-11 13:45:36 +00:00
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
2021-07-26 09:56:51 +00:00
import {CommonLayoutModule} from '@common/layout/layout.module';
2020-06-04 15:07:14 +00:00
import {HTTP_INTERCEPTORS} from '@angular/common/http';
2021-07-26 09:56:51 +00:00
import {WebappInterceptor} from '@common/core/interceptors/webapp-interceptor';
import {CustomReuseStrategy} from '@common/core/router-reuse-strategy';
import {UserPreferences} from '@common/user-preferences';
2020-06-04 15:07:14 +00:00
import {AngularSplitModule} from 'angular-split';
2021-07-26 09:56:51 +00:00
import {NotifierModule} from '@common/angular-notifier';
2020-06-04 15:07:14 +00:00
import {LayoutModule} from './layout/layout.module';
2021-07-26 09:56:51 +00:00
import {ColorHashService} from '@common/shared/services/color-hash/color-hash.service';
2020-09-10 13:45:48 +00:00
import {SharedModule} from './shared/shared.module';
2021-07-26 09:56:51 +00:00
import {ConfigurationService} from '@common/shared/services/configuration.service';
import {ProjectsSharedModule} from './features/projects/shared/projects-shared.module';
2023-05-23 13:02:13 +00:00
import {MAT_FORM_FIELD_DEFAULT_OPTIONS} from '@angular/material/form-field';
import {LoginService} from '~/shared/services/login.service';
2023-03-29 15:04:17 +00:00
import {ExperimentSharedModule} from '~/features/experiments/shared/experiment-shared.module';
import {loadUserAndPreferences} from '~/core/app-init';
import {MAT_TOOLTIP_DEFAULT_OPTIONS, MatTooltipDefaultOptions} from '@angular/material/tooltip';
import {UpdateNotifierComponent} from '@common/shared/ui-components/overlay/update-notifier/update-notifier.component';
import {ChooseColorModule} from '@common/shared/ui-components/directives/choose-color/choose-color.module';
import {SpinnerComponent} from '@common/shared/ui-components/overlay/spinner/spinner.component';
import { MatButtonModule } from '@angular/material/button';
import { MatInputModule } from '@angular/material/input';
import { MatFormFieldModule } from '@angular/material/form-field';
import { UploadArtifactDialogComponent } from '@common/shared/ui-components/overlay/upload-artifact-dialog/upload-artifact-dialog.component';
2020-06-04 15:07:14 +00:00
@NgModule({
2021-07-26 09:56:51 +00:00
declarations : [AppComponent],
2020-09-10 13:45:48 +00:00
imports: [
2023-03-29 15:04:17 +00:00
ExperimentSharedModule,
2020-06-04 15:07:14 +00:00
FormsModule,
2021-05-11 13:45:36 +00:00
ReactiveFormsModule,
2020-06-04 15:07:14 +00:00
BrowserAnimationsModule,
2021-05-11 13:45:36 +00:00
ProjectsSharedModule,
2020-06-04 15:07:14 +00:00
BrowserModule,
SMCoreModule,
BusinessLogicModule,
2021-05-11 13:45:36 +00:00
AngularSplitModule,
2020-09-10 13:45:48 +00:00
RouterModule.forRoot(routes, {
preloadingStrategy: PreloadAllModules,
scrollPositionRestoration: 'top',
onSameUrlNavigation: 'reload'
}),
2020-06-04 15:07:14 +00:00
NotifierModule.withConfig({
2020-09-10 13:45:48 +00:00
theme: 'material',
2020-06-04 15:07:14 +00:00
behaviour: {
autoHide: {default: 5000, error: false}
},
2020-09-10 13:45:48 +00:00
position: {
vertical: {position: 'top', distance: 12, gap: 10},
2020-06-04 15:07:14 +00:00
horizontal: {position: 'right', distance: 12}
}
}),
CommonLayoutModule,
LayoutModule,
2020-09-10 13:45:48 +00:00
SharedModule,
UpdateNotifierComponent,
ChooseColorModule,
SpinnerComponent,
MatButtonModule,
MatInputModule,
MatFormFieldModule,
UploadArtifactDialogComponent
2020-06-04 15:07:14 +00:00
],
providers : [
UserPreferences,
2021-05-11 13:45:36 +00:00
{provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: {floatLabel: 'always'}},
2020-06-04 15:07:14 +00:00
{
provide : APP_INITIALIZER,
deps: [LoginService, ConfigurationService],
2020-06-04 15:07:14 +00:00
useFactory: loadUserAndPreferences,
multi : true,
},
ColorHashService,
2021-07-26 09:56:51 +00:00
{provide: HTTP_INTERCEPTORS, useClass: WebappInterceptor, multi: true},
2020-06-04 15:07:14 +00:00
{provide: RouteReuseStrategy, useClass: CustomReuseStrategy},
2021-01-18 14:30:25 +00:00
{
provide: MAT_TOOLTIP_DEFAULT_OPTIONS,
useValue: {position: 'above'} as MatTooltipDefaultOptions
}
2020-06-04 15:07:14 +00:00
],
bootstrap : [AppComponent],
exports : []
})
2020-09-10 13:45:48 +00:00
export class AppModule {}