/*
 * Copyright (C) 2018 Robert Bosch GmbH Copyright (C) 2018 Robert Bosch Manufacturing Solutions GmbH, Germany. All rights reserved.
 */

import { OverlayModule } from '@angular/cdk/overlay';
import { PortalModule } from '@angular/cdk/portal';
import { A11yModule } from '@angular/cdk/a11y';
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { MatBadgeModule } from '@angular/material/badge';
import { MatButtonModule } from '@angular/material/button';
import { MatExpansionModule } from '@angular/material/expansion';
import { MatIconModule } from '@angular/material/icon';
import { MatListModule } from '@angular/material/list';
import { MatSidenavModule } from '@angular/material/sidenav';
import { MatTooltipModule } from '@angular/material/tooltip';
import { RouterModule } from '@angular/router';
import { BreadcrumbsModule } from '../../shared/breadcrumbs/breadcrumbs.module';
import { BciSharedModule } from '../../shared/shared.module';
import { BciAppComponent } from './bci-app/bci-app.component';
import { BciBurgerComponent } from './bci-burger/bci-burger.component';
import { BciContentComponent } from './bci-content/bci-content.component';
import { BciHeaderComponent } from './bci-header/bci-header.component';
import { BciLoaderComponent } from './bci-loader/bci-loader.component';
import { BciSidebarExpanderComponent } from './bci-sidebar-expander/bci-sidebar-expander.component';
import { BciSidebarFooterComponent } from './bci-sidebar-footer/bci-sidebar-footer.component';
import { BciSidebarNavItemOverlayComponent } from './bci-sidebar-nav-item-overlay/bci-sidebar-nav-item-overlay.component';
import { BciSidebarNavItemComponent } from './bci-sidebar-nav-item/bci-sidebar-nav-item.component';
import { BciSidebarNavListComponent } from './bci-sidebar-nav-list/bci-sidebar-nav-list.component';
import { BciSidebarComponent } from './bci-sidebar/bci-sidebar.component';
import { BCI_LAYOUT_INTL_PROVIDER } from './layout-intl';
import { LogoutComponent } from './logout/logout.component';
import { BciBannerComponent } from './bci-banner/bci-banner.component';

@NgModule({
    imports: [
        CommonModule,
        RouterModule,
        BciSharedModule,
        BreadcrumbsModule,
        /* Angular Material */
        MatSidenavModule,
        MatExpansionModule,
        MatIconModule,
        MatListModule,
        MatBadgeModule,
        MatTooltipModule,
        MatButtonModule,
        /* CDK */
        OverlayModule,
        PortalModule,
        A11yModule,
    ],
    declarations: [
        BciHeaderComponent,
        BciContentComponent,
        BciBurgerComponent,
        BciSidebarComponent,
        BciSidebarFooterComponent,
        BciSidebarExpanderComponent,
        BciLoaderComponent,
        BciSidebarNavItemComponent,
        BciSidebarNavListComponent,
        BciSidebarNavItemOverlayComponent,
        BciAppComponent,
        LogoutComponent,
        BciBannerComponent,
    ],
    exports: [
        BciHeaderComponent,
        BciContentComponent,
        BciBurgerComponent,
        BciSidebarComponent,
        BciSidebarFooterComponent,
        BciSidebarExpanderComponent,
        BciLoaderComponent,
        BciSidebarNavItemComponent,
        BciSidebarNavListComponent,
        BciSidebarNavItemOverlayComponent,
        BciAppComponent,
        LogoutComponent,
        BciBannerComponent,
        /* CDK */
        OverlayModule,
        PortalModule,
    ],
    providers: [BCI_LAYOUT_INTL_PROVIDER]
})
export class BciLayoutModule {}
