{
    "$schema": "http://json-schema.org/draft-04/schema",
    "definitions": {
        "EventGridColumnList": {
            "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiEventGrid.ColumnList"
        },
        "EventGridMenuBarPosition": {
            "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiEventGrid.MenuBarPosition"
        },
        "TcHmi.Controls.Beckhoff.TcHmiEventGrid": {
            "$schema": "http://json-schema.org/draft-04/schema",
            "type": "object",
            "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl",
            "frameworkControlType": "TcHmiEventGrid",
            "frameworkControlNamespace": "TcHmi.Controls.Beckhoff"
        },
        "TcHmi.Controls.Beckhoff.TcHmiEventGrid.ColumnList": {
            "title": "ColumnList",
            "type": "array",
            "items": {
                "anyOf": [
                    {
                        "title": "Column",
                        "type": "object",
                        "engineeringColumns": ["columnName"],
                        "propertiesMeta": [
                            {
                                "name": "columnName",
                                "displayName": "Column Name",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "Source of this column",
                                "defaultValue": null,
                                "defaultValueInternal": null
                            },
                            {
                                "name": "width",
                                "displayName": "Width",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "Width of this column",
                                "defaultValue": null,
                                "defaultValueInternal": null
                            },
                            {
                                "name": "widthUnit",
                                "refTo": "width",
                                "displayName": "Width Unit",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "Width unit of this column. px defines an absolute width, % is relative to the control width and factor can be used to divide the available space into fractions.",
                                "defaultValue": null,
                                "defaultValueInternal": "px"
                            },
                            {
                                "name": "sortable",
                                "displayName": "sortable",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "Whether it should be possible to sort this column",
                                "defaultValue": true,
                                "defaultValueInternal": null
                            },
                            {
                                "name": "format",
                                "displayName": "Format",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "A reference of function which is called with each entry",
                                "allowedFunctions": {
                                    "returnType": "tchmi:general#/definitions/String",
                                    "requiredArguments": [
                                        {
                                            "type": "tchmi:general#/definitions/Any",
                                            "description": "The value to format."
                                        }
                                    ],
                                    "waitMode": "Synchronous"
                                },
                                "defaultValue": null,
                                "defaultValueInternal": null
                            }
                        ],
                        "properties": {
                            "columnName": {
                                "type": "string",
                                "enum": [
                                    "severity",
                                    "type",
                                    "alarmState",
                                    "confirmationState",
                                    "domain",
                                    "sourceDomain",
                                    "name",
                                    "text",
                                    "timeAndDateRaised",
                                    "timeRaised",
                                    "dateRaised",
                                    "timeAndDateConfirmed",
                                    "timeConfirmed",
                                    "dateConfirmed",
                                    "timeAndDateCleared",
                                    "timeCleared",
                                    "dateCleared"
                                ]
                            },
                            "width": {
                                "$ref": "tchmi:framework#/definitions/MeasurementValue"
                            },
                            "widthUnit": {
                                "$ref": "tchmi:framework#/definitions/MeasurementUnitOrFactor"
                            },
                            "sortable": {
                                "type": "boolean",
                                "default": true
                            },
                            "format": {
                                "$ref": "tchmi:framework#/definitions/Function"
                            }
                        },
                        "required": ["columnName"]
                    },
                    {
                        "title": "Custom column",
                        "type": "object",
                        "engineeringColumns": ["columnName"],
                        "propertiesMeta": [
                            {
                                "name": "columnName",
                                "displayName": "Column Name",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "Source of this column",
                                "defaultValue": null,
                                "defaultValueInternal": null
                            },
                            {
                                "name": "label",
                                "displayName": "Label",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "Label of this column",
                                "defaultValue": null,
                                "defaultValueInternal": null
                            },
                            {
                                "name": "width",
                                "displayName": "Width",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "Width of this column",
                                "defaultValue": null,
                                "defaultValueInternal": null
                            },
                            {
                                "name": "widthUnit",
                                "refTo": "width",
                                "displayName": "Width Unit",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "Width unit of this column. px defines an absolute width, % is relative to the control width and factor can be used to divide the available space into fractions.",
                                "defaultValue": null,
                                "defaultValueInternal": "px"
                            },
                            {
                                "name": "sortable",
                                "displayName": "sortable",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "Whether it should be possible to sort this column",
                                "defaultValue": true,
                                "defaultValueInternal": null
                            },
                            {
                                "name": "format",
                                "displayName": "Format",
                                "category": "General",
                                "displayPriority": 10,
                                "description": "A reference of function which is called with each entry",
                                "allowedFunctions": {
                                    "returnType": "tchmi:general#/definitions/String",
                                    "requiredArguments": [
                                        {
                                            "type": "tchmi:general#/definitions/Any",
                                            "description": "The value to format."
                                        }
                                    ],
                                    "waitMode": "Synchronous"
                                },
                                "defaultValue": null,
                                "defaultValueInternal": null
                            }
                        ],
                        "properties": {
                            "columnName": {
                                "type": "string",
                                "pattern": "^params::"
                            },
                            "label": {
                                "type": "string"
                            },
                            "width": {
                                "$ref": "tchmi:framework#/definitions/MeasurementValue"
                            },
                            "widthUnit": {
                                "$ref": "tchmi:framework#/definitions/MeasurementUnitOrFactor"
                            },
                            "sortable": {
                                "type": "boolean",
                                "default": true
                            },
                            "format": {
                                "$ref": "tchmi:framework#/definitions/Function"
                            }
                        },
                        "required": ["columnName"]
                    }
                ]
            }
        },
        "TcHmi.Controls.Beckhoff.TcHmiEventGrid.MenuBarPosition": {
            "type": "string",
            "enum": ["Top", "Bottom", "Left", "Right"],
            "default": "Top"
        },
        "TcHmi.Controls.Beckhoff.TcHmiEventGrid.ServerEvent": {
            "$ref": "tchmi:framework#/definitions/ServerEvent"
        },
        "TcHmi.Controls.Beckhoff.TcHmiEventGrid.IconDefinition": {
            "title": "IconDefinition",
            "type": "object",
            "propertiesMeta": [
                {
                    "name": "imagePath",
                    "category": "General",
                    "displayName": "ImagePath",
                    "displayPriority": 10,
                    "description": "Path to a Pixel or Vector Image.",
                    "defaultValue": null,
                    "defaultValueInternal": null
                },
                {
                    "name": "width",
                    "category": "General",
                    "displayName": "Width",
                    "displayPriority": 10,
                    "description": "Width of the icon",
                    "defaultValue": null,
                    "defaultValueInternal": null
                },
                {
                    "name": "height",
                    "category": "General",
                    "displayName": "Height",
                    "displayPriority": 10,
                    "description": "Height of the icon",
                    "defaultValue": null,
                    "defaultValueInternal": null
                }
            ],
            "properties": {
                "imagePath": {
                    "$ref": "tchmi:framework#/definitions/Path"
                },
                "width": {
                    "type": "number"
                },
                "height": {
                    "type": "number"
                }
            },
            "required": ["imagePath", "width", "height"]
        },
        "TcHmiEventGrid": {
            "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiEventGrid"
        }
    }
}
