Add UI support for adding tosca artifact types
[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 {BrowserAnimationsModule} from '@angular/platform-browser/animations';
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 'onap-ui-angular';
30 import {PropertiesAssignmentModule} from './pages/properties-assignment/properties-assignment.module';
31 import {
32     DataTypesServiceProvider, CookieServiceProvider, StateServiceFactory,
33     StateParamsServiceFactory, ScopeServiceFactory,
34     NotificationServiceProvider, ComponentFactoryProvider
35 } from './utils/ng1-upgraded-provider';
36 import {ConfigService} from './services/config.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/composition/graph/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 {DynamicComponentService} from './services/dynamic-component.service';
51 import {SdcConfig} from './config/sdc-config.config';
52 import {SdcMenu} from './config/sdc-menu.config';
53 import {TranslateModule} from './shared/translator/translate.module';
54 import {TranslationServiceConfig} from './config/translation.service.config';
55 import {MultilineEllipsisModule} from './shared/multiline-ellipsis/multiline-ellipsis.module';
56 import {ServicePathCreatorModule} from './pages/composition/graph/service-path-creator/service-path-creator.module';
57 import {ServicePathsListModule} from './pages/composition/graph/service-paths-list/service-paths-list.module';
58 import { ServicePathSelectorModule } from 'app/ng2/pages/composition/graph/service-path-selector/service-path-selector.module';
59 import { CompositionPanelModule } from 'app/ng2/pages/composition/panel/composition-panel.module';
60 import {CatalogModule} from './pages/catalog/catalog.module';
61 import {HomeModule} from './pages/home/home.module';
62 import {WindowRef} from './services/window.service';
63 import {CatalogService} from './services/catalog.service';
64 import { ModalsHandlerProvider } from './utils/ng1-upgraded-provider';
65 import {PluginFrameModule} from './components/ui/plugin/plugin-frame.module';
66 import {PluginsService} from './services/plugins.service';
67 import {EventBusService} from './services/event-bus.service';
68 import {GroupsService} from './services/groups.service';
69 import {PoliciesService} from './services/policies.service';
70 import {AutomatedUpgradeService} from './pages/automated-upgrade/automated-upgrade.service';
71 import {AutomatedUpgradeModule} from './pages/automated-upgrade/automated-upgrade.module';
72 import {WorkspaceModule} from './pages/workspace/workspace.module';
73 import {ModalsModule} from './components/modals/modals.module';
74 import { SharingService, CacheService, HomeService } from 'app/services-ng2';
75 import {ArtifactConfigService} from "./services/artifact-config.service";
76 import {IUserProperties} from 'app/models';
77 import {PluginsModule} from './pages/plugins/plugins-module';
78 import {WorkspaceNg1BridgeService} from './pages/workspace/workspace-ng1-bridge-service';
79 import {NgxsModule} from '@ngxs/store';
80 import {NgxsLoggerPluginModule} from '@ngxs/logger-plugin';
81 import {NgxsReduxDevtoolsPluginModule} from '@ngxs/devtools-plugin';
82 import {EventListenerService} from '../services/event-listener-service';
83 import {HttpClientModule} from '@angular/common/http';
84 import {httpInterceptorProviders} from './http-interceptor';
85 import {HttpHelperService} from './services/http-hepler.service';
86 import {ModulesService} from "./services/modules.service";
87 import {TranslateService} from 'app/ng2/shared/translator/translate.service';
88 import {FileUtilsService} from './services/file-utils.service';
89 import {ImportVSPService} from './components/modals/onboarding-modal/import-vsp.service';
90 import {OnboardingService} from './services/onboarding.service';
91 import {ServiceConsumptionCreatorModule} from './pages/service-consumption-editor/service-consumption-editor.module';
92 import {ServiceDependenciesModule} from './components/logic/service-dependencies/service-dependencies.module';
93 import {ServiceDependenciesEditorModule} from './pages/service-dependencies-editor/service-dependencies-editor.module';
94 import {PropertyCreatorModule} from './pages/properties-assignment/property-creator/property-creator.module';
95 import {DeclareListModule} from './pages/properties-assignment/declare-list/declare-list.module';
96 import { InputListModule } from "./pages/properties-assignment/input-list/input-list.module";
97 import {WorkflowServiceNg2} from './services/workflow.service';
98 import {ToscaTypesServiceNg2} from "./services/tosca-types.service";
99 import {CapabilitiesFilterPropertiesEditorComponentModule} from "./pages/composition/capabilities-filter-properties-editor/capabilities-filter-properties-editor.module";
100 import {InterfaceOperationHandlerModule} from "./pages/composition/interface-operatons/operation-creator/interface-operation-handler.module";
101 import {AttributesOutputsModule} from "./pages/attributes-outputs/attributes-outputs.module";
102 import { ElementService } from "./services/element.service";
103 import { ModelService } from "./services/model.service";
104 import {ToscaArtifactService} from "./services/tosca-artifact.service";
105
106
107 declare const __ENV__: string;
108
109 export const upgradeAdapter = new UpgradeAdapter(forwardRef(() => AppModule));
110
111 export function configServiceFactory(config: ConfigService, authService: AuthenticationService, eventListener: EventListenerService) {
112
113   return () => {
114     return authService.authenticate().toPromise()
115     .then((userInfo: IUserProperties) => {
116       authService.setLoggedinUser(userInfo);
117       return Promise.all([
118         config.loadSdcSetupData(),
119         config.loadValidationConfiguration(),
120         config.loadPluginsConfiguration(),
121       ])
122     }).then(() => {
123       eventListener.notifyObservers('ON_FINISH_LOADING');
124     })
125     .catch(() => {
126       console.log('AUTH FAILED! from app module');
127     });
128   };
129 }
130
131 @NgModule({
132   declarations: [
133     AppComponent
134   ],
135   imports: [
136     BrowserAnimationsModule,
137     BrowserModule,
138     UpgradeModule,
139     FormsModule,
140     HttpClientModule,
141     LayoutModule,
142     TranslateModule,
143     MultilineEllipsisModule,
144     UiElementsModule,
145     CompositionPanelModule,
146     SdcUiComponentsModule,
147     AutomatedUpgradeModule,
148
149     // We need to import them here since we use them in angular1
150     ConnectionWizardModule,
151     PropertiesAssignmentModule,
152     AttributesOutputsModule,
153     PropertyCreatorModule,
154     DeclareListModule,
155     InputListModule,
156     PluginFrameModule,
157     PluginsModule,
158     InterfaceOperationModule,
159     OperationCreatorModule,
160         InterfaceOperationHandlerModule,
161     ServicePathCreatorModule,
162     ServicePathsListModule,
163     ServicePathSelectorModule,
164     ServiceConsumptionCreatorModule,
165     ServiceDependenciesModule,
166     ServiceDependenciesEditorModule,
167     CapabilitiesFilterPropertiesEditorComponentModule,
168     WorkspaceModule,
169     ModalsModule,
170     CatalogModule,
171     HomeModule,
172     NgxsModule.forRoot([]),
173     NgxsLoggerPluginModule.forRoot({logger: console, collapsed: false}),
174     NgxsReduxDevtoolsPluginModule.forRoot({
175       disabled: __ENV__ === 'prod'
176     })
177   ],
178   exports: [],
179   entryComponents: [],
180   providers: [
181     WindowRef,
182     httpInterceptorProviders,
183     DataTypesServiceProvider,
184     SharingService,
185     CacheService,
186     HomeService,
187     ArtifactConfigService,
188     ComponentFactoryProvider,
189     CookieServiceProvider,
190     StateServiceFactory,
191     StateParamsServiceFactory,
192     ScopeServiceFactory,
193     NotificationServiceProvider,
194     ModalsHandlerProvider,
195     UserService,
196     Cookie2Service,
197     ConfigService,
198     ComponentServiceNg2,
199     ComponentServiceFactoryNg2,
200     ModalService,
201     ImportVSPService,
202     OnboardingService,
203     ElementService,
204     ModelService,
205     ToscaArtifactService,
206     ServiceServiceNg2,
207     AutomatedUpgradeService,
208     WorkflowServiceNg2,
209     ToscaTypesServiceNg2,
210     WorkspaceNg1BridgeService,
211     HttpHelperService,
212     AuthenticationService,
213     PoliciesService,
214     GroupsService,
215     ModulesService,
216     DynamicComponentService,
217     SdcConfig,
218     SdcMenu,
219     ComponentInstanceServiceNg2,
220     EventListenerService,
221     TranslationServiceConfig,
222     TranslateService,
223     PluginsService,
224     CatalogService,
225     EventBusService,
226     FileUtilsService,
227     {
228       provide: APP_INITIALIZER,
229       useFactory: configServiceFactory,
230       deps: [ConfigService, AuthenticationService, EventListenerService],
231       multi: true
232     },
233   ],
234   bootstrap: [AppComponent]
235 })
236
237 export class AppModule {
238   constructor(public upgrade: UpgradeModule) {
239
240   }
241 }