/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ import {ModuleWithProviders, NgModule} from '@angular/core'; import {InternalFormsSharedModule, NG_FORM_SELECTOR_WARNING, NG_MODEL_WITH_FORM_CONTROL_WARNING, REACTIVE_DRIVEN_DIRECTIVES, TEMPLATE_DRIVEN_DIRECTIVES} from './directives'; import {RadioControlRegistry} from './directives/radio_control_value_accessor'; import {FormBuilder} from './form_builder'; /** * Exports the required providers and directives for template-driven forms, * making them available for import by NgModules that import this module. * @see [Forms](guide/forms) * * @see [Forms Guide](/guide/forms) * * @publicApi */ @NgModule({ declarations: TEMPLATE_DRIVEN_DIRECTIVES, providers: [RadioControlRegistry], exports: [InternalFormsSharedModule, TEMPLATE_DRIVEN_DIRECTIVES] }) export class FormsModule { /** * @description * Provides options for configuring the template-driven forms module. * * @param opts An object of configuration options * * `warnOnDeprecatedNgFormSelector` Configures when to emit a warning when the deprecated * `ngForm` selector is used. */ static withConfig(opts: { /** @deprecated as of v6 */ warnOnDeprecatedNgFormSelector?: 'never' | 'once' | 'always', }): ModuleWithProviders { return { ngModule: FormsModule, providers: [{provide: NG_FORM_SELECTOR_WARNING, useValue: opts.warnOnDeprecatedNgFormSelector}] }; } } /** * Exports the required infrastructure and directives for reactive forms, * making them available for import by NgModules that import this module. * @see [Forms](guide/reactive-forms) * * @see [Reactive Forms Guide](/guide/reactive-forms) * * @publicApi */ @NgModule({ declarations: [REACTIVE_DRIVEN_DIRECTIVES], providers: [FormBuilder, RadioControlRegistry], exports: [InternalFormsSharedModule, REACTIVE_DRIVEN_DIRECTIVES] }) export class ReactiveFormsModule { /** * @description * Provides options for configuring the reactive forms module. * * @param opts An object of configuration options * * `warnOnNgModelWithFormControl` Configures when to emit a warning when an `ngModel` * binding is used with reactive form directives. */ static withConfig(opts: { /** @deprecated as of v6 */ warnOnNgModelWithFormControl: 'never' | 'once' | 'always' }): ModuleWithProviders { return { ngModule: ReactiveFormsModule, providers: [{ provide: NG_MODEL_WITH_FORM_CONTROL_WARNING, useValue: opts.warnOnNgModelWithFormControl }] }; } }