2 * ============LICENSE_START=======================================================
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
21 import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
22 import {BrowserModule} from '@angular/platform-browser';
23 import {APP_INITIALIZER, forwardRef, NgModule} from '@angular/core';
24 import {FormsModule} from '@angular/forms';
25 import {AppComponent} from './app.component';
26 import {UpgradeAdapter} from '@angular/upgrade';
27 import {UpgradeModule} from '@angular/upgrade/static';
28 import {SdcUiComponentsModule} from 'onap-ui-angular';
29 import {PropertiesAssignmentModule} from './pages/properties-assignment/properties-assignment.module';
31 ComponentFactoryProvider,
32 CookieServiceProvider,
33 DataTypesServiceProvider,
34 ModalsHandlerProvider,
35 NotificationServiceProvider,
37 StateParamsServiceFactory,
39 } from './utils/ng1-upgraded-provider';
40 import {ConfigService} from './services/config.service';
41 import {AuthenticationService} from './services/authentication.service';
42 import {Cookie2Service} from './services/cookie.service';
43 import {ComponentServiceNg2} from './services/component-services/component.service';
44 import {ComponentServiceFactoryNg2} from './services/component-services/component.service.factory';
45 import {ServiceServiceNg2} from './services/component-services/service.service';
46 import {ComponentInstanceServiceNg2} from './services/component-instance-services/component-instance.service';
47 import {ModalService} from './services/modal.service';
48 import {UiElementsModule} from './components/ui/ui-elements.module';
49 import {ConnectionWizardModule} from './pages/composition/graph/connection-wizard/connection-wizard.module';
50 import {InterfaceOperationModule} from './pages/interface-operation/interface-operation.module';
51 import {OperationCreatorModule} from './pages/interface-operation/operation-creator/operation-creator.module';
53 OperationCreatorInterfaceDefinitionModule
54 } from './pages/interface-definition/operation-creator/operation-creator-interface-definition.module';
55 import {LayoutModule} from './components/layout/layout.module';
56 import {UserService} from './services/user.service';
57 import {DynamicComponentService} from './services/dynamic-component.service';
58 import {SdcConfig} from './config/sdc-config.config';
59 import {SdcMenu} from './config/sdc-menu.config';
60 import {TranslateModule} from './shared/translator/translate.module';
61 import {TranslationServiceConfig} from './config/translation.service.config';
62 import {MultilineEllipsisModule} from './shared/multiline-ellipsis/multiline-ellipsis.module';
63 import {ServicePathCreatorModule} from './pages/composition/graph/service-path-creator/service-path-creator.module';
64 import {ServicePathsListModule} from './pages/composition/graph/service-paths-list/service-paths-list.module';
65 import {ServicePathSelectorModule} from 'app/ng2/pages/composition/graph/service-path-selector/service-path-selector.module';
66 import {CompositionPanelModule} from 'app/ng2/pages/composition/panel/composition-panel.module';
67 import {CatalogModule} from './pages/catalog/catalog.module';
68 import {HomeModule} from './pages/home/home.module';
69 import {WindowRef} from './services/window.service';
70 import {CatalogService} from './services/catalog.service';
71 import {PluginFrameModule} from './components/ui/plugin/plugin-frame.module';
72 import {PluginsService} from './services/plugins.service';
73 import {EventBusService} from './services/event-bus.service';
74 import {GroupsService} from './services/groups.service';
75 import {PoliciesService} from './services/policies.service';
76 import {AutomatedUpgradeService} from './pages/automated-upgrade/automated-upgrade.service';
77 import {AutomatedUpgradeModule} from './pages/automated-upgrade/automated-upgrade.module';
78 import {WorkspaceModule} from './pages/workspace/workspace.module';
79 import {ModalsModule} from './components/modals/modals.module';
80 import {CacheService, HomeService, SharingService} from 'app/services-ng2';
81 import {ArtifactConfigService} from "./services/artifact-config.service";
82 import {IUserProperties} from 'app/models';
83 import {PluginsModule} from './pages/plugins/plugins-module';
84 import {WorkspaceNg1BridgeService} from './pages/workspace/workspace-ng1-bridge-service';
85 import {NgxsModule} from '@ngxs/store';
86 import {NgxsLoggerPluginModule} from '@ngxs/logger-plugin';
87 import {NgxsReduxDevtoolsPluginModule} from '@ngxs/devtools-plugin';
88 import {EventListenerService} from '../services/event-listener-service';
89 import {HttpClientModule} from '@angular/common/http';
90 import {httpInterceptorProviders} from './http-interceptor';
91 import {HttpHelperService} from './services/http-hepler.service';
92 import {ModulesService} from "./services/modules.service";
93 import {TranslateService} from 'app/ng2/shared/translator/translate.service';
94 import {FileUtilsService} from './services/file-utils.service';
95 import {ImportVSPService} from './components/modals/onboarding-modal/import-vsp.service';
96 import {OnboardingService} from './services/onboarding.service';
97 import {ServiceConsumptionCreatorModule} from './pages/service-consumption-editor/service-consumption-editor.module';
98 import {ServiceDependenciesModule} from './components/logic/service-dependencies/service-dependencies.module';
99 import {ServiceDependenciesEditorModule} from './pages/service-dependencies-editor/service-dependencies-editor.module';
100 import {PropertyCreatorModule} from './pages/properties-assignment/property-creator/property-creator.module';
101 import {DeclareListModule} from './pages/properties-assignment/declare-list/declare-list.module';
102 import {ToscaFunctionModule} from "./pages/properties-assignment/tosca-function/tosca-function.module";
103 import {WorkflowServiceNg2} from './services/workflow.service';
104 import {ToscaTypesServiceNg2} from "./services/tosca-types.service";
105 import {InterfaceOperationHandlerModule} from "./pages/composition/interface-operatons/operation-creator/interface-operation-handler.module";
106 import {AttributesOutputsModule} from "./pages/attributes-outputs/attributes-outputs.module";
107 import {ElementService} from "./services/element.service";
108 import {ModelService} from "./services/model.service";
109 import {ToscaArtifactService} from "./services/tosca-artifact.service";
110 import {InterfaceDefinitionModule} from "./pages/interface-definition/interface-definition.module";
112 declare const __ENV__: string;
114 export const upgradeAdapter = new UpgradeAdapter(forwardRef(() => AppModule));
116 export function configServiceFactory(config: ConfigService, authService: AuthenticationService, eventListener: EventListenerService) {
119 return authService.authenticate().toPromise()
120 .then((userInfo: IUserProperties) => {
121 authService.setLoggedinUser(userInfo);
123 config.loadSdcSetupData(),
124 config.loadValidationConfiguration(),
125 config.loadPluginsConfiguration(),
128 eventListener.notifyObservers('ON_FINISH_LOADING');
131 console.log('AUTH FAILED! from app module');
141 BrowserAnimationsModule,
148 MultilineEllipsisModule,
150 CompositionPanelModule,
151 SdcUiComponentsModule,
152 AutomatedUpgradeModule,
154 // We need to import them here since we use them in angular1
155 ConnectionWizardModule,
156 PropertiesAssignmentModule,
157 AttributesOutputsModule,
158 PropertyCreatorModule,
163 InterfaceOperationModule,
164 InterfaceDefinitionModule,
165 OperationCreatorModule,
166 OperationCreatorInterfaceDefinitionModule,
167 InterfaceOperationHandlerModule,
168 ServicePathCreatorModule,
169 ServicePathsListModule,
170 ServicePathSelectorModule,
171 ServiceConsumptionCreatorModule,
172 ServiceDependenciesModule,
173 ServiceDependenciesEditorModule,
178 NgxsModule.forRoot([]),
179 NgxsLoggerPluginModule.forRoot({logger: console, collapsed: false}),
180 NgxsReduxDevtoolsPluginModule.forRoot({
181 disabled: __ENV__ === 'prod'
188 httpInterceptorProviders,
189 DataTypesServiceProvider,
193 ArtifactConfigService,
194 ComponentFactoryProvider,
195 CookieServiceProvider,
197 StateParamsServiceFactory,
199 NotificationServiceProvider,
200 ModalsHandlerProvider,
205 ComponentServiceFactoryNg2,
211 ToscaArtifactService,
213 AutomatedUpgradeService,
215 ToscaTypesServiceNg2,
216 WorkspaceNg1BridgeService,
218 AuthenticationService,
222 DynamicComponentService,
225 ComponentInstanceServiceNg2,
226 EventListenerService,
227 TranslationServiceConfig,
234 provide: APP_INITIALIZER,
235 useFactory: configServiceFactory,
236 deps: [ConfigService, AuthenticationService, EventListenerService],
240 bootstrap: [AppComponent]
243 export class AppModule {
244 constructor(public upgrade: UpgradeModule) {