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>,
|
FormInput<dynamic, FormInputValidator<dynamic, ValidationError>,
|
||||||
dynamic>>[];
|
dynamic>>[];
|
||||||
|
|
||||||
for (final i in b.inputs) {
|
|
||||||
if (!a.containsKey(i.key)) {
|
|
||||||
inputs.add(i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (final i in a.inputs) {
|
for (final i in a.inputs) {
|
||||||
if (!b.containsKey(i.key)) {
|
if (!b.containsKey(i.key)) {
|
||||||
inputs.add(i);
|
inputs.add(i);
|
||||||
|
@ -32,9 +32,13 @@ class FormIntersection extends FormOperation {
|
|||||||
|
|
||||||
for (final i in a.inputs) {
|
for (final i in a.inputs) {
|
||||||
if (b.containsKey(i.key)) {
|
if (b.containsKey(i.key)) {
|
||||||
|
if (i.validator.pure) {
|
||||||
|
inputs.add(b.inputOf(i.key));
|
||||||
|
} else {
|
||||||
inputs.add(i);
|
inputs.add(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return WyattFormImpl(
|
return WyattFormImpl(
|
||||||
inputs,
|
inputs,
|
||||||
|
@ -37,6 +37,13 @@ class FormUnion extends FormOperation {
|
|||||||
for (final i in b.inputs) {
|
for (final i in b.inputs) {
|
||||||
if (!a.containsKey(i.key)) {
|
if (!a.containsKey(i.key)) {
|
||||||
inputs.add(i);
|
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