angular_forms 2.1.4

  • Readme
  • Changelog
  • Installing
  • 88

Pub Package

A port of the forms components that were in the core angular package.

2.1.4 #

  • Maintenance release to support Angular 6.0-alpha+1.

2.1.3 #

  • Maintenance release to support Angular 6.0-alpha.

2.1.2 #

  • Maintenance release to support Angular 5.3.

2.1.1 #

  • Maintenance release to support Angular 5.2.

2.1.0 #

New Features #

  • PatternValidator now has a pattern input. This allows the pattern property to be set dynamically. Previously, this could only be specified statically at compile time.

2.0.0 #

New Features #

  • Add AbstractControlGroup and AbstractNgForm to allow infrastructure to create their own form systems that can be backed by types such as a proto, or have different control group logic. Allow NgFormModel and NgControlGroup to work with abstract group.

  • reset method added to AbstractControl and AbstractControlDirective.

  • RequiredValidator now has a required input. This allows the required property to be toggled at runtime. Previously, this could only be set statically at compile time.

  • Control.invalid getter added.

  • Control.markAsPristine added. This will clear the dirty property.

  • Add ngDisabled input to all Control directives.

  • Add MemorizedForm directive. This is a form that will not remove controls if the control is taken out of the view, for example with a [NgIf].

  • Add disabled state to AbstractControl models. Note: This is not yet supported in the template-driven directives.

  • Add markAsUntouched method to AbstractControl.

  • Add a type annotation, T, to AbstractControl, which is tied to the type of value.

  • ControlGroup now extends AbstractControl<Map<String, dynamic>>.

  • ControlArray now extends AbstractControl<List>.

Breaking Changes #

  • Use value from AbstractControl for valueChanges event instead of internal variable. Allows code to more easily subclass AbstractControl.

  • Remove deprecated NG_VALUE_ACCESSOR token. Use ngValueAccessor instead.

  • Abstract updateValue method added to AbstractControl. All subclasses of AbstractControl will need to implement this method.

  • NgControlName will no longer initialize with null if a value is specified by 'ngModel'.

  • The touched property of Controls is now propagated to parents / children.

  • NgControlGroup can no longer be injected directly. It can still be injected as a ControlContainer.

  • NgControlName and NgFormControl can no longer be injected directly. They can still be injected as a NgControl.

  • The following directives are no longer injectable:

    • CheckboxControlValueAccessor
    • DefaultValueAccnessor
    • MaxLengthValidator
    • MinLengthValidator
    • NgControlStatus
    • NgSelectOption
    • NumberValueAccessor
    • PatternValidator
    • RadioControlValueAccessor
    • RequiredValidator
  • Add ControlValueAccessor.onDisabledChanged() method. All implementations of ControlValueAccessor need to add this method.

  • Remove include and exclude methods from ControlGroup. These can be replaced with calls to markAsEnabled and markAsDisabled instead.

    Before: controlGroup.include('foo');

    After: controlGroup.controls['foo'].markAsEnabled();

  • CheckboxControlValueAccessor now implements ControlValueAccessor<bool> and RadioControlValueAccessor now implements ControlValueAccessor<RadioButtonState>. Previously, they were both ControlValueAccessor<dynamic>.

  • Remove optionals param from ControlGroup constructor. This has been replaced by disabled state for all Controls. See for more details.

  • AbstractControl.find now only accepts a String. To supply a list, use AbstractControl.findPath instead. Also, for find or findPath, ControlArray index is now calling int.parse instead of expecting a raw number.

  • Properly typed the generic parameter on subclasses of AbstractControlDirective. Now, NgControl.control will return a Control, and ControlContainer.control will return a ControlGroup. There may be some unnecessary casts that can now be cleaned up.

  • FormBuilder instance methods group, control, and array have been removed. For FormBuilder.control, just call new Control(value, validator) directly. For and FormBuilder.array, use the static methods FormBuilder.controlGroup and FormBuilder.controlArray, respectively. FormBuilder is no longer Injectable.

  • Changed type of AbstractControl.statusChanges from Stream<dynamic> to Stream<String>. This now matches the type for AbstractControl.status, which as always been a String.

  • Allow expressions for maxlength/minlength validators. Breaking change does not support string values for maxlength/minlength anymore. minlength="12" now should be written [minlength]="12"

Bug fixes #

  • Add a not selector to ngForm for memorizedForm since memorized_form is now in angular_forms. This fixes the DIRECTIVE_EXPORTED_BY_AMBIGIOUS error when using:

  • Don't throw a null pointer exception in NgFormModel if a directives asks for a Control value before the form is initialized.

1.0.0 #

  • Support for angular 4.0.0.

0.1.0 #

  • Initial commit of angular_forms.

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:

  angular_forms: ^2.1.4

2. Install it

You can install packages from the command line:

with pub:

$ pub get

with Flutter:

$ flutter pub get

Alternatively, your editor might support pub get or flutter pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:

import 'package:angular_forms/angular_forms.dart';
Describes how popular the package is relative to other packages. [more]
Code health derived from static analysis. [more]
Reflects how tidy and up-to-date the package is. [more]
Weighted score of the above. [more]
Learn more about scoring.

We analyzed this package on Apr 8, 2020, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.7.1
  • pana: 0.13.6

Health suggestions

Fix lib/angular_forms.dart. (-0.50 points)

Analysis of lib/angular_forms.dart reported 1 hint:

line 33 col 9: 'NgControlStatus' is deprecated and shouldn't be used. Use listeners or variable binding on the control itself instead. This adds overhead for every form control whether the class is used or not..

Fix lib/src/directives.dart. (-0.50 points)

Analysis of lib/src/directives.dart reported 1 hint:

line 36 col 49: 'NgControlStatus' is deprecated and shouldn't be used. Use listeners or variable binding on the control itself instead. This adds overhead for every form control whether the class is used or not..

Maintenance issues and suggestions

Homepage URL isn't helpful. (-10 points)

Update the homepage field from pubspec.yaml: link to a website about the package or use the source repository URL.

The package description is too short. (-20 points)

Add more detail to the description field of pubspec.yaml. Use 60 to 180 characters to describe the package, what it does, and its target use case.

Maintain an example. (-10 points)

Create a short demo in the example/ directory to show how to use this package.

Common filename patterns include main.dart, example.dart, and angular_forms.dart. Packages with multiple examples should provide example/

For more information see the pub package layout conventions.


Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.5.0-dev.1.0 <3.0.0
angular ^6.0.0-alpha+1 6.0.0-alpha+1
meta ^1.1.4 1.1.8
Transitive dependencies
analyzer 0.37.1+1 0.39.6
angular_ast 0.5.11
angular_compiler 0.4.5
args 1.6.0
async 2.4.1
build 1.2.2
build_config 0.4.2
built_collection 4.3.2
built_value 7.0.9
charcode 1.1.3
checked_yaml 1.0.2
code_builder 3.2.1
collection 1.14.12
convert 2.1.1
crypto 2.1.4
csslib 0.16.1
dart_style 1.2.10 1.3.4
fixnum 0.10.11
front_end 0.1.21+1 0.1.29
glob 1.2.0
html 0.14.0+3
intl 0.15.8 0.16.1
js 0.6.1+1
json_annotation 3.0.1
kernel 0.3.21+1 0.3.29
logging 0.11.4
matcher 0.12.6
node_interop 1.0.3
node_io 1.0.1+2
package_config 1.9.3
path 1.6.4
pedantic 1.9.0
pub_semver 1.4.4
pubspec_parse 0.1.5
quiver 2.1.3
source_gen 0.9.4+6 0.9.5
source_span 1.7.0
stack_trace 1.9.3
string_scanner 1.0.5
term_glyph 1.1.0
typed_data 1.1.6
watcher 0.9.7+14
yaml 2.2.0
Dev dependencies
angular_test ^2.4.0
build_runner ^1.0.0
build_test ^0.10.2+5
build_web_compilers ^2.0.0
mockito ^3.0.0
test ^1.3.0