import {AvailableModelsTreeService} from './service-planning/available-models-tree/available-models-tree.service';
import {HighlightPipe} from '../shared/pipes/highlight/highlight-filter.pipe';
import {TreeModule} from 'angular-tree-component';
import {BrowserModule} from '@angular/platform-browser';
import {TooltipModule} from 'ngx-tooltip';
import {AvailableModelsTreeComponent} from './service-planning/available-models-tree/available-models-tree.component';
import {AaiService} from '../shared/services/aaiService/aai.service';
import {DrawingBoardTreeComponent} from './service-planning/drawing-board-tree/drawing-board-tree.component';
import {SharedModule} from '../shared/shared.module';
import {ContextMenuModule, ContextMenuService} from 'ngx-contextmenu';
import {CommonModule} from '@angular/common';
import {DrawingBoardHeader} from './service-planning/drawing-board-header/drawing-board-header.component';
import {ServicePlanningComponent, ServicePlanningEmptyComponent} from './service-planning/service-planning.component';
import {DuplicateVnfComponent} from './service-planning/duplicate/duplicate-vnf.component';
import {DuplicateService} from './service-planning/duplicate/duplicate.service';
import {FormsModule} from '@angular/forms';
import {DrawingBoardTreeService} from "./service-planning/drawing-board-tree/drawing-board-tree.service";
import {DrawingBoardHeaderService} from "./service-planning/drawing-board-header/drawing-board-header.service";
import {TreeNodeHeaderPropertiesComponent} from "./service-planning/drawing-board-tree/tree-node-header-properties/tree-node-header-properties.component";
import {SafePipe} from "../shared/pipes/safe/safe.pipe";
import {FeatureFlagModule} from "../featureFlag/featureFlag.module";
import {DynamicInputsService} from "./service-planning/objectsToTree/dynamicInputs.service";
import {InstanceTreeGenerator} from "./service-planning/drawing-board-tree/instance.tree.generator";
import {SharedTreeService} from "./service-planning/objectsToTree/shared.tree.service";
import {ObjectToModelTreeService} from "./service-planning/objectsToTree/objectToModelTree/objectToModelTree.service";
import {ObjectToInstanceTreeService} from "./service-planning/objectsToTree/objectToInstanceTree/objectToInstanceTree.service";
import {ObjectToTreeService} from "./service-planning/objectsToTree/objectToTree.service";
import {SearchComponent} from "./service-planning/search/search.component";
import {SdcUiComponentsModule} from "onap-ui-angular";
import {DrawingBoardPermissions} from "./guards/servicePlanningGuard/drawingBoardGuard";
import {NgModule} from '@angular/core';
import {DragAndDropService} from "./service-planning/drawing-board-tree/dragAndDrop/dragAndDrop.service";
import {SdcUiServices} from "onap-ui-angular/dist";
import {CreateDynamicComponentService} from "onap-ui-angular/dist/utils/create-dynamic-component.service";
import {ComponentInfoComponent} from './service-planning/component-info/component-info.component';
import {ComponentInfoService} from "./service-planning/component-info/component-info.service";
import {NetworkStepService} from "./service-planning/objectsToTree/models/vrf/vrfModal/networkStep/network.step.service";
import {VpnStepService} from "./service-planning/objectsToTree/models/vrf/vrfModal/vpnStep/vpn.step.service";


@NgModule({
  imports: [
    TreeModule,
    BrowserModule,
    ContextMenuModule,
    FormsModule,
    TooltipModule,
    CommonModule,
    SdcUiComponentsModule,
    SharedModule.forRoot(),
    FeatureFlagModule.forRoot()],
  providers: [
    AaiService,
    ObjectToTreeService,
    AvailableModelsTreeService,
    ContextMenuService,
    DuplicateService,
    DrawingBoardTreeService,
    DrawingBoardHeaderService,
    DrawingBoardPermissions,
    SafePipe,
    ObjectToInstanceTreeService,
    ObjectToModelTreeService,
    DynamicInputsService,
    InstanceTreeGenerator,
    SharedTreeService,
    SdcUiServices.ModalService,
    SdcUiServices.LoaderService,
    CreateDynamicComponentService,
    ComponentInfoService,
    DragAndDropService,
    NetworkStepService,
    VpnStepService],
  declarations: [
    AvailableModelsTreeComponent,
    HighlightPipe,
    DrawingBoardTreeComponent,
    DrawingBoardHeader,
    ServicePlanningComponent,
    ServicePlanningEmptyComponent,
    DuplicateVnfComponent,
    TreeNodeHeaderPropertiesComponent,
    SearchComponent,
    ComponentInfoComponent],
  entryComponents: [DuplicateVnfComponent],
  exports: [AvailableModelsTreeComponent, DrawingBoardTreeComponent, DrawingBoardHeader, TreeNodeHeaderPropertiesComponent, SearchComponent]
})

export class DrawingBoardModule {
}
