/**
 * Created through mkmodule
 */

import { NgModule }                     from '@angular/core'
import { MatIconModule } from '@angular/material/icon'
import { MatDialogModule, MAT_DIALOG_DEFAULT_OPTIONS } from '@angular/material/dialog'
import { LayoutModule } from '@angular/cdk/layout'

// Router
// import { ConfiguratorRouting }          from '@k-core/modules/configurator/rte.configurator'
import { ConfiguratorRouting }          from './rte.configurator'


// Shared Modules
import { SharedModule }                 from '@k-core/modules/shared/mod.shared'
import { CookieService }                from 'ng2-cookies'


// Components
import { MeasurementsComponent }        from '@k-core/modules/configurator/components/measurements/cmp.measurements'
import { MarkingComponent }             from '@k-core/modules/configurator/components/marking/cmp.marking'
import { ConfiguratorBannerComponent }  from '@k-core/modules/configurator/components/banner/cmp.banner'
import { ConfiguratorModalComponent }   from '@k-core/modules/configurator/components/modal/cmp.modal'
import { PlatoConfiguratorModule }      from '@k-core/modules/plato-configurator/mod.plato-configurator'

// Sites
import { PriceJyskComponent }            from '@k-sites/jysk/modules/configurator/components/price/cmp.price.jysk'
import { DetailsJyskComponent }          from '@k-sites/jysk/modules/configurator/components/details/cmp.details.jysk'
import { ChildSelectorJyskComponent }    from '@k-sites/jysk/modules/configurator/components/child-selector/cmp.child-selector.jysk'
import { MountheightJyskComponent }      from '@k-sites/jysk/modules/configurator/components/mount-height/cmp.mount-height.jysk'
import { ParentSelectorJyskComponent }   from '@k-sites/jysk/modules/configurator/components/parent-selector/cmp.parent-selector.jysk'



// Views Sites
import { ConfiguratorPartialJysk }          from './partial/cmp.configurator-partial.jysk'
import { ColorSelectorJyskComponent }       from '@k-sites/jysk/modules/configurator/components/color-selector/cmp.color-selector.jysk'

// Services
import { ConfiguratorService }                  from '@k-core/modules/configurator/services/svc.configurator'
import { ConfiguratorProductLoaderService }     from '@k-core/modules/configurator/services/svc.configurator-product-reloader'


@NgModule({
    imports: [ 
        SharedModule,
        MatIconModule,
        MatDialogModule,
        LayoutModule,
        PlatoConfiguratorModule,
        ConfiguratorRouting,
    ],
    exports: [
        // *Add your exports here*
    ],
    declarations: [
        // Components
        ParentSelectorJyskComponent,
        ChildSelectorJyskComponent,
        MeasurementsComponent,
        MountheightJyskComponent,
        ColorSelectorJyskComponent,
        DetailsJyskComponent,
        MarkingComponent,
        PriceJyskComponent,
        ConfiguratorBannerComponent,
        ConfiguratorModalComponent,

        // Views
        ConfiguratorPartialJysk,
    ],
    providers: [
        ConfiguratorService,
        ConfiguratorProductLoaderService,
        CookieService,
        {provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: {hasBackdrop: true}}
    ]
})

export class ConfiguratorModule {}
