{ "custom": {}, "params": { "Coordinate": { "Scale": 2, "x": "", "y": "" }, "fontSize": "16px", "label": "", "showIcons": true, "status": { "estopActive": "", "fullActive": "", "generalAlarm": "", "jamActive": "", "manualActive": "" }, "view": "" }, "propConfig": { "params.Coordinate": { "paramDirection": "input", "persistent": true }, "params.fontSize": { "paramDirection": "input", "persistent": true }, "params.label": { "paramDirection": "input", "persistent": true }, "params.showIcons": { "paramDirection": "input", "persistent": true }, "params.status": { "paramDirection": "input", "persistent": true }, "params.status.estopActive": { "paramDirection": "input", "persistent": true }, "params.status.fullActive": { "paramDirection": "input", "persistent": true }, "params.status.generalAlarm": { "paramDirection": "input", "persistent": true }, "params.status.jamActive": { "paramDirection": "input", "persistent": true }, "params.status.manualActive": { "paramDirection": "input", "persistent": true }, "params.view": { "paramDirection": "input", "persistent": true } }, "props": { "defaultSize": { "height": 60, "width": 130 } }, "root": { "children": [ { "events": { "dom": { "onClick": [ { "config": { "script": "\tself.session.custom.transition \u003d 1\n\tself.session.custom.zoomto \u003d 1\n\tself.session.custom.scale_x \u003d self.view.params.Coordinate.x\n\tself.session.custom.scale_y \u003d self.view.params.Coordinate.y\n\tself.session.custom.zoom \u003d self.view.params.Coordinate.Scale" }, "scope": "G", "type": "script" }, { "config": { "id": "A0_Overview", "type": "open" }, "scope": "C", "type": "dock" } ] } }, "meta": { "name": "Button" }, "position": { "height": "100%", "width": "100%" }, "props": { "style": { "classes": "Buttons/Grey", "paddingBottom": "10%" }, "text": "", "textStyle": { "fontFamily": "Arial", "fontsize": "12px" } }, "type": "ia.input.button" }, { "meta": { "name": "Label" }, "position": { "width": "100%" }, "propConfig": { "position.height": { "binding": { "config": { "path": "view.params.showIcons" }, "transforms": [ { "fallback": "50%", "inputType": "scalar", "mappings": [ { "input": false, "output": "100%" } ], "outputType": "scalar", "type": "map" } ], "type": "property" } }, "props.alignVertical": { "binding": { "config": { "path": "view.params.showIcons" }, "transforms": [ { "fallback": "bottom", "inputType": "scalar", "mappings": [ { "input": false, "output": "center" } ], "outputType": "scalar", "type": "map" } ], "type": "property" } }, "props.style.fontSize": { "binding": { "config": { "path": "view.params.fontSize" }, "type": "property" } }, "props.text": { "binding": { "config": { "expression": "// Check if label is Good and isn\u0027t just whitespace characters:\r\nif(isGood({view.params.label}) \u0026\u0026 len(trim({view.params.label})) \u003e 0,\r\n\t// Label is readable:\r\n\t{view.params.label},\r\n\t// Unknown / not configured label:\r\n\t\"Unknown\"\r\n)" }, "type": "expr" } } }, "props": { "style": { "fontWeight": "bold", "pointer-events": "none", "textAlign": "center", "textTransform": "uppercase", "user-select": "none" } }, "type": "ia.display.label" }, { "children": [ { "meta": { "name": "Alarm_Icon", "tooltip": { "location": "top", "style": { "backgroundColor": "#2B2B2BBF", "color": "#FFFFFF", "fontSize": 14, "textAlign": "left", "white-space": "pre" }, "text": "Any alarms in this Zone" } }, "position": { "height": 0.6667, "width": 0.1538, "x": 0.0385, "y": 0.1667 }, "propConfig": { "props.style.backgroundColor": { "binding": { "config": { "path": "view.params.status.generalAlarm" }, "transforms": [ { "expression": "// Check if value is Good and is a Bool:\r\nif(isGood({value}) \u0026\u0026 toBoolean({value}) \u003d {value},\r\n\t// Is okay, check which state:\r\n\tif({value},\r\n\t\t\"#000000\", // Active\r\n\t\t\"#DDDDDD\" // Not Active\r\n\t),\r\n\t// Unknown Status:\r\n\t\"#808080\"\r\n)", "type": "expression" } ], "type": "property" } } }, "props": { "color": "#FFF", "path": "material/notifications_active" }, "type": "ia.display.icon" }, { "meta": { "name": "Emergency_Icon", "tooltip": { "style": { "backgroundColor": "#2B2B2BBF", "color": "#FFFFFF", "fontSize": 14, "textAlign": "left", "white-space": "pre" } } }, "position": { "height": 0.6667, "width": 0.1538, "x": 0.2308, "y": 0.1667 }, "propConfig": { "props.style.backgroundColor": { "binding": { "config": { "path": "view.params.status.estopActive" }, "transforms": [ { "expression": "// Check if value is Good and is a Bool:\r\nif(isGood({value}) \u0026\u0026 toBoolean({value}) \u003d {value},\r\n\t// Is okay, check which state:\r\n\tif({value},\r\n\t\t\"#FF0000\", // Active\r\n\t\t\"#DDDDDD\" // Not Active\r\n\t),\r\n\t// Unknown Status:\r\n\t\"#808080\"\r\n)", "type": "expression" } ], "type": "property" } } }, "props": { "color": "#FFF", "path": "material/all_out" }, "type": "ia.display.icon" }, { "meta": { "name": "Jam_Icon", "tooltip": { "style": { "backgroundColor": "#2B2B2BBF", "color": "#FFFFFF", "fontSize": 14, "textAlign": "left", "white-space": "pre" } } }, "position": { "height": 0.6667, "width": 0.1538, "x": 0.4231, "y": 0.1667 }, "propConfig": { "props.style.backgroundColor": { "binding": { "config": { "path": "view.params.status.jamActive" }, "transforms": [ { "expression": "// Check if value is Good and is a Bool:\r\nif(isGood({value}) \u0026\u0026 toBoolean({value}) \u003d {value},\r\n\t// Is okay, check which state:\r\n\tif({value},\r\n\t\t\"#FF8C00\", // Active\r\n\t\t\"#DDDDDD\" // Not Active\r\n\t),\r\n\t// Unknown Status:\r\n\t\"#808080\"\r\n)", "type": "expression" } ], "type": "property" } } }, "props": { "color": "#FFF", "path": "material/skip_next" }, "type": "ia.display.icon" }, { "meta": { "name": "Full_Icon", "tooltip": { "style": { "backgroundColor": "#2B2B2BBF", "color": "#FFFFFF", "fontSize": 14, "textAlign": "left", "white-space": "pre" } } }, "position": { "height": 0.6667, "width": 0.1538, "x": 0.6154, "y": 0.1667 }, "propConfig": { "props.style.backgroundColor": { "binding": { "config": { "path": "view.params.status.fullActive" }, "transforms": [ { "expression": "// Check if value is Good and is a Bool:\r\nif(isGood({value}) \u0026\u0026 toBoolean({value}) \u003d {value},\r\n\t// Is okay, check which state:\r\n\tif({value},\r\n\t\t\"#0000FF\", // Active\r\n\t\t\"#DDDDDD\" // Not Active\r\n\t),\r\n\t// Unknown Status:\r\n\t\"#808080\"\r\n)", "type": "expression" } ], "type": "property" } } }, "props": { "color": "#FFF", "path": "material/skip_next" }, "type": "ia.display.icon" }, { "meta": { "name": "Manual_Icon", "tooltip": { "style": { "backgroundColor": "#2B2B2BBF", "color": "#FFFFFF", "fontSize": 14, "textAlign": "left", "white-space": "pre" } } }, "position": { "height": 0.6667, "width": 0.1538, "x": 0.8077, "y": 0.1667 }, "propConfig": { "props.style.backgroundColor": { "binding": { "config": { "path": "view.params.status.manualActive" }, "transforms": [ { "expression": "// Check if value is Good and is a Bool:\r\nif(isGood({value}) \u0026\u0026 toBoolean({value}) \u003d {value},\r\n\t// Is okay, check which state:\r\n\tif({value},\r\n\t\t\"#AC5F00\", // Active\r\n\t\t\"#DDDDDD\" // Not Active\r\n\t),\r\n\t// Unknown Status:\r\n\t\"#808080\"\r\n)", "type": "expression" } ], "type": "property" } } }, "props": { "color": "#FFF", "path": "material/build" }, "type": "ia.display.icon" } ], "meta": { "name": "Icons" }, "position": { "height": "50%", "width": "100%", "y": "50%" }, "propConfig": { "meta.visible": { "binding": { "config": { "path": "view.params.showIcons" }, "type": "property" } } }, "props": { "aspectRatio": "65:15", "mode": "percent", "style": { "overflow": "hidden", "pointer-events": "none" } }, "type": "ia.container.coord" } ], "meta": { "name": "root" }, "props": { "style": { "cursor": "pointer" } }, "scripts": { "customMethods": [ { "name": "openWindow", "params": [], "script": "\tview \u003d self.view.params.view\n\tsystem.perspective.navigate(view\u003dview)" } ], "extensionFunctions": null, "messageHandlers": [] }, "type": "ia.container.coord" } }