fix(form): fix set operations behaviors
This commit is contained in:
parent
9ebe8e21dc
commit
72661a343f
@ -30,12 +30,6 @@ class FormDifference extends FormOperation {
|
||||
FormInput<dynamic, FormInputValidator<dynamic, ValidationError>,
|
||||
dynamic>>[];
|
||||
|
||||
for (final i in b.inputs) {
|
||||
if (!a.containsKey(i.key)) {
|
||||
inputs.add(i);
|
||||
}
|
||||
}
|
||||
|
||||
for (final i in a.inputs) {
|
||||
if (!b.containsKey(i.key)) {
|
||||
inputs.add(i);
|
||||
|
@ -32,7 +32,11 @@ class FormIntersection extends FormOperation {
|
||||
|
||||
for (final i in a.inputs) {
|
||||
if (b.containsKey(i.key)) {
|
||||
inputs.add(i);
|
||||
if (i.validator.pure) {
|
||||
inputs.add(b.inputOf(i.key));
|
||||
} else {
|
||||
inputs.add(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -37,6 +37,13 @@ class FormUnion extends FormOperation {
|
||||
for (final i in b.inputs) {
|
||||
if (!a.containsKey(i.key)) {
|
||||
inputs.add(i);
|
||||
} else {
|
||||
// if a input is pure, but not b, replace a one with b
|
||||
if (a.isPureInput(i.key)) {
|
||||
inputs
|
||||
..remove(a.inputOf(i.key))
|
||||
..add(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user