blob: 7a845ef159734fa02814ad203bb750ff9bacffb8 [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 { 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 "sdc-ui/lib/angular";
import { PropertiesAssignmentModule } from './pages/properties-assignment/properties-assignment.module';
import {
DataTypesServiceProvider, SharingServiceProvider, CookieServiceProvider, StateServiceFactory,
StateParamsServiceFactory, CacheServiceProvider, EventListenerServiceProvider, ScopeServiceFactory,
NotificationServiceProvider, ComponentFactoryProvider
} from "./utils/ng1-upgraded-provider";
import { ConfigService } from "./services/config.service";
import { HttpModule } from '@angular/http';
import { HttpService } from './services/http.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 { WorkflowServiceNg2 } from './services/workflow.service';
import { ModalService } from "./services/modal.service";
import { UiElementsModule } from "./components/ui/ui-elements.module";
import { ConnectionWizardModule } from "./pages/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/service-path-creator/service-path-creator.module';
import { ServicePathsListModule } from './pages/service-paths-list/service-paths-list.module';
import { ServicePathModule } from 'app/ng2/components/logic/service-path/service-path.module';
import { ServicePathSelectorModule } from 'app/ng2/components/logic/service-path-selector/service-path-selector.module';
import { CompositionPanelModule } from 'app/ng2/pages/composition/panel/panel.module';
import { WindowRef } from "./services/window.service";
import {ArchiveService} from "./services/archive.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";
export const upgradeAdapter = new UpgradeAdapter(forwardRef(() => AppModule));
export function configServiceFactory(config: ConfigService) {
return () => {
return Promise.all([
config.loadValidationConfiguration(),
config.loadPluginsConfiguration()
]);
}
}
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
UpgradeModule,
FormsModule,
HttpModule,
LayoutModule,
TranslateModule,
MultilineEllipsisModule,
UiElementsModule,
CompositionPanelModule,
SdcUiComponentsModule,
AutomatedUpgradeModule,
//We need to import them here since we use them in angular1
ConnectionWizardModule,
PropertiesAssignmentModule,
PluginFrameModule,
InterfaceOperationModule,
OperationCreatorModule,
ServicePathCreatorModule,
ServicePathsListModule,
ServicePathModule,
ServicePathSelectorModule
],
exports: [],
entryComponents: [
// *** sdc-ui components to be used as downgraded:
// SdcUiComponents.ButtonComponent
],
providers: [
WindowRef,
DataTypesServiceProvider,
SharingServiceProvider,
ComponentFactoryProvider,
CookieServiceProvider,
StateServiceFactory,
StateParamsServiceFactory,
ScopeServiceFactory,
CacheServiceProvider,
EventListenerServiceProvider,
NotificationServiceProvider,
ModalsHandlerProvider,
AuthenticationService,
Cookie2Service,
ConfigService,
ComponentServiceNg2,
ComponentServiceFactoryNg2,
ModalService,
ServiceServiceNg2,
AutomatedUpgradeService,
WorkflowServiceNg2,
HttpService,
UserService,
PoliciesService,
GroupsService,
DynamicComponentService,
SdcConfig,
SdcMenu,
ComponentInstanceServiceNg2,
TranslationServiceConfig,
PluginsService,
ArchiveService,
EventBusService,
{
provide: APP_INITIALIZER,
useFactory: configServiceFactory,
deps: [ConfigService],
multi: true
},
],
bootstrap: [AppComponent]
})
export class AppModule {
constructor(public upgrade: UpgradeModule, public eventBusService:EventBusService) {
}
}