
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 { ParentSelectorComponentBilka } from './components/parent-selector/cmp.parent-selector'
import { ChildSelectorComponentBilka } from '@k-sites/bilka/modules/configurator/components/child-selector/cmp.child-selector'
import { MeasurementsComponent } from '@k-core/modules/configurator/components/measurements/cmp.measurements'
import { MountheightComponent } from '@k-core/modules/configurator/components/mount-height/cmp.mount-height'
import { ColorSelectorComponent } from '@k-core/modules/configurator/components/color-selector/cmp.color-selector'
import { DetailsComponent } from '@k-core/modules/configurator/components/details/cmp.details'
import { MarkingComponent }  from '@k-core/modules/configurator/components/marking/cmp.marking'
import { PriceComponent } from '@k-core/modules/configurator/components/price/cmp.price'
import { ConfiguratorBannerComponent } from '@k-core/modules/configurator/components/banner/cmp.banner'
import { ConfiguratorModalComponent } from '@k-core/modules/configurator/components/modal/cmp.modal'
import { StepNavigationComponent } from '@k-core/modules/configurator/components/step-navigation/cmp.step-navigation'


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


// ---- Services

import { ConfiguratorService } from '@k-core/modules/configurator/services/svc.configurator'
import { ConfiguratorProductLoaderService } from '@k-core/modules/configurator/services/svc.configurator-product-reloader'
import { StepNavigationService } from '@k-core/modules/configurator/services/svc.step-navigation'
import { PlatoConfiguratorModule } from '@k-core/modules/plato-configurator/mod.plato-configurator'
import { GoogleApisService } from '@k-core/services/svc.googleApis'




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

		// Views
		ConfiguratorPartialBilka,
	],

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

export class ConfiguratorModule {}
