// widget_switch.ysl2 widget_class("Switch") || frequency = 5; dispatch(value) { for(let choice of this.choices){ if(value != choice.value){ choice.elt.setAttribute("style", "display:none"); } else { choice.elt.setAttribute("style", choice.style); } } } || widget_defs("Switch") { param "hmi_element"; | choices: [ const "regex",!"'^(\"[^\"].*\"|\-?[0-9]+|false|true)(#.*)?$'"!; const "subelts", "$result_widgets[@id = $hmi_element/@id]//*"; const "subwidgets", "$subelts//*[@id = $hmi_widgets/@id]"; const "accepted", "$subelts[not(ancestor-or-self::*/@id = $subwidgets/@id)]"; foreach "$accepted[regexp:test(@inkscape:label,$regex)]" { const "literal", "regexp:match(@inkscape:label,$regex)[2]"; | { | elt:id("«@id»"), | style:"«@style»", | value:«$literal» | }`if "position()!=last()" > ,` } | ], }