{
"name": "appmixer.utils.controls.Switch5",
"author": "Martin Krčmář <martin@client.io>",
"label": "Switch",
"description": "Switch component with 5 configurable outputs (out1 - out5) and one default output (else). The default output <code>else</code> is used when the conditions for ports <code>out1 - out5</code> are not met or are not defined.",
"version": "1.1.0",
"inPorts": [
{
"name": "in",
"inspector": {
"inputs": {
"expression1": {
"type": "expression",
"label": "Output 1",
"index": 1,
"levels": [
"AND",
"OR"
],
"fields": {
"input": {
"type": "text",
"label": "Input",
"index": 1
},
"operator": {
"type": "select",
"variables": false,
"label": "Operator",
"index": 2,
"options": [
{
"label": "=",
"value": "="
},
{
"label": "!=",
"value": "!="
},
{
"label": ">",
"value": ">"
},
{
"label": ">=",
"value": ">="
},
{
"label": "<",
"value": "<"
},
{
"label": "<=",
"value": "<="
},
{
"label": "%",
"value": "%"
},
{
"label": "Empty",
"value": "empty"
},
{
"label": "Not empty",
"value": "notEmpty"
},
{
"label": "Contains",
"value": "contains"
},
{
"label": "Range",
"value": "range"
},
{
"label": "Regex",
"value": "regex"
}
]
},
"value": {
"type": "text",
"label": "Value",
"when": {
"or": [
{
"eq": {
"./operator": "="
}
},
{
"eq": {
"./operator": "!="
}
},
{
"eq": {
"./operator": ">"
}
},
{
"eq": {
"./operator": ">="
}
},
{
"eq": {
"./operator": "<"
}
},
{
"eq": {
"./operator": "<="
}
},
{
"eq": {
"./operator": "%"
}
},
{
"eq": {
"./operator": "contains"
}
}
]
},
"index": 3
},
"divisor": {
"type": "number",
"label": "Divisor",
"index": 3,
"tooltip": "Any number. If the <i>Divisor</i> divides the data under <i>Data</i> with reminder of 0, the filter passes through <code>true</code>. Otherwise, it passes through <code>false</code>.",
"when": {
"eq": {
"./operator": "%"
}
}
},
"rangeMin": {
"type": "text",
"label": "Minimum value",
"index": 3,
"tooltip": "Any number or date (e.g. 2017-04-23 22:45). If the value under <i>Data</i> falls into the interval specified, the filter passes the message through. Otherwise, it ignores the message.",
"when": {
"eq": {
"./operator": "range"
}
}
},
"rangeMax": {
"type": "text",
"label": "Maximum value",
"index": 4,
"tooltip": "Any number or date (e.g. 2017-04-23 22:45). If the value under <i>Data</i> falls into the interval specified, the filter passes the message through. Otherwise, it ignores the message.",
"when": {
"eq": {
"./operator": "range"
}
}
},
"exclusiveMin": {
"type": "toggle",
"label": "Exclusive minimum",
"index": 3,
"tooltip": "Turn exclusivity on if you want to exclude test on equality for the minimum value.",
"when": {
"eq": {
"./operator": "range"
}
}
},
"exclusiveMax": {
"type": "toggle",
"label": "Exclusive maximum",
"index": 5,
"tooltip": "Turn exclusivity on if you want to exclude test on equality for the maximum value.",
"when": {
"eq": {
"./operator": "range"
}
}
},
"regex": {
"type": "text",
"label": "Expected value",
"tooltip": "Enter regular expression.",
"when": {
"eq": {
"./operator": "regex"
}
},
"index": 3
}
}
},
"expression2": {
"type": "expression",
"label": "Output 2",
"index": 2,
"levels": [
"AND",
"OR"
],
"fields": {
"input": {
"type": "text",
"label": "Input",
"index": 1
},
"operator": {
"type": "select",
"variables": false,
"label": "Operator",
"index": 2,
"options": [
{
"label": "=",
"value": "="
},
{
"label": "!=",
"value": "!="
},
{
"label": ">",
"value": ">"
},
{
"label": ">=",
"value": ">="
},
{
"label": "<",
"value": "<"
},
{
"label": "<=",
"value": "<="
},
{
"label": "%",
"value": "%"
},
{
"label": "Empty",
"value": "empty"
},
{
"label": "Not empty",
"value": "notEmpty"
},
{
"label": "Contains",
"value": "contains"
},
{
"label": "Range",
"value": "range"
},
{
"label": "Regex",
"value": "regex"
}
]
},
"value": {
"type": "text",
"label": "Value",
"when": {
"or": [
{
"eq": {
"./operator": "="
}
},
{
"eq": {
"./operator": "!="
}
},
{
"eq": {
"./operator": ">"
}
},
{
"eq": {
"./operator": ">="
}
},
{
"eq": {
"./operator": "<"
}
},
{
"eq": {
"./operator": "<="
}
},
{
"eq": {
"./operator": "%"
}
},
{
"eq": {
"./operator": "contains"
}
}
]
},
"index": 3
},
"divisor": {
"type": "number",
"label": "Divisor",
"index": 3,
"tooltip": "Any number. If the <i>Divisor</i> divides the data under <i>Data</i> with reminder of 0, the filter passes through <code>true</code>. Otherwise, it passes through <code>false</code>.",
"when": {
"eq": {
"./operator": "%"
}
}
},
"rangeMin": {
"type": "text",
"label": "Minimum value",
"index": 3,
"tooltip": "Any number or date (e.g. 2017-04-23 22:45). If the value under <i>Data</i> falls into the interval specified, the filter passes the message through. Otherwise, it ignores the message.",
"when": {
"eq": {
"./operator": "range"
}
}
},
"rangeMax": {
"type": "text",
"label": "Maximum value",
"index": 4,
"tooltip": "Any number or date (e.g. 2017-04-23 22:45). If the value under <i>Data</i> falls into the interval specified, the filter passes the message through. Otherwise, it ignores the message.",
"when": {
"eq": {
"./operator": "range"
}
}
},
"exclusiveMin": {
"type": "toggle",
"label": "Exclusive minimum",
"index": 3,
"tooltip": "Turn exclusivity on if you want to exclude test on equality for the minimum value.",
"when": {
"eq": {
"./operator": "range"
}
}
},
"exclusiveMax": {
"type": "toggle",
"label": "Exclusive maximum",
"index": 5,
"tooltip": "Turn exclusivity on if you want to exclude test on equality for the maximum value.",
"when": {
"eq": {
"./operator": "range"
}
}
},
"regex": {
"type": "text",
"label": "Expected value",
"tooltip": "Enter regular expression.",
"when": {
"eq": {
"./operator": "regex"
}
},
"index": 3
}
}
},
"expression3": {
"type": "expression",
"label": "Output 3",
"index": 3,
"levels": [
"AND",
"OR"
],
"fields": {
"input": {
"type": "text",
"label": "Input",
"index": 1
},
"operator": {
"type": "select",
"variables": false,
"label": "Operator",
"index": 2,
"options": [
{
"label": "=",
"value": "="
},
{
"label": "!=",
"value": "!="
},
{
"label": ">",
"value": ">"
},
{
"label": ">=",
"value": ">="
},
{
"label": "<",
"value": "<"
},
{
"label": "<=",
"value": "<="
},
{
"label": "%",
"value": "%"
},
{
"label": "Empty",
"value": "empty"
},
{
"label": "Not empty",
"value": "notEmpty"
},
{
"label": "Contains",
"value": "contains"
},
{
"label": "Range",
"value": "range"
},
{
"label": "Regex",
"value": "regex"
}
]
},
"value": {
"type": "text",
"label": "Value",
"when": {
"or": [
{
"eq": {
"./operator": "="
}
},
{
"eq": {
"./operator": "!="
}
},
{
"eq": {
"./operator": ">"
}
},
{
"eq": {
"./operator": ">="
}
},
{
"eq": {
"./operator": "<"
}
},
{
"eq": {
"./operator": "<="
}
},
{
"eq": {
"./operator": "%"
}
},
{
"eq": {
"./operator": "contains"
}
}
]
},
"index": 3
},
"divisor": {
"type": "number",
"label": "Divisor",
"index": 3,
"tooltip": "Any number. If the <i>Divisor</i> divides the data under <i>Data</i> with reminder of 0, the filter passes through <code>true</code>. Otherwise, it passes through <code>false</code>.",
"when": {
"eq": {
"./operator": "%"
}
}
},
"rangeMin": {
"type": "text",
"label": "Minimum value",
"index": 3,
"tooltip": "Any number or date (e.g. 2017-04-23 22:45). If the value under <i>Data</i> falls into the interval specified, the filter passes the message through. Otherwise, it ignores the message.",
"when": {
"eq": {
"./operator": "range"
}
}
},
"rangeMax": {
"type": "text",
"label": "Maximum value",
"index": 4,
"tooltip": "Any number or date (e.g. 2017-04-23 22:45). If the value under <i>Data</i> falls into the interval specified, the filter passes the message through. Otherwise, it ignores the message.",
"when": {
"eq": {
"./operator": "range"
}
}
},
"exclusiveMin": {
"type": "toggle",
"label": "Exclusive minimum",
"index": 3,
"tooltip": "Turn exclusivity on if you want to exclude test on equality for the minimum value.",
"when": {
"eq": {
"./operator": "range"
}
}
},
"exclusiveMax": {
"type": "toggle",
"label": "Exclusive maximum",
"index": 5,
"tooltip": "Turn exclusivity on if you want to exclude test on equality for the maximum value.",
"when": {
"eq": {
"./operator": "range"
}
}
},
"regex": {
"type": "text",
"label": "Expected value",
"tooltip": "Enter regular expression.",
"when": {
"eq": {
"./operator": "regex"
}
},
"index": 3
}
}
},
"expression4": {
"type": "expression",
"label": "Output 4",
"index": 4,
"levels": [
"AND",
"OR"
],
"fields": {
"input": {
"type": "text",
"label": "Input",
"index": 1
},
"operator": {
"type": "select",
"variables": false,
"label": "Operator",
"index": 2,
"options": [
{
"label": "=",
"value": "="
},
{
"label": "!=",
"value": "!="
},
{
"label": ">",
"value": ">"
},
{
"label": ">=",
"value": ">="
},
{
"label": "<",
"value": "<"
},
{
"label": "<=",
"value": "<="
},
{
"label": "%",
"value": "%"
},
{
"label": "Empty",
"value": "empty"
},
{
"label": "Not empty",
"value": "notEmpty"
},
{
"label": "Contains",
"value": "contains"
},
{
"label": "Range",
"value": "range"
},
{
"label": "Regex",
"value": "regex"
}
]
},
"value": {
"type": "text",
"label": "Value",
"when": {
"or": [
{
"eq": {
"./operator": "="
}
},
{
"eq": {
"./operator": "!="
}
},
{
"eq": {
"./operator": ">"
}
},
{
"eq": {
"./operator": ">="
}
},
{
"eq": {
"./operator": "<"
}
},
{
"eq": {
"./operator": "<="
}
},
{
"eq": {
"./operator": "%"
}
},
{
"eq": {
"./operator": "contains"
}
}
]
},
"index": 3
},
"divisor": {
"type": "number",
"label": "Divisor",
"index": 3,
"tooltip": "Any number. If the <i>Divisor</i> divides the data under <i>Data</i> with reminder of 0, the filter passes through <code>true</code>. Otherwise, it passes through <code>false</code>.",
"when": {
"eq": {
"./operator": "%"
}
}
},
"rangeMin": {
"type": "text",
"label": "Minimum value",
"index": 3,
"tooltip": "Any number or date (e.g. 2017-04-23 22:45). If the value under <i>Data</i> falls into the interval specified, the filter passes the message through. Otherwise, it ignores the message.",
"when": {
"eq": {
"./operator": "range"
}
}
},
"rangeMax": {
"type": "text",
"label": "Maximum value",
"index": 4,
"tooltip": "Any number or date (e.g. 2017-04-23 22:45). If the value under <i>Data</i> falls into the interval specified, the filter passes the message through. Otherwise, it ignores the message.",
"when": {
"eq": {
"./operator": "range"
}
}
},
"exclusiveMin": {
"type": "toggle",
"label": "Exclusive minimum",
"index": 3,
"tooltip": "Turn exclusivity on if you want to exclude test on equality for the minimum value.",
"when": {
"eq": {
"./operator": "range"
}
}
},
"exclusiveMax": {
"type": "toggle",
"label": "Exclusive maximum",
"index": 5,
"tooltip": "Turn exclusivity on if you want to exclude test on equality for the maximum value.",
"when": {
"eq": {
"./operator": "range"
}
}
},
"regex": {
"type": "text",
"label": "Expected value",
"tooltip": "Enter regular expression.",
"when": {
"eq": {
"./operator": "regex"
}
},
"index": 3
}
}
},
"expression5": {
"type": "expression",
"label": "Output 5",
"index": 5,
"levels": [
"AND",
"OR"
],
"fields": {
"input": {
"type": "text",
"label": "Input",
"index": 1
},
"operator": {
"type": "select",
"variables": false,
"label": "Operator",
"index": 2,
"options": [
{
"label": "=",
"value": "="
},
{
"label": "!=",
"value": "!="
},
{
"label": ">",
"value": ">"
},
{
"label": ">=",
"value": ">="
},
{
"label": "<",
"value": "<"
},
{
"label": "<=",
"value": "<="
},
{
"label": "%",
"value": "%"
},
{
"label": "Empty",
"value": "empty"
},
{
"label": "Not empty",
"value": "notEmpty"
},
{
"label": "Contains",
"value": "contains"
},
{
"label": "Range",
"value": "range"
},
{
"label": "Regex",
"value": "regex"
}
]
},
"value": {
"type": "text",
"label": "Value",
"when": {
"or": [
{
"eq": {
"./operator": "="
}
},
{
"eq": {
"./operator": "!="
}
},
{
"eq": {
"./operator": ">"
}
},
{
"eq": {
"./operator": ">="
}
},
{
"eq": {
"./operator": "<"
}
},
{
"eq": {
"./operator": "<="
}
},
{
"eq": {
"./operator": "%"
}
},
{
"eq": {
"./operator": "contains"
}
}
]
},
"index": 3
},
"divisor": {
"type": "number",
"label": "Divisor",
"index": 3,
"tooltip": "Any number. If the <i>Divisor</i> divides the data under <i>Data</i> with reminder of 0, the filter passes through <code>true</code>. Otherwise, it passes through <code>false</code>.",
"when": {
"eq": {
"./operator": "%"
}
}
},
"rangeMin": {
"type": "text",
"label": "Minimum value",
"index": 3,
"tooltip": "Any number or date (e.g. 2017-04-23 22:45). If the value under <i>Data</i> falls into the interval specified, the filter passes the message through. Otherwise, it ignores the message.",
"when": {
"eq": {
"./operator": "range"
}
}
},
"rangeMax": {
"type": "text",
"label": "Maximum value",
"index": 4,
"tooltip": "Any number or date (e.g. 2017-04-23 22:45). If the value under <i>Data</i> falls into the interval specified, the filter passes the message through. Otherwise, it ignores the message.",
"when": {
"eq": {
"./operator": "range"
}
}
},
"exclusiveMin": {
"type": "toggle",
"label": "Exclusive minimum",
"index": 3,
"tooltip": "Turn exclusivity on if you want to exclude test on equality for the minimum value.",
"when": {
"eq": {
"./operator": "range"
}
}
},
"exclusiveMax": {
"type": "toggle",
"label": "Exclusive maximum",
"index": 5,
"tooltip": "Turn exclusivity on if you want to exclude test on equality for the maximum value.",
"when": {
"eq": {
"./operator": "range"
}
}
},
"regex": {
"type": "text",
"label": "Expected value",
"tooltip": "Enter regular expression.",
"when": {
"eq": {
"./operator": "regex"
}
},
"index": 3
}
}
}
}
}
}
],
"outPorts": [
"out1",
"out2",
"out3",
"out4",
"out5",
"else"
],
"icon": "data:image/png;base64,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"
}