/**
 * 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'
import { ReactiveFormsModule } from '@angular/forms'


// ---- Router
import { ConfiguratorRouting } from './rte.configurator'


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


// ---- Components
import { ParentSelectorComponent }  from './components/parent-selector/cmp.parent-selector'
import { ChildSelectorComponent } from './components/child-selector/cmp.child-selector'
import { MeasurementsComponent } from './components/measurements/cmp.measurements'
import { MountheightComponent } from './components/mount-height/cmp.mount-height'
import { ColorSelectorComponent } from './components/color-selector/cmp.color-selector'
import { DetailsComponent } from './components/details/cmp.details'
import { MarkingComponent }  from './components/marking/cmp.marking'
import { PriceComponent } from './components/price/cmp.price'
import { ConfiguratorBannerComponent } from './components/banner/cmp.banner'
import { ConfiguratorModalComponent } from './components/modal/cmp.modal'
import { StepNavigationComponent } from './components/step-navigation/cmp.step-navigation'
// import { CustomDessinComponent } from './components/custom-dessin/cmp.custom-dessin'

// ---- Views
import { ConfiguratorPartial }  from './partial/cmp.configurator-partial'


// ---- Services

import { ConfiguratorService } from './services/svc.configurator'
import { ConfiguratorProductLoaderService } from './services/svc.configurator-product-reloader'
import { StepNavigationService } from './services/svc.step-navigation'
import { PlatoConfiguratorModule } from '../plato-configurator/mod.plato-configurator'

import { ReactiveFormsModule } from '@angular/forms'
import { GoogleApisService } from '@k-core/services/svc.googleApis'




@NgModule({
    imports: [ 
        SharedModule,
        MatIconModule,
        MatDialogModule,
        LayoutModule,
        ReactiveFormsModule,
        PlatoConfiguratorModule,
        ConfiguratorRouting,
    ],
    exports: [
        // *Add your exports here*
    ],
    declarations: [
        // Components
        ParentSelectorComponent,
        ChildSelectorComponent,
        MeasurementsComponent,
        MountheightComponent,
        ColorSelectorComponent,
        DetailsComponent,
        MarkingComponent,
        PriceComponent,
        ConfiguratorBannerComponent,
        ConfiguratorModalComponent,
        StepNavigationComponent,
        // CustomDessinComponent,

        // Views
        ConfiguratorPartial,
    ],

    providers: [
        ConfiguratorProductLoaderService,
        CookieService,
        StepNavigationService,
        {provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: {hasBackdrop: true}}
    ]
})

export class ConfiguratorModule {}
