import {RouterModule} from '@angular/router';
import {CUSTOM_ELEMENTS_SCHEMA, NgModule, NO_ERRORS_SCHEMA} from '@angular/core';
import {CommonModule} from '@angular/common';
import {NgxEchartsModule} from 'ngx-echarts';
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
import {NgZorroAntdModule, NZ_I18N, NZ_MESSAGE_CONFIG, NZ_NOTIFICATION_CONFIG, zh_CN} from 'ng-zorro-antd';
import {AlarmListComponent} from './alarm/alarm-list/alarm-list.component';
import {AlarmLogComponent} from './alarm/alarm-log/alarm-log.component';
import {AlarmSetComponent} from './alarm/alarm-set/alarm-set.component';
import {SendLogComponent} from './alarm/modal/send-log/send-log.component';
import {NowAlarmComponent} from './alarm/now-alarm/now-alarm.component';
import {SendSetComponent} from './alarm/send-set/send-set.component';
import {BasicDetailComponent} from './overAll/basic/basic-detail/basic-detail.component';
import {BasicComponent} from './overAll/basic/basic.component';
import {AuditComponent} from './system/audit/audit.component';
import {ExamineComponent} from './system/examine/examine.component';
import {GroupComponent} from './system/group/group.component';
import {PowerComponent} from './system/power/power.component';
import {BasiCheckComponent} from './modal/basi-check/basi-check.component';
import {BasicEditComponent} from './modal/basic-edit/basic-edit.component';
import {BasicKeyComponent} from './modal/basic-key/basic-key.component';
import {CreateGroupComponent} from './modal/create-group/create-group.component';
import {NewTypeComponent} from './modal/new-type/new-type.component';
import {WarnListComponent} from './modal/warn-list/warn-list.component';
import {JhiMainComponent, NavbarComponent, SidebarComponent} from './layouts';
import {OverAllService} from './overAll/overAll.service';
import {SystemService} from './system/system.service';
import {AlarmService} from './alarm/alarm.service';
import {PauseComponent} from './modal/pause/pause.component';
import {AlarmModalComponent} from './modal/alarm-modal/alarm-modal.component';
import {UserComponent} from './system/modal/user/user.component';
import {GroupModalComponent} from './system/modal/group-modal/group-modal.component';
import {RoleComponent} from './system/modal/role/role.component';
import {NeTopologyComponent} from './netTopology/ne-topology/ne-topology.component';
import {FlowTrendComponent} from './netTopology/flow-trend/flow-trend.component';
import {TopologyService} from './netTopology/topology.service';
import {AnalysisService} from './analysis/analysis.service';
import {WorkService} from './work/work.service';
import {AlarmGroupComponent} from './alarm/modal/alarm-group/alarm-group.component';
import {MediaTypeComponent} from './alarm/modal/media-type/media-type.component';
import {AlarmTargetComponent} from './alarm/modal/alarm-target/alarm-target.component';
import {OperationWorkComponent} from './analysis/operation-work/operation-work.component';
import {ResourceAlarmComponent} from './analysis/resource-alarm/resource-alarm.component';
import {ResourceUsabilComponent} from './analysis/resource-usabil/resource-usabil.component';
import {NetworkCheckComponent} from './overAll/network-check/network-check.component';
import {AssetPartComponent} from './work/asset-part/asset-part.component';
import {ContractTrackComponent} from './work/contract-track/contract-track.component';
import {InspectPlanComponent} from './work/inspect-plan/inspect-plan.component';
import {KonwledgeBaseComponent} from './work/konwledge-base/konwledge-base.component';
import {PersonelManageComponent} from './work/personel-manage/personel-manage.component';
import {WorkHandleComponent} from './work/work-handle/work-handle.component';
import {WebsiteComponent} from './modal/website/website.component';
import {NetworkDetailComponent} from './overAll/network-check/network-detail/network-detail.component';
import {FindUserComponent} from './alarm/modal/find-user/find-user.component';
import {TopologyComponent} from './netTopology/model/topology/topology.component';
import {CheckComponent} from './netTopology/model/check/check.component';
import {TopologyImgComponent} from './netTopology/topology-img/topology-img.component';
import {DeviceComponent} from './netTopology/model/device/device.component';
import {IconComponent} from './netTopology/model/icon/icon.component';
import {ToUtilPipe} from './shared/common/toUtil.pipe';
import {JhiTranslateComponent} from 'ng-jhipster';
import {LookPlanComponent} from './work/modal/look-plan/look-plan.component';
import {PlanModalComponent} from './work/modal/plan-modal/plan-modal.component';
import {SelectPersonComponent} from './modal/select-person/select-person.component';
import {SelectRoleComponent} from './modal/select-role/select-role.component';
import {SeparationComponent} from './system/modal/separation/separation.component';
import {TypeAsetsComponent} from './work/modal/type-asets/type-asets.component';
import {AssetsDetailComponent} from './work/asset-part/assets-detail/assets-detail.component';
import {AssetsComponent} from './work/modal/assets/assets.component';
import {ChildAssetsComponent} from './work/asset-part/child-assets/child-assets.component';
import {UploadComponent} from './work/modal/upload/upload.component';
import {HandleDetailComponent} from './work/work-handle/handle-detail/handle-detail.component';
import {HandleEventComponent} from './work/work-handle/handle-event/handle-event.component';
import {EventComponent} from './work/work-handle/Event/event.component';
import {TransforComponent} from './work/modal/transfor/transfor.component';
import {LinkInventoryComponent} from './work/modal/link-inventory/link-inventory.component';
import {AnalysisDealComponent} from './analysis/operation-work/analysis-deal/analysis-deal.component';
import {AnalysisEventComponent} from './analysis/operation-work/analysis-event/analysis-event.component';
import {AnalysisStatusComponent} from './analysis/operation-work/analysis-status/analysis-status.component';
import {PararmsComponent} from './work/pararms/pararms.component';
import {ParamsTypeComponent} from './work/modal/params-type/params-type.component';
import {HomeComponent} from './home/home.component';
import {SelectGroupComponent} from './modal/select-group/select-group.component';
import {ModifyPasswordComponent} from './modal/modify-password/modify-password.component';
import {FullScreenComponent} from './modal/full-screen/full-screen.component';
import {ThresholdComponent} from './modal/threshold/threshold.component';
import {LineComponent} from './netTopology/model/line/line.component';
import {NodeComponent} from './netTopology/model/node/node.component';
import {TemplateComponent} from './overAll/template/template.component';
import {DiscoveryComponent} from './modal/discovery/discovery.component';
import {StrategyComponent} from './modal/strategy/strategy.component';
import {DiscoveryListComponent} from './overAll/template/discovery-list/discovery-list.component';
import {CheckListComponent} from './overAll/template/check-list/check-list.component';
import {TriggerListComponent} from './overAll/template/trigger-list/trigger-list.component';
import {TriggerPrototypeComponent} from './overAll/template/modal/trigger-prototype/trigger-prototype.component';
import {CheckPrototypeComponent} from './overAll/template/modal/check-prototype/check-prototype.component';
import {TriListComponent} from './overAll/template/list/tri-list/tri-list.component';
import {ItemListComponent} from './overAll/template/list/item-list/item-list.component';
import {TriModalComponent} from './overAll/template/list/tri-modal/tri-modal.component';
import {ToRepeatPipe} from './shared/common/to-repeat.pipe';
import {JtopoComponent} from './modal/jtopo/jtopo.component';
import {SelectRadioGroupComponent} from './modal/select-radio-group/select-radio-group.component';
import {BOverviewComponent} from './business/b-overview/b-overview.component';
import {BTopologyComponent} from './business/b-topology/b-topology.component';
import {EffectAnalysisComponent} from './business/effect-analysis/effect-analysis.component';
import {LogAnalysisComponent} from './business/log-analysis/log-analysis.component';
import {BConfigComponent} from './business/b-config/b-config.component';
import {BusinessService} from './business/business.service';
import {BusinessComponent} from './business/modal/business/business.component';
import {DisableControlDirective} from './shared/common/disable-control.directive';
import {SelectTriggerComponent} from './modal/select-trigger/select-trigger.component';
import {WebModalComponent} from './modal/web-modal/web-modal.component';
import {WorkReportComponent} from './business/modal/work-report/work-report.component';
import {ServerComponent} from './overAll/modal/server/server.component';
import {DatabaseComponent} from './overAll/modal/database/database.component';
import {SwitchComponent} from './overAll/modal/switch/switch.component';
import {PipeModule} from './shared/pipe/pipe.module';
import {SignalComponent} from './shared/signal/signal.component';
import {MineComponent} from './mine/mine.component';
import {CommonProblemComponent} from './knowladge/common-problem/common-problem.component';
import {InformationTechComponent} from './knowladge/information-tech/information-tech.component';
import {ManagementSystemComponent} from './knowladge/management-system/management-system.component';
import {OprTeamComponent} from './project-manager/opr-team/opr-team.component';
import {OprProjectComponent} from './project-manager/opr-project/opr-project.component';
import {OprCostComponent} from './project-manager/opr-cost/opr-cost.component';
import {OprCompanyComponent} from './project-manager/opr-company/opr-company.component';
import {ProjectService} from './project-manager/project.service';
import {CreateCompanyComponent} from './project-manager/modal/create-company/create-company.component';
import {TrackInfoComponent} from './project-manager/modal/track-info/track-info.component';
import {CreateProjectComponent} from './project-manager/modal/create-project/create-project.component';
import {CreateTeamComponent} from './project-manager/modal/create-team/create-team.component';
import {ProjectModalComponent} from './project-manager/modal/project-modal/project-modal.component';
import {TeamModalComponent} from './project-manager/modal/team-modal/team-modal.component';
import {CompanyModalComponent} from './project-manager/modal/company-modal/company-modal.component';
import {CostModalComponent} from './project-manager/modal/cost-modal/cost-modal.component';
import {TeamPeopleComponent} from './project-manager/modal/team-people/team-people.component';
import {InspectPlanConfigComponent} from './work/inspect-plan-config/inspect-plan-config.component';
import {SparePartsManagementComponent} from './work/spare-parts-management/spare-parts-management.component';
import {ChangeParamsComponent} from './system-change/change-params/change-params.component';
import {ChangeManageComponent} from './system-change/change-manage/change-manage.component';
import {MyFollowComponent} from './overview/my-follow/my-follow.component';
import {WorkReminderComponent} from './overview/work-reminder/work-reminder.component';
import {SystemChangeService} from './system-change/system-change.service';
import {DictComponent} from './system-change/modal/dict/dict.component';
import {ChangeCreateComponent} from './system-change/modal/change-create/change-create.component';
import {ChangeVerityComponent} from './system-change/modal/change-verity/change-verity.component';
import {AssetManageComponent} from './infomationResource/asset-manage/asset-manage.component';
import {InfomationService} from './infomationResource/infomation.service';
import {CostListComponent} from './project-manager/modal/cost-list/cost-list.component';
import {ViolationNotificationComponent} from './work/modal/violation-notification/violation-notification.component';
import {CostReleationComponent} from './work/modal/cost-releation/cost-releation.component';
import {OverviewService} from './overview/overview.service';
import {SparePartsComponent} from './work/modal/spare-parts/spare-parts.component';
import {UploadAssetComponent} from './infomationResource/modal/upload-asset/upload-asset.component';
import {CreateTrackInfoComponent} from './project-manager/modal/create-track-info/create-track-info.component';
import {CreatePropertyComponent} from './infomationResource/modal/create-property/create-property.component';
import {SysChangeCountComponent} from './analysis/sys-change-count/sys-change-count.component';
import {ModuleConfigComponent} from './overview/modal/module-config/module-config.component';
import {DragulaModule} from 'ng2-dragula';
import {InfoHomeComponent} from './infomationResource/info-home/info-home.component';
import {TopologyViewComponent} from './component/topology-view/topology-view.component';
import {PlanConfigComponent} from './work/modal/plan-config/plan-config.component';
import {BCountComponent} from './analysis/b-count/b-count.component';
import {MonitorService} from './monitor/monitor.service';
import {CheckAuthComponent} from './shared/check-auth/check-auth.component';
import {RequestService} from './shared/common/request.service';
import {PerforManageService} from './perforManage/perfor.manage.service';
import {AdminOfficeComponent} from './perforManage/admin-office/admin-office.component';
import {BasicServiceComponent} from './perforManage/basic-service/basic-service.component';
import {DataStorageComponent} from './perforManage/data-storage/data-storage.component';
import {OnlineWorkComponent} from './perforManage/online-work/online-work.component';
import {VideoMeetComponent} from './perforManage/video-meet/video-meet.component';
import {AdminOfficeModalComponent} from './perforManage/modal/admin-office-modal/admin-office-modal.component';
import {BasicServiceModalComponent} from './perforManage/modal/basic-service-modal/basic-service-modal.component';
import {DataStorageModalComponent} from './perforManage/modal/data-storage-modal/data-storage-modal.component';
import {OnlineWorkModalComponent} from './perforManage/modal/online-work-modal/online-work-modal.component';
import {VideoMeetModalComponent} from './perforManage/modal/video-meet-modal/video-meet-modal.component';
import {BreadcrumbComponent} from './layouts/breadcrumb/breadcrumb.component';
import {EarlyWarningModule} from './early-warning/early-warning.module';
import {InformationProjectModule} from './information-project/information-project.module';
import {NotationComponent} from './early-warning/modal/notation/notation.component';

@NgModule({
    imports: [
        PipeModule,
        RouterModule,
        CommonModule,
        NgxEchartsModule,
        FormsModule,
        EarlyWarningModule,
        InformationProjectModule,
        ReactiveFormsModule,
        NgZorroAntdModule.forRoot(),
        DragulaModule.forRoot(),
    ],
    declarations: [
        HomeComponent,
        JhiMainComponent,
        NavbarComponent,
        SidebarComponent,
        AlarmListComponent,
        AlarmLogComponent,
        AlarmSetComponent,
        SendLogComponent,
        NowAlarmComponent,
        SendSetComponent,
        BasicDetailComponent,
        BasicComponent,
        AuditComponent,
        ExamineComponent,
        GroupComponent,
        PowerComponent,
        BasiCheckComponent,
        BasicEditComponent,
        BasicKeyComponent,
        CreateGroupComponent,
        NewTypeComponent,
        WarnListComponent,
        PauseComponent,
        AlarmModalComponent,
        UserComponent,
        GroupModalComponent,
        RoleComponent,
        NeTopologyComponent,
        FlowTrendComponent,
        AlarmGroupComponent,
        MediaTypeComponent,
        AlarmTargetComponent,
        OperationWorkComponent,
        ResourceAlarmComponent,
        ResourceUsabilComponent,
        NetworkCheckComponent,
        AssetPartComponent,
        ContractTrackComponent,
        InspectPlanComponent,
        KonwledgeBaseComponent,
        PersonelManageComponent,
        WorkHandleComponent,
        WebsiteComponent,
        NetworkDetailComponent,
        FindUserComponent,
        TopologyComponent,
        CheckComponent,
        TopologyImgComponent,
        DeviceComponent,
        IconComponent,
        ToUtilPipe,
        ToRepeatPipe,
        DisableControlDirective,
        LookPlanComponent,
        PlanModalComponent,
        SelectPersonComponent,
        SelectRoleComponent,
        SeparationComponent,
        TypeAsetsComponent,
        AssetsDetailComponent,
        AssetsComponent,
        ChildAssetsComponent,
        UploadComponent,
        HandleDetailComponent,
        HandleEventComponent,
        EventComponent,
        TransforComponent,
        LinkInventoryComponent,
        AnalysisDealComponent,
        AnalysisEventComponent,
        AnalysisStatusComponent,
        PararmsComponent,
        ParamsTypeComponent,
        SelectGroupComponent,
        ModifyPasswordComponent,
        FullScreenComponent,
        LookPlanComponent,
        ThresholdComponent,
        LineComponent,
        NodeComponent,
        TemplateComponent,
        DiscoveryComponent,
        StrategyComponent,
        DiscoveryListComponent,
        CheckListComponent,
        TriggerListComponent,
        TriggerPrototypeComponent,
        CheckPrototypeComponent,
        TriListComponent,
        ItemListComponent,
        TriModalComponent,
        JtopoComponent,
        SelectRadioGroupComponent,
        BOverviewComponent,
        BTopologyComponent,
        EffectAnalysisComponent,
        LogAnalysisComponent,
        BConfigComponent,
        BusinessComponent,
        SelectTriggerComponent,
        WebModalComponent,
        WorkReportComponent,
        ServerComponent,
        DatabaseComponent,
        SwitchComponent,
        SignalComponent,
        MineComponent,
        CommonProblemComponent,
        InformationTechComponent,
        ManagementSystemComponent,
        OprTeamComponent,
        OprProjectComponent,
        OprCostComponent,
        OprCompanyComponent,
        CreateCompanyComponent,
        TrackInfoComponent,
        CreateProjectComponent,
        CreateTeamComponent,
        ProjectModalComponent,
        TeamModalComponent,
        CompanyModalComponent,
        CostModalComponent,
        TeamPeopleComponent,
        InspectPlanConfigComponent,
        SparePartsManagementComponent,
        ChangeParamsComponent,
        ChangeManageComponent,
        MyFollowComponent,
        WorkReminderComponent,
        DictComponent,
        ChangeCreateComponent,
        ChangeVerityComponent,
        AssetManageComponent,
        CostListComponent,
        ViolationNotificationComponent,
        CostReleationComponent,
        SparePartsComponent,
        UploadAssetComponent,
        CreateTrackInfoComponent,
        CreatePropertyComponent,
        SysChangeCountComponent,
        ModuleConfigComponent,
        InfoHomeComponent,
        TopologyViewComponent,
        PlanConfigComponent,
        BCountComponent,
        CheckAuthComponent,
        AdminOfficeComponent,
        BasicServiceComponent,
        DataStorageComponent,
        OnlineWorkComponent,
        VideoMeetComponent,
        AdminOfficeModalComponent,
        BasicServiceModalComponent,
        DataStorageModalComponent,
        OnlineWorkModalComponent,
        VideoMeetModalComponent,
        BreadcrumbComponent,
    ],
    providers: [
        OverAllService,
        SystemService,
        AlarmService,
        TopologyService,
        AnalysisService,
        WorkService,
        BusinessService,
        ProjectService,
        SystemChangeService,
        InfomationService,
        OverviewService,
        MonitorService,
        RequestService,
        PerforManageService,
        {
            provide: NZ_NOTIFICATION_CONFIG,
            useValue: {
                NzDuration: 3000,
                nzMaxStack: 1,
            }
        },
        {provide: NZ_I18N, useValue: zh_CN},
    ],
    exports: [
        BasiCheckComponent,
        BasicEditComponent,
        BasicKeyComponent,
        CreateGroupComponent,
        NewTypeComponent,
        WarnListComponent,
        PauseComponent,
        FullScreenComponent,
        CreateCompanyComponent
    ],
    schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],
})
export class AppMainModule {
}
