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'


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


// ---- 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 { CategoryNavigationComponent }    	from '@k-core/modules/catalog/components/category-navigation/cmp.category-navigation'
import { FilterComponent }                  from '@k-core/modules/catalog/components/filter/cmp.filter'

// ---- Components sites
import { BasketSuntexComponent }                  from './components/basket/cmp.basket.suntex'

// ---- 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,
		FormsModule,
		CatalogRouting,
	],
	exports: [
		CategoryNavigationComponent
	],
	declarations: [
		ClickOutsideDirective,
		BasketSuntexComponent,
		CategoryOverviewComponent,
		CategoryOverviewItemComponent,
		CategoryNavigationComponent,
		FilterComponent,
		ViewComponent,
		CategoryOverviewView,
	],
	providers: [
		ProductService,
		GeolocationService,
	]
})
export class CatalogModule { }