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

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


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


// ---- Directives
import { ClickOutsideDirective } 			from '@k-core/directives/dir.click-outside'


// ---- Components
// Core

// Components
import { CategoryOverviewComponent }        from '@k-core/modules/catalog/components/category-overview/cmp.category-overview'
import { CategoryOverviewItemComponent }    from '@k-core/modules/catalog/components/category-overview/item/cmp.category-overview__item'
import { FilterComponent }                  from '@k-core/modules/catalog/components/filter/cmp.filter'

// Site
import { BasketComponent_IDE }                  from './components/basket/cmp.basket'


// ---- Templates (Views)
import { ViewComponent }					from '@k-core/modules/category/components/view/cmp.view'
import { CategoryOverviewView }             from '@k-core/modules/catalog/templates/category-overview/view.category-overview'


// ---- Services
import { ProductService }                   from '@k-core/services/svc.product'
import { GeolocationService }               from '@k-core/services/svc.geolocation'

@NgModule({
	imports: [
		SharedModule,
		StoredropdownModule,
		SearchPartialModule,
		FormsModule,
		CommonDiscountServices,
		CatalogRouting,
	],
	exports: [
		// CategoryNavigationComponent
	],
	declarations: [
		ClickOutsideDirective,
		BasketComponent_IDE,
		CategoryOverviewComponent,
		CategoryOverviewItemComponent,
		FilterComponent,
		ViewComponent,
		CategoryOverviewView,
	],
	providers: [
		ProductService,
		GeolocationService
	]
})
export class CatalogModule { }