blob: 88a56100fe291a4c9da5d4a812449cc107a31ba3 [file] [log] [blame]
Michael Landodd603392017-07-12 00:54:52 +03001/*-
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
Idan Amit2c285722017-12-29 09:40:43 +020010 *
Michael Landodd603392017-07-12 00:54:52 +030011 * http://www.apache.org/licenses/LICENSE-2.0
Idan Amit2c285722017-12-29 09:40:43 +020012 *
Michael Landodd603392017-07-12 00:54:52 +030013 * 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
vasraz26e50292021-02-16 17:37:57 +000021import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
22import {BrowserModule} from '@angular/platform-browser';
Michael Lando5b593492018-07-29 16:13:45 +030023import { NgModule, APP_INITIALIZER } from '@angular/core';
vasraz26e50292021-02-16 17:37:57 +000024import {FormsModule} from '@angular/forms';
Michael Lando5b593492018-07-29 16:13:45 +030025import { forwardRef } from '@angular/core';
vasraz26e50292021-02-16 17:37:57 +000026import {AppComponent} from './app.component';
27import {UpgradeAdapter} from '@angular/upgrade';
28import {UpgradeModule} from '@angular/upgrade/static';
ys969316a9fce2020-01-19 13:50:02 +020029import { SdcUiComponentsModule, SdcUiComponents } from 'onap-ui-angular';
vasraz26e50292021-02-16 17:37:57 +000030import {PropertiesAssignmentModule} from './pages/properties-assignment/properties-assignment.module';
Michael Landoed64b5e2017-06-09 03:19:04 +030031import {
ys969316a9fce2020-01-19 13:50:02 +020032 DataTypesServiceProvider, CookieServiceProvider, StateServiceFactory,
33 StateParamsServiceFactory, ScopeServiceFactory,
Michael Lando5b593492018-07-29 16:13:45 +030034 NotificationServiceProvider, ComponentFactoryProvider
ys969316a9fce2020-01-19 13:50:02 +020035} from './utils/ng1-upgraded-provider';
vasraz26e50292021-02-16 17:37:57 +000036import {ConfigService} from './services/config.service';
37import {AuthenticationService} from './services/authentication.service';
38import {Cookie2Service} from './services/cookie.service';
39import {ComponentServiceNg2} from './services/component-services/component.service';
40import {ComponentServiceFactoryNg2} from './services/component-services/component.service.factory';
41import {ServiceServiceNg2} from './services/component-services/service.service';
42import {ComponentInstanceServiceNg2} from './services/component-instance-services/component-instance.service';
43import {ModalService} from './services/modal.service';
44import {UiElementsModule} from './components/ui/ui-elements.module';
45import {ConnectionWizardModule} from './pages/composition/graph/connection-wizard/connection-wizard.module';
46import {InterfaceOperationModule} from './pages/interface-operation/interface-operation.module';
47import {OperationCreatorModule} from './pages/interface-operation/operation-creator/operation-creator.module';
48import {LayoutModule} from './components/layout/layout.module';
49import {UserService} from './services/user.service';
50import {DynamicComponentService} from './services/dynamic-component.service';
51import {SdcConfig} from './config/sdc-config.config';
52import {SdcMenu} from './config/sdc-menu.config';
53import {TranslateModule} from './shared/translator/translate.module';
54import {TranslationServiceConfig} from './config/translation.service.config';
55import {MultilineEllipsisModule} from './shared/multiline-ellipsis/multiline-ellipsis.module';
56import {ServicePathCreatorModule} from './pages/composition/graph/service-path-creator/service-path-creator.module';
57import {ServicePathsListModule} from './pages/composition/graph/service-paths-list/service-paths-list.module';
ys969316a9fce2020-01-19 13:50:02 +020058import { ServicePathSelectorModule } from 'app/ng2/pages/composition/graph/service-path-selector/service-path-selector.module';
59import { CompositionPanelModule } from 'app/ng2/pages/composition/panel/composition-panel.module';
vasraz26e50292021-02-16 17:37:57 +000060import {CatalogModule} from './pages/catalog/catalog.module';
61import {HomeModule} from './pages/home/home.module';
62import {WindowRef} from './services/window.service';
63import {CatalogService} from './services/catalog.service';
Michael Lando5b593492018-07-29 16:13:45 +030064import { ModalsHandlerProvider } from './utils/ng1-upgraded-provider';
vasraz26e50292021-02-16 17:37:57 +000065import {PluginFrameModule} from './components/ui/plugin/plugin-frame.module';
66import {PluginsService} from './services/plugins.service';
67import {EventBusService} from './services/event-bus.service';
68import {GroupsService} from './services/groups.service';
69import {PoliciesService} from './services/policies.service';
70import {AutomatedUpgradeService} from './pages/automated-upgrade/automated-upgrade.service';
71import {AutomatedUpgradeModule} from './pages/automated-upgrade/automated-upgrade.module';
ys969316a9fce2020-01-19 13:50:02 +020072import {WorkspaceModule} from './pages/workspace/workspace.module';
vasraz26e50292021-02-16 17:37:57 +000073import {ModalsModule} from './components/modals/modals.module';
ys969316a9fce2020-01-19 13:50:02 +020074import { SharingService, CacheService, HomeService } from 'app/services-ng2';
vasraz26e50292021-02-16 17:37:57 +000075import {ArtifactConfigService} from "./services/artifact-config.service";
76import {IUserProperties} from 'app/models';
77import {PluginsModule} from './pages/plugins/plugins-module';
ys969316a9fce2020-01-19 13:50:02 +020078import {WorkspaceNg1BridgeService} from './pages/workspace/workspace-ng1-bridge-service';
79import {NgxsModule} from '@ngxs/store';
80import {NgxsLoggerPluginModule} from '@ngxs/logger-plugin';
81import {NgxsReduxDevtoolsPluginModule} from '@ngxs/devtools-plugin';
82import {EventListenerService} from '../services/event-listener-service';
vasraz26e50292021-02-16 17:37:57 +000083import {HttpClientModule} from '@angular/common/http';
84import {httpInterceptorProviders} from './http-interceptor';
85import {HttpHelperService} from './services/http-hepler.service';
86import {ModulesService} from "./services/modules.service";
87import {TranslateService} from 'app/ng2/shared/translator/translate.service';
88import {FileUtilsService} from './services/file-utils.service';
89import {ImportVSPService} from './components/modals/onboarding-modal/import-vsp.service';
90import {OnboardingService} from './services/onboarding.service';
91import {ServiceConsumptionCreatorModule} from './pages/service-consumption-editor/service-consumption-editor.module';
92import {ServiceDependenciesModule} from './components/logic/service-dependencies/service-dependencies.module';
93import {ServiceDependenciesEditorModule} from './pages/service-dependencies-editor/service-dependencies-editor.module';
94import {PropertyCreatorModule} from './pages/properties-assignment/property-creator/property-creator.module';
95import {DeclareListModule} from './pages/properties-assignment/declare-list/declare-list.module';
KrupaNagabhushan6d65fde2021-01-12 13:41:59 +000096import { InputListModule } from "./pages/properties-assignment/input-list/input-list.module";
vasraz26e50292021-02-16 17:37:57 +000097import {WorkflowServiceNg2} from './services/workflow.service';
98import {ToscaTypesServiceNg2} from "./services/tosca-types.service";
aribeiro1ae28c32020-10-05 10:45:11 +010099import {CapabilitiesFilterPropertiesEditorComponentModule} from "./pages/composition/capabilities-filter-properties-editor/capabilities-filter-properties-editor.module";
aribeiro5c1f5752020-11-19 13:28:43 +0000100import {InterfaceOperationHandlerModule} from "./pages/composition/interface-operatons/operation-creator/interface-operation-handler.module";
vasraz26e50292021-02-16 17:37:57 +0000101import {AttributesOutputsModule} from "./pages/attributes-outputs/attributes-outputs.module";
vasraza6ae7292021-03-21 20:48:30 +0000102import { ElementService } from "./services/element.service";
ys969316a9fce2020-01-19 13:50:02 +0200103
104
105declare const __ENV__: string;
Michael Landoed64b5e2017-06-09 03:19:04 +0300106
107export const upgradeAdapter = new UpgradeAdapter(forwardRef(() => AppModule));
108
ys969316a9fce2020-01-19 13:50:02 +0200109export function configServiceFactory(config: ConfigService, authService: AuthenticationService, eventListener: EventListenerService) {
Michael Landoed64b5e2017-06-09 03:19:04 +0300110
vasraz26e50292021-02-16 17:37:57 +0000111 return () => {
112 return authService.authenticate().toPromise()
113 .then((userInfo: IUserProperties) => {
114 authService.setLoggedinUser(userInfo);
115 return Promise.all([
116 config.loadSdcSetupData(),
117 config.loadValidationConfiguration(),
118 config.loadPluginsConfiguration(),
119 ])
120 }).then(() => {
121 eventListener.notifyObservers('ON_FINISH_LOADING');
122 })
123 .catch(() => {
124 console.log('AUTH FAILED! from app module');
125 });
126 };
ys969316a9fce2020-01-19 13:50:02 +0200127}
Michael Landoed64b5e2017-06-09 03:19:04 +0300128
129@NgModule({
vasraz26e50292021-02-16 17:37:57 +0000130 declarations: [
131 AppComponent
132 ],
133 imports: [
134 BrowserAnimationsModule,
135 BrowserModule,
136 UpgradeModule,
137 FormsModule,
138 HttpClientModule,
139 LayoutModule,
140 TranslateModule,
141 MultilineEllipsisModule,
142 UiElementsModule,
143 CompositionPanelModule,
144 SdcUiComponentsModule,
145 AutomatedUpgradeModule,
ys969316a9fce2020-01-19 13:50:02 +0200146
vasraz26e50292021-02-16 17:37:57 +0000147 // We need to import them here since we use them in angular1
148 ConnectionWizardModule,
149 PropertiesAssignmentModule,
150 AttributesOutputsModule,
151 PropertyCreatorModule,
152 DeclareListModule,
KrupaNagabhushan6d65fde2021-01-12 13:41:59 +0000153 InputListModule,
vasraz26e50292021-02-16 17:37:57 +0000154 PluginFrameModule,
155 PluginsModule,
156 InterfaceOperationModule,
157 OperationCreatorModule,
aribeiro5c1f5752020-11-19 13:28:43 +0000158 InterfaceOperationHandlerModule,
vasraz26e50292021-02-16 17:37:57 +0000159 ServicePathCreatorModule,
160 ServicePathsListModule,
161 ServicePathSelectorModule,
162 ServiceConsumptionCreatorModule,
163 ServiceDependenciesModule,
164 ServiceDependenciesEditorModule,
165 CapabilitiesFilterPropertiesEditorComponentModule,
166 WorkspaceModule,
167 ModalsModule,
168 CatalogModule,
169 HomeModule,
170 NgxsModule.forRoot([]),
171 NgxsLoggerPluginModule.forRoot({logger: console, collapsed: false}),
172 NgxsReduxDevtoolsPluginModule.forRoot({
173 disabled: __ENV__ === 'prod'
174 })
175 ],
176 exports: [],
177 entryComponents: [],
178 providers: [
179 WindowRef,
180 httpInterceptorProviders,
181 DataTypesServiceProvider,
182 SharingService,
183 CacheService,
184 HomeService,
185 ArtifactConfigService,
186 ComponentFactoryProvider,
187 CookieServiceProvider,
188 StateServiceFactory,
189 StateParamsServiceFactory,
190 ScopeServiceFactory,
191 NotificationServiceProvider,
192 ModalsHandlerProvider,
193 UserService,
194 Cookie2Service,
195 ConfigService,
196 ComponentServiceNg2,
197 ComponentServiceFactoryNg2,
198 ModalService,
199 ImportVSPService,
200 OnboardingService,
vasraza6ae7292021-03-21 20:48:30 +0000201 ElementService,
vasraz26e50292021-02-16 17:37:57 +0000202 ServiceServiceNg2,
203 AutomatedUpgradeService,
204 WorkflowServiceNg2,
205 ToscaTypesServiceNg2,
206 WorkspaceNg1BridgeService,
207 HttpHelperService,
208 AuthenticationService,
209 PoliciesService,
210 GroupsService,
211 ModulesService,
212 DynamicComponentService,
213 SdcConfig,
214 SdcMenu,
215 ComponentInstanceServiceNg2,
216 EventListenerService,
217 TranslationServiceConfig,
218 TranslateService,
219 PluginsService,
220 CatalogService,
221 EventBusService,
222 FileUtilsService,
223 {
224 provide: APP_INITIALIZER,
225 useFactory: configServiceFactory,
226 deps: [ConfigService, AuthenticationService, EventListenerService],
227 multi: true
228 },
229 ],
230 bootstrap: [AppComponent]
Michael Landoed64b5e2017-06-09 03:19:04 +0300231})
232
Michael Landoed64b5e2017-06-09 03:19:04 +0300233export class AppModule {
vasraz26e50292021-02-16 17:37:57 +0000234 constructor(public upgrade: UpgradeModule) {
Michael Landoed64b5e2017-06-09 03:19:04 +0300235
vasraz26e50292021-02-16 17:37:57 +0000236 }
Michael Landoed64b5e2017-06-09 03:19:04 +0300237}