Estoy desarrollando un formulario reactivo Angular (12) con muchas dependencias directas e indirectas entre los valores de control del formulario. Ejemplo: la tasa de impuestos depende del país seleccionado, la fecha y el tipo de recibo seleccionado, pero también se puede configurar manualmente. Los cambios en la tasa impositiva provocan cambios en el monto neto. Pero el monto neto también se puede configurar manualmente con cambios en el monto bruto. Y así...
Traté de manejar estas dependencias con las suscripciones valueChanges de control de formulario y con eventos de desenfoque de los componentes de control, pero esto termina en un infierno de controlador de eventos donde un cambio sobrescribe al otro.
¿Cuál es la forma de manejar dependencias complejas entre los controles de forma reactiva de Angular de una manera limpia, clara y fácil de mantener? No pude encontrar un ejemplo adecuado para esto.
Resolví problemas similares de dependencia de entrada escribiendo validadores personalizados, el tutorial angular se llama "Agregar validación cruzada a formularios reactivos".
https://angular.io/guide/form-validation#adding-cross-validation-to-reactive-forms
Al hacer esto, puede agrupar sus validadores (si es necesario) y asegurarse de que el árbol de dependencia correcto esté presente según la selección del usuario.