blob: e8dde94d684c18332cde4da2ee1de3ca69b60509 [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";
ys969316a9fce2020-01-19 13:50:02 +0200101
102
103declare const __ENV__: string;
Michael Landoed64b5e2017-06-09 03:19:04 +0300104
105export const upgradeAdapter = new UpgradeAdapter(forwardRef(() => AppModule));
106
ys969316a9fce2020-01-19 13:50:02 +0200107export function configServiceFactory(config: ConfigService, authService: AuthenticationService, eventListener: EventListenerService) {
Michael Landoed64b5e2017-06-09 03:19:04 +0300108
vasraz26e50292021-02-16 17:37:57 +0000109 return () => {
110 return authService.authenticate().toPromise()
111 .then((userInfo: IUserProperties) => {
112 authService.setLoggedinUser(userInfo);
113 return Promise.all([
114 config.loadSdcSetupData(),
115 config.loadValidationConfiguration(),
116 config.loadPluginsConfiguration(),
117 ])
118 }).then(() => {
119 eventListener.notifyObservers('ON_FINISH_LOADING');
120 })
121 .catch(() => {
122 console.log('AUTH FAILED! from app module');
123 });
124 };
ys969316a9fce2020-01-19 13:50:02 +0200125}
Michael Landoed64b5e2017-06-09 03:19:04 +0300126
127@NgModule({
vasraz26e50292021-02-16 17:37:57 +0000128 declarations: [
129 AppComponent
130 ],
131 imports: [
132 BrowserAnimationsModule,
133 BrowserModule,
134 UpgradeModule,
135 FormsModule,
136 HttpClientModule,
137 LayoutModule,
138 TranslateModule,
139 MultilineEllipsisModule,
140 UiElementsModule,
141 CompositionPanelModule,
142 SdcUiComponentsModule,
143 AutomatedUpgradeModule,
ys969316a9fce2020-01-19 13:50:02 +0200144
vasraz26e50292021-02-16 17:37:57 +0000145 // We need to import them here since we use them in angular1
146 ConnectionWizardModule,
147 PropertiesAssignmentModule,
148 AttributesOutputsModule,
149 PropertyCreatorModule,
150 DeclareListModule,
151 PluginFrameModule,
152 PluginsModule,
153 InterfaceOperationModule,
154 OperationCreatorModule,
aribeiro5c1f5752020-11-19 13:28:43 +0000155 InterfaceOperationHandlerModule,
vasraz26e50292021-02-16 17:37:57 +0000156 ServicePathCreatorModule,
157 ServicePathsListModule,
158 ServicePathSelectorModule,
159 ServiceConsumptionCreatorModule,
160 ServiceDependenciesModule,
161 ServiceDependenciesEditorModule,
162 CapabilitiesFilterPropertiesEditorComponentModule,
163 WorkspaceModule,
164 ModalsModule,
165 CatalogModule,
166 HomeModule,
167 NgxsModule.forRoot([]),
168 NgxsLoggerPluginModule.forRoot({logger: console, collapsed: false}),
169 NgxsReduxDevtoolsPluginModule.forRoot({
170 disabled: __ENV__ === 'prod'
171 })
172 ],
173 exports: [],
174 entryComponents: [],
175 providers: [
176 WindowRef,
177 httpInterceptorProviders,
178 DataTypesServiceProvider,
179 SharingService,
180 CacheService,
181 HomeService,
182 ArtifactConfigService,
183 ComponentFactoryProvider,
184 CookieServiceProvider,
185 StateServiceFactory,
186 StateParamsServiceFactory,
187 ScopeServiceFactory,
188 NotificationServiceProvider,
189 ModalsHandlerProvider,
190 UserService,
191 Cookie2Service,
192 ConfigService,
193 ComponentServiceNg2,
194 ComponentServiceFactoryNg2,
195 ModalService,
196 ImportVSPService,
197 OnboardingService,
198 ServiceServiceNg2,
199 AutomatedUpgradeService,
200 WorkflowServiceNg2,
201 ToscaTypesServiceNg2,
202 WorkspaceNg1BridgeService,
203 HttpHelperService,
204 AuthenticationService,
205 PoliciesService,
206 GroupsService,
207 ModulesService,
208 DynamicComponentService,
209 SdcConfig,
210 SdcMenu,
211 ComponentInstanceServiceNg2,
212 EventListenerService,
213 TranslationServiceConfig,
214 TranslateService,
215 PluginsService,
216 CatalogService,
217 EventBusService,
218 FileUtilsService,
219 {
220 provide: APP_INITIALIZER,
221 useFactory: configServiceFactory,
222 deps: [ConfigService, AuthenticationService, EventListenerService],
223 multi: true
224 },
225 ],
226 bootstrap: [AppComponent]
Michael Landoed64b5e2017-06-09 03:19:04 +0300227})
228
Michael Landoed64b5e2017-06-09 03:19:04 +0300229export class AppModule {
vasraz26e50292021-02-16 17:37:57 +0000230 constructor(public upgrade: UpgradeModule) {
Michael Landoed64b5e2017-06-09 03:19:04 +0300231
vasraz26e50292021-02-16 17:37:57 +0000232 }
Michael Landoed64b5e2017-06-09 03:19:04 +0300233}