first-npm-package-nicule
Version:
This isi first npm package
78 lines (72 loc) • 3.12 kB
text/typescript
import { ModuleWithProviders, NgModule } from '@angular/core';
import { HypermediaFormsModule, InputComponentResolver } from 'first-npm-package-nicule/forms';
import { CheckboxesFieldComponent, CheckboxFieldComponent, DateFieldComponent, DefaultGroupInputComponent, EmailFieldComponent,
FileFieldComponent, HiddenFieldComponent, PasswordFieldComponent, SelectFieldComponent, SelectOtherFieldComponent,
TextAreaFieldComponent, TextFieldComponent, MultiSelectFieldComponent } from './components';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatDatepickerModule } from '@angular/material/datepicker';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatIconModule } from '@angular/material/icon';
import { MatInputModule } from '@angular/material/input';
import { MatSelectModule } from '@angular/material/select';
import { MatTooltipModule } from '@angular/material/tooltip';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { FormsModule } from '@angular/forms';
const INPUTS = [CheckboxFieldComponent, CheckboxesFieldComponent, DateFieldComponent, EmailFieldComponent, FileFieldComponent,
DefaultGroupInputComponent, HiddenFieldComponent, PasswordFieldComponent, SelectFieldComponent, TextAreaFieldComponent,
TextFieldComponent, SelectOtherFieldComponent, MultiSelectFieldComponent ];
@NgModule({
declarations: INPUTS,
imports: [
CommonModule,
FormsModule,
TranslateModule,
MatTooltipModule,
MatIconModule,
MatInputModule,
MatFormFieldModule,
MatCheckboxModule,
MatSelectModule,
MatDatepickerModule,
HypermediaFormsModule
],
entryComponents: INPUTS
})
export class HypermediaMaterialInputsModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: HypermediaMaterialInputsModule,
providers: [
InputComponentResolver.forInputs([{
type: 'text',
component: TextFieldComponent
}, {
type: 'password',
component: PasswordFieldComponent
}, {
type: 'boolean',
component: CheckboxFieldComponent
}, {
type: 'option',
component: SelectFieldComponent
}, {
type: 'hidden',
component: HiddenFieldComponent
}, {
type: 'email',
component: EmailFieldComponent
}, {
type: 'file',
component: FileFieldComponent
}, {
type: 'date',
component: DateFieldComponent
}, {
type: 'group',
component: DefaultGroupInputComponent
}])
]
};
}
}