From ee02b95f4da7afb1411c225396a6541a61cabef8 Mon Sep 17 00:00:00 2001 From: zhongjin Date: Sat, 22 Sep 2018 07:55:32 +0800 Subject: [PATCH] Initial commit --- .gitignore | 2 + .npmignore | 3 + .travis.yml | 6 + Gruntfile.js | 212 ++ LICENSE | 22 + README.md | 48 + admin/material.png | Bin 0 -> 1554 bytes img/widgets.png | Bin 0 -> 27466 bytes io-package.json | 78 + package.json | 52 + tasks/jscs.js | 17 + tasks/jscsRules.js | 36 + tasks/jshint.js | 17 + test/testPackageFiles.js | 47 + widgets/material.html | 229 ++ widgets/material/css/material.css | 2244 +++++++++++++++++ widgets/material/css/style.css | 34 + widgets/material/img/fts_door.png | Bin 0 -> 1980 bytes widgets/material/img/fts_door_open.png | Bin 0 -> 2630 bytes widgets/material/img/fts_shutter_00.png | Bin 0 -> 2017 bytes widgets/material/img/fts_shutter_10.png | Bin 0 -> 2170 bytes widgets/material/img/fts_shutter_100.png | Bin 0 -> 3540 bytes widgets/material/img/fts_shutter_20.png | Bin 0 -> 2351 bytes widgets/material/img/fts_shutter_30.png | Bin 0 -> 2572 bytes widgets/material/img/fts_shutter_40.png | Bin 0 -> 2762 bytes widgets/material/img/fts_shutter_50.png | Bin 0 -> 2775 bytes widgets/material/img/fts_shutter_60.png | Bin 0 -> 2972 bytes widgets/material/img/fts_shutter_70.png | Bin 0 -> 3169 bytes widgets/material/img/fts_shutter_80.png | Bin 0 -> 3357 bytes widgets/material/img/fts_shutter_90.png | Bin 0 -> 3533 bytes widgets/material/img/fts_window_1w.png | Bin 0 -> 1892 bytes widgets/material/img/fts_window_1w_open.png | Bin 0 -> 3015 bytes widgets/material/img/fts_window_1w_tilt.png | Bin 0 -> 3463 bytes widgets/material/img/fts_window_2w.png | Bin 0 -> 2017 bytes widgets/material/img/fts_window_2w_open.png | Bin 0 -> 2907 bytes .../material/img/fts_window_2w_tilt_lr.png | Bin 0 -> 3713 bytes widgets/material/img/humid_humidity.png | Bin 0 -> 8971 bytes widgets/material/img/license.txt | 2 + widgets/material/img/light_light_dim_00.png | Bin 0 -> 4187 bytes widgets/material/img/light_light_dim_10.png | Bin 0 -> 4299 bytes widgets/material/img/light_light_dim_100.png | Bin 0 -> 5198 bytes widgets/material/img/light_light_dim_20.png | Bin 0 -> 4403 bytes widgets/material/img/light_light_dim_30.png | Bin 0 -> 4519 bytes widgets/material/img/light_light_dim_40.png | Bin 0 -> 4667 bytes widgets/material/img/light_light_dim_50.png | Bin 0 -> 4775 bytes widgets/material/img/light_light_dim_60.png | Bin 0 -> 4883 bytes widgets/material/img/light_light_dim_70.png | Bin 0 -> 4975 bytes widgets/material/img/light_light_dim_80.png | Bin 0 -> 5045 bytes widgets/material/img/light_light_dim_90.png | Bin 0 -> 5122 bytes widgets/material/img/temp_temperature.png | Bin 0 -> 2681 bytes widgets/material/js/material.js | 274 ++ 51 files changed, 3323 insertions(+) create mode 100644 .gitignore create mode 100644 .npmignore create mode 100644 .travis.yml create mode 100644 Gruntfile.js create mode 100644 LICENSE create mode 100644 README.md create mode 100644 admin/material.png create mode 100644 img/widgets.png create mode 100644 io-package.json create mode 100644 package.json create mode 100644 tasks/jscs.js create mode 100644 tasks/jscsRules.js create mode 100644 tasks/jshint.js create mode 100644 test/testPackageFiles.js create mode 100644 widgets/material.html create mode 100644 widgets/material/css/material.css create mode 100644 widgets/material/css/style.css create mode 100644 widgets/material/img/fts_door.png create mode 100644 widgets/material/img/fts_door_open.png create mode 100644 widgets/material/img/fts_shutter_00.png create mode 100644 widgets/material/img/fts_shutter_10.png create mode 100644 widgets/material/img/fts_shutter_100.png create mode 100644 widgets/material/img/fts_shutter_20.png create mode 100644 widgets/material/img/fts_shutter_30.png create mode 100644 widgets/material/img/fts_shutter_40.png create mode 100644 widgets/material/img/fts_shutter_50.png create mode 100644 widgets/material/img/fts_shutter_60.png create mode 100644 widgets/material/img/fts_shutter_70.png create mode 100644 widgets/material/img/fts_shutter_80.png create mode 100644 widgets/material/img/fts_shutter_90.png create mode 100644 widgets/material/img/fts_window_1w.png create mode 100644 widgets/material/img/fts_window_1w_open.png create mode 100644 widgets/material/img/fts_window_1w_tilt.png create mode 100644 widgets/material/img/fts_window_2w.png create mode 100644 widgets/material/img/fts_window_2w_open.png create mode 100644 widgets/material/img/fts_window_2w_tilt_lr.png create mode 100644 widgets/material/img/humid_humidity.png create mode 100644 widgets/material/img/license.txt create mode 100644 widgets/material/img/light_light_dim_00.png create mode 100644 widgets/material/img/light_light_dim_10.png create mode 100644 widgets/material/img/light_light_dim_100.png create mode 100644 widgets/material/img/light_light_dim_20.png create mode 100644 widgets/material/img/light_light_dim_30.png create mode 100644 widgets/material/img/light_light_dim_40.png create mode 100644 widgets/material/img/light_light_dim_50.png create mode 100644 widgets/material/img/light_light_dim_60.png create mode 100644 widgets/material/img/light_light_dim_70.png create mode 100644 widgets/material/img/light_light_dim_80.png create mode 100644 widgets/material/img/light_light_dim_90.png create mode 100644 widgets/material/img/temp_temperature.png create mode 100644 widgets/material/js/material.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2307702 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/node_modules +/nbproject \ No newline at end of file diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000..d00629d --- /dev/null +++ b/.npmignore @@ -0,0 +1,3 @@ +Gruntfile.js +tasks +node_modules \ No newline at end of file diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..3c0252b --- /dev/null +++ b/.travis.yml @@ -0,0 +1,6 @@ +os: + - linux +language: node_js +node_js: + - '4' + - '8' diff --git a/Gruntfile.js b/Gruntfile.js new file mode 100644 index 0000000..6aaee37 --- /dev/null +++ b/Gruntfile.js @@ -0,0 +1,212 @@ +// To use this file in WebStorm, right click on the file name in the Project Panel (normally left) and select "Open Grunt Console" + +/** @namespace __dirname */ +/* jshint -W097 */// jshint strict:false +/*jslint node: true */ +"use strict"; + +module.exports = function (grunt) { + + var srcDir = __dirname + '/'; + var pkg = grunt.file.readJSON('package.json'); + var iopackage = grunt.file.readJSON('io-package.json'); + var version = (pkg && pkg.version) ? pkg.version : iopackage.common.version; + var newname = grunt.option('name'); + var author = grunt.option('author') || 'nisiode'; + var email = grunt.option('email') || 'email@mail.com'; + var fs = require('fs'); + + // check arguments + if (process.argv[2] == 'rename') { + console.log('Try to rename to "' + newname + '"'); + if (!newname) { + console.log('Please write the new material name, like: "grunt rename --name=mywidgetset" --author="Author Name"'); + process.exit(); + } + if (newname.indexOf(' ') != -1) { + console.log('Name may not have space in it.'); + process.exit(); + } + if (newname.toLowerCase() != newname) { + console.log('Name must be lower case.'); + process.exit(); + } + if (fs.existsSync(__dirname + '/admin/material.png')) { + fs.renameSync(__dirname + '/admin/material.png', __dirname + '/admin/' + newname + '.png'); + } + if (fs.existsSync(__dirname + '/widgets/material.html')) { + fs.renameSync(__dirname + '/widgets/material.html', __dirname + '/widgets/' + newname + '.html'); + } + if (fs.existsSync(__dirname + '/widgets/material/js/material.js')) { + fs.renameSync(__dirname + '/widgets/material/js/material.js', __dirname + '/widgets/material/js/' + newname + '.js'); + } + if (fs.existsSync(__dirname + '/widgets/material')) { + fs.renameSync(__dirname + '/widgets/material', __dirname + '/widgets/' + newname); + } + } + + // Project configuration. + grunt.initConfig({ + pkg: pkg, + + replace: { + version: { + options: { + patterns: [ + { + match: /version: *"[\.0-9]*"/, + replacement: 'version: "' + version + '"' + }, + { + match: /"version": *"[\.0-9]*",/g, + replacement: '"version": "' + version + '",' + }, + { + match: /version: *"[\.0-9]*",/g, + replacement: 'version: "' + version + '",' + } + ] + }, + files: [ + { + expand: true, + flatten: true, + src: [ + srcDir + 'package.json', + srcDir + 'io-package.json' + ], + dest: srcDir + }, + { + expand: true, + flatten: true, + src: [ + srcDir + 'widgets/' + pkg.name.substring('yunkong2.vis-'.length) + '.html' + ], + dest: srcDir + 'widgets' + } + ] + }, + name: { + options: { + patterns: [ + { + match: /material/g, + replacement: newname + }, + { + match: /Material/g, + replacement: newname ? (newname[0].toUpperCase() + newname.substring(1)) : 'Material' + }, + { + match: /nisiode/g, + replacement: author + }, + { + match: /email@mail.com/g, + replacement: email + } + ] + }, + files: [ + { + expand: true, + flatten: true, + src: [ + srcDir + 'io-package.json', + srcDir + 'LICENSE', + srcDir + 'package.json', + srcDir + 'README.md', + srcDir + 'io-package.json', + srcDir + 'Gruntfile.js' + ], + dest: srcDir + }, + { + expand: true, + flatten: true, + src: [ + srcDir + 'widgets/' + newname +'.html' + ], + dest: srcDir + 'widgets' + }, + { + expand: true, + flatten: true, + src: [ + srcDir + 'admin/index.html' + ], + dest: srcDir + 'admin' + }, + { + expand: true, + flatten: true, + src: [ + srcDir + 'widgets/' + newname + '/js/' + newname +'.js' + ], + dest: srcDir + 'widgets/' + newname + '/js' + }, + { + expand: true, + flatten: true, + src: [ + srcDir + 'widgets/' + newname + '/css/*.css' + ], + dest: srcDir + 'widgets/' + newname + '/css' + } + ] + } + }, + // Javascript code styler + jscs: require(__dirname + '/tasks/jscs.js'), + // Lint + jshint: require(__dirname + '/tasks/jshint.js'), + + http: { + get_hjscs: { + options: { + url: 'https://raw.githubusercontent.com/yunkong2/yunkong2.js-controller/master/tasks/jscs.js' + }, + dest: 'tasks/jscs.js' + }, + get_jshint: { + options: { + url: 'https://raw.githubusercontent.com/yunkong2/yunkong2.js-controller/master/tasks/jshint.js' + }, + dest: 'tasks/jshint.js' + }, + get_jscsRules: { + options: { + url: 'https://raw.githubusercontent.com/yunkong2/yunkong2.js-controller/master/tasks/jscsRules.js' + }, + dest: 'tasks/jscsRules.js' + } + } + }); + + grunt.loadNpmTasks('grunt-replace'); + grunt.loadNpmTasks('grunt-contrib-jshint'); + grunt.loadNpmTasks('grunt-jscs'); + grunt.loadNpmTasks('grunt-http'); + + grunt.registerTask('default', [ + 'http', + 'replace:version', + 'jshint', + 'jscs' + ]); + + grunt.registerTask('prepublish', [ + 'http', + 'replace:version' + ]); + + grunt.registerTask('p', [ + 'http', + 'replace:version' + ]); + + grunt.registerTask('rename', [ + 'replace:name' + ]); +}; diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..19aaa0e --- /dev/null +++ b/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015, nisiode + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/README.md b/README.md new file mode 100644 index 0000000..0bae79b --- /dev/null +++ b/README.md @@ -0,0 +1,48 @@ +![Logo](admin/material.png) +# yunkong2.vis-material +============ + +[![NPM version](http://img.shields.io/npm/v/yunkong2.vis-material.svg)](https://www.npmjs.com/package/yunkong2.vis-material) +[![Downloads](https://img.shields.io/npm/dm/yunkong2.vis-material.svg)](https://www.npmjs.com/package/yunkong2.vis-material) +[![Travis-CI](http://img.shields.io/travis/nisiode/yunkong2.vis-material/master.svg)](https://travis-ci.org/nisiode/yunkong2.vis-material) + +[![NPM](https://nodei.co/npm/yunkong2.vis-material.png?downloads=true)](https://nodei.co/npm/yunkong2.vis-material/) + + +material - Material widgets for yunkong2.vis. + +You can read instructions in material.js, material.html files + +These widgets are in addition to the material design style of Uhula, which you can find here: +https://github.com/Uhula/yunkong2-Material-Design-Style + + +![Example](img/widgets.png) + + +## Changelog + +### 0.1.5 (2018-07-11) +- (pix) feat: new window shutter widget + +### 0.1.4 (2018-07-10) +- (pix) feat: new humidity widget + +### 0.1.3 (2018-01-21) +- (nisio) feat: new dimmer widget + +### 0.1.2 (2018-01-20) +- (nisio) feat: switch added to light widget + +### 0.1.1 (2018-01-14) +- (nisio) feat: temperature and light widget + +### 0.1.0 (2018-01-13) +- (nisio) Initial version for public testing (includes css from material design styles V1.8) + +### 0.0.1 (2018-01-01) +- (nisio) Initial version for internal testing + +## License + Copyright (c) 2018-2018 nisiode + MIT diff --git a/admin/material.png b/admin/material.png new file mode 100644 index 0000000000000000000000000000000000000000..44bd77c035aaaf63c22c074a63ec740d0a12747f GIT binary patch literal 1554 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½kz$ycAifVLAE4BpjpBJWRXV?v8n`wV z>J(L}?6^yM_2dN!%enZxftRN;v!IWTv#H+nQfah5@A*qRUE;{>)Gv1z-u*!>oDXCN z=g>d;9YbG8EQcyR(Gk$*nE;{m9QGb10)W0$NDj8)IH1qIMQ6%E`m{yef)5B0qTlYZ zuFQBHcE8^3T?K>uEtH~aV^c^nCTJ(97nIK~bUt*e#%UX9FCHb7-weDpcI2Yuw~|Ls z<_qCl6G|b32mWCEJdozO^UaGtBZP{jt$&JQv97yyb8?`PW$W*wZCgV#a=5(t-6jcc z0L4H^ZNCRWi)=zDr(SilFC};QSQ6CGNnw6D&bUn3O zd}Ntmuv&8xW6_J34KwV1Gdn<05*0`{@@ zL-^)eTY#EkH^E)D-=fAtr{qw^c%SpjhN&M|lE#SRD%M?Swt%q|;*3b?yL(>b$RhmKWoK2&kYq z-7I$vflO>Y&l5Zh z(?g-Io;_jxkB&Ey0tso-GpENKwLX2i8~5JoBUPr!7VCGRYFF9_QK<5PBwy8TEbC*P zP!*)5h87WyxHaidwwXZ>tvPr-nuOQ1e;@`+sq)(5bCI7F3$M zxtnuFCG`ffjwndJoND-Nw~BWA6iJuR^$YFtt0=v5E~2;>s#lzbW^RWHTKl8z6OmuV z6)17v?%QK{W?X9Jig9p|NMNHPXp~dOJ2~XLW(t-gA}R?;A^yPP{J=DPnFm=nfKRXZ zS}P7s=S?m1P&aS|9DW$OiXa$X5^MNp1+Z!(IU5jQeRSceVUhoM>+@Uv-tET8;20ZO zHo)_z@xdJt`1%q}H z#(XX;2=U9!GcNSnqc^%Y?rD7P74Dg0$Z3HWaG$v{5xj z+EOQFGA+jL1#nBYmq62*)cg6=ZzdhyF6LLoCEupjG+1SHIsj9|S&o3VZjFx>yHX6q zXAb$TMpHxBGoX=Yvh6>OdVM`8y^obXy+0>`$(<2Hosd@*Q7%0msa974=V&&(!SJZw zg8y0D-5)BDk4#rsQL!d(%wB_Hlw~DC!)VFN%m1)(CW%I4Hlf;-v!Q(xq7h(y zUNf&p@Y9b^{$fN!gtyRie)mCO**uSBlYx^aB9%nUWjGTBOu~)MsTwfAPOn`m+T4)g zCh1cH)}qV9hxP{a2OSq@_TLmW?fe9y%_mymJine2HK^nep5f6k+qniG{t@x>=MM%! zA&B=%)(WM)fg-3egK8~PL?}=dE&KzRmn3(%t^W_cvFTrFf5;N_Kl{ok#Th5zqR0W; Wp)kwmmhC9`bH?D@i5z`m$iD%M3dwK) literal 0 HcmV?d00001 diff --git a/io-package.json b/io-package.json new file mode 100644 index 0000000..6c12941 --- /dev/null +++ b/io-package.json @@ -0,0 +1,78 @@ +{ + "common": { + "name": "vis-material", + "version": "0.1.5", + "news": { + "0.1.5": { + "en": "feat: new window shutter widget", + "de": "feat: neues Fenster-Rollladen widget", + "ru": "feat: new window shutter widget" + }, + "0.1.4": { + "en": "feat: new humidity widget", + "de": "feat: neues Luftfeuchte widget", + "ru": "feat: new humidity widget" + }, + "0.1.3": { + "en": "feat: new dimmer widget", + "de": "feat: new dimmer widget", + "ru": "feat: new dimmer widget" + }, + "0.1.2": { + "en": "feat: switch added to light widget", + "de": "feat: switch added to light widget", + "ru": "feat: switch added to light widget" + }, + "0.1.1": { + "en": "feat: temperature and light widget", + "de": "feat: temperature and light widget", + "ru": "feat: temperature and light widget" + }, + "0.1.0": { + "en": "feat: include material css from uhula", + "de": "feat: include material css from uhula", + "ru": "feat: include material css from uhula" + }, + "0.0.1": { + "en": "initial adapter", + "de": "Initiale Version", + "ru": "Первоначальный адаптер", + "pt": "Versão inicial", + "fr": "Version initiale", + "nl": "Eerste release" + } + }, + "title": "material widgets", + "desc": { + "en": "material Widgets for yunkong2.vis", + "de": "material Widgets für yunkong2.vis", + "ru": "material Widgets для yunkong2.vis", + "pt": "molde de Widgets para o yunkong2.vis", + "fr": "modèle de Widgets pour yunkong2.vis", + "nl": "sjabloon widgets voor yunkong2.vis" + }, + "platform": "Javascript/Node.js", + "icon": "material.png", + "enabled": true, + "mode": "once", + "extIcon": "https://git.spacen.net/nisiode/yunkong2.vis-material/raw/master/admin/material.png", + "keywords": ["material", "vis", "GUI", "graphical", "scada"], + "readme": "https://github.com/nisiode/yunkong2.vis-material/blob/master/README.md", + "authors": [ + "nisiode " + ], + "localLink": "%web_protocol%://%ip%:%web_port%/vis/edit.html", + "license": "MIT", + "dependencies": ["vis"], + "onlyWWW": true, + "noConfig": true, + "singleton": true, + "type": "visualization-widgets", + "restartAdapters": ["vis"] + }, + "native": { + "dependencies": [] + }, + "instanceObjects": [ + ] +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..8c98b73 --- /dev/null +++ b/package.json @@ -0,0 +1,52 @@ +{ + "name": "yunkong2.vis-material", + "description": "material widgets for yunkong2.vis", + "version": "0.1.5", + "author": { + "name": "nisiode", + "email": "nisio.air@gmail.com" + }, + "contributors": [ + "nisiode ", + "pix " + ], + "homepage": "https://github.com/nisiode/yunkong2.vis-material.git", + "repository": { + "type": "git", + "url": "https://github.com/nisiode/yunkong2.vis-material.git" + }, + "licenses": [ + { + "type": "MIT", + "url": "https://github.com/nisiode/yunkong2.vis-material/blob/master/LICENSE" + } + ], + "keywords": [ + "yunkong2", + "GUI", + "material vis" + ], + "devDependencies": { + "grunt": "^0.4.5", + "grunt-cli": "^1.2.0", + "grunt-contrib-clean": "^0.6.0", + "grunt-contrib-compress": "^0.13.0", + "grunt-contrib-copy": "^0.8.0", + "grunt-contrib-jshint": "^0.11.3", + "grunt-exec": "^0.4.6", + "grunt-http": "^1.6.0", + "grunt-jscs": "^2.8.0", + "grunt-replace": "^0.9.3", + "mocha": "^4.1.0", + "chai": "^4.1.2" + }, + "bugs": { + "url": "https://github.com/nisiode/yunkong2.vis-material/issues" + }, + "readmeFilename": "README.md", + "main": "widgets/material.html", + "scripts": { + "test": "node node_modules/mocha/bin/mocha --exit" + }, + "license": "MIT" +} diff --git a/tasks/jscs.js b/tasks/jscs.js new file mode 100644 index 0000000..588b6f2 --- /dev/null +++ b/tasks/jscs.js @@ -0,0 +1,17 @@ +var srcDir = __dirname + "/../"; + +module.exports = { + all: { + src: [ + srcDir + "*.js", + srcDir + "lib/*.js", + srcDir + "adapter/example/*.js", + srcDir + "tasks/**/*.js", + srcDir + "www/**/*.js", + '!' + srcDir + "www/lib/**/*.js", + '!' + srcDir + 'node_modules/**/*.js', + '!' + srcDir + 'adapter/*/node_modules/**/*.js' + ], + options: require('./jscsRules.js') + } +}; \ No newline at end of file diff --git a/tasks/jscsRules.js b/tasks/jscsRules.js new file mode 100644 index 0000000..ded301d --- /dev/null +++ b/tasks/jscsRules.js @@ -0,0 +1,36 @@ +module.exports = { + force: true, + "requireCurlyBraces": ["else", "for", "while", "do", "try", "catch"], /*"if",*/ + "requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch"], + "requireSpaceBeforeBlockStatements": true, + "requireParenthesesAroundIIFE": true, + "disallowSpacesInFunctionDeclaration": {"beforeOpeningRoundBrace": true}, + "disallowSpacesInNamedFunctionExpression": {"beforeOpeningRoundBrace": true}, + "requireSpacesInFunctionExpression": {"beforeOpeningCurlyBrace": true}, + "requireSpacesInAnonymousFunctionExpression": {"beforeOpeningRoundBrace": true, "beforeOpeningCurlyBrace": true}, + "requireSpacesInNamedFunctionExpression": {"beforeOpeningCurlyBrace": true}, + "requireSpacesInFunctionDeclaration": {"beforeOpeningCurlyBrace": true}, + "disallowMultipleVarDecl": true, + "requireBlocksOnNewline": true, + "disallowEmptyBlocks": true, + "disallowSpacesInsideObjectBrackets": true, + "disallowSpacesInsideArrayBrackets": true, + "disallowSpaceAfterObjectKeys": true, + "disallowSpacesInsideParentheses": true, + "requireCommaBeforeLineBreak": true, + //"requireAlignedObjectValues": "all", + "requireOperatorBeforeLineBreak": ["?", "+", "-", "/", "*", "=", "==", "===", "!=", "!==", ">", ">=", "<", "<="], +// "disallowLeftStickedOperators": ["?", "+", "/", "*", "=", "==", "===", "!=", "!==", ">", ">=", "<", "<="], +// "requireRightStickedOperators": ["!"], +// "requireSpaceAfterBinaryOperators": ["?", "+", "/", "*", ":", "=", "==", "===", "!=", "!==", ">", ">=", "<", "<="], + //"disallowSpaceAfterBinaryOperators": [","], + "disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~", "!"], + "disallowSpaceBeforePostfixUnaryOperators": ["++", "--"], + "requireSpaceBeforeBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="], + "requireSpaceAfterBinaryOperators": ["?", ">", ",", ">=", "<=", "<", "+", "-", "/", "*", "=", "==", "===", "!=", "!=="], + //"validateIndentation": 4, + //"validateQuoteMarks": { "mark": "\"", "escape": true }, + "disallowMixedSpacesAndTabs": true, + "disallowKeywordsOnNewLine": ["else", "catch"] + +}; diff --git a/tasks/jshint.js b/tasks/jshint.js new file mode 100644 index 0000000..f823ebc --- /dev/null +++ b/tasks/jshint.js @@ -0,0 +1,17 @@ +var srcDir = __dirname + "/../"; + +module.exports = { + options: { + force: true + }, + all: [ + srcDir + "*.js", + srcDir + "lib/*.js", + srcDir + "adapter/example/*.js", + srcDir + "tasks/**/*.js", + srcDir + "www/**/*.js", + '!' + srcDir + "www/lib/**/*.js", + '!' + srcDir + 'node_modules/**/*.js', + '!' + srcDir + 'adapter/*/node_modules/**/*.js' + ] +}; \ No newline at end of file diff --git a/test/testPackageFiles.js b/test/testPackageFiles.js new file mode 100644 index 0000000..a85d1e3 --- /dev/null +++ b/test/testPackageFiles.js @@ -0,0 +1,47 @@ +/* jshint -W097 */ +/* jshint strict:false */ +/* jslint node: true */ +/* jshint expr: true */ +var expect = require('chai').expect; +var fs = require('fs'); + +describe('Test package.json and io-package.json', function() { + it('Test package files', function (done) { + var fileContentIOPackage = fs.readFileSync(__dirname + '/../io-package.json'); + var ioPackage = JSON.parse(fileContentIOPackage); + + var fileContentNPMPackage = fs.readFileSync(__dirname + '/../package.json'); + var npmPackage = JSON.parse(fileContentNPMPackage); + + expect(ioPackage).to.be.an('object'); + expect(npmPackage).to.be.an('object'); + + expect(ioPackage.common.version).to.exist; + expect(npmPackage.version).to.exist; + + if (!expect(ioPackage.common.version).to.be.equal(npmPackage.version)) { + console.log('ERROR: Version numbers in package.json and io-package.json differ!!'); + } + + if (!ioPackage.common.news || !ioPackage.common.news[ioPackage.common.version]) { + console.log('WARNING: No news entry for current version exists in io-package.json, no rollback in Admin possible!'); + } + + expect(ioPackage.common.authors).to.exist; + if (ioPackage.common.name.indexOf('template') !== 0) { + if (Array.isArray(ioPackage.common.authors)) { + expect(ioPackage.common.authors.length).to.not.be.equal(0); + if (ioPackage.common.authors.length === 1) { + expect(ioPackage.common.authors[0]).to.not.be.equal('my Name '); + } + } + else { + expect(ioPackage.common.authors).to.not.be.equal('my Name '); + } + } + else { + console.log('Testing for set authors field in io-package skipped because template adapter'); + } + done(); + }); +}); diff --git a/widgets/material.html b/widgets/material.html new file mode 100644 index 0000000..cdc29db --- /dev/null +++ b/widgets/material.html @@ -0,0 +1,229 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/widgets/material/css/material.css b/widgets/material/css/material.css new file mode 100644 index 0000000..171ffa7 --- /dev/null +++ b/widgets/material/css/material.css @@ -0,0 +1,2244 @@ +/* ----- + Material Design CSS for yunkong2.vis + (c) 2017 Uhula, MIT License + https://github.com/Uhula/yunkong2-Material-Design-Style + ----- + V1.8 04.01.2018 + + mdui-(color)-glow für red, yellow, blue und green hinzugefügt + o der active-State der Buttons in tnav/bnav wird nun mit box-shadow + statt border gezeichnet + + V1.7 22.12.2017 + + mdui-state: Anzeige von Textstati mit Vorder-/Hintergrundfarbe (basic ValueList HTML) + + mdui-cols-X: Grid-System (152px) für responsive design + o mdui-raisedbutton, mdui-flatbutton Texte werden nun horz/vert zentriert + + V1.6 16.10.2017 + o mdui-dialog z-index korrigiert, damit Dialoge auch im yunkong2 fullscreen Mode sichtbar sind + + V1.5 11.10.2017 + + mdui-table-xxxx hinzu, fertig + + V1.3 24.09.2017 + + mdui-transparent-acc für mdui-slider hinzu + + mdui-(color)-acc für input mit btn + + mdui-slider ohne focus-Rahmen + + Designtime: bei [Mouse-down] > 3 Sek alle Widgets mit einem Rahmen versehen und die ID anzeigen + + Designtime: bei [Mouse-over] > 0.5 Sek das Widget mit einem Rahmen versehen und die ID anzeigen + + V1.2 19.09.2017 + + mdui-select hinzu + o mdui-input angepasst + o mdui-flash/blink/pulse mit filter:drop-shadow (not IE Browser!) + o mdui-(color) für input/select ermöglicht + + V1.0 01.09.2017 + ----- */ + +/* ----- + Generell + ----- */ + +/* nur zur Laufzeit anwenden, nicht im Editor */ +.mdui-runtime .mdui-hide { + display:none !important; +} + +.mdui-toggle img { + transition: transform 0.3s ease; +} + +.mdui-toggle.ui-state-active img { + transform: rotate(180deg); +} + +.mdui-float { + position:relative !important; + left:auto !important; + top:auto !important; + float: left !important; +} + +.mdui-float-right { + float: right !important; +} + + +.vis-view, +.vis-view .ui-widget { + font-family: Roboto, Arial; + font-size: 16px !important; + color:#ffffff; +} + +.vis_container_edit>.vis-view { + background:#000; + color:#ffffff; + font-family: Roboto, Arial; + font-size: 16px !important; +} + + + +/* ----- + application bar + ----- */ + +.mdui-abar { + background:#1A237E !important; + + z-index:99; + border:none !important; +} +.mdui-abar .vis-view{ + background:none !important; +} + +/* ----- + top navigation + ----- */ +.mdui-tnav { + background:#1A237E !important; + + border:none !important; + z-index:98; + box-shadow:0px 2px 4px 0px rgba(0,0,0,0.85); + overflow-y:hidden !important; + overflow-x:auto !important; +} +.mdui-tnav .vis-view { + background:none !important; +} + +/* ----- + content + ----- */ +.mdui-content { + background:#303030 !important; + overflow-y:auto !important; + overflow-x:auto !important; +} + +/* ----- + bottom navigation + ----- */ +.mdui-bnav { + background:#1A237E !important; + z-index:98; + border:none; + box-shadow:0px -2px 4px -1px rgba(0,0,0,0.8); +} +.mdui-bnav .vis-view { + background:none !important; +} + +/* ----- + left navigation + ----- +// Binden des click() Events an den #vis_container mit der Delegation +// für die mdui-l/rbar Klassen. Ein direktes Binding funktioniert durch +// den view-Aufbau nicht, da dieses Script dann beim zurück-Navigieren +// nicht mehr aufgerufen wird. +setTimeout(function () { + // click-Event für das left-nav Element zum Öffnen + $("#vis_container").on( "click", ".mdui-lnavbutton", function() { + $( ".mdui-lnav" ).addClass( "mdui-lnav-open" ); + } ); + // click-Event für die left-nav zum Schließen + $("#vis_container").on( "click", ".mdui-lnav", function() { + $( ".mdui-lnav" ).removeClass( "mdui-lnav-open" ); + } ); + + // click-Event für das right-nav Element zum Öffnen + $("#vis_container").on( "click", ".mdui-rnavbutton", function() { + $( ".mdui-rnav" ).addClass( "mdui-rnav-open" ); + } ); + // click-Event für die right-nav zum Schließen + $("#vis_container").on( "click", ".mdui-rnav", function() { + $( ".mdui-rnav" ).removeClass( "mdui-rnav-open" ); + } ); +}, 1000); +*/ + +.mdui-lnav { + background: #283593 !important; +} + +.mdui-runtime .mdui-lnav { + position: absolute !important; + top: 0px !important; + left: 0px !important; + width: 0px !important; + height: 100% !important; + background: #283593 !important; + border:none !important; + z-index:200; + overflow-x:hidden; + overflow-y:auto; + box-shadow: 0 10px 20px rgba(0,0,0,0.39), 0 6px 6px rgba(0,0,0,0.43); +} + +.mdui-runtime .mdui-lnav.mdui-lnav-open { + transition: width 0.5s ease; + width: 288px !important; +} + +/* zum Abfangen der click-Events zum Schließen den ganzen Bildschirm + trabnsparent überlagern */ +.mdui-runtime .mdui-lnav.mdui-lnav-open:before { + position:fixed; + content:""; + left:0px; + top:0px; + height:100%; + width:100%; + background: rgba(0,0,0,0.3) !important; +} + + +/* ----- + right navigation + ----- */ + +.mdui-rnav { + background: #283593 !important; +} +.mdui-runtime .mdui-rnav { + position: absolute !important; + top: 0 !important; + left: 100% !important; + width: 0 !important; + height: 100% !important; + background: #283593 !important; + border:none !important; + z-index:200; + box-shadow: 0 10px 20px rgba(0,0,0,0.39), 0 6px 6px rgba(0,0,0,0.43); + overflow-x:hidden; + overflow-y:auto; +} + +.mdui-runtime .mdui-rnav.mdui-rnav-open { + transition: all 0.5s ease; + width: 288px !important; + left: calc(100% - 288px) !important; +} + +/* zum Abfangen der click-Events zum Schließen den ganzen Bildschirm + trabnsparent überlagern */ +.mdui-runtime .mdui-rnav.mdui-rnav-open:before { + position:fixed; + content:""; + left:0px; + top:0px; + height:100%; + width:100%; + background: rgba(0,0,0,0.3) !important; +} + +/* +13er Raster, 52er Block, 156er Col +---------------------------------- + 1 col 156 + 2 cols 312 320 + 3 cols 468 480 + 4 cols 624 640 + 5 cols 780 800 + 6 cols 936 960 + 7 cols 1092 1120 + 8 cols 1248 1280 + 9 cols 1404 1440 +10 cols 1560 1600 +*/ + +@media (min-width: 0px) { + .mdui-cols-1, + .mdui-cols-2, + .mdui-cols-3, + .mdui-cols-4, + .mdui-cols-5, + .mdui-cols-6, + .mdui-cols-7, + .mdui-cols-8, + .mdui-cols-9, + .mdui-cols-10 { width:calc(100% - 8px) !important; margin:4px !important; } + + .mdui-cols-1.mdui-card, + .mdui-cols-2.mdui-card, + .mdui-cols-3.mdui-card, + .mdui-cols-4.mdui-card, + .mdui-cols-5.mdui-card, + .mdui-cols-6.mdui-card, + .mdui-cols-7.mdui-card, + .mdui-cols-8.mdui-card, + .mdui-cols-9.mdui-card, + .mdui-cols-10.mdui-card { width:calc(100% - 8px) !important; } +} +@media (min-width: 360px) { + .mdui-cols-1, + .mdui-cols-1.mdui-card { width:calc(50% - 8px) !important; } +} +@media (min-width: 480px) { + .mdui-cols-1, + .mdui-cols-1.mdui-card { width:calc(33.3% - 8px) !important; } + .mdui-cols-2, + .mdui-cols-2.mdui-card { width:calc(66.6% - 8px) !important; } +} + +@media (min-width: 640px) { + .mdui-cols-1, + .mdui-cols-1.mdui-card { width:calc(25% - 8px) !important; } + .mdui-cols-2, + .mdui-cols-2.mdui-card { width:calc(50% - 8px) !important; } + .mdui-cols-3, + .mdui-cols-3.mdui-card { width:calc(75% - 8px) !important; } +} +@media (min-width: 960px) { + .mdui-cols-1, + .mdui-cols-1.mdui-card { width:calc(16.6% - 8px) !important; } + .mdui-cols-2, + .mdui-cols-2.mdui-card { width:calc(33.3% - 8px) !important; } + .mdui-cols-3, + .mdui-cols-3.mdui-card { width:calc(50% - 8px) !important; } + .mdui-cols-4, + .mdui-cols-4.mdui-card { width:calc(66.6% - 8px) !important; } + .mdui-cols-5, + .mdui-cols-5.mdui-card { width:calc(83.3% - 8px) !important; } +} +@media (min-width: 1280px) { + .mdui-cols-1, + .mdui-cols-1.mdui-card { width:calc(12.5% - 8px) !important; } + .mdui-cols-2, + .mdui-cols-2.mdui-card { width:calc(25% - 8px) !important; } + .mdui-cols-3, + .mdui-cols-3.mdui-card { width:calc(37.5% - 8px) !important; } + .mdui-cols-4, + .mdui-cols-4.mdui-card { width:calc(50% - 8px) !important; } + .mdui-cols-5, + .mdui-cols-5.mdui-card { width:calc(62.5% - 8px) !important; } + .mdui-cols-6, + .mdui-cols-6.mdui-card { width:calc(75% - 8px) !important; } + .mdui-cols-7, + .mdui-cols-7.mdui-card { width:calc(87.5% - 8px) !important; } +} + +@media (min-width: 1560px) { + .mdui-cols-1, + .mdui-cols-1.mdui-card { width:calc(10% - 8px) !important; } + .mdui-cols-2, + .mdui-cols-2.mdui-card { width:calc(20% - 8px) !important; } + .mdui-cols-3, + .mdui-cols-3.mdui-card { width:calc(30% - 8px) !important; } + .mdui-cols-4, + .mdui-cols-4.mdui-card { width:calc(40% - 8px) !important; } + .mdui-cols-5, + .mdui-cols-5.mdui-card { width:calc(50% - 8px) !important; } + .mdui-cols-6, + .mdui-cols-6.mdui-card { width:calc(60% - 8px) !important; } + .mdui-cols-7, + .mdui-cols-7.mdui-card { width:calc(70% - 8px) !important; } + .mdui-cols-8, + .mdui-cols-8.mdui-card { width:calc(80% - 8px) !important; } + .mdui-cols-9, + .mdui-cols-9.mdui-card { width:calc(90% - 8px) !important; } +} + + +/* ----- + Buttons + ----- */ +.mdui-input .ui-button, +.mdui-flatbutton, +.mdui-flatbutton .ui-button, +.mdui-flatbutton a, +.mdui-flatbutton div, +.mdui-flatbutton button { + background:none !important; + border:none !important; + color:#FFFFFF !important; + font-size:1em !important; + font-weight: normal !important; + border-radius:2px !important; +} + +.mdui-flatbutton, +.mdui-flatbutton * { + color:#2196F3 !important; +} + +.mdui-flatbutton.mdui-center .vis-widget-body { + display:flex; + justify-content: center; + align-items: center; +} + +.mdui-runtime.mdui-notouch .mdui-flatbutton:hover { + box-shadow: 0 0 0 1000px rgba(255,255,255,0.2) inset; + transition: all 0.3s ease; +} + +.mdui-flatbutton .vis-widget-body, +.mdui-flatbutton .vis-widget-body * { + display:flex; + align-items: center; +} + +.mdui-center-vertical .vis-widget-body { + display:flex; + align-items: center; +} +.mdui-center-horizontal .vis-widget-body { + display:flex; + justify-content: center; +} + + +/* Minimum width: 88dp Height: 36dp +Normal color: 500 Pressed color: 700 +Disabled text: 30% #FFFFFF Disabled button: 12% #FFFFFF +*/ +.mdui-raisedbutton { + font-size:1em !important; + background: #212121 !important; + border:none !important; + border-radius:2px !important; +} + +.mdui-raisedbutton .vis-widget-body { + display:flex; + justify-content: center; + align-items: center; +} + + +.mdui-raisedbutton { + box-shadow: 0 1px 3px rgba(0,0,0,0.27), 0 1px 2px rgba(0,0,0,0.54); +} + +.mdui-runtime.mdui-notouch .mdui-raisedbutton:hover { + box-shadow: 0 0 0 1000px rgba(255,255,255,0.2) inset; + transition: all 0.3s ease; +} + +.mdui-raisedbutton a, +.mdui-raisedbutton div, +.mdui-raisedbutton .ui-button { + color:#ffffff !important; + background: none !important; + border:none !important; + font-weight: normal !important; +} + + +/* floating button */ +.mdui-floatingbutton { + background: #212121 !important; + position: fixed !important; + z-index:1000; + border-radius:50% !important; + box-shadow: 0 10px 20px rgba(0,0,0,0.49), 0 6px 6px rgba(0,0,0,0.53); + border:none !important; +} + +.mdui-floatingbutton * { + background: none !important; + border:none !important; + color:#ffffff !important; +} + +.mdui-floatingbutton.ui-button { + padding:12px !important; +} + +.mdui-runtime.mdui-notouch .mdui-floatingbutton:hover { + box-shadow: 0 0 0 1000px rgba(255,255,255,0.2) inset; + transition: all 0.3s ease; +} + + +/* ----- + Buttons in AppBar / Tabs / BottomNavigation + ----- */ +.mdui-tnav .mdui-flatbutton, +.mdui-bnav .mdui-flatbutton { + padding-left:6px !important; + padding-right:6px !important; + z-index:100; +} + +.mdui-tnav .mdui-flatbutton .vis-widget-body, +.mdui-bnav .mdui-flatbutton .vis-widget-body { + display:flex; + width:100%; + height:100%; + justify-content: center; + align-items: center; +} + +.mdui-tnav .mdui-flatbutton, +.mdui-tnav .mdui-flatbutton *, +.mdui-bnav .mdui-flatbutton, +.mdui-bnav .mdui-flatbutton * { + background:none !important; + border:none !important; + border-radius:0px !important; + color:rgba(255,255,255,1) !important; + font-size:1em !important; + font-weight:normal !important; +} + +.mdui-tnav .mdui-flatbutton, +.mdui-bnav .mdui-flatbutton { + opacity:0.689; +} + +.mdui-tnav .mdui-flatbutton.ui-state-active, +.mdui-tnav .mdui-flatbutton.ui-state-active *, +.mdui-bnav .mdui-flatbutton.ui-state-active, +.mdui-bnav .mdui-flatbutton.ui-state-active *{ + color: #FFFFFF !important; + opacity:1; +} + +.mdui-tnav .mdui-flatbutton { + border-bottom:3px solid rgba(0,0,0,0) !important; +} + +.mdui-bnav .mdui-flatbutton { + border-top:3px solid rgba(0,0,0,0) !important; +} + + +.mdui-tnav .mdui-flatbutton.ui-state-active { + box-shadow: inset 0px -3px 0px 0px #FFFFFF; +} + +.mdui-bnav .mdui-flatbutton.ui-state-active { + box-shadow: inset 0px 3px 0px 0px #FFFFFF; +} + +.mdui-runtime.mdui-notouch .mdui-tnav .mdui-flatbutton:hover, +.mdui-runtime.mdui-notouch .mdui-bnav .mdui-flatbutton:hover { + opacity:1; +} + + + + + +/* ----- + Cards + ----- */ +.mdui-card { + background: #424242; + box-shadow: 0 0 0 1px rgba(255,255,255,0.025) inset, 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); + border-radius:2px; + z-index:0; + margin:4px; +} + +.mdui-card.mdui-title:after { + content:""; + position:absolute; + left:0; + top:0; + width:100%; + height:50px; + background: rgba(0,0,0,0.2); +} + + +/* ----- + Tiles + ----- */ +.mdui-tile { + background: #424242; + border-radius:0px; + z-index:0; +} + +.mdui-tile:not([class*='mdui-cols']) { + box-shadow:-1px -1px 0px 0px rgba(0,0,0,0.75) inset; +} + +.mdui-tile.mdui-title:after { + content:""; + position:absolute; + left:0; + top:0; + width:100%; + height:50px; + background: rgba(0,0,0,0.2); +} + +/* ----- + tables + ----- + HMTL-Tabellen (tables), die mit mdui-table versehen werden, können in zwei + Arten angezeigt werden: (a) als normale Table und (b) als responsive Table, + wobei aus Zeile dann Cards/Tiles werden und aus Spalten dann Zeilen. + + mdui-table-bordered + mdui-table-striped + + mdui-table-response-(width)-(type)[-w(colwidth)][-c(colcount)][-l] + (width) = 0000 .. 9999 + (type) = card | tile | list + (colwidth) = 0000 .. 9999 + (colcount) = 0 .. 99 + + + + +*/ +.mdui-table, +.mdui-table table { + border-collapse: collapse; +} + +.mdui-table tr th { + color:#ffffff; + opacity:0.54 !important; + font-weight:normal; + font-size:0.8em; + padding:6px; + border-bottom: 1px solid rgba(255,255,255,0.1); +} +.mdui-table.mdui-table-bordered tr th { + border-bottom-width: 2px; +} +.mdui-table.mdui-table-striped tr:nth-child(even) { + box-shadow:0 0px 0px 1000px rgba(255,255,255,0.05) inset; +} + +.mdui-table tr td { + padding:6px; + color:#ffffff; +} +.mdui-table.mdui-table-bordered tr td { + border-bottom: 1px solid rgba(255,255,255,0.1); +} + +/* responsive: cards or tiles */ + +.mdui-table.mdui-table-card, +.mdui-table.mdui-table-tile, +.mdui-table.mdui-table-list { + display: block; +} +.mdui-table.mdui-table-card thead, +.mdui-table.mdui-table-tile thead, +.mdui-table.mdui-table-list thead { + display: none; +} + +.mdui-table.mdui-table-card tbody, +.mdui-table.mdui-table-tile tbody, +.mdui-table.mdui-table-list tbody{ + display: block; + width:100%; +} + +.mdui-table.mdui-table-card tbody tr, +.mdui-table.mdui-table-tile tbody tr, +.mdui-table.mdui-table-list tbody tr{ + display: block; + border:none; + padding: 6px; + overflow: hidden; +} +.mdui-table.mdui-table-card tbody tr td, +.mdui-table.mdui-table-tile tbody tr td, +.mdui-table.mdui-table-list tbody tr td { + display: block; + padding:0; + padding-bottom:4px; + border-bottom-width: 0px; +} +.mdui-table.mdui-table-card tbody tr td:before, +.mdui-table.mdui-table-tile tbody tr td:before, +.mdui-table.mdui-table-list tbody tr td:before { + color:#ffffff; + display:block; + font-size:9pt; + content: attr(label) attr(labelth); + opacity:0.7; +} + +/* table-card */ +.mdui-table.mdui-table-card tbody tr { + margin:4px; + float:left; + box-shadow: + 0 0px 0px 1000px rgba(255,255,255,0.1) inset, + 0 0 0 1px rgba(255,255,255,0.025) inset, + 0 3px 6px rgba(0,0,0,0.36), + 0 3px 6px rgba(0,0,0,0.43); + border-radius:2px; +} +.mdui-table.mdui-table-card.mdui-table-striped tr:nth-child(even) { + box-shadow: + 0 0px 0px 1000px rgba(255,255,255,0.2) inset, + 0 0 0 1px rgba(255,255,255,0.025) inset, + 0 3px 6px rgba(0,0,0,0.36), + 0 3px 6px rgba(0,0,0,0.43); +} + +/* table-tile */ +.mdui-table.mdui-table-tile tbody tr { + margin-top: 2px; + margin-left: 2px; + float:left; + box-shadow: + 0 0px 0px 1000px rgba(255,255,255,0.1) inset, + 0 0px 0px 1px rgba(255,255,255,0.025) inset; +} +.mdui-table.mdui-table-tile.mdui-table-striped tr:nth-child(even) { + box-shadow: + 0 0px 0px 1000px rgba(255,255,255,0.2) inset, + 0 0px 0px 1px rgba(255,255,255,0.025) inset; +} + +/* table-list */ +.mdui-table.mdui-table-list tbody tr { + padding:8px 8px 4px 8px; +} +.mdui-table.mdui-table-list:not(.mdui-table-striped) tbody tr { + box-shadow: + 0 1px 0px 0px rgba(255,255,255,0.5); +} +.mdui-table.mdui-table-list.mdui-table-striped tr:nth-child(even) { + box-shadow: + 0 0px 0px 1000px rgba(255,255,255,0.1) inset; +} +.mdui-table.mdui-table-list tbody tr td:first-child { + font-weight:bold; +} +.mdui-table.mdui-table-list tbody tr td:first-child:before { + display:none; +} +.mdui-table.mdui-table-list tbody tr td:not(:first-child) { + padding-left:16px; +} + + +/* ------ + Labels + ------ */ +.mdui-title { + z-index:2; + color: rgba(255,255,255,1) !important; + font-size: 1.1em !important; + text-shadow:none !important; + letter-spacing: 0px !important; + width:auto; + height:auto; + opacity:0.9; +} + +.mdui-subtitle { + z-index:2; + color: rgba(255,255,255,1); + font-size: 0.8em; + text-shadow:none !important; + letter-spacing: 0px !important; + width:auto; + height:auto; + opacity:0.5; +} + +.mdui-label { + z-index:2; + color:rgba(255,255,255,1) !important; + font-weight:normal !important; + font-size:0.9em !important; + text-shadow:none !important; + letter-spacing: 0px !important; + width:auto; + height:auto; + opacity:0.7; +} + +.mdui-value { + z-index:2; + color:rgba(255,255,255,1) !important; + font-weight:bold !important; + font-size:1em !important; + text-shadow:none !important; + letter-spacing: 0px !important; + width:auto; + height:auto; + opacity:1; +} + +/* ------ + States + ------ */ +.mdui-state { + z-index:2; + color:rgba(255,255,255,1) !important; + font-weight:bold !important; + font-size:1em !important; + text-shadow:none !important; + letter-spacing: 0px !important; + width:auto; + height:auto; + border-radius:2em; + overflow:visible; +} + +.mdui-state .vis-widget-body div { + width:100%; + height:100%; +} + +.mdui-state .vis-widget-body div * { + /*background:rgba(0,0,0,0.01);*/ + border-radius:2em; + display:flex; + align-items: center; + width:100%; + height:100%; + /*box-shadow: inset 0 0 0 1px rgba(0,0,0,0.05);*/ +} + +/* horizontal zentrieren */ +.mdui-state .vis-widget-body div *[class*='-bg'] { + justify-content: center; +} + + +/* ----- + input + ----- +
+
+ + + Stk + +
+
+*/ + +.mdui-input { + color:rgba(255,255,255,0.7) !important; + z-index:2; + font-weight:normal !important; + text-align: left !important; + letter-spacing: 0px !important; +} + +.mdui-input label { + font-size:0.9em; +} + + +.mdui-input input[type="text"] { + border-bottom : 2px solid rgba(255,255,255,0.54) !important; + color : rgba(255,255,255,1) !important; + background: rgba(0,0,0,0) !important; + height:calc(100% - 2px) !important; + border-radius:0px !important; + margin:0px !important; + padding:0px !important; + _line-height:2em !important; + _min-height:0px !important; +} + +.mdui-input input[type="button"] { + top:-2px; + color: #2196F3 !important; +} + +.mdui-runtime.mdui-notouch .mdui-input input[type="text"]:hover, +.mdui-input input[type="text"]:focus { + border-bottom-color : #2196F3 !important; + box-shadow: 0 0 0 1000px rgba(255,255,255,0.2) inset; + transition: all 0.3s ease; +} +/* ----- + select + ----- +*/ + +.mdui-select { + z-index:2; + font-weight:normal !important; + text-shadow:none !important; + text-align: left !important; + letter-spacing: 0px !important; +} + +.mdui-select select { + color : rgba(255,255,255,1); + height:100% !important; + font-size:1em !important; + background: rgba(0,0,0,0); + border: none; + outline: none; + border-bottom : 2px solid rgba(255,255,255,0.54); + width:100%; +} + +.vis_container_edit .mdui-select select { + pointer-events: none; +} + +.mdui-select select option { + background: #212121 !important; + font-weight:normal !important; + font-size:1.5em !important; +} + +.mdui-select:before { + position: absolute; + top: calc(50% - 0.22em); + right: 0.22em; + width: 0px; + height: 0px; + padding: 0px; + content: ""; + border-left: .4em solid transparent; + border-right: .4em solid transparent; + border-top: .4em solid #FFFFFF; + pointer-events: none; +} + +.mdui-runtime.mdui-notouch .mdui-select select:hover, +.mdui-select select:focus { + border-bottom-color : #2196F3; + box-shadow: 0 0 0 1000px rgba(255,255,255,0.2) inset; + transition: all 0.3s ease; +} + + + +/* ----- + Slider + ----- +Der folgende CSS Code wandelt das jqui Control "Slider" +so um, dass es sich im Stil eines Slider Controls im Material Design +zeigt und so bedienbar ist. + +
+
+ +
+
+*/ + + +.mdui-slider { + overflow:hidden; + padding:0px !important; +} + +.mdui-slider .ui-slider { + border:none !important; + z-index:2; + padding:0px !important; + margin:0px !important; + background:none !important; +} + +.mdui-slider .ui-slider-horizontal { + top:calc(50% - 8px); + height:16px !important; + width:calc(100% - 16px) !important; + left:0px !important; +} + +.mdui-slider .ui-slider-horizontal:before { + content: ""; + position: absolute; + top: calc(50% - 2px); + left: 0px; + width: calc(100% + 20px); + height: 4px; + background:#ffffff !important; + border-radius: 2px; + pointer-events: none; +} + +.mdui-slider .ui-slider-vertical { + left:calc(50% - 8px) !important; + width:16px !important; + height:calc(100% - 16px) !important; + top:16px !important; +} +.mdui-slider .ui-slider-vertical:before { + content: ""; + position: absolute; + left: calc(50% - 2px); + top: -16px; + width: 4px; + height: calc(100% + 16px); + background:#ffffff !important; + border-radius: 2px; + pointer-events: none; +} + + +.mdui-slider .ui-slider-handle { + padding:0px !important; + margin:0px !important; + width:16px !important; + height:16px !important; + background: #ffffff !important; + border:none !important; + border-radius: 50% !important; + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.27), + 0 2px 2px 0 rgba(0, 0, 0, 0.27), + 0 1px 5px 0 rgba(0, 0, 0, 0.54); +} + +.mdui-slider .ui-slider-handle:focus { + outline: none; +} +.mdui-notouch .mdui-slider .ui-slider-handle:focus { + box-shadow: 0 0 4px 2px rgba(33,150,243,0.39), 0 10px 20px rgba(33,150,243,0.39), 0 6px 6px rgba(33,150,243,0.43); +} + +.mdui-slider .ui-slider-horizontal .ui-slider-handle:before { + content: ""; + position: absolute; + top: calc(50% - 2px); + left: 100%; + width: 1000px; + height: 4px; + background:rgba(0,0,0,.5) !important; + border-radius: 2px; + pointer-events: none; +} +.mdui-slider .ui-slider-vertical .ui-slider-handle:before { + content: ""; + position: absolute; + left: calc(50% - 2px); + top: -1000px; + width: 4px; + height: 1000px; + background:rgba(0,0,0,.7) !important; + border-radius: 2px; + pointer-events: none; +} + +.mdui-slider .ui-slider-horizontal .ui-slider-handle { + top:calc(50% - 8px) !important; +} + +.mdui-slider .ui-slider-vertical .ui-slider-handle { + left:calc(50% - 8px) !important; +} + +.mdui-runtime.mdui-notouch .mdui-slider:hover { + box-shadow: 0 0 0 1000px rgba(255,255,255,0.2) inset; + border-radius:2px; + transition: all 0.3s ease; +} + + + +/* ----- + Radio Buttons + ----- */ +.mdui-radio { + z-index:2; +} + +.mdui-radio.mdui-vertical td { +display: block; +} + +.mdui-radio *[id*="_radio"] { + background:none !important; + border:none !important; + color:rgba(0,0,0,1) !important; +} +.mdui-radio *[id*="_radio"] * { + padding-top:2px !important; + padding-bottom:2px !important; + padding-left:4px !important; + padding-right:4px !important; + font-size:1em; + font-weight:bold; +} +.mdui-radio *[id*="_radio"] label { + background:none !important; + border:none !important; + color:rgba(255,255,255,0.87) !important; + border-radius:0px; + border-bottom:2px solid rgba(0,0,0,0) !important; +} +.mdui-radio *[id*="_radio"] label.ui-state-active { + border-bottom-color:#2196F3 !important; + color:#2196F3 !important; +} +.mdui-runtime.mdui-notouch .mdui-radio *[id*="_radio"] label:hover { + box-shadow: 0 0 0 1000px rgba(255,255,255,0.2) inset; + border-radius:2px; + transition: all 0.3s ease; +} + +/* Radiobuttons vertikal darstellen */ +.mdui-radio.mdui-vertical td { + display: block; +} + + +/* ----- + Switch + ----- +*/ +.mdui-switch { + z-index:2; + xheight:36px; + xwidth:48px; + xpadding:6px; +} + + +.mdui-switch input[type="checkbox"] { + display: none; +} + +.mdui-switch input[type="checkbox"]~label { + position: relative; + display: inline-block; + cursor: pointer; + z-index:2; + height:100%; + width:100%; +} +.mdui-switch input[type="checkbox"]~label:before, +.mdui-switch input[type="checkbox"]~label:after { + content: ""; + position: absolute; + outline: 0; + top: 50%; + -ms-transform: translate(0, -50%); + -webkit-transform: translate(0, -50%); + transform: translate(0, -50%); + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; +} +.mdui-switch input[type="checkbox"]~label:before { + left: 0px; + width: 48px; + height: 16px; + background-color: #808080; + border-radius: 100px; +} + +.mdui-switch input[type="checkbox"]~label:after { + left: 0px; + width: 24px; + height: 24px; + background-color: #c0c0c0; + border-radius: 50%; + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.27), + 0 2px 2px 0 rgba(0, 0, 0, 0.27), + 0 1px 5px 0 rgba(0, 0, 0, 0.54); +} +.mdui-runtime.mdui-notouch .mdui-switch:hover { + box-shadow: 0 0 0 1000px rgba(255,255,255,0.2) inset; + border-radius:2px; + transition: all 0.3s ease; +} + +.mdui-switch input[type="checkbox"]:checked~label:before { + background-color: #1E88E5; +} + + +.mdui-switch input[type="checkbox"]:checked~label:after { + background-color: #2196F3 ; + -ms-transform: translate(100%, -50%); + -webkit-transform: translate(100%, -50%); + transform: translate(100%, -50%); +} + + + + +/* ----- + Dialog + ----- */ +.mdui-runtime .ui-dialog { + box-shadow: 0 0 0 1px rgba(0,0,0,0.3), 0 14px 28px rgba(0,0,0,0.65), 0 10px 10px rgba(0,0,0,0.62); + border:none; + background:#303030; + border-radius:2px; + position:absolute; + z-index: 2147483647 !important; +} + +.mdui-runtime .ui-dialog .vis-view { + border:none !important; + background:none !important; + color: #ffffff !important; +} + + +.mdui-runtime .ui-dialog .ui-widget-content { + padding:0px; + margin:0px; +} + +.mdui-runtime .ui-dialog .ui-widget-header { + border:none; + background:none; +} + +.mdui-runtime .ui-dialog .ui-widget-header .ui-button { + border:none !important; + background:none !important; + color: #ffffff !important; +} + + +/* ----- + DatePicker + ----- */ +.ui-datepicker { + background: #303030 !important; + color: rgba(255,255,255,0.87) !important; + box-shadow: 0 0 0 1px rgba(0,0,0,0.3), 0 14px 28px rgba(0,0,0,0.65), 0 10px 10px rgba(0,0,0,0.62); + border:none; + border-radius:2px; +} + +.ui-datepicker-header, +.ui-datepicker td, +.ui-datepicker td a { + background: #303030 !important; + color: rgba(255,255,255,0.87) !important; + border:none !important; +} + +.mdui-runtime.mdui-notouch .ui-datepicker td a:hover { + box-shadow: 0 0 0 1000px rgba(255,255,255,0.2) inset; + transition: all 0.3s ease; +} + +.ui-datepicker td a.ui-state-active { + color: rgba(0,255,0,1) !important; +} +.ui-datepicker td a.ui-state-highlight { + color: rgba(255,0,0,1) !important; +} + +.ui-datepicker th { + color: rgba(255,255,255,0.54) !important; +} + +.ui-datepicker button { + background: #303030 !important; + border:none !important; + color: rgba(255,255,0,1) !important; +} + + + +/* ----- + Mediaqueries + ----- +*/ + +.mdui-show480 { + display:none !important; +} +@media screen and (max-width: 480px) { + .mdui-hide480 { + display:none !important; + } + .mdui-show480 { + display:initial !important; + } +} + +/* ----- + script + ----- + Zur Laufzeit verstecken, im Design-Mode anzeigen +*/ + +.mdui-script { + display:none; +} + +.vis_container_edit .mdui-script { + display:initial; + background: rgba(255,0,0,0.5) !important; + color: #ffffff; +} + +/* ----- + glow + ----- */ +.mdui-red-glow { + filter: drop-shadow(0px 0px 2px #F44336) drop-shadow(0px 0px 2px #F44336) drop-shadow(0px 0px 4px #F44336); +} +.mdui-yellow-glow { + filter: drop-shadow(0px 0px 2px #FFDB3B) drop-shadow(0px 0px 2px #FFDB3B) drop-shadow(0px 0px 4px #FFDB3B); +} +.mdui-blue-glow { + filter: drop-shadow(0px 0px 2px #2B95F3) drop-shadow(0px 0px 2px #2B95F3) drop-shadow(0px 0px 4px #2B95F3) +} +.mdui-green-glow { + filter: drop-shadow(0px 0px 2px #4CAF50) drop-shadow(0px 0px 2px #4CAF50) drop-shadow(0px 0px 4px #4CAF50) +} + +/* ----- + flash + ----- */ +.mdui-red-flash { + animation: mdui-red-flash-ani 1s linear infinite; +} +@keyframes mdui-red-flash-ani { + 0%, + 10% {filter: drop-shadow(0px 0px 4px #F44336) drop-shadow(0px 0px 4px #F44336) drop-shadow(0px 0px 4px #F44336); + } + 11% { filter:none; } +} +.mdui-yellow-flash { + animation: mdui-yellow-flash-ani 1s linear infinite; +} +@keyframes mdui-yellow-flash-ani { + 0%, + 10% {filter: drop-shadow(0px 0px 4px #FFDB3B) drop-shadow(0px 0px 4px #FFDB3B) drop-shadow(0px 0px 4px #FFDB3B); } + 11% { filter: none; } +} +.mdui-blue-flash { + animation: mdui-blue-flash-ani 1s linear infinite; +} +@keyframes mdui-blue-flash-ani { + 0%, + 10% {filter: drop-shadow(0px 0px 4px #2B95F3) drop-shadow(0px 0px 4px #2B95F3) drop-shadow(0px 0px 4px #2B95F3) } + 11% { filter: none; } +} +.mdui-green-flash { + animation: mdui-green-flash-ani 1s linear infinite; +} +@keyframes mdui-green-flash-ani { + 0%, + 10% {filter: drop-shadow(0px 0px 4px #4CAF50) drop-shadow(0px 0px 4px #4CAF50) drop-shadow(0px 0px 4px #4CAF50) } + 11% { filter: none; } +} + +/* ----- + blink + ----- */ + +.mdui-red-blink { + animation: mdui-red-blink-ani 1s linear infinite; +} +@keyframes mdui-red-blink-ani { + 0%,50% {filter: drop-shadow(0px 0px 4px #F44336) drop-shadow(0px 0px 4px #F44336) drop-shadow(0px 0px 4px #F44336); } + 51% {filter: none;} + +} +.mdui-yellow-blink { + animation: mdui-yellow-blink-ani 1s linear infinite; +} +@keyframes mdui-yellow-blink-ani { + 0%,50% {filter: drop-shadow(0px 0px 4px #FFDB3B) drop-shadow(0px 0px 4px #FFDB3B) drop-shadow(0px 0px 4px #FFDB3B); } + 51% {filter: none;} + +} +.mdui-blue-blink { + animation: mdui-blue-blink-ani 1s linear infinite; +} +@keyframes mdui-blue-blink-ani { + 0%,50% {filter: drop-shadow(0px 0px 4px #2B95F3) drop-shadow(0px 0px 4px #2B95F3) drop-shadow(0px 0px 4px #2B95F3); } + 51% {filter: none;} +} +.mdui-green-blink { + animation: mdui-green-blink-ani 1s linear infinite; +} +@keyframes mdui-green-blink-ani { + 0%,50% {filter: drop-shadow(0px 0px 4px #4CAF50) drop-shadow(0px 0px 4px #4CAF50) drop-shadow(0px 0px 4px #4CAF50); } + 51% {filter: none;} +} + +/* ----- + pulse + ----- */ +.mdui-red-pulse { + animation: mdui-red-pulse-ani 3s linear infinite; +} +@keyframes mdui-red-pulse-ani { + 50% {filter: drop-shadow(0px 0px 4px #F44336) drop-shadow(0px 0px 4px #F44336) drop-shadow(0px 0px 4px #F44336); } + 0%,100% {filter: drop-shadow(0px 0px 4px #F44336) ; } + +} +.mdui-yellow-pulse { + animation: mdui-yellow-pulse-ani 3s linear infinite; +} +@keyframes mdui-yellow-pulse-ani { + 50% {filter: drop-shadow(0px 0px 4px #FFDB3B) drop-shadow(0px 0px 4px #FFDB3B) drop-shadow(0px 0px 4px #FFDB3B); } + 0%,100% {filter: drop-shadow(0px 0px 4px #FFDB3B) } + +} +.mdui-blue-pulse { + animation: mdui-blue-pulse-ani 3s linear infinite; +} +@keyframes mdui-blue-pulse-ani { + 50% {filter: drop-shadow(0px 0px 4px #2B95F3) drop-shadow(0px 0px 4px #2B95F3) drop-shadow(0px 0px 4px #2B95F3); } + 0%,100% {filter: drop-shadow(0px 0px 4px #2B95F3); } + +} +.mdui-green-pulse { + animation: mdui-green-pulse-ani 3s linear infinite; +} +@keyframes mdui-green-pulse-ani { + 50% {filter: drop-shadow(0px 0px 4px #4CAF50) drop-shadow(0px 0px 4px #4CAF50) drop-shadow(0px 0px 4px #4CAF50); } + 0%,100% {filter: drop-shadow(0px 0px 4px #4CAF50) ; } +} + + +/* ----- + bargraph + ----- */ + +.mdui-h-flip { transform: scaleX(-1); } +.mdui-v-flip { transform: scaleY(-1); } +.mdui-h-flip.mdui-v-flip { transform: scale(-1); } + + +/* Hintergrund und Border */ +.mdui-h-bargraph, +.mdui-v-bargraph { + background-position: -1000px !important; + background-repeat: no-repeat !important; + box-shadow:0 0 0 1000px rgba(255,255,255,0.1) inset; + border:none !important; +} + +.mdui-h-bargraph>*, +.mdui-v-bargraph>* { + background-image:inherit !important; +} + +.mdui-h-bargraph:after, +.mdui-v-bargraph:after { + content:""; + position:absolute; + left:0; + top:0; + width:100%; + height:100%; + background-image:inherit !important; + opacity:0.1; +} + +.mdui-h-bargraph.mdui-segment-10 { + clip-path: polygon( + 0% 100%, 0% 0%, 9% 0%, 9% 100%, + 10% 100%, 10% 0%, 19% 0%, 19% 100%, + 20% 100%, 20% 0%, 29% 0%, 29% 100%, + 30% 100%, 30% 0%, 39% 0%, 39% 100%, + 40% 100%, 40% 0%, 49% 0%, 49% 100%, + 50% 100%, 50% 0%, 59% 0%, 59% 100%, + 60% 100%, 60% 0%, 69% 0%, 69% 100%, + 70% 100%, 70% 0%, 79% 0%, 79% 100%, + 80% 100%, 80% 0%, 89% 0%, 89% 100%, + 90% 100%, 90% 0%, 100% 0%, 100% 100% + ) ; +} + +.mdui-h-bargraph.mdui-triangle { + clip-path: polygon(0% 40%, 100% 0%, 100% 100%, 0% 60%); +} +.mdui-h-bargraph.mdui-ramp { + clip-path: polygon(0% 80%, 100% 0%, 100% 100%, 0% 100%); +} + +.mdui-h-bargraph.mdui-segment-10.mdui-ramp { + clip-path: polygon( + 9% 100%, 9% 71%, 0% 80%, 0% 100%, + 19% 100%, 19% 63%, 10% 72%, 10% 100%, + 29% 100%, 29% 55%, 20% 64%, 20% 100%, + 39% 100%, 39% 47%, 30% 56%, 30% 100%, + 49% 100%, 49% 39%, 40% 48%, 40% 100%, + 59% 100%, 59% 31%, 50% 40%, 50% 100%, + 69% 100%, 69% 23%, 60% 32%, 60% 100%, + 79% 100%, 79% 15%, 70% 24%, 70% 100%, + 89% 100%, 89% 7%, 80% 16%, 80% 100%, + 100% 100%,100% 0%, 90% 8%, 90% 100% + ); +} +.mdui-h-bargraph.mdui-segment-10.mdui-triangle { + clip-path: polygon( + 9% 37%, 9% 63%, 0% 60%, 0% 40%, + 19% 33%, 19% 67%, 10% 64%, 10% 36%, + 29% 29%, 29% 71%, 20% 68%, 20% 32%, + 39% 25%, 39% 75%, 30% 72%, 30% 28%, + 49% 21%, 49% 79%, 40% 76%, 40% 24%, + 59% 17%, 59% 83%, 50% 80%, 50% 20%, + 69% 13%, 69% 87%, 60% 84%, 60% 16%, + 79% 9%, 79% 91%, 70% 88%, 70% 12%, + 89% 5%, 89% 95%, 80% 92%, 80% 8%, + 100% 0%, 100% 100%, 90% 96%, 90% 4% + ); +} + +.mdui-v-bargraph.mdui-segment-10 { + clip-path: polygon( + 100% 0%, 0% 0%, 0% 9%,100% 9% , + 100% 10%, 0% 10%, 0% 19%,100% 19% , + 100% 20%, 0% 20%, 0% 29%,100% 29% , + 100% 30%, 0% 30%, 0% 39%,100% 39% , + 100% 40%, 0% 40%, 0% 49%,100% 49% , + 100% 50%, 0% 50%, 0% 59%,100% 59% , + 100% 60%, 0% 60%, 0% 69%,100% 69% , + 100% 70%, 0% 70%, 0% 79%,100% 79% , + 100% 80%, 0% 80%, 0% 89%,100% 89% , + 100% 90%, 0% 90%, 0% 100%,100% 100% + ) ; +} + +.mdui-v-bargraph.mdui-triangle { + clip-path: polygon(60% 0%, 100% 100%, 0% 100%, 40% 0%); +} +.mdui-v-bargraph.mdui-ramp { + clip-path: polygon(100% 0%, 100% 100%, 0% 100%, 80% 0%); +} + +.mdui-v-bargraph.mdui-segment-10.mdui-ramp { + clip-path: polygon( + 100% 9%, 71% 9%, 80% 0%, 100% 0%, + 100% 19%, 63% 19%, 72% 10%, 100% 10%, + 100% 29%, 55% 29%, 64% 20%, 100% 20%, + 100% 39%, 47% 39%, 56% 30%, 100% 30%, + 100% 49%, 39% 49%, 48% 40%, 100% 40%, + 100% 59%, 31% 59%, 40% 50%, 100% 50%, + 100% 69%, 23% 69%, 32% 60%, 100% 60%, + 100% 79%, 15% 79%, 24% 70%, 100% 70%, + 100% 89%, 7% 89%, 16% 80%, 100% 80%, + 100% 100%, 0% 100%, 8% 90%, 100% 90% + ); +} +.mdui-v-bargraph.mdui-segment-10.mdui-triangle { + clip-path: polygon( + 37% 9%, 63% 9%, 60% 0%, 40% 0%, + 33% 19%, 67% 19%, 64% 10%, 36% 10%, + 29% 29%, 71% 29%, 68% 20%, 32% 20%, + 25% 39%, 75% 39%, 72% 30%, 28% 30%, + 21% 49%, 79% 49%, 76% 40%, 24% 40%, + 17% 59%, 83% 59%, 80% 50%, 20% 50%, + 13% 69%, 87% 69%, 84% 60%, 16% 60%, + 9% 79%, 91% 79%, 88% 70%, 12% 70%, + 5% 89%, 95% 89%, 92% 80%, 8% 80%, + 0% 100%,100% 100%,96% 90%, 4% 90% + ); +} + + + +/* ----- + Farben + ----- */ + + +/* 500 */ +.mdui-teal-bg { background-color: #009688 !important; } +.mdui-amber-bg { background-color: #FFCA28 !important; } +.mdui-indigo-bg { background-color: #3F51B5 !important; } +.mdui-blue-bg { background-color: #2196F3 !important; } +.mdui-lime-bg { background-color: #CDDC39 !important; } +.mdui-red-bg { background-color: #F44336 !important; } +.mdui-green-bg { background-color: #4CAF50 !important; } +.mdui-yellow-bg { background-color: #FFEB3B !important; } +.mdui-brown-bg { background-color: #795548 !important; } +.mdui-grey-bg { background-color: #9E9E9E !important; } +.mdui-bluegrey-bg { background-color: #607D8B !important; } +.mdui-white-bg { background-color: #FFFFFF !important; } +.mdui-black-bg { background-color: #000000 !important; } + + +.mdui-teal-acc.mdui-tnav .mdui-flatbutton.ui-state-active, +.mdui-teal-acc.mdui-tnav .mdui-flatbutton.ui-state-active *, +.mdui-teal-acc.mdui-bnav .mdui-flatbutton.ui-state-active, +.mdui-teal-acc.mdui-bnav .mdui-flatbutton.ui-state-active *{ + border-color: #009688 !important; + color: #009688 !important; +} +.mdui-amber-acc.mdui-tnav .mdui-flatbutton.ui-state-active, +.mdui-amber-acc.mdui-tnav .mdui-flatbutton.ui-state-active *, +.mdui-amber-acc.mdui-bnav .mdui-flatbutton.ui-state-active, +.mdui-amber-acc.mdui-bnav .mdui-flatbutton.ui-state-active *{ + color: #FFCA28 !important; + border-color: #FFCA28 !important; +} +.mdui-indigo-acc.mdui-tnav .mdui-flatbutton.ui-state-active, +.mdui-indigo-acc.mdui-tnav .mdui-flatbutton.ui-state-active *, +.mdui-indigo-acc.mdui-bnav .mdui-flatbutton.ui-state-active, +.mdui-indigo-acc.mdui-bnav .mdui-flatbutton.ui-state-active *{ + border-color: #3F51B5 !important; + color: #3F51B5 !important; +} +.mdui-blue-acc.mdui-tnav .mdui-flatbutton.ui-state-active, +.mdui-blue-acc.mdui-tnav .mdui-flatbutton.ui-state-active *, +.mdui-blue-acc.mdui-bnav .mdui-flatbutton.ui-state-active, +.mdui-blue-acc.mdui-bnav .mdui-flatbutton.ui-state-active *{ + border-color: #2196F3 !important; + color: #2196F3 !important; +} +.mdui-lime-acc.mdui-tnav .mdui-flatbutton.ui-state-active, +.mdui-lime-acc.mdui-tnav .mdui-flatbutton.ui-state-active *, +.mdui-lime-acc.mdui-bnav .mdui-flatbutton.ui-state-active, +.mdui-lime-acc.mdui-bnav .mdui-flatbutton.ui-state-active *{ + border-color: #CDDC39 !important; + color: #CDDC39 !important; +} +.mdui-red-acc.mdui-tnav .mdui-flatbutton.ui-state-active, +.mdui-red-acc.mdui-tnav .mdui-flatbutton.ui-state-active *, +.mdui-red-acc.mdui-bnav .mdui-flatbutton.ui-state-active, +.mdui-red-acc.mdui-bnav .mdui-flatbutton.ui-state-active *{ + border-color: #F44336 !important; + color: #F44336 !important; +} +.mdui-green-acc.mdui-tnav .mdui-flatbutton.ui-state-active, +.mdui-green-acc.mdui-tnav .mdui-flatbutton.ui-state-active *, +.mdui-green-acc.mdui-bnav .mdui-flatbutton.ui-state-active, +.mdui-green-acc.mdui-bnav .mdui-flatbutton.ui-state-active *{ + border-color: #4CAF50 !important; + color: #4CAF50 !important; +} +.mdui-yellow-acc.mdui-tnav .mdui-flatbutton.ui-state-active, +.mdui-yellow-acc.mdui-tnav .mdui-flatbutton.ui-state-active *, +.mdui-yellow-acc.mdui-bnav .mdui-flatbutton.ui-state-active, +.mdui-yellow-acc.mdui-bnav .mdui-flatbutton.ui-state-active *{ + border-color: #FFEB3B !important; + color: #FFEB3B !important; +} +.mdui-brown-acc.mdui-tnav .mdui-flatbutton.ui-state-active, +.mdui-brown-acc.mdui-tnav .mdui-flatbutton.ui-state-active *, +.mdui-brown-acc.mdui-bnav .mdui-flatbutton.ui-state-active, +.mdui-brown-acc.mdui-bnav .mdui-flatbutton.ui-state-active *{ + border-color: #795548 !important; + color: #795548 !important; +} +.mdui-grey-acc.mdui-tnav .mdui-flatbutton.ui-state-active, +.mdui-grey-acc.mdui-tnav .mdui-flatbutton.ui-state-active *, +.mdui-grey-acc.mdui-bnav .mdui-flatbutton.ui-state-active, +.mdui-grey-acc.mdui-bnav .mdui-flatbutton.ui-state-active *{ + border-color: #9E9E9E !important; + color: #9E9E9E !important; +} +.mdui-bluegrey-acc.mdui-tnav .mdui-flatbutton.ui-state-active, +.mdui-bluegrey-acc.mdui-tnav .mdui-flatbutton.ui-state-active *, +.mdui-bluegrey-acc.mdui-bnav .mdui-flatbutton.ui-state-active, +.mdui-bluegrey-acc.mdui-bnav .mdui-flatbutton.ui-state-active *{ + border-color: #607D8B !important; + color: #607D8B !important; +} +.mdui-white-acc.mdui-tnav .mdui-flatbutton.ui-state-active, +.mdui-white-acc-acc.mdui-tnav .mdui-flatbutton.ui-state-active *, +.mdui-white-acc-acc-acc.mdui-bnav .mdui-flatbutton.ui-state-active, +.mdui-white-acc-acc-acc-acc.mdui-bnav .mdui-flatbutton.ui-state-active *{ + border-color: #FFFFFF !important; + color: #FFFFFF !important; +} + +/* 500 color */ +.mdui-teal, +.mdui-teal select, .mdui-teal input, +.mdui-teal-acc.mdui-input input[type="button"], +.mdui-teal-acc.mdui-radio *[id*="_radio"] label.ui-state-active, +.mdui-teal.mdui-radio *[id*="_radio"] label, +.mdui-teal.mdui-label, .mdui-teal.mdui-value, +.mdui-teal.mdui-title, .mdui-teal.mdui-subtitle, +.mdui-teal.mdui-flatbutton div, +.mdui-teal.mdui-flatbutton a, +.mdui-teal.mdui-flatbutton .ui-button, +.mdui-teal.mdui-flatbutton .ui-button-text, +.mdui-teal.mdui-flatbutton.ui-button, +.mdui-teal.mdui-floatingbutton.ui-button { + color: #009688 !important; +} +.mdui-amber, +.mdui-amber select, .mdui-amber input, +.mdui-amber-acc.mdui-input input[type="button"], +.mdui-amber-acc.mdui-radio *[id*="_radio"] label.ui-state-active, +.mdui-amber.mdui-radio *[id*="_radio"] label, +.mdui-amber.mdui-label, .mdui-amber.mdui-value, +.mdui-amber.mdui-title, .mdui-amber.mdui-subtitle, +.mdui-amber.mdui-flatbutton div, +.mdui-amber.mdui-flatbutton a, +.mdui-amber.mdui-flatbutton .ui-button, +.mdui-amber.mdui-flatbutton .ui-button-text, +.mdui-amber.mdui-flatbutton.ui-button, +.mdui-floatingbutton.mdui-amber.ui-button { + color: #FFCA28 !important; +} +.mdui-indigo, +.mdui-indigo select, .mdui-indigo input, +.mdui-indigo-acc.mdui-input input[type="button"], +.mdui-indigo-acc.mdui-radio *[id*="_radio"] label.ui-state-active, +.mdui-indigo.mdui-radio *[id*="_radio"] label, +.mdui-indigo.mdui-label, .mdui-indigo.mdui-value, +.mdui-indigo.mdui-title, .mdui-indigo.mdui-subtitle, +.mdui-indigo.mdui-flatbutton div, +.mdui-indigo.mdui-flatbutton a, +.mdui-indigo.mdui-flatbutton .ui-button, +.mdui-indigo.mdui-flatbutton .ui-button-text, +.mdui-indigo.mdui-flatbutton.ui-button, +.mdui-indigo.mdui-floatingbutton.ui-button { + color: #7986CB !important; +} +.mdui-blue, +.mdui-blue select, .mdui-blue input, +.mdui-blue-acc.mdui-input input[type="button"], +.mdui-blue-acc.mdui-radio *[id*="_radio"] label.ui-state-active, +.mdui-blue.mdui-radio *[id*="_radio"] label, +.mdui-blue.mdui-label, .mdui-blue.mdui-value, +.mdui-blue.mdui-title, .mdui-blue.mdui-subtitle, +.mdui-blue.mdui-flatbutton div, +.mdui-blue.mdui-flatbutton a, +.mdui-blue.mdui-flatbutton .ui-button, +.mdui-blue.mdui-flatbutton .ui-button-text, +.mdui-blue.mdui-flatbutton.ui-button, +.mdui-blue.mdui-floatingbutton.ui-button { + color: #2196F3 !important; +} +.mdui-lime, +.mdui-lime select, .mdui-lime input, +.mdui-lime-acc.mdui-input input[type="button"], +.mdui-lime-acc.mdui-radio *[id*="_radio"] label.ui-state-active, +.mdui-lime.mdui-radio *[id*="_radio"] label, +.mdui-lime.mdui-label, .mdui-lime.mdui-value, +.mdui-lime.mdui-title, .mdui-lime.mdui-subtitle, +.mdui-lime.mdui-flatbutton div, +.mdui-lime.mdui-flatbutton a, +.mdui-lime.mdui-flatbutton .ui-button-text, +.mdui-lime.mdui-flatbutton .ui-button, +.mdui-lime.mdui-flatbutton.ui-button, +.mdui-lime.mdui-floatingbutton.ui-button { + color: #CDDC39 !important; +} +.mdui-red, +.mdui-red select, .mdui-red input, +.mdui-red-acc.mdui-input input[type="button"], +.mdui-red-acc.mdui-radio *[id*="_radio"] label.ui-state-active, +.mdui-red.mdui-radio *[id*="_radio"] label, +.mdui-red.mdui-label, .mdui-red.mdui-value, +.mdui-red.mdui-title, .mdui-red.mdui-subtitle, +.mdui-red.mdui-flatbutton div, +.mdui-red.mdui-flatbutton a, +.mdui-red.mdui-flatbutton .ui-button, +.mdui-red.mdui-flatbutton .ui-button-text, +.mdui-red.mdui-flatbutton.ui-button { + color: #F44336 !important; +} +.mdui-green, +.mdui-green select, .mdui-green input, +.mdui-green-acc.mdui-input input[type="button"], +.mdui-green-acc.mdui-radio *[id*="_radio"] label.ui-state-active, +.mdui-green.mdui-radio *[id*="_radio"] label, +.mdui-green.mdui-label, .mdui-green.mdui-value, +.mdui-green.mdui-title, .mdui-green.mdui-subtitle, +.mdui-green.mdui-flatbutton div, +.mdui-green.mdui-flatbutton a, +.mdui-green.mdui-flatbutton .ui-button, +.mdui-green.mdui-flatbutton .ui-button-text, +.mdui-green.mdui-flatbutton.ui-button { + color: #4CAF50 !important; +} +.mdui-yellow, +.mdui-yellow select, .mdui-yellow input, +.mdui-yellow-acc.mdui-input input[type="button"], +.mdui-yellow-acc.mdui-radio *[id*="_radio"] label.ui-state-active, +.mdui-yellow.mdui-radio *[id*="_radio"] label, +.mdui-yellow.mdui-label, .mdui-yellow.mdui-value, +.mdui-yellow.mdui-title, .mdui-yellow.mdui-subtitle, +.mdui-yellow.mdui-flatbutton div, +.mdui-yellow.mdui-flatbutton a, +.mdui-yellow.mdui-flatbutton .ui-button, +.mdui-yellow.mdui-flatbutton .ui-button-text, +.mdui-yellow.mdui-flatbutton.ui-button { + color: #FFEB3B !important; +} +.mdui-brown, +.mdui-brown select, .mdui-brown input, +.mdui-brown-acc.mdui-input input[type="button"], +.mdui-brown-acc.mdui-radio *[id*="_radio"] label.ui-state-active, +.mdui-brown.mdui-radio *[id*="_radio"] label, +.mdui-brown.mdui-label, .mdui-brown.mdui-value, +.mdui-brown.mdui-title, .mdui-brown.mdui-subtitle, +.mdui-brown.mdui-flatbutton div, +.mdui-brown.mdui-flatbutton a, +.mdui-brown.mdui-flatbutton .ui-button-text, +.mdui-brown.mdui-flatbutton .ui-button, +.mdui-brown.mdui-flatbutton.ui-button { + color: #795548 !important; +} +.mdui-grey, +.mdui-grey select, .mdui-grey input, +.mdui-grey-acc.mdui-input input[type="button"], +.mdui-grey-acc.mdui-radio *[id*="_radio"] label.ui-state-active, +.mdui-grey.mdui-radio *[id*="_radio"] label, +.mdui-grey.mdui-label, .mdui-grey.mdui-value, +.mdui-grey.mdui-title, .mdui-grey.mdui-subtitle, +.mdui-grey.mdui-flatbutton div, +.mdui-grey.mdui-flatbutton a, +.mdui-grey.mdui-flatbutton .ui-button, +.mdui-grey.mdui-flatbutton .ui-button-text, +.mdui-grey.mdui-flatbutton.ui-button { + color: #9E9E9E !important; +} +.mdui-bluegrey, +.mdui-bluegrey select, .mdui-bluegrey input, +.mdui-bluegrey-acc.mdui-input input[type="button"], +.mdui-bluegrey-acc.mdui-radio *[id*="_radio"] label.ui-state-active, +.mdui-bluegrey.mdui-radio *[id*="_radio"] label, +.mdui-bluegrey.mdui-label, .mdui-bluegrey.mdui-value, +.mdui-bluegrey.mdui-title, .mdui-bluegrey.mdui-subtitle, +.mdui-bluegrey.mdui-flatbutton div, +.mdui-bluegrey.mdui-flatbutton a, +.mdui-bluegrey.mdui-flatbutton .ui-button, +.mdui-bluegrey.mdui-flatbutton .ui-button-text, +.mdui-bluegrey.mdui-flatbutton.ui-button { + color: #607D8B !important; +} +.mdui-white, +.mdui-white select, .mdui-white input, +.mdui-white-acc.mdui-input input[type="button"], +.mdui-white-acc.mdui-radio *[id*="_radio"] label.ui-state-active, +.mdui-white.mdui-radio *[id*="_radio"] label, +.mdui-white.mdui-label, .mdui-bluegrey.mdui-value, +.mdui-white.mdui-title, .mdui-bluegrey.mdui-subtitle, +.mdui-white.mdui-flatbutton div, +.mdui-white.mdui-flatbutton a, +.mdui-white.mdui-flatbutton .ui-button, +.mdui-white.mdui-flatbutton .ui-button-text, +.mdui-white.mdui-flatbutton.ui-button { + color: #FFFFFF !important; +} + +/* 500 slider */ +.mdui-transparent-acc.mdui-slider .ui-slider-horizontal:before, +.mdui-transparent-acc.mdui-slider .ui-slider-vertical:before, +.mdui-transparent-acc.mdui-slider .ui-slider-handle:before { + background: none !important; +} +.mdui-teal-acc.mdui-slider .ui-slider-horizontal:before, +.mdui-teal-acc.mdui-slider .ui-slider-vertical:before, +.mdui-teal-acc.mdui-slider .ui-slider-handle { + background: #009688 !important; +} +.mdui-amber-acc.mdui-slider .ui-slider-horizontal:before, +.mdui-amber-acc.mdui-slider .ui-slider-vertical:before, +.mdui-amber-acc.mdui-slider .ui-slider-handle { + background: #FFC107 !important; +} +.mdui-indigo-acc.mdui-slider .ui-slider-horizontal:before, +.mdui-indigo-acc.mdui-slider .ui-slider-vertical:before, +.mdui-indigo-acc.mdui-slider .ui-slider-handle { + background: #3F51B5 !important; +} +.mdui-blue-acc.mdui-slider .ui-slider-horizontal:before, +.mdui-blue-acc.mdui-slider .ui-slider-vertical:before, +.mdui-blue-acc.mdui-slider .ui-slider-handle { + background: #2196F3 !important; +} +.mdui-lime-acc.mdui-slider .ui-slider-horizontal:before, +.mdui-lime-acc.mdui-slider .ui-slider-vertical:before, +.mdui-lime-acc.mdui-slider .ui-slider-handle { + background: #CDDC39 !important; +} +.mdui-red-acc.mdui-slider .ui-slider-horizontal:before, +.mdui-red-acc.mdui-slider .ui-slider-vertical:before, +.mdui-red-acc.mdui-slider .ui-slider-handle { + background: #F44336 !important; +} +.mdui-green-acc.mdui-slider .ui-slider-horizontal:before, +.mdui-green-acc.mdui-slider .ui-slider-vertical:before, +.mdui-green-acc.mdui-slider .ui-slider-handle { + background: #4CAF50 !important; +} +.mdui-yellow-acc.mdui-slider .ui-slider-horizontal:before, +.mdui-yellow-acc.mdui-slider .ui-slider-vertical:before, +.mdui-yellow-acc.mdui-slider .ui-slider-handle { + background: #FFEB3B !important; +} +.mdui-brown-acc.mdui-slider .ui-slider-horizontal:before, +.mdui-brown-acc.mdui-slider .ui-slider-vertical:before, +.mdui-brown-acc.mdui-slider .ui-slider-handle { + background: #795548 !important; +} +.mdui-grey-acc.mdui-slider .ui-slider-horizontal:before, +.mdui-grey-acc.mdui-slider .ui-slider-vertical:before, +.mdui-grey-acc.mdui-slider .ui-slider-handle { + background: #9E9E9E !important; +} +.mdui-bluegrey-acc.mdui-slider .ui-slider-horizontal:before, +.mdui-bluegrey-acc.mdui-slider .ui-slider-vertical:before, +.mdui-bluegrey-acc.mdui-slider .ui-slider-handle { + background: #607D8B !important; +} +.mdui-white-acc.mdui-slider .ui-slider-horizontal:before, +.mdui-white-acc.mdui-slider .ui-slider-vertical:before, +.mdui-white-acc.mdui-slider .ui-slider-handle { + background: #FFFFFF !important; +} + + +/* 500 Radio */ +.mdui-teal-acc.mdui-radio *[id*="_radio"] label.ui-state-active { + border-bottom-color:#009688 !important; + color:#009688 !important; +} +.mdui-amber-acc.mdui-radio *[id*="_radio"] label.ui-state-active { + border-bottom-color:#FFCA28 !important; + color:#FFCA28 !important; +} +.mdui-indigo-acc.mdui-radio *[id*="_radio"] label.ui-state-active { + border-bottom-color:#7986CB !important; + color:#7986CB !important; +} +.mdui-blue-acc.mdui-radio *[id*="_radio"] label.ui-state-active { + border-bottom-color:#2196F3 !important; + color:#2196F3 !important; +} +.mdui-lime-acc.mdui-radio *[id*="_radio"] label.ui-state-active { + border-bottom-color:#CDDC39 !important; + color:#CDDC39 !important; +} +.mdui-red-acc.mdui-radio *[id*="_radio"] label.ui-state-active { + border-bottom-color:#F44336 !important; + color:#F44336 !important; +} +.mdui-green-acc.mdui-radio *[id*="_radio"] label.ui-state-active { + border-bottom-color:#4CAF50 !important; + color:#4CAF50 !important; +} +.mdui-yellow-acc.mdui-radio *[id*="_radio"] label.ui-state-active { + border-bottom-color:#FFEB3B !important; + color:#FFEB3B !important; +} +.mdui-brown-acc.mdui-radio *[id*="_radio"] label.ui-state-active { + border-bottom-color:#795548 !important; + color:#795548 !important; +} +.mdui-grey-acc.mdui-radio *[id*="_radio"] label.ui-state-active { + border-bottom-color:#795548 !important; + color:#9E9E9E !important; +} +.mdui-bluegrey-acc.mdui-radio *[id*="_radio"] label.ui-state-active { + border-bottom-color:#607D8B !important; + color:#607D8B !important; +} + +/* 500 Switch */ +.mdui-teal-acc.mdui-switch input[type="checkbox"]:checked~label:after { background-color: #009688 ; } +.mdui-amber-acc input[type="checkbox"]:checked~label:after { background-color: #FFC107 ; } +.mdui-indigo-acc.mdui-switch input[type="checkbox"]:checked~label:after { background-color: #3F51B5 ; } +.mdui-blue-acc.mdui-switch input[type="checkbox"]:checked~label:after { background-color: #64B5F6; } +.mdui-lime-acc.mdui-switch input[type="checkbox"]:checked~label:after { background-color: #CDDC39 ; } +.mdui-red-acc.mdui-switch input[type="checkbox"]:checked~label:after { background-color: #F44336 ; } +.mdui-green-acc.mdui-switch input[type="checkbox"]:checked~label:after { background-color: #4CAF50 ; } +.mdui-yellow-acc.mdui-switch input[type="checkbox"]:checked~label:after { background-color: #FFEB3B ; } +.mdui-brown-acc.mdui-switch input[type="checkbox"]:checked~label:after { background-color: #795548 ; } +.mdui-grey-acc.mdui-switch input[type="checkbox"]:checked~label:after { background-color: #9E9E9E ; } +.mdui-bluegrey-acc.mdui-switch input[type="checkbox"]:checked~label:after { background-color: #607D8B ; } + + +/* 600 Switch */ +.mdui-teal-acc.mdui-switch input[type="checkbox"]:checked~label:before{ background-color: #00897B; } +.mdui-amber-acc.mdui-switch input[type="checkbox"]:checked~label:before{ background-color: #FFB300; } +.mdui-indigo-acc.mdui-switch input[type="checkbox"]:checked~label:before{ background-color: #3949AB; } +.mdui-blue-acc.mdui-switch input[type="checkbox"]:checked~label:before{ background-color: #1E88E5; } +.mdui-lime-acc.mdui-switch input[type="checkbox"]:checked~label:before{ background-color: #C0CA33; } +.mdui-red-acc.mdui-switch input[type="checkbox"]:checked~label:before { background-color: #E53935; } +.mdui-green-acc.mdui-switch input[type="checkbox"]:checked~label:before{ background-color: #43A047; } +.mdui-yellow-acc.mdui-switch input[type="checkbox"]:checked~label:before{ background-color: #FDD835; } +.mdui-brown-acc.mdui-switch input[type="checkbox"]:checked~label:before { background-color: #6D4C41; } +.mdui-grey-acc.mdui-switch input[type="checkbox"]:checked~label:before { background-color: #757575; } +.mdui-bluegrey-acc.mdui-switch input[type="checkbox"]:checked~label:before { background-color: #546E7A; } + + +/* 800 */ +.mdui-teal-bg.mdui-lnav, .mdui-teal-bg.mdui-rnav, +.mdui-teal-bg.mdui-card, .mdui-teal-bg.mdui-tile { + background-color : #00695C !important; +} +.mdui-amber-bg.mdui-lnav, .mdui-amber-bg.mdui-rnav, +.mdui-amber-bg.mdui-card, .mdui-amber-bg.mdui-tile { + background-color : #FF8F00 !important; +} +.mdui-indigo-bg.mdui-lnav, .mdui-indigo-bg.mdui-rnav, +.mdui-indigo-bg.mdui-card, .mdui-indigo-bg.mdui-tile { + background-color : #283593 !important; +} +.mdui-blue-bg.mdui-lnav, .mdui-blue-bg.mdui-rnav, +.mdui-blue-bg.mdui-card, .mdui-blue-bg.mdui-tile { + background-color : #1565C0 !important; +} +.mdui-lime-bg.mdui-lnav, .mdui-lime-bg.mdui-rnav, +.mdui-lime-bg.mdui-card, .mdui-lime-bg.mdui-tile { + background-color : #9E9D24 !important; +} +.mdui-red-bg.mdui-lnav, .mdui-red-bg.mdui-rnav, +.mdui-red-bg.mdui-card, .mdui-red-bg.mdui-tile { + background-color : #C62828 !important; +} +.mdui-green-bg.mdui-lnav, .mdui-green-bg.mdui-rnav, +.mdui-green-bg.mdui-card, .mdui-green-bg.mdui-tile { + background-color : #2E7D32 !important; +} +.mdui-yellow-bg.mdui-lnav, .mdui-yellow-bg.mdui-rnav, +.mdui-yellow-bg.mdui-card, .mdui-yellow-bg.mdui-tile { + background-color : #F9A825 !important; +} +.mdui-brown-bg.mdui-lnav, .mdui-brown-bg.mdui-rnav, +.mdui-brown-bg.mdui-card, .mdui-brown-bg.mdui-tile { + background-color : #4E342E !important; +} +.mdui-grey-bg.mdui-lnav, .mdui-grey-bg.mdui-rnav, +.mdui-grey-bg.mdui-card, .mdui-grey-bg.mdui-tile { + background-color : #424242 !important; +} +.mdui-bluegrey-bg.mdui-lnav, .mdui-bluegrey-bg.mdui-rnav, +.mdui-bluegrey-bg.mdui-card, .mdui-bluegrey-bg.mdui-tile { + background-color : #37474F !important; +} + +/* 850 */ +.mdui-teal-bg.mdui-content { + background-color : #005b4e !important; +} +.mdui-amber-bg.mdui-content { + background-color : #FF7F00 !important; +} +.mdui-indigo-bg.mdui-content { + background-color : #212c88 !important; +} +.mdui-blue-bg.mdui-content { + background-color : #1156B0 !important; +} +.mdui-lime-bg.mdui-content { + background-color : #908a1d !important; +} +.mdui-red-bg.mdui-content { + background-color : #be2222 !important; +} +.mdui-green-bg.mdui-content { + background-color : #246d29 !important; +} +.mdui-yellow-bg.mdui-content { + background-color : #f7931e !important; +} +.mdui-brown-bg.mdui-content { + background-color : #462d28 !important; +} +.mdui-grey-bg.mdui-content { + background-color : #303030 !important; +} +.mdui-bluegrey-bg.mdui-content { + background-color : #2e3c43 !important; +} + + +/* 900 */ +.mdui-teal-bg.mdui-tnav, .mdui-teal-bg.mdui-bnav, +.mdui-teal-bg.mdui-abar { + background : #004D40 !important; +} +.mdui-amber-bg.mdui-tnav, .mdui-amber-bg.mdui-bnav, +.mdui-amber-bg.mdui-abar { + xbackground : #FF6F00 !important; + background: hsl(45, 50%, 50%) !important; +} +.mdui-indigo-bg.mdui-tnav, .mdui-indigo-bg.mdui-bnav, +.mdui-indigo-bg.mdui-abar { + background : #1A237E !important; +} +.mdui-blue-bg.mdui-tnav, .mdui-blue-bg.mdui-bnav, +.mdui-blue-bg.mdui-abar { + background : #0D47A1 !important; +} +.mdui-lime-bg.mdui-tnav, .mdui-lime-bg.mdui-bnav, +.mdui-lime-bg.mdui-abar { + background : #827717 !important; +} +.mdui-red-bg.mdui-tnav, .mdui-red-bg.mdui-bnav, +.mdui-red-bg.mdui-abar { + xbackground : #B71C1C !important; + background: hsl(0, 50%, 40%) !important; +} +.mdui-green-bg.mdui-tnav, .mdui-green-bg.mdui-bnav, +.mdui-green-bg.mdui-abar { + background : #1B5E20 !important; +} +.mdui-yellow-bg.mdui-tnav, .mdui-yellow-bg.mdui-bnav, +.mdui-yellow-bg.mdui-abar { + xbackground : #F57F17 !important; + background: hsl(60, 50%, 40%) !important; +} +.mdui-brown-bg.mdui-tnav, .mdui-brown-bg.mdui-bnav, +.mdui-brown-bg.mdui-abar { + background : #3E2723 !important; +} +.mdui-grey-bg.mdui-tnav, .mdui-grey-bg.mdui-bnav, +.mdui-grey-bg.mdui-abar { + background : #212121 !important; +} +.mdui-bluegrey-bg.mdui-tnav, .mdui-bluegrey-bg.mdui-bnav, +.mdui-bluegrey-bg.mdui-abar { + background : #263238 !important; +} + + + +/* ----- + Design + ----- */ + +/* Weißes Raster mit 52x52 156x156 als Hintergrund */ +.vis-grid:before { + content:""; + position:absolute; + left:0; + top:0; + width:100%; + height:100%; + background-image: + repeating-linear-gradient( + transparent, + transparent 155px, + rgba(255,255,255,1) 155px, + rgba(255,255,255,1) 156px + ), + + repeating-linear-gradient(to right, + transparent, + transparent 155px, + rgba(255,255,255,1) 155px, + rgba(255,255,255,1) 156px + ) + !important; +} +.vis-grid:after { + content:""; + position:absolute; + left:0; + top:0; + width:100%; + height:100%; + background-image: + repeating-linear-gradient( + transparent, + transparent 51px, + rgba(255,255,255,1) 52px, + rgba(255,255,255,1) 52px + ), + + repeating-linear-gradient(to right, + transparent, + transparent 51px, + rgba(255,255,255,1) 52px, + rgba(255,255,255,1) 52px + ) + !important; +} + +/* Sichtbarkeit des Grids verringern */ +.vis-grid { + opacity: 0.2; + z-index:100; +} + + + +/* bei [Klick] nach 3 Sek je Widget einen Rahmen zeichnen und die ID +einblenden */ +.vis_container_edit .vis-view:active .vis-widget:after { + animation: vis-view-hover-ani 5s; + animation-delay: 3s; + color:#000; +} + +/* beim :hover nach 0.5 Sek hervorheben und die ID einblenden */ +.vis_container_edit .vis-view .vis-widget:hover:after { + animation: vis-view-hover-ani 3s; + animation-delay: 1s; + color:#000; +} + +@keyframes vis-view-hover-ani { + 0%,100% { + position:absolute; + left:0px; + top:0px; + width:calc(100% - 2px); + height:calc(100% - 2px); + text-align:left; + border:1px dotted #ffff00; + font-size:0.6em; + background: linear-gradient(yellow 0%, yellow 100%); + background-size: 48px 12px; + background-repeat: no-repeat; + content:attr(id); + pointer-events: none; + } + +} + +.widget-helper { + border: 1px dashed transparent; +} + +.widget_inner_helper { + outline: 1px dashed black; + border: 1px dashed white; + pointer-events: none; + top:1px; + left:0px; + position:absolute; + width: calc(100% - 3px); + height: calc(100% - 3px); +} + + +/* container-bezeichnungen anzeigen */ +.vis_container_edit .mdui-content:before, +.vis_container_edit .mdui-rnav:before, +.vis_container_edit .mdui-lnav:before, +.vis_container_edit .mdui-tnav:before, +.vis_container_edit .mdui-abar:before { + position:absolute; + top:0px; + left:0px; + content:"content"; + background: #ffff00; + color:#000; + font-size:12px; + font-weight:bold; + height:1.2em; + width:5em; + opacity:0.66; +} + +.vis_container_edit .mdui-abar:before { content:"app-bar"; } +.vis_container_edit .mdui-tnav:before { content:"top-nav"; } +.vis_container_edit .mdui-lnav:before { content:"left-nav"; } +.vis_container_edit .mdui-rnav:before { content:"right-nav"; } +.vis_container_edit .mdui-content:hover:before, +.vis_container_edit .mdui-rnav:hover:before, +.vis_container_edit .mdui-lnav:hover:before, +.vis_container_edit .mdui-tnav:hover:before, +.vis_container_edit .mdui-abar:hover:before { + opacity:1; +} + +.vis_container_edit .mdui-cols-1 { width:156px !important;} +.vis_container_edit .mdui-cols-2 { width:312px !important;} +.vis_container_edit .mdui-cols-3 { width:468px !important; } +.vis_container_edit .mdui-cols-4 { width:624px !important;} +.vis_container_edit .mdui-cols-5 { width:780px !important;} +.vis_container_edit .mdui-cols-6 { width:924px !important;} +.vis_container_edit .mdui-cols-7 { width:1092px !important;} +.vis_container_edit .mdui-cols-8 { width:1248px !important;} +.vis_container_edit .mdui-cols-9 { width:1404px !important;} +.vis_container_edit .mdui-cols-10 { width:1560px !important;} diff --git a/widgets/material/css/style.css b/widgets/material/css/style.css new file mode 100644 index 0000000..6a47227 --- /dev/null +++ b/widgets/material/css/style.css @@ -0,0 +1,34 @@ +.md-list{ + width: 100%; + height: 56px; +} +.md-list-icon{ + float: left; + width: 72px; + height: 56px; +} +.md-list-icon img{ + margin-left: 8px; + width: 48px; + height: 48px; +} + +.md-list-desc{ + float: left; + width: calc(100% - 72px - 100px - 16px); + height: 56px; + margin-top: 10px; +} + +.md-list-value{ + float: left; + width: 100px !important; + text-align: right; + margin-top: 16px; +} + +.md-list-value .mdui-switch{ + width: 48px; + height: 24px; + margin-left: 52px; +} \ No newline at end of file diff --git a/widgets/material/img/fts_door.png b/widgets/material/img/fts_door.png new file mode 100644 index 0000000000000000000000000000000000000000..7577d0ab32a378d7e7050977ba37faa657744f98 GIT binary patch literal 1980 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 literal 0 HcmV?d00001 diff --git a/widgets/material/img/fts_shutter_00.png b/widgets/material/img/fts_shutter_00.png new file mode 100644 index 0000000000000000000000000000000000000000..aa4843536afc68d92294104f275ccd49833cbde3 GIT binary patch literal 2017 zcmeAS@N?(olHy`uVBq!ia0y~yV0-|=9Be?5+AI5}0x8K7*NBqf{Irtt#G+IN$CUh} zR0Yr6#Prml)Wnp^!jq{s3=Hheo-U3d6}R5peHbY1F46GtHqZaXAqf{5LkR5TelXaW6!8(OSOiw`kJB?O1YNYjqAK7o@E3Up~cm7P@u?h#{`!e4*sTY>W0_`2C zfZfB*Al~x1o!qHkcGqThGO*t``b#8xa?mY_c81TX7x#8;HR64see-zK@hWk{ds0Bb z`ycckKm5DlF>8gM>XGY$kLCt)Z20kPkJKY>gR6Z%o_Bn>rNOe}>5pk2*7-24Sm5&G zn8d3e=Qvg!`#$vtljvUgbq5mJ?}XHx-aYHRFVl)OF@1L5XKj!z@V+O(Xu#YZvA*{p z-;Sww^X2)=)fms5SQ!hH<6hUpFk|LaL5>3MDrJVWXNNeJJrycpwVc6ZVElW^CH`Xy z2bg#aN(GuUeU7VUFbE`okV69_5HT>afe?!X2tg!>m21eq*eO_JoR?H<)TXw#W2@B1 z%Kegali4a%`Y+Fp*?ipF{#k>eHHRIdI{{rUE9vE0!CuDqV ziCk1+U$(uvVfsd|7y8NOd(10W9M3*rz@M+y@!tMi(q5w?frO0O@4I{2uO9LL-F>o| z!TI$suJb!T>|+8-+`YsBj=46q3Ueb4gMfp(E`8pm$&DOb=8T-=&{H92|V0C|M)xcSH;?1GXh(R&n>@u*w?bI=1crjzQ}at zeNUckj(wkNbG+A+`Ru3T5*8mS3X^MPjNMOAFWr!v-sr9G0k=-CL&MLiIBCWY^+o5p zCqD1q`_lLI5spX*(?Xn)R-_?KM*TBaJu5hWtE1R8v5OHkMZ4j zeL(n=R6+0js-Ro0E#`AiU$D8G7x7`q-St0iF>c?&t@m-SF=qnX?)#rN85(qDR`Tw+ zr?=xx!*w;rkZ*o9ZyTcTuuhNPsJTCCiwW<7rraan??}7>3wqnzm)0@L&4{ynA0ySw zuwCZi+Yi19hYp04J>B!TH=If5(0{iZb2A#AZ+j_sujFZs@_`z$hufDi+B9#vy|=Hp zckcU`bHCjT><{-^ojQ9ZzU*BqkIh-VYwhnIhD|=CeLzOwvCzX$?wopU{9C`UbDcVQ tDAh>f``*v)Yqoly9f9?R!{dKK2@E{RPj`FX;_(6nfTydU%Q~loCIFS#6eIuu literal 0 HcmV?d00001 diff --git a/widgets/material/img/fts_shutter_10.png b/widgets/material/img/fts_shutter_10.png new file mode 100644 index 0000000000000000000000000000000000000000..64c28863e3c6a9b45a8c847270f11c26431e7822 GIT binary patch literal 2170 zcmeAS@N?(olHy`uVBq!ia0y~yV0-|=9Be?5+AI5}0x8K7*NBqf{Irtt#G+IN$CUh} zR0Yr6#Prml)Wnp^!jq{s3=AAHo-U3d6}R5p?adYTlxTQ3SD1B2bFr0yXv)fl0LMvO z4O}}yCIm40u@;CP2@!~AeJ*t8;GONqJ!ZTpYU$l;{mHK1B&tOu`q!45*B|dU;RRYd zVu8cmNrG1tpYQ2#mVW&`qWjbRwI>Q(^@qm>07XjbI2IJkyww2Y8Ed_dYrS;GC?&tMrnA0~;& z@0)ITvfMbGTy{XX^2y{&sW&;TUp8JW+xIA&-R9}s4{P4EoKM#EVX@fY%lUro^0}-t zC&uT3Ea{K4+)OvpSR-SmB(8D{;CoSdY@K3go|CQmp&MuCb zje(J^A+sWp*|4tfWmw?@WbqvMP$Rky6pY0Z`?^I}oISOMh^En4+|&=kV-fuMZxm*rvMAd$GhqW;cU% zpGr!;AC+0Y@!8Y;e;LclEah)p{q|$#*Jk$LclYo9zDVb^agjskCi??@pBs;#YqyJ< zyt;q+0!D`h5CR4P2(d_jkU#GWceri;OvO}9w{JiANRYm1L_;6vG3}BR~CQlZ;p@jvFH7U4zYqj@#&V&zn}e{ zf9zG?b=$mmSI@m&=OfM{Q4!Vgzc=m3j`z78dLd_mFJQ}e$e9j3PYx+L=hK$@K8$_8 z%J-PEGA{F*|496c&b2cd4_-W~7HfY!&wiij!CxxME51$Foz1jiI(MxBt98P>yj+%s z>`n&bJyQi4)~Pa``HmV7M;8nD!&KU_0|Z zL(T>5vx|5aUd!Gict!ttjXZn&CPtg9R*!yPl6cclxi7r8Ux>lKCx2&J0{fYHWe4wW zkG^}8li9vI|4m)(=c%#=)zwQx_6I!GRLx(-@b7eJd9OgcbpqdR>3PQ=I*rv^#0BX`BO%s-Zu{8O2y;Lk4EcUsr3N5r>;H>}h?vsUxK#Mm{pOE^YoZB}u{ b9$0l8S?G7Z+w<@=P#}1^`njxgN@xNA+L?HN literal 0 HcmV?d00001 diff --git a/widgets/material/img/fts_shutter_100.png b/widgets/material/img/fts_shutter_100.png new file mode 100644 index 0000000000000000000000000000000000000000..a3e1cac9fdc0bdd8904db7b8d017f7dffbcd6a43 GIT binary patch literal 3540 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 JqV@Eoe*sbeIXeIV literal 0 HcmV?d00001 diff --git a/widgets/material/img/fts_shutter_20.png b/widgets/material/img/fts_shutter_20.png new file mode 100644 index 0000000000000000000000000000000000000000..a7c391c22c77d429b1113508d6369b4fd583eadc GIT binary patch literal 2351 zcmd^ASyYop7@hnqhRCKY24s@}3RXlws1+f|CWvT3K}95h(IQ42Z z9t{*!;sTU}B!Yk_2q;T1rpB_VtO12!LhK*4Z++-PUwWK#=ge|v&dj|t^G((^KQA?u zJ_-P!=Do??9{_|Gj3cV;RcMtmJmV~~vZ%R&ynO00ozOn*!*kWp4xY=tqcd3;RDX}P z*qK5IGv%fd;)r)PjQzls8Vp!xh+~D56h3Jtc_xv;csTs97{cn1EQzR59 z`4@g-loOt)71$?cN1m?hLkSssJWhrfY$7)ADDY;iDIw{Zked zwtkIEN?W5annFurq#_polibp#VgDLP6+o?FHM%ReQ6DTqPHL0ZLNwc@7<5toGM!&J zX_LqMOFFO{NUAL;B9wpZFh{*L#n(X zZ)Noc?Ge=BPzjVcv(AXut0tzlt=5>4T#?LPtC+Hj#pc~zjcXQhLz){jOIo^{13G{S z7ucw6&7rZRAGTG`meUoYhwCDZ%$pT75@x9MtBwSIio?ZNmP+{{qQtR>bTEZAhr;>t zhh{=LqU86harS1+8g&{gD6j!?x&cm9Pbpb-p3r{x$m>kg;Fg{EKbhL0G}C#zn9UJi z9UxDi0Rcmu7T7IcoPf=+csPq#IB5p!$C8zbMYrG!(kgeP^Jyq48NV32iUI{SSam>{ z70YjYV2JwG(<)@Box|4k%eVnKN0u;q+s3>A$w>w6X3S4%l$h5uZPj^{uSyNSDUIUF zmBJtc1sFhXzN-A(VSFY2LvH(M)*@_){Jpk?2dhdY)}L#l_=yqMOt@S@=VjeWWLn$4OY8N~QFdb$>7-cp8>cQQxiD@3fl$7?mC>d_GNzDR z;GHw9LL3xAM+|BFvhQ5!hAtlY74Kf^7Tz=!iFu~}7j z>i9K|;6RK^@Qc$^Bt3;Loi`~;q|5%t_|h8NKn};?NZjg~!%2i%SlIkVX|z42$t~I~ z{%ZK;v@an7@pqK?hY<09=JbMnBEwKex<2=pSR!o_KA}I;=!~`;D9@TrXD|)K!|Syw zwniy-%kG&60HZ;7W8a6UVhJCO5biPM=0p<|$#Gf0jva*omo_UF7r=2)^jL@Z_Pyhk z&6+qFeIeZMrdTWrlApp8Gcw}#)Vh1;Y`WG`!4ynC~ZYHT+v8S%?OX(G_#ASR9svC>H=iY*YeUU g`#b%E$xJDR3!uPNOXm}nt>h+nd-%EE-iS;43xliXy8r+H literal 0 HcmV?d00001 diff --git a/widgets/material/img/fts_shutter_30.png b/widgets/material/img/fts_shutter_30.png new file mode 100644 index 0000000000000000000000000000000000000000..64dda847f074db1b0e47ab548fbbdd72b6e4ad82 GIT binary patch literal 2572 zcmd^BYdD)(9)FX(AqZ(0q;(4^+bLDHN?k&9NoAFG+7c})uB}!?-PJ9Wx?gs?9Xht? zGacGhDuzgDTuT90atu0T*t(&I|1Pj!=Q^YF z_G85bM9ouO_vOHTShXK0=A;--pPEiJVB}~gju$F=WG&}6h2cWOOO-_*-uzo}r)4!g z==@55t`~3R`Mfc%vdE&c$bH|fS5-+6K!kwPH&G-4UBbO3e%6{p7Nm(cI0jZdHO4qM zQHn7RC;ZSBp$ZbcpGY5?vv_n(s%rZwjiV3wJ}JSd5{L+cFaU4BNHv_HE%WK*nG2ve zkHk8Gd*vM@J*F2%Ji@A=uzeG*fRvbhBsg3*WnU+t;Rx1F$IlEhZG$3&${$hD{B8U zJ*OjT2;1im@xVu04Lj-632>Me2_mro5=+5nnY9Ckb9HzC8REFBohhL$ubxB>50~KP z+mX|s=;XS?e7?N~Q7>t|3u()=%nE+8r9+@A!ADwV{pOG*l~*z)xss&CmfT{S-xoLO zuZb{glgAj=FZpZ}0jkOvm+fFxV2cQ_?aGiY?&IFOm6m>$qq#ER5 z8p?s;*K`u$OBMUXTXzPr`TNHzHkx-IQ0=!Ns=I4k-9Mdgx^!E(@GbpRMDJn_0=Vf| zwc?Z2%JvPzI|YBL3mg=YO&13CZ~ax8$1F4TNIFmE4ZrL*e@?QG&$M$E+>qWYmfoux zn*UjP=<;r>{&u(iO8f@bk<0+Ao4L$pj%zt{VnbH9>an)ebMejrjGa8);cUX=NY|ye zD&w+N!LzC{ieh5O%3*Ro3!4Kpb0yzgXUE7zRL*ey3U zfZ`my8$cGm-yDs*Yo-PgN>g3r8+VPIF?M@e#_}3i5%WX{dKH$8hHZiI+DL>NwcS{; z{R348i9Pqdh@9(AVVirTgbE{_-Uz(g-fr`2T`+d-*S=W!7$SG!I#IQe*qsn`v%dU` zxD6As_w`9>dVN>y3q{sm)V%&&Cz5|zve}{B9tn!gos!P^b4}A?dtj5}$9G6y;idd4 z^PXyZmM04K6b4+ZyMV7m7;q+G{7U>^bJ$j<DRR(X-wkN7c`^BNr9}semHb0>ZLlL3W>|>Xk(I&QG=vl<~UI z5ff1gQ{M*K2`@0@Ts?_=*Q=~h)Dvz18#09ddT1>;I!*)AW3d^DI>%)66Ln#KH@XE} z=i$Sw8TEa-{<8e+VKw==mf|&zJ;qLmOHeW@3NfftC9JNDr5}q}7&{AW@nM{^`c7`f zH=p&Lo(ldmy$P{16reOR=LbT|sYl&Prc~mXCd6P}+Ipx_A#fzFcwD`+ug!5wOQowO z&W$bXEnf+a3oD?rN3360d=Axr;H3KEf2SV|d2KHImP@)0)^g=GuDd~?dHZ{{9cSeK E2iXZz0RR91 literal 0 HcmV?d00001 diff --git a/widgets/material/img/fts_shutter_40.png b/widgets/material/img/fts_shutter_40.png new file mode 100644 index 0000000000000000000000000000000000000000..080433394dcb130ac0de25a35dbe5838fec6eec4 GIT binary patch literal 2762 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 literal 0 HcmV?d00001 diff --git a/widgets/material/img/fts_shutter_60.png b/widgets/material/img/fts_shutter_60.png new file mode 100644 index 0000000000000000000000000000000000000000..9939fe110a706090a3db2d16793e6d8b4eb679cf GIT binary patch literal 2972 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 YR3NB6+M8c>a$Zh?_clL|8aHazpVg`jIRF3v literal 0 HcmV?d00001 diff --git a/widgets/material/img/fts_shutter_70.png b/widgets/material/img/fts_shutter_70.png new file mode 100644 index 0000000000000000000000000000000000000000..f1b8a78f76093808987feba369ac846f7333bd9b GIT binary patch literal 3169 zcmd^Bi#wEQ8-M4-7$cd;aWz?L#7@F86>G*JMv_CJb(+bc^?eD&%!GU|X{;QY9223X zv@1;6opp+76tfzVmbHyxLQ&*=jOu$wUweJqzp(Fhz1Mr)&wahu^W4AtcmIA*s++5$ z5=ILH0DuzJ$=(A1U{cwOmV;K#{ob4leKeyTe4;%gLZg}V(;)yQIO2E+o*GU+5#kX- z4?Y|9TZk0^U=dV%$`RJHNy)6cSO}M=y<)@1@eI^hB~YJ4Mv+m;7~C$f67Zxrp)AxM zcvIH*l_Ks*CC!+nQ0k_q&5k)<72sA9!Fu&#{bx7v}!9w_Zjcn1^+EP zWqM(Z%_)7vKuAfZWe$@lnEX20=A4>|vY+ z<5AV0L^5XVdb0X)H-3jYS;2_5_S>{t9`Y=y` zikna}M%zcd@p4}1O-4)gl|sJyBTAnl55^@vU}`-ZUDXC>{#c zENLwc>`G6G`d93F*HKH|zR<=QOM`(W{N9oKEW&ZCg(pr#o9c}MKvSLX@m0L=oph$V zbxRwwf4(*k_l3boqQ8I2?9AM=hS38#v;1n;z`aWMswdtCn7{H# z&gHR21XpW%KWq(zVZ%JFtC9jzZDILd&5t@-N#KI3h^-b$MXk4r)P?pbbLq9Ls(UW^n{zl1}qz-WMatZiI4QE(m&pl*YjgSHR^ zQxHIoHF2|x8Tz2#4pcEaw^Y%d<0|I;nj1F_{ye;e+hv_>2g~;n9P0N!a`;!E&RRjk z)>up$dAIc+#htJB2u09-Md+3|h6w z0!+D^Q0plg><|^Nt8?KSHD;`A)L5Yhn9jQ+p=!6N0QH?o4p6U6_CVBEr9%~;EJa`+ zhdW{F&;jvEqc025>=)li?FZzsqvmTd+qjyMRM%Y<@!-O6Hn;0xDVX-eIxa?+S2(2% z(7sFK9PE4z8MM z^yZsEXPj2f@8p?dn^b?~6^(8qyu zGnURzbz$X3Rihi`?s+wnrW;)!G*#B=P)xV?#e2>ey^I0*_Y9v zNF-yn8y^DOjUPm>x8W4#qE#amnpU(T{dN^WtPT@f46@BHBRPpIuT!t-I-&dW}Q*LtgT(o_bt&@?_byCX{Uwbm8)SDHd0r?)DML(%yBR|?i6o-1lfas zBX9axzr-2tL?Avmt?dDKr5FX4o@|%Aw^t428{|YZ@zhI_V+cz4EoUmqQeIGWUNuMU z3dHYJhji0`goAMk4*ZV`1yNqEGMNdrvC2gYJ2#e^~0CoHf15tkIQ*X@YJ7U!F*GLL=*!HsBKR9*Eun8Bh&@xv{*+Z2T zzOc8=Nv8}t-A#4-`xaKN#VoF;`>uZoq&F^Ozheam1NfPw9m7xopHHQbh>|o4EZ;+r#@(NfW3|3%YO0n?gr7!Mw*3oRKa+sHJ?)JnPY4Y?s#)wx)U7*D_bIZLKWY z*q()sqp2}WN4Zp)q(zT3f+O(TwH&Z+5Sg?n{v!Xm@W8|+H2I9Y*O&{2~haklf0`ZpH{;IgIY{Tj%Q!Z=*FjtVe_CRpk z#>5XcDvZ8#MPgVBuNwxFC6KncJP7Ks#UhxA=$`T7WVLN=Pn-}=!fdVxOe;j$u)}rV zpY1)jhSX?ajofDb6yFIREKxZuIMwsca_|yUG7|JMO9yhN@JG5WXO3A11~1-;QCVCkiaPLOdfMtHZN%=Z|+RlP0U<-oGtF&U>ce#Wp-I48Kul9AS6` zHb2p)2k0DBHEH!t1tN{z`PgY!Bp8$m52eNU*PJ_pVqAO2Xve9VeCWRn~G`hL5d8I56CGvExYA75p(V@2TEier)S z4ZS@s8Y_)+O0|K9n@tffCC!ExY;H~EWI3qu|6M)2$9DB9taj+n8U4v`Qr@^|xivX> zH*32SXzZ_sSHPt*?$`8roSa4rsn!3&o9!o;FM7kWz4uspfS13xE%8A9L$9n&FIwPO Xz}v!LQ-y_alMDo^gR6bDEiLK4szHtd literal 0 HcmV?d00001 diff --git a/widgets/material/img/fts_shutter_80.png b/widgets/material/img/fts_shutter_80.png new file mode 100644 index 0000000000000000000000000000000000000000..2a1a37c2b4e00bc76697aa4cdcb8057fc44e9423 GIT binary patch literal 3357 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

(tD^Yk@L(JGR93ay`wP|rx~EX_w^*Z!aS zUX467{k1hnVUTi8F6;>#zgmaItKAZVVvT;=9uMn4P%A}AT<(ZvYpl_EmMLhUyXJ`& z_Vf^PPw5CkMUS1o;_h9)5owcPjM0axMdD zDEk6h!W|193C)0FGU4d*4WJaTHCix%e%g;~hmBb>GeNcih(=$@MB+-HAkaWGT`s-e zt5>7uF4%HUD{v^~`bDHbkX!MH!_P*z@WNJno&9y;6UzFCynUyP3%TF%El#K+&$*`9 zqS7v-lMIW8(A2BP1TRLRhkQ{92^ zLQTl(8dbj^1Nd|d7-$C|4X|}#f~&hV)w{wd$yLz?lKo-|ypuGk{xA8 zXVOgX>ah|IzpsIBJLOcFffP^(FT)I&Cf~$g{r<*aeagrisi&;?MD|e{B@PVa>W>30 z_RA+_KcA>pZ#w`7ent6kIE1T-3R7O?0eCSOQE;uhe zbNlsrxKl+*m$gyerlYaCsrR4uzNPXqtJ%_)k_pl8k4YPX3V6M3AjlRHvz$l1fN3d5 zzlI}gjWkB#wEWXdHM)#T?Z!6xgNgoc-&+NdPyeL$s(r8T_fWsR92|ShK7Sz@0^pAx zu+&kVDIEfEz9R+kINdntlru=^56mD%9c%Uzwq2g~whD8cl)qu0Ub#lfjoy|f*%`3Z z&}s2?vLtJrQ0n&yek?^Lcm?LTU3ynq62#enJX>C%P5;MIdv~~w_0`%`wYu5`k+4SO zKpd=}oS(2C=oFBt^IyZ_Fc?-Y<}-xnVr?dv#HQ#gBbH=9LD09#GPQYX`S;I1qUav7 z3DAH7g^S(T;2mF#YE=|*pA1Ct7D&V+iPbQ*QOy%@PH1*(A5!X>f6@1PRZpe~$EX}M zDeJmkp0t6UeGq7h(hB5pu`#yZb>OMFa-8?i!zVd`b`C3$ zd}&6*{-smY3N5#@$o!DMzbrD^u|e=|WQ^WppT}Fo8k5Wl=RMLINo4@dqPg#%Y4?{BOA#ro=T z=og2*#s@X-%wSk$`qs`x`9MfU8dCwk@_{MOFB@NZ+sw%_97~&fFnM^Da3-+)J0|TA9)`2@RhF=N*4~O$eyr zC&&HcPj&qEt@E!b7VC-r$NF(4`{{!R-<_=Nk1k5J^hXPSNW@@|o53dsNkHgn2;xq< z$enQnmH=T5%@z4fEEO_kw*T*iUq0w)cjKH6))KtzDhpZk|C$cf7 zSqPrnpYV9M>Vp+e!_TJ+KA5Y?G9%IThoK&@z*yY--t|a%G8f~q$p!&#eecrk%Tx~V z*dMyQcKZ`s*~twtCi`Uqg7RABTG}4XXkklwYd*%l} zPc`L@$^ZbUd40cUKL9{pt-f$Ya3%fOgG->$PjWw)e905S(nAaZH1F0|H^QK5+9vi6yG+!R6#5AutK)a%B5tO)Jfn;{!fNQDp z)k@@Eg`8b@GdK?t3Q53p3N#e2M-;(o+2SYoSAB;Cf&!f|%Bu}#t0w(lJ5@Nzykbx-vOZyue^seg`0C)X^Pu;OBUIWSTn@Jp}A07Q16@kTN^Y7SWf4-|d zz33o&TFQ@YDDICm_qIKp96FiJt-9nw9ercm`pfPQC9UlSUdB{oi%4M{7@DJeEiH&raTHgL32uDE%m zuE-<{nT=JLzG|+A=%NfeU}(5|TV>nY7*#4(F4SJ^VBdBhj!1fYrx)tZ#M83)P*q-v z566y918hEumTHX#O*_X*I(#@XKhClp{f5Xs{g1db4=Mph^CNyNBfjew)Yv+WAzrYO zNC#3nn@r-=-Kd0Tw2a4+QuVN^cR@|bABxNQ1hO7f)u^mI&yY(V7NEK0hoGFf$P@dEwv`(O>1@SP~8mh`?h==Xy4SYuwrQ!DZGfU}??Jsv{iQ6=c z*!VOn2WY5{d;$@f=6nvT9Y)`|GMF_I)eT3_9lx^R%gJjO)VSqplJsAQy9Z)mdZ~L$ zgSuAw2@&F+B=A>__l-Aq6o;NgLsbzmY1IzXtuswyqQa{uG^d6WJdN1w+G*)CVZy$6 z@*P`m3J)wp?>- z4a~*rU9(k(s3-Aouo_J7O2y&|!f&<;c63U|_JSK_wo@0P_!jdZFR{5{103!0aP=EY z8`=Q6PZn|z3hu~^^#=VXVciA2>LSl*Tos(ix=}Z*WfcsnI{5JT)^i}gTY=Rs+JRUX zc)E7ZA{u!a-oqQjfQ>-6WL6QCA`L<*Pa1-OV(d_xEzK$sdZ?gJ3w3P23dlDi^;fX| z7F_+4$hya7|Jmk$OR%qO{*&AO<8bmZ?N=taLr_>@I!sSJldx;uO>=V^P{)Z+ty|oQ zh$?`pZLQBYmO zuqUb8rzVvfuMwgPrc#Bmp2m0&$F-OWOI~3P0qty?&#Lg!L~9o3&bEtoXR}OyGj-G{ z;SG3$!_NoPIZv1;c932m*i&7cl*%JwYN@9t3vdg%;GfG6moi7*mphxkzq;vc0J*bQ zr&<&P}~1V)#}h#5Aj z(&w(!UYT0rL~$v9{`Mzfwzk8qWX-qOGwBJwPp=gXzzPq86@if6P7uqwVmJn`gXcM8 zqq-qn+a8NR~ZA9d7doZG$e_GdQhjZ#A?${ z(;+*$TF>odO2R&Fy7O}{YHxPP;OpeB`$hGEU5t?Nkdh8uf-e^l)Qo+X7CKbl8pjmg zm~A@(%@O%g~FOkVVe&RLOb<9Y~*ftErh<#z-75`kWRy=v+SVybb%2Kd+ zq95Nsqr2Idyj&`G1-l(#giCf%P6a zxDZqsr*6O?m$Yl(3qO1rMdOQ~UhWvggt?va4^xoKD+5}fyaxLx5(-w{04t=@h-KyR z>dVd~`llJ^&00{XDi>ZaOqgBp&z)831M@juso8=FcJoEsYI3HE1|A+p@qmG0Td7i<|xV#K?DaNDKc46NReO_2owS`TSZVo zCRb6Z6pL2H2nkp~K#+=x$`Bfm$%X(`0tS5NUR+)M;l1|)`% z+P)grf-xA(YWE$kJ{SxnLcU6PFp|*QPyl{3W8DH`eUF93a#-w8jMJfGUx(_sN3p^~ zeL`7>PQ*M4-2yhRb9Z&x6aVV%z;IMQT?;Q-Qd=nfQ{aK~F`)$}A6Iv+5yatsHLdkc zE`cld=v`0Qp-JJllMQ*FT^J&i*%jxaP`+ zqNLT$wceC5BWU~buy)Ud6fAur=t|z$M8wmcA|ve-2f6dS* zn%rgQaygj+P@Uut9hG_UaHfWxd5Ci3Mm(-_v7IAdk{q{x|085PWujx@Lv$dgVd)Fl zj!7TL!5WYASQ_1YUJ^d4;cd-tUXaiXhQ2Wn9P+Qs83o z7!XjInEw{wRKbkVL=Kp&<3AvR0IY?{|6_;1eNm_+<8>*Cs27`|pI*{b|I8PTh$1eW zxjb*? zYpK8iGd2@qPy6+r3b}vCE!ei_XO2zC^4n#?jDXAoPpW(yjy-J!oMnBOZknIdPcP%z z`tU!*$`fS}=A8BNxOBqKR*fWG%o#n&QjNB1nSHRgi7GlCywosc&c6rCB-O01 zvavyt3%SC?(9fc0zvA1%BxyZ=1NLe~s)LpS9KY4SG32U+C-!>u8LQXGz*osO*sGaU zB!<8=CTta>;JvhBEkjUHSNGYZxJw--mvP7Ff?~c(y{=eA92_1L)!1z}ec?=DZc~$C4QfQQvmg`MxCT{H`4KviViVLaQ0p{JWlt)}tG&;ligI{EUJ=ww!m1V?b}&p92sNK#zyEpzhyc=yCpBFm zl}4$HPL^mUGWGd50@bWoSdtS!WezLOx}~;40J4Rgv7<1i>%t1IAG__UENw`&QiZ1@ zM|iOs$n^!TfnDy+v;d__1i2o^f~Q&m{E`Y|0nta$Bm#1X0}iZ@hfB{;>F zxW3Fv#s(#C6BoDiF>P#NGLG-bX(Bu`PnmC~#hdCNS5LE!(9cG8XJ(9Bc}IB=aQw$o zQ)ZEO7u^h(jU9}T4W#fEMz-Wgd;3uErB40=1iMjvp%cKU;?R3jNq4B@s0AKLr@YuX zXNFd8Br~I5b^j_9@6`^wu}*Zm$Jx3y@9p%ErKj08F28=FssC|)P7hL)win@-jlW0o zv)vv>y}5Q{0vQcR)R$KRa!_dmLMPX*!SS(#CW6~Q8ts{sic@^u$#l|al(aKW*l?j%W zbMI$=yFbJQtfYB9H(i&`sztZaoJvnz{=0a=?M&-05jLUq#$s=>i@5888EDNV}dYt!U|CyvnNs6QD>yPLG^r2;r|) zKl+Az|MIUdgj6O@{@}>Nl!gBAVsYduk`z8gOr&1#*c3^|Zvq;1ke1ww{C&n!CrM3l zBJXGGkM^7j(DhT+-QQ%Z>H0NHKW!b0Jt%o|FRS;W34Hf!;+X@28t!n+=!e5^8lRth zxm#cwZ7PqxH5--3XsB$7-7R=Gl}5>ZGkRuu@OcD??th+WcQMN_DDZVg8n))3#B^O6 zrTrHT1>C`Vio=RPYGEv5Pw3^zgj>;koMgUM^D|K6gqBS?H-$s>Y-C;nWGXv3og1%y z1h5{ItZm3$&|TL@6SO)wL44SzirdX;9T;~@>rbhfN^b&8MnzDoJM3D; zTq@IFC~!rQlymQBCNj6pYmUVu66}#G%uTSpw0J_q9%k{3oso)lUE0|yh^{+WuSIo79~gS1)lFIl1`nre{yX>1%$6{w(^Nvg%-*>0{? zTtpYWb!*~Ov~X`t$kcq)YykQVoAMNFR(uB>!7mJ4IlD}5&=(a!sx@UYQ?|`*(Y`6m zqovsE=#GDU(X-sT!$Wh~CcWADkXe9E{5)N7FH zFJwF~K|uh|?Fid}m?ZA+EiAMd1s-`tc)1SCs>GW{XIXDwZcJA_$p-m`4`#{a=|pWRJ3)eSFF*T9dj#QhL!vSCU`br zIOPn1_A_nh+~>rSb$~R@M1KJj7%g4qgm(g5)Mjg=6xD+2Aht?kqW<}b6NqRzn8rq* zd)zb{Odd{;8qZl_R`TiBeq}pv(z zXs)%jX8`}69c{>+?H^~>XN-G5pt3co(`ys2IXX~a^{Y>_ZWS#bQmx@$^A2C7*Gy%epHC+`-u`a- zxW8bJN!tA3a1Ep0Nq<9zp!ZK(L+)g@x8*4-UO~`WO<`PLHtyL89U>*$3Gz*X?o5bZ zeOU$vnhb@vlyUcYD>v?>OnYLzUd2x>RP7NE=;hpf{>n)n6!79`e4wG*i0=xl!;~dD z)AIXLRckJZHf1qvlaTG-oD=C7BMz(P9Nlcn{MGLvc$2coBxl~WC;fb&3ocr%G2^xv z-|%5EP|!di=Z5f`bUNZrxeOG%ehibBujgy~|3(uN`ZKyn|E5>}mAf$YKYqc)917pC TbMKV05;ErQ=H*)B%uM+Y($GW# literal 0 HcmV?d00001 diff --git a/widgets/material/img/fts_window_2w.png b/widgets/material/img/fts_window_2w.png new file mode 100644 index 0000000000000000000000000000000000000000..aa4843536afc68d92294104f275ccd49833cbde3 GIT binary patch literal 2017 zcmeAS@N?(olHy`uVBq!ia0y~yV0-|=9Be?5+AI5}0x8K7*NBqf{Irtt#G+IN$CUh} zR0Yr6#Prml)Wnp^!jq{s3=Hheo-U3d6}R5peHbY1F46GtHqZaXAqf{5LkR5TelXaW6!8(OSOiw`kJB?O1YNYjqAK7o@E3Up~cm7P@u?h#{`!e4*sTY>W0_`2C zfZfB*Al~x1o!qHkcGqThGO*t``b#8xa?mY_c81TX7x#8;HR64see-zK@hWk{ds0Bb z`ycckKm5DlF>8gM>XGY$kLCt)Z20kPkJKY>gR6Z%o_Bn>rNOe}>5pk2*7-24Sm5&G zn8d3e=Qvg!`#$vtljvUgbq5mJ?}XHx-aYHRFVl)OF@1L5XKj!z@V+O(Xu#YZvA*{p z-;Sww^X2)=)fms5SQ!hH<6hUpFk|LaL5>3MDrJVWXNNeJJrycpwVc6ZVElW^CH`Xy z2bg#aN(GuUeU7VUFbE`okV69_5HT>afe?!X2tg!>m21eq*eO_JoR?H<)TXw#W2@B1 z%Kegali4a%`Y+Fp*?ipF{#k>eHHRIdI{{rUE9vE0!CuDqV ziCk1+U$(uvVfsd|7y8NOd(10W9M3*rz@M+y@!tMi(q5w?frO0O@4I{2uO9LL-F>o| z!TI$suJb!T>|+8-+`YsBj=46q3Ueb4gMfp(E`8pm$&DOb=8T-=&{H92|V0C|M)xcSH;?1GXh(R&n>@u*w?bI=1crjzQ}at zeNUckj(wkNbG+A+`Ru3T5*8mS3X^MPjNMOAFWr!v-sr9G0k=-CL&MLiIBCWY^+o5p zCqD1q`_lLI5spX*(?Xn)R-_?KM*TBaJu5hWtE1R8v5OHkMZ4j zeL(n=R6+0js-Ro0E#`AiU$D8G7x7`q-St0iF>c?&t@m-SF=qnX?)#rN85(qDR`Tw+ zr?=xx!*w;rkZ*o9ZyTcTuuhNPsJTCCiwW<7rraan??}7>3wqnzm)0@L&4{ynA0ySw zuwCZi+Yi19hYp04J>B!TH=If5(0{iZb2A#AZ+j_sujFZs@_`z$hufDi+B9#vy|=Hp zckcU`bHCjT><{-^ojQ9ZzU*BqkIh-VYwhnIhD|=CeLzOwvCzX$?wopU{9C`UbDcVQ tDAh>f``*v)Yqoly9f9?R!{dKK2@E{RPj`FX;_(6nfTydU%Q~loCIFS#6eIuu literal 0 HcmV?d00001 diff --git a/widgets/material/img/fts_window_2w_open.png b/widgets/material/img/fts_window_2w_open.png new file mode 100644 index 0000000000000000000000000000000000000000..eb1e8739309359d94501fb842e28dfcb992e8bd5 GIT binary patch literal 2907 zcmd^Bc~nzZ8h;5PrXeVcN)V8(Rgo=n5XC_ZAW^IWMOg!q7{Cf9$Yufo2?zz16f6QF zWsw$87Qre6!jgb7I8s?eLP|gaaX}-SAcO{RUU0@g=5)@PbJ~CA%sbzE@1Fa;Z@b^` z{_eZv?s`ZSxdjOTfU3*kgB}0?5i4#49Gppb)|Lalw4KCyIEaGh4VSzwspdwic5zy!nP)J5;!y zz6E=eCD+{}y@!-Oh%@AliyFEt+5l2bx*I8_mg&gYVB2QW@^v<_Ez2nW460xD1hI`d zoiBrGvM0`q>!9|xWaZS|qxmq*-TQhg0$ZY~*y(+RI-q_1q2%H&ABg_rw^Vg~%2DW} zM>%V*GvKBXh~Vh^41#|{$@X4cIS>?b+;c#mPf%{@nJvtRW*Lqaz-ZG; z?#ciR{ZCON0H9zQ5KsUJTp^!y>(ktvZZO=OpueCTgOFZaz<>)d0IeFbDAhzU{v-@Q z2^0W|QV0SAym+0XzEP5`u3J4g>+}1K{9!rmS7uV)IA3Heol1$hH>dJ)+nctK_$L|r z7k%URPIb`zdykLuNSiWKYqd=Y43E;kO?Sk22t%oQnNnIjQRgT;y5w)%LTi}cBy zjRb~9DgLb>GEQm0({GYLai`@6C@PD7j%;qs1&p0pt0wF+pLO^y=vf$+*cXr@4~qh0 zuxo;0=p8#7R|JuX_EfLl{*M>P6s?hZZ%qh1GLxeBc*Kv=vG5(bAy=JHl0ISK*o5y| z(YbXNbc$VQFN~=Y*|QZoMp7w0E$wyG*H?{1FnkvRt@cmW{;${%CtFVwj$K1LW=l11H;2N8DPvjcDBBM}&kKkfLp z93F|d1UR9u}wX1~q5D8kgAYDzx)LEYbxGtPkn$lvlTuv4R z3s33{CnB8UqVvqamWb5?`DtCNoMvfk_)+-674vTuTk?;0|1g%3l=M*C zwp&@Y8{hk%JN&8j;Pc;^%{;G7?ner}tg|lW$dEHPZB@IQfqwZ}n5G#ogWyLNm4^lNd)=1?B;EGn zgfrWbvY88D5%YqNR3bfUJ>za6801QwbOvlk+|09QPV`}Y_pI(KqTJ%=)pEATlVsz&TCgv3wsk&O zHS6Psq&L}(=Nmfbu6Ihz688DxbFWaS%%ifsj*QNq3eJ~4wKx%HW^(Gxx;Hzw4pQzL za)Ga4RKdfBOo~ZG!qd%BnhnK`xuw$gIFPaJ*)dw8#hcYVQdd(^G+rb^`?FY^2n?gr z=80tdxFC}A_yf*a@nK^b#XOCYQ&1|}TWkutJjh!Al48Ec1f)1+bjh`e@~|kk_BWw$6 kiqP8mzx%KEXp{r;a%fqZ^->OdUQvgOv+Kb-j)dfY00Oxj{{R30 literal 0 HcmV?d00001 diff --git a/widgets/material/img/fts_window_2w_tilt_lr.png b/widgets/material/img/fts_window_2w_tilt_lr.png new file mode 100644 index 0000000000000000000000000000000000000000..4447d0d49d62723cfd331ba11c5628f028cebd83 GIT binary patch literal 3713 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 F`Y#D+;YI)e literal 0 HcmV?d00001 diff --git a/widgets/material/img/humid_humidity.png b/widgets/material/img/humid_humidity.png new file mode 100644 index 0000000000000000000000000000000000000000..7f3d244ffe5e6cc1a8b307e6849fab7e36ce1846 GIT binary patch literal 8971 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 S!zz0Ax8_4V)#87izWEalrCK& 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 Rm+ySjS!1(Pl_&A>{|?H~r40Z8 literal 0 HcmV?d00001 diff --git a/widgets/material/img/light_light_dim_10.png b/widgets/material/img/light_light_dim_10.png new file mode 100644 index 0000000000000000000000000000000000000000..6f6427480333950dcf5b07fd86fc79e388c146c4 GIT binary patch literal 4299 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 literal 0 HcmV?d00001 diff --git a/widgets/material/img/light_light_dim_30.png b/widgets/material/img/light_light_dim_30.png new file mode 100644 index 0000000000000000000000000000000000000000..a40b202f75530075ddb9cf4f20c3c7f37c6183c8 GIT binary patch literal 4519 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 JYEL5*{{hSpfolK& literal 0 HcmV?d00001 diff --git a/widgets/material/img/light_light_dim_40.png b/widgets/material/img/light_light_dim_40.png new file mode 100644 index 0000000000000000000000000000000000000000..e09969da36ddc4a00befd47c00b29d83279b66c7 GIT binary patch literal 4667 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 literal 0 HcmV?d00001 diff --git a/widgets/material/img/light_light_dim_60.png b/widgets/material/img/light_light_dim_60.png new file mode 100644 index 0000000000000000000000000000000000000000..a3b10ce414ef90c40ab5dbbd051745c8f68996f4 GIT binary patch literal 4883 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 literal 0 HcmV?d00001 diff --git a/widgets/material/img/light_light_dim_70.png b/widgets/material/img/light_light_dim_70.png new file mode 100644 index 0000000000000000000000000000000000000000..7a4fbc03cc5a45790581cdf9afdc2a3a489f2d8f GIT binary patch literal 4975 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 C9Ff-m literal 0 HcmV?d00001 diff --git a/widgets/material/img/light_light_dim_90.png b/widgets/material/img/light_light_dim_90.png new file mode 100644 index 0000000000000000000000000000000000000000..ad7c0b560567ea9fac2f1efd398326b47ef2660f GIT binary patch literal 5122 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 literal 0 HcmV?d00001 diff --git a/widgets/material/img/temp_temperature.png b/widgets/material/img/temp_temperature.png new file mode 100644 index 0000000000000000000000000000000000000000..e1ff8635e027ba1c3f0d6df344b37be203e337f7 GIT binary patch literal 2681 zcmdUxc~DbX7KdLJ0@5KQ6kx()K*VWDfNWuj4of0o49Ye)+BMZZRrAMGb=OqCIE%z^610V=Csk${#;7iUR|7-9dq#Znx7MOG*Et8f?hYmy~ z9jBYPC(xql0d!haR?0*AXAq=m=}JTutA~cj-(>x*WGEPg#ET5Z*!S&TO^22nNvz3p$I-%%I}E35M~Q;2 z9}3Ce{RLWxWA?qPTD*20Ul5FYG_CW=dJfZClH4F=Q~0_$kBY>((DttdlN5n#^{f z;gAkL!}SY}facFp{zkt2&(g!gAlM@jnDPxs^;L#V_5Mzk3^YOwa@(_PZAA3`O*q$NYEB9}4hqIsc*t|C^8F zm`>H?2>x+5(V)PWJYsxr#$FUzoaGUlpa#f(FZYqiJ&RvK)@+?feQ7cQ#|zaG^_s^_ zRu^z3Ys9x&!f@Bs9|Kg-TPJSY8R@6mXKo}Kf&F{W7j%R#>%vJuoGfKUCO?68Jw1w! zrBW9>+Fp!?fSw5Qqt1J@DKqFt!P{VfM>jlA83Tq?p^j;eUYrQkQHeRBm~JXfUAkBT zP@Z;TbdmKDGUh4fB8%V%S_1!E@>V38STW{E=)OQU5kk23`$7jA9<;1qrwQ!OplVjd z-mR?=O_3;}4=b6vY{gNd(mmDHY*>BvLtVd=v{UiXWS`?+dwGRH#n$9RGf~{uJ{QiE zn@G7Ev;BlbFtZv#$(Po^k@)Y8$J+*SVtCfJiX6pRc}py)+-p4=I5DOn>8el9kGI3! z^6R`18l-rgiS;bm`7%a>Hs4$ej+UKI;;*bX-CV2al{KA(h!rTYleVM^wOz87IIy`R z7OdCfR0db5SEp<%_b(a?-4rRlDic4juU_#TfHH(~{lLKb@7%X2C@huHRO#IwtU=Ns zwYkS>J~q=JK>*wb<3I>t5FD*C;Q0UgI*0CfbF+}JGh=H#y7Bk>bvaO8@?|$M;7-a2 zf4;G!;9MD_d99@XW-R1DWt?*HYNxPl)W8`j8-_Kfte)IGPSI|k2MNnEwWG>D`f!#hRk`I)r6E*#onQ=Z85!nH@6D{b95 mk6$m=p?^QWMG&+wNCaiKAY{;B-iNeQk-H!CajpHFn)@$m&2c0E literal 0 HcmV?d00001 diff --git a/widgets/material/js/material.js b/widgets/material/js/material.js new file mode 100644 index 0000000..51e5f4d --- /dev/null +++ b/widgets/material/js/material.js @@ -0,0 +1,274 @@ +/* + yunkong2.vis material Widget-Set + version: "0.1.4" + Copyright 2018 nisiode + forked by Pix 7/2018 (humidity, shutter) +*/ +"use strict"; + +// add translations for edit mode +if (vis.editMode) { + $.extend(true, systemDictionary, { + "title": {"en": "Title", "de": "Titel", "ru": "???"}, + "subtitle": {"en": "Subtitle", "de": "Untertitel", "ru": "???"} + }); +} + +// add translations for non-edit mode +$.extend(true, systemDictionary, { + "Instance": {"en": "Instance", "de": "Instanz", "ru": "?????????"}, + "open": {"en": "open", "de": "offen", "ru": "?????????"}, + "tilted": {"en": "tilted", "de": "gekippt", "ru": "?????????"}, + "closed": {"en": "closed", "de": "geschlossen", "ru": "?????????"}, + "on": {"en": "on", "de": "an", "ru": "?????????"}, + "off": {"en": "off", "de": "aus", "ru": "?????????"} +}); + +vis.binds.material = { + version: "0.1.5", + showVersion: function () { + if (vis.binds.material.version) { + console.log('Version material: ' + vis.binds.material.version); + vis.binds.material.version = null; + } + }, + tplMdListDoor: function (widgetID, view, data) { + const srcOpen = 'widgets/material/img/fts_door_open.png'; + const srcClosed = 'widgets/material/img/fts_door.png'; + const valOpen = _('open'); + const valClosed = _('closed'); + + var $div = $('#' + widgetID); + // if nothing found => wait + if (!$div.length) { + return setTimeout(function () { + vis.binds.material.tplMdListDoor(widgetID, view, data); + }, 100); + } + + function update(state){ + var value = (state) ? valOpen : valClosed; + var src = (state) ? srcOpen : srcClosed; + $div.find('.md-list-value').html(value); + $div.find('.md-list-icon').find('img').attr('src', src); + } + + if (data.oid) { + // subscribe on updates of value + vis.states.bind(data.oid + '.val', function (e, newVal, oldVal) { + update(newVal); + }); + + // set current value + update(vis.states[data.oid + '.val']); + } + }, + tplMdListWindow: function (widgetID, view, data) { + const srcOpen = 'widgets/material/img/fts_window_2w_open.png'; + const srcClosed = 'widgets/material/img/fts_window_2w.png'; + const valOpen = _('open'); + const valClosed = _('closed'); + var $div = $('#' + widgetID); + + // if nothing found => wait + if (!$div.length) { + return setTimeout(function () { + vis.binds.material.tplMdListWindow(widgetID, view, data); + }, 100); + } + + function update(state){ + var value = (state) ? valOpen : valClosed; + var src = (state) ? srcOpen : srcClosed; + $div.find('.md-list-value').html(value); + $div.find('.md-list-icon').find('img').attr('src', src); + } + + if (data.oid) { + // subscribe on updates of value + vis.states.bind(data.oid + '.val', function (e, newVal, oldVal) { + update(newVal); + }); + + // set current value + update(vis.states[data.oid + '.val']); + } + }, + tplMdListTemp: function (widgetID, view, data) { + var $div = $('#' + widgetID); + + // if nothing found => wait + if (!$div.length) { + return setTimeout(function () { + vis.binds.material.tplMdListTemp(widgetID, view, data); + }, 100); + } + + // grey out the value in case the last change is more than 24h ago + var curTime = new Date().getTime(); + var lcTime = vis.states[data.oid + '.lc']; + var seconds = (curTime - lcTime) / 1000; + if(seconds > 86400){ + $div.find('.md-list-value').css('opacity', '0.5'); + } + + function update(state){ + if(typeof state === 'number'){ + $div.find('.md-list-value').html(state.toFixed(1) + ' °C'); + } + } + + if (data.oid) { + // subscribe on updates of value + vis.states.bind(data.oid + '.val', function (e, newVal, oldVal) { + update(newVal); + }); + + // set current value + update(vis.states[data.oid + '.val']); + } + }, + tplMdListHumid: function (widgetID, view, data) { + var $div = $('#' + widgetID); + + // if nothing found => wait + if (!$div.length) { + return setTimeout(function () { + vis.binds.material.tplMdListHumid(widgetID, view, data); + }, 100); + } + + // grey out the value in case the last change is more than 24h ago + var curTime = new Date().getTime(); + var lcTime = vis.states[data.oid + '.lc']; + var seconds = (curTime - lcTime) / 1000; + if(seconds > 86400){ + $div.find('.md-list-value').css('opacity', '0.5'); + } + + function update(state){ + if(typeof state === 'number'){ + $div.find('.md-list-value').html(state.toFixed(1) + ' %'); + } + } + + if (data.oid) { + // subscribe on updates of value + vis.states.bind(data.oid + '.val', function (e, newVal, oldVal) { + update(newVal); + }); + + // set current value + update(vis.states[data.oid + '.val']); + } + }, + tplMdListLight: function (widgetID, view, data) { + const srcOff = 'widgets/material/img/light_light_dim_00.png'; + const srcOn = 'widgets/material/img/light_light_dim_100.png'; + var $div = $('#' + widgetID); + + // if nothing found => wait + if (!$div.length) { + return setTimeout(function () { + vis.binds.material.tplMdListLight(widgetID, view, data); + }, 100); + } + + function update(state){ + var src = (state) ? srcOn : srcOff; + var $tmp = $('#' + widgetID + '_checkbox'); + $tmp.prop('checked', state); + $div.find('.md-list-icon').find('img').attr('src', src); + } + + if (!vis.editMode) { + var $this = $('#' + widgetID + '_checkbox'); + $this.change(function () { + var $this_ = $(this); + vis.setValue($this_.data('oid'), $this_.prop('checked')); + }); + } + + if (data.oid) { + // subscribe on updates of value + vis.states.bind(data.oid + '.val', function (e, newVal, oldVal) { + update(newVal); + }); + + // set current value + update(vis.states[data.oid + '.val']); + } + }, + tplMdListLightDim: function (widgetID, view, data) { + const srcOff = 'widgets/material/img/light_light_dim_00.png'; + const srcOn = 'widgets/material/img/light_light_dim_100.png'; + var $div = $('#' + widgetID); + + // if nothing found => wait + if (!$div.length) { + return setTimeout(function () { + vis.binds.material.tplMdListLightDim(widgetID, view, data); + }, 100); + } + + function update(state){ + var src = 'widgets/material/img/light_light_dim_' + Math.ceil(state/10) + '0.png'; + $div.find('.md-list-icon').find('img').attr('src', src); + } + + /* if (!vis.editMode) { + var $this = $('#' + widgetID + '_slider'); + $this.change(function () { + var $this_ = $(this); + vis.setValue($this_.data('oid'), $this_.prop('checked')); + }); + } */ + + if (data.oid) { + // subscribe on updates of value + vis.states.bind(data.oid + '.val', function (e, newVal, oldVal) { + update(newVal); + }); + + // set current value + update(vis.states[data.oid + '.val']); + } + }, + tplMdListShutter: function (widgetID, view, data) { + const srcOff = 'widgets/material/img/fts_shutter_00.png'; + const srcOn = 'widgets/material/img/fts_shutter_100.png'; + var $div = $('#' + widgetID); + + // if nothing found => wait + if (!$div.length) { + return setTimeout(function () { + vis.binds.material.tplMdListShutter(widgetID, view, data); + }, 100); + } + + function update(state){ + var src = 'widgets/material/img/fts_shutter_' + Math.ceil(state/10) + '0.png'; + $div.find('.md-list-icon').find('img').attr('src', src); + } + + /* if (!vis.editMode) { + var $this = $('#' + widgetID + '_slider'); + $this.change(function () { + var $this_ = $(this); + vis.setValue($this_.data('oid'), $this_.prop('checked')); + }); + } */ + + if (data.oid) { + // subscribe on updates of value + vis.states.bind(data.oid + '.val', function (e, newVal, oldVal) { + update(newVal); + }); + + // set current value + update(vis.states[data.oid + '.val']); + } + } +}; + +vis.binds.material.showVersion();