{ "$schema": "../../TcHmiFramework/Schema/ControlDescription.Schema.json", "apiVersion": 1, "name": "TcHmiKeyboard", "namespace": "TcHmi.Controls.Beckhoff", "displayName": "Keyboard", "version": { "full": "14.4.1.0", "major": 14, "minor": 4, "build": 1, "revision": 0 }, "visible": true, "themeable": "Standard", "base": "TcHmi.Controls.System.TcHmiControl", "description": "An on-screen Keyboard.", "defaultDesignerEvent": "", "properties": { "containerControl": false, "geometry": { "width": 790, "height": 250 } }, "icons": [ { "name": "Icons/16x16.png", "width": 16, "height": 16 } ], "template": "Template.html", "dependencyFiles": [ { "name": "Style.css", "type": "Stylesheet", "description": "" }, { "name": "../dist/UiProvider/loader.esm.js", "type": "EsModule", "description": "Load corresponding UI Provider module (and perhaps others, too :-)" }, { "name": "../dist/TcHmiKeyboard/TcHmiKeyboard.esm.js", "type": "EsModule", "description": "Contains all the main logic as ES module." } ], "themes": { "Base": { "resources": [ { "name": "Themes/Base/Style.css", "type": "Stylesheet", "description": "" } ] }, "Base-Dark": { "resources": [ { "name": "Themes/Base-Dark/Style.css", "type": "Stylesheet", "description": "" } ] } }, "attributes": [ { "name": "data-tchmi-width-mode", "propertyName": "WidthMode", "propertySetterName": "setWidthMode", "propertyGetterName": "getWidthMode", "displayName": "Width Mode", "visible": true, "themeable": "Advanced", "displayPriority": 40, "type": "tchmi:framework#/definitions/SizeModeWithContent", "category": "Layout", "description": "Defines wether the control width is applied as configured via the width attribute or automatically adjusts to fill the parent or fit the displayed keyboard layout.", "readOnly": false, "bindable": true, "defaultBindingMode": "OneWay", "heritable": true, "defaultValue": null, "defaultValueInternal": "Value" }, { "name": "data-tchmi-height-mode", "propertyName": "HeightMode", "propertySetterName": "setHeightMode", "propertyGetterName": "getHeightMode", "displayName": "Height Mode", "visible": true, "themeable": "Advanced", "displayPriority": 40, "type": "tchmi:framework#/definitions/SizeModeWithContent", "category": "Layout", "description": "Defines wether the control height is applied as configured via the height attribute or automatically adjusts to fill the parent or fit the displayed keyboard layout.", "readOnly": false, "bindable": true, "defaultBindingMode": "OneWay", "heritable": true, "defaultValue": null, "defaultValueInternal": "Value" }, { "name": "data-tchmi-layout-file", "propertyName": "LayoutFile", "propertySetterName": "setLayoutFile", "propertyGetterName": "getLayoutFile", "displayName": "Layout File", "visible": true, "themeable": "Advanced", "displayPriority": 10, "type": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiKeyboard.ProjectKeyboardLayouts", "category": "Common", "description": "Path to a layout JSON file in the project.\nThis overrides Layout.", "readOnly": false, "bindable": true, "defaultBindingMode": "OneWay", "heritable": true, "defaultValue": "KeyboardLayouts/US - compact.keyboard.json", "defaultValueInternal": null }, { "name": "data-tchmi-scale-mode", "propertyName": "ScaleMode", "propertySetterName": "setScaleMode", "propertyGetterName": "getScaleMode", "displayName": "Scale Mode", "visible": true, "themeable": "Advanced", "displayPriority": 60, "type": "tchmi:framework#/definitions/ScaleMode", "category": "Common", "description": "Scale the content to control size. Alternatively, the control size can be set to the size of the displayed layout using WidthMode and HeightMode.", "readOnly": false, "bindable": true, "defaultBindingMode": "OneWay", "heritable": true, "defaultValue": "ScaleToFit", "defaultValueInternal": "None" }, { "name": "data-tchmi-fixed-target", "propertyName": "FixedTarget", "propertySetterName": "setFixedTarget", "propertyGetterName": "getFixedTarget", "displayName": "Fixed Target", "visible": true, "themeable": "Advanced", "displayPriority": 10, "type": "tchmi:general#/definitions/String", "category": "Behaviour", "description": "Set this to the name of a control to always send input to that control, regardless of focus.", "readOnly": false, "bindable": true, "defaultBindingMode": "OneWay", "heritable": true, "defaultValue": null, "defaultValueInternal": "" }, { "name": "data-tchmi-release-sticky-keys-manually", "propertyName": "ReleaseStickyKeysManually", "propertySetterName": "setReleaseStickyKeysManually", "propertyGetterName": "getReleaseStickyKeysManually", "displayName": "Release Sticky Keys Manually", "visible": true, "themeable": "Advanced", "displayPriority": 20, "type": "tchmi:general#/definitions/Boolean", "category": "Behaviour", "description": "Whether to require an explicit keypress on a sticky key to release it, or release it automatically after a character was typed.", "readOnly": false, "bindable": true, "defaultBindingMode": "OneWay", "heritable": true, "defaultValue": null, "defaultValueInternal": false }, { "name": "data-tchmi-input-hints-validation", "propertyName": "InputHintsValidation", "propertySetterName": "setInputHintsValidation", "propertyGetterName": "getInputHintsValidation", "displayName": "Input Hints Validation", "visible": true, "themeable": "Advanced", "displayPriority": 30, "type": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiKeyboard.ValidationLevel", "category": "Behaviour", "description": "How to validate input hints, which can be specified with the data-tchmikeyboard-min and data-tchmikeyboard-max attributes on input elements.\n\"None\": No validation is performed.\n\"HighlightHints\": Input hints that are violated by the currently entered value are highlighted in red.\n\"DisableAccept\": In addition to the highlighting, the accept key is disabled.", "readOnly": false, "bindable": true, "defaultBindingMode": "OneWay", "heritable": true, "defaultValue": null, "defaultValueInternal": "DisableAccept" }, { "name": "data-tchmi-pressed-keys", "propertyName": "PressedKeys", "propertyGetterName": "getPressedKeys", "displayName": "Pressed Keys", "visible": true, "type": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiKeyboard.KeyList", "category": "Behaviour", "description": "Currently pressed keys.", "readOnly": true, "bindable": false, "defaultBindingMode": "OneWay", "heritable": true }, { "name": "data-tchmi-longpress-delay", "propertyName": "LongpressDelay", "propertySetterName": "setLongpressDelay", "propertyGetterName": "getLongpressDelay", "displayName": "Longpress Delay", "visible": true, "themeable": "Advanced", "displayPriority": 60, "type": "tchmi:general#/definitions/Number", "category": "Behaviour", "description": "The time in milliseconds before the longpress action is triggered.", "readOnly": false, "bindable": true, "defaultBindingMode": "OneWay", "heritable": true, "defaultValue": null, "defaultValueInternal": 300 }, { "name": "data-tchmi-repetition-delay", "propertyName": "RepetitionDelay", "propertySetterName": "setRepetitionDelay", "propertyGetterName": "getRepetitionDelay", "displayName": "Repetition Delay", "visible": true, "themeable": "Advanced", "displayPriority": 60, "type": "tchmi:general#/definitions/Number", "category": "Behaviour", "description": "The time in milliseconds between repeated kepresses when the longpress action is repetition.", "readOnly": false, "bindable": true, "defaultBindingMode": "OneWay", "heritable": true, "defaultValue": null, "defaultValueInternal": 50 }, { "name": "data-tchmi-indirect-input-horizontal-alignment", "propertyName": "IndirectInputHorizontalAlignment", "propertySetterName": "setIndirectInputHorizontalAlignment", "propertyGetterName": "getIndirectInputHorizontalAlignment", "displayName": "Indirect Input Horizontal Alignment", "visible": true, "themeable": "Standard", "displayPriority": 30, "type": "tchmi:framework#/definitions/HorizontalAlignment", "category": "Indirect Input", "description": "The horizontal alignment of text in the indirect input textbox.", "readOnly": false, "bindable": true, "defaultBindingMode": "OneWay", "heritable": true, "defaultValue": null, "defaultValueInternal": "Left" }, { "name": "data-tchmi-indirect-input-font-size", "propertyName": "IndirectInputFontSize", "propertySetterName": "setIndirectInputFontSize", "propertyGetterName": "getIndirectInputFontSize", "displayName": "Indirect Input Font Size", "visible": true, "themeable": "Standard", "displayPriority": 40, "type": "tchmi:framework#/definitions/MeasurementValue", "category": "Indirect Input", "description": "The font size of the indirect input textbox.", "readOnly": false, "bindable": true, "defaultBindingMode": "OneWay", "heritable": true, "defaultValue": null, "defaultValueInternal": null }, { "name": "data-tchmi-indirect-input-font-size-unit", "propertyName": "IndirectInputFontSizeUnit", "propertySetterName": "setIndirectInputFontSizeUnit", "propertyGetterName": "getIndirectInputFontSizeUnit", "displayName": "Indirect Input Font Size Unit", "refTo": "IndirectInputFontSize", "visible": true, "themeable": "Standard", "displayPriority": 40, "type": "tchmi:framework#/definitions/MeasurementUnit", "category": "Indirect Input", "description": "The font size unit of the indirect input textbox.", "readOnly": false, "bindable": true, "defaultBindingMode": "OneWay", "heritable": true, "defaultValue": null, "defaultValueInternal": "px" }, { "name": "data-tchmi-indirect-input-padding", "propertyName": "IndirectInputPadding", "propertySetterName": "setIndirectInputPadding", "propertyGetterName": "getIndirectInputPadding", "displayName": "Indirect Input Padding", "visible": true, "themeable": "Advanced", "displayPriority": 110, "type": "tchmi:framework#/definitions/Padding", "category": "Indirect Input", "description": "The padding of the indirect input textbox.", "readOnly": false, "bindable": true, "defaultBindingMode": "OneWay", "heritable": true, "allowSymbolExpressionsInObject": true, "defaultValue": { "top": 3, "right": 3, "bottom": 3, "left": 3 }, "defaultValueInternal": null }, { "name": "data-tchmi-label-font-family", "propertyName": "LabelFontFamily", "propertySetterName": "setLabelFontFamily", "propertyGetterName": "getLabelFontFamily", "displayName": "Label Font Family", "visible": true, "themeable": "Standard", "displayPriority": 60, "type": "tchmi:framework#/definitions/FontFamily", "category": "Labels", "description": "Comma separated list of family name or keyword: 'serif', 'sans-serif', 'monospace'.", "readOnly": false, "bindable": true, "defaultBindingMode": "OneWay", "heritable": true, "defaultValue": null, "defaultValueInternal": null }, { "name": "data-tchmi-label-font-size", "propertyName": "LabelFontSize", "propertySetterName": "setLabelFontSize", "propertyGetterName": "getLabelFontSize", "displayName": "Label Font Size", "visible": true, "themeable": "Standard", "displayPriority": 60, "type": "tchmi:framework#/definitions/MeasurementValue", "category": "Labels", "description": "The size of the font. Percent values are relative to the parent elements font size.", "readOnly": false, "bindable": true, "defaultBindingMode": "OneWay", "heritable": true, "defaultValue": 14, "defaultValueInternal": 12 }, { "name": "data-tchmi-label-font-size-unit", "propertyName": "LabelFontSizeUnit", "propertySetterName": "setLabelFontSizeUnit", "propertyGetterName": "getLabelFontSizeUnit", "refTo": "LabelFontSize", "displayName": "Label Font Size Unit", "visible": true, "themeable": "Advanced", "displayPriority": 60, "type": "tchmi:framework#/definitions/MeasurementUnit", "category": "Labels", "description": "Could be 'px' or for relative sizing '%'.", "readOnly": false, "bindable": true, "defaultBindingMode": "OneWay", "heritable": true, "defaultValue": null, "defaultValueInternal": "px" }, { "name": "data-tchmi-label-font-style", "propertyName": "LabelFontStyle", "propertySetterName": "setLabelFontStyle", "propertyGetterName": "getLabelFontStyle", "displayName": "Label Font Style", "visible": true, "themeable": "Standard", "displayPriority": 60, "type": "tchmi:framework#/definitions/FontStyle", "category": "Labels", "description": "'Normal', 'Italic' (slanted with special glyphs), 'Oblique' (slanted normal glyphs) or 'Auto' for inherited.", "readOnly": false, "bindable": true, "defaultBindingMode": "OneWay", "heritable": true, "defaultValue": null, "defaultValueInternal": "Auto" }, { "name": "data-tchmi-label-font-weight", "propertyName": "LabelFontWeight", "propertySetterName": "setLabelFontWeight", "propertyGetterName": "getLabelFontWeight", "displayName": "Label Font Weight", "visible": true, "themeable": "Standard", "displayPriority": 60, "type": "tchmi:framework#/definitions/FontWeight", "category": "Labels", "description": "'Normal', 'Bold' (glyphs with more weight) or 'Auto' for inherited.", "readOnly": false, "bindable": true, "defaultBindingMode": "OneWay", "heritable": true, "defaultValue": null, "defaultValueInternal": "Auto" }, { "name": "data-tchmi-label-stroke-thickness", "propertyName": "LabelStrokeThickness", "propertySetterName": "setLabelStrokeThickness", "propertyGetterName": "getLabelStrokeThickness", "displayName": "Label Stroke Thickness", "visible": true, "themeable": "Standard", "displayPriority": 30, "type": "tchmi:general#/definitions/Number", "category": "Labels", "description": "How thick to stroke graphical labels.", "readOnly": false, "bindable": true, "defaultBindingMode": "OneWay", "heritable": true, "defaultValue": null, "defaultValueInternal": null }, { "name": "data-tchmi-keyboard-padding", "propertyName": "KeyboardPadding", "propertySetterName": "setKeyboardPadding", "propertyGetterName": "getKeyboardPadding", "displayName": "Keyboard Padding", "visible": true, "themeable": "Standard", "displayPriority": 51, "type": "tchmi:framework#/definitions/PixelPadding", "category": "Layout", "description": "Padding of the whole keyboard", "readOnly": false, "bindable": true, "defaultBindingMode": "OneWay", "heritable": true, "allowSymbolExpressionsInObject": true, "defaultValue": { "top": 10, "topUnit": "px", "right": 10, "rightUnit": "px", "bottom": 10, "bottomUnit": "px", "left": 10, "leftUnit": "px" }, "defaultValueInternal": null }, { "name": "data-tchmi-key-padding", "propertyName": "KeyPadding", "propertySetterName": "setKeyPadding", "propertyGetterName": "getKeyPadding", "displayName": "Key Padding", "visible": true, "themeable": "Standard", "displayPriority": 51, "type": "tchmi:framework#/definitions/Padding", "category": "Layout", "description": "Padding of the individual keys", "readOnly": false, "bindable": true, "defaultBindingMode": "OneWay", "heritable": true, "allowSymbolExpressionsInObject": true, "defaultValue": { "top": 4, "topUnit": "px", "right": 4, "rightUnit": "px", "bottom": 4, "bottomUnit": "px", "left": 4, "leftUnit": "px" }, "defaultValueInternal": null }, { "name": "data-tchmi-additional-key-backdrop-padding", "propertyName": "AdditionalKeyBackdropPadding", "propertySetterName": "setAdditionalKeyBackdropPadding", "propertyGetterName": "getAdditionalKeyBackdropPadding", "displayName": "Additional Key Backdrop Padding", "visible": true, "themeable": "Standard", "displayPriority": 51, "type": "tchmi:framework#/definitions/Padding", "category": "Layout", "description": "Padding of the backdrop behind additional keys", "readOnly": false, "bindable": true, "defaultBindingMode": "OneWay", "heritable": true, "allowSymbolExpressionsInObject": true, "defaultValue": { "top": 10, "topUnit": "px", "right": 10, "rightUnit": "px", "bottom": 10, "bottomUnit": "px", "left": 10, "leftUnit": "px" }, "defaultValueInternal": null }, { "name": "data-tchmi-key-background-color", "propertyName": "KeyBackgroundColor", "propertySetterName": "setKeyBackgroundColor", "propertyGetterName": "getKeyBackgroundColor", "displayName": "Key Background Color", "visible": true, "themeable": "Standard", "displayPriority": 20, "type": "tchmi:framework#/definitions/Color", "category": "Colors", "description": "The background color of the keys.", "readOnly": false, "bindable": true, "defaultBindingMode": "OneWay", "heritable": true, "allowSymbolExpressionsInObject": true, "defaultValue": null, "defaultValueInternal": null }, { "name": "data-tchmi-label-color", "propertyName": "LabelColor", "propertySetterName": "setLabelColor", "propertyGetterName": "getLabelColor", "displayName": "Label Color", "visible": true, "themeable": "Standard", "displayPriority": 20, "type": "tchmi:framework#/definitions/SolidColor", "category": "Colors", "description": "The font color of text labels.", "readOnly": false, "bindable": true, "defaultBindingMode": "OneWay", "heritable": true, "allowSymbolExpressionsInObject": true, "defaultValue": null, "defaultValueInternal": null }, { "name": "data-tchmi-label-stroke-color", "propertyName": "LabelStrokeColor", "propertySetterName": "setLabelStrokeColor", "propertyGetterName": "getLabelStrokeColor", "displayName": "Label Stroke Color", "visible": true, "themeable": "Standard", "displayPriority": 20, "type": "tchmi:framework#/definitions/SolidColor", "category": "Colors", "description": "The stroke color of graphical symbols.", "readOnly": false, "bindable": true, "defaultBindingMode": "OneWay", "heritable": true, "allowSymbolExpressionsInObject": true, "defaultValue": null, "defaultValueInternal": null }, { "name": "data-tchmi-label-fill-color", "propertyName": "LabelFillColor", "propertySetterName": "setLabelFillColor", "propertyGetterName": "getLabelFillColor", "displayName": "Label Fill Color", "visible": true, "themeable": "Standard", "displayPriority": 60, "type": "tchmi:framework#/definitions/Color", "category": "Colors", "description": "The fill color of graphical symbols.", "readOnly": false, "bindable": true, "defaultBindingMode": "OneWay", "heritable": true, "allowSymbolExpressionsInObject": true, "defaultValue": null, "defaultValueInternal": null }, { "name": "data-tchmi-additional-key-backdrop-color", "propertyName": "AdditionalKeyBackdropColor", "propertySetterName": "setAdditionalKeyBackdropColor", "propertyGetterName": "getAdditionalKeyBackdropColor", "displayName": "Additional Key Backdrop Color", "visible": true, "themeable": "Standard", "displayPriority": 60, "type": "tchmi:framework#/definitions/Color", "category": "Colors", "description": "The background color of the backdrop behind additional keys.", "readOnly": false, "bindable": true, "defaultBindingMode": "OneWay", "heritable": true, "allowSymbolExpressionsInObject": true, "defaultValue": null, "defaultValueInternal": null } ], "attributeCategories": [ { "name": "Behaviour", "displayPriority": 500, "defaultCollapsed": true, "description": "Attributes defining the behaviour of the control." }, { "name": "Indirect Input", "displayPriority": 140, "defaultCollapsed": true, "description": "Attributes controlling the indirect input mode via a textbox owned by the keyboard." }, { "name": "Labels", "displayPriority": 150, "defaultCollapsed": true, "description": "Attributes defining the labels of the control." } ], "functions": [], "events": [ { "name": ".onKeyPressStarted", "displayName": ".onKeyPressStarted", "visible": true, "displayPriority": 10, "category": "Control", "description": "The onKeyPressStarted event is fired when the user presses down a key.", "heritable": true, "arguments": [ { "type": "tchmi:framework#/definitions/TcHmiKeyboardKeyPressedEventObjects", "description": "The event object containing information about the pressed keys." } ] }, { "name": ".onKeyPressCanceled", "displayName": ".onKeyPressCanceled", "visible": true, "displayPriority": 11, "category": "Control", "description": "The onKeyPressCanceled event is fired when the user cancels a key press by moving the pointer off the key.", "heritable": true, "arguments": [ { "type": "tchmi:framework#/definitions/TcHmiKeyboardKeyPressedEventObjects", "description": "The event object containing information about the released keys." } ] }, { "name": ".onKeyPressFinished", "displayName": ".onKeyPressFinished", "visible": true, "displayPriority": 12, "category": "Control", "description": "The onKeyPressFinished event is fired when the user finishes pressing a key by releasing a key that was pressed before.", "heritable": true, "arguments": [ { "type": "tchmi:framework#/definitions/TcHmiKeyboardKeyPressedEventObjects", "description": "The event object containing information about the released keys." } ] }, { "name": ".onKeyPressEnded", "displayName": ".onKeyPressEnded", "visible": true, "displayPriority": 13, "category": "Control", "description": "The onKeyPressEnded event is fired after a key press is finished or canceled.", "heritable": true, "arguments": [ { "type": "tchmi:framework#/definitions/TcHmiKeyboardKeyPressedEventObjects", "description": "The event object containing information about the released keys." } ] }, { "name": ".onIndirectInputAccepted", "displayName": ".onIndirectInputAccepted", "visible": true, "displayPriority": 14, "category": "Control", "description": "The onIndirectInputAccepted event is fired when the user accepts the indirect input.", "heritable": true, "arguments": [ { "type": "tchmi:general#/definitions/String", "description": "The new indirect input value." } ] }, { "name": ".onIndirectInputCanceled", "displayName": ".onIndirectInputCanceled", "visible": true, "displayPriority": 15, "category": "Control", "description": "The onIndirectInputCanceled event is fired when the user cancels the indirect input.", "heritable": true, "arguments": [ { "type": "tchmi:general#/definitions/String", "description": "The canceled indirect input value." } ] }, { "name": ".onLayoutLoaded", "displayName": ".onLayoutLoaded", "visible": true, "displayPriority": 16, "category": "Control", "description": "The onLayoutLoaded event is fired when the layout file was fetched, parsed and the keys were created.", "heritable": true, "arguments": [ { "type": "tchmi:framework#/definitions/TcHmiKeyboardLayoutFileEventObject", "description": "The event object containing information about the layout." } ] }, { "name": ".onLayoutActivated", "displayName": ".onLayoutActivated", "visible": true, "displayPriority": 17, "category": "Control", "description": "The onLayoutActivated event is fired when one of the layouts in the current layout file is activated.", "heritable": true, "arguments": [ { "type": "tchmi:framework#/definitions/TcHmiKeyboardLayoutEventObject", "description": "The event object containing information about the layout." } ] } ], "dataTypes": [ { "schema": "Schema/Types.Schema.json" } ], "languages": { "en": "Lang/Language.en.json", "de": "Lang/Language.de.json" } }