Change to enable SDC list type input
[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  * Modifications Copyright (C) 2019 Nokia. All rights reserved.
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  */
21
22 import { BrowserModule } from '@angular/platform-browser';
23 import { NgModule, APP_INITIALIZER } from '@angular/core';
24 import { FormsModule } from '@angular/forms';
25 import { forwardRef } from '@angular/core';
26 import { AppComponent } from './app.component';
27 import { UpgradeAdapter } from '@angular/upgrade';
28 import { UpgradeModule } from '@angular/upgrade/static';
29 import { SdcUiComponentsModule, SdcUiComponents } from "sdc-ui/lib/angular";
30 import { PropertiesAssignmentModule } from './pages/properties-assignment/properties-assignment.module';
31 import { PropertyCreatorModule } from './pages/properties-assignment/property-creator/property-creator.module';
32 import {
33     DataTypesServiceProvider, SharingServiceProvider, CookieServiceProvider, StateServiceFactory,
34     StateParamsServiceFactory, CacheServiceProvider, EventListenerServiceProvider, ScopeServiceFactory,
35     NotificationServiceProvider, ComponentFactoryProvider
36 } from "./utils/ng1-upgraded-provider";
37 import { ConfigService } from "./services/config.service";
38 import { HttpModule } from '@angular/http';
39 import { HttpService } from './services/http.service';
40 import { AuthenticationService } from './services/authentication.service';
41 import { Cookie2Service } from "./services/cookie.service";
42 import { ComponentServiceNg2 } from "./services/component-services/component.service";
43 import { ComponentServiceFactoryNg2 } from "./services/component-services/component.service.factory";
44 import { ServiceServiceNg2 } from "./services/component-services/service.service";
45 import { ComponentInstanceServiceNg2 } from "./services/component-instance-services/component-instance.service";
46 import { WorkflowServiceNg2 } from './services/workflow.service';
47 import {ToscaTypesServiceNg2} from "./services/tosca-types.service";
48 import { ModalService } from "./services/modal.service";
49 import { UiElementsModule } from "./components/ui/ui-elements.module";
50 import { ConnectionWizardModule } from "./pages/connection-wizard/connection-wizard.module";
51 import { InterfaceOperationModule } from "./pages/interface-operation/interface-operation.module";
52 import { OperationCreatorModule } from "./pages/interface-operation/operation-creator/operation-creator.module";
53 import { LayoutModule } from "./components/layout/layout.module";
54 import { UserService } from "./services/user.service";
55 import { DynamicComponentService } from "./services/dynamic-component.service";
56 import { SdcConfig } from "./config/sdc-config.config";
57 import { SdcMenu } from "./config/sdc-menu.config";
58 import { TranslateModule } from "./shared/translator/translate.module";
59 import { TranslationServiceConfig } from "./config/translation.service.config";
60 import { MultilineEllipsisModule } from "./shared/multiline-ellipsis/multiline-ellipsis.module";
61 import { ServicePathCreatorModule } from './pages/service-path-creator/service-path-creator.module';
62 import { ServicePathsListModule } from './pages/service-paths-list/service-paths-list.module';
63 import { ServicePathModule } from 'app/ng2/components/logic/service-path/service-path.module';
64 import { ServicePathSelectorModule } from 'app/ng2/components/logic/service-path-selector/service-path-selector.module';
65 import { ServiceConsumptionModule } from 'app/ng2/components/logic/service-consumption/service-consumption.module';
66 import { ServiceConsumptionCreatorModule } from './pages/service-consumption-editor/service-consumption-editor.module';
67 import {ServiceDependenciesModule} from 'app/ng2/components/logic/service-dependencies/service-dependencies.module';
68 import {ServiceDependenciesEditorModule} from './pages/service-dependencies-editor/service-dependencies-editor.module';
69 import { CompositionPanelModule } from 'app/ng2/pages/composition/panel/panel.module';
70 import { WindowRef } from "./services/window.service";
71 import {ArchiveService} from "./services/archive.service";
72 import { ModalsHandlerProvider } from './utils/ng1-upgraded-provider';
73 import {PluginFrameModule} from "./components/ui/plugin/plugin-frame.module";
74 import {PluginsService} from "./services/plugins.service";
75 import {EventBusService} from "./services/event-bus.service";
76 import {GroupsService} from "./services/groups.service";
77 import {PoliciesService} from "./services/policies.service";
78 import {AutomatedUpgradeService} from "./pages/automated-upgrade/automated-upgrade.service";
79 import {AutomatedUpgradeModule} from "./pages/automated-upgrade/automated-upgrade.module";
80 import {RequirementsEditorModule} from "./pages/req-and-capabilities-editor/requirements-editor/requirements-editor.module"
81 import {CapabilitiesEditorModule} from "./pages/req-and-capabilities-editor/capabilities-editor/capabilities-editor.module"
82 import {GenericArtifactBrowserModule} from "./components/logic/generic-artifact-browser/generic-artifact-browser.module";
83 import {GabService} from "./services/gab.service";
84 import {DeclareListModule} from "./pages/properties-assignment/declare-list/declare-list.module"
85
86 export const upgradeAdapter = new UpgradeAdapter(forwardRef(() => AppModule));
87
88 export function configServiceFactory(config: ConfigService) {
89     return () => {
90         return Promise.all([
91             config.loadValidationConfiguration(),
92             config.loadPluginsConfiguration()
93         ]);
94     }
95 }
96
97
98 @NgModule({
99     declarations: [
100         AppComponent
101     ],
102     imports: [
103         BrowserModule,
104         UpgradeModule,
105         FormsModule,
106         HttpModule,
107         LayoutModule,
108         TranslateModule,
109         MultilineEllipsisModule,
110         UiElementsModule,
111         CompositionPanelModule,
112         SdcUiComponentsModule,
113         AutomatedUpgradeModule,
114         //We need to import them here since we use them in angular1
115         ConnectionWizardModule,
116         PropertiesAssignmentModule,
117         PropertyCreatorModule,
118         DeclareListModule,
119         PluginFrameModule,
120         InterfaceOperationModule,
121         OperationCreatorModule,
122         ServicePathCreatorModule,
123         ServicePathsListModule,
124         ServicePathModule,
125         ServicePathSelectorModule,
126         ServiceConsumptionModule,
127         ServiceConsumptionCreatorModule,
128         ServiceDependenciesModule,
129         ServiceDependenciesEditorModule,
130         RequirementsEditorModule,
131         CapabilitiesEditorModule,
132         GenericArtifactBrowserModule
133     ],
134     exports: [],
135     entryComponents: [
136         // *** sdc-ui components to be used as downgraded:
137         SdcUiComponents.SvgIconComponent
138     ],
139     providers: [
140         WindowRef,
141         DataTypesServiceProvider,
142         SharingServiceProvider,
143         ComponentFactoryProvider,
144         CookieServiceProvider,
145         StateServiceFactory,
146         StateParamsServiceFactory,
147         ScopeServiceFactory,
148         CacheServiceProvider,
149         EventListenerServiceProvider,
150         NotificationServiceProvider,
151         ModalsHandlerProvider,
152         AuthenticationService,
153         Cookie2Service,
154         ConfigService,
155         ComponentServiceNg2,
156         ComponentServiceFactoryNg2,
157         ModalService,
158         ServiceServiceNg2,
159         AutomatedUpgradeService,
160         WorkflowServiceNg2,
161         ToscaTypesServiceNg2,
162         HttpService,
163         UserService,
164         PoliciesService,
165         GroupsService,
166         DynamicComponentService,
167         SdcConfig,
168         SdcMenu,
169         ComponentInstanceServiceNg2,
170         TranslationServiceConfig,
171         PluginsService,
172         GabService,
173         ArchiveService,
174         EventBusService,
175         {
176             provide: APP_INITIALIZER,
177             useFactory: configServiceFactory,
178             deps: [ConfigService],
179             multi: true
180         },
181     ],
182     bootstrap: [AppComponent]
183 })
184
185
186 export class AppModule {
187     constructor(public upgrade: UpgradeModule, public eventBusService:EventBusService) {
188
189     }
190 }