import { NgModule } from '@angular/core'
import { FormsModule } from '@angular/forms'

// ---- Routes
import { CatalogRouting } 					from './rte.catalog'


// Material
import { MatDialogModule, MAT_DIALOG_DEFAULT_OPTIONS } from '@angular/material'
import { AddedToCartDialogComponent } from '@k-core/modules/shared/components/added-to-cart-dialog/cmp.added-to-cart-dialog'

// ---- Shared Modules
import { SharedModule }                     from '@k-core/modules/shared/mod.shared'
import { StoredropdownModule }				from '@k-core/modules/storeDropdown/mod.storeDropdown'
// import { CommonDiscountServices } 			from '@k-common/discount/com.discount-services'


// ---- Directives
import { ClickOutsideDirective } 			from '@k-core/directives/dir.click-outside'
import { SearchPartialModule } from '@k-core/modules/search-partial/mod.search-partial'


// ---- Components
// import { BasketComponent }                  from './components/basket/cmp.basket'
import { CategoryOverviewComponent }        from './components/category-overview/cmp.category-overview'
import { CategoryOverviewItemComponent }    from './components/category-overview/item/cmp.category-overview__item'

import { FilterComponent }                  from './components/filter/cmp.filter'


// ---- Templates (Views)
import { CategoryOverviewView }             from './templates/category-overview/view.category-overview'


// ---- Services
import { ProductService }                   from '@k-core/services/svc.product'
import { GeolocationService }               from '@k-core/services/svc.geolocation'
import { PortalModule } from '@angular/cdk/portal'
import { AfterContentPortal } from '../portals/por.afterContent'

@NgModule({
	imports: [
		SharedModule,
		StoredropdownModule,
		SearchPartialModule,
		FormsModule,

		PortalModule,

		// CommonDiscountServices,
		CatalogRouting,
		MatDialogModule
	],
	exports: [
	],
	declarations: [
		AfterContentPortal,

		ClickOutsideDirective,
		// BasketComponent,
		CategoryOverviewComponent,
		CategoryOverviewItemComponent,
		FilterComponent,
		CategoryOverviewView,
	],
	entryComponents: [
		AddedToCartDialogComponent
	],
	providers: [
		{provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: {hasBackdrop: true}},
		ProductService,
		GeolocationService,
		// CommonDiscountServices,
	]
})
export class CatalogModule { }