import { CommonModule } from '@angular/common'; import { NgModule, Type } from '@angular/core'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { MatAutocompleteModule } from '@angular/material/autocomplete'; import { MatButtonModule } from '@angular/material/button'; 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 { MatRadioModule } from '@angular/material/radio'; import { MatSelectModule } from '@angular/material/select'; import { MatSlideToggleModule } from '@angular/material/slide-toggle'; import { MatSliderModule } from '@angular/material/slider'; import { PtDynamicElementComponent, PtDynamicElementDirective, PtDynamicFormsErrorTemplateDirective } from './dynamic-element.component'; import { PtDynamicAutocompleteComponent } from './dynamic-elements/dynamic-autocomplete/dynamic-autocomplete.component'; import { PtDynamicCheckboxComponent } from './dynamic-elements/dynamic-checkbox/dynamic-checkbox.component'; import { PtDynamicDatepickerComponent } from './dynamic-elements/dynamic-datepicker/dynamic-datepicker.component'; import { PtDynamicFileInputComponent } from './dynamic-elements/dynamic-file-input/dynamic-file-input.component'; import { PtDynamicInputComponent } from './dynamic-elements/dynamic-input/dynamic-input.component'; import { PtDynamicSelectComponent } from './dynamic-elements/dynamic-select/dynamic-select.component'; import { PtDynamicSlideToggleComponent } from './dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component'; import { PtDynamicSliderComponent } from './dynamic-elements/dynamic-slider/dynamic-slider.component'; import { PtDynamicTextareaComponent } from './dynamic-elements/dynamic-textarea/dynamic-textarea.component'; import { PtDynamicFormsComponent } from './dynamic-forms.component'; import { PtDynamicRadioButtonComponent } from './dynamic-elements/dynamic-radio-button/dynamic-radio-button.component'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { DateAdapter, MAT_DATE_LOCALE, MatNativeDateModule } from '@angular/material/core'; import { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MatMomentDateModule, MomentDateAdapter } from '@angular/material-moment-adapter'; import { PtDynamicSelectionOptionTemplateDirective } from './dynamic-element.component'; import { FileModule } from '../file/file.module'; import { NgxMaskModule } from '../mask/ngx-mask.module'; // tslint:disable-next-line:no-any const TD_DYNAMIC_FORMS: Type[] = [ PtDynamicFormsComponent, PtDynamicElementComponent, PtDynamicElementDirective, PtDynamicFormsErrorTemplateDirective, PtDynamicSelectionOptionTemplateDirective, ]; // tslint:disable-next-line:no-any const TD_DYNAMIC_FORMS_ENTRY_COMPONENTS: Type[] = [ PtDynamicInputComponent, PtDynamicFileInputComponent, PtDynamicTextareaComponent, PtDynamicSlideToggleComponent, PtDynamicCheckboxComponent, PtDynamicSliderComponent, PtDynamicSelectComponent, PtDynamicDatepickerComponent, PtDynamicAutocompleteComponent, PtDynamicRadioButtonComponent, ]; @NgModule({ declarations: [TD_DYNAMIC_FORMS, TD_DYNAMIC_FORMS_ENTRY_COMPONENTS], imports: [ CommonModule, FormsModule, ReactiveFormsModule, FileModule, MatFormFieldModule, MatInputModule, MatSelectModule, MatCheckboxModule, MatSliderModule, MatSlideToggleModule, MatIconModule, MatButtonModule, MatDatepickerModule, MatMomentDateModule, MatAutocompleteModule, MatRadioModule, MatProgressSpinnerModule, NgxMaskModule.forRoot(), ], providers: [ { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS], }, ], exports: [TD_DYNAMIC_FORMS, TD_DYNAMIC_FORMS_ENTRY_COMPONENTS], entryComponents: [TD_DYNAMIC_FORMS_ENTRY_COMPONENTS], }) export class DynamicFormsModule { }