194d2e0095d3323fc0a6fe3d47fa2d396751b296
[sdc.git] / catalog-ui / src / app / ng2 / app.module.ts
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 import {BrowserModule} from '@angular/platform-browser';
22 import {NgModule, APP_INITIALIZER} from '@angular/core';
23 import {FormsModule} from '@angular/forms';
24 import {forwardRef} from '@angular/core';
25 import {AppComponent} from './app.component';
26 import {UpgradeAdapter} from '@angular/upgrade';
27 import {UpgradeModule} from '@angular/upgrade/static';
28 import {PropertiesAssignmentModule} from './pages/properties-assignment/properties-assignment.module';
29 import {
30     DataTypesServiceProvider, SharingServiceProvider, CookieServiceProvider, StateServiceFactory,
31     StateParamsServiceFactory, CacheServiceProvider, EventListenerServiceProvider, ScopeServiceFactory,
32     NotificationServiceProvider
33 } from "./utils/ng1-upgraded-provider";
34 import {ConfigService} from "./services/config.service";
35 import {HttpModule} from '@angular/http';
36 import {HttpService} from './services/http.service';
37 import {AuthenticationService} from './services/authentication.service';
38 import {Cookie2Service} from "./services/cookie.service";
39 import {ComponentServiceNg2} from "./services/component-services/component.service";
40 import {ComponentServiceFactoryNg2} from "./services/component-services/component.service.factory";
41 import {ServiceServiceNg2} from "./services/component-services/service.service";
42 import {ComponentInstanceServiceNg2} from "./services/component-instance-services/component-instance.service";
43 import {ModalService} from "./services/modal.service";
44 import {UiElementsModule} from "./components/ui/ui-elements.module";
45 import {ConnectionWizardModule} from "./pages/connection-wizard/connection-wizard.module";
46 import {InterfaceOperationModule} from "./pages/interface-operation/interface-operation.module";
47 import {OperationCreatorModule} from "./pages/interface-operation/operation-creator/operation-creator.module";
48 import {LayoutModule} from "./components/layout/layout.module";
49 import {UserService} from "./services/user.service";
50 import {PoliciesService} from "./services/policies.service";
51 import {DynamicComponentService} from "./services/dynamic-component.service";
52 import {SdcConfig} from "./config/sdc-config.config";
53 import { TranslateModule } from "./shared/translator/translate.module";
54 import { TranslationServiceConfig } from "./config/translation.service.config";
55 import {ServicePathCreatorModule} from './pages/service-path-creator/service-path-creator.module';
56 import {ServicePathsListModule} from './pages/service-paths-list/service-paths-list.module';
57 import {PluginFrameModule} from "./components/ui/plugin/plugin-frame.module";
58 import {PluginsService} from "./services/plugins.service";
59 import {EventBusService} from "./services/event-bus.service";
60 import {ServicePathModule} from 'app/ng2/components/logic/service-path/service-path.module';
61 import {ServicePathSelectorModule} from 'app/ng2/components/logic/service-path-selector/service-path-selector.module';
62
63 export const upgradeAdapter = new UpgradeAdapter(forwardRef(() => AppModule));
64
65 export function configServiceFactory(config:ConfigService) {
66     return () => {
67         config.loadValidationConfiguration();
68         config.loadPluginsConfiguration();
69     }
70 }
71
72
73 @NgModule({
74     declarations: [
75         AppComponent
76     ],
77     imports: [
78         BrowserModule,
79         UpgradeModule,
80         FormsModule,
81         HttpModule,
82         LayoutModule,
83         TranslateModule,
84         UiElementsModule,
85
86         //We need to import them here since we use them in angular1
87         ConnectionWizardModule,
88         PropertiesAssignmentModule,
89         PluginFrameModule,
90         InterfaceOperationModule,
91         OperationCreatorModule,
92         ServicePathCreatorModule,
93         ServicePathsListModule,
94         ServicePathModule,
95         ServicePathSelectorModule
96     ],
97     exports: [],
98     entryComponents: [],
99     providers: [
100         DataTypesServiceProvider,
101         SharingServiceProvider,
102         CookieServiceProvider,
103         StateServiceFactory,
104         StateParamsServiceFactory,
105         ScopeServiceFactory,
106         CacheServiceProvider,
107         EventListenerServiceProvider,
108         NotificationServiceProvider,
109         AuthenticationService,
110         Cookie2Service,
111         ConfigService,
112         ComponentServiceNg2,
113         ComponentServiceFactoryNg2,
114         ModalService,
115         ServiceServiceNg2,
116         HttpService,
117         UserService,
118         PoliciesService,
119         DynamicComponentService,
120         SdcConfig,
121         ComponentInstanceServiceNg2,
122         TranslationServiceConfig,
123         PluginsService,
124         EventBusService,
125         {
126             provide: APP_INITIALIZER,
127             useFactory: configServiceFactory,
128             deps: [ConfigService],
129             multi: true
130         },
131      ],
132     bootstrap: [AppComponent]
133 })
134
135
136 export class AppModule {
137
138     constructor(public upgrade:UpgradeModule, eventBusService:EventBusService) {
139     }
140 }