import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';

import { FlexLayoutModule } from '@angular/flex-layout';
import { MatButtonModule } from '@angular/material/button';
import { MatMenuModule } from '@angular/material/menu';
import { MatIconModule } from '@angular/material/icon';
import { MatTabsModule } from '@angular/material/tabs';
import { MatCardModule } from '@angular/material/card';
import { MatSelectModule } from '@angular/material/select';
import { MatSidenavModule } from '@angular/material/sidenav';
import { MatExpansionModule } from '@angular/material/expansion';
import { MatToolbarModule } from '@angular/material/toolbar';
import { MatDialogModule } from '@angular/material/dialog';

import { GetTermDescriptionPipe } from './get-term-description.pipe';
import { AcademicYearStatePipe } from './academic-year-state.pipe';
import { CourseDetailsComponent } from './course-details/course-details.component';

const modules = [
	CommonModule,
	FormsModule,
	ReactiveFormsModule,
	MatButtonModule,
	MatMenuModule,
	MatIconModule,
	MatTabsModule,
	MatExpansionModule,
	MatCardModule,
	MatSelectModule,
	FlexLayoutModule,
	MatSidenavModule,
	MatToolbarModule,
	MatDialogModule
];

@NgModule({
	imports: [ modules ],
	exports: [ modules, GetTermDescriptionPipe, AcademicYearStatePipe, CourseDetailsComponent ],
	declarations: [ GetTermDescriptionPipe, AcademicYearStatePipe, CourseDetailsComponent ]
})

export class SharedModule { }