From 237b946a0f3064e7b63cf7810484c6555ff8baf0 Mon Sep 17 00:00:00 2001 From: Billy Ernest Date: Mon, 6 Nov 2017 09:18:03 -0500 Subject: [PATCH 1/2] Added label field to options --- .vs/config/applicationhost.config | 1031 +++++++++++++++++++++++++++++ .vs/slnx.sqlite | Bin 0 -> 69632 bytes dist/angular-sprintf.js.map | 2 +- dist/editor.html | 5 + dist/module.js.map | 2 +- dist/pictureit_ctrl.js.map | 2 +- dist/sprintf.js.map | 2 +- package.json | 35 +- src/editor.html | 5 + 9 files changed, 1063 insertions(+), 21 deletions(-) create mode 100644 .vs/config/applicationhost.config create mode 100644 .vs/slnx.sqlite diff --git a/.vs/config/applicationhost.config b/.vs/config/applicationhost.config new file mode 100644 index 0000000..4b9bf47 --- /dev/null +++ b/.vs/config/applicationhost.config @@ -0,0 +1,1031 @@ + + + + + + + +
+
+
+
+
+
+
+
+ + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ +
+
+ +
+
+
+ + +
+
+
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..60882f1e430f70b7cc5f0cdcdf61a6894a308820 GIT binary patch literal 69632 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 
Metric
+
+ + +
+
diff --git a/dist/module.js.map b/dist/module.js.map index 52decf4..98dc7a7 100644 --- a/dist/module.js.map +++ b/dist/module.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/module.js"],"names":["PictureItCtrl"],"mappings":";;;;;;;;AAAQA,mB,mBAAAA,a;;;2BAGNA,a","file":"module.js","sourcesContent":["import {PictureItCtrl} from './pictureit_ctrl';\n\nexport {\n PictureItCtrl as PanelCtrl\n};\n"]} \ No newline at end of file +{"version":3,"sources":["../src/module.js"],"names":["PictureItCtrl"],"mappings":";;;;;;;;AAAQA,mB,mBAAAA,a;;;2BAGNA,a","file":"module.js","sourcesContent":["import {PictureItCtrl} from './pictureit_ctrl';\r\n\r\nexport {\r\n PictureItCtrl as PanelCtrl\r\n};\r\n"]} \ No newline at end of file diff --git a/dist/pictureit_ctrl.js.map b/dist/pictureit_ctrl.js.map index f496f0b..62b550c 100644 --- a/dist/pictureit_ctrl.js.map +++ b/dist/pictureit_ctrl.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/pictureit_ctrl.js"],"names":["_","MetricsPanelCtrl","kbn","panelDefaults","valueMaps","seriesList","series","bgimage","sensors","height","width","PictureItCtrl","$scope","$injector","defaults","panel","unitFormats","getUnitFormats","events","on","onInitEditMode","bind","render","onDataReceived","dataList","dataListLength","length","push","name","target","value","datapoints","index","splice","xlocation","ylocation","format","decimals","bgcolor","color","size","bordercolor","visible","lastSensor","subItem","addEditorTab","scope","elem","attrs","ctrl","$panelContainer","find","pixelStrToNum","str","parseInt","substr","css","sensorsLength","valueMapsLength","sensor","ylocationStr","toString","xlocationStr","sizeStr","valueMap","valueFormatted","valueFormats","renderingCompleted","templateUrl"],"mappings":"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","file":"pictureit_ctrl.js","sourcesContent":["import _ from 'lodash';\nimport {MetricsPanelCtrl} from 'app/plugins/sdk';\nimport './sprintf.js';\nimport './angular-sprintf.js';\nimport kbn from 'app/core/utils/kbn';\n\nconst panelDefaults = {\n\tvalueMaps: [],\n\tseriesList: [],\n\tseries: [],\n\tbgimage: '',\n\tsensors: [],\n\theight: '400px',\n\twidth: '100px'\n};\n\nexport class PictureItCtrl extends MetricsPanelCtrl {\n \n \n constructor($scope, $injector) {\n super($scope, $injector);\n _.defaults(this.panel, panelDefaults);\n\n this.unitFormats = kbn.getUnitFormats();\n\n this.events.on('init-edit-mode', this.onInitEditMode.bind(this));\n this.events.on('panel-initialized', this.render.bind(this));\n this.events.on('data-received', this.onDataReceived.bind(this));\n this.events.on('data-snapshot-load', this.onDataReceived.bind(this));\n }\n\n onDataReceived(dataList) {\t\n\tvar dataListLength = dataList.length;\n\tthis.panel.valueMaps=[];\n\tfor (var series=0;series= 0\n }\n\n switch (match[8]) {\n case 'b':\n arg = parseInt(arg, 10).toString(2)\n break\n case 'c':\n arg = String.fromCharCode(parseInt(arg, 10))\n break\n case 'd':\n case 'i':\n arg = parseInt(arg, 10)\n break\n case 'j':\n arg = JSON.stringify(arg, null, match[6] ? parseInt(match[6]) : 0)\n break\n case 'e':\n arg = match[7] ? parseFloat(arg).toExponential(match[7]) : parseFloat(arg).toExponential()\n break\n case 'f':\n arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg)\n break\n case 'g':\n arg = match[7] ? parseFloat(arg).toPrecision(match[7]) : parseFloat(arg)\n break\n case 'o':\n arg = arg.toString(8)\n break\n case 's':\n arg = String(arg)\n arg = (match[7] ? arg.substring(0, match[7]) : arg)\n break\n case 't':\n arg = String(!!arg)\n arg = (match[7] ? arg.substring(0, match[7]) : arg)\n break\n case 'T':\n arg = get_type(arg)\n arg = (match[7] ? arg.substring(0, match[7]) : arg)\n break\n case 'u':\n arg = parseInt(arg, 10) >>> 0\n break\n case 'v':\n arg = arg.valueOf()\n arg = (match[7] ? arg.substring(0, match[7]) : arg)\n break\n case 'x':\n arg = parseInt(arg, 10).toString(16)\n break\n case 'X':\n arg = parseInt(arg, 10).toString(16).toUpperCase()\n break\n }\n if (re.json.test(match[8])) {\n output[output.length] = arg\n }\n else {\n if (re.number.test(match[8]) && (!is_positive || match[3])) {\n sign = is_positive ? '+' : '-'\n arg = arg.toString().replace(re.sign, '')\n }\n else {\n sign = ''\n }\n pad_character = match[4] ? match[4] === '0' ? '0' : match[4].charAt(1) : ' '\n pad_length = match[6] - (sign + arg).length\n pad = match[6] ? (pad_length > 0 ? str_repeat(pad_character, pad_length) : '') : ''\n output[output.length] = match[5] ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg)\n }\n }\n }\n return output.join('')\n }\n\n sprintf.cache = {}\n\n sprintf.parse = function(fmt) {\n var _fmt = fmt, match = [], parse_tree = [], arg_names = 0\n while (_fmt) {\n if ((match = re.text.exec(_fmt)) !== null) {\n parse_tree[parse_tree.length] = match[0]\n }\n else if ((match = re.modulo.exec(_fmt)) !== null) {\n parse_tree[parse_tree.length] = '%'\n }\n else if ((match = re.placeholder.exec(_fmt)) !== null) {\n if (match[2]) {\n arg_names |= 1\n var field_list = [], replacement_field = match[2], field_match = []\n if ((field_match = re.key.exec(replacement_field)) !== null) {\n field_list[field_list.length] = field_match[1]\n while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {\n if ((field_match = re.key_access.exec(replacement_field)) !== null) {\n field_list[field_list.length] = field_match[1]\n }\n else if ((field_match = re.index_access.exec(replacement_field)) !== null) {\n field_list[field_list.length] = field_match[1]\n }\n else {\n throw new SyntaxError(\"[sprintf] failed to parse named argument key\")\n }\n }\n }\n else {\n throw new SyntaxError(\"[sprintf] failed to parse named argument key\")\n }\n match[2] = field_list\n }\n else {\n arg_names |= 2\n }\n if (arg_names === 3) {\n throw new Error(\"[sprintf] mixing positional and named placeholders is not (yet) supported\")\n }\n parse_tree[parse_tree.length] = match\n }\n else {\n throw new SyntaxError(\"[sprintf] unexpected placeholder\")\n }\n _fmt = _fmt.substring(match[0].length)\n }\n return parse_tree\n }\n\n var vsprintf = function(fmt, argv, _argv) {\n _argv = (argv || []).slice(0)\n _argv.splice(0, 0, fmt)\n return sprintf.apply(null, _argv)\n }\n\n /**\n * helpers\n */\n function get_type(variable) {\n if (typeof variable === 'number') {\n return 'number'\n }\n else if (typeof variable === 'string') {\n return 'string'\n }\n else {\n return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase()\n }\n }\n\n var preformattedPadding = {\n '0': ['', '0', '00', '000', '0000', '00000', '000000', '0000000'],\n ' ': ['', ' ', ' ', ' ', ' ', ' ', ' ', ' '],\n '_': ['', '_', '__', '___', '____', '_____', '______', '_______'],\n }\n function str_repeat(input, multiplier) {\n if (multiplier >= 0 && multiplier <= 7 && preformattedPadding[input]) {\n return preformattedPadding[input][multiplier]\n }\n return Array(multiplier + 1).join(input)\n }\n\n /**\n * export to either browser or node.js\n */\n if (typeof exports !== 'undefined') {\n exports.sprintf = sprintf\n exports.vsprintf = vsprintf\n }\n if (typeof window !== 'undefined') {\n window.sprintf = sprintf\n window.vsprintf = vsprintf\n\n if (typeof define === 'function' && define.amd) {\n define(function() {\n return {\n sprintf: sprintf,\n vsprintf: vsprintf\n }\n })\n }\n }\n})(typeof window === 'undefined' ? this : window);\n"]} \ No newline at end of file +{"version":3,"sources":["../src/sprintf.js"],"names":["window","re","not_string","not_bool","not_type","not_primitive","number","numeric_arg","json","not_json","text","modulo","placeholder","key","key_access","index_access","sign","sprintf","arguments","cache","hasOwnProperty","parse","format","call","parse_tree","argv","cursor","tree_length","length","node_type","arg","output","i","k","match","pad","pad_character","pad_length","is_positive","get_type","Error","test","isNaN","TypeError","parseInt","toString","String","fromCharCode","JSON","stringify","parseFloat","toExponential","toFixed","toPrecision","substring","valueOf","toUpperCase","replace","charAt","str_repeat","join","fmt","_fmt","arg_names","exec","field_list","replacement_field","field_match","SyntaxError","vsprintf","_argv","slice","splice","apply","variable","Object","prototype","toLowerCase","preformattedPadding","input","multiplier","Array","exports","define","amd"],"mappings":"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","file":"sprintf.js","sourcesContent":["/* globals window, exports, define */\r\n\r\n(function(window) {\r\n 'use strict'\r\n\r\n var re = {\r\n not_string: /[^s]/,\r\n not_bool: /[^t]/,\r\n not_type: /[^T]/,\r\n not_primitive: /[^v]/,\r\n number: /[diefg]/,\r\n numeric_arg: /bcdiefguxX/,\r\n json: /[j]/,\r\n not_json: /[^j]/,\r\n text: /^[^\\x25]+/,\r\n modulo: /^\\x25{2}/,\r\n placeholder: /^\\x25(?:([1-9]\\d*)\\$|\\(([^\\)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-gijostTuvxX])/,\r\n key: /^([a-z_][a-z_\\d]*)/i,\r\n key_access: /^\\.([a-z_][a-z_\\d]*)/i,\r\n index_access: /^\\[(\\d+)\\]/,\r\n sign: /^[\\+\\-]/\r\n }\r\n\r\n function sprintf() {\r\n var key = arguments[0], cache = sprintf.cache\r\n if (!(cache[key] && cache.hasOwnProperty(key))) {\r\n cache[key] = sprintf.parse(key)\r\n }\r\n return sprintf.format.call(null, cache[key], arguments)\r\n }\r\n\r\n sprintf.format = function(parse_tree, argv) {\r\n var cursor = 1, tree_length = parse_tree.length, node_type = '', arg, output = [], i, k, match, pad, pad_character, pad_length, is_positive = true, sign = ''\r\n for (i = 0; i < tree_length; i++) {\r\n node_type = get_type(parse_tree[i])\r\n if (node_type === 'string') {\r\n output[output.length] = parse_tree[i]\r\n }\r\n else if (node_type === 'array') {\r\n match = parse_tree[i] // convenience purposes only\r\n if (match[2]) { // keyword argument\r\n arg = argv[cursor]\r\n for (k = 0; k < match[2].length; k++) {\r\n if (!arg.hasOwnProperty(match[2][k])) {\r\n throw new Error(sprintf('[sprintf] property \"%s\" does not exist', match[2][k]))\r\n }\r\n arg = arg[match[2][k]]\r\n }\r\n }\r\n else if (match[1]) { // positional argument (explicit)\r\n arg = argv[match[1]]\r\n }\r\n else { // positional argument (implicit)\r\n arg = argv[cursor++]\r\n }\r\n\r\n if (re.not_type.test(match[8]) && re.not_primitive.test(match[8]) && get_type(arg) == 'function') {\r\n arg = arg()\r\n }\r\n\r\n if (re.numeric_arg.test(match[8]) && (get_type(arg) != 'number' && isNaN(arg))) {\r\n throw new TypeError(sprintf(\"[sprintf] expecting number but found %s\", get_type(arg)))\r\n }\r\n\r\n if (re.number.test(match[8])) {\r\n is_positive = arg >= 0\r\n }\r\n\r\n switch (match[8]) {\r\n case 'b':\r\n arg = parseInt(arg, 10).toString(2)\r\n break\r\n case 'c':\r\n arg = String.fromCharCode(parseInt(arg, 10))\r\n break\r\n case 'd':\r\n case 'i':\r\n arg = parseInt(arg, 10)\r\n break\r\n case 'j':\r\n arg = JSON.stringify(arg, null, match[6] ? parseInt(match[6]) : 0)\r\n break\r\n case 'e':\r\n arg = match[7] ? parseFloat(arg).toExponential(match[7]) : parseFloat(arg).toExponential()\r\n break\r\n case 'f':\r\n arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg)\r\n break\r\n case 'g':\r\n arg = match[7] ? parseFloat(arg).toPrecision(match[7]) : parseFloat(arg)\r\n break\r\n case 'o':\r\n arg = arg.toString(8)\r\n break\r\n case 's':\r\n arg = String(arg)\r\n arg = (match[7] ? arg.substring(0, match[7]) : arg)\r\n break\r\n case 't':\r\n arg = String(!!arg)\r\n arg = (match[7] ? arg.substring(0, match[7]) : arg)\r\n break\r\n case 'T':\r\n arg = get_type(arg)\r\n arg = (match[7] ? arg.substring(0, match[7]) : arg)\r\n break\r\n case 'u':\r\n arg = parseInt(arg, 10) >>> 0\r\n break\r\n case 'v':\r\n arg = arg.valueOf()\r\n arg = (match[7] ? arg.substring(0, match[7]) : arg)\r\n break\r\n case 'x':\r\n arg = parseInt(arg, 10).toString(16)\r\n break\r\n case 'X':\r\n arg = parseInt(arg, 10).toString(16).toUpperCase()\r\n break\r\n }\r\n if (re.json.test(match[8])) {\r\n output[output.length] = arg\r\n }\r\n else {\r\n if (re.number.test(match[8]) && (!is_positive || match[3])) {\r\n sign = is_positive ? '+' : '-'\r\n arg = arg.toString().replace(re.sign, '')\r\n }\r\n else {\r\n sign = ''\r\n }\r\n pad_character = match[4] ? match[4] === '0' ? '0' : match[4].charAt(1) : ' '\r\n pad_length = match[6] - (sign + arg).length\r\n pad = match[6] ? (pad_length > 0 ? str_repeat(pad_character, pad_length) : '') : ''\r\n output[output.length] = match[5] ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg)\r\n }\r\n }\r\n }\r\n return output.join('')\r\n }\r\n\r\n sprintf.cache = {}\r\n\r\n sprintf.parse = function(fmt) {\r\n var _fmt = fmt, match = [], parse_tree = [], arg_names = 0\r\n while (_fmt) {\r\n if ((match = re.text.exec(_fmt)) !== null) {\r\n parse_tree[parse_tree.length] = match[0]\r\n }\r\n else if ((match = re.modulo.exec(_fmt)) !== null) {\r\n parse_tree[parse_tree.length] = '%'\r\n }\r\n else if ((match = re.placeholder.exec(_fmt)) !== null) {\r\n if (match[2]) {\r\n arg_names |= 1\r\n var field_list = [], replacement_field = match[2], field_match = []\r\n if ((field_match = re.key.exec(replacement_field)) !== null) {\r\n field_list[field_list.length] = field_match[1]\r\n while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {\r\n if ((field_match = re.key_access.exec(replacement_field)) !== null) {\r\n field_list[field_list.length] = field_match[1]\r\n }\r\n else if ((field_match = re.index_access.exec(replacement_field)) !== null) {\r\n field_list[field_list.length] = field_match[1]\r\n }\r\n else {\r\n throw new SyntaxError(\"[sprintf] failed to parse named argument key\")\r\n }\r\n }\r\n }\r\n else {\r\n throw new SyntaxError(\"[sprintf] failed to parse named argument key\")\r\n }\r\n match[2] = field_list\r\n }\r\n else {\r\n arg_names |= 2\r\n }\r\n if (arg_names === 3) {\r\n throw new Error(\"[sprintf] mixing positional and named placeholders is not (yet) supported\")\r\n }\r\n parse_tree[parse_tree.length] = match\r\n }\r\n else {\r\n throw new SyntaxError(\"[sprintf] unexpected placeholder\")\r\n }\r\n _fmt = _fmt.substring(match[0].length)\r\n }\r\n return parse_tree\r\n }\r\n\r\n var vsprintf = function(fmt, argv, _argv) {\r\n _argv = (argv || []).slice(0)\r\n _argv.splice(0, 0, fmt)\r\n return sprintf.apply(null, _argv)\r\n }\r\n\r\n /**\r\n * helpers\r\n */\r\n function get_type(variable) {\r\n if (typeof variable === 'number') {\r\n return 'number'\r\n }\r\n else if (typeof variable === 'string') {\r\n return 'string'\r\n }\r\n else {\r\n return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase()\r\n }\r\n }\r\n\r\n var preformattedPadding = {\r\n '0': ['', '0', '00', '000', '0000', '00000', '000000', '0000000'],\r\n ' ': ['', ' ', ' ', ' ', ' ', ' ', ' ', ' '],\r\n '_': ['', '_', '__', '___', '____', '_____', '______', '_______'],\r\n }\r\n function str_repeat(input, multiplier) {\r\n if (multiplier >= 0 && multiplier <= 7 && preformattedPadding[input]) {\r\n return preformattedPadding[input][multiplier]\r\n }\r\n return Array(multiplier + 1).join(input)\r\n }\r\n\r\n /**\r\n * export to either browser or node.js\r\n */\r\n if (typeof exports !== 'undefined') {\r\n exports.sprintf = sprintf\r\n exports.vsprintf = vsprintf\r\n }\r\n if (typeof window !== 'undefined') {\r\n window.sprintf = sprintf\r\n window.vsprintf = vsprintf\r\n\r\n if (typeof define === 'function' && define.amd) {\r\n define(function() {\r\n return {\r\n sprintf: sprintf,\r\n vsprintf: vsprintf\r\n }\r\n })\r\n }\r\n }\r\n})(typeof window === 'undefined' ? this : window);\r\n"]} \ No newline at end of file diff --git a/package.json b/package.json index 16fc07b..06b9975 100644 --- a/package.json +++ b/package.json @@ -16,25 +16,26 @@ "author": "Bessler", "license": "MIT", "devDependencies": { - "babel": "~6.5.1", - "babel-eslint": "^6.0.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.5.0", - "babel-preset-es2015": "^6.5.0", - "eslint": "^2.5.1", - "eslint-config-airbnb": "^6.2.0", - "eslint-plugin-import": "^1.4.0", - "grunt": "~0.4.5", - "grunt-babel": "~6.0.0", + "babel": "^6.23.0", + "babel-eslint": "^8.0.1", + "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", + "babel-preset-es2015": "^6.24.1", + "eslint": "^4.10.0", + "eslint-config-airbnb": "^16.1.0", + "eslint-plugin-import": "^2.8.0", + "grunt": "^1.0.1", + "grunt-babel": "^7.0.0", "grunt-cli": "^1.2.0", - "grunt-contrib-clean": "~0.6.0", - "grunt-contrib-copy": "~0.8.2", - "grunt-contrib-uglify": "~0.11.0", - "grunt-contrib-watch": "^0.6.1", - "grunt-execute": "~0.2.2", - "grunt-systemjs-builder": "^0.2.5", - "load-grunt-tasks": "~3.2.0" + "grunt-contrib-clean": "^1.1.0", + "grunt-contrib-copy": "^1.0.0", + "grunt-contrib-uglify": "^3.1.0", + "grunt-contrib-watch": "^1.0.0", + "grunt-execute": "^0.2.2", + "grunt-systemjs-builder": "^1.0.0", + "load-grunt-tasks": "^3.5.2" }, "dependencies": { - "lodash": "~4.0.0" + "load-grunt-tasks": "^3.2.0", + "lodash": "^4.17.4" } } diff --git a/src/editor.html b/src/editor.html index 882530a..9f3160a 100644 --- a/src/editor.html +++ b/src/editor.html @@ -16,6 +16,11 @@
 
Metric
+
+ + +
+
From cdb3d0bed425b71286aa3e1b18941d2412305424 Mon Sep 17 00:00:00 2001 From: Billy Ernest Date: Wed, 17 Jan 2018 09:03:30 -0500 Subject: [PATCH 2/2] Added stuff --- .vs/ProjectSettings.json | 3 +++ .vs/VSWorkspaceState.json | 9 +++++++++ .vs/grafana-pictureit/v15/.suo | Bin 0 -> 33792 bytes .vs/slnx.sqlite | Bin 69632 -> 77824 bytes dist/module.html | 9 +++++++-- src/module.html | 9 +++++++-- 6 files changed, 26 insertions(+), 4 deletions(-) create mode 100644 .vs/ProjectSettings.json create mode 100644 .vs/VSWorkspaceState.json create mode 100644 .vs/grafana-pictureit/v15/.suo diff --git a/.vs/ProjectSettings.json b/.vs/ProjectSettings.json new file mode 100644 index 0000000..f8b4888 --- /dev/null +++ b/.vs/ProjectSettings.json @@ -0,0 +1,3 @@ +{ + "CurrentProjectSetting": null +} \ No newline at end of file diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json new file mode 100644 index 0000000..856065d --- /dev/null +++ b/.vs/VSWorkspaceState.json @@ -0,0 +1,9 @@ +{ + "ExpandedNodes": [ + "", + "\\dist", + "\\src" + ], + "SelectedNode": "\\src\\pictureit_ctrl.js", + "PreviewInSolutionExplorer": false +} \ No newline at end of file diff --git a/.vs/grafana-pictureit/v15/.suo b/.vs/grafana-pictureit/v15/.suo new file mode 100644 index 0000000000000000000000000000000000000000..7a543f72a1a0809ab9fb64fdb5bd90d096a741af GIT binary patch literal 33792 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 ON-z8-#*MSI>ir)^Ofez= literal 0 HcmV?d00001 diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite index 60882f1e430f70b7cc5f0cdcdf61a6894a308820..e0958d95bc7cad753e01764c2583a0a7acd1d72c 100644 GIT binary patch literal 77824 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 diff --git a/dist/module.html b/dist/module.html index e893738..0f7f40b 100644 --- a/dist/module.html +++ b/dist/module.html @@ -1,8 +1,13 @@ -
+
-
+
+ {{sensor.label}} {{sensor.valueFormatted}} {{sensor.valueUnit}} diff --git a/src/module.html b/src/module.html index e893738..0f7f40b 100644 --- a/src/module.html +++ b/src/module.html @@ -1,8 +1,13 @@ -