Las tres reglas de coordinación de los switches
Módulo de ejemplo: hellotypes, propiedades switchoneofmany/switchatmostone/switchany.
Varios elementos ElementBool de una misma propiedad pueden coordinarse entre sí como botones de radio o casillas independientes, mediante "rule" en el JSON de la propiedad:
rule | Comportamiento |
|---|---|
0 — OneOfMany | Exactamente uno verdadero a la vez (radio). Poner un elemento a true vuelve a poner todos los demás a false. Volver a ponerlo directamente a false es rechazado — hay que elegir otro. |
1 — AtMostOne | Cero o uno verdadero (radio opcional). Mismo comportamiento, salvo que también se puede deseleccionar directamente. |
2 — Any (por defecto) | Sin ninguna restricción, casillas independientes. |
"switchoneofmany": {
"permission": 2,
"rule": 0,
"e": {
"calibrate": { "type": "bool", "directedit": true },
"guide": { "type": "bool", "directedit": true },
"stop": { "type": "bool", "directedit": true }
}
}Totalmente declarativo: la aplicación real de la regla vive en el propio framework, disparada por cualquier escritura en uno de los elementos — ningún código que escribir en el módulo para que funcione, solo para fijar un estado inicial coherente si es necesario.