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";
111 import {TypeWorkspaceModule} from "./pages/type-workspace/type-workspace.module";
113 declare const __ENV__: string;
115 export const upgradeAdapter = new UpgradeAdapter(forwardRef(() => AppModule));
117 export function configServiceFactory(config: ConfigService, authService: AuthenticationService, eventListener: EventListenerService) {
120 return authService.authenticate().toPromise()
121 .then((userInfo: IUserProperties) => {
122 authService.setLoggedinUser(userInfo);
124 config.loadSdcSetupData(),
125 config.loadValidationConfiguration(),
126 config.loadPluginsConfiguration(),
129 eventListener.notifyObservers('ON_FINISH_LOADING');
132 console.log('AUTH FAILED! from app module');
142 BrowserAnimationsModule,
149 MultilineEllipsisModule,
151 CompositionPanelModule,
152 SdcUiComponentsModule,
153 AutomatedUpgradeModule,
155 // We need to import them here since we use them in angular1
156 ConnectionWizardModule,
157 PropertiesAssignmentModule,
158 AttributesOutputsModule,
159 PropertyCreatorModule,
164 InterfaceOperationModule,
165 InterfaceDefinitionModule,
166 OperationCreatorModule,
167 OperationCreatorInterfaceDefinitionModule,
168 InterfaceOperationHandlerModule,
169 ServicePathCreatorModule,
170 ServicePathsListModule,
171 ServicePathSelectorModule,
172 ServiceConsumptionCreatorModule,
173 ServiceDependenciesModule,
174 ServiceDependenciesEditorModule,
180 NgxsModule.forRoot([]),
181 NgxsLoggerPluginModule.forRoot({logger: console, collapsed: false}),
182 NgxsReduxDevtoolsPluginModule.forRoot({
183 disabled: __ENV__ === 'prod'
190 httpInterceptorProviders,
191 DataTypesServiceProvider,
195 ArtifactConfigService,
196 ComponentFactoryProvider,
197 CookieServiceProvider,
199 StateParamsServiceFactory,
201 NotificationServiceProvider,
202 ModalsHandlerProvider,
207 ComponentServiceFactoryNg2,
213 ToscaArtifactService,
215 AutomatedUpgradeService,
217 ToscaTypesServiceNg2,
218 WorkspaceNg1BridgeService,
220 AuthenticationService,
224 DynamicComponentService,
227 ComponentInstanceServiceNg2,
228 EventListenerService,
229 TranslationServiceConfig,
236 provide: APP_INITIALIZER,
237 useFactory: configServiceFactory,
238 deps: [ConfigService, AuthenticationService, EventListenerService],
242 bootstrap: [AppComponent]
245 export class AppModule {
246 constructor(public upgrade: UpgradeModule) {