From 518dc8f28fb3077a8a38b1ef9cbae9737a8dc598 Mon Sep 17 00:00:00 2001 From: "m.heisig" Date: Fri, 30 Jan 2026 09:31:45 +0100 Subject: [PATCH] First minimal version --- .eslintrc.json | 28 + .gitignore | 290 + .tfignore | 14 + Desktop.view | 404 + Fonts/Fonts.css | 21 + Fonts/Roboto-Condensed-webfont.woff | Bin 0 -> 81408 bytes Images/Beckhoff_Logo.svg | 15 + Images/Favicon.ico | Bin 0 -> 148639 bytes Images/Manifest/launcher-icon-0-75x.png | Bin 0 -> 2469 bytes Images/Manifest/launcher-icon-1-5x.png | Bin 0 -> 7008 bytes Images/Manifest/launcher-icon-1x.png | Bin 0 -> 3806 bytes Images/Manifest/launcher-icon-2x.png | Bin 0 -> 10158 bytes Images/Manifest/launcher-icon-3x.png | Bin 0 -> 18102 bytes Images/Manifest/launcher-icon-4x.png | Bin 0 -> 27726 bytes Infineon_HMI.hmiproj | 407 + .../German - compact.keyboard.json | 3534 ++++ .../Numpad (plusminus).keyboard.json | 302 + KeyboardLayouts/US - compact.keyboard.json | 3613 +++++ Localization/de.localization | 7 + Localization/en.localization | 7 + Properties/Default.tpl | 82 + Properties/tchmi.framework.Schema.json | 13486 ++++++++++++++++ Properties/tchmi.project.Schema.json | 4 + Properties/tchmiconfig.json | 150 + Properties/tchmimanifest.json | 47 + Properties/tchmipublish.config.json | 52 + Server/ADS/ADS.Config.default.json | 59 + Server/ADS/ADS.Config.remote.json | 12 + Server/ADS/ADS.Storage.json | 4 + Server/TcHmiLua/TcHmiLua.Config.default.json | 6 + Server/TcHmiLua/TcHmiLua.Config.remote.json | 1 + Server/TcHmiLua/TcHmiLua.Storage.json | 4 + .../TcHmiSqliteLogger.Config.default.json | 10 + .../TcHmiSqliteLogger.Config.remote.json | 1 + .../TcHmiSqliteLogger.Storage.json | 4 + Server/TcHmiSrv/TcHmiSrv.Config.default.json | 4038 +++++ Server/TcHmiSrv/TcHmiSrv.Config.remote.json | 9 + Server/TcHmiSrv/TcHmiSrv.Storage.json | 4 + .../TcHmiUserManagement.Config.default.json | 58 + .../TcHmiUserManagement.Config.remote.json | 1 + .../TcHmiUserManagement.Storage.json | 4 + Themes/Base-Dark/Base-Dark.theme | 3 + Themes/Base-Dark/Base-DarkStyle.css | 348 + Themes/Base-Dark/Images/Splash-320x534.png | Bin 0 -> 55635 bytes Themes/Base-Dark/Images/Splash-420x200.png | Bin 0 -> 30650 bytes Themes/Base-Dark/Images/Splash-800x600.png | Bin 0 -> 120944 bytes Themes/Base/Base.theme | 3 + Themes/Base/BaseStyle.css | 347 + Themes/Base/Images/Splash-320x534.png | Bin 0 -> 55635 bytes Themes/Base/Images/Splash-420x200.png | Bin 0 -> 30650 bytes Themes/Base/Images/Splash-800x600.png | Bin 0 -> 120944 bytes packages.config | 8 + packages.xsd | 18 + tsconfig.json | 27 + tsconfig.tpl.json | 27 + 55 files changed, 27459 insertions(+) create mode 100644 .eslintrc.json create mode 100644 .gitignore create mode 100644 .tfignore create mode 100644 Desktop.view create mode 100644 Fonts/Fonts.css create mode 100644 Fonts/Roboto-Condensed-webfont.woff create mode 100644 Images/Beckhoff_Logo.svg create mode 100644 Images/Favicon.ico create mode 100644 Images/Manifest/launcher-icon-0-75x.png create mode 100644 Images/Manifest/launcher-icon-1-5x.png create mode 100644 Images/Manifest/launcher-icon-1x.png create mode 100644 Images/Manifest/launcher-icon-2x.png create mode 100644 Images/Manifest/launcher-icon-3x.png create mode 100644 Images/Manifest/launcher-icon-4x.png create mode 100644 Infineon_HMI.hmiproj create mode 100644 KeyboardLayouts/German - compact.keyboard.json create mode 100644 KeyboardLayouts/Numpad (plusminus).keyboard.json create mode 100644 KeyboardLayouts/US - compact.keyboard.json create mode 100644 Localization/de.localization create mode 100644 Localization/en.localization create mode 100644 Properties/Default.tpl create mode 100644 Properties/tchmi.framework.Schema.json create mode 100644 Properties/tchmi.project.Schema.json create mode 100644 Properties/tchmiconfig.json create mode 100644 Properties/tchmimanifest.json create mode 100644 Properties/tchmipublish.config.json create mode 100644 Server/ADS/ADS.Config.default.json create mode 100644 Server/ADS/ADS.Config.remote.json create mode 100644 Server/ADS/ADS.Storage.json create mode 100644 Server/TcHmiLua/TcHmiLua.Config.default.json create mode 100644 Server/TcHmiLua/TcHmiLua.Config.remote.json create mode 100644 Server/TcHmiLua/TcHmiLua.Storage.json create mode 100644 Server/TcHmiSqliteLogger/TcHmiSqliteLogger.Config.default.json create mode 100644 Server/TcHmiSqliteLogger/TcHmiSqliteLogger.Config.remote.json create mode 100644 Server/TcHmiSqliteLogger/TcHmiSqliteLogger.Storage.json create mode 100644 Server/TcHmiSrv/TcHmiSrv.Config.default.json create mode 100644 Server/TcHmiSrv/TcHmiSrv.Config.remote.json create mode 100644 Server/TcHmiSrv/TcHmiSrv.Storage.json create mode 100644 Server/TcHmiUserManagement/TcHmiUserManagement.Config.default.json create mode 100644 Server/TcHmiUserManagement/TcHmiUserManagement.Config.remote.json create mode 100644 Server/TcHmiUserManagement/TcHmiUserManagement.Storage.json create mode 100644 Themes/Base-Dark/Base-Dark.theme create mode 100644 Themes/Base-Dark/Base-DarkStyle.css create mode 100644 Themes/Base-Dark/Images/Splash-320x534.png create mode 100644 Themes/Base-Dark/Images/Splash-420x200.png create mode 100644 Themes/Base-Dark/Images/Splash-800x600.png create mode 100644 Themes/Base/Base.theme create mode 100644 Themes/Base/BaseStyle.css create mode 100644 Themes/Base/Images/Splash-320x534.png create mode 100644 Themes/Base/Images/Splash-420x200.png create mode 100644 Themes/Base/Images/Splash-800x600.png create mode 100644 packages.config create mode 100644 packages.xsd create mode 100644 tsconfig.json create mode 100644 tsconfig.tpl.json diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..b203355 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,28 @@ +{ + "$schema": "http://json.schemastore.org/eslintrc", + "env": { + "browser": true, + "es6": true, + "jquery": true + }, + "parserOptions": { + "ecmaVersion": 6, + "sourceType": "script" + }, + "rules": { + "no-dupe-args": "error", + "no-dupe-else-if": "error", + "no-duplicate-case": "warn", + "no-redeclare": "error", + "no-unexpected-multiline": "error", + "use-isnan": "error" + }, + "overrides": [ + { + "files": [ "*.ts", "*.tsx" ], + "rules": { + + } + } + ] +} \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..deb59a5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,290 @@ +## Ignore TwinCAT HMI temporary files, build results, and +## files generated by popular TwinCAT HMI add-ons. + +.engineering_servers/ +tchmipublish.journal.json +liveview_* +*.cache +*.db-shm +*.db-wal +*.pid +**/.hmiframework/ +**/.hmipkgs/ +**/*.d.ts +**/*.js.map + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates +*.vcxproj.filters + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Visual Studio 2015 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ +**/Properties/launchSettings.json + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# TODO: Comment the next line if you want to checkin your web deploy settings +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config +# NuGet v3's project.json files produces more ignoreable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +node_modules/ +orleans.codegen.cs + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because git is used. +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# JetBrains Rider +.idea/ +*.sln.iml + +# CodeRush +.cr/ + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/ \ No newline at end of file diff --git a/.tfignore b/.tfignore new file mode 100644 index 0000000..42911af --- /dev/null +++ b/.tfignore @@ -0,0 +1,14 @@ +## Ignore TwinCAT HMI temporary files, build results, and +## files generated by popular TwinCAT HMI add-ons. + +.engineering_servers/ +tchmipublish.journal.json +liveview_* +*.cache +*.db-shm +*.db-wal +*.pid +**/.hmiframework/ +**/.hmipkgs/ +**/*.d.ts +**/*.js.map diff --git a/Desktop.view b/Desktop.view new file mode 100644 index 0000000..b14975e --- /dev/null +++ b/Desktop.view @@ -0,0 +1,404 @@ +
+ +
+ + +
+
+ + + + +
+
+
+
+ + + + +
+
+
+
+ + + + +
+
+
+
+ + + + +
+
+
+
+ + + + + + +
+
+
+
+ + + + + + +
+
+
+
+ + + + + + +
+
+
+
+ + + + +
+
+
+
+ + + + +
+
+
+
+ +
+
\ No newline at end of file diff --git a/Fonts/Fonts.css b/Fonts/Fonts.css new file mode 100644 index 0000000..6cc8e4c --- /dev/null +++ b/Fonts/Fonts.css @@ -0,0 +1,21 @@ +@font-face { + font-family: RobotoCondensed; + src: url(Roboto-Condensed-webfont.woff); +} + +/** + Description about font inclusion in TcHmi + + As a default we include Roboto Condensed (in Fonts folder) as a webfont which will render latin, greek, vietnamese, cyrillic glyphs + + If Roboto does not render the glyphs we use some preinstalled fallback + 'Microsoft YaHei' (Windows), 'Hiragino Sans GB' (Mac/iOS), 'Noto Sans CJK SC/TC' (Android), 'WenQuanYi Micro Hei' (Linux) renders chinese + 'Meiryo' (Windows), 'Hiragino Kaku Gothic Pro' (Mac/iOS), 'Noto Sans CJK JP' (Android) renders japanese + + For other fonts you can add the woff files into the tchmi project and + add a @font-face section yourself + The noto family from google tries to cover all of the world, is free to use and fits nicely with roboto + see https://www.google.com/get/noto/ and https://fonts.google.com/earlyaccess + + The font usage is defined in the main css file of the active theme (for example Themes/Base/Style.css). +*/ \ No newline at end of file diff --git a/Fonts/Roboto-Condensed-webfont.woff b/Fonts/Roboto-Condensed-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..7bee5623224eb01770347f923ff01308a799d1e7 GIT binary patch literal 81408 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�T&FgX&GY9P(RqC(Sb{sjE86?|+}z(VXh;~5)j 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 literal 0 HcmV?d00001 diff --git a/Images/Beckhoff_Logo.svg b/Images/Beckhoff_Logo.svg new file mode 100644 index 0000000..e3c1032 --- /dev/null +++ b/Images/Beckhoff_Logo.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/Images/Favicon.ico b/Images/Favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..efdf33760a85e251db30f380e136ccc41aac8013 GIT binary patch literal 148639 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 literal 0 HcmV?d00001 diff --git a/Images/Manifest/launcher-icon-0-75x.png b/Images/Manifest/launcher-icon-0-75x.png new file mode 100644 index 0000000000000000000000000000000000000000..f075f76f2f393f400d50355efd40f0619d69ccbe GIT binary patch literal 2469 zcmV;W30n4vP)p2Pe>1yZe25)8t}zb5AqgQCvQZEov)gl!n1f^6>DM%Cv(k6`vO(1~~9LG81Bsj6L_cZgqy_oq)U~RjDHNhq0)+^LD7jY(AFjEVmQ%@H96KTRp3Dn* zC1l<+=Y+iSC=x78QaJE3sRG`WXjzgZ2ImdN7_eZCK>$&LK>{L*6UB?-z2ZgiKFo{r zh*wk;b%J_9y`tWuPQWWTk8vLB1>=1{sRgOj0E>)46GNI9I;^3VSZan~m;onHsbW1C ztKbzeiZe>h8=MLWkR+Bw6^mjM#j3@sVAWua#aNHA24f9YusJjV3U+&Xc)6~FC
p^&TjS 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 UIlN?{`Tzg`07*qoM6N<$f>^#oj{pDw literal 0 HcmV?d00001 diff --git a/Images/Manifest/launcher-icon-2x.png b/Images/Manifest/launcher-icon-2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3bdf1407c84cd6905ac9d5435ed27606120f4b6a GIT binary patch literal 10158 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 VzO-^nV(tI{002ovPDHLkV1hL*U%dbT literal 0 HcmV?d00001 diff --git a/Images/Manifest/launcher-icon-4x.png b/Images/Manifest/launcher-icon-4x.png new file mode 100644 index 0000000000000000000000000000000000000000..04cbf4f7325f7fdeb0588548201641a7054528bd GIT binary patch literal 27726 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

;r9!Gxq=P`5eFc3S3 zzx8?K2ajPRbCqwt_3dz2%AaLutuA8f>IcX-cbaX$%-DbO1Uk8Hq7ySl@xTGo@yD?UOx4pxpz>_mbXZB+5;6bciy*AvKh_JPC1J_>u0q%P0+T zR}Ts0h^D)rd>R{zi&*{O>`0o!!rO0R{@(jAclW7siejZEP3UO@V+h)Gapr}e#NI=P z@Yc8g7`{UfXZYVig4_)$8hraA#7dz5WS5}OiZLWeC!wwo_-i_cYv)d7f6njeJ5xrsFuPL zzw~dR`{8@&-dG0m9CQ2j;@Cr{v9aec-e288SI3G;w*xGwltwAbkghFb>dJfI^;LBG z&De%}4jn>k?>xFUwnhwP9Ax|)Eol!{hO@{(*$h)kb5eO6ajs=q#L-Dk#X zrm>|B5^KCU1Km=?M~0zP)nV+J<_6d{25rr_p{T43^fb`drm7l?!Po_{&6L;IH3myv z#%fO^u}x2z>7#F8L#Nx|`G>{*%utQfHV-k6rflQiaC3XQKmd zmJxyl<$G)uTox_E(5T{uQG`NpCyZZ2C+TD{zO~_NVsZi}pL`O_eT}Z>5zwlb_ZAX_f(K+6R|)fKZ(v<) z7FrDL;W)O*w}H6kD%wglj}DB%CqDmKY);PLW-l+N&QWh^opQs|1t+vv=K%yFdK`E`8@4h0JziESa!&;XL-9Jc|PlKT&;2NJ^mu z1{!mBoxuJF&tUERxe=jO3rnxRf|8{Kly#;V>i@rr})85ry8!^dWV3G9$DJVl`9$Q&;J?|xIhoYlp+ z730U4#vf^rbvm!(%BANyo_hY1IPl1$czJ0P-Q0}!{KLx71HQht01DVsC>C;65G)d5 zH#1lyl6Ih8nMbJv2Ed_*9tE_MW2$W0!OgQ?n zXR&eR5=@qjtU_P?!T0gNfkQ~<4-|`?>W;)+R}YNbFfz`tZz9F~nMZNV4wKu;885H* zv5{%?j1P&%q|H69PQ)YE6ybycdvykcB3MqCy<+A{rD-5MmobfhS3po;{9a(*4EB8R z@kepu*-zk&m94`24+T30AU)CMu@O`VW>YqH%ZKU09>3!05XvgXm3;#Sz|qH^z==

qRhJ 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 Z_&>{vg9YjudK3Tv002ovPDHLkV1njUyOsa| literal 0 HcmV?d00001 diff --git a/Infineon_HMI.hmiproj b/Infineon_HMI.hmiproj new file mode 100644 index 0000000..a92378c --- /dev/null +++ b/Infineon_HMI.hmiproj @@ -0,0 +1,407 @@ + + + + + + $(registry:HKEY_CURRENT_USER\Software\Beckhoff\TwinCAT3\3.1@InstallDir)\..\Functions\TE2000-HMI-Engineering + $(registry:HKEY_LOCAL_MACHINE\Software\Beckhoff\TwinCAT3\3.1@InstallDir)\..\Functions\TE2000-HMI-Engineering + $(registry:HKEY_LOCAL_MACHINE\Software\Wow6432Node\Beckhoff\TwinCAT3\3.1@InstallDir)\..\Functions\TE2000-HMI-Engineering + 15.0 + TwinCAT HMI + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + Infineon_HMI + 2 + 1.0.0.0 + 3000 + false + false + client + 1.0 + + + Default + True + True + native,Version=v1.12.0,Profile=tchmi + native1.12-tchmi + v2 + False + Infineon_HMI + 13000 + 3443 + 14.3.617.1 + 14.3.617.1 + False + + + $(TcHmiDirectory)\MSBuild\Beckhoff.TwinCAT.HMI.tasks + $(TcHmiDirectory)\MSBuild\Beckhoff.TwinCAT.HMI.targets + + + + + + <_TcHmiNodeJsMode>Global + <_TcHmiNodeJsMode Condition="'$(_TcHmiNodeJsMode)' == ''">Global + <_TcHmiNodePath Condition="'$(_TcHmiNodeJsMode)' == 'Global'">$(registry:HKEY_LOCAL_MACHINE\SOFTWARE\Node.js@InstallPath) + <_TcHmiNodePath Condition="'$(_TcHmiNodeJsMode)' == 'Global' AND '$(_TcHmiNodePath)' == '' AND Exists('C:\Program Files\nodejs\')">C:\Program Files\nodejs\ + <_TcHmiNodePath Condition="'$(_TcHmiNodeJsMode)' == 'Global' AND '$(_TcHmiNodePath)' == '' AND Exists('C:\Program Files (x86)\nodejs\')">C:\Program Files (x86)\nodejs\ + + + + $(_TcHmiNodePath) + + + + 2.0 + b4b0e423-9884-4277-82a6-6d7062793303 + TwinCAT3HmiProject + TwinCAT3HmiProject + Release + TwinCAT HMI + + + + true + full + false + bin\ + DEBUG;TRACE + prompt + 4 + TwinCAT HMI + Infineon_HMI + + + pdbonly + true + bin\ + TRACE + prompt + 4 + TwinCAT HMI + Infineon_HMI + + + + + + + + + + + + + + + + + + PreBuildEvent; + CoreBuild; + PostBuildEvent + + + BaseClean + + + + $(MSBuildProjectDirectory) + 127.0.0.1 + 1010 + + + + + + + + + + + + + + + + + + + + + + + + + + + Infineon_HMI + + + + false + + + Content + True + + + Content + True + + + Content + True + + + Content + True + + + Content + True + + + Content + True + + + Content + True + + + Content + True + + + Content + True + + + Content + true + + + Content + true + tsconfig.tpl.json + + + Content + true + + + Content + false + + + Content + true + + + Content + true + + + Content + true + + + Content + true + + + Content + true + + + Content + true + + + Content + false + + + Content + false + + + Content + true + + + Content + true + + + Content + true + + + Content + true + + + Content + true + + + Content + true + + + Content + true + + + Content + true + + + Content + true + + + Content + true + + + Content + true + + + Content + true + + + Content + true + + + Content + true + + + Content + true + + + Content + true + + + Content + true + + + Content + true + + + Content + true + + + Content + true + + + Content + true + + + Content + true + + + Content + true + + + Content + true + + + Content + true + + + Content + true + + + + + + + + Content + + + Content + + + Content + + + Content + false + + + Content + false + + + Content + false + + + Content + false + + + Content + false + + + Content + false + + + Content + + + Content + + + Content + + + Content + false + + + Content + false + + + Content + false + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/KeyboardLayouts/German - compact.keyboard.json b/KeyboardLayouts/German - compact.keyboard.json new file mode 100644 index 0000000..1252ef0 --- /dev/null +++ b/KeyboardLayouts/German - compact.keyboard.json @@ -0,0 +1,3534 @@ +{ + "useIndirectInput": false, + "hasNumPad": false, + "displayName": "German (Compact)", + "localeName": "de-DE", + "layouts": [ + { + "name": "default", + "dimensions": { + "width": 770, + "height": 230 + }, + "keys": [ + { + "geometry": { + "left": 0, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyQ", + "key": "q", + "shiftKey": "Q", + "labels": [ + { + "text": "q", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Q", + "visible": [ + "shift" + ], + "type": "text" + } + ], + "longpressAction": "additionalKeys", + "additionalKeys": [ + { + "geometry": { + "left": 0, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "Digit1", + "key": "1", + "shiftKey": "1", + "labels": [ + { + "text": "1", + "type": "text" + } + ] + }, + { + "geometry": { + "left": 120, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyQ", + "key": "@", + "shiftKey": "@", + "labels": [ + { + "text": "@", + "type": "text" + } + ] + } + ] + }, + { + "geometry": { + "left": 7.792207792207792, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyW", + "key": "w", + "shiftKey": "W", + "labels": [ + { + "text": "w", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "W", + "visible": [ + "shift" + ], + "type": "text" + } + ], + "longpressAction": "additionalKeys", + "additionalKeys": [ + { + "geometry": { + "left": 0, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "Digit2", + "key": "2", + "shiftKey": "2", + "labels": [ + { + "text": "2", + "type": "text" + } + ] + } + ] + }, + { + "geometry": { + "left": 15.584415584415584, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyE", + "key": "e", + "shiftKey": "E", + "labels": [ + { + "text": "e", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "E", + "visible": [ + "shift" + ], + "type": "text" + } + ], + "longpressAction": "additionalKeys", + "additionalKeys": [ + { + "geometry": { + "left": 0, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "Digit3", + "key": "3", + "shiftKey": "3", + "labels": [ + { + "text": "3", + "type": "text" + } + ] + }, + { + "geometry": { + "left": -120, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyE", + "key": "€", + "shiftKey": "€", + "labels": [ + { + "text": "€", + "type": "text" + } + ] + }, + { + "geometry": { + "left": 120, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyE", + "key": "ê", + "shiftKey": "Ê", + "labels": [ + { + "text": "ê", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Ê", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 240, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyE", + "key": "é", + "shiftKey": "É", + "labels": [ + { + "text": "é", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "É", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 360, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyE", + "key": "è", + "shiftKey": "È", + "labels": [ + { + "text": "è", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "È", + "visible": [ + "shift" + ], + "type": "text" + } + ] + } + ] + }, + { + "geometry": { + "left": 23.376623376623375, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyR", + "key": "r", + "shiftKey": "R", + "labels": [ + { + "text": "r", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "R", + "visible": [ + "shift" + ], + "type": "text" + } + ], + "longpressAction": "additionalKeys", + "additionalKeys": [ + { + "geometry": { + "left": 0, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "Digit4", + "key": "4", + "shiftKey": "4", + "labels": [ + { + "text": "4", + "type": "text" + } + ] + } + ] + }, + { + "geometry": { + "left": 31.16883116883117, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyT", + "key": "t", + "shiftKey": "T", + "labels": [ + { + "text": "t", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "T", + "visible": [ + "shift" + ], + "type": "text" + } + ], + "longpressAction": "additionalKeys", + "additionalKeys": [ + { + "geometry": { + "left": 0, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "Digit5", + "key": "5", + "shiftKey": "5", + "labels": [ + { + "text": "5", + "type": "text" + } + ] + } + ] + }, + { + "geometry": { + "left": 38.961038961038966, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyY", + "key": "z", + "shiftKey": "Z", + "labels": [ + { + "text": "z", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Z", + "visible": [ + "shift" + ], + "type": "text" + } + ], + "longpressAction": "additionalKeys", + "additionalKeys": [ + { + "geometry": { + "left": 0, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "Digit6", + "key": "6", + "shiftKey": "6", + "labels": [ + { + "text": "6", + "type": "text" + } + ] + } + ] + }, + { + "geometry": { + "left": 46.75324675324675, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyU", + "key": "u", + "shiftKey": "U", + "labels": [ + { + "text": "u", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "U", + "visible": [ + "shift" + ], + "type": "text" + } + ], + "longpressAction": "additionalKeys", + "additionalKeys": [ + { + "geometry": { + "left": 0, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "Digit7", + "key": "7", + "shiftKey": "7", + "labels": [ + { + "text": "7", + "type": "text" + } + ] + }, + { + "geometry": { + "left": 120, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyU", + "key": "û", + "shiftKey": "Û", + "labels": [ + { + "text": "û", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Û", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 240, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyU", + "key": "ú", + "shiftKey": "Ú", + "labels": [ + { + "text": "ú", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Ú", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 360, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyU", + "key": "ù", + "shiftKey": "Ù", + "labels": [ + { + "text": "ù", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Ù", + "visible": [ + "shift" + ], + "type": "text" + } + ] + } + ] + }, + { + "geometry": { + "left": 54.54545454545454, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyI", + "key": "i", + "shiftKey": "I", + "labels": [ + { + "text": "i", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "I", + "visible": [ + "shift" + ], + "type": "text" + } + ], + "longpressAction": "additionalKeys", + "additionalKeys": [ + { + "geometry": { + "left": 0, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "Digit8", + "key": "8", + "shiftKey": "8", + "labels": [ + { + "text": "8", + "type": "text" + } + ] + }, + { + "geometry": { + "left": 120, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyI", + "key": "î", + "shiftKey": "Î", + "labels": [ + { + "text": "î", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Î", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 240, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyI", + "key": "í", + "shiftKey": "Í", + "labels": [ + { + "text": "í", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Í", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 360, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyI", + "key": "ì", + "shiftKey": "Ì", + "labels": [ + { + "text": "ì", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Ì", + "visible": [ + "shift" + ], + "type": "text" + } + ] + } + ] + }, + { + "geometry": { + "left": 62.33766233766234, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyO", + "key": "o", + "shiftKey": "O", + "labels": [ + { + "text": "o", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "O", + "visible": [ + "shift" + ], + "type": "text" + } + ], + "longpressAction": "additionalKeys", + "additionalKeys": [ + { + "geometry": { + "left": 0, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "Digit9", + "key": "9", + "shiftKey": "9", + "labels": [ + { + "text": "9", + "type": "text" + } + ] + }, + { + "geometry": { + "left": 120, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyO", + "key": "ô", + "shiftKey": "Ô", + "labels": [ + { + "text": "ô", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Ô", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 240, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyO", + "key": "ó", + "shiftKey": "Ó", + "labels": [ + { + "text": "ó", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Ó", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 360, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyO", + "key": "ò", + "shiftKey": "Ò", + "labels": [ + { + "text": "ò", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Ò", + "visible": [ + "shift" + ], + "type": "text" + } + ] + } + ] + }, + { + "geometry": { + "left": 70.12987012987013, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyP", + "key": "p", + "shiftKey": "P", + "labels": [ + { + "text": "p", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "P", + "visible": [ + "shift" + ], + "type": "text" + } + ], + "longpressAction": "additionalKeys", + "additionalKeys": [ + { + "geometry": { + "left": 0, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "Digit0", + "key": "0", + "shiftKey": "0", + "labels": [ + { + "text": "0", + "type": "text" + } + ] + } + ] + }, + { + "geometry": { + "left": 77.92207792207793, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "BracketLeft", + "key": "ü", + "shiftKey": "Ü", + "labels": [ + { + "text": "ü", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Ü", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 2.5974025974025974, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyA", + "key": "a", + "shiftKey": "A", + "labels": [ + { + "text": "a", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "A", + "visible": [ + "shift" + ], + "type": "text" + } + ], + "longpressAction": "additionalKeys", + "additionalKeys": [ + { + "geometry": { + "left": 0, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyA", + "key": "â", + "shiftKey": "Â", + "labels": [ + { + "text": "â", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Â", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 120, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyA", + "key": "á", + "shiftKey": "Á", + "labels": [ + { + "text": "á", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Á", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 240, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyA", + "key": "à", + "shiftKey": "À", + "labels": [ + { + "text": "à", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "À", + "visible": [ + "shift" + ], + "type": "text" + } + ] + } + ] + }, + { + "geometry": { + "left": 10.38961038961039, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyS", + "key": "s", + "shiftKey": "S", + "labels": [ + { + "text": "s", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "S", + "visible": [ + "shift" + ], + "type": "text" + } + ], + "longpressAction": "additionalKeys", + "additionalKeys": [ + { + "geometry": { + "left": 0, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyS", + "key": "ß", + "shiftKey": "ß", + "labels": [ + { + "text": "ß", + "type": "text" + } + ] + } + ] + }, + { + "geometry": { + "left": 18.181818181818183, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyD", + "key": "d", + "shiftKey": "D", + "labels": [ + { + "text": "d", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "D", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 25.97402597402597, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyF", + "key": "f", + "shiftKey": "F", + "labels": [ + { + "text": "f", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "F", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 33.76623376623377, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyG", + "key": "g", + "shiftKey": "G", + "labels": [ + { + "text": "g", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "G", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 41.55844155844156, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyH", + "key": "h", + "shiftKey": "H", + "labels": [ + { + "text": "h", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "H", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 49.35064935064935, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyJ", + "key": "j", + "shiftKey": "J", + "labels": [ + { + "text": "j", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "J", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 57.14285714285714, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyK", + "key": "k", + "shiftKey": "K", + "labels": [ + { + "text": "k", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "K", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 64.93506493506493, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyL", + "key": "l", + "shiftKey": "L", + "labels": [ + { + "text": "l", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "L", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 72.72727272727273, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Semicolon", + "key": "ö", + "shiftKey": "Ö", + "labels": [ + { + "text": "ö", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Ö", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 80.51948051948052, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Quote", + "key": "ä", + "shiftKey": "Ä", + "labels": [ + { + "text": "ä", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Ä", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 7.792207792207792, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyZ", + "key": "y", + "shiftKey": "Y", + "labels": [ + { + "text": "y", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Y", + "visible": [ + "shift" + ], + "type": "text" + } + ], + "longpressAction": "additionalKeys", + "additionalKeys": [ + { + "geometry": { + "left": 0, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyZ", + "key": "ý", + "shiftKey": "Ý", + "labels": [ + { + "text": "ý", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Ý", + "visible": [ + "shift" + ], + "type": "text" + } + ] + } + ] + }, + { + "geometry": { + "left": 15.584415584415584, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyX", + "key": "x", + "shiftKey": "X", + "labels": [ + { + "text": "x", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "X", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 23.376623376623375, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyC", + "key": "c", + "shiftKey": "C", + "labels": [ + { + "text": "c", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "C", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 31.16883116883117, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyV", + "key": "v", + "shiftKey": "V", + "labels": [ + { + "text": "v", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "V", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 38.961038961038966, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyB", + "key": "b", + "shiftKey": "B", + "labels": [ + { + "text": "b", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "B", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 46.75324675324675, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyN", + "key": "n", + "shiftKey": "N", + "labels": [ + { + "text": "n", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "N", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 54.54545454545454, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyM", + "key": "m", + "shiftKey": "M", + "labels": [ + { + "text": "m", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "M", + "visible": [ + "shift" + ], + "type": "text" + } + ], + "longpressAction": "additionalKeys", + "additionalKeys": [ + { + "geometry": { + "left": 0, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyM", + "key": "µ", + "shiftKey": "µ", + "labels": [ + { + "text": "µ", + "type": "text" + } + ] + } + ] + }, + { + "geometry": { + "left": 62.33766233766234, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Comma", + "key": ",", + "shiftKey": ";", + "labels": [ + { + "text": ",", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": ";", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 70.12987012987013, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Period", + "key": ".", + "shiftKey": ":", + "labels": [ + { + "text": ".", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": ":", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 15.584415584415584, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Minus", + "key": "-", + "shiftKey": "_", + "labels": [ + { + "text": "-", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "_", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 7.792207792207792, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Slash", + "key": "/", + "shiftKey": "\\", + "labels": [ + { + "text": "/", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "\\", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 77.92207792207793, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "IntlBackslash", + "key": "?", + "shiftKey": "!", + "labels": [ + { + "text": "?", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "!", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 23.376623376623375, + "top": 78.26086956521739, + "width": 45.45454545454545, + "height": 21.73913043478261 + }, + "code": "Space", + "key": " ", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 85.71428571428571, + "top": 0, + "width": 14.285714285714285, + "height": 21.73913043478261 + }, + "code": "Backspace", + "key": "Backspace", + "type": "edit", + "labels": [ + { + "type": "svg", + "svg": { + "dimensions": { + "width": 22, + "height": 14 + }, + "path": "M 0.5 7 L 7 0.5 L 21.5 0.5 L 21.5 13.5 L 7 13.5 Z M 10 3 L 18 11 M 10 11 L 18 3" + } + } + ], + "longpressAction": "repeat" + }, + { + "geometry": { + "left": 88.31168831168831, + "top": 26.08695652173913, + "width": 11.688311688311687, + "height": 21.73913043478261 + }, + "code": "Enter", + "key": "Enter", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 21.5 8.5 L 21.5 0.5 L 21.5 8.5 L 5.5 8.5 M 5.5 3.5 L 0.5 8.5 L 5.5 13.5", + "dimensions": { + "width": 22, + "height": 14 + } + } + } + ], + "noCapsLock": false, + "ignoreModifiers": true + }, + { + "geometry": { + "left": 0, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "ShiftLeft", + "key": "Shift", + "type": "modifier", + "mode": "sticky", + "location": "left", + "labels": [ + { + "type": "svg", + "svg": { + "dimensions": { + "width": 14, + "height": 14 + }, + "path": "M 3.5 13.5 L 3.5 6.5 L 0.5 6.5 L 7 0.5 L 13.5 6.5 L 10.5 6.5 L 10.5 13.5 Z" + }, + "hidden": [ + "locked" + ] + }, + { + "type": "svg", + "svg": { + "path": "M 3.5 8.5 L 3.5 6.5 L 0.5 6.5 L 7 0.5 L 13.5 6.5 L 10.5 6.5 L 10.5 8.5 Z M 3.5 13.5 L 3.5 10.5 L 10.5 10.5 L 10.5 13.5 Z", + "dimensions": { + "width": 14, + "height": 14 + } + }, + "visible": [ + "locked" + ] + } + ], + "longpressAction": "lock" + }, + { + "geometry": { + "left": 85.71428571428571, + "top": 52.17391304347826, + "width": 14.285714285714285, + "height": 21.73913043478261 + }, + "code": "ShiftRight", + "key": "Shift", + "type": "modifier", + "mode": "sticky", + "location": "right", + "labels": [ + { + "svg": { + "path": "M 3.5 13.5 L 3.5 6.5 L 0.5 6.5 L 7 0.5 L 13.5 6.5 L 10.5 6.5 L 10.5 13.5 Z", + "dimensions": { + "width": 14, + "height": 14 + } + }, + "type": "svg", + "hidden": [ + "locked" + ] + }, + { + "type": "svg", + "visible": [ + "locked" + ], + "svg": { + "path": "M 3.5 8.5 L 3.5 6.5 L 0.5 6.5 L 7 0.5 L 13.5 6.5 L 10.5 6.5 L 10.5 8.5 Z M 3.5 13.5 L 3.5 10.5 L 10.5 10.5 L 10.5 13.5 Z", + "dimensions": { + "width": 14, + "height": 14 + } + } + } + ], + "longpressAction": "lock" + }, + { + "geometry": { + "left": 70.12987012987013, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "ArrowLeft", + "key": "ArrowLeft", + "type": "action", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 6.5 0.5 L 0.5 7 L 6.5 13.5", + "dimensions": { + "width": 7, + "height": 14 + } + } + } + ], + "longpressAction": "repeat" + }, + { + "geometry": { + "left": 77.92207792207793, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "ArrowRight", + "key": "ArrowRight", + "type": "action", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 0.5 0.5 L 6.5 7 L 0.5 13.5", + "dimensions": { + "width": 7, + "height": 14 + } + } + } + ], + "longpressAction": "repeat" + }, + { + "geometry": { + "left": 85.71428571428571, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "ArrowUp", + "key": "ArrowUp", + "type": "action", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 0.5 6.5 L 7 0.5 L 13.5 6.5", + "dimensions": { + "width": 14, + "height": 7 + } + } + } + ], + "longpressAction": "repeat" + }, + { + "geometry": { + "left": 93.5064935064935, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "ArrowDown", + "key": "ArrowDown", + "type": "action", + "labels": [ + { + "type": "svg", + "svg": { + "dimensions": { + "width": 14, + "height": 7 + }, + "path": "M 0.5 0.5 L 7 6.5 L 13.5 0.5" + } + } + ], + "longpressAction": "repeat" + }, + { + "geometry": { + "left": 0, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "", + "key": "", + "type": "layout-switch", + "layoutName": "numbersAndSymbols", + "labels": [ + { + "text": "123+", + "type": "text" + } + ] + } + ] + }, + { + "name": "numbersAndSymbols", + "dimensions": { + "width": 770, + "height": 230 + }, + "keys": [ + { + "geometry": { + "left": 85.71428571428571, + "top": 0, + "width": 14.285714285714285, + "height": 21.73913043478261 + }, + "code": "Backspace", + "key": "Backspace", + "type": "edit", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 0.5 7 L 7 0.5 L 21.5 0.5 L 21.5 13.5 L 7 13.5 Z M 10 3 L 18 11 M 10 11 L 18 3", + "dimensions": { + "width": 22, + "height": 14 + } + } + } + ], + "longpressAction": "repeat", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 85.71428571428571, + "top": 26.08695652173913, + "width": 14.285714285714285, + "height": 21.73913043478261 + }, + "code": "NumpadEnter", + "key": "Enter", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 21.5 8.5 L 21.5 0.5 L 21.5 8.5 L 5.5 8.5 M 5.5 3.5 L 0.5 8.5 L 5.5 13.5", + "dimensions": { + "width": 22, + "height": 14 + } + } + } + ], + "location": "numpad", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 85.71428571428571, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "ArrowLeft", + "key": "ArrowLeft", + "type": "action", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 6.5 0.5 L 0.5 7 L 6.5 13.5", + "dimensions": { + "width": 7, + "height": 14 + } + } + } + ], + "longpressAction": "repeat", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 93.5064935064935, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "ArrowRight", + "key": "ArrowRight", + "type": "action", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 0.5 0.5 L 6.5 7 L 0.5 13.5", + "dimensions": { + "width": 7, + "height": 14 + } + } + } + ], + "longpressAction": "repeat", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 85.71428571428571, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "ArrowUp", + "key": "ArrowUp", + "type": "action", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 0.5 6.5 L 7 0.5 L 13.5 6.5", + "dimensions": { + "width": 14, + "height": 7 + } + } + } + ], + "longpressAction": "repeat", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 93.5064935064935, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "ArrowDown", + "key": "ArrowDown", + "type": "action", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 0.5 0.5 L 7 6.5 L 13.5 0.5", + "dimensions": { + "width": 14, + "height": 7 + } + } + } + ], + "longpressAction": "repeat", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 0, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "", + "key": "", + "type": "layout-switch", + "layoutName": "default", + "labels": [ + { + "text": "ABC", + "type": "text" + } + ] + }, + { + "geometry": { + "left": 58.44155844155844, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad1", + "key": "1", + "location": "numpad", + "labels": [ + { + "text": "1", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 66.23376623376623, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad2", + "key": "2", + "location": "numpad", + "labels": [ + { + "text": "2", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 74.02597402597402, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad3", + "key": "3", + "location": "numpad", + "labels": [ + { + "text": "3", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 58.44155844155844, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad4", + "key": "4", + "location": "numpad", + "labels": [ + { + "text": "4", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 66.23376623376623, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad5", + "key": "5", + "location": "numpad", + "labels": [ + { + "text": "5", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 74.02597402597402, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad6", + "key": "6", + "location": "numpad", + "labels": [ + { + "text": "6", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 58.44155844155844, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad7", + "key": "7", + "labels": [ + { + "text": "7", + "type": "text" + } + ], + "location": "numpad", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 66.23376623376623, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad8", + "key": "8", + "location": "numpad", + "labels": [ + { + "text": "8", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 74.02597402597402, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad9", + "key": "9", + "location": "numpad", + "labels": [ + { + "text": "9", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 66.23376623376623, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad0", + "key": "0", + "location": "numpad", + "labels": [ + { + "text": "0", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 58.44155844155844, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "NumpadDecimal", + "key": ",", + "location": "numpad", + "labels": [ + { + "text": ",", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 74.02597402597402, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "NumpadDecimal", + "key": ".", + "location": "numpad", + "labels": [ + { + "text": ".", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 46.75324675324675, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "NumpadAdd", + "key": "+", + "location": "numpad", + "labels": [ + { + "text": "+", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 46.75324675324675, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "NumpadSubtract", + "key": "-", + "labels": [ + { + "text": "-", + "type": "text" + } + ], + "location": "numpad", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 46.75324675324675, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "NumpadMultiply", + "key": "×", + "location": "numpad", + "labels": [ + { + "text": "×", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 46.75324675324675, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "NumpadDivide", + "key": "÷", + "location": "numpad", + "labels": [ + { + "text": "÷", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 38.961038961038966, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "NumpadDivide", + "key": "/", + "location": "numpad", + "labels": [ + { + "text": "/", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 31.16883116883117, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "IntlBackslash", + "key": "\\", + "labels": [ + { + "text": "\\", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 38.961038961038966, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "NumpadMultiply", + "key": "*", + "location": "numpad", + "labels": [ + { + "text": "*", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 38.961038961038966, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Ampersand", + "key": "&", + "labels": [ + { + "text": "&", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 38.961038961038966, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Equal", + "key": "=", + "labels": [ + { + "text": "=", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 31.16883116883117, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Percent", + "key": "%", + "labels": [ + { + "text": "%", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 31.16883116883117, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Quote", + "key": "\"", + "labels": [ + { + "text": "\"", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 31.16883116883117, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Quote", + "key": "'", + "labels": [ + { + "text": "'", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 23.376623376623375, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "BracketRight", + "key": ")", + "labels": [ + { + "text": ")", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 15.584415584415584, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "BracketLeft", + "key": "(", + "labels": [ + { + "text": "(", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 15.584415584415584, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "BracketLeft", + "key": "[", + "labels": [ + { + "text": "[", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 23.376623376623375, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "BracketRight", + "key": "]", + "labels": [ + { + "text": "]", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 15.584415584415584, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "BracketLeft", + "key": "{", + "labels": [ + { + "text": "{", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 23.376623376623375, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "BracketRight", + "key": "}", + "labels": [ + { + "text": "}", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 0, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Pound", + "key": "£", + "labels": [ + { + "text": "£", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 7.792207792207792, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Yen", + "key": "¥", + "labels": [ + { + "text": "¥", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 0, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Euro", + "key": "€", + "labels": [ + { + "text": "€", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 7.792207792207792, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Dollar", + "key": "$", + "labels": [ + { + "text": "$", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 7.792207792207792, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "At", + "key": "@", + "labels": [ + { + "text": "@", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 7.792207792207792, + "top": 78.26086956521739, + "width": 22.07792207792208, + "height": 21.73913043478261 + }, + "code": "Space", + "key": " ", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 0, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "", + "key": "", + "type": "layout-switch", + "layoutName": "numbersAndSymbols2", + "labels": [ + { + "type": "text", + "text": "§Σ√" + } + ] + } + ] + }, + { + "name": "numbersAndSymbols2", + "dimensions": { + "width": 770, + "height": 230 + }, + "keys": [ + { + "geometry": { + "left": 85.71428571428571, + "top": 0, + "width": 14.285714285714285, + "height": 21.73913043478261 + }, + "code": "Backspace", + "key": "Backspace", + "type": "edit", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 0.5 7 L 7 0.5 L 21.5 0.5 L 21.5 13.5 L 7 13.5 Z M 10 3 L 18 11 M 10 11 L 18 3", + "dimensions": { + "width": 22, + "height": 14 + } + } + } + ], + "longpressAction": "repeat", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 85.71428571428571, + "top": 26.08695652173913, + "width": 14.285714285714285, + "height": 21.73913043478261 + }, + "code": "NumpadEnter", + "key": "Enter", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 21.5 8.5 L 21.5 0.5 L 21.5 8.5 L 5.5 8.5 M 5.5 3.5 L 0.5 8.5 L 5.5 13.5", + "dimensions": { + "width": 22, + "height": 14 + } + } + } + ], + "location": "numpad", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 85.71428571428571, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "ArrowLeft", + "key": "ArrowLeft", + "type": "action", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 6.5 0.5 L 0.5 7 L 6.5 13.5", + "dimensions": { + "width": 7, + "height": 14 + } + } + } + ], + "longpressAction": "repeat", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 93.5064935064935, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "ArrowRight", + "key": "ArrowRight", + "type": "action", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 0.5 0.5 L 6.5 7 L 0.5 13.5", + "dimensions": { + "width": 7, + "height": 14 + } + } + } + ], + "longpressAction": "repeat", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 85.71428571428571, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "ArrowUp", + "key": "ArrowUp", + "type": "action", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 0.5 6.5 L 7 0.5 L 13.5 6.5", + "dimensions": { + "width": 14, + "height": 7 + } + } + } + ], + "longpressAction": "repeat", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 93.5064935064935, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "ArrowDown", + "key": "ArrowDown", + "type": "action", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 0.5 0.5 L 7 6.5 L 13.5 0.5", + "dimensions": { + "width": 14, + "height": 7 + } + } + } + ], + "longpressAction": "repeat", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 0, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "", + "key": "", + "type": "layout-switch", + "layoutName": "default", + "labels": [ + { + "text": "ABC", + "type": "text" + } + ] + }, + { + "geometry": { + "left": 58.44155844155844, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad1", + "key": "1", + "location": "numpad", + "labels": [ + { + "text": "1", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 66.23376623376623, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad2", + "key": "2", + "location": "numpad", + "labels": [ + { + "text": "2", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 74.02597402597402, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad3", + "key": "3", + "location": "numpad", + "labels": [ + { + "text": "3", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 58.44155844155844, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad4", + "key": "4", + "location": "numpad", + "labels": [ + { + "text": "4", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 66.23376623376623, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad5", + "key": "5", + "location": "numpad", + "labels": [ + { + "text": "5", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 74.02597402597402, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad6", + "key": "6", + "location": "numpad", + "labels": [ + { + "text": "6", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 58.44155844155844, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad7", + "key": "7", + "labels": [ + { + "text": "7", + "type": "text" + } + ], + "location": "numpad", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 66.23376623376623, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad8", + "key": "8", + "location": "numpad", + "labels": [ + { + "text": "8", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 74.02597402597402, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad9", + "key": "9", + "location": "numpad", + "labels": [ + { + "text": "9", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 66.23376623376623, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad0", + "key": "0", + "location": "numpad", + "labels": [ + { + "text": "0", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 58.44155844155844, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "NumpadDecimal", + "key": ",", + "location": "numpad", + "labels": [ + { + "text": ",", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 74.02597402597402, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "NumpadDecimal", + "key": ".", + "location": "numpad", + "labels": [ + { + "text": ".", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 46.75324675324675, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Hat", + "key": "^", + "labels": [ + { + "text": "^", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 46.75324675324675, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Cubed", + "key": "³", + "labels": [ + { + "text": "³", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 46.75324675324675, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Diameter", + "key": "⌀", + "labels": [ + { + "text": "⌀", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 46.75324675324675, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Trademark", + "key": "™", + "labels": [ + { + "text": "™", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 38.961038961038966, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "RegisteredTrademark", + "key": "®", + "labels": [ + { + "text": "®", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 31.16883116883117, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Copyright", + "key": "©", + "labels": [ + { + "text": "©", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 38.961038961038966, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Pi", + "key": "π", + "labels": [ + { + "text": "π", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 38.961038961038966, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Degrees", + "key": "°", + "labels": [ + { + "text": "°", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 38.961038961038966, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Squared", + "key": "²", + "labels": [ + { + "text": "²", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 31.16883116883117, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Hash", + "key": "#", + "labels": [ + { + "text": "#", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 31.16883116883117, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Root", + "key": "√", + "labels": [ + { + "text": "√", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 31.16883116883117, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Sum", + "key": "Σ", + "labels": [ + { + "text": "Σ", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 23.376623376623375, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "GreaterThan", + "key": ">", + "labels": [ + { + "text": ">", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 15.584415584415584, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "LessThan", + "key": "<", + "labels": [ + { + "text": "<", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 15.584415584415584, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "LessThanOrEqual", + "key": "≤", + "labels": [ + { + "text": "≤", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 23.376623376623375, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "GreaterThanOrEqual", + "key": "≥", + "labels": [ + { + "text": "≥", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 15.584415584415584, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Backtick", + "key": "`", + "labels": [ + { + "text": "`", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 23.376623376623375, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Tick", + "key": "´", + "labels": [ + { + "text": "´", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 0, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Cent", + "key": "¢", + "labels": [ + { + "text": "¢", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 7.792207792207792, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Promille", + "key": "‰", + "labels": [ + { + "text": "‰", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 0, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Tilde", + "key": "~", + "labels": [ + { + "text": "~", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 7.792207792207792, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Paragraph", + "key": "§", + "labels": [ + { + "text": "§", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 7.792207792207792, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Pipe", + "key": "|", + "labels": [ + { + "text": "|", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 7.792207792207792, + "top": 78.26086956521739, + "width": 22.07792207792208, + "height": 21.73913043478261 + }, + "code": "Space", + "key": " ", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 0, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "", + "key": "", + "type": "layout-switch", + "layoutName": "numbersAndSymbols", + "labels": [ + { + "type": "text", + "text": "123+" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/KeyboardLayouts/Numpad (plusminus).keyboard.json b/KeyboardLayouts/Numpad (plusminus).keyboard.json new file mode 100644 index 0000000..8aca743 --- /dev/null +++ b/KeyboardLayouts/Numpad (plusminus).keyboard.json @@ -0,0 +1,302 @@ +{ + "useIndirectInput": false, + "hasNumPad": true, + "displayName": "Numpad (+/-)", + "localeName": null, + "layouts": + [ + { + "name": "default", + "dimensions": + { + "width": 230, + "height": 230 + }, + "keys": + [ + { + "geometry": + { + "left": 0, + "top": 0, + "width": 21.73913043478261, + "height": 21.73913043478261 + }, + "code": "Numpad1", + "key": "1", + "location": "numpad", + "labels": + [ + { + "type": "text", + "text": "1" + } + ] + }, + { + "geometry": + { + "left": 26.08695652173913, + "top": 0, + "width": 21.73913043478261, + "height": 21.73913043478261 + }, + "code": "Numpad2", + "key": "2", + "location": "numpad", + "labels": + [ + { + "type": "text", + "text": "2" + } + ] + }, + { + "geometry": + { + "left": 52.17391304347826, + "top": 0, + "width": 21.73913043478261, + "height": 21.73913043478261 + }, + "code": "Numpad3", + "key": "3", + "location": "numpad", + "labels": + [ + { + "type": "text", + "text": "3" + } + ] + }, + { + "geometry": + { + "left": 0, + "top": 26.08695652173913, + "width": 21.73913043478261, + "height": 21.73913043478261 + }, + "code": "Numpad4", + "key": "4", + "location": "numpad", + "labels": + [ + { + "type": "text", + "text": "4" + } + ] + }, + { + "geometry": + { + "left": 26.08695652173913, + "top": 26.08695652173913, + "width": 21.73913043478261, + "height": 21.73913043478261 + }, + "code": "Numpad5", + "key": "5", + "labels": + [ + { + "type": "text", + "text": "5" + } + ] + }, + { + "geometry": + { + "left": 52.17391304347826, + "top": 26.08695652173913, + "width": 21.73913043478261, + "height": 21.73913043478261 + }, + "code": "Numpad6", + "key": "6", + "location": "numpad", + "labels": + [ + { + "type": "text", + "text": "6" + } + ] + }, + { + "geometry": + { + "left": 0, + "top": 52.17391304347826, + "width": 21.73913043478261, + "height": 21.73913043478261 + }, + "code": "Numpad7", + "key": "7", + "location": "numpad", + "labels": + [ + { + "type": "text", + "text": "7" + } + ] + }, + { + "geometry": + { + "left": 26.08695652173913, + "top": 52.17391304347826, + "width": 21.73913043478261, + "height": 21.73913043478261 + }, + "code": "Numpad8", + "key": "8", + "location": "numpad", + "labels": + [ + { + "type": "text", + "text": "8" + } + ] + }, + { + "geometry": + { + "left": 52.17391304347826, + "top": 52.17391304347826, + "width": 21.73913043478261, + "height": 21.73913043478261 + }, + "code": "Numpad9", + "key": "9", + "location": "numpad", + "labels": + [ + { + "type": "text", + "text": "9" + } + ] + }, + { + "geometry": + { + "left": 26.08695652173913, + "top": 78.26086956521739, + "width": 21.73913043478261, + "height": 21.73913043478261 + }, + "code": "Numpad0", + "key": "0", + "location": "numpad", + "labels": + [ + { + "type": "text", + "text": "0" + } + ] + }, + { + "geometry": + { + "left": 0, + "top": 78.26086956521739, + "width": 21.73913043478261, + "height": 21.73913043478261 + }, + "code": "PlusMinus", + "key": "PlusMinus", + "type": "edit", + "labels": + [ + { + "type": "text", + "text": "+/-" + } + ] + }, + { + "geometry": + { + "left": 52.17391304347826, + "top": 78.26086956521739, + "width": 21.73913043478261, + "height": 21.73913043478261 + }, + "code": "NumpadDecimal", + "key": ".", + "location": "numpad", + "labels": + [ + { + "type": "text", + "text": "." + } + ] + }, + { + "geometry": + { + "left": 78.26086956521739, + "top": 0, + "width": 21.73913043478261, + "height": 47.82608695652174 + }, + "code": "Backspace", + "key": "Backspace", + "type": "edit", + "labels": + [ + { + "type": "svg", + "svg": + { + "path": "M 0.5 7 L 7 0.5 L 21.5 0.5 L 21.5 13.5 L 7 13.5 Z M 10 3 L 18 11 M 10 11 L 18 3", + "dimensions": + { + "width": 22, + "height": 14 + } + } + } + ], + "longpressAction": "repeat" + }, + { + "geometry": + { + "left": 78.26086956521739, + "top": 52.17391304347826, + "width": 21.73913043478261, + "height": 47.82608695652174 + }, + "code": "NumpadEnter", + "key": "Enter", + "location": "numpad", + "labels": + [ + { + "type": "svg", + "svg": + { + "path": "M 21.5 8.5 L 21.5 0.5 L 21.5 8.5 L 5.5 8.5 M 5.5 3.5 L 0.5 8.5 L 5.5 13.5", + "dimensions": + { + "width": 22, + "height": 14 + } + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/KeyboardLayouts/US - compact.keyboard.json b/KeyboardLayouts/US - compact.keyboard.json new file mode 100644 index 0000000..5f4b727 --- /dev/null +++ b/KeyboardLayouts/US - compact.keyboard.json @@ -0,0 +1,3613 @@ +{ + "useIndirectInput": false, + "hasNumPad": false, + "displayName": "US (Compact)", + "localeName": "en-US", + "layouts": [ + { + "name": "default", + "dimensions": { + "width": 770, + "height": 230 + }, + "keys": [ + { + "geometry": { + "left": 0, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyQ", + "key": "q", + "shiftKey": "Q", + "labels": [ + { + "text": "q", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Q", + "visible": [ + "shift" + ], + "type": "text" + } + ], + "longpressAction": "additionalKeys", + "additionalKeys": [ + { + "geometry": { + "left": 0, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "Digit1", + "key": "1", + "shiftKey": "1", + "labels": [ + { + "text": "1", + "type": "text" + } + ] + }, + { + "geometry": { + "left": 120, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyQ", + "key": "@", + "shiftKey": "@", + "labels": [ + { + "text": "@", + "type": "text" + } + ] + } + ] + }, + { + "geometry": { + "left": 7.792207792207792, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyW", + "key": "w", + "shiftKey": "W", + "labels": [ + { + "text": "w", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "W", + "visible": [ + "shift" + ], + "type": "text" + } + ], + "longpressAction": "additionalKeys", + "additionalKeys": [ + { + "geometry": { + "left": 0, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "Digit2", + "key": "2", + "shiftKey": "2", + "labels": [ + { + "text": "2", + "type": "text" + } + ] + } + ] + }, + { + "geometry": { + "left": 15.584415584415584, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyE", + "key": "e", + "shiftKey": "E", + "labels": [ + { + "text": "e", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "E", + "visible": [ + "shift" + ], + "type": "text" + } + ], + "longpressAction": "additionalKeys", + "additionalKeys": [ + { + "geometry": { + "left": 0, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "Digit3", + "key": "3", + "shiftKey": "3", + "labels": [ + { + "text": "3", + "type": "text" + } + ] + }, + { + "geometry": { + "left": -120, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyE", + "key": "€", + "shiftKey": "€", + "labels": [ + { + "text": "€", + "type": "text" + } + ] + }, + { + "geometry": { + "left": 120, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyE", + "key": "ê", + "shiftKey": "Ê", + "labels": [ + { + "text": "ê", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Ê", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 240, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyE", + "key": "é", + "shiftKey": "É", + "labels": [ + { + "text": "é", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "É", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 360, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyE", + "key": "è", + "shiftKey": "È", + "labels": [ + { + "text": "è", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "È", + "visible": [ + "shift" + ], + "type": "text" + } + ] + } + ] + }, + { + "geometry": { + "left": 23.376623376623375, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyR", + "key": "r", + "shiftKey": "R", + "labels": [ + { + "text": "r", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "R", + "visible": [ + "shift" + ], + "type": "text" + } + ], + "longpressAction": "additionalKeys", + "additionalKeys": [ + { + "geometry": { + "left": 0, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "Digit4", + "key": "4", + "shiftKey": "4", + "labels": [ + { + "text": "4", + "type": "text" + } + ] + } + ] + }, + { + "geometry": { + "left": 31.16883116883117, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyT", + "key": "t", + "shiftKey": "T", + "labels": [ + { + "text": "t", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "T", + "visible": [ + "shift" + ], + "type": "text" + } + ], + "longpressAction": "additionalKeys", + "additionalKeys": [ + { + "geometry": { + "left": 0, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "Digit5", + "key": "5", + "shiftKey": "5", + "labels": [ + { + "text": "5", + "type": "text" + } + ] + } + ] + }, + { + "geometry": { + "left": 38.961038961038966, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyY", + "key": "y", + "shiftKey": "Y", + "labels": [ + { + "text": "y", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Y", + "visible": [ + "shift" + ], + "type": "text" + } + ], + "longpressAction": "additionalKeys", + "additionalKeys": [ + { + "geometry": { + "left": 0, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "Digit6", + "key": "6", + "shiftKey": "6", + "labels": [ + { + "text": "6", + "type": "text" + } + ] + }, + { + "geometry": { + "left": 120, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyY", + "key": "ý", + "shiftKey": "Ý", + "labels": [ + { + "text": "ý", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Ý", + "visible": [ + "shift" + ], + "type": "text" + } + ] + } + ] + }, + { + "geometry": { + "left": 46.75324675324675, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyU", + "key": "u", + "shiftKey": "U", + "labels": [ + { + "text": "u", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "U", + "visible": [ + "shift" + ], + "type": "text" + } + ], + "longpressAction": "additionalKeys", + "additionalKeys": [ + { + "geometry": { + "left": 0, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "Digit7", + "key": "7", + "shiftKey": "7", + "labels": [ + { + "text": "7", + "type": "text" + } + ] + }, + { + "geometry": { + "left": 120, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyU", + "key": "ü", + "shiftKey": "Ü", + "labels": [ + { + "text": "ü", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Ü", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 240, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyU", + "key": "û", + "shiftKey": "Û", + "labels": [ + { + "text": "û", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Û", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 360, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyU", + "key": "ú", + "shiftKey": "Ú", + "labels": [ + { + "text": "ú", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Ú", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 480, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyU", + "key": "ù", + "shiftKey": "Ù", + "labels": [ + { + "text": "ù", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Ù", + "visible": [ + "shift" + ], + "type": "text" + } + ] + } + ] + }, + { + "geometry": { + "left": 54.54545454545454, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyI", + "key": "i", + "shiftKey": "I", + "labels": [ + { + "text": "i", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "I", + "visible": [ + "shift" + ], + "type": "text" + } + ], + "longpressAction": "additionalKeys", + "additionalKeys": [ + { + "geometry": { + "left": 0, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "Digit8", + "key": "8", + "shiftKey": "8", + "labels": [ + { + "text": "8", + "type": "text" + } + ] + }, + { + "geometry": { + "left": 120, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyI", + "key": "î", + "shiftKey": "Î", + "labels": [ + { + "text": "î", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Î", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 240, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyI", + "key": "í", + "shiftKey": "Í", + "labels": [ + { + "text": "í", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Í", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 360, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyI", + "key": "ì", + "shiftKey": "Ì", + "labels": [ + { + "text": "ì", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Ì", + "visible": [ + "shift" + ], + "type": "text" + } + ] + } + ] + }, + { + "geometry": { + "left": 62.33766233766234, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyO", + "key": "o", + "shiftKey": "O", + "labels": [ + { + "text": "o", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "O", + "visible": [ + "shift" + ], + "type": "text" + } + ], + "longpressAction": "additionalKeys", + "additionalKeys": [ + { + "geometry": { + "left": 0, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "Digit9", + "key": "9", + "shiftKey": "9", + "labels": [ + { + "text": "9", + "type": "text" + } + ] + }, + { + "geometry": { + "left": 120, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyO", + "key": "ö", + "shiftKey": "Ö", + "labels": [ + { + "text": "ö", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Ö", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 240, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyO", + "key": "ô", + "shiftKey": "Ô", + "labels": [ + { + "text": "ô", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Ô", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 360, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyO", + "key": "ó", + "shiftKey": "Ó", + "labels": [ + { + "text": "ó", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Ó", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 480, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyO", + "key": "ò", + "shiftKey": "Ò", + "labels": [ + { + "text": "ò", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Ò", + "visible": [ + "shift" + ], + "type": "text" + } + ] + } + ] + }, + { + "geometry": { + "left": 70.12987012987013, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyP", + "key": "p", + "shiftKey": "P", + "labels": [ + { + "text": "p", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "P", + "visible": [ + "shift" + ], + "type": "text" + } + ], + "longpressAction": "additionalKeys", + "additionalKeys": [ + { + "geometry": { + "left": 0, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "Digit0", + "key": "0", + "shiftKey": "0", + "labels": [ + { + "text": "0", + "type": "text" + } + ] + } + ] + }, + { + "geometry": { + "left": 77.92207792207793, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Quote", + "key": "'", + "shiftKey": "\"", + "labels": [ + { + "text": "'", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "\"", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 2.5974025974025974, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyA", + "key": "a", + "shiftKey": "A", + "labels": [ + { + "text": "a", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "A", + "visible": [ + "shift" + ], + "type": "text" + } + ], + "longpressAction": "additionalKeys", + "additionalKeys": [ + { + "geometry": { + "left": 0, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyA", + "key": "ä", + "shiftKey": "Ä", + "labels": [ + { + "text": "ä", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Ä", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 120, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyA", + "key": "â", + "shiftKey": "Â", + "labels": [ + { + "text": "â", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Â", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 240, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyA", + "key": "á", + "shiftKey": "Á", + "labels": [ + { + "text": "á", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Á", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 360, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyA", + "key": "à", + "shiftKey": "À", + "labels": [ + { + "text": "à", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "À", + "visible": [ + "shift" + ], + "type": "text" + } + ] + } + ] + }, + { + "geometry": { + "left": 10.38961038961039, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyS", + "key": "s", + "shiftKey": "S", + "labels": [ + { + "text": "s", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "S", + "visible": [ + "shift" + ], + "type": "text" + } + ], + "longpressAction": "additionalKeys", + "additionalKeys": [ + { + "geometry": { + "left": 0, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyS", + "key": "ß", + "shiftKey": "ß", + "labels": [ + { + "text": "ß", + "type": "text" + } + ] + } + ] + }, + { + "geometry": { + "left": 18.181818181818183, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyD", + "key": "d", + "shiftKey": "D", + "labels": [ + { + "text": "d", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "D", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 25.97402597402597, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyF", + "key": "f", + "shiftKey": "F", + "labels": [ + { + "text": "f", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "F", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 33.76623376623377, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyG", + "key": "g", + "shiftKey": "G", + "labels": [ + { + "text": "g", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "G", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 41.55844155844156, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyH", + "key": "h", + "shiftKey": "H", + "labels": [ + { + "text": "h", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "H", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 49.35064935064935, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyJ", + "key": "j", + "shiftKey": "J", + "labels": [ + { + "text": "j", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "J", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 57.14285714285714, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyK", + "key": "k", + "shiftKey": "K", + "labels": [ + { + "text": "k", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "K", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 64.93506493506493, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyL", + "key": "l", + "shiftKey": "L", + "labels": [ + { + "text": "l", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "L", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 72.72727272727273, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "BracketLeft", + "key": "(", + "shiftKey": "[", + "labels": [ + { + "text": "(", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "[", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 80.51948051948052, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "BracketRight", + "key": ")", + "shiftKey": "]", + "labels": [ + { + "text": ")", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "]", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 7.792207792207792, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyZ", + "key": "z", + "shiftKey": "Z", + "labels": [ + { + "text": "z", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "Z", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 15.584415584415584, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyX", + "key": "x", + "shiftKey": "X", + "labels": [ + { + "text": "x", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "X", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 23.376623376623375, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyC", + "key": "c", + "shiftKey": "C", + "labels": [ + { + "text": "c", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "C", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 31.16883116883117, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyV", + "key": "v", + "shiftKey": "V", + "labels": [ + { + "text": "v", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "V", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 38.961038961038966, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyB", + "key": "b", + "shiftKey": "B", + "labels": [ + { + "text": "b", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "B", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 46.75324675324675, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyN", + "key": "n", + "shiftKey": "N", + "labels": [ + { + "text": "n", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "N", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 54.54545454545454, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "KeyM", + "key": "m", + "shiftKey": "M", + "labels": [ + { + "text": "m", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "M", + "visible": [ + "shift" + ], + "type": "text" + } + ], + "longpressAction": "additionalKeys", + "additionalKeys": [ + { + "geometry": { + "left": 0, + "top": -120, + "width": 100, + "height": 100 + }, + "code": "KeyM", + "key": "µ", + "shiftKey": "µ", + "labels": [ + { + "text": "µ", + "type": "text" + } + ] + } + ] + }, + { + "geometry": { + "left": 62.33766233766234, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Comma", + "key": ",", + "shiftKey": ";", + "labels": [ + { + "text": ",", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": ";", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 70.12987012987013, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Period", + "key": ".", + "shiftKey": ":", + "labels": [ + { + "text": ".", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": ":", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 15.584415584415584, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Minus", + "key": "-", + "shiftKey": "_", + "labels": [ + { + "text": "-", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "_", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 7.792207792207792, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Slash", + "key": "/", + "shiftKey": "\\", + "labels": [ + { + "text": "/", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "\\", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 77.92207792207793, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "IntlBackslash", + "key": "?", + "shiftKey": "!", + "labels": [ + { + "text": "?", + "visible": [ + "default" + ], + "type": "text" + }, + { + "text": "!", + "visible": [ + "shift" + ], + "type": "text" + } + ] + }, + { + "geometry": { + "left": 23.376623376623375, + "top": 78.26086956521739, + "width": 45.45454545454545, + "height": 21.73913043478261 + }, + "code": "Space", + "key": " ", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 85.71428571428571, + "top": 0, + "width": 14.285714285714285, + "height": 21.73913043478261 + }, + "code": "Backspace", + "key": "Backspace", + "type": "edit", + "labels": [ + { + "type": "svg", + "svg": { + "dimensions": { + "width": 22, + "height": 14 + }, + "path": "M 0.5 7 L 7 0.5 L 21.5 0.5 L 21.5 13.5 L 7 13.5 Z M 10 3 L 18 11 M 10 11 L 18 3" + } + } + ], + "longpressAction": "repeat" + }, + { + "geometry": { + "left": 88.31168831168831, + "top": 26.08695652173913, + "width": 11.688311688311687, + "height": 21.73913043478261 + }, + "code": "Enter", + "key": "Enter", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 21.5 8.5 L 21.5 0.5 L 21.5 8.5 L 5.5 8.5 M 5.5 3.5 L 0.5 8.5 L 5.5 13.5", + "dimensions": { + "width": 22, + "height": 14 + } + } + } + ], + "noCapsLock": false, + "ignoreModifiers": true + }, + { + "geometry": { + "left": 0, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "ShiftLeft", + "key": "Shift", + "type": "modifier", + "mode": "sticky", + "location": "left", + "labels": [ + { + "type": "svg", + "svg": { + "dimensions": { + "width": 14, + "height": 14 + }, + "path": "M 3.5 13.5 L 3.5 6.5 L 0.5 6.5 L 7 0.5 L 13.5 6.5 L 10.5 6.5 L 10.5 13.5 Z" + }, + "hidden": [ + "locked" + ] + }, + { + "type": "svg", + "visible": [ + "locked" + ], + "svg": { + "dimensions": { + "width": 14, + "height": 14 + }, + "path": "M 3.5 8.5 L 3.5 6.5 L 0.5 6.5 L 7 0.5 L 13.5 6.5 L 10.5 6.5 L 10.5 8.5 Z M 3.5 13.5 L 3.5 10.5 L 10.5 10.5 L 10.5 13.5 Z" + } + } + ], + "longpressAction": "lock" + }, + { + "geometry": { + "left": 85.71428571428571, + "top": 52.17391304347826, + "width": 14.285714285714285, + "height": 21.73913043478261 + }, + "code": "ShiftRight", + "key": "Shift", + "type": "modifier", + "mode": "sticky", + "location": "right", + "labels": [ + { + "svg": { + "path": "M 3.5 13.5 L 3.5 6.5 L 0.5 6.5 L 7 0.5 L 13.5 6.5 L 10.5 6.5 L 10.5 13.5 Z", + "dimensions": { + "width": 14, + "height": 14 + } + }, + "type": "svg", + "hidden": [ + "locked" + ] + }, + { + "type": "svg", + "visible": [ + "locked" + ], + "position": "", + "svg": { + "dimensions": { + "width": 14, + "height": 14 + }, + "path": "M 3.5 8.5 L 3.5 6.5 L 0.5 6.5 L 7 0.5 L 13.5 6.5 L 10.5 6.5 L 10.5 8.5 Z M 3.5 13.5 L 3.5 10.5 L 10.5 10.5 L 10.5 13.5 Z" + } + } + ], + "longpressAction": "lock" + }, + { + "geometry": { + "left": 70.12987012987013, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "ArrowLeft", + "key": "ArrowLeft", + "type": "action", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 6.5 0.5 L 0.5 7 L 6.5 13.5", + "dimensions": { + "width": 7, + "height": 14 + } + } + } + ], + "longpressAction": "repeat" + }, + { + "geometry": { + "left": 77.92207792207793, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "ArrowRight", + "key": "ArrowRight", + "type": "action", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 0.5 0.5 L 6.5 7 L 0.5 13.5", + "dimensions": { + "width": 7, + "height": 14 + } + } + } + ], + "longpressAction": "repeat" + }, + { + "geometry": { + "left": 85.71428571428571, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "ArrowUp", + "key": "ArrowUp", + "type": "action", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 0.5 6.5 L 7 0.5 L 13.5 6.5", + "dimensions": { + "width": 14, + "height": 7 + } + } + } + ], + "longpressAction": "repeat" + }, + { + "geometry": { + "left": 93.5064935064935, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "ArrowDown", + "key": "ArrowDown", + "type": "action", + "labels": [ + { + "type": "svg", + "svg": { + "dimensions": { + "width": 14, + "height": 7 + }, + "path": "M 0.5 0.5 L 7 6.5 L 13.5 0.5" + } + } + ], + "longpressAction": "repeat" + }, + { + "geometry": { + "left": 0, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "", + "key": "", + "type": "layout-switch", + "layoutName": "numbersAndSymbols", + "labels": [ + { + "text": "123+", + "type": "text" + } + ] + } + ] + }, + { + "name": "numbersAndSymbols", + "dimensions": { + "width": 770, + "height": 230 + }, + "keys": [ + { + "geometry": { + "left": 85.71428571428571, + "top": 0, + "width": 14.285714285714285, + "height": 21.73913043478261 + }, + "code": "Backspace", + "key": "Backspace", + "type": "edit", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 0.5 7 L 7 0.5 L 21.5 0.5 L 21.5 13.5 L 7 13.5 Z M 10 3 L 18 11 M 10 11 L 18 3", + "dimensions": { + "width": 22, + "height": 14 + } + } + } + ], + "longpressAction": "repeat", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 85.71428571428571, + "top": 26.08695652173913, + "width": 14.285714285714285, + "height": 21.73913043478261 + }, + "code": "NumpadEnter", + "key": "Enter", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 21.5 8.5 L 21.5 0.5 L 21.5 8.5 L 5.5 8.5 M 5.5 3.5 L 0.5 8.5 L 5.5 13.5", + "dimensions": { + "width": 22, + "height": 14 + } + } + } + ], + "location": "numpad", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 85.71428571428571, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "ArrowLeft", + "key": "ArrowLeft", + "type": "action", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 6.5 0.5 L 0.5 7 L 6.5 13.5", + "dimensions": { + "width": 7, + "height": 14 + } + } + } + ], + "longpressAction": "repeat", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 93.5064935064935, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "ArrowRight", + "key": "ArrowRight", + "type": "action", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 0.5 0.5 L 6.5 7 L 0.5 13.5", + "dimensions": { + "width": 7, + "height": 14 + } + } + } + ], + "longpressAction": "repeat", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 85.71428571428571, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "ArrowUp", + "key": "ArrowUp", + "type": "action", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 0.5 6.5 L 7 0.5 L 13.5 6.5", + "dimensions": { + "width": 14, + "height": 7 + } + } + } + ], + "longpressAction": "repeat", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 93.5064935064935, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "ArrowDown", + "key": "ArrowDown", + "type": "action", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 0.5 0.5 L 7 6.5 L 13.5 0.5", + "dimensions": { + "width": 14, + "height": 7 + } + } + } + ], + "longpressAction": "repeat", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 0, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "", + "key": "", + "type": "layout-switch", + "layoutName": "default", + "labels": [ + { + "text": "ABC", + "type": "text" + } + ] + }, + { + "geometry": { + "left": 58.44155844155844, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad1", + "key": "1", + "location": "numpad", + "labels": [ + { + "text": "1", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 66.23376623376623, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad2", + "key": "2", + "location": "numpad", + "labels": [ + { + "text": "2", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 74.02597402597402, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad3", + "key": "3", + "location": "numpad", + "labels": [ + { + "text": "3", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 58.44155844155844, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad4", + "key": "4", + "location": "numpad", + "labels": [ + { + "text": "4", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 66.23376623376623, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad5", + "key": "5", + "location": "numpad", + "labels": [ + { + "text": "5", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 74.02597402597402, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad6", + "key": "6", + "location": "numpad", + "labels": [ + { + "text": "6", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 58.44155844155844, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad7", + "key": "7", + "labels": [ + { + "text": "7", + "type": "text" + } + ], + "location": "numpad", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 66.23376623376623, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad8", + "key": "8", + "location": "numpad", + "labels": [ + { + "text": "8", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 74.02597402597402, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad9", + "key": "9", + "location": "numpad", + "labels": [ + { + "text": "9", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 66.23376623376623, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad0", + "key": "0", + "location": "numpad", + "labels": [ + { + "text": "0", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 58.44155844155844, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "NumpadDecimal", + "key": ",", + "location": "numpad", + "labels": [ + { + "text": ",", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 74.02597402597402, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "NumpadDecimal", + "key": ".", + "location": "numpad", + "labels": [ + { + "text": ".", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 46.75324675324675, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "NumpadAdd", + "key": "+", + "location": "numpad", + "labels": [ + { + "text": "+", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 46.75324675324675, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "NumpadSubtract", + "key": "-", + "labels": [ + { + "text": "-", + "type": "text" + } + ], + "location": "numpad", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 46.75324675324675, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "NumpadMultiply", + "key": "×", + "location": "numpad", + "labels": [ + { + "text": "×", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 46.75324675324675, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "NumpadDivide", + "key": "÷", + "location": "numpad", + "labels": [ + { + "text": "÷", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 38.961038961038966, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "NumpadDivide", + "key": "/", + "location": "numpad", + "labels": [ + { + "text": "/", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 31.16883116883117, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "IntlBackslash", + "key": "\\", + "labels": [ + { + "text": "\\", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 38.961038961038966, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "NumpadMultiply", + "key": "*", + "location": "numpad", + "labels": [ + { + "text": "*", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 38.961038961038966, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Ampersand", + "key": "&", + "labels": [ + { + "text": "&", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 38.961038961038966, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Equal", + "key": "=", + "labels": [ + { + "text": "=", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 31.16883116883117, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Percent", + "key": "%", + "labels": [ + { + "text": "%", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 31.16883116883117, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Quote", + "key": "\"", + "labels": [ + { + "text": "\"", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 31.16883116883117, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Quote", + "key": "'", + "labels": [ + { + "text": "'", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 23.376623376623375, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "BracketRight", + "key": ")", + "labels": [ + { + "text": ")", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 15.584415584415584, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "BracketLeft", + "key": "(", + "labels": [ + { + "text": "(", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 15.584415584415584, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "BracketLeft", + "key": "[", + "labels": [ + { + "text": "[", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 23.376623376623375, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "BracketRight", + "key": "]", + "labels": [ + { + "text": "]", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 15.584415584415584, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "BracketLeft", + "key": "{", + "labels": [ + { + "text": "{", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 23.376623376623375, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "BracketRight", + "key": "}", + "labels": [ + { + "text": "}", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 0, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Pound", + "key": "£", + "labels": [ + { + "text": "£", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 7.792207792207792, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Yen", + "key": "¥", + "labels": [ + { + "text": "¥", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 0, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Euro", + "key": "€", + "labels": [ + { + "text": "€", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 7.792207792207792, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Dollar", + "key": "$", + "labels": [ + { + "text": "$", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 7.792207792207792, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "At", + "key": "@", + "labels": [ + { + "text": "@", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 7.792207792207792, + "top": 78.26086956521739, + "width": 22.07792207792208, + "height": 21.73913043478261 + }, + "code": "Space", + "key": " ", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 0, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "", + "key": "", + "type": "layout-switch", + "layoutName": "numbersAndSymbols2", + "labels": [ + { + "type": "text", + "text": "§Σ√" + } + ] + } + ] + }, + { + "name": "numbersAndSymbols2", + "dimensions": { + "width": 770, + "height": 230 + }, + "keys": [ + { + "geometry": { + "left": 85.71428571428571, + "top": 0, + "width": 14.285714285714285, + "height": 21.73913043478261 + }, + "code": "Backspace", + "key": "Backspace", + "type": "edit", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 0.5 7 L 7 0.5 L 21.5 0.5 L 21.5 13.5 L 7 13.5 Z M 10 3 L 18 11 M 10 11 L 18 3", + "dimensions": { + "width": 22, + "height": 14 + } + } + } + ], + "longpressAction": "repeat", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 85.71428571428571, + "top": 26.08695652173913, + "width": 14.285714285714285, + "height": 21.73913043478261 + }, + "code": "NumpadEnter", + "key": "Enter", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 21.5 8.5 L 21.5 0.5 L 21.5 8.5 L 5.5 8.5 M 5.5 3.5 L 0.5 8.5 L 5.5 13.5", + "dimensions": { + "width": 22, + "height": 14 + } + } + } + ], + "location": "numpad", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 85.71428571428571, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "ArrowLeft", + "key": "ArrowLeft", + "type": "action", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 6.5 0.5 L 0.5 7 L 6.5 13.5", + "dimensions": { + "width": 7, + "height": 14 + } + } + } + ], + "longpressAction": "repeat", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 93.5064935064935, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "ArrowRight", + "key": "ArrowRight", + "type": "action", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 0.5 0.5 L 6.5 7 L 0.5 13.5", + "dimensions": { + "width": 7, + "height": 14 + } + } + } + ], + "longpressAction": "repeat", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 85.71428571428571, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "ArrowUp", + "key": "ArrowUp", + "type": "action", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 0.5 6.5 L 7 0.5 L 13.5 6.5", + "dimensions": { + "width": 14, + "height": 7 + } + } + } + ], + "longpressAction": "repeat", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 93.5064935064935, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "ArrowDown", + "key": "ArrowDown", + "type": "action", + "labels": [ + { + "type": "svg", + "svg": { + "path": "M 0.5 0.5 L 7 6.5 L 13.5 0.5", + "dimensions": { + "width": 14, + "height": 7 + } + } + } + ], + "longpressAction": "repeat", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 0, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "", + "key": "", + "type": "layout-switch", + "layoutName": "default", + "labels": [ + { + "text": "ABC", + "type": "text" + } + ] + }, + { + "geometry": { + "left": 58.44155844155844, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad1", + "key": "1", + "location": "numpad", + "labels": [ + { + "text": "1", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 66.23376623376623, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad2", + "key": "2", + "location": "numpad", + "labels": [ + { + "text": "2", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 74.02597402597402, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad3", + "key": "3", + "location": "numpad", + "labels": [ + { + "text": "3", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 58.44155844155844, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad4", + "key": "4", + "location": "numpad", + "labels": [ + { + "text": "4", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 66.23376623376623, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad5", + "key": "5", + "location": "numpad", + "labels": [ + { + "text": "5", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 74.02597402597402, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad6", + "key": "6", + "location": "numpad", + "labels": [ + { + "text": "6", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 58.44155844155844, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad7", + "key": "7", + "labels": [ + { + "text": "7", + "type": "text" + } + ], + "location": "numpad", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 66.23376623376623, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad8", + "key": "8", + "location": "numpad", + "labels": [ + { + "text": "8", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 74.02597402597402, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad9", + "key": "9", + "location": "numpad", + "labels": [ + { + "text": "9", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 66.23376623376623, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Numpad0", + "key": "0", + "location": "numpad", + "labels": [ + { + "text": "0", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 58.44155844155844, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "NumpadDecimal", + "key": ",", + "location": "numpad", + "labels": [ + { + "text": ",", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 74.02597402597402, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "NumpadDecimal", + "key": ".", + "location": "numpad", + "labels": [ + { + "text": ".", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 46.75324675324675, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Hat", + "key": "^", + "labels": [ + { + "text": "^", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 46.75324675324675, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Cubed", + "key": "³", + "labels": [ + { + "text": "³", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 46.75324675324675, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Diameter", + "key": "⌀", + "labels": [ + { + "text": "⌀", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 46.75324675324675, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Trademark", + "key": "™", + "labels": [ + { + "text": "™", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 38.961038961038966, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "RegisteredTrademark", + "key": "®", + "labels": [ + { + "text": "®", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 31.16883116883117, + "top": 78.26086956521739, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Copyright", + "key": "©", + "labels": [ + { + "text": "©", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 38.961038961038966, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Pi", + "key": "π", + "labels": [ + { + "text": "π", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 38.961038961038966, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Degrees", + "key": "°", + "labels": [ + { + "text": "°", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 38.961038961038966, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Squared", + "key": "²", + "labels": [ + { + "text": "²", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 31.16883116883117, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Hash", + "key": "#", + "labels": [ + { + "text": "#", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 31.16883116883117, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Root", + "key": "√", + "labels": [ + { + "text": "√", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 31.16883116883117, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Sum", + "key": "Σ", + "labels": [ + { + "text": "Σ", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 23.376623376623375, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "GreaterThan", + "key": ">", + "labels": [ + { + "text": ">", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 15.584415584415584, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "LessThan", + "key": "<", + "labels": [ + { + "text": "<", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 15.584415584415584, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "LessThanOrEqual", + "key": "≤", + "labels": [ + { + "text": "≤", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 23.376623376623375, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "GreaterThanOrEqual", + "key": "≥", + "labels": [ + { + "text": "≥", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 15.584415584415584, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Backtick", + "key": "`", + "labels": [ + { + "text": "`", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 23.376623376623375, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Tick", + "key": "´", + "labels": [ + { + "text": "´", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 0, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Cent", + "key": "¢", + "labels": [ + { + "text": "¢", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 7.792207792207792, + "top": 0, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Promille", + "key": "‰", + "labels": [ + { + "text": "‰", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 0, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Tilde", + "key": "~", + "labels": [ + { + "text": "~", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 7.792207792207792, + "top": 26.08695652173913, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Paragraph", + "key": "§", + "labels": [ + { + "text": "§", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 7.792207792207792, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "Pipe", + "key": "|", + "labels": [ + { + "text": "|", + "type": "text" + } + ], + "ignoreModifiers": true + }, + { + "geometry": { + "left": 7.792207792207792, + "top": 78.26086956521739, + "width": 22.07792207792208, + "height": 21.73913043478261 + }, + "code": "Space", + "key": " ", + "ignoreModifiers": true + }, + { + "geometry": { + "left": 0, + "top": 52.17391304347826, + "width": 6.493506493506493, + "height": 21.73913043478261 + }, + "code": "", + "key": "", + "type": "layout-switch", + "layoutName": "numbersAndSymbols", + "labels": [ + { + "type": "text", + "text": "123+" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/Localization/de.localization b/Localization/de.localization new file mode 100644 index 0000000..76aaffb --- /dev/null +++ b/Localization/de.localization @@ -0,0 +1,7 @@ +{ + "$schema": "./../../Packages/Beckhoff.TwinCAT.HMI.Framework.14.3.360/runtimes/native1.12-tchmi/Schema/LocalizationDescription.Schema.json", + "locale": "de", + "localizedText": { + "Language": "Deutsch" + } +} \ No newline at end of file diff --git a/Localization/en.localization b/Localization/en.localization new file mode 100644 index 0000000..8115be4 --- /dev/null +++ b/Localization/en.localization @@ -0,0 +1,7 @@ +{ + "$schema": "./../../Packages/Beckhoff.TwinCAT.HMI.Framework.14.3.360/runtimes/native1.12-tchmi/Schema/LocalizationDescription.Schema.json", + "locale": "en", + "localizedText": { + "Language": "English" + } +} \ No newline at end of file diff --git a/Properties/Default.tpl b/Properties/Default.tpl new file mode 100644 index 0000000..cdfceb6 --- /dev/null +++ b/Properties/Default.tpl @@ -0,0 +1,82 @@ +-- Designer -- + + + + + {{TITLE}} + + + + {{GLOBAL_JS_INCLUDES}} + + + {{VIEWLEVEL}} + + +-- /Designer -- + +-- LiveView_and_Build -- + + + + + + {{TITLE}} + + + + + + + {{GLOBAL_JS_INCLUDES}} + + + + + {{VIEWLEVEL}} + + +-- /LiveView_and_Build -- \ No newline at end of file diff --git a/Properties/tchmi.framework.Schema.json b/Properties/tchmi.framework.Schema.json new file mode 100644 index 0000000..9e8c88b --- /dev/null +++ b/Properties/tchmi.framework.Schema.json @@ -0,0 +1,13486 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema", + "definitions": { + "AccessConfigBase": { + "title": "Access", + "type": "object", + "engineeringColumns": [ + "accessright", + "group", + "permission" + ], + "propertiesMeta": [ + { + "name": "accessright", + "displayName": "Accessright", + "category": "General", + "displayPriority": 10, + "description": "Right which this rule defines." + }, + { + "name": "group", + "displayName": "Group", + "category": "General", + "displayPriority": 10, + "description": "Group to which this access right is given." + }, + { + "name": "permission", + "displayName": "Permission", + "category": "General", + "displayPriority": 10, + "description": "Permission for this access rule. \nAllow of one group overrides Deny/Inherit of another group. \nDeny will result in deny if we have no Allow of another group. \nInherit will ask parent control when we got no Allow/Deny. If the parent does not define something there will be a specified default." + } + ], + "properties": { + "accessright": { + "type": "string" + }, + "group": { + "type": "string", + "minLength": 1 + }, + "permission": { + "type": "string", + "enum": [ + "Allow", + "Deny", + "Inherit" + ] + } + }, + "additionalProperties": false, + "required": [ + "accessright", + "group", + "permission" + ] + }, + "AccessConfig": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/definitions/AccessConfigBase" + }, + { + "properties": { + "accessright": { + "anyOf": [ + { + "type": "string", + "enum": [ + "operate", + "observe" + ] + }, + { + "type": "string", + "minLength": 1 + } + ], + "default": "operate" + } + } + } + ] + } + }, + "BorderRadius": { + "type": "object", + "engineeringColumns": [ + "topLeft", + "topRight", + "bottomRight", + "bottomLeft" + ], + "propertiesMeta": [ + { + "name": "topLeft", + "category": "general", + "displayName": "Top Left", + "displayPriority": 10, + "description": "Sets the top left corner radius of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "topLeftUnit", + "category": "general", + "refTo": "topLeft", + "displayName": "Top Left Unit", + "displayPriority": 10, + "description": "Sets the top left corner radius unit of the element.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "topRight", + "category": "general", + "displayName": "Top Right", + "displayPriority": 10, + "description": "Sets the top right corner radius of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "topRightUnit", + "category": "general", + "refTo": "topRight", + "displayName": "Top Right Unit", + "displayPriority": 10, + "description": "Sets the top right corner radius unit of the element.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "bottomRight", + "category": "general", + "displayName": "Bottom Right", + "displayPriority": 10, + "description": "Sets the bottom right corner radius of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "bottomRightUnit", + "category": "general", + "refTo": "bottomRight", + "displayName": "Bottom Right Unit", + "displayPriority": 10, + "description": "Sets the bottom right corner radius unit of the element.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "bottomLeft", + "category": "general", + "displayName": "Bottom Left", + "displayPriority": 10, + "description": "Sets the bottom left corner radius of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "bottomLeftUnit", + "category": "general", + "refTo": "bottomLeft", + "displayName": "Bottom Left Unit", + "displayPriority": 10, + "description": "Sets the bottom left corner radius unit of the element.", + "defaultValue": null, + "defaultValueInternal": "px" + } + ], + "properties": { + "topLeft": { + "allOf": [ + { + "$ref": "#/definitions/PositiveNumber" + }, + { + "$ref": "#/definitions/MeasurementValue" + } + ] + }, + "topLeftUnit": { + "$ref": "#/definitions/MeasurementUnit" + }, + "topRight": { + "allOf": [ + { + "$ref": "#/definitions/PositiveNumber" + }, + { + "$ref": "#/definitions/MeasurementValue" + } + ] + }, + "topRightUnit": { + "$ref": "#/definitions/MeasurementUnit" + }, + "bottomRight": { + "allOf": [ + { + "$ref": "#/definitions/PositiveNumber" + }, + { + "$ref": "#/definitions/MeasurementValue" + } + ] + }, + "bottomRightUnit": { + "$ref": "#/definitions/MeasurementUnit" + }, + "bottomLeft": { + "allOf": [ + { + "$ref": "#/definitions/PositiveNumber" + }, + { + "$ref": "#/definitions/MeasurementValue" + } + ] + }, + "bottomLeftUnit": { + "$ref": "#/definitions/MeasurementUnit" + } + }, + "additionalProperties": false, + "required": [ + "topLeft", + "topRight", + "bottomRight", + "bottomLeft" + ] + }, + "BorderStyle": { + "definitions": { + "style": { + "type": "string", + "enum": [ + "Solid", + "Dashed", + "Dotted", + "None" + ], + "default": "Solid" + } + }, + "type": "object", + "engineeringColumns": [ + "left", + "top", + "right", + "bottom" + ], + "properties": { + "left": { + "$ref": "#/definitions/BorderStyle/definitions/style" + }, + "top": { + "$ref": "#/definitions/BorderStyle/definitions/style" + }, + "right": { + "$ref": "#/definitions/BorderStyle/definitions/style" + }, + "bottom": { + "$ref": "#/definitions/BorderStyle/definitions/style" + } + }, + "additionalProperties": false, + "required": [ + "left", + "top", + "right", + "bottom" + ] + }, + "BorderWidth": { + "type": "object", + "engineeringColumns": [ + "left", + "top", + "right", + "bottom" + ], + "propertiesMeta": [ + { + "name": "left", + "category": "general", + "displayName": "Left", + "displayPriority": 10, + "description": "Sets the left border width of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "leftUnit", + "category": "general", + "refTo": "left", + "displayName": "Left Unit", + "displayPriority": 10, + "description": "Sets the left border width unit of the element.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "top", + "category": "general", + "displayName": "Top", + "displayPriority": 10, + "description": "Sets the top border width of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "topUnit", + "category": "general", + "refTo": "top", + "displayName": "Top Unit", + "displayPriority": 10, + "description": "Sets the top border width unit of the element.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "right", + "category": "general", + "displayName": "Right", + "displayPriority": 10, + "description": "Sets the right border width of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "rightUnit", + "category": "general", + "refTo": "right", + "displayName": "Right Unit", + "displayPriority": 10, + "description": "Sets the right border width unit of the element.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "bottom", + "category": "general", + "displayName": "Bottom", + "displayPriority": 10, + "description": "Sets the bottom border width of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "bottomUnit", + "category": "general", + "refTo": "bottom", + "displayName": "Bottom Unit", + "displayPriority": 10, + "description": "Sets the bottom border width unit of the element.", + "defaultValue": null, + "defaultValueInternal": "px" + } + ], + "properties": { + "left": { + "allOf": [ + { + "$ref": "#/definitions/PositiveNumber" + }, + { + "$ref": "#/definitions/MeasurementValue" + } + ] + }, + "leftUnit": { + "$ref": "#/definitions/PixelUnit" + }, + "top": { + "allOf": [ + { + "$ref": "#/definitions/PositiveNumber" + }, + { + "$ref": "#/definitions/MeasurementValue" + } + ] + }, + "topUnit": { + "$ref": "#/definitions/PixelUnit" + }, + "right": { + "allOf": [ + { + "$ref": "#/definitions/PositiveNumber" + }, + { + "$ref": "#/definitions/MeasurementValue" + } + ] + }, + "rightUnit": { + "$ref": "#/definitions/PixelUnit" + }, + "bottom": { + "allOf": [ + { + "$ref": "#/definitions/PositiveNumber" + }, + { + "$ref": "#/definitions/MeasurementValue" + } + ] + }, + "bottomUnit": { + "$ref": "#/definitions/PixelUnit" + } + }, + "additionalProperties": false, + "required": [ + "left", + "top", + "right", + "bottom" + ] + }, + "BoxShadowList": { + "type": "array", + "items": { + "title": "BoxShadow definition", + "type": "object", + "engineeringColumns": [ + "color", + "offsetX", + "offsetY" + ], + "propertiesMeta": [ + { + "name": "color", + "category": "Colors", + "displayName": "Color", + "displayPriority": 10, + "description": "Color of this Box Shadow", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "offsetX", + "category": "General", + "displayName": "Offset X", + "displayPriority": 10, + "description": "The Shadow Offset.", + "defaultValue": null, + "defaultValueInternal": 0 + }, + { + "name": "offsetXUnit", + "refTo": "offsetX", + "category": "General", + "displayName": "Offset X Unit", + "displayPriority": 10, + "description": "The Shadow Offset.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "offsetY", + "category": "General", + "displayName": "Offset Y", + "displayPriority": 10, + "description": "The Shadow Offset.", + "defaultValue": null, + "defaultValueInternal": 0 + }, + { + "name": "offsetYUnit", + "refTo": "offsetY", + "category": "General", + "displayName": "Offset Y Unit", + "displayPriority": 10, + "description": "The Shadow Offset.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "inset", + "category": "General", + "displayName": "Inset", + "displayPriority": 10, + "description": "Inset shadows are drawn inside the border (even transparent ones), above the background, but below content.", + "defaultValue": null, + "defaultValueInternal": false + }, + { + "name": "blur", + "category": "General", + "displayName": "Blur", + "displayPriority": 10, + "description": "The larger this value, the bigger the blur, so the shadow becomes bigger and lighter.", + "defaultValue": null, + "defaultValueInternal": 0 + }, + { + "name": "blurUnit", + "refTo": "blur", + "category": "General", + "displayName": "Blur Unit", + "displayPriority": 10, + "description": "The larger this value, the bigger the blur, so the shadow becomes bigger and lighter.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "spread", + "category": "General", + "displayName": "Spread", + "displayPriority": 10, + "description": "Positive values will cause the shadow to expand and grow bigger, negative values will cause the shadow to shrink.", + "defaultValue": null, + "defaultValueInternal": 0 + }, + { + "name": "spreadUnit", + "refTo": "spread", + "category": "General", + "displayName": "Spread Unit", + "displayPriority": 10, + "description": "Positive values will cause the shadow to expand and grow bigger, negative values will cause the shadow to shrink.", + "defaultValue": null, + "defaultValueInternal": "px" + } + ], + "properties": { + "color": { + "$ref": "#/definitions/SolidColor" + }, + "offsetX": { + "$ref": "#/definitions/MeasurementValue" + }, + "offsetXUnit": { + "$ref": "#/definitions/PixelUnit" + }, + "offsetY": { + "$ref": "#/definitions/MeasurementValue" + }, + "offsetYUnit": { + "$ref": "#/definitions/PixelUnit" + }, + "inset": { + "type": "boolean" + }, + "blur": { + "$ref": "#/definitions/MeasurementValue" + }, + "blurUnit": { + "$ref": "#/definitions/PixelUnit" + }, + "spread": { + "$ref": "#/definitions/MeasurementValue" + }, + "spreadUnit": { + "$ref": "#/definitions/PixelUnit" + } + }, + "additionalProperties": false + }, + "minItems": 0 + }, + "ClassNameList": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 0 + }, + "Color": { + "anyOf": [ + { + "$ref": "#/definitions/SolidColor" + }, + { + "$ref": "#/definitions/LinearGradientColor" + }, + { + "type": "null" + } + ], + "default": null + }, + "ContentPath": { + "type": "string", + "minLength": 1 + }, + "ContextReference": { + "type": "object" + }, + "Control": { + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiControl", + "frameworkControlNamespace": "TcHmi.Controls.System" + }, + "ControlAccessRight": { + "type": "object", + "description": "An access right which is checked by controls. In the Schema a defaultValue of true mean access is granted, false is denied, null is ask parent.", + "properties": { + "name": { + "type": "string", + "minLength": 1, + "description": "Name of the access definition in the HTML." + }, + "displayName": { + "type": "string", + "description": "Name which should be presented the user." + }, + "visible": { + "type": "boolean", + "description": "Determine if an access definition is shown to the user." + }, + "description": { + "type": "string", + "description": "A long description of this access definition." + }, + "defaultValueInternal": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Defines the default of this control access right. This will be used if the check for this access right does not return a result. true mean access is granted, false is denied, null is ask parent." + } + }, + "additionalProperties": false, + "required": [ + "name", + "displayName", + "visible", + "defaultValueInternal" + ] + }, + "ControlAccessRightName": { + "type": "string" + }, + "ControlNamespace": { + "type": "string", + "minLength": 1 + }, + "ControlPropertyName": { + "type": "string" + }, + "ControlType": { + "type": "string", + "minLength": 1 + }, + "DOMEvent": { + "type": "object", + "frameworkInstanceOf": "Event" + }, + "DOMMouseEvent": { + "type": "object", + "frameworkInstanceOf": "MouseEvent" + }, + "DOMErrorEvent": { + "type": "object", + "frameworkInstanceOf": "ErrorEvent" + }, + "DOMInputEvent": { + "type": "object", + "frameworkInstanceOf": "InputEvent" + }, + "DOMFocusEvent": { + "type": "object", + "frameworkInstanceOf": "FocusEvent" + }, + "DOMPointerEvent": { + "type": "object", + "frameworkInstanceOf": "PointerEvent" + }, + "DOMTouchEvent": { + "type": "object", + "frameworkInstanceOf": "TouchEvent" + }, + "DOMWheelEvent": { + "type": "object", + "frameworkInstanceOf": "WheelEvent" + }, + "Empty": { + "type": "string", + "enum": [ + "" + ] + }, + "EnumMapping": { + "type": "object", + "patternProperties": { + "^-?\\d+$": { + "type": "string" + } + } + }, + "FilterStrategy": { + "title": "Filter Strategy", + "description": "The strategy to use while filtering a tree structure.", + "type": "string", + "enum": [ + "DepthFirst", + "BreadthFirst" + ] + }, + "FontFamily": { + "type": "string" + }, + "FontSizeUnit": { + "type": "string", + "enum": [ + "px", + "%" + ], + "default": "px" + }, + "FontStyle": { + "type": "string", + "enum": [ + "Normal", + "Italic", + "Oblique", + "Auto" + ], + "default": "Normal" + }, + "FontWeight": { + "type": "string", + "enum": [ + "Normal", + "Bold", + "Auto" + ], + "default": "Normal" + }, + "Fraction": { + "type": "number", + "minimum": 0, + "maximum": 1 + }, + "Function": { + "type": "object", + "definitions": { + "value": { + "anyOf": [ + { + "title": "StaticValue", + "type": "object", + "properties": { + "objectType": { + "description": "An enum defining the variable type.", + "type": "string", + "enum": [ + "StaticValue" + ] + }, + "value": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "array" + }, + { + "type": "object" + } + ] + }, + "valueType": { + "type": "string", + "minLength": 6, + "pattern": "^tchmi:", + "description": "Information about the used type as a tchmi reference name for re-edit scenarios." + } + }, + "required": [ + "objectType", + "value" + ], + "additionalProperties": false + }, + { + "title": "Symbol", + "type": "object", + "properties": { + "objectType": { + "description": "An enum defining the variable type.", + "type": "string", + "enum": [ + "Symbol" + ] + }, + "symbolExpression": { + "$ref": "#/definitions/Function/definitions/symbolExpression" + } + }, + "required": [ + "objectType", + "symbolExpression" + ], + "additionalProperties": false + }, + { + "title": "ControlApiFunction", + "type": "object", + "description": "Defines an API of the control.", + "properties": { + "objectType": { + "description": "An enum defining the variable type.", + "type": "string", + "enum": [ + "ControlApiFunction" + ] + }, + "control": { + "type": "string" + }, + "fn": { + "type": "string" + }, + "valueType": { + "type": "string" + } + }, + "required": [ + "objectType", + "control", + "fn", + "valueType" + ], + "additionalProperties": false + }, + { + "title": "EventDataObject", + "type": "object", + "properties": { + "objectType": { + "description": "An enum defining the variable type.", + "type": "string", + "enum": [ + "EventDataObject" + ] + }, + "propertyPath": { + "type": "string" + } + }, + "required": [ + "objectType", + "propertyPath" + ], + "additionalProperties": false + } + ] + }, + "symbolExpression": { + "title": "SymbolExpression", + "type": "string", + "pattern": "^%(s|i|l|pp|tp|f|ctrl|ctx|tr|t)%.+%\\/\\1%$" + } + }, + "properties": { + "objectType": { + "type": "string", + "enum": [ + "Function" + ] + }, + "fn": { + "type": "string" + }, + "active": { + "type": "boolean", + "description": "Should function be active?", + "default": true + }, + "fnParams": { + "type": "array", + "items": { + "$ref": "#/definitions/Function/definitions/value" + } + } + }, + "additionalProperties": false, + "required": [ + "objectType", + "fn", + "fnParams" + ] + }, + "FunctionList": { + "type": "array", + "items": { + "$ref": "#/definitions/Function" + } + }, + "HorizontalAlignment": { + "type": "string", + "enum": [ + "Left", + "Center", + "Right" + ] + }, + "HTMLElement": { + "type": "object", + "frameworkInstanceOf": "HTMLElement" + }, + "Id": { + "type": "string", + "minLength": 1 + }, + "Inputmode": { + "description": "Defines which keyboard layout should be loaded in the system keyboard when interacting. The exact layout file is defined in the project. \nThe most common one are: 'numeric', 'decimal', 'text'. Own project keywords are possible. \n'skip' ignores a focusIn, 'none' closes a keyboard on focusIn.", + "anyOf": [ + { + "type": "string", + "enum": [ + "text", + "numeric", + "decimal", + "skip", + "none" + ], + "description": "'skip' ignores a focusIn, 'none' closes a keyboard on focusIn." + }, + { + "type": "string", + "description": "Project defined input mode" + } + ], + "default": "text" + }, + "Interval": { + "type": "string", + "frameworkMetaType": "IntervalName" + }, + "LinearGradientColor": { + "type": "object", + "propertiesMeta": [ + { + "name": "angle", + "displayName": "Angle", + "category": "General", + "displayPriority": 10, + "description": "Angle this Gradient is defined" + } + ], + "properties": { + "angle": { + "type": "number" + }, + "stopPoints": { + "type": "array", + "items": { + "$ref": "#/definitions/StopPoint" + }, + "minItems": 2 + } + }, + "default": { + "angle": 0, + "stopPoints": [ + { + "color": "rgba(0, 0, 0, 1)", + "stop": "0%" + }, + { + "color": "rgba(255, 255, 255, 1)", + "stop": "100%" + } + ] + }, + "additionalProperties": false, + "required": [ + "angle", + "stopPoints" + ] + }, + "Locale": { + "default": "en", + "description": "(Deprecated, use ProjectLocale from general) A list of locales for which we have a localization file in the project.", + "type": "string" + }, + "MeasurementUnit": { + "type": "string", + "enum": [ + "px", + "%" + ], + "default": "px" + }, + "MeasurementUnitOrFactor": { + "type": "string", + "enum": [ + "px", + "%", + "factor" + ], + "default": "px", + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.System.TcHmiGrid.MeasurementUnitOrFactor" + }, + "MeasurementValue": { + "type": "number" + }, + "MultipleRecipeReferences": { + "description": "Refers to one or more recipe types of the server.", + "type": "array", + "items": { + "$ref": "#/definitions/RecipeReference" + } + }, + "MultipleRecipeTypeReferences": { + "description": "Refers to one or more recipe types of the server.", + "type": "array", + "items": { + "$ref": "#/definitions/RecipeTypeReference" + } + }, + "Padding": { + "type": "object", + "engineeringColumns": [ + "left", + "top", + "right", + "bottom" + ], + "propertiesMeta": [ + { + "name": "left", + "category": "general", + "displayName": "Left", + "displayPriority": 10, + "description": "Sets the left padding of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "leftUnit", + "category": "general", + "refTo": "left", + "displayName": "Left Unit", + "displayPriority": 10, + "description": "Sets the left padding unit of the element.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "top", + "category": "general", + "displayName": "Top", + "displayPriority": 10, + "description": "Sets the top padding of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "topUnit", + "category": "general", + "refTo": "top", + "displayName": "Top Unit", + "displayPriority": 10, + "description": "Sets the top padding unit of the element.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "right", + "category": "general", + "displayName": "Right", + "displayPriority": 10, + "description": "Sets the right padding of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "rightUnit", + "category": "general", + "refTo": "right", + "displayName": "Right Unit", + "displayPriority": 10, + "description": "Sets the right padding unit of the element.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "bottom", + "category": "general", + "displayName": "Bottom", + "displayPriority": 10, + "description": "Sets the bottom padding of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "bottomUnit", + "category": "general", + "refTo": "bottom", + "displayName": "Bottom Unit", + "displayPriority": 10, + "description": "Sets the bottom padding unit of the element.", + "defaultValue": null, + "defaultValueInternal": "px" + } + ], + "properties": { + "left": { + "allOf": [ + { + "$ref": "#/definitions/PositiveNumber" + }, + { + "$ref": "#/definitions/MeasurementValue" + } + ] + }, + "leftUnit": { + "$ref": "#/definitions/MeasurementUnit" + }, + "top": { + "allOf": [ + { + "$ref": "#/definitions/PositiveNumber" + }, + { + "$ref": "#/definitions/MeasurementValue" + } + ] + }, + "topUnit": { + "$ref": "#/definitions/MeasurementUnit" + }, + "right": { + "allOf": [ + { + "$ref": "#/definitions/PositiveNumber" + }, + { + "$ref": "#/definitions/MeasurementValue" + } + ] + }, + "rightUnit": { + "$ref": "#/definitions/MeasurementUnit" + }, + "bottom": { + "allOf": [ + { + "$ref": "#/definitions/PositiveNumber" + }, + { + "$ref": "#/definitions/MeasurementValue" + } + ] + }, + "bottomUnit": { + "$ref": "#/definitions/MeasurementUnit" + } + }, + "additionalProperties": false, + "required": [ + "left", + "top", + "right", + "bottom" + ] + }, + "Path": { + "type": "string", + "minLength": 1 + }, + "PixelPadding": { + "type": "object", + "engineeringColumns": [ + "left", + "top", + "right", + "bottom" + ], + "propertiesMeta": [ + { + "name": "left", + "category": "general", + "displayName": "Left", + "displayPriority": 10, + "description": "Sets the left padding of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "leftUnit", + "category": "general", + "refTo": "left", + "displayName": "Left Unit", + "displayPriority": 10, + "description": "Sets the left padding unit of the element.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "top", + "category": "general", + "displayName": "Top", + "displayPriority": 10, + "description": "Sets the top padding of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "topUnit", + "category": "general", + "refTo": "top", + "displayName": "Top Unit", + "displayPriority": 10, + "description": "Sets the top padding unit of the element.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "right", + "category": "general", + "displayName": "Right", + "displayPriority": 10, + "description": "Sets the right padding of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "rightUnit", + "category": "general", + "refTo": "right", + "displayName": "Right Unit", + "displayPriority": 10, + "description": "Sets the right padding unit of the element.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "bottom", + "category": "general", + "displayName": "Bottom", + "displayPriority": 10, + "description": "Sets the bottom padding of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "bottomUnit", + "category": "general", + "refTo": "bottom", + "displayName": "Bottom Unit", + "displayPriority": 10, + "description": "Sets the bottom padding unit of the element.", + "defaultValue": null, + "defaultValueInternal": "px" + } + ], + "properties": { + "left": { + "allOf": [ + { + "$ref": "#/definitions/PositiveNumber" + }, + { + "$ref": "#/definitions/MeasurementValue" + } + ] + }, + "leftUnit": { + "$ref": "#/definitions/PixelUnit" + }, + "top": { + "allOf": [ + { + "$ref": "#/definitions/PositiveNumber" + }, + { + "$ref": "#/definitions/MeasurementValue" + } + ] + }, + "topUnit": { + "$ref": "#/definitions/PixelUnit" + }, + "right": { + "allOf": [ + { + "$ref": "#/definitions/PositiveNumber" + }, + { + "$ref": "#/definitions/MeasurementValue" + } + ] + }, + "rightUnit": { + "$ref": "#/definitions/PixelUnit" + }, + "bottom": { + "allOf": [ + { + "$ref": "#/definitions/PositiveNumber" + }, + { + "$ref": "#/definitions/MeasurementValue" + } + ] + }, + "bottomUnit": { + "$ref": "#/definitions/PixelUnit" + } + }, + "additionalProperties": false, + "required": [ + "left", + "top", + "right", + "bottom" + ] + }, + "PixelUnit": { + "type": "string", + "enum": [ + "px" + ] + }, + "PositiveNumber": { + "allOf": [ + { + "$ref": "tchmi:general#/definitions/Number" + }, + { + "minimum": 0 + } + ] + }, + "RecipeReference": { + "description": "Refers to one recipe of the server.", + "type": "string", + "minLength": 1 + }, + "RecipeTypeReference": { + "description": "Refers to one recipe type of the server.", + "type": "string", + "minLength": 1 + }, + "ScaleMode": { + "type": "string", + "enum": [ + "None", + "ScaleToFill", + "ScaleToFit", + "ScaleToFitWidth", + "ScaleToFitHeight" + ], + "default": "None" + }, + "ScrollMode": { + "type": "string", + "enum": [ + "No", + "Yes", + "Auto" + ] + }, + "ServerEvent": { + "anyOf": [ + { + "title": "Message", + "type": "object", + "properties": { + "type": { + "type": "integer", + "enum": [ + 0 + ], + "options": [ + { + "label": "ENUM_0_MESSAGE", + "value": 0 + } + ], + "default": 0 + }, + "domain": { + "type": "string" + }, + "name": { + "type": "string" + }, + "timeReceived": { + "type": "string", + "format": "date-time" + }, + "sessionId": { + "type": "string" + }, + "severity": { + "$ref": "tchmi:server#/definitions/severity" + }, + "sourceDomain": { + "type": "string" + }, + "text": { + "type": "string" + }, + "timeRaised": { + "type": "string", + "format": "date-time" + }, + "params": { + "type": "object" + } + }, + "required": [ + "type", + "domain", + "name", + "timeReceived", + "severity", + "sourceDomain", + "text", + "timeRaised", + "params" + ], + "additionalProperties": false + }, + { + "title": "Alarm", + "type": "object", + "properties": { + "type": { + "type": "integer", + "enum": [ + 1 + ], + "options": [ + { + "label": "ENUM_1_ALARM", + "value": 1 + } + ], + "default": 1 + }, + "domain": { + "type": "string" + }, + "name": { + "type": "string" + }, + "timeReceived": { + "type": "string", + "format": "date-time" + }, + "sessionId": { + "type": "string" + }, + "severity": { + "$ref": "tchmi:server#/definitions/severity" + }, + "sourceDomain": { + "type": "string" + }, + "text": { + "type": "string" + }, + "timeRaised": { + "type": "string", + "format": "date-time" + }, + "params": { + "type": "object" + }, + "id": { + "type": "integer" + }, + "timeCleared": { + "$ref": "tchmi:server#/definitions/nullableDateTime" + }, + "timeConfirmed": { + "$ref": "tchmi:server#/definitions/nullableDateTime" + }, + "alarmState": { + "$ref": "tchmi:server#/definitions/alarmState" + }, + "confirmationState": { + "$ref": "tchmi:server#/definitions/confirmationState" + } + }, + "required": [ + "type", + "domain", + "name", + "timeReceived", + "severity", + "sourceDomain", + "text", + "timeRaised", + "params", + "id", + "timeCleared", + "timeConfirmed", + "alarmState", + "confirmationState" + ], + "additionalProperties": false + }, + { + "title": "PayloadEvent", + "type": "object", + "properties": { + "type": { + "type": "integer", + "enum": [ + 2 + ], + "options": [ + { + "label": "ENUM_2_PAYLOAD", + "value": 2 + } + ], + "default": 2 + }, + "domain": { + "type": "string" + }, + "name": { + "type": "string" + }, + "timeReceived": { + "type": "string", + "format": "date-time" + }, + "sessionId": { + "type": "string" + }, + "payload": {} + }, + "required": [ + "type", + "domain", + "name", + "timeReceived" + ], + "additionalProperties": false + } + ] + }, + "SizeMode": { + "type": "string", + "enum": [ + "Value", + "Parent" + ], + "default": "Value" + }, + "SizeModeWithContent": { + "type": "string", + "enum": [ + "Value", + "Parent", + "Content" + ], + "default": "Value" + }, + "SolidColor": { + "type": "object", + "properties": { + "color": { + "description": "Defining a color as CSS color: #-hexadecimal, rgb(), rgba(), hsl(), hsla(), css color keyword, none or transparent.", + "type": "string", + "minLength": 1, + "default": "#000000" + } + }, + "additionalProperties": false, + "required": [ + "color" + ] + }, + "Sorting": { + "title": "Sorting", + "type": "array", + "items": { + "title": "Sorting criterion", + "type": "object", + "engineeringColumns": [ + "name", + "order" + ], + "propertiesMeta": [ + { + "name": "name", + "displayName": "Name", + "category": "General", + "displayPriority": 10, + "description": "Name of the property to sort by", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "order", + "displayName": "Order", + "category": "General", + "displayPriority": 10, + "description": "Sort definition", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "name": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "Ascending", + "Descending" + ], + "default": "Ascending" + } + }, + "required": [ + "order" + ], + "additionalProperties": false + } + }, + "StopPoint": { + "title": "StopPoint definition", + "type": "object", + "properties": { + "color": { + "description": "Defining a color as CSS color: #-hexadecimal, rgb(), rgba(), hsl(), hsla(), lowercase css color keyword or transparent.", + "type": "string", + "minLength": 1 + }, + "stop": { + "type": "string", + "pattern": "^[0-9]*\\.?[0-9]+(?:px|%)$" + } + }, + "additionalProperties": false, + "required": [ + "color" + ] + }, + "Symbol": { + "type": "object", + "frameworkInstanceOf": "TcHmi.Symbol" + }, + "ThemeName": { + "type": "string", + "default": "Base" + }, + "ToggleState": { + "type": "string", + "enum": [ + "Normal", + "Active" + ], + "default": "Normal" + }, + "TransformList": { + "definitions": { + "transform": { + "anyOf": [ + { + "title": "Translate", + "type": "object", + "propertiesMeta": [ + { + "name": "transformType", + "category": "general", + "displayName": "Transform Type", + "displayPriority": 10, + "description": "Sets the type of transform to be applied to the element.", + "defaultValue": "Translate", + "defaultValueInternal": "Translate" + }, + { + "name": "x", + "category": "general", + "displayName": "X", + "displayPriority": 10, + "description": "Sets the x translation of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "xUnit", + "category": "general", + "refTo": "x", + "displayName": "X Unit", + "displayPriority": 10, + "description": "Sets the x translation unit of the element.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "y", + "category": "general", + "displayName": "Y", + "displayPriority": 10, + "description": "Sets the y translation of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "yUnit", + "category": "general", + "refTo": "y", + "displayName": "Y Unit", + "displayPriority": 10, + "description": "Sets the y translation unit of the element.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "z", + "category": "general", + "displayName": "Z", + "displayPriority": 10, + "description": "Sets the z translation of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "zUnit", + "category": "general", + "refTo": "z", + "displayName": "Z Unit", + "displayPriority": 10, + "description": "Sets the z translation unit of the element.", + "defaultValue": null, + "defaultValueInternal": "px" + } + ], + "properties": { + "transformType": { + "type": "string", + "enum": [ + "Translate" + ] + }, + "x": { + "$ref": "#/definitions/MeasurementValue" + }, + "xUnit": { + "$ref": "#/definitions/MeasurementUnit" + }, + "y": { + "$ref": "#/definitions/MeasurementValue" + }, + "yUnit": { + "$ref": "#/definitions/MeasurementUnit" + }, + "z": { + "$ref": "#/definitions/MeasurementValue" + }, + "zUnit": { + "$ref": "#/definitions/MeasurementUnit" + } + }, + "required": [ + "transformType" + ], + "additionalProperties": false + }, + { + "title": "Rotate", + "type": "object", + "propertiesMeta": [ + { + "name": "transformType", + "category": "general", + "displayName": "Transform Type", + "displayPriority": 10, + "description": "Sets the type of transform to be applied to the element.", + "defaultValue": "Rotate", + "defaultValueInternal": "Rotate" + }, + { + "name": "angle", + "category": "general", + "displayName": "Angle", + "displayPriority": 10, + "description": "Sets the angle of rotation of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "angleUnit", + "category": "general", + "refTo": "angle", + "displayName": "Angle Unit", + "displayPriority": 10, + "description": "Sets the angle unit of rotation of the element.", + "defaultValue": null, + "defaultValueInternal": "deg" + }, + { + "name": "vector", + "category": "General", + "displayName": "Vector", + "displayPriority": 10, + "description": "Sets the vector of rotation of the element.", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "transformType": { + "type": "string", + "enum": [ + "Rotate" + ] + }, + "angle": { + "$ref": "#/definitions/MeasurementValue" + }, + "angleUnit": { + "$ref": "#/definitions/TransformList/definitions/angleUnit" + }, + "vector": { + "title": "Vector", + "type": "object", + "propertiesMeta": [ + { + "name": "x", + "category": "general", + "displayName": "X", + "displayPriority": 10, + "description": "Sets the x component of the vector of rotation applied to the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "y", + "category": "general", + "displayName": "Y", + "displayPriority": 10, + "description": "Sets the y component of the vector of rotation applied to the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "z", + "category": "general", + "displayName": "Z", + "displayPriority": 10, + "description": "Sets the z component of the vector of rotation applied to the element.", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "x", + "y", + "z" + ], + "additionalProperties": false + } + }, + "required": [ + "transformType", + "angle" + ], + "additionalProperties": false + }, + { + "title": "Scale", + "type": "object", + "propertiesMeta": [ + { + "name": "transformType", + "category": "general", + "displayName": "Transform Type", + "displayPriority": 10, + "description": "Sets the type of transform to be applied to the element.", + "defaultValue": "Scale", + "defaultValueInternal": "Scale" + }, + { + "name": "x", + "category": "general", + "displayName": "X", + "displayPriority": 10, + "description": "Sets the x scale of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "y", + "category": "general", + "displayName": "Y", + "displayPriority": 10, + "description": "Sets the y scale of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "z", + "category": "general", + "displayName": "Z", + "displayPriority": 10, + "description": "Sets the z scale of the element.", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "transformType": { + "type": "string", + "enum": [ + "Scale" + ] + }, + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } + }, + "required": [ + "transformType" + ], + "additionalProperties": false + }, + { + "title": "Skew", + "type": "object", + "propertiesMeta": [ + { + "name": "transformType", + "category": "general", + "displayName": "Transform Type", + "displayPriority": 10, + "description": "Sets the type of transform to be applied to the element.", + "defaultValue": "Skew", + "defaultValueInternal": "Skew" + }, + { + "name": "xAngle", + "category": "general", + "displayName": "X Angle", + "displayPriority": 10, + "description": "Sets the x angle of skew of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "xAngleUnit", + "category": "general", + "refTo": "xAngle", + "displayName": "X Angle Unit", + "displayPriority": 10, + "description": "Sets the x angle unit of skew of the element.", + "defaultValue": null, + "defaultValueInternal": "deg" + }, + { + "name": "yAngle", + "category": "general", + "displayName": "Y Angle", + "displayPriority": 10, + "description": "Sets the y angle of skew of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "yAngleUnit", + "category": "general", + "refTo": "yAngle", + "displayName": "Y Angle Unit", + "displayPriority": 10, + "description": "Sets the y angle unit of skew of the element.", + "defaultValue": null, + "defaultValueInternal": "deg" + } + ], + "properties": { + "transformType": { + "type": "string", + "enum": [ + "Skew" + ] + }, + "xAngle": { + "$ref": "#/definitions/MeasurementValue" + }, + "xAngleUnit": { + "$ref": "#/definitions/TransformList/definitions/angleUnit" + }, + "yAngle": { + "$ref": "#/definitions/MeasurementValue" + }, + "yAngleUnit": { + "$ref": "#/definitions/TransformList/definitions/angleUnit" + } + }, + "required": [ + "transformType" + ], + "additionalProperties": false + }, + { + "title": "Origin", + "type": "object", + "propertiesMeta": [ + { + "name": "transformType", + "category": "general", + "displayName": "Transform Type", + "displayPriority": 10, + "description": "Sets the type of transform to be applied to the element.", + "defaultValue": "Origin", + "defaultValueInternal": "Origin" + }, + { + "name": "x", + "category": "general", + "displayName": "X", + "displayPriority": 10, + "description": "Sets the x origin of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "xUnit", + "category": "general", + "refTo": "x", + "displayName": "X Unit", + "displayPriority": 10, + "description": "Sets the x origin unit of the element.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "y", + "category": "general", + "displayName": "Y", + "displayPriority": 10, + "description": "Sets the y origin of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "yUnit", + "category": "general", + "refTo": "y", + "displayName": "Y Unit", + "displayPriority": 10, + "description": "Sets the y origin unit of the element.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "z", + "category": "general", + "displayName": "Z", + "displayPriority": 10, + "description": "Sets the z origin of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "zUnit", + "category": "general", + "refTo": "z", + "displayName": "Z Unit", + "displayPriority": 10, + "description": "Sets the z origin unit of the element.", + "defaultValue": null, + "defaultValueInternal": "px" + } + ], + "properties": { + "transformType": { + "type": "string", + "enum": [ + "Origin" + ] + }, + "x": { + "$ref": "#/definitions/MeasurementValue" + }, + "xUnit": { + "$ref": "#/definitions/MeasurementUnit" + }, + "y": { + "$ref": "#/definitions/MeasurementValue" + }, + "yUnit": { + "$ref": "#/definitions/MeasurementUnit" + }, + "z": { + "$ref": "#/definitions/MeasurementValue" + }, + "zUnit": { + "$ref": "#/definitions/MeasurementUnit" + } + }, + "required": [ + "transformType" + ], + "additionalProperties": false + }, + { + "title": "Perspective", + "type": "object", + "propertiesMeta": [ + { + "name": "transformType", + "category": "general", + "displayName": "Transform Type", + "displayPriority": 10, + "description": "Sets the type of transform to be applied to the element.", + "defaultValue": "Perspective", + "defaultValueInternal": "Perspective" + }, + { + "name": "distance", + "category": "general", + "displayName": "Distance", + "displayPriority": 10, + "description": "Sets the distance of the perspective of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "distanceUnit", + "category": "general", + "refTo": "distance", + "displayName": "Distance Unit", + "displayPriority": 10, + "description": "Sets the distance unit of the perspective of the element.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "origin", + "category": "General", + "displayName": "Origin", + "displayPriority": 10, + "description": "Sets the origin of the perspective of the element.", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "transformType": { + "type": "string", + "enum": [ + "Perspective" + ] + }, + "distance": { + "$ref": "#/definitions/MeasurementValue" + }, + "distanceUnit": { + "$ref": "#/definitions/MeasurementUnit" + }, + "origin": { + "title": "Origin", + "type": "object", + "propertiesMeta": [ + { + "name": "x", + "category": "general", + "displayName": "X", + "displayPriority": 10, + "description": "Sets the x origin of the perspective of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "xUnit", + "category": "general", + "refTo": "x", + "displayName": "X Unit", + "displayPriority": 10, + "description": "Sets the x origin unit of the perspective of the element.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "y", + "category": "general", + "displayName": "Y", + "displayPriority": 10, + "description": "Sets the y origin of the perspective of the element.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "yUnit", + "category": "general", + "refTo": "y", + "displayName": "Y Unit", + "displayPriority": 10, + "description": "Sets the y origin unit of the perspective of the element.", + "defaultValue": null, + "defaultValueInternal": "px" + } + ], + "properties": { + "x": { + "$ref": "#/definitions/MeasurementValue" + }, + "xUnit": { + "$ref": "#/definitions/MeasurementUnit" + }, + "y": { + "$ref": "#/definitions/MeasurementValue" + }, + "yUnit": { + "$ref": "#/definitions/MeasurementUnit" + } + }, + "additionalProperties": false + } + }, + "required": [ + "transformType", + "distance" + ], + "additionalProperties": false + } + ] + }, + "angleUnit": { + "type": "string", + "enum": [ + "deg", + "rad", + "turn", + "grad" + ] + } + }, + "type": "array", + "items": { + "$ref": "#/definitions/TransformList/definitions/transform" + } + }, + "Trigger": { + "definitions": { + "action": { + "anyOf": [ + { + "title": "Condition", + "type": "object", + "description": "IF .. THEN ..ELSE - style condition", + "properties": { + "objectType": { + "type": "string", + "enum": [ + "Condition" + ] + }, + "parts": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "if": { + "$ref": "#/definitions/Trigger/definitions/expression" + }, + "then": { + "$ref": "#/definitions/Trigger/definitions/actionList" + }, + "showThenActions": { + "type": "boolean", + "description": "Holds the current state of the Trigger GUI. Not used in runtime" + } + }, + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "elseif": { + "$ref": "#/definitions/Trigger/definitions/expression" + }, + "then": { + "$ref": "#/definitions/Trigger/definitions/actionList" + }, + "showThenActions": { + "type": "boolean", + "description": "Holds the current state of the Trigger GUI. Not used in runtime" + } + }, + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "else": { + "$ref": "#/definitions/Trigger/definitions/actionList" + }, + "showThenActions": { + "type": "boolean", + "description": "Holds the current state of the Trigger GUI. Not used in runtime" + } + }, + "additionalProperties": false + } + ] + } + }, + "success": { + "description": "Success callback action list.", + "type": "array", + "items": { + "$ref": "#/definitions/Trigger/definitions/action" + } + }, + "error": { + "description": "Error callback action list.", + "type": "array", + "items": { + "$ref": "#/definitions/Trigger/definitions/action" + } + }, + "active": { + "type": "boolean", + "description": "Should action be active? Defaults to true.", + "default": true + }, + "collapsed": { + "type": "boolean", + "description": "Should action be collapsed? Not used in runtime", + "default": false + }, + "asyncWait": { + "type": "boolean" + } + }, + "required": [ + "objectType" + ], + "additionalProperties": false + }, + { + "title": "SwitchCase", + "type": "object", + "description": "SWITCH .. CASE ..CASE - style condition", + "properties": { + "objectType": { + "type": "string", + "enum": [ + "SwitchCase" + ] + }, + "compare": { + "$ref": "#/definitions/Trigger/definitions/value" + }, + "cases": { + "type": "array", + "items": { + "$ref": "#/definitions/Trigger/definitions/vCase" + } + }, + "caseDefault": { + "$ref": "#/definitions/Trigger/definitions/dCase" + }, + "success": { + "$ref": "#/definitions/Trigger/definitions/actionList" + }, + "error": { + "$ref": "#/definitions/Trigger/definitions/actionList" + }, + "active": { + "type": "boolean", + "description": "Should action be active? Defaults to true.", + "default": true + }, + "collapsed": { + "type": "boolean", + "description": "Should action be collapsed? Not used in runtime", + "default": false + }, + "asyncWait": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "objectType", + "compare", + "cases", + "caseDefault" + ] + }, + { + "title": "WriteToSymbol", + "type": "object", + "description": "Write to Symbol", + "properties": { + "objectType": { + "type": "string", + "enum": [ + "WriteToSymbol" + ] + }, + "symbolExpression": { + "$ref": "#/definitions/Trigger/definitions/symbolExpression" + }, + "value": { + "$ref": "#/definitions/Trigger/definitions/value" + }, + "success": { + "$ref": "#/definitions/Trigger/definitions/actionList" + }, + "error": { + "$ref": "#/definitions/Trigger/definitions/actionList" + }, + "active": { + "type": "boolean", + "description": "Should action be active? Defaults to true.", + "default": true + }, + "collapsed": { + "type": "boolean", + "description": "Should action be collapsed? Not used in runtime", + "default": false + }, + "asyncWait": { + "type": "boolean" + } + }, + "required": [ + "objectType", + "symbolExpression", + "value" + ], + "additionalProperties": false + }, + { + "title": "Function", + "type": "object", + "properties": { + "objectType": { + "type": "string", + "enum": [ + "Function" + ] + }, + "fn": { + "type": "string" + }, + "fnParams": { + "type": "array", + "items": { + "$ref": "#/definitions/Trigger/definitions/value" + } + }, + "success": { + "$ref": "#/definitions/Trigger/definitions/actionList" + }, + "error": { + "$ref": "#/definitions/Trigger/definitions/actionList" + }, + "active": { + "type": "boolean", + "description": "Should action be active? Defaults to true.", + "default": true + }, + "collapsed": { + "type": "boolean", + "description": "Should action be collapsed? Not used in runtime", + "default": false + }, + "asyncWait": { + "type": "boolean" + } + }, + "required": [ + "objectType", + "fn", + "fnParams" + ], + "additionalProperties": false + }, + { + "title": "JavaScript", + "type": "object", + "description": "Executes a user-defined JavaScript", + "properties": { + "objectType": { + "type": "string", + "enum": [ + "JavaScript" + ] + }, + "sourceLines": { + "type": "array", + "items": { + "type": "string" + } + }, + "waitMode": { + "type": "string", + "enum": [ + "Synchronous", + "Asynchronous" + ], + "description": "Synchronous: Next step will be called after last JavaScript line. Asynchronous: Next step will be called after calling ctx.success() or ctx.error(TcHmi.Errors.ERROR)" + }, + "success": { + "type": "array", + "items": { + "$ref": "#/definitions/Trigger/definitions/action" + }, + "description": "Steps which will be called after call of ctx.success() with Asynchronous or last line with Synchronous." + }, + "error": { + "type": "array", + "items": { + "$ref": "#/definitions/Trigger/definitions/action" + }, + "description": "Steps which will be called after the call to ctx.error() with Asynchronous or after an exception with Synchronous." + }, + "active": { + "type": "boolean", + "description": "Should action be active? Defaults to true.", + "default": true + }, + "collapsed": { + "type": "boolean", + "description": "Should action be collapsed? Not used in runtime", + "default": false + }, + "asyncWait": { + "type": "boolean", + "description": "The next step is called after the completion of this step." + } + }, + "required": [ + "objectType", + "sourceLines" + ], + "additionalProperties": false + }, + { + "title": "ActionTemplate", + "type": "object", + "properties": { + "objectType": { + "type": "string", + "enum": [ + "ActionTemplate" + ] + }, + "description": { + "type": "string", + "description": "A long description of this control." + }, + "templateName": { + "type": "string" + }, + "fnParams": { + "type": "array", + "items": { + "$ref": "#/definitions/Trigger/definitions/value" + } + }, + "success": { + "$ref": "#/definitions/Trigger/definitions/actionList" + }, + "error": { + "$ref": "#/definitions/Trigger/definitions/actionList" + }, + "active": { + "type": "boolean", + "description": "Should action be active? Defaults to true.", + "default": true + }, + "collapsed": { + "type": "boolean", + "description": "Should action be collapsed? Not used in runtime", + "default": false + }, + "asyncWait": { + "type": "boolean" + } + }, + "required": [ + "objectType", + "templateName", + "fnParams" + ], + "additionalProperties": false + }, + { + "title": "ControlApiFunction", + "type": "object", + "description": "Defines an API of the control.", + "properties": { + "objectType": { + "type": "string", + "enum": [ + "ControlApiFunction" + ] + }, + "control": { + "type": "string" + }, + "fn": { + "type": "string" + }, + "fnParams": { + "type": "array", + "items": { + "$ref": "#/definitions/Trigger/definitions/value" + } + }, + "success": { + "$ref": "#/definitions/Trigger/definitions/actionList" + }, + "error": { + "$ref": "#/definitions/Trigger/definitions/actionList" + }, + "active": { + "type": "boolean", + "description": "Should action be active? Defaults to true.", + "default": true + }, + "collapsed": { + "type": "boolean", + "description": "Should action be collapsed? Not used in runtime", + "default": false + }, + "asyncWait": { + "type": "boolean" + } + }, + "required": [ + "objectType", + "control", + "fn" + ], + "additionalProperties": false + }, + { + "title": "FunctionExpression", + "type": "object", + "properties": { + "objectType": { + "type": "string", + "enum": [ + "FunctionExpression" + ] + }, + "functionExpression": { + "type": "string" + }, + "success": { + "$ref": "#/definitions/Trigger/definitions/actionList" + }, + "error": { + "$ref": "#/definitions/Trigger/definitions/actionList" + }, + "active": { + "type": "boolean", + "description": "Should action be active? Defaults to true.", + "default": true + }, + "collapsed": { + "type": "boolean", + "description": "Should action be collapsed? Not used in runtime", + "default": false + }, + "asyncWait": { + "type": "boolean" + } + }, + "required": [ + "objectType", + "functionExpression" + ], + "additionalProperties": false + }, + { + "title": "Comment", + "type": "object", + "description": "Free comment. Will be ignored on runtime.", + "properties": { + "objectType": { + "type": "string", + "enum": [ + "Comment" + ] + }, + "comment": { + "type": "string", + "description": "Free comment. Will be ignored on runtime." + } + }, + "required": [ + "objectType" + ], + "additionalProperties": false + } + ] + }, + "actionList": { + "type": "array", + "items": { + "$ref": "#/definitions/Trigger/definitions/action" + } + }, + "value": { + "anyOf": [ + { + "title": "StaticValue", + "type": "object", + "properties": { + "objectType": { + "type": "string", + "enum": [ + "StaticValue" + ] + }, + "value": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "array" + }, + { + "type": "object" + } + ] + }, + "valueType": { + "type": "string", + "minLength": 6, + "pattern": "^tchmi:", + "description": "Information about the used type as a tchmi reference name for re-edit scenarios while Engineering." + } + }, + "required": [ + "objectType", + "value" + ], + "additionalProperties": false + }, + { + "title": "Symbol", + "type": "object", + "properties": { + "objectType": { + "description": "Value referenced via a Symbol", + "type": "string", + "enum": [ + "Symbol" + ] + }, + "valueType": { + "type": "string", + "minLength": 6, + "pattern": "^tchmi:", + "description": "Information about the expected type as a tchmi reference name." + }, + "symbolExpression": { + "$ref": "#/definitions/Trigger/definitions/symbolExpression" + } + }, + "required": [ + "objectType", + "symbolExpression" + ], + "additionalProperties": false + }, + { + "title": "EventDataObject", + "type": "object", + "properties": { + "objectType": { + "type": "string", + "enum": [ + "EventDataObject" + ] + }, + "propertyPath": { + "type": "string" + } + }, + "required": [ + "objectType", + "propertyPath" + ], + "additionalProperties": false + }, + { + "title": "FunctionExpression", + "type": "object", + "properties": { + "objectType": { + "type": "string", + "enum": [ + "FunctionExpression" + ] + }, + "functionExpression": { + "type": "string" + } + }, + "required": [ + "objectType", + "functionExpression" + ], + "additionalProperties": false + } + ] + }, + "comment": { + "title": "Comment", + "type": "string" + }, + "bindingTarget": { + "anyOf": [ + { + "title": "ControlAttributeBindingTarget", + "type": "object", + "description": "a ControlAttributeBindingTarget", + "properties": { + "objectType": { + "type": "string", + "enum": [ + "ControlAttributeBindingTarget" + ] + }, + "attributeExpression": { + "$ref": "#/definitions/Trigger/definitions/controlAttributeSymbolExpression" + } + }, + "required": [ + "objectType" + ], + "additionalProperties": false + } + ] + }, + "expression": { + "title": "Expression", + "type": "object", + "properties": { + "compare1": { + "$ref": "#/definitions/Trigger/definitions/value" + }, + "compare2": { + "$ref": "#/definitions/Trigger/definitions/value" + }, + "compareOperator": { + "type": "string", + "enum": [ + "==", + "===", + "!=", + "!==", + "<", + "<=", + ">", + ">=" + ] + }, + "logic": { + "anyOf": [ + { + "type": "string", + "enum": [ + "AND", + "OR" + ] + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "compare1", + "compare2", + "compareOperator" + ], + "additionalProperties": false + }, + "vCase": { + "title": "VCase", + "type": "object", + "properties": { + "actions": { + "$ref": "#/definitions/Trigger/definitions/actionList" + }, + "caseValue": { + "$ref": "#/definitions/Trigger/definitions/value" + } + }, + "required": [ + "actions", + "caseValue" + ], + "additionalProperties": false + }, + "dCase": { + "title": "DCase", + "type": "object", + "properties": { + "actions": { + "$ref": "#/definitions/Trigger/definitions/actionList" + } + }, + "required": [ + "actions" + ], + "additionalProperties": false + }, + "symbolExpression": { + "title": "SymbolExpression", + "description": "Reference to a Symbol Expression", + "type": "string", + "pattern": "^%(s|i|l|pp|tp|f|ctrl|ctx|tr|t)%.+%\\/\\1%$" + }, + "controlSymbolExpression": { + "title": "controlSymbolExpression", + "description": "Reference to a Control Symbol Expression", + "type": "string", + "pattern": "^%(ctrl)%.+%\\1%$" + }, + "controlAttributeSymbolExpression": { + "title": "ControlAttributeSymbolExpression", + "type": "string", + "pattern": "^%(ctrl)%.+%\\1%$" + } + }, + "type": "object", + "properties": { + "event": { + "type": "string", + "description": "Event name", + "minLength": 1 + }, + "preventDefault": { + "type": "boolean", + "description": "If activated the default action of the event will not be triggered.\nIf set on touch events the corresponding mouse events will not be triggered." + }, + "displayName": { + "type": "string", + "description": "Name which should be presented the user." + }, + "actions": { + "type": "array", + "minItems": 1, + "description": "List of actions to trigger.", + "items": { + "$ref": "#/definitions/Trigger/definitions/action" + } + } + }, + "additionalProperties": false, + "required": [ + "event", + "actions" + ] + }, + "TriggerList": { + "type": "array", + "items": { + "$ref": "#/definitions/Trigger" + }, + "minItems": 1 + }, + "TypeRef": { + "type": "string" + }, + "UserControlPath": { + "type": "string", + "minLength": 1 + }, + "VerticalAlignment": { + "type": "string", + "enum": [ + "Top", + "Center", + "Bottom" + ] + }, + "VirtualControlRightMappingList": { + "type": "array", + "items": { + "type": "object", + "engineeringColumns": [ + "virtualControlRight", + "controlRight" + ], + "properties": { + "virtualControlRight": { + "description": "Name of the right which is configured on a parent control (aka outer right).", + "type": "string", + "minLength": 1 + }, + "controlRight": { + "description": "Name of the right which is working on this control (aka inner right).", + "type": "string", + "minLength": 1 + } + }, + "description": "Allows a mapping of rights to parent control virtual rights. For example the 'operate' right of this control can be configured to react on a custom 'canStartPump' right of a parent control.", + "additionalProperties": false, + "required": [ + "controlRight", + "virtualControlRight" + ] + }, + "description": "Allows a mapping of rights to parent control virtual rights. For example the 'operate' right of this control can be configured to react on a custom 'canStartPump' right of a parent control." + }, + "Visibility": { + "type": "string", + "enum": [ + "Visible", + "Hidden", + "Collapsed" + ], + "default": "Visible" + }, + "TcHmi.Controls.System.TcHmiControl": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiControl", + "frameworkControlNamespace": "TcHmi.Controls.System" + }, + "TcHmiControl": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.System.TcHmiControl" + }, + "TcHmi.Controls.System.TcHmiContainerControl": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiContainerControl", + "frameworkControlNamespace": "TcHmi.Controls.System" + }, + "TcHmiContainerControl": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.System.TcHmiContainerControl" + }, + "TcHmi.Controls.System.TcHmiPartial": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiPartial", + "frameworkControlNamespace": "TcHmi.Controls.System" + }, + "TcHmiPartial": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.System.TcHmiPartial" + }, + "TcHmi.Controls.System.TcHmiPopup": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiPopup", + "frameworkControlNamespace": "TcHmi.Controls.System" + }, + "TcHmiPopup": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.System.TcHmiPopup" + }, + "TcHmi.Controls.System.TcHmiPopup.TargetFile": { + "type": "object", + "properties": { + "path": { + "anyOf": [ + { + "$ref": "tchmi:framework#/definitions/UserControlPath" + }, + { + "$ref": "tchmi:framework#/definitions/ContentPath" + } + ] + }, + "attributes": { + "description": "A dictionary for the attributes with the html attribute names as keys.", + "type": "object", + "additionalProperties": { + "type": [ + "object", + "array", + "string", + "boolean", + "integer", + "number" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "path" + ] + }, + "TcHmi.Controls.System.TcHmiPopup.ButtonList": { + "title": "ButtonList", + "type": "array", + "items": { + "title": "Button", + "type": "object", + "propertiesMeta": [ + { + "name": "name", + "displayName": "Name", + "category": "General", + "displayPriority": 10, + "description": "The name of the button. Used to identify it in events and for styling.", + "defaultValue": "", + "defaultValueInternal": null + }, + { + "name": "value", + "displayName": "Value", + "category": "General", + "displayPriority": 10, + "description": "The value of the button. Used as an event parameter.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "width", + "displayName": "Width", + "category": "General", + "displayPriority": 10, + "description": "The width of the button in pixels.", + "defaultValue": 60, + "defaultValueInternal": null + }, + { + "name": "height", + "displayName": "Height", + "category": "General", + "displayPriority": 10, + "description": "The height of the button in pixels.", + "defaultValue": 30, + "defaultValueInternal": null + }, + { + "name": "widthMode", + "displayName": "Width Mode", + "category": "General", + "displayPriority": 10, + "description": "The width mode of the button. If set to 'Content', the button will adjust itself to the length its text, ignoring the width value.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "heightMode", + "displayName": "Height Mode", + "category": "General", + "displayPriority": 10, + "description": "The height mode of the button. If set to 'Content', the button will adjust itself to the height its text, ignoring the height value.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "minWidth", + "displayName": "Min Width", + "category": "General", + "displayPriority": 10, + "description": "The minimum width of the button in pixels.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "maxWidth", + "displayName": "Max Width", + "category": "General", + "displayPriority": 10, + "description": "The maximum width of the button in pixels.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "minHeight", + "displayName": "Min Height", + "category": "General", + "displayPriority": 10, + "description": "The minimum height of the button in pixels.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "maxHeight", + "displayName": "Max Height", + "category": "General", + "displayPriority": 10, + "description": "The maximum height of the button in pixels.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "textPadding", + "displayName": "Text Padding", + "category": "General", + "displayPriority": 10, + "description": "The size of the padding around the text.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "text", + "displayName": "Text", + "category": "General", + "displayPriority": 10, + "description": "A string to display on the button. Can be bound to a symbol.", + "defaultValue": "", + "defaultValueInternal": null + }, + { + "name": "tooltip", + "displayName": "Tooltip", + "category": "General", + "displayPriority": 10, + "description": "An optional tooltip.", + "defaultValue": "", + "defaultValueInternal": null + }, + { + "name": "keepPopupOpen", + "displayName": "Keep Popup Open", + "category": "General", + "displayPriority": 10, + "description": "Whether to close the popup when a button is pressed or keep it open. If not specified, this defaults to closing the popup.", + "defaultValue": false, + "defaultValueInternal": false + }, + { + "name": "actions", + "displayName": "Actions", + "category": "General", + "displayPriority": 10, + "description": "Actions to perform when the button is pressed.", + "defaultValue": [], + "defaultValueInternal": null + } + ], + "properties": { + "name": { + "type": "string" + }, + "value": { + "allOf": [ + { + "$ref": "tchmi:general#/definitions/Any" + }, + { + "default": null + } + ] + }, + "width": { + "type": "number" + }, + "height": { + "type": "number" + }, + "widthMode": { + "type": "string", + "enum": [ + "Value", + "Content" + ] + }, + "heightMode": { + "type": "string", + "enum": [ + "Value", + "Content" + ] + }, + "minWidth": { + "type": "number" + }, + "maxWidth": { + "type": "number" + }, + "minHeight": { + "type": "number" + }, + "maxHeight": { + "type": "number" + }, + "textPadding": { + "$ref": "tchmi:framework#/definitions/Padding" + }, + "text": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "keepPopupOpen": { + "type": "boolean", + "default": false + }, + "actions": { + "$ref": "tchmi:framework#/definitions/Trigger/definitions/actionList" + } + }, + "required": [ + "name", + "text", + "width", + "height" + ], + "additionalProperties": false + } + }, + "TcHmi.Controls.System.TcHmiPopup.ResultEventObject": { + "type": "object", + "properties": { + "result": {} + }, + "additionalProperties": false + }, + "TcHmiPopupResultEventObject": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.System.TcHmiPopup.ResultEventObject" + }, + "TcHmi.Controls.System.TcHmiPopup.ButtonPressedEventObject": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": {} + }, + "additionalProperties": false + }, + "TcHmiPopupButtonPressedEventObject": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.System.TcHmiPopup.ButtonPressedEventObject" + }, + "TcHmi.Controls.System.TcHmiContainer": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiContainer", + "frameworkControlNamespace": "TcHmi.Controls.System" + }, + "TcHmiContainer": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.System.TcHmiContainer" + }, + "TcHmi.Controls.System.TcHmiContent": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiContent", + "frameworkControlNamespace": "TcHmi.Controls.System" + }, + "TcHmiContent": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.System.TcHmiContent" + }, + "CellOptions": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.System.TcHmiGrid.CellOptions" + }, + "ColumnOptions": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.System.TcHmiGrid.ColumnOptions" + }, + "RowOptions": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.System.TcHmiGrid.RowOptions" + }, + "TcHmi.Controls.System.TcHmiGrid": { + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiGrid", + "frameworkControlNamespace": "TcHmi.Controls.System" + }, + "TcHmi.Controls.System.TcHmiGrid.CellOptions": { + "title": "CellOptions", + "description": "Definition of cell options in the grid.", + "type": "array", + "items": { + "title": "Cell definition", + "description": "Definition of a cell.", + "type": "object", + "engineeringColumns": [ + "columnIndex", + "rowIndex" + ], + "propertiesMeta": [ + { + "name": "columnIndex", + "category": "Layout", + "displayName": "Column Index", + "displayPriority": 10, + "description": "Column index of the defined cell.", + "defaultValueInternal": null + }, + { + "name": "rowIndex", + "category": "Layout", + "displayName": "Row Index", + "displayPriority": 10, + "description": "Row index of the defined cell.", + "defaultValueInternal": null + }, + { + "name": "padding", + "category": "Layout", + "displayPriority": 60, + "displayName": "Padding", + "description": "Inner padding of the cell. \nNote: Percentages always refer to the width of the cell, never its height (even for top and bottom).", + "defaultValueInternal": null + }, + { + "name": "backgroundColor", + "category": "Colors", + "displayPriority": 10, + "displayName": "Background Color", + "description": "Definition of the background color which is used if no or a transparent Background image is set.", + "defaultValueInternal": null + }, + { + "name": "borderColor", + "category": "Colors", + "displayPriority": 10, + "displayName": "Border Color", + "description": "Definition of the border color.", + "defaultValueInternal": null + }, + { + "name": "borderWidth", + "category": "Border", + "displayPriority": 10, + "displayName": "Border Width", + "description": "Definition of the border width.", + "defaultValueInternal": null + }, + { + "name": "borderStyle", + "category": "Border", + "displayPriority": 10, + "displayName": "Border Style", + "description": "Definition of the border style.", + "defaultValueInternal": null + }, + { + "name": "backgroundImage", + "category": "Background Image", + "displayPriority": 10, + "displayName": "Background Image", + "description": "Definition of the background image.", + "defaultValueInternal": null + }, + { + "name": "backgroundImageWidth", + "category": "Background Image", + "displayPriority": 20, + "displayName": "Background Image Width", + "description": "Width of the background image.", + "defaultValueInternal": null + }, + { + "name": "backgroundImageWidthUnit", + "refTo": "backgroundImageWidth", + "category": "Background Image", + "displayPriority": 20, + "displayName": "Background Image Width Unit", + "description": "Width Unit of the background image.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "backgroundImageHeight", + "category": "Background Image", + "displayPriority": 20, + "displayName": "Background Image Height", + "description": "Height of the background image.", + "defaultValueInternal": null + }, + { + "name": "backgroundImageHeightUnit", + "refTo": "backgroundImageHeight", + "category": "Background Image", + "displayPriority": 20, + "displayName": "Background Image Height Unit", + "description": "Height Unit of the background image.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "backgroundImageHorizontalAlignment", + "category": "Background Image", + "displayPriority": 30, + "displayName": "Background Image Horizontal Alignment", + "description": "Horizontal Aligment of the background image.", + "defaultValue": null, + "defaultValueInternal": "Center" + }, + { + "name": "backgroundImageVerticalAlignment", + "category": "Background Image", + "displayPriority": 30, + "displayName": "Background Image Vertical Alignment", + "description": "Vertical Aligment of the background image.", + "defaultValue": null, + "defaultValueInternal": "Center" + }, + { + "name": "backgroundImagePadding", + "category": "Background Image", + "displayPriority": 60, + "displayName": "Background Image Padding", + "description": "Padding of the background image.", + "defaultValueInternal": null + } + ], + "properties": { + "columnIndex": { + "type": "integer", + "minimum": 0, + "title": "ColumnIndex", + "description": "Column index of the defined cell.", + "default": null, + "category": "Layout", + "displayPriority": 10 + }, + "rowIndex": { + "type": "integer", + "minimum": 0, + "title": "RowIndex", + "description": "Row index of the defined cell.", + "default": null, + "category": "Layout", + "displayPriority": 10 + }, + "padding": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/Padding" + }, + { + "title": "Padding", + "description": "Inner padding of the cell. \nNote: Percentages always refer to the width of the cell, never its height (even for top and bottom).", + "default": null, + "category": "Layout", + "displayPriority": 60 + } + ] + }, + "backgroundColor": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + { + "title": "BackgroundColor", + "description": "Definition of the background color which is used if no or a transparent Background image is set.", + "default": null, + "category": "Colors", + "displayPriority": 10 + } + ] + }, + "borderColor": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + { + "title": "BorderColor", + "description": "Definition of the border color.", + "default": null, + "category": "Colors", + "displayPriority": 10 + } + ] + }, + "borderWidth": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/BorderWidth" + }, + { + "title": "BorderWidth", + "description": "Definition of the border width.", + "default": null, + "category": "Border", + "displayPriority": 10 + } + ] + }, + "borderStyle": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/BorderStyle" + }, + { + "title": "BorderStyle", + "description": "Definition of the border style.", + "default": null, + "category": "Border", + "displayPriority": 10 + } + ] + }, + "backgroundImage": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/Path" + }, + { + "title": "BackgroundImage", + "description": "Definition of the background image.", + "default": null, + "category": "Background Image", + "displayPriority": 10 + } + ] + }, + "backgroundImageWidth": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/MeasurementValue" + }, + { + "title": "BackgroundImageWidth", + "description": "Width of the background image.", + "default": null, + "category": "Background Image", + "displayPriority": 20 + } + ] + }, + "backgroundImageWidthUnit": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/MeasurementUnit" + }, + { + "title": "BackgroundImageWidthUnit", + "description": "Width Unit of the background image.", + "default": "px", + "refTo": "backgroundImageWidth", + "category": "Background Image", + "displayPriority": 20 + } + ] + }, + "backgroundImageHeight": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/MeasurementValue" + }, + { + "title": "BackgroundImageHeight", + "description": "Height of the background image.", + "default": null, + "category": "Background Image", + "displayPriority": 20 + } + ] + }, + "backgroundImageHeightUnit": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/MeasurementUnit" + }, + { + "title": "BackgroundImageHeightUnit", + "description": "Height Unit of the background image.", + "default": "px", + "refTo": "backgroundImageHeight", + "category": "Background Image", + "displayPriority": 20 + } + ] + }, + "backgroundImageHorizontalAlignment": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/HorizontalAlignment" + }, + { + "title": "BackgroundImageHorizontalAligment", + "description": "Horizontal Aligment of the background image.", + "default": "Center", + "category": "Background Image", + "displayPriority": 30 + } + ] + }, + "backgroundImageVerticalAlignment": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/VerticalAlignment" + }, + { + "title": "BackgroundImageVerticalAligment", + "description": "Vertical Aligment of the background image.", + "default": "Center", + "category": "Background Image", + "displayPriority": 30 + } + ] + }, + "backgroundImagePadding": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/Padding" + }, + { + "title": "BackgroundImagePadding", + "description": "Padding of the background image.", + "default": null, + "category": "Background Image", + "displayPriority": 60 + } + ] + } + }, + "additionalProperties": false + } + }, + "TcHmi.Controls.System.TcHmiGrid.ColumnOptions": { + "title": "ColumnOptions", + "type": "array", + "items": { + "type": "object", + "title": "Column definition", + "description": "Defines one column.", + "engineeringColumns": [ + "width", + "widthUnit", + "widthMode" + ], + "propertiesMeta": [ + { + "name": "width", + "category": "Layout", + "displayName": "Width", + "displayPriority": 10, + "description": "Defines width of the column in the grid. Can be a pixel value (42px), percent value (42%) or a grow factor (1).\nThe grow factor determines how much the items will grow relative to the rest of the items when positive free space is distributed.", + "defaultValue": 1, + "defaultValueInternal": 1 + }, + { + "name": "widthUnit", + "refTo": "width", + "category": "Layout", + "displayName": "Width Unit", + "displayPriority": 10, + "description": "Defines if the number defines a pixel value (px), percent value (42%) or grow factor (2).", + "defaultValue": "factor", + "defaultValueInternal": "factor" + }, + { + "name": "widthMode", + "category": "Layout", + "displayName": "Width Mode", + "displayPriority": 30, + "description": "Defines if the width is taken from the width value or calculated from child controls in this Column.", + "defaultValue": "Value", + "defaultValueInternal": "Value" + }, + { + "name": "maxWidth", + "category": "Layout", + "displayName": "Max Width", + "displayPriority": 60, + "description": "Defines maximal width of the column in the grid. Can be a pixel value (42px), percent value (42%).\nmax-width overrides width, but min-width overrides max-width.", + "defaultValueInternal": null + }, + { + "name": "maxWidthUnit", + "refTo": "maxWidth", + "category": "Layout", + "displayName": "Max Width Unit", + "displayPriority": 60, + "description": "Max Width Unit of the column.", + "defaultValueInternal": "px" + }, + { + "name": "minWidth", + "category": "Layout", + "displayName": "Min Width", + "displayPriority": 61, + "description": "Defines minimal width of the column in the grid. Can be a pixel value (42px), percent value (42%).\nmax-width overrides width, but min-width overrides max-width.", + "defaultValueInternal": null + }, + { + "name": "minWidthUnit", + "refTo": "minWidth", + "category": "Layout", + "displayName": "Min Width Unit", + "displayPriority": 61, + "description": "Min Width Unit of the column.", + "defaultValueInternal": "px" + }, + { + "name": "overflow", + "category": "Layout", + "displayName": "Overflow", + "displayPriority": 65, + "description": "Defines if a control should be fully visible if it is outside of this column.", + "defaultValue": null, + "defaultValueInternal": false + } + ], + "properties": { + "width": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/MeasurementValue" + }, + { + "title": "Width", + "description": "Defines width of the column in the grid. Can be a pixel value (42px), percent value (42%) or a grow factor (1).\nThe grow factor determines how much the items will grow relative to the rest of the items when positive free space is distributed.", + "default": 1, + "category": "Layout", + "displayPriority": 10 + } + ] + }, + "widthUnit": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.System.TcHmiGrid.MeasurementUnitOrFactor" + }, + { + "title": "WidthUnit", + "description": "Defines if the number defines a pixel value (px), percent value (42%) or grow factor (2).", + "default": "factor", + "refTo": "width", + "category": "Layout", + "displayPriority": 10 + } + ] + }, + "widthMode": { + "allOf": [ + { + "type": "string", + "enum": [ + "Value", + "Content" + ] + }, + { + "title": "WidthMode", + "description": "Defines if the width is taken from the width value or calculated from child controls in this Column.", + "default": "Value", + "category": "Layout", + "displayPriority": 30 + } + ] + }, + "maxWidth": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/MeasurementValue" + }, + { + "title": "MaxWidth", + "description": "Defines maximal width of the column in the grid. Can be a pixel value (42px), percent value (42%).\nmax-width overrides width, but min-width overrides max-width.", + "default": null, + "displayPriority": 60, + "category": "Layout" + } + ] + }, + "maxWidthUnit": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/MeasurementUnit" + }, + { + "title": "MaxWidthUnit", + "description": "Max Width Unit of the column.", + "default": "px", + "category": "Layout", + "displayPriority": 60, + "refTo": "maxWidth" + } + ] + }, + "minWidth": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/MeasurementValue" + }, + { + "title": "MinWidth", + "description": "Defines minimal width of the column in the grid. Can be a pixel value (42px), percent value (42%).\nmax-width overrides width, but min-width overrides max-width.", + "default": null, + "category": "Layout", + "displayPriority": 61 + } + ] + }, + "minWidthUnit": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/MeasurementUnit" + }, + { + "title": "MinWidthUnit", + "description": "Min Width Unit of the column.", + "default": "px", + "refTo": "minWidth", + "category": "Layout", + "displayPriority": 61 + } + ] + }, + "overflow": { + "allOf": [ + { + "$ref": "tchmi:general#/definitions/Boolean" + }, + { + "title": "Overflow", + "description": "Defines if a control should be fully visible if it is outside of this column.", + "default": false, + "category": "Layout", + "displayPriority": 65 + } + ] + } + }, + "additionalProperties": false + } + }, + "TcHmi.Controls.System.TcHmiGrid.MeasurementUnitOrFactor": { + "description": "Defines if the number defines a pixel value (px), percent value (42%) or grow factor (2).\nThe grow factor determines how much the items will grow relative to the rest of the items when positive free space is distributed.", + "type": "string", + "enum": [ + "factor", + "px", + "%" + ], + "default": "factor" + }, + "TcHmi.Controls.System.TcHmiGrid.RowOptions": { + "title": "RowOptions", + "type": "array", + "items": { + "type": "object", + "title": "Row definition", + "description": "Defines one row.", + "engineeringColumns": [ + "height", + "heightUnit", + "heightMode" + ], + "propertiesMeta": [ + { + "name": "height", + "category": "Layout", + "displayName": "Height", + "displayPriority": 10, + "description": "Defines height of the cells of this row in the grid. Can be a pixel value (42px), percent value (42%) or a grow factor (1).\nThe grow factor determines how much the items will grow relative to the rest of the items when positive free space is distributed.", + "defaultValue": 1, + "defaultValueInternal": 1 + }, + { + "name": "heightUnit", + "refTo": "height", + "category": "Layout", + "displayName": "Height Unit", + "displayPriority": 10, + "description": "Defines if the number defines a pixel value (px), percent value (42%) or grow factor (2).", + "defaultValue": "factor", + "defaultValueInternal": "factor" + }, + { + "name": "heightMode", + "category": "Layout", + "displayName": "Height Mode", + "displayPriority": 30, + "description": "Defines if the height is taken from the height value or calculated from child controls in row.", + "defaultValue": "Value", + "defaultValueInternal": "Value" + }, + { + "name": "maxHeight", + "category": "Layout", + "displayName": "Max Height", + "displayPriority": 60, + "description": "Defines maximal height of the row in the grid. Can be a pixel value (42px), percent value (42%).\nmax-height overrides height, but min-height overrides max-height.", + "defaultValueInternal": null + }, + { + "name": "maxHeightUnit", + "refTo": "maxHeight", + "category": "Layout", + "displayName": "Max Height Unit", + "displayPriority": 60, + "description": "Max Height Unit of the row.", + "defaultValueInternal": "px" + }, + { + "name": "minHeight", + "category": "Layout", + "displayName": "Min Height", + "displayPriority": 61, + "description": "Defines minimal height of the row in the grid. Can be a pixel value (42px), percent value (42%).\nmax-height overrides height, but min-height overrides max-height.", + "defaultValueInternal": null + }, + { + "name": "minHeightUnit", + "refTo": "minHeight", + "category": "Layout", + "displayName": "Min Height Unit", + "displayPriority": 61, + "description": "Min Height Unit of the row.", + "defaultValueInternal": "px" + }, + { + "name": "overflow", + "category": "Layout", + "displayName": "Overflow", + "displayPriority": 65, + "description": "Defines if a control should be fully visible if it is outside of this row.", + "defaultValue": null, + "defaultValueInternal": false + } + ], + "properties": { + "height": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/MeasurementValue" + }, + { + "title": "Height", + "description": "Defines height of the cells of this row in the grid. Can be a pixel value (42px), percent value (42%) or a grow factor (1).\nThe grow factor determines how much the items will grow relative to the rest of the items when positive free space is distributed.", + "default": 1, + "category": "Layout", + "displayPriority": 10 + } + ] + }, + "heightUnit": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.System.TcHmiGrid.MeasurementUnitOrFactor" + }, + { + "title": "HeightUnit", + "description": "Defines if the number defines a pixel value (px), percent value (42%) or grow factor (2).", + "default": "factor", + "refTo": "height", + "category": "Layout", + "displayPriority": 10 + } + ] + }, + "heightMode": { + "allOf": [ + { + "type": "string", + "enum": [ + "Value", + "Content" + ] + }, + { + "title": "HeightMode", + "description": "Defines if the height is taken from the height value or calculated from child controls in row.", + "default": "Value", + "category": "Layout", + "displayPriority": 30 + } + ] + }, + "maxHeight": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/MeasurementValue" + }, + { + "title": "MaxHeight", + "description": "Defines maximal height of the row in the grid. Can be a pixel value (42px), percent value (42%).\nmax-height overrides height, but min-height overrides max-height.", + "default": null, + "refTo": "maxHeight", + "category": "Layout", + "displayPriority": 60 + } + ] + }, + "maxHeightUnit": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/MeasurementUnit" + }, + { + "title": "MaxHeightUnit", + "description": "Max Height Unit of the row.", + "default": "px", + "category": "Layout", + "displayPriority": 60 + } + ] + }, + "minHeight": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/MeasurementValue" + }, + { + "title": "MinHeight", + "description": "Defines minimal height of the row in the grid. Can be a pixel value (42px), percent value (42%).\nmax-height overrides height, but min-height overrides max-height.", + "default": null, + "category": "Layout", + "displayPriority": 61 + } + ] + }, + "minHeightUnit": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/MeasurementUnit" + }, + { + "title": "MinHeightUnit", + "description": "Min Height Unit of the row.", + "default": "px", + "refTo": "minHeight", + "category": "Layout", + "displayPriority": 61 + } + ] + }, + "overflow": { + "allOf": [ + { + "$ref": "tchmi:general#/definitions/Boolean" + }, + { + "title": "Overflow", + "description": "Defines if a control should be fully visible if it is outside of this row.", + "default": false, + "category": "Layout", + "displayPriority": 65 + } + ] + } + }, + "additionalProperties": false + } + }, + "TcHmiGrid": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.System.TcHmiGrid" + }, + "TcHmi.Controls.System.TcHmiHtmlHost": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiHtmlHost", + "frameworkControlNamespace": "TcHmi.Controls.System" + }, + "TcHmiHtmlHost": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.System.TcHmiHtmlHost" + }, + "TcHmi.Controls.System.TcHmiUserControl": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiUserControl", + "frameworkControlNamespace": "TcHmi.Controls.System" + }, + "TcHmiUserControl": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.System.TcHmiUserControl" + }, + "TcHmi.Controls.System.TcHmiView": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiView", + "frameworkControlNamespace": "TcHmi.Controls.System" + }, + "TcHmiView": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.System.TcHmiView" + }, + "TcHmi.Controls.System.TcHmiRegion": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiRegion", + "frameworkControlNamespace": "TcHmi.Controls.System" + }, + "TcHmiRegion": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.System.TcHmiRegion" + }, + "TcHmi.Controls.System.TcHmiUserControlHost": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiUserControlHost", + "frameworkControlNamespace": "TcHmi.Controls.System" + }, + "TcHmiUserControlHost": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.System.TcHmiUserControlHost" + }, + "TcHmi.Controls.Beckhoff.TcHmiAccordionRegion": { + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiAccordionRegion", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiAccordionRegion": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiAccordionRegion" + }, + "TcHmi.Controls.Beckhoff.TcHmiAccordionRegion.AccordionItemList": { + "type": "array", + "title": "Accordion Items", + "description": "A list of accordion items", + "items": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiAccordionRegion.AccordionItem" + } + }, + "TcHmi.Controls.Beckhoff.TcHmiAccordionRegion.AccordionItem": { + "type": "object", + "title": "Accordion Item", + "description": "A single accordion item", + "engineeringColumns": [ + "name" + ], + "properties": { + "name": { + "type": "string" + }, + "text": { + "type": "string" + }, + "targetFile": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.System.TcHmiPopup.TargetFile" + }, + "targetFileHostPreload": { + "type": "boolean" + }, + "targetFileHostPreAttach": { + "type": "boolean" + }, + "targetFileHostKeepAlive": { + "type": "boolean" + }, + "maxContentHeight": { + "$ref": "tchmi:framework#/definitions/MeasurementValue" + }, + "accessRights": { + "$ref": "tchmi:framework#/definitions/AccessConfig" + }, + "icon": { + "type": "object", + "properties": { + "iconPath": { + "$ref": "tchmi:framework#/definitions/Path" + }, + "iconWidth": { + "$ref": "tchmi:framework#/definitions/MeasurementValue" + }, + "iconWidthUnit": { + "$ref": "tchmi:framework#/definitions/MeasurementUnit" + }, + "iconHeight": { + "$ref": "tchmi:framework#/definitions/MeasurementValue" + }, + "iconHeightUnit": { + "$ref": "tchmi:framework#/definitions/MeasurementUnit" + } + }, + "propertiesMeta": [ + { + "name": "iconPath", + "displayName": "Icon Path", + "category": "General", + "displayPriority": 10, + "description": "The icon that will be displayed in the accordion header.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "iconWidth", + "displayName": "Icon Width", + "category": "General", + "displayPriority": 11, + "description": "The preferred width of the icon.", + "defaultValue": null, + "defaultValueInternal": 32 + }, + { + "name": "iconWidthUnit", + "displayName": "Icon Width Unit", + "category": "General", + "displayPriority": 11, + "description": "The unit of preferred width of the icon.", + "defaultValue": null, + "defaultValueInternal": "px", + "refTo": "iconWidth" + }, + { + "name": "iconHeight", + "displayName": "Icon Height", + "category": "General", + "displayPriority": 12, + "description": "The preferred height of the icon.", + "defaultValue": null, + "defaultValueInternal": 32 + }, + { + "name": "iconHeightUnit", + "displayName": "Icon Height Unit", + "category": "General", + "displayPriority": 12, + "description": "The unit of preferred height of the icon.", + "defaultValue": null, + "defaultValueInternal": "px", + "refTo": "iconHeight" + } + ], + "required": [ + "iconPath" + ], + "additionalProperties": false + } + }, + "propertiesMeta": [ + { + "name": "name", + "displayName": "Name", + "category": "General", + "displayPriority": 10, + "description": "Name of the accordion item.", + "defaultValue": "newTab", + "defaultValueInternal": null + }, + { + "name": "text", + "displayName": "Text", + "category": "General", + "displayPriority": 11, + "description": "The text that will be displayed in the accordion header.", + "defaultValue": "Accordion Item", + "defaultValueInternal": null + }, + { + "name": "targetFile", + "displayName": "Target File", + "category": "General", + "displayPriority": 12, + "description": "The content or usercontrol to show.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "targetFileHostPreload", + "displayName": "Target File Host Preload", + "category": "General", + "displayPriority": 13, + "description": "Defines whether the target file host is preloaded when the accordion region is initialized or loaded when the accordion item is selected.", + "defaultValue": null, + "defaultValueInternal": false + }, + { + "name": "targetFileHostPreAttach", + "displayName": "Target File Host Pre Attach", + "category": "General", + "displayPriority": 14, + "description": "Defines whether the target file host is pre attached to the DOM even if the accorion item is not yet opened. Does only have an effect if TargetFileHostPreload is true.", + "defaultValue": null, + "defaultValueInternal": false + }, + { + "name": "targetFileHostKeepAlive", + "displayName": "Target File Host Keep Alive", + "category": "General", + "displayPriority": 15, + "description": "Defines whether the target file host is kept alive when the accordion item is closed. Has no effect when TargetFileHostPreload is set to true.", + "defaultValue": null, + "defaultValueInternal": false + }, + { + "name": "maxContentHeight", + "displayName": "Max Content Height", + "category": "General", + "displayPriority": 16, + "description": "The maximal height of the accordion items content in 'px'.", + "defaultValue": null, + "defaultValueInternal": 240 + }, + { + "name": "icon", + "displayName": "Icon", + "category": "General", + "displayPriority": 30, + "description": "The Icon displayed in the accordion header.", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "additionalProperties": false, + "required": [ + "name" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiAdsState": { + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiAdsState", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiAdsState": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiAdsState" + }, + "TcHmi.Controls.Beckhoff.TcHmiAdsState.StateImages": { + "type": "object", + "title": "StateImages", + "description": "A structure defining an image for each state the control can have and the fallback image.", + "propertiesMeta": [ + { + "name": "Fallback", + "displayName": "Fallback", + "category": "General", + "displayPriority": 1, + "description": "The Fallback Image if a state is not defined.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "Invalid", + "displayName": "Invalid", + "category": "General", + "displayPriority": 2, + "description": "The Image for the State 'Invalid'.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "Idle", + "displayName": "Idle", + "category": "General", + "displayPriority": 3, + "description": "The Image for the State 'Idle'.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "Reset", + "displayName": "Reset", + "category": "General", + "displayPriority": 4, + "description": "The Image for the State 'Reset'.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "Init", + "displayName": "Init", + "category": "General", + "displayPriority": 5, + "description": "The Image for the State 'Init'.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "Start", + "displayName": "Start", + "category": "General", + "displayPriority": 6, + "description": "The Image for the State 'Start'.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "Run", + "displayName": "Run", + "category": "General", + "displayPriority": 7, + "description": "The Image for the State 'Run'.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "Stop", + "displayName": "Stop", + "category": "General", + "displayPriority": 8, + "description": "The Image for the State 'Stop'.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "SaveCfg", + "displayName": "Save Cfg", + "category": "General", + "displayPriority": 9, + "description": "The Image for the State 'SaveCfg'.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "LoadCfg", + "displayName": "Load Cfg", + "category": "General", + "displayPriority": 10, + "description": "The Image for the State 'LoadCfg'.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "PowerFailure", + "displayName": "Power Failure", + "category": "General", + "displayPriority": 11, + "description": "The Image for the State 'PowerFailure'.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "PowerGood", + "displayName": "Power Good", + "category": "General", + "displayPriority": 12, + "description": "The Image for the State 'PowerGood'.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "Error", + "displayName": "Error", + "category": "General", + "displayPriority": 13, + "description": "The Image for the State 'Error'.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "Shutdown", + "displayName": "Shutdown", + "category": "General", + "displayPriority": 14, + "description": "The Image for the State 'Shutdown'.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "Suspend", + "displayName": "Suspend", + "category": "General", + "displayPriority": 15, + "description": "The Image for the State 'Suspend'.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "Resume", + "displayName": "Resume", + "category": "General", + "displayPriority": 16, + "description": "The Image for the State 'Resume'.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "Config", + "displayName": "Config", + "category": "General", + "displayPriority": 17, + "description": "The Image for the State 'Config'.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "Reconfig", + "displayName": "Reconfig", + "category": "General", + "displayPriority": 18, + "description": "The Image for the State 'Reconfig'.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "Stopping", + "displayName": "Stopping", + "category": "General", + "displayPriority": 19, + "description": "The Image for the State 'Stopping'.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "Incompatible", + "displayName": "Incompatible", + "category": "General", + "displayPriority": 20, + "description": "The Image for the State 'Incompatible'.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "Exception", + "displayName": "Exception", + "category": "General", + "displayPriority": 21, + "description": "The Image for the State 'Exception'.", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "Fallback": { + "$ref": "tchmi:framework#/definitions/Path" + }, + "Invalid": { + "$ref": "tchmi:framework#/definitions/Path" + }, + "Idle": { + "$ref": "tchmi:framework#/definitions/Path" + }, + "Reset": { + "$ref": "tchmi:framework#/definitions/Path" + }, + "Init": { + "$ref": "tchmi:framework#/definitions/Path" + }, + "Start": { + "$ref": "tchmi:framework#/definitions/Path" + }, + "Run": { + "$ref": "tchmi:framework#/definitions/Path" + }, + "Stop": { + "$ref": "tchmi:framework#/definitions/Path" + }, + "SaveCfg": { + "$ref": "tchmi:framework#/definitions/Path" + }, + "LoadCfg": { + "$ref": "tchmi:framework#/definitions/Path" + }, + "PowerFailure": { + "$ref": "tchmi:framework#/definitions/Path" + }, + "PowerGood": { + "$ref": "tchmi:framework#/definitions/Path" + }, + "Error": { + "$ref": "tchmi:framework#/definitions/Path" + }, + "Shutdown": { + "$ref": "tchmi:framework#/definitions/Path" + }, + "Suspend": { + "$ref": "tchmi:framework#/definitions/Path" + }, + "Resume": { + "$ref": "tchmi:framework#/definitions/Path" + }, + "Config": { + "$ref": "tchmi:framework#/definitions/Path" + }, + "Reconfig": { + "$ref": "tchmi:framework#/definitions/Path" + }, + "Stopping": { + "$ref": "tchmi:framework#/definitions/Path" + }, + "Incompatible": { + "$ref": "tchmi:framework#/definitions/Path" + }, + "Exception": { + "$ref": "tchmi:framework#/definitions/Path" + } + }, + "additionalProperties": false + }, + "TcHmi.Controls.Beckhoff.TcHmiAudio": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiAudio", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmi.Controls.Beckhoff.TcHmiAudio.AudioSourceList": { + "title": "AudioSourceList", + "description": "Audio Source List", + "type": "array", + "items": { + "type": "object", + "title": "Audio Source", + "engineeringColumns": [ + "source", + "type" + ], + "propertiesMeta": [ + { + "name": "source", + "displayName": "Source", + "category": "General", + "displayPriority": 10, + "description": "The source path of the audio source", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "type", + "displayName": "Type", + "category": "General", + "displayPriority": 10, + "description": "The type of the audio source.", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "source": { + "$ref": "tchmi:framework#/definitions/Path" + }, + "type": { + "type": "string", + "category": "Common", + "enum": [ + "", + "audio/mpeg", + "audio/ogg", + "audio/wav", + "audio/flac", + "application/dash+xml", + "application/vnd.apple.mpegurl" + ], + "options": [ + { + "label": "", + "value": "" + } + ], + "default": "" + } + }, + "additionalProperties": false, + "required": [ + "source" + ] + } + }, + "TcHmiAudio": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiAudio" + }, + "TcHmi.Controls.Beckhoff.TcHmiButton": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiButton", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmi.Controls.Beckhoff.TcHmiButton.StateSymbol": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/Symbol" + }, + { + "frameworkSymbolSubType": { + "$ref": "tchmi:general#/definitions/Boolean" + } + } + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiButton.StateChangedEventObject": { + "type": "object", + "properties": { + "control": { + "$ref": "tchmi:framework#/definitions/Control" + }, + "state": { + "type": "boolean" + }, + "stateOld": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "TcHmiButton": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiButton" + }, + "TcHmiButtonStateSymbol": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiButton.StateSymbol" + }, + "TcHmiButtonStateChangedEventObject": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiButton.StateChangedEventObject" + }, + "ChartBarGraphColorList": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiHorizontalBarChart.ChartBarGraphColorList" + }, + "ChartBarGraphDataDefinitionList": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiHorizontalBarChart.ChartBarGraphDataDefinitionList" + }, + "ChartBarGraphPosition": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiHorizontalBarChart.ChartBarGraphPosition" + }, + "TcHmi.Controls.Beckhoff.TcHmiBarChart": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiBarChart", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmi.Controls.Beckhoff.TcHmiBarChart.ChartBarGraphColorList": { + "title": "ChartBarGraphColorList", + "engineeringDefaultDatatype": 0, + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "tchmi:framework#/definitions/SolidColor" + } + }, + { + "$ref": "tchmi:framework#/definitions/SolidColor" + } + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiBarChart.ChartBarGraphDataDefinitionList": { + "title": "ChartBarGraphDataDefinitionList", + "engineeringDefaultDatatype": 0, + "anyOf": [ + { + "type": "array", + "title": "Array>", + "items": { + "type": "array", + "items": { + "type": "number" + } + } + }, + { + "type": "array", + "title": "Array", + "items": { + "type": "number" + } + } + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiBarChart.ChartBarGraphPosition": { + "title": "ChartBarGraphPosition", + "type": "string", + "enum": [ + "Left", + "Right" + ], + "default": "Left" + }, + "TcHmi.Controls.Beckhoff.TcHmiBarChart.ChartBarGraphDescriptionDefinitionList": { + "title": "ChartBarGraphDescriptionDefinitionList", + "type": "array", + "items": { + "type": "object", + "engineeringColumns": [ + "legendName" + ], + "propertiesMeta": [ + { + "name": "barColor", + "displayName": "Bar Color", + "category": "Colors", + "displayPriority": 10, + "description": "Color for this bars", + "defaultValue": { + "color": "#2775be" + }, + "defaultValueInternal": null + }, + { + "name": "legendName", + "category": "General", + "displayName": "Legend Name", + "displayPriority": 10, + "description": "The name that is displayed in the legend.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "scaleFactor", + "category": "General", + "displayName": "Scale Factor", + "displayPriority": 10, + "description": "Scales all values with this scale factor.", + "defaultValue": null, + "defaultValueInternal": 1 + }, + { + "name": "colorRanges", + "category": "General", + "displayName": "Color Ranges", + "displayPriority": 10, + "description": "An array of colors to be used in different ranges.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "defaultVisibility", + "category": "General", + "displayName": "Default Visibility", + "displayPriority": 10, + "description": "Default value for visibility.", + "defaultValue": null, + "defaultValueInternal": true + } + ], + "properties": { + "barColor": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "legendName": { + "type": "string" + }, + "scaleFactor": { + "type": "number" + }, + "colorRanges": { + "type": "array", + "items": { + "type": "object", + "properties": { + "color": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "expression": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiBarChart.ChartBarColorFilter" + } + }, + "additionalProperties": false + } + }, + "defaultVisibility": { + "type": "boolean" + } + }, + "additionalProperties": false + } + }, + "TcHmi.Controls.Beckhoff.TcHmiBarChart.ChartBarColorFilter": { + "title": "ChartBarColorFilter", + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "path": { + "type": "string", + "enum": [ + "{value}" + ], + "default": "{value}" + }, + "comparator": { + "type": "string", + "enum": [ + "==", + "!=", + "<", + ">", + "<=", + ">=" + ], + "default": "==" + }, + "value": { + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "path", + "comparator", + "value" + ] + }, + { + "type": "object", + "properties": { + "logic": { + "enum": [ + "AND", + "OR" + ], + "type": "string" + } + }, + "required": [ + "logic" + ], + "additionalProperties": false + }, + { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiBarChart.ChartBarColorFilter" + } + ] + } + }, + "TcHmi.Controls.Beckhoff.TcHmiBarChart.ChartBarGraphArrangement": { + "title": "ChartBarGraphArrangement", + "type": "string", + "enum": [ + "Overlapped", + "Clustered", + "Stacked" + ], + "default": "Overlapped" + }, + "TcHmi.Controls.Beckhoff.TcHmiBarChart.ChartAxisLabeling": { + "title": "ChartAxisLabeling", + "type": "string", + "enum": [ + "Number", + "Scientific", + "Auto" + ], + "default": "Number" + }, + "TcHmi.Controls.Beckhoff.TcHmiBarChart.ChartReferenceLineDefinition": { + "title": "ChartReferenceLineDefinition", + "type": "object", + "engineeringColumns": [ + "name", + "value", + "orientation" + ], + "propertiesMeta": [ + { + "name": "show", + "category": "General", + "displayName": "Show", + "displayPriority": 10, + "description": "Describes whether the reference line is displayed.", + "defaultValue": null, + "defaultValueInternal": true + }, + { + "name": "name", + "category": "General", + "displayName": "Name", + "displayPriority": 10, + "description": "Describes the name of the reference line.", + "defaultValue": null, + "defaultValueInternal": "" + }, + { + "name": "orientation", + "category": "General", + "displayName": "Orientation", + "displayPriority": 10, + "description": "Describes whether the reference line is vertical or horizontal.", + "defaultValue": "Horizontal", + "defaultValueInternal": "Horizontal" + }, + { + "name": "value", + "category": "General", + "displayName": "Value", + "displayPriority": 10, + "description": "Describes the value of the reference line.", + "defaultValue": null, + "defaultValueInternal": 0 + }, + { + "name": "valueUnit", + "category": "General", + "displayName": "Value Unit", + "displayPriority": 10, + "description": "Describes the unit of the value of the reference line (Value or %).", + "defaultValue": "Value", + "defaultValueInternal": "Value" + }, + { + "name": "color", + "category": "Colors", + "displayName": "Color", + "displayPriority": 10, + "description": "Describes the color of the reference line.", + "defaultValue": "%tr%Control::TcHmi.Controls.Beckhoff.TcHmiBarChart::ReferenceLineColor%/tr%", + "defaultValueInternal": { + "color": "#4794da" + } + }, + { + "name": "lineWidth", + "category": "General", + "displayName": "Line Width", + "displayPriority": 10, + "description": "Describes the line thickness of the reference line.", + "defaultValue": null, + "defaultValueInternal": 1 + }, + { + "name": "showLabel", + "category": "General", + "displayName": "Show Label", + "displayPriority": 10, + "description": "Describes whether the description of the reference line is displayed.", + "defaultValue": null, + "defaultValueInternal": true + }, + { + "name": "labelHorizontalAlignment", + "category": "General", + "displayName": "Label Horizontal Alignment", + "displayPriority": 10, + "description": "Describes the horizontal alignment of the reference line description.", + "defaultValue": null, + "defaultValueInternal": "Right" + }, + { + "name": "labelVerticalAlignment", + "category": "General", + "displayName": "Label Vertical Alignment", + "displayPriority": 10, + "description": "Describes the vertical alignment of the reference line description.", + "defaultValue": null, + "defaultValueInternal": "Top" + }, + { + "name": "labelFontFamily", + "category": "General", + "displayName": "Label Font Family", + "displayPriority": 10, + "description": "Describes the font of the description of the reference line. Comma separated list of family name or keyword: 'serif', 'sans-serif', 'monospace'.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "labelFontSize", + "category": "General", + "displayName": "Label Font Size", + "displayPriority": 10, + "description": "Describes the font size of the description of the reference line.", + "defaultValue": null, + "defaultValueInternal": 12 + }, + { + "name": "labelFontSizeUnit", + "refTo": "labelFontSize", + "category": "General", + "displayName": "Label Font Size Unit", + "displayPriority": 10, + "description": "Describes the font size unit of the description of the reference line.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "labelFontWeight", + "category": "General", + "displayName": "Label Font Weight", + "displayPriority": 10, + "description": "Describes the font weight of the description of the reference line. 'Normal', 'Bold' (glyphs with more weight) or 'Auto' for inherited.", + "defaultValue": null, + "defaultValueInternal": "Auto" + } + ], + "properties": { + "show": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "orientation": { + "type": "string", + "enum": [ + "Horizontal", + "Vertical" + ] + }, + "value": { + "type": "number" + }, + "valueUnit": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.ChartReferenceLineValueUnit" + }, + "color": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "lineWidth": { + "type": "number" + }, + "showLabel": { + "type": "boolean" + }, + "labelHorizontalAlignment": { + "$ref": "tchmi:framework#/definitions/HorizontalAlignment" + }, + "labelVerticalAlignment": { + "$ref": "tchmi:framework#/definitions/VerticalAlignment" + }, + "labelFontFamily": { + "$ref": "tchmi:framework#/definitions/FontFamily" + }, + "labelFontSize": { + "$ref": "tchmi:framework#/definitions/MeasurementValue" + }, + "labelFontSizeUnit": { + "$ref": "tchmi:framework#/definitions/PixelUnit" + }, + "labelFontWeight": { + "$ref": "tchmi:framework#/definitions/FontWeight" + } + }, + "additionalProperties": false, + "required": [ + "name", + "value", + "orientation" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiBarChart.ChartReferenceLineDefinitionList": { + "$schema": "http://json-schema.org/draft-04/schema", + "title": "ChartReferenceLineDefinitionList", + "type": "array", + "items": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiBarChart.ChartReferenceLineDefinition" + } + }, + "TcHmi.Controls.Beckhoff.TcHmiBarChart.ChartReferenceLinesPosition": { + "title": "ChartReferenceLinesPosition", + "type": "string", + "enum": [ + "Background", + "Foreground" + ], + "default": "Background" + }, + "TcHmiBarChart": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiBarChart" + }, + "ChartLineStyle": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.ChartLineStyle" + }, + "GaugeKnobDefinition": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.GaugeKnobDefinition" + }, + "GaugeRangeDefinitionList": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.GaugeRangeDefinitionList" + }, + "GaugeTickDefinition": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.GaugeTickDefinition" + }, + "GaugeMarkerDefinitionList": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.GaugeMarkerDefinitionList" + }, + "ChartReferenceLineValueUnit": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.ChartReferenceLineValueUnit" + }, + "TcHmi.Controls.Beckhoff.ChartLineStyle": { + "title": "ChartLineStyle", + "type": "string", + "enum": [ + "Dashed", + "Dotted", + "Solid" + ], + "default": "Dashed" + }, + "TcHmi.Controls.Beckhoff.GaugeKnobDefinition": { + "$schema": "http://json-schema.org/draft-04/schema", + "title": "GaugeKnobDefinition", + "type": "object", + "propertiesMeta": [ + { + "name": "imagePath", + "category": "General", + "displayName": "Image Path", + "displayPriority": 10, + "description": "Path to a Pixel or Vector Image.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "width", + "category": "General", + "displayName": "Width", + "displayPriority": 10, + "description": "Width of the Knob", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "height", + "category": "General", + "displayName": "Height", + "displayPriority": 10, + "description": "Height of the Knob", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "offsetX", + "category": "General", + "displayName": "Offset X", + "displayPriority": 10, + "description": "Defines the Offset of the Knob.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "offsetY", + "category": "General", + "displayName": "Offset Y", + "displayPriority": 10, + "description": "Defines the Offset of the Knob.", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "imagePath": { + "$ref": "tchmi:framework#/definitions/Path" + }, + "width": { + "type": "number" + }, + "height": { + "type": "number" + }, + "offsetX": { + "type": "number" + }, + "offsetY": { + "type": "number" + } + }, + "additionalProperties": false + }, + "TcHmi.Controls.Beckhoff.GaugeRangeDefinitionList": { + "title": "GaugeRangeDefinitionList", + "type": "array", + "items": { + "type": "object", + "title": "Range Definition", + "engineeringColumns": [ + "start", + "end", + "color" + ], + "propertiesMeta": [ + { + "name": "color", + "displayName": "Color", + "category": "Colors", + "displayPriority": 10, + "description": "Color of this range", + "defaultValue": { + "color": "rgb(0, 128, 0)" + }, + "defaultValueInternal": null + }, + { + "name": "start", + "displayName": "Start", + "category": "General", + "displayPriority": 10, + "description": "Start of this range", + "defaultValue": 0, + "defaultValueInternal": 0 + }, + { + "name": "end", + "displayName": "End", + "category": "General", + "displayPriority": 10, + "description": "End of this range", + "defaultValue": 0, + "defaultValueInternal": 0 + } + ], + "properties": { + "color": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "start": { + "type": "number" + }, + "end": { + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "color", + "start", + "end" + ] + } + }, + "TcHmi.Controls.Beckhoff.GaugeTickDefinition": { + "$schema": "http://json-schema.org/draft-04/schema", + "title": "GaugeTickDefinition", + "type": "object", + "properties": { + "mainTickRange": { + "type": "number", + "minimum": 0 + }, + "subTickRange": { + "type": "number", + "minimum": 0 + } + }, + "required": [ + "mainTickRange", + "subTickRange" + ], + "additionalProperties": false + }, + "TcHmi.Controls.Beckhoff.ChartReferenceLineValueUnit": { + "title": "ChartReferenceLineValueUnit", + "type": "string", + "enum": [ + "Value", + "%" + ], + "default": "Value" + }, + "TcHmi.Controls.Beckhoff.GaugeMarkerDefinitionList": { + "title": "GaugeMarkerDefinitionList", + "type": "array", + "items": { + "type": "object", + "title": "Marker Definition", + "engineeringColumns": [ + "label", + "value", + "color" + ], + "propertiesMeta": [ + { + "name": "color", + "displayName": "Color", + "category": "Colors", + "displayPriority": 10, + "description": "Color of this marker", + "defaultValue": { + "color": "rgba(0, 0, 0, 1)" + }, + "defaultValueInternal": null + }, + { + "name": "label", + "displayName": "Label", + "category": "General", + "displayPriority": 10, + "description": "Name of this marker", + "defaultValue": "", + "defaultValueInternal": null + }, + { + "name": "value", + "displayName": "Value", + "category": "General", + "displayPriority": 10, + "description": "Value of this marker", + "defaultValue": 0, + "defaultValueInternal": 0 + } + ], + "properties": { + "color": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "label": { + "type": "string" + }, + "value": { + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "color", + "label", + "value" + ] + } + }, + "TcHmi.Controls.Beckhoff.InputProcessingPoint": { + "type": "string", + "enum": [ + "Change", + "InteractionFinished" + ], + "default": "Change" + }, + "TcHmi.Controls.Beckhoff.ContentTabs.OverflowMode": { + "type": "string", + "enum": [ + "Popup", + "Scroll" + ], + "default": "Popup" + }, + "TcHmi.Controls.Beckhoff.TcHmiCalculator": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiCalculator", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiCalculator": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiCalculator" + }, + "TcHmi.Controls.Beckhoff.TcHmiCalculator.LayoutName": { + "type": "string", + "enum": [ + "Standard", + "Scientific" + ], + "default": "Standard" + }, + "TcHmi.Controls.Beckhoff.TcHmiCheckbox": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiCheckbox", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmi.Controls.Beckhoff.TcHmiCheckbox.StateSymbol": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/Symbol" + }, + { + "frameworkSymbolSubType": { + "$ref": "tchmi:general#/definitions/Boolean" + } + } + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiCheckbox.TextPosition": { + "type": "string", + "enum": [ + "Left", + "Right" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiCheckbox.StateChangedEventObject": { + "type": "object", + "properties": { + "control": { + "$ref": "tchmi:framework#/definitions/Control" + }, + "state": { + "type": "boolean" + }, + "stateOld": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "TcHmiCheckbox": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiCheckbox" + }, + "TcHmiCheckboxStateSymbol": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiCheckbox.StateSymbol" + }, + "TcHmiCheckboxStateChangedEventObject": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiCheckbox.StateChangedEventObject" + }, + "DropDownStyle": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiCombobox.DropDownStyle" + }, + "ListItem": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiCombobox.ListItem" + }, + "ListItemList": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiCombobox.ListItemList" + }, + "TcHmi.Controls.Beckhoff.TcHmiCombobox": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiCombobox", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmi.Controls.Beckhoff.TcHmiCombobox.DropDownStyle": { + "type": "string", + "enum": [ + "Classic", + "Mobile" + ], + "default": "Classic" + }, + "TcHmi.Controls.Beckhoff.TcHmiCombobox.ImagePosition": { + "type": "string", + "enum": [ + "LeftOfText", + "RightOfText" + ], + "default": "LeftOfText" + }, + "TcHmi.Controls.Beckhoff.TcHmiCombobox.ListItem": { + "title": "List Item", + "description": "List Item List", + "type": "object", + "engineeringColumns": [ + "id", + "text", + "value", + "category" + ], + "propertiesMeta": [ + { + "name": "id", + "displayName": "Id", + "category": "General", + "displayPriority": 10, + "description": "Numerical ID for this entry. Can be chosen freely, but must be unique.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "text", + "displayName": "Text", + "category": "General", + "displayPriority": 10, + "description": "Text to show for this entry", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "value", + "displayName": "Value", + "category": "General", + "displayPriority": 10, + "description": "Value which is associated to this entry", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "category", + "displayName": "Category", + "category": "General", + "displayPriority": 10, + "description": "An optional category which will be displayed above the item as a label (like in HTML).\nConsecutive items that have the exact same category will all be displayed under one category.\nHowever, if two items have the same category, but are not back to back, the category will be displayed twice to preserve the original item order.\nFor example items with categories [A, A, B, A] will create the category A with two entries, one category B with a single entry and after that again the category A with a single entry.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "image", + "displayName": "Image", + "category": "General", + "displayPriority": 10, + "description": "An optional path to the image for this item.", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "id": { + "type": "number" + }, + "text": { + "type": "string" + }, + "value": {}, + "category": { + "type": "string" + }, + "image": { + "$ref": "tchmi:framework#/definitions/Path" + } + }, + "additionalProperties": false, + "required": [ + "text" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiCombobox.SelectionChangedEventObject": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "text": { + "type": "string" + }, + "value": {} + }, + "additionalProperties": false + }, + "TcHmi.Controls.Beckhoff.TcHmiCombobox.ListItemList": { + "title": "ListItemList", + "description": "List Item List", + "engineeringDefaultDatatype": 0, + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiCombobox.ListItem" + } + }, + { + "type": "array" + }, + { + "type": "object" + } + ] + }, + "TcHmiCombobox": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiCombobox" + }, + "EnumDataSymbol": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiCombobox.EnumDataSymbol" + }, + "TcHmi.Controls.Beckhoff.TcHmiCombobox.EnumDataSymbol": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/Symbol" + }, + { + "frameworkSymbolSubType": { + "$ref": "tchmi:general#/definitions/Object" + } + } + ] + }, + "TcHmiComboboxSelectionChangedEventObject": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiCombobox.SelectionChangedEventObject" + }, + "DGColumnDefinitionList": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiDatagrid.ColumnDefinitionList" + }, + "DGDataDefinitionList": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiDatagrid.DataDefinitionList" + }, + "DGSorting": { + "$ref": "tchmi:framework#/definitions/Sorting" + }, + "TcHmi.Controls.Beckhoff.TcHmiDatagrid.Sorting": { + "$ref": "tchmi:framework#/definitions/Sorting" + }, + "TcHmi.Controls.Beckhoff.TcHmiDatagrid": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiDatagrid", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmi.Controls.Beckhoff.TcHmiDatagrid.DataSymbol": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/Symbol" + }, + { + "frameworkSymbolSubType": { + "$ref": "tchmi:general#/definitions/Array" + } + } + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiDatagrid.ColumnDefinitionList": { + "title": "ColumnDefinitionList", + "anyOf": [ + { + "type": "array", + "items": { + "type": "object", + "engineeringColumns": [ + "name", + "label", + "control", + "width", + "widthUnit" + ], + "propertiesMeta": [ + { + "name": "cellBackground", + "displayName": "Cell Background", + "category": "Colors", + "displayPriority": 10, + "description": "Background color of the cells in this column", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "textColor", + "displayName": "Text Color", + "category": "Colors", + "displayPriority": 11, + "description": "Text color of the cells in this column", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "name", + "displayName": "Name", + "category": "General", + "displayPriority": 10, + "description": "Name of the property in the srcData object. If not defined the column adresses the full object (usefull if the data is an array containing simple datatypes).", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "label", + "displayName": "Label", + "category": "General", + "displayPriority": 11, + "description": "Name of the label for this column", + "defaultValue": "", + "defaultValueInternal": null + }, + { + "name": "control", + "displayName": "Control", + "category": "General", + "displayPriority": 12, + "description": "Type of the input elements for this column", + "defaultValue": "TextBox", + "defaultValueInternal": "TextBlock" + }, + { + "name": "width", + "displayName": "Width", + "category": "General", + "displayPriority": 13, + "description": "Width for this column", + "defaultValue": 100, + "defaultValueInternal": null + }, + { + "name": "widthUnit", + "refTo": "width", + "displayName": "Width Unit", + "category": "General", + "displayPriority": 13, + "description": "Width unit for this column. px defines an absolute width, % is relative to the control width and factor can be used to divide the available space into fractions.", + "defaultValue": "px", + "defaultValueInternal": "px" + }, + { + "name": "editable", + "displayName": "Editable", + "category": "General", + "displayPriority": 14, + "description": "Can this column be edited (text, number) or operated (button, checkbox)?", + "defaultValue": false, + "defaultValueInternal": false + }, + { + "name": "minWidth", + "displayName": "Min Width", + "category": "General", + "displayPriority": 15, + "description": "Minimum width for this column", + "defaultValue": 100, + "defaultValueInternal": null + }, + { + "name": "minWidthUnit", + "refTo": "minWidth", + "displayName": "Min Width Unit", + "category": "General", + "displayPriority": 15, + "description": "Minimum width unit for this column", + "defaultValue": "px", + "defaultValueInternal": "px" + }, + { + "name": "resize", + "displayName": "Resize", + "category": "General", + "displayPriority": 16, + "description": "Can this column be resized? Columns that have factor as their widthUnit can never be resizeable.", + "defaultValue": false, + "defaultValueInternal": false + }, + { + "name": "sortable", + "displayName": "Sortable", + "category": "General", + "displayPriority": 17, + "description": "Can this column be sortedby user interaction?", + "defaultValue": true, + "defaultValueInternal": true + }, + { + "name": "horizontalAlignment", + "displayName": "Horizontal Alignment", + "category": "General", + "displayPriority": 18, + "description": "Horizontal alignment of this column", + "defaultValue": "Left", + "defaultValueInternal": "Left" + }, + { + "name": "verticalAlignment", + "displayName": "Vertical Alignment", + "category": "General", + "displayPriority": 19, + "description": "Vertical alignment of this column", + "defaultValue": "Center", + "defaultValueInternal": "Center" + }, + { + "name": "headerHorizontalAlignment", + "displayName": "Header Horizontal Alignment", + "category": "General", + "displayPriority": 20, + "description": "Horizontal alignment of the header of this column", + "defaultValue": "Center", + "defaultValueInternal": "Center" + }, + { + "name": "headerVerticalAlignment", + "displayName": "Header Vertical Alignment", + "category": "General", + "displayPriority": 21, + "description": "Vertical alignment of the header of this column", + "defaultValue": "Center", + "defaultValueInternal": "Center" + }, + { + "name": "format", + "displayName": "Format", + "category": "General", + "displayPriority": 22, + "description": "A reference of function which is called with each entry", + "allowedFunctions": { + "returnType": "tchmi:general#/definitions/String", + "requiredArguments": [ + { + "type": "tchmi:general#/definitions/Any", + "description": "The value to format." + } + ], + "requiredWaitMode": "Synchronous" + }, + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "dataDefinitions", + "displayName": "Data Definitions", + "category": "General", + "displayPriority": 23, + "description": "Mapping from the srcData to a combobox or image selection. \nText to show on Buttons. \nRestrictions for number inputs.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "ignoreEscapeSequences", + "displayName": "Ignore Escape Sequences", + "category": "General", + "displayPriority": 24, + "description": "When set to true a backslash in a text will be shown verbatim in the HMI", + "defaultValue": false, + "defaultValueInternal": false + }, + { + "name": "autoFocusOut", + "displayName": "Auto Focus Out", + "category": "General", + "displayPriority": 25, + "description": "When set to true the control will automatically lose focus when the user presses the enter or escape key", + "defaultValue": true, + "defaultValueInternal": true + }, + { + "name": "autoSelectText", + "displayName": "Auto Select Text", + "category": "General", + "displayPriority": 26, + "description": "When set to true all text within the control will be selected when the control gains focus", + "defaultValue": false, + "defaultValueInternal": false + }, + { + "name": "maxTextLength", + "displayName": "Max Text Length", + "category": "General", + "displayPriority": 27, + "description": "Maximum number of characters that can be entered in the TextBox", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "cellBackground": { + "$ref": "tchmi:framework#/definitions/Color" + }, + "textColor": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "name": { + "type": "string" + }, + "label": { + "type": "string" + }, + "control": { + "type": "string", + "enum": [ + "TextBox", + "TextBlock", + "CheckBox", + "Image", + "ComboBox", + "NumericInput", + "SpinboxInput", + "PasswordInput", + "Button", + "ToggleButton", + "ToggleSwitch", + "RadioButton", + "DateTimeInput", + "TimespanInput", + "CustomMessage" + ] + }, + "width": { + "type": "number", + "minimum": 0 + }, + "widthUnit": { + "$ref": "tchmi:framework#/definitions/MeasurementUnitOrFactor" + }, + "editable": { + "type": "boolean" + }, + "minWidth": { + "type": "number", + "minimum": 0 + }, + "minWidthUnit": { + "$ref": "tchmi:framework#/definitions/MeasurementUnit" + }, + "resize": { + "type": "boolean" + }, + "sortable": { + "type": "boolean" + }, + "horizontalAlignment": { + "$ref": "tchmi:framework#/definitions/HorizontalAlignment" + }, + "verticalAlignment": { + "$ref": "tchmi:framework#/definitions/VerticalAlignment" + }, + "headerHorizontalAlignment": { + "$ref": "tchmi:framework#/definitions/HorizontalAlignment" + }, + "headerVerticalAlignment": { + "$ref": "tchmi:framework#/definitions/VerticalAlignment" + }, + "format": { + "$ref": "tchmi:framework#/definitions/Function" + }, + "dataDefinitions": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiDatagrid.DataDefinitionList" + }, + "ignoreEscapeSequences": { + "type": "boolean" + }, + "autoFocusOut": { + "type": "boolean" + }, + "autoSelectText": { + "type": "boolean" + }, + "maxTextLength": { + "type": "integer", + "minimum": 0 + } + }, + "required": [ + "label", + "control", + "width", + "widthUnit", + "resize", + "minWidth", + "minWidthUnit", + "editable", + "horizontalAlignment", + "verticalAlignment" + ], + "additionalProperties": false + } + }, + { + "type": "object", + "propertiesMeta": [ + { + "name": "cellBackground", + "displayName": "Cell Background", + "category": "Colors", + "displayPriority": 10, + "description": "Background color of the cells in this column", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "textColor", + "displayName": "Text Color", + "category": "Colors", + "displayPriority": 10, + "description": "Text color of the cells in this column", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "label", + "displayName": "Label", + "category": "General", + "displayPriority": 10, + "description": "Name of the label for this column", + "defaultValue": "", + "defaultValueInternal": null + }, + { + "name": "control", + "displayName": "Control", + "category": "General", + "displayPriority": 10, + "description": "Type of the input elements for this column", + "defaultValue": "TextBox", + "defaultValueInternal": "TextBlock" + }, + { + "name": "width", + "displayName": "Width", + "category": "General", + "displayPriority": 10, + "description": "Width for this column", + "defaultValue": 100, + "defaultValueInternal": null + }, + { + "name": "widthUnit", + "refTo": "width", + "displayName": "Width Unit", + "category": "General", + "displayPriority": 10, + "description": "Width unit for this column", + "defaultValue": "px", + "defaultValueInternal": "px" + }, + { + "name": "resize", + "displayName": "Resize", + "category": "General", + "displayPriority": 10, + "description": "Can this column be resized?", + "defaultValue": false, + "defaultValueInternal": false + }, + { + "name": "minWidth", + "displayName": "Min Width", + "category": "General", + "displayPriority": 10, + "description": "Minimum width for this column", + "defaultValue": 100, + "defaultValueInternal": null + }, + { + "name": "minWidthUnit", + "refTo": "minWidth", + "displayName": "Min Width Unit", + "category": "General", + "displayPriority": 10, + "description": "Minimum width unit for this column", + "defaultValue": "px", + "defaultValueInternal": "px" + }, + { + "name": "editable", + "displayName": "Editable", + "category": "General", + "displayPriority": 10, + "description": "Can this column be edited (text, number) or operated (button, checkbox)?", + "defaultValue": false, + "defaultValueInternal": false + }, + { + "name": "sortable", + "displayName": "Sortable", + "category": "General", + "displayPriority": 10, + "description": "Can this column be sorted by user interaction?", + "defaultValue": true, + "defaultValueInternal": false + }, + { + "name": "horizontalAlignment", + "displayName": "Horizontal Alignment", + "category": "General", + "displayPriority": 10, + "description": "Horizontal alignment of this column", + "defaultValue": "Left", + "defaultValueInternal": "Left" + }, + { + "name": "verticalAlignment", + "displayName": "Vertical Alignment", + "category": "General", + "displayPriority": 10, + "description": "Vertical alignment of this column", + "defaultValue": "Center", + "defaultValueInternal": "Center" + }, + { + "name": "headerHorizontalAlignment", + "displayName": "Header Horizontal Alignment", + "category": "General", + "displayPriority": 10, + "description": "Horizontal alignment of the header of this column", + "defaultValue": "Center", + "defaultValueInternal": "Center" + }, + { + "name": "headerVerticalAlignment", + "displayName": "Header Vertical Alignment", + "category": "General", + "displayPriority": 10, + "description": "Vertical alignment of the header of this column", + "defaultValue": "Center", + "defaultValueInternal": "Center" + }, + { + "name": "format", + "displayName": "Format", + "category": "General", + "displayPriority": 10, + "description": "A reference of function which is called with each entry", + "allowedFunctions": { + "returnType": "tchmi:general#/definitions/String", + "requiredArguments": [ + { + "type": "tchmi:general#/definitions/Any", + "description": "The value to format." + } + ], + "requiredWaitMode": "Synchronous" + }, + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "dataDefinitions", + "displayName": "Data Definitions", + "category": "General", + "displayPriority": 10, + "description": "Mapping from the srcData to a combobox or image selection. \nText to show on Buttons. \nRestrictions for number inputs.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "ignoreEscapeSequences", + "displayName": "Ignore Escape Sequences", + "category": "General", + "displayPriority": 10, + "description": "When set to true a backslash in a text will be shown verbatim in the HMI", + "defaultValue": false, + "defaultValueInternal": false + }, + { + "name": "autoFocusOut", + "displayName": "Auto Focus Out", + "category": "General", + "displayPriority": 10, + "description": "When set to true the control will automatically lose focus when the user presses the enter or escape key", + "defaultValue": true, + "defaultValueInternal": true + }, + { + "name": "autoSelectText", + "displayName": "Auto Select Text", + "category": "General", + "displayPriority": 10, + "description": "When set to true all text within the control will be selected when the control gains focus", + "defaultValue": false, + "defaultValueInternal": false + }, + { + "name": "maxTextLength", + "displayName": "Max Text Length", + "category": "General", + "displayPriority": 27, + "description": "Maximum number of characters that can be entered in the TextBox", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "cellBackground": { + "$ref": "tchmi:framework#/definitions/Color" + }, + "textColor": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "label": { + "type": "string" + }, + "control": { + "type": "string", + "enum": [ + "TextBox", + "TextBlock", + "CheckBox", + "Image", + "ComboBox", + "NumericInput", + "SpinboxInput", + "PasswordInput", + "Button", + "ToggleButton", + "ToggleSwitch", + "RadioButton", + "DateTimeInput", + "TimespanInput" + ] + }, + "width": { + "type": "number", + "minimum": 0 + }, + "widthUnit": { + "$ref": "tchmi:framework#/definitions/MeasurementUnitOrFactor" + }, + "resize": { + "type": "boolean" + }, + "minWidth": { + "type": "number", + "minimum": 0 + }, + "minWidthUnit": { + "$ref": "tchmi:framework#/definitions/MeasurementUnit" + }, + "editable": { + "type": "boolean" + }, + "sortable": { + "type": "boolean" + }, + "horizontalAlignment": { + "$ref": "tchmi:framework#/definitions/HorizontalAlignment" + }, + "verticalAlignment": { + "$ref": "tchmi:framework#/definitions/VerticalAlignment" + }, + "headerHorizontalAlignment": { + "$ref": "tchmi:framework#/definitions/HorizontalAlignment" + }, + "headerVerticalAlignment": { + "$ref": "tchmi:framework#/definitions/VerticalAlignment" + }, + "format": { + "$ref": "tchmi:framework#/definitions/Function" + }, + "dataDefinitions": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiDatagrid.DataDefinitionList" + }, + "ignoreEscapeSequences": { + "type": "boolean" + }, + "autoFocusOut": { + "type": "boolean" + }, + "autoSelectText": { + "type": "boolean" + }, + "maxTextLength": { + "type": "integer", + "minimum": 0 + } + }, + "required": [ + "label", + "control", + "width", + "widthUnit", + "resize", + "minWidth", + "minWidthUnit", + "editable", + "horizontalAlignment", + "verticalAlignment" + ], + "additionalProperties": false + } + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiDatagrid.DataDefinitionList": { + "anyOf": [ + { + "type": "array", + "title": "Definition for an image control", + "items": { + "type": "object", + "title": "Definition for an image selection", + "engineeringColumns": [ + "value", + "source", + "width", + "height", + "text" + ], + "propertiesMeta": [ + { + "name": "value", + "displayName": "Value", + "category": "General", + "displayPriority": 10, + "description": "Value which is compared to select this image.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "source", + "displayName": "Source", + "category": "General", + "displayPriority": 10, + "description": "Path to the image.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "width", + "displayName": "Width", + "category": "General", + "displayPriority": 10, + "description": "Pixel width for this image", + "defaultValue": 0, + "defaultValueInternal": null + }, + { + "name": "height", + "displayName": "Height", + "category": "General", + "displayPriority": 10, + "description": "Pixel height for this image", + "defaultValue": 0, + "defaultValueInternal": null + }, + { + "name": "text", + "displayName": "Text", + "category": "General", + "displayPriority": 10, + "description": "Alt text (tooltip) for this image", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "value": { + "$ref": "tchmi:general#/definitions/Any" + }, + "source": { + "$ref": "tchmi:framework#/definitions/Path" + }, + "width": { + "type": "number", + "minimum": 0 + }, + "height": { + "type": "number", + "minimum": 0 + }, + "text": { + "type": "string" + } + }, + "required": [ + "value", + "source", + "width", + "height" + ], + "additionalProperties": false + } + }, + { + "type": "array", + "title": "Definition for a combobox control", + "items": { + "type": "object", + "title": "Definition for a combobox entry", + "engineeringColumns": [ + "text", + "value" + ], + "propertiesMeta": [ + { + "name": "value", + "displayName": "Value", + "category": "General", + "displayPriority": 10, + "description": "Value which is compared to create this entry.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "text", + "displayName": "Text", + "category": "General", + "displayPriority": 10, + "description": "Text to show for this entry", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "value": { + "$ref": "tchmi:general#/definitions/Any" + }, + "text": { + "type": "string" + } + }, + "required": [ + "value", + "text" + ], + "additionalProperties": false + } + }, + { + "type": "object", + "title": "Definition for a numeric input control", + "properties": { + "minValue": { + "type": "number" + }, + "maxValue": { + "type": "number" + }, + "decimalDigits": { + "type": "number", + "minimum": 0 + }, + "decimalPrecisionMode": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiNumericInput.DecimalPrecisionMode" + }, + "unit": { + "type": "string", + "minLength": 1 + }, + "resetToLastValidValue": { + "type": "boolean" + } + }, + "propertiesMeta": [ + { + "name": "minValue", + "displayName": "Min Value", + "category": "General", + "displayPriority": 10, + "description": "The minimal value of the numeric input. No restrictions if it's unset.", + "defaultValue": 0, + "defaultValueInternal": null + }, + { + "name": "maxValue", + "displayName": "Max Value", + "category": "General", + "displayPriority": 10, + "description": "The maximal value of the numeric input. No restrictions if it's unset.", + "defaultValue": 100, + "defaultValueInternal": null + }, + { + "name": "decimalDigits", + "displayName": "Decimal Digits", + "category": "General", + "displayPriority": 10, + "description": "Number of displayed decimal digits. No restrictions if it's unset.", + "defaultValue": 0, + "defaultValueInternal": null + }, + { + "name": "decimalPrecisionMode", + "displayName": "Decimal Precision Mode", + "category": "General", + "displayPriority": 10, + "description": "Select whether decimal digits are rounded or truncated.", + "defaultValue": null, + "defaultValueInternal": "Truncate" + }, + { + "name": "unit", + "displayName": "Unit", + "category": "General", + "displayPriority": 10, + "description": "Unit of the numeric input. Only has a visual effect.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "resetToLastValidValue", + "displayName": "Reset to Last Valid Value", + "category": "General", + "displayPriority": 10, + "description": "Whether the displayed text is reset to the last valid value on focus out.", + "defaultValue": null, + "defaultValueInternal": false + } + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Definition for a spinbox input control", + "properties": { + "minValue": { + "type": "number" + }, + "maxValue": { + "type": "number" + }, + "decimalDigits": { + "type": "number", + "minimum": 0 + }, + "decimalPrecisionMode": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiNumericInput.DecimalPrecisionMode" + }, + "step": { + "type": "number" + }, + "unit": { + "type": "string", + "minLength": 1 + }, + "resetToLastValidValue": { + "type": "boolean" + } + }, + "propertiesMeta": [ + { + "name": "step", + "displayName": "Step", + "category": "General", + "displayPriority": 10, + "description": "Defines in which step increasing/decreasing the value is possible. \nIf you define a decimal number here it is recommended to set the 'decimal digits' property too to have an effect.", + "defaultValue": 1, + "defaultValueInternal": 1 + }, + { + "name": "minValue", + "displayName": "Min Value", + "category": "General", + "displayPriority": 10, + "description": "The minimal value of the numeric input. No restrictions if it's unset.", + "defaultValue": 0, + "defaultValueInternal": null + }, + { + "name": "maxValue", + "displayName": "Max Value", + "category": "General", + "displayPriority": 10, + "description": "The maximal value of the numeric input. No restrictions if it's unset.", + "defaultValue": 100, + "defaultValueInternal": null + }, + { + "name": "decimalDigits", + "displayName": "Decimal Digits", + "category": "General", + "displayPriority": 10, + "description": "Number of displayed decimal digits. No restrictions if it's unset.", + "defaultValue": 0, + "defaultValueInternal": null + }, + { + "name": "decimalPrecisionMode", + "displayName": "Decimal Precision Mode", + "category": "General", + "displayPriority": 10, + "description": "Select whether decimal digits are rounded or truncated.", + "defaultValue": null, + "defaultValueInternal": "Truncate" + }, + { + "name": "unit", + "displayName": "Unit", + "category": "General", + "displayPriority": 10, + "description": "Unit of the numeric input. Only has an aesthetic effect.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "resetToLastValidValue", + "displayName": "Reset to Last Valid Value", + "category": "General", + "displayPriority": 10, + "description": "Whether the displayed text is reset to the last valid value on focus out.", + "defaultValue": null, + "defaultValueInternal": false + } + ], + "additionalProperties": false, + "required": [ + "step" + ] + }, + { + "type": "object", + "title": "Definition for a button control", + "properties": { + "text": { + "$ref": "tchmi:general#/definitions/String" + } + }, + "propertiesMeta": [ + { + "name": "text", + "displayName": "Text", + "category": "General", + "displayPriority": 10, + "description": "Defines the text of the button.", + "defaultValue": "", + "defaultValueInternal": null + } + ], + "additionalProperties": false + } + ] + }, + "TcHmiDatagrid": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiDatagrid" + }, + "TcHmi.Controls.Beckhoff.TcHmiDatagrid.DataChangedEventObject": { + "type": "object", + "properties": { + "index": { + "type": "number" + }, + "property": { + "type": [ + "string", + "null" + ] + }, + "value": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "TcHmiDatagridDataChangedEventObject": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiDatagrid.DataChangedEventObject" + }, + "TcHmi.Controls.Beckhoff.TcHmiDateTimeDisplay": { + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiDateTimeDisplay", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiDateTimeDisplay": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiDateTimeDisplay" + }, + "TcHmi.Controls.Beckhoff.TcHmiDateTimeDisplay.TimeDisplayLayout": { + "type": "string", + "enum": [ + "Time", + "Date", + "TimeDateSingleLine", + "TimeDateMultiLine", + "DateTimeSingleLine", + "DateTimeMultiLine" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiDateTimeInput": { + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiDateTimeInput", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiDateTimeInput": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiDateTimeInput" + }, + "TcHmi.Controls.Beckhoff.TcHmiDateTimeInput.ButtonPosition": { + "title": "DateTimeInputButtonPosition", + "type": "string", + "enum": [ + "Left", + "Right" + ], + "default": "Right" + }, + "TcHmi.Controls.Beckhoff.TcHmiDateTimePicker": { + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiDateTimePicker", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiDateTimePicker": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiDateTimePicker" + }, + "TcHmi.Controls.Beckhoff.TcHmiEllipse": { + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiEllipse", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiEllipse": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiEllipse" + }, + "EventGridColumnList": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiEventGrid.ColumnList" + }, + "EventGridMenuBarPosition": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiEventGrid.MenuBarPosition" + }, + "TcHmi.Controls.Beckhoff.TcHmiEventGrid": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiEventGrid", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmi.Controls.Beckhoff.TcHmiEventGrid.ColumnList": { + "title": "ColumnList", + "type": "array", + "items": { + "anyOf": [ + { + "title": "Column", + "type": "object", + "engineeringColumns": [ + "columnName" + ], + "propertiesMeta": [ + { + "name": "columnName", + "displayName": "Column Name", + "category": "General", + "displayPriority": 10, + "description": "Source of this column", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "width", + "displayName": "Width", + "category": "General", + "displayPriority": 10, + "description": "Width of this column", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "widthUnit", + "refTo": "width", + "displayName": "Width Unit", + "category": "General", + "displayPriority": 10, + "description": "Width unit of this column. px defines an absolute width, % is relative to the control width and factor can be used to divide the available space into fractions.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "sortable", + "displayName": "Sortable", + "category": "General", + "displayPriority": 10, + "description": "Whether it should be possible to sort this column", + "defaultValue": true, + "defaultValueInternal": null + }, + { + "name": "format", + "displayName": "Format", + "category": "General", + "displayPriority": 10, + "description": "A reference of function which is called with each entry", + "allowedFunctions": { + "returnType": "tchmi:general#/definitions/String", + "requiredArguments": [ + { + "type": "tchmi:general#/definitions/Any", + "description": "The value to format." + } + ], + "requiredWaitMode": "Synchronous" + }, + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "columnName": { + "type": "string", + "enum": [ + "severity", + "type", + "alarmState", + "confirmationState", + "domain", + "sourceDomain", + "name", + "text", + "timeAndDateRaised", + "timeRaised", + "dateRaised", + "timeAndDateConfirmed", + "timeConfirmed", + "dateConfirmed", + "timeAndDateCleared", + "timeCleared", + "dateCleared" + ] + }, + "width": { + "$ref": "tchmi:framework#/definitions/MeasurementValue" + }, + "widthUnit": { + "$ref": "tchmi:framework#/definitions/MeasurementUnitOrFactor" + }, + "sortable": { + "type": "boolean", + "default": true + }, + "format": { + "$ref": "tchmi:framework#/definitions/Function" + } + }, + "required": [ + "columnName" + ], + "additionalProperties": false + }, + { + "title": "Custom column", + "type": "object", + "engineeringColumns": [ + "columnName" + ], + "propertiesMeta": [ + { + "name": "columnName", + "displayName": "Column Name", + "category": "General", + "displayPriority": 10, + "description": "Source of this column", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "label", + "displayName": "Label", + "category": "General", + "displayPriority": 10, + "description": "Label of this column", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "width", + "displayName": "Width", + "category": "General", + "displayPriority": 10, + "description": "Width of this column", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "widthUnit", + "refTo": "width", + "displayName": "Width Unit", + "category": "General", + "displayPriority": 10, + "description": "Width unit of this column. px defines an absolute width, % is relative to the control width and factor can be used to divide the available space into fractions.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "sortable", + "displayName": "Sortable", + "category": "General", + "displayPriority": 10, + "description": "Whether it should be possible to sort this column", + "defaultValue": true, + "defaultValueInternal": null + }, + { + "name": "format", + "displayName": "Format", + "category": "General", + "displayPriority": 10, + "description": "A reference of function which is called with each entry", + "allowedFunctions": { + "returnType": "tchmi:general#/definitions/String", + "requiredArguments": [ + { + "type": "tchmi:general#/definitions/Any", + "description": "The value to format." + } + ], + "requiredWaitMode": "Synchronous" + }, + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "columnName": { + "type": "string", + "pattern": "^params::" + }, + "label": { + "type": "string" + }, + "width": { + "$ref": "tchmi:framework#/definitions/MeasurementValue" + }, + "widthUnit": { + "$ref": "tchmi:framework#/definitions/MeasurementUnitOrFactor" + }, + "sortable": { + "type": "boolean", + "default": true + }, + "format": { + "$ref": "tchmi:framework#/definitions/Function" + } + }, + "required": [ + "columnName" + ], + "additionalProperties": false + } + ] + } + }, + "TcHmi.Controls.Beckhoff.TcHmiEventGrid.MenuBarPosition": { + "type": "string", + "enum": [ + "Top", + "Bottom", + "Left", + "Right" + ], + "default": "Top" + }, + "TcHmi.Controls.Beckhoff.TcHmiEventGrid.ServerEvent": { + "$ref": "tchmi:framework#/definitions/ServerEvent" + }, + "TcHmi.Controls.Beckhoff.TcHmiEventGrid.IconDefinition": { + "title": "IconDefinition", + "type": "object", + "propertiesMeta": [ + { + "name": "imagePath", + "category": "General", + "displayName": "Image Path", + "displayPriority": 10, + "description": "Path to a Pixel or Vector Image.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "width", + "category": "General", + "displayName": "Width", + "displayPriority": 10, + "description": "Width of the icon", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "height", + "category": "General", + "displayName": "Height", + "displayPriority": 10, + "description": "Height of the icon", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "imagePath": { + "$ref": "tchmi:framework#/definitions/Path" + }, + "width": { + "type": "number" + }, + "height": { + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "imagePath", + "width", + "height" + ] + }, + "TcHmiEventGrid": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiEventGrid" + }, + "TcHmi.Controls.Beckhoff.TcHmiEventLine": { + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiEventLine", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiEventLine": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiEventLine" + }, + "TcHmi.Controls.Beckhoff.TcHmiEventLine.MessageFormat": { + "title": "MessageFormat", + "type": "array", + "engineeringColumns": [ + "title" + ], + "items": { + "anyOf": [ + { + "title": "Event Property", + "type": "object", + "propertiesMeta": [ + { + "name": "name", + "displayName": "Name", + "category": "General", + "displayPriority": 10, + "description": "A Part of the displayed message.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "format", + "displayName": "Format", + "category": "General", + "displayPriority": 10, + "description": "A reference of function which is called with each entry", + "allowedFunctions": { + "returnType": "tchmi:general#/definitions/String", + "requiredArguments": [ + { + "type": "tchmi:general#/definitions/String", + "description": "The message to format." + } + ], + "requiredWaitMode": "Synchronous" + }, + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "name": { + "type": "string", + "enum": [ + "type", + "severity", + "alarmState", + "confirmationState", + "domain", + "sourceDomain", + "name", + "text", + "timeReceived", + "timeRaised", + "timeConfirmed", + "timeCleared" + ] + }, + "format": { + "$ref": "tchmi:framework#/definitions/Function" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + { + "title": "Event Parameter", + "type": "object", + "propertiesMeta": [ + { + "name": "name", + "displayName": "Name", + "category": "General", + "displayPriority": 10, + "description": "The Path to a property of the received event. Subproperties can be accessed with the '::' seperator.", + "defaultValue": "params::", + "defaultValueInternal": null + } + ], + "properties": { + "name": { + "type": "string", + "pattern": "^params::" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + }, + { + "title": "Text", + "type": "object", + "propertiesMeta": [ + { + "name": "text", + "displayName": "Text", + "category": "General", + "displayPriority": 10, + "description": "A custom text displayed in the event message.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "format", + "displayName": "Format", + "category": "General", + "displayPriority": 10, + "description": "A reference of function which is called with each entry", + "allowedFunctions": { + "returnType": "tchmi:general#/definitions/String", + "requiredArguments": [ + { + "type": "tchmi:general#/definitions/String", + "description": "The message to format." + } + ], + "requiredWaitMode": "Synchronous" + }, + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "text": { + "type": "string" + }, + "format": { + "$ref": "tchmi:framework#/definitions/Function" + } + }, + "required": [ + "text" + ], + "additionalProperties": false + } + ] + } + }, + "TcHmi.Controls.Beckhoff.TcHmiEventLine.TextOverflow": { + "type": "string", + "enum": [ + "Ellipsis", + "MarqueeLeftToRight", + "MarqueeRightToLeft" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiFileExplorer": { + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiFileExplorer", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmi.Controls.Beckhoff.TcHmiFileExplorer.MenuBarPosition": { + "type": "string", + "enum": [ + "Top", + "Bottom" + ], + "default": "Top" + }, + "TcHmi.Controls.Beckhoff.TcHmiFileExplorer.NameArray": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "TcHmi.Controls.Beckhoff.TcHmiFileExplorer.Sorting": { + "title": "File sorting", + "type": "array", + "items": { + "title": "Sorting criterion", + "type": "object", + "engineeringColumns": [ + "name", + "order" + ], + "propertiesMeta": [ + { + "name": "name", + "displayName": "Name", + "category": "General", + "displayPriority": 10, + "description": "Name of the property to sort by", + "defaultValue": "name", + "defaultValueInternal": null + }, + { + "name": "order", + "displayName": "Order", + "category": "General", + "displayPriority": 10, + "description": "Sort definition", + "defaultValue": "Ascending", + "defaultValueInternal": null + } + ], + "properties": { + "name": { + "type": "string", + "enum": [ + "name", + "type", + "fileSize", + "modificationTime" + ], + "default": "name" + }, + "order": { + "type": "string", + "enum": [ + "Ascending", + "Descending" + ], + "default": "Ascending" + } + }, + "required": [ + "name", + "order" + ], + "additionalProperties": false + } + }, + "TcHmiFileExplorer": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiFileExplorer" + }, + "TcHmi.Controls.Beckhoff.TcHmiHorizontalBarChart": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiHorizontalBarChart", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmi.Controls.Beckhoff.TcHmiHorizontalBarChart.ChartBarGraphColorList": { + "title": "ChartBarGraphColorList", + "engineeringDefaultDatatype": 0, + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "tchmi:framework#/definitions/SolidColor" + } + }, + { + "$ref": "tchmi:framework#/definitions/SolidColor" + } + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiHorizontalBarChart.ChartBarGraphDataDefinitionList": { + "title": "ChartBarGraphDataDefinitionList", + "engineeringDefaultDatatype": 0, + "anyOf": [ + { + "type": "array", + "title": "Array>", + "items": { + "type": "array", + "items": { + "type": "number" + } + } + }, + { + "type": "array", + "title": "Array", + "items": { + "type": "number" + } + } + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiHorizontalBarChart.ChartBarGraphPosition": { + "title": "ChartBarGraphPosition", + "type": "string", + "enum": [ + "Left", + "Right" + ], + "default": "Left" + }, + "TcHmi.Controls.Beckhoff.TcHmiHorizontalBarChart.ChartBarGraphArrangement": { + "title": "ChartBarGraphArrangement", + "type": "string", + "enum": [ + "Overlapped", + "Clustered", + "Stacked" + ], + "default": "Overlapped" + }, + "TcHmi.Controls.Beckhoff.TcHmiHorizontalBarChart.ChartBarGraphDescriptionDefinitionList": { + "title": "ChartBarGraphDescriptionDefinitionList", + "type": "array", + "items": { + "type": "object", + "engineeringColumns": [ + "legendName" + ], + "propertiesMeta": [ + { + "name": "barColor", + "displayName": "Bar Color", + "category": "Colors", + "displayPriority": 10, + "description": "Color for this bars", + "defaultValue": { + "color": "#2775be" + }, + "defaultValueInternal": null + }, + { + "name": "legendName", + "category": "General", + "displayName": "Legend Name", + "displayPriority": 10, + "description": "The name that is displayed in the legend.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "scaleFactor", + "category": "General", + "displayName": "Scale Factor", + "displayPriority": 10, + "description": "Scales all values with this scale factor.", + "defaultValue": null, + "defaultValueInternal": 1 + }, + { + "name": "colorRanges", + "category": "General", + "displayName": "Color Ranges", + "displayPriority": 10, + "description": "An array of colors to be used in different ranges.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "defaultVisibility", + "category": "General", + "displayName": "Default Visibility", + "displayPriority": 10, + "description": "Default value for visibility.", + "defaultValue": null, + "defaultValueInternal": true + } + ], + "properties": { + "barColor": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "legendName": { + "type": "string" + }, + "scaleFactor": { + "type": "number" + }, + "colorRanges": { + "type": "array", + "items": { + "type": "object", + "properties": { + "color": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "expression": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiHorizontalBarChart.ChartBarColorFilter" + } + }, + "additionalProperties": false + } + }, + "defaultVisibility": { + "type": "boolean" + } + }, + "additionalProperties": false + } + }, + "TcHmi.Controls.Beckhoff.TcHmiHorizontalBarChart.ChartBarColorFilter": { + "title": "ChartBarColorFilter", + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "path": { + "type": "string", + "enum": [ + "{value}" + ], + "default": "{value}" + }, + "comparator": { + "type": "string", + "enum": [ + "==", + "!=", + "<", + ">", + "<=", + ">=" + ], + "default": "==" + }, + "value": { + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "path", + "comparator", + "value" + ] + }, + { + "type": "object", + "properties": { + "logic": { + "enum": [ + "AND", + "OR" + ], + "type": "string" + } + }, + "required": [ + "logic" + ], + "additionalProperties": false + }, + { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiHorizontalBarChart.ChartBarColorFilter" + } + ] + } + }, + "TcHmi.Controls.Beckhoff.TcHmiHorizontalBarChart.ChartAxisLabeling": { + "title": "ChartAxisLabeling", + "type": "string", + "enum": [ + "Number", + "Scientific", + "Auto" + ], + "default": "Number" + }, + "TcHmi.Controls.Beckhoff.TcHmiHorizontalBarChart.ChartReferenceLineDefinition": { + "title": "ChartReferenceLineDefinition", + "type": "object", + "engineeringColumns": [ + "name", + "value", + "orientation" + ], + "propertiesMeta": [ + { + "name": "show", + "category": "General", + "displayName": "Show", + "displayPriority": 10, + "description": "Describes whether the reference line is displayed.", + "defaultValue": null, + "defaultValueInternal": true + }, + { + "name": "name", + "category": "General", + "displayName": "Name", + "displayPriority": 10, + "description": "Describes the name of the reference line.", + "defaultValue": null, + "defaultValueInternal": "" + }, + { + "name": "orientation", + "category": "General", + "displayName": "Orientation", + "displayPriority": 10, + "description": "Describes whether the reference line is vertical or horizontal.", + "defaultValue": "Horizontal", + "defaultValueInternal": "Horizontal" + }, + { + "name": "value", + "category": "General", + "displayName": "Value", + "displayPriority": 10, + "description": "Describes the value of the reference line.", + "defaultValue": null, + "defaultValueInternal": 0 + }, + { + "name": "valueUnit", + "category": "General", + "displayName": "Value Unit", + "displayPriority": 10, + "description": "Describes the unit of the value of the reference line (Value or %).", + "defaultValue": "Value", + "defaultValueInternal": "Value" + }, + { + "name": "color", + "category": "Colors", + "displayName": "Color", + "displayPriority": 10, + "description": "Describes the color of the reference line.", + "defaultValue": "%tr%Control::TcHmi.Controls.Beckhoff.TcHmiHorizontalBarChart::ReferenceLineColor%/tr%", + "defaultValueInternal": { + "color": "#4794da" + } + }, + { + "name": "lineWidth", + "category": "General", + "displayName": "Line Width", + "displayPriority": 10, + "description": "Describes the line thickness of the reference line.", + "defaultValue": null, + "defaultValueInternal": 1 + }, + { + "name": "showLabel", + "category": "General", + "displayName": "Show Label", + "displayPriority": 10, + "description": "Describes whether the description of the reference line is displayed.", + "defaultValue": null, + "defaultValueInternal": true + }, + { + "name": "labelHorizontalAlignment", + "category": "General", + "displayName": "Label Horizontal Alignment", + "displayPriority": 10, + "description": "Describes the horizontal alignment of the reference line description.", + "defaultValue": null, + "defaultValueInternal": "Right" + }, + { + "name": "labelVerticalAlignment", + "category": "General", + "displayName": "Label Vertical Alignment", + "displayPriority": 10, + "description": "Describes the vertical alignment of the reference line description.", + "defaultValue": null, + "defaultValueInternal": "Top" + }, + { + "name": "labelFontFamily", + "category": "General", + "displayName": "Label Font Family", + "displayPriority": 10, + "description": "Describes the font of the description of the reference line. Comma separated list of family name or keyword: 'serif', 'sans-serif', 'monospace'.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "labelFontSize", + "category": "General", + "displayName": "Label Font Size", + "displayPriority": 10, + "description": "Describes the font size of the description of the reference line.", + "defaultValue": null, + "defaultValueInternal": 12 + }, + { + "name": "labelFontSizeUnit", + "refTo": "labelFontSize", + "category": "General", + "displayName": "Label Font Size Unit", + "displayPriority": 10, + "description": "Describes the font size unit of the description of the reference line.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "labelFontWeight", + "category": "General", + "displayName": "Label Font Weight", + "displayPriority": 10, + "description": "Describes the font weight of the description of the reference line. 'Normal', 'Bold' (glyphs with more weight) or 'Auto' for inherited.", + "defaultValue": null, + "defaultValueInternal": "Auto" + } + ], + "properties": { + "show": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "orientation": { + "type": "string", + "enum": [ + "Horizontal", + "Vertical" + ] + }, + "value": { + "type": "number" + }, + "valueUnit": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.ChartReferenceLineValueUnit" + }, + "color": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "lineWidth": { + "type": "number" + }, + "showLabel": { + "type": "boolean" + }, + "labelHorizontalAlignment": { + "$ref": "tchmi:framework#/definitions/HorizontalAlignment" + }, + "labelVerticalAlignment": { + "$ref": "tchmi:framework#/definitions/VerticalAlignment" + }, + "labelFontFamily": { + "$ref": "tchmi:framework#/definitions/FontFamily" + }, + "labelFontSize": { + "$ref": "tchmi:framework#/definitions/MeasurementValue" + }, + "labelFontSizeUnit": { + "$ref": "tchmi:framework#/definitions/PixelUnit" + }, + "labelFontWeight": { + "$ref": "tchmi:framework#/definitions/FontWeight" + } + }, + "additionalProperties": false, + "required": [ + "name", + "value", + "orientation" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiHorizontalBarChart.ChartReferenceLineDefinitionList": { + "$schema": "http://json-schema.org/draft-04/schema", + "title": "ChartReferenceLineDefinitionList", + "type": "array", + "items": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiHorizontalBarChart.ChartReferenceLineDefinition" + } + }, + "TcHmi.Controls.Beckhoff.TcHmiHorizontalBarChart.ChartReferenceLinesPosition": { + "title": "ChartReferenceLinesPosition", + "type": "string", + "enum": [ + "Background", + "Foreground" + ], + "default": "Background" + }, + "TcHmiHorizontalBarChart": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiHorizontalBarChart" + }, + "TcHmi.Controls.Beckhoff.TcHmiIFrame": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiIFrame", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiIFrame": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiIFrame" + }, + "TcHmi.Controls.Beckhoff.TcHmiImage": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiImage", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiImage": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiImage" + }, + "TcHmi.Controls.Beckhoff.TcHmiInput": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiInput", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiInput": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiInput" + }, + "TcHmi.Controls.Beckhoff.TcHmiKeyboard.ProjectKeyboardLayouts": { + "type": "string", + "description": "A path of a keyboard layout in the project." + }, + "KeyList": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiKeyboard.KeyList" + }, + "TcHmi.Controls.Beckhoff.TcHmiKeyboard": { + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiKeyboard", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmi.Controls.Beckhoff.TcHmiKeyboard.KeyList": { + "title": "KeyList", + "description": "Array of keys.", + "type": "array", + "items": { + "type": "object", + "engineeringColumns": [ + "code", + "key" + ], + "propertiesMeta": [ + { + "name": "code", + "displayName": "Code", + "category": "General", + "displayPriority": 10, + "description": "Special string for each physical key on the keyboard (does not have to be the same as the corresponding char)", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "key", + "displayName": "Key", + "category": "General", + "displayPriority": 10, + "description": "Value of the key pressed", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "location", + "displayName": "Location", + "category": "General", + "displayPriority": 10, + "description": "Location of the pressed key", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "code": { + "type": "string" + }, + "key": { + "type": "string" + }, + "unmodifiedKey": { + "type": "string" + }, + "location": { + "type": "string", + "enum": [ + "standard", + "left", + "right", + "numpad" + ] + } + }, + "required": [ + "code", + "key", + "unmodifiedKey", + "location" + ], + "additionalProperties": false + } + }, + "TcHmi.Controls.Beckhoff.TcHmiKeyboard.ValidationLevel": { + "type": "string", + "enum": [ + "None", + "HighlightHints", + "DisableAccept" + ] + }, + "TcHmiKeyboard": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiKeyboard" + }, + "ControlKeyboardLayouts": { + "title": "ControlKeyboardLayouts", + "description": "Enum of existing Layouts from the control", + "type": "string", + "enum": [ + "EN-US_QWERTY_standard", + "EN-US_QWERTY_full", + "EN-US_QWERTY_compact", + "DE-DE_QWERTZ_standard", + "DE-DE_QWERTZ_full", + "DE-DE_QWERTZ_compact", + "PINpad", + "Numpad", + "Calculator" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiKeyboard.KeyPressedEventObjects": { + "type": "array", + "items": { + "type": "object", + "properties": { + "element": { + "$ref": "tchmi:framework#/definitions/HTMLElement" + }, + "key": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "key": { + "type": "string" + }, + "unmodifiedKey": { + "type": "string" + }, + "location": { + "type": "string", + "enum": [ + "standard", + "left", + "right", + "numpad" + ] + } + }, + "required": [ + "code", + "key", + "unmodifiedKey", + "location" + ], + "type": "object" + } + }, + "required": [ + "key", + "element" + ], + "additionalProperties": false + } + }, + "TcHmiKeyboardKeyPressedEventObjects": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiKeyboard.KeyPressedEventObjects" + }, + "TcHmi.Controls.Beckhoff.TcHmiKeyboard.Layout": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "dimensions": { + "width": "number", + "height": "number" + }, + "keys": { + "type": "array", + "items": { + "type": "object" + } + } + }, + "additionalProperties": false + }, + "TcHmiKeyboardLayout": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiKeyboard.Layout" + }, + "TcHmi.Controls.Beckhoff.TcHmiKeyboard.LayoutFileEventObject": { + "type": "object", + "properties": { + "layoutFile": { + "$ref": "tchmi:framework#/definitions/TcHmiKeyboardLayout" + } + }, + "additionalProperties": false + }, + "TcHmiKeyboardLayoutFileEventObject": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiKeyboard.LayoutFileEventObject" + }, + "TcHmi.Controls.Beckhoff.TcHmiKeyboard.LayoutEventObject": { + "type": "object", + "properties": { + "layout": { + "$ref": "tchmi:framework#/definitions/TcHmiKeyboardLayout" + } + }, + "additionalProperties": false + }, + "TcHmiKeyboardLayoutEventObject": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiKeyboard.LayoutEventObject" + }, + "TcHmi.Controls.Beckhoff.TcHmiPieChart": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiPieChart", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiPieChart": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiPieChart" + }, + "TcHmi.Controls.Beckhoff.TcHmiPieChart.LabelPosition": { + "title": "LabelPosition", + "type": "string", + "enum": [ + "Outside", + "Inside" + ], + "default": "Inside" + }, + "TcHmi.Controls.Beckhoff.TcHmiPieChart.ChartPieGraphDescriptionDefinitionList": { + "title": "ChartPieGraphDescriptionDefinitionList", + "type": "array", + "items": { + "type": "object", + "engineeringColumns": [ + "name", + "unit" + ], + "propertiesMeta": [ + { + "name": "pieColor", + "displayName": "Pie Color", + "category": "Colors", + "displayPriority": 10, + "description": "Color for this piece of pie", + "defaultValue": { + "color": "#2775be" + }, + "defaultValueInternal": null + }, + { + "name": "labelColor", + "displayName": "Label Color", + "category": "Colors", + "displayPriority": 10, + "description": "Color for the label of piece of pie", + "defaultValue": { + "color": "#2775be" + }, + "defaultValueInternal": null + }, + { + "name": "name", + "category": "General", + "displayName": "Name", + "displayPriority": 10, + "description": "The name that is displayed.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "showName", + "category": "General", + "displayName": "Show Name", + "displayPriority": 10, + "description": "Specifies whether the name should be displayed in the value label.", + "defaultValue": null, + "defaultValueInternal": false + }, + { + "name": "showPercentLabel", + "category": "General", + "displayName": "Show Percent Label", + "displayPriority": 10, + "description": "Specifies whether the percentage label should be displayed.", + "defaultValue": null, + "defaultValueInternal": false + }, + { + "name": "showValueLabel", + "category": "General", + "displayName": "Show Value Label", + "displayPriority": 10, + "description": "Specifies whether the value label should be displayed.", + "defaultValue": null, + "defaultValueInternal": true + }, + { + "name": "showUnit", + "category": "General", + "displayName": "Show Unit", + "displayPriority": 10, + "description": "Specifies whether the unit should be displayed in the value label.", + "defaultValue": null, + "defaultValueInternal": false + } + ], + "properties": { + "pieColor": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "labelColor": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "name": { + "type": "string" + }, + "showName": { + "type": "boolean" + }, + "showValueLabel": { + "type": "boolean" + }, + "showUnit": { + "type": "boolean" + }, + "showPercentLabel": { + "type": "boolean" + } + }, + "additionalProperties": false + } + }, + "TcHmi.Controls.Beckhoff.TcHmiPieChart.ChartPieGraphDataDefinitionList": { + "title": "ChartPieGraphDataDefinitionList", + "type": "array", + "items": { + "type": "number" + } + }, + "TcHmi.Controls.Beckhoff.TcHmiLine": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiLine", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiLine": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiLine" + }, + "LinearGaugeLabelPosition": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiLinearGauge.LabelPosition" + }, + "LinearGaugeOrientation": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiLinearGauge.Orientation" + }, + "LinearGaugeUnitOrientation": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiLinearGauge.UnitOrientation" + }, + "TcHmi.Controls.Beckhoff.TcHmiLinearGauge": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiLinearGauge", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmi.Controls.Beckhoff.TcHmiLinearGauge.LabelPosition": { + "title": "LabelPosition", + "type": "string", + "enum": [ + "Top", + "Bottom", + "Left", + "Right" + ], + "default": "Top" + }, + "TcHmi.Controls.Beckhoff.TcHmiLinearGauge.Orientation": { + "title": "LinearGaugeOrientation", + "type": "string", + "enum": [ + "Horizontal", + "Vertical", + "HorizontalInverted", + "VerticalInverted" + ], + "default": "Horizontal" + }, + "TcHmi.Controls.Beckhoff.TcHmiLinearGauge.UnitOrientation": { + "title": "LinearGaugeUnitOrientation", + "type": "string", + "enum": [ + "Theme", + "Horizontal", + "Vertical" + ], + "default": "Theme" + }, + "TcHmiLinearGauge": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiLinearGauge" + }, + "ChartLineGraphDataDefinitionList": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiLineChart.ChartLineGraphDataDefinitionList" + }, + "ChartLineGraphDescriptionDefinitionList": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiLineChart.ChartLineGraphDescriptionDefinitionList" + }, + "ChartYAxisDefinition": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartYAxisDefinition" + }, + "ChartYAxisDefinitionList": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartYAxisDefinitionList" + }, + "TcHmi.Controls.Beckhoff.TcHmiLineChart": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiLineChart", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmi.Controls.Beckhoff.TcHmiLineChart.ChartMenuBarPosition": { + "title": "ChartMenuBarPosition", + "type": "string", + "enum": [ + "Bottom", + "Top" + ], + "default": "Bottom" + }, + "TcHmi.Controls.Beckhoff.TcHmiLineChart.ChartMouseMode": { + "title": "ChartMouseMode", + "type": "string", + "enum": [ + "PanX", + "PanXY", + "ZoomX", + "ZoomXY" + ], + "default": "PanX" + }, + "TcHmi.Controls.Beckhoff.TcHmiLineChart.ChartLineGraphDataDefinitionList": { + "title": "ChartLineGraphDataDefinitionList", + "anyOf": [ + { + "type": "array", + "title": "Array>", + "items": { + "type": "array", + "title": "List of coordinate pairs", + "items": { + "type": "object", + "title": "Coordinate pair", + "engineeringColumns": [ + "x", + "y" + ], + "propertiesMeta": [ + { + "name": "x", + "displayName": "X", + "category": "General", + "displayPriority": 10, + "description": "x coordinate", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "y", + "displayName": "Y", + "category": "General", + "displayPriority": 10, + "description": "y coordinate", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "x", + "y" + ], + "additionalProperties": false + } + } + }, + { + "type": "array", + "title": "Array>", + "items": { + "type": "array", + "items": { + "type": "number" + } + } + }, + { + "type": "array", + "title": "Array", + "items": { + "type": "number" + } + } + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiLineChart.ChartLineGraphDescriptionDefinitionList": { + "title": "ChartLineGraphDescriptionDefinitionList", + "type": "array", + "items": { + "type": "object", + "engineeringColumns": [ + "yAxisId", + "lineWidth" + ], + "propertiesMeta": [ + { + "name": "lineColor", + "displayName": "Line Color", + "category": "Colors", + "displayPriority": 10, + "description": "Color for this line", + "defaultValue": "%tr%Control::TcHmi.Controls.Beckhoff.TcHmiLineChart::LineGraphDescriptionLineColor%/tr%", + "defaultValueInternal": null + }, + { + "name": "pointDotFillColor", + "displayName": "Point Dot Fill Color", + "category": "Colors", + "displayPriority": 10, + "description": "Color for the fill of the dots", + "defaultValue": "%tr%Control::TcHmi.Controls.Beckhoff.TcHmiLineChart::LineGraphDescriptionPointDotFillColor%/tr%", + "defaultValueInternal": null + }, + { + "name": "pointDotStrokeColor", + "displayName": "Point Dot Stroke Color", + "category": "Colors", + "displayPriority": 10, + "description": "Color for the stroke of the dots", + "defaultValue": "%tr%Control::TcHmi.Controls.Beckhoff.TcHmiLineChart::LineGraphDescriptionPointDotStrokeColor%/tr%", + "defaultValueInternal": null + }, + { + "name": "yAxisId", + "displayName": "Y Axis Id", + "category": "General", + "displayPriority": 10, + "description": "Id of the y-axis to use for this graph", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "lineWidth", + "displayName": "Line Width", + "category": "General", + "displayPriority": 10, + "description": "Line width in pixel", + "defaultValue": 1, + "defaultValueInternal": null + }, + { + "name": "pointDot", + "displayName": "Point Dot", + "category": "General", + "displayPriority": 10, + "description": "Defines if the line has dots on the data points", + "defaultValue": false, + "defaultValueInternal": false + }, + { + "name": "pointDotRadius", + "displayName": "Point Dot Radius", + "category": "General", + "displayPriority": 10, + "description": "Dot radius", + "defaultValue": 3, + "defaultValueInternal": null + }, + { + "name": "pointDotStrokeWidth", + "displayName": "Point Dot Stroke Width", + "category": "General", + "displayPriority": 10, + "description": "Dot stroke width", + "defaultValue": 1, + "defaultValueInternal": null + }, + { + "name": "legendName", + "category": "General", + "displayName": "Legend Name", + "displayPriority": 10, + "description": "The name that is displayed in the legend.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "xScaleFactor", + "category": "General", + "displayName": "X Scale Factor", + "displayPriority": 10, + "description": "Scales all x values with this scale factor.", + "defaultValue": null, + "defaultValueInternal": 1 + }, + { + "name": "yScaleFactor", + "category": "General", + "displayName": "Y Scale Factor", + "displayPriority": 10, + "description": "Scales all y values with this scale factor.", + "defaultValue": null, + "defaultValueInternal": 1 + }, + { + "name": "fillMode", + "displayName": "Fill Mode", + "category": "General", + "displayPriority": 10, + "description": "Fill mode for the fill area", + "defaultValue": null, + "defaultValueInternal": "None" + }, + { + "name": "fillModeReferenceLine", + "displayName": "Fill Mode Reference Line", + "category": "General", + "displayPriority": 10, + "description": "The name of the reference line that is used as the base for the fillMode.", + "defaultValue": null, + "defaultValueInternal": "None" + }, + { + "name": "fillColor", + "displayName": "Fill Color", + "category": "Colors", + "displayPriority": 10, + "description": "Color for the fill area", + "defaultValue": "%tr%Control::TcHmi.Controls.Beckhoff.TcHmiLineChart::LineGraphDescriptionFillColor%/tr%", + "defaultValueInternal": null + }, + { + "name": "fillTransparency", + "displayName": "Fill Transparency", + "category": "General", + "displayPriority": 10, + "description": "Fill transparency for the fill area (0-255)", + "defaultValue": null, + "defaultValueInternal": 50 + }, + { + "name": "colorRanges", + "category": "General", + "displayName": "Color Ranges", + "displayPriority": 10, + "description": "An array of colors to be used in different ranges.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "defaultVisibility", + "category": "General", + "displayName": "Default Visibility", + "displayPriority": 10, + "description": "Default value for visibility.", + "defaultValue": null, + "defaultValueInternal": true + } + ], + "properties": { + "lineColor": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "pointDotFillColor": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "pointDotStrokeColor": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "yAxisId": { + "type": "integer", + "minimum": 0 + }, + "lineWidth": { + "type": "number" + }, + "pointDot": { + "type": "boolean" + }, + "pointDotRadius": { + "type": "number", + "minimum": 0 + }, + "pointDotStrokeWidth": { + "type": "number", + "minimum": 0 + }, + "legendName": { + "type": "string" + }, + "xScaleFactor": { + "type": "number" + }, + "yScaleFactor": { + "type": "number" + }, + "fillMode": { + "type": "string", + "enum": [ + "None", + "HorizontalZero", + "Top", + "Bottom", + "Center", + "Source", + "ReferenceLine" + ] + }, + "fillModeReferenceLine": { + "type": "string" + }, + "fillColor": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "fillTransparency": { + "type": "number", + "minimum": 0, + "maximum": 255 + }, + "colorRanges": { + "type": "array", + "items": { + "type": "object", + "propertiesMeta": [ + { + "name": "color", + "displayName": "Line Color", + "category": "Colors", + "displayPriority": 10, + "description": "Color for this line expression", + "defaultValue": "%tr%Control::TcHmi.Controls.Beckhoff.TcHmiLineChart::DefaultColorRangeColor%/tr%", + "defaultValueInternal": null + }, + { + "name": "fillColor", + "displayName": "Fill Color", + "category": "Colors", + "displayPriority": 10, + "description": "Color for the fill area", + "defaultValue": "%tr%Control::TcHmi.Controls.Beckhoff.TcHmiLineChart::DefaultFillColorRangeColor%/tr%", + "defaultValueInternal": null + }, + { + "name": "expression", + "displayName": "Expression", + "category": "General", + "displayPriority": 10, + "description": "Expressions for colorRanges", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "color": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "fillColor": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "expression": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiLineChart.ChartLineColorFilter" + } + }, + "additionalProperties": false + } + }, + "defaultVisibility": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "yAxisId" + ] + } + }, + "TcHmi.Controls.Beckhoff.TcHmiLineChart.ChartLineColorFilter": { + "title": "ChartLineColorFilter", + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "path": { + "type": "string", + "enum": [ + "{value}" + ], + "default": "{value}" + }, + "comparator": { + "type": "string", + "enum": [ + "==", + "!=", + "<", + ">", + "<=", + ">=" + ], + "default": "==" + }, + "value": { + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "path", + "comparator", + "value" + ] + }, + { + "type": "object", + "properties": { + "logic": { + "enum": [ + "AND", + "OR" + ], + "type": "string" + } + }, + "required": [ + "logic" + ], + "additionalProperties": false + }, + { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiLineChart.ChartLineColorFilter" + } + ] + } + }, + "TcHmi.Controls.Beckhoff.TcHmiLineChart.ChartYAxisDefinition": { + "title": "ChartYAxisDefinition", + "type": "object", + "engineeringColumns": [ + "id", + "axisName", + "position" + ], + "propertiesMeta": [ + { + "name": "labelFontColor", + "category": "Colors", + "displayName": "Label Font Color", + "displayPriority": 10, + "description": "Color of the label text.", + "defaultValue": "%tr%Control::TcHmi.Controls.Beckhoff.TcHmiLineChart::YAxisLabelFontColor%/tr%", + "defaultValueInternal": null + }, + { + "name": "axisColor", + "category": "Colors", + "displayName": "Axis Color", + "displayPriority": 10, + "description": "Color of the axis.", + "defaultValue": "%tr%Control::TcHmi.Controls.Beckhoff.TcHmiLineChart::YAxisAxisColor%/tr%", + "defaultValueInternal": null + }, + { + "name": "axisNameFontColor", + "category": "Colors", + "displayName": "Axis Name Font Color", + "displayPriority": 10, + "description": "Color of the axis name.", + "defaultValue": "%tr%Control::TcHmi.Controls.Beckhoff.TcHmiLineChart::YAxisAxisNameFontColor%/tr%", + "defaultValueInternal": null + }, + { + "name": "id", + "category": "General", + "displayName": "Id", + "displayPriority": 10, + "description": "Id of the axis.", + "defaultValue": 1, + "defaultValueInternal": null + }, + { + "name": "position", + "category": "General", + "displayName": "Position", + "displayPriority": 10, + "description": "Position of this axis.", + "defaultValue": "Left", + "defaultValueInternal": "Left" + }, + { + "name": "logarithmicScale", + "category": "General", + "displayName": "Logarithmic Scale", + "displayPriority": 10, + "description": "Defined if the axis should be rendered in a logarithmic scale.", + "defaultValue": null, + "defaultValueInternal": false + }, + { + "name": "axisLabeling", + "category": "General", + "displayName": "Axis Labeling", + "displayPriority": 10, + "description": "Number format for this axis.", + "defaultValue": null, + "defaultValueInternal": "Number" + }, + { + "name": "mainTickMinValue", + "category": "General", + "displayName": "Main Tick Min Value", + "displayPriority": 10, + "description": "Defines the minimum value for the values of this axis.", + "defaultValue": null, + "defaultValueInternal": 0 + }, + { + "name": "mainTickMaxValue", + "category": "General", + "displayName": "Main Tick Max Value", + "displayPriority": 10, + "description": "Defines the maximum value for the values of this axis.", + "defaultValue": null, + "defaultValueInternal": 100 + }, + { + "name": "autoScaling", + "category": "General", + "displayName": "Auto Scaling", + "displayPriority": 10, + "description": "Defined if the axis should be scaled automatically (ignoring min and max).", + "defaultValue": null, + "defaultValueInternal": false + }, + { + "name": "decimalPlaces", + "category": "General", + "displayName": "Decimal Places", + "displayPriority": 10, + "description": "Defines how many decimal places are shown.", + "defaultValue": null, + "defaultValueInternal": 2 + }, + { + "name": "showAxis", + "category": "General", + "displayName": "Show Axis", + "displayPriority": 10, + "description": "Defines if the axis is visible.", + "defaultValue": null, + "defaultValueInternal": true + }, + { + "name": "showLabels", + "category": "General", + "displayName": "Show Labels", + "displayPriority": 10, + "description": "Defines if the label is visible.", + "defaultValue": null, + "defaultValueInternal": true + }, + { + "name": "showAxisName", + "category": "General", + "displayName": "Show Axis Name", + "displayPriority": 10, + "description": "Defines if the axis name is visible.", + "defaultValue": null, + "defaultValueInternal": true + }, + { + "name": "axisName", + "category": "General", + "displayName": "Axis Name", + "displayPriority": 10, + "description": "Defines the axis name.", + "defaultValue": null, + "defaultValueInternal": "y axis 1" + }, + { + "name": "axisNameFontFamily", + "category": "General", + "displayName": "Axis Name Font Family", + "displayPriority": 10, + "description": "Describes the font family of the description of the y-axis. Comma separated list of family name or keyword: 'serif', 'sans-serif', 'monospace'.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "axisNameFontSize", + "category": "General", + "displayName": "Axis Name Font Size", + "displayPriority": 10, + "description": "Describes the font size of the description of the y-axis.", + "defaultValue": null, + "defaultValueInternal": 15 + }, + { + "name": "axisNameFontSizeUnit", + "refTo": "axisNameFontSize", + "category": "General", + "displayName": "Axis Name Font Size Unit", + "displayPriority": 10, + "description": "Describes the font size unit of the description of the y-axis.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "axisNameFontWeight", + "category": "General", + "displayName": "Axis Name Font Weight", + "displayPriority": 10, + "description": "Describes the font weight of the description of the y-axis. 'Normal', 'Bold' (glyphs with more weight) or 'Auto' for inherited.", + "defaultValue": null, + "defaultValueInternal": "Bold" + }, + { + "name": "unit", + "category": "General", + "displayName": "Unit", + "displayPriority": 10, + "description": "Describes the unit of the description of the y-axis. Is written after the value on the axis.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "showAxisIfNoData", + "category": "General", + "displayName": "Show Axis If No Data", + "displayPriority": 10, + "description": "If showAxisIfNoData is true, the axis is always displayed; if false, the axis is only displayed if there are data sets assigned to the axis.", + "defaultValue": null, + "defaultValueInternal": true + }, + { + "name": "format", + "displayName": "Format", + "category": "General", + "displayPriority": 22, + "description": "A formatting function to format the yAxis values (HTML not allowed) which is called with each entry.", + "allowedFunctions": { + "returnType": "tchmi:general#/definitions/String", + "requiredArguments": [ + { + "type": "tchmi:general#/definitions/Number", + "description": "The yAxis label to format." + } + ], + "requiredWaitMode": "Synchronous" + }, + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "labelFontColor": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "axisColor": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "axisNameFontColor": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "id": { + "type": "integer", + "minimum": 0 + }, + "position": { + "type": "string", + "enum": [ + "Left", + "Right" + ] + }, + "logarithmicScale": { + "type": "boolean" + }, + "axisLabeling": { + "type": "string", + "enum": [ + "Number", + "Scientific", + "Auto" + ] + }, + "mainTickMinValue": { + "type": "number" + }, + "mainTickMaxValue": { + "type": "number" + }, + "autoScaling": { + "type": "boolean" + }, + "decimalPlaces": { + "type": "number", + "minimum": 0 + }, + "showAxis": { + "type": "boolean" + }, + "showLabels": { + "type": "boolean" + }, + "showAxisName": { + "type": "boolean" + }, + "axisName": { + "type": "string" + }, + "axisNameFontFamily": { + "$ref": "tchmi:framework#/definitions/FontFamily" + }, + "axisNameFontSize": { + "$ref": "tchmi:framework#/definitions/MeasurementValue" + }, + "axisNameFontSizeUnit": { + "$ref": "tchmi:framework#/definitions/PixelUnit" + }, + "axisNameFontWeight": { + "$ref": "tchmi:framework#/definitions/FontWeight" + }, + "unit": { + "type": "string" + }, + "showAxisIfNoData": { + "type": "boolean" + }, + "format": { + "$ref": "tchmi:framework#/definitions/Function" + } + }, + "additionalProperties": false, + "required": [ + "id", + "position" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiLineChart.ChartYAxisDefinitionList": { + "$schema": "http://json-schema.org/draft-04/schema", + "title": "ChartYAxisDefinitionList", + "type": "array", + "items": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiLineChart.ChartYAxisDefinition" + } + }, + "TcHmi.Controls.Beckhoff.TcHmiLineChart.ChartAxisLabeling": { + "title": "ChartAxisLabeling", + "type": "string", + "enum": [ + "Number", + "Scientific", + "Auto" + ], + "default": "Number" + }, + "TcHmi.Controls.Beckhoff.TcHmiLineChart.ChartReferenceLineDefinition": { + "title": "ChartReferenceLineDefinition", + "type": "object", + "engineeringColumns": [ + "name", + "value", + "orientation" + ], + "propertiesMeta": [ + { + "name": "show", + "category": "General", + "displayName": "Show", + "displayPriority": 10, + "description": "Describes whether the reference line is displayed.", + "defaultValue": null, + "defaultValueInternal": true + }, + { + "name": "name", + "category": "General", + "displayName": "Name", + "displayPriority": 10, + "description": "Describes the name of the reference line.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "orientation", + "category": "General", + "displayName": "Orientation", + "displayPriority": 10, + "description": "Describes whether the reference line is vertical or horizontal.", + "defaultValue": "Horizontal", + "defaultValueInternal": "Horizontal" + }, + { + "name": "yAxisId", + "category": "General", + "displayName": "Y Axis Id", + "displayPriority": 10, + "description": "Describes the assignment to the y-axis if it is a horizontal reference line.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "value", + "category": "General", + "displayName": "Value", + "displayPriority": 10, + "description": "Describes the value of the reference line.", + "defaultValue": 0, + "defaultValueInternal": 0 + }, + { + "name": "valueUnit", + "category": "General", + "displayName": "Value Unit", + "displayPriority": 10, + "description": "Describes the unit of the value of the reference line (Value or %).", + "defaultValue": "Value", + "defaultValueInternal": "Value" + }, + { + "name": "locked", + "category": "General", + "displayName": "Locked", + "displayPriority": 10, + "description": "Describes whether the reference line is fixed to the axis.", + "defaultValue": null, + "defaultValueInternal": true + }, + { + "name": "showTooltip", + "category": "General", + "displayName": "Show Tooltip", + "displayPriority": 10, + "description": "Describes whether the tooltip should be displayed.", + "defaultValue": null, + "defaultValueInternal": false + }, + { + "name": "highlightDataPoints", + "category": "General", + "displayName": "Highlight Data Points", + "displayPriority": 10, + "description": "Describes whether the datapoints should be highlighted.", + "defaultValue": null, + "defaultValueInternal": false + }, + { + "name": "color", + "category": "Colors", + "displayName": "Color", + "displayPriority": 10, + "description": "Describes the color of the reference line.", + "defaultValue": "%tr%Control::TcHmi.Controls.Beckhoff.TcHmiLineChart::ReferenceLineColor%/tr%", + "defaultValueInternal": { + "color": "#4794da" + } + }, + { + "name": "lineWidth", + "category": "General", + "displayName": "Line Width", + "displayPriority": 10, + "description": "Describes the line thickness of the reference line.", + "defaultValue": 1, + "defaultValueInternal": null + }, + { + "name": "showLabel", + "category": "General", + "displayName": "Show Label", + "displayPriority": 10, + "description": "Describes whether the description of the reference line is displayed.", + "defaultValue": null, + "defaultValueInternal": true + }, + { + "name": "labelHorizontalAlignment", + "category": "General", + "displayName": "Label Horizontal Alignment", + "displayPriority": 10, + "description": "Describes the horizontal alignment of the reference line description.", + "defaultValue": null, + "defaultValueInternal": "Right" + }, + { + "name": "labelVerticalAlignment", + "category": "General", + "displayName": "Label Vertical Alignment", + "displayPriority": 10, + "description": "Describes the vertical alignment of the reference line description.", + "defaultValue": null, + "defaultValueInternal": "Top" + }, + { + "name": "labelFontFamily", + "category": "General", + "displayName": "Label Font Family", + "displayPriority": 10, + "description": "Describes the font of the description of the reference line. Comma separated list of family name or keyword: 'serif', 'sans-serif', 'monospace'.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "labelFontSize", + "category": "General", + "displayName": "Label Font Size", + "displayPriority": 10, + "description": "Describes the font size of the description of the reference line.", + "defaultValue": null, + "defaultValueInternal": 15 + }, + { + "name": "labelFontSizeUnit", + "refTo": "labelFontSize", + "category": "General", + "displayName": "Label Font Size Unit", + "displayPriority": 10, + "description": "Describes the font size unit of the description of the reference line.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "labelFontWeight", + "category": "General", + "displayName": "Label Font Weight", + "displayPriority": 10, + "description": "Describes the font weight of the description of the reference line. 'Normal', 'Bold' (glyphs with more weight) or 'Auto' for inherited.", + "defaultValue": null, + "defaultValueInternal": "Auto" + } + ], + "properties": { + "show": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "orientation": { + "type": "string", + "enum": [ + "Horizontal", + "Vertical" + ] + }, + "yAxisId": { + "type": "number" + }, + "value": { + "type": "number" + }, + "valueUnit": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.ChartReferenceLineValueUnit" + }, + "locked": { + "type": "boolean" + }, + "showTooltip": { + "type": "boolean" + }, + "highlightDataPoints": { + "type": "boolean" + }, + "color": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "lineWidth": { + "type": "number" + }, + "showLabel": { + "type": "boolean" + }, + "labelHorizontalAlignment": { + "$ref": "tchmi:framework#/definitions/HorizontalAlignment" + }, + "labelVerticalAlignment": { + "$ref": "tchmi:framework#/definitions/VerticalAlignment" + }, + "labelFontFamily": { + "$ref": "tchmi:framework#/definitions/FontFamily" + }, + "labelFontSize": { + "$ref": "tchmi:framework#/definitions/MeasurementValue" + }, + "labelFontSizeUnit": { + "$ref": "tchmi:framework#/definitions/PixelUnit" + }, + "labelFontWeight": { + "$ref": "tchmi:framework#/definitions/FontWeight" + } + }, + "additionalProperties": false, + "required": [ + "name", + "value", + "orientation" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiLineChart.ChartReferenceLineDefinitionList": { + "$schema": "http://json-schema.org/draft-04/schema", + "title": "ChartReferenceLineDefinitionList", + "type": "array", + "items": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiLineChart.ChartReferenceLineDefinition" + } + }, + "TcHmi.Controls.Beckhoff.TcHmiLineChart.ChartReferenceLinesPosition": { + "title": "ChartReferenceLinesPosition", + "type": "string", + "enum": [ + "Background", + "Foreground" + ], + "default": "Background" + }, + "TcHmiLineChart": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiLineChart" + }, + "TcHmi.Controls.Beckhoff.TcHmiLoadingSpinner": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiLoadingSpinner", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiLoadingSpinner": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiLoadingSpinner" + }, + "TcHmi.Controls.Beckhoff.TcHmiLoadingSpinner.SpinnerVelocity": { + "title": "SpinnerVelocity", + "type": "string", + "enum": [ + "Slow", + "Normal", + "Fast" + ], + "default": "Normal" + }, + "TcHmi.Controls.Beckhoff.TcHmiLocalizationSelect": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiLocalizationSelect", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiLocalizationSelect": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiLocalizationSelect" + }, + "TcHmi.Controls.Beckhoff.TcHmiLocalizationSelect.ListItem": { + "title": "List Item", + "description": "List Item List", + "type": "object", + "engineeringColumns": [ + "code", + "text" + ], + "propertiesMeta": [ + { + "name": "code", + "displayName": "Code", + "category": "General", + "displayPriority": 10, + "description": "A Localization code like 'de-DE'. ", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "text", + "displayName": "Text", + "category": "General", + "displayPriority": 10, + "description": "Text to show for the defined localization code", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "code": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code", + "text" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiLocalizationSelect.ListItemList": { + "title": "ListItemList", + "description": "List Item List", + "engineeringDefaultDatatype": 0, + "type": "array", + "items": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiLocalizationSelect.ListItem" + } + }, + "TcHmi.Controls.Beckhoff.TcHmiMultiState": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiMultiState", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiMultiState": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiMultiState" + }, + "TcHmi.Controls.Beckhoff.TcHmiMultiState.StateList": { + "title": "StateList", + "description": "State List", + "type": "array", + "items": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiMultiState.StateListItem" + } + }, + "TcHmi.Controls.Beckhoff.TcHmiMultiState.StateListItem": { + "title": "State List Item", + "description": "State List Item", + "type": "object", + "engineeringColumns": [ + "state", + "stateBackgroundColor", + "stateIcon", + "stateText" + ], + "propertiesMeta": [ + { + "name": "state", + "displayName": "State", + "category": "General", + "displayPriority": 10, + "description": "State Value", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "stateBackgroundColor", + "displayName": "State Background Color", + "category": "General", + "displayPriority": 10, + "description": "Background Color for this entry.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "stateIcon", + "displayName": "State Icon", + "category": "General", + "displayPriority": 10, + "description": "Icon Path for this entry.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "stateText", + "displayName": "State Text", + "category": "General", + "displayPriority": 10, + "description": "Text for this entry.", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "state": { + "$ref": "tchmi:general#/definitions/Any" + }, + "stateBackgroundColor": { + "$ref": "tchmi:framework#/definitions/Color" + }, + "stateIcon": { + "$ref": "tchmi:framework#/definitions/Path" + }, + "stateText": { + "$ref": "tchmi:general#/definitions/String" + } + }, + "additionalProperties": false, + "required": [ + "state" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiNumericInput": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiNumericInput", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiNumericInput": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiNumericInput" + }, + "TcHmi.Controls.Beckhoff.TcHmiNumericInput.Value": { + "anyOf": [ + { + "$ref": "tchmi:general#/definitions/Number" + }, + { + "$ref": "tchmi:general#/definitions/BigInt64" + }, + { + "$ref": "tchmi:general#/definitions/UnsignedBigInt64" + } + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiNumericInput.ValueType": { + "type": "string", + "enum": [ + "Number", + "BigInt64", + "UnsignedBigInt64" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiNumericInput.UnitPosition": { + "title": "Numeric Input Unit Position", + "type": "string", + "enum": [ + "Left", + "Right" + ], + "default": "Right" + }, + "TcHmi.Controls.Beckhoff.TcHmiNumericInput.DecimalPrecisionMode": { + "type": "string", + "enum": [ + "Truncate", + "Round" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiObjectBrowser": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiObjectBrowser", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiObjectBrowser": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiObjectBrowser" + }, + "TcHmi.Controls.Beckhoff.TcHmiObjectBrowser.Index": { + "type": "array", + "title": "The hierarchical index of treeview data.", + "items": { + "type": "number" + } + }, + "TcHmi.Controls.Beckhoff.TcHmiObjectBrowser.DataSymbol": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/Symbol" + }, + { + "frameworkSymbolSubType": { + "anyOf": [ + { + "$ref": "tchmi:general#/definitions/Object" + }, + { + "$ref": "tchmi:general#/definitions/Array" + } + ] + } + } + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiObjectBrowser.ColumnName": { + "type": "string", + "enum": [ + "Name", + "Value", + "Datatype", + "ValueDisplay" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiObjectBrowser.ColumnDefinitionList": { + "title": "ColumnDefinitionList", + "type": "array", + "items": { + "title": "ColumnDefinition", + "type": "object", + "engineeringColumns": [ + "columnData", + "width", + "widthUnit" + ], + "propertiesMeta": [ + { + "name": "cellBackground", + "displayName": "Cell Background", + "category": "Colors", + "displayPriority": 10, + "description": "Background color of the cells in this column", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "textColor", + "displayName": "Text Color", + "category": "Colors", + "displayPriority": 11, + "description": "Text color of the cells in this column", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "columnData", + "displayName": "Column Data", + "category": "General", + "displayPriority": 10, + "description": "The data that will be displayed in the column.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "width", + "displayName": "Width", + "category": "General", + "displayPriority": 11, + "description": "Width for this column", + "defaultValue": 100, + "defaultValueInternal": null + }, + { + "name": "widthUnit", + "refTo": "width", + "displayName": "Width Unit", + "category": "General", + "displayPriority": 11, + "description": "Width unit for this column. px defines an absolute width, % is relative to the control width and factor can be used to divide the available space into fractions.", + "defaultValue": "px", + "defaultValueInternal": "px" + }, + { + "name": "editable", + "displayName": "Editable", + "category": "General", + "displayPriority": 12, + "description": "Can this column be edited (text, number) or operated (button, checkbox)?", + "defaultValue": false, + "defaultValueInternal": false + }, + { + "name": "minWidth", + "displayName": "Min Width", + "category": "General", + "displayPriority": 13, + "description": "Minimum width for this column", + "defaultValue": 100, + "defaultValueInternal": null + }, + { + "name": "minWidthUnit", + "refTo": "minWidth", + "displayName": "Min Width Unit", + "category": "General", + "displayPriority": 13, + "description": "Minimum width unit for this column", + "defaultValue": "px", + "defaultValueInternal": "px" + }, + { + "name": "resize", + "displayName": "Resize", + "category": "General", + "displayPriority": 14, + "description": "Can this column be resized? Columns that have factor as their widthUnit can never be resizeable.", + "defaultValue": false, + "defaultValueInternal": false + }, + { + "name": "sortable", + "displayName": "Sortable", + "category": "General", + "displayPriority": 15, + "description": "Can this column be sortedby user interaction?", + "defaultValue": true, + "defaultValueInternal": true + }, + { + "name": "horizontalAlignment", + "displayName": "Horizontal Alignment", + "category": "General", + "displayPriority": 16, + "description": "Horizontal alignment of this column", + "defaultValue": "Left", + "defaultValueInternal": "Left" + }, + { + "name": "verticalAlignment", + "displayName": "Vertical Alignment", + "category": "General", + "displayPriority": 17, + "description": "Vertical alignment of this column", + "defaultValue": "Center", + "defaultValueInternal": "Center" + }, + { + "name": "headerHorizontalAlignment", + "displayName": "Header Horizontal Alignment", + "category": "General", + "displayPriority": 18, + "description": "Horizontal alignment of the header of this column", + "defaultValue": "Center", + "defaultValueInternal": "Center" + }, + { + "name": "headerVerticalAlignment", + "displayName": "Header Vertical Alignment", + "category": "General", + "displayPriority": 19, + "description": "Vertical alignment of the header of this column", + "defaultValue": "Center", + "defaultValueInternal": "Center" + }, + { + "name": "format", + "displayName": "Format", + "category": "General", + "displayPriority": 20, + "description": "A reference of function which is called with each entry", + "allowedFunctions": { + "returnType": "tchmi:general#/definitions/String", + "requiredArguments": [ + { + "type": "tchmi:general#/definitions/Any", + "description": "The value to format." + }, + { + "type": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TchmiTreeView.ValueMetaData", + "description": "Meta data of the value. Includes the json schema." + } + ], + "requiredWaitMode": "Synchronous" + }, + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "ignoreEscapeSequences", + "displayName": "Ignore Escape Sequences", + "category": "General", + "displayPriority": 21, + "description": "When set to true a backslash in a text will be shown verbatim in the HMI", + "defaultValue": false, + "defaultValueInternal": false + }, + { + "name": "autoFocusOut", + "displayName": "Auto Focus Out", + "category": "General", + "displayPriority": 22, + "description": "When set to true the control will automatically lose focus when the user presses the enter or escape key", + "defaultValue": true, + "defaultValueInternal": true + }, + { + "name": "autoSelectText", + "displayName": "Auto Select Text", + "category": "General", + "displayPriority": 23, + "description": "When set to true all text within the control will be selected when the control gains focus", + "defaultValue": false, + "defaultValueInternal": false + } + ], + "properties": { + "cellBackground": { + "$ref": "tchmi:framework#/definitions/Color" + }, + "textColor": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "columnData": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiObjectBrowser.ColumnName" + }, + "width": { + "allOf": [ + { + "$ref": "#/definitions/PositiveNumber" + }, + { + "$ref": "#/definitions/MeasurementValue" + } + ] + }, + "widthUnit": { + "$ref": "tchmi:framework#/definitions/MeasurementUnitOrFactor" + }, + "resize": { + "type": "boolean" + }, + "minWidth": { + "allOf": [ + { + "$ref": "#/definitions/PositiveNumber" + }, + { + "$ref": "#/definitions/MeasurementValue" + } + ] + }, + "minWidthUnit": { + "$ref": "tchmi:framework#/definitions/MeasurementUnit" + }, + "editable": { + "type": "boolean" + }, + "sortable": { + "type": "boolean" + }, + "horizontalAlignment": { + "$ref": "tchmi:framework#/definitions/HorizontalAlignment" + }, + "verticalAlignment": { + "$ref": "tchmi:framework#/definitions/VerticalAlignment" + }, + "headerHorizontalAlignment": { + "$ref": "tchmi:framework#/definitions/HorizontalAlignment" + }, + "headerVerticalAlignment": { + "$ref": "tchmi:framework#/definitions/VerticalAlignment" + }, + "format": { + "$ref": "tchmi:framework#/definitions/Function" + }, + "ignoreEscapeSequences": { + "type": "boolean" + }, + "autoFocusOut": { + "type": "boolean" + }, + "autoSelectText": { + "type": "boolean" + } + }, + "required": [ + "columnData", + "width", + "widthUnit", + "resize", + "minWidth", + "minWidthUnit", + "horizontalAlignment", + "verticalAlignment" + ], + "additionalProperties": false + } + }, + "TcHmi.Controls.Beckhoff.TcHmiObjectBrowser.PathEventObject": { + "type": "object", + "properties": { + "path": { + "type": "string" + } + }, + "additionalProperties": false + }, + "TcHmiObjectBrowserPathEventObject": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiObjectBrowser.PathEventObject" + }, + "TcHmi.Controls.Beckhoff.TcHmiPasswordInput": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiPasswordInput", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiPasswordInput": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiPasswordInput" + }, + "TcHmi.Controls.Beckhoff.TcHmiPermissionManagement": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiPermissionManagement", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiPermissionManagement": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiPermissionManagement" + }, + "FillMode": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiPolygon.FillMode" + }, + "TcHmi.Controls.Beckhoff.TcHmiPolygon": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiPolygon", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmi.Controls.Beckhoff.TcHmiPolygon.FillMode": { + "title": "FillMode", + "type": "string", + "enum": [ + "NonZero", + "EvenOdd" + ], + "default": "NonZero" + }, + "TcHmiPolygon": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiPolygon" + }, + "TcHmi.Controls.Beckhoff.TcHmiPolyline": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiPolyline", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiPolyline": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiPolyline" + }, + "TcHmi.Controls.Beckhoff.TcHmiProgressBar": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiProgressBar", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiProgressBar": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiProgressBar" + }, + "RadialGaugeLabelPosition": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiRadialGauge.LabelPosition" + }, + "TcHmi.Controls.Beckhoff.TcHmiRadialGauge": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiRadialGauge", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmi.Controls.Beckhoff.TcHmiRadialGauge.LabelPosition": { + "title": "LabelPosition", + "type": "string", + "enum": [ + "Outside", + "Inside" + ], + "default": "Inside" + }, + "TcHmi.Controls.Beckhoff.TcHmiRadialGauge.GaugeAlignment": { + "title": "GaugeAlignment", + "type": "string", + "enum": [ + "Start", + "Center", + "End" + ], + "default": "Start" + }, + "TcHmiRadialGauge": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiRadialGauge" + }, + "TcHmi.Controls.Beckhoff.TcHmiRadioButton": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiRadioButton", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmi.Controls.Beckhoff.TcHmiRadioButton.StateSymbol": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/Symbol" + }, + { + "frameworkSymbolSubType": { + "$ref": "tchmi:general#/definitions/Boolean" + } + } + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiRadioButton.TextPosition": { + "type": "string", + "enum": [ + "Left", + "Right" + ] + }, + "TcHmiRadioButton": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiRadioButton" + }, + "TcHmiRadioButtonStateSymbol": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiRadioButton.StateSymbol" + }, + "TcHmi.Controls.Beckhoff.TcHmiRadioButton.StateChangedEventObject": { + "type": "object", + "properties": { + "control": { + "$ref": "tchmi:framework#/definitions/Control" + }, + "state": { + "type": "boolean" + }, + "stateOld": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "TcHmiRadioButtonStateChangedEventObject": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiRadioButton.StateChangedEventObject" + }, + "TcHmi.Controls.Beckhoff.TcHmiRecipeEdit": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiRecipeEdit", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmi.Controls.Beckhoff.TcHmiRecipeEdit.NameArray": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "TcHmiRecipeEdit": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiRecipeEdit" + }, + "TcHmi.Controls.Beckhoff.TcHmiRecipeEdit.RecipeEventObject": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "recipe": { + "type": "object" + } + }, + "additionalProperties": false + }, + "TcHmiRecipeEditRecipeEventObject": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiRecipeEdit.RecipeEventObject" + }, + "TcHmi.Controls.Beckhoff.TcHmiRecipeEdit.RecipeNameEventObject": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "additionalProperties": false + }, + "TcHmiRecipeEditRecipeNameEventObject": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiRecipeEdit.RecipeNameEventObject" + }, + "TcHmi.Controls.Beckhoff.TcHmiRecipeSelect": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiRecipeSelect", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmi.Controls.Beckhoff.TcHmiRecipeSelect.NameArray": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "TcHmiRecipeSelect": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiRecipeSelect" + }, + "TcHmi.Controls.Beckhoff.TcHmiRecipeSelect.RecipeNameEventObject": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "additionalProperties": false + }, + "TcHmiRecipeSelectRecipeNameEventObject": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiRecipeSelect.RecipeNameEventObject" + }, + "TcHmi.Controls.Beckhoff.TcHmiRectangle": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiRectangle", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiRectangle": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiRectangle" + }, + "TcHmi.Controls.Beckhoff.TcHmiSparkline": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiSparkline", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiSparkline": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiSparkline" + }, + "TcHmi.Controls.Beckhoff.TcHmiSparkline.LineGraphDescriptionList": { + "title": "LineGraphDescriptionList", + "type": "array", + "items": { + "type": "object", + "engineeringColumns": [ + "lineWidth" + ], + "propertiesMeta": [ + { + "name": "lineColor", + "displayName": "Line Color", + "category": "Colors", + "displayPriority": 10, + "description": "Color for this line", + "defaultValue": "%tr%Control::TcHmi.Controls.Beckhoff.TcHmiLineChart::LineGraphDescriptionLineColor%/tr%", + "defaultValueInternal": null + }, + { + "name": "lineWidth", + "displayName": "Line Width", + "category": "General", + "displayPriority": 10, + "description": "Line width in pixel", + "defaultValue": 1, + "defaultValueInternal": null + }, + { + "name": "displayName", + "displayName": "Display Name", + "category": "General", + "displayPriority": 10, + "description": "Display name of the historized Symbol", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "referenceLines", + "displayName": "Reference Lines", + "category": "General", + "displayPriority": 10, + "description": "Reference lines", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "lineColor": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "displayName": { + "type": "string" + }, + "lineWidth": { + "type": "number" + }, + "referenceLines": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiSparkline.ReferenceLineDefinitionList" + } + }, + "additionalProperties": false, + "required": [ + "lineWidth" + ] + } + }, + "TcHmi.Controls.Beckhoff.TcHmiSparkline.LineGraphDataList": { + "title": "LineGraphDataList", + "anyOf": [ + { + "type": "array", + "title": "Array>", + "items": { + "type": "array", + "title": "List of coordinate pairs", + "items": { + "type": "object", + "title": "Coordinate pair", + "engineeringColumns": [ + "x", + "y" + ], + "propertiesMeta": [ + { + "name": "x", + "displayName": "X", + "category": "General", + "displayPriority": 10, + "description": "x coordinate", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "y", + "displayName": "Y", + "category": "General", + "displayPriority": 10, + "description": "y coordinate", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "x", + "y" + ], + "additionalProperties": false + } + } + }, + { + "type": "array", + "title": "Array>", + "items": { + "type": "array", + "items": { + "type": "number" + } + } + }, + { + "type": "array", + "title": "Array", + "items": { + "type": "number" + } + } + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiSparkline.ChartStart": { + "anyOf": [ + { + "title": "Time", + "$ref": "tchmi:general#/definitions/DateTime" + }, + { + "title": "Timespan", + "$ref": "tchmi:general#/definitions/TimeSpan" + }, + { + "title": "KeyWords", + "type": "string", + "enum": [ + "First" + ] + } + ], + "default": "First" + }, + "TcHmi.Controls.Beckhoff.TcHmiSparkline.ChartEnd": { + "anyOf": [ + { + "title": "Time", + "$ref": "tchmi:general#/definitions/DateTime" + }, + { + "title": "Timespan", + "$ref": "tchmi:general#/definitions/TimeSpan" + }, + { + "title": "KeyWords", + "type": "string", + "enum": [ + "Latest" + ] + } + ], + "default": "Latest" + }, + "TcHmi.Controls.Beckhoff.TcHmiSparkline.ReferenceLineDefinition": { + "title": "ReferenceLineDefinition", + "type": "object", + "engineeringColumns": [ + "value" + ], + "propertiesMeta": [ + { + "name": "show", + "category": "General", + "displayName": "Show", + "displayPriority": 10, + "description": "Describes whether the reference line is displayed.", + "defaultValue": null, + "defaultValueInternal": true + }, + { + "name": "value", + "category": "General", + "displayName": "Value", + "displayPriority": 10, + "description": "Describes the value of the reference line.", + "defaultValue": 0, + "defaultValueInternal": 0 + }, + { + "name": "color", + "category": "Colors", + "displayName": "Color", + "displayPriority": 10, + "description": "Describes the color of the reference line.", + "defaultValue": "%tr%Control::TcHmi.Controls.Beckhoff.TcHmiSparkline::ReferenceLineColor%/tr%", + "defaultValueInternal": { + "color": "#4794da" + } + }, + { + "name": "lineWidth", + "category": "General", + "displayName": "Line Width", + "displayPriority": 10, + "description": "Describes the line thickness of the reference line.", + "defaultValue": 1, + "defaultValueInternal": null + } + ], + "properties": { + "show": { + "type": "boolean" + }, + "value": { + "type": "number" + }, + "color": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "lineWidth": { + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "value" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiSparkline.ReferenceLineDefinitionList": { + "$schema": "http://json-schema.org/draft-04/schema", + "title": "ReferenceLineDefinitionList", + "type": "array", + "items": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiSparkline.ReferenceLineDefinition" + } + }, + "TcHmi.Controls.Beckhoff.TcHmiSparkline.AxisPosition": { + "title": "AxisPosition", + "type": "string", + "enum": [ + "Right", + "Left" + ], + "default": "Right" + }, + "TcHmi.Controls.Beckhoff.TcHmiSparkline.LabelPosition": { + "title": "LabelPosition", + "type": "string", + "enum": [ + "Right", + "Center", + "Left" + ], + "default": "Right" + }, + "TcHmi.Controls.Beckhoff.TcHmiSpinboxInput": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiSpinboxInput", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiSpinboxInput": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiSpinboxInput" + }, + "TcHmi.Controls.Beckhoff.TcHmiSpinboxInput.ButtonPosition": { + "title": "SpinboxInputButtonPosition", + "type": "string", + "enum": [ + "BothLeft", + "BothRight", + "PlusLeftAndMinusRight", + "MinusLeftAndPlusRight", + "PlusTopAndMinusBottom", + "MinusTopAndPlusBottom" + ], + "default": "MinusLeftAndPlusRight" + }, + "TcHmi.Controls.Beckhoff.TcHmiStateImage": { + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiStateImage", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiStateImage": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiStateImage" + }, + "TcHmi.Controls.Beckhoff.TcHmiStateImage.StateList": { + "title": "StateList", + "description": "State List", + "type": "array", + "items": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiStateImage.StateListItem" + } + }, + "TcHmi.Controls.Beckhoff.TcHmiStateImage.StateListItem": { + "title": "State List Item", + "description": "State List Item", + "type": "object", + "engineeringColumns": [ + "state", + "stateIcon" + ], + "propertiesMeta": [ + { + "name": "state", + "displayName": "State", + "category": "General", + "displayPriority": 10, + "description": "State Value", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "stateIcon", + "displayName": "State Icon", + "category": "General", + "displayPriority": 10, + "description": "Icon Path for this entry.", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "state": { + "$ref": "tchmi:general#/definitions/Any" + }, + "stateIcon": { + "$ref": "tchmi:framework#/definitions/Path" + } + }, + "additionalProperties": false, + "required": [ + "state", + "stateIcon" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiTabNavigation": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiTabNavigation", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiTabNavigation": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTabNavigation" + }, + "TcHmi.Controls.Beckhoff.TcHmiTabNavigation.TabAlignment": { + "type": "string", + "enum": [ + "Top", + "Right", + "Bottom", + "Left" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiTabNavigation.TabList": { + "type": "array", + "title": "Tabs", + "description": "A list of tabs", + "items": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTabNavigation.Tab" + } + }, + "TcHmi.Controls.Beckhoff.TcHmiTabNavigation.Tab": { + "type": "object", + "title": "Tab", + "description": "A single tab", + "engineeringColumns": [ + "name" + ], + "properties": { + "name": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "targetFile": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.System.TcHmiPopup.TargetFile" + }, + "targetFileHostPreload": { + "type": "boolean" + }, + "targetFileHostPreAttach": { + "type": "boolean" + }, + "targetFileHostKeepAlive": { + "type": "boolean" + }, + "scrolling": { + "$ref": "tchmi:framework#/definitions/ScrollMode" + }, + "hidden": { + "type": "boolean" + }, + "accessRights": { + "$ref": "tchmi:framework#/definitions/AccessConfig" + }, + "icon": { + "type": "object", + "properties": { + "iconPath": { + "$ref": "tchmi:framework#/definitions/Path" + }, + "iconWidth": { + "$ref": "tchmi:framework#/definitions/MeasurementValue" + }, + "iconWidthUnit": { + "$ref": "tchmi:framework#/definitions/MeasurementUnit" + }, + "iconHeight": { + "$ref": "tchmi:framework#/definitions/MeasurementValue" + }, + "iconHeightUnit": { + "$ref": "tchmi:framework#/definitions/MeasurementUnit" + } + }, + "propertiesMeta": [ + { + "name": "iconPath", + "displayName": "Icon Path", + "category": "General", + "displayPriority": 10, + "description": "The icon that will be displayed in the tab bar.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "iconWidth", + "displayName": "Icon Width", + "category": "General", + "displayPriority": 11, + "description": "The preferred width of the icon.", + "defaultValue": null, + "defaultValueInternal": 32 + }, + { + "name": "iconWidthUnit", + "displayName": "Icon Width Unit", + "category": "General", + "displayPriority": 11, + "description": "The unit of preferred width of the icon.", + "defaultValue": null, + "defaultValueInternal": "px", + "refTo": "iconWidth" + }, + { + "name": "iconHeight", + "displayName": "Icon Height", + "category": "General", + "displayPriority": 12, + "description": "The preferred height of the icon.", + "defaultValue": null, + "defaultValueInternal": 32 + }, + { + "name": "iconHeightUnit", + "displayName": "Icon Height Unit", + "category": "General", + "displayPriority": 12, + "description": "The unit of preferred height of the icon.", + "defaultValue": null, + "defaultValueInternal": "px", + "refTo": "iconHeight" + } + ], + "required": [ + "iconPath" + ], + "additionalProperties": false + } + }, + "propertiesMeta": [ + { + "name": "name", + "displayName": "Name", + "category": "General", + "displayPriority": 10, + "description": "Name of the Tab.", + "defaultValue": "newTab", + "defaultValueInternal": null + }, + { + "name": "displayName", + "displayName": "Display Name", + "category": "General", + "displayPriority": 10, + "description": "Name of the Tab that will be displayed in the tab bar.", + "defaultValue": "New Tab", + "defaultValueInternal": null + }, + { + "name": "targetFile", + "displayName": "Target File", + "category": "General", + "displayPriority": 11, + "description": "The content or usercontrol to show.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "targetFileHostPreload", + "displayName": "Target File Host Preload", + "category": "General", + "displayPriority": 13, + "description": "Defines whether the target file host is preloaded when the tab navigation control is initialized or loaded when the tab is selected.", + "defaultValue": null, + "defaultValueInternal": false + }, + { + "name": "targetFileHostPreAttach", + "displayName": "Target File Host Pre Attach", + "category": "General", + "displayPriority": 14, + "description": "Defines whether the target file host is pre attached to the DOM even if the tab is not yet selected. Does only have an effect if TargetFileHostPreload is true.", + "defaultValue": null, + "defaultValueInternal": false + }, + { + "name": "targetFileHostKeepAlive", + "displayName": "Target File Host Keep Alive", + "category": "General", + "displayPriority": 15, + "description": "Defines whether the target file host is kept alive when the tab is unselected. Has no effect when TargetFileHostPreload is set to true.", + "defaultValue": null, + "defaultValueInternal": false + }, + { + "name": "scrolling", + "displayName": "Scrolling", + "category": "General", + "displayPriority": 16, + "description": "Defines whether a content is scrollable. Possible values are No, Yes, Auto. Does not affect user controls.", + "defaultValue": null, + "defaultValueInternal": "Auto" + }, + { + "name": "hidden", + "displayName": "Hidden", + "category": "General", + "displayPriority": 17, + "description": "Defines whether the tab is hidden or not.", + "defaultValue": null, + "defaultValueInternal": false + }, + { + "name": "icon", + "displayName": "Icon", + "category": "General", + "displayPriority": 30, + "description": "The Icon displayed in the tab bar.", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "additionalProperties": false, + "patternProperties": { + "horizontalAlignment": { + "$ref": "tchmi:framework#/definitions/HorizontalAlignment", + "description": "Allow, but kind of hide deprecated property for engineering" + }, + "verticalAlignment": { + "$ref": "tchmi:framework#/definitions/VerticalAlignment", + "description": "Allow, but kind of hide deprecated property for engineering" + } + }, + "required": [ + "name" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiTachometer": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiTachometer", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiTachometer": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTachometer" + }, + "TcHmi.Controls.Beckhoff.TcHmiTachometer.LabelPosition": { + "title": "LabelPosition", + "type": "string", + "enum": [ + "Outside", + "Inside" + ], + "default": "Inside" + }, + "TcHmi.Controls.Beckhoff.TcHmiTachometer.GaugeAlignment": { + "title": "GaugeAlignment", + "type": "string", + "enum": [ + "Start", + "Center", + "End" + ], + "default": "Inside" + }, + "TcHmi.Controls.Beckhoff.TcHmiTextblock": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiTextblock", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiTextblock": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTextblock" + }, + "TcHmi.Controls.Beckhoff.TcHmiTextblock.ScrollMode": { + "type": "string", + "enum": [ + "Never", + "Always", + "Auto" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiTextbox": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiTextbox", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiTextbox": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTextbox" + }, + "TcHmi.Controls.Beckhoff.TcHmiTextbox.ScrollMode": { + "type": "string", + "enum": [ + "Never", + "Always", + "Auto" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiThemeSelect": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiThemeSelect", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiThemeSelect": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiThemeSelect" + }, + "TcHmi.Controls.Beckhoff.TcHmiThermometer": { + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiThermometer", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiThermometer": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiThermometer" + }, + "TcHmi.Controls.Beckhoff.TcHmiTimespanInput": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiTimespanInput", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiTimespanInput": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTimespanInput" + }, + "TcHmi.Controls.Beckhoff.TcHmiTimespanInput.ButtonPosition": { + "title": "DateTimeInputButtonPosition", + "type": "string", + "enum": [ + "Left", + "Right" + ], + "default": "Right" + }, + "TcHmi.Controls.Beckhoff.TcHmiTimespanInput.DirectInputUnit": { + "title": "DirectInputUnit", + "type": "string", + "enum": [ + "None", + "Milliseconds", + "Seconds", + "Minutes", + "Hours", + "Days", + "Months", + "Years" + ], + "default": "None" + }, + "TcHmi.Controls.Beckhoff.TcHmiTimespanInput.ValueSymbol": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/Symbol" + }, + { + "frameworkSymbolSubType": { + "$ref": "tchmi:general#/definitions/String" + } + } + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiTimespanPicker": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiTimespanPicker", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiTimespanPicker": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTimespanPicker" + }, + "TcHmi.Controls.Beckhoff.TcHmiTimespanPicker.ValueSymbol": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/Symbol" + }, + { + "frameworkSymbolSubType": { + "$ref": "tchmi:general#/definitions/String" + } + } + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiTimespanPicker.TimeUnits": { + "title": "TimeUnits", + "type": "object", + "propertiesMeta": [ + { + "name": "years", + "category": "General", + "displayName": "Years", + "displayPriority": 10, + "description": "Defines whether the year should be displayed.", + "defaultValue": true, + "defaultValueInternal": false + }, + { + "name": "months", + "category": "General", + "displayName": "Months", + "displayPriority": 15, + "description": "Defines whether the month should be displayed.", + "defaultValue": true, + "defaultValueInternal": false + }, + { + "name": "days", + "category": "General", + "displayName": "Days", + "displayPriority": 20, + "description": "Defines whether the day should be displayed.", + "defaultValue": true, + "defaultValueInternal": false + }, + { + "name": "hours", + "category": "General", + "displayName": "Hours", + "displayPriority": 25, + "description": "Defines whether the hour should be displayed.", + "defaultValue": true, + "defaultValueInternal": false + }, + { + "name": "minutes", + "category": "General", + "displayName": "Minutes", + "displayPriority": 30, + "description": "Defines whether the minute should be displayed.", + "defaultValue": true, + "defaultValueInternal": false + }, + { + "name": "seconds", + "category": "General", + "displayName": "Seconds", + "displayPriority": 35, + "description": "Defines whether the second should be displayed.", + "defaultValue": true, + "defaultValueInternal": false + }, + { + "name": "milliseconds", + "category": "General", + "displayName": "Milliseconds", + "displayPriority": 40, + "description": "Defines whether the millisecond should be displayed.", + "defaultValue": true, + "defaultValueInternal": false + } + ], + "properties": { + "years": { + "type": "boolean" + }, + "months": { + "type": "boolean" + }, + "days": { + "type": "boolean" + }, + "hours": { + "type": "boolean" + }, + "minutes": { + "type": "boolean" + }, + "seconds": { + "type": "boolean" + }, + "milliseconds": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "years", + "months", + "days", + "hours", + "minutes", + "seconds", + "milliseconds" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiToggleButton": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiToggleButton", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiToggleButton": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiToggleButton" + }, + "TcHmi.Controls.Beckhoff.TcHmiToggleButton.StateChangedEventObject": { + "type": "object", + "properties": { + "control": { + "$ref": "tchmi:framework#/definitions/Control" + }, + "state": { + "type": "boolean" + }, + "stateOld": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "TcHmiToggleButtonStateChangedEventObject": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiToggleButton.StateChangedEventObject" + }, + "TcHmi.Controls.Beckhoff.TcHmiToggleSwitch": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiToggleSwitch", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiToggleSwitch": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiToggleSwitch" + }, + "TcHmi.Controls.Beckhoff.TcHmiTreeView": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiTreeView", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiTreeView": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTreeView" + }, + "TcHmi.Controls.Beckhoff.TcHmiTreeView.Index": { + "type": "array", + "title": "The hierarchical index of treeview data.", + "items": { + "type": "number" + } + }, + "TcHmi.Controls.Beckhoff.TcHmiTreeView.DataSymbol": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/Symbol" + }, + { + "frameworkSymbolSubType": { + "$ref": "tchmi:general#/definitions/Array" + } + } + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiTreeView.ColumnDefinitionList": { + "title": "ColumnDefinitionList", + "anyOf": [ + { + "type": "array", + "items": { + "type": "object", + "engineeringColumns": [ + "name", + "label", + "control", + "width", + "widthUnit" + ], + "propertiesMeta": [ + { + "name": "cellBackground", + "displayName": "Cell Background", + "category": "Colors", + "displayPriority": 10, + "description": "Background color of the cells in this column", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "textColor", + "displayName": "Text Color", + "category": "Colors", + "displayPriority": 11, + "description": "Text color of the cells in this column", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "name", + "displayName": "Name", + "category": "General", + "displayPriority": 10, + "description": "Name of the property in the data object. If not defined the column adresses the full object (usefull if the data is an array containing simple datatypes).", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "label", + "displayName": "Label", + "category": "General", + "displayPriority": 11, + "description": "Name of the label for this column", + "defaultValue": "", + "defaultValueInternal": null + }, + { + "name": "control", + "displayName": "Control", + "category": "General", + "displayPriority": 12, + "description": "Type of the input elements for this column", + "defaultValue": "TextBox", + "defaultValueInternal": null + }, + { + "name": "width", + "displayName": "Width", + "category": "General", + "displayPriority": 13, + "description": "Width for this column", + "defaultValue": 100, + "defaultValueInternal": null + }, + { + "name": "widthUnit", + "refTo": "width", + "displayName": "Width Unit", + "category": "General", + "displayPriority": 13, + "description": "Width unit for this column. px defines an absolute width, % is relative to the control width and factor can be used to divide the available space into fractions.", + "defaultValue": "px", + "defaultValueInternal": "px" + }, + { + "name": "editable", + "displayName": "Editable", + "category": "General", + "displayPriority": 14, + "description": "Can this column be edited (text, number) or operated (button, checkbox)?", + "defaultValue": false, + "defaultValueInternal": false + }, + { + "name": "minWidth", + "displayName": "Min Width", + "category": "General", + "displayPriority": 15, + "description": "Minimum width for this column", + "defaultValue": 100, + "defaultValueInternal": null + }, + { + "name": "minWidthUnit", + "refTo": "minWidth", + "displayName": "Min Width Unit", + "category": "General", + "displayPriority": 15, + "description": "Minimum width unit for this column", + "defaultValue": "px", + "defaultValueInternal": "px" + }, + { + "name": "resize", + "displayName": "Resize", + "category": "General", + "displayPriority": 16, + "description": "Can this column be resized? Columns that have factor as their widthUnit can never be resizeable.", + "defaultValue": false, + "defaultValueInternal": false + }, + { + "name": "sortable", + "displayName": "Sortable", + "category": "General", + "displayPriority": 17, + "description": "Can this column be sortedby user interaction?", + "defaultValue": true, + "defaultValueInternal": true + }, + { + "name": "horizontalAlignment", + "displayName": "Horizontal Alignment", + "category": "General", + "displayPriority": 18, + "description": "Horizontal alignment of this column", + "defaultValue": "Left", + "defaultValueInternal": "Left" + }, + { + "name": "verticalAlignment", + "displayName": "Vertical Alignment", + "category": "General", + "displayPriority": 19, + "description": "Vertical alignment of this column", + "defaultValue": "Center", + "defaultValueInternal": "Center" + }, + { + "name": "headerHorizontalAlignment", + "displayName": "Header Horizontal Alignment", + "category": "General", + "displayPriority": 20, + "description": "Horizontal alignment of the header of this column", + "defaultValue": "Center", + "defaultValueInternal": "Center" + }, + { + "name": "headerVerticalAlignment", + "displayName": "Header Vertical Alignment", + "category": "General", + "displayPriority": 21, + "description": "Vertical alignment of the header of this column", + "defaultValue": "Center", + "defaultValueInternal": "Center" + }, + { + "name": "format", + "displayName": "Format", + "category": "General", + "displayPriority": 22, + "description": "A reference of function which is called with each entry", + "allowedFunctions": { + "returnType": "tchmi:general#/definitions/String", + "requiredArguments": [ + { + "type": "tchmi:general#/definitions/Any", + "description": "The value to format." + }, + { + "type": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TchmiTreeView.ValueMetaData", + "description": "Meta data of the value. Includes the json schema." + } + ], + "requiredWaitMode": "Synchronous" + }, + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "dataDefinitions", + "displayName": "Data Definitions", + "category": "General", + "displayPriority": 23, + "description": "Mapping from the srcData to a combobox or image selection. \nText to show on Buttons. \nRestrictions for number inputs.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "ignoreEscapeSequences", + "displayName": "Ignore Escape Sequences", + "category": "General", + "displayPriority": 24, + "description": "When set to true a backslash in a text will be shown verbatim in the HMI", + "defaultValue": false, + "defaultValueInternal": false + }, + { + "name": "autoFocusOut", + "displayName": "Auto Focus Out", + "category": "General", + "displayPriority": 25, + "description": "When set to true the control will automatically lose focus when the user presses the enter or escape key", + "defaultValue": true, + "defaultValueInternal": true + }, + { + "name": "autoSelectText", + "displayName": "Auto Select Text", + "category": "General", + "displayPriority": 26, + "description": "When set to true all text within the control will be selected when the control gains focus", + "defaultValue": false, + "defaultValueInternal": false + }, + { + "name": "maxTextLength", + "displayName": "Max Text Length", + "category": "General", + "displayPriority": 27, + "description": "Maximum number of characters that can be entered in the TextBox", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "cellBackground": { + "$ref": "tchmi:framework#/definitions/Color" + }, + "textColor": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "name": { + "type": "string" + }, + "label": { + "type": "string" + }, + "control": { + "type": "string", + "enum": [ + "TextBox", + "TextBlock", + "CheckBox", + "Image", + "ComboBox", + "NumericInput", + "SpinboxInput", + "PasswordInput", + "Button", + "ToggleButton", + "ToggleSwitch", + "RadioButton", + "DateTimeInput", + "TimespanInput", + "AutoDetectControl" + ] + }, + "width": { + "type": "number", + "minimum": 0 + }, + "widthUnit": { + "$ref": "tchmi:framework#/definitions/MeasurementUnitOrFactor" + }, + "editable": { + "type": "boolean" + }, + "minWidth": { + "type": "number", + "minimum": 0 + }, + "minWidthUnit": { + "$ref": "tchmi:framework#/definitions/MeasurementUnit" + }, + "resize": { + "type": "boolean" + }, + "sortable": { + "type": "boolean" + }, + "horizontalAlignment": { + "$ref": "tchmi:framework#/definitions/HorizontalAlignment" + }, + "verticalAlignment": { + "$ref": "tchmi:framework#/definitions/VerticalAlignment" + }, + "headerHorizontalAlignment": { + "$ref": "tchmi:framework#/definitions/HorizontalAlignment" + }, + "headerVerticalAlignment": { + "$ref": "tchmi:framework#/definitions/VerticalAlignment" + }, + "format": { + "$ref": "tchmi:framework#/definitions/Function" + }, + "dataDefinitions": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiDatagrid.DataDefinitionList" + }, + "ignoreEscapeSequences": { + "type": "boolean" + }, + "autoFocusOut": { + "type": "boolean" + }, + "autoSelectText": { + "type": "boolean" + }, + "maxTextLength": { + "type": "integer", + "minimum": 0 + } + }, + "required": [ + "label", + "control", + "width", + "widthUnit", + "resize", + "minWidth", + "minWidthUnit", + "editable", + "horizontalAlignment", + "verticalAlignment" + ], + "additionalProperties": false + } + }, + { + "type": "object", + "propertiesMeta": [ + { + "name": "cellBackground", + "displayName": "Cell Background", + "category": "Colors", + "displayPriority": 10, + "description": "Background color of the cells in this column", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "textColor", + "displayName": "Text Color", + "category": "Colors", + "displayPriority": 11, + "description": "Text color of the cells in this column", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "label", + "displayName": "Label", + "category": "General", + "displayPriority": 11, + "description": "Name of the label for this column", + "defaultValue": "", + "defaultValueInternal": null + }, + { + "name": "control", + "displayName": "Control", + "category": "General", + "displayPriority": 12, + "description": "Type of the input elements for this column", + "defaultValue": "TextBox", + "defaultValueInternal": null + }, + { + "name": "width", + "displayName": "Width", + "category": "General", + "displayPriority": 13, + "description": "Width for this column", + "defaultValue": 100, + "defaultValueInternal": null + }, + { + "name": "widthUnit", + "refTo": "width", + "displayName": "Width Unit", + "category": "General", + "displayPriority": 13, + "description": "Width unit for this column. px defines an absolute width, % is relative to the control width and factor can be used to divide the available space into fractions.", + "defaultValue": "px", + "defaultValueInternal": "px" + }, + { + "name": "editable", + "displayName": "Editable", + "category": "General", + "displayPriority": 14, + "description": "Can this column be edited (text, number) or operated (button, checkbox)?", + "defaultValue": false, + "defaultValueInternal": false + }, + { + "name": "minWidth", + "displayName": "Min Width", + "category": "General", + "displayPriority": 15, + "description": "Minimum width for this column", + "defaultValue": 100, + "defaultValueInternal": null + }, + { + "name": "minWidthUnit", + "refTo": "minWidth", + "displayName": "Min Width Unit", + "category": "General", + "displayPriority": 15, + "description": "Minimum width unit for this column", + "defaultValue": "px", + "defaultValueInternal": "px" + }, + { + "name": "resize", + "displayName": "Resize", + "category": "General", + "displayPriority": 16, + "description": "Can this column be resized? Columns that have factor as their widthUnit can never be resizeable.", + "defaultValue": false, + "defaultValueInternal": false + }, + { + "name": "sortable", + "displayName": "Sortable", + "category": "General", + "displayPriority": 17, + "description": "Can this column be sortedby user interaction?", + "defaultValue": true, + "defaultValueInternal": true + }, + { + "name": "horizontalAlignment", + "displayName": "Horizontal Alignment", + "category": "General", + "displayPriority": 18, + "description": "Horizontal alignment of this column", + "defaultValue": "Left", + "defaultValueInternal": "Left" + }, + { + "name": "verticalAlignment", + "displayName": "Vertical Alignment", + "category": "General", + "displayPriority": 19, + "description": "Vertical alignment of this column", + "defaultValue": "Center", + "defaultValueInternal": "Center" + }, + { + "name": "headerHorizontalAlignment", + "displayName": "Header Horizontal Alignment", + "category": "General", + "displayPriority": 20, + "description": "Horizontal alignment of the header of this column", + "defaultValue": "Center", + "defaultValueInternal": "Center" + }, + { + "name": "headerVerticalAlignment", + "displayName": "Header Vertical Alignment", + "category": "General", + "displayPriority": 21, + "description": "Vertical alignment of the header of this column", + "defaultValue": "Center", + "defaultValueInternal": "Center" + }, + { + "name": "format", + "displayName": "Format", + "category": "General", + "displayPriority": 22, + "description": "A reference of function which is called with each entry", + "allowedFunctions": { + "returnType": "tchmi:general#/definitions/String", + "requiredArguments": [ + { + "type": "tchmi:general#/definitions/Any", + "description": "The value to format." + }, + { + "type": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TchmiTreeView.ValueMetaData", + "description": "Meta data of the value. Includes the json schema." + } + ], + "requiredWaitMode": "Synchronous" + }, + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "dataDefinitions", + "displayName": "Data Definitions", + "category": "General", + "displayPriority": 23, + "description": "Mapping from the srcData to a combobox or image selection. \nText to show on Buttons. \nRestrictions for number inputs.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "ignoreEscapeSequences", + "displayName": "Ignore Escape Sequences", + "category": "General", + "displayPriority": 24, + "description": "When set to true a backslash in a text will be shown verbatim in the HMI", + "defaultValue": false, + "defaultValueInternal": false + }, + { + "name": "autoFocusOut", + "displayName": "Auto Focus Out", + "category": "General", + "displayPriority": 25, + "description": "When set to true the control will automatically lose focus when the user presses the enter or escape key", + "defaultValue": true, + "defaultValueInternal": true + }, + { + "name": "autoSelectText", + "displayName": "Auto Select Text", + "category": "General", + "displayPriority": 26, + "description": "When set to true all text within the control will be selected when the control gains focus", + "defaultValue": false, + "defaultValueInternal": false + }, + { + "name": "maxTextLength", + "displayName": "Max Text Length", + "category": "General", + "displayPriority": 27, + "description": "Maximum number of characters that can be entered in the TextBox", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "cellBackground": { + "$ref": "tchmi:framework#/definitions/Color" + }, + "textColor": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "label": { + "type": "string" + }, + "control": { + "type": "string", + "enum": [ + "TextBox", + "TextBlock", + "CheckBox", + "Image", + "ComboBox", + "NumericInput", + "SpinboxInput", + "PasswordInput", + "Button", + "ToggleButton", + "ToggleSwitch", + "RadioButton", + "DateTimeInput", + "TimespanInput", + "AutoDetectControl" + ] + }, + "width": { + "type": "number", + "minimum": 0 + }, + "widthUnit": { + "$ref": "tchmi:framework#/definitions/MeasurementUnitOrFactor" + }, + "editable": { + "type": "boolean" + }, + "minWidth": { + "type": "number", + "minimum": 0 + }, + "minWidthUnit": { + "$ref": "tchmi:framework#/definitions/MeasurementUnit" + }, + "resize": { + "type": "boolean" + }, + "sortable": { + "type": "boolean" + }, + "horizontalAlignment": { + "$ref": "tchmi:framework#/definitions/HorizontalAlignment" + }, + "verticalAlignment": { + "$ref": "tchmi:framework#/definitions/VerticalAlignment" + }, + "headerHorizontalAlignment": { + "$ref": "tchmi:framework#/definitions/HorizontalAlignment" + }, + "headerVerticalAlignment": { + "$ref": "tchmi:framework#/definitions/VerticalAlignment" + }, + "format": { + "$ref": "tchmi:framework#/definitions/Function" + }, + "dataDefinitions": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiDatagrid.DataDefinitionList" + }, + "ignoreEscapeSequences": { + "type": "boolean" + }, + "autoFocusOut": { + "type": "boolean" + }, + "autoSelectText": { + "type": "boolean" + }, + "maxTextLength": { + "type": "integer", + "minimum": 0 + } + }, + "required": [ + "label", + "control", + "width", + "widthUnit", + "resize", + "minWidth", + "minWidthUnit", + "editable", + "horizontalAlignment", + "verticalAlignment" + ], + "additionalProperties": false + } + ] + }, + "TcHmi.Controls.Beckhoff.TchmiTreeView.ValueMetaData": { + "title": "ValueMetaData", + "description": "Meta data of a value.", + "additionalProperties": false, + "properties": { + "schema": { + "type": "object" + } + }, + "propertiesMeta": [ + { + "name": "schema", + "displayName": "Schema", + "category": "General", + "displayPriority": 10, + "description": "The json schema of the value.", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "type": "object", + "required": [ + "schema" + ] + }, + "TcHmi.Controls.Beckhoff.TchmiTreeView.DataChangeEventObject": { + "type": "object", + "properties": { + "index": { + "type": "array", + "items": { + "type": "number" + } + }, + "property": { + "type": [ + "string", + "null" + ] + }, + "value": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "TchmiTreeViewDataChangeEventObject": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TchmiTreeView.DataChangeEventObject" + }, + "TcHmi.Controls.Beckhoff.TchmiTreeView.IndexEventObject": { + "type": "object", + "properties": { + "index": { + "type": "array", + "items": { + "type": "number" + } + } + }, + "additionalProperties": false + }, + "TchmiTreeViewIndexEventObject": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TchmiTreeView.IndexEventObject" + }, + "TcHmi.Controls.Beckhoff.TchmiTreeView.UpdateTableTypeEventObject": { + "type": "object", + "properties": { + "updateTableType": { + "type": "string", + "enum": [ + "dataChange", + "configChange", + "scroll" + ] + } + }, + "additionalProperties": false + }, + "TchmiTreeViewUpdateTableTypeEventObject": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TchmiTreeView.UpdateTableTypeEventObject" + }, + "ChartMenuBarPosition": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartMenuBarPosition" + }, + "ChartMouseMode": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartMouseMode" + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendLineChart": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiTrendLineChart", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.StatisticalDataConfiguration": { + "type": "object", + "title": "StatisticalDataConfiguration", + "properties": { + "minimum": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.StatisticalDataField" + }, + "maximum": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.StatisticalDataField" + }, + "average": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.StatisticalDataField" + } + }, + "additionalProperties": false + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.StatisticalDataField": { + "type": "object", + "title": "StatisticalDataField", + "description": "Defines one statistical data field.", + "propertiesMeta": [ + { + "name": "showColumn", + "category": "General", + "displayName": "Show Column", + "displayPriority": 10, + "description": "Describes whether the column should be displayed.", + "defaultValue": true, + "defaultValueInternal": true + }, + { + "name": "decimalPlaces", + "category": "General", + "displayName": "Decimal Places", + "displayPriority": 20, + "description": "Describes the number of decimal places.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "unit", + "category": "General", + "displayName": "Unit", + "displayPriority": 30, + "description": "Describes the unit. Is written after the value.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "useScaleFactor", + "category": "General", + "displayName": "Use Scale Factor", + "displayPriority": 10, + "description": "Describes whether the scaling factor should be used.", + "defaultValue": false, + "defaultValueInternal": false + } + ], + "properties": { + "showColumn": { + "type": "boolean" + }, + "decimalPlaces": { + "type": "number", + "minimum": 0 + }, + "unit": { + "type": "string" + }, + "useScaleFactor": { + "type": "boolean" + } + }, + "required": [ + "showColumn" + ], + "additionalProperties": false + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartEnd": { + "anyOf": [ + { + "title": "Time", + "$ref": "tchmi:general#/definitions/DateTime" + }, + { + "title": "Timespan", + "$ref": "tchmi:general#/definitions/TimeSpan" + }, + { + "title": "KeyWords", + "type": "string", + "enum": [ + "Latest" + ] + } + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartLineGraphDescriptionDefinitionList": { + "$schema": "http://json-schema.org/draft-04/schema", + "title": "TrendLineChartLineGraphDescriptionDefinitionList", + "type": "array", + "items": { + "type": "object", + "title": "Line graph description", + "description": "Defines one line graph descriptions.", + "propertiesMeta": [ + { + "name": "lineColor", + "displayName": "Line Color", + "category": "Colors", + "displayPriority": 10, + "description": "Color for this line", + "defaultValue": "%tr%Control::TcHmi.Controls.Beckhoff.TcHmiTrendLineChart::LineGraphDescriptionLineColor%/tr%", + "defaultValueInternal": null + }, + { + "name": "pointDotFillColor", + "displayName": "Point Dot Fill Color", + "category": "Colors", + "displayPriority": 10, + "description": "Color for the fill of the dots", + "defaultValue": "%tr%Control::TcHmi.Controls.Beckhoff.TcHmiTrendLineChart::LineGraphDescriptionPointDotFillColor%/tr%", + "defaultValueInternal": null + }, + { + "name": "pointDotStrokeColor", + "displayName": "Point Dot Stroke Color", + "category": "Colors", + "displayPriority": 10, + "description": "Color for the stroke of the dots", + "defaultValue": "%tr%Control::TcHmi.Controls.Beckhoff.TcHmiTrendLineChart::LineGraphDescriptionPointDotStrokeColor%/tr%", + "defaultValueInternal": null + }, + { + "name": "symbol", + "displayName": "Symbol", + "category": "General", + "displayPriority": 10, + "description": "Name of the historized Symbol", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "yAxisId", + "displayName": "Y Axis Id", + "category": "General", + "displayPriority": 10, + "description": "Id of the y-axis to use for this graph", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "lineWidth", + "displayName": "Line Width", + "category": "General", + "displayPriority": 10, + "description": "Line width in pixel", + "defaultValue": 1, + "defaultValueInternal": null + }, + { + "name": "pointDot", + "displayName": "Point Dot", + "category": "General", + "displayPriority": 10, + "description": "Defines if the line has dots on the data points", + "defaultValue": false, + "defaultValueInternal": false + }, + { + "name": "pointDotInStopMode", + "displayName": "Point Dot In Stop Mode", + "category": "General", + "displayPriority": 10, + "description": "Defines if the line has dots on the data points", + "defaultValue": false, + "defaultValueInternal": false + }, + { + "name": "pointDotRadius", + "displayName": "Point Dot Radius", + "category": "General", + "displayPriority": 10, + "description": "Dot radius", + "defaultValue": 3, + "defaultValueInternal": 3 + }, + { + "name": "pointDotStrokeWidth", + "displayName": "Point Dot Stroke Width", + "category": "General", + "displayPriority": 10, + "description": "Dot stroke width", + "defaultValue": 1, + "defaultValueInternal": 1 + }, + { + "name": "legendName", + "category": "General", + "displayName": "Legend Name", + "displayPriority": 10, + "description": "The name that is displayed in the legend.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "scaleFactor", + "category": "General", + "displayName": "Scale Factor", + "displayPriority": 10, + "description": "Scales all values with this scale factor.", + "defaultValue": null, + "defaultValueInternal": 1 + }, + { + "name": "fillMode", + "displayName": "Fill Mode", + "category": "General", + "displayPriority": 10, + "description": "Fill mode for the fill area", + "defaultValue": null, + "defaultValueInternal": "None" + }, + { + "name": "fillModeReferenceLine", + "displayName": "Fill Mode Reference Line", + "category": "General", + "displayPriority": 10, + "description": "The name of the reference line that is used as the base for the fillMode.", + "defaultValue": null, + "defaultValueInternal": "None" + }, + { + "name": "fillColor", + "displayName": "Fill Color", + "category": "Colors", + "displayPriority": 10, + "description": "Color for the fill area", + "defaultValue": "%tr%Control::TcHmi.Controls.Beckhoff.TcHmiLineChart::LineGraphDescriptionFillColor%/tr%", + "defaultValueInternal": null + }, + { + "name": "fillTransparency", + "displayName": "Fill Transparency", + "category": "General", + "displayPriority": 10, + "description": "Fill transparency for the fill area (0-255)", + "defaultValue": null, + "defaultValueInternal": 50 + }, + { + "name": "colorRanges", + "category": "General", + "displayName": "Color Ranges", + "displayPriority": 10, + "description": "An array of colors to be used in different ranges.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "defaultVisibility", + "category": "General", + "displayName": "Default Visibility", + "displayPriority": 10, + "description": "Default value for visibility.", + "defaultValue": null, + "defaultValueInternal": true + } + ], + "properties": { + "symbol": { + "type": "string", + "frameworkMetaType": "historizedSymbol" + }, + "yAxisId": { + "type": "integer" + }, + "lineWidth": { + "type": "number" + }, + "lineColor": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "pointDot": { + "type": "boolean" + }, + "pointDotInStopMode": { + "type": "boolean" + }, + "pointDotRadius": { + "type": "number", + "minimum": 0 + }, + "pointDotFillColor": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "pointDotStrokeWidth": { + "type": "number", + "minimum": 0 + }, + "pointDotStrokeColor": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "legendName": { + "type": "string" + }, + "scaleFactor": { + "type": "number" + }, + "fillMode": { + "type": "string", + "enum": [ + "None", + "HorizontalZero", + "Top", + "Bottom", + "ReferenceLine" + ] + }, + "fillModeReferenceLine": { + "type": "string" + }, + "fillColor": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "fillTransparency": { + "type": "number", + "minimum": 0, + "maximum": 255 + }, + "colorRanges": { + "type": "array", + "items": { + "type": "object", + "propertiesMeta": [ + { + "name": "color", + "displayName": "Line Color", + "category": "Colors", + "displayPriority": 10, + "description": "Color for this line expression", + "defaultValue": "%tr%Control::TcHmi.Controls.Beckhoff.TcHmiTrendLineChart::DefaultColorRangeColor%/tr%", + "defaultValueInternal": null + }, + { + "name": "fillColor", + "displayName": "Fill Color", + "category": "Colors", + "displayPriority": 10, + "description": "Color for the fill area", + "defaultValue": "%tr%Control::TcHmi.Controls.Beckhoff.TcHmiTrendLineChart::DefaultFillColorRangeColor%/tr%", + "defaultValueInternal": null + }, + { + "name": "expression", + "displayName": "Expression", + "category": "General", + "displayPriority": 10, + "description": "Expressions for colorRanges", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "color": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "fillColor": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "expression": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartLineColorFilter" + } + }, + "additionalProperties": false + } + }, + "defaultVisibility": { + "type": "boolean" + } + }, + "required": [ + "symbol" + ], + "additionalProperties": false + } + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartLineColorFilter": { + "title": "ChartLineColorFilter", + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "path": { + "type": "string", + "enum": [ + "{value}" + ], + "default": "{value}" + }, + "comparator": { + "type": "string", + "enum": [ + "==", + "!=", + "<", + ">", + "<=", + ">=" + ], + "default": "==" + }, + "value": { + "type": "number" + } + }, + "required": [ + "path", + "comparator", + "value" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "logic": { + "enum": [ + "AND", + "OR" + ], + "type": "string" + } + }, + "required": [ + "logic" + ], + "additionalProperties": false + }, + { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartLineColorFilter" + } + ] + } + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartMenuBarPosition": { + "title": "ChartMenuBarPosition", + "type": "string", + "enum": [ + "Bottom", + "Top" + ], + "default": "Bottom" + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartMouseMode": { + "title": "ChartMouseMode", + "type": "string", + "enum": [ + "ZoomX", + "ZoomXY", + "PanX", + "PanXY" + ], + "default": "ZoomX" + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartStart": { + "anyOf": [ + { + "title": "Time", + "$ref": "tchmi:general#/definitions/DateTime" + }, + { + "title": "Timespan", + "$ref": "tchmi:general#/definitions/TimeSpan" + }, + { + "title": "KeyWords", + "type": "string", + "enum": [ + "First" + ] + } + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.TimePreset": { + "$schema": "http://json-schema.org/draft-04/schema", + "title": "TimePreset", + "type": "object", + "description": "Datetime entries in the start or end combo box.", + "propertiesMeta": [ + { + "name": "name", + "displayName": "Name", + "category": "Common", + "displayPriority": 10, + "description": "Name of entry.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "value", + "displayName": "Value", + "category": "Common", + "displayPriority": 10, + "description": "Value of entry.", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "name": { + "type": "string" + }, + "value": { + "title": "Time", + "$ref": "tchmi:general#/definitions/DateTime" + } + }, + "required": [ + "name", + "value" + ], + "additionalProperties": false + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.TimespanPreset": { + "$schema": "http://json-schema.org/draft-04/schema", + "title": "TimespanPreset", + "type": "object", + "description": "Timespan entries in the start or end combo box.", + "propertiesMeta": [ + { + "name": "name", + "displayName": "Name", + "category": "Common", + "displayPriority": 10, + "description": "Name of entry.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "value", + "displayName": "Value", + "category": "Common", + "displayPriority": 10, + "description": "Value of entry.", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "name": { + "type": "string" + }, + "value": { + "title": "Timespan", + "$ref": "tchmi:general#/definitions/TimeSpan" + } + }, + "required": [ + "name", + "value" + ], + "additionalProperties": false + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.TimeOrTimespanPreset": { + "$schema": "http://json-schema.org/draft-04/schema", + "title": "TimeOrTimespanPreset", + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.TimePreset" + }, + { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.TimespanPreset" + } + ] + } + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartTooltipErrorInformationList": { + "$schema": "http://json-schema.org/draft-04/schema", + "title": "ChartTooltipErrorInformationList", + "type": "array", + "items": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartTooltipErrorInformationObject" + } + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartTooltipErrorInformationObject": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "title": "TrendLineChart tooltip error information object", + "properties": { + "yAxis": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartYAxisDefinition" + }, + "beginTime": { + "type": "number" + }, + "endTime": { + "type": "number" + }, + "errorCode": { + "type": "number" + }, + "symbolname": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "symbolname" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartTooltipInformationList": { + "title": "ChartTooltipInformationList", + "type": "array", + "items": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartTooltipInformationObject" + } + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartTooltipInformationObject": { + "type": "object", + "title": "TrendLineChart tooltip information object", + "properties": { + "point": { + "type": "object", + "properties": { + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "x", + "y" + ], + "additionalProperties": false + }, + "yAxis": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartYAxisDefinition" + }, + "symbolname": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "point", + "symbolname" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartYAxisDefinition": { + "$schema": "http://json-schema.org/draft-04/schema", + "title": "ChartYAxisDefinition", + "type": "object", + "propertiesMeta": [ + { + "name": "labelFontColor", + "category": "Colors", + "displayName": "Label Font Color", + "displayPriority": 10, + "description": "Describes the color of the axis label.", + "defaultValue": "%tr%Control::TcHmi.Controls.Beckhoff.TcHmiTrendLineChart::YAxisLabelFontColor%/tr%", + "defaultValueInternal": null + }, + { + "name": "axisColor", + "category": "Colors", + "displayName": "Axis Color", + "displayPriority": 10, + "description": "Describes the color of the axis.", + "defaultValue": "%tr%Control::TcHmi.Controls.Beckhoff.TcHmiTrendLineChart::YAxisAxisColor%/tr%", + "defaultValueInternal": null + }, + { + "name": "axisNameFontColor", + "category": "Colors", + "displayName": "Axis Name Font Color", + "displayPriority": 10, + "description": "Describes the color of the axis name.", + "defaultValue": "%tr%Control::TcHmi.Controls.Beckhoff.TcHmiTrendLineChart::YAxisAxisNameFontColor%/tr%", + "defaultValueInternal": null + }, + { + "name": "id", + "category": "General", + "displayName": "Id", + "displayPriority": 10, + "description": "The id of the axis.", + "defaultValue": 1, + "defaultValueInternal": null + }, + { + "name": "position", + "category": "General", + "displayName": "Position", + "displayPriority": 10, + "description": "Describes the position of the axis (horizontal or vertical).", + "defaultValue": "Left", + "defaultValueInternal": "Left" + }, + { + "name": "logarithmicScale", + "category": "General", + "displayName": "Logarithmic Scale", + "displayPriority": 10, + "description": "Describes whether the axis should be displayed logarithmically.", + "defaultValue": null, + "defaultValueInternal": false + }, + { + "name": "axisLabeling", + "category": "General", + "displayName": "Axis Labeling", + "displayPriority": 10, + "description": "Describes how the axis labeling should be displayed (Number, Scientific or auto).", + "defaultValue": null, + "defaultValueInternal": "Number" + }, + { + "name": "mainTickMinValue", + "category": "General", + "displayName": "Main Tick Min Value", + "displayPriority": 10, + "description": "The start value of the y axis.", + "defaultValue": null, + "defaultValueInternal": 0 + }, + { + "name": "mainTickMaxValue", + "category": "General", + "displayName": "Main Tick Max Value", + "displayPriority": 10, + "description": "The end value of the y axis.", + "defaultValue": null, + "defaultValueInternal": 100 + }, + { + "name": "autoScaling", + "category": "General", + "displayName": "Auto Scaling", + "displayPriority": 10, + "description": "Describes whether the axis should be autoscaled.", + "defaultValue": null, + "defaultValueInternal": false + }, + { + "name": "decimalPlaces", + "category": "General", + "displayName": "Decimal Places", + "displayPriority": 10, + "description": "Describes whether the decimal places of the axis labeling.", + "defaultValue": null, + "defaultValueInternal": 2 + }, + { + "name": "showAxis", + "category": "General", + "displayName": "Show Axis", + "displayPriority": 10, + "description": "Describes whether the axis should be displayed.", + "defaultValue": null, + "defaultValueInternal": true + }, + { + "name": "showLabels", + "category": "General", + "displayName": "Show Labels", + "displayPriority": 10, + "description": "Describes whether the axis labels should be displayed.", + "defaultValue": null, + "defaultValueInternal": true + }, + { + "name": "showAxisName", + "category": "General", + "displayName": "Show Axis Name", + "displayPriority": 10, + "description": "Describes whether the axis name should be displayed.", + "defaultValue": null, + "defaultValueInternal": true + }, + { + "name": "axisName", + "category": "General", + "displayName": "Axis Name", + "displayPriority": 10, + "description": "Describes whether the axis name.", + "defaultValue": null, + "defaultValueInternal": "y axis 1" + }, + { + "name": "axisNameFontFamily", + "category": "General", + "displayName": "Axis Name Font Family", + "displayPriority": 10, + "description": "Describes the axis name font family. Comma separated list of family name or keyword: 'serif', 'sans-serif', 'monospace'.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "axisNameFontSize", + "category": "General", + "displayName": "Axis Name Font Size", + "displayPriority": 10, + "description": "Describes the axis name font size.", + "defaultValue": null, + "defaultValueInternal": 15 + }, + { + "name": "axisNameFontSizeUnit", + "refTo": "axisNameFontSize", + "category": "General", + "displayName": "Axis Name Font Size Unit", + "displayPriority": 10, + "description": "Describes the axis name font size unit.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "axisNameFontWeight", + "category": "General", + "displayName": "Axis Name Font Weight", + "displayPriority": 10, + "description": "Describes the axis name font weight. 'Normal', 'Bold' (glyphs with more weight) or 'Auto' for inherited.", + "defaultValue": null, + "defaultValueInternal": "Bold" + }, + { + "name": "unit", + "category": "General", + "displayName": "Unit", + "displayPriority": 10, + "description": "Describes the unit of the description of the y-axis. Is written after the value on the axis.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "showAxisIfNoData", + "category": "General", + "displayName": "Show Axis If No Data", + "displayPriority": 10, + "description": "If showAxisIfNoData is true, the axis is always displayed; if false, the axis is only displayed if there are data sets assigned to the axis.", + "defaultValue": null, + "defaultValueInternal": true + }, + { + "name": "format", + "displayName": "Format", + "category": "General", + "displayPriority": 22, + "description": "A formatting function to format the yAxis values (HTML not allowed) which is called with each entry.", + "allowedFunctions": { + "returnType": "tchmi:general#/definitions/String", + "requiredArguments": [ + { + "type": "tchmi:general#/definitions/Number", + "description": "The yAxis label to format." + } + ], + "requiredWaitMode": "Synchronous" + }, + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "labelFontColor": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "axisColor": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "axisNameFontColor": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "id": { + "type": "integer", + "minimum": 0 + }, + "position": { + "type": "string", + "enum": [ + "Left", + "Right" + ] + }, + "logarithmicScale": { + "type": "boolean" + }, + "axisLabeling": { + "type": "string", + "enum": [ + "Number", + "Scientific", + "Auto" + ] + }, + "mainTickMinValue": { + "type": "number" + }, + "mainTickMaxValue": { + "type": "number" + }, + "autoScaling": { + "type": "boolean" + }, + "decimalPlaces": { + "type": "number", + "minimum": 0 + }, + "showAxis": { + "type": "boolean" + }, + "showLabels": { + "type": "boolean" + }, + "showAxisName": { + "type": "boolean" + }, + "axisName": { + "type": "string" + }, + "axisNameFontFamily": { + "$ref": "tchmi:framework#/definitions/FontFamily" + }, + "axisNameFontSize": { + "$ref": "tchmi:framework#/definitions/MeasurementValue" + }, + "axisNameFontSizeUnit": { + "$ref": "tchmi:framework#/definitions/PixelUnit" + }, + "axisNameFontWeight": { + "$ref": "tchmi:framework#/definitions/FontWeight" + }, + "unit": { + "type": "string" + }, + "showAxisIfNoData": { + "type": "boolean" + }, + "format": { + "$ref": "tchmi:framework#/definitions/Function" + } + }, + "additionalProperties": false, + "required": [ + "id", + "position" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartYAxisDefinitionList": { + "$schema": "http://json-schema.org/draft-04/schema", + "title": "ChartYAxisDefinitionList", + "type": "array", + "items": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartYAxisDefinition" + } + }, + "TcHmiTrendLineChart": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTrendLineChart" + }, + "TrendLineChartEnd": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartEnd" + }, + "TrendLineChartLineGraphDescriptionDefinitionList": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartLineGraphDescriptionDefinitionList" + }, + "TrendLineChartStart": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartStart" + }, + "TrendLineChartTooltipErrorInformationList": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartTooltipErrorInformationList" + }, + "TrendLineChartTooltipErrorInformationObject": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartTooltipErrorInformationObject" + }, + "TrendLineChartTooltipInformationList": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartTooltipInformationList" + }, + "TrendLineChartTooltipInformationObject": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartTooltipInformationObject" + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartReferenceLineDefinition": { + "title": "ChartReferenceLineDefinition", + "type": "object", + "engineeringColumns": [ + "name", + "value", + "orientation" + ], + "propertiesMeta": [ + { + "name": "orientation", + "category": "General", + "displayName": "Orientation", + "displayPriority": 10, + "description": "Describes the orientation of the reference line.", + "defaultValue": "Horizontal", + "defaultValueInternal": "Horizontal" + }, + { + "name": "show", + "category": "General", + "displayName": "Show", + "displayPriority": 10, + "description": "Describes whether the reference line is displayed.", + "defaultValue": null, + "defaultValueInternal": true + }, + { + "name": "name", + "category": "General", + "displayName": "Name", + "displayPriority": 10, + "description": "Describes the name of the reference line.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "yAxisId", + "category": "General", + "displayName": "Y Axis Id", + "displayPriority": 10, + "description": "Describes the assignment to the y-axis if it is a horizontal reference line.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "value", + "category": "General", + "displayName": "Value", + "displayPriority": 10, + "description": "Describes the value of the reference line.", + "defaultValue": 0, + "defaultValueInternal": 0 + }, + { + "name": "valueUnit", + "category": "General", + "displayName": "Value Unit", + "displayPriority": 10, + "description": "Describes the unit of the value of the reference line (Value or %).", + "defaultValue": "Value", + "defaultValueInternal": "Value" + }, + { + "name": "locked", + "category": "General", + "displayName": "Locked", + "displayPriority": 10, + "description": "Describes whether the reference line is fixed to the axis.", + "defaultValue": null, + "defaultValueInternal": true + }, + { + "name": "showTooltip", + "category": "General", + "displayName": "Show Tooltip", + "displayPriority": 10, + "description": "Describes whether the tooltip should be displayed.", + "defaultValue": null, + "defaultValueInternal": false + }, + { + "name": "highlightDataPoints", + "category": "General", + "displayName": "Highlight Data Points", + "displayPriority": 10, + "description": "Describes whether the datapoints should be highlighted.", + "defaultValue": null, + "defaultValueInternal": false + }, + { + "name": "color", + "category": "Colors", + "displayName": "Color", + "displayPriority": 10, + "description": "Describes the color of the reference line.", + "defaultValue": "%tr%Control::TcHmi.Controls.Beckhoff.TcHmiTrendLineChart::ReferenceLineColor%/tr%", + "defaultValueInternal": { + "color": "#4794da" + } + }, + { + "name": "lineWidth", + "category": "General", + "displayName": "Line Width", + "displayPriority": 10, + "description": "Describes the line thickness of the reference line.", + "defaultValue": 1, + "defaultValueInternal": null + }, + { + "name": "showLabel", + "category": "General", + "displayName": "Show Label", + "displayPriority": 10, + "description": "Describes whether the description of the reference line is displayed.", + "defaultValue": null, + "defaultValueInternal": true + }, + { + "name": "labelHorizontalAlignment", + "category": "General", + "displayName": "Label Horizontal Alignment", + "displayPriority": 10, + "description": "Describes the horizontal alignment of the reference line description.", + "defaultValue": null, + "defaultValueInternal": "Right" + }, + { + "name": "labelVerticalAlignment", + "category": "General", + "displayName": "Label Vertical Alignment", + "displayPriority": 10, + "description": "Describes the vertical alignment of the reference line description.", + "defaultValue": null, + "defaultValueInternal": "Top" + }, + { + "name": "labelFontFamily", + "category": "General", + "displayName": "Label Font Family", + "displayPriority": 10, + "description": "Describes the font of the description of the reference line. Comma separated list of family name or keyword: 'serif', 'sans-serif', 'monospace'.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "labelFontSize", + "category": "General", + "displayName": "Label Font Size", + "displayPriority": 10, + "description": "Describes the font size of the description of the reference line.", + "defaultValue": null, + "defaultValueInternal": 12 + }, + { + "name": "labelFontSizeUnit", + "refTo": "labelFontSize", + "category": "General", + "displayName": "Label Font Size Unit", + "displayPriority": 10, + "description": "Describes the font size unit of the description of the reference line.", + "defaultValue": null, + "defaultValueInternal": "px" + }, + { + "name": "labelFontWeight", + "category": "General", + "displayName": "Label Font Weight", + "displayPriority": 10, + "description": "Describes the font weight of the description of the reference line. 'Normal', 'Bold' (glyphs with more weight) or 'Auto' for inherited.", + "defaultValue": null, + "defaultValueInternal": "Auto" + } + ], + "properties": { + "orientation": { + "type": "string", + "enum": [ + "Horizontal", + "Vertical" + ] + }, + "show": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "yAxisId": { + "type": "integer" + }, + "value": { + "type": "number" + }, + "valueUnit": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.ChartReferenceLineValueUnit" + }, + "locked": { + "type": "boolean" + }, + "showTooltip": { + "type": "boolean" + }, + "highlightDataPoints": { + "type": "boolean" + }, + "color": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "lineWidth": { + "type": "number" + }, + "showLabel": { + "type": "boolean" + }, + "labelHorizontalAlignment": { + "$ref": "tchmi:framework#/definitions/HorizontalAlignment" + }, + "labelVerticalAlignment": { + "$ref": "tchmi:framework#/definitions/VerticalAlignment" + }, + "labelFontFamily": { + "$ref": "tchmi:framework#/definitions/FontFamily" + }, + "labelFontSize": { + "$ref": "tchmi:framework#/definitions/MeasurementValue" + }, + "labelFontSizeUnit": { + "$ref": "tchmi:framework#/definitions/PixelUnit" + }, + "labelFontWeight": { + "$ref": "tchmi:framework#/definitions/FontWeight" + } + }, + "additionalProperties": false, + "required": [ + "name", + "value", + "orientation" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartReferenceLineDefinitionList": { + "$schema": "http://json-schema.org/draft-04/schema", + "title": "ChartReferenceLineDefinitionList", + "type": "array", + "items": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartReferenceLineDefinition" + } + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendLineChart.ChartReferenceLinesPosition": { + "title": "ChartReferenceLinesPosition", + "type": "string", + "enum": [ + "Background", + "Foreground" + ], + "default": "Background" + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendSparkline": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiTrendSparkline", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiTrendSparkline": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTrendSparkline" + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendSparkline.HistorizedSymbolList": { + "title": "HistorizedSymbolList", + "type": "array", + "items": { + "type": "object", + "title": "Historized symbol description", + "description": "Defines a historized symbol.", + "propertiesMeta": [ + { + "name": "symbol", + "displayName": "Symbol", + "category": "General", + "displayPriority": 10, + "description": "Name of the historized Symbol", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "displayName", + "displayName": "Display Name", + "category": "General", + "displayPriority": 10, + "description": "Display name of the historized Symbol", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "lineWidth", + "category": "General", + "displayName": "Line Width", + "displayPriority": 10, + "description": "Describes the line thickness of the line.", + "defaultValue": 1, + "defaultValueInternal": null + }, + { + "name": "lineColor", + "displayName": "Line Color", + "category": "Colors", + "displayPriority": 10, + "description": "Color for this line", + "defaultValue": "%tr%Control::TcHmi.Controls.Beckhoff.TcHmiTrendSparkline::DefaultGraphColor%/tr%", + "defaultValueInternal": null + }, + { + "name": "referenceLines", + "displayName": "Reference Lines", + "category": "General", + "displayPriority": 10, + "description": "Reference lines", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "symbol": { + "type": "string", + "frameworkMetaType": "historizedSymbol" + }, + "displayName": { + "type": "string" + }, + "lineWidth": { + "type": "number" + }, + "lineColor": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "referenceLines": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTrendSparkline.ReferenceLineDefinitionList" + } + }, + "additionalProperties": false, + "required": [ + "symbol" + ] + } + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendSparkline.ChartStart": { + "anyOf": [ + { + "title": "Time", + "$ref": "tchmi:general#/definitions/DateTime" + }, + { + "title": "Timespan", + "$ref": "tchmi:general#/definitions/TimeSpan" + }, + { + "title": "KeyWords", + "type": "string", + "enum": [ + "First" + ] + } + ], + "default": "First" + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendSparkline.ChartEnd": { + "anyOf": [ + { + "title": "Time", + "$ref": "tchmi:general#/definitions/DateTime" + }, + { + "title": "Timespan", + "$ref": "tchmi:general#/definitions/TimeSpan" + }, + { + "title": "KeyWords", + "type": "string", + "enum": [ + "Latest" + ] + } + ], + "default": "Latest" + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendSparkline.ReferenceLineDefinition": { + "title": "ReferenceLineDefinition", + "type": "object", + "engineeringColumns": [ + "value" + ], + "propertiesMeta": [ + { + "name": "show", + "category": "General", + "displayName": "Show", + "displayPriority": 10, + "description": "Describes whether the reference line is displayed.", + "defaultValue": null, + "defaultValueInternal": true + }, + { + "name": "value", + "category": "General", + "displayName": "Value", + "displayPriority": 10, + "description": "Describes the value of the reference line.", + "defaultValue": 0, + "defaultValueInternal": 0 + }, + { + "name": "color", + "category": "Colors", + "displayName": "Color", + "displayPriority": 10, + "description": "Describes the color of the reference line.", + "defaultValue": "%tr%Control::TcHmi.Controls.Beckhoff.TcHmiTrendSparkline::ReferenceLineColor%/tr%", + "defaultValueInternal": { + "color": "#4794da" + } + }, + { + "name": "lineWidth", + "category": "General", + "displayName": "Line Width", + "displayPriority": 10, + "description": "Describes the line thickness of the reference line.", + "defaultValue": 1, + "defaultValueInternal": null + } + ], + "properties": { + "show": { + "type": "boolean" + }, + "value": { + "type": "number" + }, + "color": { + "$ref": "tchmi:framework#/definitions/SolidColor" + }, + "lineWidth": { + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "value" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendSparkline.ReferenceLineDefinitionList": { + "$schema": "http://json-schema.org/draft-04/schema", + "title": "ReferenceLineDefinitionList", + "type": "array", + "items": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiTrendSparkline.ReferenceLineDefinition" + } + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendSparkline.AxisPosition": { + "title": "AxisPosition", + "type": "string", + "enum": [ + "Right", + "Left" + ], + "default": "Right" + }, + "TcHmi.Controls.Beckhoff.TcHmiTrendSparkline.LabelPosition": { + "title": "LabelPosition", + "type": "string", + "enum": [ + "Right", + "Center", + "Left" + ], + "default": "Right" + }, + "TcHmi.Controls.Beckhoff.TcHmiUserGuidance": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiUserGuidance", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmi.Controls.Beckhoff.TcHmiUserGuidance.UserControlInterop": { + "type": "object", + "title": "User Control Interop", + "description": "The User Control Interop object used by the User Guidance control. \nA User Control with a parameter of this type can enable the 'Next' button of the User Guidance control.", + "properties": { + "confirmNext": { + "type": "boolean" + } + }, + "frameworkMetaType": "TcHmi.Controls.Beckhoff.TcHmiUserGuidance.UserControlInterop", + "additionalProperties": false + }, + "TcHmi.Controls.Beckhoff.TcHmiUserGuidance.Page": { + "type": "object", + "title": "Page", + "description": "A single page", + "engineeringColumns": [ + "name" + ], + "properties": { + "name": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "targetFile": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.System.TcHmiPopup.TargetFile" + }, + "scrolling": { + "$ref": "tchmi:framework#/definitions/ScrollMode" + }, + "hidden": { + "type": "boolean" + }, + "horizontalAlignment": { + "$ref": "tchmi:framework#/definitions/HorizontalAlignment" + }, + "verticalAlignment": { + "$ref": "tchmi:framework#/definitions/VerticalAlignment" + } + }, + "propertiesMeta": [ + { + "name": "name", + "displayName": "Name", + "category": "General", + "displayPriority": 10, + "description": "Name of the Page. Please select a unique name for each page!", + "defaultValue": "newPage", + "defaultValueInternal": null + }, + { + "name": "displayName", + "displayName": "Display Name", + "category": "General", + "displayPriority": 10, + "description": "Name of the Page that will be displayed in the progress bar.", + "defaultValue": "New Page", + "defaultValueInternal": null + }, + { + "name": "targetFile", + "displayName": "Target File", + "category": "General", + "displayPriority": 11, + "description": "The content or usercontrol to show.", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "scrolling", + "displayName": "Scrolling", + "category": "General", + "displayPriority": 16, + "description": "Defines whether a content is scrollable. Possible values are No, Yes, Auto. Does not affect user controls.", + "defaultValue": null, + "defaultValueInternal": "Auto" + }, + { + "name": "hidden", + "displayName": "Hidden", + "category": "General", + "displayPriority": 17, + "description": "Defines whether the page is hidden or not.", + "defaultValue": null, + "defaultValueInternal": false + }, + { + "name": "horizontalAlignment", + "displayName": "Horizontal Alignment", + "category": "General", + "displayPriority": 20, + "description": "Horizontal alignment of the text in the progress bar.", + "defaultValue": "Left", + "defaultValueInternal": "Left" + }, + { + "name": "verticalAlignment", + "displayName": "Vertical Alignment", + "category": "General", + "displayPriority": 21, + "description": "Vertical alignment of the text in the progress bar.", + "defaultValue": "Center", + "defaultValueInternal": "Center" + } + ], + "additionalProperties": false, + "required": [ + "name" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiUserGuidance.ProgressBarAlignment": { + "type": "string", + "enum": [ + "Top", + "Bottom", + "Right", + "Left" + ] + }, + "TcHmi.Controls.Beckhoff.TcHmiUserGuidance.PageList": { + "type": "array", + "title": "Pages", + "description": "A list of pages", + "items": { + "$ref": "#/definitions/TcHmi.Controls.Beckhoff.TcHmiUserGuidance.Page" + } + }, + "TcHmiUserGuidance": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiUserGuidance" + }, + "TcHmi.Controls.Beckhoff.TcHmiUserManagement": { + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiUserManagement", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmiUserManagement": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiUserManagement" + }, + "TcHmi.Controls.Beckhoff.TcHmiUserManagement.AccessConfig": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/AccessConfigBase" + }, + { + "properties": { + "accessright": { + "type": "string", + "enum": [ + "operate", + "observe", + "EditUserProperties", + "UserManagement" + ], + "default": "operate" + } + } + } + ] + } + }, + "TcHmiUserManagementAccessConfig": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiUserManagement.AccessConfig" + }, + "TcHmi.Controls.Beckhoff.TcHmiVideo": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "frameworkInstanceOf": "TcHmi.Controls.System.TcHmiControl", + "frameworkControlType": "TcHmiVideo", + "frameworkControlNamespace": "TcHmi.Controls.Beckhoff" + }, + "TcHmi.Controls.Beckhoff.TcHmiVideo.VideoSourceList": { + "title": "VideoSourceList", + "description": "Video Source List", + "type": "array", + "items": { + "type": "object", + "title": "Video Source", + "engineeringColumns": [ + "source", + "type" + ], + "propertiesMeta": [ + { + "name": "source", + "displayName": "Source", + "category": "General", + "displayPriority": 10, + "description": "The source path of the video source", + "defaultValue": null, + "defaultValueInternal": null + }, + { + "name": "type", + "displayName": "Type", + "category": "General", + "displayPriority": 10, + "description": "The type of the video source.", + "defaultValue": null, + "defaultValueInternal": null + } + ], + "properties": { + "source": { + "$ref": "tchmi:framework#/definitions/Path" + }, + "type": { + "type": "string", + "category": "Common", + "enum": [ + "", + "video/mp4", + "video/webm", + "video/ogg", + "application/dash+xml", + "application/vnd.apple.mpegurl" + ], + "options": [ + { + "label": "", + "value": "" + } + ], + "default": "" + } + }, + "required": [ + "source" + ], + "additionalProperties": false + } + }, + "TcHmiVideo": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiVideo" + }, + "VideoSourceList": { + "$ref": "tchmi:framework#/definitions/TcHmi.Controls.Beckhoff.TcHmiVideo.VideoSourceList" + }, + "TcHmi.Functions.Beckhoff.Increment.IncrementValueSymbol": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/Symbol" + }, + { + "frameworkSymbolSubType": { + "$ref": "tchmi:general#/definitions/Number" + } + } + ] + }, + "IncrementValueSymbol": { + "$ref": "tchmi:framework#/definitions/TcHmi.Functions.Beckhoff.Increment.IncrementValueSymbol" + }, + "TcHmi.Functions.Beckhoff.Decrement.DecrementValueSymbol": { + "allOf": [ + { + "$ref": "tchmi:framework#/definitions/Symbol" + }, + { + "frameworkSymbolSubType": { + "$ref": "tchmi:general#/definitions/Number" + } + } + ] + }, + "DecrementValueSymbol": { + "$ref": "tchmi:framework#/definitions/TcHmi.Functions.Beckhoff.Decrement.DecrementValueSymbol" + }, + "TcHmi.Functions.Beckhoff.Log.Level": { + "type": "string", + "enum": [ + "Error", + "Warning", + "Info", + "Debug" + ] + }, + "TcHmi.Functions.Beckhoff.AuditTrail.CreateAuditLogEntry.AuditLogEntry": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "contextDomain": { + "type": "string" + }, + "comment": { + "type": "string" + }, + "data": { + "type": "object" + } + }, + "required": [ + "name" + ] + } + } +} \ No newline at end of file diff --git a/Properties/tchmi.project.Schema.json b/Properties/tchmi.project.Schema.json new file mode 100644 index 0000000..8381cbb --- /dev/null +++ b/Properties/tchmi.project.Schema.json @@ -0,0 +1,4 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "definitions": {} +} \ No newline at end of file diff --git a/Properties/tchmiconfig.json b/Properties/tchmiconfig.json new file mode 100644 index 0000000..354c5b3 --- /dev/null +++ b/Properties/tchmiconfig.json @@ -0,0 +1,150 @@ +{ + "$schema": "./../../Infineon/Packages/Beckhoff.TwinCAT.HMI.Framework.14.3.360/runtimes/native1.12-tchmi/Schema/TchmiConfig.Schema.json", + "basePath": "./Beckhoff.TwinCAT.HMI.Framework", + "scaleMode": "None", + "startupView": "Desktop.view", + "loginPage": "", + "splash": { + "versionSource": "Framework" + }, + "projectVersion": "1.0.0.0", + "tcHmiServer": { + "websocketIntervalTime": 500, + "websocketTimeout": 20000, + "websocketSystemTimeout": 60000, + "websocketSubscriptionMode": null, + "disableOptionalSystemSubscriptions": false + }, + "activeTheme": "Base", + "themes": { + "Base-Dark": { + "resources": [ + { + "name": "Themes/Base-Dark/Base-DarkStyle.css", + "description": "", + "type": "Stylesheet" + }, + { + "name": "Themes/Base-Dark/Base-Dark.theme", + "description": "", + "type": "ThemedValues" + } + ], + "replacesThemeForControls": [], + "replacesThemeForPackageComponents": [] + }, + "Base": { + "resources": [ + { + "name": "Themes/Base/Base.theme", + "description": "", + "type": "ThemedValues" + }, + { + "name": "Themes/Base/BaseStyle.css", + "description": "", + "type": "Stylesheet" + } + ], + "replacesThemeForControls": [], + "replacesThemeForPackageComponents": [] + } + }, + "dependencyFiles": [ + { + "name": "Fonts/Fonts.css", + "description": "", + "type": "Stylesheet" + } + ], + "userControls": [], + "controls": [], + "content": [], + "views": [ + { + "url": "Desktop.view", + "preload": false, + "keepAlive": false, + "preloadBindings": false + } + ], + "userFunctions": [], + "symbols": { + "internal": {}, + "themedResources": {}, + "timer": {}, + "package": {} + }, + "intervals": {}, + "trigger": [], + "actionTemplates": [], + "languages": { + "de": "Localization/de.localization", + "en": "Localization/en.localization" + }, + "languageFallback": "", + "disableLoadingOptimization": false, + "creatorSettings": { + "viewport": { + "defaultWidth": 800, + "defaultHeight": 600 + } + }, + "binding": { + "symbolError": "Ignore", + "symbolWriteError": "ReadBack" + }, + "packages": [ + { + "name": "Beckhoff.TwinCAT.HMI.Controls", + "basePath": "/Beckhoff.TwinCAT.HMI.Controls", + "symbols": { + "package": {} + } + }, + { + "name": "Beckhoff.TwinCAT.HMI.Framework", + "basePath": "/Beckhoff.TwinCAT.HMI.Framework", + "symbols": { + "package": {} + } + }, + { + "name": "Beckhoff.TwinCAT.HMI.Functions", + "basePath": "/Beckhoff.TwinCAT.HMI.Functions", + "symbols": { + "package": {} + } + } + ], + "keyboardLayouts": [ + { + "url": "KeyboardLayouts/German - compact.keyboard.json" + }, + { + "url": "KeyboardLayouts/Numpad (plusminus).keyboard.json" + }, + { + "url": "KeyboardLayouts/US - compact.keyboard.json" + } + ], + "systemKeyboard": { + "providerName": "", + "autoOpen": false, + "projectKeyboardMapping": { + "de": { + "text": "KeyboardLayouts/German - compact.keyboard.json", + "decimal": "KeyboardLayouts/Numpad (plusminus).keyboard.json", + "numeric": "" + }, + "en": { + "text": "KeyboardLayouts/US - compact.keyboard.json", + "decimal": "KeyboardLayouts/Numpad (plusminus).keyboard.json", + "numeric": "" + } + } + }, + "systemPopups": { + "providerName": "Beckhoff.TcHmiPopups" + } +} \ No newline at end of file diff --git a/Properties/tchmimanifest.json b/Properties/tchmimanifest.json new file mode 100644 index 0000000..3f48420 --- /dev/null +++ b/Properties/tchmimanifest.json @@ -0,0 +1,47 @@ +{ + "$schema": "http://json.schemastore.org/web-manifest", + "name": "Infineon_HMI", + "short_name": "Infineon_HMI", + "icons": [ + { + "src": "../Images/Manifest/launcher-icon-0-75x.png", + "sizes": "36x36", + "type": "image/png", + "density": 0.75 + }, + { + "src": "../Images/Manifest/launcher-icon-1x.png", + "sizes": "48x48", + "type": "image/png", + "density": 1.0 + }, + { + "src": "../Images/Manifest/launcher-icon-1-5x.png", + "sizes": "72x72", + "type": "image/png", + "density": 1.5 + }, + { + "src": "../Images/Manifest/launcher-icon-2x.png", + "sizes": "96x96", + "type": "image/png", + "density": 2.0 + }, + { + "src": "../Images/Manifest/launcher-icon-3x.png", + "sizes": "144x144", + "type": "image/png", + "density": 3.0 + }, + { + "src": "../Images/Manifest/launcher-icon-4x.png", + "sizes": "192x192", + "type": "image/png", + "density": 4.0 + } + ], + "theme_color": "#9E9E9E", + "background_color": "#9E9E9E", + "start_url": "../", + "display": "standalone" +} diff --git a/Properties/tchmipublish.config.json b/Properties/tchmipublish.config.json new file mode 100644 index 0000000..797f93c --- /dev/null +++ b/Properties/tchmipublish.config.json @@ -0,0 +1,52 @@ +[ + { + "serverExtensions": [ + { + "publishServerExtension": true, + "name": "ADS" + }, + { + "publishServerExtension": true, + "name": "TcHmiLua" + }, + { + "publishServerExtension": true, + "name": "TcHmiSqliteLogger" + }, + { + "publishServerExtension": true, + "name": "TcHmiSrv" + }, + { + "publishServerExtension": true, + "name": "TcHmiUserManagement" + } + ], + "profileName": "TestHMI", + "publishMode": "TcHmi", + "targetDirectory": "", + "deleteAllFilesBeforePublish": false, + "deleteExtensionDataBeforePublish": false, + "alwaysPublishLocalServerConfiguration": true, + "temporaryPublishWithoutServerConfiguration": false, + "abortOnErrors": true, + "createPublishLog": false, + "salt": "c50ba82bb48c48c8abe33a3fdaaca4de", + "encryptedTcHmiServerPassword": "9C/Q60mDEgHaWh09q/0mGw==", + "tcHmiServerHost": "192.168.10.1", + "tcHmiServerPort": "2020", + "uploadTimeout": "60", + "connectionTimeout": "5", + "requestTimeout": "60", + "extensionStartupTimeout": "120", + "clientCertificateCN": "", + "tcHmiUseTLS": true, + "useClientCertificate": false, + "launchBrowserAfterPublish": false, + "createVirtualDirectoriesOnTargetSystem": false, + "tcHmiServerUserName": "__SystemAdministrator", + "tcHmiDestinationUrl": "https://192.168.10.1:2020/", + "publishConfiguration": "remote", + "tcHmiIgnoreCertificateErrors": true + } +] \ No newline at end of file diff --git a/Server/ADS/ADS.Config.default.json b/Server/ADS/ADS.Config.default.json new file mode 100644 index 0000000..514c502 --- /dev/null +++ b/Server/ADS/ADS.Config.default.json @@ -0,0 +1,59 @@ +{ + "ENABLE_READ_BEFORE_WRITE": false, + "IGNORED_PLC_ATTRIBUTES": [ + "DisplayMinValue", + "DisplayMaxValue", + "DisplayMinValueX64", + "DisplayMaxValueX64", + "LowerBorder", + "UpperBorder", + "TcRpcEnable", + "TcGenerateDeRefType", + "TcHmiSymbol.ReadOnly", + "TcHmiSymbol.AddSymbol", + "TcHmiSymbol.AddSymbol.UserGroups", + "TcHmiSymbol.AddSymbol.UserGroups.Read", + "TcHmiSymbol.AddSymbol.Hidden", + "to_string_function", + "to_wstring_function" + ], + "NEW_HANDLES_PER_SUM_REQUEST_LIMIT": 100, + "RESPONSE_SIZE_LIMIT": 2097152, + "RUNTIMES": { + "PLC1": { + "ENABLED": true, + "NETID": "5.127.104.206.1.1", + "PORT": 851, + "READ_ONLY": false, + "SYMBOLS": {}, + "USE_WHITELISTING": false + } + }, + "RUNTIME_STATE_CHECK_INTERVAL": "PT2S", + "RUNTIME_STATE_CHECK_TIMEOUT": "PT5S", + "SUM_REQUEST_LIMIT": 500, + "TIMEOUT": "PT1S", + "VISIBLE_RUNTIME_PORTS": [ + 301, + 302, + 303, + 304, + 350, + 351, + 352, + 353, + 354, + 355, + 501, + 801, + 811, + 821, + 831, + 851, + 852, + 853, + 854, + 10000, + 19800 + ] +} \ No newline at end of file diff --git a/Server/ADS/ADS.Config.remote.json b/Server/ADS/ADS.Config.remote.json new file mode 100644 index 0000000..65b4cb7 --- /dev/null +++ b/Server/ADS/ADS.Config.remote.json @@ -0,0 +1,12 @@ +{ + "RUNTIMES": { + "PLC1": { + "ENABLED": true, + "NETID": "127.0.0.1.1.1", + "PORT": 851, + "READ_ONLY": false, + "SYMBOLS": {}, + "USE_WHITELISTING": false + } + } +} \ No newline at end of file diff --git a/Server/ADS/ADS.Storage.json b/Server/ADS/ADS.Storage.json new file mode 100644 index 0000000..76532a8 --- /dev/null +++ b/Server/ADS/ADS.Storage.json @@ -0,0 +1,4 @@ +{ + "configVersion": "1.0.1.5", + "guid": "5AE90DB9-B895-45AD-9B79-27A19FADCD86" +} \ No newline at end of file diff --git a/Server/TcHmiLua/TcHmiLua.Config.default.json b/Server/TcHmiLua/TcHmiLua.Config.default.json new file mode 100644 index 0000000..5e41c4f --- /dev/null +++ b/Server/TcHmiLua/TcHmiLua.Config.default.json @@ -0,0 +1,6 @@ +{ + "CONFIG_PAGE_ARRAY_LIMIT": 100, + "HTML_ERRORS": false, + "LOG_PAGE_MAX_ENTRIES": 200, + "SCRIPT_TIMEOUT": "PT10S" +} \ No newline at end of file diff --git a/Server/TcHmiLua/TcHmiLua.Config.remote.json b/Server/TcHmiLua/TcHmiLua.Config.remote.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/Server/TcHmiLua/TcHmiLua.Config.remote.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Server/TcHmiLua/TcHmiLua.Storage.json b/Server/TcHmiLua/TcHmiLua.Storage.json new file mode 100644 index 0000000..bda2b63 --- /dev/null +++ b/Server/TcHmiLua/TcHmiLua.Storage.json @@ -0,0 +1,4 @@ +{ + "configVersion": "1.0.1.1", + "guid": "EBCC019A-41B4-4ADA-9163-F9F34357B0B6" +} \ No newline at end of file diff --git a/Server/TcHmiSqliteLogger/TcHmiSqliteLogger.Config.default.json b/Server/TcHmiSqliteLogger/TcHmiSqliteLogger.Config.default.json new file mode 100644 index 0000000..cbb0521 --- /dev/null +++ b/Server/TcHmiSqliteLogger/TcHmiSqliteLogger.Config.default.json @@ -0,0 +1,10 @@ +{ + "DEFAULT_LIST_LIMIT": 1000, + "MAXENTRIES": 15000, + "MAXENTRYLENGTH": 1024, + "MAX_DIAGNOSTICS_ARCHIVE_FILE_COUNT": 2, + "MAX_DIAGNOSTICS_MESSAGES_FILE_SIZE": 52428800, + "MODE": 1, + "REDIRECT_DIAGNOSTICS_MESSAGES_TO_FILE": true, + "VACUUM_ON_STARTUP": false +} \ No newline at end of file diff --git a/Server/TcHmiSqliteLogger/TcHmiSqliteLogger.Config.remote.json b/Server/TcHmiSqliteLogger/TcHmiSqliteLogger.Config.remote.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/Server/TcHmiSqliteLogger/TcHmiSqliteLogger.Config.remote.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Server/TcHmiSqliteLogger/TcHmiSqliteLogger.Storage.json b/Server/TcHmiSqliteLogger/TcHmiSqliteLogger.Storage.json new file mode 100644 index 0000000..7cb514f --- /dev/null +++ b/Server/TcHmiSqliteLogger/TcHmiSqliteLogger.Storage.json @@ -0,0 +1,4 @@ +{ + "configVersion": "1.0.1.2", + "guid": "CD0B1D03-27D7-4904-BEFF-3882D751757A" +} \ No newline at end of file diff --git a/Server/TcHmiSrv/TcHmiSrv.Config.default.json b/Server/TcHmiSrv/TcHmiSrv.Config.default.json new file mode 100644 index 0000000..3454217 --- /dev/null +++ b/Server/TcHmiSrv/TcHmiSrv.Config.default.json @@ -0,0 +1,4038 @@ +{ + "ALLOW_REMOTE_ADMIN": true, + "AUTO_LOGINUSER": "", + "AUTO_LOGOFF": "P30D", + "BASE_HMI_URL": "", + "CACHEENABLED": true, + "CACHEMAXAGE": "P30D", + "CACHEMAXENTRYSIZE": 1048576, + "CACHEMAXSIZE": 2097152, + "CERTIFICATE": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUQwRENDQXJpZ0F3SUJBZ0lKQUoxblJVV3VnbGFLTUEwR0NTcUdTSWIzRFFFQkN3VUFNRUF4Q3pBSkJnTlYKQkFZVEFrUkZNUnN3R1FZRFZRUUtEQkpVZDJsdVEwRlVJRWhOU1NCVFpYSjJaWEl4RkRBU0JnTlZCQU1NQzA5egphWEpwYzE5eWIyOTBNQjRYRFRJMk1ERXhOakE0TWpFd05Wb1hEVEk1TURFeE5qQXlNakV3TlZvd096RUxNQWtHCkExVUVCaE1DUkVVeEd6QVpCZ05WQkFvTUVsUjNhVzVEUVZRZ1NFMUpJRk5sY25abGNqRVBNQTBHQTFVRUF3d0cKVDNOcGNtbHpNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXd1dkdOVWlSL2lSMwptQTlSU3BXQVN3dW5HTG5DNGsyY3E3eDJWRE9hNUcrNVppZ0dzMVZzbVZCb2R6bDhVUWJJSEpuUUpQYzVrS1NiCkcvRjV6dkhjL05UcitkQzgvQjBOODhiU0hFQ1NPR201Q3VleFl1Z0FwWDdRaFVJTWQ2VE1lQU9weWh3QVdsN2kKMVE0aDdQRy9lWXhxZGduM2ZBVXFYdkQ5bklsV0ZLNTk2bVhqWGFVYjB0VFNEbDRxcHNwTjgvVUNQMmlMdDJjUQo4a2twQ2JjcnZ6L3BwWU1NMy9RckdGcHpwMXlFVTJhK09RRkVhSXU0SXRFUW9taHNYQzcwdHgwbEhjeVVjLzhvCm1qWTNQUWMyOFJWRE4vRkFDWG9yZFhaQmtIbXBjVkZHM3B3T0FrSDloOHZ0QjAvdG9HRGVYYlhkRUV4VGsvL3AKSno4RnQ3cVd3d0lEQVFBQm80SFJNSUhPTUlHZUJnTlZIUkVFZ1pZd2daT0NDV3h2WTJGc2FHOXpkSWNFZndBQQpBWWNRQUFBQUFBQUFBQUFBQUFBQUFBQUFBWUlHVDNOcGNtbHpnZ1pQYzJseWFYT0hCQXFDZ2p1SEJBb0ZBQUtICkJNQ29DdjZIQk1Db09BR0hFUDZBQUFBQUFBQUFTZU1VTG1LUHJBQ0hFUDZBQUFBQUFBQUFZRjRKOFBzYkt0S0gKRVA2QUFBQUFBQUFBWVFsQmR4c3dIZ3lIRVA2QUFBQUFBQUFBWm1wWmpyb2tJSEl3SFFZRFZSME9CQllFRlAwTwpRNGQyczh3QWVhZjkranBSMDZxU3FtSzlNQXdHQTFVZEV3RUIvd1FDTUFBd0RRWUpLb1pJaHZjTkFRRUxCUUFECmdnRUJBRXBWMzkwZFBGUVAramFDa2ZicjhCMXA0MXlycFdjT3dGTk5KTGI2Wmd0WFRqZzE2Nk5DNkdETncxc3QKaWFjOGEvRXAvT2VBMGNqaERadHpidDlnYlF0eUtpV2dUMFBmemszc2cxZlYwWEFKNTRqRE5aQ21Ebm0rdGJuWQpEbGR0TFVqM0puV1FOWWxObnhQQWhSREFNSUpKZi95aUFKNVdXamxsWTZUNk90Y1RJMHJuVElwQml1QzdSMERiCnEzY080THpFdW5yaTlIb0VnbnhCZEw0VXZYNVZLanRRR2hWUTJRa2RYODJTbDdCWGlhMytPVWphekR3MlpEVGcKVi9Wc0RjcmFEa3BDZTNNMmg3WXlTWHB2bThKdkZ5N245d0ptSG40ME1OVzB1d1BHOVBBQ0JibWpsdEpNeW5FagpkM2xqNTVYcUVWc0owL3JKSUJCb1IxS2t0T0U9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUQyRENDQXNDZ0F3SUJBZ0lKQVBqKzkxK2hQcWd0TUEwR0NTcUdTSWIzRFFFQkN3VUFNRUF4Q3pBSkJnTlYKQkFZVEFrUkZNUnN3R1FZRFZRUUtEQkpVZDJsdVEwRlVJRWhOU1NCVFpYSjJaWEl4RkRBU0JnTlZCQU1NQzA5egphWEpwYzE5eWIyOTBNQjRYRFRJMk1ERXhOakE0TWpFd05Wb1hEVEk1TURFeE5qQXlNakV3TlZvd1FERUxNQWtHCkExVUVCaE1DUkVVeEd6QVpCZ05WQkFvTUVsUjNhVzVEUVZRZ1NFMUpJRk5sY25abGNqRVVNQklHQTFVRUF3d0wKVDNOcGNtbHpYM0p2YjNRd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUUNKQ09tMQp0Sk9pN2lSRXNCdDNtMW1qUldXZHZDKytzRDlqUGVkVW9NREtBM1FOblpWcmpWelVYU1IxR1dxTlVYNS9JOXZtCkR1bjVFdGFpcHNBUW5nbVpBNExVRHZNT2NLdDYwK2ozalpvUjZJQkdLNXd0T1NuUGcxTXV2cnNUSUk4WWg0ZFUKME5xczZNZkxka1FGWjZSR1RtNVNZSnlrRytXMmcrYVYyZjdvR3IvNUxYdUNDTHRFK2dGeDBlYWdrMDZjNzc1SwovTjdOM2R4U2x6aUlySks3ZkVESi9PRm5XUnRMNDlBNGJyM3JscHlBQXIvQ0xISVlRM3JhdFlydlJTcXY4UWhpCm9DZWZlTWdGQ25OUDg3aHB5eHpDbWp4ZlBlLzU1dDV4ZHJLU1Z5eDZYTTRMM3ZlZEpTeFVNMTBuMFhxcHhxdFEKeXhTcVdMZ0h4MnJsS3BWcEFnTUJBQUdqZ2RRd2dkRXdnWjRHQTFVZEVRU0JsakNCazRJSmJHOWpZV3hvYjNOMApod1IvQUFBQmh4QUFBQUFBQUFBQUFBQUFBQUFBQUFBQmdnWlBjMmx5YVhPQ0JrOXphWEpwYzRjRUNvS0NPNGNFCkNnVUFBb2NFd0tnSy9vY0V3S2c0QVljUS9vQUFBQUFBQUFCSjR4UXVZbytzQUljUS9vQUFBQUFBQUFCZ1hnbncKK3hzcTBvY1Evb0FBQUFBQUFBQmhDVUYzR3pBZURJY1Evb0FBQUFBQUFBQm1hbG1PdWlRZ2NqQWRCZ05WSFE0RQpGZ1FVZWF1RjlhcVprU0gyMHV0T3BqV3NoeUhUV2NZd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBTkJna3Foa2lHCjl3MEJBUXNGQUFPQ0FRRUFMWkpvQlRoT3BNa1dNL3FDWTBmdHNCNDBydWxueEM1bUxVRUtndEx4TnhjTVZKWmsKaU4wSmIwVFcvRldCUXVSN0hWMEZhaUxQeWlHUXVhN3RwYm5MUHZQQUNmWEFrZHoydzV3OWY0akF4NFNGQnl0MApjS3FnRis5MVlBcitCVGIxbFBoRWR1TngzVjYvS3FsTVhDQk96d3I4SXc4a1dOdmU4TzBXTW8yMFpwcGc3UUVmCmZjOHVZQU1LYWJLdkVyUHcvdWdHcDFUMHFZVE9uYXRiZXRhcUJYWlNDS3J1NzJtRlphL3dpL1FyL2I5WlBJWTYKWGlLZENsaXpZZHV5RmVaeWtDeDd0cVV4WFNSaDlDSXA0Nm9BU0NSdWErSkhKbWlpWm9vU1RSUkNTcUZqT2o5RgpXWE5DRHlXOEVKam90VFczbHlIeVRmMk4vUHI4ZGliYUY4RHpUdz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", + "CERTIFICATEEXPIRATION": "P1095DT18H", + "CHECKSUMENABLED": true, + "CHUNKSIZE": 1048576, + "CLIENTCERTIFICATES": [], + "CLIENTPRIORITYLIST": [], + "CLIENT_CACHE_MAX_AGE": 0, + "CONFIGURATIONS": [ + "remote" + ], + "COOKIEEXPIRATIONDATE": "P30D", + "CUSTOM_CSS": "", + "DEFAULTAUTHEXTENSION": "TcHmiUserManagement", + "DEFAULTDOCUMENT": [ + "Default.html" + ], + "DEFAULTEVENTEXTENSION": "TcHmiSqliteLogger", + "DEFAULTLOCALE": "client", + "DEFAULTTIMEFORMATLOCALE": "client", + "DEFAULTTIMEZONE": "client", + "DEFINITIONS": {}, + "DEFLATECOMPRESSIONLEVEL": 5, + "DIAGNOSTICS_DOMAINS": [], + "DISABLED_CONFIGURATION_HINTS": [], + "DISCOVERY": 1, + "ENDPOINTS": [ + "http://127.0.0.1:13000", + "http://127.0.0.1:3000" + ], + "ETAGENABLED": true, + "EXTENSIONS": { + "ADS": { + "ENABLED": true, + "METADATA": { + "migrationVersion": "1.14" + }, + "NAME": "TcHmiAds", + "PATH": "TcHmiAds\\", + "PROCESSID": -1, + "REQUIRED": true, + "STARTUPTYPE": 1 + }, + "TcHmiLua": { + "ENABLED": true, + "METADATA": { + "migrationVersion": "1.14" + }, + "NAME": "TcHmiLua", + "PATH": "TcHmiLua\\", + "PROCESSID": -1, + "REQUIRED": true, + "STARTUPTYPE": 0 + }, + "TcHmiSqliteLogger": { + "ENABLED": true, + "METADATA": { + "migrationVersion": "1.14" + }, + "NAME": "TcHmiSqliteLogger", + "PATH": "TcHmiSqliteLogger\\", + "PROCESSID": -1, + "REQUIRED": true, + "STARTUPTYPE": 0 + }, + "TcHmiUserManagement": { + "ENABLED": true, + "METADATA": { + "migrationVersion": "1.14" + }, + "NAME": "TcHmiUserManagement", + "PATH": "TcHmiUserManagement\\", + "PROCESSID": -1, + "REQUIRED": true, + "STARTUPTYPE": 1 + } + }, + "FILES": { + "/Properties/tchmicertificates.config.json": { + "ACCESS": 0, + "HTTPSTATUSCODE": "404" + }, + "/Properties/tchmipublish.config.json": { + "ACCESS": 0, + "HTTPSTATUSCODE": "404" + } + }, + "FILESREGEX": [ + { + "ENABLE_GZIP": true, + "FILESHTTPHEADERS": "Content-Security-Policy: frame-ancestors 'self' 127.0.0.1:* localhost:* *.localhost:*\r\n Content-Type: text/html", + "REGEX": ".*\\.(xml|htm|html|shtml)$" + }, + { + "ENABLE_GZIP": true, + "FILESHTTPHEADERS": "Content-Type: text/plain", + "REGEX": ".*\\.(txt|view|content|usercontrol)$" + }, + { + "ENABLE_GZIP": true, + "FILESHTTPHEADERS": "Content-Type: text/xml", + "REGEX": ".*\\.(config|xml)$" + }, + { + "ENABLE_GZIP": true, + "FILESHTTPHEADERS": "Content-Type: text/javascript", + "REGEX": ".*\\.(js|mjs|jsonp)$" + }, + { + "ENABLE_GZIP": true, + "FILESHTTPHEADERS": "Content-Type: image/svg+xml", + "REGEX": ".*\\.(svg)$" + }, + { + "ENABLE_GZIP": true, + "FILESHTTPHEADERS": "Content-Type: application/json", + "REGEX": ".*\\.(json|map|localization|theme)$" + }, + { + "FILESHTTPHEADERS": "Content-Type: application/pdf", + "REGEX": ".*\\.(pdf)$" + }, + { + "FILESHTTPHEADERS": "Content-Type: image/gif", + "REGEX": ".*\\.(gif)$" + }, + { + "FILESHTTPHEADERS": "Content-Type: image/jpeg", + "REGEX": ".*\\.(jpeg|jpg)$" + }, + { + "FILESHTTPHEADERS": "Content-Type: image/png", + "REGEX": ".*\\.(png)$" + }, + { + "ENABLE_GZIP": true, + "FILESHTTPHEADERS": "Content-Type: image/bmp", + "REGEX": ".*\\.(bmp)$" + }, + { + "ENABLE_GZIP": true, + "FILESHTTPHEADERS": "Content-Type: image/x-icon", + "REGEX": ".*\\.(ico)$" + }, + { + "ENABLE_GZIP": true, + "FILESHTTPHEADERS": "Content-Type: text/css", + "REGEX": ".*\\.(css)$" + }, + { + "FILESHTTPHEADERS": "Content-Type: application/octet-stream", + "REGEX": ".*\\.(bin|dll|exe|img|iso)$" + }, + { + "FILESHTTPHEADERS": "Content-Type: application/java-archive", + "REGEX": ".*\\.(ear|jar|war)$" + }, + { + "ENABLE_GZIP": true, + "FILESHTTPHEADERS": "Content-Type: vnd.ms-fontobject", + "REGEX": ".*\\.(eot)$" + }, + { + "ENABLE_GZIP": true, + "FILESHTTPHEADERS": "Content-Type: application/font-sfnt", + "REGEX": ".*\\.(ttf|otf)$" + }, + { + "FILESHTTPHEADERS": "Content-Type: application/font-woff", + "REGEX": ".*\\.(woff)$" + }, + { + "FILESHTTPHEADERS": "Content-Type: application/font-woff2", + "REGEX": ".*\\.(woff2)$" + }, + { + "FILESHTTPHEADERS": "Content-Type: application/zip", + "REGEX": ".*\\.(zip)$" + }, + { + "ENABLE_CACHE": false, + "ENABLE_CHUNKING": false, + "FILESHTTPHEADERS": "Content-Type: video/mp4", + "REGEX": ".*\\.(mp4)$" + }, + { + "ENABLE_CACHE": false, + "ENABLE_CHUNKING": false, + "FILESHTTPHEADERS": "Content-Type: audio/mpeg", + "REGEX": ".*\\.(mp3)$" + }, + { + "ENABLE_CACHE": false, + "ENABLE_CHUNKING": false, + "FILESHTTPHEADERS": "Content-Type: video/webm", + "REGEX": ".*\\.(webm)$" + }, + { + "ENABLE_CACHE": false, + "ENABLE_CHUNKING": false, + "FILESHTTPHEADERS": "Content-Type: video/ogg", + "REGEX": ".*\\.(ogg)$" + }, + { + "ENABLE_CACHE": false, + "ENABLE_CHUNKING": false, + "FILESHTTPHEADERS": "Content-Type: video/ogg", + "REGEX": ".*\\.(ogv)$" + }, + { + "ENABLE_CACHE": false, + "ENABLE_CHUNKING": false, + "FILESHTTPHEADERS": "Content-Type: application/x-pem-file", + "REGEX": ".*\\.(pem)$" + }, + { + "ENABLE_CACHE": false, + "ENABLE_CHUNKING": false, + "FILESHTTPHEADERS": "Content-Type: application/x-x509-ca-cert", + "REGEX": ".*\\.(pem)$" + } + ], + "FLOODPROTECTION": 500, + "FLOODPROTECTION_LOG_INTERVAL": "PT1M", + "GLOBALHTTPHEADERS": "{LASTMODIFIED}\nStrict-Transport-Security: max-age=31536000; includeSubDomains\nX-Content-Type-Options: nosniff", + "GZIPENABLED": true, + "GZIPMINSIZE": 800, + "HTTP_FLOODPROTECTION": 100, + "INITTIMEOUT": "PT10S", + "KEEP_ALIVE": "PT40S", + "KEY": "LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRREM2OFkxU0pIK0pIZVkKRDFGS2xZQkxDNmNZdWNMaVRaeXJ2SFpVTTVya2I3bG1LQWF6Vld5WlVHaDNPWHhSQnNnY21kQWs5em1RcEpzYgo4WG5POGR6ODFPdjUwTHo4SFEzenh0SWNRSkk0YWJrSzU3Rmk2QUNsZnRDRlFneDNwTXg0QTZuS0hBQmFYdUxWCkRpSHM4Yjk1akdwMkNmZDhCU3BlOFAyY2lWWVVybjNxWmVOZHBSdlMxTklPWGlxbXlrM3o5UUkvYUl1M1p4RHkKU1NrSnR5dS9QK21sZ3d6ZjlDc1lXbk9uWElSVFpyNDVBVVJvaTdnaTBSQ2lhR3hjTHZTM0hTVWR6SlJ6L3lpYQpOamM5QnpieEZVTTM4VUFKZWl0MWRrR1FlYWx4VVViZW5BNENRZjJIeSswSFQrMmdZTjVkdGQwUVRGT1QvK2tuClB3VzN1cGJEQWdNQkFBRUNnZ0VBQTJBdjg1WkpLUHlhc2FCNlNPOWo1R2pVUVFKZWxLckJidHY1dEtXY0poNmwKT0Zhekh3SDR1b01BL0NlYnRvK0dnYkJNUVllaWtKVzVOZmV0bzE3ZTgrWUFIRGg0UFdtSFoxUm5LU1FaSkM3NApqRzdNektpMThpZkxGck81SVkxU0dUWC9COGdLWFlaTktXRndSdms4MXE4TzNQSjVQY1dkSVQzTk5wdk9TTmRnCi81Y3dwMTl6NW90QklZSzJFTHR0c1dqanBaMURHWUFZN3dDQllUOGZqSmRWeW5TckhWUFNvZldGa1FWaVhBTzYKM09JMnVHVHJ5YW1vUWZRZkR6WjI2UFY5dWZzUVRzbFZhcVFmU0M2V2dTZEFuTXFZMURWZ3JNMWdMb05zcDVmbQpvM2hZOUlZb29pMklZRnlBTW9ySlB1YW8zVDYreWVRY2J5UEtLQWR1VVFLQmdRRDU4WU1jUVFQUEF4VUFwLzYrCjQ2Qjg5OWlrSG1OaEgweWZFQ0JxSWl5QnE0ZkI1eFQ1Sk1KaGlkeHNVZHJTa1pxR1dSTjRWbGxCVHNQbTQ0enkKZlRnVjdycDE2Vit1ZkRrOTUwVFdvdTRJeWh2UFNjWWYxYXhWZnJFN09tdXRlUWxmMGorMnVSZmF6UjZ1ZHp3cgpmeVk4SWVHaGgzWWZSVzNCR2lBd0NYMkx1UUtCZ1FESHBQQkJkWGtYSVpiWFVUVGpORWRFZ05RdHYyQ1VOSmROClVtSm1pMmRNaWJWY3k2Skd0T1NvY3lwMDFFYjNJdjFxZkRmZCtsNmhqU0ROendMeHlkNjFhVmFUV3dxMy9VUm4KcU9XcWc1S1k1V1RlSjZMNmxFc0s3WUszYXg2akdVKytsMDJWa1JidHBoMDMwZmMyZ1JkKzVJL3hrMHpXRzlnNgp0eUthTFJkTVd3S0JnUUNjbGdQUDFhTnZNNzBhdGlUUXJvYkRBL3REaG80NE1JV3VPVW8xYzhkeVRXWTF3bkhQClRJcEMxVDIwMXV0Q2RGbmN4VDEvYklscWN0QWtmSGEzREYvd3pha2ZhZCs1enJXRjVMZXB5RlZjU0ZKMzRQNHcKdjRyQjNTZG50Y2Z6M0JwVlg4RHUxckx0THdpRHdNdC9iSjhsbVF4a1NCdG1wL2FFdmJ0Z25QRjhjUUtCZ0ZSSQpFbEZnR1cybGRYdVN3Y1FGSnUwSmdnbUtHR2lZeHlNU1c0NDAzYmdYRHFTTkp3VzRpaXQrNnZhRlF5eEQ3ajNOCkVQeTZITWNRd0QrQ1hCamRBeE1NMUVyRERZUmMvRXJTcDVwVGowalMxc0ZlZEZSYTFFOVpzMnhoWVg2elNkSUoKSit5ellyMlMraFM5cENLelhzcm9ETWlNU2N5OTFvdjdFaldLUWFLdkFvR0FMTlA0VHM0S0k4ekFqdEhFbTdHVApudjhLWFBYbnFLMW85bWUwN1FCNHZVeU52TzVROFg0Wlp0WjkwS0lSUmpEUzVOa1ZGK1VucnVWQTkvNGlHVFk4CldtMVJLcUtNUm5HbVFaSk1vM2xwZE9VMnJSem1mQ1JQdGJxemdqenZCN09xaXZDZ003TWQ2amhTNTQ1aDVWT3YKaTNod21GZ0FnZGpJU3BTc29JWW4ySjQ9Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K", + "KEYPASSWORD": "", + "MAXCONNECTIONSPERCLIENT": 32, + "MAXHTTPHEADERSIZE": 32768, + "MAXREQUESTSIZE": 1048576, + "MAXSESSIONS": 128, + "PERMESSAGEDEFLATEENABLED": true, + "PROJECTNAME": "Infineon_HMI", + "PROJECTVERSION": "1.0.0.0", + "RECORDING_MESSAGE_MAX_LENGTH": 5120, + "REMOTESERVERS": {}, + "REMOTESERVERS_CERTIFICATES": [], + "REQUIREAUTH": 1, + "REQUIRE_CLIENT_CERTIFICATE": false, + "SAMESITE_ATTRIBUTE": 2, + "SELFSIGNEDROOTCA": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUQyRENDQXNDZ0F3SUJBZ0lKQVBqKzkxK2hQcWd0TUEwR0NTcUdTSWIzRFFFQkN3VUFNRUF4Q3pBSkJnTlYKQkFZVEFrUkZNUnN3R1FZRFZRUUtEQkpVZDJsdVEwRlVJRWhOU1NCVFpYSjJaWEl4RkRBU0JnTlZCQU1NQzA5egphWEpwYzE5eWIyOTBNQjRYRFRJMk1ERXhOakE0TWpFd05Wb1hEVEk1TURFeE5qQXlNakV3TlZvd1FERUxNQWtHCkExVUVCaE1DUkVVeEd6QVpCZ05WQkFvTUVsUjNhVzVEUVZRZ1NFMUpJRk5sY25abGNqRVVNQklHQTFVRUF3d0wKVDNOcGNtbHpYM0p2YjNRd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUUNKQ09tMQp0Sk9pN2lSRXNCdDNtMW1qUldXZHZDKytzRDlqUGVkVW9NREtBM1FOblpWcmpWelVYU1IxR1dxTlVYNS9JOXZtCkR1bjVFdGFpcHNBUW5nbVpBNExVRHZNT2NLdDYwK2ozalpvUjZJQkdLNXd0T1NuUGcxTXV2cnNUSUk4WWg0ZFUKME5xczZNZkxka1FGWjZSR1RtNVNZSnlrRytXMmcrYVYyZjdvR3IvNUxYdUNDTHRFK2dGeDBlYWdrMDZjNzc1SwovTjdOM2R4U2x6aUlySks3ZkVESi9PRm5XUnRMNDlBNGJyM3JscHlBQXIvQ0xISVlRM3JhdFlydlJTcXY4UWhpCm9DZWZlTWdGQ25OUDg3aHB5eHpDbWp4ZlBlLzU1dDV4ZHJLU1Z5eDZYTTRMM3ZlZEpTeFVNMTBuMFhxcHhxdFEKeXhTcVdMZ0h4MnJsS3BWcEFnTUJBQUdqZ2RRd2dkRXdnWjRHQTFVZEVRU0JsakNCazRJSmJHOWpZV3hvYjNOMApod1IvQUFBQmh4QUFBQUFBQUFBQUFBQUFBQUFBQUFBQmdnWlBjMmx5YVhPQ0JrOXphWEpwYzRjRUNvS0NPNGNFCkNnVUFBb2NFd0tnSy9vY0V3S2c0QVljUS9vQUFBQUFBQUFCSjR4UXVZbytzQUljUS9vQUFBQUFBQUFCZ1hnbncKK3hzcTBvY1Evb0FBQUFBQUFBQmhDVUYzR3pBZURJY1Evb0FBQUFBQUFBQm1hbG1PdWlRZ2NqQWRCZ05WSFE0RQpGZ1FVZWF1RjlhcVprU0gyMHV0T3BqV3NoeUhUV2NZd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBTkJna3Foa2lHCjl3MEJBUXNGQUFPQ0FRRUFMWkpvQlRoT3BNa1dNL3FDWTBmdHNCNDBydWxueEM1bUxVRUtndEx4TnhjTVZKWmsKaU4wSmIwVFcvRldCUXVSN0hWMEZhaUxQeWlHUXVhN3RwYm5MUHZQQUNmWEFrZHoydzV3OWY0akF4NFNGQnl0MApjS3FnRis5MVlBcitCVGIxbFBoRWR1TngzVjYvS3FsTVhDQk96d3I4SXc4a1dOdmU4TzBXTW8yMFpwcGc3UUVmCmZjOHVZQU1LYWJLdkVyUHcvdWdHcDFUMHFZVE9uYXRiZXRhcUJYWlNDS3J1NzJtRlphL3dpL1FyL2I5WlBJWTYKWGlLZENsaXpZZHV5RmVaeWtDeDd0cVV4WFNSaDlDSXA0Nm9BU0NSdWErSkhKbWlpWm9vU1RSUkNTcUZqT2o5RgpXWE5DRHlXOEVKam90VFczbHlIeVRmMk4vUHI4ZGliYUY4RHpUdz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", + "SELFSIGNEDROOTCAKEY": "LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2QUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktZd2dnU2lBZ0VBQW9JQkFRQ0pDT20xdEpPaTdpUkUKc0J0M20xbWpSV1dkdkMrK3NEOWpQZWRVb01ES0EzUU5uWlZyalZ6VVhTUjFHV3FOVVg1L0k5dm1EdW41RXRhaQpwc0FRbmdtWkE0TFVEdk1PY0t0NjArajNqWm9SNklCR0s1d3RPU25QZzFNdXZyc1RJSThZaDRkVTBOcXM2TWZMCmRrUUZaNlJHVG01U1lKeWtHK1cyZythVjJmN29Hci81TFh1Q0NMdEUrZ0Z4MGVhZ2swNmM3NzVLL043TjNkeFMKbHppSXJKSzdmRURKL09GbldSdEw0OUE0YnIzcmxweUFBci9DTEhJWVEzcmF0WXJ2UlNxdjhRaGlvQ2VmZU1nRgpDbk5QODdocHl4ekNtanhmUGUvNTV0NXhkcktTVnl4NlhNNEwzdmVkSlN4VU0xMG4wWHFweHF0UXl4U3FXTGdICngycmxLcFZwQWdNQkFBRUNnZ0VBQnNoWHRYQ3ViU0hYZVVVWDl2R1REZ0VXYjVvNkJXcHFmRk02OGZZSzhUdmkKRkM3amN4VG1rY21ncEl3RERzYXk4cFhTckVyWFdXTWJ3bERBek9jWFhvVjM5NWQ0ZjlxeGtGbXROU09LTmNydApWMUxtSmdRMW9qMVNBSGI0dXdKTC9ZbTE5L1pKL0l5QkE0cWNIWUlsdkgwZHdUZGlFSWNqb0RqTndvQWZEdW5kCjd4V0tlUjg2ZFNPM3lrNERNV0g1UTZQQXVEUjR4MkJ0QUF4QjNyNjU2L1F2UzlnVWpNbytCQVgrVnpJOVAzUnAKdEd6aDR4WmVKZmJFdVVsVkVhRUxUT0gvb2xubHV3SGtwdWRlWncreUl3cHVhTkhqaTNFOXAvOVdBRVI2MkdpWgpnRE50Nm9GOVU2MzZSUFkrbFIvaFBBcjRzMXVHRFVDYWttMHdzWE9kQ1FLQmdRQy9OR1N2RkZZSHNIWHJhY1llCnVHOS9janJZV1FGK2J1Vmo5TjlnVlFFTlQ3RnNDRW5wUzZrVm1rUk92Q2JOYmpyL3VTM3c3Mk9tOHBSalE3YjMKODF1RytCY3MrYTVjTnJYR2k2WnZIc2luQURWV0lKYitlL3hLekd1VksxczFSRzRGQjBXVlp0T2luenVnakp3WQo4Y01uZ2JYMXc5Q2VPbzJjR05CVmQ2YkRid0tCZ1FDM2VSMXJKWGMyRVZxa0VaV3JCRjhXdDNrTVcwRmN6aUs1ClpPV283YW9ad1ZEbG9ETEovQzRBMEp5WjBtR1ViQzRVa0c5bG5iOVFNcjlaRzEyZWFibkxCcml2OE9yWDE2RnkKbWI4VE5LSUp0VExSY1ZKVGd4WkdiWnYrazQwNDZDRTYwWDVqSUdIY0F0dzRwWEJ3UTIrWXN6ODJwK3FWdTY0NAplVktQZWNSb3B3S0JnSGVqWWVpRzhmbW51WEVPNHkrdnVkeGw3bG9XL3k5TVZtNC85MUZBZndNRVBZRGFndHplClFiTkpycm9SVXJveDRlckd4TzgvNnZ1NFI0OEEvTWlTMWs5U2hyWFdtUG9NSlp0UklGZmhUQzNxbkhVQ3VWZ00KM21VekdaSGg2aFVmZHpQZ1EvTGl2ME8vSE1FdG1qS2xlN1lKbklCbUFQQXd0UkRhR2VtUWo2RXpBb0dBZDE5RgoxTUM3bjJJTEoxU0puSXRya3N3czVlMDV5YmdVdjZyMkFjTWdPVUdkOE1rYVFuRGhQWVo5WFZlVVJZMWRMZVFMCmxvSGNSOEc4M2EwQWJHRTlrT3IrbnZxUTBYNXFmTFdyckVOQ2FpNktzZHFaUmR5MFVYNWZVSE9RSHNacFdHdVYKWDhsaDRsTzZGT0VQRnZ2SlVBRFAwQy9RWVR1TFR4TWd0RmoxZ1dFQ2dZQldzZURYSHczbFNoVWhwWUpoQldOZQozNWxmQTZFR0FCVHQ2cG1XRVp3VEJaY0FLY3FkL29tdWtpcHh6S3N1UTZ6VTgweTZ0YTRCVjJqUEFJUlczOU9GCmJGT21POFlDbDg2Z1AwYjlBVS9FaVJ5Tk5KNU8yUUlTS2JXTElzZ25Vc2RQYlZwcHdQeHVYbGVrZmVSM0hXcHAKQ3pKRzA5Z0x6TzgzejZMeXErY0VIdz09Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K", + "SESSIONSTORAGE": {}, + "SHOW_CONFIGURATION_HINTS": true, + "SHOW_MAINTENANCE_MODE": true, + "SHUTDOWNTIMEOUT": "PT10S", + "SOCKET_TIMEOUT": "PT10S", + "SUBSCRIPTION_FLOODPROTECTION": 100, + "SYMBOLS": { + "ADS.AdsSyncReadDeviceInfoReq": { + "ACCESS": 3, + "DOMAIN": "ADS", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "AdsSyncReadDeviceInfoReq", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "description": "Ads runtime.", + "type": "string" + } + }, + "USEMAPPING": true + }, + "ADS.AdsSyncReadReq": { + "ACCESS": 3, + "DOMAIN": "ADS", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "AdsSyncReadReq", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "properties": { + "IndexGroup": { + "$ref": "tchmi:general#/definitions/UINT32" + }, + "IndexOffset": { + "$ref": "tchmi:general#/definitions/UINT32" + }, + "ReadLen": { + "$ref": "tchmi:general#/definitions/UINT32" + }, + "Runtime": { + "type": "string" + } + }, + "required": [ + "Runtime", + "IndexGroup", + "ReadLen" + ], + "type": "object" + } + }, + "USEMAPPING": true + }, + "ADS.AdsSyncReadStateReq": { + "ACCESS": 3, + "DOMAIN": "ADS", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "AdsSyncReadStateReq", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "properties": { + "AdsState": { + "$ref": "tchmi:server#/definitions/ADS-adsState" + }, + "DeviceState": { + "type": "integer" + } + }, + "type": "object", + "writeValue": { + "oneOf": [ + { + "description": "Ads runtime.", + "type": "string" + }, + { + "properties": { + "Port": { + "allOf": [ + { + "$ref": "tchmi:general#/definitions/UINT32" + }, + { + "const": 10000, + "description": "Execute the request for a different ADS port" + } + ] + }, + "Runtime": { + "description": "Ads runtime.", + "type": "string" + } + }, + "required": [ + "Runtime" + ], + "type": "object" + } + ] + } + }, + "USEMAPPING": true + }, + "ADS.AdsSyncReadWriteReq": { + "ACCESS": 3, + "DOMAIN": "ADS", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "AdsSyncReadWriteReq", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "properties": { + "IndexGroup": { + "$ref": "tchmi:general#/definitions/UINT32" + }, + "IndexOffset": { + "$ref": "tchmi:general#/definitions/UINT32" + }, + "ReadLen": { + "$ref": "tchmi:general#/definitions/UINT32" + }, + "Runtime": { + "type": "string" + }, + "WriteData": { + "format": "base64", + "type": "string" + } + }, + "required": [ + "Runtime", + "IndexGroup", + "IndexOffset", + "ReadLen", + "WriteData" + ], + "type": "object" + } + }, + "USEMAPPING": true + }, + "ADS.AdsSyncWriteControlReq": { + "ACCESS": 3, + "DOMAIN": "ADS", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "AdsSyncWriteControlReq", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "properties": { + "AdsState": { + "$ref": "tchmi:server#/definitions/ADS-adsState" + }, + "DeviceState": { + "$ref": "tchmi:general#/definitions/UINT32" + }, + "Runtime": { + "type": "string" + }, + "WriteData": { + "format": "base64", + "type": "string" + } + }, + "required": [ + "Runtime", + "AdsState", + "DeviceState", + "WriteData" + ], + "type": "object" + } + }, + "USEMAPPING": true + }, + "ADS.AdsSyncWriteReq": { + "ACCESS": 3, + "DOMAIN": "ADS", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "AdsSyncWriteReq", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "properties": { + "IndexGroup": { + "$ref": "tchmi:general#/definitions/UINT32" + }, + "IndexOffset": { + "$ref": "tchmi:general#/definitions/UINT32" + }, + "Runtime": { + "type": "string" + }, + "WriteData": { + "format": "base64", + "type": "string" + } + }, + "required": [ + "Runtime", + "IndexGroup", + "IndexOffset", + "WriteData" + ], + "type": "object" + } + }, + "USEMAPPING": true + }, + "ADS.CheckLicense": { + "ACCESS": 3, + "DOMAIN": "ADS", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "CheckLicense", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "properties": { + "count": { + "$ref": "tchmi:general#/definitions/UINT32" + }, + "expireTimeUTC": { + "format": "date-time", + "type": "string" + }, + "result": { + "$ref": "tchmi:general#/definitions/UINT32" + } + }, + "type": "object", + "writeValue": { + "type": "string" + } + }, + "USEMAPPING": true + }, + "ADS.Config": { + "ACCESS": 0, + "DOMAIN": "ADS", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "Config", + "OPTIONS": {}, + "SCHEMA": {}, + "USEMAPPING": true + }, + "ADS.Diagnostics": { + "ACCESS": 3, + "DOMAIN": "ADS", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "Diagnostics", + "OPTIONS": {}, + "SCHEMA": { + "allOf": [ + { + "function": true + }, + { + "oneOf": [ + { + "properties": { + "runtimes": { + "additionalProperties": { + "properties": { + "adsApplicationName": { + "propertyOrder": 5, + "type": "string", + "visibility": "HideInEngineering" + }, + "adsProjectCompiledAt": { + "format": "date-time", + "propertyOrder": 7, + "type": "string", + "visibility": "HideInEngineering" + }, + "adsProjectName": { + "propertyOrder": 6, + "type": "string" + }, + "adsState": { + "propertyOrder": 3, + "type": "string" + }, + "adsVersion": { + "propertyOrder": 8, + "type": "string" + }, + "adsVersionBuild": { + "minimum": 0, + "propertyOrder": 9, + "type": "integer", + "visibility": "HideInEngineering" + }, + "connectionState": { + "propertyOrder": 1, + "type": "string" + }, + "deviceName": { + "propertyOrder": 4, + "type": "string" + }, + "isUserModeRuntime": { + "propertyOrder": 10, + "type": "boolean", + "visibility": "HideInEngineering" + }, + "systemServiceAdsState": { + "propertyOrder": 2, + "type": "string" + } + }, + "required": [ + "deviceName", + "adsVersion", + "adsState", + "connectionState" + ], + "type": "object" + }, + "type": "object" + } + }, + "type": "object", + "versions": [ + 1.0 + ] + }, + { + "properties": { + "domainError": { + "format": "multiline", + "propertyOrder": 3, + "type": "string" + }, + "domainState": { + "enum": [ + "Good", + "Bad" + ], + "propertyOrder": 2, + "type": "string" + }, + "runtimes": { + "additionalProperties": { + "properties": { + "adsApplicationName": { + "propertyOrder": 5, + "type": "string", + "visibility": "HideInEngineering" + }, + "adsProjectCompiledAt": { + "format": "date-time", + "propertyOrder": 7, + "type": "string", + "visibility": "HideInEngineering" + }, + "adsProjectName": { + "propertyOrder": 6, + "type": "string" + }, + "adsState": { + "propertyOrder": 3, + "type": "string" + }, + "adsVersion": { + "propertyOrder": 8, + "type": "string" + }, + "adsVersionBuild": { + "minimum": 0, + "propertyOrder": 9, + "type": "integer", + "visibility": "HideInEngineering" + }, + "connectionState": { + "propertyOrder": 1, + "type": "string" + }, + "deviceName": { + "propertyOrder": 4, + "type": "string" + }, + "isUserModeRuntime": { + "propertyOrder": 10, + "type": "boolean", + "visibility": "HideInEngineering" + }, + "systemServiceAdsState": { + "propertyOrder": 2, + "type": "string" + } + }, + "required": [ + "deviceName", + "adsVersion", + "adsState", + "connectionState" + ], + "type": "object" + }, + "propertyOrder": 1, + "type": "object" + } + }, + "required": [ + "domainState" + ], + "type": "object", + "versions": [ + 2.0 + ] + } + ] + } + ] + }, + "USEMAPPING": true + }, + "ADS.GetSchema": { + "ACCESS": 3, + "DOMAIN": "ADS", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "GetSchema", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "type": "string" + } + }, + "USEMAPPING": true + }, + "ADS.GetSystemId": { + "ACCESS": 3, + "DOMAIN": "ADS", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "GetSystemId", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "type": "string" + }, + "USEMAPPING": true + }, + "ADS.ListCommonTypes": { + "ACCESS": 3, + "DOMAIN": "ADS", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "ListCommonTypes", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "items": { + "properties": { + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "label", + "value" + ], + "type": "object" + }, + "type": "array" + }, + "USEMAPPING": true + }, + "ADS.ListRoutes": { + "ACCESS": 3, + "DOMAIN": "ADS", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "ListRoutes", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "items": { + "properties": { + "label": { + "type": "string" + }, + "name": { + "type": "string" + }, + "value": { + "format": "amsnetid", + "type": "string" + } + }, + "required": [ + "label", + "name", + "value" + ], + "type": "object" + }, + "type": "array" + }, + "USEMAPPING": true + }, + "ADS.ListSymbols": { + "ACCESS": 3, + "DOMAIN": "ADS", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "ListSymbols", + "OPTIONS": {}, + "SCHEMA": { + "function": true + }, + "USEMAPPING": true + }, + "ADS.PLC1.GVL_SCADA.xErrAck": { + "ACCESS": 3, + "DOMAIN": "ADS", + "DYNAMIC": true, + "MAPPING": "PLC1::GVL_SCADA::xErrAck", + "SCHEMA": { + "$ref": "tchmi:general#/definitions/BOOL" + }, + "USEMAPPING": true + }, + "ADS.PLC1.GVL_SCADA.xOpenAllChambers": { + "ACCESS": 3, + "DOMAIN": "ADS", + "DYNAMIC": true, + "MAPPING": "PLC1::GVL_SCADA::xOpenAllChambers", + "SCHEMA": { + "$ref": "tchmi:general#/definitions/BOOL" + }, + "USEMAPPING": true + }, + "ADS.PLC1.PRG_Main._fbRobot._abToolsAndPositions.0": { + "ACCESS": 3, + "DOMAIN": "ADS", + "DYNAMIC": true, + "MAPPING": "PLC1::PRG_Main::_fbRobot::_abToolsAndPositions[0]", + "SCHEMA": { + "$ref": "tchmi:general#/definitions/BYTE" + }, + "USEMAPPING": true + }, + "ADS.PLC1.PRG_Main._fbRobot._abToolsAndPositions.1": { + "ACCESS": 3, + "DOMAIN": "ADS", + "DYNAMIC": true, + "MAPPING": "PLC1::PRG_Main::_fbRobot::_abToolsAndPositions[1]", + "SCHEMA": { + "$ref": "tchmi:general#/definitions/BYTE" + }, + "USEMAPPING": true + }, + "ADS.PLC1.PRG_Main._fbRobot._abToolsAndPositions.2": { + "ACCESS": 3, + "DOMAIN": "ADS", + "DYNAMIC": true, + "MAPPING": "PLC1::PRG_Main::_fbRobot::_abToolsAndPositions[2]", + "SCHEMA": { + "$ref": "tchmi:general#/definitions/BYTE" + }, + "USEMAPPING": true + }, + "ADS.PLC1.PRG_Main._fbRobot._abToolsAndPositions.3": { + "ACCESS": 3, + "DOMAIN": "ADS", + "DYNAMIC": true, + "MAPPING": "PLC1::PRG_Main::_fbRobot::_abToolsAndPositions[3]", + "SCHEMA": { + "$ref": "tchmi:general#/definitions/BYTE" + }, + "USEMAPPING": true + }, + "ADS.PLC1.PRG_Main._fbRobot._diOffsetPosX": { + "ACCESS": 3, + "DOMAIN": "ADS", + "DYNAMIC": true, + "MAPPING": "PLC1::PRG_Main::_fbRobot::_diOffsetPosX", + "SCHEMA": { + "allOf": [ + { + "$ref": "tchmi:general#/definitions/DINT" + }, + { + "comment": "Positions in um", + "propertyOrder": 9 + } + ] + }, + "USEMAPPING": true + }, + "ADS.PLC1.PRG_Main._fbRobot._diOffsetPosY": { + "ACCESS": 3, + "DOMAIN": "ADS", + "DYNAMIC": true, + "MAPPING": "PLC1::PRG_Main::_fbRobot::_diOffsetPosY", + "SCHEMA": { + "allOf": [ + { + "$ref": "tchmi:general#/definitions/DINT" + }, + { + "propertyOrder": 10 + } + ] + }, + "USEMAPPING": true + }, + "ADS.PLC1.PRG_Main._fbRobot._diThickness": { + "ACCESS": 3, + "DOMAIN": "ADS", + "DYNAMIC": true, + "MAPPING": "PLC1::PRG_Main::_fbRobot::_diThickness", + "SCHEMA": { + "allOf": [ + { + "$ref": "tchmi:general#/definitions/DINT" + }, + { + "propertyOrder": 11 + } + ] + }, + "USEMAPPING": true + }, + "ADS.PLC1.PRG_Main._fbRobot._uJobs.stJobs.wFinishedJobNrFromPlc": { + "ACCESS": 3, + "DOMAIN": "ADS", + "DYNAMIC": true, + "MAPPING": "PLC1::PRG_Main::_fbRobot::_uJobs::stJobs::wFinishedJobNrFromPlc", + "SCHEMA": { + "allOf": [ + { + "$ref": "tchmi:general#/definitions/WORD" + }, + { + "propertyOrder": 2 + } + ] + }, + "USEMAPPING": true + }, + "ADS.PLC1.PRG_Main._fbRobot._uJobs.stJobs.wJobNrForRobot": { + "ACCESS": 3, + "DOMAIN": "ADS", + "DYNAMIC": true, + "MAPPING": "PLC1::PRG_Main::_fbRobot::_uJobs::stJobs::wJobNrForRobot", + "SCHEMA": { + "allOf": [ + { + "$ref": "tchmi:general#/definitions/WORD" + }, + { + "propertyOrder": 1 + } + ] + }, + "USEMAPPING": true + }, + "ADS.RuntimePorts": { + "ACCESS": 3, + "DOMAIN": "ADS", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "RuntimePorts", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "items": { + "properties": { + "label": { + "type": "string" + }, + "name": { + "type": "string" + }, + "value": { + "type": "integer" + } + }, + "required": [ + "label", + "value" + ], + "type": "object" + }, + "type": "array", + "writeValue": { + "anyOf": [ + { + "properties": { + "NETID": { + "format": "amsnetid", + "type": "string" + }, + "all": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + { + "$ref": "tchmi:general#/definitions/VOID" + } + ] + } + }, + "USEMAPPING": true + }, + "AddOrChangeUser": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "AddOrChangeUser", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "properties": { + "settings": { + "properties": { + "autoLogoff": { + "format": "timespan", + "type": "string" + }, + "groups": { + "$ref": "tchmi:server#/definitions/userGroups" + }, + "locale": { + "$ref": "tchmi:server#/definitions/userLocale" + }, + "timeFormatLocale": { + "$ref": "tchmi:server#/definitions/userLocale" + }, + "timeZone": { + "$ref": "tchmi:server#/definitions/userTimeZone" + } + }, + "type": "object" + } + }, + "type": "object", + "writeValue": { + "properties": { + "domain": { + "description": "Domain name of the authentication extension", + "type": "string" + }, + "parameters": { + "anyOf": [ + { + "additionalProperties": true, + "description": "Parameters that are forwarded to the authentication extension's AddUser function. Notice that the userName without the domain is forwarded automatically.", + "properties": { + "password": { + "format": "masked", + "type": "string" + } + }, + "required": [ + "password" + ], + "type": "object" + }, + { + "$ref": "tchmi:general#/definitions/VOID" + } + ] + }, + "settings": { + "additionalProperties": false, + "description": "Changes to the USERGROUPUSERS entry of the user", + "properties": { + "autoLogoff": { + "format": "timespan", + "type": "string" + }, + "groups": { + "$ref": "tchmi:server#/definitions/userGroups" + }, + "locale": { + "$ref": "tchmi:server#/definitions/userLocale" + }, + "timeFormatLocale": { + "$ref": "tchmi:server#/definitions/userLocale" + }, + "timeZone": { + "$ref": "tchmi:server#/definitions/userTimeZone" + } + }, + "type": "object" + }, + "userName": { + "description": "Name of the user without domain prefix", + "type": "string" + } + }, + "required": [ + "userName", + "domain" + ], + "type": "object" + } + }, + "USEMAPPING": true + }, + "AddSymbol": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "AddSymbol", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "properties": { + "name": { + "type": "string" + }, + "symbolCount": { + "type": "integer" + }, + "validSymbolCount": { + "type": "boolean" + } + }, + "required": [ + "name" + ], + "type": "object", + "writeValue": { + "properties": { + "ACCESS": { + "allOf": [ + { + "$ref": "tchmi:server#/definitions/accessEnum" + }, + { + "default": 3 + } + ] + }, + "AUTOMAP": { + "default": false, + "description": "Automatically obtain symbol information such as options and schema from the domain.", + "type": "boolean" + }, + "CHECKCOMPLEXITY": { + "default": false, + "description": "Do not add symbol, check complexity of added symbol instead", + "type": "boolean" + }, + "CUSTOMERDATA": { + "type": "string" + }, + "DOMAIN": { + "type": "string" + }, + "HIDDEN": { + "default": false, + "type": "boolean" + }, + "MAPPING": { + "type": "string" + }, + "NAME": { + "description": "Name of the symbol", + "type": "string" + }, + "OPTIONS": { + "additionalProperties": {}, + "type": "object" + }, + "SCHEMA": { + "$ref": "tchmi:server#/definitions/schemaRef" + }, + "SUBSYMBOL_MAPPING": { + "type": "string" + }, + "USEMAPPING": { + "default": true, + "type": "boolean" + }, + "USERGROUPS": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "additionalProperties": { + "$ref": "tchmi:server#/definitions/accessEnum" + }, + "type": "object" + } + ] + } + }, + "required": [ + "DOMAIN", + "MAPPING" + ], + "type": "object" + } + }, + "USEMAPPING": true + }, + "AddSymbols": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "AddSymbols", + "OPTIONS": {}, + "SCHEMA": { + "additionalProperties": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "tchmi:general#/definitions/errorDetails" + } + ] + }, + "function": true, + "type": "object", + "versions": [ + 1.0, + 2.0 + ], + "writeValue": { + "properties": { + "domain": { + "type": "string" + }, + "dryRun": { + "default": false, + "type": "boolean" + }, + "ignore": { + "default": [], + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "ignoreProblems": { + "default": false, + "type": "boolean" + }, + "limit": { + "allOf": [ + { + "$ref": "tchmi:general#/definitions/INT32" + }, + { + "default": 1000, + "minimum": 1 + } + ] + }, + "namePrefix": { + "default": "", + "type": "string" + }, + "options": { + "additionalProperties": {}, + "type": "object" + }, + "path": { + "default": "", + "type": "string" + }, + "skipExisting": { + "default": false, + "type": "boolean" + } + }, + "required": [ + "domain" + ], + "type": "object" + } + }, + "USEMAPPING": true + }, + "AddToConfiguration": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "AddToConfiguration", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "properties": { + "domain": { + "description": "Domain of the config value.", + "type": "string" + }, + "name": { + "description": "Name of the configuration.", + "type": "string" + }, + "path": { + "description": "Path of the config value.", + "type": "string" + } + }, + "required": [ + "name", + "domain", + "path" + ], + "type": "object" + } + }, + "USEMAPPING": true + }, + "ChangeUserSettings": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "ChangeUserSettings", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "anyOf": [ + { + "additionalProperties": false, + "description": "Changes to the USERGROUPUSERS entry of the current user.", + "properties": { + "changePassword": { + "allOf": [ + { + "$ref": "tchmi:general#/definitions/Any" + }, + { + "description": "Parameters that are forwarded to the authentication extension's ChangePassword function." + } + ] + }, + "locale": { + "$ref": "tchmi:server#/definitions/userLocale" + }, + "timeFormatLocale": { + "$ref": "tchmi:server#/definitions/userLocale" + }, + "timeZone": { + "$ref": "tchmi:server#/definitions/userTimeZone" + } + }, + "type": "object" + }, + { + "allOf": [ + { + "$ref": "tchmi:general#/definitions/VOID" + }, + { + "description": "Calling this method without writeValue will read the current settings." + } + ] + } + ] + } + }, + "USEMAPPING": true + }, + "ConfirmAlarm": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "ConfirmAlarm", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "$ref": "tchmi:server#/definitions/alarm" + } + }, + "USEMAPPING": true + }, + "Copy": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "Copy", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "properties": { + "configuration": { + "default": "default", + "description": "Configuration name.", + "type": "string" + }, + "domain": { + "description": "Extension domain.", + "type": "string" + }, + "new": { + "description": "Path to the new entry.", + "type": "string" + }, + "old": { + "description": "Path to the old entry.", + "type": "string" + } + }, + "required": [ + "old", + "new" + ], + "type": "object" + } + }, + "USEMAPPING": true + }, + "CreateEvent": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "CreateEvent", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "versions": [ + 1.0, + 2.0 + ], + "writeValue": { + "$ref": "tchmi:server#/definitions/event" + } + }, + "USEMAPPING": true + }, + "DefaultAuthExtension": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "DefaultAuthExtension", + "OPTIONS": {}, + "SCHEMA": { + "default": "TcHmiUserManagement", + "type": "string" + }, + "USEMAPPING": true + }, + "DefaultUserGroup": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "DefaultUserGroup", + "OPTIONS": {}, + "SCHEMA": { + "const": "__SystemUsers", + "function": true, + "type": "string", + "visibility": "HideInEngineering" + }, + "USEMAPPING": true + }, + "Delete": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "Delete", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "properties": { + "domain": { + "description": "Delete file form extension.", + "type": "string" + }, + "fileName": { + "description": "Name of the file to delete.", + "type": "string" + } + }, + "required": [ + "fileName" + ], + "type": "object" + } + }, + "USEMAPPING": true + }, + "DeleteConfiguration": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "DeleteConfiguration", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "type": "string" + } + }, + "USEMAPPING": true + }, + "Diagnostics": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "Diagnostics", + "OPTIONS": {}, + "SCHEMA": { + "additionalProperties": false, + "function": true, + "properties": { + "ACCEPTEDSOCKETS": { + "type": "integer" + }, + "ACTIVESESSIONS": { + "link": "Sessions", + "type": "integer" + }, + "ACTIVESOCKETS": { + "type": "integer" + }, + "ARCHITECTURE": { + "type": "string" + }, + "DISCOVERY_RUNNING": { + "type": "boolean", + "visibility": "HideInEngineering" + }, + "DOTNETCLASSICVERSIONS": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DOTNETCOREVERSIONS": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DOTNETVERSIONS": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LICENSE": { + "properties": { + "CLIENTS": { + "propertyOrder": 2, + "type": "integer" + }, + "EXTENSIONS": { + "propertyOrder": 6, + "type": "boolean" + }, + "SERVERS": { + "propertyOrder": 1, + "type": "integer" + }, + "STATE": { + "default": "Unregistered", + "enum": [ + "Error", + "Unregistered", + "Engineering", + "Demo", + "Pending", + "OK" + ], + "propertyOrder": 7, + "type": "string" + }, + "TARGETS": { + "propertyOrder": 4, + "type": "integer" + }, + "USEDCLIENTS": { + "propertyOrder": 3, + "type": "integer" + }, + "USEDTARGETS": { + "propertyOrder": 5, + "type": "integer" + } + }, + "type": "object" + }, + "MEMORYUSAGE": { + "type": "number", + "unit": "megabyte" + }, + "REMOTESERVERS": { + "additionalProperties": { + "properties": { + "REMOTE_ERROR": { + "$ref": "tchmi:general#/definitions/errorDetails" + }, + "REMOTE_STATUS": { + "enum": [ + "Disconnected", + "Connected", + "Error", + "Disabled" + ], + "propertyOrder": 1, + "type": "string" + } + }, + "required": [ + "REMOTE_STATUS" + ], + "type": "object" + }, + "type": "object" + }, + "SERVERTIME": { + "format": "date-time", + "type": "string" + }, + "TRAFFICIN": { + "type": "number", + "unit": "byte" + }, + "TRAFFICOUT": { + "type": "number", + "unit": "byte" + }, + "UPTIME": { + "format": "timespan", + "type": "string" + } + }, + "type": "object" + }, + "USEMAPPING": true + }, + "Export": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "Export", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "properties": { + "domain": { + "type": "string" + }, + "full": { + "default": false, + "type": "boolean" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name", + "domain" + ], + "type": "object" + } + }, + "USEMAPPING": true + }, + "ForceLogout": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "ForceLogout", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "anyOf": [ + { + "description": "User name. The authentication domain can be specified by using 'Domain::UserName'. If no domain is specified all users with the given name will be logged out.", + "type": "string" + }, + { + "description": "All users", + "type": "null" + }, + { + "properties": { + "clientCertificate": { + "description": "Thumbprint of the used client certificate", + "type": "string" + }, + "clientIp": { + "description": "IP address", + "type": "string" + }, + "group": { + "description": "User group", + "type": "string" + }, + "sessionId": { + "type": "string" + } + }, + "type": "object" + } + ] + } + }, + "USEMAPPING": true + }, + "GetConfiguration": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "GetConfiguration", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "properties": { + "domain": { + "type": "string" + }, + "full": { + "default": false, + "type": "boolean" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name", + "domain" + ], + "type": "object" + } + }, + "USEMAPPING": true + }, + "GetCurrentUser": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "GetCurrentUser", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "properties": { + "autoLoginUser": { + "type": "boolean" + }, + "autoLogoff": { + "format": "timespan", + "type": "string" + }, + "clientCertificate": { + "type": "string" + }, + "clientIp": { + "type": "string" + }, + "configLocale": { + "type": "string" + }, + "configTimeFormatLocale": { + "type": "string" + }, + "configTimeZone": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "groups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "locale": { + "type": "string" + }, + "name": { + "type": "string" + }, + "session": { + "type": "string" + }, + "timeFormatLocale": { + "type": "string" + }, + "timeZone": { + "type": "string" + } + }, + "type": "object" + }, + "USEMAPPING": true + }, + "GetDefinitions": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "GetDefinitions", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "properties": { + "resolve": { + "default": "None", + "enum": [ + "AddAllRefs", + "Simplify", + "None" + ], + "type": "string" + }, + "type": { + "default": "general", + "enum": [ + "server", + "framework", + "general", + "project" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "USEMAPPING": true + }, + "GetFileInformation": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "GetFileInformation", + "OPTIONS": {}, + "SCHEMA": { + "allOf": [ + { + "function": true + }, + { + "$ref": "tchmi:server#/definitions/fileInfo" + }, + { + "required": [ + "modificationTime", + "fileSize", + "access" + ] + } + ], + "writeValue": { + "type": "string" + } + }, + "USEMAPPING": true + }, + "GetSchema": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "GetSchema", + "OPTIONS": {}, + "SCHEMA": { + "anyOf": [ + { + "function": true, + "versions": [ + 1.0 + ], + "writeValue": { + "properties": { + "resolve": { + "default": "None", + "enum": [ + "AddRefs", + "Simplify", + "AddAllRefs", + "None" + ], + "type": "string" + }, + "symbol": { + "description": "Name of the symbol.", + "type": "string" + }, + "type": { + "default": "Read", + "enum": [ + "Read", + "Write" + ], + "type": "string" + } + }, + "required": [ + "symbol" + ], + "type": "object" + } + }, + { + "function": true, + "versions": [ + 2.0 + ], + "writeValue": { + "properties": { + "mergeSettings": { + "default": true, + "description": "Merge settings from the symbol configuration into the schema.", + "type": "boolean" + }, + "resolve": { + "default": "None", + "enum": [ + "AddRefs", + "Simplify", + "AddAllRefs", + "AllVersions", + "None" + ], + "type": "string" + }, + "symbol": { + "description": "Name of the symbol.", + "type": "string" + }, + "type": { + "default": "Read", + "enum": [ + "Read", + "Write" + ], + "type": "string" + } + }, + "required": [ + "symbol" + ], + "type": "object" + } + } + ] + }, + "USEMAPPING": true + }, + "GetServerInformation": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "GetServerInformation", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "type": "object" + }, + "USEMAPPING": true + }, + "GetSymbolAccess": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "GetSymbolAccess", + "OPTIONS": {}, + "SCHEMA": { + "allOf": [ + { + "$ref": "tchmi:server#/definitions/accessEnum" + }, + { + "function": true + } + ], + "writeValue": { + "type": "string" + } + }, + "USEMAPPING": true + }, + "Heartbeat": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "Heartbeat", + "OPTIONS": {}, + "SCHEMA": { + "function": true + }, + "USEMAPPING": true + }, + "Import": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "Import", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "$ref": "tchmi:general#/definitions/Any" + } + }, + "USEMAPPING": true + }, + "IsAuthRequired": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "IsAuthRequired", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "type": "boolean" + }, + "USEMAPPING": true + }, + "IsSymbolOutdated": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "IsSymbolOutdated", + "OPTIONS": {}, + "SCHEMA": { + "anyOf": [ + { + "enum": [ + "SYMBOL_UP_TO_DATE", + "SYMBOL_SCHEMA_DIFFERENCE", + "SYMBOL_INVALID_DOMAIN", + "SYMBOL_INVALID_SYMBOL" + ], + "function": true, + "type": "string", + "versions": [ + 1.0 + ], + "writeValue": { + "properties": { + "symbol": { + "description": "Name of the symbol.", + "type": "string" + } + }, + "required": [ + "symbol" + ], + "type": "object" + } + }, + { + "function": true, + "properties": { + "mappedSymbolSchema": { + "$ref": "tchmi:server#/definitions/schemaRef" + }, + "state": { + "enum": [ + "SYMBOL_UP_TO_DATE", + "SYMBOL_SCHEMA_DIFFERENCE", + "SYMBOL_INVALID_DOMAIN", + "SYMBOL_INVALID_SYMBOL" + ], + "type": "string" + }, + "symbolSchema": { + "$ref": "tchmi:server#/definitions/schemaRef" + } + }, + "required": [ + "state" + ], + "type": "object", + "versions": [ + 2.0 + ], + "writeValue": { + "properties": { + "symbol": { + "description": "Name of the symbol.", + "type": "string" + } + }, + "required": [ + "symbol" + ], + "type": "object" + } + } + ] + }, + "USEMAPPING": true + }, + "ListActiveSessions": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "ListActiveSessions", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "properties": { + "clients": { + "additionalProperties": { + "items": { + "properties": { + "commands": { + "items": { + "properties": { + "id": { + "type": "integer" + }, + "symbol": { + "type": "string" + } + }, + "required": [ + "id", + "symbol" + ], + "type": "object" + }, + "type": "array" + }, + "sessionId": { + "type": "string" + }, + "userName": { + "type": "string" + } + }, + "required": [ + "commands", + "sessionId", + "userName" + ], + "type": "object" + }, + "type": "array" + }, + "type": "object" + }, + "subscriptions": { + "additionalProperties": { + "properties": { + "averageDuration": { + "format": "timespan", + "type": "string" + }, + "clientCount": { + "type": "integer" + }, + "commands": { + "items": { + "properties": { + "lastSent": { + "format": "date-time", + "type": "string" + }, + "readValueJsonLength": { + "minimum": 0, + "type": "integer", + "unit": "byte" + }, + "symbol": { + "type": "string" + } + }, + "required": [ + "symbol" + ], + "type": "object" + }, + "type": "array" + }, + "id": { + "type": "integer" + }, + "intervalTime": { + "type": "integer" + }, + "readValueJsonLength": { + "minimum": 0, + "type": "integer", + "unit": "byte" + }, + "type": { + "enum": [ + "Subscription", + "ReadWrite" + ], + "type": "string" + } + }, + "required": [ + "id", + "clientCount", + "type", + "commands" + ], + "type": "object" + }, + "type": "object" + } + }, + "type": "object", + "writeValue": { + "anyOf": [ + { + "properties": { + "averageDuration": { + "default": false, + "type": "boolean" + }, + "readValueJsonLength": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + { + "$ref": "tchmi:general#/definitions/VOID" + } + ] + } + }, + "USEMAPPING": true + }, + "ListConfigurations": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "ListConfigurations", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "USEMAPPING": true + }, + "ListDomains": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "ListDomains", + "OPTIONS": {}, + "SCHEMA": { + "additionalProperties": { + "properties": { + "authExtension": { + "description": "Shows if extension can be used for user management.", + "type": "boolean" + }, + "configVersion": { + "description": "The version of the extension's configuration.", + "type": "string" + }, + "debuggerAttached": { + "description": "Indicates whether a debugger is or will be attached to the extension.", + "type": "boolean" + }, + "error": { + "$ref": "tchmi:general#/definitions/errorDetails" + }, + "extension": { + "description": "The name of the extension.", + "type": "string" + }, + "friendlyName": { + "description": "A more readable name version of the extension name.", + "type": "string" + }, + "guid": { + "description": "The globally unique identifier associated with the extension.", + "type": "string" + }, + "licensed": { + "description": "Indicate the extension is license status.", + "type": "boolean" + }, + "packageVersion": { + "description": "The version of the NuGet package that contains the extension.", + "type": "string" + }, + "remote": { + "description": "Shows if the domain refers to a remote server.", + "type": "boolean" + }, + "required": { + "description": "Shows if the extension is considered to be required.", + "type": "boolean" + }, + "state": { + "description": "Shows the current state of the extension.", + "enum": [ + "NotLoaded", + "Loaded", + "Initialized", + "Invalid", + "Disabled", + "Unloading", + "NotRunning" + ], + "type": "string" + }, + "thirdParty": { + "description": "Indicate the extension is a customer extension.", + "type": "boolean" + }, + "updated": { + "description": "Shows last update time of the config.", + "format": "date-time", + "type": "string" + }, + "version": { + "description": "The version of the extension.", + "type": "string" + }, + "visibility": { + "description": "Indicates under which circumstances the extension configuration should be visible.", + "enum": [ + "AlwaysShow", + "AlwaysHide", + "HideInEngineering" + ], + "type": "string" + } + }, + "type": "object" + }, + "function": true, + "type": "object" + }, + "USEMAPPING": true + }, + "ListEvents": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "ListEvents", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "items": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "domain": { + "type": "string" + }, + "localizedString": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": { + "oneOf": [ + { + "$ref": "tchmi:server#/definitions/alarm" + }, + { + "$ref": "tchmi:server#/definitions/message" + } + ] + }, + "payloadType": { + "$ref": "tchmi:server#/definitions/eventType" + }, + "sessionId": { + "type": "string" + }, + "timeReceived": { + "format": "date-time", + "type": "string" + } + }, + "required": [ + "payload", + "payloadType", + "name", + "domain", + "timeReceived", + "localizedString" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "domain": { + "type": "string" + }, + "name": { + "type": "string" + }, + "payload": {}, + "payloadType": { + "$ref": "tchmi:server#/definitions/eventType" + }, + "sessionId": { + "type": "string" + }, + "timeReceived": { + "format": "date-time", + "type": "string" + } + }, + "required": [ + "name", + "domain", + "timeReceived" + ], + "type": "object" + } + ] + }, + "type": "array" + }, + "USEMAPPING": true + }, + "ListFiles": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "ListFiles", + "OPTIONS": {}, + "SCHEMA": { + "anyOf": [ + { + "additionalProperties": { + "allOf": [ + { + "$ref": "tchmi:server#/definitions/fileInfo" + }, + { + "properties": { + "link": { + "type": "string" + } + }, + "required": [ + "fileFlags" + ] + } + ] + }, + "function": true, + "type": "object", + "versions": [ + 1.0 + ], + "writeValue": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + { + "additionalProperties": { + "allOf": [ + { + "$ref": "tchmi:server#/definitions/fileInfo" + }, + { + "properties": { + "hash": { + "description": "The md5 hash of the file", + "type": "string" + }, + "link": { + "type": "string" + } + }, + "required": [ + "fileFlags" + ] + } + ] + }, + "function": true, + "type": "object", + "versions": [ + 2.0 + ], + "writeValue": { + "additionalProperties": false, + "properties": { + "hashes": { + "description": "If true, the hash of each file is returned.", + "type": "boolean" + }, + "path": { + "description": "The path to list files from.", + "type": "string" + }, + "recursive": { + "description": "If true, the entire directory tree is returned.", + "type": "boolean" + } + }, + "required": [ + "path" + ], + "type": "object", + "versions": [ + 2.0 + ] + } + } + ] + }, + "USEMAPPING": true + }, + "ListInternalSymbols": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "ListInternalSymbols", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "type": "object" + }, + "USEMAPPING": true + }, + "ListOutdatedSymbols": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "ListOutdatedSymbols", + "OPTIONS": {}, + "SCHEMA": { + "additionalProperties": { + "enum": [ + "SYMBOL_SCHEMA_DIFFERENCE", + "SYMBOL_INVALID_DOMAIN", + "SYMBOL_INVALID_SYMBOL" + ], + "type": "string" + }, + "function": true, + "type": "object", + "writeValue": { + "anyOf": [ + { + "properties": { + "domain": { + "type": "string" + }, + "ignoreHiddenSymbols": { + "default": false, + "type": "boolean" + }, + "onlyDynamicSymbols": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + { + "$ref": "tchmi:general#/definitions/VOID" + } + ] + } + }, + "USEMAPPING": true + }, + "ListSymbolNames": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "ListSymbolNames", + "OPTIONS": {}, + "SCHEMA": { + "description": "List of mapped symbol names.", + "function": true, + "items": { + "type": "string" + }, + "type": "array", + "writeValue": { + "anyOf": [ + { + "properties": { + "depth": { + "default": 1, + "maximum": 5, + "minimum": 1, + "type": "integer" + }, + "domain": { + "type": "string" + }, + "ignoreHiddenSymbols": { + "default": false, + "type": "boolean" + }, + "onlyDynamicSymbols": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + { + "$ref": "tchmi:general#/definitions/VOID" + } + ] + } + }, + "USEMAPPING": true + }, + "ListSymbols": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "ListSymbols", + "OPTIONS": {}, + "SCHEMA": { + "additionalProperties": { + "$ref": "tchmi:server#/definitions/symbol" + }, + "function": true, + "type": "object" + }, + "USEMAPPING": true + }, + "ListUserGroups": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "ListUserGroups", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "USEMAPPING": true + }, + "ListUserNames": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "ListUserNames", + "OPTIONS": {}, + "SCHEMA": { + "description": "List of usernames.", + "function": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "USEMAPPING": true + }, + "ListUsers": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "ListUsers", + "OPTIONS": {}, + "SCHEMA": { + "anyOf": [ + { + "function": true, + "items": { + "description": "List of all users and their permissions.", + "properties": { + "domain": { + "type": "string" + }, + "groups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array", + "versions": [ + 1.0 + ] + }, + { + "function": true, + "items": { + "description": "List of all users and their permissions.", + "properties": { + "autoLogoff": { + "format": "timespan", + "type": "string" + }, + "domain": { + "type": "string" + }, + "groups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "locale": { + "$ref": "tchmi:server#/definitions/userLocale" + }, + "name": { + "type": "string" + }, + "timeFormatLocale": { + "$ref": "tchmi:server#/definitions/userLocale" + }, + "timeZone": { + "$ref": "tchmi:server#/definitions/userTimeZone" + } + }, + "type": "object" + }, + "type": "array", + "versions": [ + 2.0 + ] + } + ] + }, + "USEMAPPING": true + }, + "LocalizeText": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "LocalizeText", + "OPTIONS": {}, + "SCHEMA": { + "description": "The localized text.", + "function": true, + "type": "string", + "writeValue": { + "oneOf": [ + { + "$ref": "tchmi:server#/definitions/alarm" + }, + { + "$ref": "tchmi:server#/definitions/message" + }, + { + "description": "Localizable object.", + "properties": { + "domain": { + "type": "string" + }, + "name": { + "type": "string" + }, + "params": { + "additionalProperties": {}, + "type": "object" + } + }, + "required": [ + "name", + "domain" + ], + "type": "object" + } + ] + } + }, + "USEMAPPING": true + }, + "Login": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "Login", + "OPTIONS": {}, + "SCHEMA": { + "description": "The SessionId of the logged in user.", + "function": true, + "type": "string", + "writeValue": { + "properties": { + "maintenanceMode": { + "default": false, + "type": "boolean" + }, + "password": { + "format": "masked", + "type": "string" + }, + "persistPreviousSession": { + "default": false, + "type": "boolean" + }, + "persistent": { + "default": false, + "type": "boolean" + }, + "userName": { + "type": "string" + } + }, + "required": [ + "userName", + "password" + ], + "type": "object" + } + }, + "USEMAPPING": true + }, + "Logout": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "Logout", + "OPTIONS": {}, + "SCHEMA": { + "function": true + }, + "USEMAPPING": true + }, + "RefreshDefinitions": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "RefreshDefinitions", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "enum": [ + "framework", + "project", + "general" + ], + "type": "string" + } + }, + "USEMAPPING": true + }, + "Remove": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "Remove", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "properties": { + "configuration": { + "default": "default", + "description": "Configuration name.", + "type": "string" + }, + "domain": { + "description": "Extension domain.", + "type": "string" + }, + "path": { + "description": "Path to the entry.", + "type": "string" + }, + "value": {} + }, + "required": [ + "path", + "domain", + "value" + ], + "type": "object" + } + }, + "USEMAPPING": true + }, + "RemoveFromConfiguration": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "RemoveFromConfiguration", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "properties": { + "domain": { + "description": "Domain of the config value.", + "type": "string" + }, + "name": { + "description": "Name of the configuration.", + "type": "string" + }, + "path": { + "description": "Path of the config value.", + "type": "string" + } + }, + "required": [ + "name", + "domain", + "path" + ], + "type": "object" + } + }, + "USEMAPPING": true + }, + "RemoveUnusedDefinitions": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "RemoveUnusedDefinitions", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "items": [ + { + "type": "string" + } + ], + "type": "array", + "writeValue": { + "anyOf": [ + { + "properties": { + "dryRun": { + "default": false, + "type": "boolean" + }, + "ignore": { + "default": [], + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + { + "$ref": "tchmi:general#/definitions/VOID" + } + ] + } + }, + "USEMAPPING": true + }, + "RemoveUser": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "RemoveUser", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "properties": { + "domain": { + "description": "Domain name of the authentication extension", + "type": "string" + }, + "userName": { + "description": "Name of the user without domain prefix", + "type": "string" + } + }, + "required": [ + "domain", + "userName" + ], + "type": "object" + } + }, + "USEMAPPING": true + }, + "Rename": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "Rename", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "properties": { + "configuration": { + "default": "default", + "description": "Configuration name.", + "type": "string" + }, + "domain": { + "description": "Extension domain.", + "type": "string" + }, + "new": { + "description": "Path to the new entry.", + "type": "string" + }, + "old": { + "description": "Path to the old entry.", + "type": "string" + } + }, + "required": [ + "old", + "new" + ], + "type": "object" + } + }, + "USEMAPPING": true + }, + "RenameConfiguration": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "RenameConfiguration", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "properties": { + "new": { + "type": "string" + }, + "old": { + "type": "string" + } + }, + "required": [ + "old", + "new" + ], + "type": "object" + } + }, + "USEMAPPING": true + }, + "Restart": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "Restart", + "OPTIONS": {}, + "SCHEMA": { + "function": true + }, + "USEMAPPING": true + }, + "SetConfiguration": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "SetConfiguration", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "properties": { + "data": {}, + "domain": { + "type": "string" + }, + "name": { + "type": "string" + }, + "symbol": { + "default": "", + "type": "string" + } + }, + "required": [ + "name", + "domain", + "data" + ], + "type": "object" + } + }, + "USEMAPPING": true + }, + "SetLocale": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "SetLocale", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "format": "locale", + "type": "string" + } + }, + "USEMAPPING": true + }, + "Shutdown": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "Shutdown", + "OPTIONS": {}, + "SCHEMA": { + "function": true + }, + "USEMAPPING": true + }, + "SubscribeEvents": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "SubscribeEvents", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "description": "The requestId of a subscription.", + "type": "integer" + } + }, + "USEMAPPING": true + }, + "TcHmiLua.Config": { + "ACCESS": 0, + "DOMAIN": "TcHmiLua", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "Config", + "OPTIONS": {}, + "SCHEMA": {}, + "USEMAPPING": true + }, + "TcHmiSqliteLogger.Clear": { + "ACCESS": 3, + "DOMAIN": "TcHmiSqliteLogger", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "Clear", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "anyOf": [ + { + "properties": { + "match": { + "$ref": "tchmi:server#/definitions/eventFilter" + } + }, + "required": [ + "match" + ], + "type": "object" + }, + { + "$ref": "tchmi:general#/definitions/VOID" + } + ] + } + }, + "USEMAPPING": true + }, + "TcHmiSqliteLogger.ClearLocalizations": { + "ACCESS": 3, + "DOMAIN": "TcHmiSqliteLogger", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "ClearLocalizations", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "anyOf": [ + { + "properties": { + "match": { + "$ref": "tchmi:server#/definitions/eventFilter" + } + }, + "required": [ + "match" + ], + "type": "object" + }, + { + "$ref": "tchmi:general#/definitions/VOID" + } + ] + } + }, + "USEMAPPING": true + }, + "TcHmiSqliteLogger.Config": { + "ACCESS": 0, + "DOMAIN": "TcHmiSqliteLogger", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "Config", + "OPTIONS": {}, + "SCHEMA": {}, + "USEMAPPING": true + }, + "TcHmiSqliteLogger.Diagnostics": { + "ACCESS": 3, + "DOMAIN": "TcHmiSqliteLogger", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "Diagnostics", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "properties": { + "allDomains": { + "properties": { + "databaseSize": { + "allOf": [ + { + "$ref": "tchmi:general#/definitions/INT64" + }, + { + "propertyOrder": 1, + "unit": "byte" + } + ] + }, + "numEvents": { + "propertyOrder": 3, + "type": "integer" + }, + "numEventsWithAlarmPayload": { + "propertyOrder": 7, + "type": "integer" + }, + "numEventsWithMessagePayload": { + "propertyOrder": 5, + "type": "integer" + }, + "numPersistentEvents": { + "propertyOrder": 4, + "type": "integer", + "visibility": "HideInEngineering" + }, + "numPersistentEventsWithAlarmPayload": { + "propertyOrder": 8, + "type": "integer", + "visibility": "HideInEngineering" + }, + "numPersistentEventsWithMessagePayload": { + "propertyOrder": 6, + "type": "integer", + "visibility": "HideInEngineering" + }, + "persistentDatabaseSize": { + "allOf": [ + { + "$ref": "tchmi:general#/definitions/INT64" + }, + { + "propertyOrder": 2, + "unit": "byte" + } + ] + } + }, + "required": [ + "databaseSize", + "persistentDatabaseSize", + "numEvents", + "numPersistentEvents", + "numEventsWithMessagePayload", + "numPersistentEventsWithMessagePayload", + "numEventsWithAlarmPayload", + "numPersistentEventsWithAlarmPayload" + ], + "type": "object" + }, + "perDomain": { + "additionalProperties": { + "properties": { + "numEvents": { + "propertyOrder": 1, + "type": "integer" + }, + "numEventsWithAlarmPayload": { + "propertyOrder": 5, + "type": "integer" + }, + "numEventsWithMessagePayload": { + "propertyOrder": 3, + "type": "integer" + }, + "numPersistentEvents": { + "propertyOrder": 2, + "type": "integer", + "visibility": "HideInEngineering" + }, + "numPersistentEventsWithAlarmPayload": { + "propertyOrder": 6, + "type": "integer", + "visibility": "HideInEngineering" + }, + "numPersistentEventsWithMessagePayload": { + "propertyOrder": 4, + "type": "integer", + "visibility": "HideInEngineering" + } + }, + "required": [ + "numEvents", + "numPersistentEvents", + "numEventsWithMessagePayload", + "numPersistentEventsWithMessagePayload", + "numEventsWithAlarmPayload", + "numPersistentEventsWithAlarmPayload" + ], + "type": "object" + }, + "type": "object" + } + }, + "required": [ + "allDomains", + "perDomain" + ], + "type": "object" + }, + "USEMAPPING": true + }, + "TcHmiSqliteLogger.ListEvents": { + "ACCESS": 3, + "DOMAIN": "TcHmiSqliteLogger", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "ListEvents", + "OPTIONS": {}, + "SCHEMA": { + "function": true + }, + "USEMAPPING": true + }, + "TcHmiSrv.Config": { + "ACCESS": 0, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "Config", + "OPTIONS": {}, + "SCHEMA": {}, + "USEMAPPING": true + }, + "TcHmiUserManagement.AddUser": { + "ACCESS": 3, + "DOMAIN": "TcHmiUserManagement", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "AddUser", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "properties": { + "enabled": { + "description": "Indicates if the user can be used or not.", + "type": "boolean" + }, + "password": { + "description": "Password of the user. Only a hash will be stored.", + "format": "masked", + "type": "string" + }, + "userName": { + "description": "Name of the user.", + "type": "string" + } + }, + "required": [ + "userName", + "password" + ], + "type": "object" + } + }, + "USEMAPPING": true + }, + "TcHmiUserManagement.ChangePassword": { + "ACCESS": 3, + "DOMAIN": "TcHmiUserManagement", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "ChangePassword", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "properties": { + "currentPassword": { + "format": "masked", + "type": "string" + }, + "newPassword": { + "format": "masked", + "type": "string" + }, + "twoFactorToken": { + "format": "masked", + "type": "string" + } + }, + "type": "object" + } + }, + "USEMAPPING": true + }, + "TcHmiUserManagement.Config": { + "ACCESS": 0, + "DOMAIN": "TcHmiUserManagement", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "Config", + "OPTIONS": {}, + "SCHEMA": {}, + "USEMAPPING": true + }, + "TcHmiUserManagement.Disable2FA": { + "ACCESS": 3, + "DOMAIN": "TcHmiUserManagement", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "Disable2FA", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "type": "boolean", + "writeValue": { + "properties": { + "password": { + "format": "masked", + "type": "string" + }, + "twoFactorToken": { + "format": "masked", + "type": "string" + } + }, + "required": [ + "password", + "twoFactorToken" + ], + "type": "object" + } + }, + "USEMAPPING": true + }, + "TcHmiUserManagement.DisableUser": { + "ACCESS": 3, + "DOMAIN": "TcHmiUserManagement", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "DisableUser", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "description": "Name of the user.", + "type": "string" + } + }, + "USEMAPPING": true + }, + "TcHmiUserManagement.Enable2FA": { + "ACCESS": 3, + "DOMAIN": "TcHmiUserManagement", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "Enable2FA", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "type": "boolean", + "writeValue": { + "properties": { + "password": { + "type": "string" + }, + "secret": { + "type": "string" + }, + "twoFactorToken": { + "type": "string" + } + }, + "required": [ + "password", + "secret", + "twoFactorToken" + ], + "type": "object" + } + }, + "USEMAPPING": true + }, + "TcHmiUserManagement.EnableUser": { + "ACCESS": 3, + "DOMAIN": "TcHmiUserManagement", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "EnableUser", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "description": "Name of the user.", + "type": "string" + } + }, + "USEMAPPING": true + }, + "TcHmiUserManagement.Get2FAStatus": { + "ACCESS": 3, + "DOMAIN": "TcHmiUserManagement", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "Get2FAStatus", + "OPTIONS": {}, + "SCHEMA": { + "enum": [ + 0, + 1, + 2, + 3, + 4 + ], + "options": [ + { + "description": "2FA is enabled.", + "label": "2FAEnabled", + "value": 0 + }, + { + "description": "2FA can be enabled.", + "label": "2FACanBeEnabled", + "value": 1 + }, + { + "description": "2FA cannot be enabled.", + "label": "2FACannotBeEnabled", + "value": 2 + }, + { + "description": "2FA may be disabled.", + "label": "2FACanBeDisabled", + "value": 3 + }, + { + "description": "2FA is enabled but not asked for", + "label": "2FANotRequired", + "value": 4 + } + ], + "type": "integer" + }, + "USEMAPPING": true + }, + "TcHmiUserManagement.GetComplexityRules": { + "ACCESS": 3, + "DOMAIN": "TcHmiUserManagement", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "GetComplexityRules", + "OPTIONS": {}, + "SCHEMA": { + "additionalProperties": { + "properties": { + "localizationParameters": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "regex": { + "format": "regex", + "type": "string" + } + }, + "required": [ + "regex" + ], + "type": "object" + }, + "function": true, + "type": "object" + }, + "USEMAPPING": true + }, + "TcHmiUserManagement.ListDisabledUsers": { + "ACCESS": 3, + "DOMAIN": "TcHmiUserManagement", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "ListDisabledUsers", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "USEMAPPING": true + }, + "TcHmiUserManagement.ListUsers": { + "ACCESS": 3, + "DOMAIN": "TcHmiUserManagement", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "ListUsers", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "items": { + "type": "string" + }, + "type": "array" + }, + "USEMAPPING": true + }, + "TcHmiUserManagement.RemoveUser": { + "ACCESS": 3, + "DOMAIN": "TcHmiUserManagement", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "RemoveUser", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "description": "Name of the user.", + "type": "string" + } + }, + "USEMAPPING": true + }, + "TcHmiUserManagement.RenameUser": { + "ACCESS": 3, + "DOMAIN": "TcHmiUserManagement", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "RenameUser", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "properties": { + "currentUserName": { + "description": "Current name of the user.", + "type": "string" + }, + "newUserName": { + "description": "The new name of the user.", + "type": "string" + } + }, + "required": [ + "currentUserName", + "newUserName" + ], + "type": "object" + } + }, + "USEMAPPING": true + }, + "TcHmiUserManagement.Reset2FA": { + "ACCESS": 3, + "DOMAIN": "TcHmiUserManagement", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "Reset2FA", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "type": "boolean", + "writeValue": { + "type": "string" + } + }, + "USEMAPPING": true + }, + "Unsubscribe": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "Unsubscribe", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "description": "The requestId of a subscription.", + "type": "integer" + } + }, + "USEMAPPING": true + }, + "UnsubscribeEvents": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "UnsubscribeEvents", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "description": "The requestId of a subscription.", + "type": "integer" + } + }, + "USEMAPPING": true + }, + "UpdateEventsSubscription": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "UpdateEventsSubscription", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "description": "The requestId of a subscription.", + "type": "integer" + } + }, + "USEMAPPING": true + }, + "Upload": { + "ACCESS": 3, + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "HIDDEN": true, + "MAPPING": "Upload", + "OPTIONS": {}, + "SCHEMA": { + "function": true, + "writeValue": { + "additionalProperties": false, + "properties": { + "checkSum": { + "description": "Checksum of the file as MD5 hexadecimal-string.", + "type": "string" + }, + "chunkType": { + "default": 0, + "enum": [ + 0, + 1, + 2, + 3 + ], + "type": "integer" + }, + "data": { + "description": "Data of the file.", + "format": "base64", + "type": "string" + }, + "domain": { + "description": "Upload extension dll to remote filesystem.", + "type": "string" + }, + "fileName": { + "description": "Name of the file.", + "type": "string" + }, + "isDirectory": { + "default": false, + "type": "boolean" + } + }, + "required": [ + "fileName" + ], + "type": "object" + } + }, + "USEMAPPING": true + }, + "UserSelectType": { + "ACCESS": 3, + "CUSTOMERDATA": "", + "DOMAIN": "TcHmiSrv", + "DYNAMIC": false, + "EXTENSION_DATA_DOMAINS": [], + "FLOODPROTECTION_LEVEL": -1, + "HIDDEN": true, + "MAPPING": "Config::USERSELECTTYPE", + "OPTIONS": {}, + "REAUTHENTICATION_REQUIRED": false, + "REVIEWER_GROUPS": [], + "SCHEMA": { + "category": "security", + "configDescription": "DESC_USERSELECTTYPE", + "default": 0, + "enum": [ + 0, + 1 + ], + "options": [ + { + "label": "ENUM_COMBOBOX", + "value": 0 + }, + { + "label": "ENUM_TEXTFIELD", + "value": 1 + } + ], + "propertyOrder": 14, + "type": "integer" + }, + "SUBSYMBOL_MAPPING": "", + "USEMAPPING": true + } + }, + "SYMBOL_COMPLEXITY_LIMIT": 100, + "TEMPDH": "", + "THREADPOOLSIZE": 32, + "UPLOADTIMEOUT": "PT20S", + "USEINT64STRING": true, + "USERGROUPS": { + "__SystemAdministrators": { + "ENABLED": true, + "FILEACCESS": 3, + "FILES": {}, + "SYMBOLACCESS": 3, + "SYMBOLS": {} + }, + "__SystemGuests": { + "ENABLED": true, + "FILEACCESS": 0, + "FILES": { + "/Config/ServerState": 1, + "/favicon.ico": 1 + }, + "SYMBOLACCESS": 0, + "SYMBOLS": { + "DefaultAuthExtension": 1, + "DefaultUserGroup": 1, + "GetCurrentUser": 3, + "GetSymbolAccess": 3, + "Heartbeat": 3, + "IsAuthRequired": 3, + "ListDomains": 3, + "ListUserNames": 3, + "Login": 3, + "Logout": 3, + "SetLocale": 3, + "Unsubscribe": 3, + "UserSelectType": 1 + } + }, + "__SystemMaintenanceUsers": { + "ENABLED": true, + "FILEACCESS": 3, + "FILES": {}, + "SYMBOLACCESS": 0, + "SYMBOLS": {} + }, + "__SystemUsers": { + "ENABLED": true, + "FILEACCESS": 3, + "FILES": { + "/Config": 1 + }, + "SYMBOLACCESS": 0, + "SYMBOLS": { + "ADS.AdsSyncReadDeviceInfoReq": 3, + "ADS.AdsSyncReadStateReq": 3, + "ADS.CheckLicense": 3, + "ADS.Diagnostics": 3, + "ADS.PLC1.GVL_SCADA.xErrAck": 3, + "ADS.PLC1.GVL_SCADA.xOpenAllChambers": 3, + "ADS.PLC1.PRG_Main._fbRobot._abToolsAndPositions.0": 3, + "ADS.PLC1.PRG_Main._fbRobot._abToolsAndPositions.1": 3, + "ADS.PLC1.PRG_Main._fbRobot._abToolsAndPositions.2": 3, + "ADS.PLC1.PRG_Main._fbRobot._abToolsAndPositions.3": 3, + "ADS.PLC1.PRG_Main._fbRobot._diOffsetPosX": 3, + "ADS.PLC1.PRG_Main._fbRobot._diOffsetPosY": 3, + "ADS.PLC1.PRG_Main._fbRobot._diThickness": 3, + "ADS.PLC1.PRG_Main._fbRobot._uJobs.stJobs.wFinishedJobNrFromPlc": 3, + "ADS.PLC1.PRG_Main._fbRobot._uJobs.stJobs.wJobNrForRobot": 3, + "ChangeUserSettings": 3, + "ConfirmAlarm": 3, + "CreateEvent": 3, + "DefaultAuthExtension": 1, + "DefaultUserGroup": 1, + "Diagnostics": 3, + "Export": 3, + "GetConfiguration": 3, + "GetCurrentUser": 3, + "GetDefinitions": 3, + "GetFileInformation": 3, + "GetSchema": 3, + "GetServerInformation": 3, + "GetSymbolAccess": 3, + "Heartbeat": 3, + "IsAuthRequired": 3, + "ListDomains": 3, + "ListEvents": 3, + "ListSymbols": 3, + "ListUserNames": 3, + "LocalizeText": 3, + "Login": 3, + "Logout": 3, + "SetLocale": 3, + "SubscribeEvents": 3, + "TcHmiSqliteLogger.Diagnostics": 3, + "TcHmiUserManagement.ChangePassword": 3, + "TcHmiUserManagement.Disable2FA": 3, + "TcHmiUserManagement.Enable2FA": 3, + "TcHmiUserManagement.Get2FAStatus": 3, + "TcHmiUserManagement.GetComplexityRules": 3, + "Unsubscribe": 3, + "UnsubscribeEvents": 3, + "UpdateEventsSubscription": 3, + "UserSelectType": 1 + } + } + }, + "USERGROUPUSERS": { + "TcHmiUserManagement": { + "__SystemAdministrator": { + "USERGROUPUSERS_AUTO_LOGOFF": "PT0S", + "USERGROUPUSERS_FORCE_2FA_INIT": false, + "USERGROUPUSERS_FORCE_PASSWORD_CHANGE": false, + "USERGROUPUSERS_GROUPS": [ + "__SystemAdministrators" + ], + "USERGROUPUSERS_LOCALE": "project", + "USERGROUPUSERS_TIMEFORMATLOCALE": "project", + "USERGROUPUSERS_TIMEZONE": "project" + }, + "__SystemGuest": { + "USERGROUPUSERS_AUTO_LOGOFF": "PT0S", + "USERGROUPUSERS_FORCE_2FA_INIT": false, + "USERGROUPUSERS_FORCE_PASSWORD_CHANGE": false, + "USERGROUPUSERS_GROUPS": [ + "__SystemGuests" + ], + "USERGROUPUSERS_LOCALE": "project", + "USERGROUPUSERS_TIMEFORMATLOCALE": "project", + "USERGROUPUSERS_TIMEZONE": "project" + }, + "__SystemUser": { + "USERGROUPUSERS_AUTO_LOGOFF": "PT0S", + "USERGROUPUSERS_FORCE_2FA_INIT": false, + "USERGROUPUSERS_FORCE_PASSWORD_CHANGE": false, + "USERGROUPUSERS_GROUPS": [ + "__SystemUsers" + ], + "USERGROUPUSERS_LOCALE": "project", + "USERGROUPUSERS_TIMEFORMATLOCALE": "project", + "USERGROUPUSERS_TIMEZONE": "project" + } + } + }, + "USERSELECTTYPE": 0, + "VIDEOSEGMENTSIZE": 1048576, + "VIRTUALDIRECTORIES": { + "/": "..\\..\\Infineon_HMI\\", + "/Beckhoff.TwinCAT.HMI.Controls": "..\\..\\Infineon\\Packages\\Beckhoff.TwinCAT.HMI.Controls.14.4.1\\runtimes\\native1.12-tchmi", + "/Beckhoff.TwinCAT.HMI.Framework": "..\\..\\Infineon\\Packages\\Beckhoff.TwinCAT.HMI.Framework.14.3.360\\runtimes\\native1.12-tchmi", + "/Beckhoff.TwinCAT.HMI.Functions": "..\\..\\Infineon\\Packages\\Beckhoff.TwinCAT.HMI.Functions.14.3.340\\runtimes\\native1.12-tchmi", + "/bin": "..\\..\\Infineon_HMI\\bin\\" + } +} \ No newline at end of file diff --git a/Server/TcHmiSrv/TcHmiSrv.Config.remote.json b/Server/TcHmiSrv/TcHmiSrv.Config.remote.json new file mode 100644 index 0000000..611c697 --- /dev/null +++ b/Server/TcHmiSrv/TcHmiSrv.Config.remote.json @@ -0,0 +1,9 @@ +{ + "BASE_HMI_URL": "", + "CERTIFICATEEXPIRATION": "P1095DT18H", + "MAXREQUESTSIZE": 1048576, + "REQUIREAUTH": 2, + "VIRTUALDIRECTORIES": { + "/": "www" + } +} \ No newline at end of file diff --git a/Server/TcHmiSrv/TcHmiSrv.Storage.json b/Server/TcHmiSrv/TcHmiSrv.Storage.json new file mode 100644 index 0000000..6d82d58 --- /dev/null +++ b/Server/TcHmiSrv/TcHmiSrv.Storage.json @@ -0,0 +1,4 @@ +{ + "configVersion": "1.0.1.15", + "guid": "1EE8B733-8328-488E-A4BA-C287BF8302E7" +} \ No newline at end of file diff --git a/Server/TcHmiUserManagement/TcHmiUserManagement.Config.default.json b/Server/TcHmiUserManagement/TcHmiUserManagement.Config.default.json new file mode 100644 index 0000000..9284204 --- /dev/null +++ b/Server/TcHmiUserManagement/TcHmiUserManagement.Config.default.json @@ -0,0 +1,58 @@ +{ + "ENABLE_TWO_FACTOR_AUTHENTICATION": 0, + "EXCLUDE_SYSTEM_ADMINISTRATOR_FROM_LOCKOUT": false, + "MAX_INVALID_LOGIN_ATTEMPTS": 0, + "PASSWORD_BLACKLIST": "", + "PASSWORD_ENABLE_AGING": false, + "PASSWORD_FORCE_COMPLEX": 0, + "PASSWORD_HISTORY_SIZE": 0, + "PASSWORD_MAXIMUM_AGE": "P90D", + "PASSWORD_MINIMUM_LENGTH": 1, + "USERS": { + "__SystemAdministrator": { + "ALGORITHM": 0, + "ENABLED": false, + "LAST_PASSWORD_CHANGE": "1970-01-01T00:00:00Z", + "PASSWORD": "", + "PASSWORD_HISTORY": [], + "SALT": "", + "SECRET": { + "algorithm": 0, + "configuration": 0, + "iv": "", + "value": "" + }, + "TWO_FACTOR_AUTHENTICATION_ENABLED": false + }, + "__SystemGuest": { + "ALGORITHM": 0, + "ENABLED": true, + "LAST_PASSWORD_CHANGE": "1970-01-01T00:00:00Z", + "PASSWORD": "", + "PASSWORD_HISTORY": [], + "SALT": "", + "SECRET": { + "algorithm": 0, + "configuration": 0, + "iv": "", + "value": "" + }, + "TWO_FACTOR_AUTHENTICATION_ENABLED": false + }, + "__SystemUser": { + "ALGORITHM": 0, + "ENABLED": true, + "LAST_PASSWORD_CHANGE": "1970-01-01T00:00:00Z", + "PASSWORD": "", + "PASSWORD_HISTORY": [], + "SALT": "", + "SECRET": { + "algorithm": 0, + "configuration": 0, + "iv": "", + "value": "" + }, + "TWO_FACTOR_AUTHENTICATION_ENABLED": false + } + } +} \ No newline at end of file diff --git a/Server/TcHmiUserManagement/TcHmiUserManagement.Config.remote.json b/Server/TcHmiUserManagement/TcHmiUserManagement.Config.remote.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/Server/TcHmiUserManagement/TcHmiUserManagement.Config.remote.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Server/TcHmiUserManagement/TcHmiUserManagement.Storage.json b/Server/TcHmiUserManagement/TcHmiUserManagement.Storage.json new file mode 100644 index 0000000..4c336fa --- /dev/null +++ b/Server/TcHmiUserManagement/TcHmiUserManagement.Storage.json @@ -0,0 +1,4 @@ +{ + "configVersion": "1.0.1.5", + "guid": "2E0817F0-DE05-42ED-BAFA-552D96B07127" +} \ No newline at end of file diff --git a/Themes/Base-Dark/Base-Dark.theme b/Themes/Base-Dark/Base-Dark.theme new file mode 100644 index 0000000..ccbc3b3 --- /dev/null +++ b/Themes/Base-Dark/Base-Dark.theme @@ -0,0 +1,3 @@ +{ + "$schema": "./../../../Infineon/Packages/Beckhoff.TwinCAT.HMI.Framework.14.3.360/runtimes/native1.12-tchmi/Schema/ThemeDescription.Schema.json" +} \ No newline at end of file diff --git a/Themes/Base-Dark/Base-DarkStyle.css b/Themes/Base-Dark/Base-DarkStyle.css new file mode 100644 index 0000000..1417ac6 --- /dev/null +++ b/Themes/Base-Dark/Base-DarkStyle.css @@ -0,0 +1,348 @@ +/** +* About font inclusion in TcHmi +* +* As a default we include Roboto Condensed (in Fonts folder) as a webfont which will render latin, greek, vietnamese, cyrillic glyphs. +* +* If Roboto does not render the glyphs we use some preinstalled fallback +* 'Microsoft YaHei' (Windows), 'Hiragino Sans GB' (macOS/iOS), 'Noto Sans CJK SC/TC' (Android), 'WenQuanYi Micro Hei' (Linux) renders chinese +* 'Meiryo' (Windows), 'Hiragino Kaku Gothic Pro' (macOS/iOS), 'Noto Sans CJK JP' (Android) renders japanese +* +* For other fonts you can add the woff files into the TcHmi project and +* add a @font-face section yourself. +* The noto family from Google tries to cover all of the world, is free to use and fits nicely with Roboto +* see https://fonts.google.com/noto and https://fonts.google.com/earlyaccess +* +* The font usage is defined in the main CSS file of the active theme (for example Themes/Base/Style.css). +*/ +html { + font-family: RobotoCondensed, 'Microsoft YaHei', '微软雅黑', 'Hiragino Sans GB', '冬青黑体', 'STXihei', '华文细黑', 'WenQuanYi Micro Hei', 'Meiryo', 'メイリオ', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ ProN', 'Noto Sans CJK SC', 'Noto Sans CJK TC', 'Noto Sans CJK JP', 'Noto Sans CJK KR', sans-serif; + font-size: 12px; + font-style: normal; + font-weight: normal; + width: 100%; + height: 100%; +} + +/* Is defined in html tag of runtime html only. */ +.tchmi-html-runtime { +} + +/* Is defined in body tag of runtime html only. */ +.tchmi-body-runtime { +} + +/* Views */ +div[data-tchmi-type="TcHmi.Controls.System.TcHmiView"] { + background: #353434; +} + +/** + * Splash Screen Dialog + */ +#tchmi-splash-container { + position: relative; + background-color: #353434; + overflow: auto; + display: flex; + color: black; +} + + +@media screen and (min-width: 800px) { + + @media screen and (min-height: 600px) { + + #tchmi-splash-container .tchmi-splash-content-container { + font-size: x-large; + width: 800px; + height: 600px; + position: relative; + left: 0px; + top: 0px; + right: 0px; + bottom: 0px; + margin: auto; + overflow: hidden; + background: url("Images/Splash-800x600.png"); + box-shadow: 0 0 12px 12px rgba(0, 0, 0, 0.12); + } + + #tchmi-splash-container .tchmi-splash-stage-progress-container { + position: absolute; + left: 362px; + top: 395px; + right: 0px; + bottom: 0px; + width: 412px; + background: #ccc; + height: 23px; + } + + #tchmi-splash-container .tchmi-splash-stage-progress { + width: 0%; + height: 100%; + background: #7493CC; + } + + #tchmi-splash-container .tchmi-splash-stage-info { + position: absolute; + left: 362px; + top: 418px; + right: 0px; + bottom: 0px; + width: 412px; + height: 23px; + font-size: 14px; + } + + #tchmi-splash-container .tchmi-splash-version-info { + position: absolute; + left: 5px; + top: 580px; + right: 0px; + bottom: 0px; + width: 412px; + height: 20px; + font-size: 12px; + } + } + + @media not screen and (min-height: 600px) { + + #tchmi-splash-container .tchmi-splash-content-container { + font-size: x-large; + width: 420px; + height: 200px; + position: relative; + left: 0px; + top: 0px; + right: 0px; + bottom: 0px; + margin: auto; + overflow: hidden; + background: url("Images/Splash-420x200.png"); + box-shadow: 0 0 12px 12px rgba(0, 0, 0, 0.12); + } + + #tchmi-splash-container .tchmi-splash-stage-progress-container { + position: absolute; + left: 160px; + top: 105px; + right: 0px; + bottom: 0px; + width: 240px; + background: #ccc; + height: 10px; + } + + #tchmi-splash-container .tchmi-splash-stage-progress { + width: 0%; + height: 100%; + background: #7493CC; + } + + #tchmi-splash-container .tchmi-splash-stage-info { + position: absolute; + left: 160px; + top: 115px; + right: 0px; + bottom: 0px; + width: 412px; + height: 23px; + font-size: 12px; + } + + #tchmi-splash-container .tchmi-splash-version-info { + position: absolute; + left: 5px; + top: 183px; + right: 0px; + bottom: 0px; + width: 412px; + height: 20px; + font-size: 10px; + } + } +} + +@media not screen and (min-width: 800px) { + + @media screen and (min-height: 534px) { + + #tchmi-splash-container .tchmi-splash-content-container { + font-size: x-large; + width: 320px; + height: 534px; + position: relative; + left: 0px; + top: 0px; + right: 0px; + bottom: 0px; + margin: auto; + overflow: hidden; + background: url("Images/Splash-320x534.png"); + box-shadow: 0 0 12px 12px rgba(0, 0, 0, 0.12); + } + + #tchmi-splash-container .tchmi-splash-stage-progress-container { + position: absolute; + left: 17px; + top: 455px; + right: 0px; + bottom: 0px; + width: 283px; + background: #ccc; + height: 20px; + } + + #tchmi-splash-container .tchmi-splash-stage-progress { + width: 0%; + height: 100%; + background: #7493CC; + } + + #tchmi-splash-container .tchmi-splash-stage-info { + position: absolute; + left: 17px; + top: 476px; + right: 0px; + bottom: 0px; + width: 283px; + height: 14px; + font-size: 12px; + } + + #tchmi-splash-container .tchmi-splash-version-info { + position: absolute; + left: 5px; + top: 518px; + right: 0px; + bottom: 0px; + width: 283px; + height: 20px; + font-size: 10px; + } + } + + @media not screen and (min-height: 534px) { + + #tchmi-splash-container .tchmi-splash-content-container { + font-size: x-large; + width: 420px; + height: 200px; + position: relative; + left: 0px; + top: 0px; + right: 0px; + bottom: 0px; + margin: auto; + overflow: hidden; + background: url("Images/Splash-420x200.png"); + box-shadow: 0 0 12px 12px rgba(0, 0, 0, 0.12); + } + + #tchmi-splash-container .tchmi-splash-stage-progress-container { + position: absolute; + left: 160px; + top: 105px; + right: 0px; + bottom: 0px; + width: 240px; + background: #ccc; + height: 10px; + } + + #tchmi-splash-container .tchmi-splash-stage-progress { + width: 0%; + height: 100%; + background: #7493CC; + } + + #tchmi-splash-container .tchmi-splash-stage-info { + position: absolute; + left: 160px; + top: 115px; + right: 0px; + bottom: 0px; + width: 412px; + height: 23px; + font-size: 12px; + } + + #tchmi-splash-container .tchmi-splash-version-info { + position: absolute; + left: 5px; + top: 183px; + right: 0px; + bottom: 0px; + width: 412px; + height: 20px; + font-size: 10px; + } + } +} + +/** +* View Loading Spinner +* Usage:

+*/ +:root { + --tchmi-view-loading-spinner-color: #4c6374; +} + +@keyframes tchmi-view-loading-spinner { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} + +.tchmi-view-loading-spinner-container { + display: none; /** DEBUG ONLY */ + position: relative; + width: 100%; + height: 100%; +} + +.tchmi-view-loading-spinner { + display: inline-block; + width: 64px; + height: 64px; + position: absolute; + left: 0px; + right: 0px; + top: 0px; + bottom: 0px; + margin: auto; + max-width: 100%; + max-height: 100%; + overflow: hidden; +} + + .tchmi-view-loading-spinner div { + box-sizing: border-box; + display: block; + position: absolute; + width: 51px; + height: 51px; + margin: 6px; + border: 6px solid var(--tchmi-view-loading-spinner-color); + border-radius: 50%; + animation: tchmi-view-loading-spinner 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite; + border-color: var(--tchmi-view-loading-spinner-color) transparent transparent transparent; + } + + .tchmi-view-loading-spinner div:nth-child(1) { + animation-delay: -0.45s; + } + + .tchmi-view-loading-spinner div:nth-child(2) { + animation-delay: -0.3s; + } + + .tchmi-view-loading-spinner div:nth-child(3) { + animation-delay: -0.15s; + } diff --git a/Themes/Base-Dark/Images/Splash-320x534.png b/Themes/Base-Dark/Images/Splash-320x534.png new file mode 100644 index 0000000000000000000000000000000000000000..b5f3856cd875fd8120d5dccb5929becb4a341de0 GIT binary patch literal 55635 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 literal 0 HcmV?d00001 diff --git a/Themes/Base-Dark/Images/Splash-420x200.png b/Themes/Base-Dark/Images/Splash-420x200.png new file mode 100644 index 0000000000000000000000000000000000000000..728a73b11669b2bee98cd98a0915143235b2febf GIT binary patch literal 30650 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%0A& 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 literal 0 HcmV?d00001 diff --git a/Themes/Base-Dark/Images/Splash-800x600.png b/Themes/Base-Dark/Images/Splash-800x600.png new file mode 100644 index 0000000000000000000000000000000000000000..c275126c8b603efdd2cb1f5a39e3162841c33d1a GIT binary patch literal 120944 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 T_mGPG00000NkvXXu0mjf`QDAS literal 0 HcmV?d00001 diff --git a/Themes/Base/Base.theme b/Themes/Base/Base.theme new file mode 100644 index 0000000..ccbc3b3 --- /dev/null +++ b/Themes/Base/Base.theme @@ -0,0 +1,3 @@ +{ + "$schema": "./../../../Infineon/Packages/Beckhoff.TwinCAT.HMI.Framework.14.3.360/runtimes/native1.12-tchmi/Schema/ThemeDescription.Schema.json" +} \ No newline at end of file diff --git a/Themes/Base/BaseStyle.css b/Themes/Base/BaseStyle.css new file mode 100644 index 0000000..b81476d --- /dev/null +++ b/Themes/Base/BaseStyle.css @@ -0,0 +1,347 @@ +/** +* About font inclusion in TcHmi +* +* As a default we include Roboto Condensed (in Fonts folder) as a webfont which will render latin, greek, vietnamese, cyrillic glyphs. +* +* If Roboto does not render the glyphs we use some preinstalled fallback +* 'Microsoft YaHei' (Windows), 'Hiragino Sans GB' (macOS/iOS), 'Noto Sans CJK SC/TC' (Android), 'WenQuanYi Micro Hei' (Linux) renders chinese +* 'Meiryo' (Windows), 'Hiragino Kaku Gothic Pro' (macOS/iOS), 'Noto Sans CJK JP' (Android) renders japanese +* +* For other fonts you can add the woff files into the TcHmi project and +* add a @font-face section yourself. +* The noto family from Google tries to cover all of the world, is free to use and fits nicely with Roboto +* see https://fonts.google.com/noto and https://fonts.google.com/earlyaccess +* +* The font usage is defined in the main CSS file of the active theme (for example Themes/Base/Style.css). +*/ +html { + font-family: RobotoCondensed, 'Microsoft YaHei', '微软雅黑', 'Hiragino Sans GB', '冬青黑体', 'STXihei', '华文细黑', 'WenQuanYi Micro Hei', 'Meiryo', 'メイリオ', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ ProN', 'Noto Sans CJK SC', 'Noto Sans CJK TC', 'Noto Sans CJK JP', 'Noto Sans CJK KR', sans-serif; + font-size: 12px; + font-style: normal; + font-weight: normal; + width: 100%; + height: 100%; +} + +/* Is defined in html tag of runtime html only. */ +.tchmi-html-runtime { +} + +/* Is defined in body tag of runtime html only. */ +.tchmi-body-runtime { +} + +/* Views */ +div[data-tchmi-type="TcHmi.Controls.System.TcHmiView"] { + background: #E3E6E9; +} + +/** + * Splash Screen Dialog + */ +#tchmi-splash-container { + position: relative; + background-color: #E3E6E9; + overflow: auto; + display: flex; +} + + +@media screen and (min-width: 800px) { + + @media screen and (min-height: 600px) { + + #tchmi-splash-container .tchmi-splash-content-container { + font-size: x-large; + width: 800px; + height: 600px; + position: relative; + left: 0px; + top: 0px; + right: 0px; + bottom: 0px; + margin: auto; + overflow: hidden; + background: url("Images/Splash-800x600.png"); + box-shadow: 0 0 12px 12px rgba(0, 0, 0, 0.12); + } + + #tchmi-splash-container .tchmi-splash-stage-progress-container { + position: absolute; + left: 362px; + top: 395px; + right: 0px; + bottom: 0px; + width: 412px; + background: #ccc; + height: 23px; + } + + #tchmi-splash-container .tchmi-splash-stage-progress { + width: 0%; + height: 100%; + background: #7493CC; + } + + #tchmi-splash-container .tchmi-splash-stage-info { + position: absolute; + left: 362px; + top: 418px; + right: 0px; + bottom: 0px; + width: 412px; + height: 23px; + font-size: 14px; + } + + #tchmi-splash-container .tchmi-splash-version-info { + position: absolute; + left: 5px; + top: 580px; + right: 0px; + bottom: 0px; + width: 412px; + height: 20px; + font-size: 12px; + } + } + + @media not screen and (min-height: 600px) { + + #tchmi-splash-container .tchmi-splash-content-container { + font-size: x-large; + width: 420px; + height: 200px; + position: relative; + left: 0px; + top: 0px; + right: 0px; + bottom: 0px; + margin: auto; + overflow: hidden; + background: url("Images/Splash-420x200.png"); + box-shadow: 0 0 12px 12px rgba(0, 0, 0, 0.12); + } + + #tchmi-splash-container .tchmi-splash-stage-progress-container { + position: absolute; + left: 160px; + top: 105px; + right: 0px; + bottom: 0px; + width: 240px; + background: #ccc; + height: 10px; + } + + #tchmi-splash-container .tchmi-splash-stage-progress { + width: 0%; + height: 100%; + background: #7493CC; + } + + #tchmi-splash-container .tchmi-splash-stage-info { + position: absolute; + left: 160px; + top: 115px; + right: 0px; + bottom: 0px; + width: 412px; + height: 23px; + font-size: 12px; + } + + #tchmi-splash-container .tchmi-splash-version-info { + position: absolute; + left: 5px; + top: 183px; + right: 0px; + bottom: 0px; + width: 412px; + height: 20px; + font-size: 10px; + } + } +} + +@media not screen and (min-width: 800px) { + + @media screen and (min-height: 534px) { + + #tchmi-splash-container .tchmi-splash-content-container { + font-size: x-large; + width: 320px; + height: 534px; + position: relative; + left: 0px; + top: 0px; + right: 0px; + bottom: 0px; + margin: auto; + overflow: hidden; + background: url("Images/Splash-320x534.png"); + box-shadow: 0 0 12px 12px rgba(0, 0, 0, 0.12); + } + + #tchmi-splash-container .tchmi-splash-stage-progress-container { + position: absolute; + left: 17px; + top: 455px; + right: 0px; + bottom: 0px; + width: 283px; + background: #ccc; + height: 20px; + } + + #tchmi-splash-container .tchmi-splash-stage-progress { + width: 0%; + height: 100%; + background: #7493CC; + } + + #tchmi-splash-container .tchmi-splash-stage-info { + position: absolute; + left: 17px; + top: 476px; + right: 0px; + bottom: 0px; + width: 283px; + height: 14px; + font-size: 12px; + } + + #tchmi-splash-container .tchmi-splash-version-info { + position: absolute; + left: 5px; + top: 518px; + right: 0px; + bottom: 0px; + width: 283px; + height: 20px; + font-size: 10px; + } + } + + @media not screen and (min-height: 534px) { + + #tchmi-splash-container .tchmi-splash-content-container { + font-size: x-large; + width: 420px; + height: 200px; + position: relative; + left: 0px; + top: 0px; + right: 0px; + bottom: 0px; + margin: auto; + overflow: hidden; + background: url("Images/Splash-420x200.png"); + box-shadow: 0 0 12px 12px rgba(0, 0, 0, 0.12); + } + + #tchmi-splash-container .tchmi-splash-stage-progress-container { + position: absolute; + left: 160px; + top: 105px; + right: 0px; + bottom: 0px; + width: 240px; + background: #ccc; + height: 10px; + } + + #tchmi-splash-container .tchmi-splash-stage-progress { + width: 0%; + height: 100%; + background: #7493CC; + } + + #tchmi-splash-container .tchmi-splash-stage-info { + position: absolute; + left: 160px; + top: 115px; + right: 0px; + bottom: 0px; + width: 412px; + height: 23px; + font-size: 12px; + } + + #tchmi-splash-container .tchmi-splash-version-info { + position: absolute; + left: 5px; + top: 183px; + right: 0px; + bottom: 0px; + width: 412px; + height: 20px; + font-size: 10px; + } + } +} + +/** +* View Loading Spinner +* Usage:
+*/ +:root { + --tchmi-view-loading-spinner-color: #4c6374; +} + +@keyframes tchmi-view-loading-spinner { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} + +.tchmi-view-loading-spinner-container { + display: none; /** DEBUG ONLY */ + position: relative; + width: 100%; + height: 100%; +} + +.tchmi-view-loading-spinner { + display: inline-block; + width: 64px; + height: 64px; + position: absolute; + left: 0px; + right: 0px; + top: 0px; + bottom: 0px; + margin: auto; + max-width: 100%; + max-height: 100%; + overflow: hidden; +} + + .tchmi-view-loading-spinner div { + box-sizing: border-box; + display: block; + position: absolute; + width: 51px; + height: 51px; + margin: 6px; + border: 6px solid var(--tchmi-view-loading-spinner-color); + border-radius: 50%; + animation: tchmi-view-loading-spinner 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite; + border-color: var(--tchmi-view-loading-spinner-color) transparent transparent transparent; + } + + .tchmi-view-loading-spinner div:nth-child(1) { + animation-delay: -0.45s; + } + + .tchmi-view-loading-spinner div:nth-child(2) { + animation-delay: -0.3s; + } + + .tchmi-view-loading-spinner div:nth-child(3) { + animation-delay: -0.15s; + } diff --git a/Themes/Base/Images/Splash-320x534.png b/Themes/Base/Images/Splash-320x534.png new file mode 100644 index 0000000000000000000000000000000000000000..b5f3856cd875fd8120d5dccb5929becb4a341de0 GIT binary patch literal 55635 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 literal 0 HcmV?d00001 diff --git a/Themes/Base/Images/Splash-420x200.png b/Themes/Base/Images/Splash-420x200.png new file mode 100644 index 0000000000000000000000000000000000000000..728a73b11669b2bee98cd98a0915143235b2febf GIT binary patch literal 30650 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%0A& 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 literal 0 HcmV?d00001 diff --git a/Themes/Base/Images/Splash-800x600.png b/Themes/Base/Images/Splash-800x600.png new file mode 100644 index 0000000000000000000000000000000000000000..c275126c8b603efdd2cb1f5a39e3162841c33d1a GIT binary patch literal 120944 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 T_mGPG00000NkvXXu0mjf`QDAS literal 0 HcmV?d00001 diff --git a/packages.config b/packages.config new file mode 100644 index 0000000..57434c3 --- /dev/null +++ b/packages.config @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/packages.xsd b/packages.xsd new file mode 100644 index 0000000..feb55a7 --- /dev/null +++ b/packages.xsd @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..289c428 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,27 @@ +{ + "$schema": "http://json.schemastore.org/tsconfig", + "compileOnSave": true, + "compilerOptions": { + "module": "none", + "target": "ES2022", + "skipLibCheck": true, + "lib": [ "DOM", "DOM.Iterable", "ES2023" ], + "types": [], + "declaration": true, + "sourceMap": true, + "noEmitOnError": true, + "noImplicitAny": false, + "noImplicitThis": true, + "strictNullChecks": true, + "noImplicitReturns": true, + "strictFunctionTypes": false, + "strictPropertyInitialization": false, + "alwaysStrict": false + }, + "exclude": [ + "bin/" + ], + "include": [ + "../Infineon/Packages/Beckhoff.TwinCAT.HMI.Framework.14.3.360/runtimes/native1.12-tchmi/TcHmi.d.ts" + ] +} diff --git a/tsconfig.tpl.json b/tsconfig.tpl.json new file mode 100644 index 0000000..a108020 --- /dev/null +++ b/tsconfig.tpl.json @@ -0,0 +1,27 @@ +{ + "$schema": "http://json.schemastore.org/tsconfig", + "compileOnSave": true, + "compilerOptions": { + "module": "none", + "target": "ES2022", + "skipLibCheck": true, + "lib": [ "DOM", "DOM.Iterable", "ES2023" ], + "types": [], + "declaration": true, + "sourceMap": true, + "noEmitOnError": true, + "noImplicitAny": false, + "noImplicitThis": true, + "strictNullChecks": true, + "noImplicitReturns": true, + "strictFunctionTypes": false, + "strictPropertyInitialization": false, + "alwaysStrict": false + }, + "exclude": [ + "$(Output).Path/" + ], + "include": [ + "$(Beckhoff.TwinCAT.HMI.Framework).InstallPath/TcHmi.d.ts" + ] +}