{ "custom": { "FillColour": "value", "alarm_message": null, "covert_mode": true, "disconnected": false, "display_icon": true, "error": false, "isMatch": 0, "plc": "value", "priority": 0, "priority_string": "No active alarms", "running": false, "running_status": 0, "searchId": "PLC01", "show_error": false, "show_running": true, "state": 5, "state_string": "Unknown" }, "params": { "forceFaultStatus": null, "forceRunningStatus": null, "tagProps": [ "value", "value", "value", "value", "value", "value", "value", "value", "value", "value" ] }, "propConfig": { "custom.FillColour": { "persistent": true }, "custom.alarm_message": { "persistent": true }, "custom.covert_mode": { "binding": { "config": { "path": "view.custom.state" }, "transforms": [ { "expression": "case(\t{value},\r\n\t\t0, {session.custom.alarm_filter.show_running},\r\n\t\t1, True,\r\n\t\t2, True,\r\n\t\t3, {session.custom.alarm_filter.show_low_alarm} || {session.custom.alarm_filter.show_running},\r\n\t\t4, {session.custom.alarm_filter.show_diagnostic} || {session.custom.alarm_filter.show_running},\r\n\t\t5, {session.custom.alarm_filter.show_running},\r\n\t\tFalse)", "type": "expression" } ], "type": "property" }, "persistent": true }, "custom.disconnected": { "binding": { "config": { "fallbackDelay": 2.5, "mode": "indirect", "references": { "fc": "{session.custom.fc}", "plc": "{view.custom.plc}" }, "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{plc}/DCN" }, "transforms": [ { "expression": "if(isNull({value}), False, {value})", "type": "expression" } ], "type": "tag" }, "persistent": true }, "custom.display_icon": { "binding": { "config": { "expression": "{this.custom.covert_mode}//||{this.custom.isMatch}\u003e0" }, "type": "expr" }, "persistent": true }, "custom.error": { "binding": { "config": { "path": "view.custom.state" }, "transforms": [ { "expression": "0 \u003c {value} \u0026\u0026 {value} \u003c 5", "type": "expression" } ], "type": "property" }, "persistent": true }, "custom.isMatch": { "binding": { "config": { "expression": "if({view.params.tagProps[0]}\u003d\"value\",0,\nif({this.custom.searchId}\u003d{view.params.tagProps[0]},100,0))" }, "type": "expr" }, "persistent": true }, "custom.plc": { "binding": { "config": { "path": "view.params.tagProps[0]" }, "transforms": [ { "expression": "split({value}, \"/\")[0]", "type": "expression" } ], "type": "property" }, "persistent": true }, "custom.priority": { "binding": { "config": { "path": "view.custom.state" }, "transforms": [ { "fallback": 0, "inputType": "scalar", "mappings": [ { "input": 1, "output": 4 }, { "input": 2, "output": 3 }, { "input": 3, "output": 2 }, { "input": 4, "output": 1 } ], "outputType": "scalar", "type": "map" } ], "type": "property" }, "persistent": true }, "custom.priority_string": { "binding": { "config": { "expression": "case({view.custom.state},\r\n1, \"High\",\r\n2, \"Medium\",\r\n3, \"Low\",\r\n4, \"Diagnostic\",\r\n5, \"No active alarms\",\r\n\"Unknown\")" }, "type": "expr" }, "persistent": true }, "custom.running": { "binding": { "config": { "expression": "{view.custom.running_status} \u003d 3" }, "type": "expr" }, "persistent": true }, "custom.running_status": { "binding": { "config": { "fallbackDelay": 2.5, "mode": "indirect", "references": { "0": "{view.params.tagProps[0]}", "fc": "{session.custom.fc}" }, "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE" }, "transforms": [ { "expression": "coalesce({value},{view.params.forceRunningStatus},0)", "type": "expression" } ], "type": "tag" }, "persistent": true }, "custom.searchId": { "binding": { "config": { "path": "session.custom.searchId" }, "type": "property" }, "persistent": true }, "custom.show_error": { "binding": { "config": { "path": "view.custom.state" }, "transforms": [ { "expression": "case(\t{value},\r\n\t\t1, True,\r\n\t\t2, True,\r\n\t\t3, {session.custom.alarm_filter.show_low_alarm},\r\n\t\t4, {session.custom.alarm_filter.show_diagnostic},\r\n\t\tFalse)", "type": "expression" } ], "type": "property" }, "persistent": true }, "custom.show_running": { "binding": { "config": { "path": "view.custom.state" }, "transforms": [ { "expression": "case(\t{value},\r\n\t\t1, False,\r\n\t\t2, False,\r\n\t\t{session.custom.alarm_filter.show_running}\r\n\t\t)", "type": "expression" } ], "type": "property" }, "persistent": true }, "custom.state": { "binding": { "config": { "fallbackDelay": 2.5, "mode": "indirect", "references": { "0": "{view.params.tagProps[0]}", "fc": "{session.custom.fc}" }, "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/ALARMST" }, "transforms": [ { "expression": "coalesce({value},{view.params.forceFaultStatus},0)", "type": "expression" }, { "fallback": null, "inputType": "scalar", "mappings": [ { "input": 4, "output": 1 }, { "input": 3, "output": 2 }, { "input": 2, "output": 3 }, { "input": 1, "output": 4 }, { "input": 0, "output": 5 } ], "outputType": "scalar", "type": "map" } ], "type": "tag" }, "persistent": true }, "custom.state_string": { "binding": { "config": { "expression": "case({view.custom.running_status},\r\n1, \"Faulted\",\r\n2, \"Stopped\",\r\n3, \"Running\",\r\n\"Unknown\")" }, "type": "expr" }, "persistent": true }, "params.forceFaultStatus": { "paramDirection": "input", "persistent": true }, "params.forceRunningStatus": { "paramDirection": "input", "persistent": true }, "params.tagProps": { "paramDirection": "inout", "persistent": true } }, "props": { "defaultSize": { "height": 100, "width": 100 } }, "root": { "children": [ { "meta": { "name": "KPS_Symbol" }, "position": { "height": 1, "width": 1 }, "propConfig": { "props.elements[10].fill.paint": { "binding": { "config": { "path": "view.custom.state" }, "transforms": [ { "expression": "case({value},\r\n0,{session.custom.colours.state0},\r\n1,{session.custom.colours.state1},\r\n2,{session.custom.colours.state2},\r\n3,{session.custom.colours.state3},\r\n4,{session.custom.colours.state4},\r\n5,if({view.custom.running},{session.custom.colours.state5},{session.custom.colours.state0}),\r\n6,{session.custom.colours.state6},\r\n{session.custom.colours.fallback}\r\n)", "type": "expression" }, { "expression": "if({view.custom.display_icon}\u0026\u0026 {view.custom.isMatch}\u003d0,{value},{value}+\u002700\u0027)", "type": "expression" } ], "type": "property" } }, "props.elements[11].elements[0].elements[0].fill.paint": { "binding": { "config": { "path": "view.custom.state" }, "transforms": [ { "expression": "case({value},\r\n0,{session.custom.colours.state0},\r\n1,{session.custom.colours.state1},\r\n2,{session.custom.colours.state2},\r\n3,{session.custom.colours.state3},\r\n4,{session.custom.colours.state4},\r\n5,if({view.custom.running},{session.custom.colours.state5},{session.custom.colours.state0}),\r\n6,{session.custom.colours.state6},\r\n{session.custom.colours.fallback}\r\n)", "type": "expression" }, { "expression": "if({view.custom.display_icon}\u0026\u0026 {view.custom.isMatch}\u003d0,{value},{value}+\u002700\u0027)", "type": "expression" } ], "type": "property" } }, "props.elements[11].elements[1].fill.paint": { "binding": { "config": { "path": "view.custom.state" }, "transforms": [ { "expression": "case({value},\r\n0,{session.custom.colours.state0},\r\n1,{session.custom.colours.state1},\r\n2,{session.custom.colours.state2},\r\n3,{session.custom.colours.state3},\r\n4,{session.custom.colours.state4},\r\n5,if({view.custom.running},{session.custom.colours.state5},{session.custom.colours.state0}),\r\n6,{session.custom.colours.state6},\r\n{session.custom.colours.fallback}\r\n)", "type": "expression" }, { "expression": "if({view.custom.display_icon}\u0026\u0026 {view.custom.isMatch}\u003d0,{value},{value}+\u002700\u0027)", "type": "expression" } ], "type": "property" } }, "props.elements[11].elements[2].fill.paint": { "binding": { "config": { "path": "view.custom.state" }, "transforms": [ { "expression": "case({value},\r\n0,{session.custom.colours.state0},\r\n1,{session.custom.colours.state1},\r\n2,{session.custom.colours.state2},\r\n3,{session.custom.colours.state3},\r\n4,{session.custom.colours.state4},\r\n5,if({view.custom.running},{session.custom.colours.state5},{session.custom.colours.state0}),\r\n6,{session.custom.colours.state6},\r\n{session.custom.colours.fallback}\r\n)", "type": "expression" }, { "expression": "if({view.custom.display_icon}\u0026\u0026 {view.custom.isMatch}\u003d0,{value},{value}+\u002700\u0027)", "type": "expression" } ], "type": "property" } }, "props.elements[1].fill.paint": { "binding": { "config": { "path": "view.custom.state" }, "transforms": [ { "expression": "case({value},\r\n0,{session.custom.colours.state0},\r\n1,{session.custom.colours.state1},\r\n2,{session.custom.colours.state2},\r\n3,{session.custom.colours.state3},\r\n4,{session.custom.colours.state4},\r\n5,if({view.custom.running},{session.custom.colours.state5},{session.custom.colours.state0}),\r\n6,{session.custom.colours.state6},\r\n{session.custom.colours.fallback}\r\n)", "type": "expression" }, { "expression": "if({view.custom.display_icon}\u0026\u0026 {view.custom.isMatch}\u003d0,{value},{value}+\u002700\u0027)", "type": "expression" } ], "type": "property" } }, "props.elements[4].elements[0].fill.paint": { "binding": { "config": { "path": "view.custom.state" }, "transforms": [ { "expression": "case({value},\r\n0,{session.custom.colours.state0},\r\n1,{session.custom.colours.state1},\r\n2,{session.custom.colours.state2},\r\n3,{session.custom.colours.state3},\r\n4,{session.custom.colours.state4},\r\n5,if({view.custom.running},{session.custom.colours.state5},{session.custom.colours.state0}),\r\n6,{session.custom.colours.state6},\r\n{session.custom.colours.fallback}\r\n)", "type": "expression" }, { "expression": "if({view.custom.display_icon}\u0026\u0026 {view.custom.isMatch}\u003d0,{value},{value}+\u002700\u0027)", "type": "expression" } ], "type": "property" } }, "props.elements[4].elements[1].fill.paint": { "binding": { "config": { "path": "view.custom.state" }, "transforms": [ { "expression": "case({value},\r\n0,{session.custom.colours.state0},\r\n1,{session.custom.colours.state1},\r\n2,{session.custom.colours.state2},\r\n3,{session.custom.colours.state3},\r\n4,{session.custom.colours.state4},\r\n5,if({view.custom.running},{session.custom.colours.state5},{session.custom.colours.state0}),\r\n6,{session.custom.colours.state6},\r\n{session.custom.colours.fallback}\r\n)", "type": "expression" }, { "expression": "if({view.custom.display_icon}\u0026\u0026 {view.custom.isMatch}\u003d0,{value},{value}+\u002700\u0027)", "type": "expression" } ], "type": "property" } }, "props.elements[5].fill.paint": { "binding": { "config": { "path": "view.custom.state" }, "transforms": [ { "expression": "case({value},\r\n0,{session.custom.colours.state0},\r\n1,{session.custom.colours.state1},\r\n2,{session.custom.colours.state2},\r\n3,{session.custom.colours.state3},\r\n4,{session.custom.colours.state4},\r\n5,if({view.custom.running},{session.custom.colours.state5},{session.custom.colours.state0}),\r\n6,{session.custom.colours.state6},\r\n{session.custom.colours.fallback}\r\n)", "type": "expression" }, { "expression": "if({view.custom.display_icon}\u0026\u0026 {view.custom.isMatch}\u003d0,{value},{value}+\u002700\u0027)", "type": "expression" } ], "type": "property" } }, "props.elements[6].fill.paint": { "binding": { "config": { "path": "view.custom.state" }, "transforms": [ { "expression": "case({value},\r\n0,{session.custom.colours.state0},\r\n1,{session.custom.colours.state1},\r\n2,{session.custom.colours.state2},\r\n3,{session.custom.colours.state3},\r\n4,{session.custom.colours.state4},\r\n5,if({view.custom.running},{session.custom.colours.state5},{session.custom.colours.state0}),\r\n6,{session.custom.colours.state6},\r\n{session.custom.colours.fallback}\r\n)", "type": "expression" }, { "expression": "if({view.custom.display_icon}\u0026\u0026 {view.custom.isMatch}\u003d0,{value},{value}+\u002700\u0027)", "type": "expression" } ], "type": "property" } }, "props.style.classes": { "binding": { "config": { "expression": "if({session.custom.colours.colour_impaired} \u003d True \u0026\u0026 {view.custom.isMatch} \u003e 0,\n{view.custom.state} + 100 + {view.custom.isMatch},\n{view.custom.state} + {view.custom.isMatch})" }, "transforms": [ { "fallback": "", "inputType": "scalar", "mappings": [ { "input": 101, "output": "State-Styles/State101" }, { "input": 102, "output": "State-Styles/State102" }, { "input": 103, "output": "State-Styles/State103" }, { "input": 104, "output": "State-Styles/State104" }, { "input": 105, "output": "State-Styles/State105" }, { "input": 106, "output": "State-Styles/State106" }, { "input": 201, "output": "State-Styles/State201" }, { "input": 202, "output": "State-Styles/State202" }, { "input": 203, "output": "State-Styles/State203" }, { "input": 204, "output": "State-Styles/State204" }, { "input": 205, "output": "State-Styles/State205" } ], "outputType": "style-list", "type": "map" } ], "type": "expr" } } }, "props": { "elements": [ { "id": "defs2", "name": "defs2", "type": "defs" }, { "d": "M 2.5706316,14.829176 A 8.6886292,8.8029537 0 0 1 3.7045976,2.4348857 8.6886292,8.8029537 0 0 1 15.938255,3.5801235 8.6886292,8.8029537 0 0 1 14.811492,15.975088 8.6886292,8.8029537 0 0 1 2.5771713,14.837148", "fill": {}, "id": "path392", "name": "path392", "stroke": { "dasharray": "none", "miterlimit": "4", "paint": "#000000", "width": "0.301" }, "type": "path" }, { "d": "m 9.5390129,4.6864138 v 4.054911", "fill": { "paint": "#ffffff" }, "id": "path5019", "name": "path5019", "stroke": { "width": "0.995" }, "style": { "InkscapeStroke": "none", "color": "#000000" }, "type": "path" }, { "d": "M 9.4725388,4.3208071 V 10.203752", "fill": { "paint": "#ffffff" }, "id": "path5287", "name": "path5287", "stroke": { "width": "0.264583" }, "style": { "InkscapeStroke": "none", "color": "#000000" }, "type": "path" }, { "elements": [ { "d": "m 3.5355633,13.180222 a 1.7980549,1.7980549 0 0 1 0.2346668,-2.531606 1.7980549,1.7980549 0 0 1 2.5316754,0.233921 1.7980549,1.7980549 0 0 1 -0.2331762,2.531744 1.7980549,1.7980549 0 0 1 -2.5318126,-0.23243", "fill": { "opacity": "1" }, "id": "path5410", "name": "path5410", "stroke": { "dasharray": "none", "linecap": "butt", "miterlimit": "4", "opacity": "1", "paint": "#000000", "width": "0.264583" }, "type": "path" }, { "d": "m 4.4777183,12.373384 a 0.50880533,0.50880533 0 0 1 0.066405,-0.716383 0.50880533,0.50880533 0 0 1 0.7164019,0.06619 0.50880533,0.50880533 0 0 1 -0.065983,0.716422 0.50880533,0.50880533 0 0 1 -0.7164408,-0.06577", "fill": { "opacity": "1" }, "id": "path5410-5", "name": "path5410-5", "stroke": { "dasharray": "none", "linecap": "butt", "miterlimit": "4", "opacity": "1", "paint": "#000000", "width": "0.264583" }, "type": "path" } ], "id": "g5618", "name": "g5618", "transform": "translate(-0.53179165,0.03323698)", "type": "group" }, { "d": "M 4.2949151,5.1775781 A 0.50880533,0.50880533 0 0 1 4.3613201,4.4611957 0.50880533,0.50880533 0 0 1 5.0777219,4.5273898 0.50880533,0.50880533 0 0 1 5.0117388,5.2438111 0.50880533,0.50880533 0 0 1 4.2952981,5.1780389", "fill": { "opacity": "1" }, "id": "path5410-5-0", "name": "path5410-5-0", "stroke": { "dasharray": "none", "linecap": "butt", "miterlimit": "4", "opacity": "1", "paint": "#000000", "width": "0.264583" }, "type": "path" }, { "d": "m 12.182905,4.9268147 a 0.81870443,0.81870443 0 0 1 0.106851,-1.1527109 0.81870443,0.81870443 0 0 1 1.152742,0.106511 0.81870443,0.81870443 0 0 1 -0.106172,1.1527735 0.81870443,0.81870443 0 0 1 -1.152804,-0.1058322", "fill": { "opacity": "1" }, "id": "path5410-5-0-4", "name": "path5410-5-0-4", "stroke": { "dasharray": "none", "linecap": "butt", "miterlimit": "4", "opacity": "1", "paint": "#000000", "width": "0.264583" }, "type": "path" }, { "d": "M 6.1038118,11.509128 4.1664144,4.9099388", "fill": { "opacity": "1", "paint": "#ffffff" }, "id": "path5480", "name": "path5480", "stroke": { "dasharray": "none", "linecap": "butt", "miterlimit": "4", "opacity": "1", "paint": "#000000", "width": "0.226268" }, "type": "path" }, { "d": "M 15.295408,12.27744 13.587526,4.1416262", "fill": { "opacity": "1", "paint": "#ffffff" }, "id": "path5480-7", "name": "path5480-7", "stroke": { "dasharray": "none", "linecap": "butt", "miterlimit": "4", "opacity": "1", "paint": "#000000", "width": "0.235884" }, "type": "path" }, { "d": "M 4.754402,4.3462292 12.628538,3.5974087", "fill": { "opacity": "1", "paint": "#ffffff" }, "id": "path5482", "name": "path5482", "stroke": { "dasharray": "none", "linecap": "butt", "miterlimit": "4", "opacity": "1", "paint": "#000000", "width": "0.271714" }, "type": "path" }, { "fill": { "opacity": 1 }, "height": "0.96387237", "id": "rect5506", "name": "rect5506", "stroke": { "dasharray": "none", "linecap": "butt", "miterlimit": "4", "opacity": "1", "paint": "#000000", "width": "0.264583" }, "transform": "rotate(-17.383769)", "type": "rect", "width": "9.3728275", "x": "1.5237854", "y": "16.281492" }, { "elements": [ { "elements": [ { "fill": { "opacity": "1" }, "height": "4.0549111", "id": "rect5508", "name": "rect5508", "stroke": { "dasharray": "none", "linecap": "butt", "miterlimit": "4", "opacity": "1", "paint": "#000000", "width": "0.264583" }, "type": "rect", "width": "4.9855466", "x": "6.6806326", "y": "6.6806326" }, { "elements": [ { "fill": { "opacity": "1", "paint": "#000000" }, "id": "tspan5562", "name": "tspan5562", "stroke": { "dasharray": "none", "width": "0.128701" }, "text": "K", "type": "tspan", "x": "7.4878073", "y": "10.346892" } ], "fill": { "opacity": "1", "paint": "#000000" }, "id": "text5564", "name": "text5564", "stroke": { "dasharray": "none", "linecap": "butt", "miterlimit": "4", "opacity": "1", "paint": "#000000", "width": "0.128701" }, "style": { "fontSize": "3.94435px" }, "transform": "scale(1.029236,0.97159447)", "type": "text", "x": "7.4878073", "y": "10.346892" } ], "id": "g5623", "name": "g5623", "transform": "translate(0.26589582,0.03323698)", "type": "group" }, { "fill": { "opacity": "1" }, "height": "0.69797659", "id": "rect5625", "name": "rect5625", "stroke": { "dasharray": "none", "linecap": "butt", "miterlimit": "4", "opacity": "1", "paint": "#000000", "width": "0.264583" }, "type": "rect", "width": "4.9855466", "x": "6.9465284", "y": "6.0158935" }, { "fill": { "opacity": "1" }, "height": "0.69797659", "id": "rect5625-3", "name": "rect5625-3", "stroke": { "dasharray": "none", "linecap": "butt", "miterlimit": "4", "opacity": "1", "paint": "#000000", "width": "0.264583" }, "type": "rect", "width": "4.9855466", "x": "6.9465284", "y": "10.718925" } ], "id": "g5655", "name": "g5655", "type": "group" } ], "style": {}, "viewBox": "0 0 18.520832 18.520834" }, "type": "ia.shapes.svg" } ], "events": { "dom": { "onClick": { "config": { "script": "\tsystem.perspective.openDock(\u0027Docked-East\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" }, "scope": "G", "type": "script" }, "onDoubleClick": { "config": { "script": "\ttagProps \u003d self.view.params.tagProps\n\tsystem.perspective.openPopup(\"StatusPopUP\", \"PopUp-Views/Controller-Equipment/Information\", params \u003d{\"tagProps\":tagProps})\n\t" }, "enabled": false, "scope": "G", "type": "script" }, "onMouseEnter": { "config": { "script": "\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message" }, "scope": "G", "type": "script" } } }, "meta": { "name": "root", "tooltip": { "enabled": true, "location": "top-left", "style": {} } }, "propConfig": { "meta.tooltip.style.backgroundColor": { "binding": { "config": { "path": "view.custom.state" }, "transforms": [ { "expression": "case({value},\r\n0,{session.custom.colours.state0},\r\n1,{session.custom.colours.state1},\r\n2,{session.custom.colours.state2},\r\n3,{session.custom.colours.state3},\r\n4,{session.custom.colours.state4},\r\n5,{session.custom.colours.state5},\r\n6,{session.custom.colours.state6},\r\n{session.custom.colours.fallback}\r\n)", "type": "expression" } ], "type": "property" } }, "meta.tooltip.style.classes": { "binding": { "config": { "expression": "{view.custom.priority}" }, "transforms": [ { "fallback": "Alarms-Styles/NoAlarm", "inputType": "scalar", "mappings": [ { "input": 1, "output": "Alarms-Styles/Diagnostic" }, { "input": 2, "output": "Alarms-Styles/Low" }, { "input": 3, "output": "Alarms-Styles/Medium" }, { "input": 4, "output": "Alarms-Styles/High" } ], "outputType": "style-list", "type": "map" } ], "type": "expr" } }, "meta.tooltip.style.color": { "binding": { "config": { "path": "view.custom.state" }, "transforms": [ { "expression": "if({session.custom.colours.colour_impaired},\r\n\t\u0027#000000\u0027,\r\n\tcase(\t{value},\r\n\t\t\t1,\u0027#FFFFFF\u0027,\r\n\t\t\t2,\u0027#000000\u0027,\r\n\t\t\t3,\u0027#000000\u0027,\r\n\t\t\t4,\u0027#FFFFFF\u0027,\r\n\t\t\t5,\u0027#FFFFFF\u0027,\r\n\t\t\t\u0027#000000\u0027)\r\n\t)", "type": "expression" } ], "type": "property" } }, "meta.tooltip.text": { "binding": { "config": { "expression": "if({view.custom.disconnected} \u003d False,\n\tif(isNull({view.custom.alarm_message}),\n\t\"Source Id: \" + {view.params.tagProps[0]} +\n\t\", Priority: \" + {view.custom.priority_string} +\n\t\", State: \" + {view.custom.state_string},\n\t\"Source Id: \" + {view.params.tagProps[0]} +\n\t\", Alarm: \" + {view.custom.alarm_message} +\n\t\", Priority: \" + {view.custom.priority_string} +\n\t\", State: \" + {view.custom.state_string}),\n\"Source Id: \" +{view.params.tagProps[0]} + \", Priority: Unknown, State: Unknown\")" }, "type": "expr" } }, "props.style.classes": { "binding": { "config": { "path": "view.custom.disconnected" }, "transforms": [ { "fallback": "Disconnects/Device-Connected", "inputType": "scalar", "mappings": [ { "input": true, "output": "Disconnects/Device-Disconnected" }, { "input": false, "output": "Disconnects/Device-Connected" } ], "outputType": "style-list", "type": "map" } ], "type": "property" } } }, "props": { "aspectRatio": "1:1", "mode": "percent", "style": { "cursor": "pointer" } }, "type": "ia.container.coord" } }