import { NgModule } from "@angular/core";
import { BrowserModule } from "@angular/platform-browser";
import { BrowserAnimationsModule } from "@angular/platform-browser/animations";
import { EdgeOfflineModule } from "src/app/shared/components/edge/offline/offline.module";
import { HelpButtonComponent } from "src/app/shared/components/modal/help-button/help-button";
import { ModalModule } from "src/app/shared/components/modal/modal.module";
import { PullToRefreshComponent } from "src/app/shared/components/pull-to-refresh/pull-to-refresh";
import { SharedModule } from "./../../shared/shared.module";
import { CommonAutarchy } from "./common/autarchy/Common_Autarchy";
import { CommonConsumption } from "./common/consumption/common-consumption";
import { CommonGrid } from "./common/grid/Common_Grid";
import { CommonProduction } from "./common/production/common-production";
import { CommonSelfconsumption } from "./common/selfconsumption/common-selfconsumption";
import { SohStatusBannerComponent } from "./common/soh/components/soh-status-banner/soh-status-banner";
import { StorageLiveModule } from "./common/storage/storage.module";
import { WeatherModule } from "./common/weather/weather.module";
import { Controller_ChannelthresholdComponent } from "./Controller/Channelthreshold/Channelthreshold";
import { Controller_ChpSocComponent } from "./Controller/ChpSoc/ChpSoc";
import { Controller_ChpSocModalComponent } from "./Controller/ChpSoc/modal/modal.component";
import { Controller_EnerixControl } from "./Controller/EnerixControl/EnerixControl";
import { ControllerEssFixActivePower } from "./Controller/Ess/FixActivePower/fix-active-power";
import { ControllerEssGridOptimizedChargeModule } from "./Controller/Ess/GridOptimizedCharge/Ess_GridOptimizedCharge";
import { ControllerEssTimeOfUseTariff } from "./Controller/Ess/TimeOfUseTariff/Ess_TimeOfUseTariff";
import { AdministrationComponent } from "./Controller/Evcs/administration/administration.component";
import { Controller_Evcs } from "./Controller/Evcs/Evcs";
import { ControllerEvseSingle } from "./Controller/Evse/EvseSingle.module";
import { ControllerHeatModule } from "./Controller/Heat/Heat";
import { ControllerBraiinsModule } from "./Controller/Io/Braiins/braiins.module";
import { Controller_Io_ChannelSingleThresholdComponent } from "./Controller/Io/ChannelSingleThreshold/flat/flat";
import { Controller_Io_ChannelSingleThresholdModalComponent } from "./Controller/Io/ChannelSingleThreshold/modal/modal.component";
import { ControllerIoFixDigitalOutput } from "./Controller/Io/FixDigitalOutput/fix-digital-output.module";
import { ControllerIoHeatingElement } from "./Controller/Io/HeatingElement/Io_HeatingElement";
import { Controller_Io_HeatingRoom } from "./Controller/Io/HeatingRoom/Io_HeatingRoom";
import { ControllerIoHeatpumpModule } from "./Controller/Io/Heatpump/controller-io-heatpump";
import { Controller_Api_ModbusTcp } from "./Controller/ModbusTcpApi/modbusTcpApi.module";
import { Controller_Asymmetric_PeakShavingComponent } from "./Controller/peak-shaving/Asymmetric/Asymmetric";
import { Controller_Asymmetric_PeakShavingModalComponent } from "./Controller/peak-shaving/Asymmetric/modal/modal.component";
import { Controller_Symmetric_PeakShavingModalComponent } from "./Controller/peak-shaving/symmetric/modal/modal.component";
import { Controller_Symmetric_PeakShavingComponent } from "./Controller/peak-shaving/symmetric/Symmetric";
import { Controller_Symmetric_TimeSlot_PeakShavingModalComponent } from "./Controller/peak-shaving/Symmetric_TimeSlot/modal/modal.component";
import { Controller_Symmetric_TimeSlot_PeakShavingComponent } from "./Controller/peak-shaving/Symmetric_TimeSlot/Symmetric_TimeSlot";
import { DelayedSellToGridComponent } from "./delayedselltogrid/delayedselltogrid.component";
import { DelayedSellToGridModalComponent } from "./delayedselltogrid/modal/modal.component";
import { EnergymonitorModule } from "./energymonitor/energymonitor.module";
import { InfoComponent } from "./info/info.component";
import { Io_Api_DigitalInputComponent } from "./Io/Api_DigitalInput/Io_Api_DigitalInput";
import { Io_Api_DigitalInput_ModalComponent } from "./Io/Api_DigitalInput/modal/modal.component";
import { LiveComponent } from "./live.component";
import { FlatComponent as EvcsClusterApiFlatComponent } from "./Multiple/evcs-api-cluster/flat/flat";
import { ChartComponent as EvcsClusterApiChartComponent } from "./Multiple/evcs-api-cluster/modal/chart/chart";
import { ModalComponent as EvcsClusterApiModalComponent } from "./Multiple/evcs-api-cluster/modal/modal";
import { NavigationInfoComponent } from "./navigation-info/navigation-info";

import { SystemOutageInfoComponent } from "./system-outage-info/oe-system-outage-info";

@NgModule({
    imports: [
        BrowserAnimationsModule,
        BrowserModule,
        CommonAutarchy,
        CommonConsumption,
        CommonGrid,
        CommonProduction,
        CommonSelfconsumption,
        StorageLiveModule,
        Controller_Api_ModbusTcp,
        Controller_EnerixControl,
        ControllerEssFixActivePower,
        ControllerEssTimeOfUseTariff,
        ControllerEssGridOptimizedChargeModule,
        Controller_Evcs,
        ControllerEvseSingle,
        ControllerHeatModule,
        ControllerIoHeatingElement,
        Controller_Io_HeatingRoom,
        ControllerIoFixDigitalOutput,
        ControllerIoHeatpumpModule,
        EdgeOfflineModule,
        EnergymonitorModule,
        WeatherModule,
        ModalModule,
        SharedModule,
        SohStatusBannerComponent,
        SystemOutageInfoComponent,
        PullToRefreshComponent,
        HelpButtonComponent,
        EvcsClusterApiChartComponent,
        ControllerBraiinsModule,
    ],
    declarations: [
        AdministrationComponent,
        Controller_Asymmetric_PeakShavingComponent,
        Controller_Asymmetric_PeakShavingModalComponent,
        Controller_ChannelthresholdComponent,
        Controller_ChpSocComponent,
        Controller_ChpSocModalComponent,
        Controller_Io_ChannelSingleThresholdComponent,
        Controller_Io_ChannelSingleThresholdModalComponent,
        Controller_Symmetric_PeakShavingComponent,
        Controller_Symmetric_PeakShavingModalComponent,
        Controller_Symmetric_TimeSlot_PeakShavingComponent,
        Controller_Symmetric_TimeSlot_PeakShavingModalComponent,
        DelayedSellToGridComponent,
        DelayedSellToGridModalComponent,
        EvcsClusterApiFlatComponent,
        EvcsClusterApiModalComponent,
        InfoComponent,
        Io_Api_DigitalInput_ModalComponent,
        Io_Api_DigitalInputComponent,
        LiveComponent,
        NavigationInfoComponent,
    ],
})
export class LiveModule {}
