blob: 55dd969a88f9f64a1f8d58a2b986730f0a35a441 [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';
96import {WorkflowServiceNg2} from './services/workflow.service';
97import {ToscaTypesServiceNg2} from "./services/tosca-types.service";
aribeiro1ae28c32020-10-05 10:45:11 +010098import {CapabilitiesFilterPropertiesEditorComponentModule} from "./pages/composition/capabilities-filter-properties-editor/capabilities-filter-properties-editor.module";
aribeiro5c1f5752020-11-19 13:28:43 +000099import {InterfaceOperationHandlerModule} from "./pages/composition/interface-operatons/operation-creator/interface-operation-handler.module";
vasraz26e50292021-02-16 17:37:57 +0000100import {AttributesOutputsModule} from "./pages/attributes-outputs/attributes-outputs.module";
vasraza6ae7292021-03-21 20:48:30 +0000101import { ElementService } from "./services/element.service";
ys969316a9fce2020-01-19 13:50:02 +0200102
103
104declare const __ENV__: string;
Michael Landoed64b5e2017-06-09 03:19:04 +0300105
106export const upgradeAdapter = new UpgradeAdapter(forwardRef(() => AppModule));
107
ys969316a9fce2020-01-19 13:50:02 +0200108export function configServiceFactory(config: ConfigService, authService: AuthenticationService, eventListener: EventListenerService) {
Michael Landoed64b5e2017-06-09 03:19:04 +0300109
vasraz26e50292021-02-16 17:37:57 +0000110 return () => {
111 return authService.authenticate().toPromise()
112 .then((userInfo: IUserProperties) => {
113 authService.setLoggedinUser(userInfo);
114 return Promise.all([
115 config.loadSdcSetupData(),
116 config.loadValidationConfiguration(),
117 config.loadPluginsConfiguration(),
118 ])
119 }).then(() => {
120 eventListener.notifyObservers('ON_FINISH_LOADING');
121 })
122 .catch(() => {
123 console.log('AUTH FAILED! from app module');
124 });
125 };
ys969316a9fce2020-01-19 13:50:02 +0200126}
Michael Landoed64b5e2017-06-09 03:19:04 +0300127
128@NgModule({
vasraz26e50292021-02-16 17:37:57 +0000129 declarations: [
130 AppComponent
131 ],
132 imports: [
133 BrowserAnimationsModule,
134 BrowserModule,
135 UpgradeModule,
136 FormsModule,
137 HttpClientModule,
138 LayoutModule,
139 TranslateModule,
140 MultilineEllipsisModule,
141 UiElementsModule,
142 CompositionPanelModule,
143 SdcUiComponentsModule,
144 AutomatedUpgradeModule,
ys969316a9fce2020-01-19 13:50:02 +0200145
vasraz26e50292021-02-16 17:37:57 +0000146 // We need to import them here since we use them in angular1
147 ConnectionWizardModule,
148 PropertiesAssignmentModule,
149 AttributesOutputsModule,
150 PropertyCreatorModule,
151 DeclareListModule,
152 PluginFrameModule,
153 PluginsModule,
154 InterfaceOperationModule,
155 OperationCreatorModule,
aribeiro5c1f5752020-11-19 13:28:43 +0000156 InterfaceOperationHandlerModule,
vasraz26e50292021-02-16 17:37:57 +0000157 ServicePathCreatorModule,
158 ServicePathsListModule,
159 ServicePathSelectorModule,
160 ServiceConsumptionCreatorModule,
161 ServiceDependenciesModule,
162 ServiceDependenciesEditorModule,
163 CapabilitiesFilterPropertiesEditorComponentModule,
164 WorkspaceModule,
165 ModalsModule,
166 CatalogModule,
167 HomeModule,
168 NgxsModule.forRoot([]),
169 NgxsLoggerPluginModule.forRoot({logger: console, collapsed: false}),
170 NgxsReduxDevtoolsPluginModule.forRoot({
171 disabled: __ENV__ === 'prod'
172 })
173 ],
174 exports: [],
175 entryComponents: [],
176 providers: [
177 WindowRef,
178 httpInterceptorProviders,
179 DataTypesServiceProvider,
180 SharingService,
181 CacheService,
182 HomeService,
183 ArtifactConfigService,
184 ComponentFactoryProvider,
185 CookieServiceProvider,
186 StateServiceFactory,
187 StateParamsServiceFactory,
188 ScopeServiceFactory,
189 NotificationServiceProvider,
190 ModalsHandlerProvider,
191 UserService,
192 Cookie2Service,
193 ConfigService,
194 ComponentServiceNg2,
195 ComponentServiceFactoryNg2,
196 ModalService,
197 ImportVSPService,
198 OnboardingService,
vasraza6ae7292021-03-21 20:48:30 +0000199 ElementService,
vasraz26e50292021-02-16 17:37:57 +0000200 ServiceServiceNg2,
201 AutomatedUpgradeService,
202 WorkflowServiceNg2,
203 ToscaTypesServiceNg2,
204 WorkspaceNg1BridgeService,
205 HttpHelperService,
206 AuthenticationService,
207 PoliciesService,
208 GroupsService,
209 ModulesService,
210 DynamicComponentService,
211 SdcConfig,
212 SdcMenu,
213 ComponentInstanceServiceNg2,
214 EventListenerService,
215 TranslationServiceConfig,
216 TranslateService,
217 PluginsService,
218 CatalogService,
219 EventBusService,
220 FileUtilsService,
221 {
222 provide: APP_INITIALIZER,
223 useFactory: configServiceFactory,
224 deps: [ConfigService, AuthenticationService, EventListenerService],
225 multi: true
226 },
227 ],
228 bootstrap: [AppComponent]
Michael Landoed64b5e2017-06-09 03:19:04 +0300229})
230
Michael Landoed64b5e2017-06-09 03:19:04 +0300231export class AppModule {
vasraz26e50292021-02-16 17:37:57 +0000232 constructor(public upgrade: UpgradeModule) {
Michael Landoed64b5e2017-06-09 03:19:04 +0300233
vasraz26e50292021-02-16 17:37:57 +0000234 }
Michael Landoed64b5e2017-06-09 03:19:04 +0300235}