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 {ConstraintsModule} from "./pages/properties-assignment/constraints/constraints.module";
104 import {PropertyMetadataModule} from "./pages/properties-assignment/property-metadata/property-metadata.module";
105 import {WorkflowServiceNg2} from './services/workflow.service';
106 import {ToscaTypesServiceNg2} from "./services/tosca-types.service";
107 import {InterfaceOperationHandlerModule} from "./pages/composition/interface-operatons/operation-creator/interface-operation-handler.module";
108 import {AttributesOutputsModule} from "./pages/attributes-outputs/attributes-outputs.module";
109 import {ElementService} from "./services/element.service";
110 import {ModelService} from "./services/model.service";
111 import {ToscaArtifactService} from "./services/tosca-artifact.service";
112 import {InterfaceDefinitionModule} from "./pages/interface-definition/interface-definition.module";
113 import {TypeWorkspaceModule} from "./pages/type-workspace/type-workspace.module";
114 import {DeclareInputModule} from "./pages/properties-assignment/declare-input/declare-input.module";
116 declare const __ENV__: string;
118 export const upgradeAdapter = new UpgradeAdapter(forwardRef(() => AppModule));
120 export function configServiceFactory(config: ConfigService, authService: AuthenticationService, eventListener: EventListenerService) {
123 return authService.authenticate().toPromise()
124 .then((userInfo: IUserProperties) => {
125 authService.setLoggedinUser(userInfo);
127 config.loadSdcSetupData(),
128 config.loadValidationConfiguration(),
129 config.loadPluginsConfiguration(),
132 eventListener.notifyObservers('ON_FINISH_LOADING');
135 console.log('AUTH FAILED! from app module');
145 BrowserAnimationsModule,
152 MultilineEllipsisModule,
154 CompositionPanelModule,
155 SdcUiComponentsModule,
156 AutomatedUpgradeModule,
158 // We need to import them here since we use them in angular1
159 ConnectionWizardModule,
160 PropertiesAssignmentModule,
161 AttributesOutputsModule,
162 PropertyCreatorModule,
167 PropertyMetadataModule,
170 InterfaceOperationModule,
171 InterfaceDefinitionModule,
172 OperationCreatorModule,
173 OperationCreatorInterfaceDefinitionModule,
174 InterfaceOperationHandlerModule,
175 ServicePathCreatorModule,
176 ServicePathsListModule,
177 ServicePathSelectorModule,
178 ServiceConsumptionCreatorModule,
179 ServiceDependenciesModule,
180 ServiceDependenciesEditorModule,
186 NgxsModule.forRoot([]),
187 NgxsLoggerPluginModule.forRoot({logger: console, collapsed: false}),
188 NgxsReduxDevtoolsPluginModule.forRoot({
189 disabled: __ENV__ === 'prod'
196 httpInterceptorProviders,
197 DataTypesServiceProvider,
201 ArtifactConfigService,
202 ComponentFactoryProvider,
203 CookieServiceProvider,
205 StateParamsServiceFactory,
207 NotificationServiceProvider,
208 ModalsHandlerProvider,
213 ComponentServiceFactoryNg2,
219 ToscaArtifactService,
221 AutomatedUpgradeService,
223 ToscaTypesServiceNg2,
224 WorkspaceNg1BridgeService,
226 AuthenticationService,
230 DynamicComponentService,
233 ComponentInstanceServiceNg2,
234 EventListenerService,
235 TranslationServiceConfig,
242 provide: APP_INITIALIZER,
243 useFactory: configServiceFactory,
244 deps: [ConfigService, AuthenticationService, EventListenerService],
248 bootstrap: [AppComponent]
251 export class AppModule {
252 constructor(public upgrade: UpgradeModule) {