projects/web-mev/src/app/shared/shared.module.ts
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { TranslateModule } from '@ngx-translate/core';
import { MatButtonModule } from '@angular/material/button';
import { MatMenuModule } from '@angular/material/menu';
import { MatSelectModule } from '@angular/material/select';
import { MatTabsModule } from '@angular/material/tabs';
import { MatInputModule } from '@angular/material/input';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { MatChipsModule } from '@angular/material/chips';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatCardModule } from '@angular/material/card';
import { MatListModule } from '@angular/material/list';
import { MatIconModule } from '@angular/material/icon';
import { MatTooltipModule } from '@angular/material/tooltip';
import { MatSnackBarModule } from '@angular/material/snack-bar';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { MatDividerModule } from '@angular/material/divider';
import { MatSliderModule } from '@angular/material/slider';
import { MatDatepickerModule } from '@angular/material/datepicker';
import { MatNativeDateModule } from '@angular/material/core';
import { MatProgressBarModule } from '@angular/material/progress-bar';
import { MatDialogModule } from '@angular/material/dialog';
import { MatTableModule } from '@angular/material/table';
import { MatToolbarModule } from '@angular/material/toolbar';
import { MatPaginatorModule } from '@angular/material/paginator';
import { MatRippleModule } from '@angular/material/core';
import { MatExpansionModule } from '@angular/material/expansion';
import { MatGridListModule } from '@angular/material/grid-list';
import { MatButtonToggleModule } from '@angular/material/button-toggle';
import { MatTreeModule } from '@angular/material/tree';
import {
FontAwesomeModule,
FaIconLibrary
} from '@fortawesome/angular-fontawesome';
import {
faPlus,
faEdit,
faTrash,
faTimes,
faCaretUp,
faCaretDown,
faExclamationTriangle,
faFilter,
faTasks,
faCheck,
faSquare,
faLanguage,
faPaintBrush,
faLightbulb,
faWindowMaximize,
faStream,
faBook
} from '@fortawesome/free-solid-svg-icons';
import { faMediumM, faGithub } from '@fortawesome/free-brands-svg-icons';
import { RtlSupportDirective } from './directives/rtl-support/rtl-support.directive';
import { MatSortModule } from '@angular/material/sort';
import { ByteNamePipe } from '@app/shared/pipes/byte-name.pipe';
import { SpinnerOverlayComponent } from './components/spinner-overlay/spinner-overlay.component';
const MatModules = [
MatButtonModule,
MatSelectModule,
MatTabsModule,
MatInputModule,
MatProgressSpinnerModule,
MatChipsModule,
MatCardModule,
MatCheckboxModule,
MatGridListModule,
MatListModule,
MatMenuModule,
MatIconModule,
MatTooltipModule,
MatExpansionModule,
MatSnackBarModule,
MatSlideToggleModule,
MatDividerModule,
MatProgressBarModule,
MatDialogModule,
MatTableModule,
MatSortModule,
MatPaginatorModule,
MatSliderModule,
MatDatepickerModule,
MatNativeDateModule,
MatRippleModule,
MatToolbarModule,
MatButtonToggleModule,
MatTreeModule
];
@NgModule({
imports: [
CommonModule,
FormsModule,
TranslateModule,
...MatModules,
FontAwesomeModule
],
declarations: [RtlSupportDirective, ByteNamePipe, SpinnerOverlayComponent],
exports: [
CommonModule,
FormsModule,
ReactiveFormsModule,
TranslateModule,
...MatModules,
FontAwesomeModule,
RtlSupportDirective,
ByteNamePipe,
SpinnerOverlayComponent
]
})
export class SharedModule {
constructor(faIconLibrary: FaIconLibrary) {
faIconLibrary.addIcons(
faGithub,
faMediumM,
faPlus,
faEdit,
faTrash,
faTimes,
faCaretUp,
faCaretDown,
faExclamationTriangle,
faFilter,
faTasks,
faCheck,
faSquare,
faLanguage,
faPaintBrush,
faLightbulb,
faWindowMaximize,
faStream,
faBook
);
}
}