/**
 * @since Mon Feb 05 2018
 * @author Charles Gouldmann - Klean
 * 
 * Description:
 * Block module is used for groups of content. 
 * The content should be unique-ish, meaning that the module should not be used for 
 * content that is repeating across the site eg. a newsletter signup above the
 */


import { NgModule }                         from '@angular/core'
import { Include }                          from './inc.block'

// Router

import { BlockRouting }                     from './rte.block'

// Shared Modules

import { SharedModule }                     from '@k-core/modules/shared/mod.shared'
// Components
import { BlockSliderComponent }             from '@k-core/modules/block/components/slider/cmp.slider'
import { BlockTeaserComponent }             from '@k-core/modules/block/components/teaser/cmp.teaser'
import { BlockImageTextandButtonComponent } from '@k-core/modules/block/components/image-text-and-button/cmp.image-text-and-button'
import { BlockImageGridComponent }          from '@k-core/modules/block/components/image-grid/cmp.image-grid'
import { BlockDefaultComponent }            from '@k-core/modules/block/components/default/cmp.default'


// ---- sites
import { BlockTextSuntexComponnent }        from '@k-sites/kirsch/modules/block/components/text/cmp.text'
import { BannerImageSuntexComponent }       from '@k-sites/kirsch/modules/block/components/banner-image/cmp.banner-image'
import { BlockMultiImagesSuntexComponent }  from './components/multi-images/cmp.multi-images'

// Views
import { BlockSuntexView }                  from './template/view.block.suntex'

// Services
import { BlockService }                     from '@k-core/modules/block/services/svc.block'


@NgModule({
    imports: [ 
        SharedModule,

        ...Include.imports
    ],
    exports: [
        BlockSuntexView,

        ...Include.exports
    ],
    declarations: [
        // Components
        BlockTextSuntexComponnent,
        BannerImageSuntexComponent,
        BlockSliderComponent,
        BlockTeaserComponent,
        BlockImageGridComponent,
        BlockImageTextandButtonComponent,
        BlockMultiImagesSuntexComponent,
        BlockDefaultComponent,

        // Views
        BlockSuntexView,

        ...Include.declarations
    ],
    providers: [
        BlockService,
        
        ...Include.providers
    ]
})

export class BlockModule {}
