blob: e9ae1201af4d870038b3633aa611f2aeae9301c0 [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";
aribeiro53df9762021-06-16 23:21:04 +0100103import { ModelService } from "./services/model.service";
aribeiro1de16922021-10-01 11:30:49 +0100104import {ToscaArtifactService} from "./services/tosca-artifact.service";
aribeiroc2fa1b72022-01-13 14:33:25 +0000105import {InterfaceDefinitionModule} from "./pages/interface-definition/interface-definition.module";
ys969316a9fce2020-01-19 13:50:02 +0200106
ys969316a9fce2020-01-19 13:50:02 +0200107declare const __ENV__: string;
Michael Landoed64b5e2017-06-09 03:19:04 +0300108
109export const upgradeAdapter = new UpgradeAdapter(forwardRef(() => AppModule));
110
ys969316a9fce2020-01-19 13:50:02 +0200111export function configServiceFactory(config: ConfigService, authService: AuthenticationService, eventListener: EventListenerService) {
Michael Landoed64b5e2017-06-09 03:19:04 +0300112
vasraz26e50292021-02-16 17:37:57 +0000113 return () => {
114 return authService.authenticate().toPromise()
115 .then((userInfo: IUserProperties) => {
116 authService.setLoggedinUser(userInfo);
117 return Promise.all([
118 config.loadSdcSetupData(),
119 config.loadValidationConfiguration(),
120 config.loadPluginsConfiguration(),
121 ])
122 }).then(() => {
123 eventListener.notifyObservers('ON_FINISH_LOADING');
124 })
125 .catch(() => {
126 console.log('AUTH FAILED! from app module');
127 });
128 };
ys969316a9fce2020-01-19 13:50:02 +0200129}
Michael Landoed64b5e2017-06-09 03:19:04 +0300130
131@NgModule({
vasraz26e50292021-02-16 17:37:57 +0000132 declarations: [
133 AppComponent
134 ],
135 imports: [
136 BrowserAnimationsModule,
137 BrowserModule,
138 UpgradeModule,
139 FormsModule,
140 HttpClientModule,
141 LayoutModule,
142 TranslateModule,
143 MultilineEllipsisModule,
144 UiElementsModule,
145 CompositionPanelModule,
146 SdcUiComponentsModule,
147 AutomatedUpgradeModule,
ys969316a9fce2020-01-19 13:50:02 +0200148
vasraz26e50292021-02-16 17:37:57 +0000149 // We need to import them here since we use them in angular1
150 ConnectionWizardModule,
151 PropertiesAssignmentModule,
152 AttributesOutputsModule,
153 PropertyCreatorModule,
154 DeclareListModule,
KrupaNagabhushan6d65fde2021-01-12 13:41:59 +0000155 InputListModule,
vasraz26e50292021-02-16 17:37:57 +0000156 PluginFrameModule,
157 PluginsModule,
158 InterfaceOperationModule,
aribeiroc2fa1b72022-01-13 14:33:25 +0000159 InterfaceDefinitionModule,
vasraz26e50292021-02-16 17:37:57 +0000160 OperationCreatorModule,
aribeiroc2fa1b72022-01-13 14:33:25 +0000161 InterfaceOperationHandlerModule,
vasraz26e50292021-02-16 17:37:57 +0000162 ServicePathCreatorModule,
163 ServicePathsListModule,
164 ServicePathSelectorModule,
165 ServiceConsumptionCreatorModule,
166 ServiceDependenciesModule,
167 ServiceDependenciesEditorModule,
168 CapabilitiesFilterPropertiesEditorComponentModule,
169 WorkspaceModule,
170 ModalsModule,
171 CatalogModule,
172 HomeModule,
173 NgxsModule.forRoot([]),
174 NgxsLoggerPluginModule.forRoot({logger: console, collapsed: false}),
175 NgxsReduxDevtoolsPluginModule.forRoot({
176 disabled: __ENV__ === 'prod'
177 })
178 ],
179 exports: [],
180 entryComponents: [],
181 providers: [
182 WindowRef,
183 httpInterceptorProviders,
184 DataTypesServiceProvider,
185 SharingService,
186 CacheService,
187 HomeService,
188 ArtifactConfigService,
189 ComponentFactoryProvider,
190 CookieServiceProvider,
191 StateServiceFactory,
192 StateParamsServiceFactory,
193 ScopeServiceFactory,
194 NotificationServiceProvider,
195 ModalsHandlerProvider,
196 UserService,
197 Cookie2Service,
198 ConfigService,
199 ComponentServiceNg2,
200 ComponentServiceFactoryNg2,
201 ModalService,
202 ImportVSPService,
203 OnboardingService,
vasraza6ae7292021-03-21 20:48:30 +0000204 ElementService,
aribeiro53df9762021-06-16 23:21:04 +0100205 ModelService,
aribeiro1de16922021-10-01 11:30:49 +0100206 ToscaArtifactService,
vasraz26e50292021-02-16 17:37:57 +0000207 ServiceServiceNg2,
208 AutomatedUpgradeService,
209 WorkflowServiceNg2,
210 ToscaTypesServiceNg2,
211 WorkspaceNg1BridgeService,
212 HttpHelperService,
213 AuthenticationService,
214 PoliciesService,
215 GroupsService,
216 ModulesService,
217 DynamicComponentService,
218 SdcConfig,
219 SdcMenu,
220 ComponentInstanceServiceNg2,
221 EventListenerService,
222 TranslationServiceConfig,
223 TranslateService,
224 PluginsService,
225 CatalogService,
226 EventBusService,
227 FileUtilsService,
228 {
229 provide: APP_INITIALIZER,
230 useFactory: configServiceFactory,
231 deps: [ConfigService, AuthenticationService, EventListenerService],
232 multi: true
233 },
234 ],
235 bootstrap: [AppComponent]
Michael Landoed64b5e2017-06-09 03:19:04 +0300236})
237
Michael Landoed64b5e2017-06-09 03:19:04 +0300238export class AppModule {
vasraz26e50292021-02-16 17:37:57 +0000239 constructor(public upgrade: UpgradeModule) {
Michael Landoed64b5e2017-06-09 03:19:04 +0300240
vasraz26e50292021-02-16 17:37:57 +0000241 }
Michael Landoed64b5e2017-06-09 03:19:04 +0300242}