{ "$schema": "http://json-schema.org/draft-07/schema#", "definitions": { "multilingual": { "type": "object", "required": ["en"], "patternProperties": { "en|de|ru|pt|nl|fr|it|es|pl|uk|zh-cn": { "type": "string" } }, "additionalProperties": false }, "i18n": { "description": "If translations will be provided via files, e.g. in admin/i18n/de/translations.json or provide the path to the i18n folder if it's custom or provide the translations inside this attribute as an object", "oneOf": [ { "type": "string" }, { "type": "boolean" }, { "type": "object", "patternProperties": { "^.+": { "$ref": "#/definitions/multilingual" } } } ] }, "componentType": { "description": "Type of the element", "type": "string", "enum": [ "accordion", "alive", "autocomplete", "autocompleteSendTo", "certificate", "certificates", "checkLicense", "checkbox", "chips", "color", "coordinates", "cron", "custom", "datePicker", "deviceManager", "divider", "file", "fileSelector", "func", "header", "icon", "image", "imageSendTo", "instance", "interface", "ip", "jsonEditor", "language", "number", "objectId", "panel", "password", "pattern", "port", "qrCode", "room", "select", "selectSendTo", "sendTo", "setState", "slider", "state", "staticImage", "staticLink", "staticText", "table", "text", "textSendTo", "timePicker", "user", "uuid" ] }, "numberProps": { "properties": { "placeholder": { "description": "Placeholder (for text control)", "type": "string" }, "min": { "description": "Minimal value", "type": "number" }, "max": { "description": "Maximum value", "type": "number" }, "step": { "description": "Step size for increase and decrease buttons", "type": "number" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true, "doNotSave": true }, "additionalProperties": false, "required": ["type"] }, "staticLinkProps": { "properties": { "href": { "description": "Link", "type": "string" }, "text": { "description": "Static link or button", "oneOf": [ { "type": "string" }, { "$ref": "#/definitions/multilingual" } ] }, "color": { "description": "Color of the link", "type": "string" }, "icon": { "description": "icon for button", "type": "string" }, "variant": { "description": "If button is outlined, contained or text", "type": "string", "enum": ["contained", "outlined", "text"] }, "controlStyle": { "description": "Style of the button or control itself", "type": "object" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "noTranslation": true, "confirm": true, "button": true }, "required": ["type", "href"] }, "textProps": { "properties": { "text": { "description": "Text input", "oneOf": [ { "type": "string" }, { "$ref": "#/definitions/multilingual" } ] }, "trim": { "description": "If text must be trimmed or not (default = true)", "type": "boolean" }, "readOnly": { "type": "boolean", "description": "Shows text as read only field" }, "noClearButton": { "type": "boolean", "description": "Do not show a clear button" }, "placeholder": { "description": "Placeholder (for text control)", "type": "string" }, "minRows": { "description": "default is 1. Set this attribute to `2` or more if you want to have a textarea with more than one row", "type": "number" }, "maxRows": { "description": "max rows of textarea. Used only if `minRows` > 1", "type": "number" }, "time": { "description": "If true, the text will be shown as time. The value is readonly automatically", "type": "boolean" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true, "maxLength": true, "doNotSave": true }, "additionalProperties": false, "required": ["type"] }, "tableItemBaseProps": { "properties": { "attr": { "description": "The linked attribute name", "type": "string" }, "width": { "type": ["number", "string"] }, "title": { "oneOf": [ { "type": "string" }, { "$ref": "#/definitions/multilingual" } ] }, "filter": { "type": "boolean" }, "sort": { "type": "boolean" } }, "additionalProperties": true }, "customProps": { "properties": { "name": { "description": "Component name that will be provided via props, like ComponentInstancesEditor", "type": "string" }, "url": { "description": "Location of the component", "type": "string" }, "i18n": { "$ref": "#/definitions/i18n" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] }, "certificatesProps": { "description": "Universal type that manages `certPublic`, `certPrivate`, `certChained` and `leCollection` attributes", "properties": { "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] }, "passwordProps": { "properties": { "encrypted": { "description": "Is value encrypted or not (of course only for texts)", "type": "boolean" }, "repeat": { "description": "Password must be compared with password", "type": "boolean" }, "visible": { "description": "True if allow to view the password by toggling the view button", "type": "boolean" }, "readOnly": { "description": "The read-only flag. Visible is automatically true if readOnly is true", "type": "boolean" }, "doNotSave": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true, "maxLength": true }, "additionalProperties": false, "required": ["type"] }, "checkboxProps": { "properties": { "doNotSave": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] }, "aliveProps": { "properties": { "instance": { "description": "Check if the instance is alive. If not defined, it will be used current instance. You can use `${data.number}` pattern in the text.", "type": "string" }, "textAlive": { "description": "Default text is `Instance %s is alive`, where `%s` will be replaced by `ADAPTER.0`", "type": "string" }, "textNotAlive": { "description": "Default text is `Instance %s is not alive`, where `%s` will be replaced by `ADAPTER.0`", "type": "string" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] }, "qrCodeProps": { "required": ["type", "data"], "additionalProperties": false, "properties": { "data": { "description": "The data to be encoded in the QR Code", "type": "string" }, "size": { "description": "The size of the QR code", "type": "number" }, "fgColor": { "description": "Foreground color", "type": "string" }, "bgColor": { "description": "Background color", "type": "string" }, "level": { "description": "QR code level", "enum": ["L", "M", "Q", "H"] }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true } }, "deviceManagerProps": { "properties": { "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] }, "cronProps": { "properties": { "complex": { "description": "Show CRON with \"minutes\", \"seconds\" and so on", "type": "boolean" }, "simple": { "description": "Show simple CRON settings", "type": "boolean" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"], "oneOf": [ { "required": ["complex"] }, { "required": ["simple"] } ] }, "sendToProps": { "properties": { "command": { "description": "Command to be sent.", "type": "string" }, "color": { "description": "Optional color", "type": "string", "enum": ["primary", "secondary"] }, "icon": { "description": "sendTo can have icon (base64)", "type": "string" }, "jsonData": { "description": "Data to be sent as parsable string, can contain special placeholder. E. g. '{\"subject1\": \"${data.subject}\", \"options1\": {\"host\": \"${data.host}\"}}'", "type": "string" }, "data": { "description": "Data to be sent as JSON.", "type": "object" }, "result": { "description": "{result1: {en: 'A'}, result2: {en: 'B'}}", "type": "object" }, "error": { "description": "{error1: {en: 'E'}, error2: {en: 'E2'}}", "type": "object" }, "variant": { "description": "If outlined or contained", "type": "string", "enum": ["contained", "outlined"] }, "placeholder": { "description": "Placeholder (for text control)", "type": "string" }, "useNative": { "description": "if adapter returns result with `native` attribute it will be used for configuration. If `saveConfig` is true, the user will be requested to save the configuration", "type": "boolean" }, "showProcess": { "description": "Show spinner while request is in progress", "type": "boolean" }, "openUrl": { "description": "if true - open URL in new tab, if response contains attribute openUrl, like {\"openUrl\": \"http://1.2.3.4:80/aaa\", \"window\": \"_blank\", \"saveConfig\": true}. If saveConfig is true, the user will be requested to save the configuration.", "type": "boolean" }, "onLoaded": { "description": "if true - execute the button logic once initially", "type": "boolean" }, "window": { "description": "if `openUrl` is true, this is a name of the new window. Could be overwritten if response consist `window` attribute. It is not the title of the new window!", "type": "string", "default": ["_blank", "_self"] }, "controlStyle": { "description": "Style of the button or control itself", "type": "object" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type", "command"] }, "stateProps": { "properties": { "oid": { "description": "Which object ID should be taken for the controlling. The ID is without \"adapter.X.\" prefix", "type": "string" }, "system": { "description": "IF true, the state will be taken from system.adapter.XX.I. and not from XX.I", "type": "boolean" }, "control": { "description": "How the value of the state should be shown", "type": "string", "enum": ["text", "html", "input", "number", "slider", "switch", "select", "button"] }, "controlled": { "description": "If false, the control will be read only", "type": "boolean" }, "unit": { "description": "Add unit to the value", "type": "string" }, "trueText": { "description": "This text will be shown if the value is true", "type": "string" }, "trueTextStyle": { "description": "Style of the text if the value is true", "type": "object" }, "falseText": { "description": "This text will be shown if the value is false", "type": "string" }, "falseTextStyle": { "description": "Style of the text if the value is false", "type": "object" }, "trueImage": { "description": "This image will be shown if the value is true. It could be base64 or URL", "type": "string" }, "falseImage": { "description": "This image will be shown if the value is false. It could be base64 or URL", "type": "string" }, "min": { "description": "Minimum value for number or slider", "type": "number" }, "max": { "description": "Maximum value for number or slider", "type": "number" }, "step": { "description": "Step for number or slider", "type": "number" }, "controlDelay": { "description": "Delay in ms between the change and the command", "type": "number" }, "variant": { "description": "Show spinner while request is in progress", "type": "string", "enum": ["contained", "outlined", "text"] }, "readOnly": { "description": "Defines if the control is read-only. Applied only to 'input', 'slider', 'select', 'button', 'switch', 'number'", "type": "boolean" }, "label": true, "type": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "tooltip": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type", "oid"] }, "instanceProps": { "properties": { "adapter": { "description": "Name of the adapter. With special name _dataSources you can get all adapters with flag common.getHistory", "type": "string" }, "adapters": { "description": "Optional list of adapters, that should be shown. If not defined, all adapters will be shown. Only active if adapter attribute is not defined.", "type": "array", "items": { "type": "string" } }, "allowDeactivate": { "description": "If true. Additional option \"deactivate\" is shown", "type": "boolean" }, "onlyEnabled": { "description": "If true. Only enabled instances will be shown", "type": "boolean" }, "long": { "description": "Value will look like system.adapter.ADAPTER.0 and not ADAPTER.0", "type": "boolean" }, "short": { "description": "Value will look like 0 and not ADAPTER.0", "type": "boolean" }, "all": { "description": "Add to the options ALL option with value *", "type": "boolean" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type", "adapter"] }, "objectIdProps": { "properties": { "types": { "description": "Filter for one of the possible types: 'channel', 'device', ... (is state by default)", "oneOf": [ { "default": "state", "type": "string", "enum": [ "state", "channel", "device", "enum", "host", "adapter", "instance", "meta", "config", "script", "user", "group", "chart", "folder" ] }, { "type": "array", "maxItems": 1, "items": { "type": "string", "enum": [ "state", "channel", "device", "enum", "host", "adapter", "instance", "meta", "config", "script", "user", "group", "chart", "folder" ] } } ] }, "root": { "description": "Show only this root object and its children", "type": "boolean" }, "customFilter": { "description": "Cannot be used together with `types` settings. Example: `{type: ['channel', 'device']}` - show only channels and devices", "type": "string" }, "placeholder": { "description": "Placeholder (for text control)", "type": "string" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] }, "fileSelectorProps": { "properties": { "pattern": { "type": "string", "description": "File extension pattern. Allowed '**/*.ext' to show all files from sub-folders too, '*.ext' to show from root folder or 'folderName/*.ext' to show all files in sub-folder folderName. Default '**/*.*'" }, "fileTypes": { "enum": ["audio", "image", "text"], "description": "Type of files" }, "objectID": { "type": "string", "description": "Object ID of type meta. You can use special placeholder '%INSTANCE%': like 'myAdapter.%INSTANCE%.files'" }, "upload": { "type": "string", "description": "path, where the uploaded files will be stored. Like 'folderName'. If not defined, no upload field will be shown. To upload in the root, set this field to '/'" }, "refresh": { "type": "boolean", "description": "Show refresh button near the select" }, "maxSize": { "type": "string", "description": "max file size (default 2MB)" }, "withFolder": { "type": "boolean", "description": "show folder name even if all files in same folder" }, "delete": { "type": "boolean", "description": "Allow deletion of files" }, "noNone": { "type": "boolean", "description": "Do not show 'none' option" }, "noSize": { "type": "boolean", "description": "Do not show size of files" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": [] }, "timePickerProps": { "properties": { "format": { "description": "Format passed to the date picker", "type": "string", "default": "HH:mm:ss" }, "views": { "description": "Configure which views should be shown to the users", "type": "array", "items": { "type": "string", "enum": ["hours", "minutes", "seconds"] }, "default": ["hours", "minutes", "seconds"] }, "timeSteps": { "description": "Represent the available time steps for each view", "type": "object", "additionalProperties": false, "default": { "hours": 1, "minutes": 5, "seconds": 5 }, "properties": { "hours": { "type": "number" }, "minutes": { "type": "number" }, "seconds": { "type": "number" } } }, "returnFormat": { "description": "Use `fullDate` or `HH:mm:ss`. Defaults to full date for backward compatibility reasons.", "type": "string", "enum": ["fullDate", "HH:mm:ss"] }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "style": true, "darkStyle": true, "noMultiEdit": true, "tooltip": true, "noTranslation": true }, "additionalProperties": false, "required": ["type"] }, "interfaceProps": { "properties": { "ignoreLoopback": { "description": "do not show loopback interface (127.0.0.1)", "type": "boolean" }, "ignoreInternal": { "description": "do not show internal interfaces (normally it is 127.0.0.1 too)", "type": "boolean" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] }, "coordinatesProps": { "properties": { "divider": { "description": "divider between latitude and longitude. Default \",\" (Used if longitudeName and latitudeName are not defined)", "type": "string" }, "autoInit": { "description": "init field with current coordinates if empty", "type": "boolean" }, "longitudeName": { "description": "if defined, the longitude will be stored in this attribute, divider will be ignored", "type": "string" }, "latitudeName": { "description": "if defined, the latitude will be stored in this attribute, divider will be ignored", "type": "string" }, "useSystemName": { "description": "if defined, the checkbox with \"Use system settings\" will be shown and latitude, longitude will be read from system.config, a boolean will be saved to the given name", "type": "string" }, "attr": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "maxLength": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] }, "jsonEditorProps": { "properties": { "validateJson": { "description": "if false, the text will be not validated as JSON", "type": "boolean", "default": true }, "allowEmpty": { "type": "boolean", "description": "if true, the JSON will be validated only if the value is not empty" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "style": true, "darkStyle": true, "noMultiEdit": true, "tooltip": true, "noTranslation": true }, "additionalProperties": false, "required": ["type"] }, "doNotSaveProp": { "type": "boolean", "description": "Do not save this attribute as used only for internal calculations" }, "iconPositionProp": { "description": "Only for panels that has `icon` attribute.", "default": "start", "enum": ["bottom", "end", "start", "top"] }, "allowAddByFilterProp": { "type": "boolean", "description": "If add allowed even if filter is set", "default": false }, "alsoDependsOnSendProp": { "description": "Depends on other attributes and will be re-calculated when other attributes changed", "type": "array", "items": { "type": "string" } }, "noInternalProp": { "description": "Do not show internal IP addresses", "type": "boolean" }, "tableItems": { "description": "Items of the table", "type": "array", "items": { "type": "object", "required": ["type"], "allOf": [ { "if": { "properties": { "type": { "const": "language" } } }, "then": { "allOf": [ { "properties": { "system": { "description": "Allow the usage of the system language from system.config as default", "type": "boolean" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type", "system"] } ] } }, { "if": { "properties": { "type": { "const": "autocompleteSendTo" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" } ], "properties": { "attr": true, "width": true, "title": true, "filter": true, "sort": true, "command": { "description": "Command to be sent.", "type": "string" }, "jsonData": { "description": "Data to be sent as parsable string, can contain special placeholder. E. g. '{\"subject1\": \"${data.subject}\", \"options1\": {\"host\": \"${data.host}\"}}'", "type": "string" }, "data": { "description": "Data to be sent as JSON.", "type": "object" }, "freeSolo": { "description": "Set freeSolo to true so the textbox can contain any arbitrary value.", "type": "boolean" }, "placeholder": { "description": "Placeholder (for text control)", "type": "string" }, "alsoDependsOn": { "$ref": "#/definitions/alsoDependsOnSendProp" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true, "maxLength": true }, "additionalProperties": false, "required": ["type", "command"] } }, { "if": { "properties": { "type": { "const": "selectSendTo" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" } ], "properties": { "attr": true, "width": true, "title": true, "filter": true, "sort": true, "command": { "description": "Command to be sent.", "type": "string" }, "jsonData": { "description": "Data to be sent as parsable string, can contain special placeholder. E. g. '{\"subject1\": \"${data.subject}\", \"options1\": {\"host\": \"${data.host}\"}}'", "type": "string" }, "data": { "description": "Data to be sent as JSON.", "type": "object" }, "manual": { "description": "Allow manual editing. Without Dropdown", "type": "boolean" }, "doNotSave": { "$ref": "#/definitions/doNotSaveProp" }, "alsoDependsOn": { "$ref": "#/definitions/alsoDependsOnSendProp" }, "noTranslation": true, "multiple": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "confirm": true }, "additionalProperties": false, "required": ["type", "command"] } }, { "if": { "properties": { "type": { "const": "textSendTo" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" } ], "properties": { "attr": true, "width": true, "title": true, "filter": true, "sort": true, "container": { "description": "div, text", "type": "string" }, "copyToClipboard": { "description": "If true, show button", "type": "boolean" }, "alsoDependsOn": { "$ref": "#/definitions/alsoDependsOnSendProp" }, "command": { "description": "Command to be sent.", "type": "string" }, "jsonData": { "description": "Data to be sent as parsable string, can contain special placeholder. E. g. '{\"subject1\": \"${data.subject}\", \"options1\": {\"host\": \"${data.host}\"}}'", "type": "string" }, "data": { "description": "Data to be sent as JSON.", "type": "object" }, "noTranslation": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "confirm": true }, "additionalProperties": false, "required": ["type", "command"] } }, { "if": { "properties": { "type": { "const": "imageSendTo" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" } ], "properties": { "attr": true, "width": true, "title": true, "filter": true, "sort": true, "container": { "description": "div, text", "type": "string" }, "copyToClipboard": { "description": "If true, show button", "type": "boolean" }, "alsoDependsOn": { "$ref": "#/definitions/alsoDependsOnSendProp" }, "command": { "description": "Command to be sent.", "type": "string" }, "jsonData": { "description": "Data to be sent as parsable string, can contain special placeholder. E. g. '{\"subject1\": \"${data.subject}\", \"options1\": {\"host\": \"${data.host}\"}}'", "type": "string" }, "data": { "description": "Data to be sent as JSON.", "type": "object" }, "noTranslation": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "confirm": true }, "additionalProperties": false, "required": ["type", "command"] } }, { "if": { "properties": { "type": { "const": "header" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" }, { "properties": { "size": { "description": "Size of the header: h1-h5", "type": "number", "minimum": 1, "maximum": 5 }, "text": { "description": "Header text", "oneOf": [ { "type": "string" }, { "$ref": "#/definitions/multilingual" } ] }, "attr": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type", "size", "text"] } ] } }, { "if": { "properties": { "type": { "const": "color" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" }, { "properties": { "attr": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } ] } }, { "if": { "properties": { "type": { "const": "divider" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" }, { "properties": { "color": { "description": "Optional color", "type": "string", "enum": ["primary", "secondary"] }, "height": { "description": "Optional height", "type": "number" }, "attr": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } ] } }, { "if": { "properties": { "type": { "const": "fileSelector" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" } ], "properties": { "attr": true, "width": true, "title": true, "filter": true, "sort": true, "pattern": { "type": "string", "description": "File extension pattern. Allowed '**/*.ext' to show all files from sub-folders too, '*.ext' to show from root folder or 'folderName/*.ext' to show all files in sub-folder folderName. Default '**/*.*'" }, "fileTypes": { "enum": ["audio", "image", "text"], "description": "Type of files" }, "objectID": { "type": "string", "description": "Object ID of type meta. You can use special placeholder '%INSTANCE%': like 'myAdapter.%INSTANCE%.files'" }, "upload": { "type": "string", "description": "path, where the uploaded files will be stored. Like 'folderName'. If not defined, no upload field will be shown. To upload in the root, set this field to '/'" }, "refresh": { "type": "boolean", "description": "Show refresh button near the select" }, "maxSize": { "type": "string", "description": "max file size (default 2MB)" }, "withFolder": { "type": "boolean", "description": "show folder name even if all files in same folder" }, "delete": { "type": "boolean", "description": "Allow deletion of files" }, "noNone": { "type": "boolean", "description": "Do not show 'none' option" }, "noSize": { "type": "boolean", "description": "Do not show size of files" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } }, { "if": { "properties": { "type": { "const": "icon" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" }, { "properties": { "crop": { "description": "If true, allow user to crop the image (only for non svg)", "type": "boolean" }, "square": { "description": "Width must be equal to height or crop must allow only square as shape", "type": "boolean" }, "maxWidth": { "description": "Maximum width", "type": "number" }, "maxHeight": { "description": "Maximum height", "type": "number" }, "maxSize": { "description": "Maximum size", "type": "number" }, "attr": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } ] } }, { "if": { "properties": { "type": { "const": "panel" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" }, { "properties": { "items": { "$ref": "#/definitions/topLevelProperties/properties/items" }, "icon": { "description": "Panel can have icon (base64)", "type": "string" }, "iconPosition": { "$ref": "#/definitions/iconPositionProp" }, "#include": { "description": "Include other JSON or JSON5 file. Here is the name of the file with extension. E.g. 'options.jsonConfig.json' for 'anyName.jsonConfig.json5'", "type": "string", "pattern": "^.+\\.jsonConfig(.json|.json5)$" }, "attr": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "innerStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"], "oneOf": [ { "required": ["items"] }, { "required": ["#include"] } ] } ] } }, { "if": { "properties": { "type": { "const": "image" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" }, { "properties": { "accept": { "description": "HTML accept attribute, like 'image/*,.pdf'", "type": "string" }, "crop": { "description": "If true, allow user to crop the image (only for non svg)", "type": "boolean" }, "square": { "description": "Width must be equal to height or crop must allow only square as shape", "type": "boolean" }, "maxWidth": { "description": "'Maximum width", "type": "number" }, "maxHeight": { "description": "'Maximum height", "type": "number" }, "maxSize": { "description": "'Maximum size", "type": "number" }, "filename": { "description": "Name of the file", "type": "string" }, "attr": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } ] } }, { "if": { "properties": { "type": { "const": "sendTo" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" }, { "properties": { "command": { "description": "Command to be sent.", "type": "string" }, "color": { "description": "Optional color", "type": "string", "enum": ["primary", "secondary"] }, "icon": { "description": "sendTo can have icon (base64)", "type": "string" }, "jsonData": { "description": "Data to be sent as parsable string, can contain special placeholder. E. g. '{\"subject1\": \"${data.subject}\", \"options1\": {\"host\": \"${data.host}\"}}'", "type": "string" }, "data": { "description": "Data to be sent as JSON.", "type": "object" }, "result": { "description": "{result1: {en: 'A'}, result2: {en: 'B'}}", "type": "object" }, "error": { "description": "{error1: {en: 'E'}, error2: {en: 'E2'}}", "type": "object" }, "variant": { "description": "If outlined or contained", "type": "string", "enum": ["contained", "outlined"] }, "openUrl": { "description": "if true - open URL in new tab, if response contains attribute openUrl, like {\"openUrl\": \"http://1.2.3.4:80/aaa\", \"window\": \"_blank\", \"saveConfig\": true}. If saveConfig is true, the user will be requested to save the configuration.", "type": "boolean" }, "onLoaded": { "description": "if true - execute the button logic once initially", "type": "boolean" }, "placeholder": { "description": "Placeholder (for text control)", "type": "string" }, "useNative": { "description": "if adapter returns result with `native` attribute it will be used for configuration. If `saveConfig` is true, the user will be requested to save the configuration", "type": "boolean" }, "showProcess": { "description": "Show spinner while request is in progress", "type": "boolean" }, "attr": true, "label": true, "type": true, "width": true, "defaultSendTo": true, "allowSaveWithError": true, "title": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type", "command"] } ] } }, { "if": { "properties": { "type": { "const": "password" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" } ], "properties": { "encrypted": { "description": "Is value encrypted or not (of course only for texts)", "type": "boolean" }, "repeat": { "description": "Password must be compared with password", "type": "boolean" }, "visible": { "description": "True if allow to view the password by toggling the view button", "type": "boolean" }, "attr": true, "width": true, "sort": true, "title": true, "filter": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } }, { "if": { "properties": { "type": { "const": "file" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" }, { "properties": { "filename": { "description": "Name of the file", "type": "string" }, "attr": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type", "filename"] } ] } }, { "if": { "properties": { "type": { "const": "slider" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" }, { "properties": { "min": { "description": "Minimal value", "type": "number", "default": 0 }, "max": { "description": "Maximum value", "type": "number", "default": 100 }, "step": { "description": "Step size", "type": "number", "default": 1 }, "attr": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } ] } }, { "if": { "properties": { "type": { "const": "custom" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" }, { "$ref": "#/definitions/customProps" } ] } }, { "if": { "properties": { "type": { "const": "checkbox" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" } ], "properties": { "attr": true, "width": true, "title": true, "filter": true, "sort": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } }, { "if": { "properties": { "type": { "enum": ["number", "port"] } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" } ], "properties": { "attr": true, "width": true, "title": true, "filter": true, "sort": true, "placeholder": { "description": "Placeholder (for text control)", "type": "string" }, "min": { "description": "Minimal value", "type": "number" }, "max": { "description": "Maximum value", "type": "number" }, "step": { "description": "Step size for increase and decrease buttons", "type": "number" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true, "doNotSave": true }, "additionalProperties": false, "required": ["type"] } }, { "if": { "properties": { "type": { "const": "alive" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" }, { "$ref": "#/definitions/aliveProps" } ] } }, { "if": { "properties": { "type": { "const": "autocomplete" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" }, { "properties": { "placeholder": { "description": "Placeholder (for text control)", "type": "string" }, "freeSolo": { "description": "Set freeSolo to true so the textbox can contain any arbitrary value.", "type": "boolean" }, "options": { "description": "Options which can be completed. [\"value1\", \"value2\", ...] or [{\"value\": \"value\", \"label\": \"Value1\"}, \"value2\", ...]", "type": "array", "items": { "oneOf": [ { "type": "string" }, { "type": "object" } ] } }, "attr": true, "width": true, "title": true, "filter": true, "sort": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type", "options"] } ] } }, { "if": { "properties": { "type": { "const": "cron" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" } ], "properties": { "attr": true, "width": true, "title": true, "filter": true, "sort": true, "complex": { "description": "Show CRON with \"minutes\", \"seconds\" and so on", "type": "boolean" }, "simple": { "description": "Show simple CRON settings", "type": "boolean" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"], "oneOf": [ { "required": ["complex"] }, { "required": ["simple"] } ] } }, { "if": { "properties": { "type": { "const": "text" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" } ], "properties": { "attr": true, "width": true, "title": true, "filter": true, "sort": true, "text": { "description": "Text input", "oneOf": [ { "type": "string" }, { "$ref": "#/definitions/multilingual" } ] }, "trim": { "description": "If text must be trimmed or not (default = true)", "type": "boolean" }, "placeholder": { "description": "Placeholder (for text control)", "type": "string" }, "minRows": { "description": "default is 1. Set this attribute to `2` or more if you want to have a textarea with more than one row", "type": "number" }, "maxRows": { "description": "max rows of textarea. Used only if `minRows` > 1", "type": "number" }, "readOnly": { "type": "boolean", "description": "Shows text as read only field" }, "noClearButton": { "type": "boolean", "description": "Do not show a clear button" }, "validateJson": { "type": "boolean", "description": "if true, the text will be validated as JSON" }, "allowEmpty": { "type": "boolean", "description": "if true, the JSON will be validated only if the value is not empty" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true, "maxLength": true, "doNotSave": true }, "additionalProperties": false, "required": ["type"] } }, { "if": { "properties": { "type": { "const": "select" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" } ], "properties": { "attr": true, "width": true, "title": true, "filter": true, "sort": true, "options": { "description": "Options which can be selected", "type": "array", "items": { "type": "object", "required": ["label", "value"], "additionalProperties": false, "properties": { "label": { "description": "Label" }, "value": { "description": "Value" }, "hidden": { "type": "string", "description": "JS function that could use `native.attribute` for calculation" } } } }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } }, { "if": { "properties": { "type": { "const": "pattern" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" }, { "properties": { "pattern": { "description": "Read-only field with pattern like 'https://${data.ip}:${data.port}' (will not be saved in config)", "type": "string" }, "copyToClipboard": { "description": "If true, show copy button.", "type": "boolean" }, "attr": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type", "pattern"] } ] } }, { "if": { "properties": { "type": { "const": "setState" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" }, { "properties": { "color": { "description": "Optional color", "type": "string", "enum": ["primary", "secondary"] }, "icon": { "description": "setState can have icon (base64)", "type": "string" }, "id": { "description": "State ID, e.g. 'info.test'", "type": "string" }, "ack": { "description": "ack-flag of the state", "type": "boolean", "default": false }, "val": { "description": "State value to set" }, "okText": { "description": "Alert that will be shown by pressing the button", "type": "string" }, "error": { "description": "{error1: {en: 'E'}, error2: {en: 'E2'}}", "type": "object" }, "variant": { "description": "If outlined or contained", "type": "string", "enum": ["contained", "outlined"] }, "attr": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type", "id", "val"] } ] } }, { "if": { "properties": { "type": { "const": "qrCode" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" }, { "properties": { "data": { "description": "The data to be encoded in the QR Code", "type": "string" }, "size": { "description": "The size of the QR code", "type": "number" }, "fgColor": { "description": "Foreground color", "type": "string" }, "bgColor": { "description": "Background color", "type": "string" }, "level": { "description": "QR code level", "enum": ["L", "M", "Q", "H"] }, "attr": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type", "data"] } ] } }, { "if": { "properties": { "type": { "const": "func" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" }, { "properties": { "short": { "description": "no system.func.", "type": "string" }, "attr": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } ] } }, { "if": { "properties": { "type": { "const": "room" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" }, { "properties": { "short": { "description": "no system.room.", "type": "string" }, "attr": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } ] } }, { "if": { "properties": { "type": { "const": "user" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" }, { "properties": { "short": { "description": "no system.user.", "type": "string" }, "attr": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } ] } }, { "if": { "properties": { "type": { "const": "ip" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" }, { "properties": { "listenOnAllPorts": { "description": "Add 0.0.0.0 to option", "type": "boolean" }, "onlyIp4": { "description": "Show only IP4 addresses", "type": "boolean" }, "onlyIp6": { "description": "Show only IP6 addresses", "type": "boolean" }, "noInternal": { "$ref": "#/definitions/noInternalProp" }, "attr": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } ] } }, { "if": { "properties": { "type": { "const": "certificate" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" }, { "properties": { "certType": { "description": "Type of the certificate", "type": "string", "enum": ["public", "private", "chained"] }, "attr": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type", "certType"] } ] } }, { "if": { "properties": { "type": { "const": "certificates" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" }, { "$ref": "#/definitions/certificatesProps" } ] } }, { "if": { "properties": { "type": { "const": "staticLink" } } }, "then": { "additionalProperties": false, "required": ["type"], "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" }, { "$ref": "#/definitions/staticLinkProps" } ], "properties": { "href": true, "text": true, "color": true, "icon": true, "variant": true, "attr": true, "width": true, "title": true, "filter": true, "sort": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true } } }, { "if": { "properties": { "type": { "const": "staticText" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" } ], "properties": { "attr": true, "width": true, "title": true, "filter": true, "sort": true, "text": { "description": "Static text like description", "oneOf": [ { "type": "string" }, { "$ref": "#/definitions/multilingual" } ] }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"], "oneOf": [ { "required": ["text"] }, { "required": ["label"] } ] } }, { "if": { "properties": { "type": { "const": "instance" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" } ], "properties": { "attr": true, "width": true, "title": true, "filter": true, "sort": true, "adapter": { "description": "Name of the adapter. With special name _dataSources you can get all adapters with flag common.getHistory", "type": "string" }, "adapters": { "description": "Optional list of adapters, that should be shown. If not defined, all adapters will be shown. Only active if adapter attribute is not defined.", "type": "array", "items": { "type": "string" } }, "allowDeactivate": { "description": "If true. Additional option \"deactivate\" is shown", "type": "boolean" }, "onlyEnabled": { "description": "If true. Only enabled instances will be shown", "type": "boolean" }, "long": { "description": "Value will look like system.adapter.ADAPTER.0 and not ADAPTER.0", "type": "boolean" }, "short": { "description": "Value will look like 0 and not ADAPTER.0", "type": "boolean" }, "all": { "description": "Add to the options ALL option with value *", "type": "boolean" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type", "adapter"] } }, { "if": { "properties": { "type": { "const": "staticImage" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" }, { "properties": { "src": { "description": "Name of picture (from admin directory)", "type": "string" }, "href": { "description": "Link", "type": "string" }, "attr": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } ] } }, { "if": { "properties": { "type": { "const": "chips" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" }, { "properties": { "delimiter": { "description": "Delimiter for options. If no delimiter, the setting will be stored as array", "type": "string" }, "attr": true, "width": true, "title": true, "filter": true, "sort": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } ] } }, { "if": { "properties": { "type": { "const": "objectId" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" } ], "properties": { "attr": true, "width": true, "title": true, "filter": true, "sort": true, "types": { "description": "Filter for one of the possible types: 'channel', 'device', ... (is state by default)", "oneOf": [ { "default": "state", "type": "string", "enum": [ "state", "channel", "device", "enum", "host", "adapter", "instance", "meta", "config", "script", "user", "group", "chart", "folder" ] }, { "type": "array", "maxItems": 1, "items": { "type": "string", "enum": [ "state", "channel", "device", "enum", "host", "adapter", "instance", "meta", "config", "script", "user", "group", "chart", "folder" ] } } ] }, "root": { "description": "Show only this root object and its children", "type": "boolean" }, "customFilter": { "description": "Cannot be used together with `types` settings. Example: `{type: ['channel', 'device']}` - show only channels and devices", "type": "string" }, "placeholder": { "description": "Placeholder (for text control)", "type": "string" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } }, { "if": { "properties": { "type": { "const": "checkLicense" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" }, { "properties": { "uuid": { "description": "If UUID must be checked too", "type": "boolean" }, "version": { "description": "Check version", "type": "boolean" }, "attr": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "style": true, "darkStyle": true, "noMultiEdit": true, "noTranslation": true }, "additionalProperties": false } ] } }, { "if": { "properties": { "type": { "const": "uuid" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" }, { "properties": { "attr": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "style": true, "darkStyle": true, "noMultiEdit": true, "noTranslation": true }, "additionalProperties": false } ] } }, { "if": { "properties": { "type": { "const": "datePicker" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" } ], "properties": { "attr": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } }, { "if": { "properties": { "type": { "const": "timePicker" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" } ], "properties": { "format": { "description": "Format passed to the date picker", "type": "string", "default": "HH:mm:ss" }, "views": { "description": "Configure which views should be shown to the users", "type": "array", "items": { "type": "string", "enum": ["hours", "minutes", "seconds"] }, "default": ["hours", "minutes", "seconds"] }, "timeSteps": { "description": "Represent the available time steps for each view", "type": "object", "additionalProperties": false, "default": { "hours": 1, "minutes": 5, "seconds": 5 }, "properties": { "hours": { "type": "number" }, "minutes": { "type": "number" }, "seconds": { "type": "number" } } }, "returnFormat": { "description": "Use `fullDate` or `HH:mm:ss`. Defaults to full date for backward compatibility reasons.", "type": "string", "enum": ["fullDate", "HH:mm:ss"] }, "attr": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } }, { "if": { "properties": { "type": { "const": "coordinates" } } }, "then": { "allOf": [ { "$ref": "#/definitions/tableItemBaseProps" } ], "properties": { "divider": { "description": "divider between latitude and longitude. Default \",\" (Used if longitudeName and latitudeName are not defined)", "type": "string" }, "autoInit": { "description": "init field with current coordinates if empty", "type": "boolean" }, "longitudeName": { "description": "if defined, the longitude will be stored in this attribute, divider will be ignored", "type": "string" }, "latitudeName": { "description": "if defined, the latitude will be stored in this attribute, divider will be ignored", "type": "string" }, "useSystemName": { "description": "if defined, the checkbox with \"Use system settings\" will be shown and latitude, longitude will be read from system.config, a boolean will be saved to the given name", "type": "string" }, "attr": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "maxLength": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } } ], "properties": { "label": { "oneOf": [ { "description": "Label of tab", "type": "string" }, { "$ref": "#/definitions/multilingual" } ] }, "type": { "$ref": "#/definitions/componentType" }, "defaultSendTo": { "description": "Command to request initial value from running instance", "type": "string" }, "xs": { "description": "width in 1/12 of screen on very small screens", "type": "number" }, "sm": { "description": "Width in 1/12 of screen on small screen", "type": "number" }, "md": { "description": "width in 1/12 of screen on middle screens", "type": "number" }, "lg": { "description": "width in 1/12 of screen on large screens", "type": "number" }, "xl": { "description": "width in 1/12 of screen on extra large screens", "type": "number" }, "newLine": { "description": "Should be shown from new line", "type": "boolean" }, "hidden": { "description": "JS function that could use 'native.attribute' for calculation", "type": "string" }, "hideOnlyControl": { "description": "If hidden the place will be shown, but no control", "type": "boolean" }, "disabled": { "description": "JS function that could use 'native.attribute' for calculation", "type": "string" }, "helpLink": { "description": "href to help", "type": "string" }, "help": { "oneOf": [ { "type": "string" }, { "$ref": "#/definitions/multilingual" } ] }, "style": { "description": "CSS style in react notation: 'radiusBorder' and not 'radius-border'", "type": "object" }, "darkStyle": { "description": "CSS style for dark mode", "type": "string" }, "validator": { "description": "JS function: true no error, false - error", "type": "string" }, "validatorNoSaveOnError": { "description": "True if save must be disabled by errors", "type": "boolean" }, "validatorErrorText": { "type": "string", "description": "Text to show if validator fails" }, "showSecondAddAt": { "description": "The number of lines from which the second add button at the bottom of the table will be shown. Default 5", "type": "number" }, "showFirstAddOnTop": { "type": "boolean", "description": "Show first plus button on top of the first column and not on the left." }, "tooltip": { "description": "Optional tooltip", "type": "string" }, "default": { "description": "Default value" }, "onChange": { "type": "object", "additionalProperties": false, "properties": { "calculateFunc": { "description": "JS function: that calculates value", "type": "string" }, "ignoreOwnChanges": { "description": "Do not trigger onChange event if changed value of this attribute", "type": "boolean" }, "alsoDependsOn": { "$ref": "#/definitions/alsoDependsOnSendProp" } } }, "doNotSave": { "$ref": "#/definitions/doNotSaveProp" }, "defaultFunc": { "description": "JS function to calculate default value", "oneOf": [ { "type": "string" }, { "type": "object", "additionalProperties": false, "properties": { "func": { "description": "JS function: that calculates value", "type": "string" }, "alsoDependsOn": { "$ref": "#/definitions/alsoDependsOnSendProp" } } } ] }, "noTranslation": { "description": "Do not translate selects or other options (not for help, label or placeholder)", "type": "boolean" }, "confirm": { "description": "Confirm dialog", "type": "object", "additionalProperties": false, "properties": { "condition": { "description": "JS function: true show confirm dialog", "type": "string" }, "text": { "description": "Text of confirmation dialog", "oneOf": [ { "type": "string" }, { "$ref": "#/definitions/multilingual" } ] }, "title": { "description": "Title of confirmation dialog", "oneOf": [ { "type": "string" }, { "$ref": "#/definitions/multilingual" } ] }, "ok": { "description": "Text for 'OK' button", "oneOf": [ { "type": "string" }, { "$ref": "#/definitions/multilingual" } ] }, "cancel": { "description": "Text for 'cancel' button", "oneOf": [ { "type": "string" }, { "$ref": "#/definitions/multilingual" } ] }, "type": { "type": "string", "enum": ["info", "warning", "error", "none"] }, "alsoDependsOn": { "description": "Trigger confirm dialog if one of the components changed.", "type": "array", "items": { "type": "string" } } } }, "noMultiEdit": { "description": "(only custom) if this flag set to true, this field will not be shown if user selected more than one object for edit", "type": "boolean" }, "maxLength": { "description": "max length of text in field", "type": "number" }, "button": { "description": "show link as button", "type": "boolean" } } } }, "topLevelProperties": { "properties": { "type": { "type": "string", "description": "Control type", "enum": ["tabs", "panel"] }, "$schema": { "description": "Specify a JSON schema", "type": "string" }, "i18n": { "$ref": "#/definitions/i18n" }, "items": { "description": "Consists of objects representing e.g. a single tab", "type": "object", "patternProperties": { "^.+": { "description": "Object representing e.g. a tab", "type": "object", "allOf": [ { "if": { "properties": { "type": { "const": "language" } } }, "then": { "properties": { "system": { "description": "Allow the usage of the system language from system.config as default", "type": "boolean" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type", "system"] } }, { "if": { "properties": { "type": { "const": "autocompleteSendTo" } } }, "then": { "properties": { "command": { "description": "Command to be sent.", "type": "string" }, "jsonData": { "description": "Data to be sent as parsable string, can contain special placeholder. E. g. '{\"subject1\": \"${data.subject}\", \"options1\": {\"host\": \"${data.host}\"}}'", "type": "string" }, "data": { "description": "Data to be sent as JSON.", "type": "object" }, "freeSolo": { "description": "Set freeSolo to true so the textbox can contain any arbitrary value.", "type": "boolean" }, "placeholder": { "description": "Placeholder (for text control)", "type": "string" }, "alsoDependsOn": { "$ref": "#/definitions/alsoDependsOnSendProp" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true, "maxLength": true }, "additionalProperties": false, "required": ["type", "command"] } }, { "if": { "properties": { "type": { "const": "selectSendTo" } } }, "then": { "properties": { "command": { "description": "Command to be sent.", "type": "string" }, "jsonData": { "description": "Data to be sent as parsable string, can contain special placeholder. E. g. '{\"subject1\": \"${data.subject}\", \"options1\": {\"host\": \"${data.host}\"}}'", "type": "string" }, "data": { "description": "Data to be sent as JSON.", "type": "object" }, "manual": { "description": "Allow manual editing. Without Dropdown", "type": "boolean" }, "doNotSave": { "$ref": "#/definitions/doNotSaveProp" }, "alsoDependsOn": { "$ref": "#/definitions/alsoDependsOnSendProp" }, "noTranslation": true, "multiple": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "confirm": true }, "additionalProperties": false, "required": ["type", "command"] } }, { "if": { "properties": { "type": { "const": "textSendTo" } } }, "then": { "properties": { "container": { "description": "div, text", "type": "string" }, "copyToClipboard": { "description": "If true, show button", "type": "boolean" }, "alsoDependsOn": { "$ref": "#/definitions/alsoDependsOnSendProp" }, "command": { "description": "Command to be sent.", "type": "string" }, "jsonData": { "description": "Data to be sent as parsable string, can contain special placeholder. E. g. '{\"subject1\": \"${data.subject}\", \"options1\": {\"host\": \"${data.host}\"}}'", "type": "string" }, "data": { "description": "Data to be sent as JSON.", "type": "object" }, "noTranslation": true, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "confirm": true }, "additionalProperties": false, "required": ["type", "command"] } }, { "if": { "properties": { "type": { "const": "imageSendTo" } } }, "then": { "properties": { "alsoDependsOn": { "$ref": "#/definitions/alsoDependsOnSendProp" }, "command": { "description": "Command to be sent.", "type": "string" }, "jsonData": { "description": "Data to be sent as parsable string, can contain special placeholder. E. g. '{\"subject1\": \"${data.subject}\", \"options1\": {\"host\": \"${data.host}\"}}'", "type": "string" }, "data": { "description": "Data to be sent as JSON.", "type": "object" }, "label": true, "type": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "confirm": true }, "additionalProperties": false, "required": ["type", "command"] } }, { "if": { "properties": { "type": { "const": "header" } } }, "then": { "properties": { "size": { "description": "Size of the header: h1-h5", "type": "number", "minimum": 1, "maximum": 5 }, "text": { "description": "Header text", "oneOf": [ { "type": "string" }, { "$ref": "#/definitions/multilingual" } ] }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type", "size", "text"] } }, { "if": { "properties": { "type": { "const": "color" } } }, "then": { "properties": { "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } }, { "if": { "properties": { "type": { "const": "divider" } } }, "then": { "properties": { "color": { "description": "Optional color", "type": "string", "enum": ["primary", "secondary"] }, "height": { "description": "Optional height", "type": "number" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } }, { "if": { "properties": { "type": { "const": "icon" } } }, "then": { "properties": { "crop": { "description": "If true, allow user to crop the image (only for non svg)", "type": "boolean" }, "square": { "description": "Width must be equal to height or crop must allow only square as shape", "type": "boolean" }, "maxWidth": { "description": "Maximum width", "type": "number" }, "maxHeight": { "description": "Maximum height", "type": "number" }, "maxSize": { "description": "Maximum size", "type": "number" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } }, { "if": { "properties": { "type": { "const": "panel" } } }, "then": { "properties": { "items": { "$ref": "#/definitions/topLevelProperties/properties/items" }, "#include": { "description": "Include other JSON or JSON5 file. Here is the name of the file with extension. E.g. 'options.jsonConfig.json' for 'anyName.jsonConfig.json5'", "type": "string", "pattern": "^.+\\.jsonConfig(.json|.json5)$" }, "icon": { "description": "Panel can have icon (base64)", "type": "string" }, "iconPosition": { "$ref": "#/definitions/iconPositionProp" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "innerStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"], "oneOf": [ { "required": ["items"] }, { "required": ["#include"] } ] } }, { "if": { "properties": { "type": { "const": "image" } } }, "then": { "properties": { "accept": { "description": "HTML accept attribute, like 'image/*,.pdf'", "type": "string" }, "crop": { "description": "If true, allow user to crop the image (only for non svg)", "type": "boolean" }, "square": { "description": "Width must be equal to height or crop must allow only square as shape", "type": "boolean" }, "maxWidth": { "description": "'Maximum width", "type": "number" }, "maxHeight": { "description": "'Maximum height", "type": "number" }, "maxSize": { "description": "'Maximum size", "type": "number" }, "filename": { "description": "Name of the file", "type": "string" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } }, { "if": { "properties": { "type": { "const": "sendTo" } } }, "then": { "$ref": "#/definitions/sendToProps" } }, { "if": { "properties": { "type": { "const": "state" } } }, "then": { "$ref": "#/definitions/stateProps" } }, { "if": { "properties": { "type": { "const": "password" } } }, "then": { "$ref": "#/definitions/passwordProps" } }, { "if": { "properties": { "type": { "const": "file" } } }, "then": { "properties": { "filename": { "description": "Name of the file", "type": "string" }, "label": true, "type": true, "title": true, "filter": true, "sort": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type", "filename"] } }, { "if": { "properties": { "type": { "const": "slider" } } }, "then": { "properties": { "min": { "description": "Minimal value", "type": "number", "default": 0 }, "max": { "description": "Maximum value", "type": "number", "default": 100 }, "step": { "description": "Step size", "type": "number", "default": 1 }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } }, { "if": { "properties": { "type": { "const": "custom" } } }, "then": { "$ref": "#/definitions/customProps" } }, { "if": { "properties": { "type": { "const": "checkbox" } } }, "then": { "$ref": "#/definitions/checkboxProps" } }, { "if": { "properties": { "type": { "const": "fileSelector" } } }, "then": { "$ref": "#/definitions/fileSelectorProps" } }, { "if": { "properties": { "type": { "enum": ["number", "port"] } } }, "then": { "$ref": "#/definitions/numberProps" } }, { "if": { "properties": { "type": { "const": "alive" } } }, "then": { "$ref": "#/definitions/aliveProps" } }, { "if": { "properties": { "type": { "const": "autocomplete" } } }, "then": { "properties": { "placeholder": { "description": "Placeholder (for text control)", "type": "string" }, "freeSolo": { "description": "Set freeSolo to true so the textbox can contain any arbitrary value.", "type": "boolean" }, "options": { "description": "Options which can be completed. [\"value1\", \"value2\", ...] or [{\"value\": \"value\", \"label\": \"Value1\"}, \"value2\", ...]", "type": "array", "items": { "oneOf": [ { "type": "string" }, { "type": "object" } ] } }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type", "options"] } }, { "if": { "properties": { "type": { "const": "qrCode" } } }, "then": { "$ref": "#/definitions/qrCodeProps" } }, { "if": { "properties": { "type": { "const": "cron" } } }, "then": { "$ref": "#/definitions/cronProps" } }, { "if": { "properties": { "type": { "const": "deviceManager" } } }, "then": { "$ref": "#/definitions/deviceManagerProps" } }, { "if": { "properties": { "type": { "const": "text" } } }, "then": { "$ref": "#/definitions/textProps" } }, { "if": { "properties": { "type": { "const": "select" } } }, "then": { "properties": { "options": { "description": "Options which can be selected", "type": "array", "items": { "type": "object", "required": ["label", "value"], "additionalProperties": false, "properties": { "label": { "description": "Label" }, "value": { "description": "Value" }, "hidden": { "type": "string", "description": "JS function that could use `native.attribute` for calculation" } } } }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } }, { "if": { "properties": { "type": { "const": "table" } } }, "then": { "properties": { "noDelete": { "description": "If delete or add disabled, If noDelete is false, add, delete and move up/down should work", "type": "boolean" }, "uniqueColumns": { "description": "Specify the 'attr' name of columns which need to be unique", "type": "array", "items": { "type": "string" } }, "compact": { "description": "Show table in compact mode", "type": "boolean" }, "export": { "description": "If export button should be shown. Export as csv file.", "type": "boolean" }, "import": { "description": "If import button should be shown. Import from csv file.", "type": "boolean" }, "clone": { "description": "If clone button should be shown. If true, the clone button will be shown. If attribute name, this name will be unique.", "type": "boolean" }, "encryptedAttributes": { "description": "These items will be encrypted before saving with simple (not SHA) encryption method", "type": "array", "items": { "type": "string" } }, "allowAddByFilter": { "$ref": "#/definitions/allowAddByFilterProp" }, "items": { "$ref": "#/definitions/tableItems" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true, "showSecondAddAt": true }, "required": ["type", "items"], "additionalProperties": false } }, { "if": { "properties": { "type": { "const": "pattern" } } }, "then": { "properties": { "pattern": { "description": "Read-only field with pattern like 'https://${data.ip}:${data.port}' (will not be saved in config)", "type": "string" }, "copyToClipboard": { "description": "If true, show copy button.", "type": "boolean" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type", "pattern"] } }, { "if": { "properties": { "type": { "const": "setState" } } }, "then": { "properties": { "color": { "description": "Optional color", "type": "string", "enum": ["primary", "secondary"] }, "icon": { "description": "setState can have icon (base64)", "type": "string" }, "id": { "description": "State ID, e.g. 'info.test'", "type": "string" }, "ack": { "description": "ack-flag of the state", "type": "boolean", "default": false }, "val": { "description": "State value to set" }, "okText": { "description": "Alert that will be shown by pressing the button", "type": "string" }, "error": { "description": "{error1: {en: 'E'}, error2: {en: 'E2'}}", "type": "object" }, "variant": { "description": "If outlined or contained", "type": "string", "enum": ["contained", "outlined"] }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type", "id", "val"] } }, { "if": { "properties": { "type": { "const": "func" } } }, "then": { "properties": { "short": { "description": "no system.func.", "type": "string" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } }, { "if": { "properties": { "type": { "const": "room" } } }, "then": { "properties": { "short": { "description": "no system.room.", "type": "string" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } }, { "if": { "properties": { "type": { "const": "user" } } }, "then": { "properties": { "short": { "description": "no system.user.", "type": "string" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } }, { "if": { "properties": { "type": { "const": "ip" } } }, "then": { "properties": { "listenOnAllPorts": { "description": "Add 0.0.0.0 to option", "type": "boolean" }, "onlyIp4": { "description": "Show only IP4 addresses", "type": "boolean" }, "onlyIp6": { "description": "Show only IP6 addresses", "type": "boolean" }, "noInternal": { "$ref": "#/definitions/noInternalProp" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } }, { "if": { "properties": { "type": { "const": "certificate" } } }, "then": { "properties": { "certType": { "description": "Type of the certificate", "type": "string", "enum": ["public", "private", "chained"] }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type", "certType"] } }, { "if": { "properties": { "type": { "const": "certificates" } } }, "then": { "$ref": "#/definitions/certificatesProps" } }, { "if": { "properties": { "type": { "const": "staticLink" } } }, "then": { "$ref": "#/definitions/staticLinkProps" } }, { "if": { "properties": { "type": { "const": "staticText" } } }, "then": { "properties": { "text": { "description": "Static text like description", "oneOf": [ { "type": "string" }, { "$ref": "#/definitions/multilingual" } ] }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"], "oneOf": [ { "required": ["text"] }, { "required": ["label"] } ] } }, { "if": { "properties": { "type": { "const": "instance" } } }, "then": { "$ref": "#/definitions/instanceProps" } }, { "if": { "properties": { "type": { "const": "staticImage" } } }, "then": { "properties": { "src": { "description": "Name of picture (from admin directory)", "type": "string" }, "href": { "description": "Link", "type": "string" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } }, { "if": { "properties": { "type": { "const": "chips" } } }, "then": { "properties": { "delimiter": { "description": "Delimiter for options. If no delimiter, the setting will be stored as array", "type": "string" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true }, "additionalProperties": false, "required": ["type"] } }, { "if": { "properties": { "type": { "const": "objectId" } } }, "then": { "$ref": "#/definitions/objectIdProps" } }, { "if": { "properties": { "type": { "const": "checkLicense" } } }, "then": { "properties": { "uuid": { "description": "If UUID must be checked too", "type": "boolean" }, "version": { "description": "Check version", "type": "boolean" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "style": true, "darkStyle": true, "noMultiEdit": true, "noTranslation": true }, "additionalProperties": false } }, { "if": { "properties": { "type": { "const": "datePicker" } } }, "then": { "properties": { "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "style": true, "darkStyle": true, "noMultiEdit": true, "noTranslation": true }, "additionalProperties": false } }, { "if": { "properties": { "type": { "const": "timePicker" } } }, "then": { "$ref": "#/definitions/timePickerProps" } }, { "if": { "properties": { "type": { "const": "uuid" } } }, "then": { "properties": { "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "style": true, "darkStyle": true, "noMultiEdit": true, "noTranslation": true }, "additionalProperties": false } }, { "if": { "properties": { "type": { "const": "coordinates" } } }, "then": { "$ref": "#/definitions/coordinatesProps" } }, { "if": { "properties": { "type": { "const": "interface" } } }, "then": { "$ref": "#/definitions/interfaceProps" } }, { "if": { "properties": { "type": { "const": "accordion" } } }, "then": { "properties": { "titleAttr": { "description": "Title shown on the accordion", "type": "string" }, "noDelete": { "description": "If delete or add disabled, If noDelete is false, add, delete and move up/down should work", "type": "boolean" }, "clone": { "description": "If clone button should be shown. If true, the clone button will be shown. If attribute name, this name will be unique.", "type": "boolean" }, "items": { "$ref": "#/definitions/tableItems" }, "label": true, "type": true, "defaultSendTo": true, "allowSaveWithError": true, "xs": true, "sm": true, "md": true, "lg": true, "xl": true, "newLine": true, "hidden": true, "hideOnlyControl": true, "disabled": true, "helpLink": true, "help": true, "style": true, "darkStyle": true, "validator": true, "validatorNoSaveOnError": true, "validatorErrorText": true, "noMultiEdit": true, "tooltip": true, "default": true, "defaultFunc": true, "onChange": true, "noTranslation": true, "confirm": true, "showSecondAddAt": true }, "required": ["type", "items"], "additionalProperties": false } }, { "if": { "properties": { "type": { "const": "state" } } }, "then": { "$ref": "#/definitions/stateProps" } } ], "required": ["type"], "properties": { "label": { "oneOf": [ { "description": "Label of tab", "type": "string" }, { "$ref": "#/definitions/multilingual" } ] }, "type": { "$ref": "#/definitions/componentType" }, "defaultSendTo": { "description": "Command to request initial value from running instance", "type": "string" }, "allowSaveWithError": { "description": "Allow saving of configuration even if the instance is offline. Used with defaultSendTo", "type": "boolean" }, "xs": { "description": "width in 1/12 of screen on very small screens", "type": "number" }, "sm": { "description": "Width in 1/12 of screen on small screen", "type": "number" }, "md": { "description": "width in 1/12 of screen on middle screens", "type": "number" }, "lg": { "description": "width in 1/12 of screen on large screens", "type": "number" }, "xl": { "description": "width in 1/12 of screen on extra large screens", "type": "number" }, "newLine": { "description": "Should be shown from new line", "type": "boolean" }, "hidden": { "description": "JS function that could use 'native.attribute' for calculation", "type": "string" }, "hideOnlyControl": { "description": "If hidden the place will be shown, but no control", "type": "boolean" }, "disabled": { "description": "JS function that could use 'native.attribute' for calculation", "type": "string" }, "helpLink": { "description": "href to help", "type": "string" }, "help": { "oneOf": [ { "type": "string" }, { "$ref": "#/definitions/multilingual" } ] }, "style": { "description": "CSS style in react notation: 'radiusBorder' and not 'radius-border'", "type": "object" }, "darkStyle": { "description": "CSS style for dark mode", "type": "string" }, "innerStyle": { "description": "CSS style in react notation: 'radiusBorder' and not 'radius-border'", "type": "object" }, "validator": { "description": "JS function: true no error, false - error", "type": "string" }, "validatorNoSaveOnError": { "description": "True if save must be disabled by errors", "type": "boolean" }, "validatorErrorText": { "type": "string", "description": "Text to show if validator fails" }, "showSecondAddAt": { "description": "Number of lines from which the second add button at the bottom of the table will be shown. Default 5", "type": "number" }, "tooltip": { "description": "Optional tooltip", "type": "string" }, "default": { "description": "Default value" }, "onChange": { "type": "object", "additionalProperties": false, "properties": { "calculateFunc": { "description": "JS function: that calculates value", "type": "string" }, "ignoreOwnChanges": { "description": "Do not trigger onChange event if changed value of this attribute", "type": "boolean" }, "alsoDependsOn": { "$ref": "#/definitions/alsoDependsOnSendProp" } } }, "doNotSave": { "$ref": "#/definitions/doNotSaveProp" }, "defaultFunc": { "description": "JS function to calculate default value", "oneOf": [ { "type": "string" }, { "type": "object", "additionalProperties": false, "properties": { "func": { "description": "JS function: that calculates value", "type": "string" }, "alsoDependsOn": { "$ref": "#/definitions/alsoDependsOnSendProp" } } } ] }, "noTranslation": { "description": "Do not translate selects or other options (not for help, label or placeholder)", "type": "boolean" }, "confirm": { "description": "Confirm dialog", "type": "object", "additionalProperties": false, "properties": { "condition": { "description": "JS function: true show confirm dialog", "type": "string" }, "text": { "description": "Text of confirmation dialog", "oneOf": [ { "type": "string" }, { "$ref": "#/definitions/multilingual" } ] }, "title": { "description": "Title of confirmation dialog", "oneOf": [ { "type": "string" }, { "$ref": "#/definitions/multilingual" } ] }, "ok": { "description": "Text for 'OK' button", "oneOf": [ { "type": "string" }, { "$ref": "#/definitions/multilingual" } ] }, "cancel": { "description": "Text for 'cancel' button", "oneOf": [ { "type": "string" }, { "$ref": "#/definitions/multilingual" } ] }, "type": { "type": "string", "enum": ["info", "warning", "error", "none"] }, "alsoDependsOn": { "description": "Trigger confirm dialog if on of the components changed.", "type": "array", "items": { "type": "string" } } } }, "noMultiEdit": { "description": "(only custom) if this flag set to true, this field will not be shown if user selected more than one object for edit", "type": "boolean" }, "maxLength": { "description": "max length of text in field", "type": "number" }, "button": { "description": "show link as button", "type": "boolean" } } } } } } } }, "if": { "properties": { "type": { "const": "tabs" } } }, "then": { "type": "object", "required": ["type"], "additionalProperties": false, "properties": { "type": true, "$schema": true, "i18n": true, "items": true, "iconPosition": true, "tabsStyle": true }, "allOf": [ { "$ref": "#/definitions/topLevelProperties" }, { "properties": { "iconPosition": { "$ref": "#/definitions/iconPositionProp" }, "tabsStyle": { "description": "CSS styles in ReactJS notation: 'radiusBorder' and not 'radius-border'", "type": "object" } } } ] }, "else": { "type": "object", "required": ["type"], "additionalProperties": false, "properties": { "type": true, "$schema": true, "i18n": true, "items": true }, "$ref": "#/definitions/topLevelProperties" } }