src/app/shared/angular-material.module.ts
/**
* @license
* Copyright (c) La Vía Óntica SC, Ontica LLC and contributors. All rights reserved.
*
* See LICENSE.txt in the project root for complete license information.
*/
import { NgModule } from '@angular/core';
import { ClipboardModule } from '@angular/cdk/clipboard';
import { ScrollingModule } from '@angular/cdk/scrolling';
import { MatButtonModule } from '@angular/material/button';
import { MatButtonToggleModule } from '@angular/material/button-toggle';
import { MatCheckboxModule, MAT_CHECKBOX_DEFAULT_OPTIONS } from '@angular/material/checkbox';
import { MatDatepickerModule } from '@angular/material/datepicker';
import { MatDialogModule } from '@angular/material/dialog';
import { MatDividerModule } from '@angular/material/divider';
import { MatExpansionModule } from '@angular/material/expansion';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatGridListModule } from '@angular/material/grid-list';
import { MatIconModule, MAT_ICON_DEFAULT_OPTIONS } from '@angular/material/icon';
import { MatListModule } from '@angular/material/list';
import { MatMenuModule } from '@angular/material/menu';
import { MatProgressBarModule } from '@angular/material/progress-bar';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { MatRadioModule, MAT_RADIO_DEFAULT_OPTIONS } from '@angular/material/radio';
import { MatSidenavModule } from '@angular/material/sidenav';
import { MatSlideToggleModule, MAT_SLIDE_TOGGLE_DEFAULT_OPTIONS } from '@angular/material/slide-toggle';
import { MatSliderModule } from '@angular/material/slider';
import { MatSnackBarModule } from '@angular/material/snack-bar';
import { MatStepperModule } from '@angular/material/stepper';
import { MatTableModule } from '@angular/material/table';
import { MatTabsModule } from '@angular/material/tabs';
import { MatTooltipModule } from '@angular/material/tooltip';
import { TableVirtualScrollModule } from 'ng-table-virtual-scroll';
import {
MomentDateAdapter,
MatMomentDateModule
} from '@angular/material-moment-adapter';
import {
DateAdapter,
MAT_DATE_FORMATS,
MAT_DATE_LOCALE,
MatRippleModule
} from '@angular/material/core';
import * as moment from 'moment';
const APP_DEFAULT_DATE_LOCAL = 'es-MX';
moment.updateLocale(APP_DEFAULT_DATE_LOCAL, {
months: 'Enero_Febrero_Marzo_Abril_Mayo_Junio_Julio_Agosto_Septiembre_Octubre_Noviembre_Diciembre'
.split('_'),
monthsShort: 'Ene_Feb_Mar_Abr_May_Jun_Jul_Ago_Sep_Oct_Nov_Dic'.split('_'),
weekdays: 'Domingo_Lunes_Martes_Miércoles_Jueves_Viernes_Sábado'.split('_'),
weekdaysShort: 'Dom_Lun_Mar_Mié_Jue_Vie_Sáb'.split('_'),
weekdaysMin: 'Do_Lu_Ma_Mi_Ju_Vi_Sá'.split('_'),
weekdaysParseExact: true,
longDateFormat: {
LT: 'HH:mm',
LTS: 'HH:mm:ss',
L: 'DD/MMM/YYYY',
LL: 'DD [de] MMMM [de] YYYY',
LLL: 'DD [de] MMMM [de] YYYY LT',
LLLL: 'dddd DD [de] MMMM [de] YYYY LT'
},
week: {
dow: 7,
doy: 1
}
});
moment.locale(APP_DEFAULT_DATE_LOCAL);
export const DATE_FORMATS = {
parse: {
dateInput: 'DD/MM/YYYY',
},
display: {
dateInput: 'DD/MMM/YYYY',
monthYearLabel: 'MMM-YYYY',
dateA11yLabel: 'DD/MMM/YYYY',
monthYearA11yLabel: 'MMM-YYYY',
},
};
export const COLOR_PRIMARY = { color: 'primary' };
export const COLOR_ACCENT = { color: 'accent' };
@NgModule({
imports: [
ClipboardModule,
MatButtonModule,
MatButtonToggleModule,
MatCheckboxModule,
MatDatepickerModule,
MatDialogModule,
MatDividerModule,
MatExpansionModule,
MatFormFieldModule,
MatGridListModule,
MatIconModule,
MatListModule,
MatMenuModule,
MatMomentDateModule,
MatProgressBarModule,
MatProgressSpinnerModule,
MatRadioModule,
MatRippleModule,
MatSidenavModule,
MatSlideToggleModule,
MatSliderModule,
MatSnackBarModule,
MatStepperModule,
MatTableModule,
MatTabsModule,
MatTooltipModule,
ScrollingModule,
TableVirtualScrollModule,
],
exports: [
ClipboardModule,
MatButtonModule,
MatButtonToggleModule,
MatCheckboxModule,
MatDatepickerModule,
MatDialogModule,
MatDividerModule,
MatExpansionModule,
MatFormFieldModule,
MatGridListModule,
MatIconModule,
MatListModule,
MatMenuModule,
MatMomentDateModule,
MatProgressBarModule,
MatProgressSpinnerModule,
MatRadioModule,
MatRippleModule,
MatSidenavModule,
MatSlideToggleModule,
MatSliderModule,
MatSnackBarModule,
MatStepperModule,
MatTableModule,
MatTabsModule,
MatTooltipModule,
ScrollingModule,
TableVirtualScrollModule,
],
providers: [
{ provide: MAT_DATE_LOCALE, useValue: APP_DEFAULT_DATE_LOCAL },
{ provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },
{ provide: MAT_CHECKBOX_DEFAULT_OPTIONS, useValue: COLOR_PRIMARY },
{ provide: MAT_DATE_FORMATS, useValue: DATE_FORMATS },
{ provide: MAT_ICON_DEFAULT_OPTIONS, useValue: COLOR_ACCENT },
{ provide: MAT_RADIO_DEFAULT_OPTIONS, useValue: COLOR_PRIMARY },
{ provide: MAT_SLIDE_TOGGLE_DEFAULT_OPTIONS, useValue: COLOR_PRIMARY },
]
})
export class AngularMaterialModule { }