blob: bb1119953bb14891713f3fd75c4c25935d168bce [file] [log] [blame]
/*-
* ============LICENSE_START=======================================================
* SDC
* ================================================================================
* Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
*/
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
import {BrowserModule} from '@angular/platform-browser';
import { NgModule, APP_INITIALIZER } from '@angular/core';
import {FormsModule} from '@angular/forms';
import { forwardRef } from '@angular/core';
import {AppComponent} from './app.component';
import {UpgradeAdapter} from '@angular/upgrade';
import {UpgradeModule} from '@angular/upgrade/static';
import { SdcUiComponentsModule, SdcUiComponents } from 'onap-ui-angular';
import {PropertiesAssignmentModule} from './pages/properties-assignment/properties-assignment.module';
import {
DataTypesServiceProvider, CookieServiceProvider, StateServiceFactory,
StateParamsServiceFactory, ScopeServiceFactory,
NotificationServiceProvider, ComponentFactoryProvider
} from './utils/ng1-upgraded-provider';
import {ConfigService} from './services/config.service';
import {AuthenticationService} from './services/authentication.service';
import {Cookie2Service} from './services/cookie.service';
import {ComponentServiceNg2} from './services/component-services/component.service';
import {ComponentServiceFactoryNg2} from './services/component-services/component.service.factory';
import {ServiceServiceNg2} from './services/component-services/service.service';
import {ComponentInstanceServiceNg2} from './services/component-instance-services/component-instance.service';
import {ModalService} from './services/modal.service';
import {UiElementsModule} from './components/ui/ui-elements.module';
import {ConnectionWizardModule} from './pages/composition/graph/connection-wizard/connection-wizard.module';
import {InterfaceOperationModule} from './pages/interface-operation/interface-operation.module';
import {OperationCreatorModule} from './pages/interface-operation/operation-creator/operation-creator.module';
import {LayoutModule} from './components/layout/layout.module';
import {UserService} from './services/user.service';
import {DynamicComponentService} from './services/dynamic-component.service';
import {SdcConfig} from './config/sdc-config.config';
import {SdcMenu} from './config/sdc-menu.config';
import {TranslateModule} from './shared/translator/translate.module';
import {TranslationServiceConfig} from './config/translation.service.config';
import {MultilineEllipsisModule} from './shared/multiline-ellipsis/multiline-ellipsis.module';
import {ServicePathCreatorModule} from './pages/composition/graph/service-path-creator/service-path-creator.module';
import {ServicePathsListModule} from './pages/composition/graph/service-paths-list/service-paths-list.module';
import { ServicePathSelectorModule } from 'app/ng2/pages/composition/graph/service-path-selector/service-path-selector.module';
import { CompositionPanelModule } from 'app/ng2/pages/composition/panel/composition-panel.module';
import {CatalogModule} from './pages/catalog/catalog.module';
import {HomeModule} from './pages/home/home.module';
import {WindowRef} from './services/window.service';
import {CatalogService} from './services/catalog.service';
import { ModalsHandlerProvider } from './utils/ng1-upgraded-provider';
import {PluginFrameModule} from './components/ui/plugin/plugin-frame.module';
import {PluginsService} from './services/plugins.service';
import {EventBusService} from './services/event-bus.service';
import {GroupsService} from './services/groups.service';
import {PoliciesService} from './services/policies.service';
import {AutomatedUpgradeService} from './pages/automated-upgrade/automated-upgrade.service';
import {AutomatedUpgradeModule} from './pages/automated-upgrade/automated-upgrade.module';
import {WorkspaceModule} from './pages/workspace/workspace.module';
import {ModalsModule} from './components/modals/modals.module';
import { SharingService, CacheService, HomeService } from 'app/services-ng2';
import {ArtifactConfigService} from "./services/artifact-config.service";
import {IUserProperties} from 'app/models';
import {PluginsModule} from './pages/plugins/plugins-module';
import {WorkspaceNg1BridgeService} from './pages/workspace/workspace-ng1-bridge-service';
import {NgxsModule} from '@ngxs/store';
import {NgxsLoggerPluginModule} from '@ngxs/logger-plugin';
import {NgxsReduxDevtoolsPluginModule} from '@ngxs/devtools-plugin';
import {EventListenerService} from '../services/event-listener-service';
import {HttpClientModule} from '@angular/common/http';
import {httpInterceptorProviders} from './http-interceptor';
import {HttpHelperService} from './services/http-hepler.service';
import {ModulesService} from "./services/modules.service";
import {TranslateService} from 'app/ng2/shared/translator/translate.service';
import {FileUtilsService} from './services/file-utils.service';
import {ImportVSPService} from './components/modals/onboarding-modal/import-vsp.service';
import {OnboardingService} from './services/onboarding.service';
import {ServiceConsumptionCreatorModule} from './pages/service-consumption-editor/service-consumption-editor.module';
import {ServiceDependenciesModule} from './components/logic/service-dependencies/service-dependencies.module';
import {ServiceDependenciesEditorModule} from './pages/service-dependencies-editor/service-dependencies-editor.module';
import {PropertyCreatorModule} from './pages/properties-assignment/property-creator/property-creator.module';
import {DeclareListModule} from './pages/properties-assignment/declare-list/declare-list.module';
import { InputListModule } from "./pages/properties-assignment/input-list/input-list.module";
import {WorkflowServiceNg2} from './services/workflow.service';
import {ToscaTypesServiceNg2} from "./services/tosca-types.service";
import {CapabilitiesFilterPropertiesEditorComponentModule} from "./pages/composition/capabilities-filter-properties-editor/capabilities-filter-properties-editor.module";
import {InterfaceOperationHandlerModule} from "./pages/composition/interface-operatons/operation-creator/interface-operation-handler.module";
import {AttributesOutputsModule} from "./pages/attributes-outputs/attributes-outputs.module";
import { ElementService } from "./services/element.service";
import { ModelService } from "./services/model.service";
declare const __ENV__: string;
export const upgradeAdapter = new UpgradeAdapter(forwardRef(() => AppModule));
export function configServiceFactory(config: ConfigService, authService: AuthenticationService, eventListener: EventListenerService) {
return () => {
return authService.authenticate().toPromise()
.then((userInfo: IUserProperties) => {
authService.setLoggedinUser(userInfo);
return Promise.all([
config.loadSdcSetupData(),
config.loadValidationConfiguration(),
config.loadPluginsConfiguration(),
])
}).then(() => {
eventListener.notifyObservers('ON_FINISH_LOADING');
})
.catch(() => {
console.log('AUTH FAILED! from app module');
});
};
}
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserAnimationsModule,
BrowserModule,
UpgradeModule,
FormsModule,
HttpClientModule,
LayoutModule,
TranslateModule,
MultilineEllipsisModule,
UiElementsModule,
CompositionPanelModule,
SdcUiComponentsModule,
AutomatedUpgradeModule,
// We need to import them here since we use them in angular1
ConnectionWizardModule,
PropertiesAssignmentModule,
AttributesOutputsModule,
PropertyCreatorModule,
DeclareListModule,
InputListModule,
PluginFrameModule,
PluginsModule,
InterfaceOperationModule,
OperationCreatorModule,
InterfaceOperationHandlerModule,
ServicePathCreatorModule,
ServicePathsListModule,
ServicePathSelectorModule,
ServiceConsumptionCreatorModule,
ServiceDependenciesModule,
ServiceDependenciesEditorModule,
CapabilitiesFilterPropertiesEditorComponentModule,
WorkspaceModule,
ModalsModule,
CatalogModule,
HomeModule,
NgxsModule.forRoot([]),
NgxsLoggerPluginModule.forRoot({logger: console, collapsed: false}),
NgxsReduxDevtoolsPluginModule.forRoot({
disabled: __ENV__ === 'prod'
})
],
exports: [],
entryComponents: [],
providers: [
WindowRef,
httpInterceptorProviders,
DataTypesServiceProvider,
SharingService,
CacheService,
HomeService,
ArtifactConfigService,
ComponentFactoryProvider,
CookieServiceProvider,
StateServiceFactory,
StateParamsServiceFactory,
ScopeServiceFactory,
NotificationServiceProvider,
ModalsHandlerProvider,
UserService,
Cookie2Service,
ConfigService,
ComponentServiceNg2,
ComponentServiceFactoryNg2,
ModalService,
ImportVSPService,
OnboardingService,
ElementService,
ModelService,
ServiceServiceNg2,
AutomatedUpgradeService,
WorkflowServiceNg2,
ToscaTypesServiceNg2,
WorkspaceNg1BridgeService,
HttpHelperService,
AuthenticationService,
PoliciesService,
GroupsService,
ModulesService,
DynamicComponentService,
SdcConfig,
SdcMenu,
ComponentInstanceServiceNg2,
EventListenerService,
TranslationServiceConfig,
TranslateService,
PluginsService,
CatalogService,
EventBusService,
FileUtilsService,
{
provide: APP_INITIALIZER,
useFactory: configServiceFactory,
deps: [ConfigService, AuthenticationService, EventListenerService],
multi: true
},
],
bootstrap: [AppComponent]
})
export class AppModule {
constructor(public upgrade: UpgradeModule) {
}
}